diff options
Diffstat (limited to 'dist/js')
| -rw-r--r-- | dist/js/bootstrap.bundle.js | 8311 | ||||
| -rw-r--r-- | dist/js/bootstrap.bundle.js.map | 2 | ||||
| -rw-r--r-- | dist/js/bootstrap.bundle.min.js | 6 | ||||
| -rw-r--r-- | dist/js/bootstrap.bundle.min.js.map | 2 | ||||
| -rw-r--r-- | dist/js/bootstrap.esm.js | 4535 | ||||
| -rw-r--r-- | dist/js/bootstrap.esm.js.map | 2 | ||||
| -rw-r--r-- | dist/js/bootstrap.esm.min.js | 6 | ||||
| -rw-r--r-- | dist/js/bootstrap.esm.min.js.map | 2 | ||||
| -rw-r--r-- | dist/js/bootstrap.js | 4582 | ||||
| -rw-r--r-- | dist/js/bootstrap.js.map | 2 | ||||
| -rw-r--r-- | dist/js/bootstrap.min.js | 6 | ||||
| -rw-r--r-- | dist/js/bootstrap.min.js.map | 2 |
12 files changed, 8224 insertions, 9234 deletions
diff --git a/dist/js/bootstrap.bundle.js b/dist/js/bootstrap.bundle.js index 04618e805..92968f2f8 100644 --- a/dist/js/bootstrap.bundle.js +++ b/dist/js/bootstrap.bundle.js @@ -1,6 +1,6 @@ /*! - * Bootstrap v5.0.0-alpha3 (https://getbootstrap.com/) - * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) + * Bootstrap v5.0.0-beta3 (https://getbootstrap.com/) + * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) */ (function (global, factory) { @@ -9,59 +9,19 @@ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.bootstrap = factory()); }(this, (function () { 'use strict'; - function _defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) descriptor.writable = true; - Object.defineProperty(target, descriptor.key, descriptor); - } - } - - function _createClass(Constructor, protoProps, staticProps) { - if (protoProps) _defineProperties(Constructor.prototype, protoProps); - if (staticProps) _defineProperties(Constructor, staticProps); - return Constructor; - } - - function _extends() { - _extends = Object.assign || function (target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i]; - - for (var key in source) { - if (Object.prototype.hasOwnProperty.call(source, key)) { - target[key] = source[key]; - } - } - } - - return target; - }; - - return _extends.apply(this, arguments); - } - - function _inheritsLoose(subClass, superClass) { - subClass.prototype = Object.create(superClass.prototype); - subClass.prototype.constructor = subClass; - subClass.__proto__ = superClass; - } - /** * -------------------------------------------------------------------------- - * Bootstrap (v5.0.0-alpha3): util/index.js + * Bootstrap (v5.0.0-beta3): util/index.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ - var MAX_UID = 1000000; - var MILLISECONDS_MULTIPLIER = 1000; - var TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp) + const MAX_UID = 1000000; + const MILLISECONDS_MULTIPLIER = 1000; + const TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp) - var toType = function toType(obj) { + const toType = obj => { if (obj === null || obj === undefined) { - return "" + obj; + return `${obj}`; } return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase(); @@ -73,7 +33,7 @@ */ - var getUID = function getUID(prefix) { + const getUID = prefix => { do { prefix += Math.floor(Math.random() * MAX_UID); } while (document.getElementById(prefix)); @@ -81,19 +41,32 @@ return prefix; }; - var getSelector = function getSelector(element) { - var selector = element.getAttribute('data-bs-target'); + const getSelector = element => { + let selector = element.getAttribute('data-bs-target'); if (!selector || selector === '#') { - var hrefAttr = element.getAttribute('href'); + let hrefAttr = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes, + // so everything starting with `#` or `.`. If a "real" URL is used as the selector, + // `document.querySelector` will rightfully complain it is invalid. + // See https://github.com/twbs/bootstrap/issues/32273 + + if (!hrefAttr || !hrefAttr.includes('#') && !hrefAttr.startsWith('.')) { + return null; + } // Just in case some CMS puts out a full URL with the anchor appended + + + if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) { + hrefAttr = '#' + hrefAttr.split('#')[1]; + } + selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null; } return selector; }; - var getSelectorFromElement = function getSelectorFromElement(element) { - var selector = getSelector(element); + const getSelectorFromElement = element => { + const selector = getSelector(element); if (selector) { return document.querySelector(selector) ? selector : null; @@ -102,23 +75,23 @@ return null; }; - var getElementFromSelector = function getElementFromSelector(element) { - var selector = getSelector(element); + const getElementFromSelector = element => { + const selector = getSelector(element); return selector ? document.querySelector(selector) : null; }; - var getTransitionDurationFromElement = function getTransitionDurationFromElement(element) { + const getTransitionDurationFromElement = element => { if (!element) { return 0; } // Get transition-duration of the element - var _window$getComputedSt = window.getComputedStyle(element), - transitionDuration = _window$getComputedSt.transitionDuration, - transitionDelay = _window$getComputedSt.transitionDelay; - - var floatTransitionDuration = Number.parseFloat(transitionDuration); - var floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found + let { + transitionDuration, + transitionDelay + } = window.getComputedStyle(element); + const floatTransitionDuration = Number.parseFloat(transitionDuration); + const floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found if (!floatTransitionDuration && !floatTransitionDelay) { return 0; @@ -130,18 +103,16 @@ return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER; }; - var triggerTransitionEnd = function triggerTransitionEnd(element) { + const triggerTransitionEnd = element => { element.dispatchEvent(new Event(TRANSITION_END)); }; - var isElement = function isElement(obj) { - return (obj[0] || obj).nodeType; - }; + const isElement$1 = obj => (obj[0] || obj).nodeType; - var emulateTransitionEnd = function emulateTransitionEnd(element, duration) { - var called = false; - var durationPadding = 5; - var emulatedDuration = duration + durationPadding; + const emulateTransitionEnd = (element, duration) => { + let called = false; + const durationPadding = 5; + const emulatedDuration = duration + durationPadding; function listener() { called = true; @@ -149,47 +120,63 @@ } element.addEventListener(TRANSITION_END, listener); - setTimeout(function () { + setTimeout(() => { if (!called) { triggerTransitionEnd(element); } }, emulatedDuration); }; - var typeCheckConfig = function typeCheckConfig(componentName, config, configTypes) { - Object.keys(configTypes).forEach(function (property) { - var expectedTypes = configTypes[property]; - var value = config[property]; - var valueType = value && isElement(value) ? 'element' : toType(value); + const typeCheckConfig = (componentName, config, configTypes) => { + Object.keys(configTypes).forEach(property => { + const expectedTypes = configTypes[property]; + const value = config[property]; + const valueType = value && isElement$1(value) ? 'element' : toType(value); if (!new RegExp(expectedTypes).test(valueType)) { - throw new Error(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\".")); + throw new TypeError(`${componentName.toUpperCase()}: ` + `Option "${property}" provided type "${valueType}" ` + `but expected type "${expectedTypes}".`); } }); }; - var isVisible = function isVisible(element) { + const isVisible = element => { if (!element) { return false; } if (element.style && element.parentNode && element.parentNode.style) { - var elementStyle = getComputedStyle(element); - var parentNodeStyle = getComputedStyle(element.parentNode); + const elementStyle = getComputedStyle(element); + const parentNodeStyle = getComputedStyle(element.parentNode); return elementStyle.display !== 'none' && parentNodeStyle.display !== 'none' && elementStyle.visibility !== 'hidden'; } return false; }; - var findShadowRoot = function findShadowRoot(element) { + const isDisabled = element => { + if (!element || element.nodeType !== Node.ELEMENT_NODE) { + return true; + } + + if (element.classList.contains('disabled')) { + return true; + } + + if (typeof element.disabled !== 'undefined') { + return element.disabled; + } + + return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false'; + }; + + const findShadowRoot = element => { if (!document.documentElement.attachShadow) { return null; } // Can find the shadow root otherwise it'll return the document if (typeof element.getRootNode === 'function') { - var root = element.getRootNode(); + const root = element.getRootNode(); return root instanceof ShadowRoot ? root : null; } @@ -205,17 +192,14 @@ return findShadowRoot(element.parentNode); }; - var noop = function noop() { - return function () {}; - }; + const noop = () => function () {}; - var reflow = function reflow(element) { - return element.offsetHeight; - }; + const reflow = element => element.offsetHeight; - var getjQuery = function getjQuery() { - var _window = window, - jQuery = _window.jQuery; + const getjQuery = () => { + const { + jQuery + } = window; if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) { return jQuery; @@ -224,7 +208,7 @@ return null; }; - var onDOMContentLoaded = function onDOMContentLoaded(callback) { + const onDOMContentLoaded = callback => { if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', callback); } else { @@ -232,11 +216,29 @@ } }; - var isRTL = document.documentElement.dir === 'rtl'; + const isRTL = () => document.documentElement.dir === 'rtl'; + + const defineJQueryPlugin = (name, plugin) => { + onDOMContentLoaded(() => { + const $ = getjQuery(); + /* istanbul ignore if */ + + if ($) { + const JQUERY_NO_CONFLICT = $.fn[name]; + $.fn[name] = plugin.jQueryInterface; + $.fn[name].Constructor = plugin; + + $.fn[name].noConflict = () => { + $.fn[name] = JQUERY_NO_CONFLICT; + return plugin.jQueryInterface; + }; + } + }); + }; /** * -------------------------------------------------------------------------- - * Bootstrap (v5.0.0-alpha3): dom/data.js + * Bootstrap (v5.0.0-beta3): dom/data.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -246,64 +248,51 @@ * Constants * ------------------------------------------------------------------------ */ - var mapData = function () { - var storeData = {}; - var id = 1; - return { - set: function set(element, key, data) { - if (typeof element.bsKey === 'undefined') { - element.bsKey = { - key: key, - id: id - }; - id++; - } + const elementMap = new Map(); + var Data = { + set(element, key, instance) { + if (!elementMap.has(element)) { + elementMap.set(element, new Map()); + } - storeData[element.bsKey.id] = data; - }, - get: function get(element, key) { - if (!element || typeof element.bsKey === 'undefined') { - return null; - } + const instanceMap = elementMap.get(element); // make it clear we only want one instance per element + // can be removed later when multiple key/instances are fine to be used - var keyProperties = element.bsKey; + if (!instanceMap.has(key) && instanceMap.size !== 0) { + // eslint-disable-next-line no-console + console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(instanceMap.keys())[0]}.`); + return; + } - if (keyProperties.key === key) { - return storeData[keyProperties.id]; - } + instanceMap.set(key, instance); + }, - return null; - }, - delete: function _delete(element, key) { - if (typeof element.bsKey === 'undefined') { - return; - } + get(element, key) { + if (elementMap.has(element)) { + return elementMap.get(element).get(key) || null; + } - var keyProperties = element.bsKey; + return null; + }, - if (keyProperties.key === key) { - delete storeData[keyProperties.id]; - delete element.bsKey; - } + remove(element, key) { + if (!elementMap.has(element)) { + return; } - }; - }(); - var Data = { - setData: function setData(instance, key, data) { - mapData.set(instance, key, data); - }, - getData: function getData(instance, key) { - return mapData.get(instance, key); - }, - removeData: function removeData(instance, key) { - mapData.delete(instance, key); + const instanceMap = elementMap.get(element); + instanceMap.delete(key); // free up element references if there are no instances left for an element + + if (instanceMap.size === 0) { + elementMap.delete(element); + } } + }; /** * -------------------------------------------------------------------------- - * Bootstrap (v5.0.0-alpha3): dom/event-handler.js + * Bootstrap (v5.0.0-beta3): dom/event-handler.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -313,17 +302,17 @@ * ------------------------------------------------------------------------ */ - var namespaceRegex = /[^.]*(?=\..*)\.|.*/; - var stripNameRegex = /\..*/; - var stripUidRegex = /::\d+$/; - var eventRegistry = {}; // Events storage + const namespaceRegex = /[^.]*(?=\..*)\.|.*/; + const stripNameRegex = /\..*/; + const stripUidRegex = /::\d+$/; + const eventRegistry = {}; // Events storage - var uidEvent = 1; - var customEvents = { + let uidEvent = 1; + const customEvents = { mouseenter: 'mouseover', mouseleave: 'mouseout' }; - var nativeEvents = new Set(['click', 'dblclick', 'mouseup', 'mousedown', 'contextmenu', 'mousewheel', 'DOMMouseScroll', 'mouseover', 'mouseout', 'mousemove', 'selectstart', 'selectend', 'keydown', 'keypress', 'keyup', 'orientationchange', 'touchstart', 'touchmove', 'touchend', 'touchcancel', 'pointerdown', 'pointermove', 'pointerup', 'pointerleave', 'pointercancel', 'gesturestart', 'gesturechange', 'gestureend', 'focus', 'blur', 'change', 'reset', 'select', 'submit', 'focusin', 'focusout', 'load', 'unload', 'beforeunload', 'resize', 'move', 'DOMContentLoaded', 'readystatechange', 'error', 'abort', 'scroll']); + const nativeEvents = new Set(['click', 'dblclick', 'mouseup', 'mousedown', 'contextmenu', 'mousewheel', 'DOMMouseScroll', 'mouseover', 'mouseout', 'mousemove', 'selectstart', 'selectend', 'keydown', 'keypress', 'keyup', 'orientationchange', 'touchstart', 'touchmove', 'touchend', 'touchcancel', 'pointerdown', 'pointermove', 'pointerup', 'pointerleave', 'pointercancel', 'gesturestart', 'gesturechange', 'gestureend', 'focus', 'blur', 'change', 'reset', 'select', 'submit', 'focusin', 'focusout', 'load', 'unload', 'beforeunload', 'resize', 'move', 'DOMContentLoaded', 'readystatechange', 'error', 'abort', 'scroll']); /** * ------------------------------------------------------------------------ * Private methods @@ -331,11 +320,11 @@ */ function getUidEvent(element, uid) { - return uid && uid + "::" + uidEvent++ || element.uidEvent || uidEvent++; + return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++; } function getEvent(element) { - var uid = getUidEvent(element); + const uid = getUidEvent(element); element.uidEvent = uid; eventRegistry[uid] = eventRegistry[uid] || {}; return eventRegistry[uid]; @@ -355,14 +344,17 @@ function bootstrapDelegationHandler(element, selector, fn) { return function handler(event) { - var domElements = element.querySelectorAll(selector); + const domElements = element.querySelectorAll(selector); - for (var target = event.target; target && target !== this; target = target.parentNode) { - for (var i = domElements.length; i--;) { + for (let { + target + } = event; target && target !== this; target = target.parentNode) { + for (let i = domElements.length; i--;) { if (domElements[i] === target) { event.delegateTarget = target; if (handler.oneOff) { + // eslint-disable-next-line unicorn/consistent-destructuring EventHandler.off(element, event.type, fn); } @@ -376,15 +368,11 @@ }; } - function findHandler(events, handler, delegationSelector) { - if (delegationSelector === void 0) { - delegationSelector = null; - } - - var uidEventList = Object.keys(events); + function findHandler(events, handler, delegationSelector = null) { + const uidEventList = Object.keys(events); - for (var i = 0, len = uidEventList.length; i < len; i++) { - var event = events[uidEventList[i]]; + for (let i = 0, len = uidEventList.length; i < len; i++) { + const event = events[uidEventList[i]]; if (event.originalHandler === handler && event.delegationSelector === delegationSelector) { return event; @@ -395,17 +383,17 @@ } function normalizeParams(originalTypeEvent, handler, delegationFn) { - var delegation = typeof handler === 'string'; - var originalHandler = delegation ? delegationFn : handler; // allow to get the native events from namespaced events ('click.bs.button' --> 'click') + const delegation = typeof handler === 'string'; + const originalHandler = delegation ? delegationFn : handler; // allow to get the native events from namespaced events ('click.bs.button' --> 'click') - var typeEvent = originalTypeEvent.replace(stripNameRegex, ''); - var custom = customEvents[typeEvent]; + let typeEvent = originalTypeEvent.replace(stripNameRegex, ''); + const custom = customEvents[typeEvent]; if (custom) { typeEvent = custom; } - var isNative = nativeEvents.has(typeEvent); + const isNative = nativeEvents.has(typeEvent); if (!isNative) { typeEvent = originalTypeEvent; @@ -424,22 +412,18 @@ delegationFn = null; } - var _normalizeParams = normalizeParams(originalTypeEvent, handler, delegationFn), - delegation = _normalizeParams[0], - originalHandler = _normalizeParams[1], - typeEvent = _normalizeParams[2]; - - var events = getEvent(element); - var handlers = events[typeEvent] || (events[typeEvent] = {}); - var previousFn = findHandler(handlers, originalHandler, delegation ? handler : null); + const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn); + const events = getEvent(element); + const handlers = events[typeEvent] || (events[typeEvent] = {}); + const previousFn = findHandler(handlers, originalHandler, delegation ? handler : null); if (previousFn) { previousFn.oneOff = previousFn.oneOff && oneOff; return; } - var uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, '')); - var fn = delegation ? bootstrapDelegationHandler(element, handler, delegationFn) : bootstrapHandler(element, handler); + const uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, '')); + const fn = delegation ? bootstrapDelegationHandler(element, handler, delegationFn) : bootstrapHandler(element, handler); fn.delegationSelector = delegation ? handler : null; fn.originalHandler = originalHandler; fn.oneOff = oneOff; @@ -449,7 +433,7 @@ } function removeHandler(element, events, typeEvent, handler, delegationSelector) { - var fn = findHandler(events[typeEvent], handler, delegationSelector); + const fn = findHandler(events[typeEvent], handler, delegationSelector); if (!fn) { return; @@ -460,35 +444,33 @@ } function removeNamespacedHandlers(element, events, typeEvent, namespace) { - var storeElementEvent = events[typeEvent] || {}; - Object.keys(storeElementEvent).forEach(function (handlerKey) { + const storeElementEvent = events[typeEvent] || {}; + Object.keys(storeElementEvent).forEach(handlerKey => { if (handlerKey.includes(namespace)) { - var event = storeElementEvent[handlerKey]; + const event = storeElementEvent[handlerKey]; removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector); } }); } - var EventHandler = { - on: function on(element, event, handler, delegationFn) { + const EventHandler = { + on(element, event, handler, delegationFn) { addHandler(element, event, handler, delegationFn, false); }, - one: function one(element, event, handler, delegationFn) { + + one(element, event, handler, delegationFn) { addHandler(element, event, handler, delegationFn, true); }, - off: function off(element, originalTypeEvent, handler, delegationFn) { + + off(element, originalTypeEvent, handler, delegationFn) { if (typeof originalTypeEvent !== 'string' || !element) { return; } - var _normalizeParams2 = normalizeParams(originalTypeEvent, handler, delegationFn), - delegation = _normalizeParams2[0], - originalHandler = _normalizeParams2[1], - typeEvent = _normalizeParams2[2]; - - var inNamespace = typeEvent !== originalTypeEvent; - var events = getEvent(element); - var isNamespace = originalTypeEvent.startsWith('.'); + const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn); + const inNamespace = typeEvent !== originalTypeEvent; + const events = getEvent(element); + const isNamespace = originalTypeEvent.startsWith('.'); if (typeof originalHandler !== 'undefined') { // Simplest case: handler is passed, remove that listener ONLY. @@ -501,35 +483,36 @@ } if (isNamespace) { - Object.keys(events).forEach(function (elementEvent) { + Object.keys(events).forEach(elementEvent => { removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1)); }); } - var storeElementEvent = events[typeEvent] || {}; - Object.keys(storeElementEvent).forEach(function (keyHandlers) { - var handlerKey = keyHandlers.replace(stripUidRegex, ''); + const storeElementEvent = events[typeEvent] || {}; + Object.keys(storeElementEvent).forEach(keyHandlers => { + const handlerKey = keyHandlers.replace(stripUidRegex, ''); if (!inNamespace || originalTypeEvent.includes(handlerKey)) { - var event = storeElementEvent[keyHandlers]; + const event = storeElementEvent[keyHandlers]; removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector); } }); }, - trigger: function trigger(element, event, args) { + + trigger(element, event, args) { if (typeof event !== 'string' || !element) { return null; } - var $ = getjQuery(); - var typeEvent = event.replace(stripNameRegex, ''); - var inNamespace = event !== typeEvent; - var isNative = nativeEvents.has(typeEvent); - var jQueryEvent; - var bubbles = true; - var nativeDispatch = true; - var defaultPrevented = false; - var evt = null; + const $ = getjQuery(); + const typeEvent = event.replace(stripNameRegex, ''); + const inNamespace = event !== typeEvent; + const isNative = nativeEvents.has(typeEvent); + let jQueryEvent; + let bubbles = true; + let nativeDispatch = true; + let defaultPrevented = false; + let evt = null; if (inNamespace && $) { jQueryEvent = $.Event(event, args); @@ -544,18 +527,19 @@ evt.initEvent(typeEvent, bubbles, true); } else { evt = new CustomEvent(event, { - bubbles: bubbles, + bubbles, cancelable: true }); } // merge custom information in our event if (typeof args !== 'undefined') { - Object.keys(args).forEach(function (key) { + Object.keys(args).forEach(key => { Object.defineProperty(evt, key, { - get: function get() { + get() { return args[key]; } + }); }); } @@ -574,86 +558,92 @@ return evt; } + }; /** + * -------------------------------------------------------------------------- + * Bootstrap (v5.0.0-beta3): base-component.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + /** * ------------------------------------------------------------------------ * Constants * ------------------------------------------------------------------------ */ - var VERSION = '5.0.0-alpha3'; + const VERSION = '5.0.0-beta3'; + + class BaseComponent { + constructor(element) { + element = typeof element === 'string' ? document.querySelector(element) : element; - var BaseComponent = /*#__PURE__*/function () { - function BaseComponent(element) { if (!element) { return; } this._element = element; - Data.setData(element, this.constructor.DATA_KEY, this); + Data.set(this._element, this.constructor.DATA_KEY, this); } - var _proto = BaseComponent.prototype; - - _proto.dispose = function dispose() { - Data.removeData(this._element, this.constructor.DATA_KEY); + dispose() { + Data.remove(this._element, this.constructor.DATA_KEY); this._element = null; } /** Static */ - ; - BaseComponent.getInstance = function getInstance(element) { - return Data.getData(element, this.DATA_KEY); - }; - _createClass(BaseComponent, null, [{ - key: "VERSION", - get: function get() { - return VERSION; - } - }]); + static getInstance(element) { + return Data.get(element, this.DATA_KEY); + } + + static get VERSION() { + return VERSION; + } - return BaseComponent; - }(); + } /** + * -------------------------------------------------------------------------- + * Bootstrap (v5.0.0-beta3): alert.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + /** * ------------------------------------------------------------------------ * Constants * ------------------------------------------------------------------------ */ - var NAME = 'alert'; - var DATA_KEY = 'bs.alert'; - var EVENT_KEY = "." + DATA_KEY; - var DATA_API_KEY = '.data-api'; - var SELECTOR_DISMISS = '[data-bs-dismiss="alert"]'; - var EVENT_CLOSE = "close" + EVENT_KEY; - var EVENT_CLOSED = "closed" + EVENT_KEY; - var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY; - var CLASSNAME_ALERT = 'alert'; - var CLASSNAME_FADE = 'fade'; - var CLASSNAME_SHOW = 'show'; + const NAME$b = 'alert'; + const DATA_KEY$b = 'bs.alert'; + const EVENT_KEY$b = `.${DATA_KEY$b}`; + const DATA_API_KEY$8 = '.data-api'; + const SELECTOR_DISMISS = '[data-bs-dismiss="alert"]'; + const EVENT_CLOSE = `close${EVENT_KEY$b}`; + const EVENT_CLOSED = `closed${EVENT_KEY$b}`; + const EVENT_CLICK_DATA_API$7 = `click${EVENT_KEY$b}${DATA_API_KEY$8}`; + const CLASS_NAME_ALERT = 'alert'; + const CLASS_NAME_FADE$5 = 'fade'; + const CLASS_NAME_SHOW$8 = 'show'; /** * ------------------------------------------------------------------------ * Class Definition * ------------------------------------------------------------------------ */ - var Alert = /*#__PURE__*/function (_BaseComponent) { - _inheritsLoose(Alert, _BaseComponent); + class Alert extends BaseComponent { + // Getters + static get DATA_KEY() { + return DATA_KEY$b; + } // Public - function Alert() { - return _BaseComponent.apply(this, arguments) || this; - } - var _proto = Alert.prototype; + close(element) { + const rootElement = element ? this._getRootElement(element) : this._element; - // Public - _proto.close = function close(element) { - var rootElement = element ? this._getRootElement(element) : this._element; - - var customEvent = this._triggerCloseEvent(rootElement); + const customEvent = this._triggerCloseEvent(rootElement); if (customEvent === null || customEvent.defaultPrevented) { return; @@ -661,46 +651,42 @@ this._removeElement(rootElement); } // Private - ; - _proto._getRootElement = function _getRootElement(element) { - return getElementFromSelector(element) || element.closest("." + CLASSNAME_ALERT); - }; - _proto._triggerCloseEvent = function _triggerCloseEvent(element) { - return EventHandler.trigger(element, EVENT_CLOSE); - }; + _getRootElement(element) { + return getElementFromSelector(element) || element.closest(`.${CLASS_NAME_ALERT}`); + } - _proto._removeElement = function _removeElement(element) { - var _this = this; + _triggerCloseEvent(element) { + return EventHandler.trigger(element, EVENT_CLOSE); + } - element.classList.remove(CLASSNAME_SHOW); + _removeElement(element) { + element.classList.remove(CLASS_NAME_SHOW$8); - if (!element.classList.contains(CLASSNAME_FADE)) { + if (!element.classList.contains(CLASS_NAME_FADE$5)) { this._destroyElement(element); return; } - var transitionDuration = getTransitionDurationFromElement(element); - EventHandler.one(element, TRANSITION_END, function () { - return _this._destroyElement(element); - }); + const transitionDuration = getTransitionDurationFromElement(element); + EventHandler.one(element, 'transitionend', () => this._destroyElement(element)); emulateTransitionEnd(element, transitionDuration); - }; + } - _proto._destroyElement = function _destroyElement(element) { + _destroyElement(element) { if (element.parentNode) { element.parentNode.removeChild(element); } EventHandler.trigger(element, EVENT_CLOSED); } // Static - ; - Alert.jQueryInterface = function jQueryInterface(config) { + + static jQueryInterface(config) { return this.each(function () { - var data = Data.getData(this, DATA_KEY); + let data = Data.get(this, DATA_KEY$b); if (!data) { data = new Alert(this); @@ -710,9 +696,9 @@ data[config](this); } }); - }; + } - Alert.handleDismiss = function handleDismiss(alertInstance) { + static handleDismiss(alertInstance) { return function (event) { if (event) { event.preventDefault(); @@ -720,18 +706,9 @@ alertInstance.close(this); }; - }; - - _createClass(Alert, null, [{ - key: "DATA_KEY", - // Getters - get: function get() { - return DATA_KEY; - } - }]); + } - return Alert; - }(BaseComponent); + } /** * ------------------------------------------------------------------------ * Data Api implementation @@ -739,7 +716,7 @@ */ - EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DISMISS, Alert.handleDismiss(new Alert())); + EventHandler.on(document, EVENT_CLICK_DATA_API$7, SELECTOR_DISMISS, Alert.handleDismiss(new Alert())); /** * ------------------------------------------------------------------------ * jQuery @@ -747,60 +724,49 @@ * add .Alert to jQuery only if jQuery is present */ - onDOMContentLoaded(function () { - var $ = getjQuery(); - /* istanbul ignore if */ - - if ($) { - var JQUERY_NO_CONFLICT = $.fn[NAME]; - $.fn[NAME] = Alert.jQueryInterface; - $.fn[NAME].Constructor = Alert; - - $.fn[NAME].noConflict = function () { - $.fn[NAME] = JQUERY_NO_CONFLICT; - return Alert.jQueryInterface; - }; - } - }); + defineJQueryPlugin(NAME$b, Alert); /** + * -------------------------------------------------------------------------- + * Bootstrap (v5.0.0-beta3): button.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + /** * ------------------------------------------------------------------------ * Constants * ------------------------------------------------------------------------ */ - var NAME$1 = 'button'; - var DATA_KEY$1 = 'bs.button'; - var EVENT_KEY$1 = "." + DATA_KEY$1; - var DATA_API_KEY$1 = '.data-api'; - var CLASS_NAME_ACTIVE = 'active'; - var SELECTOR_DATA_TOGGLE = '[data-bs-toggle="button"]'; - var EVENT_CLICK_DATA_API$1 = "click" + EVENT_KEY$1 + DATA_API_KEY$1; + const NAME$a = 'button'; + const DATA_KEY$a = 'bs.button'; + const EVENT_KEY$a = `.${DATA_KEY$a}`; + const DATA_API_KEY$7 = '.data-api'; + const CLASS_NAME_ACTIVE$3 = 'active'; + const SELECTOR_DATA_TOGGLE$5 = '[data-bs-toggle="button"]'; + const EVENT_CLICK_DATA_API$6 = `click${EVENT_KEY$a}${DATA_API_KEY$7}`; /** * ------------------------------------------------------------------------ * Class Definition * ------------------------------------------------------------------------ */ - var Button = /*#__PURE__*/function (_BaseComponent) { - _inheritsLoose(Button, _BaseComponent); - - function Button() { - return _BaseComponent.apply(this, arguments) || this; - } + class Button extends BaseComponent { + // Getters + static get DATA_KEY() { + return DATA_KEY$a; + } // Public - var _proto = Button.prototype; - // Public - _proto.toggle = function toggle() { + toggle() { // Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method - this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE)); + this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE$3)); } // Static - ; - Button.jQueryInterface = function jQueryInterface(config) { + + static jQueryInterface(config) { return this.each(function () { - var data = Data.getData(this, DATA_KEY$1); + let data = Data.get(this, DATA_KEY$a); if (!data) { data = new Button(this); @@ -810,18 +776,9 @@ data[config](); } }); - }; - - _createClass(Button, null, [{ - key: "DATA_KEY", - // Getters - get: function get() { - return DATA_KEY$1; - } - }]); + } - return Button; - }(BaseComponent); + } /** * ------------------------------------------------------------------------ * Data Api implementation @@ -829,10 +786,10 @@ */ - EventHandler.on(document, EVENT_CLICK_DATA_API$1, SELECTOR_DATA_TOGGLE, function (event) { + EventHandler.on(document, EVENT_CLICK_DATA_API$6, SELECTOR_DATA_TOGGLE$5, event => { event.preventDefault(); - var button = event.target.closest(SELECTOR_DATA_TOGGLE); - var data = Data.getData(button, DATA_KEY$1); + const button = event.target.closest(SELECTOR_DATA_TOGGLE$5); + let data = Data.get(button, DATA_KEY$a); if (!data) { data = new Button(button); @@ -847,25 +804,11 @@ * add .Button to jQuery only if jQuery is present */ - onDOMContentLoaded(function () { - var $ = getjQuery(); - /* istanbul ignore if */ - - if ($) { - var JQUERY_NO_CONFLICT = $.fn[NAME$1]; - $.fn[NAME$1] = Button.jQueryInterface; - $.fn[NAME$1].Constructor = Button; - - $.fn[NAME$1].noConflict = function () { - $.fn[NAME$1] = JQUERY_NO_CONFLICT; - return Button.jQueryInterface; - }; - } - }); + defineJQueryPlugin(NAME$a, Button); /** * -------------------------------------------------------------------------- - * Bootstrap (v5.0.0-alpha3): dom/manipulator.js + * Bootstrap (v5.0.0-beta3): dom/manipulator.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -890,54 +833,56 @@ } function normalizeDataKey(key) { - return key.replace(/[A-Z]/g, function (chr) { - return "-" + chr.toLowerCase(); - }); + return key.replace(/[A-Z]/g, chr => `-${chr.toLowerCase()}`); } - var Manipulator = { - setDataAttribute: function setDataAttribute(element, key, value) { - element.setAttribute("data-bs-" + normalizeDataKey(key), value); + const Manipulator = { + setDataAttribute(element, key, value) { + element.setAttribute(`data-bs-${normalizeDataKey(key)}`, value); }, - removeDataAttribute: function removeDataAttribute(element, key) { - element.removeAttribute("data-bs-" + normalizeDataKey(key)); + + removeDataAttribute(element, key) { + element.removeAttribute(`data-bs-${normalizeDataKey(key)}`); }, - getDataAttributes: function getDataAttributes(element) { + + getDataAttributes(element) { if (!element) { return {}; } - var attributes = {}; - Object.keys(element.dataset).filter(function (key) { - return key.startsWith('bs'); - }).forEach(function (key) { - var pureKey = key.replace(/^bs/, ''); + const attributes = {}; + Object.keys(element.dataset).filter(key => key.startsWith('bs')).forEach(key => { + let pureKey = key.replace(/^bs/, ''); pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length); attributes[pureKey] = normalizeData(element.dataset[key]); }); return attributes; }, - getDataAttribute: function getDataAttribute(element, key) { - return normalizeData(element.getAttribute("data-bs-" + normalizeDataKey(key))); + + getDataAttribute(element, key) { + return normalizeData(element.getAttribute(`data-bs-${normalizeDataKey(key)}`)); }, - offset: function offset(element) { - var rect = element.getBoundingClientRect(); + + offset(element) { + const rect = element.getBoundingClientRect(); return { top: rect.top + document.body.scrollTop, left: rect.left + document.body.scrollLeft }; }, - position: function position(element) { + + position(element) { return { top: element.offsetTop, left: element.offsetLeft }; } + }; /** * -------------------------------------------------------------------------- - * Bootstrap (v5.0.0-alpha3): dom/selector-engine.js + * Bootstrap (v5.0.0-beta3): dom/selector-engine.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -947,42 +892,26 @@ * Constants * ------------------------------------------------------------------------ */ - var NODE_TEXT = 3; - var SelectorEngine = { - matches: function matches(element, selector) { - return element.matches(selector); - }, - find: function find(selector, element) { - var _ref; - - if (element === void 0) { - element = document.documentElement; - } - - return (_ref = []).concat.apply(_ref, Element.prototype.querySelectorAll.call(element, selector)); + const NODE_TEXT = 3; + const SelectorEngine = { + find(selector, element = document.documentElement) { + return [].concat(...Element.prototype.querySelectorAll.call(element, selector)); }, - findOne: function findOne(selector, element) { - if (element === void 0) { - element = document.documentElement; - } + findOne(selector, element = document.documentElement) { return Element.prototype.querySelector.call(element, selector); }, - children: function children(element, selector) { - var _ref2; - var children = (_ref2 = []).concat.apply(_ref2, element.children); - - return children.filter(function (child) { - return child.matches(selector); - }); + children(element, selector) { + return [].concat(...element.children).filter(child => child.matches(selector)); }, - parents: function parents(element, selector) { - var parents = []; - var ancestor = element.parentNode; + + parents(element, selector) { + const parents = []; + let ancestor = element.parentNode; while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) { - if (this.matches(ancestor, selector)) { + if (ancestor.matches(selector)) { parents.push(ancestor); } @@ -991,8 +920,9 @@ return parents; }, - prev: function prev(element, selector) { - var previous = element.previousElementSibling; + + prev(element, selector) { + let previous = element.previousElementSibling; while (previous) { if (previous.matches(selector)) { @@ -1004,11 +934,12 @@ return []; }, - next: function next(element, selector) { - var next = element.nextElementSibling; + + next(element, selector) { + let next = element.nextElementSibling; while (next) { - if (this.matches(next, selector)) { + if (next.matches(selector)) { return [next]; } @@ -1017,24 +948,31 @@ return []; } + }; /** + * -------------------------------------------------------------------------- + * Bootstrap (v5.0.0-beta3): carousel.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + /** * ------------------------------------------------------------------------ * Constants * ------------------------------------------------------------------------ */ - var NAME$2 = 'carousel'; - var DATA_KEY$2 = 'bs.carousel'; - var EVENT_KEY$2 = "." + DATA_KEY$2; - var DATA_API_KEY$2 = '.data-api'; - var ARROW_LEFT_KEY = 'ArrowLeft'; - var ARROW_RIGHT_KEY = 'ArrowRight'; - var TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch + const NAME$9 = 'carousel'; + const DATA_KEY$9 = 'bs.carousel'; + const EVENT_KEY$9 = `.${DATA_KEY$9}`; + const DATA_API_KEY$6 = '.data-api'; + const ARROW_LEFT_KEY = 'ArrowLeft'; + const ARROW_RIGHT_KEY = 'ArrowRight'; + const TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch - var SWIPE_THRESHOLD = 40; - var Default = { + const SWIPE_THRESHOLD = 40; + const Default$8 = { interval: 5000, keyboard: true, slide: false, @@ -1042,7 +980,7 @@ wrap: true, touch: true }; - var DefaultType = { + const DefaultType$8 = { interval: '(number|boolean)', keyboard: 'boolean', slide: '(boolean|string)', @@ -1050,99 +988,98 @@ wrap: 'boolean', touch: 'boolean' }; - var DIRECTION_NEXT = 'next'; - var DIRECTION_PREV = 'prev'; - var DIRECTION_LEFT = 'left'; - var DIRECTION_RIGHT = 'right'; - var EVENT_SLIDE = "slide" + EVENT_KEY$2; - var EVENT_SLID = "slid" + EVENT_KEY$2; - var EVENT_KEYDOWN = "keydown" + EVENT_KEY$2; - var EVENT_MOUSEENTER = "mouseenter" + EVENT_KEY$2; - var EVENT_MOUSELEAVE = "mouseleave" + EVENT_KEY$2; - var EVENT_TOUCHSTART = "touchstart" + EVENT_KEY$2; - var EVENT_TOUCHMOVE = "touchmove" + EVENT_KEY$2; - var EVENT_TOUCHEND = "touchend" + EVENT_KEY$2; - var EVENT_POINTERDOWN = "pointerdown" + EVENT_KEY$2; - var EVENT_POINTERUP = "pointerup" + EVENT_KEY$2; - var EVENT_DRAG_START = "dragstart" + EVENT_KEY$2; - var EVENT_LOAD_DATA_API = "load" + EVENT_KEY$2 + DATA_API_KEY$2; - var EVENT_CLICK_DATA_API$2 = "click" + EVENT_KEY$2 + DATA_API_KEY$2; - var CLASS_NAME_CAROUSEL = 'carousel'; - var CLASS_NAME_ACTIVE$1 = 'active'; - var CLASS_NAME_SLIDE = 'slide'; - var CLASS_NAME_END = 'carousel-item-end'; - var CLASS_NAME_START = 'carousel-item-start'; - var CLASS_NAME_NEXT = 'carousel-item-next'; - var CLASS_NAME_PREV = 'carousel-item-prev'; - var CLASS_NAME_POINTER_EVENT = 'pointer-event'; - var SELECTOR_ACTIVE = '.active'; - var SELECTOR_ACTIVE_ITEM = '.active.carousel-item'; - var SELECTOR_ITEM = '.carousel-item'; - var SELECTOR_ITEM_IMG = '.carousel-item img'; - var SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev'; - var SELECTOR_INDICATORS = '.carousel-indicators'; - var SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]'; - var SELECTOR_DATA_RIDE = '[data-bs-ride="carousel"]'; - var PointerType = { - TOUCH: 'touch', - PEN: 'pen' - }; + const ORDER_NEXT = 'next'; + const ORDER_PREV = 'prev'; + const DIRECTION_LEFT = 'left'; + const DIRECTION_RIGHT = 'right'; + const EVENT_SLIDE = `slide${EVENT_KEY$9}`; + const EVENT_SLID = `slid${EVENT_KEY$9}`; + const EVENT_KEYDOWN = `keydown${EVENT_KEY$9}`; + const EVENT_MOUSEENTER = `mouseenter${EVENT_KEY$9}`; + const EVENT_MOUSELEAVE = `mouseleave${EVENT_KEY$9}`; + const EVENT_TOUCHSTART = `touchstart${EVENT_KEY$9}`; + const EVENT_TOUCHMOVE = `touchmove${EVENT_KEY$9}`; + const EVENT_TOUCHEND = `touchend${EVENT_KEY$9}`; + const EVENT_POINTERDOWN = `pointerdown${EVENT_KEY$9}`; + const EVENT_POINTERUP = `pointerup${EVENT_KEY$9}`; + const EVENT_DRAG_START = `dragstart${EVENT_KEY$9}`; + const EVENT_LOAD_DATA_API$2 = `load${EVENT_KEY$9}${DATA_API_KEY$6}`; + const EVENT_CLICK_DATA_API$5 = `click${EVENT_KEY$9}${DATA_API_KEY$6}`; + const CLASS_NAME_CAROUSEL = 'carousel'; + const CLASS_NAME_ACTIVE$2 = 'active'; + const CLASS_NAME_SLIDE = 'slide'; + const CLASS_NAME_END = 'carousel-item-end'; + const CLASS_NAME_START = 'carousel-item-start'; + const CLASS_NAME_NEXT = 'carousel-item-next'; + const CLASS_NAME_PREV = 'carousel-item-prev'; + const CLASS_NAME_POINTER_EVENT = 'pointer-event'; + const SELECTOR_ACTIVE$1 = '.active'; + const SELECTOR_ACTIVE_ITEM = '.active.carousel-item'; + const SELECTOR_ITEM = '.carousel-item'; + const SELECTOR_ITEM_IMG = '.carousel-item img'; + const SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev'; + const SELECTOR_INDICATORS = '.carousel-indicators'; + const SELECTOR_INDICATOR = '[data-bs-target]'; + const SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]'; + const SELECTOR_DATA_RIDE = '[data-bs-ride="carousel"]'; + const POINTER_TYPE_TOUCH = 'touch'; + const POINTER_TYPE_PEN = 'pen'; /** * ------------------------------------------------------------------------ * Class Definition * ------------------------------------------------------------------------ */ - var Carousel = /*#__PURE__*/function (_BaseComponent) { - _inheritsLoose(Carousel, _BaseComponent); - - function Carousel(element, config) { - var _this; - - _this = _BaseComponent.call(this, element) || this; - _this._items = null; - _this._interval = null; - _this._activeElement = null; - _this._isPaused = false; - _this._isSliding = false; - _this.touchTimeout = null; - _this.touchStartX = 0; - _this.touchDeltaX = 0; - _this._config = _this._getConfig(config); - _this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, _this._element); - _this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0; - _this._pointerEvent = Boolean(window.PointerEvent); - - _this._addEventListeners(); - - return _this; + class Carousel extends BaseComponent { + constructor(element, config) { + super(element); + this._items = null; + this._interval = null; + this._activeElement = null; + this._isPaused = false; + this._isSliding = false; + this.touchTimeout = null; + this.touchStartX = 0; + this.touchDeltaX = 0; + this._config = this._getConfig(config); + this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element); + this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0; + this._pointerEvent = Boolean(window.PointerEvent); + + this._addEventListeners(); } // Getters - var _proto = Carousel.prototype; + static get Default() { + return Default$8; + } - // Public - _proto.next = function next() { + static get DATA_KEY() { + return DATA_KEY$9; + } // Public + + + next() { if (!this._isSliding) { - this._slide(DIRECTION_NEXT); + this._slide(ORDER_NEXT); } - }; + } - _proto.nextWhenVisible = function nextWhenVisible() { + nextWhenVisible() { // Don't call next when the page isn't visible // or the carousel or its parent isn't visible if (!document.hidden && isVisible(this._element)) { this.next(); } - }; + } - _proto.prev = function prev() { + prev() { if (!this._isSliding) { - this._slide(DIRECTION_PREV); + this._slide(ORDER_PREV); } - }; + } - _proto.pause = function pause(event) { + pause(event) { if (!event) { this._isPaused = true; } @@ -1154,9 +1091,9 @@ clearInterval(this._interval); this._interval = null; - }; + } - _proto.cycle = function cycle(event) { + cycle(event) { if (!event) { this._isPaused = false; } @@ -1171,23 +1108,19 @@ this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval); } - }; - - _proto.to = function to(index) { - var _this2 = this; + } + to(index) { this._activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element); - var activeIndex = this._getItemIndex(this._activeElement); + const activeIndex = this._getItemIndex(this._activeElement); if (index > this._items.length - 1 || index < 0) { return; } if (this._isSliding) { - EventHandler.one(this._element, EVENT_SLID, function () { - return _this2.to(index); - }); + EventHandler.one(this._element, EVENT_SLID, () => this.to(index)); return; } @@ -1197,15 +1130,13 @@ return; } - var direction = index > activeIndex ? DIRECTION_NEXT : DIRECTION_PREV; - - this._slide(direction, this._items[index]); - }; + const order = index > activeIndex ? ORDER_NEXT : ORDER_PREV; - _proto.dispose = function dispose() { - _BaseComponent.prototype.dispose.call(this); + this._slide(order, this._items[index]); + } - EventHandler.off(this._element, EVENT_KEY$2); + dispose() { + EventHandler.off(this._element, EVENT_KEY$9); this._items = null; this._config = null; this._interval = null; @@ -1213,86 +1144,72 @@ this._isSliding = null; this._activeElement = null; this._indicatorsElement = null; + super.dispose(); } // Private - ; - _proto._getConfig = function _getConfig(config) { - config = _extends({}, Default, config); - typeCheckConfig(NAME$2, config, DefaultType); + + _getConfig(config) { + config = { ...Default$8, + ...config + }; + typeCheckConfig(NAME$9, config, DefaultType$8); return config; - }; + } - _proto._handleSwipe = function _handleSwipe() { - var absDeltax = Math.abs(this.touchDeltaX); + _handleSwipe() { + const absDeltax = Math.abs(this.touchDeltaX); if (absDeltax <= SWIPE_THRESHOLD) { return; } - var direction = absDeltax / this.touchDeltaX; - this.touchDeltaX = 0; // swipe left - - if (direction > 0) { - this.prev(); - } // swipe right - + const direction = absDeltax / this.touchDeltaX; + this.touchDeltaX = 0; - if (direction < 0) { - this.next(); + if (!direction) { + return; } - }; - _proto._addEventListeners = function _addEventListeners() { - var _this3 = this; + this._slide(direction > 0 ? DIRECTION_RIGHT : DIRECTION_LEFT); + } + _addEventListeners() { if (this._config.keyboard) { - EventHandler.on(this._element, EVENT_KEYDOWN, function (event) { - return _this3._keydown(event); - }); + EventHandler.on(this._element, EVENT_KEYDOWN, event => this._keydown(event)); } if (this._config.pause === 'hover') { - EventHandler.on(this._element, EVENT_MOUSEENTER, function (event) { - return _this3.pause(event); - }); - EventHandler.on(this._element, EVENT_MOUSELEAVE, function (event) { - return _this3.cycle(event); - }); + EventHandler.on(this._element, EVENT_MOUSEENTER, event => this.pause(event)); + EventHandler.on(this._element, EVENT_MOUSELEAVE, event => this.cycle(event)); } if (this._config.touch && this._touchSupported) { this._addTouchEventListeners(); } - }; - - _proto._addTouchEventListeners = function _addTouchEventListeners() { - var _this4 = this; + } - var start = function start(event) { - if (_this4._pointerEvent && PointerType[event.pointerType.toUpperCase()]) { - _this4.touchStartX = event.clientX; - } else if (!_this4._pointerEvent) { - _this4.touchStartX = event.touches[0].clientX; + _addTouchEventListeners() { + const start = event => { + if (this._pointerEvent && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH)) { + this.touchStartX = event.clientX; + } else if (!this._pointerEvent) { + this.touchStartX = event.touches[0].clientX; } }; - var move = function move(event) { + const move = event => { // ensure swiping with one touch and not pinching - if (event.touches && event.touches.length > 1) { - _this4.touchDeltaX = 0; - } else { - _this4.touchDeltaX = event.touches[0].clientX - _this4.touchStartX; - } + this.touchDeltaX = event.touches && event.touches.length > 1 ? 0 : event.touches[0].clientX - this.touchStartX; }; - var end = function end(event) { - if (_this4._pointerEvent && PointerType[event.pointerType.toUpperCase()]) { - _this4.touchDeltaX = event.clientX - _this4.touchStartX; + const end = event => { + if (this._pointerEvent && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH)) { + this.touchDeltaX = event.clientX - this.touchStartX; } - _this4._handleSwipe(); + this._handleSwipe(); - if (_this4._config.pause === 'hover') { + if (this._config.pause === 'hover') { // If it's a touch-enabled device, mouseenter/leave are fired as // part of the mouse compatibility events on first tap - the carousel // would stop cycling until user tapped out of it; @@ -1300,124 +1217,109 @@ // (as if it's the second time we tap on it, mouseenter compat event // is NOT fired) and after a timeout (to allow for mouse compatibility // events to fire) we explicitly restart cycling - _this4.pause(); + this.pause(); - if (_this4.touchTimeout) { - clearTimeout(_this4.touchTimeout); + if (this.touchTimeout) { + clearTimeout(this.touchTimeout); } - _this4.touchTimeout = setTimeout(function (event) { - return _this4.cycle(event); - }, TOUCHEVENT_COMPAT_WAIT + _this4._config.interval); + this.touchTimeout = setTimeout(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval); } }; - SelectorEngine.find(SELECTOR_ITEM_IMG, this._element).forEach(function (itemImg) { - EventHandler.on(itemImg, EVENT_DRAG_START, function (e) { - return e.preventDefault(); - }); + SelectorEngine.find(SELECTOR_ITEM_IMG, this._element).forEach(itemImg => { + EventHandler.on(itemImg, EVENT_DRAG_START, e => e.preventDefault()); }); if (this._pointerEvent) { - EventHandler.on(this._element, EVENT_POINTERDOWN, function (event) { - return start(event); - }); - EventHandler.on(this._element, EVENT_POINTERUP, function (event) { - return end(event); - }); + EventHandler.on(this._element, EVENT_POINTERDOWN, event => start(event)); + EventHandler.on(this._element, EVENT_POINTERUP, event => end(event)); this._element.classList.add(CLASS_NAME_POINTER_EVENT); } else { - EventHandler.on(this._element, EVENT_TOUCHSTART, function (event) { - return start(event); - }); - EventHandler.on(this._element, EVENT_TOUCHMOVE, function (event) { - return move(event); - }); - EventHandler.on(this._element, EVENT_TOUCHEND, function (event) { - return end(event); - }); + EventHandler.on(this._element, EVENT_TOUCHSTART, event => start(event)); + EventHandler.on(this._element, EVENT_TOUCHMOVE, event => move(event)); + EventHandler.on(this._element, EVENT_TOUCHEND, event => end(event)); } - }; + } - _proto._keydown = function _keydown(event) { + _keydown(event) { if (/input|textarea/i.test(event.target.tagName)) { return; } - switch (event.key) { - case ARROW_LEFT_KEY: - event.preventDefault(); - this.prev(); - break; + if (event.key === ARROW_LEFT_KEY) { + event.preventDefault(); - case ARROW_RIGHT_KEY: - event.preventDefault(); - this.next(); - break; + this._slide(DIRECTION_LEFT); + } else if (event.key === ARROW_RIGHT_KEY) { + event.preventDefault(); + + this._slide(DIRECTION_RIGHT); } - }; + } - _proto._getItemIndex = function _getItemIndex(element) { + _getItemIndex(element) { this._items = element && element.parentNode ? SelectorEngine.find(SELECTOR_ITEM, element.parentNode) : []; return this._items.indexOf(element); - }; + } - _proto._getItemByDirection = function _getItemByDirection(direction, activeElement) { - var isNextDirection = direction === DIRECTION_NEXT; - var isPrevDirection = direction === DIRECTION_PREV; + _getItemByOrder(order, activeElement) { + const isNext = order === ORDER_NEXT; + const isPrev = order === ORDER_PREV; - var activeIndex = this._getItemIndex(activeElement); + const activeIndex = this._getItemIndex(activeElement); - var lastItemIndex = this._items.length - 1; - var isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex === lastItemIndex; + const lastItemIndex = this._items.length - 1; + const isGoingToWrap = isPrev && activeIndex === 0 || isNext && activeIndex === lastItemIndex; if (isGoingToWrap && !this._config.wrap) { return activeElement; } - var delta = direction === DIRECTION_PREV ? -1 : 1; - var itemIndex = (activeIndex + delta) % this._items.length; + const delta = isPrev ? -1 : 1; + const itemIndex = (activeIndex + delta) % this._items.length; return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex]; - }; + } - _proto._triggerSlideEvent = function _triggerSlideEvent(relatedTarget, eventDirectionName) { - var targetIndex = this._getItemIndex(relatedTarget); + _triggerSlideEvent(relatedTarget, eventDirectionName) { + const targetIndex = this._getItemIndex(relatedTarget); - var fromIndex = this._getItemIndex(SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)); + const fromIndex = this._getItemIndex(SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)); return EventHandler.trigger(this._element, EVENT_SLIDE, { - relatedTarget: relatedTarget, + relatedTarget, direction: eventDirectionName, from: fromIndex, to: targetIndex }); - }; + } - _proto._setActiveIndicatorElement = function _setActiveIndicatorElement(element) { + _setActiveIndicatorElement(element) { if (this._indicatorsElement) { - var indicators = SelectorEngine.find(SELECTOR_ACTIVE, this._indicatorsElement); - - for (var i = 0; i < indicators.length; i++) { - indicators[i].classList.remove(CLASS_NAME_ACTIVE$1); - } - - var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)]; - - if (nextIndicator) { - nextIndicator.classList.add(CLASS_NAME_ACTIVE$1); + const activeIndicator = SelectorEngine.findOne(SELECTOR_ACTIVE$1, this._indicatorsElement); + activeIndicator.classList.remove(CLASS_NAME_ACTIVE$2); + activeIndicator.removeAttribute('aria-current'); + const indicators = SelectorEngine.find(SELECTOR_INDICATOR, this._indicatorsElement); + + for (let i = 0; i < indicators.length; i++) { + if (Number.parseInt(indicators[i].getAttribute('data-bs-slide-to'), 10) === this._getItemIndex(element)) { + indicators[i].classList.add(CLASS_NAME_ACTIVE$2); + indicators[i].setAttribute('aria-current', 'true'); + break; + } } } - }; + } - _proto._updateInterval = function _updateInterval() { - var element = this._activeElement || SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element); + _updateInterval() { + const element = this._activeElement || SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element); if (!element) { return; } - var elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10); + const elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10); if (elementInterval) { this._config.defaultInterval = this._config.defaultInterval || this._config.interval; @@ -1425,40 +1327,32 @@ } else { this._config.interval = this._config.defaultInterval || this._config.interval; } - }; + } - _proto._slide = function _slide(direction, element) { - var _this5 = this; + _slide(directionOrOrder, element) { + const order = this._directionToOrder(directionOrOrder); - var activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element); + const activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element); - var activeElementIndex = this._getItemIndex(activeElement); + const activeElementIndex = this._getItemIndex(activeElement); - var nextElement = element || activeElement && this._getItemByDirection(direction, activeElement); + const nextElement = element || this._getItemByOrder(order, activeElement); - var nextElementIndex = this._getItemIndex(nextElement); + const nextElementIndex = this._getItemIndex(nextElement); - var isCycling = Boolean(this._interval); - var directionalClassName; - var orderClassName; - var eventDirectionName; + const isCycling = Boolean(this._interval); + const isNext = order === ORDER_NEXT; + const directionalClassName = isNext ? CLASS_NAME_START : CLASS_NAME_END; + const orderClassName = isNext ? CLASS_NAME_NEXT : CLASS_NAME_PREV; - if (direction === DIRECTION_NEXT) { - directionalClassName = CLASS_NAME_START; - orderClassName = CLASS_NAME_NEXT; - eventDirectionName = DIRECTION_LEFT; - } else { - directionalClassName = CLASS_NAME_END; - orderClassName = CLASS_NAME_PREV; - eventDirectionName = DIRECTION_RIGHT; - } + const eventDirectionName = this._orderToDirection(order); - if (nextElement && nextElement.classList.contains(CLASS_NAME_ACTIVE$1)) { + if (nextElement && nextElement.classList.contains(CLASS_NAME_ACTIVE$2)) { this._isSliding = false; return; } - var slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName); + const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName); if (slideEvent.defaultPrevented) { return; @@ -1484,14 +1378,14 @@ reflow(nextElement); activeElement.classList.add(directionalClassName); nextElement.classList.add(directionalClassName); - var transitionDuration = getTransitionDurationFromElement(activeElement); - EventHandler.one(activeElement, TRANSITION_END, function () { + const transitionDuration = getTransitionDurationFromElement(activeElement); + EventHandler.one(activeElement, 'transitionend', () => { nextElement.classList.remove(directionalClassName, orderClassName); - nextElement.classList.add(CLASS_NAME_ACTIVE$1); - activeElement.classList.remove(CLASS_NAME_ACTIVE$1, orderClassName, directionalClassName); - _this5._isSliding = false; - setTimeout(function () { - EventHandler.trigger(_this5._element, EVENT_SLID, { + nextElement.classList.add(CLASS_NAME_ACTIVE$2); + activeElement.classList.remove(CLASS_NAME_ACTIVE$2, orderClassName, directionalClassName); + this._isSliding = false; + setTimeout(() => { + EventHandler.trigger(this._element, EVENT_SLID, { relatedTarget: nextElement, direction: eventDirectionName, from: activeElementIndex, @@ -1501,8 +1395,8 @@ }); emulateTransitionEnd(activeElement, transitionDuration); } else { - activeElement.classList.remove(CLASS_NAME_ACTIVE$1); - nextElement.classList.add(CLASS_NAME_ACTIVE$1); + activeElement.classList.remove(CLASS_NAME_ACTIVE$2); + nextElement.classList.add(CLASS_NAME_ACTIVE$2); this._isSliding = false; EventHandler.trigger(this._element, EVENT_SLID, { relatedTarget: nextElement, @@ -1515,19 +1409,46 @@ if (isCycling) { this.cycle(); } + } + + _directionToOrder(direction) { + if (![DIRECTION_RIGHT, DIRECTION_LEFT].includes(direction)) { + return direction; + } + + if (isRTL()) { + return direction === DIRECTION_RIGHT ? ORDER_PREV : ORDER_NEXT; + } + + return direction === DIRECTION_RIGHT ? ORDER_NEXT : ORDER_PREV; + } + + _orderToDirection(order) { + if (![ORDER_NEXT, ORDER_PREV].includes(order)) { + return order; + } + + if (isRTL()) { + return order === ORDER_NEXT ? DIRECTION_LEFT : DIRECTION_RIGHT; + } + + return order === ORDER_NEXT ? DIRECTION_RIGHT : DIRECTION_LEFT; } // Static - ; - Carousel.carouselInterface = function carouselInterface(element, config) { - var data = Data.getData(element, DATA_KEY$2); - var _config = _extends({}, Default, Manipulator.getDataAttributes(element)); + static carouselInterface(element, config) { + let data = Data.get(element, DATA_KEY$9); + let _config = { ...Default$8, + ...Manipulator.getDataAttributes(element) + }; if (typeof config === 'object') { - _config = _extends({}, _config, config); + _config = { ..._config, + ...config + }; } - var action = typeof config === 'string' ? config : _config.slide; + const action = typeof config === 'string' ? config : _config.slide; if (!data) { data = new Carousel(element, _config); @@ -1537,7 +1458,7 @@ data.to(config); } else if (typeof action === 'string') { if (typeof data[action] === 'undefined') { - throw new TypeError("No method named \"" + action + "\""); + throw new TypeError(`No method named "${action}"`); } data[action](); @@ -1545,24 +1466,25 @@ data.pause(); data.cycle(); } - }; + } - Carousel.jQueryInterface = function jQueryInterface(config) { + static jQueryInterface(config) { return this.each(function () { Carousel.carouselInterface(this, config); }); - }; + } - Carousel.dataApiClickHandler = function dataApiClickHandler(event) { - var target = getElementFromSelector(this); + static dataApiClickHandler(event) { + const target = getElementFromSelector(this); if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) { return; } - var config = _extends({}, Manipulator.getDataAttributes(target), Manipulator.getDataAttributes(this)); - - var slideIndex = this.getAttribute('data-bs-slide-to'); + const config = { ...Manipulator.getDataAttributes(target), + ...Manipulator.getDataAttributes(this) + }; + const slideIndex = this.getAttribute('data-bs-slide-to'); if (slideIndex) { config.interval = false; @@ -1571,26 +1493,13 @@ Carousel.carouselInterface(target, config); if (slideIndex) { - Data.getData(target, DATA_KEY$2).to(slideIndex); + Data.get(target, DATA_KEY$9).to(slideIndex); } event.preventDefault(); - }; - - _createClass(Carousel, null, [{ - key: "Default", - get: function get() { - return Default; - } - }, { - key: "DATA_KEY", - get: function get() { - return DATA_KEY$2; - } - }]); + } - return Carousel; - }(BaseComponent); + } /** * ------------------------------------------------------------------------ * Data Api implementation @@ -1598,12 +1507,12 @@ */ - EventHandler.on(document, EVENT_CLICK_DATA_API$2, SELECTOR_DATA_SLIDE, Carousel.dataApiClickHandler); - EventHandler.on(window, EVENT_LOAD_DATA_API, function () { - var carousels = SelectorEngine.find(SELECTOR_DATA_RIDE); + EventHandler.on(document, EVENT_CLICK_DATA_API$5, SELECTOR_DATA_SLIDE, Carousel.dataApiClickHandler); + EventHandler.on(window, EVENT_LOAD_DATA_API$2, () => { + const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE); - for (var i = 0, len = carousels.length; i < len; i++) { - Carousel.carouselInterface(carousels[i], Data.getData(carousels[i], DATA_KEY$2)); + for (let i = 0, len = carousels.length; i < len; i++) { + Carousel.carouselInterface(carousels[i], Data.get(carousels[i], DATA_KEY$9)); } }); /** @@ -1613,124 +1522,112 @@ * add .Carousel to jQuery only if jQuery is present */ - onDOMContentLoaded(function () { - var $ = getjQuery(); - /* istanbul ignore if */ - - if ($) { - var JQUERY_NO_CONFLICT = $.fn[NAME$2]; - $.fn[NAME$2] = Carousel.jQueryInterface; - $.fn[NAME$2].Constructor = Carousel; - - $.fn[NAME$2].noConflict = function () { - $.fn[NAME$2] = JQUERY_NO_CONFLICT; - return Carousel.jQueryInterface; - }; - } - }); + defineJQueryPlugin(NAME$9, Carousel); /** + * -------------------------------------------------------------------------- + * Bootstrap (v5.0.0-beta3): collapse.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + /** * ------------------------------------------------------------------------ * Constants * ------------------------------------------------------------------------ */ - var NAME$3 = 'collapse'; - var DATA_KEY$3 = 'bs.collapse'; - var EVENT_KEY$3 = "." + DATA_KEY$3; - var DATA_API_KEY$3 = '.data-api'; - var Default$1 = { + const NAME$8 = 'collapse'; + const DATA_KEY$8 = 'bs.collapse'; + const EVENT_KEY$8 = `.${DATA_KEY$8}`; + const DATA_API_KEY$5 = '.data-api'; + const Default$7 = { toggle: true, parent: '' }; - var DefaultType$1 = { + const DefaultType$7 = { toggle: 'boolean', parent: '(string|element)' }; - var EVENT_SHOW = "show" + EVENT_KEY$3; - var EVENT_SHOWN = "shown" + EVENT_KEY$3; - var EVENT_HIDE = "hide" + EVENT_KEY$3; - var EVENT_HIDDEN = "hidden" + EVENT_KEY$3; - var EVENT_CLICK_DATA_API$3 = "click" + EVENT_KEY$3 + DATA_API_KEY$3; - var CLASS_NAME_SHOW = 'show'; - var CLASS_NAME_COLLAPSE = 'collapse'; - var CLASS_NAME_COLLAPSING = 'collapsing'; - var CLASS_NAME_COLLAPSED = 'collapsed'; - var WIDTH = 'width'; - var HEIGHT = 'height'; - var SELECTOR_ACTIVES = '.show, .collapsing'; - var SELECTOR_DATA_TOGGLE$1 = '[data-bs-toggle="collapse"]'; + const EVENT_SHOW$5 = `show${EVENT_KEY$8}`; + const EVENT_SHOWN$5 = `shown${EVENT_KEY$8}`; + const EVENT_HIDE$5 = `hide${EVENT_KEY$8}`; + const EVENT_HIDDEN$5 = `hidden${EVENT_KEY$8}`; + const EVENT_CLICK_DATA_API$4 = `click${EVENT_KEY$8}${DATA_API_KEY$5}`; + const CLASS_NAME_SHOW$7 = 'show'; + const CLASS_NAME_COLLAPSE = 'collapse'; + const CLASS_NAME_COLLAPSING = 'collapsing'; + const CLASS_NAME_COLLAPSED = 'collapsed'; + const WIDTH = 'width'; + const HEIGHT = 'height'; + const SELECTOR_ACTIVES = '.show, .collapsing'; + const SELECTOR_DATA_TOGGLE$4 = '[data-bs-toggle="collapse"]'; /** * ------------------------------------------------------------------------ * Class Definition * ------------------------------------------------------------------------ */ - var Collapse = /*#__PURE__*/function (_BaseComponent) { - _inheritsLoose(Collapse, _BaseComponent); - - function Collapse(element, config) { - var _this; - - _this = _BaseComponent.call(this, element) || this; - _this._isTransitioning = false; - _this._config = _this._getConfig(config); - _this._triggerArray = SelectorEngine.find(SELECTOR_DATA_TOGGLE$1 + "[href=\"#" + element.id + "\"]," + (SELECTOR_DATA_TOGGLE$1 + "[data-bs-target=\"#" + element.id + "\"]")); - var toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE$1); + class Collapse extends BaseComponent { + constructor(element, config) { + super(element); + this._isTransitioning = false; + this._config = this._getConfig(config); + this._triggerArray = SelectorEngine.find(`${SELECTOR_DATA_TOGGLE$4}[href="#${this._element.id}"],` + `${SELECTOR_DATA_TOGGLE$4}[data-bs-target="#${this._element.id}"]`); + const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE$4); - for (var i = 0, len = toggleList.length; i < len; i++) { - var elem = toggleList[i]; - var selector = getSelectorFromElement(elem); - var filterElement = SelectorEngine.find(selector).filter(function (foundElem) { - return foundElem === element; - }); + for (let i = 0, len = toggleList.length; i < len; i++) { + const elem = toggleList[i]; + const selector = getSelectorFromElement(elem); + const filterElement = SelectorEngine.find(selector).filter(foundElem => foundElem === this._element); if (selector !== null && filterElement.length) { - _this._selector = selector; + this._selector = selector; - _this._triggerArray.push(elem); + this._triggerArray.push(elem); } } - _this._parent = _this._config.parent ? _this._getParent() : null; + this._parent = this._config.parent ? this._getParent() : null; - if (!_this._config.parent) { - _this._addAriaAndCollapsedClass(_this._element, _this._triggerArray); + if (!this._config.parent) { + this._addAriaAndCollapsedClass(this._element, this._triggerArray); } - if (_this._config.toggle) { - _this.toggle(); + if (this._config.toggle) { + this.toggle(); } - - return _this; } // Getters - var _proto = Collapse.prototype; + static get Default() { + return Default$7; + } - // Public - _proto.toggle = function toggle() { - if (this._element.classList.contains(CLASS_NAME_SHOW)) { + static get DATA_KEY() { + return DATA_KEY$8; + } // Public + + + toggle() { + if (this._element.classList.contains(CLASS_NAME_SHOW$7)) { this.hide(); } else { this.show(); } - }; - - _proto.show = function show() { - var _this2 = this; + } - if (this._isTransitioning || this._element.classList.contains(CLASS_NAME_SHOW)) { + show() { + if (this._isTransitioning || this._element.classList.contains(CLASS_NAME_SHOW$7)) { return; } - var actives; - var activesData; + let actives; + let activesData; if (this._parent) { - actives = SelectorEngine.find(SELECTOR_ACTIVES, this._parent).filter(function (elem) { - if (typeof _this2._config.parent === 'string') { - return elem.getAttribute('data-bs-parent') === _this2._config.parent; + actives = SelectorEngine.find(SELECTOR_ACTIVES, this._parent).filter(elem => { + if (typeof this._config.parent === 'string') { + return elem.getAttribute('data-bs-parent') === this._config.parent; } return elem.classList.contains(CLASS_NAME_COLLAPSE); @@ -1741,38 +1638,36 @@ } } - var container = SelectorEngine.findOne(this._selector); + const container = SelectorEngine.findOne(this._selector); if (actives) { - var tempActiveData = actives.find(function (elem) { - return container !== elem; - }); - activesData = tempActiveData ? Data.getData(tempActiveData, DATA_KEY$3) : null; + const tempActiveData = actives.find(elem => container !== elem); + activesData = tempActiveData ? Data.get(tempActiveData, DATA_KEY$8) : null; if (activesData && activesData._isTransitioning) { return; } } - var startEvent = EventHandler.trigger(this._element, EVENT_SHOW); + const startEvent = EventHandler.trigger(this._element, EVENT_SHOW$5); if (startEvent.defaultPrevented) { return; } if (actives) { - actives.forEach(function (elemActive) { + actives.forEach(elemActive => { if (container !== elemActive) { Collapse.collapseInterface(elemActive, 'hide'); } if (!activesData) { - Data.setData(elemActive, DATA_KEY$3, null); + Data.set(elemActive, DATA_KEY$8, null); } }); } - var dimension = this._getDimension(); + const dimension = this._getDimension(); this._element.classList.remove(CLASS_NAME_COLLAPSE); @@ -1781,7 +1676,7 @@ this._element.style[dimension] = 0; if (this._triggerArray.length) { - this._triggerArray.forEach(function (element) { + this._triggerArray.forEach(element => { element.classList.remove(CLASS_NAME_COLLAPSED); element.setAttribute('aria-expanded', true); }); @@ -1789,56 +1684,52 @@ this.setTransitioning(true); - var complete = function complete() { - _this2._element.classList.remove(CLASS_NAME_COLLAPSING); - - _this2._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW); + const complete = () => { + this._element.classList.remove(CLASS_NAME_COLLAPSING); - _this2._element.style[dimension] = ''; + this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7); - _this2.setTransitioning(false); - - EventHandler.trigger(_this2._element, EVENT_SHOWN); + this._element.style[dimension] = ''; + this.setTransitioning(false); + EventHandler.trigger(this._element, EVENT_SHOWN$5); }; - var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1); - var scrollSize = "scroll" + capitalizedDimension; - var transitionDuration = getTransitionDurationFromElement(this._element); - EventHandler.one(this._element, TRANSITION_END, complete); + const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1); + const scrollSize = `scroll${capitalizedDimension}`; + const transitionDuration = getTransitionDurationFromElement(this._element); + EventHandler.one(this._element, 'transitionend', complete); emulateTransitionEnd(this._element, transitionDuration); - this._element.style[dimension] = this._element[scrollSize] + "px"; - }; - - _proto.hide = function hide() { - var _this3 = this; + this._element.style[dimension] = `${this._element[scrollSize]}px`; + } - if (this._isTransitioning || !this._element.classList.contains(CLASS_NAME_SHOW)) { + hide() { + if (this._isTransitioning || !this._element.classList.contains(CLASS_NAME_SHOW$7)) { return; } - var startEvent = EventHandler.trigger(this._element, EVENT_HIDE); + const startEvent = EventHandler.trigger(this._element, EVENT_HIDE$5); if (startEvent.defaultPrevented) { return; } - var dimension = this._getDimension(); + const dimension = this._getDimension(); - this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + "px"; + this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`; reflow(this._element); this._element.classList.add(CLASS_NAME_COLLAPSING); - this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW); + this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7); - var triggerArrayLength = this._triggerArray.length; + const triggerArrayLength = this._triggerArray.length; if (triggerArrayLength > 0) { - for (var i = 0; i < triggerArrayLength; i++) { - var trigger = this._triggerArray[i]; - var elem = getElementFromSelector(trigger); + for (let i = 0; i < triggerArrayLength; i++) { + const trigger = this._triggerArray[i]; + const elem = getElementFromSelector(trigger); - if (elem && !elem.classList.contains(CLASS_NAME_SHOW)) { + if (elem && !elem.classList.contains(CLASS_NAME_SHOW$7)) { trigger.classList.add(CLASS_NAME_COLLAPSED); trigger.setAttribute('aria-expanded', false); } @@ -1847,54 +1738,55 @@ this.setTransitioning(true); - var complete = function complete() { - _this3.setTransitioning(false); + const complete = () => { + this.setTransitioning(false); - _this3._element.classList.remove(CLASS_NAME_COLLAPSING); + this._element.classList.remove(CLASS_NAME_COLLAPSING); - _this3._element.classList.add(CLASS_NAME_COLLAPSE); + this._element.classList.add(CLASS_NAME_COLLAPSE); - EventHandler.trigger(_this3._element, EVENT_HIDDEN); + EventHandler.trigger(this._element, EVENT_HIDDEN$5); }; this._element.style[dimension] = ''; - var transitionDuration = getTransitionDurationFromElement(this._element); - EventHandler.one(this._element, TRANSITION_END, complete); + const transitionDuration = getTransitionDurationFromElement(this._element); + EventHandler.one(this._element, 'transitionend', complete); emulateTransitionEnd(this._element, transitionDuration); - }; + } - _proto.setTransitioning = function setTransitioning(isTransitioning) { + setTransitioning(isTransitioning) { this._isTransitioning = isTransitioning; - }; - - _proto.dispose = function dispose() { - _BaseComponent.prototype.dispose.call(this); + } + dispose() { + super.dispose(); this._config = null; this._parent = null; this._triggerArray = null; this._isTransitioning = null; } // Private - ; - _proto._getConfig = function _getConfig(config) { - config = _extends({}, Default$1, config); + + _getConfig(config) { + config = { ...Default$7, + ...config + }; config.toggle = Boolean(config.toggle); // Coerce string values - typeCheckConfig(NAME$3, config, DefaultType$1); + typeCheckConfig(NAME$8, config, DefaultType$7); return config; - }; + } - _proto._getDimension = function _getDimension() { + _getDimension() { return this._element.classList.contains(WIDTH) ? WIDTH : HEIGHT; - }; - - _proto._getParent = function _getParent() { - var _this4 = this; + } - var parent = this._config.parent; + _getParent() { + let { + parent + } = this._config; - if (isElement(parent)) { + if (isElement$1(parent)) { // it's a jQuery object if (typeof parent.jquery !== 'undefined' || typeof parent[0] !== 'undefined') { parent = parent[0]; @@ -1903,22 +1795,22 @@ parent = SelectorEngine.findOne(parent); } - var selector = SELECTOR_DATA_TOGGLE$1 + "[data-bs-parent=\"" + parent + "\"]"; - SelectorEngine.find(selector, parent).forEach(function (element) { - var selected = getElementFromSelector(element); + const selector = `${SELECTOR_DATA_TOGGLE$4}[data-bs-parent="${parent}"]`; + SelectorEngine.find(selector, parent).forEach(element => { + const selected = getElementFromSelector(element); - _this4._addAriaAndCollapsedClass(selected, [element]); + this._addAriaAndCollapsedClass(selected, [element]); }); return parent; - }; + } - _proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) { + _addAriaAndCollapsedClass(element, triggerArray) { if (!element || !triggerArray.length) { return; } - var isOpen = element.classList.contains(CLASS_NAME_SHOW); - triggerArray.forEach(function (elem) { + const isOpen = element.classList.contains(CLASS_NAME_SHOW$7); + triggerArray.forEach(elem => { if (isOpen) { elem.classList.remove(CLASS_NAME_COLLAPSED); } else { @@ -1928,12 +1820,14 @@ elem.setAttribute('aria-expanded', isOpen); }); } // Static - ; - Collapse.collapseInterface = function collapseInterface(element, config) { - var data = Data.getData(element, DATA_KEY$3); - var _config = _extends({}, Default$1, Manipulator.getDataAttributes(element), typeof config === 'object' && config ? config : {}); + static collapseInterface(element, config) { + let data = Data.get(element, DATA_KEY$8); + const _config = { ...Default$7, + ...Manipulator.getDataAttributes(element), + ...(typeof config === 'object' && config ? config : {}) + }; if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) { _config.toggle = false; @@ -1945,33 +1839,20 @@ if (typeof config === 'string') { if (typeof data[config] === 'undefined') { - throw new TypeError("No method named \"" + config + "\""); + throw new TypeError(`No method named "${config}"`); } data[config](); } - }; + } - Collapse.jQueryInterface = function jQueryInterface(config) { + static jQueryInterface(config) { return this.each(function () { Collapse.collapseInterface(this, config); }); - }; - - _createClass(Collapse, null, [{ - key: "Default", - get: function get() { - return Default$1; - } - }, { - key: "DATA_KEY", - get: function get() { - return DATA_KEY$3; - } - }]); + } - return Collapse; - }(BaseComponent); + } /** * ------------------------------------------------------------------------ * Data Api implementation @@ -1979,18 +1860,18 @@ */ - EventHandler.on(document, EVENT_CLICK_DATA_API$3, SELECTOR_DATA_TOGGLE$1, function (event) { + EventHandler.on(document, EVENT_CLICK_DATA_API$4, SELECTOR_DATA_TOGGLE$4, function (event) { // preventDefault only for <a> elements (which change the URL) not inside the collapsible element - if (event.target.tagName === 'A') { + if (event.target.tagName === 'A' || event.delegateTarget && event.delegateTarget.tagName === 'A') { event.preventDefault(); } - var triggerData = Manipulator.getDataAttributes(this); - var selector = getSelectorFromElement(this); - var selectorElements = SelectorEngine.find(selector); - selectorElements.forEach(function (element) { - var data = Data.getData(element, DATA_KEY$3); - var config; + const triggerData = Manipulator.getDataAttributes(this); + const selector = getSelectorFromElement(this); + const selectorElements = SelectorEngine.find(selector); + selectorElements.forEach(element => { + const data = Data.get(element, DATA_KEY$8); + let config; if (data) { // update parent attribute @@ -2014,2696 +1895,1812 @@ * add .Collapse to jQuery only if jQuery is present */ - onDOMContentLoaded(function () { - var $ = getjQuery(); - /* istanbul ignore if */ - - if ($) { - var JQUERY_NO_CONFLICT = $.fn[NAME$3]; - $.fn[NAME$3] = Collapse.jQueryInterface; - $.fn[NAME$3].Constructor = Collapse; + defineJQueryPlugin(NAME$8, Collapse); + + var top = 'top'; + var bottom = 'bottom'; + var right = 'right'; + var left = 'left'; + var auto = 'auto'; + var basePlacements = [top, bottom, right, left]; + var start = 'start'; + var end = 'end'; + var clippingParents = 'clippingParents'; + var viewport = 'viewport'; + var popper = 'popper'; + var reference = 'reference'; + var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) { + return acc.concat([placement + "-" + start, placement + "-" + end]); + }, []); + var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) { + return acc.concat([placement, placement + "-" + start, placement + "-" + end]); + }, []); // modifiers that need to read the DOM + + var beforeRead = 'beforeRead'; + var read = 'read'; + var afterRead = 'afterRead'; // pure-logic modifiers + + var beforeMain = 'beforeMain'; + var main = 'main'; + var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state) + + var beforeWrite = 'beforeWrite'; + var write = 'write'; + var afterWrite = 'afterWrite'; + var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite]; + + function getNodeName(element) { + return element ? (element.nodeName || '').toLowerCase() : null; + } - $.fn[NAME$3].noConflict = function () { - $.fn[NAME$3] = JQUERY_NO_CONFLICT; - return Collapse.jQueryInterface; - }; + function getWindow(node) { + if (node == null) { + return window; } - }); - /**! - * @fileOverview Kickass library to create and place poppers near their reference elements. - * @version 1.16.1 - * @license - * Copyright (c) 2016 Federico Zivolo and contributors - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined'; - - var timeoutDuration = function () { - var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox']; - for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) { - if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) { - return 1; - } + if (node.toString() !== '[object Window]') { + var ownerDocument = node.ownerDocument; + return ownerDocument ? ownerDocument.defaultView || window : window; } - return 0; - }(); - function microtaskDebounce(fn) { - var called = false; - return function () { - if (called) { - return; - } - called = true; - window.Promise.resolve().then(function () { - called = false; - fn(); - }); - }; + return node; } - function taskDebounce(fn) { - var scheduled = false; - return function () { - if (!scheduled) { - scheduled = true; - setTimeout(function () { - scheduled = false; - fn(); - }, timeoutDuration); - } - }; + function isElement(node) { + var OwnElement = getWindow(node).Element; + return node instanceof OwnElement || node instanceof Element; } - var supportsMicroTasks = isBrowser && window.Promise; - - /** - * Create a debounced version of a method, that's asynchronously deferred - * but called in the minimum time possible. - * - * @method - * @memberof Popper.Utils - * @argument {Function} fn - * @returns {Function} - */ - var debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce; - - /** - * Check if the given variable is a function - * @method - * @memberof Popper.Utils - * @argument {Any} functionToCheck - variable to check - * @returns {Boolean} answer to: is a function? - */ - function isFunction(functionToCheck) { - var getType = {}; - return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]'; + function isHTMLElement(node) { + var OwnElement = getWindow(node).HTMLElement; + return node instanceof OwnElement || node instanceof HTMLElement; } - /** - * Get CSS computed property of the given element - * @method - * @memberof Popper.Utils - * @argument {Eement} element - * @argument {String} property - */ - function getStyleComputedProperty(element, property) { - if (element.nodeType !== 1) { - return []; + function isShadowRoot(node) { + // IE 11 has no ShadowRoot + if (typeof ShadowRoot === 'undefined') { + return false; } - // NOTE: 1 DOM access here - var window = element.ownerDocument.defaultView; - var css = window.getComputedStyle(element, null); - return property ? css[property] : css; - } - /** - * Returns the parentNode or the host of the element - * @method - * @memberof Popper.Utils - * @argument {Element} element - * @returns {Element} parent - */ - function getParentNode(element) { - if (element.nodeName === 'HTML') { - return element; - } - return element.parentNode || element.host; + var OwnElement = getWindow(node).ShadowRoot; + return node instanceof OwnElement || node instanceof ShadowRoot; } - /** - * Returns the scrolling parent of the given element - * @method - * @memberof Popper.Utils - * @argument {Element} element - * @returns {Element} scroll parent - */ - function getScrollParent(element) { - // Return body, `getScroll` will take care to get the correct `scrollTop` from it - if (!element) { - return document.body; - } - - switch (element.nodeName) { - case 'HTML': - case 'BODY': - return element.ownerDocument.body; - case '#document': - return element.body; - } + // and applies them to the HTMLElements such as popper and arrow - // Firefox want us to check `-x` and `-y` variations as well + function applyStyles(_ref) { + var state = _ref.state; + Object.keys(state.elements).forEach(function (name) { + var style = state.styles[name] || {}; + var attributes = state.attributes[name] || {}; + var element = state.elements[name]; // arrow is optional + virtual elements - var _getStyleComputedProp = getStyleComputedProperty(element), - overflow = _getStyleComputedProp.overflow, - overflowX = _getStyleComputedProp.overflowX, - overflowY = _getStyleComputedProp.overflowY; + if (!isHTMLElement(element) || !getNodeName(element)) { + return; + } // Flow doesn't support to extend this property, but it's the most + // effective way to apply styles to an HTMLElement + // $FlowFixMe[cannot-write] - if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) { - return element; - } - return getScrollParent(getParentNode(element)); - } + Object.assign(element.style, style); + Object.keys(attributes).forEach(function (name) { + var value = attributes[name]; - /** - * Returns the reference node of the reference object, or the reference object itself. - * @method - * @memberof Popper.Utils - * @param {Element|Object} reference - the reference element (the popper will be relative to this) - * @returns {Element} parent - */ - function getReferenceNode(reference) { - return reference && reference.referenceNode ? reference.referenceNode : reference; + if (value === false) { + element.removeAttribute(name); + } else { + element.setAttribute(name, value === true ? '' : value); + } + }); + }); } - var isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode); - var isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent); - - /** - * Determines if the browser is Internet Explorer - * @method - * @memberof Popper.Utils - * @param {Number} version to check - * @returns {Boolean} isIE - */ - function isIE(version) { - if (version === 11) { - return isIE11; - } - if (version === 10) { - return isIE10; - } - return isIE11 || isIE10; - } + function effect$2(_ref2) { + var state = _ref2.state; + var initialStyles = { + popper: { + position: state.options.strategy, + left: '0', + top: '0', + margin: '0' + }, + arrow: { + position: 'absolute' + }, + reference: {} + }; + Object.assign(state.elements.popper.style, initialStyles.popper); + state.styles = initialStyles; - /** - * Returns the offset parent of the given element - * @method - * @memberof Popper.Utils - * @argument {Element} element - * @returns {Element} offset parent - */ - function getOffsetParent(element) { - if (!element) { - return document.documentElement; + if (state.elements.arrow) { + Object.assign(state.elements.arrow.style, initialStyles.arrow); } - var noOffsetParent = isIE(10) ? document.body : null; - - // NOTE: 1 DOM access here - var offsetParent = element.offsetParent || null; - // Skip hidden elements which don't have an offsetParent - while (offsetParent === noOffsetParent && element.nextElementSibling) { - offsetParent = (element = element.nextElementSibling).offsetParent; - } + return function () { + Object.keys(state.elements).forEach(function (name) { + var element = state.elements[name]; + var attributes = state.attributes[name] || {}; + var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them - var nodeName = offsetParent && offsetParent.nodeName; + var style = styleProperties.reduce(function (style, property) { + style[property] = ''; + return style; + }, {}); // arrow is optional + virtual elements - if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') { - return element ? element.ownerDocument.documentElement : document.documentElement; - } + if (!isHTMLElement(element) || !getNodeName(element)) { + return; + } - // .offsetParent will return the closest TH, TD or TABLE in case - // no offsetParent is present, I hate this job... - if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') { - return getOffsetParent(offsetParent); - } + Object.assign(element.style, style); + Object.keys(attributes).forEach(function (attribute) { + element.removeAttribute(attribute); + }); + }); + }; + } // eslint-disable-next-line import/no-unused-modules - return offsetParent; - } - function isOffsetContainer(element) { - var nodeName = element.nodeName; + var applyStyles$1 = { + name: 'applyStyles', + enabled: true, + phase: 'write', + fn: applyStyles, + effect: effect$2, + requires: ['computeStyles'] + }; - if (nodeName === 'BODY') { - return false; - } - return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element; + function getBasePlacement(placement) { + return placement.split('-')[0]; } - /** - * Finds the root node (document, shadowDOM root) of the given element - * @method - * @memberof Popper.Utils - * @argument {Element} node - * @returns {Element} root node - */ - function getRoot(node) { - if (node.parentNode !== null) { - return getRoot(node.parentNode); - } - - return node; + function getBoundingClientRect(element) { + var rect = element.getBoundingClientRect(); + return { + width: rect.width, + height: rect.height, + top: rect.top, + right: rect.right, + bottom: rect.bottom, + left: rect.left, + x: rect.left, + y: rect.top + }; } - /** - * Finds the offset parent common to the two provided nodes - * @method - * @memberof Popper.Utils - * @argument {Element} element1 - * @argument {Element} element2 - * @returns {Element} common offset parent - */ - function findCommonOffsetParent(element1, element2) { - // This check is needed to avoid errors in case one of the elements isn't defined for any reason - if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) { - return document.documentElement; - } - - // Here we make sure to give as "start" the element that comes first in the DOM - var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING; - var start = order ? element1 : element2; - var end = order ? element2 : element1; - - // Get common ancestor container - var range = document.createRange(); - range.setStart(start, 0); - range.setEnd(end, 0); - var commonAncestorContainer = range.commonAncestorContainer; + // means it doesn't take into account transforms. - // Both nodes are inside #document + function getLayoutRect(element) { + var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed. + // Fixes https://github.com/popperjs/popper-core/issues/1223 - if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) { - if (isOffsetContainer(commonAncestorContainer)) { - return commonAncestorContainer; - } + var width = element.offsetWidth; + var height = element.offsetHeight; - return getOffsetParent(commonAncestorContainer); + if (Math.abs(clientRect.width - width) <= 1) { + width = clientRect.width; } - // one of the nodes is inside shadowDOM, find which one - var element1root = getRoot(element1); - if (element1root.host) { - return findCommonOffsetParent(element1root.host, element2); - } else { - return findCommonOffsetParent(element1, getRoot(element2).host); + if (Math.abs(clientRect.height - height) <= 1) { + height = clientRect.height; } - } - /** - * Gets the scroll value of the given element in the given side (top and left) - * @method - * @memberof Popper.Utils - * @argument {Element} element - * @argument {String} side `top` or `left` - * @returns {number} amount of scrolled pixels - */ - function getScroll(element) { - var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top'; + return { + x: element.offsetLeft, + y: element.offsetTop, + width: width, + height: height + }; + } - var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft'; - var nodeName = element.nodeName; + function contains(parent, child) { + var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method - if (nodeName === 'BODY' || nodeName === 'HTML') { - var html = element.ownerDocument.documentElement; - var scrollingElement = element.ownerDocument.scrollingElement || html; - return scrollingElement[upperSide]; - } + if (parent.contains(child)) { + return true; + } // then fallback to custom implementation with Shadow DOM support + else if (rootNode && isShadowRoot(rootNode)) { + var next = child; - return element[upperSide]; - } + do { + if (next && parent.isSameNode(next)) { + return true; + } // $FlowFixMe[prop-missing]: need a better way to handle this... - /* - * Sum or subtract the element scroll values (left and top) from a given rect object - * @method - * @memberof Popper.Utils - * @param {Object} rect - Rect object you want to change - * @param {HTMLElement} element - The element from the function reads the scroll values - * @param {Boolean} subtract - set to true if you want to subtract the scroll values - * @return {Object} rect - The modifier rect object - */ - function includeScroll(rect, element) { - var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; - - var scrollTop = getScroll(element, 'top'); - var scrollLeft = getScroll(element, 'left'); - var modifier = subtract ? -1 : 1; - rect.top += scrollTop * modifier; - rect.bottom += scrollTop * modifier; - rect.left += scrollLeft * modifier; - rect.right += scrollLeft * modifier; - return rect; - } - /* - * Helper to detect borders of a given element - * @method - * @memberof Popper.Utils - * @param {CSSStyleDeclaration} styles - * Result of `getStyleComputedProperty` on the given element - * @param {String} axis - `x` or `y` - * @return {number} borders - The borders size of the given axis - */ + next = next.parentNode || next.host; + } while (next); + } // Give up, the result is false - function getBordersSize(styles, axis) { - var sideA = axis === 'x' ? 'Left' : 'Top'; - var sideB = sideA === 'Left' ? 'Right' : 'Bottom'; - return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']); + return false; } - function getSize(axis, body, html, computedStyle) { - return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0); + function getComputedStyle$1(element) { + return getWindow(element).getComputedStyle(element); } - function getWindowSizes(document) { - var body = document.body; - var html = document.documentElement; - var computedStyle = isIE(10) && getComputedStyle(html); - - return { - height: getSize('Height', body, html, computedStyle), - width: getSize('Width', body, html, computedStyle) - }; + function isTableElement(element) { + return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0; } - var classCallCheck = function (instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } - }; + function getDocumentElement(element) { + // $FlowFixMe[incompatible-return]: assume body is always available + return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing] + element.document) || window.document).documentElement; + } - var createClass = function () { - function defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) descriptor.writable = true; - Object.defineProperty(target, descriptor.key, descriptor); - } + function getParentNode(element) { + if (getNodeName(element) === 'html') { + return element; } - return function (Constructor, protoProps, staticProps) { - if (protoProps) defineProperties(Constructor.prototype, protoProps); - if (staticProps) defineProperties(Constructor, staticProps); - return Constructor; - }; - }(); - - - + return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle + // $FlowFixMe[incompatible-return] + // $FlowFixMe[prop-missing] + element.assignedSlot || // step into the shadow DOM of the parent of a slotted node + element.parentNode || ( // DOM Element detected + isShadowRoot(element) ? element.host : null) || // ShadowRoot detected + // $FlowFixMe[incompatible-call]: HTMLElement is a Node + getDocumentElement(element) // fallback + ); + } - var defineProperty = function (obj, key, value) { - if (key in obj) { - Object.defineProperty(obj, key, { - value: value, - enumerable: true, - configurable: true, - writable: true - }); - } else { - obj[key] = value; + function getTrueOffsetParent(element) { + if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837 + getComputedStyle$1(element).position === 'fixed') { + return null; } - return obj; - }; + return element.offsetParent; + } // `.offsetParent` reports `null` for fixed elements, while absolute elements + // return the containing block - var _extends$1 = Object.assign || function (target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i]; - for (var key in source) { - if (Object.prototype.hasOwnProperty.call(source, key)) { - target[key] = source[key]; - } - } - } + function getContainingBlock(element) { + var isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') !== -1; + var currentNode = getParentNode(element); - return target; - }; + while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) { + var css = getComputedStyle$1(currentNode); // This is non-exhaustive but covers the most common CSS properties that + // create a containing block. + // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block - /** - * Given element offsets, generate an output similar to getBoundingClientRect - * @method - * @memberof Popper.Utils - * @argument {Object} offsets - * @returns {Object} ClientRect like output - */ - function getClientRect(offsets) { - return _extends$1({}, offsets, { - right: offsets.left + offsets.width, - bottom: offsets.top + offsets.height - }); - } - - /** - * Get bounding client rect of given element - * @method - * @memberof Popper.Utils - * @param {HTMLElement} element - * @return {Object} client rect - */ - function getBoundingClientRect(element) { - var rect = {}; - - // IE10 10 FIX: Please, don't ask, the element isn't - // considered in DOM in some circumstances... - // This isn't reproducible in IE10 compatibility mode of IE11 - try { - if (isIE(10)) { - rect = element.getBoundingClientRect(); - var scrollTop = getScroll(element, 'top'); - var scrollLeft = getScroll(element, 'left'); - rect.top += scrollTop; - rect.left += scrollLeft; - rect.bottom += scrollTop; - rect.right += scrollLeft; + if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') { + return currentNode; } else { - rect = element.getBoundingClientRect(); + currentNode = currentNode.parentNode; } - } catch (e) {} - - var result = { - left: rect.left, - top: rect.top, - width: rect.right - rect.left, - height: rect.bottom - rect.top - }; - - // subtract scrollbar size from sizes - var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {}; - var width = sizes.width || element.clientWidth || result.width; - var height = sizes.height || element.clientHeight || result.height; - - var horizScrollbar = element.offsetWidth - width; - var vertScrollbar = element.offsetHeight - height; - - // if an hypothetical scrollbar is detected, we must be sure it's not a `border` - // we make this check conditional for performance reasons - if (horizScrollbar || vertScrollbar) { - var styles = getStyleComputedProperty(element); - horizScrollbar -= getBordersSize(styles, 'x'); - vertScrollbar -= getBordersSize(styles, 'y'); - - result.width -= horizScrollbar; - result.height -= vertScrollbar; } - return getClientRect(result); - } - - function getOffsetRectRelativeToArbitraryNode(children, parent) { - var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; - - var isIE10 = isIE(10); - var isHTML = parent.nodeName === 'HTML'; - var childrenRect = getBoundingClientRect(children); - var parentRect = getBoundingClientRect(parent); - var scrollParent = getScrollParent(children); - - var styles = getStyleComputedProperty(parent); - var borderTopWidth = parseFloat(styles.borderTopWidth); - var borderLeftWidth = parseFloat(styles.borderLeftWidth); - - // In cases where the parent is fixed, we must ignore negative scroll in offset calc - if (fixedPosition && isHTML) { - parentRect.top = Math.max(parentRect.top, 0); - parentRect.left = Math.max(parentRect.left, 0); - } - var offsets = getClientRect({ - top: childrenRect.top - parentRect.top - borderTopWidth, - left: childrenRect.left - parentRect.left - borderLeftWidth, - width: childrenRect.width, - height: childrenRect.height - }); - offsets.marginTop = 0; - offsets.marginLeft = 0; + return null; + } // Gets the closest ancestor positioned element. Handles some edge cases, + // such as table ancestors and cross browser bugs. - // Subtract margins of documentElement in case it's being used as parent - // we do this only on HTML because it's the only element that behaves - // differently when margins are applied to it. The margins are included in - // the box of the documentElement, in the other cases not. - if (!isIE10 && isHTML) { - var marginTop = parseFloat(styles.marginTop); - var marginLeft = parseFloat(styles.marginLeft); - offsets.top -= borderTopWidth - marginTop; - offsets.bottom -= borderTopWidth - marginTop; - offsets.left -= borderLeftWidth - marginLeft; - offsets.right -= borderLeftWidth - marginLeft; + function getOffsetParent(element) { + var window = getWindow(element); + var offsetParent = getTrueOffsetParent(element); - // Attach marginTop and marginLeft because in some circumstances we may need them - offsets.marginTop = marginTop; - offsets.marginLeft = marginLeft; + while (offsetParent && isTableElement(offsetParent) && getComputedStyle$1(offsetParent).position === 'static') { + offsetParent = getTrueOffsetParent(offsetParent); } - if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') { - offsets = includeScroll(offsets, parent); + if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle$1(offsetParent).position === 'static')) { + return window; } - return offsets; + return offsetParent || getContainingBlock(element) || window; } - function getViewportOffsetRectRelativeToArtbitraryNode(element) { - var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + function getMainAxisFromPlacement(placement) { + return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y'; + } - var html = element.ownerDocument.documentElement; - var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html); - var width = Math.max(html.clientWidth, window.innerWidth || 0); - var height = Math.max(html.clientHeight, window.innerHeight || 0); + var max = Math.max; + var min = Math.min; + var round = Math.round; - var scrollTop = !excludeScroll ? getScroll(html) : 0; - var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0; + function within(min$1, value, max$1) { + return max(min$1, min(value, max$1)); + } - var offset = { - top: scrollTop - relativeOffset.top + relativeOffset.marginTop, - left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft, - width: width, - height: height + function getFreshSideObject() { + return { + top: 0, + right: 0, + bottom: 0, + left: 0 }; - - return getClientRect(offset); } - /** - * Check if the given element is fixed or is inside a fixed parent - * @method - * @memberof Popper.Utils - * @argument {Element} element - * @argument {Element} customContainer - * @returns {Boolean} answer to "isFixed?" - */ - function isFixed(element) { - var nodeName = element.nodeName; - if (nodeName === 'BODY' || nodeName === 'HTML') { - return false; - } - if (getStyleComputedProperty(element, 'position') === 'fixed') { - return true; - } - var parentNode = getParentNode(element); - if (!parentNode) { - return false; - } - return isFixed(parentNode); + function mergePaddingObject(paddingObject) { + return Object.assign({}, getFreshSideObject(), paddingObject); } - /** - * Finds the first parent of an element that has a transformed property defined - * @method - * @memberof Popper.Utils - * @argument {Element} element - * @returns {Element} first transformed parent or documentElement - */ - - function getFixedPositionOffsetParent(element) { - // This check is needed to avoid errors in case one of the elements isn't defined for any reason - if (!element || !element.parentElement || isIE()) { - return document.documentElement; - } - var el = element.parentElement; - while (el && getStyleComputedProperty(el, 'transform') === 'none') { - el = el.parentElement; - } - return el || document.documentElement; + function expandToHashMap(value, keys) { + return keys.reduce(function (hashMap, key) { + hashMap[key] = value; + return hashMap; + }, {}); } - /** - * Computed the boundaries limits and return them - * @method - * @memberof Popper.Utils - * @param {HTMLElement} popper - * @param {HTMLElement} reference - * @param {number} padding - * @param {HTMLElement} boundariesElement - Element used to define the boundaries - * @param {Boolean} fixedPosition - Is in fixed position mode - * @returns {Object} Coordinates of the boundaries - */ - function getBoundaries(popper, reference, padding, boundariesElement) { - var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false; - - // NOTE: 1 DOM access here - - var boundaries = { top: 0, left: 0 }; - var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference)); - - // Handle viewport case - if (boundariesElement === 'viewport') { - boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition); - } else { - // Handle other cases based on DOM element used as boundaries - var boundariesNode = void 0; - if (boundariesElement === 'scrollParent') { - boundariesNode = getScrollParent(getParentNode(reference)); - if (boundariesNode.nodeName === 'BODY') { - boundariesNode = popper.ownerDocument.documentElement; - } - } else if (boundariesElement === 'window') { - boundariesNode = popper.ownerDocument.documentElement; - } else { - boundariesNode = boundariesElement; - } - - var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition); + var toPaddingObject = function toPaddingObject(padding, state) { + padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, { + placement: state.placement + })) : padding; + return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements)); + }; - // In case of HTML, we need a different computation - if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) { - var _getWindowSizes = getWindowSizes(popper.ownerDocument), - height = _getWindowSizes.height, - width = _getWindowSizes.width; + function arrow(_ref) { + var _state$modifiersData$; + + var state = _ref.state, + name = _ref.name, + options = _ref.options; + var arrowElement = state.elements.arrow; + var popperOffsets = state.modifiersData.popperOffsets; + var basePlacement = getBasePlacement(state.placement); + var axis = getMainAxisFromPlacement(basePlacement); + var isVertical = [left, right].indexOf(basePlacement) >= 0; + var len = isVertical ? 'height' : 'width'; - boundaries.top += offsets.top - offsets.marginTop; - boundaries.bottom = height + offsets.top; - boundaries.left += offsets.left - offsets.marginLeft; - boundaries.right = width + offsets.left; - } else { - // for all the other DOM elements, this one is good - boundaries = offsets; - } + if (!arrowElement || !popperOffsets) { + return; } - // Add paddings - padding = padding || 0; - var isPaddingNumber = typeof padding === 'number'; - boundaries.left += isPaddingNumber ? padding : padding.left || 0; - boundaries.top += isPaddingNumber ? padding : padding.top || 0; - boundaries.right -= isPaddingNumber ? padding : padding.right || 0; - boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0; - - return boundaries; + var paddingObject = toPaddingObject(options.padding, state); + var arrowRect = getLayoutRect(arrowElement); + var minProp = axis === 'y' ? top : left; + var maxProp = axis === 'y' ? bottom : right; + var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len]; + var startDiff = popperOffsets[axis] - state.rects.reference[axis]; + var arrowOffsetParent = getOffsetParent(arrowElement); + var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0; + var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is + // outside of the popper bounds + + var min = paddingObject[minProp]; + var max = clientSize - arrowRect[len] - paddingObject[maxProp]; + var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference; + var offset = within(min, center, max); // Prevents breaking syntax highlighting... + + var axisProp = axis; + state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$); } - function getArea(_ref) { - var width = _ref.width, - height = _ref.height; + function effect$1(_ref2) { + var state = _ref2.state, + options = _ref2.options; + var _options$element = options.element, + arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element; - return width * height; - } - - /** - * Utility used to transform the `auto` placement to the placement with more - * available space. - * @method - * @memberof Popper.Utils - * @argument {Object} data - The data object generated by update method - * @argument {Object} options - Modifiers configuration and options - * @returns {Object} The data object, properly modified - */ - function computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) { - var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0; + if (arrowElement == null) { + return; + } // CSS selector - if (placement.indexOf('auto') === -1) { - return placement; - } - var boundaries = getBoundaries(popper, reference, padding, boundariesElement); + if (typeof arrowElement === 'string') { + arrowElement = state.elements.popper.querySelector(arrowElement); - var rects = { - top: { - width: boundaries.width, - height: refRect.top - boundaries.top - }, - right: { - width: boundaries.right - refRect.right, - height: boundaries.height - }, - bottom: { - width: boundaries.width, - height: boundaries.bottom - refRect.bottom - }, - left: { - width: refRect.left - boundaries.left, - height: boundaries.height + if (!arrowElement) { + return; } - }; + } - var sortedAreas = Object.keys(rects).map(function (key) { - return _extends$1({ - key: key - }, rects[key], { - area: getArea(rects[key]) - }); - }).sort(function (a, b) { - return b.area - a.area; - }); + if (!contains(state.elements.popper, arrowElement)) { - var filteredAreas = sortedAreas.filter(function (_ref2) { - var width = _ref2.width, - height = _ref2.height; - return width >= popper.clientWidth && height >= popper.clientHeight; - }); - - var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key; + return; + } - var variation = placement.split('-')[1]; + state.elements.arrow = arrowElement; + } // eslint-disable-next-line import/no-unused-modules - return computedPlacement + (variation ? '-' + variation : ''); - } - /** - * Get offsets to the reference element - * @method - * @memberof Popper.Utils - * @param {Object} state - * @param {Element} popper - the popper element - * @param {Element} reference - the reference element (the popper will be relative to this) - * @param {Element} fixedPosition - is in fixed position mode - * @returns {Object} An object containing the offsets which will be applied to the popper - */ - function getReferenceOffsets(state, popper, reference) { - var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null; - - var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference)); - return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition); - } + var arrow$1 = { + name: 'arrow', + enabled: true, + phase: 'main', + fn: arrow, + effect: effect$1, + requires: ['popperOffsets'], + requiresIfExists: ['preventOverflow'] + }; - /** - * Get the outer sizes of the given element (offset size + margins) - * @method - * @memberof Popper.Utils - * @argument {Element} element - * @returns {Object} object containing width and height properties - */ - function getOuterSizes(element) { - var window = element.ownerDocument.defaultView; - var styles = window.getComputedStyle(element); - var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0); - var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0); - var result = { - width: element.offsetWidth + y, - height: element.offsetHeight + x + var unsetSides = { + top: 'auto', + right: 'auto', + bottom: 'auto', + left: 'auto' + }; // Round the offsets to the nearest suitable subpixel based on the DPR. + // Zooming can change the DPR, but it seems to report a value that will + // cleanly divide the values into the appropriate subpixels. + + function roundOffsetsByDPR(_ref) { + var x = _ref.x, + y = _ref.y; + var win = window; + var dpr = win.devicePixelRatio || 1; + return { + x: round(round(x * dpr) / dpr) || 0, + y: round(round(y * dpr) / dpr) || 0 }; - return result; } - /** - * Get the opposite placement of the given one - * @method - * @memberof Popper.Utils - * @argument {String} placement - * @returns {String} flipped placement - */ - function getOppositePlacement(placement) { - var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' }; - return placement.replace(/left|right|bottom|top/g, function (matched) { - return hash[matched]; - }); - } + function mapToStyles(_ref2) { + var _Object$assign2; + + var popper = _ref2.popper, + popperRect = _ref2.popperRect, + placement = _ref2.placement, + offsets = _ref2.offsets, + position = _ref2.position, + gpuAcceleration = _ref2.gpuAcceleration, + adaptive = _ref2.adaptive, + roundOffsets = _ref2.roundOffsets; + + var _ref3 = roundOffsets === true ? roundOffsetsByDPR(offsets) : typeof roundOffsets === 'function' ? roundOffsets(offsets) : offsets, + _ref3$x = _ref3.x, + x = _ref3$x === void 0 ? 0 : _ref3$x, + _ref3$y = _ref3.y, + y = _ref3$y === void 0 ? 0 : _ref3$y; + + var hasX = offsets.hasOwnProperty('x'); + var hasY = offsets.hasOwnProperty('y'); + var sideX = left; + var sideY = top; + var win = window; + + if (adaptive) { + var offsetParent = getOffsetParent(popper); + var heightProp = 'clientHeight'; + var widthProp = 'clientWidth'; + + if (offsetParent === getWindow(popper)) { + offsetParent = getDocumentElement(popper); + + if (getComputedStyle$1(offsetParent).position !== 'static') { + heightProp = 'scrollHeight'; + widthProp = 'scrollWidth'; + } + } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it - /** - * Get offsets to the popper - * @method - * @memberof Popper.Utils - * @param {Object} position - CSS position the Popper will get applied - * @param {HTMLElement} popper - the popper element - * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this) - * @param {String} placement - one of the valid placement options - * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper - */ - function getPopperOffsets(popper, referenceOffsets, placement) { - placement = placement.split('-')[0]; - // Get popper node sizes - var popperRect = getOuterSizes(popper); + offsetParent = offsetParent; - // Add position, width and height to our offsets object - var popperOffsets = { - width: popperRect.width, - height: popperRect.height - }; + if (placement === top) { + sideY = bottom; // $FlowFixMe[prop-missing] - // depending by the popper placement we have to compute its offsets slightly differently - var isHoriz = ['right', 'left'].indexOf(placement) !== -1; - var mainSide = isHoriz ? 'top' : 'left'; - var secondarySide = isHoriz ? 'left' : 'top'; - var measurement = isHoriz ? 'height' : 'width'; - var secondaryMeasurement = !isHoriz ? 'height' : 'width'; - - popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2; - if (placement === secondarySide) { - popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement]; - } else { - popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)]; - } + y -= offsetParent[heightProp] - popperRect.height; + y *= gpuAcceleration ? 1 : -1; + } - return popperOffsets; - } + if (placement === left) { + sideX = right; // $FlowFixMe[prop-missing] - /** - * Mimics the `find` method of Array - * @method - * @memberof Popper.Utils - * @argument {Array} arr - * @argument prop - * @argument value - * @returns index or -1 - */ - function find(arr, check) { - // use native find if supported - if (Array.prototype.find) { - return arr.find(check); + x -= offsetParent[widthProp] - popperRect.width; + x *= gpuAcceleration ? 1 : -1; + } } - // use `filter` to obtain the same behavior of `find` - return arr.filter(check)[0]; - } + var commonStyles = Object.assign({ + position: position + }, adaptive && unsetSides); - /** - * Return the index of the matching object - * @method - * @memberof Popper.Utils - * @argument {Array} arr - * @argument prop - * @argument value - * @returns index or -1 - */ - function findIndex(arr, prop, value) { - // use native findIndex if supported - if (Array.prototype.findIndex) { - return arr.findIndex(function (cur) { - return cur[prop] === value; - }); + if (gpuAcceleration) { + var _Object$assign; + + return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) < 2 ? "translate(" + x + "px, " + y + "px)" : "translate3d(" + x + "px, " + y + "px, 0)", _Object$assign)); } - // use `find` + `indexOf` if `findIndex` isn't supported - var match = find(arr, function (obj) { - return obj[prop] === value; - }); - return arr.indexOf(match); + return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + "px" : '', _Object$assign2[sideX] = hasX ? x + "px" : '', _Object$assign2.transform = '', _Object$assign2)); } - /** - * Loop trough the list of modifiers and run them in order, - * each of them will then edit the data object. - * @method - * @memberof Popper.Utils - * @param {dataObject} data - * @param {Array} modifiers - * @param {String} ends - Optional modifier name used as stopper - * @returns {dataObject} - */ - function runModifiers(modifiers, data, ends) { - var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends)); + function computeStyles(_ref4) { + var state = _ref4.state, + options = _ref4.options; + var _options$gpuAccelerat = options.gpuAcceleration, + gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat, + _options$adaptive = options.adaptive, + adaptive = _options$adaptive === void 0 ? true : _options$adaptive, + _options$roundOffsets = options.roundOffsets, + roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets; + + var commonStyles = { + placement: getBasePlacement(state.placement), + popper: state.elements.popper, + popperRect: state.rects.popper, + gpuAcceleration: gpuAcceleration + }; + + if (state.modifiersData.popperOffsets != null) { + state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, { + offsets: state.modifiersData.popperOffsets, + position: state.options.strategy, + adaptive: adaptive, + roundOffsets: roundOffsets + }))); + } - modifiersToRun.forEach(function (modifier) { - if (modifier['function']) { - // eslint-disable-line dot-notation - console.warn('`modifier.function` is deprecated, use `modifier.fn`!'); - } - var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation - if (modifier.enabled && isFunction(fn)) { - // Add properties to offsets to make them a complete clientRect object - // we do this before each modifier to make sure the previous one doesn't - // mess with these values - data.offsets.popper = getClientRect(data.offsets.popper); - data.offsets.reference = getClientRect(data.offsets.reference); + if (state.modifiersData.arrow != null) { + state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, { + offsets: state.modifiersData.arrow, + position: 'absolute', + adaptive: false, + roundOffsets: roundOffsets + }))); + } - data = fn(data, modifier); - } + state.attributes.popper = Object.assign({}, state.attributes.popper, { + 'data-popper-placement': state.placement }); + } // eslint-disable-next-line import/no-unused-modules - return data; - } - - /** - * Updates the position of the popper, computing the new offsets and applying - * the new style.<br /> - * Prefer `scheduleUpdate` over `update` because of performance reasons. - * @method - * @memberof Popper - */ - function update() { - // if popper is destroyed, don't perform any further update - if (this.state.isDestroyed) { - return; - } - var data = { - instance: this, - styles: {}, - arrowStyles: {}, - attributes: {}, - flipped: false, - offsets: {} - }; + var computeStyles$1 = { + name: 'computeStyles', + enabled: true, + phase: 'beforeWrite', + fn: computeStyles, + data: {} + }; - // compute reference element offsets - data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed); + var passive = { + passive: true + }; - // compute auto placement, store placement inside the data object, - // modifiers will be able to edit `placement` if needed - // and refer to originalPlacement to know the original value - data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding); + function effect(_ref) { + var state = _ref.state, + instance = _ref.instance, + options = _ref.options; + var _options$scroll = options.scroll, + scroll = _options$scroll === void 0 ? true : _options$scroll, + _options$resize = options.resize, + resize = _options$resize === void 0 ? true : _options$resize; + var window = getWindow(state.elements.popper); + var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper); + + if (scroll) { + scrollParents.forEach(function (scrollParent) { + scrollParent.addEventListener('scroll', instance.update, passive); + }); + } - // store the computed placement inside `originalPlacement` - data.originalPlacement = data.placement; + if (resize) { + window.addEventListener('resize', instance.update, passive); + } - data.positionFixed = this.options.positionFixed; + return function () { + if (scroll) { + scrollParents.forEach(function (scrollParent) { + scrollParent.removeEventListener('scroll', instance.update, passive); + }); + } - // compute the popper offsets - data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement); + if (resize) { + window.removeEventListener('resize', instance.update, passive); + } + }; + } // eslint-disable-next-line import/no-unused-modules - data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute'; - // run the modifiers - data = runModifiers(this.modifiers, data); + var eventListeners = { + name: 'eventListeners', + enabled: true, + phase: 'write', + fn: function fn() {}, + effect: effect, + data: {} + }; - // the first `update` will call `onCreate` callback - // the other ones will call `onUpdate` callback - if (!this.state.isCreated) { - this.state.isCreated = true; - this.options.onCreate(data); - } else { - this.options.onUpdate(data); - } + var hash$1 = { + left: 'right', + right: 'left', + bottom: 'top', + top: 'bottom' + }; + function getOppositePlacement(placement) { + return placement.replace(/left|right|bottom|top/g, function (matched) { + return hash$1[matched]; + }); } - /** - * Helper used to know if the given modifier is enabled. - * @method - * @memberof Popper.Utils - * @returns {Boolean} - */ - function isModifierEnabled(modifiers, modifierName) { - return modifiers.some(function (_ref) { - var name = _ref.name, - enabled = _ref.enabled; - return enabled && name === modifierName; + var hash = { + start: 'end', + end: 'start' + }; + function getOppositeVariationPlacement(placement) { + return placement.replace(/start|end/g, function (matched) { + return hash[matched]; }); } - /** - * Get the prefixed supported property name - * @method - * @memberof Popper.Utils - * @argument {String} property (camelCase) - * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix) - */ - function getSupportedPropertyName(property) { - var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O']; - var upperProp = property.charAt(0).toUpperCase() + property.slice(1); + function getWindowScroll(node) { + var win = getWindow(node); + var scrollLeft = win.pageXOffset; + var scrollTop = win.pageYOffset; + return { + scrollLeft: scrollLeft, + scrollTop: scrollTop + }; + } - for (var i = 0; i < prefixes.length; i++) { - var prefix = prefixes[i]; - var toCheck = prefix ? '' + prefix + upperProp : property; - if (typeof document.body.style[toCheck] !== 'undefined') { - return toCheck; + function getWindowScrollBarX(element) { + // If <html> has a CSS width greater than the viewport, then this will be + // incorrect for RTL. + // Popper 1 is broken in this case and never had a bug report so let's assume + // it's not an issue. I don't think anyone ever specifies width on <html> + // anyway. + // Browsers where the left scrollbar doesn't cause an issue report `0` for + // this (e.g. Edge 2019, IE11, Safari) + return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft; + } + + function getViewportRect(element) { + var win = getWindow(element); + var html = getDocumentElement(element); + var visualViewport = win.visualViewport; + var width = html.clientWidth; + var height = html.clientHeight; + var x = 0; + var y = 0; // NB: This isn't supported on iOS <= 12. If the keyboard is open, the popper + // can be obscured underneath it. + // Also, `html.clientHeight` adds the bottom bar height in Safari iOS, even + // if it isn't open, so if this isn't available, the popper will be detected + // to overflow the bottom of the screen too early. + + if (visualViewport) { + width = visualViewport.width; + height = visualViewport.height; // Uses Layout Viewport (like Chrome; Safari does not currently) + // In Chrome, it returns a value very close to 0 (+/-) but contains rounding + // errors due to floating point numbers, so we need to check precision. + // Safari returns a number <= 0, usually < -1 when pinch-zoomed + // Feature detection fails in mobile emulation mode in Chrome. + // Math.abs(win.innerWidth / visualViewport.scale - visualViewport.width) < + // 0.001 + // Fallback here: "Not Safari" userAgent + + if (!/^((?!chrome|android).)*safari/i.test(navigator.userAgent)) { + x = visualViewport.offsetLeft; + y = visualViewport.offsetTop; } } - return null; + + return { + width: width, + height: height, + x: x + getWindowScrollBarX(element), + y: y + }; } - /** - * Destroys the popper. - * @method - * @memberof Popper - */ - function destroy() { - this.state.isDestroyed = true; + // of the `<html>` and `<body>` rect bounds if horizontally scrollable - // touch DOM only if `applyStyle` modifier is enabled - if (isModifierEnabled(this.modifiers, 'applyStyle')) { - this.popper.removeAttribute('x-placement'); - this.popper.style.position = ''; - this.popper.style.top = ''; - this.popper.style.left = ''; - this.popper.style.right = ''; - this.popper.style.bottom = ''; - this.popper.style.willChange = ''; - this.popper.style[getSupportedPropertyName('transform')] = ''; - } + function getDocumentRect(element) { + var _element$ownerDocumen; - this.disableEventListeners(); + var html = getDocumentElement(element); + var winScroll = getWindowScroll(element); + var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body; + var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0); + var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0); + var x = -winScroll.scrollLeft + getWindowScrollBarX(element); + var y = -winScroll.scrollTop; - // remove the popper if user explicitly asked for the deletion on destroy - // do not use `remove` because IE11 doesn't support it - if (this.options.removeOnDestroy) { - this.popper.parentNode.removeChild(this.popper); + if (getComputedStyle$1(body || html).direction === 'rtl') { + x += max(html.clientWidth, body ? body.clientWidth : 0) - width; } - return this; - } - /** - * Get the window associated with the element - * @argument {Element} element - * @returns {Window} - */ - function getWindow(element) { - var ownerDocument = element.ownerDocument; - return ownerDocument ? ownerDocument.defaultView : window; + return { + width: width, + height: height, + x: x, + y: y + }; } - function attachToScrollParents(scrollParent, event, callback, scrollParents) { - var isBody = scrollParent.nodeName === 'BODY'; - var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent; - target.addEventListener(event, callback, { passive: true }); + function isScrollParent(element) { + // Firefox wants us to check `-x` and `-y` variations as well + var _getComputedStyle = getComputedStyle$1(element), + overflow = _getComputedStyle.overflow, + overflowX = _getComputedStyle.overflowX, + overflowY = _getComputedStyle.overflowY; - if (!isBody) { - attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents); - } - scrollParents.push(target); + return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX); } - /** - * Setup needed event listeners used to update the popper position - * @method - * @memberof Popper.Utils - * @private - */ - function setupEventListeners(reference, options, state, updateBound) { - // Resize event listener on window - state.updateBound = updateBound; - getWindow(reference).addEventListener('resize', state.updateBound, { passive: true }); - - // Scroll event listener on scroll parents - var scrollElement = getScrollParent(reference); - attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents); - state.scrollElement = scrollElement; - state.eventsEnabled = true; - - return state; - } + function getScrollParent(node) { + if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) { + // $FlowFixMe[incompatible-return]: assume body is always available + return node.ownerDocument.body; + } - /** - * It will add resize/scroll events and start recalculating - * position of the popper element when they are triggered. - * @method - * @memberof Popper - */ - function enableEventListeners() { - if (!this.state.eventsEnabled) { - this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate); + if (isHTMLElement(node) && isScrollParent(node)) { + return node; } - } - /** - * Remove event listeners used to update the popper position - * @method - * @memberof Popper.Utils - * @private - */ - function removeEventListeners(reference, state) { - // Remove resize event listener on window - getWindow(reference).removeEventListener('resize', state.updateBound); + return getScrollParent(getParentNode(node)); + } - // Remove scroll event listener on scroll parents - state.scrollParents.forEach(function (target) { - target.removeEventListener('scroll', state.updateBound); - }); + /* + given a DOM element, return the list of all scroll parents, up the list of ancesors + until we get to the top window object. This list is what we attach scroll listeners + to, because if any of these parent elements scroll, we'll need to re-calculate the + reference element's position. + */ - // Reset state - state.updateBound = null; - state.scrollParents = []; - state.scrollElement = null; - state.eventsEnabled = false; - return state; - } + function listScrollParents(element, list) { + var _element$ownerDocumen; - /** - * It will remove resize/scroll events and won't recalculate popper position - * when they are triggered. It also won't trigger `onUpdate` callback anymore, - * unless you call `update` method manually. - * @method - * @memberof Popper - */ - function disableEventListeners() { - if (this.state.eventsEnabled) { - cancelAnimationFrame(this.scheduleUpdate); - this.state = removeEventListeners(this.reference, this.state); + if (list === void 0) { + list = []; } - } - /** - * Tells if a given input is a number - * @method - * @memberof Popper.Utils - * @param {*} input to check - * @return {Boolean} - */ - function isNumeric(n) { - return n !== '' && !isNaN(parseFloat(n)) && isFinite(n); + var scrollParent = getScrollParent(element); + var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body); + var win = getWindow(scrollParent); + var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent; + var updatedList = list.concat(target); + return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here + updatedList.concat(listScrollParents(getParentNode(target))); } - /** - * Set the style to the given popper - * @method - * @memberof Popper.Utils - * @argument {Element} element - Element to apply the style to - * @argument {Object} styles - * Object with a list of properties and values which will be applied to the element - */ - function setStyles(element, styles) { - Object.keys(styles).forEach(function (prop) { - var unit = ''; - // add unit if the value is numeric and is one of the following - if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) { - unit = 'px'; - } - element.style[prop] = styles[prop] + unit; + function rectToClientRect(rect) { + return Object.assign({}, rect, { + left: rect.x, + top: rect.y, + right: rect.x + rect.width, + bottom: rect.y + rect.height }); } - /** - * Set the attributes to the given popper - * @method - * @memberof Popper.Utils - * @argument {Element} element - Element to apply the attributes to - * @argument {Object} styles - * Object with a list of properties and values which will be applied to the element - */ - function setAttributes(element, attributes) { - Object.keys(attributes).forEach(function (prop) { - var value = attributes[prop]; - if (value !== false) { - element.setAttribute(prop, attributes[prop]); - } else { - element.removeAttribute(prop); - } - }); + function getInnerBoundingClientRect(element) { + var rect = getBoundingClientRect(element); + rect.top = rect.top + element.clientTop; + rect.left = rect.left + element.clientLeft; + rect.bottom = rect.top + element.clientHeight; + rect.right = rect.left + element.clientWidth; + rect.width = element.clientWidth; + rect.height = element.clientHeight; + rect.x = rect.left; + rect.y = rect.top; + return rect; } - /** - * @function - * @memberof Modifiers - * @argument {Object} data - The data object generated by `update` method - * @argument {Object} data.styles - List of style properties - values to apply to popper element - * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element - * @argument {Object} options - Modifiers configuration and options - * @returns {Object} The same data object - */ - function applyStyle(data) { - // any property present in `data.styles` will be applied to the popper, - // in this way we can make the 3rd party modifiers add custom styles to it - // Be aware, modifiers could override the properties defined in the previous - // lines of this modifier! - setStyles(data.instance.popper, data.styles); + function getClientRectFromMixedType(element, clippingParent) { + return clippingParent === viewport ? rectToClientRect(getViewportRect(element)) : isHTMLElement(clippingParent) ? getInnerBoundingClientRect(clippingParent) : rectToClientRect(getDocumentRect(getDocumentElement(element))); + } // A "clipping parent" is an overflowable container with the characteristic of + // clipping (or hiding) overflowing elements with a position different from + // `initial` - // any property present in `data.attributes` will be applied to the popper, - // they will be set as HTML attributes of the element - setAttributes(data.instance.popper, data.attributes); - // if arrowElement is defined and arrowStyles has some properties - if (data.arrowElement && Object.keys(data.arrowStyles).length) { - setStyles(data.arrowElement, data.arrowStyles); - } + function getClippingParents(element) { + var clippingParents = listScrollParents(getParentNode(element)); + var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle$1(element).position) >= 0; + var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element; - return data; - } - - /** - * Set the x-placement attribute before everything else because it could be used - * to add margins to the popper margins needs to be calculated to get the - * correct popper offsets. - * @method - * @memberof Popper.modifiers - * @param {HTMLElement} reference - The reference element used to position the popper - * @param {HTMLElement} popper - The HTML element used as popper - * @param {Object} options - Popper.js options - */ - function applyStyleOnLoad(reference, popper, options, modifierOptions, state) { - // compute reference element offsets - var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed); - - // compute auto placement, store placement inside the data object, - // modifiers will be able to edit `placement` if needed - // and refer to originalPlacement to know the original value - var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding); + if (!isElement(clipperElement)) { + return []; + } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414 - popper.setAttribute('x-placement', placement); - // Apply `position` to popper before anything else because - // without the position applied we can't guarantee correct computations - setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' }); + return clippingParents.filter(function (clippingParent) { + return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body'; + }); + } // Gets the maximum area that the element is visible in due to any number of + // clipping parents + + + function getClippingRect(element, boundary, rootBoundary) { + var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary); + var clippingParents = [].concat(mainClippingParents, [rootBoundary]); + var firstClippingParent = clippingParents[0]; + var clippingRect = clippingParents.reduce(function (accRect, clippingParent) { + var rect = getClientRectFromMixedType(element, clippingParent); + accRect.top = max(rect.top, accRect.top); + accRect.right = min(rect.right, accRect.right); + accRect.bottom = min(rect.bottom, accRect.bottom); + accRect.left = max(rect.left, accRect.left); + return accRect; + }, getClientRectFromMixedType(element, firstClippingParent)); + clippingRect.width = clippingRect.right - clippingRect.left; + clippingRect.height = clippingRect.bottom - clippingRect.top; + clippingRect.x = clippingRect.left; + clippingRect.y = clippingRect.top; + return clippingRect; + } - return options; + function getVariation(placement) { + return placement.split('-')[1]; } - /** - * @function - * @memberof Popper.Utils - * @argument {Object} data - The data object generated by `update` method - * @argument {Boolean} shouldRound - If the offsets should be rounded at all - * @returns {Object} The popper's position offsets rounded - * - * The tale of pixel-perfect positioning. It's still not 100% perfect, but as - * good as it can be within reason. - * Discussion here: https://github.com/FezVrasta/popper.js/pull/715 - * - * Low DPI screens cause a popper to be blurry if not using full pixels (Safari - * as well on High DPI screens). - * - * Firefox prefers no rounding for positioning and does not have blurriness on - * high DPI screens. - * - * Only horizontal placement and left/right values need to be considered. - */ - function getRoundedOffsets(data, shouldRound) { - var _data$offsets = data.offsets, - popper = _data$offsets.popper, - reference = _data$offsets.reference; - var round = Math.round, - floor = Math.floor; - - var noRound = function noRound(v) { - return v; - }; + function computeOffsets(_ref) { + var reference = _ref.reference, + element = _ref.element, + placement = _ref.placement; + var basePlacement = placement ? getBasePlacement(placement) : null; + var variation = placement ? getVariation(placement) : null; + var commonX = reference.x + reference.width / 2 - element.width / 2; + var commonY = reference.y + reference.height / 2 - element.height / 2; + var offsets; + + switch (basePlacement) { + case top: + offsets = { + x: commonX, + y: reference.y - element.height + }; + break; - var referenceWidth = round(reference.width); - var popperWidth = round(popper.width); + case bottom: + offsets = { + x: commonX, + y: reference.y + reference.height + }; + break; - var isVertical = ['left', 'right'].indexOf(data.placement) !== -1; - var isVariation = data.placement.indexOf('-') !== -1; - var sameWidthParity = referenceWidth % 2 === popperWidth % 2; - var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1; + case right: + offsets = { + x: reference.x + reference.width, + y: commonY + }; + break; - var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor; - var verticalToInteger = !shouldRound ? noRound : round; + case left: + offsets = { + x: reference.x - element.width, + y: commonY + }; + break; - return { - left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left), - top: verticalToInteger(popper.top), - bottom: verticalToInteger(popper.bottom), - right: horizontalToInteger(popper.right) - }; - } + default: + offsets = { + x: reference.x, + y: reference.y + }; + } - var isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent); + var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null; - /** - * @function - * @memberof Modifiers - * @argument {Object} data - The data object generated by `update` method - * @argument {Object} options - Modifiers configuration and options - * @returns {Object} The data object, properly modified - */ - function computeStyle(data, options) { - var x = options.x, - y = options.y; - var popper = data.offsets.popper; + if (mainAxis != null) { + var len = mainAxis === 'y' ? 'height' : 'width'; - // Remove this legacy support in Popper.js v2 + switch (variation) { + case start: + offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2); + break; - var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) { - return modifier.name === 'applyStyle'; - }).gpuAcceleration; - if (legacyGpuAccelerationOption !== undefined) { - console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!'); + case end: + offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2); + break; + } } - var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration; - - var offsetParent = getOffsetParent(data.instance.popper); - var offsetParentRect = getBoundingClientRect(offsetParent); - // Styles - var styles = { - position: popper.position - }; + return offsets; + } - var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox); - - var sideA = x === 'bottom' ? 'top' : 'bottom'; - var sideB = y === 'right' ? 'left' : 'right'; - - // if gpuAcceleration is set to `true` and transform is supported, - // we use `translate3d` to apply the position to the popper we - // automatically use the supported prefixed version if needed - var prefixedProperty = getSupportedPropertyName('transform'); - - // now, let's make a step back and look at this code closely (wtf?) - // If the content of the popper grows once it's been positioned, it - // may happen that the popper gets misplaced because of the new content - // overflowing its reference element - // To avoid this problem, we provide two options (x and y), which allow - // the consumer to define the offset origin. - // If we position a popper on top of a reference element, we can set - // `x` to `top` to make the popper grow towards its top instead of - // its bottom. - var left = void 0, - top = void 0; - if (sideA === 'bottom') { - // when offsetParent is <html> the positioning is relative to the bottom of the screen (excluding the scrollbar) - // and not the bottom of the html element - if (offsetParent.nodeName === 'HTML') { - top = -offsetParent.clientHeight + offsets.bottom; - } else { - top = -offsetParentRect.height + offsets.bottom; - } - } else { - top = offsets.top; - } - if (sideB === 'right') { - if (offsetParent.nodeName === 'HTML') { - left = -offsetParent.clientWidth + offsets.right; - } else { - left = -offsetParentRect.width + offsets.right; - } - } else { - left = offsets.left; - } - if (gpuAcceleration && prefixedProperty) { - styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)'; - styles[sideA] = 0; - styles[sideB] = 0; - styles.willChange = 'transform'; - } else { - // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties - var invertTop = sideA === 'bottom' ? -1 : 1; - var invertLeft = sideB === 'right' ? -1 : 1; - styles[sideA] = top * invertTop; - styles[sideB] = left * invertLeft; - styles.willChange = sideA + ', ' + sideB; + function detectOverflow(state, options) { + if (options === void 0) { + options = {}; } - // Attributes - var attributes = { - 'x-placement': data.placement - }; - - // Update `data` attributes, styles and arrowStyles - data.attributes = _extends$1({}, attributes, data.attributes); - data.styles = _extends$1({}, styles, data.styles); - data.arrowStyles = _extends$1({}, data.offsets.arrow, data.arrowStyles); + var _options = options, + _options$placement = _options.placement, + placement = _options$placement === void 0 ? state.placement : _options$placement, + _options$boundary = _options.boundary, + boundary = _options$boundary === void 0 ? clippingParents : _options$boundary, + _options$rootBoundary = _options.rootBoundary, + rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary, + _options$elementConte = _options.elementContext, + elementContext = _options$elementConte === void 0 ? popper : _options$elementConte, + _options$altBoundary = _options.altBoundary, + altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary, + _options$padding = _options.padding, + padding = _options$padding === void 0 ? 0 : _options$padding; + var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements)); + var altContext = elementContext === popper ? reference : popper; + var referenceElement = state.elements.reference; + var popperRect = state.rects.popper; + var element = state.elements[altBoundary ? altContext : elementContext]; + var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary); + var referenceClientRect = getBoundingClientRect(referenceElement); + var popperOffsets = computeOffsets({ + reference: referenceClientRect, + element: popperRect, + strategy: 'absolute', + placement: placement + }); + var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets)); + var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect + // 0 or negative = within the clipping rect + + var overflowOffsets = { + top: clippingClientRect.top - elementClientRect.top + paddingObject.top, + bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom, + left: clippingClientRect.left - elementClientRect.left + paddingObject.left, + right: elementClientRect.right - clippingClientRect.right + paddingObject.right + }; + var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element + + if (elementContext === popper && offsetData) { + var offset = offsetData[placement]; + Object.keys(overflowOffsets).forEach(function (key) { + var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1; + var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x'; + overflowOffsets[key] += offset[axis] * multiply; + }); + } - return data; + return overflowOffsets; } - /** - * Helper used to know if the given modifier depends from another one.<br /> - * It checks if the needed modifier is listed and enabled. - * @method - * @memberof Popper.Utils - * @param {Array} modifiers - list of modifiers - * @param {String} requestingName - name of requesting modifier - * @param {String} requestedName - name of requested modifier - * @returns {Boolean} - */ - function isModifierRequired(modifiers, requestingName, requestedName) { - var requesting = find(modifiers, function (_ref) { - var name = _ref.name; - return name === requestingName; + function computeAutoPlacement(state, options) { + if (options === void 0) { + options = {}; + } + + var _options = options, + placement = _options.placement, + boundary = _options.boundary, + rootBoundary = _options.rootBoundary, + padding = _options.padding, + flipVariations = _options.flipVariations, + _options$allowedAutoP = _options.allowedAutoPlacements, + allowedAutoPlacements = _options$allowedAutoP === void 0 ? placements : _options$allowedAutoP; + var variation = getVariation(placement); + var placements$1 = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) { + return getVariation(placement) === variation; + }) : basePlacements; + var allowedPlacements = placements$1.filter(function (placement) { + return allowedAutoPlacements.indexOf(placement) >= 0; }); - var isRequired = !!requesting && modifiers.some(function (modifier) { - return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order; + if (allowedPlacements.length === 0) { + allowedPlacements = placements$1; + } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions... + + + var overflows = allowedPlacements.reduce(function (acc, placement) { + acc[placement] = detectOverflow(state, { + placement: placement, + boundary: boundary, + rootBoundary: rootBoundary, + padding: padding + })[getBasePlacement(placement)]; + return acc; + }, {}); + return Object.keys(overflows).sort(function (a, b) { + return overflows[a] - overflows[b]; }); + } - if (!isRequired) { - var _requesting = '`' + requestingName + '`'; - var requested = '`' + requestedName + '`'; - console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!'); + function getExpandedFallbackPlacements(placement) { + if (getBasePlacement(placement) === auto) { + return []; } - return isRequired; + + var oppositePlacement = getOppositePlacement(placement); + return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)]; } - /** - * @function - * @memberof Modifiers - * @argument {Object} data - The data object generated by update method - * @argument {Object} options - Modifiers configuration and options - * @returns {Object} The data object, properly modified - */ - function arrow(data, options) { - var _data$offsets$arrow; + function flip(_ref) { + var state = _ref.state, + options = _ref.options, + name = _ref.name; - // arrow depends on keepTogether in order to work - if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) { - return data; + if (state.modifiersData[name]._skip) { + return; } - var arrowElement = options.element; + var _options$mainAxis = options.mainAxis, + checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis, + _options$altAxis = options.altAxis, + checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis, + specifiedFallbackPlacements = options.fallbackPlacements, + padding = options.padding, + boundary = options.boundary, + rootBoundary = options.rootBoundary, + altBoundary = options.altBoundary, + _options$flipVariatio = options.flipVariations, + flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio, + allowedAutoPlacements = options.allowedAutoPlacements; + var preferredPlacement = state.options.placement; + var basePlacement = getBasePlacement(preferredPlacement); + var isBasePlacement = basePlacement === preferredPlacement; + var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement)); + var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) { + return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, { + placement: placement, + boundary: boundary, + rootBoundary: rootBoundary, + padding: padding, + flipVariations: flipVariations, + allowedAutoPlacements: allowedAutoPlacements + }) : placement); + }, []); + var referenceRect = state.rects.reference; + var popperRect = state.rects.popper; + var checksMap = new Map(); + var makeFallbackChecks = true; + var firstFittingPlacement = placements[0]; + + for (var i = 0; i < placements.length; i++) { + var placement = placements[i]; + + var _basePlacement = getBasePlacement(placement); + + var isStartVariation = getVariation(placement) === start; + var isVertical = [top, bottom].indexOf(_basePlacement) >= 0; + var len = isVertical ? 'width' : 'height'; + var overflow = detectOverflow(state, { + placement: placement, + boundary: boundary, + rootBoundary: rootBoundary, + altBoundary: altBoundary, + padding: padding + }); + var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top; - // if arrowElement is a string, suppose it's a CSS selector - if (typeof arrowElement === 'string') { - arrowElement = data.instance.popper.querySelector(arrowElement); + if (referenceRect[len] > popperRect[len]) { + mainVariationSide = getOppositePlacement(mainVariationSide); + } - // if arrowElement is not found, don't run the modifier - if (!arrowElement) { - return data; + var altVariationSide = getOppositePlacement(mainVariationSide); + var checks = []; + + if (checkMainAxis) { + checks.push(overflow[_basePlacement] <= 0); } - } else { - // if the arrowElement isn't a query selector we must check that the - // provided DOM node is child of its popper node - if (!data.instance.popper.contains(arrowElement)) { - console.warn('WARNING: `arrow.element` must be child of its popper element!'); - return data; + + if (checkAltAxis) { + checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0); } + + if (checks.every(function (check) { + return check; + })) { + firstFittingPlacement = placement; + makeFallbackChecks = false; + break; + } + + checksMap.set(placement, checks); } - var placement = data.placement.split('-')[0]; - var _data$offsets = data.offsets, - popper = _data$offsets.popper, - reference = _data$offsets.reference; + if (makeFallbackChecks) { + // `2` may be desired in some cases – research later + var numberOfChecks = flipVariations ? 3 : 1; - var isVertical = ['left', 'right'].indexOf(placement) !== -1; + var _loop = function _loop(_i) { + var fittingPlacement = placements.find(function (placement) { + var checks = checksMap.get(placement); - var len = isVertical ? 'height' : 'width'; - var sideCapitalized = isVertical ? 'Top' : 'Left'; - var side = sideCapitalized.toLowerCase(); - var altSide = isVertical ? 'left' : 'top'; - var opSide = isVertical ? 'bottom' : 'right'; - var arrowElementSize = getOuterSizes(arrowElement)[len]; + if (checks) { + return checks.slice(0, _i).every(function (check) { + return check; + }); + } + }); + + if (fittingPlacement) { + firstFittingPlacement = fittingPlacement; + return "break"; + } + }; - // - // extends keepTogether behavior making sure the popper and its - // reference have enough pixels in conjunction - // + for (var _i = numberOfChecks; _i > 0; _i--) { + var _ret = _loop(_i); - // top/left side - if (reference[opSide] - arrowElementSize < popper[side]) { - data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize); - } - // bottom/right side - if (reference[side] + arrowElementSize > popper[opSide]) { - data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide]; + if (_ret === "break") break; + } } - data.offsets.popper = getClientRect(data.offsets.popper); - // compute center of the popper - var center = reference[side] + reference[len] / 2 - arrowElementSize / 2; + if (state.placement !== firstFittingPlacement) { + state.modifiersData[name]._skip = true; + state.placement = firstFittingPlacement; + state.reset = true; + } + } // eslint-disable-next-line import/no-unused-modules - // Compute the sideValue using the updated popper offsets - // take popper margin in account because we don't have this info available - var css = getStyleComputedProperty(data.instance.popper); - var popperMarginSide = parseFloat(css['margin' + sideCapitalized]); - var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']); - var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide; - // prevent arrowElement from being placed not contiguously to its popper - sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0); + var flip$1 = { + name: 'flip', + enabled: true, + phase: 'main', + fn: flip, + requiresIfExists: ['offset'], + data: { + _skip: false + } + }; - data.arrowElement = arrowElement; - data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow); + function getSideOffsets(overflow, rect, preventedOffsets) { + if (preventedOffsets === void 0) { + preventedOffsets = { + x: 0, + y: 0 + }; + } - return data; + return { + top: overflow.top - rect.height - preventedOffsets.y, + right: overflow.right - rect.width + preventedOffsets.x, + bottom: overflow.bottom - rect.height + preventedOffsets.y, + left: overflow.left - rect.width - preventedOffsets.x + }; } - /** - * Get the opposite placement variation of the given one - * @method - * @memberof Popper.Utils - * @argument {String} placement variation - * @returns {String} flipped placement variation - */ - function getOppositeVariation(variation) { - if (variation === 'end') { - return 'start'; - } else if (variation === 'start') { - return 'end'; - } - return variation; + function isAnySideFullyClipped(overflow) { + return [top, right, bottom, left].some(function (side) { + return overflow[side] >= 0; + }); } - /** - * List of accepted placements to use as values of the `placement` option.<br /> - * Valid placements are: - * - `auto` - * - `top` - * - `right` - * - `bottom` - * - `left` - * - * Each placement can have a variation from this list: - * - `-start` - * - `-end` - * - * Variations are interpreted easily if you think of them as the left to right - * written languages. Horizontally (`top` and `bottom`), `start` is left and `end` - * is right.<br /> - * Vertically (`left` and `right`), `start` is top and `end` is bottom. - * - * Some valid examples are: - * - `top-end` (on top of reference, right aligned) - * - `right-start` (on right of reference, top aligned) - * - `bottom` (on bottom, centered) - * - `auto-end` (on the side with more space available, alignment depends by placement) - * - * @static - * @type {Array} - * @enum {String} - * @readonly - * @method placements - * @memberof Popper - */ - var placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start']; - - // Get rid of `auto` `auto-start` and `auto-end` - var validPlacements = placements.slice(3); - - /** - * Given an initial placement, returns all the subsequent placements - * clockwise (or counter-clockwise). - * - * @method - * @memberof Popper.Utils - * @argument {String} placement - A valid placement (it accepts variations) - * @argument {Boolean} counter - Set to true to walk the placements counterclockwise - * @returns {Array} placements including their variations - */ - function clockwise(placement) { - var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + function hide$1(_ref) { + var state = _ref.state, + name = _ref.name; + var referenceRect = state.rects.reference; + var popperRect = state.rects.popper; + var preventedOffsets = state.modifiersData.preventOverflow; + var referenceOverflow = detectOverflow(state, { + elementContext: 'reference' + }); + var popperAltOverflow = detectOverflow(state, { + altBoundary: true + }); + var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect); + var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets); + var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets); + var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets); + state.modifiersData[name] = { + referenceClippingOffsets: referenceClippingOffsets, + popperEscapeOffsets: popperEscapeOffsets, + isReferenceHidden: isReferenceHidden, + hasPopperEscaped: hasPopperEscaped + }; + state.attributes.popper = Object.assign({}, state.attributes.popper, { + 'data-popper-reference-hidden': isReferenceHidden, + 'data-popper-escaped': hasPopperEscaped + }); + } // eslint-disable-next-line import/no-unused-modules - var index = validPlacements.indexOf(placement); - var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index)); - return counter ? arr.reverse() : arr; - } - var BEHAVIORS = { - FLIP: 'flip', - CLOCKWISE: 'clockwise', - COUNTERCLOCKWISE: 'counterclockwise' + var hide$2 = { + name: 'hide', + enabled: true, + phase: 'main', + requiresIfExists: ['preventOverflow'], + fn: hide$1 }; - /** - * @function - * @memberof Modifiers - * @argument {Object} data - The data object generated by update method - * @argument {Object} options - Modifiers configuration and options - * @returns {Object} The data object, properly modified - */ - function flip(data, options) { - // if `inner` modifier is enabled, we can't use the `flip` modifier - if (isModifierEnabled(data.instance.modifiers, 'inner')) { - return data; - } + function distanceAndSkiddingToXY(placement, rects, offset) { + var basePlacement = getBasePlacement(placement); + var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1; + + var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, { + placement: placement + })) : offset, + skidding = _ref[0], + distance = _ref[1]; + + skidding = skidding || 0; + distance = (distance || 0) * invertDistance; + return [left, right].indexOf(basePlacement) >= 0 ? { + x: distance, + y: skidding + } : { + x: skidding, + y: distance + }; + } - if (data.flipped && data.placement === data.originalPlacement) { - // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides - return data; + function offset(_ref2) { + var state = _ref2.state, + options = _ref2.options, + name = _ref2.name; + var _options$offset = options.offset, + offset = _options$offset === void 0 ? [0, 0] : _options$offset; + var data = placements.reduce(function (acc, placement) { + acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset); + return acc; + }, {}); + var _data$state$placement = data[state.placement], + x = _data$state$placement.x, + y = _data$state$placement.y; + + if (state.modifiersData.popperOffsets != null) { + state.modifiersData.popperOffsets.x += x; + state.modifiersData.popperOffsets.y += y; } - var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed); + state.modifiersData[name] = data; + } // eslint-disable-next-line import/no-unused-modules - var placement = data.placement.split('-')[0]; - var placementOpposite = getOppositePlacement(placement); - var variation = data.placement.split('-')[1] || ''; - var flipOrder = []; - - switch (options.behavior) { - case BEHAVIORS.FLIP: - flipOrder = [placement, placementOpposite]; - break; - case BEHAVIORS.CLOCKWISE: - flipOrder = clockwise(placement); - break; - case BEHAVIORS.COUNTERCLOCKWISE: - flipOrder = clockwise(placement, true); - break; - default: - flipOrder = options.behavior; - } + var offset$1 = { + name: 'offset', + enabled: true, + phase: 'main', + requires: ['popperOffsets'], + fn: offset + }; - flipOrder.forEach(function (step, index) { - if (placement !== step || flipOrder.length === index + 1) { - return data; - } + function popperOffsets(_ref) { + var state = _ref.state, + name = _ref.name; + // Offsets are the actual position the popper needs to have to be + // properly positioned near its reference element + // This is the most basic placement, and will be adjusted by + // the modifiers in the next step + state.modifiersData[name] = computeOffsets({ + reference: state.rects.reference, + element: state.rects.popper, + strategy: 'absolute', + placement: state.placement + }); + } // eslint-disable-next-line import/no-unused-modules - placement = data.placement.split('-')[0]; - placementOpposite = getOppositePlacement(placement); - var popperOffsets = data.offsets.popper; - var refOffsets = data.offsets.reference; + var popperOffsets$1 = { + name: 'popperOffsets', + enabled: true, + phase: 'read', + fn: popperOffsets, + data: {} + }; - // using floor because the reference offsets may contain decimals we are not going to consider here - var floor = Math.floor; - var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom); + function getAltAxis(axis) { + return axis === 'x' ? 'y' : 'x'; + } - var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left); - var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right); - var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top); - var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom); + function preventOverflow(_ref) { + var state = _ref.state, + options = _ref.options, + name = _ref.name; + var _options$mainAxis = options.mainAxis, + checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis, + _options$altAxis = options.altAxis, + checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis, + boundary = options.boundary, + rootBoundary = options.rootBoundary, + altBoundary = options.altBoundary, + padding = options.padding, + _options$tether = options.tether, + tether = _options$tether === void 0 ? true : _options$tether, + _options$tetherOffset = options.tetherOffset, + tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset; + var overflow = detectOverflow(state, { + boundary: boundary, + rootBoundary: rootBoundary, + padding: padding, + altBoundary: altBoundary + }); + var basePlacement = getBasePlacement(state.placement); + var variation = getVariation(state.placement); + var isBasePlacement = !variation; + var mainAxis = getMainAxisFromPlacement(basePlacement); + var altAxis = getAltAxis(mainAxis); + var popperOffsets = state.modifiersData.popperOffsets; + var referenceRect = state.rects.reference; + var popperRect = state.rects.popper; + var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, { + placement: state.placement + })) : tetherOffset; + var data = { + x: 0, + y: 0 + }; - var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom; + if (!popperOffsets) { + return; + } - // flip the variation if required - var isVertical = ['top', 'bottom'].indexOf(placement) !== -1; + if (checkMainAxis || checkAltAxis) { + var mainSide = mainAxis === 'y' ? top : left; + var altSide = mainAxis === 'y' ? bottom : right; + var len = mainAxis === 'y' ? 'height' : 'width'; + var offset = popperOffsets[mainAxis]; + var min$1 = popperOffsets[mainAxis] + overflow[mainSide]; + var max$1 = popperOffsets[mainAxis] - overflow[altSide]; + var additive = tether ? -popperRect[len] / 2 : 0; + var minLen = variation === start ? referenceRect[len] : popperRect[len]; + var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go + // outside the reference bounds + + var arrowElement = state.elements.arrow; + var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : { + width: 0, + height: 0 + }; + var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject(); + var arrowPaddingMin = arrowPaddingObject[mainSide]; + var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want + // to include its full size in the calculation. If the reference is small + // and near the edge of a boundary, the popper can overflow even if the + // reference is not overflowing as well (e.g. virtual elements with no + // width or height) - // flips variation if reference element overflows boundaries - var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom); + var arrowLen = within(0, referenceRect[len], arrowRect[len]); + var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - tetherOffsetValue : minLen - arrowLen - arrowPaddingMin - tetherOffsetValue; + var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + tetherOffsetValue : maxLen + arrowLen + arrowPaddingMax + tetherOffsetValue; + var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow); + var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0; + var offsetModifierValue = state.modifiersData.offset ? state.modifiersData.offset[state.placement][mainAxis] : 0; + var tetherMin = popperOffsets[mainAxis] + minOffset - offsetModifierValue - clientOffset; + var tetherMax = popperOffsets[mainAxis] + maxOffset - offsetModifierValue; - // flips variation if popper content overflows boundaries - var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop); + if (checkMainAxis) { + var preventedOffset = within(tether ? min(min$1, tetherMin) : min$1, offset, tether ? max(max$1, tetherMax) : max$1); + popperOffsets[mainAxis] = preventedOffset; + data[mainAxis] = preventedOffset - offset; + } - var flippedVariation = flippedVariationByRef || flippedVariationByContent; + if (checkAltAxis) { + var _mainSide = mainAxis === 'x' ? top : left; - if (overlapsRef || overflowsBoundaries || flippedVariation) { - // this boolean to detect any flip loop - data.flipped = true; + var _altSide = mainAxis === 'x' ? bottom : right; - if (overlapsRef || overflowsBoundaries) { - placement = flipOrder[index + 1]; - } + var _offset = popperOffsets[altAxis]; - if (flippedVariation) { - variation = getOppositeVariation(variation); - } + var _min = _offset + overflow[_mainSide]; - data.placement = placement + (variation ? '-' + variation : ''); + var _max = _offset - overflow[_altSide]; - // this object contains `position`, we want to preserve it along with - // any additional property we may add in the future - data.offsets.popper = _extends$1({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement)); + var _preventedOffset = within(tether ? min(_min, tetherMin) : _min, _offset, tether ? max(_max, tetherMax) : _max); - data = runModifiers(data.instance.modifiers, data, 'flip'); + popperOffsets[altAxis] = _preventedOffset; + data[altAxis] = _preventedOffset - _offset; } - }); - return data; - } + } - /** - * @function - * @memberof Modifiers - * @argument {Object} data - The data object generated by update method - * @argument {Object} options - Modifiers configuration and options - * @returns {Object} The data object, properly modified - */ - function keepTogether(data) { - var _data$offsets = data.offsets, - popper = _data$offsets.popper, - reference = _data$offsets.reference; + state.modifiersData[name] = data; + } // eslint-disable-next-line import/no-unused-modules - var placement = data.placement.split('-')[0]; - var floor = Math.floor; - var isVertical = ['top', 'bottom'].indexOf(placement) !== -1; - var side = isVertical ? 'right' : 'bottom'; - var opSide = isVertical ? 'left' : 'top'; - var measurement = isVertical ? 'width' : 'height'; - if (popper[side] < floor(reference[opSide])) { - data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement]; - } - if (popper[opSide] > floor(reference[side])) { - data.offsets.popper[opSide] = floor(reference[side]); - } + var preventOverflow$1 = { + name: 'preventOverflow', + enabled: true, + phase: 'main', + fn: preventOverflow, + requiresIfExists: ['offset'] + }; - return data; + function getHTMLElementScroll(element) { + return { + scrollLeft: element.scrollLeft, + scrollTop: element.scrollTop + }; } - /** - * Converts a string containing value + unit into a px value number - * @function - * @memberof {modifiers~offset} - * @private - * @argument {String} str - Value + unit string - * @argument {String} measurement - `height` or `width` - * @argument {Object} popperOffsets - * @argument {Object} referenceOffsets - * @returns {Number|String} - * Value in pixels, or original string if no values were extracted - */ - function toValue(str, measurement, popperOffsets, referenceOffsets) { - // separate value from unit - var split = str.match(/((?:\-|\+)?\d*\.?\d*)(.*)/); - var value = +split[1]; - var unit = split[2]; - - // If it's not a number it's an operator, I guess - if (!value) { - return str; - } - - if (unit.indexOf('%') === 0) { - var element = void 0; - switch (unit) { - case '%p': - element = popperOffsets; - break; - case '%': - case '%r': - default: - element = referenceOffsets; - } - - var rect = getClientRect(element); - return rect[measurement] / 100 * value; - } else if (unit === 'vh' || unit === 'vw') { - // if is a vh or vw, we calculate the size based on the viewport - var size = void 0; - if (unit === 'vh') { - size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0); - } else { - size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0); - } - return size / 100 * value; + function getNodeScroll(node) { + if (node === getWindow(node) || !isHTMLElement(node)) { + return getWindowScroll(node); } else { - // if is an explicit pixel unit, we get rid of the unit and keep the value - // if is an implicit unit, it's px, and we return just the value - return value; + return getHTMLElementScroll(node); } } - /** - * Parse an `offset` string to extrapolate `x` and `y` numeric offsets. - * @function - * @memberof {modifiers~offset} - * @private - * @argument {String} offset - * @argument {Object} popperOffsets - * @argument {Object} referenceOffsets - * @argument {String} basePlacement - * @returns {Array} a two cells array with x and y offsets in numbers - */ - function parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) { - var offsets = [0, 0]; - - // Use height if placement is left or right and index is 0 otherwise use width - // in this way the first offset will use an axis and the second one - // will use the other one - var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1; - - // Split the offset string to obtain a list of values and operands - // The regex addresses values with the plus or minus sign in front (+10, -20, etc) - var fragments = offset.split(/(\+|\-)/).map(function (frag) { - return frag.trim(); - }); + // Composite means it takes into account transforms as well as layout. - // Detect if the offset string contains a pair of values or a single one - // they could be separated by comma or space - var divider = fragments.indexOf(find(fragments, function (frag) { - return frag.search(/,|\s/) !== -1; - })); - - if (fragments[divider] && fragments[divider].indexOf(',') === -1) { - console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.'); - } - - // If divider is found, we divide the list of values and operands to divide - // them by ofset X and Y. - var splitRegex = /\s*,\s*|\s+/; - var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments]; - - // Convert the values with units to absolute pixels to allow our computations - ops = ops.map(function (op, index) { - // Most of the units rely on the orientation of the popper - var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width'; - var mergeWithPrevious = false; - return op - // This aggregates any `+` or `-` sign that aren't considered operators - // e.g.: 10 + +5 => [10, +, +5] - .reduce(function (a, b) { - if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) { - a[a.length - 1] = b; - mergeWithPrevious = true; - return a; - } else if (mergeWithPrevious) { - a[a.length - 1] += b; - mergeWithPrevious = false; - return a; - } else { - return a.concat(b); - } - }, []) - // Here we convert the string values into number values (in px) - .map(function (str) { - return toValue(str, measurement, popperOffsets, referenceOffsets); - }); - }); + function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) { + if (isFixed === void 0) { + isFixed = false; + } - // Loop trough the offsets arrays and execute the operations - ops.forEach(function (op, index) { - op.forEach(function (frag, index2) { - if (isNumeric(frag)) { - offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1); - } - }); - }); - return offsets; - } + var documentElement = getDocumentElement(offsetParent); + var rect = getBoundingClientRect(elementOrVirtualElement); + var isOffsetParentAnElement = isHTMLElement(offsetParent); + var scroll = { + scrollLeft: 0, + scrollTop: 0 + }; + var offsets = { + x: 0, + y: 0 + }; - /** - * @function - * @memberof Modifiers - * @argument {Object} data - The data object generated by update method - * @argument {Object} options - Modifiers configuration and options - * @argument {Number|String} options.offset=0 - * The offset value as described in the modifier description - * @returns {Object} The data object, properly modified - */ - function offset(data, _ref) { - var offset = _ref.offset; - var placement = data.placement, - _data$offsets = data.offsets, - popper = _data$offsets.popper, - reference = _data$offsets.reference; - - var basePlacement = placement.split('-')[0]; - - var offsets = void 0; - if (isNumeric(+offset)) { - offsets = [+offset, 0]; - } else { - offsets = parseOffset(offset, popper, reference, basePlacement); - } + if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) { + if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078 + isScrollParent(documentElement)) { + scroll = getNodeScroll(offsetParent); + } - if (basePlacement === 'left') { - popper.top += offsets[0]; - popper.left -= offsets[1]; - } else if (basePlacement === 'right') { - popper.top += offsets[0]; - popper.left += offsets[1]; - } else if (basePlacement === 'top') { - popper.left += offsets[0]; - popper.top -= offsets[1]; - } else if (basePlacement === 'bottom') { - popper.left += offsets[0]; - popper.top += offsets[1]; + if (isHTMLElement(offsetParent)) { + offsets = getBoundingClientRect(offsetParent); + offsets.x += offsetParent.clientLeft; + offsets.y += offsetParent.clientTop; + } else if (documentElement) { + offsets.x = getWindowScrollBarX(documentElement); + } } - data.popper = popper; - return data; + return { + x: rect.left + scroll.scrollLeft - offsets.x, + y: rect.top + scroll.scrollTop - offsets.y, + width: rect.width, + height: rect.height + }; } - /** - * @function - * @memberof Modifiers - * @argument {Object} data - The data object generated by `update` method - * @argument {Object} options - Modifiers configuration and options - * @returns {Object} The data object, properly modified - */ - function preventOverflow(data, options) { - var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper); - - // If offsetParent is the reference element, we really want to - // go one step up and use the next offsetParent as reference to - // avoid to make this modifier completely useless and look like broken - if (data.instance.reference === boundariesElement) { - boundariesElement = getOffsetParent(boundariesElement); - } - - // NOTE: DOM access here - // resets the popper's position so that the document size can be calculated excluding - // the size of the popper element itself - var transformProp = getSupportedPropertyName('transform'); - var popperStyles = data.instance.popper.style; // assignment to help minification - var top = popperStyles.top, - left = popperStyles.left, - transform = popperStyles[transformProp]; - - popperStyles.top = ''; - popperStyles.left = ''; - popperStyles[transformProp] = ''; - - var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed); - - // NOTE: DOM access here - // restores the original style properties after the offsets have been computed - popperStyles.top = top; - popperStyles.left = left; - popperStyles[transformProp] = transform; - - options.boundaries = boundaries; - - var order = options.priority; - var popper = data.offsets.popper; - - var check = { - primary: function primary(placement) { - var value = popper[placement]; - if (popper[placement] < boundaries[placement] && !options.escapeWithReference) { - value = Math.max(popper[placement], boundaries[placement]); - } - return defineProperty({}, placement, value); - }, - secondary: function secondary(placement) { - var mainSide = placement === 'right' ? 'left' : 'top'; - var value = popper[mainSide]; - if (popper[placement] > boundaries[placement] && !options.escapeWithReference) { - value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height)); + function order(modifiers) { + var map = new Map(); + var visited = new Set(); + var result = []; + modifiers.forEach(function (modifier) { + map.set(modifier.name, modifier); + }); // On visiting object, check for its dependencies and visit them recursively + + function sort(modifier) { + visited.add(modifier.name); + var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []); + requires.forEach(function (dep) { + if (!visited.has(dep)) { + var depModifier = map.get(dep); + + if (depModifier) { + sort(depModifier); + } } - return defineProperty({}, mainSide, value); - } - }; + }); + result.push(modifier); + } - order.forEach(function (placement) { - var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary'; - popper = _extends$1({}, popper, check[side](placement)); + modifiers.forEach(function (modifier) { + if (!visited.has(modifier.name)) { + // check for visited object + sort(modifier); + } }); - - data.offsets.popper = popper; - - return data; + return result; } - /** - * @function - * @memberof Modifiers - * @argument {Object} data - The data object generated by `update` method - * @argument {Object} options - Modifiers configuration and options - * @returns {Object} The data object, properly modified - */ - function shift(data) { - var placement = data.placement; - var basePlacement = placement.split('-')[0]; - var shiftvariation = placement.split('-')[1]; - - // if shift shiftvariation is specified, run the modifier - if (shiftvariation) { - var _data$offsets = data.offsets, - reference = _data$offsets.reference, - popper = _data$offsets.popper; - - var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1; - var side = isVertical ? 'left' : 'top'; - var measurement = isVertical ? 'width' : 'height'; - - var shiftOffsets = { - start: defineProperty({}, side, reference[side]), - end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement]) - }; + function orderModifiers(modifiers) { + // order based on dependencies + var orderedModifiers = order(modifiers); // order based on phase - data.offsets.popper = _extends$1({}, popper, shiftOffsets[shiftvariation]); - } - - return data; + return modifierPhases.reduce(function (acc, phase) { + return acc.concat(orderedModifiers.filter(function (modifier) { + return modifier.phase === phase; + })); + }, []); } - /** - * @function - * @memberof Modifiers - * @argument {Object} data - The data object generated by update method - * @argument {Object} options - Modifiers configuration and options - * @returns {Object} The data object, properly modified - */ - function hide(data) { - if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) { - return data; - } - - var refRect = data.offsets.reference; - var bound = find(data.instance.modifiers, function (modifier) { - return modifier.name === 'preventOverflow'; - }).boundaries; - - if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) { - // Avoid unnecessary DOM access if visibility hasn't changed - if (data.hide === true) { - return data; - } - - data.hide = true; - data.attributes['x-out-of-boundaries'] = ''; - } else { - // Avoid unnecessary DOM access if visibility hasn't changed - if (data.hide === false) { - return data; + function debounce(fn) { + var pending; + return function () { + if (!pending) { + pending = new Promise(function (resolve) { + Promise.resolve().then(function () { + pending = undefined; + resolve(fn()); + }); + }); } - data.hide = false; - data.attributes['x-out-of-boundaries'] = false; - } - - return data; + return pending; + }; } - /** - * @function - * @memberof Modifiers - * @argument {Object} data - The data object generated by `update` method - * @argument {Object} options - Modifiers configuration and options - * @returns {Object} The data object, properly modified - */ - function inner(data) { - var placement = data.placement; - var basePlacement = placement.split('-')[0]; - var _data$offsets = data.offsets, - popper = _data$offsets.popper, - reference = _data$offsets.reference; - - var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1; - - var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1; - - popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0); - - data.placement = getOppositePlacement(placement); - data.offsets.popper = getClientRect(popper); - - return data; + function mergeByName(modifiers) { + var merged = modifiers.reduce(function (merged, current) { + var existing = merged[current.name]; + merged[current.name] = existing ? Object.assign({}, existing, current, { + options: Object.assign({}, existing.options, current.options), + data: Object.assign({}, existing.data, current.data) + }) : current; + return merged; + }, {}); // IE11 does not support Object.values + + return Object.keys(merged).map(function (key) { + return merged[key]; + }); } - /** - * Modifier function, each modifier can have a function of this type assigned - * to its `fn` property.<br /> - * These functions will be called on each update, this means that you must - * make sure they are performant enough to avoid performance bottlenecks. - * - * @function ModifierFn - * @argument {dataObject} data - The data object generated by `update` method - * @argument {Object} options - Modifiers configuration and options - * @returns {dataObject} The data object, properly modified - */ - - /** - * Modifiers are plugins used to alter the behavior of your poppers.<br /> - * Popper.js uses a set of 9 modifiers to provide all the basic functionalities - * needed by the library. - * - * Usually you don't want to override the `order`, `fn` and `onLoad` props. - * All the other properties are configurations that could be tweaked. - * @namespace modifiers - */ - var modifiers = { - /** - * Modifier used to shift the popper on the start or end of its reference - * element.<br /> - * It will read the variation of the `placement` property.<br /> - * It can be one either `-end` or `-start`. - * @memberof modifiers - * @inner - */ - shift: { - /** @prop {number} order=100 - Index used to define the order of execution */ - order: 100, - /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ - enabled: true, - /** @prop {ModifierFn} */ - fn: shift - }, - - /** - * The `offset` modifier can shift your popper on both its axis. - * - * It accepts the following units: - * - `px` or unit-less, interpreted as pixels - * - `%` or `%r`, percentage relative to the length of the reference element - * - `%p`, percentage relative to the length of the popper element - * - `vw`, CSS viewport width unit - * - `vh`, CSS viewport height unit - * - * For length is intended the main axis relative to the placement of the popper.<br /> - * This means that if the placement is `top` or `bottom`, the length will be the - * `width`. In case of `left` or `right`, it will be the `height`. - * - * You can provide a single value (as `Number` or `String`), or a pair of values - * as `String` divided by a comma or one (or more) white spaces.<br /> - * The latter is a deprecated method because it leads to confusion and will be - * removed in v2.<br /> - * Additionally, it accepts additions and subtractions between different units. - * Note that multiplications and divisions aren't supported. - * - * Valid examples are: - * ``` - * 10 - * '10%' - * '10, 10' - * '10%, 10' - * '10 + 10%' - * '10 - 5vh + 3%' - * '-10px + 5vh, 5px - 6%' - * ``` - * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap - * > with their reference element, unfortunately, you will have to disable the `flip` modifier. - * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373). - * - * @memberof modifiers - * @inner - */ - offset: { - /** @prop {number} order=200 - Index used to define the order of execution */ - order: 200, - /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ - enabled: true, - /** @prop {ModifierFn} */ - fn: offset, - /** @prop {Number|String} offset=0 - * The offset value as described in the modifier description - */ - offset: 0 - }, - - /** - * Modifier used to prevent the popper from being positioned outside the boundary. - * - * A scenario exists where the reference itself is not within the boundaries.<br /> - * We can say it has "escaped the boundaries" — or just "escaped".<br /> - * In this case we need to decide whether the popper should either: - * - * - detach from the reference and remain "trapped" in the boundaries, or - * - if it should ignore the boundary and "escape with its reference" - * - * When `escapeWithReference` is set to`true` and reference is completely - * outside its boundaries, the popper will overflow (or completely leave) - * the boundaries in order to remain attached to the edge of the reference. - * - * @memberof modifiers - * @inner - */ - preventOverflow: { - /** @prop {number} order=300 - Index used to define the order of execution */ - order: 300, - /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ - enabled: true, - /** @prop {ModifierFn} */ - fn: preventOverflow, - /** - * @prop {Array} [priority=['left','right','top','bottom']] - * Popper will try to prevent overflow following these priorities by default, - * then, it could overflow on the left and on top of the `boundariesElement` - */ - priority: ['left', 'right', 'top', 'bottom'], - /** - * @prop {number} padding=5 - * Amount of pixel used to define a minimum distance between the boundaries - * and the popper. This makes sure the popper always has a little padding - * between the edges of its container - */ - padding: 5, - /** - * @prop {String|HTMLElement} boundariesElement='scrollParent' - * Boundaries used by the modifier. Can be `scrollParent`, `window`, - * `viewport` or any DOM element. - */ - boundariesElement: 'scrollParent' - }, - - /** - * Modifier used to make sure the reference and its popper stay near each other - * without leaving any gap between the two. Especially useful when the arrow is - * enabled and you want to ensure that it points to its reference element. - * It cares only about the first axis. You can still have poppers with margin - * between the popper and its reference element. - * @memberof modifiers - * @inner - */ - keepTogether: { - /** @prop {number} order=400 - Index used to define the order of execution */ - order: 400, - /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ - enabled: true, - /** @prop {ModifierFn} */ - fn: keepTogether - }, - - /** - * This modifier is used to move the `arrowElement` of the popper to make - * sure it is positioned between the reference element and its popper element. - * It will read the outer size of the `arrowElement` node to detect how many - * pixels of conjunction are needed. - * - * It has no effect if no `arrowElement` is provided. - * @memberof modifiers - * @inner - */ - arrow: { - /** @prop {number} order=500 - Index used to define the order of execution */ - order: 500, - /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ - enabled: true, - /** @prop {ModifierFn} */ - fn: arrow, - /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */ - element: '[x-arrow]' - }, - - /** - * Modifier used to flip the popper's placement when it starts to overlap its - * reference element. - * - * Requires the `preventOverflow` modifier before it in order to work. - * - * **NOTE:** this modifier will interrupt the current update cycle and will - * restart it if it detects the need to flip the placement. - * @memberof modifiers - * @inner - */ - flip: { - /** @prop {number} order=600 - Index used to define the order of execution */ - order: 600, - /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ - enabled: true, - /** @prop {ModifierFn} */ - fn: flip, - /** - * @prop {String|Array} behavior='flip' - * The behavior used to change the popper's placement. It can be one of - * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid - * placements (with optional variations) - */ - behavior: 'flip', - /** - * @prop {number} padding=5 - * The popper will flip if it hits the edges of the `boundariesElement` - */ - padding: 5, - /** - * @prop {String|HTMLElement} boundariesElement='viewport' - * The element which will define the boundaries of the popper position. - * The popper will never be placed outside of the defined boundaries - * (except if `keepTogether` is enabled) - */ - boundariesElement: 'viewport', - /** - * @prop {Boolean} flipVariations=false - * The popper will switch placement variation between `-start` and `-end` when - * the reference element overlaps its boundaries. - * - * The original placement should have a set variation. - */ - flipVariations: false, - /** - * @prop {Boolean} flipVariationsByContent=false - * The popper will switch placement variation between `-start` and `-end` when - * the popper element overlaps its reference boundaries. - * - * The original placement should have a set variation. - */ - flipVariationsByContent: false - }, - - /** - * Modifier used to make the popper flow toward the inner of the reference element. - * By default, when this modifier is disabled, the popper will be placed outside - * the reference element. - * @memberof modifiers - * @inner - */ - inner: { - /** @prop {number} order=700 - Index used to define the order of execution */ - order: 700, - /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */ - enabled: false, - /** @prop {ModifierFn} */ - fn: inner - }, - - /** - * Modifier used to hide the popper when its reference element is outside of the - * popper boundaries. It will set a `x-out-of-boundaries` attribute which can - * be used to hide with a CSS selector the popper when its reference is - * out of boundaries. - * - * Requires the `preventOverflow` modifier before it in order to work. - * @memberof modifiers - * @inner - */ - hide: { - /** @prop {number} order=800 - Index used to define the order of execution */ - order: 800, - /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ - enabled: true, - /** @prop {ModifierFn} */ - fn: hide - }, - - /** - * Computes the style that will be applied to the popper element to gets - * properly positioned. - * - * Note that this modifier will not touch the DOM, it just prepares the styles - * so that `applyStyle` modifier can apply it. This separation is useful - * in case you need to replace `applyStyle` with a custom implementation. - * - * This modifier has `850` as `order` value to maintain backward compatibility - * with previous versions of Popper.js. Expect the modifiers ordering method - * to change in future major versions of the library. - * - * @memberof modifiers - * @inner - */ - computeStyle: { - /** @prop {number} order=850 - Index used to define the order of execution */ - order: 850, - /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ - enabled: true, - /** @prop {ModifierFn} */ - fn: computeStyle, - /** - * @prop {Boolean} gpuAcceleration=true - * If true, it uses the CSS 3D transformation to position the popper. - * Otherwise, it will use the `top` and `left` properties - */ - gpuAcceleration: true, - /** - * @prop {string} [x='bottom'] - * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin. - * Change this if your popper should grow in a direction different from `bottom` - */ - x: 'bottom', - /** - * @prop {string} [x='left'] - * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin. - * Change this if your popper should grow in a direction different from `right` - */ - y: 'right' - }, - - /** - * Applies the computed styles to the popper element. - * - * All the DOM manipulations are limited to this modifier. This is useful in case - * you want to integrate Popper.js inside a framework or view library and you - * want to delegate all the DOM manipulations to it. - * - * Note that if you disable this modifier, you must make sure the popper element - * has its position set to `absolute` before Popper.js can do its work! - * - * Just disable this modifier and define your own to achieve the desired effect. - * - * @memberof modifiers - * @inner - */ - applyStyle: { - /** @prop {number} order=900 - Index used to define the order of execution */ - order: 900, - /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ - enabled: true, - /** @prop {ModifierFn} */ - fn: applyStyle, - /** @prop {Function} */ - onLoad: applyStyleOnLoad, - /** - * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier - * @prop {Boolean} gpuAcceleration=true - * If true, it uses the CSS 3D transformation to position the popper. - * Otherwise, it will use the `top` and `left` properties - */ - gpuAcceleration: undefined - } - }; - - /** - * The `dataObject` is an object containing all the information used by Popper.js. - * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks. - * @name dataObject - * @property {Object} data.instance The Popper.js instance - * @property {String} data.placement Placement applied to popper - * @property {String} data.originalPlacement Placement originally defined on init - * @property {Boolean} data.flipped True if popper has been flipped by flip modifier - * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper - * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier - * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`) - * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`) - * @property {Object} data.boundaries Offsets of the popper boundaries - * @property {Object} data.offsets The measurements of popper, reference and arrow elements - * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values - * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values - * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0 - */ - - /** - * Default options provided to Popper.js constructor.<br /> - * These can be overridden using the `options` argument of Popper.js.<br /> - * To override an option, simply pass an object with the same - * structure of the `options` object, as the 3rd argument. For example: - * ``` - * new Popper(ref, pop, { - * modifiers: { - * preventOverflow: { enabled: false } - * } - * }) - * ``` - * @type {Object} - * @static - * @memberof Popper - */ - var Defaults = { - /** - * Popper's placement. - * @prop {Popper.placements} placement='bottom' - */ + var DEFAULT_OPTIONS = { placement: 'bottom', - - /** - * Set this to true if you want popper to position it self in 'fixed' mode - * @prop {Boolean} positionFixed=false - */ - positionFixed: false, - - /** - * Whether events (resize, scroll) are initially enabled. - * @prop {Boolean} eventsEnabled=true - */ - eventsEnabled: true, - - /** - * Set to true if you want to automatically remove the popper when - * you call the `destroy` method. - * @prop {Boolean} removeOnDestroy=false - */ - removeOnDestroy: false, - - /** - * Callback called when the popper is created.<br /> - * By default, it is set to no-op.<br /> - * Access Popper.js instance with `data.instance`. - * @prop {onCreate} - */ - onCreate: function onCreate() {}, - - /** - * Callback called when the popper is updated. This callback is not called - * on the initialization/creation of the popper, but only on subsequent - * updates.<br /> - * By default, it is set to no-op.<br /> - * Access Popper.js instance with `data.instance`. - * @prop {onUpdate} - */ - onUpdate: function onUpdate() {}, - - /** - * List of modifiers used to modify the offsets before they are applied to the popper. - * They provide most of the functionalities of Popper.js. - * @prop {modifiers} - */ - modifiers: modifiers + modifiers: [], + strategy: 'absolute' }; - /** - * @callback onCreate - * @param {dataObject} data - */ + function areValidElements() { + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } - /** - * @callback onUpdate - * @param {dataObject} data - */ + return !args.some(function (element) { + return !(element && typeof element.getBoundingClientRect === 'function'); + }); + } - // Utils - // Methods - var Popper = function () { - /** - * Creates a new Popper.js instance. - * @class Popper - * @param {Element|referenceObject} reference - The reference element used to position the popper - * @param {Element} popper - The HTML / XML element used as the popper - * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults) - * @return {Object} instance - The generated Popper.js instance - */ - function Popper(reference, popper) { - var _this = this; - - var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; - classCallCheck(this, Popper); - - this.scheduleUpdate = function () { - return requestAnimationFrame(_this.update); + function popperGenerator(generatorOptions) { + if (generatorOptions === void 0) { + generatorOptions = {}; + } + + var _generatorOptions = generatorOptions, + _generatorOptions$def = _generatorOptions.defaultModifiers, + defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def, + _generatorOptions$def2 = _generatorOptions.defaultOptions, + defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2; + return function createPopper(reference, popper, options) { + if (options === void 0) { + options = defaultOptions; + } + + var state = { + placement: 'bottom', + orderedModifiers: [], + options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions), + modifiersData: {}, + elements: { + reference: reference, + popper: popper + }, + attributes: {}, + styles: {} }; + var effectCleanupFns = []; + var isDestroyed = false; + var instance = { + state: state, + setOptions: function setOptions(options) { + cleanupModifierEffects(); + state.options = Object.assign({}, defaultOptions, state.options, options); + state.scrollParents = { + reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [], + popper: listScrollParents(popper) + }; // Orders the modifiers based on their dependencies and `phase` + // properties + + var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers + + state.orderedModifiers = orderedModifiers.filter(function (m) { + return m.enabled; + }); // Validate the provided modifiers so that the consumer will get warned + + runModifierEffects(); + return instance.update(); + }, + // Sync update – it will always be executed, even if not necessary. This + // is useful for low frequency updates where sync behavior simplifies the + // logic. + // For high frequency updates (e.g. `resize` and `scroll` events), always + // prefer the async Popper#update method + forceUpdate: function forceUpdate() { + if (isDestroyed) { + return; + } - // make update() debounced, so that it only runs at most once-per-tick - this.update = debounce(this.update.bind(this)); + var _state$elements = state.elements, + reference = _state$elements.reference, + popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements + // anymore - // with {} we create a new object with the options inside it - this.options = _extends$1({}, Popper.Defaults, options); + if (!areValidElements(reference, popper)) { - // init state - this.state = { - isDestroyed: false, - isCreated: false, - scrollParents: [] - }; - - // get reference and popper elements (allow jQuery wrappers) - this.reference = reference && reference.jquery ? reference[0] : reference; - this.popper = popper && popper.jquery ? popper[0] : popper; + return; + } // Store the reference and popper rects to be read by modifiers + + + state.rects = { + reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'), + popper: getLayoutRect(popper) + }; // Modifiers have the ability to reset the current update cycle. The + // most common use case for this is the `flip` modifier changing the + // placement, which then needs to re-run all the modifiers, because the + // logic was previously ran for the previous placement and is therefore + // stale/incorrect + + state.reset = false; + state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier + // is filled with the initial data specified by the modifier. This means + // it doesn't persist and is fresh on each update. + // To ensure persistent data, use `${name}#persistent` + + state.orderedModifiers.forEach(function (modifier) { + return state.modifiersData[modifier.name] = Object.assign({}, modifier.data); + }); - // Deep merge modifiers options - this.options.modifiers = {}; - Object.keys(_extends$1({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) { - _this.options.modifiers[name] = _extends$1({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {}); - }); + for (var index = 0; index < state.orderedModifiers.length; index++) { - // Refactoring modifiers' list (Object => Array) - this.modifiers = Object.keys(this.options.modifiers).map(function (name) { - return _extends$1({ - name: name - }, _this.options.modifiers[name]); - }) - // sort the modifiers by order - .sort(function (a, b) { - return a.order - b.order; - }); + if (state.reset === true) { + state.reset = false; + index = -1; + continue; + } - // modifiers have the ability to execute arbitrary code when Popper.js get inited - // such code is executed in the same order of its modifier - // they could add new properties to their options configuration - // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`! - this.modifiers.forEach(function (modifierOptions) { - if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) { - modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state); + var _state$orderedModifie = state.orderedModifiers[index], + fn = _state$orderedModifie.fn, + _state$orderedModifie2 = _state$orderedModifie.options, + _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2, + name = _state$orderedModifie.name; + + if (typeof fn === 'function') { + state = fn({ + state: state, + options: _options, + name: name, + instance: instance + }) || state; + } + } + }, + // Async and optimistically optimized update – it will not be executed if + // not necessary (debounced to run at most once-per-tick) + update: debounce(function () { + return new Promise(function (resolve) { + instance.forceUpdate(); + resolve(state); + }); + }), + destroy: function destroy() { + cleanupModifierEffects(); + isDestroyed = true; } - }); + }; - // fire the first update to position the popper in the right place - this.update(); + if (!areValidElements(reference, popper)) { - var eventsEnabled = this.options.eventsEnabled; - if (eventsEnabled) { - // setup event listeners, they will take care of update the position in specific situations - this.enableEventListeners(); + return instance; } - this.state.eventsEnabled = eventsEnabled; - } - - // We can't use class properties because they don't get listed in the - // class prototype and break stuff like Sinon stubs + instance.setOptions(options).then(function (state) { + if (!isDestroyed && options.onFirstUpdate) { + options.onFirstUpdate(state); + } + }); // Modifiers have the ability to execute arbitrary code before the first + // update cycle runs. They will be executed in the same order as the update + // cycle. This is useful when a modifier adds some persistent data that + // other modifiers need to use, but the modifier is run after the dependent + // one. + + function runModifierEffects() { + state.orderedModifiers.forEach(function (_ref3) { + var name = _ref3.name, + _ref3$options = _ref3.options, + options = _ref3$options === void 0 ? {} : _ref3$options, + effect = _ref3.effect; + + if (typeof effect === 'function') { + var cleanupFn = effect({ + state: state, + name: name, + instance: instance, + options: options + }); + var noopFn = function noopFn() {}; - createClass(Popper, [{ - key: 'update', - value: function update$$1() { - return update.call(this); - } - }, { - key: 'destroy', - value: function destroy$$1() { - return destroy.call(this); - } - }, { - key: 'enableEventListeners', - value: function enableEventListeners$$1() { - return enableEventListeners.call(this); - } - }, { - key: 'disableEventListeners', - value: function disableEventListeners$$1() { - return disableEventListeners.call(this); + effectCleanupFns.push(cleanupFn || noopFn); + } + }); } - /** - * Schedules an update. It will run on the next UI update available. - * @method scheduleUpdate - * @memberof Popper - */ - - - /** - * Collection of utilities useful when writing custom modifiers. - * Starting from version 1.7, this method is available only if you - * include `popper-utils.js` before `popper.js`. - * - * **DEPRECATION**: This way to access PopperUtils is deprecated - * and will be removed in v2! Use the PopperUtils module directly instead. - * Due to the high instability of the methods contained in Utils, we can't - * guarantee them to follow semver. Use them at your own risk! - * @static - * @private - * @type {Object} - * @deprecated since version 1.8 - * @member Utils - * @memberof Popper - */ + function cleanupModifierEffects() { + effectCleanupFns.forEach(function (fn) { + return fn(); + }); + effectCleanupFns = []; + } - }]); - return Popper; - }(); + return instance; + }; + } + var createPopper$2 = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules + + var defaultModifiers$1 = [eventListeners, popperOffsets$1, computeStyles$1, applyStyles$1]; + var createPopper$1 = /*#__PURE__*/popperGenerator({ + defaultModifiers: defaultModifiers$1 + }); // eslint-disable-next-line import/no-unused-modules + + var defaultModifiers = [eventListeners, popperOffsets$1, computeStyles$1, applyStyles$1, offset$1, flip$1, preventOverflow$1, arrow$1, hide$2]; + var createPopper = /*#__PURE__*/popperGenerator({ + defaultModifiers: defaultModifiers + }); // eslint-disable-next-line import/no-unused-modules + + var Popper = /*#__PURE__*/Object.freeze({ + __proto__: null, + popperGenerator: popperGenerator, + detectOverflow: detectOverflow, + createPopperBase: createPopper$2, + createPopper: createPopper, + createPopperLite: createPopper$1, + top: top, + bottom: bottom, + right: right, + left: left, + auto: auto, + basePlacements: basePlacements, + start: start, + end: end, + clippingParents: clippingParents, + viewport: viewport, + popper: popper, + reference: reference, + variationPlacements: variationPlacements, + placements: placements, + beforeRead: beforeRead, + read: read, + afterRead: afterRead, + beforeMain: beforeMain, + main: main, + afterMain: afterMain, + beforeWrite: beforeWrite, + write: write, + afterWrite: afterWrite, + modifierPhases: modifierPhases, + applyStyles: applyStyles$1, + arrow: arrow$1, + computeStyles: computeStyles$1, + eventListeners: eventListeners, + flip: flip$1, + hide: hide$2, + offset: offset$1, + popperOffsets: popperOffsets$1, + preventOverflow: preventOverflow$1 + }); /** - * The `referenceObject` is an object that provides an interface compatible with Popper.js - * and lets you use it as replacement of a real DOM node.<br /> - * You can use this method to position a popper relatively to a set of coordinates - * in case you don't have a DOM node to use as reference. - * - * ``` - * new Popper(referenceObject, popperNode); - * ``` - * - * NB: This feature isn't supported in Internet Explorer 10. - * @name referenceObject - * @property {Function} data.getBoundingClientRect - * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method. - * @property {number} data.clientWidth - * An ES6 getter that will return the width of the virtual reference element. - * @property {number} data.clientHeight - * An ES6 getter that will return the height of the virtual reference element. + * -------------------------------------------------------------------------- + * Bootstrap (v5.0.0-beta3): dropdown.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- */ - - - Popper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils; - Popper.placements = placements; - Popper.Defaults = Defaults; - /** * ------------------------------------------------------------------------ * Constants * ------------------------------------------------------------------------ */ - var NAME$4 = 'dropdown'; - var DATA_KEY$4 = 'bs.dropdown'; - var EVENT_KEY$4 = "." + DATA_KEY$4; - var DATA_API_KEY$4 = '.data-api'; - var ESCAPE_KEY = 'Escape'; - var SPACE_KEY = 'Space'; - var TAB_KEY = 'Tab'; - var ARROW_UP_KEY = 'ArrowUp'; - var ARROW_DOWN_KEY = 'ArrowDown'; - var RIGHT_MOUSE_BUTTON = 2; // MouseEvent.button value for the secondary button, usually the right button - - var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEY + "|" + ARROW_DOWN_KEY + "|" + ESCAPE_KEY); - var EVENT_HIDE$1 = "hide" + EVENT_KEY$4; - var EVENT_HIDDEN$1 = "hidden" + EVENT_KEY$4; - var EVENT_SHOW$1 = "show" + EVENT_KEY$4; - var EVENT_SHOWN$1 = "shown" + EVENT_KEY$4; - var EVENT_CLICK = "click" + EVENT_KEY$4; - var EVENT_CLICK_DATA_API$4 = "click" + EVENT_KEY$4 + DATA_API_KEY$4; - var EVENT_KEYDOWN_DATA_API = "keydown" + EVENT_KEY$4 + DATA_API_KEY$4; - var EVENT_KEYUP_DATA_API = "keyup" + EVENT_KEY$4 + DATA_API_KEY$4; - var CLASS_NAME_DISABLED = 'disabled'; - var CLASS_NAME_SHOW$1 = 'show'; - var CLASS_NAME_DROPUP = 'dropup'; - var CLASS_NAME_DROPEND = 'dropend'; - var CLASS_NAME_DROPSTART = 'dropstart'; - var CLASS_NAME_MENUEND = 'dropdown-menu-end'; - var CLASS_NAME_NAVBAR = 'navbar'; - var CLASS_NAME_POSITION_STATIC = 'position-static'; - var SELECTOR_DATA_TOGGLE$2 = '[data-bs-toggle="dropdown"]'; - var SELECTOR_FORM_CHILD = '.dropdown form'; - var SELECTOR_MENU = '.dropdown-menu'; - var SELECTOR_NAVBAR_NAV = '.navbar-nav'; - var SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'; - var PLACEMENT_TOP = isRTL ? 'top-end' : 'top-start'; - var PLACEMENT_TOPEND = isRTL ? 'top-start' : 'top-end'; - var PLACEMENT_BOTTOM = isRTL ? 'bottom-end' : 'bottom-start'; - var PLACEMENT_BOTTOMEND = isRTL ? 'bottom-start' : 'bottom-end'; - var PLACEMENT_RIGHT = isRTL ? 'left-start' : 'right-start'; - var PLACEMENT_LEFT = isRTL ? 'right-start' : 'left-start'; - var Default$2 = { - offset: 0, - flip: true, - boundary: 'scrollParent', + const NAME$7 = 'dropdown'; + const DATA_KEY$7 = 'bs.dropdown'; + const EVENT_KEY$7 = `.${DATA_KEY$7}`; + const DATA_API_KEY$4 = '.data-api'; + const ESCAPE_KEY$2 = 'Escape'; + const SPACE_KEY = 'Space'; + const TAB_KEY = 'Tab'; + const ARROW_UP_KEY = 'ArrowUp'; + const ARROW_DOWN_KEY = 'ArrowDown'; + const RIGHT_MOUSE_BUTTON = 2; // MouseEvent.button value for the secondary button, usually the right button + + const REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEY}|${ARROW_DOWN_KEY}|${ESCAPE_KEY$2}`); + const EVENT_HIDE$4 = `hide${EVENT_KEY$7}`; + const EVENT_HIDDEN$4 = `hidden${EVENT_KEY$7}`; + const EVENT_SHOW$4 = `show${EVENT_KEY$7}`; + const EVENT_SHOWN$4 = `shown${EVENT_KEY$7}`; + const EVENT_CLICK = `click${EVENT_KEY$7}`; + const EVENT_CLICK_DATA_API$3 = `click${EVENT_KEY$7}${DATA_API_KEY$4}`; + const EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY$7}${DATA_API_KEY$4}`; + const EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY$7}${DATA_API_KEY$4}`; + const CLASS_NAME_DISABLED = 'disabled'; + const CLASS_NAME_SHOW$6 = 'show'; + const CLASS_NAME_DROPUP = 'dropup'; + const CLASS_NAME_DROPEND = 'dropend'; + const CLASS_NAME_DROPSTART = 'dropstart'; + const CLASS_NAME_NAVBAR = 'navbar'; + const SELECTOR_DATA_TOGGLE$3 = '[data-bs-toggle="dropdown"]'; + const SELECTOR_MENU = '.dropdown-menu'; + const SELECTOR_NAVBAR_NAV = '.navbar-nav'; + const SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'; + const PLACEMENT_TOP = isRTL() ? 'top-end' : 'top-start'; + const PLACEMENT_TOPEND = isRTL() ? 'top-start' : 'top-end'; + const PLACEMENT_BOTTOM = isRTL() ? 'bottom-end' : 'bottom-start'; + const PLACEMENT_BOTTOMEND = isRTL() ? 'bottom-start' : 'bottom-end'; + const PLACEMENT_RIGHT = isRTL() ? 'left-start' : 'right-start'; + const PLACEMENT_LEFT = isRTL() ? 'right-start' : 'left-start'; + const Default$6 = { + offset: [0, 2], + boundary: 'clippingParents', reference: 'toggle', display: 'dynamic', popperConfig: null }; - var DefaultType$2 = { - offset: '(number|string|function)', - flip: 'boolean', + const DefaultType$6 = { + offset: '(array|string|function)', boundary: '(string|element)', - reference: '(string|element)', + reference: '(string|element|object)', display: 'string', - popperConfig: '(null|object)' + popperConfig: '(null|object|function)' }; /** * ------------------------------------------------------------------------ @@ -4711,33 +3708,37 @@ * ------------------------------------------------------------------------ */ - var Dropdown = /*#__PURE__*/function (_BaseComponent) { - _inheritsLoose(Dropdown, _BaseComponent); + class Dropdown extends BaseComponent { + constructor(element, config) { + super(element); + this._popper = null; + this._config = this._getConfig(config); + this._menu = this._getMenuElement(); + this._inNavbar = this._detectNavbar(); - function Dropdown(element, config) { - var _this; + this._addEventListeners(); + } // Getters - _this = _BaseComponent.call(this, element) || this; - _this._popper = null; - _this._config = _this._getConfig(config); - _this._menu = _this._getMenuElement(); - _this._inNavbar = _this._detectNavbar(); - _this._addEventListeners(); + static get Default() { + return Default$6; + } - return _this; - } // Getters + static get DefaultType() { + return DefaultType$6; + } + static get DATA_KEY() { + return DATA_KEY$7; + } // Public - var _proto = Dropdown.prototype; - // Public - _proto.toggle = function toggle() { + toggle() { if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED)) { return; } - var isActive = this._element.classList.contains(CLASS_NAME_SHOW$1); + const isActive = this._element.classList.contains(CLASS_NAME_SHOW$6); Dropdown.clearMenus(); @@ -4746,49 +3747,53 @@ } this.show(); - }; + } - _proto.show = function show() { - if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || this._menu.classList.contains(CLASS_NAME_SHOW$1)) { + show() { + if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || this._menu.classList.contains(CLASS_NAME_SHOW$6)) { return; } - var parent = Dropdown.getParentFromElement(this._element); - var relatedTarget = { + const parent = Dropdown.getParentFromElement(this._element); + const relatedTarget = { relatedTarget: this._element }; - var showEvent = EventHandler.trigger(this._element, EVENT_SHOW$1, relatedTarget); + const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$4, relatedTarget); if (showEvent.defaultPrevented) { return; } // Totally disable Popper for Dropdowns in Navbar - if (!this._inNavbar) { + if (this._inNavbar) { + Manipulator.setDataAttribute(this._menu, 'popper', 'none'); + } else { if (typeof Popper === 'undefined') { throw new TypeError('Bootstrap\'s dropdowns require Popper (https://popper.js.org)'); } - var referenceElement = this._element; + let referenceElement = this._element; if (this._config.reference === 'parent') { referenceElement = parent; - } else if (isElement(this._config.reference)) { + } else if (isElement$1(this._config.reference)) { referenceElement = this._config.reference; // Check if it's jQuery element if (typeof this._config.reference.jquery !== 'undefined') { referenceElement = this._config.reference[0]; } - } // If boundary is not `scrollParent`, then set position to `static` - // to allow the menu to "escape" the scroll parent's boundaries - // https://github.com/twbs/bootstrap/issues/24251 + } else if (typeof this._config.reference === 'object') { + referenceElement = this._config.reference; + } + const popperConfig = this._getPopperConfig(); - if (this._config.boundary !== 'scrollParent') { - parent.classList.add(CLASS_NAME_POSITION_STATIC); - } + const isDisplayStatic = popperConfig.modifiers.find(modifier => modifier.name === 'applyStyles' && modifier.enabled === false); + this._popper = createPopper(referenceElement, this._menu, popperConfig); - this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig()); + if (isDisplayStatic) { + Manipulator.setDataAttribute(this._menu, 'popper', 'static'); + } } // If this is a touch-enabled device we add extra // empty mouseover listeners to the body's immediate children; // only needed because of broken event delegation on iOS @@ -4796,34 +3801,29 @@ if ('ontouchstart' in document.documentElement && !parent.closest(SELECTOR_NAVBAR_NAV)) { - var _ref; - - (_ref = []).concat.apply(_ref, document.body.children).forEach(function (elem) { - return EventHandler.on(elem, 'mouseover', null, noop()); - }); + [].concat(...document.body.children).forEach(elem => EventHandler.on(elem, 'mouseover', null, noop())); } this._element.focus(); this._element.setAttribute('aria-expanded', true); - this._menu.classList.toggle(CLASS_NAME_SHOW$1); + this._menu.classList.toggle(CLASS_NAME_SHOW$6); - this._element.classList.toggle(CLASS_NAME_SHOW$1); + this._element.classList.toggle(CLASS_NAME_SHOW$6); - EventHandler.trigger(parent, EVENT_SHOWN$1, relatedTarget); - }; + EventHandler.trigger(this._element, EVENT_SHOWN$4, relatedTarget); + } - _proto.hide = function hide() { - if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || !this._menu.classList.contains(CLASS_NAME_SHOW$1)) { + hide() { + if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || !this._menu.classList.contains(CLASS_NAME_SHOW$6)) { return; } - var parent = Dropdown.getParentFromElement(this._element); - var relatedTarget = { + const relatedTarget = { relatedTarget: this._element }; - var hideEvent = EventHandler.trigger(parent, EVENT_HIDE$1, relatedTarget); + const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$4, relatedTarget); if (hideEvent.defaultPrevented) { return; @@ -4833,17 +3833,16 @@ this._popper.destroy(); } - this._menu.classList.toggle(CLASS_NAME_SHOW$1); + this._menu.classList.toggle(CLASS_NAME_SHOW$6); - this._element.classList.toggle(CLASS_NAME_SHOW$1); + this._element.classList.toggle(CLASS_NAME_SHOW$6); - EventHandler.trigger(parent, EVENT_HIDDEN$1, relatedTarget); - }; - - _proto.dispose = function dispose() { - _BaseComponent.prototype.dispose.call(this); + Manipulator.removeDataAttribute(this._menu, 'popper'); + EventHandler.trigger(this._element, EVENT_HIDDEN$4, relatedTarget); + } - EventHandler.off(this._element, EVENT_KEY$4); + dispose() { + EventHandler.off(this._element, EVENT_KEY$7); this._menu = null; if (this._popper) { @@ -4851,104 +3850,119 @@ this._popper = null; } - }; - _proto.update = function update() { + super.dispose(); + } + + update() { this._inNavbar = this._detectNavbar(); if (this._popper) { - this._popper.scheduleUpdate(); + this._popper.update(); } } // Private - ; - _proto._addEventListeners = function _addEventListeners() { - var _this2 = this; - EventHandler.on(this._element, EVENT_CLICK, function (event) { + _addEventListeners() { + EventHandler.on(this._element, EVENT_CLICK, event => { event.preventDefault(); - event.stopPropagation(); - - _this2.toggle(); + this.toggle(); }); - }; + } + + _getConfig(config) { + config = { ...this.constructor.Default, + ...Manipulator.getDataAttributes(this._element), + ...config + }; + typeCheckConfig(NAME$7, config, this.constructor.DefaultType); + + if (typeof config.reference === 'object' && !isElement$1(config.reference) && typeof config.reference.getBoundingClientRect !== 'function') { + // Popper virtual elements require a getBoundingClientRect method + throw new TypeError(`${NAME$7.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`); + } - _proto._getConfig = function _getConfig(config) { - config = _extends({}, this.constructor.Default, Manipulator.getDataAttributes(this._element), config); - typeCheckConfig(NAME$4, config, this.constructor.DefaultType); return config; - }; + } - _proto._getMenuElement = function _getMenuElement() { + _getMenuElement() { return SelectorEngine.next(this._element, SELECTOR_MENU)[0]; - }; + } + + _getPlacement() { + const parentDropdown = this._element.parentNode; + + if (parentDropdown.classList.contains(CLASS_NAME_DROPEND)) { + return PLACEMENT_RIGHT; + } + + if (parentDropdown.classList.contains(CLASS_NAME_DROPSTART)) { + return PLACEMENT_LEFT; + } // We need to trim the value because custom properties can also include spaces + - _proto._getPlacement = function _getPlacement() { - var parentDropdown = this._element.parentNode; - var placement = PLACEMENT_BOTTOM; // Handle dropup + const isEnd = getComputedStyle(this._menu).getPropertyValue('--bs-position').trim() === 'end'; if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) { - placement = this._menu.classList.contains(CLASS_NAME_MENUEND) ? PLACEMENT_TOPEND : PLACEMENT_TOP; - } else if (parentDropdown.classList.contains(CLASS_NAME_DROPEND)) { - placement = PLACEMENT_RIGHT; - } else if (parentDropdown.classList.contains(CLASS_NAME_DROPSTART)) { - placement = PLACEMENT_LEFT; - } else if (this._menu.classList.contains(CLASS_NAME_MENUEND)) { - placement = PLACEMENT_BOTTOMEND; + return isEnd ? PLACEMENT_TOPEND : PLACEMENT_TOP; } - return placement; - }; + return isEnd ? PLACEMENT_BOTTOMEND : PLACEMENT_BOTTOM; + } - _proto._detectNavbar = function _detectNavbar() { - return Boolean(this._element.closest("." + CLASS_NAME_NAVBAR)); - }; + _detectNavbar() { + return this._element.closest(`.${CLASS_NAME_NAVBAR}`) !== null; + } - _proto._getOffset = function _getOffset() { - var _this3 = this; + _getOffset() { + const { + offset + } = this._config; - var offset = {}; + if (typeof offset === 'string') { + return offset.split(',').map(val => Number.parseInt(val, 10)); + } - if (typeof this._config.offset === 'function') { - offset.fn = function (data) { - data.offsets = _extends({}, data.offsets, _this3._config.offset(data.offsets, _this3._element) || {}); - return data; - }; - } else { - offset.offset = this._config.offset; + if (typeof offset === 'function') { + return popperData => offset(popperData, this._element); } return offset; - }; + } - _proto._getPopperConfig = function _getPopperConfig() { - var popperConfig = { + _getPopperConfig() { + const defaultBsPopperConfig = { placement: this._getPlacement(), - modifiers: { - offset: this._getOffset(), - flip: { - enabled: this._config.flip - }, - preventOverflow: { - boundariesElement: this._config.boundary + modifiers: [{ + name: 'preventOverflow', + options: { + boundary: this._config.boundary } - } + }, { + name: 'offset', + options: { + offset: this._getOffset() + } + }] }; // Disable Popper if we have a static display if (this._config.display === 'static') { - popperConfig.modifiers.applyStyle = { + defaultBsPopperConfig.modifiers = [{ + name: 'applyStyles', enabled: false - }; + }]; } - return _extends({}, popperConfig, this._config.popperConfig); + return { ...defaultBsPopperConfig, + ...(typeof this._config.popperConfig === 'function' ? this._config.popperConfig(defaultBsPopperConfig) : this._config.popperConfig) + }; } // Static - ; - Dropdown.dropdownInterface = function dropdownInterface(element, config) { - var data = Data.getData(element, DATA_KEY$4); - var _config = typeof config === 'object' ? config : null; + static dropdownInterface(element, config) { + let data = Data.get(element, DATA_KEY$7); + + const _config = typeof config === 'object' ? config : null; if (!data) { data = new Dropdown(element, _config); @@ -4956,30 +3970,35 @@ if (typeof config === 'string') { if (typeof data[config] === 'undefined') { - throw new TypeError("No method named \"" + config + "\""); + throw new TypeError(`No method named "${config}"`); } data[config](); } - }; + } - Dropdown.jQueryInterface = function jQueryInterface(config) { + static jQueryInterface(config) { return this.each(function () { Dropdown.dropdownInterface(this, config); }); - }; + } - Dropdown.clearMenus = function clearMenus(event) { - if (event && (event.button === RIGHT_MOUSE_BUTTON || event.type === 'keyup' && event.key !== TAB_KEY)) { - return; + static clearMenus(event) { + if (event) { + if (event.button === RIGHT_MOUSE_BUTTON || event.type === 'keyup' && event.key !== TAB_KEY) { + return; + } + + if (/input|select|textarea|form/i.test(event.target.tagName)) { + return; + } } - var toggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE$2); + const toggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE$3); - for (var i = 0, len = toggles.length; i < len; i++) { - var parent = Dropdown.getParentFromElement(toggles[i]); - var context = Data.getData(toggles[i], DATA_KEY$4); - var relatedTarget = { + for (let i = 0, len = toggles.length; i < len; i++) { + const context = Data.get(toggles[i], DATA_KEY$7); + const relatedTarget = { relatedTarget: toggles[i] }; @@ -4991,17 +4010,25 @@ continue; } - var dropdownMenu = context._menu; + const dropdownMenu = context._menu; - if (!toggles[i].classList.contains(CLASS_NAME_SHOW$1)) { + if (!toggles[i].classList.contains(CLASS_NAME_SHOW$6)) { continue; } - if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.key === TAB_KEY) && dropdownMenu.contains(event.target)) { - continue; + if (event) { + // Don't close the menu if the clicked element or one of its parents is the dropdown button + if ([context._element].some(element => event.composedPath().includes(element))) { + continue; + } // Tab navigation through the dropdown menu shouldn't close the menu + + + if (event.type === 'keyup' && event.key === TAB_KEY && dropdownMenu.contains(event.target)) { + continue; + } } - var hideEvent = EventHandler.trigger(parent, EVENT_HIDE$1, relatedTarget); + const hideEvent = EventHandler.trigger(toggles[i], EVENT_HIDE$4, relatedTarget); if (hideEvent.defaultPrevented) { continue; @@ -5010,11 +4037,7 @@ if ('ontouchstart' in document.documentElement) { - var _ref2; - - (_ref2 = []).concat.apply(_ref2, document.body.children).forEach(function (elem) { - return EventHandler.off(elem, 'mouseover', null, noop()); - }); + [].concat(...document.body.children).forEach(elem => EventHandler.off(elem, 'mouseover', null, noop())); } toggles[i].setAttribute('aria-expanded', 'false'); @@ -5023,17 +4046,18 @@ context._popper.destroy(); } - dropdownMenu.classList.remove(CLASS_NAME_SHOW$1); - toggles[i].classList.remove(CLASS_NAME_SHOW$1); - EventHandler.trigger(parent, EVENT_HIDDEN$1, relatedTarget); + dropdownMenu.classList.remove(CLASS_NAME_SHOW$6); + toggles[i].classList.remove(CLASS_NAME_SHOW$6); + Manipulator.removeDataAttribute(dropdownMenu, 'popper'); + EventHandler.trigger(toggles[i], EVENT_HIDDEN$4, relatedTarget); } - }; + } - Dropdown.getParentFromElement = function getParentFromElement(element) { + static getParentFromElement(element) { return getElementFromSelector(element) || element.parentNode; - }; + } - Dropdown.dataApiKeydownHandler = function dataApiKeydownHandler(event) { + static dataApiKeydownHandler(event) { // If not input/textarea: // - And not a key in REGEXP_KEYDOWN => not a dropdown command // If input/textarea: @@ -5041,7 +4065,7 @@ // - If key is other than escape // - If key is not up or down => not a dropdown command // - If trigger inside the menu => not a dropdown command - if (/input|textarea/i.test(event.target.tagName) ? event.key === SPACE_KEY || event.key !== ESCAPE_KEY && (event.key !== ARROW_DOWN_KEY && event.key !== ARROW_UP_KEY || event.target.closest(SELECTOR_MENU)) : !REGEXP_KEYDOWN.test(event.key)) { + if (/input|textarea/i.test(event.target.tagName) ? event.key === SPACE_KEY || event.key !== ESCAPE_KEY$2 && (event.key !== ARROW_DOWN_KEY && event.key !== ARROW_UP_KEY || event.target.closest(SELECTOR_MENU)) : !REGEXP_KEYDOWN.test(event.key)) { return; } @@ -5052,28 +4076,34 @@ return; } - var parent = Dropdown.getParentFromElement(this); - var isActive = this.classList.contains(CLASS_NAME_SHOW$1); + const parent = Dropdown.getParentFromElement(this); + const isActive = this.classList.contains(CLASS_NAME_SHOW$6); - if (event.key === ESCAPE_KEY) { - var button = this.matches(SELECTOR_DATA_TOGGLE$2) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE$2)[0]; + if (event.key === ESCAPE_KEY$2) { + const button = this.matches(SELECTOR_DATA_TOGGLE$3) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE$3)[0]; button.focus(); Dropdown.clearMenus(); return; } + if (!isActive && (event.key === ARROW_UP_KEY || event.key === ARROW_DOWN_KEY)) { + const button = this.matches(SELECTOR_DATA_TOGGLE$3) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE$3)[0]; + button.click(); + return; + } + if (!isActive || event.key === SPACE_KEY) { Dropdown.clearMenus(); return; } - var items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, parent).filter(isVisible); + const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, parent).filter(isVisible); if (!items.length) { return; } - var index = items.indexOf(event.target); // Up + let index = items.indexOf(event.target); // Up if (event.key === ARROW_UP_KEY && index > 0) { index--; @@ -5087,27 +4117,9 @@ index = index === -1 ? 0 : index; items[index].focus(); - }; - - _createClass(Dropdown, null, [{ - key: "Default", - get: function get() { - return Default$2; - } - }, { - key: "DefaultType", - get: function get() { - return DefaultType$2; - } - }, { - key: "DATA_KEY", - get: function get() { - return DATA_KEY$4; - } - }]); + } - return Dropdown; - }(BaseComponent); + } /** * ------------------------------------------------------------------------ * Data Api implementation @@ -5115,17 +4127,13 @@ */ - EventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE$2, Dropdown.dataApiKeydownHandler); + EventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE$3, Dropdown.dataApiKeydownHandler); EventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown.dataApiKeydownHandler); - EventHandler.on(document, EVENT_CLICK_DATA_API$4, Dropdown.clearMenus); + EventHandler.on(document, EVENT_CLICK_DATA_API$3, Dropdown.clearMenus); EventHandler.on(document, EVENT_KEYUP_DATA_API, Dropdown.clearMenus); - EventHandler.on(document, EVENT_CLICK_DATA_API$4, SELECTOR_DATA_TOGGLE$2, function (event) { + EventHandler.on(document, EVENT_CLICK_DATA_API$3, SELECTOR_DATA_TOGGLE$3, function (event) { event.preventDefault(); - event.stopPropagation(); - Dropdown.dropdownInterface(this, 'toggle'); - }); - EventHandler.on(document, EVENT_CLICK_DATA_API$4, SELECTOR_FORM_CHILD, function (e) { - return e.stopPropagation(); + Dropdown.dropdownInterface(this); }); /** * ------------------------------------------------------------------------ @@ -5134,112 +4142,103 @@ * add .Dropdown to jQuery only if jQuery is present */ - onDOMContentLoaded(function () { - var $ = getjQuery(); - /* istanbul ignore if */ - - if ($) { - var JQUERY_NO_CONFLICT = $.fn[NAME$4]; - $.fn[NAME$4] = Dropdown.jQueryInterface; - $.fn[NAME$4].Constructor = Dropdown; - - $.fn[NAME$4].noConflict = function () { - $.fn[NAME$4] = JQUERY_NO_CONFLICT; - return Dropdown.jQueryInterface; - }; - } - }); + defineJQueryPlugin(NAME$7, Dropdown); /** + * -------------------------------------------------------------------------- + * Bootstrap (v5.0.0-beta3): modal.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + /** * ------------------------------------------------------------------------ * Constants * ------------------------------------------------------------------------ */ - var NAME$5 = 'modal'; - var DATA_KEY$5 = 'bs.modal'; - var EVENT_KEY$5 = "." + DATA_KEY$5; - var DATA_API_KEY$5 = '.data-api'; - var ESCAPE_KEY$1 = 'Escape'; - var Default$3 = { + const NAME$6 = 'modal'; + const DATA_KEY$6 = 'bs.modal'; + const EVENT_KEY$6 = `.${DATA_KEY$6}`; + const DATA_API_KEY$3 = '.data-api'; + const ESCAPE_KEY$1 = 'Escape'; + const Default$5 = { backdrop: true, keyboard: true, focus: true }; - var DefaultType$3 = { + const DefaultType$5 = { backdrop: '(boolean|string)', keyboard: 'boolean', focus: 'boolean' }; - var EVENT_HIDE$2 = "hide" + EVENT_KEY$5; - var EVENT_HIDE_PREVENTED = "hidePrevented" + EVENT_KEY$5; - var EVENT_HIDDEN$2 = "hidden" + EVENT_KEY$5; - var EVENT_SHOW$2 = "show" + EVENT_KEY$5; - var EVENT_SHOWN$2 = "shown" + EVENT_KEY$5; - var EVENT_FOCUSIN = "focusin" + EVENT_KEY$5; - var EVENT_RESIZE = "resize" + EVENT_KEY$5; - var EVENT_CLICK_DISMISS = "click.dismiss" + EVENT_KEY$5; - var EVENT_KEYDOWN_DISMISS = "keydown.dismiss" + EVENT_KEY$5; - var EVENT_MOUSEUP_DISMISS = "mouseup.dismiss" + EVENT_KEY$5; - var EVENT_MOUSEDOWN_DISMISS = "mousedown.dismiss" + EVENT_KEY$5; - var EVENT_CLICK_DATA_API$5 = "click" + EVENT_KEY$5 + DATA_API_KEY$5; - var CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure'; - var CLASS_NAME_BACKDROP = 'modal-backdrop'; - var CLASS_NAME_OPEN = 'modal-open'; - var CLASS_NAME_FADE = 'fade'; - var CLASS_NAME_SHOW$2 = 'show'; - var CLASS_NAME_STATIC = 'modal-static'; - var SELECTOR_DIALOG = '.modal-dialog'; - var SELECTOR_MODAL_BODY = '.modal-body'; - var SELECTOR_DATA_TOGGLE$3 = '[data-bs-toggle="modal"]'; - var SELECTOR_DATA_DISMISS = '[data-bs-dismiss="modal"]'; - var SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'; - var SELECTOR_STICKY_CONTENT = '.sticky-top'; + const EVENT_HIDE$3 = `hide${EVENT_KEY$6}`; + const EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY$6}`; + const EVENT_HIDDEN$3 = `hidden${EVENT_KEY$6}`; + const EVENT_SHOW$3 = `show${EVENT_KEY$6}`; + const EVENT_SHOWN$3 = `shown${EVENT_KEY$6}`; + const EVENT_FOCUSIN$1 = `focusin${EVENT_KEY$6}`; + const EVENT_RESIZE = `resize${EVENT_KEY$6}`; + const EVENT_CLICK_DISMISS$2 = `click.dismiss${EVENT_KEY$6}`; + const EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY$6}`; + const EVENT_MOUSEUP_DISMISS = `mouseup.dismiss${EVENT_KEY$6}`; + const EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY$6}`; + const EVENT_CLICK_DATA_API$2 = `click${EVENT_KEY$6}${DATA_API_KEY$3}`; + const CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure'; + const CLASS_NAME_BACKDROP = 'modal-backdrop'; + const CLASS_NAME_OPEN = 'modal-open'; + const CLASS_NAME_FADE$4 = 'fade'; + const CLASS_NAME_SHOW$5 = 'show'; + const CLASS_NAME_STATIC = 'modal-static'; + const SELECTOR_DIALOG = '.modal-dialog'; + const SELECTOR_MODAL_BODY = '.modal-body'; + const SELECTOR_DATA_TOGGLE$2 = '[data-bs-toggle="modal"]'; + const SELECTOR_DATA_DISMISS$2 = '[data-bs-dismiss="modal"]'; + const SELECTOR_FIXED_CONTENT$1 = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'; + const SELECTOR_STICKY_CONTENT$1 = '.sticky-top'; /** * ------------------------------------------------------------------------ * Class Definition * ------------------------------------------------------------------------ */ - var Modal = /*#__PURE__*/function (_BaseComponent) { - _inheritsLoose(Modal, _BaseComponent); - - function Modal(element, config) { - var _this; - - _this = _BaseComponent.call(this, element) || this; - _this._config = _this._getConfig(config); - _this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, element); - _this._backdrop = null; - _this._isShown = false; - _this._isBodyOverflowing = false; - _this._ignoreBackdropClick = false; - _this._isTransitioning = false; - _this._scrollbarWidth = 0; - return _this; + class Modal extends BaseComponent { + constructor(element, config) { + super(element); + this._config = this._getConfig(config); + this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, this._element); + this._backdrop = null; + this._isShown = false; + this._isBodyOverflowing = false; + this._ignoreBackdropClick = false; + this._isTransitioning = false; + this._scrollbarWidth = 0; } // Getters - var _proto = Modal.prototype; + static get Default() { + return Default$5; + } - // Public - _proto.toggle = function toggle(relatedTarget) { - return this._isShown ? this.hide() : this.show(relatedTarget); - }; + static get DATA_KEY() { + return DATA_KEY$6; + } // Public - _proto.show = function show(relatedTarget) { - var _this2 = this; + toggle(relatedTarget) { + return this._isShown ? this.hide() : this.show(relatedTarget); + } + + show(relatedTarget) { if (this._isShown || this._isTransitioning) { return; } - if (this._element.classList.contains(CLASS_NAME_FADE)) { + if (this._isAnimated()) { this._isTransitioning = true; } - var showEvent = EventHandler.trigger(this._element, EVENT_SHOW$2, { - relatedTarget: relatedTarget + const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$3, { + relatedTarget }); if (this._isShown || showEvent.defaultPrevented) { @@ -5258,25 +4257,19 @@ this._setResizeEvent(); - EventHandler.on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, function (event) { - return _this2.hide(event); - }); - EventHandler.on(this._dialog, EVENT_MOUSEDOWN_DISMISS, function () { - EventHandler.one(_this2._element, EVENT_MOUSEUP_DISMISS, function (event) { - if (event.target === _this2._element) { - _this2._ignoreBackdropClick = true; + EventHandler.on(this._element, EVENT_CLICK_DISMISS$2, SELECTOR_DATA_DISMISS$2, event => this.hide(event)); + EventHandler.on(this._dialog, EVENT_MOUSEDOWN_DISMISS, () => { + EventHandler.one(this._element, EVENT_MOUSEUP_DISMISS, event => { + if (event.target === this._element) { + this._ignoreBackdropClick = true; } }); }); - this._showBackdrop(function () { - return _this2._showElement(relatedTarget); - }); - }; - - _proto.hide = function hide(event) { - var _this3 = this; + this._showBackdrop(() => this._showElement(relatedTarget)); + } + hide(event) { if (event) { event.preventDefault(); } @@ -5285,7 +4278,7 @@ return; } - var hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$2); + const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$3); if (hideEvent.defaultPrevented) { return; @@ -5293,9 +4286,9 @@ this._isShown = false; - var transition = this._element.classList.contains(CLASS_NAME_FADE); + const isAnimated = this._isAnimated(); - if (transition) { + if (isAnimated) { this._isTransitioning = true; } @@ -5303,38 +4296,32 @@ this._setResizeEvent(); - EventHandler.off(document, EVENT_FOCUSIN); + EventHandler.off(document, EVENT_FOCUSIN$1); - this._element.classList.remove(CLASS_NAME_SHOW$2); + this._element.classList.remove(CLASS_NAME_SHOW$5); - EventHandler.off(this._element, EVENT_CLICK_DISMISS); + EventHandler.off(this._element, EVENT_CLICK_DISMISS$2); EventHandler.off(this._dialog, EVENT_MOUSEDOWN_DISMISS); - if (transition) { - var transitionDuration = getTransitionDurationFromElement(this._element); - EventHandler.one(this._element, TRANSITION_END, function (event) { - return _this3._hideModal(event); - }); + if (isAnimated) { + const transitionDuration = getTransitionDurationFromElement(this._element); + EventHandler.one(this._element, 'transitionend', event => this._hideModal(event)); emulateTransitionEnd(this._element, transitionDuration); } else { this._hideModal(); } - }; - - _proto.dispose = function dispose() { - [window, this._element, this._dialog].forEach(function (htmlElement) { - return EventHandler.off(htmlElement, EVENT_KEY$5); - }); + } - _BaseComponent.prototype.dispose.call(this); + dispose() { + [window, this._element, this._dialog].forEach(htmlElement => EventHandler.off(htmlElement, EVENT_KEY$6)); + super.dispose(); /** * `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API` * Do not move `document` in `htmlElements` array * It will remove `EVENT_CLICK_DATA_API` event that should remain */ - - EventHandler.off(document, EVENT_FOCUSIN); + EventHandler.off(document, EVENT_FOCUSIN$1); this._config = null; this._dialog = null; this._backdrop = null; @@ -5343,25 +4330,25 @@ this._ignoreBackdropClick = null; this._isTransitioning = null; this._scrollbarWidth = null; - }; + } - _proto.handleUpdate = function handleUpdate() { + handleUpdate() { this._adjustDialog(); } // Private - ; - _proto._getConfig = function _getConfig(config) { - config = _extends({}, Default$3, config); - typeCheckConfig(NAME$5, config, DefaultType$3); - return config; - }; - _proto._showElement = function _showElement(relatedTarget) { - var _this4 = this; + _getConfig(config) { + config = { ...Default$5, + ...config + }; + typeCheckConfig(NAME$6, config, DefaultType$5); + return config; + } - var transition = this._element.classList.contains(CLASS_NAME_FADE); + _showElement(relatedTarget) { + const isAnimated = this._isAnimated(); - var modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog); + const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog); if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) { // Don't move modal's DOM position @@ -5382,81 +4369,70 @@ modalBody.scrollTop = 0; } - if (transition) { + if (isAnimated) { reflow(this._element); } - this._element.classList.add(CLASS_NAME_SHOW$2); + this._element.classList.add(CLASS_NAME_SHOW$5); if (this._config.focus) { this._enforceFocus(); } - var transitionComplete = function transitionComplete() { - if (_this4._config.focus) { - _this4._element.focus(); + const transitionComplete = () => { + if (this._config.focus) { + this._element.focus(); } - _this4._isTransitioning = false; - EventHandler.trigger(_this4._element, EVENT_SHOWN$2, { - relatedTarget: relatedTarget + this._isTransitioning = false; + EventHandler.trigger(this._element, EVENT_SHOWN$3, { + relatedTarget }); }; - if (transition) { - var transitionDuration = getTransitionDurationFromElement(this._dialog); - EventHandler.one(this._dialog, TRANSITION_END, transitionComplete); + if (isAnimated) { + const transitionDuration = getTransitionDurationFromElement(this._dialog); + EventHandler.one(this._dialog, 'transitionend', transitionComplete); emulateTransitionEnd(this._dialog, transitionDuration); } else { transitionComplete(); } - }; - - _proto._enforceFocus = function _enforceFocus() { - var _this5 = this; + } - EventHandler.off(document, EVENT_FOCUSIN); // guard against infinite focus loop + _enforceFocus() { + EventHandler.off(document, EVENT_FOCUSIN$1); // guard against infinite focus loop - EventHandler.on(document, EVENT_FOCUSIN, function (event) { - if (document !== event.target && _this5._element !== event.target && !_this5._element.contains(event.target)) { - _this5._element.focus(); + EventHandler.on(document, EVENT_FOCUSIN$1, event => { + if (document !== event.target && this._element !== event.target && !this._element.contains(event.target)) { + this._element.focus(); } }); - }; - - _proto._setEscapeEvent = function _setEscapeEvent() { - var _this6 = this; + } + _setEscapeEvent() { if (this._isShown) { - EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, function (event) { - if (_this6._config.keyboard && event.key === ESCAPE_KEY$1) { + EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => { + if (this._config.keyboard && event.key === ESCAPE_KEY$1) { event.preventDefault(); - - _this6.hide(); - } else if (!_this6._config.keyboard && event.key === ESCAPE_KEY$1) { - _this6._triggerBackdropTransition(); + this.hide(); + } else if (!this._config.keyboard && event.key === ESCAPE_KEY$1) { + this._triggerBackdropTransition(); } }); } else { EventHandler.off(this._element, EVENT_KEYDOWN_DISMISS); } - }; - - _proto._setResizeEvent = function _setResizeEvent() { - var _this7 = this; + } + _setResizeEvent() { if (this._isShown) { - EventHandler.on(window, EVENT_RESIZE, function () { - return _this7._adjustDialog(); - }); + EventHandler.on(window, EVENT_RESIZE, () => this._adjustDialog()); } else { EventHandler.off(window, EVENT_RESIZE); } - }; - - _proto._hideModal = function _hideModal() { - var _this8 = this; + } + _hideModal() { this._element.style.display = 'none'; this._element.setAttribute('aria-hidden', true); @@ -5467,40 +4443,38 @@ this._isTransitioning = false; - this._showBackdrop(function () { + this._showBackdrop(() => { document.body.classList.remove(CLASS_NAME_OPEN); - _this8._resetAdjustments(); + this._resetAdjustments(); - _this8._resetScrollbar(); + this._resetScrollbar(); - EventHandler.trigger(_this8._element, EVENT_HIDDEN$2); + EventHandler.trigger(this._element, EVENT_HIDDEN$3); }); - }; + } - _proto._removeBackdrop = function _removeBackdrop() { + _removeBackdrop() { this._backdrop.parentNode.removeChild(this._backdrop); this._backdrop = null; - }; - - _proto._showBackdrop = function _showBackdrop(callback) { - var _this9 = this; + } - var animate = this._element.classList.contains(CLASS_NAME_FADE) ? CLASS_NAME_FADE : ''; + _showBackdrop(callback) { + const isAnimated = this._isAnimated(); if (this._isShown && this._config.backdrop) { this._backdrop = document.createElement('div'); this._backdrop.className = CLASS_NAME_BACKDROP; - if (animate) { - this._backdrop.classList.add(animate); + if (isAnimated) { + this._backdrop.classList.add(CLASS_NAME_FADE$4); } document.body.appendChild(this._backdrop); - EventHandler.on(this._element, EVENT_CLICK_DISMISS, function (event) { - if (_this9._ignoreBackdropClick) { - _this9._ignoreBackdropClick = false; + EventHandler.on(this._element, EVENT_CLICK_DISMISS$2, event => { + if (this._ignoreBackdropClick) { + this._ignoreBackdropClick = false; return; } @@ -5508,59 +4482,60 @@ return; } - if (_this9._config.backdrop === 'static') { - _this9._triggerBackdropTransition(); + if (this._config.backdrop === 'static') { + this._triggerBackdropTransition(); } else { - _this9.hide(); + this.hide(); } }); - if (animate) { + if (isAnimated) { reflow(this._backdrop); } - this._backdrop.classList.add(CLASS_NAME_SHOW$2); + this._backdrop.classList.add(CLASS_NAME_SHOW$5); - if (!animate) { + if (!isAnimated) { callback(); return; } - var backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop); - EventHandler.one(this._backdrop, TRANSITION_END, callback); + const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop); + EventHandler.one(this._backdrop, 'transitionend', callback); emulateTransitionEnd(this._backdrop, backdropTransitionDuration); } else if (!this._isShown && this._backdrop) { - this._backdrop.classList.remove(CLASS_NAME_SHOW$2); + this._backdrop.classList.remove(CLASS_NAME_SHOW$5); - var callbackRemove = function callbackRemove() { - _this9._removeBackdrop(); + const callbackRemove = () => { + this._removeBackdrop(); callback(); }; - if (this._element.classList.contains(CLASS_NAME_FADE)) { - var _backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop); - - EventHandler.one(this._backdrop, TRANSITION_END, callbackRemove); - emulateTransitionEnd(this._backdrop, _backdropTransitionDuration); + if (isAnimated) { + const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop); + EventHandler.one(this._backdrop, 'transitionend', callbackRemove); + emulateTransitionEnd(this._backdrop, backdropTransitionDuration); } else { callbackRemove(); } } else { callback(); } - }; + } - _proto._triggerBackdropTransition = function _triggerBackdropTransition() { - var _this10 = this; + _isAnimated() { + return this._element.classList.contains(CLASS_NAME_FADE$4); + } - var hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED); + _triggerBackdropTransition() { + const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED); if (hideEvent.defaultPrevented) { return; } - var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight; + const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight; if (!isModalOverflowing) { this._element.style.overflowY = 'hidden'; @@ -5568,16 +4543,16 @@ this._element.classList.add(CLASS_NAME_STATIC); - var modalTransitionDuration = getTransitionDurationFromElement(this._dialog); - EventHandler.off(this._element, TRANSITION_END); - EventHandler.one(this._element, TRANSITION_END, function () { - _this10._element.classList.remove(CLASS_NAME_STATIC); + const modalTransitionDuration = getTransitionDurationFromElement(this._dialog); + EventHandler.off(this._element, 'transitionend'); + EventHandler.one(this._element, 'transitionend', () => { + this._element.classList.remove(CLASS_NAME_STATIC); if (!isModalOverflowing) { - EventHandler.one(_this10._element, TRANSITION_END, function () { - _this10._element.style.overflowY = ''; + EventHandler.one(this._element, 'transitionend', () => { + this._element.style.overflowY = ''; }); - emulateTransitionEnd(_this10._element, modalTransitionDuration); + emulateTransitionEnd(this._element, modalTransitionDuration); } }); emulateTransitionEnd(this._element, modalTransitionDuration); @@ -5586,107 +4561,95 @@ } // ---------------------------------------------------------------------- // the following methods are used to handle overflowing modals // ---------------------------------------------------------------------- - ; - _proto._adjustDialog = function _adjustDialog() { - var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight; - if (!this._isBodyOverflowing && isModalOverflowing && !isRTL || this._isBodyOverflowing && !isModalOverflowing && isRTL) { - this._element.style.paddingLeft = this._scrollbarWidth + "px"; + _adjustDialog() { + const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight; + + if (!this._isBodyOverflowing && isModalOverflowing && !isRTL() || this._isBodyOverflowing && !isModalOverflowing && isRTL()) { + this._element.style.paddingLeft = `${this._scrollbarWidth}px`; } - if (this._isBodyOverflowing && !isModalOverflowing && !isRTL || !this._isBodyOverflowing && isModalOverflowing && isRTL) { - this._element.style.paddingRight = this._scrollbarWidth + "px"; + if (this._isBodyOverflowing && !isModalOverflowing && !isRTL() || !this._isBodyOverflowing && isModalOverflowing && isRTL()) { + this._element.style.paddingRight = `${this._scrollbarWidth}px`; } - }; + } - _proto._resetAdjustments = function _resetAdjustments() { + _resetAdjustments() { this._element.style.paddingLeft = ''; this._element.style.paddingRight = ''; - }; + } - _proto._checkScrollbar = function _checkScrollbar() { - var rect = document.body.getBoundingClientRect(); + _checkScrollbar() { + const rect = document.body.getBoundingClientRect(); this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth; this._scrollbarWidth = this._getScrollbarWidth(); - }; - - _proto._setScrollbar = function _setScrollbar() { - var _this11 = this; + } + _setScrollbar() { if (this._isBodyOverflowing) { - // Note: DOMNode.style.paddingRight returns the actual value or '' if not set - // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set - // Adjust fixed content padding - SelectorEngine.find(SELECTOR_FIXED_CONTENT).forEach(function (element) { - var actualPadding = element.style.paddingRight; - var calculatedPadding = window.getComputedStyle(element)['padding-right']; - Manipulator.setDataAttribute(element, 'padding-right', actualPadding); - element.style.paddingRight = Number.parseFloat(calculatedPadding) + _this11._scrollbarWidth + "px"; - }); // Adjust sticky content margin - - SelectorEngine.find(SELECTOR_STICKY_CONTENT).forEach(function (element) { - var actualMargin = element.style.marginRight; - var calculatedMargin = window.getComputedStyle(element)['margin-right']; - Manipulator.setDataAttribute(element, 'margin-right', actualMargin); - element.style.marginRight = Number.parseFloat(calculatedMargin) - _this11._scrollbarWidth + "px"; - }); // Adjust body padding - - var actualPadding = document.body.style.paddingRight; - var calculatedPadding = window.getComputedStyle(document.body)['padding-right']; - Manipulator.setDataAttribute(document.body, 'padding-right', actualPadding); - document.body.style.paddingRight = Number.parseFloat(calculatedPadding) + this._scrollbarWidth + "px"; + this._setElementAttributes(SELECTOR_FIXED_CONTENT$1, 'paddingRight', calculatedValue => calculatedValue + this._scrollbarWidth); + + this._setElementAttributes(SELECTOR_STICKY_CONTENT$1, 'marginRight', calculatedValue => calculatedValue - this._scrollbarWidth); + + this._setElementAttributes('body', 'paddingRight', calculatedValue => calculatedValue + this._scrollbarWidth); } document.body.classList.add(CLASS_NAME_OPEN); - }; - - _proto._resetScrollbar = function _resetScrollbar() { - // Restore fixed content padding - SelectorEngine.find(SELECTOR_FIXED_CONTENT).forEach(function (element) { - var padding = Manipulator.getDataAttribute(element, 'padding-right'); + } - if (typeof padding !== 'undefined') { - Manipulator.removeDataAttribute(element, 'padding-right'); - element.style.paddingRight = padding; + _setElementAttributes(selector, styleProp, callback) { + SelectorEngine.find(selector).forEach(element => { + if (element !== document.body && window.innerWidth > element.clientWidth + this._scrollbarWidth) { + return; } - }); // Restore sticky content and navbar-toggler margin - SelectorEngine.find("" + SELECTOR_STICKY_CONTENT).forEach(function (element) { - var margin = Manipulator.getDataAttribute(element, 'margin-right'); + const actualValue = element.style[styleProp]; + const calculatedValue = window.getComputedStyle(element)[styleProp]; + Manipulator.setDataAttribute(element, styleProp, actualValue); + element.style[styleProp] = callback(Number.parseFloat(calculatedValue)) + 'px'; + }); + } - if (typeof margin !== 'undefined') { - Manipulator.removeDataAttribute(element, 'margin-right'); - element.style.marginRight = margin; - } - }); // Restore body padding + _resetScrollbar() { + this._resetElementAttributes(SELECTOR_FIXED_CONTENT$1, 'paddingRight'); - var padding = Manipulator.getDataAttribute(document.body, 'padding-right'); + this._resetElementAttributes(SELECTOR_STICKY_CONTENT$1, 'marginRight'); - if (typeof padding === 'undefined') { - document.body.style.paddingRight = ''; - } else { - Manipulator.removeDataAttribute(document.body, 'padding-right'); - document.body.style.paddingRight = padding; - } - }; + this._resetElementAttributes('body', 'paddingRight'); + } + + _resetElementAttributes(selector, styleProp) { + SelectorEngine.find(selector).forEach(element => { + const value = Manipulator.getDataAttribute(element, styleProp); + + if (typeof value === 'undefined' && element === document.body) { + element.style[styleProp] = ''; + } else { + Manipulator.removeDataAttribute(element, styleProp); + element.style[styleProp] = value; + } + }); + } - _proto._getScrollbarWidth = function _getScrollbarWidth() { + _getScrollbarWidth() { // thx d.walsh - var scrollDiv = document.createElement('div'); + const scrollDiv = document.createElement('div'); scrollDiv.className = CLASS_NAME_SCROLLBAR_MEASURER; document.body.appendChild(scrollDiv); - var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth; + const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth; document.body.removeChild(scrollDiv); return scrollbarWidth; } // Static - ; - Modal.jQueryInterface = function jQueryInterface(config, relatedTarget) { - return this.each(function () { - var data = Data.getData(this, DATA_KEY$5); - var _config = _extends({}, Default$3, Manipulator.getDataAttributes(this), typeof config === 'object' && config ? config : {}); + static jQueryInterface(config, relatedTarget) { + return this.each(function () { + let data = Data.get(this, DATA_KEY$6); + const _config = { ...Default$5, + ...Manipulator.getDataAttributes(this), + ...(typeof config === 'object' && config ? config : {}) + }; if (!data) { data = new Modal(this, _config); @@ -5694,28 +4657,15 @@ if (typeof config === 'string') { if (typeof data[config] === 'undefined') { - throw new TypeError("No method named \"" + config + "\""); + throw new TypeError(`No method named "${config}"`); } data[config](relatedTarget); } }); - }; - - _createClass(Modal, null, [{ - key: "Default", - get: function get() { - return Default$3; - } - }, { - key: "DATA_KEY", - get: function get() { - return DATA_KEY$5; - } - }]); + } - return Modal; - }(BaseComponent); + } /** * ------------------------------------------------------------------------ * Data Api implementation @@ -5723,36 +4673,35 @@ */ - EventHandler.on(document, EVENT_CLICK_DATA_API$5, SELECTOR_DATA_TOGGLE$3, function (event) { - var _this12 = this; - - var target = getElementFromSelector(this); + EventHandler.on(document, EVENT_CLICK_DATA_API$2, SELECTOR_DATA_TOGGLE$2, function (event) { + const target = getElementFromSelector(this); if (this.tagName === 'A' || this.tagName === 'AREA') { event.preventDefault(); } - EventHandler.one(target, EVENT_SHOW$2, function (showEvent) { + EventHandler.one(target, EVENT_SHOW$3, showEvent => { if (showEvent.defaultPrevented) { // only register focus restorer if modal will actually get shown return; } - EventHandler.one(target, EVENT_HIDDEN$2, function () { - if (isVisible(_this12)) { - _this12.focus(); + EventHandler.one(target, EVENT_HIDDEN$3, () => { + if (isVisible(this)) { + this.focus(); } }); }); - var data = Data.getData(target, DATA_KEY$5); + let data = Data.get(target, DATA_KEY$6); if (!data) { - var config = _extends({}, Manipulator.getDataAttributes(target), Manipulator.getDataAttributes(this)); - + const config = { ...Manipulator.getDataAttributes(target), + ...Manipulator.getDataAttributes(this) + }; data = new Modal(target, config); } - data.show(this); + data.toggle(this); }); /** * ------------------------------------------------------------------------ @@ -5761,62 +4710,372 @@ * add .Modal to jQuery only if jQuery is present */ - onDOMContentLoaded(function () { - var $ = getjQuery(); - /* istanbul ignore if */ + defineJQueryPlugin(NAME$6, Modal); - if ($) { - var JQUERY_NO_CONFLICT = $.fn[NAME$5]; - $.fn[NAME$5] = Modal.jQueryInterface; - $.fn[NAME$5].Constructor = Modal; + /** + * -------------------------------------------------------------------------- + * Bootstrap (v5.0.0-beta3): util/scrollBar.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + const SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed'; + const SELECTOR_STICKY_CONTENT = '.sticky-top'; + + const getWidth = () => { + // https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes + const documentWidth = document.documentElement.clientWidth; + return Math.abs(window.innerWidth - documentWidth); + }; + + const hide = (width = getWidth()) => { + document.body.style.overflow = 'hidden'; + + _setElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight', calculatedValue => calculatedValue + width); + + _setElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight', calculatedValue => calculatedValue - width); + + _setElementAttributes('body', 'paddingRight', calculatedValue => calculatedValue + width); + }; + + const _setElementAttributes = (selector, styleProp, callback) => { + const scrollbarWidth = getWidth(); + SelectorEngine.find(selector).forEach(element => { + if (element !== document.body && window.innerWidth > element.clientWidth + scrollbarWidth) { + return; + } + + const actualValue = element.style[styleProp]; + const calculatedValue = window.getComputedStyle(element)[styleProp]; + Manipulator.setDataAttribute(element, styleProp, actualValue); + element.style[styleProp] = callback(Number.parseFloat(calculatedValue)) + 'px'; + }); + }; + + const reset = () => { + document.body.style.overflow = 'auto'; + + _resetElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight'); + + _resetElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight'); + + _resetElementAttributes('body', 'paddingRight'); + }; + + const _resetElementAttributes = (selector, styleProp) => { + SelectorEngine.find(selector).forEach(element => { + const value = Manipulator.getDataAttribute(element, styleProp); + + if (typeof value === 'undefined' && element === document.body) { + element.style.removeProperty(styleProp); + } else { + Manipulator.removeDataAttribute(element, styleProp); + element.style[styleProp] = value; + } + }); + }; + + /** + * -------------------------------------------------------------------------- + * Bootstrap (v5.0.0-beta3): offcanvas.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * -------------------------------------------------------------------------- + */ + /** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + + const NAME$5 = 'offcanvas'; + const DATA_KEY$5 = 'bs.offcanvas'; + const EVENT_KEY$5 = `.${DATA_KEY$5}`; + const DATA_API_KEY$2 = '.data-api'; + const EVENT_LOAD_DATA_API$1 = `load${EVENT_KEY$5}${DATA_API_KEY$2}`; + const ESCAPE_KEY = 'Escape'; + const Default$4 = { + backdrop: true, + keyboard: true, + scroll: false + }; + const DefaultType$4 = { + backdrop: 'boolean', + keyboard: 'boolean', + scroll: 'boolean' + }; + const CLASS_NAME_BACKDROP_BODY = 'offcanvas-backdrop'; + const CLASS_NAME_SHOW$4 = 'show'; + const CLASS_NAME_TOGGLING = 'offcanvas-toggling'; + const OPEN_SELECTOR = '.offcanvas.show'; + const ACTIVE_SELECTOR = `${OPEN_SELECTOR}, .${CLASS_NAME_TOGGLING}`; + const EVENT_SHOW$2 = `show${EVENT_KEY$5}`; + const EVENT_SHOWN$2 = `shown${EVENT_KEY$5}`; + const EVENT_HIDE$2 = `hide${EVENT_KEY$5}`; + const EVENT_HIDDEN$2 = `hidden${EVENT_KEY$5}`; + const EVENT_FOCUSIN = `focusin${EVENT_KEY$5}`; + const EVENT_CLICK_DATA_API$1 = `click${EVENT_KEY$5}${DATA_API_KEY$2}`; + const EVENT_CLICK_DISMISS$1 = `click.dismiss${EVENT_KEY$5}`; + const SELECTOR_DATA_DISMISS$1 = '[data-bs-dismiss="offcanvas"]'; + const SELECTOR_DATA_TOGGLE$1 = '[data-bs-toggle="offcanvas"]'; + /** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + + class Offcanvas extends BaseComponent { + constructor(element, config) { + super(element); + this._config = this._getConfig(config); + this._isShown = false; + + this._addEventListeners(); + } // Getters - $.fn[NAME$5].noConflict = function () { - $.fn[NAME$5] = JQUERY_NO_CONFLICT; - return Modal.jQueryInterface; + + static get Default() { + return Default$4; + } + + static get DATA_KEY() { + return DATA_KEY$5; + } // Public + + + toggle(relatedTarget) { + return this._isShown ? this.hide() : this.show(relatedTarget); + } + + show(relatedTarget) { + if (this._isShown) { + return; + } + + const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$2, { + relatedTarget + }); + + if (showEvent.defaultPrevented) { + return; + } + + this._isShown = true; + this._element.style.visibility = 'visible'; + + if (this._config.backdrop) { + document.body.classList.add(CLASS_NAME_BACKDROP_BODY); + } + + if (!this._config.scroll) { + hide(); + } + + this._element.classList.add(CLASS_NAME_TOGGLING); + + this._element.removeAttribute('aria-hidden'); + + this._element.setAttribute('aria-modal', true); + + this._element.setAttribute('role', 'dialog'); + + this._element.classList.add(CLASS_NAME_SHOW$4); + + const completeCallBack = () => { + this._element.classList.remove(CLASS_NAME_TOGGLING); + + EventHandler.trigger(this._element, EVENT_SHOWN$2, { + relatedTarget + }); + + this._enforceFocusOnElement(this._element); }; + + setTimeout(completeCallBack, getTransitionDurationFromElement(this._element)); } + + hide() { + if (!this._isShown) { + return; + } + + const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$2); + + if (hideEvent.defaultPrevented) { + return; + } + + this._element.classList.add(CLASS_NAME_TOGGLING); + + EventHandler.off(document, EVENT_FOCUSIN); + + this._element.blur(); + + this._isShown = false; + + this._element.classList.remove(CLASS_NAME_SHOW$4); + + const completeCallback = () => { + this._element.setAttribute('aria-hidden', true); + + this._element.removeAttribute('aria-modal'); + + this._element.removeAttribute('role'); + + this._element.style.visibility = 'hidden'; + + if (this._config.backdrop) { + document.body.classList.remove(CLASS_NAME_BACKDROP_BODY); + } + + if (!this._config.scroll) { + reset(); + } + + EventHandler.trigger(this._element, EVENT_HIDDEN$2); + + this._element.classList.remove(CLASS_NAME_TOGGLING); + }; + + setTimeout(completeCallback, getTransitionDurationFromElement(this._element)); + } // Private + + + _getConfig(config) { + config = { ...Default$4, + ...Manipulator.getDataAttributes(this._element), + ...(typeof config === 'object' ? config : {}) + }; + typeCheckConfig(NAME$5, config, DefaultType$4); + return config; + } + + _enforceFocusOnElement(element) { + EventHandler.off(document, EVENT_FOCUSIN); // guard against infinite focus loop + + EventHandler.on(document, EVENT_FOCUSIN, event => { + if (document !== event.target && element !== event.target && !element.contains(event.target)) { + element.focus(); + } + }); + element.focus(); + } + + _addEventListeners() { + EventHandler.on(this._element, EVENT_CLICK_DISMISS$1, SELECTOR_DATA_DISMISS$1, () => this.hide()); + EventHandler.on(document, 'keydown', event => { + if (this._config.keyboard && event.key === ESCAPE_KEY) { + this.hide(); + } + }); + EventHandler.on(document, EVENT_CLICK_DATA_API$1, event => { + const target = SelectorEngine.findOne(getSelectorFromElement(event.target)); + + if (!this._element.contains(event.target) && target !== this._element) { + this.hide(); + } + }); + } // Static + + + static jQueryInterface(config) { + return this.each(function () { + const data = Data.get(this, DATA_KEY$5) || new Offcanvas(this, typeof config === 'object' ? config : {}); + + if (typeof config !== 'string') { + return; + } + + if (data[config] === undefined || config.startsWith('_') || config === 'constructor') { + throw new TypeError(`No method named "${config}"`); + } + + data[config](this); + }); + } + + } + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + + EventHandler.on(document, EVENT_CLICK_DATA_API$1, SELECTOR_DATA_TOGGLE$1, function (event) { + const target = getElementFromSelector(this); + + if (['A', 'AREA'].includes(this.tagName)) { + event.preventDefault(); + } + + if (isDisabled(this)) { + return; + } + + EventHandler.one(target, EVENT_HIDDEN$2, () => { + // focus on trigger when it is closed + if (isVisible(this)) { + this.focus(); + } + }); // avoid conflict when clicking a toggler of an offcanvas, while another is open + + const allReadyOpen = SelectorEngine.findOne(ACTIVE_SELECTOR); + + if (allReadyOpen && allReadyOpen !== target) { + return; + } + + const data = Data.get(target, DATA_KEY$5) || new Offcanvas(target); + data.toggle(this); + }); + EventHandler.on(window, EVENT_LOAD_DATA_API$1, () => { + SelectorEngine.find(OPEN_SELECTOR).forEach(el => (Data.get(el, DATA_KEY$5) || new Offcanvas(el)).show()); }); + /** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + */ + + defineJQueryPlugin(NAME$5, Offcanvas); /** * -------------------------------------------------------------------------- - * Bootstrap (v5.0.0-alpha3): util/sanitizer.js + * Bootstrap (v5.0.0-beta3): util/sanitizer.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ - var uriAttrs = new Set(['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href']); - var ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i; + const uriAttrs = new Set(['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href']); + const ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i; /** * A pattern that recognizes a commonly useful subset of URLs that are safe. * * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts */ - var SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi; + const SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/i; /** * A pattern that matches safe data URLs. Only matches image, video and audio types. * * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts */ - var DATA_URL_PATTERN = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i; + const DATA_URL_PATTERN = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i; - var allowedAttribute = function allowedAttribute(attr, allowedAttributeList) { - var attrName = attr.nodeName.toLowerCase(); + const allowedAttribute = (attr, allowedAttributeList) => { + const attrName = attr.nodeName.toLowerCase(); if (allowedAttributeList.includes(attrName)) { if (uriAttrs.has(attrName)) { - return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN)); + return Boolean(SAFE_URL_PATTERN.test(attr.nodeValue) || DATA_URL_PATTERN.test(attr.nodeValue)); } return true; } - var regExp = allowedAttributeList.filter(function (attrRegex) { - return attrRegex instanceof RegExp; - }); // Check if a regular expression validates the attribute. + const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp); // Check if a regular expression validates the attribute. - for (var i = 0, len = regExp.length; i < len; i++) { - if (attrName.match(regExp[i])) { + for (let i = 0, len = regExp.length; i < len; i++) { + if (regExp[i].test(attrName)) { return true; } } @@ -5824,7 +5083,7 @@ return false; }; - var DefaultAllowlist = { + const DefaultAllowlist = { // Global attributes allowed on any supplied element below. '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN], a: ['target', 'href', 'title', 'rel'], @@ -5858,8 +5117,6 @@ ul: [] }; function sanitizeHtml(unsafeHtml, allowList, sanitizeFn) { - var _ref; - if (!unsafeHtml.length) { return unsafeHtml; } @@ -5868,55 +5125,51 @@ return sanitizeFn(unsafeHtml); } - var domParser = new window.DOMParser(); - var createdDocument = domParser.parseFromString(unsafeHtml, 'text/html'); - var allowlistKeys = Object.keys(allowList); + const domParser = new window.DOMParser(); + const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html'); + const allowlistKeys = Object.keys(allowList); + const elements = [].concat(...createdDocument.body.querySelectorAll('*')); - var elements = (_ref = []).concat.apply(_ref, createdDocument.body.querySelectorAll('*')); - - var _loop = function _loop(i, len) { - var _ref2; - - var el = elements[i]; - var elName = el.nodeName.toLowerCase(); + for (let i = 0, len = elements.length; i < len; i++) { + const el = elements[i]; + const elName = el.nodeName.toLowerCase(); if (!allowlistKeys.includes(elName)) { el.parentNode.removeChild(el); - return "continue"; + continue; } - var attributeList = (_ref2 = []).concat.apply(_ref2, el.attributes); - - var allowedAttributes = [].concat(allowList['*'] || [], allowList[elName] || []); - attributeList.forEach(function (attr) { + const attributeList = [].concat(...el.attributes); + const allowedAttributes = [].concat(allowList['*'] || [], allowList[elName] || []); + attributeList.forEach(attr => { if (!allowedAttribute(attr, allowedAttributes)) { el.removeAttribute(attr.nodeName); } }); - }; - - for (var i = 0, len = elements.length; i < len; i++) { - var _ret = _loop(i); - - if (_ret === "continue") continue; } return createdDocument.body.innerHTML; } /** + * -------------------------------------------------------------------------- + * Bootstrap (v5.0.0-beta3): tooltip.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + /** * ------------------------------------------------------------------------ * Constants * ------------------------------------------------------------------------ */ - var NAME$6 = 'tooltip'; - var DATA_KEY$6 = 'bs.tooltip'; - var EVENT_KEY$6 = "." + DATA_KEY$6; - var CLASS_PREFIX = 'bs-tooltip'; - var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g'); - var DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn']); - var DefaultType$4 = { + const NAME$4 = 'tooltip'; + const DATA_KEY$4 = 'bs.tooltip'; + const EVENT_KEY$4 = `.${DATA_KEY$4}`; + const CLASS_PREFIX$1 = 'bs-tooltip'; + const BSCLS_PREFIX_REGEX$1 = new RegExp(`(^|\\s)${CLASS_PREFIX$1}\\S+`, 'g'); + const DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn']); + const DefaultType$3 = { animation: 'boolean', template: 'string', title: '(string|element|function)', @@ -5925,24 +5178,24 @@ html: 'boolean', selector: '(string|boolean)', placement: '(string|function)', - offset: '(number|string|function)', + offset: '(array|string|function)', container: '(string|element|boolean)', - fallbackPlacement: '(string|array)', + fallbackPlacements: 'array', boundary: '(string|element)', customClass: '(string|function)', sanitize: 'boolean', sanitizeFn: '(null|function)', allowList: 'object', - popperConfig: '(null|object)' + popperConfig: '(null|object|function)' }; - var AttachmentMap = { + const AttachmentMap = { AUTO: 'auto', TOP: 'top', - RIGHT: isRTL ? 'left' : 'right', + RIGHT: isRTL() ? 'left' : 'right', BOTTOM: 'bottom', - LEFT: isRTL ? 'right' : 'left' + LEFT: isRTL() ? 'right' : 'left' }; - var Default$4 = { + const Default$3 = { animation: true, template: '<div class="tooltip" role="tooltip">' + '<div class="tooltip-arrow"></div>' + '<div class="tooltip-inner"></div>' + '</div>', trigger: 'hover focus', @@ -5951,99 +5204,109 @@ html: false, selector: false, placement: 'top', - offset: 0, + offset: [0, 0], container: false, - fallbackPlacement: 'flip', - boundary: 'scrollParent', + fallbackPlacements: ['top', 'right', 'bottom', 'left'], + boundary: 'clippingParents', customClass: '', sanitize: true, sanitizeFn: null, allowList: DefaultAllowlist, popperConfig: null }; - var Event$1 = { - HIDE: "hide" + EVENT_KEY$6, - HIDDEN: "hidden" + EVENT_KEY$6, - SHOW: "show" + EVENT_KEY$6, - SHOWN: "shown" + EVENT_KEY$6, - INSERTED: "inserted" + EVENT_KEY$6, - CLICK: "click" + EVENT_KEY$6, - FOCUSIN: "focusin" + EVENT_KEY$6, - FOCUSOUT: "focusout" + EVENT_KEY$6, - MOUSEENTER: "mouseenter" + EVENT_KEY$6, - MOUSELEAVE: "mouseleave" + EVENT_KEY$6 + const Event$2 = { + HIDE: `hide${EVENT_KEY$4}`, + HIDDEN: `hidden${EVENT_KEY$4}`, + SHOW: `show${EVENT_KEY$4}`, + SHOWN: `shown${EVENT_KEY$4}`, + INSERTED: `inserted${EVENT_KEY$4}`, + CLICK: `click${EVENT_KEY$4}`, + FOCUSIN: `focusin${EVENT_KEY$4}`, + FOCUSOUT: `focusout${EVENT_KEY$4}`, + MOUSEENTER: `mouseenter${EVENT_KEY$4}`, + MOUSELEAVE: `mouseleave${EVENT_KEY$4}` }; - var CLASS_NAME_FADE$1 = 'fade'; - var CLASS_NAME_MODAL = 'modal'; - var CLASS_NAME_SHOW$3 = 'show'; - var HOVER_STATE_SHOW = 'show'; - var HOVER_STATE_OUT = 'out'; - var SELECTOR_TOOLTIP_INNER = '.tooltip-inner'; - var TRIGGER_HOVER = 'hover'; - var TRIGGER_FOCUS = 'focus'; - var TRIGGER_CLICK = 'click'; - var TRIGGER_MANUAL = 'manual'; + const CLASS_NAME_FADE$3 = 'fade'; + const CLASS_NAME_MODAL = 'modal'; + const CLASS_NAME_SHOW$3 = 'show'; + const HOVER_STATE_SHOW = 'show'; + const HOVER_STATE_OUT = 'out'; + const SELECTOR_TOOLTIP_INNER = '.tooltip-inner'; + const TRIGGER_HOVER = 'hover'; + const TRIGGER_FOCUS = 'focus'; + const TRIGGER_CLICK = 'click'; + const TRIGGER_MANUAL = 'manual'; /** * ------------------------------------------------------------------------ * Class Definition * ------------------------------------------------------------------------ */ - var Tooltip = /*#__PURE__*/function (_BaseComponent) { - _inheritsLoose(Tooltip, _BaseComponent); - - function Tooltip(element, config) { - var _this; - + class Tooltip extends BaseComponent { + constructor(element, config) { if (typeof Popper === 'undefined') { throw new TypeError('Bootstrap\'s tooltips require Popper (https://popper.js.org)'); } - _this = _BaseComponent.call(this, element) || this; // private + super(element); // private - _this._isEnabled = true; - _this._timeout = 0; - _this._hoverState = ''; - _this._activeTrigger = {}; - _this._popper = null; // Protected - - _this.config = _this._getConfig(config); - _this.tip = null; + this._isEnabled = true; + this._timeout = 0; + this._hoverState = ''; + this._activeTrigger = {}; + this._popper = null; // Protected - _this._setListeners(); + this.config = this._getConfig(config); + this.tip = null; - return _this; + this._setListeners(); } // Getters - var _proto = Tooltip.prototype; + static get Default() { + return Default$3; + } + + static get NAME() { + return NAME$4; + } + + static get DATA_KEY() { + return DATA_KEY$4; + } + + static get Event() { + return Event$2; + } + + static get EVENT_KEY() { + return EVENT_KEY$4; + } - // Public - _proto.enable = function enable() { + static get DefaultType() { + return DefaultType$3; + } // Public + + + enable() { this._isEnabled = true; - }; + } - _proto.disable = function disable() { + disable() { this._isEnabled = false; - }; + } - _proto.toggleEnabled = function toggleEnabled() { + toggleEnabled() { this._isEnabled = !this._isEnabled; - }; + } - _proto.toggle = function toggle(event) { + toggle(event) { if (!this._isEnabled) { return; } if (event) { - var dataKey = this.constructor.DATA_KEY; - var context = Data.getData(event.delegateTarget, dataKey); - - if (!context) { - context = new this.constructor(event.delegateTarget, this._getDelegateConfig()); - Data.setData(event.delegateTarget, dataKey, context); - } + const context = this._initializeOnDelegatedTarget(event); context._activeTrigger.click = !context._activeTrigger.click; @@ -6061,14 +5324,14 @@ this._enter(null, this); } - }; + } - _proto.dispose = function dispose() { + dispose() { clearTimeout(this._timeout); EventHandler.off(this._element, this.constructor.EVENT_KEY); - EventHandler.off(this._element.closest("." + CLASS_NAME_MODAL), 'hide.bs.modal', this._hideModalHandler); + EventHandler.off(this._element.closest(`.${CLASS_NAME_MODAL}`), 'hide.bs.modal', this._hideModalHandler); - if (this.tip) { + if (this.tip && this.tip.parentNode) { this.tip.parentNode.removeChild(this.tip); } @@ -6084,123 +5347,125 @@ this._popper = null; this.config = null; this.tip = null; + super.dispose(); + } - _BaseComponent.prototype.dispose.call(this); - }; - - _proto.show = function show() { - var _this2 = this; - + show() { if (this._element.style.display === 'none') { throw new Error('Please use show on visible elements'); } - if (this.isWithContent() && this._isEnabled) { - var showEvent = EventHandler.trigger(this._element, this.constructor.Event.SHOW); - var shadowRoot = findShadowRoot(this._element); - var isInTheDom = shadowRoot === null ? this._element.ownerDocument.documentElement.contains(this._element) : shadowRoot.contains(this._element); + if (!(this.isWithContent() && this._isEnabled)) { + return; + } - if (showEvent.defaultPrevented || !isInTheDom) { - return; - } + const showEvent = EventHandler.trigger(this._element, this.constructor.Event.SHOW); + const shadowRoot = findShadowRoot(this._element); + const isInTheDom = shadowRoot === null ? this._element.ownerDocument.documentElement.contains(this._element) : shadowRoot.contains(this._element); - var tip = this.getTipElement(); - var tipId = getUID(this.constructor.NAME); - tip.setAttribute('id', tipId); + if (showEvent.defaultPrevented || !isInTheDom) { + return; + } - this._element.setAttribute('aria-describedby', tipId); + const tip = this.getTipElement(); + const tipId = getUID(this.constructor.NAME); + tip.setAttribute('id', tipId); - this.setContent(); + this._element.setAttribute('aria-describedby', tipId); - if (this.config.animation) { - tip.classList.add(CLASS_NAME_FADE$1); - } + this.setContent(); - var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this._element) : this.config.placement; + if (this.config.animation) { + tip.classList.add(CLASS_NAME_FADE$3); + } - var attachment = this._getAttachment(placement); + const placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this._element) : this.config.placement; - this._addAttachmentClass(attachment); + const attachment = this._getAttachment(placement); - var container = this._getContainer(); + this._addAttachmentClass(attachment); - Data.setData(tip, this.constructor.DATA_KEY, this); + const container = this._getContainer(); - if (!this._element.ownerDocument.documentElement.contains(this.tip)) { - container.appendChild(tip); - } + Data.set(tip, this.constructor.DATA_KEY, this); + if (!this._element.ownerDocument.documentElement.contains(this.tip)) { + container.appendChild(tip); EventHandler.trigger(this._element, this.constructor.Event.INSERTED); - this._popper = new Popper(this._element, tip, this._getPopperConfig(attachment)); - tip.classList.add(CLASS_NAME_SHOW$3); - var customClass = typeof this.config.customClass === 'function' ? this.config.customClass() : this.config.customClass; - - if (customClass) { - var _tip$classList; - - (_tip$classList = tip.classList).add.apply(_tip$classList, customClass.split(' ')); - } // If this is a touch-enabled device we add extra - // empty mouseover listeners to the body's immediate children; - // only needed because of broken event delegation on iOS - // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html + } + if (this._popper) { + this._popper.update(); + } else { + this._popper = createPopper(this._element, tip, this._getPopperConfig(attachment)); + } - if ('ontouchstart' in document.documentElement) { - var _ref; + tip.classList.add(CLASS_NAME_SHOW$3); + const customClass = typeof this.config.customClass === 'function' ? this.config.customClass() : this.config.customClass; - (_ref = []).concat.apply(_ref, document.body.children).forEach(function (element) { - EventHandler.on(element, 'mouseover', noop()); - }); - } + if (customClass) { + tip.classList.add(...customClass.split(' ')); + } // If this is a touch-enabled device we add extra + // empty mouseover listeners to the body's immediate children; + // only needed because of broken event delegation on iOS + // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html - var complete = function complete() { - if (_this2.config.animation) { - _this2._fixTransition(); - } - var prevHoverState = _this2._hoverState; - _this2._hoverState = null; - EventHandler.trigger(_this2._element, _this2.constructor.Event.SHOWN); + if ('ontouchstart' in document.documentElement) { + [].concat(...document.body.children).forEach(element => { + EventHandler.on(element, 'mouseover', noop()); + }); + } - if (prevHoverState === HOVER_STATE_OUT) { - _this2._leave(null, _this2); - } - }; + const complete = () => { + const prevHoverState = this._hoverState; + this._hoverState = null; + EventHandler.trigger(this._element, this.constructor.Event.SHOWN); - if (this.tip.classList.contains(CLASS_NAME_FADE$1)) { - var transitionDuration = getTransitionDurationFromElement(this.tip); - EventHandler.one(this.tip, TRANSITION_END, complete); - emulateTransitionEnd(this.tip, transitionDuration); - } else { - complete(); + if (prevHoverState === HOVER_STATE_OUT) { + this._leave(null, this); } - } - }; + }; - _proto.hide = function hide() { - var _this3 = this; + if (this.tip.classList.contains(CLASS_NAME_FADE$3)) { + const transitionDuration = getTransitionDurationFromElement(this.tip); + EventHandler.one(this.tip, 'transitionend', complete); + emulateTransitionEnd(this.tip, transitionDuration); + } else { + complete(); + } + } + hide() { if (!this._popper) { return; } - var tip = this.getTipElement(); + const tip = this.getTipElement(); - var complete = function complete() { - if (_this3._hoverState !== HOVER_STATE_SHOW && tip.parentNode) { + const complete = () => { + if (this._isWithActiveTrigger()) { + return; + } + + if (this._hoverState !== HOVER_STATE_SHOW && tip.parentNode) { tip.parentNode.removeChild(tip); } - _this3._cleanTipClass(); + this._cleanTipClass(); + + this._element.removeAttribute('aria-describedby'); - _this3._element.removeAttribute('aria-describedby'); + EventHandler.trigger(this._element, this.constructor.Event.HIDDEN); - EventHandler.trigger(_this3._element, _this3.constructor.Event.HIDDEN); + if (this._popper) { + this._popper.destroy(); - _this3._popper.destroy(); + this._popper = null; + } }; - var hideEvent = EventHandler.trigger(this._element, this.constructor.Event.HIDE); + const hideEvent = EventHandler.trigger(this._element, this.constructor.Event.HIDE); if (hideEvent.defaultPrevented) { return; @@ -6210,62 +5475,58 @@ // empty mouseover listeners we added for iOS support if ('ontouchstart' in document.documentElement) { - var _ref2; - - (_ref2 = []).concat.apply(_ref2, document.body.children).forEach(function (element) { - return EventHandler.off(element, 'mouseover', noop); - }); + [].concat(...document.body.children).forEach(element => EventHandler.off(element, 'mouseover', noop)); } this._activeTrigger[TRIGGER_CLICK] = false; this._activeTrigger[TRIGGER_FOCUS] = false; this._activeTrigger[TRIGGER_HOVER] = false; - if (this.tip.classList.contains(CLASS_NAME_FADE$1)) { - var transitionDuration = getTransitionDurationFromElement(tip); - EventHandler.one(tip, TRANSITION_END, complete); + if (this.tip.classList.contains(CLASS_NAME_FADE$3)) { + const transitionDuration = getTransitionDurationFromElement(tip); + EventHandler.one(tip, 'transitionend', complete); emulateTransitionEnd(tip, transitionDuration); } else { complete(); } this._hoverState = ''; - }; + } - _proto.update = function update() { + update() { if (this._popper !== null) { - this._popper.scheduleUpdate(); + this._popper.update(); } } // Protected - ; - _proto.isWithContent = function isWithContent() { + + isWithContent() { return Boolean(this.getTitle()); - }; + } - _proto.getTipElement = function getTipElement() { + getTipElement() { if (this.tip) { return this.tip; } - var element = document.createElement('div'); + const element = document.createElement('div'); element.innerHTML = this.config.template; this.tip = element.children[0]; return this.tip; - }; + } - _proto.setContent = function setContent() { - var tip = this.getTipElement(); + setContent() { + const tip = this.getTipElement(); this.setElementContent(SelectorEngine.findOne(SELECTOR_TOOLTIP_INNER, tip), this.getTitle()); - tip.classList.remove(CLASS_NAME_FADE$1, CLASS_NAME_SHOW$3); - }; + tip.classList.remove(CLASS_NAME_FADE$3, CLASS_NAME_SHOW$3); + } - _proto.setElementContent = function setElementContent(element, content) { + setElementContent(element, content) { if (element === null) { return; } - if (typeof content === 'object' && isElement(content)) { + if (typeof content === 'object' && isElement$1(content)) { if (content.jquery) { content = content[0]; } // content is a DOM node or a jQuery @@ -6292,19 +5553,19 @@ } else { element.textContent = content; } - }; + } - _proto.getTitle = function getTitle() { - var title = this._element.getAttribute('data-bs-original-title'); + getTitle() { + let title = this._element.getAttribute('data-bs-original-title'); if (!title) { title = typeof this.config.title === 'function' ? this.config.title.call(this._element) : this.config.title; } return title; - }; + } - _proto.updateAttachment = function updateAttachment(attachment) { + updateAttachment(attachment) { if (attachment === 'right') { return 'end'; } @@ -6315,117 +5576,132 @@ return attachment; } // Private - ; - _proto._getPopperConfig = function _getPopperConfig(attachment) { - var _this4 = this; - var defaultBsConfig = { - placement: attachment, - modifiers: { - offset: this._getOffset(), - flip: { - behavior: this.config.fallbackPlacement - }, - arrow: { - element: "." + this.constructor.NAME + "-arrow" - }, - preventOverflow: { - boundariesElement: this.config.boundary - } - }, - onCreate: function onCreate(data) { - if (data.originalPlacement !== data.placement) { - _this4._handlePopperPlacementChange(data); - } - }, - onUpdate: function onUpdate(data) { - return _this4._handlePopperPlacementChange(data); - } - }; - return _extends({}, defaultBsConfig, this.config.popperConfig); - }; + _initializeOnDelegatedTarget(event, context) { + const dataKey = this.constructor.DATA_KEY; + context = context || Data.get(event.delegateTarget, dataKey); - _proto._addAttachmentClass = function _addAttachmentClass(attachment) { - this.getTipElement().classList.add(CLASS_PREFIX + "-" + this.updateAttachment(attachment)); - }; + if (!context) { + context = new this.constructor(event.delegateTarget, this._getDelegateConfig()); + Data.set(event.delegateTarget, dataKey, context); + } + + return context; + } - _proto._getOffset = function _getOffset() { - var _this5 = this; + _getOffset() { + const { + offset + } = this.config; - var offset = {}; + if (typeof offset === 'string') { + return offset.split(',').map(val => Number.parseInt(val, 10)); + } - if (typeof this.config.offset === 'function') { - offset.fn = function (data) { - data.offsets = _extends({}, data.offsets, _this5.config.offset(data.offsets, _this5._element) || {}); - return data; - }; - } else { - offset.offset = this.config.offset; + if (typeof offset === 'function') { + return popperData => offset(popperData, this._element); } return offset; - }; + } + + _getPopperConfig(attachment) { + const defaultBsPopperConfig = { + placement: attachment, + modifiers: [{ + name: 'flip', + options: { + altBoundary: true, + fallbackPlacements: this.config.fallbackPlacements + } + }, { + name: 'offset', + options: { + offset: this._getOffset() + } + }, { + name: 'preventOverflow', + options: { + boundary: this.config.boundary + } + }, { + name: 'arrow', + options: { + element: `.${this.constructor.NAME}-arrow` + } + }, { + name: 'onChange', + enabled: true, + phase: 'afterWrite', + fn: data => this._handlePopperPlacementChange(data) + }], + onFirstUpdate: data => { + if (data.options.placement !== data.placement) { + this._handlePopperPlacementChange(data); + } + } + }; + return { ...defaultBsPopperConfig, + ...(typeof this.config.popperConfig === 'function' ? this.config.popperConfig(defaultBsPopperConfig) : this.config.popperConfig) + }; + } - _proto._getContainer = function _getContainer() { + _addAttachmentClass(attachment) { + this.getTipElement().classList.add(`${CLASS_PREFIX$1}-${this.updateAttachment(attachment)}`); + } + + _getContainer() { if (this.config.container === false) { return document.body; } - if (isElement(this.config.container)) { + if (isElement$1(this.config.container)) { return this.config.container; } return SelectorEngine.findOne(this.config.container); - }; + } - _proto._getAttachment = function _getAttachment(placement) { + _getAttachment(placement) { return AttachmentMap[placement.toUpperCase()]; - }; - - _proto._setListeners = function _setListeners() { - var _this6 = this; + } - var triggers = this.config.trigger.split(' '); - triggers.forEach(function (trigger) { + _setListeners() { + const triggers = this.config.trigger.split(' '); + triggers.forEach(trigger => { if (trigger === 'click') { - EventHandler.on(_this6._element, _this6.constructor.Event.CLICK, _this6.config.selector, function (event) { - return _this6.toggle(event); - }); + EventHandler.on(this._element, this.constructor.Event.CLICK, this.config.selector, event => this.toggle(event)); } else if (trigger !== TRIGGER_MANUAL) { - var eventIn = trigger === TRIGGER_HOVER ? _this6.constructor.Event.MOUSEENTER : _this6.constructor.Event.FOCUSIN; - var eventOut = trigger === TRIGGER_HOVER ? _this6.constructor.Event.MOUSELEAVE : _this6.constructor.Event.FOCUSOUT; - EventHandler.on(_this6._element, eventIn, _this6.config.selector, function (event) { - return _this6._enter(event); - }); - EventHandler.on(_this6._element, eventOut, _this6.config.selector, function (event) { - return _this6._leave(event); - }); + const eventIn = trigger === TRIGGER_HOVER ? this.constructor.Event.MOUSEENTER : this.constructor.Event.FOCUSIN; + const eventOut = trigger === TRIGGER_HOVER ? this.constructor.Event.MOUSELEAVE : this.constructor.Event.FOCUSOUT; + EventHandler.on(this._element, eventIn, this.config.selector, event => this._enter(event)); + EventHandler.on(this._element, eventOut, this.config.selector, event => this._leave(event)); } }); - this._hideModalHandler = function () { - if (_this6._element) { - _this6.hide(); + this._hideModalHandler = () => { + if (this._element) { + this.hide(); } }; - EventHandler.on(this._element.closest("." + CLASS_NAME_MODAL), 'hide.bs.modal', this._hideModalHandler); + EventHandler.on(this._element.closest(`.${CLASS_NAME_MODAL}`), 'hide.bs.modal', this._hideModalHandler); if (this.config.selector) { - this.config = _extends({}, this.config, { + this.config = { ...this.config, trigger: 'manual', selector: '' - }); + }; } else { this._fixTitle(); } - }; + } - _proto._fixTitle = function _fixTitle() { - var title = this._element.getAttribute('title'); + _fixTitle() { + const title = this._element.getAttribute('title'); - var originalTitleType = typeof this._element.getAttribute('data-bs-original-title'); + const originalTitleType = typeof this._element.getAttribute('data-bs-original-title'); if (title || originalTitleType !== 'string') { this._element.setAttribute('data-bs-original-title', title || ''); @@ -6436,16 +5712,10 @@ this._element.setAttribute('title', ''); } - }; - - _proto._enter = function _enter(event, context) { - var dataKey = this.constructor.DATA_KEY; - context = context || Data.getData(event.delegateTarget, dataKey); + } - if (!context) { - context = new this.constructor(event.delegateTarget, this._getDelegateConfig()); - Data.setData(event.delegateTarget, dataKey, context); - } + _enter(event, context) { + context = this._initializeOnDelegatedTarget(event, context); if (event) { context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true; @@ -6464,24 +5734,18 @@ return; } - context._timeout = setTimeout(function () { + context._timeout = setTimeout(() => { if (context._hoverState === HOVER_STATE_SHOW) { context.show(); } }, context.config.delay.show); - }; + } - _proto._leave = function _leave(event, context) { - var dataKey = this.constructor.DATA_KEY; - context = context || Data.getData(event.delegateTarget, dataKey); - - if (!context) { - context = new this.constructor(event.delegateTarget, this._getDelegateConfig()); - Data.setData(event.delegateTarget, dataKey, context); - } + _leave(event, context) { + context = this._initializeOnDelegatedTarget(event, context); if (event) { - context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] = false; + context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] = context._element.contains(event.relatedTarget); } if (context._isWithActiveTrigger()) { @@ -6496,26 +5760,26 @@ return; } - context._timeout = setTimeout(function () { + context._timeout = setTimeout(() => { if (context._hoverState === HOVER_STATE_OUT) { context.hide(); } }, context.config.delay.hide); - }; + } - _proto._isWithActiveTrigger = function _isWithActiveTrigger() { - for (var trigger in this._activeTrigger) { + _isWithActiveTrigger() { + for (const trigger in this._activeTrigger) { if (this._activeTrigger[trigger]) { return true; } } return false; - }; + } - _proto._getConfig = function _getConfig(config) { - var dataAttributes = Manipulator.getDataAttributes(this._element); - Object.keys(dataAttributes).forEach(function (dataAttr) { + _getConfig(config) { + const dataAttributes = Manipulator.getDataAttributes(this._element); + Object.keys(dataAttributes).forEach(dataAttr => { if (DISALLOWED_ATTRIBUTES.has(dataAttr)) { delete dataAttributes[dataAttr]; } @@ -6525,7 +5789,10 @@ config.container = config.container[0]; } - config = _extends({}, this.constructor.Default, dataAttributes, typeof config === 'object' && config ? config : {}); + config = { ...this.constructor.Default, + ...dataAttributes, + ...(typeof config === 'object' && config ? config : {}) + }; if (typeof config.delay === 'number') { config.delay = { @@ -6542,20 +5809,20 @@ config.content = config.content.toString(); } - typeCheckConfig(NAME$6, config, this.constructor.DefaultType); + typeCheckConfig(NAME$4, config, this.constructor.DefaultType); if (config.sanitize) { config.template = sanitizeHtml(config.template, config.allowList, config.sanitizeFn); } return config; - }; + } - _proto._getDelegateConfig = function _getDelegateConfig() { - var config = {}; + _getDelegateConfig() { + const config = {}; if (this.config) { - for (var key in this.config) { + for (const key in this.config) { if (this.constructor.Default[key] !== this.config[key]) { config[key] = this.config[key]; } @@ -6563,50 +5830,39 @@ } return config; - }; + } - _proto._cleanTipClass = function _cleanTipClass() { - var tip = this.getTipElement(); - var tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX); + _cleanTipClass() { + const tip = this.getTipElement(); + const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX$1); if (tabClass !== null && tabClass.length > 0) { - tabClass.map(function (token) { - return token.trim(); - }).forEach(function (tClass) { - return tip.classList.remove(tClass); - }); + tabClass.map(token => token.trim()).forEach(tClass => tip.classList.remove(tClass)); } - }; - - _proto._handlePopperPlacementChange = function _handlePopperPlacementChange(popperData) { - this.tip = popperData.instance.popper; - - this._cleanTipClass(); - - this._addAttachmentClass(this._getAttachment(popperData.placement)); - }; + } - _proto._fixTransition = function _fixTransition() { - var tip = this.getTipElement(); - var initConfigAnimation = this.config.animation; + _handlePopperPlacementChange(popperData) { + const { + state + } = popperData; - if (tip.getAttribute('x-placement') !== null) { + if (!state) { return; } - tip.classList.remove(CLASS_NAME_FADE$1); - this.config.animation = false; - this.hide(); - this.show(); - this.config.animation = initConfigAnimation; + this.tip = state.elements.popper; + + this._cleanTipClass(); + + this._addAttachmentClass(this._getAttachment(state.placement)); } // Static - ; - Tooltip.jQueryInterface = function jQueryInterface(config) { + + static jQueryInterface(config) { return this.each(function () { - var data = Data.getData(this, DATA_KEY$6); + let data = Data.get(this, DATA_KEY$4); - var _config = typeof config === 'object' && config; + const _config = typeof config === 'object' && config; if (!data && /dispose|hide/.test(config)) { return; @@ -6618,48 +5874,15 @@ if (typeof config === 'string') { if (typeof data[config] === 'undefined') { - throw new TypeError("No method named \"" + config + "\""); + throw new TypeError(`No method named "${config}"`); } data[config](); } }); - }; - - _createClass(Tooltip, null, [{ - key: "Default", - get: function get() { - return Default$4; - } - }, { - key: "NAME", - get: function get() { - return NAME$6; - } - }, { - key: "DATA_KEY", - get: function get() { - return DATA_KEY$6; - } - }, { - key: "Event", - get: function get() { - return Event$1; - } - }, { - key: "EVENT_KEY", - get: function get() { - return EVENT_KEY$6; - } - }, { - key: "DefaultType", - get: function get() { - return DefaultType$4; - } - }]); + } - return Tooltip; - }(BaseComponent); + } /** * ------------------------------------------------------------------------ * jQuery @@ -6668,124 +5891,127 @@ */ - onDOMContentLoaded(function () { - var $ = getjQuery(); - /* istanbul ignore if */ - - if ($) { - var JQUERY_NO_CONFLICT = $.fn[NAME$6]; - $.fn[NAME$6] = Tooltip.jQueryInterface; - $.fn[NAME$6].Constructor = Tooltip; - - $.fn[NAME$6].noConflict = function () { - $.fn[NAME$6] = JQUERY_NO_CONFLICT; - return Tooltip.jQueryInterface; - }; - } - }); + defineJQueryPlugin(NAME$4, Tooltip); /** + * -------------------------------------------------------------------------- + * Bootstrap (v5.0.0-beta3): popover.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + /** * ------------------------------------------------------------------------ * Constants * ------------------------------------------------------------------------ */ - var NAME$7 = 'popover'; - var DATA_KEY$7 = 'bs.popover'; - var EVENT_KEY$7 = "." + DATA_KEY$7; - var CLASS_PREFIX$1 = 'bs-popover'; - var BSCLS_PREFIX_REGEX$1 = new RegExp("(^|\\s)" + CLASS_PREFIX$1 + "\\S+", 'g'); - - var Default$5 = _extends({}, Tooltip.Default, { + const NAME$3 = 'popover'; + const DATA_KEY$3 = 'bs.popover'; + const EVENT_KEY$3 = `.${DATA_KEY$3}`; + const CLASS_PREFIX = 'bs-popover'; + const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\s)${CLASS_PREFIX}\\S+`, 'g'); + const Default$2 = { ...Tooltip.Default, placement: 'right', + offset: [0, 8], trigger: 'click', content: '', template: '<div class="popover" role="tooltip">' + '<div class="popover-arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div>' + '</div>' - }); - - var DefaultType$5 = _extends({}, Tooltip.DefaultType, { + }; + const DefaultType$2 = { ...Tooltip.DefaultType, content: '(string|element|function)' - }); - - var Event$2 = { - HIDE: "hide" + EVENT_KEY$7, - HIDDEN: "hidden" + EVENT_KEY$7, - SHOW: "show" + EVENT_KEY$7, - SHOWN: "shown" + EVENT_KEY$7, - INSERTED: "inserted" + EVENT_KEY$7, - CLICK: "click" + EVENT_KEY$7, - FOCUSIN: "focusin" + EVENT_KEY$7, - FOCUSOUT: "focusout" + EVENT_KEY$7, - MOUSEENTER: "mouseenter" + EVENT_KEY$7, - MOUSELEAVE: "mouseleave" + EVENT_KEY$7 }; - var CLASS_NAME_FADE$2 = 'fade'; - var CLASS_NAME_SHOW$4 = 'show'; - var SELECTOR_TITLE = '.popover-header'; - var SELECTOR_CONTENT = '.popover-body'; + const Event$1 = { + HIDE: `hide${EVENT_KEY$3}`, + HIDDEN: `hidden${EVENT_KEY$3}`, + SHOW: `show${EVENT_KEY$3}`, + SHOWN: `shown${EVENT_KEY$3}`, + INSERTED: `inserted${EVENT_KEY$3}`, + CLICK: `click${EVENT_KEY$3}`, + FOCUSIN: `focusin${EVENT_KEY$3}`, + FOCUSOUT: `focusout${EVENT_KEY$3}`, + MOUSEENTER: `mouseenter${EVENT_KEY$3}`, + MOUSELEAVE: `mouseleave${EVENT_KEY$3}` + }; + const CLASS_NAME_FADE$2 = 'fade'; + const CLASS_NAME_SHOW$2 = 'show'; + const SELECTOR_TITLE = '.popover-header'; + const SELECTOR_CONTENT = '.popover-body'; /** * ------------------------------------------------------------------------ * Class Definition * ------------------------------------------------------------------------ */ - var Popover = /*#__PURE__*/function (_Tooltip) { - _inheritsLoose(Popover, _Tooltip); + class Popover extends Tooltip { + // Getters + static get Default() { + return Default$2; + } + + static get NAME() { + return NAME$3; + } - function Popover() { - return _Tooltip.apply(this, arguments) || this; + static get DATA_KEY() { + return DATA_KEY$3; } - var _proto = Popover.prototype; + static get Event() { + return Event$1; + } + + static get EVENT_KEY() { + return EVENT_KEY$3; + } - // Overrides - _proto.isWithContent = function isWithContent() { + static get DefaultType() { + return DefaultType$2; + } // Overrides + + + isWithContent() { return this.getTitle() || this._getContent(); - }; + } - _proto.setContent = function setContent() { - var tip = this.getTipElement(); // we use append for html objects to maintain js events + setContent() { + const tip = this.getTipElement(); // we use append for html objects to maintain js events this.setElementContent(SelectorEngine.findOne(SELECTOR_TITLE, tip), this.getTitle()); - var content = this._getContent(); + let content = this._getContent(); if (typeof content === 'function') { content = content.call(this._element); } this.setElementContent(SelectorEngine.findOne(SELECTOR_CONTENT, tip), content); - tip.classList.remove(CLASS_NAME_FADE$2, CLASS_NAME_SHOW$4); + tip.classList.remove(CLASS_NAME_FADE$2, CLASS_NAME_SHOW$2); } // Private - ; - _proto._addAttachmentClass = function _addAttachmentClass(attachment) { - this.getTipElement().classList.add(CLASS_PREFIX$1 + "-" + this.updateAttachment(attachment)); - }; - _proto._getContent = function _getContent() { + _addAttachmentClass(attachment) { + this.getTipElement().classList.add(`${CLASS_PREFIX}-${this.updateAttachment(attachment)}`); + } + + _getContent() { return this._element.getAttribute('data-bs-content') || this.config.content; - }; + } - _proto._cleanTipClass = function _cleanTipClass() { - var tip = this.getTipElement(); - var tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX$1); + _cleanTipClass() { + const tip = this.getTipElement(); + const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX); if (tabClass !== null && tabClass.length > 0) { - tabClass.map(function (token) { - return token.trim(); - }).forEach(function (tClass) { - return tip.classList.remove(tClass); - }); + tabClass.map(token => token.trim()).forEach(tClass => tip.classList.remove(tClass)); } } // Static - ; - Popover.jQueryInterface = function jQueryInterface(config) { + + static jQueryInterface(config) { return this.each(function () { - var data = Data.getData(this, DATA_KEY$7); + let data = Data.get(this, DATA_KEY$3); - var _config = typeof config === 'object' ? config : null; + const _config = typeof config === 'object' ? config : null; if (!data && /dispose|hide/.test(config)) { return; @@ -6793,54 +6019,20 @@ if (!data) { data = new Popover(this, _config); - Data.setData(this, DATA_KEY$7, data); + Data.set(this, DATA_KEY$3, data); } if (typeof config === 'string') { if (typeof data[config] === 'undefined') { - throw new TypeError("No method named \"" + config + "\""); + throw new TypeError(`No method named "${config}"`); } data[config](); } }); - }; + } - _createClass(Popover, null, [{ - key: "Default", - // Getters - get: function get() { - return Default$5; - } - }, { - key: "NAME", - get: function get() { - return NAME$7; - } - }, { - key: "DATA_KEY", - get: function get() { - return DATA_KEY$7; - } - }, { - key: "Event", - get: function get() { - return Event$2; - } - }, { - key: "EVENT_KEY", - get: function get() { - return EVENT_KEY$7; - } - }, { - key: "DefaultType", - get: function get() { - return DefaultType$5; - } - }]); - - return Popover; - }(Tooltip); + } /** * ------------------------------------------------------------------------ * jQuery @@ -6849,107 +6041,94 @@ */ - onDOMContentLoaded(function () { - var $ = getjQuery(); - /* istanbul ignore if */ - - if ($) { - var JQUERY_NO_CONFLICT = $.fn[NAME$7]; - $.fn[NAME$7] = Popover.jQueryInterface; - $.fn[NAME$7].Constructor = Popover; - - $.fn[NAME$7].noConflict = function () { - $.fn[NAME$7] = JQUERY_NO_CONFLICT; - return Popover.jQueryInterface; - }; - } - }); + defineJQueryPlugin(NAME$3, Popover); /** + * -------------------------------------------------------------------------- + * Bootstrap (v5.0.0-beta3): scrollspy.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + /** * ------------------------------------------------------------------------ * Constants * ------------------------------------------------------------------------ */ - var NAME$8 = 'scrollspy'; - var DATA_KEY$8 = 'bs.scrollspy'; - var EVENT_KEY$8 = "." + DATA_KEY$8; - var DATA_API_KEY$6 = '.data-api'; - var Default$6 = { + const NAME$2 = 'scrollspy'; + const DATA_KEY$2 = 'bs.scrollspy'; + const EVENT_KEY$2 = `.${DATA_KEY$2}`; + const DATA_API_KEY$1 = '.data-api'; + const Default$1 = { offset: 10, method: 'auto', target: '' }; - var DefaultType$6 = { + const DefaultType$1 = { offset: 'number', method: 'string', target: '(string|element)' }; - var EVENT_ACTIVATE = "activate" + EVENT_KEY$8; - var EVENT_SCROLL = "scroll" + EVENT_KEY$8; - var EVENT_LOAD_DATA_API$1 = "load" + EVENT_KEY$8 + DATA_API_KEY$6; - var CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item'; - var CLASS_NAME_ACTIVE$2 = 'active'; - var SELECTOR_DATA_SPY = '[data-bs-spy="scroll"]'; - var SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'; - var SELECTOR_NAV_LINKS = '.nav-link'; - var SELECTOR_NAV_ITEMS = '.nav-item'; - var SELECTOR_LIST_ITEMS = '.list-group-item'; - var SELECTOR_DROPDOWN = '.dropdown'; - var SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'; - var METHOD_OFFSET = 'offset'; - var METHOD_POSITION = 'position'; + const EVENT_ACTIVATE = `activate${EVENT_KEY$2}`; + const EVENT_SCROLL = `scroll${EVENT_KEY$2}`; + const EVENT_LOAD_DATA_API = `load${EVENT_KEY$2}${DATA_API_KEY$1}`; + const CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item'; + const CLASS_NAME_ACTIVE$1 = 'active'; + const SELECTOR_DATA_SPY = '[data-bs-spy="scroll"]'; + const SELECTOR_NAV_LIST_GROUP$1 = '.nav, .list-group'; + const SELECTOR_NAV_LINKS = '.nav-link'; + const SELECTOR_NAV_ITEMS = '.nav-item'; + const SELECTOR_LIST_ITEMS = '.list-group-item'; + const SELECTOR_DROPDOWN$1 = '.dropdown'; + const SELECTOR_DROPDOWN_TOGGLE$1 = '.dropdown-toggle'; + const METHOD_OFFSET = 'offset'; + const METHOD_POSITION = 'position'; /** * ------------------------------------------------------------------------ * Class Definition * ------------------------------------------------------------------------ */ - var ScrollSpy = /*#__PURE__*/function (_BaseComponent) { - _inheritsLoose(ScrollSpy, _BaseComponent); - - function ScrollSpy(element, config) { - var _this; - - _this = _BaseComponent.call(this, element) || this; - _this._scrollElement = element.tagName === 'BODY' ? window : element; - _this._config = _this._getConfig(config); - _this._selector = _this._config.target + " " + SELECTOR_NAV_LINKS + ", " + _this._config.target + " " + SELECTOR_LIST_ITEMS + ", " + _this._config.target + " ." + CLASS_NAME_DROPDOWN_ITEM; - _this._offsets = []; - _this._targets = []; - _this._activeTarget = null; - _this._scrollHeight = 0; - EventHandler.on(_this._scrollElement, EVENT_SCROLL, function (event) { - return _this._process(event); - }); - - _this.refresh(); - - _this._process(); + class ScrollSpy extends BaseComponent { + constructor(element, config) { + super(element); + this._scrollElement = this._element.tagName === 'BODY' ? window : this._element; + this._config = this._getConfig(config); + this._selector = `${this._config.target} ${SELECTOR_NAV_LINKS}, ${this._config.target} ${SELECTOR_LIST_ITEMS}, ${this._config.target} .${CLASS_NAME_DROPDOWN_ITEM}`; + this._offsets = []; + this._targets = []; + this._activeTarget = null; + this._scrollHeight = 0; + EventHandler.on(this._scrollElement, EVENT_SCROLL, () => this._process()); + this.refresh(); - return _this; + this._process(); } // Getters - var _proto = ScrollSpy.prototype; + static get Default() { + return Default$1; + } + + static get DATA_KEY() { + return DATA_KEY$2; + } // Public - // Public - _proto.refresh = function refresh() { - var _this2 = this; - var autoMethod = this._scrollElement === this._scrollElement.window ? METHOD_OFFSET : METHOD_POSITION; - var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method; - var offsetBase = offsetMethod === METHOD_POSITION ? this._getScrollTop() : 0; + refresh() { + const autoMethod = this._scrollElement === this._scrollElement.window ? METHOD_OFFSET : METHOD_POSITION; + const offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method; + const offsetBase = offsetMethod === METHOD_POSITION ? this._getScrollTop() : 0; this._offsets = []; this._targets = []; this._scrollHeight = this._getScrollHeight(); - var targets = SelectorEngine.find(this._selector); - targets.map(function (element) { - var targetSelector = getSelectorFromElement(element); - var target = targetSelector ? SelectorEngine.findOne(targetSelector) : null; + const targets = SelectorEngine.find(this._selector); + targets.map(element => { + const targetSelector = getSelectorFromElement(element); + const target = targetSelector ? SelectorEngine.findOne(targetSelector) : null; if (target) { - var targetBCR = target.getBoundingClientRect(); + const targetBCR = target.getBoundingClientRect(); if (targetBCR.width || targetBCR.height) { return [Manipulator[offsetMethod](target).top + offsetBase, targetSelector]; @@ -6957,21 +6136,16 @@ } return null; - }).filter(function (item) { - return item; - }).sort(function (a, b) { - return a[0] - b[0]; - }).forEach(function (item) { - _this2._offsets.push(item[0]); - - _this2._targets.push(item[1]); - }); - }; + }).filter(item => item).sort((a, b) => a[0] - b[0]).forEach(item => { + this._offsets.push(item[0]); - _proto.dispose = function dispose() { - _BaseComponent.prototype.dispose.call(this); + this._targets.push(item[1]); + }); + } - EventHandler.off(this._scrollElement, EVENT_KEY$8); + dispose() { + super.dispose(); + EventHandler.off(this._scrollElement, EVENT_KEY$2); this._scrollElement = null; this._config = null; this._selector = null; @@ -6980,51 +6154,55 @@ this._activeTarget = null; this._scrollHeight = null; } // Private - ; - _proto._getConfig = function _getConfig(config) { - config = _extends({}, Default$6, typeof config === 'object' && config ? config : {}); - if (typeof config.target !== 'string' && isElement(config.target)) { - var id = config.target.id; + _getConfig(config) { + config = { ...Default$1, + ...(typeof config === 'object' && config ? config : {}) + }; + + if (typeof config.target !== 'string' && isElement$1(config.target)) { + let { + id + } = config.target; if (!id) { - id = getUID(NAME$8); + id = getUID(NAME$2); config.target.id = id; } - config.target = "#" + id; + config.target = `#${id}`; } - typeCheckConfig(NAME$8, config, DefaultType$6); + typeCheckConfig(NAME$2, config, DefaultType$1); return config; - }; + } - _proto._getScrollTop = function _getScrollTop() { + _getScrollTop() { return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop; - }; + } - _proto._getScrollHeight = function _getScrollHeight() { + _getScrollHeight() { return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight); - }; + } - _proto._getOffsetHeight = function _getOffsetHeight() { + _getOffsetHeight() { return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height; - }; + } - _proto._process = function _process() { - var scrollTop = this._getScrollTop() + this._config.offset; + _process() { + const scrollTop = this._getScrollTop() + this._config.offset; - var scrollHeight = this._getScrollHeight(); + const scrollHeight = this._getScrollHeight(); - var maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight(); + const maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight(); if (this._scrollHeight !== scrollHeight) { this.refresh(); } if (scrollTop >= maxScroll) { - var target = this._targets[this._targets.length - 1]; + const target = this._targets[this._targets.length - 1]; if (this._activeTarget !== target) { this._activate(target); @@ -7041,43 +6219,37 @@ return; } - for (var i = this._offsets.length; i--;) { - var isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]); + for (let i = this._offsets.length; i--;) { + const isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]); if (isActiveTarget) { this._activate(this._targets[i]); } } - }; + } - _proto._activate = function _activate(target) { + _activate(target) { this._activeTarget = target; this._clear(); - var queries = this._selector.split(',').map(function (selector) { - return selector + "[data-bs-target=\"" + target + "\"]," + selector + "[href=\"" + target + "\"]"; - }); + const queries = this._selector.split(',').map(selector => `${selector}[data-bs-target="${target}"],${selector}[href="${target}"]`); - var link = SelectorEngine.findOne(queries.join(',')); + const link = SelectorEngine.findOne(queries.join(',')); if (link.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) { - SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE, link.closest(SELECTOR_DROPDOWN)).classList.add(CLASS_NAME_ACTIVE$2); - link.classList.add(CLASS_NAME_ACTIVE$2); + SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE$1, link.closest(SELECTOR_DROPDOWN$1)).classList.add(CLASS_NAME_ACTIVE$1); + link.classList.add(CLASS_NAME_ACTIVE$1); } else { // Set triggered link as active - link.classList.add(CLASS_NAME_ACTIVE$2); - SelectorEngine.parents(link, SELECTOR_NAV_LIST_GROUP).forEach(function (listGroup) { + link.classList.add(CLASS_NAME_ACTIVE$1); + SelectorEngine.parents(link, SELECTOR_NAV_LIST_GROUP$1).forEach(listGroup => { // Set triggered links parents as active // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor - SelectorEngine.prev(listGroup, SELECTOR_NAV_LINKS + ", " + SELECTOR_LIST_ITEMS).forEach(function (item) { - return item.classList.add(CLASS_NAME_ACTIVE$2); - }); // Handle special case when .nav-link is inside .nav-item + SelectorEngine.prev(listGroup, `${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`).forEach(item => item.classList.add(CLASS_NAME_ACTIVE$1)); // Handle special case when .nav-link is inside .nav-item - SelectorEngine.prev(listGroup, SELECTOR_NAV_ITEMS).forEach(function (navItem) { - SelectorEngine.children(navItem, SELECTOR_NAV_LINKS).forEach(function (item) { - return item.classList.add(CLASS_NAME_ACTIVE$2); - }); + SelectorEngine.prev(listGroup, SELECTOR_NAV_ITEMS).forEach(navItem => { + SelectorEngine.children(navItem, SELECTOR_NAV_LINKS).forEach(item => item.classList.add(CLASS_NAME_ACTIVE$1)); }); }); } @@ -7085,22 +6257,18 @@ EventHandler.trigger(this._scrollElement, EVENT_ACTIVATE, { relatedTarget: target }); - }; + } - _proto._clear = function _clear() { - SelectorEngine.find(this._selector).filter(function (node) { - return node.classList.contains(CLASS_NAME_ACTIVE$2); - }).forEach(function (node) { - return node.classList.remove(CLASS_NAME_ACTIVE$2); - }); + _clear() { + SelectorEngine.find(this._selector).filter(node => node.classList.contains(CLASS_NAME_ACTIVE$1)).forEach(node => node.classList.remove(CLASS_NAME_ACTIVE$1)); } // Static - ; - ScrollSpy.jQueryInterface = function jQueryInterface(config) { + + static jQueryInterface(config) { return this.each(function () { - var data = Data.getData(this, DATA_KEY$8); + let data = Data.get(this, DATA_KEY$2); - var _config = typeof config === 'object' && config; + const _config = typeof config === 'object' && config; if (!data) { data = new ScrollSpy(this, _config); @@ -7108,28 +6276,15 @@ if (typeof config === 'string') { if (typeof data[config] === 'undefined') { - throw new TypeError("No method named \"" + config + "\""); + throw new TypeError(`No method named "${config}"`); } data[config](); } }); - }; - - _createClass(ScrollSpy, null, [{ - key: "Default", - get: function get() { - return Default$6; - } - }, { - key: "DATA_KEY", - get: function get() { - return DATA_KEY$8; - } - }]); + } - return ScrollSpy; - }(BaseComponent); + } /** * ------------------------------------------------------------------------ * Data Api implementation @@ -7137,10 +6292,8 @@ */ - EventHandler.on(window, EVENT_LOAD_DATA_API$1, function () { - SelectorEngine.find(SELECTOR_DATA_SPY).forEach(function (spy) { - return new ScrollSpy(spy, Manipulator.getDataAttributes(spy)); - }); + EventHandler.on(window, EVENT_LOAD_DATA_API, () => { + SelectorEngine.find(SELECTOR_DATA_SPY).forEach(spy => new ScrollSpy(spy, Manipulator.getDataAttributes(spy))); }); /** * ------------------------------------------------------------------------ @@ -7149,92 +6302,73 @@ * add .ScrollSpy to jQuery only if jQuery is present */ - onDOMContentLoaded(function () { - var $ = getjQuery(); - /* istanbul ignore if */ - - if ($) { - var JQUERY_NO_CONFLICT = $.fn[NAME$8]; - $.fn[NAME$8] = ScrollSpy.jQueryInterface; - $.fn[NAME$8].Constructor = ScrollSpy; - - $.fn[NAME$8].noConflict = function () { - $.fn[NAME$8] = JQUERY_NO_CONFLICT; - return ScrollSpy.jQueryInterface; - }; - } - }); + defineJQueryPlugin(NAME$2, ScrollSpy); /** + * -------------------------------------------------------------------------- + * Bootstrap (v5.0.0-beta3): tab.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + /** * ------------------------------------------------------------------------ * Constants * ------------------------------------------------------------------------ */ - var NAME$9 = 'tab'; - var DATA_KEY$9 = 'bs.tab'; - var EVENT_KEY$9 = "." + DATA_KEY$9; - var DATA_API_KEY$7 = '.data-api'; - var EVENT_HIDE$3 = "hide" + EVENT_KEY$9; - var EVENT_HIDDEN$3 = "hidden" + EVENT_KEY$9; - var EVENT_SHOW$3 = "show" + EVENT_KEY$9; - var EVENT_SHOWN$3 = "shown" + EVENT_KEY$9; - var EVENT_CLICK_DATA_API$6 = "click" + EVENT_KEY$9 + DATA_API_KEY$7; - var CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu'; - var CLASS_NAME_ACTIVE$3 = 'active'; - var CLASS_NAME_DISABLED$1 = 'disabled'; - var CLASS_NAME_FADE$3 = 'fade'; - var CLASS_NAME_SHOW$5 = 'show'; - var SELECTOR_DROPDOWN$1 = '.dropdown'; - var SELECTOR_NAV_LIST_GROUP$1 = '.nav, .list-group'; - var SELECTOR_ACTIVE$1 = '.active'; - var SELECTOR_ACTIVE_UL = ':scope > li > .active'; - var SELECTOR_DATA_TOGGLE$4 = '[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]'; - var SELECTOR_DROPDOWN_TOGGLE$1 = '.dropdown-toggle'; - var SELECTOR_DROPDOWN_ACTIVE_CHILD = ':scope > .dropdown-menu .active'; + const NAME$1 = 'tab'; + const DATA_KEY$1 = 'bs.tab'; + const EVENT_KEY$1 = `.${DATA_KEY$1}`; + const DATA_API_KEY = '.data-api'; + const EVENT_HIDE$1 = `hide${EVENT_KEY$1}`; + const EVENT_HIDDEN$1 = `hidden${EVENT_KEY$1}`; + const EVENT_SHOW$1 = `show${EVENT_KEY$1}`; + const EVENT_SHOWN$1 = `shown${EVENT_KEY$1}`; + const EVENT_CLICK_DATA_API = `click${EVENT_KEY$1}${DATA_API_KEY}`; + const CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu'; + const CLASS_NAME_ACTIVE = 'active'; + const CLASS_NAME_FADE$1 = 'fade'; + const CLASS_NAME_SHOW$1 = 'show'; + const SELECTOR_DROPDOWN = '.dropdown'; + const SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'; + const SELECTOR_ACTIVE = '.active'; + const SELECTOR_ACTIVE_UL = ':scope > li > .active'; + const SELECTOR_DATA_TOGGLE = '[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]'; + const SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'; + const SELECTOR_DROPDOWN_ACTIVE_CHILD = ':scope > .dropdown-menu .active'; /** * ------------------------------------------------------------------------ * Class Definition * ------------------------------------------------------------------------ */ - var Tab = /*#__PURE__*/function (_BaseComponent) { - _inheritsLoose(Tab, _BaseComponent); - - function Tab() { - return _BaseComponent.apply(this, arguments) || this; - } - - var _proto = Tab.prototype; + class Tab extends BaseComponent { + // Getters + static get DATA_KEY() { + return DATA_KEY$1; + } // Public - // Public - _proto.show = function show() { - var _this = this; - if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && this._element.classList.contains(CLASS_NAME_ACTIVE$3) || this._element.classList.contains(CLASS_NAME_DISABLED$1)) { + show() { + if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && this._element.classList.contains(CLASS_NAME_ACTIVE) || isDisabled(this._element)) { return; } - var previous; - var target = getElementFromSelector(this._element); + let previous; + const target = getElementFromSelector(this._element); - var listElement = this._element.closest(SELECTOR_NAV_LIST_GROUP$1); + const listElement = this._element.closest(SELECTOR_NAV_LIST_GROUP); if (listElement) { - var itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE$1; + const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE; previous = SelectorEngine.find(itemSelector, listElement); previous = previous[previous.length - 1]; } - var hideEvent = null; - - if (previous) { - hideEvent = EventHandler.trigger(previous, EVENT_HIDE$3, { - relatedTarget: this._element - }); - } - - var showEvent = EventHandler.trigger(this._element, EVENT_SHOW$3, { + const hideEvent = previous ? EventHandler.trigger(previous, EVENT_HIDE$1, { + relatedTarget: this._element + }) : null; + const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$1, { relatedTarget: previous }); @@ -7244,11 +6378,11 @@ this._activate(this._element, listElement); - var complete = function complete() { - EventHandler.trigger(previous, EVENT_HIDDEN$3, { - relatedTarget: _this._element + const complete = () => { + EventHandler.trigger(previous, EVENT_HIDDEN$1, { + relatedTarget: this._element }); - EventHandler.trigger(_this._element, EVENT_SHOWN$3, { + EventHandler.trigger(this._element, EVENT_SHOWN$1, { relatedTarget: previous }); }; @@ -7259,36 +6393,32 @@ complete(); } } // Private - ; - _proto._activate = function _activate(element, container, callback) { - var _this2 = this; - var activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ? SelectorEngine.find(SELECTOR_ACTIVE_UL, container) : SelectorEngine.children(container, SELECTOR_ACTIVE$1); - var active = activeElements[0]; - var isTransitioning = callback && active && active.classList.contains(CLASS_NAME_FADE$3); + _activate(element, container, callback) { + const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ? SelectorEngine.find(SELECTOR_ACTIVE_UL, container) : SelectorEngine.children(container, SELECTOR_ACTIVE); + const active = activeElements[0]; + const isTransitioning = callback && active && active.classList.contains(CLASS_NAME_FADE$1); - var complete = function complete() { - return _this2._transitionComplete(element, active, callback); - }; + const complete = () => this._transitionComplete(element, active, callback); if (active && isTransitioning) { - var transitionDuration = getTransitionDurationFromElement(active); - active.classList.remove(CLASS_NAME_SHOW$5); - EventHandler.one(active, TRANSITION_END, complete); + const transitionDuration = getTransitionDurationFromElement(active); + active.classList.remove(CLASS_NAME_SHOW$1); + EventHandler.one(active, 'transitionend', complete); emulateTransitionEnd(active, transitionDuration); } else { complete(); } - }; + } - _proto._transitionComplete = function _transitionComplete(element, active, callback) { + _transitionComplete(element, active, callback) { if (active) { - active.classList.remove(CLASS_NAME_ACTIVE$3); - var dropdownChild = SelectorEngine.findOne(SELECTOR_DROPDOWN_ACTIVE_CHILD, active.parentNode); + active.classList.remove(CLASS_NAME_ACTIVE); + const dropdownChild = SelectorEngine.findOne(SELECTOR_DROPDOWN_ACTIVE_CHILD, active.parentNode); if (dropdownChild) { - dropdownChild.classList.remove(CLASS_NAME_ACTIVE$3); + dropdownChild.classList.remove(CLASS_NAME_ACTIVE); } if (active.getAttribute('role') === 'tab') { @@ -7296,7 +6426,7 @@ } } - element.classList.add(CLASS_NAME_ACTIVE$3); + element.classList.add(CLASS_NAME_ACTIVE); if (element.getAttribute('role') === 'tab') { element.setAttribute('aria-selected', true); @@ -7304,17 +6434,15 @@ reflow(element); - if (element.classList.contains(CLASS_NAME_FADE$3)) { - element.classList.add(CLASS_NAME_SHOW$5); + if (element.classList.contains(CLASS_NAME_FADE$1)) { + element.classList.add(CLASS_NAME_SHOW$1); } if (element.parentNode && element.parentNode.classList.contains(CLASS_NAME_DROPDOWN_MENU)) { - var dropdownElement = element.closest(SELECTOR_DROPDOWN$1); + const dropdownElement = element.closest(SELECTOR_DROPDOWN); if (dropdownElement) { - SelectorEngine.find(SELECTOR_DROPDOWN_TOGGLE$1).forEach(function (dropdown) { - return dropdown.classList.add(CLASS_NAME_ACTIVE$3); - }); + SelectorEngine.find(SELECTOR_DROPDOWN_TOGGLE).forEach(dropdown => dropdown.classList.add(CLASS_NAME_ACTIVE)); } element.setAttribute('aria-expanded', true); @@ -7324,32 +6452,23 @@ callback(); } } // Static - ; - Tab.jQueryInterface = function jQueryInterface(config) { + + static jQueryInterface(config) { return this.each(function () { - var data = Data.getData(this, DATA_KEY$9) || new Tab(this); + const data = Data.get(this, DATA_KEY$1) || new Tab(this); if (typeof config === 'string') { if (typeof data[config] === 'undefined') { - throw new TypeError("No method named \"" + config + "\""); + throw new TypeError(`No method named "${config}"`); } data[config](); } }); - }; - - _createClass(Tab, null, [{ - key: "DATA_KEY", - // Getters - get: function get() { - return DATA_KEY$9; - } - }]); + } - return Tab; - }(BaseComponent); + } /** * ------------------------------------------------------------------------ * Data Api implementation @@ -7357,9 +6476,9 @@ */ - EventHandler.on(document, EVENT_CLICK_DATA_API$6, SELECTOR_DATA_TOGGLE$4, function (event) { + EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) { event.preventDefault(); - var data = Data.getData(this, DATA_KEY$9) || new Tab(this); + const data = Data.get(this, DATA_KEY$1) || new Tab(this); data.show(); }); /** @@ -7369,80 +6488,74 @@ * add .Tab to jQuery only if jQuery is present */ - onDOMContentLoaded(function () { - var $ = getjQuery(); - /* istanbul ignore if */ - - if ($) { - var JQUERY_NO_CONFLICT = $.fn[NAME$9]; - $.fn[NAME$9] = Tab.jQueryInterface; - $.fn[NAME$9].Constructor = Tab; - - $.fn[NAME$9].noConflict = function () { - $.fn[NAME$9] = JQUERY_NO_CONFLICT; - return Tab.jQueryInterface; - }; - } - }); + defineJQueryPlugin(NAME$1, Tab); /** + * -------------------------------------------------------------------------- + * Bootstrap (v5.0.0-beta3): toast.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + /** * ------------------------------------------------------------------------ * Constants * ------------------------------------------------------------------------ */ - var NAME$a = 'toast'; - var DATA_KEY$a = 'bs.toast'; - var EVENT_KEY$a = "." + DATA_KEY$a; - var EVENT_CLICK_DISMISS$1 = "click.dismiss" + EVENT_KEY$a; - var EVENT_HIDE$4 = "hide" + EVENT_KEY$a; - var EVENT_HIDDEN$4 = "hidden" + EVENT_KEY$a; - var EVENT_SHOW$4 = "show" + EVENT_KEY$a; - var EVENT_SHOWN$4 = "shown" + EVENT_KEY$a; - var CLASS_NAME_FADE$4 = 'fade'; - var CLASS_NAME_HIDE = 'hide'; - var CLASS_NAME_SHOW$6 = 'show'; - var CLASS_NAME_SHOWING = 'showing'; - var DefaultType$7 = { + const NAME = 'toast'; + const DATA_KEY = 'bs.toast'; + const EVENT_KEY = `.${DATA_KEY}`; + const EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`; + const EVENT_HIDE = `hide${EVENT_KEY}`; + const EVENT_HIDDEN = `hidden${EVENT_KEY}`; + const EVENT_SHOW = `show${EVENT_KEY}`; + const EVENT_SHOWN = `shown${EVENT_KEY}`; + const CLASS_NAME_FADE = 'fade'; + const CLASS_NAME_HIDE = 'hide'; + const CLASS_NAME_SHOW = 'show'; + const CLASS_NAME_SHOWING = 'showing'; + const DefaultType = { animation: 'boolean', autohide: 'boolean', delay: 'number' }; - var Default$7 = { + const Default = { animation: true, autohide: true, delay: 5000 }; - var SELECTOR_DATA_DISMISS$1 = '[data-bs-dismiss="toast"]'; + const SELECTOR_DATA_DISMISS = '[data-bs-dismiss="toast"]'; /** * ------------------------------------------------------------------------ * Class Definition * ------------------------------------------------------------------------ */ - var Toast = /*#__PURE__*/function (_BaseComponent) { - _inheritsLoose(Toast, _BaseComponent); - - function Toast(element, config) { - var _this; + class Toast extends BaseComponent { + constructor(element, config) { + super(element); + this._config = this._getConfig(config); + this._timeout = null; - _this = _BaseComponent.call(this, element) || this; - _this._config = _this._getConfig(config); - _this._timeout = null; + this._setListeners(); + } // Getters - _this._setListeners(); - return _this; - } // Getters + static get DefaultType() { + return DefaultType; + } + static get Default() { + return Default; + } - var _proto = Toast.prototype; + static get DATA_KEY() { + return DATA_KEY; + } // Public - // Public - _proto.show = function show() { - var _this2 = this; - var showEvent = EventHandler.trigger(this._element, EVENT_SHOW$4); + show() { + const showEvent = EventHandler.trigger(this._element, EVENT_SHOW); if (showEvent.defaultPrevented) { return; @@ -7451,20 +6564,20 @@ this._clearTimeout(); if (this._config.animation) { - this._element.classList.add(CLASS_NAME_FADE$4); + this._element.classList.add(CLASS_NAME_FADE); } - var complete = function complete() { - _this2._element.classList.remove(CLASS_NAME_SHOWING); + const complete = () => { + this._element.classList.remove(CLASS_NAME_SHOWING); - _this2._element.classList.add(CLASS_NAME_SHOW$6); + this._element.classList.add(CLASS_NAME_SHOW); - EventHandler.trigger(_this2._element, EVENT_SHOWN$4); + EventHandler.trigger(this._element, EVENT_SHOWN); - if (_this2._config.autohide) { - _this2._timeout = setTimeout(function () { - _this2.hide(); - }, _this2._config.delay); + if (this._config.autohide) { + this._timeout = setTimeout(() => { + this.hide(); + }, this._config.delay); } }; @@ -7475,84 +6588,79 @@ this._element.classList.add(CLASS_NAME_SHOWING); if (this._config.animation) { - var transitionDuration = getTransitionDurationFromElement(this._element); - EventHandler.one(this._element, TRANSITION_END, complete); + const transitionDuration = getTransitionDurationFromElement(this._element); + EventHandler.one(this._element, 'transitionend', complete); emulateTransitionEnd(this._element, transitionDuration); } else { complete(); } - }; - - _proto.hide = function hide() { - var _this3 = this; + } - if (!this._element.classList.contains(CLASS_NAME_SHOW$6)) { + hide() { + if (!this._element.classList.contains(CLASS_NAME_SHOW)) { return; } - var hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$4); + const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE); if (hideEvent.defaultPrevented) { return; } - var complete = function complete() { - _this3._element.classList.add(CLASS_NAME_HIDE); + const complete = () => { + this._element.classList.add(CLASS_NAME_HIDE); - EventHandler.trigger(_this3._element, EVENT_HIDDEN$4); + EventHandler.trigger(this._element, EVENT_HIDDEN); }; - this._element.classList.remove(CLASS_NAME_SHOW$6); + this._element.classList.remove(CLASS_NAME_SHOW); if (this._config.animation) { - var transitionDuration = getTransitionDurationFromElement(this._element); - EventHandler.one(this._element, TRANSITION_END, complete); + const transitionDuration = getTransitionDurationFromElement(this._element); + EventHandler.one(this._element, 'transitionend', complete); emulateTransitionEnd(this._element, transitionDuration); } else { complete(); } - }; + } - _proto.dispose = function dispose() { + dispose() { this._clearTimeout(); - if (this._element.classList.contains(CLASS_NAME_SHOW$6)) { - this._element.classList.remove(CLASS_NAME_SHOW$6); + if (this._element.classList.contains(CLASS_NAME_SHOW)) { + this._element.classList.remove(CLASS_NAME_SHOW); } - EventHandler.off(this._element, EVENT_CLICK_DISMISS$1); - - _BaseComponent.prototype.dispose.call(this); - + EventHandler.off(this._element, EVENT_CLICK_DISMISS); + super.dispose(); this._config = null; } // Private - ; - _proto._getConfig = function _getConfig(config) { - config = _extends({}, Default$7, Manipulator.getDataAttributes(this._element), typeof config === 'object' && config ? config : {}); - typeCheckConfig(NAME$a, config, this.constructor.DefaultType); - return config; - }; - _proto._setListeners = function _setListeners() { - var _this4 = this; + _getConfig(config) { + config = { ...Default, + ...Manipulator.getDataAttributes(this._element), + ...(typeof config === 'object' && config ? config : {}) + }; + typeCheckConfig(NAME, config, this.constructor.DefaultType); + return config; + } - EventHandler.on(this._element, EVENT_CLICK_DISMISS$1, SELECTOR_DATA_DISMISS$1, function () { - return _this4.hide(); - }); - }; + _setListeners() { + EventHandler.on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, () => this.hide()); + } - _proto._clearTimeout = function _clearTimeout() { + _clearTimeout() { clearTimeout(this._timeout); this._timeout = null; } // Static - ; - Toast.jQueryInterface = function jQueryInterface(config) { + + static jQueryInterface(config) { return this.each(function () { - var data = Data.getData(this, DATA_KEY$a); + let data = Data.get(this, DATA_KEY); - var _config = typeof config === 'object' && config; + const _config = typeof config === 'object' && config; if (!data) { data = new Toast(this, _config); @@ -7560,33 +6668,15 @@ if (typeof config === 'string') { if (typeof data[config] === 'undefined') { - throw new TypeError("No method named \"" + config + "\""); + throw new TypeError(`No method named "${config}"`); } data[config](this); } }); - }; - - _createClass(Toast, null, [{ - key: "DefaultType", - get: function get() { - return DefaultType$7; - } - }, { - key: "Default", - get: function get() { - return Default$7; - } - }, { - key: "DATA_KEY", - get: function get() { - return DATA_KEY$a; - } - }]); + } - return Toast; - }(BaseComponent); + } /** * ------------------------------------------------------------------------ * jQuery @@ -7595,40 +6685,27 @@ */ - onDOMContentLoaded(function () { - var $ = getjQuery(); - /* istanbul ignore if */ - - if ($) { - var JQUERY_NO_CONFLICT = $.fn[NAME$a]; - $.fn[NAME$a] = Toast.jQueryInterface; - $.fn[NAME$a].Constructor = Toast; - - $.fn[NAME$a].noConflict = function () { - $.fn[NAME$a] = JQUERY_NO_CONFLICT; - return Toast.jQueryInterface; - }; - } - }); + defineJQueryPlugin(NAME, Toast); /** * -------------------------------------------------------------------------- - * Bootstrap (v5.0.0-alpha3): index.umd.js + * Bootstrap (v5.0.0-beta3): index.umd.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ var index_umd = { - Alert: Alert, - Button: Button, - Carousel: Carousel, - Collapse: Collapse, - Dropdown: Dropdown, - Modal: Modal, - Popover: Popover, - ScrollSpy: ScrollSpy, - Tab: Tab, - Toast: Toast, - Tooltip: Tooltip + Alert, + Button, + Carousel, + Collapse, + Dropdown, + Modal, + Offcanvas, + Popover, + ScrollSpy, + Tab, + Toast, + Tooltip }; return index_umd; diff --git a/dist/js/bootstrap.bundle.js.map b/dist/js/bootstrap.bundle.js.map index c8a267c9c..e35ea4289 100644 --- a/dist/js/bootstrap.bundle.js.map +++ b/dist/js/bootstrap.bundle.js.map @@ -1 +1 @@ -{"version":3,"file":"bootstrap.bundle.js","sources":["../../js/src/util/index.js","../../js/src/dom/data.js","../../js/src/dom/event-handler.js","../../js/src/base-component.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/dom/manipulator.js","../../js/src/dom/selector-engine.js","../../js/src/carousel.js","../../js/src/collapse.js","../../node_modules/popper.js/dist/esm/popper.js","../../js/src/dropdown.js","../../js/src/modal.js","../../js/src/util/sanitizer.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/toast.js","../../js/index.umd.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => {\n if (obj === null || obj === undefined) {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n prefix += Math.floor(Math.random() * MAX_UID)\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelector = element => {\n let selector = element.getAttribute('data-bs-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null\n }\n\n return selector\n}\n\nconst getSelectorFromElement = element => {\n const selector = getSelector(element)\n\n if (selector) {\n return document.querySelector(selector) ? selector : null\n }\n\n return null\n}\n\nconst getElementFromSelector = element => {\n const selector = getSelector(element)\n\n return selector ? document.querySelector(selector) : null\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 = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes).forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n const elementStyle = getComputedStyle(element)\n const parentNodeStyle = getComputedStyle(element.parentNode)\n\n return elementStyle.display !== 'none' &&\n parentNodeStyle.display !== 'none' &&\n elementStyle.visibility !== 'hidden'\n }\n\n return 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 = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nconst getjQuery = () => {\n const { jQuery } = window\n\n if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n return jQuery\n }\n\n return null\n}\n\nconst onDOMContentLoaded = callback => {\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', callback)\n } else {\n callback()\n }\n}\n\nconst isRTL = document.documentElement.dir === 'rtl'\n\nexport {\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n isVisible,\n findShadowRoot,\n noop,\n reflow,\n getjQuery,\n onDOMContentLoaded,\n isRTL\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst mapData = (() => {\n const storeData = {}\n let id = 1\n return {\n set(element, key, data) {\n if (typeof element.bsKey === 'undefined') {\n element.bsKey = {\n key,\n id\n }\n id++\n }\n\n storeData[element.bsKey.id] = data\n },\n get(element, key) {\n if (!element || typeof element.bsKey === 'undefined') {\n return null\n }\n\n const keyProperties = element.bsKey\n if (keyProperties.key === key) {\n return storeData[keyProperties.id]\n }\n\n return null\n },\n delete(element, key) {\n if (typeof element.bsKey === 'undefined') {\n return\n }\n\n const keyProperties = element.bsKey\n if (keyProperties.key === key) {\n delete storeData[keyProperties.id]\n delete element.bsKey\n }\n }\n }\n})()\n\nconst Data = {\n setData(instance, key, data) {\n mapData.set(instance, key, data)\n },\n getData(instance, key) {\n return mapData.get(instance, key)\n },\n removeData(instance, key) {\n mapData.delete(instance, key)\n }\n}\n\nexport default Data\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getjQuery } from '../util/index'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\nconst nativeEvents = new Set([\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 * ------------------------------------------------------------------------\n * Private methods\n * ------------------------------------------------------------------------\n */\n\nfunction getUidEvent(element, uid) {\n return (uid && `${uid}::${uidEvent++}`) || element.uidEvent || uidEvent++\n}\n\nfunction getEvent(element) {\n const uid = getUidEvent(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 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 (let i = domElements.length; i--;) {\n if (domElements[i] === target) {\n event.delegateTarget = target\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(target, [event])\n }\n }\n }\n\n // To please ESLint\n return null\n }\n}\n\nfunction findHandler(events, handler, delegationSelector = null) {\n const uidEventList = Object.keys(events)\n\n for (let i = 0, len = uidEventList.length; i < len; i++) {\n const event = events[uidEventList[i]]\n\n if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {\n return event\n }\n }\n\n return null\n}\n\nfunction normalizeParams(originalTypeEvent, handler, delegationFn) {\n const delegation = typeof handler === 'string'\n const originalHandler = delegation ? delegationFn : handler\n\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n let typeEvent = originalTypeEvent.replace(stripNameRegex, '')\n const custom = customEvents[typeEvent]\n\n if (custom) {\n typeEvent = custom\n }\n\n const isNative = nativeEvents.has(typeEvent)\n\n if (!isNative) {\n typeEvent = originalTypeEvent\n }\n\n return [delegation, originalHandler, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n if (!handler) {\n handler = delegationFn\n delegationFn = null\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const events = getEvent(element)\n const handlers = events[typeEvent] || (events[typeEvent] = {})\n const previousFn = findHandler(handlers, originalHandler, delegation ? handler : null)\n\n if (previousFn) {\n previousFn.oneOff = previousFn.oneOff && oneOff\n\n return\n }\n\n const uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, ''))\n const fn = delegation ?\n bootstrapDelegationHandler(element, handler, delegationFn) :\n bootstrapHandler(element, handler)\n\n fn.delegationSelector = delegation ? handler : null\n fn.originalHandler = originalHandler\n fn.oneOff = oneOff\n fn.uidEvent = uid\n handlers[uid] = fn\n\n element.addEventListener(typeEvent, fn, delegation)\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 Object.keys(storeElementEvent).forEach(handlerKey => {\n if (handlerKey.includes(namespace)) {\n const event = storeElementEvent[handlerKey]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, false)\n },\n\n one(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFn) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getEvent(element)\n const isNamespace = originalTypeEvent.startsWith('.')\n\n if (typeof originalHandler !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!events || !events[typeEvent]) {\n return\n }\n\n removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null)\n return\n }\n\n if (isNamespace) {\n Object.keys(events).forEach(elementEvent => {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1))\n })\n }\n\n const storeElementEvent = events[typeEvent] || {}\n Object.keys(storeElementEvent).forEach(keyHandlers => {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.includes(handlerKey)) {\n const event = storeElementEvent[keyHandlers]\n\n removeHandler(element, events, typeEvent, event.originalHandler, 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 = event.replace(stripNameRegex, '')\n const inNamespace = event !== typeEvent\n const isNative = nativeEvents.has(typeEvent)\n\n let jQueryEvent\n let bubbles = true\n let nativeDispatch = true\n let defaultPrevented = false\n let evt = null\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 if (isNative) {\n evt = document.createEvent('HTMLEvents')\n evt.initEvent(typeEvent, bubbles, true)\n } else {\n evt = new CustomEvent(event, {\n bubbles,\n cancelable: true\n })\n }\n\n // merge custom information in our event\n if (typeof args !== 'undefined') {\n Object.keys(args).forEach(key => {\n Object.defineProperty(evt, key, {\n get() {\n return args[key]\n }\n })\n })\n }\n\n if (defaultPrevented) {\n evt.preventDefault()\n }\n\n if (nativeDispatch) {\n element.dispatchEvent(evt)\n }\n\n if (evt.defaultPrevented && typeof jQueryEvent !== 'undefined') {\n jQueryEvent.preventDefault()\n }\n\n return evt\n }\n}\n\nexport default EventHandler\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): base-component.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Data from './dom/data'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst VERSION = '5.0.0-alpha3'\n\nclass BaseComponent {\n constructor(element) {\n if (!element) {\n return\n }\n\n this._element = element\n Data.setData(element, this.constructor.DATA_KEY, this)\n }\n\n dispose() {\n Data.removeData(this._element, this.constructor.DATA_KEY)\n this._element = null\n }\n\n /** Static */\n\n static getInstance(element) {\n return Data.getData(element, this.DATA_KEY)\n }\n\n static get VERSION() {\n return VERSION\n }\n}\n\nexport default BaseComponent\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n onDOMContentLoaded,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'alert'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst SELECTOR_DISMISS = '[data-bs-dismiss=\"alert\"]'\n\nconst EVENT_CLOSE = `close${EVENT_KEY}`\nconst EVENT_CLOSED = `closed${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASSNAME_ALERT = 'alert'\nconst CLASSNAME_FADE = 'fade'\nconst CLASSNAME_SHOW = 'show'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Alert extends BaseComponent {\n // Getters\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n close(element) {\n const rootElement = element ? this._getRootElement(element) : this._element\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent === null || customEvent.defaultPrevented) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n // Private\n\n _getRootElement(element) {\n return getElementFromSelector(element) || element.closest(`.${CLASSNAME_ALERT}`)\n }\n\n _triggerCloseEvent(element) {\n return EventHandler.trigger(element, EVENT_CLOSE)\n }\n\n _removeElement(element) {\n element.classList.remove(CLASSNAME_SHOW)\n\n if (!element.classList.contains(CLASSNAME_FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = getTransitionDurationFromElement(element)\n\n EventHandler.one(element, TRANSITION_END, () => this._destroyElement(element))\n emulateTransitionEnd(element, transitionDuration)\n }\n\n _destroyElement(element) {\n if (element.parentNode) {\n element.parentNode.removeChild(element)\n }\n\n EventHandler.trigger(element, EVENT_CLOSED)\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DISMISS, Alert.handleDismiss(new Alert()))\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Alert to jQuery only if jQuery is present\n */\n\nonDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Alert.jQueryInterface\n $.fn[NAME].Constructor = Alert\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert.jQueryInterface\n }\n }\n})\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getjQuery, onDOMContentLoaded } from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\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'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"button\"]'\n\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Button extends BaseComponent {\n // Getters\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n toggle() {\n // Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method\n this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE))\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\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\n let data = Data.getData(button, DATA_KEY)\n if (!data) {\n data = new Button(button)\n }\n\n data.toggle()\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Button to jQuery only if jQuery is present\n */\n\nonDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Button.jQueryInterface\n $.fn[NAME].Constructor = Button\n\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button.jQueryInterface\n }\n }\n})\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(val) {\n if (val === 'true') {\n return true\n }\n\n if (val === 'false') {\n return false\n }\n\n if (val === Number(val).toString()) {\n return Number(val)\n }\n\n if (val === '' || val === 'null') {\n return null\n }\n\n return val\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\n Object.keys(element.dataset)\n .filter(key => key.startsWith('bs'))\n .forEach(key => {\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 offset(element) {\n const rect = element.getBoundingClientRect()\n\n return {\n top: rect.top + document.body.scrollTop,\n left: rect.left + document.body.scrollLeft\n }\n },\n\n position(element) {\n return {\n top: element.offsetTop,\n left: element.offsetLeft\n }\n }\n}\n\nexport default Manipulator\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NODE_TEXT = 3\n\nconst SelectorEngine = {\n matches(element, selector) {\n return element.matches(selector)\n },\n\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 const children = [].concat(...element.children)\n\n return children.filter(child => child.matches(selector))\n },\n\n parents(element, selector) {\n const parents = []\n\n let ancestor = element.parentNode\n\n while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {\n if (this.matches(ancestor, selector)) {\n parents.push(ancestor)\n }\n\n ancestor = ancestor.parentNode\n }\n\n return parents\n },\n\n prev(element, selector) {\n let previous = element.previousElementSibling\n\n while (previous) {\n if (previous.matches(selector)) {\n return [previous]\n }\n\n previous = previous.previousElementSibling\n }\n\n return []\n },\n\n next(element, selector) {\n let next = element.nextElementSibling\n\n while (next) {\n if (this.matches(next, selector)) {\n return [next]\n }\n\n next = next.nextElementSibling\n }\n\n return []\n }\n}\n\nexport default SelectorEngine\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n onDOMContentLoaded,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isVisible,\n reflow,\n triggerTransitionEnd,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\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\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\n\nconst DIRECTION_NEXT = 'next'\nconst DIRECTION_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_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 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'\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event'\n\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_ITEM = '.active.carousel-item'\nconst SELECTOR_ITEM = '.carousel-item'\nconst SELECTOR_ITEM_IMG = '.carousel-item img'\nconst SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev'\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 PointerType = {\n TOUCH: 'touch',\n PEN: 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent)\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(DIRECTION_NEXT)\n }\n }\n\n nextWhenVisible() {\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 if (!this._isSliding) {\n this._slide(DIRECTION_PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (SelectorEngine.findOne(SELECTOR_NEXT_PREV, this._element)) {\n triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config && this._config.interval && !this._isPaused) {\n this._updateInterval()\n\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._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 if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex ?\n DIRECTION_NEXT :\n DIRECTION_PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n super.dispose()\n EventHandler.off(this._element, EVENT_KEY)\n\n this._items = null\n this._config = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n this.touchDeltaX = 0\n\n // swipe left\n if (direction > 0) {\n this.prev()\n }\n\n // swipe right\n if (direction < 0) {\n this.next()\n }\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, event => this.pause(event))\n EventHandler.on(this._element, EVENT_MOUSELEAVE, event => this.cycle(event))\n }\n\n if (this._config.touch && this._touchSupported) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n const start = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchStartX = event.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.touches[0].clientX\n }\n }\n\n const move = event => {\n // ensure swiping with one touch and not pinching\n if (event.touches && event.touches.length > 1) {\n this.touchDeltaX = 0\n } else {\n this.touchDeltaX = event.touches[0].clientX - this.touchStartX\n }\n }\n\n const end = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchDeltaX = event.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\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(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n SelectorEngine.find(SELECTOR_ITEM_IMG, this._element).forEach(itemImg => {\n EventHandler.on(itemImg, EVENT_DRAG_START, e => e.preventDefault())\n })\n\n if (this._pointerEvent) {\n EventHandler.on(this._element, EVENT_POINTERDOWN, event => start(event))\n EventHandler.on(this._element, EVENT_POINTERUP, event => end(event))\n\n this._element.classList.add(CLASS_NAME_POINTER_EVENT)\n } else {\n EventHandler.on(this._element, EVENT_TOUCHSTART, event => start(event))\n EventHandler.on(this._element, EVENT_TOUCHMOVE, event => move(event))\n EventHandler.on(this._element, EVENT_TOUCHEND, event => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.key) {\n case ARROW_LEFT_KEY:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEY:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode ?\n SelectorEngine.find(SELECTOR_ITEM, element.parentNode) :\n []\n\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === DIRECTION_NEXT\n const isPrevDirection = direction === DIRECTION_PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = (isPrevDirection && activeIndex === 0) ||\n (isNextDirection && activeIndex === lastItemIndex)\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === DIRECTION_PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1 ?\n this._items[this._items.length - 1] :\n this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element))\n\n return EventHandler.trigger(this._element, EVENT_SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n const indicators = SelectorEngine.find(SELECTOR_ACTIVE, this._indicatorsElement)\n\n for (let i = 0; i < indicators.length; i++) {\n indicators[i].classList.remove(CLASS_NAME_ACTIVE)\n }\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n nextIndicator.classList.add(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n _updateInterval() {\n const element = this._activeElement || SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n\n if (!element) {\n return\n }\n\n const elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10)\n\n if (elementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval\n this._config.interval = elementInterval\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval\n }\n }\n\n _slide(direction, element) {\n const activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || (activeElement && this._getItemByDirection(direction, activeElement))\n\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === DIRECTION_NEXT) {\n directionalClassName = CLASS_NAME_START\n orderClassName = CLASS_NAME_NEXT\n eventDirectionName = DIRECTION_LEFT\n } else {\n directionalClassName = CLASS_NAME_END\n orderClassName = CLASS_NAME_PREV\n eventDirectionName = DIRECTION_RIGHT\n }\n\n if (nextElement && nextElement.classList.contains(CLASS_NAME_ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.defaultPrevented) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n this._activeElement = nextElement\n\n if (this._element.classList.contains(CLASS_NAME_SLIDE)) {\n nextElement.classList.add(orderClassName)\n\n reflow(nextElement)\n\n activeElement.classList.add(directionalClassName)\n nextElement.classList.add(directionalClassName)\n\n const transitionDuration = getTransitionDurationFromElement(activeElement)\n\n EventHandler.one(activeElement, TRANSITION_END, () => {\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 setTimeout(() => {\n EventHandler.trigger(this._element, EVENT_SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }, 0)\n })\n\n emulateTransitionEnd(activeElement, transitionDuration)\n } else {\n activeElement.classList.remove(CLASS_NAME_ACTIVE)\n nextElement.classList.add(CLASS_NAME_ACTIVE)\n\n this._isSliding = false\n EventHandler.trigger(this._element, EVENT_SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static carouselInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n let _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element)\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(element, _config)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n\n data[action]()\n } else if (_config.interval && _config.ride) {\n data.pause()\n data.cycle()\n }\n }\n\n static jQueryInterface(config) {\n return this.each(function () {\n Carousel.carouselInterface(this, config)\n })\n }\n\n static dataApiClickHandler(event) {\n const target = getElementFromSelector(this)\n\n if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {\n return\n }\n\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n const slideIndex = this.getAttribute('data-bs-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel.carouselInterface(target, config)\n\n if (slideIndex) {\n Data.getData(target, DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, Carousel.dataApiClickHandler)\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE)\n\n for (let i = 0, len = carousels.length; i < len; i++) {\n Carousel.carouselInterface(carousels[i], Data.getData(carousels[i], DATA_KEY))\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Carousel to jQuery only if jQuery is present\n */\n\nonDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Carousel.jQueryInterface\n $.fn[NAME].Constructor = Carousel\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel.jQueryInterface\n }\n }\n})\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n onDOMContentLoaded,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isElement,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'collapse'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n toggle: true,\n parent: ''\n}\n\nconst DefaultType = {\n toggle: 'boolean',\n parent: '(string|element)'\n}\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'\n\nconst WIDTH = 'width'\nconst HEIGHT = 'height'\n\nconst SELECTOR_ACTIVES = '.show, .collapsing'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"collapse\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._isTransitioning = false\n this._config = this._getConfig(config)\n this._triggerArray = SelectorEngine.find(\n `${SELECTOR_DATA_TOGGLE}[href=\"#${element.id}\"],` +\n `${SELECTOR_DATA_TOGGLE}[data-bs-target=\"#${element.id}\"]`\n )\n\n const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\n\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = getSelectorFromElement(elem)\n const filterElement = SelectorEngine.find(selector)\n .filter(foundElem => foundElem === element)\n\n if (selector !== null && filterElement.length) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n toggle() {\n if (this._element.classList.contains(CLASS_NAME_SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning || this._element.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = SelectorEngine.find(SELECTOR_ACTIVES, this._parent)\n .filter(elem => {\n if (typeof this._config.parent === 'string') {\n return elem.getAttribute('data-bs-parent') === this._config.parent\n }\n\n return elem.classList.contains(CLASS_NAME_COLLAPSE)\n })\n\n if (actives.length === 0) {\n actives = null\n }\n }\n\n const container = SelectorEngine.findOne(this._selector)\n if (actives) {\n const tempActiveData = actives.find(elem => container !== elem)\n activesData = tempActiveData ? Data.getData(tempActiveData, DATA_KEY) : null\n\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = EventHandler.trigger(this._element, EVENT_SHOW)\n if (startEvent.defaultPrevented) {\n return\n }\n\n if (actives) {\n actives.forEach(elemActive => {\n if (container !== elemActive) {\n Collapse.collapseInterface(elemActive, 'hide')\n }\n\n if (!activesData) {\n Data.setData(elemActive, DATA_KEY, null)\n }\n })\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 if (this._triggerArray.length) {\n this._triggerArray.forEach(element => {\n element.classList.remove(CLASS_NAME_COLLAPSED)\n element.setAttribute('aria-expanded', true)\n })\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\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 this.setTransitioning(false)\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 const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n\n emulateTransitionEnd(this._element, transitionDuration)\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning || !this._element.classList.contains(CLASS_NAME_SHOW)) {\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 const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const elem = getElementFromSelector(trigger)\n\n if (elem && !elem.classList.contains(CLASS_NAME_SHOW)) {\n trigger.classList.add(CLASS_NAME_COLLAPSED)\n trigger.setAttribute('aria-expanded', false)\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(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 const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n super.dispose()\n this._config = null\n this._parent = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n return this._element.classList.contains(WIDTH) ? WIDTH : HEIGHT\n }\n\n _getParent() {\n let { parent } = this._config\n\n if (isElement(parent)) {\n // it's a jQuery object\n if (typeof parent.jquery !== 'undefined' || typeof parent[0] !== 'undefined') {\n parent = parent[0]\n }\n } else {\n parent = SelectorEngine.findOne(parent)\n }\n\n const selector = `${SELECTOR_DATA_TOGGLE}[data-bs-parent=\"${parent}\"]`\n\n SelectorEngine.find(selector, parent)\n .forEach(element => {\n const selected = getElementFromSelector(element)\n\n this._addAriaAndCollapsedClass(\n selected,\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n if (!element || !triggerArray.length) {\n return\n }\n\n const isOpen = element.classList.contains(CLASS_NAME_SHOW)\n\n triggerArray.forEach(elem => {\n if (isOpen) {\n elem.classList.remove(CLASS_NAME_COLLAPSED)\n } else {\n elem.classList.add(CLASS_NAME_COLLAPSED)\n }\n\n elem.setAttribute('aria-expanded', isOpen)\n })\n }\n\n // Static\n\n static collapseInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element),\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(element, _config)\n }\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 static jQueryInterface(config) {\n return this.each(function () {\n Collapse.collapseInterface(this, config)\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\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') {\n event.preventDefault()\n }\n\n const triggerData = Manipulator.getDataAttributes(this)\n const selector = getSelectorFromElement(this)\n const selectorElements = SelectorEngine.find(selector)\n\n selectorElements.forEach(element => {\n const data = Data.getData(element, DATA_KEY)\n let config\n if (data) {\n // update parent attribute\n if (data._parent === null && typeof triggerData.parent === 'string') {\n data._config.parent = triggerData.parent\n data._parent = data._getParent()\n }\n\n config = 'toggle'\n } else {\n config = triggerData\n }\n\n Collapse.collapseInterface(element, config)\n })\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Collapse to jQuery only if jQuery is present\n */\n\nonDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Collapse.jQueryInterface\n $.fn[NAME].Constructor = Collapse\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse.jQueryInterface\n }\n }\n})\n\nexport default Collapse\n","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.16.1\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n\nvar timeoutDuration = function () {\n var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n return 1;\n }\n }\n return 0;\n}();\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var window = element.ownerDocument.defaultView;\n var css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n\n/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\nfunction getReferenceNode(reference) {\n return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n var element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE(10) && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n var rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\n\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n\n // subtract scrollbar size from sizes\n var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n var width = sizes.width || element.clientWidth || result.width;\n var height = sizes.height || element.clientHeight || result.height;\n\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop);\n var marginLeft = parseFloat(styles.marginLeft);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n\n return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n var parentNode = getParentNode(element);\n if (!parentNode) {\n return false;\n }\n return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n var el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n // NOTE: 1 DOM access here\n\n var boundaries = { top: 0, left: 0 };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n padding = padding || 0;\n var isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n\n var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n var variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var window = element.ownerDocument.defaultView;\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.<br />\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicitly asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nfunction getRoundedOffsets(data, shouldRound) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var round = Math.round,\n floor = Math.floor;\n\n var noRound = function noRound(v) {\n return v;\n };\n\n var referenceWidth = round(reference.width);\n var popperWidth = round(popper.width);\n\n var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n var isVariation = data.placement.indexOf('-') !== -1;\n var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n var verticalToInteger = !shouldRound ? noRound : round;\n\n return {\n left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right)\n };\n}\n\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position\n };\n\n var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n var prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n // when offsetParent is <html> the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n }\n\n // Attributes\n var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.<br />\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n var _data$offsets$arrow;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized]);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.<br />\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.<br />\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n // flips variation if reference element overflows boundaries\n var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n // flips variation if popper content overflows boundaries\n var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);\n\n var flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n });\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var basePlacement = placement.split('-')[0];\n\n var offsets = void 0;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n\n options.boundaries = boundaries;\n\n var order = options.priority;\n var popper = data.offsets.popper;\n\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n return defineProperty({}, mainSide, value);\n }\n };\n\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends({}, popper, check[side](placement));\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.<br />\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.<br />\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.<br />\n * It will read the variation of the `placement` property.<br />\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.<br />\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the `height`.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.<br />\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.<br />\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries.<br />\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".<br />\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport',\n /**\n * @prop {Boolean} flipVariations=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the reference element overlaps its boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariations: false,\n /**\n * @prop {Boolean} flipVariationsByContent=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the popper element overlaps its reference boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariationsByContent: false\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right'\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined\n }\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.<br />\n * These can be overridden using the `options` argument of Popper.js.<br />\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.<br />\n * By default, it is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function onCreate() {},\n\n /**\n * Callback called when the popper is updated. This callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.<br />\n * By default, it is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function onUpdate() {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js.\n * @prop {modifiers}\n */\n modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n /**\n * Creates a new Popper.js instance.\n * @class Popper\n * @param {Element|referenceObject} reference - The reference element used to position the popper\n * @param {Element} popper - The HTML / XML element used as the popper\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n };\n\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = _extends({}, Popper.Defaults, options);\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n var eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\n\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n\n }]);\n return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.<br />\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n onDOMContentLoaded,\n getElementFromSelector,\n isElement,\n isVisible,\n isRTL,\n noop,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\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 SPACE_KEY = 'Space'\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 REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEY}|${ARROW_DOWN_KEY}|${ESCAPE_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 = `click${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_DISABLED = 'disabled'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_DROPUP = 'dropup'\nconst CLASS_NAME_DROPEND = 'dropend'\nconst CLASS_NAME_DROPSTART = 'dropstart'\nconst CLASS_NAME_MENUEND = 'dropdown-menu-end'\nconst CLASS_NAME_NAVBAR = 'navbar'\nconst CLASS_NAME_POSITION_STATIC = 'position-static'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"dropdown\"]'\nconst SELECTOR_FORM_CHILD = '.dropdown form'\nconst SELECTOR_MENU = '.dropdown-menu'\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'\n\nconst Default = {\n offset: 0,\n flip: true,\n boundary: 'scrollParent',\n reference: 'toggle',\n display: 'dynamic',\n popperConfig: null\n}\n\nconst DefaultType = {\n offset: '(number|string|function)',\n flip: 'boolean',\n boundary: '(string|element)',\n reference: '(string|element)',\n display: 'string',\n popperConfig: '(null|object)'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED)) {\n return\n }\n\n const isActive = this._element.classList.contains(CLASS_NAME_SHOW)\n\n Dropdown.clearMenus()\n\n if (isActive) {\n return\n }\n\n this.show()\n }\n\n show() {\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || this._menu.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n const parent = Dropdown.getParentFromElement(this._element)\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 // Totally disable Popper for Dropdowns in Navbar\n if (!this._inNavbar) {\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 = parent\n } else if (isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n parent.classList.add(CLASS_NAME_POSITION_STATIC)\n }\n\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\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 !parent.closest(SELECTOR_NAVBAR_NAV)) {\n [].concat(...document.body.children)\n .forEach(elem => EventHandler.on(elem, 'mouseover', null, noop()))\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n this._menu.classList.toggle(CLASS_NAME_SHOW)\n this._element.classList.toggle(CLASS_NAME_SHOW)\n EventHandler.trigger(parent, EVENT_SHOWN, relatedTarget)\n }\n\n hide() {\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || !this._menu.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n const parent = Dropdown.getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const hideEvent = EventHandler.trigger(parent, EVENT_HIDE, relatedTarget)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n if (this._popper) {\n this._popper.destroy()\n }\n\n this._menu.classList.toggle(CLASS_NAME_SHOW)\n this._element.classList.toggle(CLASS_NAME_SHOW)\n EventHandler.trigger(parent, EVENT_HIDDEN, relatedTarget)\n }\n\n dispose() {\n super.dispose()\n EventHandler.off(this._element, EVENT_KEY)\n this._menu = null\n if (this._popper) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n EventHandler.on(this._element, EVENT_CLICK, event => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...Manipulator.getDataAttributes(this._element),\n ...config\n }\n\n typeCheckConfig(NAME, config, this.constructor.DefaultType)\n\n return config\n }\n\n _getMenuElement() {\n return SelectorEngine.next(this._element, SELECTOR_MENU)[0]\n }\n\n _getPlacement() {\n const parentDropdown = this._element.parentNode\n let placement = PLACEMENT_BOTTOM\n\n // Handle dropup\n if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) {\n placement = this._menu.classList.contains(CLASS_NAME_MENUEND) ?\n PLACEMENT_TOPEND :\n PLACEMENT_TOP\n } else if (parentDropdown.classList.contains(CLASS_NAME_DROPEND)) {\n placement = PLACEMENT_RIGHT\n } else if (parentDropdown.classList.contains(CLASS_NAME_DROPSTART)) {\n placement = PLACEMENT_LEFT\n } else if (this._menu.classList.contains(CLASS_NAME_MENUEND)) {\n placement = PLACEMENT_BOTTOMEND\n }\n\n return placement\n }\n\n _detectNavbar() {\n return Boolean(this._element.closest(`.${CLASS_NAME_NAVBAR}`))\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this._config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...(this._config.offset(data.offsets, this._element) || {})\n }\n\n return data\n }\n } else {\n offset.offset = this._config.offset\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: this._getOffset(),\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n\n return {\n ...popperConfig,\n ...this._config.popperConfig\n }\n }\n\n // Static\n\n static dropdownInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(element, _config)\n }\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 static jQueryInterface(config) {\n return this.each(function () {\n Dropdown.dropdownInterface(this, config)\n })\n }\n\n static clearMenus(event) {\n if (event && (event.button === RIGHT_MOUSE_BUTTON || (event.type === 'keyup' && event.key !== TAB_KEY))) {\n return\n }\n\n const toggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\n\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown.getParentFromElement(toggles[i])\n const context = Data.getData(toggles[i], DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!toggles[i].classList.contains(CLASS_NAME_SHOW)) {\n continue\n }\n\n if (event && ((event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName)) ||\n (event.type === 'keyup' && event.key === TAB_KEY)) &&\n dropdownMenu.contains(event.target)) {\n continue\n }\n\n const hideEvent = EventHandler.trigger(parent, EVENT_HIDE, relatedTarget)\n if (hideEvent.defaultPrevented) {\n continue\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 [].concat(...document.body.children)\n .forEach(elem => EventHandler.off(elem, 'mouseover', null, noop()))\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n if (context._popper) {\n context._popper.destroy()\n }\n\n dropdownMenu.classList.remove(CLASS_NAME_SHOW)\n toggles[i].classList.remove(CLASS_NAME_SHOW)\n EventHandler.trigger(parent, EVENT_HIDDEN, relatedTarget)\n }\n }\n\n static getParentFromElement(element) {\n return getElementFromSelector(element) || element.parentNode\n }\n\n static dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ?\n event.key === SPACE_KEY || (event.key !== ESCAPE_KEY &&\n ((event.key !== ARROW_DOWN_KEY && event.key !== ARROW_UP_KEY) ||\n event.target.closest(SELECTOR_MENU))) :\n !REGEXP_KEYDOWN.test(event.key)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || this.classList.contains(CLASS_NAME_DISABLED)) {\n return\n }\n\n const parent = Dropdown.getParentFromElement(this)\n const isActive = this.classList.contains(CLASS_NAME_SHOW)\n\n if (event.key === ESCAPE_KEY) {\n const button = this.matches(SELECTOR_DATA_TOGGLE) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE)[0]\n button.focus()\n Dropdown.clearMenus()\n return\n }\n\n if (!isActive || event.key === SPACE_KEY) {\n Dropdown.clearMenus()\n return\n }\n\n const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, parent).filter(isVisible)\n\n if (!items.length) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n // Up\n if (event.key === ARROW_UP_KEY && index > 0) {\n index--\n }\n\n // Down\n if (event.key === ARROW_DOWN_KEY && index < items.length - 1) {\n index++\n }\n\n // index is -1 if the first keydown is an ArrowUp\n index = index === -1 ? 0 : index\n\n items[index].focus()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\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 event.stopPropagation()\n Dropdown.dropdownInterface(this, 'toggle')\n})\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_FORM_CHILD, e => e.stopPropagation())\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Dropdown to jQuery only if jQuery is present\n */\n\nonDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Dropdown.jQueryInterface\n $.fn[NAME].Constructor = Dropdown\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown.jQueryInterface\n }\n }\n})\n\nexport default Dropdown\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n onDOMContentLoaded,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isVisible,\n isRTL,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\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 Default = {\n backdrop: true,\n keyboard: true,\n focus: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean'\n}\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_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${EVENT_KEY}`\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEUP_DISMISS = `mouseup.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure'\nconst CLASS_NAME_BACKDROP = 'modal-backdrop'\nconst CLASS_NAME_OPEN = 'modal-open'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_STATIC = 'modal-static'\n\nconst SELECTOR_DIALOG = '.modal-dialog'\nconst SELECTOR_MODAL_BODY = '.modal-body'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"modal\"]'\nconst SELECTOR_DATA_DISMISS = '[data-bs-dismiss=\"modal\"]'\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'\nconst SELECTOR_STICKY_CONTENT = '.sticky-top'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._config = this._getConfig(config)\n this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, element)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollbarWidth = 0\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n if (this._element.classList.contains(CLASS_NAME_FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, {\n relatedTarget\n })\n\n if (this._isShown || showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, event => this.hide(event))\n\n EventHandler.on(this._dialog, EVENT_MOUSEDOWN_DISMISS, () => {\n EventHandler.one(this._element, EVENT_MOUSEUP_DISMISS, event => {\n if (event.target === this._element) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\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 const transition = this._element.classList.contains(CLASS_NAME_FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.off(document, EVENT_FOCUSIN)\n\n this._element.classList.remove(CLASS_NAME_SHOW)\n\n EventHandler.off(this._element, EVENT_CLICK_DISMISS)\n EventHandler.off(this._dialog, EVENT_MOUSEDOWN_DISMISS)\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, event => this._hideModal(event))\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach(htmlElement => EventHandler.off(htmlElement, EVENT_KEY))\n\n super.dispose()\n\n /**\n * `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `EVENT_CLICK_DATA_API` event that should remain\n */\n EventHandler.off(document, EVENT_FOCUSIN)\n\n this._config = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._isTransitioning = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const transition = this._element.classList.contains(CLASS_NAME_FADE)\n const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog)\n\n if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(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 if (modalBody) {\n modalBody.scrollTop = 0\n }\n\n if (transition) {\n reflow(this._element)\n }\n\n this._element.classList.add(CLASS_NAME_SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n\n this._isTransitioning = false\n EventHandler.trigger(this._element, EVENT_SHOWN, {\n relatedTarget\n })\n }\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._dialog)\n\n EventHandler.one(this._dialog, TRANSITION_END, transitionComplete)\n emulateTransitionEnd(this._dialog, transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n EventHandler.off(document, EVENT_FOCUSIN) // guard against infinite focus loop\n EventHandler.on(document, EVENT_FOCUSIN, event => {\n if (document !== event.target &&\n this._element !== event.target &&\n !this._element.contains(event.target)) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown) {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {\n if (this._config.keyboard && event.key === ESCAPE_KEY) {\n event.preventDefault()\n this.hide()\n } else if (!this._config.keyboard && event.key === ESCAPE_KEY) {\n this._triggerBackdropTransition()\n }\n })\n } else {\n EventHandler.off(this._element, EVENT_KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n EventHandler.on(window, EVENT_RESIZE, () => this._adjustDialog())\n } else {\n EventHandler.off(window, EVENT_RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._element.removeAttribute('role')\n this._isTransitioning = false\n this._showBackdrop(() => {\n document.body.classList.remove(CLASS_NAME_OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n })\n }\n\n _removeBackdrop() {\n this._backdrop.parentNode.removeChild(this._backdrop)\n this._backdrop = null\n }\n\n _showBackdrop(callback) {\n const animate = this._element.classList.contains(CLASS_NAME_FADE) ?\n CLASS_NAME_FADE :\n ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = CLASS_NAME_BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n document.body.appendChild(this._backdrop)\n\n EventHandler.on(this._element, EVENT_CLICK_DISMISS, event => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n\n if (event.target !== event.currentTarget) {\n return\n }\n\n if (this._config.backdrop === 'static') {\n this._triggerBackdropTransition()\n } else {\n this.hide()\n }\n })\n\n if (animate) {\n reflow(this._backdrop)\n }\n\n this._backdrop.classList.add(CLASS_NAME_SHOW)\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n\n EventHandler.one(this._backdrop, TRANSITION_END, callback)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n this._backdrop.classList.remove(CLASS_NAME_SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n callback()\n }\n\n if (this._element.classList.contains(CLASS_NAME_FADE)) {\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n EventHandler.one(this._backdrop, TRANSITION_END, callbackRemove)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else {\n callback()\n }\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\n if (!isModalOverflowing) {\n this._element.style.overflowY = 'hidden'\n }\n\n this._element.classList.add(CLASS_NAME_STATIC)\n const modalTransitionDuration = getTransitionDurationFromElement(this._dialog)\n EventHandler.off(this._element, TRANSITION_END)\n EventHandler.one(this._element, TRANSITION_END, () => {\n this._element.classList.remove(CLASS_NAME_STATIC)\n if (!isModalOverflowing) {\n EventHandler.one(this._element, TRANSITION_END, () => {\n this._element.style.overflowY = ''\n })\n emulateTransitionEnd(this._element, modalTransitionDuration)\n }\n })\n emulateTransitionEnd(this._element, modalTransitionDuration)\n this._element.focus()\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing =\n this._element.scrollHeight > document.documentElement.clientHeight\n\n if ((!this._isBodyOverflowing && isModalOverflowing && !isRTL) || (this._isBodyOverflowing && !isModalOverflowing && isRTL)) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if ((this._isBodyOverflowing && !isModalOverflowing && !isRTL) || (!this._isBodyOverflowing && isModalOverflowing && isRTL)) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n // Adjust fixed content padding\n SelectorEngine.find(SELECTOR_FIXED_CONTENT)\n .forEach(element => {\n const actualPadding = element.style.paddingRight\n const calculatedPadding = window.getComputedStyle(element)['padding-right']\n Manipulator.setDataAttribute(element, 'padding-right', actualPadding)\n element.style.paddingRight = `${Number.parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n })\n\n // Adjust sticky content margin\n SelectorEngine.find(SELECTOR_STICKY_CONTENT)\n .forEach(element => {\n const actualMargin = element.style.marginRight\n const calculatedMargin = window.getComputedStyle(element)['margin-right']\n Manipulator.setDataAttribute(element, 'margin-right', actualMargin)\n element.style.marginRight = `${Number.parseFloat(calculatedMargin) - this._scrollbarWidth}px`\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = window.getComputedStyle(document.body)['padding-right']\n\n Manipulator.setDataAttribute(document.body, 'padding-right', actualPadding)\n document.body.style.paddingRight = `${Number.parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n }\n\n document.body.classList.add(CLASS_NAME_OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n SelectorEngine.find(SELECTOR_FIXED_CONTENT)\n .forEach(element => {\n const padding = Manipulator.getDataAttribute(element, 'padding-right')\n if (typeof padding !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'padding-right')\n element.style.paddingRight = padding\n }\n })\n\n // Restore sticky content and navbar-toggler margin\n SelectorEngine.find(`${SELECTOR_STICKY_CONTENT}`)\n .forEach(element => {\n const margin = Manipulator.getDataAttribute(element, 'margin-right')\n if (typeof margin !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'margin-right')\n element.style.marginRight = margin\n }\n })\n\n // Restore body padding\n const padding = Manipulator.getDataAttribute(document.body, 'padding-right')\n if (typeof padding === 'undefined') {\n document.body.style.paddingRight = ''\n } else {\n Manipulator.removeDataAttribute(document.body, 'padding-right')\n document.body.style.paddingRight = padding\n }\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = CLASS_NAME_SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(this),\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (!data) {\n data = new Modal(this, _config)\n }\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](relatedTarget)\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n const target = getElementFromSelector(this)\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\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 let data = Data.getData(target, DATA_KEY)\n if (!data) {\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n\n data = new Modal(target, config)\n }\n\n data.show(this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Modal to jQuery only if jQuery is present\n */\n\nonDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Modal.jQueryInterface\n $.fn[NAME].Constructor = Modal\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal.jQueryInterface\n }\n }\n})\n\nexport default Modal\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst uriAttrs = new Set([\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n])\n\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[\\d+/a-z]+=*$/i\n\nconst allowedAttribute = (attr, allowedAttributeList) => {\n const attrName = attr.nodeName.toLowerCase()\n\n if (allowedAttributeList.includes(attrName)) {\n if (uriAttrs.has(attrName)) {\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, len = regExp.length; i < len; i++) {\n if (attrName.match(regExp[i])) {\n return true\n }\n }\n\n return false\n}\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\nexport function sanitizeHtml(unsafeHtml, allowList, sanitizeFn) {\n if (!unsafeHtml.length) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const allowlistKeys = Object.keys(allowList)\n const elements = [].concat(...createdDocument.body.querySelectorAll('*'))\n\n for (let i = 0, len = elements.length; i < len; i++) {\n const el = elements[i]\n const elName = el.nodeName.toLowerCase()\n\n if (!allowlistKeys.includes(elName)) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n const attributeList = [].concat(...el.attributes)\n const allowedAttributes = [].concat(allowList['*'] || [], allowList[elName] || [])\n\n attributeList.forEach(attr => {\n if (!allowedAttribute(attr, allowedAttributes)) {\n el.removeAttribute(attr.nodeName)\n }\n })\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n onDOMContentLoaded,\n TRANSITION_END,\n emulateTransitionEnd,\n findShadowRoot,\n getTransitionDurationFromElement,\n getUID,\n isElement,\n isRTL,\n noop,\n typeCheckConfig\n} from './util/index'\nimport {\n DefaultAllowlist,\n sanitizeHtml\n} from './util/sanitizer'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tooltip'\nconst DATA_KEY = 'bs.tooltip'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-tooltip'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\nconst DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn'])\n\nconst DefaultType = {\n animation: 'boolean',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string',\n delay: '(number|object)',\n html: 'boolean',\n selector: '(string|boolean)',\n placement: '(string|function)',\n offset: '(number|string|function)',\n container: '(string|element|boolean)',\n fallbackPlacement: '(string|array)',\n boundary: '(string|element)',\n customClass: '(string|function)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n allowList: 'object',\n popperConfig: '(null|object)'\n}\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 animation: true,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"tooltip-arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div>' +\n '</div>',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n selector: false,\n placement: 'top',\n offset: 0,\n container: false,\n fallbackPlacement: 'flip',\n boundary: 'scrollParent',\n customClass: '',\n sanitize: true,\n sanitizeFn: null,\n allowList: DefaultAllowlist,\n popperConfig: null\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_MODAL = 'modal'\nconst CLASS_NAME_SHOW = 'show'\n\nconst HOVER_STATE_SHOW = 'show'\nconst HOVER_STATE_OUT = 'out'\n\nconst SELECTOR_TOOLTIP_INNER = '.tooltip-inner'\n\nconst TRIGGER_HOVER = 'hover'\nconst TRIGGER_FOCUS = 'focus'\nconst TRIGGER_CLICK = 'click'\nconst TRIGGER_MANUAL = 'manual'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\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)\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(event.delegateTarget, this._getDelegateConfig())\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if (this.getTipElement().classList.contains(CLASS_NAME_SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n EventHandler.off(this._element, this.constructor.EVENT_KEY)\n EventHandler.off(this._element.closest(`.${CLASS_NAME_MODAL}`), 'hide.bs.modal', this._hideModalHandler)\n\n if (this.tip) {\n this.tip.parentNode.removeChild(this.tip)\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.config = null\n this.tip = null\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 const showEvent = EventHandler.trigger(this._element, this.constructor.Event.SHOW)\n const shadowRoot = findShadowRoot(this._element)\n const isInTheDom = shadowRoot === null ?\n this._element.ownerDocument.documentElement.contains(this._element) :\n shadowRoot.contains(this._element)\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this._element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n tip.classList.add(CLASS_NAME_FADE)\n }\n\n const placement = typeof this.config.placement === 'function' ?\n this.config.placement.call(this, tip, this._element) :\n this.config.placement\n\n const attachment = this._getAttachment(placement)\n this._addAttachmentClass(attachment)\n\n const container = this._getContainer()\n Data.setData(tip, this.constructor.DATA_KEY, this)\n\n if (!this._element.ownerDocument.documentElement.contains(this.tip)) {\n container.appendChild(tip)\n }\n\n EventHandler.trigger(this._element, this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this._element, tip, this._getPopperConfig(attachment))\n\n tip.classList.add(CLASS_NAME_SHOW)\n\n const customClass = typeof this.config.customClass === 'function' ? this.config.customClass() : this.config.customClass\n if (customClass) {\n tip.classList.add(...customClass.split(' '))\n }\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 [].concat(...document.body.children).forEach(element => {\n EventHandler.on(element, 'mouseover', noop())\n })\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n EventHandler.trigger(this._element, this.constructor.Event.SHOWN)\n\n if (prevHoverState === HOVER_STATE_OUT) {\n this._leave(null, this)\n }\n }\n\n if (this.tip.classList.contains(CLASS_NAME_FADE)) {\n const transitionDuration = getTransitionDurationFromElement(this.tip)\n EventHandler.one(this.tip, TRANSITION_END, complete)\n emulateTransitionEnd(this.tip, transitionDuration)\n } else {\n complete()\n }\n }\n }\n\n hide() {\n if (!this._popper) {\n return\n }\n\n const tip = this.getTipElement()\n const complete = () => {\n if (this._hoverState !== HOVER_STATE_SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this._element.removeAttribute('aria-describedby')\n EventHandler.trigger(this._element, this.constructor.Event.HIDDEN)\n this._popper.destroy()\n }\n\n const hideEvent = EventHandler.trigger(this._element, this.constructor.Event.HIDE)\n if (hideEvent.defaultPrevented) {\n return\n }\n\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 [].concat(...document.body.children)\n .forEach(element => EventHandler.off(element, 'mouseover', noop))\n }\n\n this._activeTrigger[TRIGGER_CLICK] = false\n this._activeTrigger[TRIGGER_FOCUS] = false\n this._activeTrigger[TRIGGER_HOVER] = false\n\n if (this.tip.classList.contains(CLASS_NAME_FADE)) {\n const transitionDuration = getTransitionDurationFromElement(tip)\n\n EventHandler.one(tip, TRANSITION_END, complete)\n emulateTransitionEnd(tip, transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n getTipElement() {\n if (this.tip) {\n return this.tip\n }\n\n const element = document.createElement('div')\n element.innerHTML = this.config.template\n\n this.tip = element.children[0]\n return this.tip\n }\n\n setContent() {\n const tip = this.getTipElement()\n this.setElementContent(SelectorEngine.findOne(SELECTOR_TOOLTIP_INNER, tip), this.getTitle())\n tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW)\n }\n\n setElementContent(element, content) {\n if (element === null) {\n return\n }\n\n if (typeof content === 'object' && isElement(content)) {\n if (content.jquery) {\n content = content[0]\n }\n\n // content is a DOM node or a jQuery\n if (this.config.html) {\n if (content.parentNode !== element) {\n element.innerHTML = ''\n element.appendChild(content)\n }\n } else {\n element.textContent = content.textContent\n }\n\n return\n }\n\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.allowList, this.config.sanitizeFn)\n }\n\n element.innerHTML = content\n } else {\n element.textContent = content\n }\n }\n\n getTitle() {\n let title = this._element.getAttribute('data-bs-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function' ?\n this.config.title.call(this._element) :\n this.config.title\n }\n\n return title\n }\n\n updateAttachment(attachment) {\n if (attachment === 'right') {\n return 'end'\n }\n\n if (attachment === 'left') {\n return 'start'\n }\n\n return attachment\n }\n\n // Private\n\n _getPopperConfig(attachment) {\n const defaultBsConfig = {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: `.${this.constructor.NAME}-arrow`\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: data => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: data => this._handlePopperPlacementChange(data)\n }\n\n return {\n ...defaultBsConfig,\n ...this.config.popperConfig\n }\n }\n\n _addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${this.updateAttachment(attachment)}`)\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this.config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...(this.config.offset(data.offsets, this._element) || {})\n }\n\n return data\n }\n } else {\n offset.offset = this.config.offset\n }\n\n return offset\n }\n\n _getContainer() {\n if (this.config.container === false) {\n return document.body\n }\n\n if (isElement(this.config.container)) {\n return this.config.container\n }\n\n return SelectorEngine.findOne(this.config.container)\n }\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach(trigger => {\n if (trigger === 'click') {\n EventHandler.on(this._element, this.constructor.Event.CLICK, this.config.selector, event => this.toggle(event)\n )\n } else if (trigger !== TRIGGER_MANUAL) {\n const eventIn = trigger === TRIGGER_HOVER ?\n this.constructor.Event.MOUSEENTER :\n this.constructor.Event.FOCUSIN\n const eventOut = trigger === TRIGGER_HOVER ?\n this.constructor.Event.MOUSELEAVE :\n this.constructor.Event.FOCUSOUT\n\n EventHandler.on(this._element, eventIn, this.config.selector, event => this._enter(event))\n EventHandler.on(this._element, eventOut, this.config.selector, event => this._leave(event))\n }\n })\n\n this._hideModalHandler = () => {\n if (this._element) {\n this.hide()\n }\n }\n\n EventHandler.on(this._element.closest(`.${CLASS_NAME_MODAL}`), 'hide.bs.modal', this._hideModalHandler)\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const title = this._element.getAttribute('title')\n const originalTitleType = typeof this._element.getAttribute('data-bs-original-title')\n\n if (title || originalTitleType !== 'string') {\n this._element.setAttribute('data-bs-original-title', title || '')\n if (title && !this._element.getAttribute('aria-label') && !this._element.textContent) {\n this._element.setAttribute('aria-label', title)\n }\n\n this._element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER\n ] = true\n }\n\n if (context.getTipElement().classList.contains(CLASS_NAME_SHOW) || context._hoverState === HOVER_STATE_SHOW) {\n context._hoverState = HOVER_STATE_SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this._element)\n\n Object.keys(dataAttributes).forEach(dataAttr => {\n if (DISALLOWED_ATTRIBUTES.has(dataAttr)) {\n delete dataAttributes[dataAttr]\n }\n })\n\n if (config && typeof config.container === 'object' && config.container.jquery) {\n config.container = config.container[0]\n }\n\n config = {\n ...this.constructor.Default,\n ...dataAttributes,\n ...(typeof config === 'object' && config ? config : {})\n }\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 typeCheckConfig(NAME, config, this.constructor.DefaultType)\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.allowList, config.sanitizeFn)\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n _handlePopperPlacementChange(popperData) {\n this.tip = popperData.instance.popper\n this._cleanTipClass()\n this._addAttachmentClass(this._getAttachment(popperData.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n\n tip.classList.remove(CLASS_NAME_FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n }\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 * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Tooltip to jQuery only if jQuery is present\n */\n\nonDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tooltip.jQueryInterface\n $.fn[NAME].Constructor = Tooltip\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip.jQueryInterface\n }\n }\n})\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getjQuery, onDOMContentLoaded } from './util/index'\nimport Data from './dom/data'\nimport SelectorEngine from './dom/selector-engine'\nimport Tooltip from './tooltip'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'popover'\nconst DATA_KEY = 'bs.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-popover'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst Default = {\n ...Tooltip.Default,\n placement: 'right',\n trigger: 'click',\n content: '',\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}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content: '(string|element|function)'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_TITLE = '.popover-header'\nconst SELECTOR_CONTENT = '.popover-body'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Popover extends Tooltip {\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n setContent() {\n const tip = this.getTipElement()\n\n // we use append for html objects to maintain js events\n this.setElementContent(SelectorEngine.findOne(SELECTOR_TITLE, tip), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this._element)\n }\n\n this.setElementContent(SelectorEngine.findOne(SELECTOR_CONTENT, tip), content)\n\n tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW)\n }\n\n // Private\n\n _addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${this.updateAttachment(attachment)}`)\n }\n\n _getContent() {\n return this._element.getAttribute('data-bs-content') || this.config.content\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n Data.setData(this, DATA_KEY, data)\n }\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 * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Popover to jQuery only if jQuery is present\n */\n\nonDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Popover.jQueryInterface\n $.fn[NAME].Constructor = Popover\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover.jQueryInterface\n }\n }\n})\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n onDOMContentLoaded,\n getSelectorFromElement,\n getUID,\n isElement,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollspy'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n offset: 10,\n method: 'auto',\n target: ''\n}\n\nconst DefaultType = {\n offset: 'number',\n method: 'string',\n target: '(string|element)'\n}\n\nconst EVENT_ACTIVATE = `activate${EVENT_KEY}`\nconst EVENT_SCROLL = `scroll${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_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_DROPDOWN = '.dropdown'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\n\nconst METHOD_OFFSET = 'offset'\nconst METHOD_POSITION = 'position'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy extends BaseComponent {\n constructor(element, config) {\n super(element)\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${SELECTOR_NAV_LINKS}, ${this._config.target} ${SELECTOR_LIST_ITEMS}, ${this._config.target} .${CLASS_NAME_DROPDOWN_ITEM}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n EventHandler.on(this._scrollElement, EVENT_SCROLL, event => this._process(event))\n\n this.refresh()\n this._process()\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window ?\n METHOD_OFFSET :\n METHOD_POSITION\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod :\n this._config.method\n\n const offsetBase = offsetMethod === METHOD_POSITION ?\n this._getScrollTop() :\n 0\n\n this._offsets = []\n this._targets = []\n this._scrollHeight = this._getScrollHeight()\n\n const targets = SelectorEngine.find(this._selector)\n\n targets.map(element => {\n const targetSelector = getSelectorFromElement(element)\n const target = targetSelector ? SelectorEngine.findOne(targetSelector) : null\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n return [\n Manipulator[offsetMethod](target).top + offsetBase,\n targetSelector\n ]\n }\n }\n\n return null\n })\n .filter(item => item)\n .sort((a, b) => a[0] - b[0])\n .forEach(item => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n super.dispose()\n EventHandler.off(this._scrollElement, EVENT_KEY)\n\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (typeof config.target !== 'string' && isElement(config.target)) {\n let { id } = config.target\n if (!id) {\n id = getUID(NAME)\n config.target.id = id\n }\n\n config.target = `#${id}`\n }\n\n typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window ?\n this._scrollElement.pageYOffset :\n this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window ?\n window.innerHeight :\n this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n for (let i = this._offsets.length; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector.split(',')\n .map(selector => `${selector}[data-bs-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const link = SelectorEngine.findOne(queries.join(','))\n\n if (link.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) {\n SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE, link.closest(SELECTOR_DROPDOWN))\n .classList.add(CLASS_NAME_ACTIVE)\n\n link.classList.add(CLASS_NAME_ACTIVE)\n } else {\n // Set triggered link as active\n link.classList.add(CLASS_NAME_ACTIVE)\n\n SelectorEngine.parents(link, SELECTOR_NAV_LIST_GROUP)\n .forEach(listGroup => {\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 SelectorEngine.prev(listGroup, `${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`)\n .forEach(item => item.classList.add(CLASS_NAME_ACTIVE))\n\n // Handle special case when .nav-link is inside .nav-item\n SelectorEngine.prev(listGroup, SELECTOR_NAV_ITEMS)\n .forEach(navItem => {\n SelectorEngine.children(navItem, SELECTOR_NAV_LINKS)\n .forEach(item => item.classList.add(CLASS_NAME_ACTIVE))\n })\n })\n }\n\n EventHandler.trigger(this._scrollElement, EVENT_ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n SelectorEngine.find(this._selector)\n .filter(node => node.classList.contains(CLASS_NAME_ACTIVE))\n .forEach(node => node.classList.remove(CLASS_NAME_ACTIVE))\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n }\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 * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n SelectorEngine.find(SELECTOR_DATA_SPY)\n .forEach(spy => new ScrollSpy(spy, Manipulator.getDataAttributes(spy)))\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .ScrollSpy to jQuery only if jQuery is present\n */\n\nonDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = ScrollSpy.jQueryInterface\n $.fn[NAME].Constructor = ScrollSpy\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy.jQueryInterface\n }\n }\n})\n\nexport default ScrollSpy\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n onDOMContentLoaded,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\n reflow\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tab'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\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}`\n\nconst CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_UL = ':scope > li > .active'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"tab\"], [data-bs-toggle=\"pill\"], [data-bs-toggle=\"list\"]'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\nconst SELECTOR_DROPDOWN_ACTIVE_CHILD = ':scope > .dropdown-menu .active'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tab extends BaseComponent {\n // Getters\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n show() {\n if ((this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n this._element.classList.contains(CLASS_NAME_ACTIVE)) ||\n this._element.classList.contains(CLASS_NAME_DISABLED)) {\n return\n }\n\n let previous\n const target = getElementFromSelector(this._element)\n const listElement = this._element.closest(SELECTOR_NAV_LIST_GROUP)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE\n previous = SelectorEngine.find(itemSelector, listElement)\n previous = previous[previous.length - 1]\n }\n\n let hideEvent = null\n\n if (previous) {\n hideEvent = EventHandler.trigger(previous, EVENT_HIDE, {\n relatedTarget: this._element\n })\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, {\n relatedTarget: previous\n })\n\n if (showEvent.defaultPrevented || (hideEvent !== null && hideEvent.defaultPrevented)) {\n return\n }\n\n this._activate(this._element, listElement)\n\n const complete = () => {\n EventHandler.trigger(previous, EVENT_HIDDEN, {\n relatedTarget: this._element\n })\n EventHandler.trigger(this._element, EVENT_SHOWN, {\n relatedTarget: previous\n })\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n // Private\n\n _activate(element, container, callback) {\n const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ?\n SelectorEngine.find(SELECTOR_ACTIVE_UL, container) :\n SelectorEngine.children(container, SELECTOR_ACTIVE)\n\n const active = activeElements[0]\n const isTransitioning = callback && (active && active.classList.contains(CLASS_NAME_FADE))\n\n const complete = () => this._transitionComplete(element, active, callback)\n\n if (active && isTransitioning) {\n const transitionDuration = getTransitionDurationFromElement(active)\n active.classList.remove(CLASS_NAME_SHOW)\n\n EventHandler.one(active, TRANSITION_END, complete)\n emulateTransitionEnd(active, transitionDuration)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n active.classList.remove(CLASS_NAME_ACTIVE)\n\n const dropdownChild = SelectorEngine.findOne(SELECTOR_DROPDOWN_ACTIVE_CHILD, active.parentNode)\n\n if (dropdownChild) {\n dropdownChild.classList.remove(CLASS_NAME_ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n element.classList.add(CLASS_NAME_ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n reflow(element)\n\n if (element.classList.contains(CLASS_NAME_FADE)) {\n element.classList.add(CLASS_NAME_SHOW)\n }\n\n if (element.parentNode && element.parentNode.classList.contains(CLASS_NAME_DROPDOWN_MENU)) {\n const dropdownElement = element.closest(SELECTOR_DROPDOWN)\n\n if (dropdownElement) {\n SelectorEngine.find(SELECTOR_DROPDOWN_TOGGLE)\n .forEach(dropdown => dropdown.classList.add(CLASS_NAME_ACTIVE))\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\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 * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault()\n\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n data.show()\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Tab to jQuery only if jQuery is present\n */\n\nonDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tab.jQueryInterface\n $.fn[NAME].Constructor = Tab\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab.jQueryInterface\n }\n }\n})\n\nexport default Tab\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n onDOMContentLoaded,\n TRANSITION_END,\n emulateTransitionEnd,\n getTransitionDurationFromElement,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'toast'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_CLICK_DISMISS = `click.dismiss${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'\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\nconst SELECTOR_DATA_DISMISS = '[data-bs-dismiss=\"toast\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n }\n\n // Getters\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get Default() {\n return Default\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\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 this._element.classList.add(CLASS_NAME_SHOW)\n\n EventHandler.trigger(this._element, EVENT_SHOWN)\n\n if (this._config.autohide) {\n this._timeout = setTimeout(() => {\n this.hide()\n }, this._config.delay)\n }\n }\n\n this._element.classList.remove(CLASS_NAME_HIDE)\n reflow(this._element)\n this._element.classList.add(CLASS_NAME_SHOWING)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n hide() {\n if (!this._element.classList.contains(CLASS_NAME_SHOW)) {\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)\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n }\n\n this._element.classList.remove(CLASS_NAME_SHOW)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n dispose() {\n this._clearTimeout()\n\n if (this._element.classList.contains(CLASS_NAME_SHOW)) {\n this._element.classList.remove(CLASS_NAME_SHOW)\n }\n\n EventHandler.off(this._element, EVENT_CLICK_DISMISS)\n\n super.dispose()\n this._config = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...(typeof config === 'object' && config ? config : {})\n }\n\n typeCheckConfig(NAME, config, this.constructor.DefaultType)\n\n return config\n }\n\n _setListeners() {\n EventHandler.on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, () => this.hide())\n }\n\n _clearTimeout() {\n clearTimeout(this._timeout)\n this._timeout = null\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new Toast(this, _config)\n }\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 * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Toast to jQuery only if jQuery is present\n */\n\nonDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Toast.jQueryInterface\n $.fn[NAME].Constructor = Toast\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Toast.jQueryInterface\n }\n }\n})\n\nexport default Toast\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): index.umd.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Alert from './src/alert'\nimport Button from './src/button'\nimport Carousel from './src/carousel'\nimport Collapse from './src/collapse'\nimport Dropdown from './src/dropdown'\nimport Modal from './src/modal'\nimport Popover from './src/popover'\nimport ScrollSpy from './src/scrollspy'\nimport Tab from './src/tab'\nimport Toast from './src/toast'\nimport Tooltip from './src/tooltip'\n\nexport default {\n Alert,\n Button,\n Carousel,\n Collapse,\n Dropdown,\n Modal,\n Popover,\n ScrollSpy,\n Tab,\n Toast,\n Tooltip\n}\n"],"names":["MAX_UID","MILLISECONDS_MULTIPLIER","TRANSITION_END","toType","obj","undefined","toString","call","match","toLowerCase","getUID","prefix","Math","floor","random","document","getElementById","getSelector","element","selector","getAttribute","hrefAttr","trim","getSelectorFromElement","querySelector","getElementFromSelector","getTransitionDurationFromElement","window","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","Number","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","dispatchEvent","Event","isElement","nodeType","emulateTransitionEnd","duration","called","durationPadding","emulatedDuration","listener","removeEventListener","addEventListener","setTimeout","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","isVisible","style","parentNode","elementStyle","parentNodeStyle","display","visibility","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","noop","reflow","offsetHeight","getjQuery","jQuery","body","hasAttribute","onDOMContentLoaded","callback","readyState","isRTL","dir","mapData","storeData","id","set","key","data","bsKey","get","keyProperties","delete","Data","setData","instance","getData","removeData","namespaceRegex","stripNameRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","nativeEvents","Set","getUidEvent","uid","getEvent","bootstrapHandler","fn","handler","event","delegateTarget","oneOff","EventHandler","off","type","apply","bootstrapDelegationHandler","domElements","querySelectorAll","target","i","length","findHandler","events","delegationSelector","uidEventList","len","originalHandler","normalizeParams","originalTypeEvent","delegationFn","delegation","typeEvent","replace","custom","isNative","has","addHandler","handlers","previousFn","removeHandler","Boolean","removeNamespacedHandlers","namespace","storeElementEvent","handlerKey","includes","on","one","inNamespace","isNamespace","startsWith","elementEvent","slice","keyHandlers","trigger","args","$","jQueryEvent","bubbles","nativeDispatch","defaultPrevented","evt","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","createEvent","initEvent","CustomEvent","cancelable","defineProperty","preventDefault","VERSION","BaseComponent","_element","constructor","DATA_KEY","dispose","getInstance","NAME","EVENT_KEY","DATA_API_KEY","SELECTOR_DISMISS","EVENT_CLOSE","EVENT_CLOSED","EVENT_CLICK_DATA_API","CLASSNAME_ALERT","CLASSNAME_FADE","CLASSNAME_SHOW","Alert","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","_removeElement","closest","classList","remove","contains","_destroyElement","removeChild","jQueryInterface","each","handleDismiss","alertInstance","JQUERY_NO_CONFLICT","Constructor","noConflict","CLASS_NAME_ACTIVE","SELECTOR_DATA_TOGGLE","Button","toggle","setAttribute","button","normalizeData","val","normalizeDataKey","chr","Manipulator","setDataAttribute","removeDataAttribute","removeAttribute","getDataAttributes","attributes","dataset","filter","pureKey","charAt","getDataAttribute","offset","rect","getBoundingClientRect","top","scrollTop","left","scrollLeft","position","offsetTop","offsetLeft","NODE_TEXT","SelectorEngine","matches","find","concat","Element","prototype","findOne","children","child","parents","ancestor","Node","ELEMENT_NODE","push","prev","previous","previousElementSibling","next","nextElementSibling","ARROW_LEFT_KEY","ARROW_RIGHT_KEY","TOUCHEVENT_COMPAT_WAIT","SWIPE_THRESHOLD","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","DIRECTION_NEXT","DIRECTION_PREV","DIRECTION_LEFT","DIRECTION_RIGHT","EVENT_SLIDE","EVENT_SLID","EVENT_KEYDOWN","EVENT_MOUSEENTER","EVENT_MOUSELEAVE","EVENT_TOUCHSTART","EVENT_TOUCHMOVE","EVENT_TOUCHEND","EVENT_POINTERDOWN","EVENT_POINTERUP","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","CLASS_NAME_POINTER_EVENT","SELECTOR_ACTIVE","SELECTOR_ACTIVE_ITEM","SELECTOR_ITEM","SELECTOR_ITEM_IMG","SELECTOR_NEXT_PREV","SELECTOR_INDICATORS","SELECTOR_DATA_SLIDE","SELECTOR_DATA_RIDE","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","_addEventListeners","_slide","nextWhenVisible","hidden","cycle","clearInterval","_updateInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","direction","_handleSwipe","absDeltax","abs","_keydown","_addTouchEventListeners","start","pointerType","clientX","touches","move","end","clearTimeout","itemImg","e","add","tagName","indexOf","_getItemByDirection","activeElement","isNextDirection","isPrevDirection","lastItemIndex","isGoingToWrap","delta","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","from","_setActiveIndicatorElement","indicators","nextIndicator","elementInterval","parseInt","defaultInterval","activeElementIndex","nextElement","nextElementIndex","isCycling","directionalClassName","orderClassName","slideEvent","carouselInterface","action","TypeError","ride","dataApiClickHandler","slideIndex","carousels","parent","EVENT_SHOW","EVENT_SHOWN","EVENT_HIDE","EVENT_HIDDEN","CLASS_NAME_SHOW","CLASS_NAME_COLLAPSE","CLASS_NAME_COLLAPSING","CLASS_NAME_COLLAPSED","WIDTH","HEIGHT","SELECTOR_ACTIVES","Collapse","_isTransitioning","_triggerArray","toggleList","elem","filterElement","foundElem","_selector","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","container","tempActiveData","startEvent","elemActive","collapseInterface","dimension","_getDimension","setTransitioning","complete","capitalizedDimension","scrollSize","triggerArrayLength","isTransitioning","jquery","selected","triggerArray","isOpen","triggerData","selectorElements","_extends","ESCAPE_KEY","SPACE_KEY","TAB_KEY","ARROW_UP_KEY","ARROW_DOWN_KEY","RIGHT_MOUSE_BUTTON","REGEXP_KEYDOWN","EVENT_CLICK","EVENT_KEYDOWN_DATA_API","EVENT_KEYUP_DATA_API","CLASS_NAME_DISABLED","CLASS_NAME_DROPUP","CLASS_NAME_DROPEND","CLASS_NAME_DROPSTART","CLASS_NAME_MENUEND","CLASS_NAME_NAVBAR","CLASS_NAME_POSITION_STATIC","SELECTOR_FORM_CHILD","SELECTOR_MENU","SELECTOR_NAVBAR_NAV","SELECTOR_VISIBLE_ITEMS","PLACEMENT_TOP","PLACEMENT_TOPEND","PLACEMENT_BOTTOM","PLACEMENT_BOTTOMEND","PLACEMENT_RIGHT","PLACEMENT_LEFT","flip","boundary","reference","popperConfig","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","isActive","clearMenus","getParentFromElement","showEvent","Popper","referenceElement","_getPopperConfig","focus","hideEvent","destroy","update","scheduleUpdate","stopPropagation","_getPlacement","parentDropdown","placement","_getOffset","offsets","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","dropdownInterface","toggles","context","clickEvent","dropdownMenu","dataApiKeydownHandler","items","backdrop","EVENT_HIDE_PREVENTED","EVENT_FOCUSIN","EVENT_RESIZE","EVENT_CLICK_DISMISS","EVENT_KEYDOWN_DISMISS","EVENT_MOUSEUP_DISMISS","EVENT_MOUSEDOWN_DISMISS","CLASS_NAME_SCROLLBAR_MEASURER","CLASS_NAME_BACKDROP","CLASS_NAME_OPEN","CLASS_NAME_FADE","CLASS_NAME_STATIC","SELECTOR_DIALOG","SELECTOR_MODAL_BODY","SELECTOR_DATA_DISMISS","SELECTOR_FIXED_CONTENT","SELECTOR_STICKY_CONTENT","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","htmlElement","handleUpdate","modalBody","appendChild","_enforceFocus","transitionComplete","_triggerBackdropTransition","_resetAdjustments","_resetScrollbar","_removeBackdrop","animate","createElement","className","currentTarget","backdropTransitionDuration","callbackRemove","isModalOverflowing","scrollHeight","clientHeight","overflowY","modalTransitionDuration","paddingLeft","paddingRight","round","right","innerWidth","_getScrollbarWidth","actualPadding","calculatedPadding","actualMargin","marginRight","calculatedMargin","padding","margin","scrollDiv","scrollbarWidth","width","clientWidth","uriAttrs","ARIA_ATTRIBUTE_PATTERN","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","attr","allowedAttributeList","attrName","nodeName","nodeValue","regExp","attrRegex","DefaultAllowlist","a","area","b","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","sanitizeHtml","unsafeHtml","allowList","sanitizeFn","domParser","DOMParser","createdDocument","parseFromString","allowlistKeys","elements","el","elName","attributeList","allowedAttributes","innerHTML","CLASS_PREFIX","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","html","fallbackPlacement","customClass","sanitize","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","CLASS_NAME_MODAL","HOVER_STATE_SHOW","HOVER_STATE_OUT","SELECTOR_TOOLTIP_INNER","TRIGGER_HOVER","TRIGGER_FOCUS","TRIGGER_CLICK","TRIGGER_MANUAL","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","_hideModalHandler","isWithContent","shadowRoot","isInTheDom","ownerDocument","tipId","setContent","attachment","_getAttachment","_addAttachmentClass","_getContainer","_fixTransition","prevHoverState","_cleanTipClass","getTitle","setElementContent","content","textContent","updateAttachment","defaultBsConfig","behavior","arrow","onCreate","originalPlacement","_handlePopperPlacementChange","onUpdate","triggers","eventIn","eventOut","_fixTitle","originalTitleType","dataAttributes","dataAttr","tabClass","map","token","tClass","popperData","popper","initConfigAnimation","SELECTOR_TITLE","SELECTOR_CONTENT","Popover","_getContent","method","EVENT_ACTIVATE","EVENT_SCROLL","CLASS_NAME_DROPDOWN_ITEM","SELECTOR_DATA_SPY","SELECTOR_NAV_LIST_GROUP","SELECTOR_NAV_LINKS","SELECTOR_NAV_ITEMS","SELECTOR_LIST_ITEMS","SELECTOR_DROPDOWN","SELECTOR_DROPDOWN_TOGGLE","METHOD_OFFSET","METHOD_POSITION","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targets","targetSelector","targetBCR","height","item","sort","pageYOffset","max","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","isActiveTarget","queries","link","join","listGroup","navItem","node","spy","CLASS_NAME_DROPDOWN_MENU","SELECTOR_ACTIVE_UL","SELECTOR_DROPDOWN_ACTIVE_CHILD","Tab","listElement","itemSelector","activeElements","active","_transitionComplete","dropdownChild","dropdownElement","dropdown","CLASS_NAME_HIDE","CLASS_NAME_SHOWING","autohide","Toast","_clearTimeout"],"mappings":"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,GAAG,SAAS,CAAC,aAAa,CAAC,IAAI,cAAc,GAAG,MAAM,CAAC,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5H;EACA,EAAE,IAAI,CAAC,SAAS,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC;EACnD,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;AAC9C;EACA,EAAE,OAAO,IAAI,CAAC;EACd,CAAC;AACD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,SAAS,GAAG;EAChB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,KAAK,EAAE;EACT;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,KAAK;EACb,GAAG;AACH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,MAAM,EAAE;EACV;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,MAAM;EACd;EACA;EACA;EACA,IAAI,MAAM,EAAE,CAAC;EACb,GAAG;AACH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,eAAe,EAAE;EACnB;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,eAAe;EACvB;EACA;EACA;EACA;EACA;EACA,IAAI,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC;EAChD;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,OAAO,EAAE,CAAC;EACd;EACA;EACA;EACA;EACA;EACA,IAAI,iBAAiB,EAAE,cAAc;EACrC,GAAG;AACH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,YAAY,EAAE;EAChB;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,YAAY;EACpB,GAAG;AACH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,KAAK,EAAE;EACT;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,KAAK;EACb;EACA,IAAI,OAAO,EAAE,WAAW;EACxB,GAAG;AACH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,IAAI,EAAE;EACR;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,IAAI;EACZ;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,QAAQ,EAAE,MAAM;EACpB;EACA;EACA;EACA;EACA,IAAI,OAAO,EAAE,CAAC;EACd;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,iBAAiB,EAAE,UAAU;EACjC;EACA;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,cAAc,EAAE,KAAK;EACzB;EACA;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,uBAAuB,EAAE,KAAK;EAClC,GAAG;AACH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,KAAK,EAAE;EACT;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,KAAK;EAClB;EACA,IAAI,EAAE,EAAE,KAAK;EACb,GAAG;AACH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,IAAI,EAAE;EACR;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,IAAI;EACZ,GAAG;AACH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,YAAY,EAAE;EAChB;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,YAAY;EACpB;EACA;EACA;EACA;EACA;EACA,IAAI,eAAe,EAAE,IAAI;EACzB;EACA;EACA;EACA;EACA;EACA,IAAI,CAAC,EAAE,QAAQ;EACf;EACA;EACA;EACA;EACA;EACA,IAAI,CAAC,EAAE,OAAO;EACd,GAAG;AACH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,UAAU,EAAE;EACd;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,UAAU;EAClB;EACA,IAAI,MAAM,EAAE,gBAAgB;EAC5B;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,eAAe,EAAE,SAAS;EAC9B,GAAG;EACH,CAAC,CAAC;AACF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,QAAQ,GAAG;EACf;EACA;EACA;EACA;EACA,EAAE,SAAS,EAAE,QAAQ;AACrB;EACA;EACA;EACA;EACA;EACA,EAAE,aAAa,EAAE,KAAK;AACtB;EACA;EACA;EACA;EACA;EACA,EAAE,aAAa,EAAE,IAAI;AACrB;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,eAAe,EAAE,KAAK;AACxB;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,QAAQ,EAAE,SAAS,QAAQ,GAAG,EAAE;AAClC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,QAAQ,EAAE,SAAS,QAAQ,GAAG,EAAE;AAClC;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,SAAS,EAAE,SAAS;EACtB,CAAC,CAAC;AACF;EACA;EACA;EACA;EACA;AACA;EACA;EACA;EACA;EACA;AACA;EACA;EACA;EACA,IAAI,MAAM,GAAG,YAAY;EACzB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,SAAS,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE;EACrC,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC;AACrB;EACA,IAAI,IAAI,OAAO,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;EACzF,IAAI,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACjC;EACA,IAAI,IAAI,CAAC,cAAc,GAAG,YAAY;EACtC,MAAM,OAAO,qBAAqB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;EACjD,KAAK,CAAC;AACN;EACA;EACA,IAAI,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACnD;EACA;EACA,IAAI,IAAI,CAAC,OAAO,GAAGA,UAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC1D;EACA;EACA,IAAI,IAAI,CAAC,KAAK,GAAG;EACjB,MAAM,WAAW,EAAE,KAAK;EACxB,MAAM,SAAS,EAAE,KAAK;EACtB,MAAM,aAAa,EAAE,EAAE;EACvB,KAAK,CAAC;AACN;EACA;EACA,IAAI,IAAI,CAAC,SAAS,GAAG,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;EAC9E,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;AAC/D;EACA;EACA,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,EAAE,CAAC;EAChC,IAAI,MAAM,CAAC,IAAI,CAACA,UAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE;EACpG,MAAM,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,GAAGA,UAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;EAC5I,KAAK,CAAC,CAAC;AACP;EACA;EACA,IAAI,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE;EAC7E,MAAM,OAAOA,UAAQ,CAAC;EACtB,QAAQ,IAAI,EAAE,IAAI;EAClB,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;EACxC,KAAK,CAAC;EACN;EACA,KAAK,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE;EAC1B,MAAM,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;EAC/B,KAAK,CAAC,CAAC;AACP;EACA;EACA;EACA;EACA;EACA,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,eAAe,EAAE;EACtD,MAAM,IAAI,eAAe,CAAC,OAAO,IAAI,UAAU,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE;EACzE,QAAQ,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;EAC3G,OAAO;EACP,KAAK,CAAC,CAAC;AACP;EACA;EACA,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;AAClB;EACA,IAAI,IAAI,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;EACnD,IAAI,IAAI,aAAa,EAAE;EACvB;EACA,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;EAClC,KAAK;AACL;EACA,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,aAAa,CAAC;EAC7C,GAAG;AACH;EACA;EACA;AACA;AACA;EACA,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC;EACvB,IAAI,GAAG,EAAE,QAAQ;EACjB,IAAI,KAAK,EAAE,SAAS,SAAS,GAAG;EAChC,MAAM,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;EAC/B,KAAK;EACL,GAAG,EAAE;EACL,IAAI,GAAG,EAAE,SAAS;EAClB,IAAI,KAAK,EAAE,SAAS,UAAU,GAAG;EACjC,MAAM,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;EAChC,KAAK;EACL,GAAG,EAAE;EACL,IAAI,GAAG,EAAE,sBAAsB;EAC/B,IAAI,KAAK,EAAE,SAAS,uBAAuB,GAAG;EAC9C,MAAM,OAAO,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;EAC7C,KAAK;EACL,GAAG,EAAE;EACL,IAAI,GAAG,EAAE,uBAAuB;EAChC,IAAI,KAAK,EAAE,SAAS,wBAAwB,GAAG;EAC/C,MAAM,OAAO,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;EAC9C,KAAK;AACL;EACA;EACA;EACA;EACA;EACA;AACA;AACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACA;EACA,GAAG,CAAC,CAAC,CAAC;EACN,EAAE,OAAO,MAAM,CAAC;EAChB,CAAC,EAAE,CAAC;AACJ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACA;AACA;EACA,MAAM,CAAC,KAAK,GAAG,CAAC,OAAO,MAAM,KAAK,WAAW,GAAG,MAAM,GAAG,MAAM,EAAE,WAAW,CAAC;EAC7E,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC;EAC/B,MAAM,CAAC,QAAQ,GAAG,QAAQ;;EC5hF1B;EACA;EACA;EACA;EACA;;EAEA,IAAMhQ,MAAI,GAAG,UAAb;EACA,IAAMH,UAAQ,GAAG,aAAjB;EACA,IAAMI,WAAS,SAAOJ,UAAtB;EACA,IAAMK,cAAY,GAAG,WAArB;EAEA,IAAM+P,UAAU,GAAG,QAAnB;EACA,IAAMC,SAAS,GAAG,OAAlB;EACA,IAAMC,OAAO,GAAG,KAAhB;EACA,IAAMC,YAAY,GAAG,SAArB;EACA,IAAMC,cAAc,GAAG,WAAvB;EACA,IAAMC,kBAAkB,GAAG,CAA3B;;EAEA,IAAMC,cAAc,GAAG,IAAIzY,MAAJ,CAAcsY,YAAd,SAA8BC,cAA9B,SAAgDJ,UAAhD,CAAvB;EAEA,IAAM5C,YAAU,YAAUpN,WAA1B;EACA,IAAMqN,cAAY,cAAYrN,WAA9B;EACA,IAAMkN,YAAU,YAAUlN,WAA1B;EACA,IAAMmN,aAAW,aAAWnN,WAA5B;EACA,IAAMuQ,WAAW,aAAWvQ,WAA5B;EACA,IAAMK,sBAAoB,aAAWL,WAAX,GAAuBC,cAAjD;EACA,IAAMuQ,sBAAsB,eAAaxQ,WAAb,GAAyBC,cAArD;EACA,IAAMwQ,oBAAoB,aAAWzQ,WAAX,GAAuBC,cAAjD;EAEA,IAAMyQ,mBAAmB,GAAG,UAA5B;EACA,IAAMpD,iBAAe,GAAG,MAAxB;EACA,IAAMqD,iBAAiB,GAAG,QAA1B;EACA,IAAMC,kBAAkB,GAAG,SAA3B;EACA,IAAMC,oBAAoB,GAAG,WAA7B;EACA,IAAMC,kBAAkB,GAAG,mBAA3B;EACA,IAAMC,iBAAiB,GAAG,QAA1B;EACA,IAAMC,0BAA0B,GAAG,iBAAnC;EAEA,IAAMlP,sBAAoB,GAAG,6BAA7B;EACA,IAAMmP,mBAAmB,GAAG,gBAA5B;EACA,IAAMC,aAAa,GAAG,gBAAtB;EACA,IAAMC,mBAAmB,GAAG,aAA5B;EACA,IAAMC,sBAAsB,GAAG,6DAA/B;EAEA,IAAMC,aAAa,GAAG7X,KAAK,GAAG,SAAH,GAAe,WAA1C;EACA,IAAM8X,gBAAgB,GAAG9X,KAAK,GAAG,WAAH,GAAiB,SAA/C;EACA,IAAM+X,gBAAgB,GAAG/X,KAAK,GAAG,YAAH,GAAkB,cAAhD;EACA,IAAMgY,mBAAmB,GAAGhY,KAAK,GAAG,cAAH,GAAoB,YAArD;EACA,IAAMiY,eAAe,GAAGjY,KAAK,GAAG,YAAH,GAAkB,aAA/C;EACA,IAAMkY,cAAc,GAAGlY,KAAK,GAAG,aAAH,GAAmB,YAA/C;EAEA,IAAM4L,SAAO,GAAG;EACdlC,EAAAA,MAAM,EAAE,CADM;EAEdyO,EAAAA,IAAI,EAAE,IAFQ;EAGdC,EAAAA,QAAQ,EAAE,cAHI;EAIdC,EAAAA,SAAS,EAAE,QAJG;EAKdvZ,EAAAA,OAAO,EAAE,SALK;EAMdwZ,EAAAA,YAAY,EAAE;EANA,CAAhB;EASA,IAAMnM,aAAW,GAAG;EAClBzC,EAAAA,MAAM,EAAE,0BADU;EAElByO,EAAAA,IAAI,EAAE,SAFY;EAGlBC,EAAAA,QAAQ,EAAE,kBAHQ;EAIlBC,EAAAA,SAAS,EAAE,kBAJO;EAKlBvZ,EAAAA,OAAO,EAAE,QALS;EAMlBwZ,EAAAA,YAAY,EAAE;EANI,CAApB;EASA;EACA;EACA;EACA;EACA;;MAEMC;;;EACJ,oBAAY7c,OAAZ,EAAqBkC,MAArB,EAA6B;EAAA;;EAC3B,sCAAMlC,OAAN;EAEA,UAAK8c,OAAL,GAAe,IAAf;EACA,UAAKzJ,OAAL,GAAe,MAAKC,UAAL,CAAgBpR,MAAhB,CAAf;EACA,UAAK6a,KAAL,GAAa,MAAKC,eAAL,EAAb;EACA,UAAKC,SAAL,GAAiB,MAAKC,aAAL,EAAjB;;EAEA,UAAKrJ,kBAAL;;EAR2B;EAS5B;;;;;EAgBD;WAEA/G,SAAA,kBAAS;EACP,QAAI,KAAKtC,QAAL,CAAc2S,QAAd,IAA0B,KAAK3S,QAAL,CAAcuB,SAAd,CAAwBE,QAAxB,CAAiCuP,mBAAjC,CAA9B,EAAqF;EACnF;EACD;;EAED,QAAM4B,QAAQ,GAAG,KAAK5S,QAAL,CAAcuB,SAAd,CAAwBE,QAAxB,CAAiCmM,iBAAjC,CAAjB;;EAEAyE,IAAAA,QAAQ,CAACQ,UAAT;;EAEA,QAAID,QAAJ,EAAc;EACZ;EACD;;EAED,SAAK7D,IAAL;EACD;;WAEDA,OAAA,gBAAO;EACL,QAAI,KAAK/O,QAAL,CAAc2S,QAAd,IAA0B,KAAK3S,QAAL,CAAcuB,SAAd,CAAwBE,QAAxB,CAAiCuP,mBAAjC,CAA1B,IAAmF,KAAKuB,KAAL,CAAWhR,SAAX,CAAqBE,QAArB,CAA8BmM,iBAA9B,CAAvF,EAAuI;EACrI;EACD;;EAED,QAAML,MAAM,GAAG8E,QAAQ,CAACS,oBAAT,CAA8B,KAAK9S,QAAnC,CAAf;EACA,QAAM8L,aAAa,GAAG;EACpBA,MAAAA,aAAa,EAAE,KAAK9L;EADA,KAAtB;EAIA,QAAM+S,SAAS,GAAG7W,YAAY,CAAC2C,OAAb,CAAqB,KAAKmB,QAA1B,EAAoCwN,YAApC,EAAgD1B,aAAhD,CAAlB;;EAEA,QAAIiH,SAAS,CAAC5T,gBAAd,EAAgC;EAC9B;EACD,KAdI;;;EAiBL,QAAI,CAAC,KAAKsT,SAAV,EAAqB;EACnB,UAAI,OAAOO,MAAP,KAAkB,WAAtB,EAAmC;EACjC,cAAM,IAAI9F,SAAJ,CAAc,+DAAd,CAAN;EACD;;EAED,UAAI+F,gBAAgB,GAAG,KAAKjT,QAA5B;;EAEA,UAAI,KAAK6I,OAAL,CAAasJ,SAAb,KAA2B,QAA/B,EAAyC;EACvCc,QAAAA,gBAAgB,GAAG1F,MAAnB;EACD,OAFD,MAEO,IAAI1W,SAAS,CAAC,KAAKgS,OAAL,CAAasJ,SAAd,CAAb,EAAuC;EAC5Cc,QAAAA,gBAAgB,GAAG,KAAKpK,OAAL,CAAasJ,SAAhC,CAD4C;;EAI5C,YAAI,OAAO,KAAKtJ,OAAL,CAAasJ,SAAb,CAAuBpC,MAA9B,KAAyC,WAA7C,EAA0D;EACxDkD,UAAAA,gBAAgB,GAAG,KAAKpK,OAAL,CAAasJ,SAAb,CAAuB,CAAvB,CAAnB;EACD;EACF,OAhBkB;EAmBnB;EACA;;;EACA,UAAI,KAAKtJ,OAAL,CAAaqJ,QAAb,KAA0B,cAA9B,EAA8C;EAC5C3E,QAAAA,MAAM,CAAChM,SAAP,CAAiB2J,GAAjB,CAAqBoG,0BAArB;EACD;;EAED,WAAKgB,OAAL,GAAe,IAAIU,MAAJ,CAAWC,gBAAX,EAA6B,KAAKV,KAAlC,EAAyC,KAAKW,gBAAL,EAAzC,CAAf;EACD,KA3CI;EA8CL;EACA;EACA;;;EACA,QAAI,kBAAkB7d,QAAQ,CAAC0D,eAA3B,IACF,CAACwU,MAAM,CAACjM,OAAP,CAAemQ,mBAAf,CADH,EACwC;EAAA;;EACtC,kBAAGnN,MAAH,aAAajP,QAAQ,CAACoE,IAAT,CAAciL,QAA3B,EACG5M,OADH,CACW,UAAAyW,IAAI;EAAA,eAAIrS,YAAY,CAACmC,EAAb,CAAgBkQ,IAAhB,EAAsB,WAAtB,EAAmC,IAAnC,EAAyCnV,IAAI,EAA7C,CAAJ;EAAA,OADf;EAED;;EAED,SAAK4G,QAAL,CAAcmT,KAAd;;EACA,SAAKnT,QAAL,CAAcuC,YAAd,CAA2B,eAA3B,EAA4C,IAA5C;;EAEA,SAAKgQ,KAAL,CAAWhR,SAAX,CAAqBe,MAArB,CAA4BsL,iBAA5B;;EACA,SAAK5N,QAAL,CAAcuB,SAAd,CAAwBe,MAAxB,CAA+BsL,iBAA/B;;EACA1R,IAAAA,YAAY,CAAC2C,OAAb,CAAqB0O,MAArB,EAA6BE,aAA7B,EAA0C3B,aAA1C;EACD;;WAEDgD,OAAA,gBAAO;EACL,QAAI,KAAK9O,QAAL,CAAc2S,QAAd,IAA0B,KAAK3S,QAAL,CAAcuB,SAAd,CAAwBE,QAAxB,CAAiCuP,mBAAjC,CAA1B,IAAmF,CAAC,KAAKuB,KAAL,CAAWhR,SAAX,CAAqBE,QAArB,CAA8BmM,iBAA9B,CAAxF,EAAwI;EACtI;EACD;;EAED,QAAML,MAAM,GAAG8E,QAAQ,CAACS,oBAAT,CAA8B,KAAK9S,QAAnC,CAAf;EACA,QAAM8L,aAAa,GAAG;EACpBA,MAAAA,aAAa,EAAE,KAAK9L;EADA,KAAtB;EAIA,QAAMoT,SAAS,GAAGlX,YAAY,CAAC2C,OAAb,CAAqB0O,MAArB,EAA6BG,YAA7B,EAAyC5B,aAAzC,CAAlB;;EAEA,QAAIsH,SAAS,CAACjU,gBAAd,EAAgC;EAC9B;EACD;;EAED,QAAI,KAAKmT,OAAT,EAAkB;EAChB,WAAKA,OAAL,CAAae,OAAb;EACD;;EAED,SAAKd,KAAL,CAAWhR,SAAX,CAAqBe,MAArB,CAA4BsL,iBAA5B;;EACA,SAAK5N,QAAL,CAAcuB,SAAd,CAAwBe,MAAxB,CAA+BsL,iBAA/B;;EACA1R,IAAAA,YAAY,CAAC2C,OAAb,CAAqB0O,MAArB,EAA6BI,cAA7B,EAA2C7B,aAA3C;EACD;;WAED3L,UAAA,mBAAU;EACR,6BAAMA,OAAN;;EACAjE,IAAAA,YAAY,CAACC,GAAb,CAAiB,KAAK6D,QAAtB,EAAgCM,WAAhC;EACA,SAAKiS,KAAL,GAAa,IAAb;;EACA,QAAI,KAAKD,OAAT,EAAkB;EAChB,WAAKA,OAAL,CAAae,OAAb;;EACA,WAAKf,OAAL,GAAe,IAAf;EACD;EACF;;WAEDgB,SAAA,kBAAS;EACP,SAAKb,SAAL,GAAiB,KAAKC,aAAL,EAAjB;;EACA,QAAI,KAAKJ,OAAT,EAAkB;EAChB,WAAKA,OAAL,CAAaiB,cAAb;EACD;EACF;;;WAIDlK,qBAAA,8BAAqB;EAAA;;EACnBnN,IAAAA,YAAY,CAACmC,EAAb,CAAgB,KAAK2B,QAArB,EAA+B6Q,WAA/B,EAA4C,UAAA9U,KAAK,EAAI;EACnDA,MAAAA,KAAK,CAAC8D,cAAN;EACA9D,MAAAA,KAAK,CAACyX,eAAN;;EACA,MAAA,MAAI,CAAClR,MAAL;EACD,KAJD;EAKD;;WAEDwG,aAAA,oBAAWpR,MAAX,EAAmB;EACjBA,IAAAA,MAAM,gBACD,KAAKuI,WAAL,CAAiByF,OADhB,EAED7C,WAAW,CAACI,iBAAZ,CAA8B,KAAKjD,QAAnC,CAFC,EAGDtI,MAHC,CAAN;EAMAF,IAAAA,eAAe,CAAC6I,MAAD,EAAO3I,MAAP,EAAe,KAAKuI,WAAL,CAAiBgG,WAAhC,CAAf;EAEA,WAAOvO,MAAP;EACD;;WAED8a,kBAAA,2BAAkB;EAChB,WAAOrO,cAAc,CAACiB,IAAf,CAAoB,KAAKpF,QAAzB,EAAmCwR,aAAnC,EAAkD,CAAlD,CAAP;EACD;;WAEDiC,gBAAA,yBAAgB;EACd,QAAMC,cAAc,GAAG,KAAK1T,QAAL,CAAcvH,UAArC;EACA,QAAIkb,SAAS,GAAG9B,gBAAhB,CAFc;;EAKd,QAAI6B,cAAc,CAACnS,SAAf,CAAyBE,QAAzB,CAAkCwP,iBAAlC,CAAJ,EAA0D;EACxD0C,MAAAA,SAAS,GAAG,KAAKpB,KAAL,CAAWhR,SAAX,CAAqBE,QAArB,CAA8B2P,kBAA9B,IACVQ,gBADU,GAEVD,aAFF;EAGD,KAJD,MAIO,IAAI+B,cAAc,CAACnS,SAAf,CAAyBE,QAAzB,CAAkCyP,kBAAlC,CAAJ,EAA2D;EAChEyC,MAAAA,SAAS,GAAG5B,eAAZ;EACD,KAFM,MAEA,IAAI2B,cAAc,CAACnS,SAAf,CAAyBE,QAAzB,CAAkC0P,oBAAlC,CAAJ,EAA6D;EAClEwC,MAAAA,SAAS,GAAG3B,cAAZ;EACD,KAFM,MAEA,IAAI,KAAKO,KAAL,CAAWhR,SAAX,CAAqBE,QAArB,CAA8B2P,kBAA9B,CAAJ,EAAuD;EAC5DuC,MAAAA,SAAS,GAAG7B,mBAAZ;EACD;;EAED,WAAO6B,SAAP;EACD;;WAEDjB,gBAAA,yBAAgB;EACd,WAAO3U,OAAO,CAAC,KAAKiC,QAAL,CAAcsB,OAAd,OAA0B+P,iBAA1B,CAAD,CAAd;EACD;;WAEDuC,aAAA,sBAAa;EAAA;;EACX,QAAMpQ,MAAM,GAAG,EAAf;;EAEA,QAAI,OAAO,KAAKqF,OAAL,CAAarF,MAApB,KAA+B,UAAnC,EAA+C;EAC7CA,MAAAA,MAAM,CAAC3H,EAAP,GAAY,UAAAxB,IAAI,EAAI;EAClBA,QAAAA,IAAI,CAACwZ,OAAL,gBACKxZ,IAAI,CAACwZ,OADV,EAEM,MAAI,CAAChL,OAAL,CAAarF,MAAb,CAAoBnJ,IAAI,CAACwZ,OAAzB,EAAkC,MAAI,CAAC7T,QAAvC,KAAoD,EAF1D;EAKA,eAAO3F,IAAP;EACD,OAPD;EAQD,KATD,MASO;EACLmJ,MAAAA,MAAM,CAACA,MAAP,GAAgB,KAAKqF,OAAL,CAAarF,MAA7B;EACD;;EAED,WAAOA,MAAP;EACD;;WAED0P,mBAAA,4BAAmB;EACjB,QAAMd,YAAY,GAAG;EACnBuB,MAAAA,SAAS,EAAE,KAAKF,aAAL,EADQ;EAEnBK,MAAAA,SAAS,EAAE;EACTtQ,QAAAA,MAAM,EAAE,KAAKoQ,UAAL,EADC;EAET3B,QAAAA,IAAI,EAAE;EACJ8B,UAAAA,OAAO,EAAE,KAAKlL,OAAL,CAAaoJ;EADlB,SAFG;EAKT+B,QAAAA,eAAe,EAAE;EACfC,UAAAA,iBAAiB,EAAE,KAAKpL,OAAL,CAAaqJ;EADjB;EALR;EAFQ,KAArB,CADiB;;EAejB,QAAI,KAAKrJ,OAAL,CAAajQ,OAAb,KAAyB,QAA7B,EAAuC;EACrCwZ,MAAAA,YAAY,CAAC0B,SAAb,CAAuBI,UAAvB,GAAoC;EAClCH,QAAAA,OAAO,EAAE;EADyB,OAApC;EAGD;;EAED,wBACK3B,YADL,EAEK,KAAKvJ,OAAL,CAAauJ,YAFlB;EAID;;;aAIM+B,oBAAP,2BAAyB3e,OAAzB,EAAkCkC,MAAlC,EAA0C;EACxC,QAAI2C,IAAI,GAAGK,IAAI,CAACG,OAAL,CAAarF,OAAb,EAAsB0K,UAAtB,CAAX;;EACA,QAAM2I,OAAO,GAAG,OAAOnR,MAAP,KAAkB,QAAlB,GAA6BA,MAA7B,GAAsC,IAAtD;;EAEA,QAAI,CAAC2C,IAAL,EAAW;EACTA,MAAAA,IAAI,GAAG,IAAIgY,QAAJ,CAAa7c,OAAb,EAAsBqT,OAAtB,CAAP;EACD;;EAED,QAAI,OAAOnR,MAAP,KAAkB,QAAtB,EAAgC;EAC9B,UAAI,OAAO2C,IAAI,CAAC3C,MAAD,CAAX,KAAwB,WAA5B,EAAyC;EACvC,cAAM,IAAIwV,SAAJ,wBAAkCxV,MAAlC,QAAN;EACD;;EAED2C,MAAAA,IAAI,CAAC3C,MAAD,CAAJ;EACD;EACF;;aAEMkK,kBAAP,yBAAuBlK,MAAvB,EAA+B;EAC7B,WAAO,KAAKmK,IAAL,CAAU,YAAY;EAC3BwQ,MAAAA,QAAQ,CAAC8B,iBAAT,CAA2B,IAA3B,EAAiCzc,MAAjC;EACD,KAFM,CAAP;EAGD;;aAEMmb,aAAP,oBAAkB9W,KAAlB,EAAyB;EACvB,QAAIA,KAAK,KAAKA,KAAK,CAACyG,MAAN,KAAiBmO,kBAAjB,IAAwC5U,KAAK,CAACK,IAAN,KAAe,OAAf,IAA0BL,KAAK,CAAC3B,GAAN,KAAcoW,OAArF,CAAT,EAAyG;EACvG;EACD;;EAED,QAAM4D,OAAO,GAAGjQ,cAAc,CAACE,IAAf,CAAoBjC,sBAApB,CAAhB;;EAEA,SAAK,IAAI1F,CAAC,GAAG,CAAR,EAAWM,GAAG,GAAGoX,OAAO,CAACzX,MAA9B,EAAsCD,CAAC,GAAGM,GAA1C,EAA+CN,CAAC,EAAhD,EAAoD;EAClD,UAAM6Q,MAAM,GAAG8E,QAAQ,CAACS,oBAAT,CAA8BsB,OAAO,CAAC1X,CAAD,CAArC,CAAf;EACA,UAAM2X,OAAO,GAAG3Z,IAAI,CAACG,OAAL,CAAauZ,OAAO,CAAC1X,CAAD,CAApB,EAAyBwD,UAAzB,CAAhB;EACA,UAAM4L,aAAa,GAAG;EACpBA,QAAAA,aAAa,EAAEsI,OAAO,CAAC1X,CAAD;EADF,OAAtB;;EAIA,UAAIX,KAAK,IAAIA,KAAK,CAACK,IAAN,KAAe,OAA5B,EAAqC;EACnC0P,QAAAA,aAAa,CAACwI,UAAd,GAA2BvY,KAA3B;EACD;;EAED,UAAI,CAACsY,OAAL,EAAc;EACZ;EACD;;EAED,UAAME,YAAY,GAAGF,OAAO,CAAC9B,KAA7B;;EACA,UAAI,CAAC6B,OAAO,CAAC1X,CAAD,CAAP,CAAW6E,SAAX,CAAqBE,QAArB,CAA8BmM,iBAA9B,CAAL,EAAqD;EACnD;EACD;;EAED,UAAI7R,KAAK,KAAMA,KAAK,CAACK,IAAN,KAAe,OAAf,IACX,kBAAkBhE,IAAlB,CAAuB2D,KAAK,CAACU,MAAN,CAAa0O,OAApC,CADU,IAETpP,KAAK,CAACK,IAAN,KAAe,OAAf,IAA0BL,KAAK,CAAC3B,GAAN,KAAcoW,OAFpC,CAAL,IAGA+D,YAAY,CAAC9S,QAAb,CAAsB1F,KAAK,CAACU,MAA5B,CAHJ,EAGyC;EACvC;EACD;;EAED,UAAM2W,SAAS,GAAGlX,YAAY,CAAC2C,OAAb,CAAqB0O,MAArB,EAA6BG,YAA7B,EAAyC5B,aAAzC,CAAlB;;EACA,UAAIsH,SAAS,CAACjU,gBAAd,EAAgC;EAC9B;EACD,OA9BiD;EAiClD;;;EACA,UAAI,kBAAkB9J,QAAQ,CAAC0D,eAA/B,EAAgD;EAAA;;EAC9C,qBAAGuL,MAAH,cAAajP,QAAQ,CAACoE,IAAT,CAAciL,QAA3B,EACG5M,OADH,CACW,UAAAyW,IAAI;EAAA,iBAAIrS,YAAY,CAACC,GAAb,CAAiBoS,IAAjB,EAAuB,WAAvB,EAAoC,IAApC,EAA0CnV,IAAI,EAA9C,CAAJ;EAAA,SADf;EAED;;EAEDgb,MAAAA,OAAO,CAAC1X,CAAD,CAAP,CAAW6F,YAAX,CAAwB,eAAxB,EAAyC,OAAzC;;EAEA,UAAI8R,OAAO,CAAC/B,OAAZ,EAAqB;EACnB+B,QAAAA,OAAO,CAAC/B,OAAR,CAAgBe,OAAhB;EACD;;EAEDkB,MAAAA,YAAY,CAAChT,SAAb,CAAuBC,MAAvB,CAA8BoM,iBAA9B;EACAwG,MAAAA,OAAO,CAAC1X,CAAD,CAAP,CAAW6E,SAAX,CAAqBC,MAArB,CAA4BoM,iBAA5B;EACA1R,MAAAA,YAAY,CAAC2C,OAAb,CAAqB0O,MAArB,EAA6BI,cAA7B,EAA2C7B,aAA3C;EACD;EACF;;aAEMgH,uBAAP,8BAA4Btd,OAA5B,EAAqC;EACnC,WAAOO,sBAAsB,CAACP,OAAD,CAAtB,IAAmCA,OAAO,CAACiD,UAAlD;EACD;;aAEM+b,wBAAP,+BAA6BzY,KAA7B,EAAoC;EAClC;EACA;EACA;EACA;EACA;EACA;EACA;EACA,QAAI,kBAAkB3D,IAAlB,CAAuB2D,KAAK,CAACU,MAAN,CAAa0O,OAApC,IACFpP,KAAK,CAAC3B,GAAN,KAAcmW,SAAd,IAA4BxU,KAAK,CAAC3B,GAAN,KAAckW,UAAd,KAC1BvU,KAAK,CAAC3B,GAAN,KAAcsW,cAAd,IAAgC3U,KAAK,CAAC3B,GAAN,KAAcqW,YAA/C,IACC1U,KAAK,CAACU,MAAN,CAAa6E,OAAb,CAAqBkQ,aAArB,CAF0B,CAD1B,GAIF,CAACZ,cAAc,CAACxY,IAAf,CAAoB2D,KAAK,CAAC3B,GAA1B,CAJH,EAImC;EACjC;EACD;;EAED2B,IAAAA,KAAK,CAAC8D,cAAN;EACA9D,IAAAA,KAAK,CAACyX,eAAN;;EAEA,QAAI,KAAKb,QAAL,IAAiB,KAAKpR,SAAL,CAAeE,QAAf,CAAwBuP,mBAAxB,CAArB,EAAmE;EACjE;EACD;;EAED,QAAMzD,MAAM,GAAG8E,QAAQ,CAACS,oBAAT,CAA8B,IAA9B,CAAf;EACA,QAAMF,QAAQ,GAAG,KAAKrR,SAAL,CAAeE,QAAf,CAAwBmM,iBAAxB,CAAjB;;EAEA,QAAI7R,KAAK,CAAC3B,GAAN,KAAckW,UAAlB,EAA8B;EAC5B,UAAM9N,MAAM,GAAG,KAAK4B,OAAL,CAAahC,sBAAb,IAAqC,IAArC,GAA4C+B,cAAc,CAACc,IAAf,CAAoB,IAApB,EAA0B7C,sBAA1B,EAAgD,CAAhD,CAA3D;EACAI,MAAAA,MAAM,CAAC2Q,KAAP;EACAd,MAAAA,QAAQ,CAACQ,UAAT;EACA;EACD;;EAED,QAAI,CAACD,QAAD,IAAa7W,KAAK,CAAC3B,GAAN,KAAcmW,SAA/B,EAA0C;EACxC8B,MAAAA,QAAQ,CAACQ,UAAT;EACA;EACD;;EAED,QAAM4B,KAAK,GAAGtQ,cAAc,CAACE,IAAf,CAAoBqN,sBAApB,EAA4CnE,MAA5C,EAAoDnK,MAApD,CAA2D7K,SAA3D,CAAd;;EAEA,QAAI,CAACkc,KAAK,CAAC9X,MAAX,EAAmB;EACjB;EACD;;EAED,QAAIqN,KAAK,GAAGyK,KAAK,CAACrJ,OAAN,CAAcrP,KAAK,CAACU,MAApB,CAAZ,CA5CkC;;EA+ClC,QAAIV,KAAK,CAAC3B,GAAN,KAAcqW,YAAd,IAA8BzG,KAAK,GAAG,CAA1C,EAA6C;EAC3CA,MAAAA,KAAK;EACN,KAjDiC;;;EAoDlC,QAAIjO,KAAK,CAAC3B,GAAN,KAAcsW,cAAd,IAAgC1G,KAAK,GAAGyK,KAAK,CAAC9X,MAAN,GAAe,CAA3D,EAA8D;EAC5DqN,MAAAA,KAAK;EACN,KAtDiC;;;EAyDlCA,IAAAA,KAAK,GAAGA,KAAK,KAAK,CAAC,CAAX,GAAe,CAAf,GAAmBA,KAA3B;EAEAyK,IAAAA,KAAK,CAACzK,KAAD,CAAL,CAAamJ,KAAb;EACD;;;;0BA1XoB;EACnB,aAAOzN,SAAP;EACD;;;0BAEwB;EACvB,aAAOO,aAAP;EACD;;;0BAEqB;EACpB,aAAO/F,UAAP;EACD;;;;IAxBoBH;EA2YvB;EACA;EACA;EACA;EACA;;;EAEA7D,YAAY,CAACmC,EAAb,CAAgBhJ,QAAhB,EAA0Byb,sBAA1B,EAAkD1O,sBAAlD,EAAwEiQ,QAAQ,CAACmC,qBAAjF;EACAtY,YAAY,CAACmC,EAAb,CAAgBhJ,QAAhB,EAA0Byb,sBAA1B,EAAkDU,aAAlD,EAAiEa,QAAQ,CAACmC,qBAA1E;EACAtY,YAAY,CAACmC,EAAb,CAAgBhJ,QAAhB,EAA0BsL,sBAA1B,EAAgD0R,QAAQ,CAACQ,UAAzD;EACA3W,YAAY,CAACmC,EAAb,CAAgBhJ,QAAhB,EAA0B0b,oBAA1B,EAAgDsB,QAAQ,CAACQ,UAAzD;EACA3W,YAAY,CAACmC,EAAb,CAAgBhJ,QAAhB,EAA0BsL,sBAA1B,EAAgDyB,sBAAhD,EAAsE,UAAUrG,KAAV,EAAiB;EACrFA,EAAAA,KAAK,CAAC8D,cAAN;EACA9D,EAAAA,KAAK,CAACyX,eAAN;EACAnB,EAAAA,QAAQ,CAAC8B,iBAAT,CAA2B,IAA3B,EAAiC,QAAjC;EACD,CAJD;EAKAjY,YAAY,CAACmC,EAAb,CAAgBhJ,QAAhB,EAA0BsL,sBAA1B,EAAgD4Q,mBAAhD,EAAqE,UAAAtG,CAAC;EAAA,SAAIA,CAAC,CAACuI,eAAF,EAAJ;EAAA,CAAtE;EAEA;EACA;EACA;EACA;EACA;EACA;;EAEA7Z,kBAAkB,CAAC,YAAM;EACvB,MAAMoF,CAAC,GAAGxF,SAAS,EAAnB;EACA;;EACA,MAAIwF,CAAJ,EAAO;EACL,QAAMiD,kBAAkB,GAAGjD,CAAC,CAAClD,EAAF,CAAKwE,MAAL,CAA3B;EACAtB,IAAAA,CAAC,CAAClD,EAAF,CAAKwE,MAAL,IAAagS,QAAQ,CAACzQ,eAAtB;EACA7C,IAAAA,CAAC,CAAClD,EAAF,CAAKwE,MAAL,EAAW4B,WAAX,GAAyBoQ,QAAzB;;EACAtT,IAAAA,CAAC,CAAClD,EAAF,CAAKwE,MAAL,EAAW6B,UAAX,GAAwB,YAAM;EAC5BnD,MAAAA,CAAC,CAAClD,EAAF,CAAKwE,MAAL,IAAa2B,kBAAb;EACA,aAAOqQ,QAAQ,CAACzQ,eAAhB;EACD,KAHD;EAID;EACF,CAZiB,CAAlB;;EC7eA;EACA;EACA;EACA;EACA;;EAEA,IAAMvB,MAAI,GAAG,OAAb;EACA,IAAMH,UAAQ,GAAG,UAAjB;EACA,IAAMI,WAAS,SAAOJ,UAAtB;EACA,IAAMK,cAAY,GAAG,WAArB;EACA,IAAM+P,YAAU,GAAG,QAAnB;EAEA,IAAM5K,SAAO,GAAG;EACdgP,EAAAA,QAAQ,EAAE,IADI;EAEd9O,EAAAA,QAAQ,EAAE,IAFI;EAGduN,EAAAA,KAAK,EAAE;EAHO,CAAhB;EAMA,IAAMlN,aAAW,GAAG;EAClByO,EAAAA,QAAQ,EAAE,kBADQ;EAElB9O,EAAAA,QAAQ,EAAE,SAFQ;EAGlBuN,EAAAA,KAAK,EAAE;EAHW,CAApB;EAMA,IAAMzF,YAAU,YAAUpN,WAA1B;EACA,IAAMqU,oBAAoB,qBAAmBrU,WAA7C;EACA,IAAMqN,cAAY,cAAYrN,WAA9B;EACA,IAAMkN,YAAU,YAAUlN,WAA1B;EACA,IAAMmN,aAAW,aAAWnN,WAA5B;EACA,IAAMsU,aAAa,eAAatU,WAAhC;EACA,IAAMuU,YAAY,cAAYvU,WAA9B;EACA,IAAMwU,mBAAmB,qBAAmBxU,WAA5C;EACA,IAAMyU,qBAAqB,uBAAqBzU,WAAhD;EACA,IAAM0U,qBAAqB,uBAAqB1U,WAAhD;EACA,IAAM2U,uBAAuB,yBAAuB3U,WAApD;EACA,IAAMK,sBAAoB,aAAWL,WAAX,GAAuBC,cAAjD;EAEA,IAAM2U,6BAA6B,GAAG,yBAAtC;EACA,IAAMC,mBAAmB,GAAG,gBAA5B;EACA,IAAMC,eAAe,GAAG,YAAxB;EACA,IAAMC,eAAe,GAAG,MAAxB;EACA,IAAMzH,iBAAe,GAAG,MAAxB;EACA,IAAM0H,iBAAiB,GAAG,cAA1B;EAEA,IAAMC,eAAe,GAAG,eAAxB;EACA,IAAMC,mBAAmB,GAAG,aAA5B;EACA,IAAMpT,sBAAoB,GAAG,0BAA7B;EACA,IAAMqT,qBAAqB,GAAG,2BAA9B;EACA,IAAMC,sBAAsB,GAAG,mDAA/B;EACA,IAAMC,uBAAuB,GAAG,aAAhC;EAEA;EACA;EACA;EACA;EACA;;MAEMC;;;EACJ,iBAAYpgB,OAAZ,EAAqBkC,MAArB,EAA6B;EAAA;;EAC3B,sCAAMlC,OAAN;EAEA,UAAKqT,OAAL,GAAe,MAAKC,UAAL,CAAgBpR,MAAhB,CAAf;EACA,UAAKme,OAAL,GAAe1R,cAAc,CAACM,OAAf,CAAuB8Q,eAAvB,EAAwC/f,OAAxC,CAAf;EACA,UAAKsgB,SAAL,GAAiB,IAAjB;EACA,UAAKC,QAAL,GAAgB,KAAhB;EACA,UAAKC,kBAAL,GAA0B,KAA1B;EACA,UAAKC,oBAAL,GAA4B,KAA5B;EACA,UAAK7H,gBAAL,GAAwB,KAAxB;EACA,UAAK8H,eAAL,GAAuB,CAAvB;EAV2B;EAW5B;;;;;EAYD;WAEA5T,SAAA,gBAAOwJ,aAAP,EAAsB;EACpB,WAAO,KAAKiK,QAAL,GAAgB,KAAKjH,IAAL,EAAhB,GAA8B,KAAKC,IAAL,CAAUjD,aAAV,CAArC;EACD;;WAEDiD,OAAA,cAAKjD,aAAL,EAAoB;EAAA;;EAClB,QAAI,KAAKiK,QAAL,IAAiB,KAAK3H,gBAA1B,EAA4C;EAC1C;EACD;;EAED,QAAI,KAAKpO,QAAL,CAAcuB,SAAd,CAAwBE,QAAxB,CAAiC4T,eAAjC,CAAJ,EAAuD;EACrD,WAAKjH,gBAAL,GAAwB,IAAxB;EACD;;EAED,QAAM2E,SAAS,GAAG7W,YAAY,CAAC2C,OAAb,CAAqB,KAAKmB,QAA1B,EAAoCwN,YAApC,EAAgD;EAChE1B,MAAAA,aAAa,EAAbA;EADgE,KAAhD,CAAlB;;EAIA,QAAI,KAAKiK,QAAL,IAAiBhD,SAAS,CAAC5T,gBAA/B,EAAiD;EAC/C;EACD;;EAED,SAAK4W,QAAL,GAAgB,IAAhB;;EAEA,SAAKI,eAAL;;EACA,SAAKC,aAAL;;EAEA,SAAKC,aAAL;;EAEA,SAAKC,eAAL;;EACA,SAAKC,eAAL;;EAEAra,IAAAA,YAAY,CAACmC,EAAb,CAAgB,KAAK2B,QAArB,EAA+B8U,mBAA/B,EAAoDW,qBAApD,EAA2E,UAAA1Z,KAAK;EAAA,aAAI,MAAI,CAAC+S,IAAL,CAAU/S,KAAV,CAAJ;EAAA,KAAhF;EAEAG,IAAAA,YAAY,CAACmC,EAAb,CAAgB,KAAKwX,OAArB,EAA8BZ,uBAA9B,EAAuD,YAAM;EAC3D/Y,MAAAA,YAAY,CAACoC,GAAb,CAAiB,MAAI,CAAC0B,QAAtB,EAAgCgV,qBAAhC,EAAuD,UAAAjZ,KAAK,EAAI;EAC9D,YAAIA,KAAK,CAACU,MAAN,KAAiB,MAAI,CAACuD,QAA1B,EAAoC;EAClC,UAAA,MAAI,CAACiW,oBAAL,GAA4B,IAA5B;EACD;EACF,OAJD;EAKD,KAND;;EAQA,SAAKO,aAAL,CAAmB;EAAA,aAAM,MAAI,CAACC,YAAL,CAAkB3K,aAAlB,CAAN;EAAA,KAAnB;EACD;;WAEDgD,OAAA,cAAK/S,KAAL,EAAY;EAAA;;EACV,QAAIA,KAAJ,EAAW;EACTA,MAAAA,KAAK,CAAC8D,cAAN;EACD;;EAED,QAAI,CAAC,KAAKkW,QAAN,IAAkB,KAAK3H,gBAA3B,EAA6C;EAC3C;EACD;;EAED,QAAMgF,SAAS,GAAGlX,YAAY,CAAC2C,OAAb,CAAqB,KAAKmB,QAA1B,EAAoC0N,YAApC,CAAlB;;EAEA,QAAI0F,SAAS,CAACjU,gBAAd,EAAgC;EAC9B;EACD;;EAED,SAAK4W,QAAL,GAAgB,KAAhB;;EACA,QAAMW,UAAU,GAAG,KAAK1W,QAAL,CAAcuB,SAAd,CAAwBE,QAAxB,CAAiC4T,eAAjC,CAAnB;;EAEA,QAAIqB,UAAJ,EAAgB;EACd,WAAKtI,gBAAL,GAAwB,IAAxB;EACD;;EAED,SAAKkI,eAAL;;EACA,SAAKC,eAAL;;EAEAra,IAAAA,YAAY,CAACC,GAAb,CAAiB9G,QAAjB,EAA2Buf,aAA3B;;EAEA,SAAK5U,QAAL,CAAcuB,SAAd,CAAwBC,MAAxB,CAA+BoM,iBAA/B;;EAEA1R,IAAAA,YAAY,CAACC,GAAb,CAAiB,KAAK6D,QAAtB,EAAgC8U,mBAAhC;EACA5Y,IAAAA,YAAY,CAACC,GAAb,CAAiB,KAAK0Z,OAAtB,EAA+BZ,uBAA/B;;EAEA,QAAIyB,UAAJ,EAAgB;EACd,UAAMvgB,kBAAkB,GAAGH,gCAAgC,CAAC,KAAKgK,QAAN,CAA3D;EAEA9D,MAAAA,YAAY,CAACoC,GAAb,CAAiB,KAAK0B,QAAtB,EAAgCxL,cAAhC,EAAgD,UAAAuH,KAAK;EAAA,eAAI,MAAI,CAAC4a,UAAL,CAAgB5a,KAAhB,CAAJ;EAAA,OAArD;EACAhF,MAAAA,oBAAoB,CAAC,KAAKiJ,QAAN,EAAgB7J,kBAAhB,CAApB;EACD,KALD,MAKO;EACL,WAAKwgB,UAAL;EACD;EACF;;WAEDxW,UAAA,mBAAU;EACR,KAAClK,MAAD,EAAS,KAAK+J,QAAd,EAAwB,KAAK6V,OAA7B,EACG/d,OADH,CACW,UAAA8e,WAAW;EAAA,aAAI1a,YAAY,CAACC,GAAb,CAAiBya,WAAjB,EAA8BtW,WAA9B,CAAJ;EAAA,KADtB;;EAGA,6BAAMH,OAAN;EAEA;EACJ;EACA;EACA;EACA;;;EACIjE,IAAAA,YAAY,CAACC,GAAb,CAAiB9G,QAAjB,EAA2Buf,aAA3B;EAEA,SAAK/L,OAAL,GAAe,IAAf;EACA,SAAKgN,OAAL,GAAe,IAAf;EACA,SAAKC,SAAL,GAAiB,IAAjB;EACA,SAAKC,QAAL,GAAgB,IAAhB;EACA,SAAKC,kBAAL,GAA0B,IAA1B;EACA,SAAKC,oBAAL,GAA4B,IAA5B;EACA,SAAK7H,gBAAL,GAAwB,IAAxB;EACA,SAAK8H,eAAL,GAAuB,IAAvB;EACD;;WAEDW,eAAA,wBAAe;EACb,SAAKR,aAAL;EACD;;;WAIDvN,aAAA,oBAAWpR,MAAX,EAAmB;EACjBA,IAAAA,MAAM,gBACDgO,SADC,EAEDhO,MAFC,CAAN;EAIAF,IAAAA,eAAe,CAAC6I,MAAD,EAAO3I,MAAP,EAAeuO,aAAf,CAAf;EACA,WAAOvO,MAAP;EACD;;WAED+e,eAAA,sBAAa3K,aAAb,EAA4B;EAAA;;EAC1B,QAAM4K,UAAU,GAAG,KAAK1W,QAAL,CAAcuB,SAAd,CAAwBE,QAAxB,CAAiC4T,eAAjC,CAAnB;;EACA,QAAMyB,SAAS,GAAG3S,cAAc,CAACM,OAAf,CAAuB+Q,mBAAvB,EAA4C,KAAKK,OAAjD,CAAlB;;EAEA,QAAI,CAAC,KAAK7V,QAAL,CAAcvH,UAAf,IAA6B,KAAKuH,QAAL,CAAcvH,UAAd,CAAyB3B,QAAzB,KAAsCgO,IAAI,CAACC,YAA5E,EAA0F;EACxF;EACA1P,MAAAA,QAAQ,CAACoE,IAAT,CAAcsd,WAAd,CAA0B,KAAK/W,QAA/B;EACD;;EAED,SAAKA,QAAL,CAAcxH,KAAd,CAAoBI,OAApB,GAA8B,OAA9B;;EACA,SAAKoH,QAAL,CAAcgD,eAAd,CAA8B,aAA9B;;EACA,SAAKhD,QAAL,CAAcuC,YAAd,CAA2B,YAA3B,EAAyC,IAAzC;;EACA,SAAKvC,QAAL,CAAcuC,YAAd,CAA2B,MAA3B,EAAmC,QAAnC;;EACA,SAAKvC,QAAL,CAAc4D,SAAd,GAA0B,CAA1B;;EAEA,QAAIkT,SAAJ,EAAe;EACbA,MAAAA,SAAS,CAAClT,SAAV,GAAsB,CAAtB;EACD;;EAED,QAAI8S,UAAJ,EAAgB;EACdrd,MAAAA,MAAM,CAAC,KAAK2G,QAAN,CAAN;EACD;;EAED,SAAKA,QAAL,CAAcuB,SAAd,CAAwB2J,GAAxB,CAA4B0C,iBAA5B;;EAEA,QAAI,KAAK/E,OAAL,CAAasK,KAAjB,EAAwB;EACtB,WAAK6D,aAAL;EACD;;EAED,QAAMC,kBAAkB,GAAG,SAArBA,kBAAqB,GAAM;EAC/B,UAAI,MAAI,CAACpO,OAAL,CAAasK,KAAjB,EAAwB;EACtB,QAAA,MAAI,CAACnT,QAAL,CAAcmT,KAAd;EACD;;EAED,MAAA,MAAI,CAAC/E,gBAAL,GAAwB,KAAxB;EACAlS,MAAAA,YAAY,CAAC2C,OAAb,CAAqB,MAAI,CAACmB,QAA1B,EAAoCyN,aAApC,EAAiD;EAC/C3B,QAAAA,aAAa,EAAbA;EAD+C,OAAjD;EAGD,KATD;;EAWA,QAAI4K,UAAJ,EAAgB;EACd,UAAMvgB,kBAAkB,GAAGH,gCAAgC,CAAC,KAAK6f,OAAN,CAA3D;EAEA3Z,MAAAA,YAAY,CAACoC,GAAb,CAAiB,KAAKuX,OAAtB,EAA+BrhB,cAA/B,EAA+CyiB,kBAA/C;EACAlgB,MAAAA,oBAAoB,CAAC,KAAK8e,OAAN,EAAe1f,kBAAf,CAApB;EACD,KALD,MAKO;EACL8gB,MAAAA,kBAAkB;EACnB;EACF;;WAEDD,gBAAA,yBAAgB;EAAA;;EACd9a,IAAAA,YAAY,CAACC,GAAb,CAAiB9G,QAAjB,EAA2Buf,aAA3B,EADc;;EAEd1Y,IAAAA,YAAY,CAACmC,EAAb,CAAgBhJ,QAAhB,EAA0Buf,aAA1B,EAAyC,UAAA7Y,KAAK,EAAI;EAChD,UAAI1G,QAAQ,KAAK0G,KAAK,CAACU,MAAnB,IACA,MAAI,CAACuD,QAAL,KAAkBjE,KAAK,CAACU,MADxB,IAEA,CAAC,MAAI,CAACuD,QAAL,CAAcyB,QAAd,CAAuB1F,KAAK,CAACU,MAA7B,CAFL,EAE2C;EACzC,QAAA,MAAI,CAACuD,QAAL,CAAcmT,KAAd;EACD;EACF,KAND;EAOD;;WAEDmD,kBAAA,2BAAkB;EAAA;;EAChB,QAAI,KAAKP,QAAT,EAAmB;EACjB7Z,MAAAA,YAAY,CAACmC,EAAb,CAAgB,KAAK2B,QAArB,EAA+B+U,qBAA/B,EAAsD,UAAAhZ,KAAK,EAAI;EAC7D,YAAI,MAAI,CAAC8M,OAAL,CAAajD,QAAb,IAAyB7J,KAAK,CAAC3B,GAAN,KAAckW,YAA3C,EAAuD;EACrDvU,UAAAA,KAAK,CAAC8D,cAAN;;EACA,UAAA,MAAI,CAACiP,IAAL;EACD,SAHD,MAGO,IAAI,CAAC,MAAI,CAACjG,OAAL,CAAajD,QAAd,IAA0B7J,KAAK,CAAC3B,GAAN,KAAckW,YAA5C,EAAwD;EAC7D,UAAA,MAAI,CAAC4G,0BAAL;EACD;EACF,OAPD;EAQD,KATD,MASO;EACLhb,MAAAA,YAAY,CAACC,GAAb,CAAiB,KAAK6D,QAAtB,EAAgC+U,qBAAhC;EACD;EACF;;WAEDwB,kBAAA,2BAAkB;EAAA;;EAChB,QAAI,KAAKR,QAAT,EAAmB;EACjB7Z,MAAAA,YAAY,CAACmC,EAAb,CAAgBpI,MAAhB,EAAwB4e,YAAxB,EAAsC;EAAA,eAAM,MAAI,CAACwB,aAAL,EAAN;EAAA,OAAtC;EACD,KAFD,MAEO;EACLna,MAAAA,YAAY,CAACC,GAAb,CAAiBlG,MAAjB,EAAyB4e,YAAzB;EACD;EACF;;WAED8B,aAAA,sBAAa;EAAA;;EACX,SAAK3W,QAAL,CAAcxH,KAAd,CAAoBI,OAApB,GAA8B,MAA9B;;EACA,SAAKoH,QAAL,CAAcuC,YAAd,CAA2B,aAA3B,EAA0C,IAA1C;;EACA,SAAKvC,QAAL,CAAcgD,eAAd,CAA8B,YAA9B;;EACA,SAAKhD,QAAL,CAAcgD,eAAd,CAA8B,MAA9B;;EACA,SAAKoL,gBAAL,GAAwB,KAAxB;;EACA,SAAKoI,aAAL,CAAmB,YAAM;EACvBnhB,MAAAA,QAAQ,CAACoE,IAAT,CAAc8H,SAAd,CAAwBC,MAAxB,CAA+B4T,eAA/B;;EACA,MAAA,MAAI,CAAC+B,iBAAL;;EACA,MAAA,MAAI,CAACC,eAAL;;EACAlb,MAAAA,YAAY,CAAC2C,OAAb,CAAqB,MAAI,CAACmB,QAA1B,EAAoC2N,cAApC;EACD,KALD;EAMD;;WAED0J,kBAAA,2BAAkB;EAChB,SAAKvB,SAAL,CAAerd,UAAf,CAA0BkJ,WAA1B,CAAsC,KAAKmU,SAA3C;;EACA,SAAKA,SAAL,GAAiB,IAAjB;EACD;;WAEDU,gBAAA,uBAAc5c,QAAd,EAAwB;EAAA;;EACtB,QAAM0d,OAAO,GAAG,KAAKtX,QAAL,CAAcuB,SAAd,CAAwBE,QAAxB,CAAiC4T,eAAjC,IACdA,eADc,GAEd,EAFF;;EAIA,QAAI,KAAKU,QAAL,IAAiB,KAAKlN,OAAL,CAAa6L,QAAlC,EAA4C;EAC1C,WAAKoB,SAAL,GAAiBzgB,QAAQ,CAACkiB,aAAT,CAAuB,KAAvB,CAAjB;EACA,WAAKzB,SAAL,CAAe0B,SAAf,GAA2BrC,mBAA3B;;EAEA,UAAImC,OAAJ,EAAa;EACX,aAAKxB,SAAL,CAAevU,SAAf,CAAyB2J,GAAzB,CAA6BoM,OAA7B;EACD;;EAEDjiB,MAAAA,QAAQ,CAACoE,IAAT,CAAcsd,WAAd,CAA0B,KAAKjB,SAA/B;EAEA5Z,MAAAA,YAAY,CAACmC,EAAb,CAAgB,KAAK2B,QAArB,EAA+B8U,mBAA/B,EAAoD,UAAA/Y,KAAK,EAAI;EAC3D,YAAI,MAAI,CAACka,oBAAT,EAA+B;EAC7B,UAAA,MAAI,CAACA,oBAAL,GAA4B,KAA5B;EACA;EACD;;EAED,YAAIla,KAAK,CAACU,MAAN,KAAiBV,KAAK,CAAC0b,aAA3B,EAA0C;EACxC;EACD;;EAED,YAAI,MAAI,CAAC5O,OAAL,CAAa6L,QAAb,KAA0B,QAA9B,EAAwC;EACtC,UAAA,MAAI,CAACwC,0BAAL;EACD,SAFD,MAEO;EACL,UAAA,MAAI,CAACpI,IAAL;EACD;EACF,OAfD;;EAiBA,UAAIwI,OAAJ,EAAa;EACXje,QAAAA,MAAM,CAAC,KAAKyc,SAAN,CAAN;EACD;;EAED,WAAKA,SAAL,CAAevU,SAAf,CAAyB2J,GAAzB,CAA6B0C,iBAA7B;;EAEA,UAAI,CAAC0J,OAAL,EAAc;EACZ1d,QAAAA,QAAQ;EACR;EACD;;EAED,UAAM8d,0BAA0B,GAAG1hB,gCAAgC,CAAC,KAAK8f,SAAN,CAAnE;EAEA5Z,MAAAA,YAAY,CAACoC,GAAb,CAAiB,KAAKwX,SAAtB,EAAiCthB,cAAjC,EAAiDoF,QAAjD;EACA7C,MAAAA,oBAAoB,CAAC,KAAK+e,SAAN,EAAiB4B,0BAAjB,CAApB;EACD,KA1CD,MA0CO,IAAI,CAAC,KAAK3B,QAAN,IAAkB,KAAKD,SAA3B,EAAsC;EAC3C,WAAKA,SAAL,CAAevU,SAAf,CAAyBC,MAAzB,CAAgCoM,iBAAhC;;EAEA,UAAM+J,cAAc,GAAG,SAAjBA,cAAiB,GAAM;EAC3B,QAAA,MAAI,CAACN,eAAL;;EACAzd,QAAAA,QAAQ;EACT,OAHD;;EAKA,UAAI,KAAKoG,QAAL,CAAcuB,SAAd,CAAwBE,QAAxB,CAAiC4T,eAAjC,CAAJ,EAAuD;EACrD,YAAMqC,2BAA0B,GAAG1hB,gCAAgC,CAAC,KAAK8f,SAAN,CAAnE;;EACA5Z,QAAAA,YAAY,CAACoC,GAAb,CAAiB,KAAKwX,SAAtB,EAAiCthB,cAAjC,EAAiDmjB,cAAjD;EACA5gB,QAAAA,oBAAoB,CAAC,KAAK+e,SAAN,EAAiB4B,2BAAjB,CAApB;EACD,OAJD,MAIO;EACLC,QAAAA,cAAc;EACf;EACF,KAfM,MAeA;EACL/d,MAAAA,QAAQ;EACT;EACF;;WAEDsd,6BAAA,sCAA6B;EAAA;;EAC3B,QAAM9D,SAAS,GAAGlX,YAAY,CAAC2C,OAAb,CAAqB,KAAKmB,QAA1B,EAAoC2U,oBAApC,CAAlB;;EACA,QAAIvB,SAAS,CAACjU,gBAAd,EAAgC;EAC9B;EACD;;EAED,QAAMyY,kBAAkB,GAAG,KAAK5X,QAAL,CAAc6X,YAAd,GAA6BxiB,QAAQ,CAAC0D,eAAT,CAAyB+e,YAAjF;;EAEA,QAAI,CAACF,kBAAL,EAAyB;EACvB,WAAK5X,QAAL,CAAcxH,KAAd,CAAoBuf,SAApB,GAAgC,QAAhC;EACD;;EAED,SAAK/X,QAAL,CAAcuB,SAAd,CAAwB2J,GAAxB,CAA4BoK,iBAA5B;;EACA,QAAM0C,uBAAuB,GAAGhiB,gCAAgC,CAAC,KAAK6f,OAAN,CAAhE;EACA3Z,IAAAA,YAAY,CAACC,GAAb,CAAiB,KAAK6D,QAAtB,EAAgCxL,cAAhC;EACA0H,IAAAA,YAAY,CAACoC,GAAb,CAAiB,KAAK0B,QAAtB,EAAgCxL,cAAhC,EAAgD,YAAM;EACpD,MAAA,OAAI,CAACwL,QAAL,CAAcuB,SAAd,CAAwBC,MAAxB,CAA+B8T,iBAA/B;;EACA,UAAI,CAACsC,kBAAL,EAAyB;EACvB1b,QAAAA,YAAY,CAACoC,GAAb,CAAiB,OAAI,CAAC0B,QAAtB,EAAgCxL,cAAhC,EAAgD,YAAM;EACpD,UAAA,OAAI,CAACwL,QAAL,CAAcxH,KAAd,CAAoBuf,SAApB,GAAgC,EAAhC;EACD,SAFD;EAGAhhB,QAAAA,oBAAoB,CAAC,OAAI,CAACiJ,QAAN,EAAgBgY,uBAAhB,CAApB;EACD;EACF,KARD;EASAjhB,IAAAA,oBAAoB,CAAC,KAAKiJ,QAAN,EAAgBgY,uBAAhB,CAApB;;EACA,SAAKhY,QAAL,CAAcmT,KAAd;EACD;EAGD;EACA;;;WAEAkD,gBAAA,yBAAgB;EACd,QAAMuB,kBAAkB,GACtB,KAAK5X,QAAL,CAAc6X,YAAd,GAA6BxiB,QAAQ,CAAC0D,eAAT,CAAyB+e,YADxD;;EAGA,QAAK,CAAC,KAAK9B,kBAAN,IAA4B4B,kBAA5B,IAAkD,CAAC9d,KAApD,IAA+D,KAAKkc,kBAAL,IAA2B,CAAC4B,kBAA5B,IAAkD9d,KAArH,EAA6H;EAC3H,WAAKkG,QAAL,CAAcxH,KAAd,CAAoByf,WAApB,GAAqC,KAAK/B,eAA1C;EACD;;EAED,QAAK,KAAKF,kBAAL,IAA2B,CAAC4B,kBAA5B,IAAkD,CAAC9d,KAApD,IAA+D,CAAC,KAAKkc,kBAAN,IAA4B4B,kBAA5B,IAAkD9d,KAArH,EAA6H;EAC3H,WAAKkG,QAAL,CAAcxH,KAAd,CAAoB0f,YAApB,GAAsC,KAAKhC,eAA3C;EACD;EACF;;WAEDiB,oBAAA,6BAAoB;EAClB,SAAKnX,QAAL,CAAcxH,KAAd,CAAoByf,WAApB,GAAkC,EAAlC;EACA,SAAKjY,QAAL,CAAcxH,KAAd,CAAoB0f,YAApB,GAAmC,EAAnC;EACD;;WAED/B,kBAAA,2BAAkB;EAChB,QAAM1S,IAAI,GAAGpO,QAAQ,CAACoE,IAAT,CAAciK,qBAAd,EAAb;EACA,SAAKsS,kBAAL,GAA0B9gB,IAAI,CAACijB,KAAL,CAAW1U,IAAI,CAACI,IAAL,GAAYJ,IAAI,CAAC2U,KAA5B,IAAqCniB,MAAM,CAACoiB,UAAtE;EACA,SAAKnC,eAAL,GAAuB,KAAKoC,kBAAL,EAAvB;EACD;;WAEDlC,gBAAA,yBAAgB;EAAA;;EACd,QAAI,KAAKJ,kBAAT,EAA6B;EAC3B;EACA;EAEA;EACA7R,MAAAA,cAAc,CAACE,IAAf,CAAoBqR,sBAApB,EACG5d,OADH,CACW,UAAAtC,OAAO,EAAI;EAClB,YAAM+iB,aAAa,GAAG/iB,OAAO,CAACgD,KAAR,CAAc0f,YAApC;EACA,YAAMM,iBAAiB,GAAGviB,MAAM,CAACC,gBAAP,CAAwBV,OAAxB,EAAiC,eAAjC,CAA1B;EACAqN,QAAAA,WAAW,CAACC,gBAAZ,CAA6BtN,OAA7B,EAAsC,eAAtC,EAAuD+iB,aAAvD;EACA/iB,QAAAA,OAAO,CAACgD,KAAR,CAAc0f,YAAd,GAAgC5hB,MAAM,CAACC,UAAP,CAAkBiiB,iBAAlB,IAAuC,OAAI,CAACtC,eAA5E;EACD,OANH,EAL2B;;EAc3B/R,MAAAA,cAAc,CAACE,IAAf,CAAoBsR,uBAApB,EACG7d,OADH,CACW,UAAAtC,OAAO,EAAI;EAClB,YAAMijB,YAAY,GAAGjjB,OAAO,CAACgD,KAAR,CAAckgB,WAAnC;EACA,YAAMC,gBAAgB,GAAG1iB,MAAM,CAACC,gBAAP,CAAwBV,OAAxB,EAAiC,cAAjC,CAAzB;EACAqN,QAAAA,WAAW,CAACC,gBAAZ,CAA6BtN,OAA7B,EAAsC,cAAtC,EAAsDijB,YAAtD;EACAjjB,QAAAA,OAAO,CAACgD,KAAR,CAAckgB,WAAd,GAA+BpiB,MAAM,CAACC,UAAP,CAAkBoiB,gBAAlB,IAAsC,OAAI,CAACzC,eAA1E;EACD,OANH,EAd2B;;EAuB3B,UAAMqC,aAAa,GAAGljB,QAAQ,CAACoE,IAAT,CAAcjB,KAAd,CAAoB0f,YAA1C;EACA,UAAMM,iBAAiB,GAAGviB,MAAM,CAACC,gBAAP,CAAwBb,QAAQ,CAACoE,IAAjC,EAAuC,eAAvC,CAA1B;EAEAoJ,MAAAA,WAAW,CAACC,gBAAZ,CAA6BzN,QAAQ,CAACoE,IAAtC,EAA4C,eAA5C,EAA6D8e,aAA7D;EACAljB,MAAAA,QAAQ,CAACoE,IAAT,CAAcjB,KAAd,CAAoB0f,YAApB,GAAsC5hB,MAAM,CAACC,UAAP,CAAkBiiB,iBAAlB,IAAuC,KAAKtC,eAAlF;EACD;;EAED7gB,IAAAA,QAAQ,CAACoE,IAAT,CAAc8H,SAAd,CAAwB2J,GAAxB,CAA4BkK,eAA5B;EACD;;WAEDgC,kBAAA,2BAAkB;EAChB;EACAjT,IAAAA,cAAc,CAACE,IAAf,CAAoBqR,sBAApB,EACG5d,OADH,CACW,UAAAtC,OAAO,EAAI;EAClB,UAAMojB,OAAO,GAAG/V,WAAW,CAACU,gBAAZ,CAA6B/N,OAA7B,EAAsC,eAAtC,CAAhB;;EACA,UAAI,OAAOojB,OAAP,KAAmB,WAAvB,EAAoC;EAClC/V,QAAAA,WAAW,CAACE,mBAAZ,CAAgCvN,OAAhC,EAAyC,eAAzC;EACAA,QAAAA,OAAO,CAACgD,KAAR,CAAc0f,YAAd,GAA6BU,OAA7B;EACD;EACF,KAPH,EAFgB;;EAYhBzU,IAAAA,cAAc,CAACE,IAAf,MAAuBsR,uBAAvB,EACG7d,OADH,CACW,UAAAtC,OAAO,EAAI;EAClB,UAAMqjB,MAAM,GAAGhW,WAAW,CAACU,gBAAZ,CAA6B/N,OAA7B,EAAsC,cAAtC,CAAf;;EACA,UAAI,OAAOqjB,MAAP,KAAkB,WAAtB,EAAmC;EACjChW,QAAAA,WAAW,CAACE,mBAAZ,CAAgCvN,OAAhC,EAAyC,cAAzC;EACAA,QAAAA,OAAO,CAACgD,KAAR,CAAckgB,WAAd,GAA4BG,MAA5B;EACD;EACF,KAPH,EAZgB;;EAsBhB,QAAMD,OAAO,GAAG/V,WAAW,CAACU,gBAAZ,CAA6BlO,QAAQ,CAACoE,IAAtC,EAA4C,eAA5C,CAAhB;;EACA,QAAI,OAAOmf,OAAP,KAAmB,WAAvB,EAAoC;EAClCvjB,MAAAA,QAAQ,CAACoE,IAAT,CAAcjB,KAAd,CAAoB0f,YAApB,GAAmC,EAAnC;EACD,KAFD,MAEO;EACLrV,MAAAA,WAAW,CAACE,mBAAZ,CAAgC1N,QAAQ,CAACoE,IAAzC,EAA+C,eAA/C;EACApE,MAAAA,QAAQ,CAACoE,IAAT,CAAcjB,KAAd,CAAoB0f,YAApB,GAAmCU,OAAnC;EACD;EACF;;WAEDN,qBAAA,8BAAqB;EAAE;EACrB,QAAMQ,SAAS,GAAGzjB,QAAQ,CAACkiB,aAAT,CAAuB,KAAvB,CAAlB;EACAuB,IAAAA,SAAS,CAACtB,SAAV,GAAsBtC,6BAAtB;EACA7f,IAAAA,QAAQ,CAACoE,IAAT,CAAcsd,WAAd,CAA0B+B,SAA1B;EACA,QAAMC,cAAc,GAAGD,SAAS,CAACpV,qBAAV,GAAkCsV,KAAlC,GAA0CF,SAAS,CAACG,WAA3E;EACA5jB,IAAAA,QAAQ,CAACoE,IAAT,CAAckI,WAAd,CAA0BmX,SAA1B;EACA,WAAOC,cAAP;EACD;;;UAIMnX,kBAAP,yBAAuBlK,MAAvB,EAA+BoU,aAA/B,EAA8C;EAC5C,WAAO,KAAKjK,IAAL,CAAU,YAAY;EAC3B,UAAIxH,IAAI,GAAGK,IAAI,CAACG,OAAL,CAAa,IAAb,EAAmBqF,UAAnB,CAAX;;EACA,UAAM2I,OAAO,gBACRnD,SADQ,EAER7C,WAAW,CAACI,iBAAZ,CAA8B,IAA9B,CAFQ,EAGP,OAAOvL,MAAP,KAAkB,QAAlB,IAA8BA,MAA9B,GAAuCA,MAAvC,GAAgD,EAHzC,CAAb;;EAMA,UAAI,CAAC2C,IAAL,EAAW;EACTA,QAAAA,IAAI,GAAG,IAAIub,KAAJ,CAAU,IAAV,EAAgB/M,OAAhB,CAAP;EACD;;EAED,UAAI,OAAOnR,MAAP,KAAkB,QAAtB,EAAgC;EAC9B,YAAI,OAAO2C,IAAI,CAAC3C,MAAD,CAAX,KAAwB,WAA5B,EAAyC;EACvC,gBAAM,IAAIwV,SAAJ,wBAAkCxV,MAAlC,QAAN;EACD;;EAED2C,QAAAA,IAAI,CAAC3C,MAAD,CAAJ,CAAaoU,aAAb;EACD;EACF,KAnBM,CAAP;EAoBD;;;;0BAzcoB;EACnB,aAAOpG,SAAP;EACD;;;0BAEqB;EACpB,aAAOxF,UAAP;EACD;;;;IAtBiBH;EA4dpB;EACA;EACA;EACA;EACA;;;EAEA7D,YAAY,CAACmC,EAAb,CAAgBhJ,QAAhB,EAA0BsL,sBAA1B,EAAgDyB,sBAAhD,EAAsE,UAAUrG,KAAV,EAAiB;EAAA;;EACrF,MAAMU,MAAM,GAAG1G,sBAAsB,CAAC,IAAD,CAArC;;EAEA,MAAI,KAAKoV,OAAL,KAAiB,GAAjB,IAAwB,KAAKA,OAAL,KAAiB,MAA7C,EAAqD;EACnDpP,IAAAA,KAAK,CAAC8D,cAAN;EACD;;EAED3D,EAAAA,YAAY,CAACoC,GAAb,CAAiB7B,MAAjB,EAAyB+Q,YAAzB,EAAqC,UAAAuF,SAAS,EAAI;EAChD,QAAIA,SAAS,CAAC5T,gBAAd,EAAgC;EAC9B;EACA;EACD;;EAEDjD,IAAAA,YAAY,CAACoC,GAAb,CAAiB7B,MAAjB,EAAyBkR,cAAzB,EAAuC,YAAM;EAC3C,UAAIpV,SAAS,CAAC,OAAD,CAAb,EAAqB;EACnB,QAAA,OAAI,CAAC4a,KAAL;EACD;EACF,KAJD;EAKD,GAXD;EAaA,MAAI9Y,IAAI,GAAGK,IAAI,CAACG,OAAL,CAAa4B,MAAb,EAAqByD,UAArB,CAAX;;EACA,MAAI,CAAC7F,IAAL,EAAW;EACT,QAAM3C,MAAM,gBACPmL,WAAW,CAACI,iBAAZ,CAA8BxG,MAA9B,CADO,EAEPoG,WAAW,CAACI,iBAAZ,CAA8B,IAA9B,CAFO,CAAZ;;EAKA5I,IAAAA,IAAI,GAAG,IAAIub,KAAJ,CAAUnZ,MAAV,EAAkB/E,MAAlB,CAAP;EACD;;EAED2C,EAAAA,IAAI,CAAC0U,IAAL,CAAU,IAAV;EACD,CA/BD;EAiCA;EACA;EACA;EACA;EACA;EACA;;EAEApV,kBAAkB,CAAC,YAAM;EACvB,MAAMoF,CAAC,GAAGxF,SAAS,EAAnB;EACA;;EACA,MAAIwF,CAAJ,EAAO;EACL,QAAMiD,kBAAkB,GAAGjD,CAAC,CAAClD,EAAF,CAAKwE,MAAL,CAA3B;EACAtB,IAAAA,CAAC,CAAClD,EAAF,CAAKwE,MAAL,IAAauV,KAAK,CAAChU,eAAnB;EACA7C,IAAAA,CAAC,CAAClD,EAAF,CAAKwE,MAAL,EAAW4B,WAAX,GAAyB2T,KAAzB;;EACA7W,IAAAA,CAAC,CAAClD,EAAF,CAAKwE,MAAL,EAAW6B,UAAX,GAAwB,YAAM;EAC5BnD,MAAAA,CAAC,CAAClD,EAAF,CAAKwE,MAAL,IAAa2B,kBAAb;EACA,aAAO4T,KAAK,CAAChU,eAAb;EACD,KAHD;EAID;EACF,CAZiB,CAAlB;;EC5lBA;EACA;EACA;EACA;EACA;EACA;EAEA,IAAMsX,QAAQ,GAAG,IAAI1d,GAAJ,CAAQ,CACvB,YADuB,EAEvB,MAFuB,EAGvB,MAHuB,EAIvB,UAJuB,EAKvB,UALuB,EAMvB,QANuB,EAOvB,KAPuB,EAQvB,YARuB,CAAR,CAAjB;EAWA,IAAM2d,sBAAsB,GAAG,gBAA/B;EAEA;EACA;EACA;EACA;EACA;;EACA,IAAMC,gBAAgB,GAAG,6DAAzB;EAEA;EACA;EACA;EACA;EACA;;EACA,IAAMC,gBAAgB,GAAG,oIAAzB;;EAEA,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACC,IAAD,EAAOC,oBAAP,EAAgC;EACvD,MAAMC,QAAQ,GAAGF,IAAI,CAACG,QAAL,CAAc3kB,WAAd,EAAjB;;EAEA,MAAIykB,oBAAoB,CAACpb,QAArB,CAA8Bqb,QAA9B,CAAJ,EAA6C;EAC3C,QAAIP,QAAQ,CAACxb,GAAT,CAAa+b,QAAb,CAAJ,EAA4B;EAC1B,aAAO1b,OAAO,CAACwb,IAAI,CAACI,SAAL,CAAe7kB,KAAf,CAAqBskB,gBAArB,KAA0CG,IAAI,CAACI,SAAL,CAAe7kB,KAAf,CAAqBukB,gBAArB,CAA3C,CAAd;EACD;;EAED,WAAO,IAAP;EACD;;EAED,MAAMO,MAAM,GAAGJ,oBAAoB,CAACpW,MAArB,CAA4B,UAAAyW,SAAS;EAAA,WAAIA,SAAS,YAAY1hB,MAAzB;EAAA,GAArC,CAAf,CAXuD;;EAcvD,OAAK,IAAIuE,CAAC,GAAG,CAAR,EAAWM,GAAG,GAAG4c,MAAM,CAACjd,MAA7B,EAAqCD,CAAC,GAAGM,GAAzC,EAA8CN,CAAC,EAA/C,EAAmD;EACjD,QAAI+c,QAAQ,CAAC3kB,KAAT,CAAe8kB,MAAM,CAACld,CAAD,CAArB,CAAJ,EAA+B;EAC7B,aAAO,IAAP;EACD;EACF;;EAED,SAAO,KAAP;EACD,CArBD;;EAuBO,IAAMod,gBAAgB,GAAG;EAC9B;EACA,OAAK,CAAC,OAAD,EAAU,KAAV,EAAiB,IAAjB,EAAuB,MAAvB,EAA+B,MAA/B,EAAuCX,sBAAvC,CAFyB;EAG9BY,EAAAA,CAAC,EAAE,CAAC,QAAD,EAAW,MAAX,EAAmB,OAAnB,EAA4B,KAA5B,CAH2B;EAI9BC,EAAAA,IAAI,EAAE,EAJwB;EAK9BC,EAAAA,CAAC,EAAE,EAL2B;EAM9BC,EAAAA,EAAE,EAAE,EAN0B;EAO9BC,EAAAA,GAAG,EAAE,EAPyB;EAQ9BC,EAAAA,IAAI,EAAE,EARwB;EAS9BC,EAAAA,GAAG,EAAE,EATyB;EAU9BC,EAAAA,EAAE,EAAE,EAV0B;EAW9BC,EAAAA,EAAE,EAAE,EAX0B;EAY9BC,EAAAA,EAAE,EAAE,EAZ0B;EAa9BC,EAAAA,EAAE,EAAE,EAb0B;EAc9BC,EAAAA,EAAE,EAAE,EAd0B;EAe9BC,EAAAA,EAAE,EAAE,EAf0B;EAgB9BC,EAAAA,EAAE,EAAE,EAhB0B;EAiB9BC,EAAAA,EAAE,EAAE,EAjB0B;EAkB9Bne,EAAAA,CAAC,EAAE,EAlB2B;EAmB9Boe,EAAAA,GAAG,EAAE,CAAC,KAAD,EAAQ,QAAR,EAAkB,KAAlB,EAAyB,OAAzB,EAAkC,OAAlC,EAA2C,QAA3C,CAnByB;EAoB9BC,EAAAA,EAAE,EAAE,EApB0B;EAqB9BC,EAAAA,EAAE,EAAE,EArB0B;EAsB9BC,EAAAA,CAAC,EAAE,EAtB2B;EAuB9BC,EAAAA,GAAG,EAAE,EAvByB;EAwB9BC,EAAAA,CAAC,EAAE,EAxB2B;EAyB9BC,EAAAA,KAAK,EAAE,EAzBuB;EA0B9BC,EAAAA,IAAI,EAAE,EA1BwB;EA2B9BC,EAAAA,GAAG,EAAE,EA3ByB;EA4B9BC,EAAAA,GAAG,EAAE,EA5ByB;EA6B9BC,EAAAA,MAAM,EAAE,EA7BsB;EA8B9BC,EAAAA,CAAC,EAAE,EA9B2B;EA+B9BC,EAAAA,EAAE,EAAE;EA/B0B,CAAzB;EAkCA,SAASC,YAAT,CAAsBC,UAAtB,EAAkCC,SAAlC,EAA6CC,UAA7C,EAAyD;EAAA;;EAC9D,MAAI,CAACF,UAAU,CAACjf,MAAhB,EAAwB;EACtB,WAAOif,UAAP;EACD;;EAED,MAAIE,UAAU,IAAI,OAAOA,UAAP,KAAsB,UAAxC,EAAoD;EAClD,WAAOA,UAAU,CAACF,UAAD,CAAjB;EACD;;EAED,MAAMG,SAAS,GAAG,IAAI9lB,MAAM,CAAC+lB,SAAX,EAAlB;EACA,MAAMC,eAAe,GAAGF,SAAS,CAACG,eAAV,CAA0BN,UAA1B,EAAsC,WAAtC,CAAxB;EACA,MAAMO,aAAa,GAAGvkB,MAAM,CAACC,IAAP,CAAYgkB,SAAZ,CAAtB;;EACA,MAAMO,QAAQ,GAAG,YAAG9X,MAAH,aAAa2X,eAAe,CAACxiB,IAAhB,CAAqB+C,gBAArB,CAAsC,GAAtC,CAAb,CAAjB;;EAZ8D,6BAcrDE,CAdqD,EAc9CM,GAd8C;EAAA;;EAe5D,QAAMqf,EAAE,GAAGD,QAAQ,CAAC1f,CAAD,CAAnB;EACA,QAAM4f,MAAM,GAAGD,EAAE,CAAC3C,QAAH,CAAY3kB,WAAZ,EAAf;;EAEA,QAAI,CAAConB,aAAa,CAAC/d,QAAd,CAAuBke,MAAvB,CAAL,EAAqC;EACnCD,MAAAA,EAAE,CAAC5jB,UAAH,CAAckJ,WAAd,CAA0B0a,EAA1B;EAEA;EACD;;EAED,QAAME,aAAa,GAAG,aAAGjY,MAAH,cAAa+X,EAAE,CAACnZ,UAAhB,CAAtB;;EACA,QAAMsZ,iBAAiB,GAAG,GAAGlY,MAAH,CAAUuX,SAAS,CAAC,GAAD,CAAT,IAAkB,EAA5B,EAAgCA,SAAS,CAACS,MAAD,CAAT,IAAqB,EAArD,CAA1B;EAEAC,IAAAA,aAAa,CAACzkB,OAAd,CAAsB,UAAAyhB,IAAI,EAAI;EAC5B,UAAI,CAACD,gBAAgB,CAACC,IAAD,EAAOiD,iBAAP,CAArB,EAAgD;EAC9CH,QAAAA,EAAE,CAACrZ,eAAH,CAAmBuW,IAAI,CAACG,QAAxB;EACD;EACF,KAJD;EA3B4D;;EAc9D,OAAK,IAAIhd,CAAC,GAAG,CAAR,EAAWM,GAAG,GAAGof,QAAQ,CAACzf,MAA/B,EAAuCD,CAAC,GAAGM,GAA3C,EAAgDN,CAAC,EAAjD,EAAqD;EAAA,qBAA5CA,CAA4C;;EAAA,6BAOjD;EAWH;;EAED,SAAOuf,eAAe,CAACxiB,IAAhB,CAAqBgjB,SAA5B;EACD;;EC/FD;EACA;EACA;EACA;EACA;;EAEA,IAAMpc,MAAI,GAAG,SAAb;EACA,IAAMH,UAAQ,GAAG,YAAjB;EACA,IAAMI,WAAS,SAAOJ,UAAtB;EACA,IAAMwc,YAAY,GAAG,YAArB;EACA,IAAMC,kBAAkB,GAAG,IAAIxkB,MAAJ,aAAqBukB,YAArB,WAAyC,GAAzC,CAA3B;EACA,IAAME,qBAAqB,GAAG,IAAIphB,GAAJ,CAAQ,CAAC,UAAD,EAAa,WAAb,EAA0B,YAA1B,CAAR,CAA9B;EAEA,IAAMyK,aAAW,GAAG;EAClB4W,EAAAA,SAAS,EAAE,SADO;EAElBC,EAAAA,QAAQ,EAAE,QAFQ;EAGlBC,EAAAA,KAAK,EAAE,2BAHW;EAIlBle,EAAAA,OAAO,EAAE,QAJS;EAKlBme,EAAAA,KAAK,EAAE,iBALW;EAMlBC,EAAAA,IAAI,EAAE,SANY;EAOlBxnB,EAAAA,QAAQ,EAAE,kBAPQ;EAQlBke,EAAAA,SAAS,EAAE,mBARO;EASlBnQ,EAAAA,MAAM,EAAE,0BATU;EAUlB0L,EAAAA,SAAS,EAAE,0BAVO;EAWlBgO,EAAAA,iBAAiB,EAAE,gBAXD;EAYlBhL,EAAAA,QAAQ,EAAE,kBAZQ;EAalBiL,EAAAA,WAAW,EAAE,mBAbK;EAclBC,EAAAA,QAAQ,EAAE,SAdQ;EAelBtB,EAAAA,UAAU,EAAE,iBAfM;EAgBlBD,EAAAA,SAAS,EAAE,QAhBO;EAiBlBzJ,EAAAA,YAAY,EAAE;EAjBI,CAApB;EAoBA,IAAMiL,aAAa,GAAG;EACpBC,EAAAA,IAAI,EAAE,MADc;EAEpBC,EAAAA,GAAG,EAAE,KAFe;EAGpBC,EAAAA,KAAK,EAAE1jB,KAAK,GAAG,MAAH,GAAY,OAHJ;EAIpB2jB,EAAAA,MAAM,EAAE,QAJY;EAKpBC,EAAAA,IAAI,EAAE5jB,KAAK,GAAG,OAAH,GAAa;EALJ,CAAtB;EAQA,IAAM4L,SAAO,GAAG;EACdmX,EAAAA,SAAS,EAAE,IADG;EAEdC,EAAAA,QAAQ,EAAE,yCACE,mCADF,GAEE,mCAFF,GAGA,QALI;EAMdje,EAAAA,OAAO,EAAE,aANK;EAOdke,EAAAA,KAAK,EAAE,EAPO;EAQdC,EAAAA,KAAK,EAAE,CARO;EASdC,EAAAA,IAAI,EAAE,KATQ;EAUdxnB,EAAAA,QAAQ,EAAE,KAVI;EAWdke,EAAAA,SAAS,EAAE,KAXG;EAYdnQ,EAAAA,MAAM,EAAE,CAZM;EAad0L,EAAAA,SAAS,EAAE,KAbG;EAcdgO,EAAAA,iBAAiB,EAAE,MAdL;EAedhL,EAAAA,QAAQ,EAAE,cAfI;EAgBdiL,EAAAA,WAAW,EAAE,EAhBC;EAiBdC,EAAAA,QAAQ,EAAE,IAjBI;EAkBdtB,EAAAA,UAAU,EAAE,IAlBE;EAmBdD,EAAAA,SAAS,EAAE/B,gBAnBG;EAoBd1H,EAAAA,YAAY,EAAE;EApBA,CAAhB;EAuBA,IAAMxb,OAAK,GAAG;EACZ+mB,EAAAA,IAAI,WAASrd,WADD;EAEZsd,EAAAA,MAAM,aAAWtd,WAFL;EAGZud,EAAAA,IAAI,WAASvd,WAHD;EAIZwd,EAAAA,KAAK,YAAUxd,WAJH;EAKZyd,EAAAA,QAAQ,eAAazd,WALT;EAMZ0d,EAAAA,KAAK,YAAU1d,WANH;EAOZ2d,EAAAA,OAAO,cAAY3d,WAPP;EAQZ4d,EAAAA,QAAQ,eAAa5d,WART;EASZ6d,EAAAA,UAAU,iBAAe7d,WATb;EAUZ8d,EAAAA,UAAU,iBAAe9d;EAVb,CAAd;EAaA,IAAM+U,iBAAe,GAAG,MAAxB;EACA,IAAMgJ,gBAAgB,GAAG,OAAzB;EACA,IAAMzQ,iBAAe,GAAG,MAAxB;EAEA,IAAM0Q,gBAAgB,GAAG,MAAzB;EACA,IAAMC,eAAe,GAAG,KAAxB;EAEA,IAAMC,sBAAsB,GAAG,gBAA/B;EAEA,IAAMC,aAAa,GAAG,OAAtB;EACA,IAAMC,aAAa,GAAG,OAAtB;EACA,IAAMC,aAAa,GAAG,OAAtB;EACA,IAAMC,cAAc,GAAG,QAAvB;EAEA;EACA;EACA;EACA;EACA;;MAEMC;;;EACJ,mBAAYrpB,OAAZ,EAAqBkC,MAArB,EAA6B;EAAA;;EAC3B,QAAI,OAAOsb,MAAP,KAAkB,WAAtB,EAAmC;EACjC,YAAM,IAAI9F,SAAJ,CAAc,8DAAd,CAAN;EACD;;EAED,sCAAM1X,OAAN,UAL2B;;EAQ3B,UAAKspB,UAAL,GAAkB,IAAlB;EACA,UAAKC,QAAL,GAAgB,CAAhB;EACA,UAAKC,WAAL,GAAmB,EAAnB;EACA,UAAKC,cAAL,GAAsB,EAAtB;EACA,UAAK3M,OAAL,GAAe,IAAf,CAZ2B;;EAe3B,UAAK5a,MAAL,GAAc,MAAKoR,UAAL,CAAgBpR,MAAhB,CAAd;EACA,UAAKwnB,GAAL,GAAW,IAAX;;EAEA,UAAKC,aAAL;;EAlB2B;EAmB5B;;;;;EA4BD;WAEAC,SAAA,kBAAS;EACP,SAAKN,UAAL,GAAkB,IAAlB;EACD;;WAEDO,UAAA,mBAAU;EACR,SAAKP,UAAL,GAAkB,KAAlB;EACD;;WAEDQ,gBAAA,yBAAgB;EACd,SAAKR,UAAL,GAAkB,CAAC,KAAKA,UAAxB;EACD;;WAEDxc,SAAA,gBAAOvG,KAAP,EAAc;EACZ,QAAI,CAAC,KAAK+iB,UAAV,EAAsB;EACpB;EACD;;EAED,QAAI/iB,KAAJ,EAAW;EACT,UAAMwjB,OAAO,GAAG,KAAKtf,WAAL,CAAiBC,QAAjC;EACA,UAAImU,OAAO,GAAG3Z,IAAI,CAACG,OAAL,CAAakB,KAAK,CAACC,cAAnB,EAAmCujB,OAAnC,CAAd;;EAEA,UAAI,CAAClL,OAAL,EAAc;EACZA,QAAAA,OAAO,GAAG,IAAI,KAAKpU,WAAT,CAAqBlE,KAAK,CAACC,cAA3B,EAA2C,KAAKwjB,kBAAL,EAA3C,CAAV;EACA9kB,QAAAA,IAAI,CAACC,OAAL,CAAaoB,KAAK,CAACC,cAAnB,EAAmCujB,OAAnC,EAA4ClL,OAA5C;EACD;;EAEDA,MAAAA,OAAO,CAAC4K,cAAR,CAAuBQ,KAAvB,GAA+B,CAACpL,OAAO,CAAC4K,cAAR,CAAuBQ,KAAvD;;EAEA,UAAIpL,OAAO,CAACqL,oBAAR,EAAJ,EAAoC;EAClCrL,QAAAA,OAAO,CAACsL,MAAR,CAAe,IAAf,EAAqBtL,OAArB;EACD,OAFD,MAEO;EACLA,QAAAA,OAAO,CAACuL,MAAR,CAAe,IAAf,EAAqBvL,OAArB;EACD;EACF,KAhBD,MAgBO;EACL,UAAI,KAAKwL,aAAL,GAAqBte,SAArB,CAA+BE,QAA/B,CAAwCmM,iBAAxC,CAAJ,EAA8D;EAC5D,aAAKgS,MAAL,CAAY,IAAZ,EAAkB,IAAlB;;EACA;EACD;;EAED,WAAKD,MAAL,CAAY,IAAZ,EAAkB,IAAlB;EACD;EACF;;WAEDxf,UAAA,mBAAU;EACR4K,IAAAA,YAAY,CAAC,KAAKgU,QAAN,CAAZ;EAEA7iB,IAAAA,YAAY,CAACC,GAAb,CAAiB,KAAK6D,QAAtB,EAAgC,KAAKC,WAAL,CAAiBK,SAAjD;EACApE,IAAAA,YAAY,CAACC,GAAb,CAAiB,KAAK6D,QAAL,CAAcsB,OAAd,OAA0B+c,gBAA1B,CAAjB,EAAgE,eAAhE,EAAiF,KAAKyB,iBAAtF;;EAEA,QAAI,KAAKZ,GAAT,EAAc;EACZ,WAAKA,GAAL,CAASzmB,UAAT,CAAoBkJ,WAApB,CAAgC,KAAKud,GAArC;EACD;;EAED,SAAKJ,UAAL,GAAkB,IAAlB;EACA,SAAKC,QAAL,GAAgB,IAAhB;EACA,SAAKC,WAAL,GAAmB,IAAnB;EACA,SAAKC,cAAL,GAAsB,IAAtB;;EACA,QAAI,KAAK3M,OAAT,EAAkB;EAChB,WAAKA,OAAL,CAAae,OAAb;EACD;;EAED,SAAKf,OAAL,GAAe,IAAf;EACA,SAAK5a,MAAL,GAAc,IAAd;EACA,SAAKwnB,GAAL,GAAW,IAAX;;EACA,6BAAM/e,OAAN;EACD;;WAED4O,OAAA,gBAAO;EAAA;;EACL,QAAI,KAAK/O,QAAL,CAAcxH,KAAd,CAAoBI,OAApB,KAAgC,MAApC,EAA4C;EAC1C,YAAM,IAAIP,KAAJ,CAAU,qCAAV,CAAN;EACD;;EAED,QAAI,KAAK0nB,aAAL,MAAwB,KAAKjB,UAAjC,EAA6C;EAC3C,UAAM/L,SAAS,GAAG7W,YAAY,CAAC2C,OAAb,CAAqB,KAAKmB,QAA1B,EAAoC,KAAKC,WAAL,CAAiBrJ,KAAjB,CAAuBinB,IAA3D,CAAlB;EACA,UAAMmC,UAAU,GAAGlnB,cAAc,CAAC,KAAKkH,QAAN,CAAjC;EACA,UAAMigB,UAAU,GAAGD,UAAU,KAAK,IAAf,GACjB,KAAKhgB,QAAL,CAAckgB,aAAd,CAA4BnnB,eAA5B,CAA4C0I,QAA5C,CAAqD,KAAKzB,QAA1D,CADiB,GAEjBggB,UAAU,CAACve,QAAX,CAAoB,KAAKzB,QAAzB,CAFF;;EAIA,UAAI+S,SAAS,CAAC5T,gBAAV,IAA8B,CAAC8gB,UAAnC,EAA+C;EAC7C;EACD;;EAED,UAAMf,GAAG,GAAG,KAAKW,aAAL,EAAZ;EACA,UAAMM,KAAK,GAAGnrB,MAAM,CAAC,KAAKiL,WAAL,CAAiBI,IAAlB,CAApB;EAEA6e,MAAAA,GAAG,CAAC3c,YAAJ,CAAiB,IAAjB,EAAuB4d,KAAvB;;EACA,WAAKngB,QAAL,CAAcuC,YAAd,CAA2B,kBAA3B,EAA+C4d,KAA/C;;EAEA,WAAKC,UAAL;;EAEA,UAAI,KAAK1oB,MAAL,CAAYmlB,SAAhB,EAA2B;EACzBqC,QAAAA,GAAG,CAAC3d,SAAJ,CAAc2J,GAAd,CAAkBmK,iBAAlB;EACD;;EAED,UAAM1B,SAAS,GAAG,OAAO,KAAKjc,MAAL,CAAYic,SAAnB,KAAiC,UAAjC,GAChB,KAAKjc,MAAL,CAAYic,SAAZ,CAAsB9e,IAAtB,CAA2B,IAA3B,EAAiCqqB,GAAjC,EAAsC,KAAKlf,QAA3C,CADgB,GAEhB,KAAKtI,MAAL,CAAYic,SAFd;;EAIA,UAAM0M,UAAU,GAAG,KAAKC,cAAL,CAAoB3M,SAApB,CAAnB;;EACA,WAAK4M,mBAAL,CAAyBF,UAAzB;;EAEA,UAAMnR,SAAS,GAAG,KAAKsR,aAAL,EAAlB;;EACA9lB,MAAAA,IAAI,CAACC,OAAL,CAAaukB,GAAb,EAAkB,KAAKjf,WAAL,CAAiBC,QAAnC,EAA6C,IAA7C;;EAEA,UAAI,CAAC,KAAKF,QAAL,CAAckgB,aAAd,CAA4BnnB,eAA5B,CAA4C0I,QAA5C,CAAqD,KAAKyd,GAA1D,CAAL,EAAqE;EACnEhQ,QAAAA,SAAS,CAAC6H,WAAV,CAAsBmI,GAAtB;EACD;;EAEDhjB,MAAAA,YAAY,CAAC2C,OAAb,CAAqB,KAAKmB,QAA1B,EAAoC,KAAKC,WAAL,CAAiBrJ,KAAjB,CAAuBmnB,QAA3D;EAEA,WAAKzL,OAAL,GAAe,IAAIU,MAAJ,CAAW,KAAKhT,QAAhB,EAA0Bkf,GAA1B,EAA+B,KAAKhM,gBAAL,CAAsBmN,UAAtB,CAA/B,CAAf;EAEAnB,MAAAA,GAAG,CAAC3d,SAAJ,CAAc2J,GAAd,CAAkB0C,iBAAlB;EAEA,UAAMuP,WAAW,GAAG,OAAO,KAAKzlB,MAAL,CAAYylB,WAAnB,KAAmC,UAAnC,GAAgD,KAAKzlB,MAAL,CAAYylB,WAAZ,EAAhD,GAA4E,KAAKzlB,MAAL,CAAYylB,WAA5G;;EACA,UAAIA,WAAJ,EAAiB;EAAA;;EACf,0BAAA+B,GAAG,CAAC3d,SAAJ,EAAc2J,GAAd,uBAAqBiS,WAAW,CAAC1mB,KAAZ,CAAkB,GAAlB,CAArB;EACD,OA9C0C;EAiD3C;EACA;EACA;;;EACA,UAAI,kBAAkBpB,QAAQ,CAAC0D,eAA/B,EAAgD;EAAA;;EAC9C,oBAAGuL,MAAH,aAAajP,QAAQ,CAACoE,IAAT,CAAciL,QAA3B,EAAqC5M,OAArC,CAA6C,UAAAtC,OAAO,EAAI;EACtD0G,UAAAA,YAAY,CAACmC,EAAb,CAAgB7I,OAAhB,EAAyB,WAAzB,EAAsC4D,IAAI,EAA1C;EACD,SAFD;EAGD;;EAED,UAAMsW,QAAQ,GAAG,SAAXA,QAAW,GAAM;EACrB,YAAI,MAAI,CAAChY,MAAL,CAAYmlB,SAAhB,EAA2B;EACzB,UAAA,MAAI,CAAC4D,cAAL;EACD;;EAED,YAAMC,cAAc,GAAG,MAAI,CAAC1B,WAA5B;EACA,QAAA,MAAI,CAACA,WAAL,GAAmB,IAAnB;EAEA9iB,QAAAA,YAAY,CAAC2C,OAAb,CAAqB,MAAI,CAACmB,QAA1B,EAAoC,MAAI,CAACC,WAAL,CAAiBrJ,KAAjB,CAAuBknB,KAA3D;;EAEA,YAAI4C,cAAc,KAAKnC,eAAvB,EAAwC;EACtC,UAAA,MAAI,CAACqB,MAAL,CAAY,IAAZ,EAAkB,MAAlB;EACD;EACF,OAbD;;EAeA,UAAI,KAAKV,GAAL,CAAS3d,SAAT,CAAmBE,QAAnB,CAA4B4T,iBAA5B,CAAJ,EAAkD;EAChD,YAAMlf,kBAAkB,GAAGH,gCAAgC,CAAC,KAAKkpB,GAAN,CAA3D;EACAhjB,QAAAA,YAAY,CAACoC,GAAb,CAAiB,KAAK4gB,GAAtB,EAA2B1qB,cAA3B,EAA2Ckb,QAA3C;EACA3Y,QAAAA,oBAAoB,CAAC,KAAKmoB,GAAN,EAAW/oB,kBAAX,CAApB;EACD,OAJD,MAIO;EACLuZ,QAAAA,QAAQ;EACT;EACF;EACF;;WAEDZ,OAAA,gBAAO;EAAA;;EACL,QAAI,CAAC,KAAKwD,OAAV,EAAmB;EACjB;EACD;;EAED,QAAM4M,GAAG,GAAG,KAAKW,aAAL,EAAZ;;EACA,QAAMnQ,QAAQ,GAAG,SAAXA,QAAW,GAAM;EACrB,UAAI,MAAI,CAACsP,WAAL,KAAqBV,gBAArB,IAAyCY,GAAG,CAACzmB,UAAjD,EAA6D;EAC3DymB,QAAAA,GAAG,CAACzmB,UAAJ,CAAekJ,WAAf,CAA2Bud,GAA3B;EACD;;EAED,MAAA,MAAI,CAACyB,cAAL;;EACA,MAAA,MAAI,CAAC3gB,QAAL,CAAcgD,eAAd,CAA8B,kBAA9B;;EACA9G,MAAAA,YAAY,CAAC2C,OAAb,CAAqB,MAAI,CAACmB,QAA1B,EAAoC,MAAI,CAACC,WAAL,CAAiBrJ,KAAjB,CAAuBgnB,MAA3D;;EACA,MAAA,MAAI,CAACtL,OAAL,CAAae,OAAb;EACD,KATD;;EAWA,QAAMD,SAAS,GAAGlX,YAAY,CAAC2C,OAAb,CAAqB,KAAKmB,QAA1B,EAAoC,KAAKC,WAAL,CAAiBrJ,KAAjB,CAAuB+mB,IAA3D,CAAlB;;EACA,QAAIvK,SAAS,CAACjU,gBAAd,EAAgC;EAC9B;EACD;;EAED+f,IAAAA,GAAG,CAAC3d,SAAJ,CAAcC,MAAd,CAAqBoM,iBAArB,EAtBK;EAyBL;;EACA,QAAI,kBAAkBvY,QAAQ,CAAC0D,eAA/B,EAAgD;EAAA;;EAC9C,mBAAGuL,MAAH,cAAajP,QAAQ,CAACoE,IAAT,CAAciL,QAA3B,EACG5M,OADH,CACW,UAAAtC,OAAO;EAAA,eAAI0G,YAAY,CAACC,GAAb,CAAiB3G,OAAjB,EAA0B,WAA1B,EAAuC4D,IAAvC,CAAJ;EAAA,OADlB;EAED;;EAED,SAAK6lB,cAAL,CAAoBN,aAApB,IAAqC,KAArC;EACA,SAAKM,cAAL,CAAoBP,aAApB,IAAqC,KAArC;EACA,SAAKO,cAAL,CAAoBR,aAApB,IAAqC,KAArC;;EAEA,QAAI,KAAKS,GAAL,CAAS3d,SAAT,CAAmBE,QAAnB,CAA4B4T,iBAA5B,CAAJ,EAAkD;EAChD,UAAMlf,kBAAkB,GAAGH,gCAAgC,CAACkpB,GAAD,CAA3D;EAEAhjB,MAAAA,YAAY,CAACoC,GAAb,CAAiB4gB,GAAjB,EAAsB1qB,cAAtB,EAAsCkb,QAAtC;EACA3Y,MAAAA,oBAAoB,CAACmoB,GAAD,EAAM/oB,kBAAN,CAApB;EACD,KALD,MAKO;EACLuZ,MAAAA,QAAQ;EACT;;EAED,SAAKsP,WAAL,GAAmB,EAAnB;EACD;;WAED1L,SAAA,kBAAS;EACP,QAAI,KAAKhB,OAAL,KAAiB,IAArB,EAA2B;EACzB,WAAKA,OAAL,CAAaiB,cAAb;EACD;EACF;;;WAIDwM,gBAAA,yBAAgB;EACd,WAAOhiB,OAAO,CAAC,KAAK6iB,QAAL,EAAD,CAAd;EACD;;WAEDf,gBAAA,yBAAgB;EACd,QAAI,KAAKX,GAAT,EAAc;EACZ,aAAO,KAAKA,GAAZ;EACD;;EAED,QAAM1pB,OAAO,GAAGH,QAAQ,CAACkiB,aAAT,CAAuB,KAAvB,CAAhB;EACA/hB,IAAAA,OAAO,CAACinB,SAAR,GAAoB,KAAK/kB,MAAL,CAAYolB,QAAhC;EAEA,SAAKoC,GAAL,GAAW1pB,OAAO,CAACkP,QAAR,CAAiB,CAAjB,CAAX;EACA,WAAO,KAAKwa,GAAZ;EACD;;WAEDkB,aAAA,sBAAa;EACX,QAAMlB,GAAG,GAAG,KAAKW,aAAL,EAAZ;EACA,SAAKgB,iBAAL,CAAuB1c,cAAc,CAACM,OAAf,CAAuB+Z,sBAAvB,EAA+CU,GAA/C,CAAvB,EAA4E,KAAK0B,QAAL,EAA5E;EACA1B,IAAAA,GAAG,CAAC3d,SAAJ,CAAcC,MAAd,CAAqB6T,iBAArB,EAAsCzH,iBAAtC;EACD;;WAEDiT,oBAAA,2BAAkBrrB,OAAlB,EAA2BsrB,OAA3B,EAAoC;EAClC,QAAItrB,OAAO,KAAK,IAAhB,EAAsB;EACpB;EACD;;EAED,QAAI,OAAOsrB,OAAP,KAAmB,QAAnB,IAA+BjqB,SAAS,CAACiqB,OAAD,CAA5C,EAAuD;EACrD,UAAIA,OAAO,CAAC/Q,MAAZ,EAAoB;EAClB+Q,QAAAA,OAAO,GAAGA,OAAO,CAAC,CAAD,CAAjB;EACD,OAHoD;;;EAMrD,UAAI,KAAKppB,MAAL,CAAYulB,IAAhB,EAAsB;EACpB,YAAI6D,OAAO,CAACroB,UAAR,KAAuBjD,OAA3B,EAAoC;EAClCA,UAAAA,OAAO,CAACinB,SAAR,GAAoB,EAApB;EACAjnB,UAAAA,OAAO,CAACuhB,WAAR,CAAoB+J,OAApB;EACD;EACF,OALD,MAKO;EACLtrB,QAAAA,OAAO,CAACurB,WAAR,GAAsBD,OAAO,CAACC,WAA9B;EACD;;EAED;EACD;;EAED,QAAI,KAAKrpB,MAAL,CAAYulB,IAAhB,EAAsB;EACpB,UAAI,KAAKvlB,MAAL,CAAY0lB,QAAhB,EAA0B;EACxB0D,QAAAA,OAAO,GAAGnF,YAAY,CAACmF,OAAD,EAAU,KAAKppB,MAAL,CAAYmkB,SAAtB,EAAiC,KAAKnkB,MAAL,CAAYokB,UAA7C,CAAtB;EACD;;EAEDtmB,MAAAA,OAAO,CAACinB,SAAR,GAAoBqE,OAApB;EACD,KAND,MAMO;EACLtrB,MAAAA,OAAO,CAACurB,WAAR,GAAsBD,OAAtB;EACD;EACF;;WAEDF,WAAA,oBAAW;EACT,QAAI7D,KAAK,GAAG,KAAK/c,QAAL,CAActK,YAAd,CAA2B,wBAA3B,CAAZ;;EAEA,QAAI,CAACqnB,KAAL,EAAY;EACVA,MAAAA,KAAK,GAAG,OAAO,KAAKrlB,MAAL,CAAYqlB,KAAnB,KAA6B,UAA7B,GACN,KAAKrlB,MAAL,CAAYqlB,KAAZ,CAAkBloB,IAAlB,CAAuB,KAAKmL,QAA5B,CADM,GAEN,KAAKtI,MAAL,CAAYqlB,KAFd;EAGD;;EAED,WAAOA,KAAP;EACD;;WAEDiE,mBAAA,0BAAiBX,UAAjB,EAA6B;EAC3B,QAAIA,UAAU,KAAK,OAAnB,EAA4B;EAC1B,aAAO,KAAP;EACD;;EAED,QAAIA,UAAU,KAAK,MAAnB,EAA2B;EACzB,aAAO,OAAP;EACD;;EAED,WAAOA,UAAP;EACD;;;WAIDnN,mBAAA,0BAAiBmN,UAAjB,EAA6B;EAAA;;EAC3B,QAAMY,eAAe,GAAG;EACtBtN,MAAAA,SAAS,EAAE0M,UADW;EAEtBvM,MAAAA,SAAS,EAAE;EACTtQ,QAAAA,MAAM,EAAE,KAAKoQ,UAAL,EADC;EAET3B,QAAAA,IAAI,EAAE;EACJiP,UAAAA,QAAQ,EAAE,KAAKxpB,MAAL,CAAYwlB;EADlB,SAFG;EAKTiE,QAAAA,KAAK,EAAE;EACL3rB,UAAAA,OAAO,QAAM,KAAKyK,WAAL,CAAiBI,IAAvB;EADF,SALE;EAQT2T,QAAAA,eAAe,EAAE;EACfC,UAAAA,iBAAiB,EAAE,KAAKvc,MAAL,CAAYwa;EADhB;EARR,OAFW;EActBkP,MAAAA,QAAQ,EAAE,kBAAA/mB,IAAI,EAAI;EAChB,YAAIA,IAAI,CAACgnB,iBAAL,KAA2BhnB,IAAI,CAACsZ,SAApC,EAA+C;EAC7C,UAAA,MAAI,CAAC2N,4BAAL,CAAkCjnB,IAAlC;EACD;EACF,OAlBqB;EAmBtBknB,MAAAA,QAAQ,EAAE,kBAAAlnB,IAAI;EAAA,eAAI,MAAI,CAACinB,4BAAL,CAAkCjnB,IAAlC,CAAJ;EAAA;EAnBQ,KAAxB;EAsBA,wBACK4mB,eADL,EAEK,KAAKvpB,MAAL,CAAY0a,YAFjB;EAID;;WAEDmO,sBAAA,6BAAoBF,UAApB,EAAgC;EAC9B,SAAKR,aAAL,GAAqBte,SAArB,CAA+B2J,GAA/B,CAAsCwR,YAAtC,SAAsD,KAAKsE,gBAAL,CAAsBX,UAAtB,CAAtD;EACD;;WAEDzM,aAAA,sBAAa;EAAA;;EACX,QAAMpQ,MAAM,GAAG,EAAf;;EAEA,QAAI,OAAO,KAAK9L,MAAL,CAAY8L,MAAnB,KAA8B,UAAlC,EAA8C;EAC5CA,MAAAA,MAAM,CAAC3H,EAAP,GAAY,UAAAxB,IAAI,EAAI;EAClBA,QAAAA,IAAI,CAACwZ,OAAL,gBACKxZ,IAAI,CAACwZ,OADV,EAEM,MAAI,CAACnc,MAAL,CAAY8L,MAAZ,CAAmBnJ,IAAI,CAACwZ,OAAxB,EAAiC,MAAI,CAAC7T,QAAtC,KAAmD,EAFzD;EAKA,eAAO3F,IAAP;EACD,OAPD;EAQD,KATD,MASO;EACLmJ,MAAAA,MAAM,CAACA,MAAP,GAAgB,KAAK9L,MAAL,CAAY8L,MAA5B;EACD;;EAED,WAAOA,MAAP;EACD;;WAEDgd,gBAAA,yBAAgB;EACd,QAAI,KAAK9oB,MAAL,CAAYwX,SAAZ,KAA0B,KAA9B,EAAqC;EACnC,aAAO7Z,QAAQ,CAACoE,IAAhB;EACD;;EAED,QAAI5C,SAAS,CAAC,KAAKa,MAAL,CAAYwX,SAAb,CAAb,EAAsC;EACpC,aAAO,KAAKxX,MAAL,CAAYwX,SAAnB;EACD;;EAED,WAAO/K,cAAc,CAACM,OAAf,CAAuB,KAAK/M,MAAL,CAAYwX,SAAnC,CAAP;EACD;;WAEDoR,iBAAA,wBAAe3M,SAAf,EAA0B;EACxB,WAAO0J,aAAa,CAAC1J,SAAS,CAACrb,WAAV,EAAD,CAApB;EACD;;WAED6mB,gBAAA,yBAAgB;EAAA;;EACd,QAAMqC,QAAQ,GAAG,KAAK9pB,MAAL,CAAYmH,OAAZ,CAAoBpI,KAApB,CAA0B,GAA1B,CAAjB;EAEA+qB,IAAAA,QAAQ,CAAC1pB,OAAT,CAAiB,UAAA+G,OAAO,EAAI;EAC1B,UAAIA,OAAO,KAAK,OAAhB,EAAyB;EACvB3C,QAAAA,YAAY,CAACmC,EAAb,CAAgB,MAAI,CAAC2B,QAArB,EAA+B,MAAI,CAACC,WAAL,CAAiBrJ,KAAjB,CAAuBonB,KAAtD,EAA6D,MAAI,CAACtmB,MAAL,CAAYjC,QAAzE,EAAmF,UAAAsG,KAAK;EAAA,iBAAI,MAAI,CAACuG,MAAL,CAAYvG,KAAZ,CAAJ;EAAA,SAAxF;EAED,OAHD,MAGO,IAAI8C,OAAO,KAAK+f,cAAhB,EAAgC;EACrC,YAAM6C,OAAO,GAAG5iB,OAAO,KAAK4f,aAAZ,GACd,MAAI,CAACxe,WAAL,CAAiBrJ,KAAjB,CAAuBunB,UADT,GAEd,MAAI,CAACle,WAAL,CAAiBrJ,KAAjB,CAAuBqnB,OAFzB;EAGA,YAAMyD,QAAQ,GAAG7iB,OAAO,KAAK4f,aAAZ,GACf,MAAI,CAACxe,WAAL,CAAiBrJ,KAAjB,CAAuBwnB,UADR,GAEf,MAAI,CAACne,WAAL,CAAiBrJ,KAAjB,CAAuBsnB,QAFzB;EAIAhiB,QAAAA,YAAY,CAACmC,EAAb,CAAgB,MAAI,CAAC2B,QAArB,EAA+ByhB,OAA/B,EAAwC,MAAI,CAAC/pB,MAAL,CAAYjC,QAApD,EAA8D,UAAAsG,KAAK;EAAA,iBAAI,MAAI,CAAC4jB,MAAL,CAAY5jB,KAAZ,CAAJ;EAAA,SAAnE;EACAG,QAAAA,YAAY,CAACmC,EAAb,CAAgB,MAAI,CAAC2B,QAArB,EAA+B0hB,QAA/B,EAAyC,MAAI,CAAChqB,MAAL,CAAYjC,QAArD,EAA+D,UAAAsG,KAAK;EAAA,iBAAI,MAAI,CAAC6jB,MAAL,CAAY7jB,KAAZ,CAAJ;EAAA,SAApE;EACD;EACF,KAfD;;EAiBA,SAAK+jB,iBAAL,GAAyB,YAAM;EAC7B,UAAI,MAAI,CAAC9f,QAAT,EAAmB;EACjB,QAAA,MAAI,CAAC8O,IAAL;EACD;EACF,KAJD;;EAMA5S,IAAAA,YAAY,CAACmC,EAAb,CAAgB,KAAK2B,QAAL,CAAcsB,OAAd,OAA0B+c,gBAA1B,CAAhB,EAA+D,eAA/D,EAAgF,KAAKyB,iBAArF;;EAEA,QAAI,KAAKpoB,MAAL,CAAYjC,QAAhB,EAA0B;EACxB,WAAKiC,MAAL,gBACK,KAAKA,MADV;EAEEmH,QAAAA,OAAO,EAAE,QAFX;EAGEpJ,QAAAA,QAAQ,EAAE;EAHZ;EAKD,KAND,MAMO;EACL,WAAKksB,SAAL;EACD;EACF;;WAEDA,YAAA,qBAAY;EACV,QAAM5E,KAAK,GAAG,KAAK/c,QAAL,CAActK,YAAd,CAA2B,OAA3B,CAAd;;EACA,QAAMksB,iBAAiB,GAAG,OAAO,KAAK5hB,QAAL,CAActK,YAAd,CAA2B,wBAA3B,CAAjC;;EAEA,QAAIqnB,KAAK,IAAI6E,iBAAiB,KAAK,QAAnC,EAA6C;EAC3C,WAAK5hB,QAAL,CAAcuC,YAAd,CAA2B,wBAA3B,EAAqDwa,KAAK,IAAI,EAA9D;;EACA,UAAIA,KAAK,IAAI,CAAC,KAAK/c,QAAL,CAActK,YAAd,CAA2B,YAA3B,CAAV,IAAsD,CAAC,KAAKsK,QAAL,CAAc+gB,WAAzE,EAAsF;EACpF,aAAK/gB,QAAL,CAAcuC,YAAd,CAA2B,YAA3B,EAAyCwa,KAAzC;EACD;;EAED,WAAK/c,QAAL,CAAcuC,YAAd,CAA2B,OAA3B,EAAoC,EAApC;EACD;EACF;;WAEDod,SAAA,gBAAO5jB,KAAP,EAAcsY,OAAd,EAAuB;EACrB,QAAMkL,OAAO,GAAG,KAAKtf,WAAL,CAAiBC,QAAjC;EACAmU,IAAAA,OAAO,GAAGA,OAAO,IAAI3Z,IAAI,CAACG,OAAL,CAAakB,KAAK,CAACC,cAAnB,EAAmCujB,OAAnC,CAArB;;EAEA,QAAI,CAAClL,OAAL,EAAc;EACZA,MAAAA,OAAO,GAAG,IAAI,KAAKpU,WAAT,CACRlE,KAAK,CAACC,cADE,EAER,KAAKwjB,kBAAL,EAFQ,CAAV;EAIA9kB,MAAAA,IAAI,CAACC,OAAL,CAAaoB,KAAK,CAACC,cAAnB,EAAmCujB,OAAnC,EAA4ClL,OAA5C;EACD;;EAED,QAAItY,KAAJ,EAAW;EACTsY,MAAAA,OAAO,CAAC4K,cAAR,CACEljB,KAAK,CAACK,IAAN,KAAe,SAAf,GAA2BsiB,aAA3B,GAA2CD,aAD7C,IAEI,IAFJ;EAGD;;EAED,QAAIpK,OAAO,CAACwL,aAAR,GAAwBte,SAAxB,CAAkCE,QAAlC,CAA2CmM,iBAA3C,KAA+DyG,OAAO,CAAC2K,WAAR,KAAwBV,gBAA3F,EAA6G;EAC3GjK,MAAAA,OAAO,CAAC2K,WAAR,GAAsBV,gBAAtB;EACA;EACD;;EAEDvT,IAAAA,YAAY,CAACsJ,OAAO,CAAC0K,QAAT,CAAZ;EAEA1K,IAAAA,OAAO,CAAC2K,WAAR,GAAsBV,gBAAtB;;EAEA,QAAI,CAACjK,OAAO,CAAC3c,MAAR,CAAeslB,KAAhB,IAAyB,CAAC3I,OAAO,CAAC3c,MAAR,CAAeslB,KAAf,CAAqBjO,IAAnD,EAAyD;EACvDsF,MAAAA,OAAO,CAACtF,IAAR;EACA;EACD;;EAEDsF,IAAAA,OAAO,CAAC0K,QAAR,GAAmBxnB,UAAU,CAAC,YAAM;EAClC,UAAI8c,OAAO,CAAC2K,WAAR,KAAwBV,gBAA5B,EAA8C;EAC5CjK,QAAAA,OAAO,CAACtF,IAAR;EACD;EACF,KAJ4B,EAI1BsF,OAAO,CAAC3c,MAAR,CAAeslB,KAAf,CAAqBjO,IAJK,CAA7B;EAKD;;WAED6Q,SAAA,gBAAO7jB,KAAP,EAAcsY,OAAd,EAAuB;EACrB,QAAMkL,OAAO,GAAG,KAAKtf,WAAL,CAAiBC,QAAjC;EACAmU,IAAAA,OAAO,GAAGA,OAAO,IAAI3Z,IAAI,CAACG,OAAL,CAAakB,KAAK,CAACC,cAAnB,EAAmCujB,OAAnC,CAArB;;EAEA,QAAI,CAAClL,OAAL,EAAc;EACZA,MAAAA,OAAO,GAAG,IAAI,KAAKpU,WAAT,CACRlE,KAAK,CAACC,cADE,EAER,KAAKwjB,kBAAL,EAFQ,CAAV;EAIA9kB,MAAAA,IAAI,CAACC,OAAL,CAAaoB,KAAK,CAACC,cAAnB,EAAmCujB,OAAnC,EAA4ClL,OAA5C;EACD;;EAED,QAAItY,KAAJ,EAAW;EACTsY,MAAAA,OAAO,CAAC4K,cAAR,CACEljB,KAAK,CAACK,IAAN,KAAe,UAAf,GAA4BsiB,aAA5B,GAA4CD,aAD9C,IAEI,KAFJ;EAGD;;EAED,QAAIpK,OAAO,CAACqL,oBAAR,EAAJ,EAAoC;EAClC;EACD;;EAED3U,IAAAA,YAAY,CAACsJ,OAAO,CAAC0K,QAAT,CAAZ;EAEA1K,IAAAA,OAAO,CAAC2K,WAAR,GAAsBT,eAAtB;;EAEA,QAAI,CAAClK,OAAO,CAAC3c,MAAR,CAAeslB,KAAhB,IAAyB,CAAC3I,OAAO,CAAC3c,MAAR,CAAeslB,KAAf,CAAqBlO,IAAnD,EAAyD;EACvDuF,MAAAA,OAAO,CAACvF,IAAR;EACA;EACD;;EAEDuF,IAAAA,OAAO,CAAC0K,QAAR,GAAmBxnB,UAAU,CAAC,YAAM;EAClC,UAAI8c,OAAO,CAAC2K,WAAR,KAAwBT,eAA5B,EAA6C;EAC3ClK,QAAAA,OAAO,CAACvF,IAAR;EACD;EACF,KAJ4B,EAI1BuF,OAAO,CAAC3c,MAAR,CAAeslB,KAAf,CAAqBlO,IAJK,CAA7B;EAKD;;WAED4Q,uBAAA,gCAAuB;EACrB,SAAK,IAAM7gB,OAAX,IAAsB,KAAKogB,cAA3B,EAA2C;EACzC,UAAI,KAAKA,cAAL,CAAoBpgB,OAApB,CAAJ,EAAkC;EAChC,eAAO,IAAP;EACD;EACF;;EAED,WAAO,KAAP;EACD;;WAEDiK,aAAA,oBAAWpR,MAAX,EAAmB;EACjB,QAAMmqB,cAAc,GAAGhf,WAAW,CAACI,iBAAZ,CAA8B,KAAKjD,QAAnC,CAAvB;EAEApI,IAAAA,MAAM,CAACC,IAAP,CAAYgqB,cAAZ,EAA4B/pB,OAA5B,CAAoC,UAAAgqB,QAAQ,EAAI;EAC9C,UAAIlF,qBAAqB,CAAClf,GAAtB,CAA0BokB,QAA1B,CAAJ,EAAyC;EACvC,eAAOD,cAAc,CAACC,QAAD,CAArB;EACD;EACF,KAJD;;EAMA,QAAIpqB,MAAM,IAAI,OAAOA,MAAM,CAACwX,SAAd,KAA4B,QAAtC,IAAkDxX,MAAM,CAACwX,SAAP,CAAiBa,MAAvE,EAA+E;EAC7ErY,MAAAA,MAAM,CAACwX,SAAP,GAAmBxX,MAAM,CAACwX,SAAP,CAAiB,CAAjB,CAAnB;EACD;;EAEDxX,IAAAA,MAAM,gBACD,KAAKuI,WAAL,CAAiByF,OADhB,EAEDmc,cAFC,EAGA,OAAOnqB,MAAP,KAAkB,QAAlB,IAA8BA,MAA9B,GAAuCA,MAAvC,GAAgD,EAHhD,CAAN;;EAMA,QAAI,OAAOA,MAAM,CAACslB,KAAd,KAAwB,QAA5B,EAAsC;EACpCtlB,MAAAA,MAAM,CAACslB,KAAP,GAAe;EACbjO,QAAAA,IAAI,EAAErX,MAAM,CAACslB,KADA;EAEblO,QAAAA,IAAI,EAAEpX,MAAM,CAACslB;EAFA,OAAf;EAID;;EAED,QAAI,OAAOtlB,MAAM,CAACqlB,KAAd,KAAwB,QAA5B,EAAsC;EACpCrlB,MAAAA,MAAM,CAACqlB,KAAP,GAAerlB,MAAM,CAACqlB,KAAP,CAAanoB,QAAb,EAAf;EACD;;EAED,QAAI,OAAO8C,MAAM,CAACopB,OAAd,KAA0B,QAA9B,EAAwC;EACtCppB,MAAAA,MAAM,CAACopB,OAAP,GAAiBppB,MAAM,CAACopB,OAAP,CAAelsB,QAAf,EAAjB;EACD;;EAED4C,IAAAA,eAAe,CAAC6I,MAAD,EAAO3I,MAAP,EAAe,KAAKuI,WAAL,CAAiBgG,WAAhC,CAAf;;EAEA,QAAIvO,MAAM,CAAC0lB,QAAX,EAAqB;EACnB1lB,MAAAA,MAAM,CAAColB,QAAP,GAAkBnB,YAAY,CAACjkB,MAAM,CAAColB,QAAR,EAAkBplB,MAAM,CAACmkB,SAAzB,EAAoCnkB,MAAM,CAACokB,UAA3C,CAA9B;EACD;;EAED,WAAOpkB,MAAP;EACD;;WAED8nB,qBAAA,8BAAqB;EACnB,QAAM9nB,MAAM,GAAG,EAAf;;EAEA,QAAI,KAAKA,MAAT,EAAiB;EACf,WAAK,IAAM0C,GAAX,IAAkB,KAAK1C,MAAvB,EAA+B;EAC7B,YAAI,KAAKuI,WAAL,CAAiByF,OAAjB,CAAyBtL,GAAzB,MAAkC,KAAK1C,MAAL,CAAY0C,GAAZ,CAAtC,EAAwD;EACtD1C,UAAAA,MAAM,CAAC0C,GAAD,CAAN,GAAc,KAAK1C,MAAL,CAAY0C,GAAZ,CAAd;EACD;EACF;EACF;;EAED,WAAO1C,MAAP;EACD;;WAEDipB,iBAAA,0BAAiB;EACf,QAAMzB,GAAG,GAAG,KAAKW,aAAL,EAAZ;EACA,QAAMkC,QAAQ,GAAG7C,GAAG,CAACxpB,YAAJ,CAAiB,OAAjB,EAA0BZ,KAA1B,CAAgC6nB,kBAAhC,CAAjB;;EACA,QAAIoF,QAAQ,KAAK,IAAb,IAAqBA,QAAQ,CAACplB,MAAT,GAAkB,CAA3C,EAA8C;EAC5ColB,MAAAA,QAAQ,CAACC,GAAT,CAAa,UAAAC,KAAK;EAAA,eAAIA,KAAK,CAACrsB,IAAN,EAAJ;EAAA,OAAlB,EACGkC,OADH,CACW,UAAAoqB,MAAM;EAAA,eAAIhD,GAAG,CAAC3d,SAAJ,CAAcC,MAAd,CAAqB0gB,MAArB,CAAJ;EAAA,OADjB;EAED;EACF;;WAEDZ,+BAAA,sCAA6Ba,UAA7B,EAAyC;EACvC,SAAKjD,GAAL,GAAWiD,UAAU,CAACvnB,QAAX,CAAoBwnB,MAA/B;;EACA,SAAKzB,cAAL;;EACA,SAAKJ,mBAAL,CAAyB,KAAKD,cAAL,CAAoB6B,UAAU,CAACxO,SAA/B,CAAzB;EACD;;WAED8M,iBAAA,0BAAiB;EACf,QAAMvB,GAAG,GAAG,KAAKW,aAAL,EAAZ;EACA,QAAMwC,mBAAmB,GAAG,KAAK3qB,MAAL,CAAYmlB,SAAxC;;EACA,QAAIqC,GAAG,CAACxpB,YAAJ,CAAiB,aAAjB,MAAoC,IAAxC,EAA8C;EAC5C;EACD;;EAEDwpB,IAAAA,GAAG,CAAC3d,SAAJ,CAAcC,MAAd,CAAqB6T,iBAArB;EACA,SAAK3d,MAAL,CAAYmlB,SAAZ,GAAwB,KAAxB;EACA,SAAK/N,IAAL;EACA,SAAKC,IAAL;EACA,SAAKrX,MAAL,CAAYmlB,SAAZ,GAAwBwF,mBAAxB;EACD;;;YAIMzgB,kBAAP,yBAAuBlK,MAAvB,EAA+B;EAC7B,WAAO,KAAKmK,IAAL,CAAU,YAAY;EAC3B,UAAIxH,IAAI,GAAGK,IAAI,CAACG,OAAL,CAAa,IAAb,EAAmBqF,UAAnB,CAAX;;EACA,UAAM2I,OAAO,GAAG,OAAOnR,MAAP,KAAkB,QAAlB,IAA8BA,MAA9C;;EAEA,UAAI,CAAC2C,IAAD,IAAS,eAAejC,IAAf,CAAoBV,MAApB,CAAb,EAA0C;EACxC;EACD;;EAED,UAAI,CAAC2C,IAAL,EAAW;EACTA,QAAAA,IAAI,GAAG,IAAIwkB,OAAJ,CAAY,IAAZ,EAAkBhW,OAAlB,CAAP;EACD;;EAED,UAAI,OAAOnR,MAAP,KAAkB,QAAtB,EAAgC;EAC9B,YAAI,OAAO2C,IAAI,CAAC3C,MAAD,CAAX,KAAwB,WAA5B,EAAyC;EACvC,gBAAM,IAAIwV,SAAJ,wBAAkCxV,MAAlC,QAAN;EACD;;EAED2C,QAAAA,IAAI,CAAC3C,MAAD,CAAJ;EACD;EACF,KAnBM,CAAP;EAoBD;;;;0BA3nBoB;EACnB,aAAOgO,SAAP;EACD;;;0BAEiB;EAChB,aAAOrF,MAAP;EACD;;;0BAEqB;EACpB,aAAOH,UAAP;EACD;;;0BAEkB;EACjB,aAAOtJ,OAAP;EACD;;;0BAEsB;EACrB,aAAO0J,WAAP;EACD;;;0BAEwB;EACvB,aAAO2F,aAAP;EACD;;;;IA9CmBlG;EAspBtB;EACA;EACA;EACA;EACA;EACA;;;EAEApG,kBAAkB,CAAC,YAAM;EACvB,MAAMoF,CAAC,GAAGxF,SAAS,EAAnB;EACA;;EACA,MAAIwF,CAAJ,EAAO;EACL,QAAMiD,kBAAkB,GAAGjD,CAAC,CAAClD,EAAF,CAAKwE,MAAL,CAA3B;EACAtB,IAAAA,CAAC,CAAClD,EAAF,CAAKwE,MAAL,IAAawe,OAAO,CAACjd,eAArB;EACA7C,IAAAA,CAAC,CAAClD,EAAF,CAAKwE,MAAL,EAAW4B,WAAX,GAAyB4c,OAAzB;;EACA9f,IAAAA,CAAC,CAAClD,EAAF,CAAKwE,MAAL,EAAW6B,UAAX,GAAwB,YAAM;EAC5BnD,MAAAA,CAAC,CAAClD,EAAF,CAAKwE,MAAL,IAAa2B,kBAAb;EACA,aAAO6c,OAAO,CAACjd,eAAf;EACD,KAHD;EAID;EACF,CAZiB,CAAlB;;ECjxBA;EACA;EACA;EACA;EACA;;EAEA,IAAMvB,MAAI,GAAG,SAAb;EACA,IAAMH,UAAQ,GAAG,YAAjB;EACA,IAAMI,WAAS,SAAOJ,UAAtB;EACA,IAAMwc,cAAY,GAAG,YAArB;EACA,IAAMC,oBAAkB,GAAG,IAAIxkB,MAAJ,aAAqBukB,cAArB,WAAyC,GAAzC,CAA3B;;EAEA,IAAMhX,SAAO,gBACRmZ,OAAO,CAACnZ,OADA;EAEXiO,EAAAA,SAAS,EAAE,OAFA;EAGX9U,EAAAA,OAAO,EAAE,OAHE;EAIXiiB,EAAAA,OAAO,EAAE,EAJE;EAKXhE,EAAAA,QAAQ,EAAE,yCACE,mCADF,GAEI,kCAFJ,GAGE,kCAHF,GAIA;EATC,EAAb;;EAYA,IAAM7W,aAAW,gBACZ4Y,OAAO,CAAC5Y,WADI;EAEf6a,EAAAA,OAAO,EAAE;EAFM,EAAjB;;EAKA,IAAMlqB,OAAK,GAAG;EACZ+mB,EAAAA,IAAI,WAASrd,WADD;EAEZsd,EAAAA,MAAM,aAAWtd,WAFL;EAGZud,EAAAA,IAAI,WAASvd,WAHD;EAIZwd,EAAAA,KAAK,YAAUxd,WAJH;EAKZyd,EAAAA,QAAQ,eAAazd,WALT;EAMZ0d,EAAAA,KAAK,YAAU1d,WANH;EAOZ2d,EAAAA,OAAO,cAAY3d,WAPP;EAQZ4d,EAAAA,QAAQ,eAAa5d,WART;EASZ6d,EAAAA,UAAU,iBAAe7d,WATb;EAUZ8d,EAAAA,UAAU,iBAAe9d;EAVb,CAAd;EAaA,IAAM+U,iBAAe,GAAG,MAAxB;EACA,IAAMzH,iBAAe,GAAG,MAAxB;EAEA,IAAM0U,cAAc,GAAG,iBAAvB;EACA,IAAMC,gBAAgB,GAAG,eAAzB;EAEA;EACA;EACA;EACA;EACA;;MAEMC;;;;;;;;;EA2BJ;WAEAzC,gBAAA,yBAAgB;EACd,WAAO,KAAKa,QAAL,MAAmB,KAAK6B,WAAL,EAA1B;EACD;;WAEDrC,aAAA,sBAAa;EACX,QAAMlB,GAAG,GAAG,KAAKW,aAAL,EAAZ,CADW;;EAIX,SAAKgB,iBAAL,CAAuB1c,cAAc,CAACM,OAAf,CAAuB6d,cAAvB,EAAuCpD,GAAvC,CAAvB,EAAoE,KAAK0B,QAAL,EAApE;;EACA,QAAIE,OAAO,GAAG,KAAK2B,WAAL,EAAd;;EACA,QAAI,OAAO3B,OAAP,KAAmB,UAAvB,EAAmC;EACjCA,MAAAA,OAAO,GAAGA,OAAO,CAACjsB,IAAR,CAAa,KAAKmL,QAAlB,CAAV;EACD;;EAED,SAAK6gB,iBAAL,CAAuB1c,cAAc,CAACM,OAAf,CAAuB8d,gBAAvB,EAAyCrD,GAAzC,CAAvB,EAAsE4B,OAAtE;EAEA5B,IAAAA,GAAG,CAAC3d,SAAJ,CAAcC,MAAd,CAAqB6T,iBAArB,EAAsCzH,iBAAtC;EACD;;;WAID2S,sBAAA,6BAAoBF,UAApB,EAAgC;EAC9B,SAAKR,aAAL,GAAqBte,SAArB,CAA+B2J,GAA/B,CAAsCwR,cAAtC,SAAsD,KAAKsE,gBAAL,CAAsBX,UAAtB,CAAtD;EACD;;WAEDoC,cAAA,uBAAc;EACZ,WAAO,KAAKziB,QAAL,CAActK,YAAd,CAA2B,iBAA3B,KAAiD,KAAKgC,MAAL,CAAYopB,OAApE;EACD;;WAEDH,iBAAA,0BAAiB;EACf,QAAMzB,GAAG,GAAG,KAAKW,aAAL,EAAZ;EACA,QAAMkC,QAAQ,GAAG7C,GAAG,CAACxpB,YAAJ,CAAiB,OAAjB,EAA0BZ,KAA1B,CAAgC6nB,oBAAhC,CAAjB;;EACA,QAAIoF,QAAQ,KAAK,IAAb,IAAqBA,QAAQ,CAACplB,MAAT,GAAkB,CAA3C,EAA8C;EAC5ColB,MAAAA,QAAQ,CAACC,GAAT,CAAa,UAAAC,KAAK;EAAA,eAAIA,KAAK,CAACrsB,IAAN,EAAJ;EAAA,OAAlB,EACGkC,OADH,CACW,UAAAoqB,MAAM;EAAA,eAAIhD,GAAG,CAAC3d,SAAJ,CAAcC,MAAd,CAAqB0gB,MAArB,CAAJ;EAAA,OADjB;EAED;EACF;;;YAIMtgB,kBAAP,yBAAuBlK,MAAvB,EAA+B;EAC7B,WAAO,KAAKmK,IAAL,CAAU,YAAY;EAC3B,UAAIxH,IAAI,GAAGK,IAAI,CAACG,OAAL,CAAa,IAAb,EAAmBqF,UAAnB,CAAX;;EACA,UAAM2I,OAAO,GAAG,OAAOnR,MAAP,KAAkB,QAAlB,GAA6BA,MAA7B,GAAsC,IAAtD;;EAEA,UAAI,CAAC2C,IAAD,IAAS,eAAejC,IAAf,CAAoBV,MAApB,CAAb,EAA0C;EACxC;EACD;;EAED,UAAI,CAAC2C,IAAL,EAAW;EACTA,QAAAA,IAAI,GAAG,IAAImoB,OAAJ,CAAY,IAAZ,EAAkB3Z,OAAlB,CAAP;EACAnO,QAAAA,IAAI,CAACC,OAAL,CAAa,IAAb,EAAmBuF,UAAnB,EAA6B7F,IAA7B;EACD;;EAED,UAAI,OAAO3C,MAAP,KAAkB,QAAtB,EAAgC;EAC9B,YAAI,OAAO2C,IAAI,CAAC3C,MAAD,CAAX,KAAwB,WAA5B,EAAyC;EACvC,gBAAM,IAAIwV,SAAJ,wBAAkCxV,MAAlC,QAAN;EACD;;EAED2C,QAAAA,IAAI,CAAC3C,MAAD,CAAJ;EACD;EACF,KApBM,CAAP;EAqBD;;;;EA1FD;0BAEqB;EACnB,aAAOgO,SAAP;EACD;;;0BAEiB;EAChB,aAAOrF,MAAP;EACD;;;0BAEqB;EACpB,aAAOH,UAAP;EACD;;;0BAEkB;EACjB,aAAOtJ,OAAP;EACD;;;0BAEsB;EACrB,aAAO0J,WAAP;EACD;;;0BAEwB;EACvB,aAAO2F,aAAP;EACD;;;;IAzBmB4Y;EA8FtB;EACA;EACA;EACA;EACA;EACA;;;EAEAllB,kBAAkB,CAAC,YAAM;EACvB,MAAMoF,CAAC,GAAGxF,SAAS,EAAnB;EACA;;EACA,MAAIwF,CAAJ,EAAO;EACL,QAAMiD,kBAAkB,GAAGjD,CAAC,CAAClD,EAAF,CAAKwE,MAAL,CAA3B;EACAtB,IAAAA,CAAC,CAAClD,EAAF,CAAKwE,MAAL,IAAamiB,OAAO,CAAC5gB,eAArB;EACA7C,IAAAA,CAAC,CAAClD,EAAF,CAAKwE,MAAL,EAAW4B,WAAX,GAAyBugB,OAAzB;;EACAzjB,IAAAA,CAAC,CAAClD,EAAF,CAAKwE,MAAL,EAAW6B,UAAX,GAAwB,YAAM;EAC5BnD,MAAAA,CAAC,CAAClD,EAAF,CAAKwE,MAAL,IAAa2B,kBAAb;EACA,aAAOwgB,OAAO,CAAC5gB,eAAf;EACD,KAHD;EAID;EACF,CAZiB,CAAlB;;EClJA;EACA;EACA;EACA;EACA;;EAEA,IAAMvB,MAAI,GAAG,WAAb;EACA,IAAMH,UAAQ,GAAG,cAAjB;EACA,IAAMI,WAAS,SAAOJ,UAAtB;EACA,IAAMK,cAAY,GAAG,WAArB;EAEA,IAAMmF,SAAO,GAAG;EACdlC,EAAAA,MAAM,EAAE,EADM;EAEdkf,EAAAA,MAAM,EAAE,MAFM;EAGdjmB,EAAAA,MAAM,EAAE;EAHM,CAAhB;EAMA,IAAMwJ,aAAW,GAAG;EAClBzC,EAAAA,MAAM,EAAE,QADU;EAElBkf,EAAAA,MAAM,EAAE,QAFU;EAGlBjmB,EAAAA,MAAM,EAAE;EAHU,CAApB;EAMA,IAAMkmB,cAAc,gBAAcriB,WAAlC;EACA,IAAMsiB,YAAY,cAAYtiB,WAA9B;EACA,IAAM2G,qBAAmB,YAAU3G,WAAV,GAAsBC,cAA/C;EAEA,IAAMsiB,wBAAwB,GAAG,eAAjC;EACA,IAAM1gB,mBAAiB,GAAG,QAA1B;EAEA,IAAM2gB,iBAAiB,GAAG,wBAA1B;EACA,IAAMC,uBAAuB,GAAG,mBAAhC;EACA,IAAMC,kBAAkB,GAAG,WAA3B;EACA,IAAMC,kBAAkB,GAAG,WAA3B;EACA,IAAMC,mBAAmB,GAAG,kBAA5B;EACA,IAAMC,iBAAiB,GAAG,WAA1B;EACA,IAAMC,wBAAwB,GAAG,kBAAjC;EAEA,IAAMC,aAAa,GAAG,QAAtB;EACA,IAAMC,eAAe,GAAG,UAAxB;EAEA;EACA;EACA;EACA;EACA;;MAEMC;;;EACJ,qBAAY/tB,OAAZ,EAAqBkC,MAArB,EAA6B;EAAA;;EAC3B,sCAAMlC,OAAN;EACA,UAAKguB,cAAL,GAAsBhuB,OAAO,CAAC2V,OAAR,KAAoB,MAApB,GAA6BlV,MAA7B,GAAsCT,OAA5D;EACA,UAAKqT,OAAL,GAAe,MAAKC,UAAL,CAAgBpR,MAAhB,CAAf;EACA,UAAKgX,SAAL,GAAoB,MAAK7F,OAAL,CAAapM,MAAjC,SAA2CumB,kBAA3C,UAAkE,MAAKna,OAAL,CAAapM,MAA/E,SAAyFymB,mBAAzF,UAAiH,MAAKra,OAAL,CAAapM,MAA9H,UAAyIomB,wBAAzI;EACA,UAAKY,QAAL,GAAgB,EAAhB;EACA,UAAKC,QAAL,GAAgB,EAAhB;EACA,UAAKC,aAAL,GAAqB,IAArB;EACA,UAAKC,aAAL,GAAqB,CAArB;EAEA1nB,IAAAA,YAAY,CAACmC,EAAb,CAAgB,MAAKmlB,cAArB,EAAqCZ,YAArC,EAAmD,UAAA7mB,KAAK;EAAA,aAAI,MAAK8nB,QAAL,CAAc9nB,KAAd,CAAJ;EAAA,KAAxD;;EAEA,UAAK+nB,OAAL;;EACA,UAAKD,QAAL;;EAb2B;EAc5B;;;;;EAYD;WAEAC,UAAA,mBAAU;EAAA;;EACR,QAAMC,UAAU,GAAG,KAAKP,cAAL,KAAwB,KAAKA,cAAL,CAAoBvtB,MAA5C,GACjBotB,aADiB,GAEjBC,eAFF;EAIA,QAAMU,YAAY,GAAG,KAAKnb,OAAL,CAAa6Z,MAAb,KAAwB,MAAxB,GACnBqB,UADmB,GAEnB,KAAKlb,OAAL,CAAa6Z,MAFf;EAIA,QAAMuB,UAAU,GAAGD,YAAY,KAAKV,eAAjB,GACjB,KAAKY,aAAL,EADiB,GAEjB,CAFF;EAIA,SAAKT,QAAL,GAAgB,EAAhB;EACA,SAAKC,QAAL,GAAgB,EAAhB;EACA,SAAKE,aAAL,GAAqB,KAAKO,gBAAL,EAArB;EAEA,QAAMC,OAAO,GAAGjgB,cAAc,CAACE,IAAf,CAAoB,KAAKqK,SAAzB,CAAhB;EAEA0V,IAAAA,OAAO,CAACpC,GAAR,CAAY,UAAAxsB,OAAO,EAAI;EACrB,UAAM6uB,cAAc,GAAGxuB,sBAAsB,CAACL,OAAD,CAA7C;EACA,UAAMiH,MAAM,GAAG4nB,cAAc,GAAGlgB,cAAc,CAACM,OAAf,CAAuB4f,cAAvB,CAAH,GAA4C,IAAzE;;EAEA,UAAI5nB,MAAJ,EAAY;EACV,YAAM6nB,SAAS,GAAG7nB,MAAM,CAACiH,qBAAP,EAAlB;;EACA,YAAI4gB,SAAS,CAACtL,KAAV,IAAmBsL,SAAS,CAACC,MAAjC,EAAyC;EACvC,iBAAO,CACL1hB,WAAW,CAACmhB,YAAD,CAAX,CAA0BvnB,MAA1B,EAAkCkH,GAAlC,GAAwCsgB,UADnC,EAELI,cAFK,CAAP;EAID;EACF;;EAED,aAAO,IAAP;EACD,KAfD,EAgBGjhB,MAhBH,CAgBU,UAAAohB,IAAI;EAAA,aAAIA,IAAJ;EAAA,KAhBd,EAiBGC,IAjBH,CAiBQ,UAAC1K,CAAD,EAAIE,CAAJ;EAAA,aAAUF,CAAC,CAAC,CAAD,CAAD,GAAOE,CAAC,CAAC,CAAD,CAAlB;EAAA,KAjBR,EAkBGniB,OAlBH,CAkBW,UAAA0sB,IAAI,EAAI;EACf,MAAA,MAAI,CAACf,QAAL,CAAcze,IAAd,CAAmBwf,IAAI,CAAC,CAAD,CAAvB;;EACA,MAAA,MAAI,CAACd,QAAL,CAAc1e,IAAd,CAAmBwf,IAAI,CAAC,CAAD,CAAvB;EACD,KArBH;EAsBD;;WAEDrkB,UAAA,mBAAU;EACR,6BAAMA,OAAN;;EACAjE,IAAAA,YAAY,CAACC,GAAb,CAAiB,KAAKqnB,cAAtB,EAAsCljB,WAAtC;EAEA,SAAKkjB,cAAL,GAAsB,IAAtB;EACA,SAAK3a,OAAL,GAAe,IAAf;EACA,SAAK6F,SAAL,GAAiB,IAAjB;EACA,SAAK+U,QAAL,GAAgB,IAAhB;EACA,SAAKC,QAAL,GAAgB,IAAhB;EACA,SAAKC,aAAL,GAAqB,IAArB;EACA,SAAKC,aAAL,GAAqB,IAArB;EACD;;;WAID9a,aAAA,oBAAWpR,MAAX,EAAmB;EACjBA,IAAAA,MAAM,gBACDgO,SADC,EAEA,OAAOhO,MAAP,KAAkB,QAAlB,IAA8BA,MAA9B,GAAuCA,MAAvC,GAAgD,EAFhD,CAAN;;EAKA,QAAI,OAAOA,MAAM,CAAC+E,MAAd,KAAyB,QAAzB,IAAqC5F,SAAS,CAACa,MAAM,CAAC+E,MAAR,CAAlD,EAAmE;EAAA,UAC3DvC,EAD2D,GACpDxC,MAAM,CAAC+E,MAD6C,CAC3DvC,EAD2D;;EAEjE,UAAI,CAACA,EAAL,EAAS;EACPA,QAAAA,EAAE,GAAGlF,MAAM,CAACqL,MAAD,CAAX;EACA3I,QAAAA,MAAM,CAAC+E,MAAP,CAAcvC,EAAd,GAAmBA,EAAnB;EACD;;EAEDxC,MAAAA,MAAM,CAAC+E,MAAP,SAAoBvC,EAApB;EACD;;EAED1C,IAAAA,eAAe,CAAC6I,MAAD,EAAO3I,MAAP,EAAeuO,aAAf,CAAf;EAEA,WAAOvO,MAAP;EACD;;WAEDwsB,gBAAA,yBAAgB;EACd,WAAO,KAAKV,cAAL,KAAwBvtB,MAAxB,GACL,KAAKutB,cAAL,CAAoBkB,WADf,GAEL,KAAKlB,cAAL,CAAoB5f,SAFtB;EAGD;;WAEDugB,mBAAA,4BAAmB;EACjB,WAAO,KAAKX,cAAL,CAAoB3L,YAApB,IAAoC3iB,IAAI,CAACyvB,GAAL,CACzCtvB,QAAQ,CAACoE,IAAT,CAAcoe,YAD2B,EAEzCxiB,QAAQ,CAAC0D,eAAT,CAAyB8e,YAFgB,CAA3C;EAID;;WAED+M,mBAAA,4BAAmB;EACjB,WAAO,KAAKpB,cAAL,KAAwBvtB,MAAxB,GACLA,MAAM,CAAC4uB,WADF,GAEL,KAAKrB,cAAL,CAAoB9f,qBAApB,GAA4C6gB,MAF9C;EAGD;;WAEDV,WAAA,oBAAW;EACT,QAAMjgB,SAAS,GAAG,KAAKsgB,aAAL,KAAuB,KAAKrb,OAAL,CAAarF,MAAtD;;EACA,QAAMqU,YAAY,GAAG,KAAKsM,gBAAL,EAArB;;EACA,QAAMW,SAAS,GAAG,KAAKjc,OAAL,CAAarF,MAAb,GAAsBqU,YAAtB,GAAqC,KAAK+M,gBAAL,EAAvD;;EAEA,QAAI,KAAKhB,aAAL,KAAuB/L,YAA3B,EAAyC;EACvC,WAAKiM,OAAL;EACD;;EAED,QAAIlgB,SAAS,IAAIkhB,SAAjB,EAA4B;EAC1B,UAAMroB,MAAM,GAAG,KAAKinB,QAAL,CAAc,KAAKA,QAAL,CAAc/mB,MAAd,GAAuB,CAArC,CAAf;;EAEA,UAAI,KAAKgnB,aAAL,KAAuBlnB,MAA3B,EAAmC;EACjC,aAAKsoB,SAAL,CAAetoB,MAAf;EACD;;EAED;EACD;;EAED,QAAI,KAAKknB,aAAL,IAAsB/f,SAAS,GAAG,KAAK6f,QAAL,CAAc,CAAd,CAAlC,IAAsD,KAAKA,QAAL,CAAc,CAAd,IAAmB,CAA7E,EAAgF;EAC9E,WAAKE,aAAL,GAAqB,IAArB;;EACA,WAAKqB,MAAL;;EACA;EACD;;EAED,SAAK,IAAItoB,CAAC,GAAG,KAAK+mB,QAAL,CAAc9mB,MAA3B,EAAmCD,CAAC,EAApC,GAAyC;EACvC,UAAMuoB,cAAc,GAAG,KAAKtB,aAAL,KAAuB,KAAKD,QAAL,CAAchnB,CAAd,CAAvB,IACnBkH,SAAS,IAAI,KAAK6f,QAAL,CAAc/mB,CAAd,CADM,KAElB,OAAO,KAAK+mB,QAAL,CAAc/mB,CAAC,GAAG,CAAlB,CAAP,KAAgC,WAAhC,IAA+CkH,SAAS,GAAG,KAAK6f,QAAL,CAAc/mB,CAAC,GAAG,CAAlB,CAFzC,CAAvB;;EAIA,UAAIuoB,cAAJ,EAAoB;EAClB,aAAKF,SAAL,CAAe,KAAKrB,QAAL,CAAchnB,CAAd,CAAf;EACD;EACF;EACF;;WAEDqoB,YAAA,mBAAUtoB,MAAV,EAAkB;EAChB,SAAKknB,aAAL,GAAqBlnB,MAArB;;EAEA,SAAKuoB,MAAL;;EAEA,QAAME,OAAO,GAAG,KAAKxW,SAAL,CAAejY,KAAf,CAAqB,GAArB,EACburB,GADa,CACT,UAAAvsB,QAAQ;EAAA,aAAOA,QAAP,0BAAmCgH,MAAnC,YAA+ChH,QAA/C,gBAAiEgH,MAAjE;EAAA,KADC,CAAhB;;EAGA,QAAM0oB,IAAI,GAAGhhB,cAAc,CAACM,OAAf,CAAuBygB,OAAO,CAACE,IAAR,CAAa,GAAb,CAAvB,CAAb;;EAEA,QAAID,IAAI,CAAC5jB,SAAL,CAAeE,QAAf,CAAwBohB,wBAAxB,CAAJ,EAAuD;EACrD1e,MAAAA,cAAc,CAACM,OAAf,CAAuB2e,wBAAvB,EAAiD+B,IAAI,CAAC7jB,OAAL,CAAa6hB,iBAAb,CAAjD,EACG5hB,SADH,CACa2J,GADb,CACiB/I,mBADjB;EAGAgjB,MAAAA,IAAI,CAAC5jB,SAAL,CAAe2J,GAAf,CAAmB/I,mBAAnB;EACD,KALD,MAKO;EACL;EACAgjB,MAAAA,IAAI,CAAC5jB,SAAL,CAAe2J,GAAf,CAAmB/I,mBAAnB;EAEAgC,MAAAA,cAAc,CAACS,OAAf,CAAuBugB,IAAvB,EAA6BpC,uBAA7B,EACGjrB,OADH,CACW,UAAAutB,SAAS,EAAI;EACpB;EACA;EACAlhB,QAAAA,cAAc,CAACc,IAAf,CAAoBogB,SAApB,EAAkCrC,kBAAlC,UAAyDE,mBAAzD,EACGprB,OADH,CACW,UAAA0sB,IAAI;EAAA,iBAAIA,IAAI,CAACjjB,SAAL,CAAe2J,GAAf,CAAmB/I,mBAAnB,CAAJ;EAAA,SADf,EAHoB;;EAOpBgC,QAAAA,cAAc,CAACc,IAAf,CAAoBogB,SAApB,EAA+BpC,kBAA/B,EACGnrB,OADH,CACW,UAAAwtB,OAAO,EAAI;EAClBnhB,UAAAA,cAAc,CAACO,QAAf,CAAwB4gB,OAAxB,EAAiCtC,kBAAjC,EACGlrB,OADH,CACW,UAAA0sB,IAAI;EAAA,mBAAIA,IAAI,CAACjjB,SAAL,CAAe2J,GAAf,CAAmB/I,mBAAnB,CAAJ;EAAA,WADf;EAED,SAJH;EAKD,OAbH;EAcD;;EAEDjG,IAAAA,YAAY,CAAC2C,OAAb,CAAqB,KAAK2kB,cAA1B,EAA0Cb,cAA1C,EAA0D;EACxD7W,MAAAA,aAAa,EAAErP;EADyC,KAA1D;EAGD;;WAEDuoB,SAAA,kBAAS;EACP7gB,IAAAA,cAAc,CAACE,IAAf,CAAoB,KAAKqK,SAAzB,EACGtL,MADH,CACU,UAAAmiB,IAAI;EAAA,aAAIA,IAAI,CAAChkB,SAAL,CAAeE,QAAf,CAAwBU,mBAAxB,CAAJ;EAAA,KADd,EAEGrK,OAFH,CAEW,UAAAytB,IAAI;EAAA,aAAIA,IAAI,CAAChkB,SAAL,CAAeC,MAAf,CAAsBW,mBAAtB,CAAJ;EAAA,KAFf;EAGD;;;cAIMP,kBAAP,yBAAuBlK,MAAvB,EAA+B;EAC7B,WAAO,KAAKmK,IAAL,CAAU,YAAY;EAC3B,UAAIxH,IAAI,GAAGK,IAAI,CAACG,OAAL,CAAa,IAAb,EAAmBqF,UAAnB,CAAX;;EACA,UAAM2I,OAAO,GAAG,OAAOnR,MAAP,KAAkB,QAAlB,IAA8BA,MAA9C;;EAEA,UAAI,CAAC2C,IAAL,EAAW;EACTA,QAAAA,IAAI,GAAG,IAAIkpB,SAAJ,CAAc,IAAd,EAAoB1a,OAApB,CAAP;EACD;;EAED,UAAI,OAAOnR,MAAP,KAAkB,QAAtB,EAAgC;EAC9B,YAAI,OAAO2C,IAAI,CAAC3C,MAAD,CAAX,KAAwB,WAA5B,EAAyC;EACvC,gBAAM,IAAIwV,SAAJ,wBAAkCxV,MAAlC,QAAN;EACD;;EAED2C,QAAAA,IAAI,CAAC3C,MAAD,CAAJ;EACD;EACF,KAfM,CAAP;EAgBD;;;;0BAjNoB;EACnB,aAAOgO,SAAP;EACD;;;0BAEqB;EACpB,aAAOxF,UAAP;EACD;;;;IAzBqBH;EAuOxB;EACA;EACA;EACA;EACA;;;EAEA7D,YAAY,CAACmC,EAAb,CAAgBpI,MAAhB,EAAwBgR,qBAAxB,EAA6C,YAAM;EACjD9C,EAAAA,cAAc,CAACE,IAAf,CAAoBye,iBAApB,EACGhrB,OADH,CACW,UAAA0tB,GAAG;EAAA,WAAI,IAAIjC,SAAJ,CAAciC,GAAd,EAAmB3iB,WAAW,CAACI,iBAAZ,CAA8BuiB,GAA9B,CAAnB,CAAJ;EAAA,GADd;EAED,CAHD;EAKA;EACA;EACA;EACA;EACA;EACA;;EAEA7rB,kBAAkB,CAAC,YAAM;EACvB,MAAMoF,CAAC,GAAGxF,SAAS,EAAnB;EACA;;EACA,MAAIwF,CAAJ,EAAO;EACL,QAAMiD,kBAAkB,GAAGjD,CAAC,CAAClD,EAAF,CAAKwE,MAAL,CAA3B;EACAtB,IAAAA,CAAC,CAAClD,EAAF,CAAKwE,MAAL,IAAakjB,SAAS,CAAC3hB,eAAvB;EACA7C,IAAAA,CAAC,CAAClD,EAAF,CAAKwE,MAAL,EAAW4B,WAAX,GAAyBshB,SAAzB;;EACAxkB,IAAAA,CAAC,CAAClD,EAAF,CAAKwE,MAAL,EAAW6B,UAAX,GAAwB,YAAM;EAC5BnD,MAAAA,CAAC,CAAClD,EAAF,CAAKwE,MAAL,IAAa2B,kBAAb;EACA,aAAOuhB,SAAS,CAAC3hB,eAAjB;EACD,KAHD;EAID;EACF,CAZiB,CAAlB;;ECxSA;EACA;EACA;EACA;EACA;;EAEA,IAAMvB,MAAI,GAAG,KAAb;EACA,IAAMH,UAAQ,GAAG,QAAjB;EACA,IAAMI,WAAS,SAAOJ,UAAtB;EACA,IAAMK,cAAY,GAAG,WAArB;EAEA,IAAMmN,YAAU,YAAUpN,WAA1B;EACA,IAAMqN,cAAY,cAAYrN,WAA9B;EACA,IAAMkN,YAAU,YAAUlN,WAA1B;EACA,IAAMmN,aAAW,aAAWnN,WAA5B;EACA,IAAMK,sBAAoB,aAAWL,WAAX,GAAuBC,cAAjD;EAEA,IAAMklB,wBAAwB,GAAG,eAAjC;EACA,IAAMtjB,mBAAiB,GAAG,QAA1B;EACA,IAAM6O,qBAAmB,GAAG,UAA5B;EACA,IAAMqE,iBAAe,GAAG,MAAxB;EACA,IAAMzH,iBAAe,GAAG,MAAxB;EAEA,IAAMuV,mBAAiB,GAAG,WAA1B;EACA,IAAMJ,yBAAuB,GAAG,mBAAhC;EACA,IAAMtb,iBAAe,GAAG,SAAxB;EACA,IAAMie,kBAAkB,GAAG,uBAA3B;EACA,IAAMtjB,sBAAoB,GAAG,0EAA7B;EACA,IAAMghB,0BAAwB,GAAG,kBAAjC;EACA,IAAMuC,8BAA8B,GAAG,iCAAvC;EAEA;EACA;EACA;EACA;EACA;;MAEMC;;;;;;;;;EAOJ;WAEA7W,OAAA,gBAAO;EAAA;;EACL,QAAK,KAAK/O,QAAL,CAAcvH,UAAd,IACH,KAAKuH,QAAL,CAAcvH,UAAd,CAAyB3B,QAAzB,KAAsCgO,IAAI,CAACC,YADxC,IAEH,KAAK/E,QAAL,CAAcuB,SAAd,CAAwBE,QAAxB,CAAiCU,mBAAjC,CAFE,IAGF,KAAKnC,QAAL,CAAcuB,SAAd,CAAwBE,QAAxB,CAAiCuP,qBAAjC,CAHF,EAGyD;EACvD;EACD;;EAED,QAAI9L,QAAJ;EACA,QAAMzI,MAAM,GAAG1G,sBAAsB,CAAC,KAAKiK,QAAN,CAArC;;EACA,QAAM6lB,WAAW,GAAG,KAAK7lB,QAAL,CAAcsB,OAAd,CAAsByhB,yBAAtB,CAApB;;EAEA,QAAI8C,WAAJ,EAAiB;EACf,UAAMC,YAAY,GAAGD,WAAW,CAACnM,QAAZ,KAAyB,IAAzB,IAAiCmM,WAAW,CAACnM,QAAZ,KAAyB,IAA1D,GAAiEgM,kBAAjE,GAAsFje,iBAA3G;EACAvC,MAAAA,QAAQ,GAAGf,cAAc,CAACE,IAAf,CAAoByhB,YAApB,EAAkCD,WAAlC,CAAX;EACA3gB,MAAAA,QAAQ,GAAGA,QAAQ,CAACA,QAAQ,CAACvI,MAAT,GAAkB,CAAnB,CAAnB;EACD;;EAED,QAAIyW,SAAS,GAAG,IAAhB;;EAEA,QAAIlO,QAAJ,EAAc;EACZkO,MAAAA,SAAS,GAAGlX,YAAY,CAAC2C,OAAb,CAAqBqG,QAArB,EAA+BwI,YAA/B,EAA2C;EACrD5B,QAAAA,aAAa,EAAE,KAAK9L;EADiC,OAA3C,CAAZ;EAGD;;EAED,QAAM+S,SAAS,GAAG7W,YAAY,CAAC2C,OAAb,CAAqB,KAAKmB,QAA1B,EAAoCwN,YAApC,EAAgD;EAChE1B,MAAAA,aAAa,EAAE5G;EADiD,KAAhD,CAAlB;;EAIA,QAAI6N,SAAS,CAAC5T,gBAAV,IAA+BiU,SAAS,KAAK,IAAd,IAAsBA,SAAS,CAACjU,gBAAnE,EAAsF;EACpF;EACD;;EAED,SAAK4lB,SAAL,CAAe,KAAK/kB,QAApB,EAA8B6lB,WAA9B;;EAEA,QAAMnW,QAAQ,GAAG,SAAXA,QAAW,GAAM;EACrBxT,MAAAA,YAAY,CAAC2C,OAAb,CAAqBqG,QAArB,EAA+ByI,cAA/B,EAA6C;EAC3C7B,QAAAA,aAAa,EAAE,KAAI,CAAC9L;EADuB,OAA7C;EAGA9D,MAAAA,YAAY,CAAC2C,OAAb,CAAqB,KAAI,CAACmB,QAA1B,EAAoCyN,aAApC,EAAiD;EAC/C3B,QAAAA,aAAa,EAAE5G;EADgC,OAAjD;EAGD,KAPD;;EASA,QAAIzI,MAAJ,EAAY;EACV,WAAKsoB,SAAL,CAAetoB,MAAf,EAAuBA,MAAM,CAAChE,UAA9B,EAA0CiX,QAA1C;EACD,KAFD,MAEO;EACLA,MAAAA,QAAQ;EACT;EACF;;;WAIDqV,YAAA,mBAAUvvB,OAAV,EAAmB0Z,SAAnB,EAA8BtV,QAA9B,EAAwC;EAAA;;EACtC,QAAMmsB,cAAc,GAAG7W,SAAS,KAAKA,SAAS,CAACwK,QAAV,KAAuB,IAAvB,IAA+BxK,SAAS,CAACwK,QAAV,KAAuB,IAA3D,CAAT,GACrBvV,cAAc,CAACE,IAAf,CAAoBqhB,kBAApB,EAAwCxW,SAAxC,CADqB,GAErB/K,cAAc,CAACO,QAAf,CAAwBwK,SAAxB,EAAmCzH,iBAAnC,CAFF;EAIA,QAAMue,MAAM,GAAGD,cAAc,CAAC,CAAD,CAA7B;EACA,QAAMjW,eAAe,GAAGlW,QAAQ,IAAKosB,MAAM,IAAIA,MAAM,CAACzkB,SAAP,CAAiBE,QAAjB,CAA0B4T,iBAA1B,CAA/C;;EAEA,QAAM3F,QAAQ,GAAG,SAAXA,QAAW;EAAA,aAAM,MAAI,CAACuW,mBAAL,CAAyBzwB,OAAzB,EAAkCwwB,MAAlC,EAA0CpsB,QAA1C,CAAN;EAAA,KAAjB;;EAEA,QAAIosB,MAAM,IAAIlW,eAAd,EAA+B;EAC7B,UAAM3Z,kBAAkB,GAAGH,gCAAgC,CAACgwB,MAAD,CAA3D;EACAA,MAAAA,MAAM,CAACzkB,SAAP,CAAiBC,MAAjB,CAAwBoM,iBAAxB;EAEA1R,MAAAA,YAAY,CAACoC,GAAb,CAAiB0nB,MAAjB,EAAyBxxB,cAAzB,EAAyCkb,QAAzC;EACA3Y,MAAAA,oBAAoB,CAACivB,MAAD,EAAS7vB,kBAAT,CAApB;EACD,KAND,MAMO;EACLuZ,MAAAA,QAAQ;EACT;EACF;;WAEDuW,sBAAA,6BAAoBzwB,OAApB,EAA6BwwB,MAA7B,EAAqCpsB,QAArC,EAA+C;EAC7C,QAAIosB,MAAJ,EAAY;EACVA,MAAAA,MAAM,CAACzkB,SAAP,CAAiBC,MAAjB,CAAwBW,mBAAxB;EAEA,UAAM+jB,aAAa,GAAG/hB,cAAc,CAACM,OAAf,CAAuBkhB,8BAAvB,EAAuDK,MAAM,CAACvtB,UAA9D,CAAtB;;EAEA,UAAIytB,aAAJ,EAAmB;EACjBA,QAAAA,aAAa,CAAC3kB,SAAd,CAAwBC,MAAxB,CAA+BW,mBAA/B;EACD;;EAED,UAAI6jB,MAAM,CAACtwB,YAAP,CAAoB,MAApB,MAAgC,KAApC,EAA2C;EACzCswB,QAAAA,MAAM,CAACzjB,YAAP,CAAoB,eAApB,EAAqC,KAArC;EACD;EACF;;EAED/M,IAAAA,OAAO,CAAC+L,SAAR,CAAkB2J,GAAlB,CAAsB/I,mBAAtB;;EACA,QAAI3M,OAAO,CAACE,YAAR,CAAqB,MAArB,MAAiC,KAArC,EAA4C;EAC1CF,MAAAA,OAAO,CAAC+M,YAAR,CAAqB,eAArB,EAAsC,IAAtC;EACD;;EAEDlJ,IAAAA,MAAM,CAAC7D,OAAD,CAAN;;EAEA,QAAIA,OAAO,CAAC+L,SAAR,CAAkBE,QAAlB,CAA2B4T,iBAA3B,CAAJ,EAAiD;EAC/C7f,MAAAA,OAAO,CAAC+L,SAAR,CAAkB2J,GAAlB,CAAsB0C,iBAAtB;EACD;;EAED,QAAIpY,OAAO,CAACiD,UAAR,IAAsBjD,OAAO,CAACiD,UAAR,CAAmB8I,SAAnB,CAA6BE,QAA7B,CAAsCgkB,wBAAtC,CAA1B,EAA2F;EACzF,UAAMU,eAAe,GAAG3wB,OAAO,CAAC8L,OAAR,CAAgB6hB,mBAAhB,CAAxB;;EAEA,UAAIgD,eAAJ,EAAqB;EACnBhiB,QAAAA,cAAc,CAACE,IAAf,CAAoB+e,0BAApB,EACGtrB,OADH,CACW,UAAAsuB,QAAQ;EAAA,iBAAIA,QAAQ,CAAC7kB,SAAT,CAAmB2J,GAAnB,CAAuB/I,mBAAvB,CAAJ;EAAA,SADnB;EAED;;EAED3M,MAAAA,OAAO,CAAC+M,YAAR,CAAqB,eAArB,EAAsC,IAAtC;EACD;;EAED,QAAI3I,QAAJ,EAAc;EACZA,MAAAA,QAAQ;EACT;EACF;;;QAIMgI,kBAAP,yBAAuBlK,MAAvB,EAA+B;EAC7B,WAAO,KAAKmK,IAAL,CAAU,YAAY;EAC3B,UAAMxH,IAAI,GAAGK,IAAI,CAACG,OAAL,CAAa,IAAb,EAAmBqF,UAAnB,KAAgC,IAAI0lB,GAAJ,CAAQ,IAAR,CAA7C;;EAEA,UAAI,OAAOluB,MAAP,KAAkB,QAAtB,EAAgC;EAC9B,YAAI,OAAO2C,IAAI,CAAC3C,MAAD,CAAX,KAAwB,WAA5B,EAAyC;EACvC,gBAAM,IAAIwV,SAAJ,wBAAkCxV,MAAlC,QAAN;EACD;;EAED2C,QAAAA,IAAI,CAAC3C,MAAD,CAAJ;EACD;EACF,KAVM,CAAP;EAWD;;;;EA3ID;0BAEsB;EACpB,aAAOwI,UAAP;EACD;;;;IALeH;EA+IlB;EACA;EACA;EACA;EACA;;;EAEA7D,YAAY,CAACmC,EAAb,CAAgBhJ,QAAhB,EAA0BsL,sBAA1B,EAAgDyB,sBAAhD,EAAsE,UAAUrG,KAAV,EAAiB;EACrFA,EAAAA,KAAK,CAAC8D,cAAN;EAEA,MAAMxF,IAAI,GAAGK,IAAI,CAACG,OAAL,CAAa,IAAb,EAAmBqF,UAAnB,KAAgC,IAAI0lB,GAAJ,CAAQ,IAAR,CAA7C;EACAvrB,EAAAA,IAAI,CAAC0U,IAAL;EACD,CALD;EAOA;EACA;EACA;EACA;EACA;EACA;;EAEApV,kBAAkB,CAAC,YAAM;EACvB,MAAMoF,CAAC,GAAGxF,SAAS,EAAnB;EACA;;EACA,MAAIwF,CAAJ,EAAO;EACL,QAAMiD,kBAAkB,GAAGjD,CAAC,CAAClD,EAAF,CAAKwE,MAAL,CAA3B;EACAtB,IAAAA,CAAC,CAAClD,EAAF,CAAKwE,MAAL,IAAaulB,GAAG,CAAChkB,eAAjB;EACA7C,IAAAA,CAAC,CAAClD,EAAF,CAAKwE,MAAL,EAAW4B,WAAX,GAAyB2jB,GAAzB;;EACA7mB,IAAAA,CAAC,CAAClD,EAAF,CAAKwE,MAAL,EAAW6B,UAAX,GAAwB,YAAM;EAC5BnD,MAAAA,CAAC,CAAClD,EAAF,CAAKwE,MAAL,IAAa2B,kBAAb;EACA,aAAO4jB,GAAG,CAAChkB,eAAX;EACD,KAHD;EAID;EACF,CAZiB,CAAlB;;ECxMA;EACA;EACA;EACA;EACA;;EAEA,IAAMvB,MAAI,GAAG,OAAb;EACA,IAAMH,UAAQ,GAAG,UAAjB;EACA,IAAMI,WAAS,SAAOJ,UAAtB;EAEA,IAAM4U,qBAAmB,qBAAmBxU,WAA5C;EACA,IAAMoN,YAAU,YAAUpN,WAA1B;EACA,IAAMqN,cAAY,cAAYrN,WAA9B;EACA,IAAMkN,YAAU,YAAUlN,WAA1B;EACA,IAAMmN,aAAW,aAAWnN,WAA5B;EAEA,IAAM+U,iBAAe,GAAG,MAAxB;EACA,IAAMgR,eAAe,GAAG,MAAxB;EACA,IAAMzY,iBAAe,GAAG,MAAxB;EACA,IAAM0Y,kBAAkB,GAAG,SAA3B;EAEA,IAAMrgB,aAAW,GAAG;EAClB4W,EAAAA,SAAS,EAAE,SADO;EAElB0J,EAAAA,QAAQ,EAAE,SAFQ;EAGlBvJ,EAAAA,KAAK,EAAE;EAHW,CAApB;EAMA,IAAMtX,SAAO,GAAG;EACdmX,EAAAA,SAAS,EAAE,IADG;EAEd0J,EAAAA,QAAQ,EAAE,IAFI;EAGdvJ,EAAAA,KAAK,EAAE;EAHO,CAAhB;EAMA,IAAMvH,uBAAqB,GAAG,2BAA9B;EAEA;EACA;EACA;EACA;EACA;;MAEM+Q;;;EACJ,iBAAYhxB,OAAZ,EAAqBkC,MAArB,EAA6B;EAAA;;EAC3B,sCAAMlC,OAAN;EAEA,UAAKqT,OAAL,GAAe,MAAKC,UAAL,CAAgBpR,MAAhB,CAAf;EACA,UAAKqnB,QAAL,GAAgB,IAAhB;;EACA,UAAKI,aAAL;;EAL2B;EAM5B;;;;;EAgBD;WAEApQ,OAAA,gBAAO;EAAA;;EACL,QAAMgE,SAAS,GAAG7W,YAAY,CAAC2C,OAAb,CAAqB,KAAKmB,QAA1B,EAAoCwN,YAApC,CAAlB;;EAEA,QAAIuF,SAAS,CAAC5T,gBAAd,EAAgC;EAC9B;EACD;;EAED,SAAKsnB,aAAL;;EAEA,QAAI,KAAK5d,OAAL,CAAagU,SAAjB,EAA4B;EAC1B,WAAK7c,QAAL,CAAcuB,SAAd,CAAwB2J,GAAxB,CAA4BmK,iBAA5B;EACD;;EAED,QAAM3F,QAAQ,GAAG,SAAXA,QAAW,GAAM;EACrB,MAAA,MAAI,CAAC1P,QAAL,CAAcuB,SAAd,CAAwBC,MAAxB,CAA+B8kB,kBAA/B;;EACA,MAAA,MAAI,CAACtmB,QAAL,CAAcuB,SAAd,CAAwB2J,GAAxB,CAA4B0C,iBAA5B;;EAEA1R,MAAAA,YAAY,CAAC2C,OAAb,CAAqB,MAAI,CAACmB,QAA1B,EAAoCyN,aAApC;;EAEA,UAAI,MAAI,CAAC5E,OAAL,CAAa0d,QAAjB,EAA2B;EACzB,QAAA,MAAI,CAACxH,QAAL,GAAgBxnB,UAAU,CAAC,YAAM;EAC/B,UAAA,MAAI,CAACuX,IAAL;EACD,SAFyB,EAEvB,MAAI,CAACjG,OAAL,CAAamU,KAFU,CAA1B;EAGD;EACF,KAXD;;EAaA,SAAKhd,QAAL,CAAcuB,SAAd,CAAwBC,MAAxB,CAA+B6kB,eAA/B;;EACAhtB,IAAAA,MAAM,CAAC,KAAK2G,QAAN,CAAN;;EACA,SAAKA,QAAL,CAAcuB,SAAd,CAAwB2J,GAAxB,CAA4Bob,kBAA5B;;EACA,QAAI,KAAKzd,OAAL,CAAagU,SAAjB,EAA4B;EAC1B,UAAM1mB,kBAAkB,GAAGH,gCAAgC,CAAC,KAAKgK,QAAN,CAA3D;EAEA9D,MAAAA,YAAY,CAACoC,GAAb,CAAiB,KAAK0B,QAAtB,EAAgCxL,cAAhC,EAAgDkb,QAAhD;EACA3Y,MAAAA,oBAAoB,CAAC,KAAKiJ,QAAN,EAAgB7J,kBAAhB,CAApB;EACD,KALD,MAKO;EACLuZ,MAAAA,QAAQ;EACT;EACF;;WAEDZ,OAAA,gBAAO;EAAA;;EACL,QAAI,CAAC,KAAK9O,QAAL,CAAcuB,SAAd,CAAwBE,QAAxB,CAAiCmM,iBAAjC,CAAL,EAAwD;EACtD;EACD;;EAED,QAAMwF,SAAS,GAAGlX,YAAY,CAAC2C,OAAb,CAAqB,KAAKmB,QAA1B,EAAoC0N,YAApC,CAAlB;;EAEA,QAAI0F,SAAS,CAACjU,gBAAd,EAAgC;EAC9B;EACD;;EAED,QAAMuQ,QAAQ,GAAG,SAAXA,QAAW,GAAM;EACrB,MAAA,MAAI,CAAC1P,QAAL,CAAcuB,SAAd,CAAwB2J,GAAxB,CAA4Bmb,eAA5B;;EACAnqB,MAAAA,YAAY,CAAC2C,OAAb,CAAqB,MAAI,CAACmB,QAA1B,EAAoC2N,cAApC;EACD,KAHD;;EAKA,SAAK3N,QAAL,CAAcuB,SAAd,CAAwBC,MAAxB,CAA+BoM,iBAA/B;;EACA,QAAI,KAAK/E,OAAL,CAAagU,SAAjB,EAA4B;EAC1B,UAAM1mB,kBAAkB,GAAGH,gCAAgC,CAAC,KAAKgK,QAAN,CAA3D;EAEA9D,MAAAA,YAAY,CAACoC,GAAb,CAAiB,KAAK0B,QAAtB,EAAgCxL,cAAhC,EAAgDkb,QAAhD;EACA3Y,MAAAA,oBAAoB,CAAC,KAAKiJ,QAAN,EAAgB7J,kBAAhB,CAApB;EACD,KALD,MAKO;EACLuZ,MAAAA,QAAQ;EACT;EACF;;WAEDvP,UAAA,mBAAU;EACR,SAAKsmB,aAAL;;EAEA,QAAI,KAAKzmB,QAAL,CAAcuB,SAAd,CAAwBE,QAAxB,CAAiCmM,iBAAjC,CAAJ,EAAuD;EACrD,WAAK5N,QAAL,CAAcuB,SAAd,CAAwBC,MAAxB,CAA+BoM,iBAA/B;EACD;;EAED1R,IAAAA,YAAY,CAACC,GAAb,CAAiB,KAAK6D,QAAtB,EAAgC8U,qBAAhC;;EAEA,6BAAM3U,OAAN;;EACA,SAAK0I,OAAL,GAAe,IAAf;EACD;;;WAIDC,aAAA,oBAAWpR,MAAX,EAAmB;EACjBA,IAAAA,MAAM,gBACDgO,SADC,EAED7C,WAAW,CAACI,iBAAZ,CAA8B,KAAKjD,QAAnC,CAFC,EAGA,OAAOtI,MAAP,KAAkB,QAAlB,IAA8BA,MAA9B,GAAuCA,MAAvC,GAAgD,EAHhD,CAAN;EAMAF,IAAAA,eAAe,CAAC6I,MAAD,EAAO3I,MAAP,EAAe,KAAKuI,WAAL,CAAiBgG,WAAhC,CAAf;EAEA,WAAOvO,MAAP;EACD;;WAEDynB,gBAAA,yBAAgB;EAAA;;EACdjjB,IAAAA,YAAY,CAACmC,EAAb,CAAgB,KAAK2B,QAArB,EAA+B8U,qBAA/B,EAAoDW,uBAApD,EAA2E;EAAA,aAAM,MAAI,CAAC3G,IAAL,EAAN;EAAA,KAA3E;EACD;;WAED2X,gBAAA,yBAAgB;EACd1b,IAAAA,YAAY,CAAC,KAAKgU,QAAN,CAAZ;EACA,SAAKA,QAAL,GAAgB,IAAhB;EACD;;;UAIMnd,kBAAP,yBAAuBlK,MAAvB,EAA+B;EAC7B,WAAO,KAAKmK,IAAL,CAAU,YAAY;EAC3B,UAAIxH,IAAI,GAAGK,IAAI,CAACG,OAAL,CAAa,IAAb,EAAmBqF,UAAnB,CAAX;;EACA,UAAM2I,OAAO,GAAG,OAAOnR,MAAP,KAAkB,QAAlB,IAA8BA,MAA9C;;EAEA,UAAI,CAAC2C,IAAL,EAAW;EACTA,QAAAA,IAAI,GAAG,IAAImsB,KAAJ,CAAU,IAAV,EAAgB3d,OAAhB,CAAP;EACD;;EAED,UAAI,OAAOnR,MAAP,KAAkB,QAAtB,EAAgC;EAC9B,YAAI,OAAO2C,IAAI,CAAC3C,MAAD,CAAX,KAAwB,WAA5B,EAAyC;EACvC,gBAAM,IAAIwV,SAAJ,wBAAkCxV,MAAlC,QAAN;EACD;;EAED2C,QAAAA,IAAI,CAAC3C,MAAD,CAAJ,CAAa,IAAb;EACD;EACF,KAfM,CAAP;EAgBD;;;;0BAvIwB;EACvB,aAAOuO,aAAP;EACD;;;0BAEoB;EACnB,aAAOP,SAAP;EACD;;;0BAEqB;EACpB,aAAOxF,UAAP;EACD;;;;IArBiBH;EAqJpB;EACA;EACA;EACA;EACA;EACA;;;EAEApG,kBAAkB,CAAC,YAAM;EACvB,MAAMoF,CAAC,GAAGxF,SAAS,EAAnB;EACA;;EACA,MAAIwF,CAAJ,EAAO;EACL,QAAMiD,kBAAkB,GAAGjD,CAAC,CAAClD,EAAF,CAAKwE,MAAL,CAA3B;EACAtB,IAAAA,CAAC,CAAClD,EAAF,CAAKwE,MAAL,IAAammB,KAAK,CAAC5kB,eAAnB;EACA7C,IAAAA,CAAC,CAAClD,EAAF,CAAKwE,MAAL,EAAW4B,WAAX,GAAyBukB,KAAzB;;EACAznB,IAAAA,CAAC,CAAClD,EAAF,CAAKwE,MAAL,EAAW6B,UAAX,GAAwB,YAAM;EAC5BnD,MAAAA,CAAC,CAAClD,EAAF,CAAKwE,MAAL,IAAa2B,kBAAb;EACA,aAAOwkB,KAAK,CAAC5kB,eAAb;EACD,KAHD;EAID;EACF,CAZiB,CAAlB;;EC1NA;EACA;EACA;EACA;EACA;EACA;AAcA,kBAAe;EACbb,EAAAA,KAAK,EAALA,KADa;EAEbsB,EAAAA,MAAM,EAANA,MAFa;EAGb+F,EAAAA,QAAQ,EAARA,QAHa;EAIb+F,EAAAA,QAAQ,EAARA,QAJa;EAKbkE,EAAAA,QAAQ,EAARA,QALa;EAMbuD,EAAAA,KAAK,EAALA,KANa;EAOb4M,EAAAA,OAAO,EAAPA,OAPa;EAQbe,EAAAA,SAAS,EAATA,SARa;EASbqC,EAAAA,GAAG,EAAHA,GATa;EAUbY,EAAAA,KAAK,EAALA,KAVa;EAWb3H,EAAAA,OAAO,EAAPA;EAXa,CAAf;;;;;;;;"}
\ No newline at end of file +{"version":3,"file":"bootstrap.bundle.js","sources":["../../js/src/util/index.js","../../js/src/dom/data.js","../../js/src/dom/event-handler.js","../../js/src/base-component.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/dom/manipulator.js","../../js/src/dom/selector-engine.js","../../js/src/carousel.js","../../js/src/collapse.js","../../node_modules/@popperjs/core/lib/enums.js","../../node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","../../node_modules/@popperjs/core/lib/dom-utils/getWindow.js","../../node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","../../node_modules/@popperjs/core/lib/modifiers/applyStyles.js","../../node_modules/@popperjs/core/lib/utils/getBasePlacement.js","../../node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","../../node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","../../node_modules/@popperjs/core/lib/dom-utils/contains.js","../../node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","../../node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","../../node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","../../node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","../../node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","../../node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","../../node_modules/@popperjs/core/lib/utils/math.js","../../node_modules/@popperjs/core/lib/utils/within.js","../../node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","../../node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","../../node_modules/@popperjs/core/lib/utils/expandToHashMap.js","../../node_modules/@popperjs/core/lib/modifiers/arrow.js","../../node_modules/@popperjs/core/lib/modifiers/computeStyles.js","../../node_modules/@popperjs/core/lib/modifiers/eventListeners.js","../../node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","../../node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","../../node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","../../node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","../../node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","../../node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","../../node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","../../node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","../../node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","../../node_modules/@popperjs/core/lib/utils/rectToClientRect.js","../../node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","../../node_modules/@popperjs/core/lib/utils/getVariation.js","../../node_modules/@popperjs/core/lib/utils/computeOffsets.js","../../node_modules/@popperjs/core/lib/utils/detectOverflow.js","../../node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","../../node_modules/@popperjs/core/lib/modifiers/flip.js","../../node_modules/@popperjs/core/lib/modifiers/hide.js","../../node_modules/@popperjs/core/lib/modifiers/offset.js","../../node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","../../node_modules/@popperjs/core/lib/utils/getAltAxis.js","../../node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","../../node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","../../node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","../../node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","../../node_modules/@popperjs/core/lib/utils/orderModifiers.js","../../node_modules/@popperjs/core/lib/utils/debounce.js","../../node_modules/@popperjs/core/lib/utils/mergeByName.js","../../node_modules/@popperjs/core/lib/createPopper.js","../../node_modules/@popperjs/core/lib/popper-lite.js","../../node_modules/@popperjs/core/lib/popper.js","../../js/src/dropdown.js","../../js/src/modal.js","../../js/src/util/scrollbar.js","../../js/src/offcanvas.js","../../js/src/util/sanitizer.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/toast.js","../../js/index.umd.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => {\n if (obj === null || obj === undefined) {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n prefix += Math.floor(Math.random() * MAX_UID)\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelector = element => {\n let selector = element.getAttribute('data-bs-target')\n\n if (!selector || selector === '#') {\n let hrefAttr = 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 (!hrefAttr || (!hrefAttr.includes('#') && !hrefAttr.startsWith('.'))) {\n return null\n }\n\n // Just in case some CMS puts out a full URL with the anchor appended\n if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {\n hrefAttr = '#' + hrefAttr.split('#')[1]\n }\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null\n }\n\n return selector\n}\n\nconst getSelectorFromElement = element => {\n const selector = getSelector(element)\n\n if (selector) {\n return document.querySelector(selector) ? selector : null\n }\n\n return null\n}\n\nconst getElementFromSelector = element => {\n const selector = getSelector(element)\n\n return selector ? document.querySelector(selector) : null\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 = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes).forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ? 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`\n )\n }\n })\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n const elementStyle = getComputedStyle(element)\n const parentNodeStyle = getComputedStyle(element.parentNode)\n\n return elementStyle.display !== 'none' &&\n parentNodeStyle.display !== 'none' &&\n elementStyle.visibility !== 'hidden'\n }\n\n return false\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 = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nconst getjQuery = () => {\n const { jQuery } = window\n\n if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n return jQuery\n }\n\n return null\n}\n\nconst onDOMContentLoaded = callback => {\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', callback)\n } else {\n callback()\n }\n}\n\nconst isRTL = () => document.documentElement.dir === 'rtl'\n\nconst defineJQueryPlugin = (name, plugin) => {\n onDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\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\nexport {\n getUID,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n isVisible,\n isDisabled,\n findShadowRoot,\n noop,\n reflow,\n getjQuery,\n onDOMContentLoaded,\n isRTL,\n defineJQueryPlugin\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\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 (v5.0.0-beta3): dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getjQuery } from '../util/index'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\nconst nativeEvents = new Set([\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 * ------------------------------------------------------------------------\n * Private methods\n * ------------------------------------------------------------------------\n */\n\nfunction getUidEvent(element, uid) {\n return (uid && `${uid}::${uidEvent++}`) || element.uidEvent || uidEvent++\n}\n\nfunction getEvent(element) {\n const uid = getUidEvent(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 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 (let i = domElements.length; i--;) {\n if (domElements[i] === target) {\n event.delegateTarget = target\n\n if (handler.oneOff) {\n // eslint-disable-next-line unicorn/consistent-destructuring\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(target, [event])\n }\n }\n }\n\n // To please ESLint\n return null\n }\n}\n\nfunction findHandler(events, handler, delegationSelector = null) {\n const uidEventList = Object.keys(events)\n\n for (let i = 0, len = uidEventList.length; i < len; i++) {\n const event = events[uidEventList[i]]\n\n if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {\n return event\n }\n }\n\n return null\n}\n\nfunction normalizeParams(originalTypeEvent, handler, delegationFn) {\n const delegation = typeof handler === 'string'\n const originalHandler = delegation ? delegationFn : handler\n\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n let typeEvent = originalTypeEvent.replace(stripNameRegex, '')\n const custom = customEvents[typeEvent]\n\n if (custom) {\n typeEvent = custom\n }\n\n const isNative = nativeEvents.has(typeEvent)\n\n if (!isNative) {\n typeEvent = originalTypeEvent\n }\n\n return [delegation, originalHandler, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n if (!handler) {\n handler = delegationFn\n delegationFn = null\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const events = getEvent(element)\n const handlers = events[typeEvent] || (events[typeEvent] = {})\n const previousFn = findHandler(handlers, originalHandler, delegation ? handler : null)\n\n if (previousFn) {\n previousFn.oneOff = previousFn.oneOff && oneOff\n\n return\n }\n\n const uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, ''))\n const fn = delegation ?\n bootstrapDelegationHandler(element, handler, delegationFn) :\n bootstrapHandler(element, handler)\n\n fn.delegationSelector = delegation ? handler : null\n fn.originalHandler = originalHandler\n fn.oneOff = oneOff\n fn.uidEvent = uid\n handlers[uid] = fn\n\n element.addEventListener(typeEvent, fn, delegation)\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 Object.keys(storeElementEvent).forEach(handlerKey => {\n if (handlerKey.includes(namespace)) {\n const event = storeElementEvent[handlerKey]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, false)\n },\n\n one(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFn) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getEvent(element)\n const isNamespace = originalTypeEvent.startsWith('.')\n\n if (typeof originalHandler !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!events || !events[typeEvent]) {\n return\n }\n\n removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null)\n return\n }\n\n if (isNamespace) {\n Object.keys(events).forEach(elementEvent => {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1))\n })\n }\n\n const storeElementEvent = events[typeEvent] || {}\n Object.keys(storeElementEvent).forEach(keyHandlers => {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.includes(handlerKey)) {\n const event = storeElementEvent[keyHandlers]\n\n removeHandler(element, events, typeEvent, event.originalHandler, 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 = event.replace(stripNameRegex, '')\n const inNamespace = event !== typeEvent\n const isNative = nativeEvents.has(typeEvent)\n\n let jQueryEvent\n let bubbles = true\n let nativeDispatch = true\n let defaultPrevented = false\n let evt = null\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 if (isNative) {\n evt = document.createEvent('HTMLEvents')\n evt.initEvent(typeEvent, bubbles, true)\n } else {\n evt = new CustomEvent(event, {\n bubbles,\n cancelable: true\n })\n }\n\n // merge custom information in our event\n if (typeof args !== 'undefined') {\n Object.keys(args).forEach(key => {\n Object.defineProperty(evt, key, {\n get() {\n return args[key]\n }\n })\n })\n }\n\n if (defaultPrevented) {\n evt.preventDefault()\n }\n\n if (nativeDispatch) {\n element.dispatchEvent(evt)\n }\n\n if (evt.defaultPrevented && typeof jQueryEvent !== 'undefined') {\n jQueryEvent.preventDefault()\n }\n\n return evt\n }\n}\n\nexport default EventHandler\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): base-component.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Data from './dom/data'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst VERSION = '5.0.0-beta3'\n\nclass BaseComponent {\n constructor(element) {\n element = typeof element === 'string' ? document.querySelector(element) : element\n\n if (!element) {\n return\n }\n\n this._element = element\n Data.set(this._element, this.constructor.DATA_KEY, this)\n }\n\n dispose() {\n Data.remove(this._element, this.constructor.DATA_KEY)\n this._element = null\n }\n\n /** Static */\n\n static getInstance(element) {\n return Data.get(element, this.DATA_KEY)\n }\n\n static get VERSION() {\n return VERSION\n }\n}\n\nexport default BaseComponent\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n defineJQueryPlugin,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'alert'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst SELECTOR_DISMISS = '[data-bs-dismiss=\"alert\"]'\n\nconst EVENT_CLOSE = `close${EVENT_KEY}`\nconst EVENT_CLOSED = `closed${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_ALERT = 'alert'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Alert extends BaseComponent {\n // Getters\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n close(element) {\n const rootElement = element ? this._getRootElement(element) : this._element\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent === null || customEvent.defaultPrevented) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n // Private\n\n _getRootElement(element) {\n return getElementFromSelector(element) || element.closest(`.${CLASS_NAME_ALERT}`)\n }\n\n _triggerCloseEvent(element) {\n return EventHandler.trigger(element, EVENT_CLOSE)\n }\n\n _removeElement(element) {\n element.classList.remove(CLASS_NAME_SHOW)\n\n if (!element.classList.contains(CLASS_NAME_FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = getTransitionDurationFromElement(element)\n\n EventHandler.one(element, 'transitionend', () => this._destroyElement(element))\n emulateTransitionEnd(element, transitionDuration)\n }\n\n _destroyElement(element) {\n if (element.parentNode) {\n element.parentNode.removeChild(element)\n }\n\n EventHandler.trigger(element, EVENT_CLOSED)\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.get(this, DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DISMISS, Alert.handleDismiss(new Alert()))\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Alert to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(NAME, Alert)\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { defineJQueryPlugin } from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\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'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"button\"]'\n\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Button extends BaseComponent {\n // Getters\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n toggle() {\n // Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method\n this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE))\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.get(this, DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\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\n let data = Data.get(button, DATA_KEY)\n if (!data) {\n data = new Button(button)\n }\n\n data.toggle()\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Button to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(NAME, Button)\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(val) {\n if (val === 'true') {\n return true\n }\n\n if (val === 'false') {\n return false\n }\n\n if (val === Number(val).toString()) {\n return Number(val)\n }\n\n if (val === '' || val === 'null') {\n return null\n }\n\n return val\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\n Object.keys(element.dataset)\n .filter(key => key.startsWith('bs'))\n .forEach(key => {\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 offset(element) {\n const rect = element.getBoundingClientRect()\n\n return {\n top: rect.top + document.body.scrollTop,\n left: rect.left + document.body.scrollLeft\n }\n },\n\n position(element) {\n return {\n top: element.offsetTop,\n left: element.offsetLeft\n }\n }\n}\n\nexport default Manipulator\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NODE_TEXT = 3\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)\n .filter(child => child.matches(selector))\n },\n\n parents(element, selector) {\n const parents = []\n\n let ancestor = element.parentNode\n\n while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {\n if (ancestor.matches(selector)) {\n parents.push(ancestor)\n }\n\n ancestor = ancestor.parentNode\n }\n\n return parents\n },\n\n prev(element, selector) {\n let previous = element.previousElementSibling\n\n while (previous) {\n if (previous.matches(selector)) {\n return [previous]\n }\n\n previous = previous.previousElementSibling\n }\n\n return []\n },\n\n 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\nexport default SelectorEngine\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n defineJQueryPlugin,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isRTL,\n isVisible,\n reflow,\n triggerTransitionEnd,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\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\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\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_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 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'\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event'\n\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_ITEM = '.active.carousel-item'\nconst SELECTOR_ITEM = '.carousel-item'\nconst SELECTOR_ITEM_IMG = '.carousel-item img'\nconst SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev'\nconst SELECTOR_INDICATORS = '.carousel-indicators'\nconst SELECTOR_INDICATOR = '[data-bs-target]'\nconst SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]'\nconst SELECTOR_DATA_RIDE = '[data-bs-ride=\"carousel\"]'\n\nconst POINTER_TYPE_TOUCH = 'touch'\nconst POINTER_TYPE_PEN = 'pen'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent)\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(ORDER_NEXT)\n }\n }\n\n nextWhenVisible() {\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 if (!this._isSliding) {\n this._slide(ORDER_PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (SelectorEngine.findOne(SELECTOR_NEXT_PREV, this._element)) {\n triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config && this._config.interval && !this._isPaused) {\n this._updateInterval()\n\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._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 if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const order = index > activeIndex ?\n ORDER_NEXT :\n ORDER_PREV\n\n this._slide(order, this._items[index])\n }\n\n dispose() {\n EventHandler.off(this._element, EVENT_KEY)\n\n this._items = null\n this._config = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n\n super.dispose()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n this.touchDeltaX = 0\n\n if (!direction) {\n return\n }\n\n this._slide(direction > 0 ? DIRECTION_RIGHT : DIRECTION_LEFT)\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, event => this.pause(event))\n EventHandler.on(this._element, EVENT_MOUSELEAVE, event => this.cycle(event))\n }\n\n if (this._config.touch && this._touchSupported) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n const start = event => {\n if (this._pointerEvent && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH)) {\n this.touchStartX = event.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.touches[0].clientX\n }\n }\n\n const move = event => {\n // ensure swiping with one touch and not pinching\n this.touchDeltaX = event.touches && event.touches.length > 1 ?\n 0 :\n event.touches[0].clientX - this.touchStartX\n }\n\n const end = event => {\n if (this._pointerEvent && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH)) {\n this.touchDeltaX = event.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\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(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n SelectorEngine.find(SELECTOR_ITEM_IMG, this._element).forEach(itemImg => {\n EventHandler.on(itemImg, EVENT_DRAG_START, e => e.preventDefault())\n })\n\n if (this._pointerEvent) {\n EventHandler.on(this._element, EVENT_POINTERDOWN, event => start(event))\n EventHandler.on(this._element, EVENT_POINTERUP, event => end(event))\n\n this._element.classList.add(CLASS_NAME_POINTER_EVENT)\n } else {\n EventHandler.on(this._element, EVENT_TOUCHSTART, event => start(event))\n EventHandler.on(this._element, EVENT_TOUCHMOVE, event => move(event))\n EventHandler.on(this._element, EVENT_TOUCHEND, event => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n if (event.key === ARROW_LEFT_KEY) {\n event.preventDefault()\n this._slide(DIRECTION_LEFT)\n } else if (event.key === ARROW_RIGHT_KEY) {\n event.preventDefault()\n this._slide(DIRECTION_RIGHT)\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode ?\n SelectorEngine.find(SELECTOR_ITEM, element.parentNode) :\n []\n\n return this._items.indexOf(element)\n }\n\n _getItemByOrder(order, activeElement) {\n const isNext = order === ORDER_NEXT\n const isPrev = order === ORDER_PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = (isPrev && activeIndex === 0) || (isNext && activeIndex === lastItemIndex)\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = isPrev ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1 ?\n this._items[this._items.length - 1] :\n this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element))\n\n return EventHandler.trigger(this._element, EVENT_SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\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 indicators = SelectorEngine.find(SELECTOR_INDICATOR, this._indicatorsElement)\n\n for (let i = 0; i < indicators.length; i++) {\n if (Number.parseInt(indicators[i].getAttribute('data-bs-slide-to'), 10) === this._getItemIndex(element)) {\n indicators[i].classList.add(CLASS_NAME_ACTIVE)\n indicators[i].setAttribute('aria-current', 'true')\n break\n }\n }\n }\n }\n\n _updateInterval() {\n const element = this._activeElement || SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n\n if (!element) {\n return\n }\n\n const elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10)\n\n if (elementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval\n this._config.interval = elementInterval\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval\n }\n }\n\n _slide(directionOrOrder, element) {\n const order = this._directionToOrder(directionOrOrder)\n const activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || this._getItemByOrder(order, activeElement)\n\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n const isNext = order === ORDER_NEXT\n const directionalClassName = isNext ? CLASS_NAME_START : CLASS_NAME_END\n const orderClassName = isNext ? CLASS_NAME_NEXT : CLASS_NAME_PREV\n const eventDirectionName = this._orderToDirection(order)\n\n if (nextElement && nextElement.classList.contains(CLASS_NAME_ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.defaultPrevented) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n this._activeElement = nextElement\n\n if (this._element.classList.contains(CLASS_NAME_SLIDE)) {\n nextElement.classList.add(orderClassName)\n\n reflow(nextElement)\n\n activeElement.classList.add(directionalClassName)\n nextElement.classList.add(directionalClassName)\n\n const transitionDuration = getTransitionDurationFromElement(activeElement)\n\n EventHandler.one(activeElement, 'transitionend', () => {\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 setTimeout(() => {\n EventHandler.trigger(this._element, EVENT_SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }, 0)\n })\n\n emulateTransitionEnd(activeElement, transitionDuration)\n } else {\n activeElement.classList.remove(CLASS_NAME_ACTIVE)\n nextElement.classList.add(CLASS_NAME_ACTIVE)\n\n this._isSliding = false\n EventHandler.trigger(this._element, EVENT_SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n _directionToOrder(direction) {\n if (![DIRECTION_RIGHT, DIRECTION_LEFT].includes(direction)) {\n return direction\n }\n\n if (isRTL()) {\n return direction === DIRECTION_RIGHT ? ORDER_PREV : ORDER_NEXT\n }\n\n return direction === DIRECTION_RIGHT ? ORDER_NEXT : ORDER_PREV\n }\n\n _orderToDirection(order) {\n if (![ORDER_NEXT, ORDER_PREV].includes(order)) {\n return order\n }\n\n if (isRTL()) {\n return order === ORDER_NEXT ? DIRECTION_LEFT : DIRECTION_RIGHT\n }\n\n return order === ORDER_NEXT ? DIRECTION_RIGHT : DIRECTION_LEFT\n }\n\n // Static\n\n static carouselInterface(element, config) {\n let data = Data.get(element, DATA_KEY)\n let _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element)\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(element, _config)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n\n data[action]()\n } else if (_config.interval && _config.ride) {\n data.pause()\n data.cycle()\n }\n }\n\n static jQueryInterface(config) {\n return this.each(function () {\n Carousel.carouselInterface(this, config)\n })\n }\n\n static dataApiClickHandler(event) {\n const target = getElementFromSelector(this)\n\n if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {\n return\n }\n\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n const slideIndex = this.getAttribute('data-bs-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel.carouselInterface(target, config)\n\n if (slideIndex) {\n Data.get(target, DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, Carousel.dataApiClickHandler)\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE)\n\n for (let i = 0, len = carousels.length; i < len; i++) {\n Carousel.carouselInterface(carousels[i], Data.get(carousels[i], DATA_KEY))\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Carousel to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(NAME, Carousel)\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n defineJQueryPlugin,\n emulateTransitionEnd,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isElement,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'collapse'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n toggle: true,\n parent: ''\n}\n\nconst DefaultType = {\n toggle: 'boolean',\n parent: '(string|element)'\n}\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'\n\nconst WIDTH = 'width'\nconst HEIGHT = 'height'\n\nconst SELECTOR_ACTIVES = '.show, .collapsing'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"collapse\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._isTransitioning = false\n this._config = this._getConfig(config)\n this._triggerArray = SelectorEngine.find(\n `${SELECTOR_DATA_TOGGLE}[href=\"#${this._element.id}\"],` +\n `${SELECTOR_DATA_TOGGLE}[data-bs-target=\"#${this._element.id}\"]`\n )\n\n const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\n\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = getSelectorFromElement(elem)\n const filterElement = SelectorEngine.find(selector)\n .filter(foundElem => foundElem === this._element)\n\n if (selector !== null && filterElement.length) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n toggle() {\n if (this._element.classList.contains(CLASS_NAME_SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning || this._element.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = SelectorEngine.find(SELECTOR_ACTIVES, this._parent)\n .filter(elem => {\n if (typeof this._config.parent === 'string') {\n return elem.getAttribute('data-bs-parent') === this._config.parent\n }\n\n return elem.classList.contains(CLASS_NAME_COLLAPSE)\n })\n\n if (actives.length === 0) {\n actives = null\n }\n }\n\n const container = SelectorEngine.findOne(this._selector)\n if (actives) {\n const tempActiveData = actives.find(elem => container !== elem)\n activesData = tempActiveData ? Data.get(tempActiveData, DATA_KEY) : null\n\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = EventHandler.trigger(this._element, EVENT_SHOW)\n if (startEvent.defaultPrevented) {\n return\n }\n\n if (actives) {\n actives.forEach(elemActive => {\n if (container !== elemActive) {\n Collapse.collapseInterface(elemActive, 'hide')\n }\n\n if (!activesData) {\n Data.set(elemActive, DATA_KEY, null)\n }\n })\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 if (this._triggerArray.length) {\n this._triggerArray.forEach(element => {\n element.classList.remove(CLASS_NAME_COLLAPSED)\n element.setAttribute('aria-expanded', true)\n })\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\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 this.setTransitioning(false)\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 const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, 'transitionend', complete)\n\n emulateTransitionEnd(this._element, transitionDuration)\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning || !this._element.classList.contains(CLASS_NAME_SHOW)) {\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 const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const elem = getElementFromSelector(trigger)\n\n if (elem && !elem.classList.contains(CLASS_NAME_SHOW)) {\n trigger.classList.add(CLASS_NAME_COLLAPSED)\n trigger.setAttribute('aria-expanded', false)\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(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 const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, 'transitionend', complete)\n emulateTransitionEnd(this._element, transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n super.dispose()\n this._config = null\n this._parent = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n return this._element.classList.contains(WIDTH) ? WIDTH : HEIGHT\n }\n\n _getParent() {\n let { parent } = this._config\n\n if (isElement(parent)) {\n // it's a jQuery object\n if (typeof parent.jquery !== 'undefined' || typeof parent[0] !== 'undefined') {\n parent = parent[0]\n }\n } else {\n parent = SelectorEngine.findOne(parent)\n }\n\n const selector = `${SELECTOR_DATA_TOGGLE}[data-bs-parent=\"${parent}\"]`\n\n SelectorEngine.find(selector, parent)\n .forEach(element => {\n const selected = getElementFromSelector(element)\n\n this._addAriaAndCollapsedClass(\n selected,\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n if (!element || !triggerArray.length) {\n return\n }\n\n const isOpen = element.classList.contains(CLASS_NAME_SHOW)\n\n triggerArray.forEach(elem => {\n if (isOpen) {\n elem.classList.remove(CLASS_NAME_COLLAPSED)\n } else {\n elem.classList.add(CLASS_NAME_COLLAPSED)\n }\n\n elem.setAttribute('aria-expanded', isOpen)\n })\n }\n\n // Static\n\n static collapseInterface(element, config) {\n let data = Data.get(element, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element),\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(element, _config)\n }\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 static jQueryInterface(config) {\n return this.each(function () {\n Collapse.collapseInterface(this, config)\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\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 const triggerData = Manipulator.getDataAttributes(this)\n const selector = getSelectorFromElement(this)\n const selectorElements = SelectorEngine.find(selector)\n\n selectorElements.forEach(element => {\n const data = Data.get(element, DATA_KEY)\n let config\n if (data) {\n // update parent attribute\n if (data._parent === null && typeof triggerData.parent === 'string') {\n data._config.parent = triggerData.parent\n data._parent = data._getParent()\n }\n\n config = 'toggle'\n } else {\n config = triggerData\n }\n\n Collapse.collapseInterface(element, config)\n })\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Collapse to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(NAME, Collapse)\n\nexport default Collapse\n","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","import getNodeName from \"../dom-utils/getNodeName.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect,\n requires: ['computeStyles']\n};","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","export default function getBoundingClientRect(element) {\n var rect = element.getBoundingClientRect();\n return {\n width: rect.width,\n height: rect.height,\n top: rect.top,\n right: rect.right,\n bottom: rect.bottom,\n left: rect.left,\n x: rect.left,\n y: rect.top\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\"; // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nexport default function getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n}","import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') !== -1;\n var currentNode = getParentNode(element);\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","import { max as mathMax, min as mathMin } from \"./math.js\";\nexport default function within(min, value, max) {\n return mathMax(min, mathMin(value, max));\n}","export default function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}","import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), paddingObject);\n}","export default function expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport within from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n if (!isHTMLElement(arrowElement)) {\n console.error(['Popper: \"arrow\" element must be an HTMLElement (not an SVGElement).', 'To use an SVG arrow, wrap it in an HTMLElement that will be used as', 'the arrow.'].join(' '));\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(['Popper: \"arrow\" modifier\\'s `element` must be a child of the popper', 'element.'].join(' '));\n }\n\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};","import { top, left, right, bottom } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { round } from \"../utils/math.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref) {\n var x = _ref.x,\n y = _ref.y;\n var win = window;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(round(x * dpr) / dpr) || 0,\n y: round(round(y * dpr) / dpr) || 0\n };\n}\n\nexport function mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets;\n\n var _ref3 = roundOffsets === true ? roundOffsetsByDPR(offsets) : typeof roundOffsets === 'function' ? roundOffsets(offsets) : offsets,\n _ref3$x = _ref3.x,\n x = _ref3$x === void 0 ? 0 : _ref3$x,\n _ref3$y = _ref3.y,\n y = _ref3$y === void 0 ? 0 : _ref3$y;\n\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (getComputedStyle(offsetParent).position !== 'static') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === top) {\n sideY = bottom; // $FlowFixMe[prop-missing]\n\n y -= offsetParent[heightProp] - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left) {\n sideX = right; // $FlowFixMe[prop-missing]\n\n x -= offsetParent[widthProp] - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) < 2 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref4) {\n var state = _ref4.state,\n options = _ref4.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n\n if (process.env.NODE_ENV !== \"production\") {\n var transitionProperty = getComputedStyle(state.elements.popper).transitionProperty || '';\n\n if (adaptive && ['transform', 'top', 'right', 'bottom', 'left'].some(function (property) {\n return transitionProperty.indexOf(property) >= 0;\n })) {\n console.warn(['Popper: Detected CSS transitions on at least one of the following', 'CSS properties: \"transform\", \"top\", \"right\", \"bottom\", \"left\".', '\\n\\n', 'Disable the \"computeStyles\" modifier\\'s `adaptive` option to allow', 'for smooth transitions, or remove these properties from the CSS', 'transition declaration on the popper element if only transitioning', 'opacity or background-color for example.', '\\n\\n', 'We recommend using the popper element as a wrapper around an inner', 'element that can have any CSS property transitioned for animations.'].join(' '));\n }\n }\n\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};","import getWindow from \"../dom-utils/getWindow.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n passive: true\n};\n\nfunction effect(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n};","var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nexport default function getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}","var hash = {\n start: 'end',\n end: 'start'\n};\nexport default function getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash[matched];\n });\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If <html> has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on <html>\n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nexport default function getViewportRect(element) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0; // NB: This isn't supported on iOS <= 12. If the keyboard is open, the popper\n // can be obscured underneath it.\n // Also, `html.clientHeight` adds the bottom bar height in Safari iOS, even\n // if it isn't open, so if this isn't available, the popper will be detected\n // to overflow the bottom of the screen too early.\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height; // Uses Layout Viewport (like Chrome; Safari does not currently)\n // In Chrome, it returns a value very close to 0 (+/-) but contains rounding\n // errors due to floating point numbers, so we need to check precision.\n // Safari returns a number <= 0, usually < -1 when pinch-zoomed\n // Feature detection fails in mobile emulation mode in Chrome.\n // Math.abs(win.innerWidth / visualViewport.scale - visualViewport.width) <\n // 0.001\n // Fallback here: \"Not Safari\" userAgent\n\n if (!/^((?!chrome|android).)*safari/i.test(navigator.userAgent)) {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element) {\n var rect = getBoundingClientRect(element);\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element)) : isHTMLElement(clippingParent) ? getInnerBoundingClientRect(clippingParent) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}","import getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var referenceElement = state.elements.reference;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary);\n var referenceClientRect = getBoundingClientRect(referenceElement);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements, placements as allPlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\nexport default function computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;\n var variation = getVariation(placement);\n var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements;\n var allowedPlacements = placements.filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n });\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements;\n\n if (process.env.NODE_ENV !== \"production\") {\n console.error(['Popper: The `allowedAutoPlacements` option did not allow any', 'placements. Ensure the `placement` option matches the variation', 'of the allowed placements.', 'For example, \"auto\" cannot be used to allow \"bottom-start\".', 'Use \"auto-start\" instead.'].join(' '));\n }\n } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n var overflows = allowedPlacements.reduce(function (acc, placement) {\n acc[placement] = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n}","import getOppositePlacement from \"../utils/getOppositePlacement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getOppositeVariationPlacement from \"../utils/getOppositeVariationPlacement.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport computeAutoPlacement from \"../utils/computeAutoPlacement.js\";\nimport { bottom, top, start, right, left, auto } from \"../enums.js\";\nimport getVariation from \"../utils/getVariation.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n var oppositePlacement = getOppositePlacement(placement);\n return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = getBasePlacement(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = getBasePlacement(placement);\n\n var isStartVariation = getVariation(placement) === start;\n var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n var altVariationSide = getOppositePlacement(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n};","import { top, bottom, left, right } from \"../enums.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return [top, right, bottom, left].some(function (side) {\n return overflow[side] >= 0;\n });\n}\n\nfunction hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = detectOverflow(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = detectOverflow(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\";\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};","import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name;\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};","export default function getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}","import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport within from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\nimport { max as mathMax, min as mathMin } from \"../utils/math.js\";\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis || checkAltAxis) {\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min = popperOffsets[mainAxis] + overflow[mainSide];\n var max = popperOffsets[mainAxis] - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - tetherOffsetValue : minLen - arrowLen - arrowPaddingMin - tetherOffsetValue;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + tetherOffsetValue : maxLen + arrowLen + arrowPaddingMax + tetherOffsetValue;\n var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = state.modifiersData.offset ? state.modifiersData.offset[state.placement][mainAxis] : 0;\n var tetherMin = popperOffsets[mainAxis] + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = popperOffsets[mainAxis] + maxOffset - offsetModifierValue;\n\n if (checkMainAxis) {\n var preventedOffset = within(tether ? mathMin(min, tetherMin) : min, offset, tether ? mathMax(max, tetherMax) : max);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var _preventedOffset = within(tether ? mathMin(_min, tetherMin) : _min, _offset, tether ? mathMax(_max, tetherMax) : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n};","export default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\"; // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement);\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nexport default function orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}","export default function debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}","export default function mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}","import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport getComputedStyle from \"./dom-utils/getComputedStyle.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport validateModifiers from \"./utils/validateModifiers.js\";\nimport uniqueBy from \"./utils/uniqueBy.js\";\nimport getBasePlacement from \"./utils/getBasePlacement.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nimport { auto } from \"./enums.js\";\nvar INVALID_ELEMENT_ERROR = 'Popper: Invalid reference or popper argument provided. They must be either a DOM element or virtual element.';\nvar INFINITE_LOOP_ERROR = 'Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash.';\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nexport function popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(options) {\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n }); // Validate the provided modifiers so that the consumer will get warned\n // if one of the modifiers is invalid for any reason\n\n if (process.env.NODE_ENV !== \"production\") {\n var modifiers = uniqueBy([].concat(orderedModifiers, state.options.modifiers), function (_ref) {\n var name = _ref.name;\n return name;\n });\n validateModifiers(modifiers);\n\n if (getBasePlacement(state.options.placement) === auto) {\n var flipModifier = state.orderedModifiers.find(function (_ref2) {\n var name = _ref2.name;\n return name === 'flip';\n });\n\n if (!flipModifier) {\n console.error(['Popper: \"auto\" placements require the \"flip\" modifier be', 'present and enabled to work.'].join(' '));\n }\n }\n\n var _getComputedStyle = getComputedStyle(popper),\n marginTop = _getComputedStyle.marginTop,\n marginRight = _getComputedStyle.marginRight,\n marginBottom = _getComputedStyle.marginBottom,\n marginLeft = _getComputedStyle.marginLeft; // We no longer take into account `margins` on the popper, and it can\n // cause bugs with positioning, so we'll warn the consumer\n\n\n if ([marginTop, marginRight, marginBottom, marginLeft].some(function (margin) {\n return parseFloat(margin);\n })) {\n console.warn(['Popper: CSS \"margin\" styles cannot be used to apply padding', 'between the popper and its reference element or boundary.', 'To replicate margin, use the `offset` modifier, as well as', 'the `padding` option in the `preventOverflow` and `flip`', 'modifiers.'].join(' '));\n }\n }\n\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(INVALID_ELEMENT_ERROR);\n }\n\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n var __debug_loops__ = 0;\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (process.env.NODE_ENV !== \"production\") {\n __debug_loops__ += 1;\n\n if (__debug_loops__ > 100) {\n console.error(INFINITE_LOOP_ERROR);\n break;\n }\n }\n\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(INVALID_ELEMENT_ERROR);\n }\n\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref3) {\n var name = _ref3.name,\n _ref3$options = _ref3.options,\n options = _ref3$options === void 0 ? {} : _ref3$options,\n effect = _ref3.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow };","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nimport offset from \"./modifiers/offset.js\";\nimport flip from \"./modifiers/flip.js\";\nimport preventOverflow from \"./modifiers/preventOverflow.js\";\nimport arrow from \"./modifiers/arrow.js\";\nimport hide from \"./modifiers/hide.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles, offset, flip, preventOverflow, arrow, hide];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow }; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper as createPopperLite } from \"./popper-lite.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport * from \"./modifiers/index.js\";","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport * as Popper from '@popperjs/core'\n\nimport {\n defineJQueryPlugin,\n getElementFromSelector,\n isElement,\n isVisible,\n isRTL,\n noop,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\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 SPACE_KEY = 'Space'\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 REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEY}|${ARROW_DOWN_KEY}|${ESCAPE_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 = `click${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_DISABLED = 'disabled'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_DROPUP = 'dropup'\nconst CLASS_NAME_DROPEND = 'dropend'\nconst CLASS_NAME_DROPSTART = 'dropstart'\nconst CLASS_NAME_NAVBAR = 'navbar'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"dropdown\"]'\nconst SELECTOR_MENU = '.dropdown-menu'\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'\n\nconst Default = {\n offset: [0, 2],\n boundary: 'clippingParents',\n reference: 'toggle',\n display: 'dynamic',\n popperConfig: null\n}\n\nconst DefaultType = {\n offset: '(array|string|function)',\n boundary: '(string|element)',\n reference: '(string|element|object)',\n display: 'string',\n popperConfig: '(null|object|function)'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED)) {\n return\n }\n\n const isActive = this._element.classList.contains(CLASS_NAME_SHOW)\n\n Dropdown.clearMenus()\n\n if (isActive) {\n return\n }\n\n this.show()\n }\n\n show() {\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || this._menu.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n const parent = Dropdown.getParentFromElement(this._element)\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 // Totally disable Popper for Dropdowns in Navbar\n if (this._inNavbar) {\n Manipulator.setDataAttribute(this._menu, 'popper', 'none')\n } else {\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 = parent\n } else if (isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n } else if (typeof this._config.reference === 'object') {\n referenceElement = this._config.reference\n }\n\n const popperConfig = this._getPopperConfig()\n const isDisplayStatic = popperConfig.modifiers.find(modifier => modifier.name === 'applyStyles' && modifier.enabled === false)\n\n this._popper = Popper.createPopper(referenceElement, this._menu, popperConfig)\n\n if (isDisplayStatic) {\n Manipulator.setDataAttribute(this._menu, 'popper', 'static')\n }\n }\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 !parent.closest(SELECTOR_NAVBAR_NAV)) {\n [].concat(...document.body.children)\n .forEach(elem => EventHandler.on(elem, 'mouseover', null, noop()))\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n this._menu.classList.toggle(CLASS_NAME_SHOW)\n this._element.classList.toggle(CLASS_NAME_SHOW)\n EventHandler.trigger(this._element, EVENT_SHOWN, relatedTarget)\n }\n\n hide() {\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || !this._menu.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE, relatedTarget)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n if (this._popper) {\n this._popper.destroy()\n }\n\n this._menu.classList.toggle(CLASS_NAME_SHOW)\n this._element.classList.toggle(CLASS_NAME_SHOW)\n Manipulator.removeDataAttribute(this._menu, 'popper')\n EventHandler.trigger(this._element, EVENT_HIDDEN, relatedTarget)\n }\n\n dispose() {\n EventHandler.off(this._element, EVENT_KEY)\n this._menu = null\n\n if (this._popper) {\n this._popper.destroy()\n this._popper = null\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\n _addEventListeners() {\n EventHandler.on(this._element, EVENT_CLICK, event => {\n event.preventDefault()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...Manipulator.getDataAttributes(this._element),\n ...config\n }\n\n typeCheckConfig(NAME, config, this.constructor.DefaultType)\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 _getMenuElement() {\n return SelectorEngine.next(this._element, SELECTOR_MENU)[0]\n }\n\n _getPlacement() {\n const parentDropdown = this._element.parentNode\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 // 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(`.${CLASS_NAME_NAVBAR}`) !== null\n }\n\n _getOffset() {\n const { offset } = this._config\n\n if (typeof offset === 'string') {\n return offset.split(',').map(val => Number.parseInt(val, 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\n if (this._config.display === 'static') {\n defaultBsPopperConfig.modifiers = [{\n name: 'applyStyles',\n enabled: false\n }]\n }\n\n return {\n ...defaultBsPopperConfig,\n ...(typeof this._config.popperConfig === 'function' ? this._config.popperConfig(defaultBsPopperConfig) : this._config.popperConfig)\n }\n }\n\n // Static\n\n static dropdownInterface(element, config) {\n let data = Data.get(element, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(element, _config)\n }\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 static jQueryInterface(config) {\n return this.each(function () {\n Dropdown.dropdownInterface(this, config)\n })\n }\n\n static clearMenus(event) {\n if (event) {\n if (event.button === RIGHT_MOUSE_BUTTON || (event.type === 'keyup' && event.key !== TAB_KEY)) {\n return\n }\n\n if (/input|select|textarea|form/i.test(event.target.tagName)) {\n return\n }\n }\n\n const toggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\n\n for (let i = 0, len = toggles.length; i < len; i++) {\n const context = Data.get(toggles[i], DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!toggles[i].classList.contains(CLASS_NAME_SHOW)) {\n continue\n }\n\n if (event) {\n // Don't close the menu if the clicked element or one of its parents is the dropdown button\n if ([context._element].some(element => event.composedPath().includes(element))) {\n continue\n }\n\n // Tab navigation through the dropdown menu shouldn't close the menu\n if (event.type === 'keyup' && event.key === TAB_KEY && dropdownMenu.contains(event.target)) {\n continue\n }\n }\n\n const hideEvent = EventHandler.trigger(toggles[i], EVENT_HIDE, relatedTarget)\n if (hideEvent.defaultPrevented) {\n continue\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 [].concat(...document.body.children)\n .forEach(elem => EventHandler.off(elem, 'mouseover', null, noop()))\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n if (context._popper) {\n context._popper.destroy()\n }\n\n dropdownMenu.classList.remove(CLASS_NAME_SHOW)\n toggles[i].classList.remove(CLASS_NAME_SHOW)\n Manipulator.removeDataAttribute(dropdownMenu, 'popper')\n EventHandler.trigger(toggles[i], EVENT_HIDDEN, relatedTarget)\n }\n }\n\n static getParentFromElement(element) {\n return getElementFromSelector(element) || element.parentNode\n }\n\n static dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ?\n event.key === SPACE_KEY || (event.key !== ESCAPE_KEY &&\n ((event.key !== ARROW_DOWN_KEY && event.key !== ARROW_UP_KEY) ||\n event.target.closest(SELECTOR_MENU))) :\n !REGEXP_KEYDOWN.test(event.key)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || this.classList.contains(CLASS_NAME_DISABLED)) {\n return\n }\n\n const parent = Dropdown.getParentFromElement(this)\n const isActive = this.classList.contains(CLASS_NAME_SHOW)\n\n if (event.key === ESCAPE_KEY) {\n const button = this.matches(SELECTOR_DATA_TOGGLE) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE)[0]\n button.focus()\n Dropdown.clearMenus()\n return\n }\n\n if (!isActive && (event.key === ARROW_UP_KEY || event.key === ARROW_DOWN_KEY)) {\n const button = this.matches(SELECTOR_DATA_TOGGLE) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE)[0]\n button.click()\n return\n }\n\n if (!isActive || event.key === SPACE_KEY) {\n Dropdown.clearMenus()\n return\n }\n\n const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, parent).filter(isVisible)\n\n if (!items.length) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n // Up\n if (event.key === ARROW_UP_KEY && index > 0) {\n index--\n }\n\n // Down\n if (event.key === ARROW_DOWN_KEY && index < items.length - 1) {\n index++\n }\n\n // index is -1 if the first keydown is an ArrowUp\n index = index === -1 ? 0 : index\n\n items[index].focus()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\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.dropdownInterface(this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Dropdown to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(NAME, Dropdown)\n\nexport default Dropdown\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n defineJQueryPlugin,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isVisible,\n isRTL,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\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 Default = {\n backdrop: true,\n keyboard: true,\n focus: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean'\n}\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_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${EVENT_KEY}`\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEUP_DISMISS = `mouseup.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure'\nconst CLASS_NAME_BACKDROP = 'modal-backdrop'\nconst CLASS_NAME_OPEN = 'modal-open'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_STATIC = 'modal-static'\n\nconst SELECTOR_DIALOG = '.modal-dialog'\nconst SELECTOR_MODAL_BODY = '.modal-body'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"modal\"]'\nconst SELECTOR_DATA_DISMISS = '[data-bs-dismiss=\"modal\"]'\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'\nconst SELECTOR_STICKY_CONTENT = '.sticky-top'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._config = this._getConfig(config)\n this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, this._element)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollbarWidth = 0\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n if (this._isAnimated()) {\n this._isTransitioning = true\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, {\n relatedTarget\n })\n\n if (this._isShown || showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, event => this.hide(event))\n\n EventHandler.on(this._dialog, EVENT_MOUSEDOWN_DISMISS, () => {\n EventHandler.one(this._element, EVENT_MOUSEUP_DISMISS, event => {\n if (event.target === this._element) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\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 const isAnimated = this._isAnimated()\n\n if (isAnimated) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.off(document, EVENT_FOCUSIN)\n\n this._element.classList.remove(CLASS_NAME_SHOW)\n\n EventHandler.off(this._element, EVENT_CLICK_DISMISS)\n EventHandler.off(this._dialog, EVENT_MOUSEDOWN_DISMISS)\n\n if (isAnimated) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, 'transitionend', event => this._hideModal(event))\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach(htmlElement => EventHandler.off(htmlElement, EVENT_KEY))\n\n super.dispose()\n\n /**\n * `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `EVENT_CLICK_DATA_API` event that should remain\n */\n EventHandler.off(document, EVENT_FOCUSIN)\n\n this._config = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._isTransitioning = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const isAnimated = this._isAnimated()\n const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog)\n\n if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(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 if (modalBody) {\n modalBody.scrollTop = 0\n }\n\n if (isAnimated) {\n reflow(this._element)\n }\n\n this._element.classList.add(CLASS_NAME_SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n\n this._isTransitioning = false\n EventHandler.trigger(this._element, EVENT_SHOWN, {\n relatedTarget\n })\n }\n\n if (isAnimated) {\n const transitionDuration = getTransitionDurationFromElement(this._dialog)\n\n EventHandler.one(this._dialog, 'transitionend', transitionComplete)\n emulateTransitionEnd(this._dialog, transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n EventHandler.off(document, EVENT_FOCUSIN) // guard against infinite focus loop\n EventHandler.on(document, EVENT_FOCUSIN, event => {\n if (document !== event.target &&\n this._element !== event.target &&\n !this._element.contains(event.target)) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown) {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {\n if (this._config.keyboard && event.key === ESCAPE_KEY) {\n event.preventDefault()\n this.hide()\n } else if (!this._config.keyboard && event.key === ESCAPE_KEY) {\n this._triggerBackdropTransition()\n }\n })\n } else {\n EventHandler.off(this._element, EVENT_KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n EventHandler.on(window, EVENT_RESIZE, () => this._adjustDialog())\n } else {\n EventHandler.off(window, EVENT_RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._element.removeAttribute('role')\n this._isTransitioning = false\n this._showBackdrop(() => {\n document.body.classList.remove(CLASS_NAME_OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n })\n }\n\n _removeBackdrop() {\n this._backdrop.parentNode.removeChild(this._backdrop)\n this._backdrop = null\n }\n\n _showBackdrop(callback) {\n const isAnimated = this._isAnimated()\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = CLASS_NAME_BACKDROP\n\n if (isAnimated) {\n this._backdrop.classList.add(CLASS_NAME_FADE)\n }\n\n document.body.appendChild(this._backdrop)\n\n EventHandler.on(this._element, EVENT_CLICK_DISMISS, event => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n\n if (event.target !== event.currentTarget) {\n return\n }\n\n if (this._config.backdrop === 'static') {\n this._triggerBackdropTransition()\n } else {\n this.hide()\n }\n })\n\n if (isAnimated) {\n reflow(this._backdrop)\n }\n\n this._backdrop.classList.add(CLASS_NAME_SHOW)\n\n if (!isAnimated) {\n callback()\n return\n }\n\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n\n EventHandler.one(this._backdrop, 'transitionend', callback)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n this._backdrop.classList.remove(CLASS_NAME_SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n callback()\n }\n\n if (isAnimated) {\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n EventHandler.one(this._backdrop, 'transitionend', callbackRemove)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else {\n callback()\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\n if (!isModalOverflowing) {\n this._element.style.overflowY = 'hidden'\n }\n\n this._element.classList.add(CLASS_NAME_STATIC)\n const modalTransitionDuration = getTransitionDurationFromElement(this._dialog)\n EventHandler.off(this._element, 'transitionend')\n EventHandler.one(this._element, 'transitionend', () => {\n this._element.classList.remove(CLASS_NAME_STATIC)\n if (!isModalOverflowing) {\n EventHandler.one(this._element, 'transitionend', () => {\n this._element.style.overflowY = ''\n })\n emulateTransitionEnd(this._element, modalTransitionDuration)\n }\n })\n emulateTransitionEnd(this._element, modalTransitionDuration)\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\n if ((!this._isBodyOverflowing && isModalOverflowing && !isRTL()) || (this._isBodyOverflowing && !isModalOverflowing && isRTL())) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if ((this._isBodyOverflowing && !isModalOverflowing && !isRTL()) || (!this._isBodyOverflowing && isModalOverflowing && isRTL())) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n this._setElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight', calculatedValue => calculatedValue + this._scrollbarWidth)\n this._setElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight', calculatedValue => calculatedValue - this._scrollbarWidth)\n this._setElementAttributes('body', 'paddingRight', calculatedValue => calculatedValue + this._scrollbarWidth)\n }\n\n document.body.classList.add(CLASS_NAME_OPEN)\n }\n\n _setElementAttributes(selector, styleProp, callback) {\n SelectorEngine.find(selector)\n .forEach(element => {\n if (element !== document.body && window.innerWidth > element.clientWidth + this._scrollbarWidth) {\n return\n }\n\n const actualValue = element.style[styleProp]\n const calculatedValue = window.getComputedStyle(element)[styleProp]\n Manipulator.setDataAttribute(element, styleProp, actualValue)\n element.style[styleProp] = callback(Number.parseFloat(calculatedValue)) + 'px'\n })\n }\n\n _resetScrollbar() {\n this._resetElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight')\n this._resetElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight')\n this._resetElementAttributes('body', 'paddingRight')\n }\n\n _resetElementAttributes(selector, styleProp) {\n SelectorEngine.find(selector).forEach(element => {\n const value = Manipulator.getDataAttribute(element, styleProp)\n if (typeof value === 'undefined' && element === document.body) {\n element.style[styleProp] = ''\n } else {\n Manipulator.removeDataAttribute(element, styleProp)\n element.style[styleProp] = value\n }\n })\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = CLASS_NAME_SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = Data.get(this, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(this),\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (!data) {\n data = new Modal(this, _config)\n }\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](relatedTarget)\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n const target = getElementFromSelector(this)\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\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 let data = Data.get(target, DATA_KEY)\n if (!data) {\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n\n data = new Modal(target, config)\n }\n\n data.toggle(this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Modal to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(NAME, Modal)\n\nexport default Modal\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): util/scrollBar.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport SelectorEngine from '../dom/selector-engine'\nimport Manipulator from '../dom/manipulator'\n\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed'\nconst SELECTOR_STICKY_CONTENT = '.sticky-top'\n\nconst 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\nconst hide = (width = getWidth()) => {\n document.body.style.overflow = 'hidden'\n _setElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight', calculatedValue => calculatedValue + width)\n _setElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight', calculatedValue => calculatedValue - width)\n _setElementAttributes('body', 'paddingRight', calculatedValue => calculatedValue + width)\n}\n\nconst _setElementAttributes = (selector, styleProp, callback) => {\n const scrollbarWidth = getWidth()\n SelectorEngine.find(selector)\n .forEach(element => {\n if (element !== document.body && window.innerWidth > element.clientWidth + scrollbarWidth) {\n return\n }\n\n const actualValue = element.style[styleProp]\n const calculatedValue = window.getComputedStyle(element)[styleProp]\n Manipulator.setDataAttribute(element, styleProp, actualValue)\n element.style[styleProp] = callback(Number.parseFloat(calculatedValue)) + 'px'\n })\n}\n\nconst reset = () => {\n document.body.style.overflow = 'auto'\n _resetElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight')\n _resetElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight')\n _resetElementAttributes('body', 'paddingRight')\n}\n\nconst _resetElementAttributes = (selector, styleProp) => {\n SelectorEngine.find(selector).forEach(element => {\n const value = Manipulator.getDataAttribute(element, styleProp)\n if (typeof value === 'undefined' && element === document.body) {\n element.style.removeProperty(styleProp)\n } else {\n Manipulator.removeDataAttribute(element, styleProp)\n element.style[styleProp] = value\n }\n })\n}\n\nconst isBodyOverflowing = () => {\n return getWidth() > 0\n}\n\nexport {\n getWidth,\n hide,\n isBodyOverflowing,\n reset\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): offcanvas.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n defineJQueryPlugin,\n getElementFromSelector,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isDisabled,\n isVisible,\n typeCheckConfig\n} from './util/index'\nimport { hide as scrollBarHide, reset as scrollBarReset } from './util/scrollbar'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport BaseComponent from './base-component'\nimport SelectorEngine from './dom/selector-engine'\nimport Manipulator from './dom/manipulator'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\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 Default = {\n backdrop: true,\n keyboard: true,\n scroll: false\n}\n\nconst DefaultType = {\n backdrop: 'boolean',\n keyboard: 'boolean',\n scroll: 'boolean'\n}\n\nconst CLASS_NAME_BACKDROP_BODY = 'offcanvas-backdrop'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_TOGGLING = 'offcanvas-toggling'\nconst OPEN_SELECTOR = '.offcanvas.show'\nconst ACTIVE_SELECTOR = `${OPEN_SELECTOR}, .${CLASS_NAME_TOGGLING}`\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_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\n\nconst SELECTOR_DATA_DISMISS = '[data-bs-dismiss=\"offcanvas\"]'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"offcanvas\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Offcanvas extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._config = this._getConfig(config)\n this._isShown = false\n this._addEventListeners()\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown) {\n return\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, { relatedTarget })\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n this._element.style.visibility = 'visible'\n\n if (this._config.backdrop) {\n document.body.classList.add(CLASS_NAME_BACKDROP_BODY)\n }\n\n if (!this._config.scroll) {\n scrollBarHide()\n }\n\n this._element.classList.add(CLASS_NAME_TOGGLING)\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n this._element.setAttribute('role', 'dialog')\n this._element.classList.add(CLASS_NAME_SHOW)\n\n const completeCallBack = () => {\n this._element.classList.remove(CLASS_NAME_TOGGLING)\n EventHandler.trigger(this._element, EVENT_SHOWN, { relatedTarget })\n this._enforceFocusOnElement(this._element)\n }\n\n setTimeout(completeCallBack, getTransitionDurationFromElement(this._element))\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._element.classList.add(CLASS_NAME_TOGGLING)\n EventHandler.off(document, EVENT_FOCUSIN)\n this._element.blur()\n this._isShown = false\n this._element.classList.remove(CLASS_NAME_SHOW)\n\n const completeCallback = () => {\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._element.removeAttribute('role')\n this._element.style.visibility = 'hidden'\n\n if (this._config.backdrop) {\n document.body.classList.remove(CLASS_NAME_BACKDROP_BODY)\n }\n\n if (!this._config.scroll) {\n scrollBarReset()\n }\n\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n this._element.classList.remove(CLASS_NAME_TOGGLING)\n }\n\n setTimeout(completeCallback, getTransitionDurationFromElement(this._element))\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...(typeof config === 'object' ? config : {})\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _enforceFocusOnElement(element) {\n EventHandler.off(document, EVENT_FOCUSIN) // guard against infinite focus loop\n EventHandler.on(document, EVENT_FOCUSIN, event => {\n if (document !== event.target &&\n element !== event.target &&\n !element.contains(event.target)) {\n element.focus()\n }\n })\n element.focus()\n }\n\n _addEventListeners() {\n EventHandler.on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, () => this.hide())\n\n EventHandler.on(document, 'keydown', event => {\n if (this._config.keyboard && event.key === ESCAPE_KEY) {\n this.hide()\n }\n })\n\n EventHandler.on(document, EVENT_CLICK_DATA_API, event => {\n const target = SelectorEngine.findOne(getSelectorFromElement(event.target))\n if (!this._element.contains(event.target) && target !== this._element) {\n this.hide()\n }\n })\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Data.get(this, DATA_KEY) || new Offcanvas(this, typeof config === 'object' ? 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 * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n const target = getElementFromSelector(this)\n\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n if (isDisabled(this)) {\n return\n }\n\n EventHandler.one(target, EVENT_HIDDEN, () => {\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 allReadyOpen = SelectorEngine.findOne(ACTIVE_SELECTOR)\n if (allReadyOpen && allReadyOpen !== target) {\n return\n }\n\n const data = Data.get(target, DATA_KEY) || new Offcanvas(target)\n\n data.toggle(this)\n})\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n SelectorEngine.find(OPEN_SELECTOR).forEach(el => (Data.get(el, DATA_KEY) || new Offcanvas(el)).show())\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\ndefineJQueryPlugin(NAME, Offcanvas)\n\nexport default Offcanvas\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst uriAttrs = new Set([\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n])\n\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/i\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[\\d+/a-z]+=*$/i\n\nconst allowedAttribute = (attr, allowedAttributeList) => {\n const attrName = attr.nodeName.toLowerCase()\n\n if (allowedAttributeList.includes(attrName)) {\n if (uriAttrs.has(attrName)) {\n return Boolean(SAFE_URL_PATTERN.test(attr.nodeValue) || DATA_URL_PATTERN.test(attr.nodeValue))\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, len = regExp.length; i < len; i++) {\n if (regExp[i].test(attrName)) {\n return true\n }\n }\n\n return false\n}\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\nexport function sanitizeHtml(unsafeHtml, allowList, sanitizeFn) {\n if (!unsafeHtml.length) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const allowlistKeys = Object.keys(allowList)\n const elements = [].concat(...createdDocument.body.querySelectorAll('*'))\n\n for (let i = 0, len = elements.length; i < len; i++) {\n const el = elements[i]\n const elName = el.nodeName.toLowerCase()\n\n if (!allowlistKeys.includes(elName)) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n const attributeList = [].concat(...el.attributes)\n const allowedAttributes = [].concat(allowList['*'] || [], allowList[elName] || [])\n\n attributeList.forEach(attr => {\n if (!allowedAttribute(attr, allowedAttributes)) {\n el.removeAttribute(attr.nodeName)\n }\n })\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport * as Popper from '@popperjs/core'\n\nimport {\n defineJQueryPlugin,\n emulateTransitionEnd,\n findShadowRoot,\n getTransitionDurationFromElement,\n getUID,\n isElement,\n isRTL,\n noop,\n typeCheckConfig\n} from './util/index'\nimport {\n DefaultAllowlist,\n sanitizeHtml\n} from './util/sanitizer'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tooltip'\nconst DATA_KEY = 'bs.tooltip'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-tooltip'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\nconst DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn'])\n\nconst DefaultType = {\n animation: 'boolean',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string',\n delay: '(number|object)',\n html: 'boolean',\n selector: '(string|boolean)',\n placement: '(string|function)',\n offset: '(array|string|function)',\n container: '(string|element|boolean)',\n fallbackPlacements: 'array',\n boundary: '(string|element)',\n customClass: '(string|function)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n allowList: 'object',\n popperConfig: '(null|object|function)'\n}\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 animation: true,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"tooltip-arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div>' +\n '</div>',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n selector: false,\n placement: 'top',\n offset: [0, 0],\n container: false,\n fallbackPlacements: ['top', 'right', 'bottom', 'left'],\n boundary: 'clippingParents',\n customClass: '',\n sanitize: true,\n sanitizeFn: null,\n allowList: DefaultAllowlist,\n popperConfig: null\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_MODAL = 'modal'\nconst CLASS_NAME_SHOW = 'show'\n\nconst HOVER_STATE_SHOW = 'show'\nconst HOVER_STATE_OUT = 'out'\n\nconst SELECTOR_TOOLTIP_INNER = '.tooltip-inner'\n\nconst TRIGGER_HOVER = 'hover'\nconst TRIGGER_FOCUS = 'focus'\nconst TRIGGER_CLICK = 'click'\nconst TRIGGER_MANUAL = 'manual'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\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)\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const context = this._initializeOnDelegatedTarget(event)\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if (this.getTipElement().classList.contains(CLASS_NAME_SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n EventHandler.off(this._element, this.constructor.EVENT_KEY)\n EventHandler.off(this._element.closest(`.${CLASS_NAME_MODAL}`), 'hide.bs.modal', this._hideModalHandler)\n\n if (this.tip && this.tip.parentNode) {\n this.tip.parentNode.removeChild(this.tip)\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.config = null\n this.tip = null\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.Event.SHOW)\n const shadowRoot = findShadowRoot(this._element)\n const isInTheDom = shadowRoot === null ?\n this._element.ownerDocument.documentElement.contains(this._element) :\n shadowRoot.contains(this._element)\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this._element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n tip.classList.add(CLASS_NAME_FADE)\n }\n\n const placement = typeof this.config.placement === 'function' ?\n this.config.placement.call(this, tip, this._element) :\n this.config.placement\n\n const attachment = this._getAttachment(placement)\n this._addAttachmentClass(attachment)\n\n const container = this._getContainer()\n Data.set(tip, this.constructor.DATA_KEY, this)\n\n if (!this._element.ownerDocument.documentElement.contains(this.tip)) {\n container.appendChild(tip)\n EventHandler.trigger(this._element, this.constructor.Event.INSERTED)\n }\n\n if (this._popper) {\n this._popper.update()\n } else {\n this._popper = Popper.createPopper(this._element, tip, this._getPopperConfig(attachment))\n }\n\n tip.classList.add(CLASS_NAME_SHOW)\n\n const customClass = typeof this.config.customClass === 'function' ? this.config.customClass() : this.config.customClass\n if (customClass) {\n tip.classList.add(...customClass.split(' '))\n }\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 [].concat(...document.body.children).forEach(element => {\n EventHandler.on(element, 'mouseover', noop())\n })\n }\n\n const complete = () => {\n const prevHoverState = this._hoverState\n\n this._hoverState = null\n EventHandler.trigger(this._element, this.constructor.Event.SHOWN)\n\n if (prevHoverState === HOVER_STATE_OUT) {\n this._leave(null, this)\n }\n }\n\n if (this.tip.classList.contains(CLASS_NAME_FADE)) {\n const transitionDuration = getTransitionDurationFromElement(this.tip)\n EventHandler.one(this.tip, 'transitionend', complete)\n emulateTransitionEnd(this.tip, transitionDuration)\n } else {\n complete()\n }\n }\n\n hide() {\n if (!this._popper) {\n return\n }\n\n const tip = this.getTipElement()\n const complete = () => {\n if (this._isWithActiveTrigger()) {\n return\n }\n\n if (this._hoverState !== HOVER_STATE_SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this._element.removeAttribute('aria-describedby')\n EventHandler.trigger(this._element, this.constructor.Event.HIDDEN)\n\n if (this._popper) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n const hideEvent = EventHandler.trigger(this._element, this.constructor.Event.HIDE)\n if (hideEvent.defaultPrevented) {\n return\n }\n\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 [].concat(...document.body.children)\n .forEach(element => EventHandler.off(element, 'mouseover', noop))\n }\n\n this._activeTrigger[TRIGGER_CLICK] = false\n this._activeTrigger[TRIGGER_FOCUS] = false\n this._activeTrigger[TRIGGER_HOVER] = false\n\n if (this.tip.classList.contains(CLASS_NAME_FADE)) {\n const transitionDuration = getTransitionDurationFromElement(tip)\n\n EventHandler.one(tip, 'transitionend', complete)\n emulateTransitionEnd(tip, transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.update()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n getTipElement() {\n if (this.tip) {\n return this.tip\n }\n\n const element = document.createElement('div')\n element.innerHTML = this.config.template\n\n this.tip = element.children[0]\n return this.tip\n }\n\n setContent() {\n const tip = this.getTipElement()\n this.setElementContent(SelectorEngine.findOne(SELECTOR_TOOLTIP_INNER, tip), this.getTitle())\n tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW)\n }\n\n setElementContent(element, content) {\n if (element === null) {\n return\n }\n\n if (typeof content === 'object' && isElement(content)) {\n if (content.jquery) {\n content = content[0]\n }\n\n // content is a DOM node or a jQuery\n if (this.config.html) {\n if (content.parentNode !== element) {\n element.innerHTML = ''\n element.appendChild(content)\n }\n } else {\n element.textContent = content.textContent\n }\n\n return\n }\n\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.allowList, this.config.sanitizeFn)\n }\n\n element.innerHTML = content\n } else {\n element.textContent = content\n }\n }\n\n getTitle() {\n let title = this._element.getAttribute('data-bs-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function' ?\n this.config.title.call(this._element) :\n this.config.title\n }\n\n return title\n }\n\n updateAttachment(attachment) {\n if (attachment === 'right') {\n return 'end'\n }\n\n if (attachment === 'left') {\n return 'start'\n }\n\n return attachment\n }\n\n // Private\n\n _initializeOnDelegatedTarget(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.get(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(event.delegateTarget, this._getDelegateConfig())\n Data.set(event.delegateTarget, dataKey, context)\n }\n\n return context\n }\n\n _getOffset() {\n const { offset } = this.config\n\n if (typeof offset === 'string') {\n return offset.split(',').map(val => Number.parseInt(val, 10))\n }\n\n if (typeof offset === 'function') {\n return popperData => offset(popperData, this._element)\n }\n\n return offset\n }\n\n _getPopperConfig(attachment) {\n const defaultBsPopperConfig = {\n placement: attachment,\n modifiers: [\n {\n name: 'flip',\n options: {\n altBoundary: true,\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: 'onChange',\n enabled: true,\n phase: 'afterWrite',\n fn: data => this._handlePopperPlacementChange(data)\n }\n ],\n onFirstUpdate: data => {\n if (data.options.placement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n }\n }\n\n return {\n ...defaultBsPopperConfig,\n ...(typeof this.config.popperConfig === 'function' ? this.config.popperConfig(defaultBsPopperConfig) : this.config.popperConfig)\n }\n }\n\n _addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${this.updateAttachment(attachment)}`)\n }\n\n _getContainer() {\n if (this.config.container === false) {\n return document.body\n }\n\n if (isElement(this.config.container)) {\n return this.config.container\n }\n\n return SelectorEngine.findOne(this.config.container)\n }\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach(trigger => {\n if (trigger === 'click') {\n EventHandler.on(this._element, this.constructor.Event.CLICK, this.config.selector, event => this.toggle(event))\n } else if (trigger !== TRIGGER_MANUAL) {\n const eventIn = trigger === TRIGGER_HOVER ?\n this.constructor.Event.MOUSEENTER :\n this.constructor.Event.FOCUSIN\n const eventOut = trigger === TRIGGER_HOVER ?\n this.constructor.Event.MOUSELEAVE :\n this.constructor.Event.FOCUSOUT\n\n EventHandler.on(this._element, eventIn, this.config.selector, event => this._enter(event))\n EventHandler.on(this._element, eventOut, this.config.selector, event => this._leave(event))\n }\n })\n\n this._hideModalHandler = () => {\n if (this._element) {\n this.hide()\n }\n }\n\n EventHandler.on(this._element.closest(`.${CLASS_NAME_MODAL}`), 'hide.bs.modal', this._hideModalHandler)\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const title = this._element.getAttribute('title')\n const originalTitleType = typeof this._element.getAttribute('data-bs-original-title')\n\n if (title || originalTitleType !== 'string') {\n this._element.setAttribute('data-bs-original-title', title || '')\n if (title && !this._element.getAttribute('aria-label') && !this._element.textContent) {\n this._element.setAttribute('aria-label', title)\n }\n\n this._element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n context = this._initializeOnDelegatedTarget(event, context)\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER\n ] = true\n }\n\n if (context.getTipElement().classList.contains(CLASS_NAME_SHOW) || context._hoverState === HOVER_STATE_SHOW) {\n context._hoverState = HOVER_STATE_SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n context = this._initializeOnDelegatedTarget(event, context)\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER\n ] = context._element.contains(event.relatedTarget)\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this._element)\n\n Object.keys(dataAttributes).forEach(dataAttr => {\n if (DISALLOWED_ATTRIBUTES.has(dataAttr)) {\n delete dataAttributes[dataAttr]\n }\n })\n\n if (config && typeof config.container === 'object' && config.container.jquery) {\n config.container = config.container[0]\n }\n\n config = {\n ...this.constructor.Default,\n ...dataAttributes,\n ...(typeof config === 'object' && config ? config : {})\n }\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 typeCheckConfig(NAME, config, this.constructor.DefaultType)\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.allowList, config.sanitizeFn)\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n _handlePopperPlacementChange(popperData) {\n const { state } = popperData\n\n if (!state) {\n return\n }\n\n this.tip = state.elements.popper\n this._cleanTipClass()\n this._addAttachmentClass(this._getAttachment(state.placement))\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.get(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n }\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 * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Tooltip to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(NAME, Tooltip)\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { defineJQueryPlugin } from './util/index'\nimport Data from './dom/data'\nimport SelectorEngine from './dom/selector-engine'\nimport Tooltip from './tooltip'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'popover'\nconst DATA_KEY = 'bs.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-popover'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst Default = {\n ...Tooltip.Default,\n placement: 'right',\n offset: [0, 8],\n trigger: 'click',\n content: '',\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}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content: '(string|element|function)'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_TITLE = '.popover-header'\nconst SELECTOR_CONTENT = '.popover-body'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Popover extends Tooltip {\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n setContent() {\n const tip = this.getTipElement()\n\n // we use append for html objects to maintain js events\n this.setElementContent(SelectorEngine.findOne(SELECTOR_TITLE, tip), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this._element)\n }\n\n this.setElementContent(SelectorEngine.findOne(SELECTOR_CONTENT, tip), content)\n\n tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW)\n }\n\n // Private\n\n _addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${this.updateAttachment(attachment)}`)\n }\n\n _getContent() {\n return this._element.getAttribute('data-bs-content') || this.config.content\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.get(this, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n Data.set(this, DATA_KEY, data)\n }\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 * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Popover to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(NAME, Popover)\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n defineJQueryPlugin,\n getSelectorFromElement,\n getUID,\n isElement,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollspy'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n offset: 10,\n method: 'auto',\n target: ''\n}\n\nconst DefaultType = {\n offset: 'number',\n method: 'string',\n target: '(string|element)'\n}\n\nconst EVENT_ACTIVATE = `activate${EVENT_KEY}`\nconst EVENT_SCROLL = `scroll${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_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_DROPDOWN = '.dropdown'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\n\nconst METHOD_OFFSET = 'offset'\nconst METHOD_POSITION = 'position'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy extends BaseComponent {\n constructor(element, config) {\n super(element)\n this._scrollElement = this._element.tagName === 'BODY' ? window : this._element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${SELECTOR_NAV_LINKS}, ${this._config.target} ${SELECTOR_LIST_ITEMS}, ${this._config.target} .${CLASS_NAME_DROPDOWN_ITEM}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n EventHandler.on(this._scrollElement, EVENT_SCROLL, () => this._process())\n\n this.refresh()\n this._process()\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window ?\n METHOD_OFFSET :\n METHOD_POSITION\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod :\n this._config.method\n\n const offsetBase = offsetMethod === METHOD_POSITION ?\n this._getScrollTop() :\n 0\n\n this._offsets = []\n this._targets = []\n this._scrollHeight = this._getScrollHeight()\n\n const targets = SelectorEngine.find(this._selector)\n\n targets.map(element => {\n const targetSelector = getSelectorFromElement(element)\n const target = targetSelector ? SelectorEngine.findOne(targetSelector) : null\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n return [\n Manipulator[offsetMethod](target).top + offsetBase,\n targetSelector\n ]\n }\n }\n\n return null\n })\n .filter(item => item)\n .sort((a, b) => a[0] - b[0])\n .forEach(item => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n super.dispose()\n EventHandler.off(this._scrollElement, EVENT_KEY)\n\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (typeof config.target !== 'string' && isElement(config.target)) {\n let { id } = config.target\n if (!id) {\n id = getUID(NAME)\n config.target.id = id\n }\n\n config.target = `#${id}`\n }\n\n typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window ?\n this._scrollElement.pageYOffset :\n this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window ?\n window.innerHeight :\n this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n for (let i = this._offsets.length; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector.split(',')\n .map(selector => `${selector}[data-bs-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const link = SelectorEngine.findOne(queries.join(','))\n\n if (link.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) {\n SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE, link.closest(SELECTOR_DROPDOWN))\n .classList.add(CLASS_NAME_ACTIVE)\n\n link.classList.add(CLASS_NAME_ACTIVE)\n } else {\n // Set triggered link as active\n link.classList.add(CLASS_NAME_ACTIVE)\n\n SelectorEngine.parents(link, SELECTOR_NAV_LIST_GROUP)\n .forEach(listGroup => {\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 SelectorEngine.prev(listGroup, `${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`)\n .forEach(item => item.classList.add(CLASS_NAME_ACTIVE))\n\n // Handle special case when .nav-link is inside .nav-item\n SelectorEngine.prev(listGroup, SELECTOR_NAV_ITEMS)\n .forEach(navItem => {\n SelectorEngine.children(navItem, SELECTOR_NAV_LINKS)\n .forEach(item => item.classList.add(CLASS_NAME_ACTIVE))\n })\n })\n }\n\n EventHandler.trigger(this._scrollElement, EVENT_ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n SelectorEngine.find(this._selector)\n .filter(node => node.classList.contains(CLASS_NAME_ACTIVE))\n .forEach(node => node.classList.remove(CLASS_NAME_ACTIVE))\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.get(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n }\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 * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n SelectorEngine.find(SELECTOR_DATA_SPY)\n .forEach(spy => new ScrollSpy(spy, Manipulator.getDataAttributes(spy)))\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .ScrollSpy to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(NAME, ScrollSpy)\n\nexport default ScrollSpy\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n defineJQueryPlugin,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isDisabled,\n reflow\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tab'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\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}`\n\nconst CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_UL = ':scope > li > .active'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"tab\"], [data-bs-toggle=\"pill\"], [data-bs-toggle=\"list\"]'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\nconst SELECTOR_DROPDOWN_ACTIVE_CHILD = ':scope > .dropdown-menu .active'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tab extends BaseComponent {\n // Getters\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n show() {\n if ((this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n this._element.classList.contains(CLASS_NAME_ACTIVE)) ||\n isDisabled(this._element)) {\n return\n }\n\n let previous\n const target = getElementFromSelector(this._element)\n const listElement = this._element.closest(SELECTOR_NAV_LIST_GROUP)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE\n previous = SelectorEngine.find(itemSelector, listElement)\n previous = previous[previous.length - 1]\n }\n\n const hideEvent = previous ?\n EventHandler.trigger(previous, EVENT_HIDE, {\n relatedTarget: this._element\n }) :\n null\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, {\n relatedTarget: previous\n })\n\n if (showEvent.defaultPrevented || (hideEvent !== null && hideEvent.defaultPrevented)) {\n return\n }\n\n this._activate(this._element, listElement)\n\n const complete = () => {\n EventHandler.trigger(previous, EVENT_HIDDEN, {\n relatedTarget: this._element\n })\n EventHandler.trigger(this._element, EVENT_SHOWN, {\n relatedTarget: previous\n })\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n // Private\n\n _activate(element, container, callback) {\n const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ?\n SelectorEngine.find(SELECTOR_ACTIVE_UL, container) :\n SelectorEngine.children(container, SELECTOR_ACTIVE)\n\n const active = activeElements[0]\n const isTransitioning = callback && (active && active.classList.contains(CLASS_NAME_FADE))\n\n const complete = () => this._transitionComplete(element, active, callback)\n\n if (active && isTransitioning) {\n const transitionDuration = getTransitionDurationFromElement(active)\n active.classList.remove(CLASS_NAME_SHOW)\n\n EventHandler.one(active, 'transitionend', complete)\n emulateTransitionEnd(active, transitionDuration)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n active.classList.remove(CLASS_NAME_ACTIVE)\n\n const dropdownChild = SelectorEngine.findOne(SELECTOR_DROPDOWN_ACTIVE_CHILD, active.parentNode)\n\n if (dropdownChild) {\n dropdownChild.classList.remove(CLASS_NAME_ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n element.classList.add(CLASS_NAME_ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n reflow(element)\n\n if (element.classList.contains(CLASS_NAME_FADE)) {\n element.classList.add(CLASS_NAME_SHOW)\n }\n\n if (element.parentNode && element.parentNode.classList.contains(CLASS_NAME_DROPDOWN_MENU)) {\n const dropdownElement = element.closest(SELECTOR_DROPDOWN)\n\n if (dropdownElement) {\n SelectorEngine.find(SELECTOR_DROPDOWN_TOGGLE)\n .forEach(dropdown => dropdown.classList.add(CLASS_NAME_ACTIVE))\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Data.get(this, DATA_KEY) || new Tab(this)\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 * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault()\n\n const data = Data.get(this, DATA_KEY) || new Tab(this)\n data.show()\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Tab to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(NAME, Tab)\n\nexport default Tab\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n defineJQueryPlugin,\n emulateTransitionEnd,\n getTransitionDurationFromElement,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'toast'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_CLICK_DISMISS = `click.dismiss${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'\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\nconst SELECTOR_DATA_DISMISS = '[data-bs-dismiss=\"toast\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n }\n\n // Getters\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get Default() {\n return Default\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\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 this._element.classList.add(CLASS_NAME_SHOW)\n\n EventHandler.trigger(this._element, EVENT_SHOWN)\n\n if (this._config.autohide) {\n this._timeout = setTimeout(() => {\n this.hide()\n }, this._config.delay)\n }\n }\n\n this._element.classList.remove(CLASS_NAME_HIDE)\n reflow(this._element)\n this._element.classList.add(CLASS_NAME_SHOWING)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, 'transitionend', complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n hide() {\n if (!this._element.classList.contains(CLASS_NAME_SHOW)) {\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)\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n }\n\n this._element.classList.remove(CLASS_NAME_SHOW)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, 'transitionend', complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n dispose() {\n this._clearTimeout()\n\n if (this._element.classList.contains(CLASS_NAME_SHOW)) {\n this._element.classList.remove(CLASS_NAME_SHOW)\n }\n\n EventHandler.off(this._element, EVENT_CLICK_DISMISS)\n\n super.dispose()\n this._config = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...(typeof config === 'object' && config ? config : {})\n }\n\n typeCheckConfig(NAME, config, this.constructor.DefaultType)\n\n return config\n }\n\n _setListeners() {\n EventHandler.on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, () => this.hide())\n }\n\n _clearTimeout() {\n clearTimeout(this._timeout)\n this._timeout = null\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.get(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new Toast(this, _config)\n }\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 * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Toast to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(NAME, Toast)\n\nexport default Toast\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): index.umd.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Alert from './src/alert'\nimport Button from './src/button'\nimport Carousel from './src/carousel'\nimport Collapse from './src/collapse'\nimport Dropdown from './src/dropdown'\nimport Modal from './src/modal'\nimport Offcanvas from './src/offcanvas'\nimport Popover from './src/popover'\nimport ScrollSpy from './src/scrollspy'\nimport Tab from './src/tab'\nimport Toast from './src/toast'\nimport Tooltip from './src/tooltip'\n\nexport default {\n Alert,\n Button,\n Carousel,\n Collapse,\n Dropdown,\n Modal,\n Offcanvas,\n Popover,\n ScrollSpy,\n Tab,\n Toast,\n Tooltip\n}\n"],"names":["MAX_UID","MILLISECONDS_MULTIPLIER","TRANSITION_END","toType","obj","undefined","toString","call","match","toLowerCase","getUID","prefix","Math","floor","random","document","getElementById","getSelector","element","selector","getAttribute","hrefAttr","includes","startsWith","split","trim","getSelectorFromElement","querySelector","getElementFromSelector","getTransitionDurationFromElement","transitionDuration","transitionDelay","window","getComputedStyle","floatTransitionDuration","Number","parseFloat","floatTransitionDelay","triggerTransitionEnd","dispatchEvent","Event","isElement","nodeType","emulateTransitionEnd","duration","called","durationPadding","emulatedDuration","listener","removeEventListener","addEventListener","setTimeout","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","TypeError","toUpperCase","isVisible","style","parentNode","elementStyle","parentNodeStyle","display","visibility","isDisabled","Node","ELEMENT_NODE","classList","contains","disabled","hasAttribute","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","noop","reflow","offsetHeight","getjQuery","jQuery","body","onDOMContentLoaded","callback","readyState","isRTL","dir","defineJQueryPlugin","name","plugin","$","JQUERY_NO_CONFLICT","fn","jQueryInterface","Constructor","noConflict","elementMap","Map","set","key","instance","has","instanceMap","get","size","console","error","Array","from","remove","delete","namespaceRegex","stripNameRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","nativeEvents","Set","getUidEvent","uid","getEvent","bootstrapHandler","handler","event","delegateTarget","oneOff","EventHandler","off","type","apply","bootstrapDelegationHandler","domElements","querySelectorAll","target","i","length","findHandler","events","delegationSelector","uidEventList","len","originalHandler","normalizeParams","originalTypeEvent","delegationFn","delegation","typeEvent","replace","custom","isNative","addHandler","handlers","previousFn","removeHandler","Boolean","removeNamespacedHandlers","namespace","storeElementEvent","handlerKey","on","one","inNamespace","isNamespace","elementEvent","slice","keyHandlers","trigger","args","jQueryEvent","bubbles","nativeDispatch","defaultPrevented","evt","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","createEvent","initEvent","CustomEvent","cancelable","defineProperty","preventDefault","VERSION","BaseComponent","constructor","_element","Data","DATA_KEY","dispose","getInstance","NAME","EVENT_KEY","DATA_API_KEY","SELECTOR_DISMISS","EVENT_CLOSE","EVENT_CLOSED","EVENT_CLICK_DATA_API","CLASS_NAME_ALERT","CLASS_NAME_FADE","CLASS_NAME_SHOW","Alert","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","_removeElement","closest","_destroyElement","removeChild","each","data","handleDismiss","alertInstance","CLASS_NAME_ACTIVE","SELECTOR_DATA_TOGGLE","Button","toggle","setAttribute","button","normalizeData","val","normalizeDataKey","chr","Manipulator","setDataAttribute","removeDataAttribute","removeAttribute","getDataAttributes","attributes","dataset","filter","pureKey","charAt","getDataAttribute","offset","rect","getBoundingClientRect","top","scrollTop","left","scrollLeft","position","offsetTop","offsetLeft","NODE_TEXT","SelectorEngine","find","concat","Element","prototype","findOne","children","child","matches","parents","ancestor","push","prev","previous","previousElementSibling","next","nextElementSibling","ARROW_LEFT_KEY","ARROW_RIGHT_KEY","TOUCHEVENT_COMPAT_WAIT","SWIPE_THRESHOLD","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","ORDER_NEXT","ORDER_PREV","DIRECTION_LEFT","DIRECTION_RIGHT","EVENT_SLIDE","EVENT_SLID","EVENT_KEYDOWN","EVENT_MOUSEENTER","EVENT_MOUSELEAVE","EVENT_TOUCHSTART","EVENT_TOUCHMOVE","EVENT_TOUCHEND","EVENT_POINTERDOWN","EVENT_POINTERUP","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","CLASS_NAME_POINTER_EVENT","SELECTOR_ACTIVE","SELECTOR_ACTIVE_ITEM","SELECTOR_ITEM","SELECTOR_ITEM_IMG","SELECTOR_NEXT_PREV","SELECTOR_INDICATORS","SELECTOR_INDICATOR","SELECTOR_DATA_SLIDE","SELECTOR_DATA_RIDE","POINTER_TYPE_TOUCH","POINTER_TYPE_PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","_addEventListeners","_slide","nextWhenVisible","hidden","cycle","clearInterval","_updateInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","order","_handleSwipe","absDeltax","abs","direction","_keydown","_addTouchEventListeners","start","pointerType","clientX","touches","move","end","clearTimeout","itemImg","e","add","tagName","indexOf","_getItemByOrder","activeElement","isNext","isPrev","lastItemIndex","isGoingToWrap","delta","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","_setActiveIndicatorElement","activeIndicator","indicators","parseInt","elementInterval","defaultInterval","directionOrOrder","_directionToOrder","activeElementIndex","nextElement","nextElementIndex","isCycling","directionalClassName","orderClassName","_orderToDirection","slideEvent","carouselInterface","action","ride","dataApiClickHandler","slideIndex","carousels","parent","EVENT_SHOW","EVENT_SHOWN","EVENT_HIDE","EVENT_HIDDEN","CLASS_NAME_COLLAPSE","CLASS_NAME_COLLAPSING","CLASS_NAME_COLLAPSED","WIDTH","HEIGHT","SELECTOR_ACTIVES","Collapse","_isTransitioning","_triggerArray","id","toggleList","elem","filterElement","foundElem","_selector","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","container","tempActiveData","startEvent","elemActive","collapseInterface","dimension","_getDimension","setTransitioning","complete","capitalizedDimension","scrollSize","triggerArrayLength","isTransitioning","jquery","selected","triggerArray","isOpen","triggerData","selectorElements","effect","min","max","mathMax","mathMin","hash","allPlacements","placements","createPopper","defaultModifiers","popperOffsets","computeStyles","applyStyles","flip","preventOverflow","arrow","ESCAPE_KEY","SPACE_KEY","TAB_KEY","ARROW_UP_KEY","ARROW_DOWN_KEY","RIGHT_MOUSE_BUTTON","REGEXP_KEYDOWN","EVENT_CLICK","EVENT_KEYDOWN_DATA_API","EVENT_KEYUP_DATA_API","CLASS_NAME_DISABLED","CLASS_NAME_DROPUP","CLASS_NAME_DROPEND","CLASS_NAME_DROPSTART","CLASS_NAME_NAVBAR","SELECTOR_MENU","SELECTOR_NAVBAR_NAV","SELECTOR_VISIBLE_ITEMS","PLACEMENT_TOP","PLACEMENT_TOPEND","PLACEMENT_BOTTOM","PLACEMENT_BOTTOMEND","PLACEMENT_RIGHT","PLACEMENT_LEFT","boundary","reference","popperConfig","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","isActive","clearMenus","getParentFromElement","showEvent","Popper","referenceElement","_getPopperConfig","isDisplayStatic","modifiers","modifier","enabled","focus","hideEvent","destroy","update","_getPlacement","parentDropdown","isEnd","getPropertyValue","_getOffset","map","popperData","defaultBsPopperConfig","placement","options","dropdownInterface","toggles","context","clickEvent","dropdownMenu","some","composedPath","dataApiKeydownHandler","stopPropagation","click","items","backdrop","EVENT_HIDE_PREVENTED","EVENT_FOCUSIN","EVENT_RESIZE","EVENT_CLICK_DISMISS","EVENT_KEYDOWN_DISMISS","EVENT_MOUSEUP_DISMISS","EVENT_MOUSEDOWN_DISMISS","CLASS_NAME_SCROLLBAR_MEASURER","CLASS_NAME_BACKDROP","CLASS_NAME_OPEN","CLASS_NAME_STATIC","SELECTOR_DIALOG","SELECTOR_MODAL_BODY","SELECTOR_DATA_DISMISS","SELECTOR_FIXED_CONTENT","SELECTOR_STICKY_CONTENT","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_isAnimated","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","isAnimated","_hideModal","htmlElement","handleUpdate","modalBody","appendChild","_enforceFocus","transitionComplete","_triggerBackdropTransition","_resetAdjustments","_resetScrollbar","_removeBackdrop","createElement","className","currentTarget","backdropTransitionDuration","callbackRemove","isModalOverflowing","scrollHeight","clientHeight","overflowY","modalTransitionDuration","paddingLeft","paddingRight","round","right","innerWidth","_getScrollbarWidth","_setElementAttributes","calculatedValue","styleProp","clientWidth","actualValue","_resetElementAttributes","scrollDiv","scrollbarWidth","width","getWidth","documentWidth","overflow","reset","removeProperty","scroll","CLASS_NAME_BACKDROP_BODY","CLASS_NAME_TOGGLING","OPEN_SELECTOR","ACTIVE_SELECTOR","Offcanvas","scrollBarHide","completeCallBack","_enforceFocusOnElement","blur","completeCallback","scrollBarReset","allReadyOpen","el","uriAttrs","ARIA_ATTRIBUTE_PATTERN","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","attr","allowedAttributeList","attrName","nodeName","nodeValue","regExp","attrRegex","DefaultAllowlist","a","area","b","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","sanitizeHtml","unsafeHtml","allowList","sanitizeFn","domParser","DOMParser","createdDocument","parseFromString","allowlistKeys","elements","elName","attributeList","allowedAttributes","innerHTML","CLASS_PREFIX","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","html","fallbackPlacements","customClass","sanitize","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","CLASS_NAME_MODAL","HOVER_STATE_SHOW","HOVER_STATE_OUT","SELECTOR_TOOLTIP_INNER","TRIGGER_HOVER","TRIGGER_FOCUS","TRIGGER_CLICK","TRIGGER_MANUAL","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","_initializeOnDelegatedTarget","_isWithActiveTrigger","_enter","_leave","getTipElement","_hideModalHandler","Error","isWithContent","shadowRoot","isInTheDom","ownerDocument","tipId","setContent","attachment","_getAttachment","_addAttachmentClass","_getContainer","prevHoverState","_cleanTipClass","getTitle","setElementContent","content","textContent","updateAttachment","dataKey","_getDelegateConfig","altBoundary","phase","_handlePopperPlacementChange","onFirstUpdate","triggers","eventIn","eventOut","_fixTitle","originalTitleType","dataAttributes","dataAttr","tabClass","token","tClass","state","popper","SELECTOR_TITLE","SELECTOR_CONTENT","Popover","_getContent","method","EVENT_ACTIVATE","EVENT_SCROLL","CLASS_NAME_DROPDOWN_ITEM","SELECTOR_DATA_SPY","SELECTOR_NAV_LIST_GROUP","SELECTOR_NAV_LINKS","SELECTOR_NAV_ITEMS","SELECTOR_LIST_ITEMS","SELECTOR_DROPDOWN","SELECTOR_DROPDOWN_TOGGLE","METHOD_OFFSET","METHOD_POSITION","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targets","targetSelector","targetBCR","height","item","sort","pageYOffset","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","isActiveTarget","queries","link","join","listGroup","navItem","node","spy","CLASS_NAME_DROPDOWN_MENU","SELECTOR_ACTIVE_UL","SELECTOR_DROPDOWN_ACTIVE_CHILD","Tab","listElement","itemSelector","activeElements","active","_transitionComplete","dropdownChild","dropdownElement","dropdown","CLASS_NAME_HIDE","CLASS_NAME_SHOWING","autohide","Toast","_clearTimeout"],"mappings":"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"}
\ No newline at end of file diff --git a/dist/js/bootstrap.bundle.min.js b/dist/js/bootstrap.bundle.min.js index 1e90c4d00..2168d6330 100644 --- a/dist/js/bootstrap.bundle.min.js +++ b/dist/js/bootstrap.bundle.min.js @@ -1,7 +1,7 @@ /*! - * Bootstrap v5.0.0-alpha3 (https://getbootstrap.com/) - * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) + * Bootstrap v5.0.0-beta3 (https://getbootstrap.com/) + * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) */ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).bootstrap=e()}(this,(function(){"use strict";function t(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function e(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}function n(){return(n=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t}).apply(this,arguments)}function i(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,t.__proto__=e}var o,r,s=function(t){do{t+=Math.floor(1e6*Math.random())}while(document.getElementById(t));return t},a=function(t){var e=t.getAttribute("data-bs-target");if(!e||"#"===e){var n=t.getAttribute("href");e=n&&"#"!==n?n.trim():null}return e},l=function(t){var e=a(t);return e&&document.querySelector(e)?e:null},c=function(t){var e=a(t);return e?document.querySelector(e):null},u=function(t){if(!t)return 0;var e=window.getComputedStyle(t),n=e.transitionDuration,i=e.transitionDelay,o=Number.parseFloat(n),r=Number.parseFloat(i);return o||r?(n=n.split(",")[0],i=i.split(",")[0],1e3*(Number.parseFloat(n)+Number.parseFloat(i))):0},f=function(t){t.dispatchEvent(new Event("transitionend"))},d=function(t){return(t[0]||t).nodeType},h=function(t,e){var n=!1,i=e+5;t.addEventListener("transitionend",(function e(){n=!0,t.removeEventListener("transitionend",e)})),setTimeout((function(){n||f(t)}),i)},p=function(t,e,n){Object.keys(n).forEach((function(i){var o,r=n[i],s=e[i],a=s&&d(s)?"element":null==(o=s)?""+o:{}.toString.call(o).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(r).test(a))throw new Error(t.toUpperCase()+': Option "'+i+'" provided type "'+a+'" but expected type "'+r+'".')}))},g=function(t){if(!t)return!1;if(t.style&&t.parentNode&&t.parentNode.style){var e=getComputedStyle(t),n=getComputedStyle(t.parentNode);return"none"!==e.display&&"none"!==n.display&&"hidden"!==e.visibility}return!1},m=function(){return function(){}},v=function(t){return t.offsetHeight},_=function(){var t=window.jQuery;return t&&!document.body.hasAttribute("data-bs-no-jquery")?t:null},b=function(t){"loading"===document.readyState?document.addEventListener("DOMContentLoaded",t):t()},y="rtl"===document.documentElement.dir,w=(o={},r=1,{set:function(t,e,n){void 0===t.bsKey&&(t.bsKey={key:e,id:r},r++),o[t.bsKey.id]=n},get:function(t,e){if(!t||void 0===t.bsKey)return null;var n=t.bsKey;return n.key===e?o[n.id]:null},delete:function(t,e){if(void 0!==t.bsKey){var n=t.bsKey;n.key===e&&(delete o[n.id],delete t.bsKey)}}}),E=function(t,e,n){w.set(t,e,n)},T=function(t,e){return w.get(t,e)},L=function(t,e){w.delete(t,e)},k=/[^.]*(?=\..*)\.|.*/,A=/\..*/,C=/::\d+$/,D={},O=1,S={mouseenter:"mouseover",mouseleave:"mouseout"},N=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function x(t,e){return e&&e+"::"+O++||t.uidEvent||O++}function I(t){var e=x(t);return t.uidEvent=e,D[e]=D[e]||{},D[e]}function j(t,e,n){void 0===n&&(n=null);for(var i=Object.keys(t),o=0,r=i.length;o<r;o++){var s=t[i[o]];if(s.originalHandler===e&&s.delegationSelector===n)return s}return null}function P(t,e,n){var i="string"==typeof e,o=i?n:e,r=t.replace(A,""),s=S[r];return s&&(r=s),N.has(r)||(r=t),[i,o,r]}function M(t,e,n,i,o){if("string"==typeof e&&t){n||(n=i,i=null);var r=P(e,n,i),s=r[0],a=r[1],l=r[2],c=I(t),u=c[l]||(c[l]={}),f=j(u,a,s?n:null);if(f)f.oneOff=f.oneOff&&o;else{var d=x(a,e.replace(k,"")),h=s?function(t,e,n){return function i(o){for(var r=t.querySelectorAll(e),s=o.target;s&&s!==this;s=s.parentNode)for(var a=r.length;a--;)if(r[a]===s)return o.delegateTarget=s,i.oneOff&&B.off(t,o.type,n),n.apply(s,[o]);return null}}(t,n,i):function(t,e){return function n(i){return i.delegateTarget=t,n.oneOff&&B.off(t,i.type,e),e.apply(t,[i])}}(t,n);h.delegationSelector=s?n:null,h.originalHandler=a,h.oneOff=o,h.uidEvent=d,u[d]=h,t.addEventListener(l,h,s)}}}function H(t,e,n,i,o){var r=j(e[n],i,o);r&&(t.removeEventListener(n,r,Boolean(o)),delete e[n][r.uidEvent])}var B={on:function(t,e,n,i){M(t,e,n,i,!1)},one:function(t,e,n,i){M(t,e,n,i,!0)},off:function(t,e,n,i){if("string"==typeof e&&t){var o=P(e,n,i),r=o[0],s=o[1],a=o[2],l=a!==e,c=I(t),u=e.startsWith(".");if(void 0===s){u&&Object.keys(c).forEach((function(n){!function(t,e,n,i){var o=e[n]||{};Object.keys(o).forEach((function(r){if(r.includes(i)){var s=o[r];H(t,e,n,s.originalHandler,s.delegationSelector)}}))}(t,c,n,e.slice(1))}));var f=c[a]||{};Object.keys(f).forEach((function(n){var i=n.replace(C,"");if(!l||e.includes(i)){var o=f[n];H(t,c,a,o.originalHandler,o.delegationSelector)}}))}else{if(!c||!c[a])return;H(t,c,a,s,r?n:null)}}},trigger:function(t,e,n){if("string"!=typeof e||!t)return null;var i,o=_(),r=e.replace(A,""),s=e!==r,a=N.has(r),l=!0,c=!0,u=!1,f=null;return s&&o&&(i=o.Event(e,n),o(t).trigger(i),l=!i.isPropagationStopped(),c=!i.isImmediatePropagationStopped(),u=i.isDefaultPrevented()),a?(f=document.createEvent("HTMLEvents")).initEvent(r,l,!0):f=new CustomEvent(e,{bubbles:l,cancelable:!0}),void 0!==n&&Object.keys(n).forEach((function(t){Object.defineProperty(f,t,{get:function(){return n[t]}})})),u&&f.preventDefault(),c&&t.dispatchEvent(f),f.defaultPrevented&&void 0!==i&&i.preventDefault(),f}},F=function(){function t(t){t&&(this._element=t,E(t,this.constructor.DATA_KEY,this))}return t.prototype.dispose=function(){L(this._element,this.constructor.DATA_KEY),this._element=null},t.getInstance=function(t){return T(t,this.DATA_KEY)},e(t,null,[{key:"VERSION",get:function(){return"5.0.0-alpha3"}}]),t}(),R="alert",W=function(t){function n(){return t.apply(this,arguments)||this}i(n,t);var o=n.prototype;return o.close=function(t){var e=t?this._getRootElement(t):this._element,n=this._triggerCloseEvent(e);null===n||n.defaultPrevented||this._removeElement(e)},o._getRootElement=function(t){return c(t)||t.closest(".alert")},o._triggerCloseEvent=function(t){return B.trigger(t,"close.bs.alert")},o._removeElement=function(t){var e=this;if(t.classList.remove("show"),t.classList.contains("fade")){var n=u(t);B.one(t,"transitionend",(function(){return e._destroyElement(t)})),h(t,n)}else this._destroyElement(t)},o._destroyElement=function(t){t.parentNode&&t.parentNode.removeChild(t),B.trigger(t,"closed.bs.alert")},n.jQueryInterface=function(t){return this.each((function(){var e=T(this,"bs.alert");e||(e=new n(this)),"close"===t&&e[t](this)}))},n.handleDismiss=function(t){return function(e){e&&e.preventDefault(),t.close(this)}},e(n,null,[{key:"DATA_KEY",get:function(){return"bs.alert"}}]),n}(F);B.on(document,"click.bs.alert.data-api",'[data-bs-dismiss="alert"]',W.handleDismiss(new W)),b((function(){var t=_();if(t){var e=t.fn[R];t.fn[R]=W.jQueryInterface,t.fn[R].Constructor=W,t.fn[R].noConflict=function(){return t.fn[R]=e,W.jQueryInterface}}}));var U=function(t){function n(){return t.apply(this,arguments)||this}return i(n,t),n.prototype.toggle=function(){this._element.setAttribute("aria-pressed",this._element.classList.toggle("active"))},n.jQueryInterface=function(t){return this.each((function(){var e=T(this,"bs.button");e||(e=new n(this)),"toggle"===t&&e[t]()}))},e(n,null,[{key:"DATA_KEY",get:function(){return"bs.button"}}]),n}(F);function K(t){return"true"===t||"false"!==t&&(t===Number(t).toString()?Number(t):""===t||"null"===t?null:t)}function Q(t){return t.replace(/[A-Z]/g,(function(t){return"-"+t.toLowerCase()}))}B.on(document,"click.bs.button.data-api",'[data-bs-toggle="button"]',(function(t){t.preventDefault();var e=t.target.closest('[data-bs-toggle="button"]'),n=T(e,"bs.button");n||(n=new U(e)),n.toggle()})),b((function(){var t=_();if(t){var e=t.fn.button;t.fn.button=U.jQueryInterface,t.fn.button.Constructor=U,t.fn.button.noConflict=function(){return t.fn.button=e,U.jQueryInterface}}}));var Y={setDataAttribute:function(t,e,n){t.setAttribute("data-bs-"+Q(e),n)},removeDataAttribute:function(t,e){t.removeAttribute("data-bs-"+Q(e))},getDataAttributes:function(t){if(!t)return{};var e={};return Object.keys(t.dataset).filter((function(t){return t.startsWith("bs")})).forEach((function(n){var i=n.replace(/^bs/,"");i=i.charAt(0).toLowerCase()+i.slice(1,i.length),e[i]=K(t.dataset[n])})),e},getDataAttribute:function(t,e){return K(t.getAttribute("data-bs-"+Q(e)))},offset:function(t){var e=t.getBoundingClientRect();return{top:e.top+document.body.scrollTop,left:e.left+document.body.scrollLeft}},position:function(t){return{top:t.offsetTop,left:t.offsetLeft}}},z={matches:function(t,e){return t.matches(e)},find:function(t,e){var n;return void 0===e&&(e=document.documentElement),(n=[]).concat.apply(n,Element.prototype.querySelectorAll.call(e,t))},findOne:function(t,e){return void 0===e&&(e=document.documentElement),Element.prototype.querySelector.call(e,t)},children:function(t,e){var n,i=(n=[]).concat.apply(n,t.children);return i.filter((function(t){return t.matches(e)}))},parents:function(t,e){for(var n=[],i=t.parentNode;i&&i.nodeType===Node.ELEMENT_NODE&&3!==i.nodeType;)this.matches(i,e)&&n.push(i),i=i.parentNode;return n},prev:function(t,e){for(var n=t.previousElementSibling;n;){if(n.matches(e))return[n];n=n.previousElementSibling}return[]},next:function(t,e){for(var n=t.nextElementSibling;n;){if(this.matches(n,e))return[n];n=n.nextElementSibling}return[]}},V="carousel",q=".bs.carousel",X={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},G={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},$={TOUCH:"touch",PEN:"pen"},Z=function(t){function o(e,n){var i;return(i=t.call(this,e)||this)._items=null,i._interval=null,i._activeElement=null,i._isPaused=!1,i._isSliding=!1,i.touchTimeout=null,i.touchStartX=0,i.touchDeltaX=0,i._config=i._getConfig(n),i._indicatorsElement=z.findOne(".carousel-indicators",i._element),i._touchSupported="ontouchstart"in document.documentElement||navigator.maxTouchPoints>0,i._pointerEvent=Boolean(window.PointerEvent),i._addEventListeners(),i}i(o,t);var r=o.prototype;return r.next=function(){this._isSliding||this._slide("next")},r.nextWhenVisible=function(){!document.hidden&&g(this._element)&&this.next()},r.prev=function(){this._isSliding||this._slide("prev")},r.pause=function(t){t||(this._isPaused=!0),z.findOne(".carousel-item-next, .carousel-item-prev",this._element)&&(f(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},r.cycle=function(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config&&this._config.interval&&!this._isPaused&&(this._updateInterval(),this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},r.to=function(t){var e=this;this._activeElement=z.findOne(".active.carousel-item",this._element);var n=this._getItemIndex(this._activeElement);if(!(t>this._items.length-1||t<0))if(this._isSliding)B.one(this._element,"slid.bs.carousel",(function(){return e.to(t)}));else{if(n===t)return this.pause(),void this.cycle();var i=t>n?"next":"prev";this._slide(i,this._items[t])}},r.dispose=function(){t.prototype.dispose.call(this),B.off(this._element,q),this._items=null,this._config=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},r._getConfig=function(t){return t=n({},X,t),p(V,t,G),t},r._handleSwipe=function(){var t=Math.abs(this.touchDeltaX);if(!(t<=40)){var e=t/this.touchDeltaX;this.touchDeltaX=0,e>0&&this.prev(),e<0&&this.next()}},r._addEventListeners=function(){var t=this;this._config.keyboard&&B.on(this._element,"keydown.bs.carousel",(function(e){return t._keydown(e)})),"hover"===this._config.pause&&(B.on(this._element,"mouseenter.bs.carousel",(function(e){return t.pause(e)})),B.on(this._element,"mouseleave.bs.carousel",(function(e){return t.cycle(e)}))),this._config.touch&&this._touchSupported&&this._addTouchEventListeners()},r._addTouchEventListeners=function(){var t=this,e=function(e){t._pointerEvent&&$[e.pointerType.toUpperCase()]?t.touchStartX=e.clientX:t._pointerEvent||(t.touchStartX=e.touches[0].clientX)},n=function(e){t._pointerEvent&&$[e.pointerType.toUpperCase()]&&(t.touchDeltaX=e.clientX-t.touchStartX),t._handleSwipe(),"hover"===t._config.pause&&(t.pause(),t.touchTimeout&&clearTimeout(t.touchTimeout),t.touchTimeout=setTimeout((function(e){return t.cycle(e)}),500+t._config.interval))};z.find(".carousel-item img",this._element).forEach((function(t){B.on(t,"dragstart.bs.carousel",(function(t){return t.preventDefault()}))})),this._pointerEvent?(B.on(this._element,"pointerdown.bs.carousel",(function(t){return e(t)})),B.on(this._element,"pointerup.bs.carousel",(function(t){return n(t)})),this._element.classList.add("pointer-event")):(B.on(this._element,"touchstart.bs.carousel",(function(t){return e(t)})),B.on(this._element,"touchmove.bs.carousel",(function(e){return function(e){e.touches&&e.touches.length>1?t.touchDeltaX=0:t.touchDeltaX=e.touches[0].clientX-t.touchStartX}(e)})),B.on(this._element,"touchend.bs.carousel",(function(t){return n(t)})))},r._keydown=function(t){if(!/input|textarea/i.test(t.target.tagName))switch(t.key){case"ArrowLeft":t.preventDefault(),this.prev();break;case"ArrowRight":t.preventDefault(),this.next()}},r._getItemIndex=function(t){return this._items=t&&t.parentNode?z.find(".carousel-item",t.parentNode):[],this._items.indexOf(t)},r._getItemByDirection=function(t,e){var n="next"===t,i="prev"===t,o=this._getItemIndex(e),r=this._items.length-1;if((i&&0===o||n&&o===r)&&!this._config.wrap)return e;var s=(o+("prev"===t?-1:1))%this._items.length;return-1===s?this._items[this._items.length-1]:this._items[s]},r._triggerSlideEvent=function(t,e){var n=this._getItemIndex(t),i=this._getItemIndex(z.findOne(".active.carousel-item",this._element));return B.trigger(this._element,"slide.bs.carousel",{relatedTarget:t,direction:e,from:i,to:n})},r._setActiveIndicatorElement=function(t){if(this._indicatorsElement){for(var e=z.find(".active",this._indicatorsElement),n=0;n<e.length;n++)e[n].classList.remove("active");var i=this._indicatorsElement.children[this._getItemIndex(t)];i&&i.classList.add("active")}},r._updateInterval=function(){var t=this._activeElement||z.findOne(".active.carousel-item",this._element);if(t){var e=Number.parseInt(t.getAttribute("data-bs-interval"),10);e?(this._config.defaultInterval=this._config.defaultInterval||this._config.interval,this._config.interval=e):this._config.interval=this._config.defaultInterval||this._config.interval}},r._slide=function(t,e){var n,i,o,r=this,s=z.findOne(".active.carousel-item",this._element),a=this._getItemIndex(s),l=e||s&&this._getItemByDirection(t,s),c=this._getItemIndex(l),f=Boolean(this._interval);if("next"===t?(n="carousel-item-start",i="carousel-item-next",o="left"):(n="carousel-item-end",i="carousel-item-prev",o="right"),l&&l.classList.contains("active"))this._isSliding=!1;else if(!this._triggerSlideEvent(l,o).defaultPrevented&&s&&l){if(this._isSliding=!0,f&&this.pause(),this._setActiveIndicatorElement(l),this._activeElement=l,this._element.classList.contains("slide")){l.classList.add(i),v(l),s.classList.add(n),l.classList.add(n);var d=u(s);B.one(s,"transitionend",(function(){l.classList.remove(n,i),l.classList.add("active"),s.classList.remove("active",i,n),r._isSliding=!1,setTimeout((function(){B.trigger(r._element,"slid.bs.carousel",{relatedTarget:l,direction:o,from:a,to:c})}),0)})),h(s,d)}else s.classList.remove("active"),l.classList.add("active"),this._isSliding=!1,B.trigger(this._element,"slid.bs.carousel",{relatedTarget:l,direction:o,from:a,to:c});f&&this.cycle()}},o.carouselInterface=function(t,e){var i=T(t,"bs.carousel"),r=n({},X,Y.getDataAttributes(t));"object"==typeof e&&(r=n({},r,e));var s="string"==typeof e?e:r.slide;if(i||(i=new o(t,r)),"number"==typeof e)i.to(e);else if("string"==typeof s){if(void 0===i[s])throw new TypeError('No method named "'+s+'"');i[s]()}else r.interval&&r.ride&&(i.pause(),i.cycle())},o.jQueryInterface=function(t){return this.each((function(){o.carouselInterface(this,t)}))},o.dataApiClickHandler=function(t){var e=c(this);if(e&&e.classList.contains("carousel")){var i=n({},Y.getDataAttributes(e),Y.getDataAttributes(this)),r=this.getAttribute("data-bs-slide-to");r&&(i.interval=!1),o.carouselInterface(e,i),r&&T(e,"bs.carousel").to(r),t.preventDefault()}},e(o,null,[{key:"Default",get:function(){return X}},{key:"DATA_KEY",get:function(){return"bs.carousel"}}]),o}(F);B.on(document,"click.bs.carousel.data-api","[data-bs-slide], [data-bs-slide-to]",Z.dataApiClickHandler),B.on(window,"load.bs.carousel.data-api",(function(){for(var t=z.find('[data-bs-ride="carousel"]'),e=0,n=t.length;e<n;e++)Z.carouselInterface(t[e],T(t[e],"bs.carousel"))})),b((function(){var t=_();if(t){var e=t.fn[V];t.fn[V]=Z.jQueryInterface,t.fn[V].Constructor=Z,t.fn[V].noConflict=function(){return t.fn[V]=e,Z.jQueryInterface}}}));var J="collapse",tt={toggle:!0,parent:""},et={toggle:"boolean",parent:"(string|element)"},nt=function(t){function o(e,n){var i;(i=t.call(this,e)||this)._isTransitioning=!1,i._config=i._getConfig(n),i._triggerArray=z.find('[data-bs-toggle="collapse"][href="#'+e.id+'"],[data-bs-toggle="collapse"][data-bs-target="#'+e.id+'"]');for(var o=z.find('[data-bs-toggle="collapse"]'),r=0,s=o.length;r<s;r++){var a=o[r],c=l(a),u=z.find(c).filter((function(t){return t===e}));null!==c&&u.length&&(i._selector=c,i._triggerArray.push(a))}return i._parent=i._config.parent?i._getParent():null,i._config.parent||i._addAriaAndCollapsedClass(i._element,i._triggerArray),i._config.toggle&&i.toggle(),i}i(o,t);var r=o.prototype;return r.toggle=function(){this._element.classList.contains("show")?this.hide():this.show()},r.show=function(){var t=this;if(!this._isTransitioning&&!this._element.classList.contains("show")){var e,n;this._parent&&0===(e=z.find(".show, .collapsing",this._parent).filter((function(e){return"string"==typeof t._config.parent?e.getAttribute("data-bs-parent")===t._config.parent:e.classList.contains("collapse")}))).length&&(e=null);var i=z.findOne(this._selector);if(e){var r=e.find((function(t){return i!==t}));if((n=r?T(r,"bs.collapse"):null)&&n._isTransitioning)return}if(!B.trigger(this._element,"show.bs.collapse").defaultPrevented){e&&e.forEach((function(t){i!==t&&o.collapseInterface(t,"hide"),n||E(t,"bs.collapse",null)}));var s=this._getDimension();this._element.classList.remove("collapse"),this._element.classList.add("collapsing"),this._element.style[s]=0,this._triggerArray.length&&this._triggerArray.forEach((function(t){t.classList.remove("collapsed"),t.setAttribute("aria-expanded",!0)})),this.setTransitioning(!0);var a="scroll"+(s[0].toUpperCase()+s.slice(1)),l=u(this._element);B.one(this._element,"transitionend",(function(){t._element.classList.remove("collapsing"),t._element.classList.add("collapse","show"),t._element.style[s]="",t.setTransitioning(!1),B.trigger(t._element,"shown.bs.collapse")})),h(this._element,l),this._element.style[s]=this._element[a]+"px"}}},r.hide=function(){var t=this;if(!this._isTransitioning&&this._element.classList.contains("show")&&!B.trigger(this._element,"hide.bs.collapse").defaultPrevented){var e=this._getDimension();this._element.style[e]=this._element.getBoundingClientRect()[e]+"px",v(this._element),this._element.classList.add("collapsing"),this._element.classList.remove("collapse","show");var n=this._triggerArray.length;if(n>0)for(var i=0;i<n;i++){var o=this._triggerArray[i],r=c(o);r&&!r.classList.contains("show")&&(o.classList.add("collapsed"),o.setAttribute("aria-expanded",!1))}this.setTransitioning(!0);this._element.style[e]="";var s=u(this._element);B.one(this._element,"transitionend",(function(){t.setTransitioning(!1),t._element.classList.remove("collapsing"),t._element.classList.add("collapse"),B.trigger(t._element,"hidden.bs.collapse")})),h(this._element,s)}},r.setTransitioning=function(t){this._isTransitioning=t},r.dispose=function(){t.prototype.dispose.call(this),this._config=null,this._parent=null,this._triggerArray=null,this._isTransitioning=null},r._getConfig=function(t){return(t=n({},tt,t)).toggle=Boolean(t.toggle),p(J,t,et),t},r._getDimension=function(){return this._element.classList.contains("width")?"width":"height"},r._getParent=function(){var t=this,e=this._config.parent;d(e)?void 0===e.jquery&&void 0===e[0]||(e=e[0]):e=z.findOne(e);var n='[data-bs-toggle="collapse"][data-bs-parent="'+e+'"]';return z.find(n,e).forEach((function(e){var n=c(e);t._addAriaAndCollapsedClass(n,[e])})),e},r._addAriaAndCollapsedClass=function(t,e){if(t&&e.length){var n=t.classList.contains("show");e.forEach((function(t){n?t.classList.remove("collapsed"):t.classList.add("collapsed"),t.setAttribute("aria-expanded",n)}))}},o.collapseInterface=function(t,e){var i=T(t,"bs.collapse"),r=n({},tt,Y.getDataAttributes(t),"object"==typeof e&&e?e:{});if(!i&&r.toggle&&"string"==typeof e&&/show|hide/.test(e)&&(r.toggle=!1),i||(i=new o(t,r)),"string"==typeof e){if(void 0===i[e])throw new TypeError('No method named "'+e+'"');i[e]()}},o.jQueryInterface=function(t){return this.each((function(){o.collapseInterface(this,t)}))},e(o,null,[{key:"Default",get:function(){return tt}},{key:"DATA_KEY",get:function(){return"bs.collapse"}}]),o}(F);B.on(document,"click.bs.collapse.data-api",'[data-bs-toggle="collapse"]',(function(t){"A"===t.target.tagName&&t.preventDefault();var e=Y.getDataAttributes(this),n=l(this);z.find(n).forEach((function(t){var n,i=T(t,"bs.collapse");i?(null===i._parent&&"string"==typeof e.parent&&(i._config.parent=e.parent,i._parent=i._getParent()),n="toggle"):n=e,nt.collapseInterface(t,n)}))})),b((function(){var t=_();if(t){var e=t.fn[J];t.fn[J]=nt.jQueryInterface,t.fn[J].Constructor=nt,t.fn[J].noConflict=function(){return t.fn[J]=e,nt.jQueryInterface}}}));var it="undefined"!=typeof window&&"undefined"!=typeof document&&"undefined"!=typeof navigator,ot=function(){for(var t=["Edge","Trident","Firefox"],e=0;e<t.length;e+=1)if(it&&navigator.userAgent.indexOf(t[e])>=0)return 1;return 0}();var rt=it&&window.Promise?function(t){var e=!1;return function(){e||(e=!0,window.Promise.resolve().then((function(){e=!1,t()})))}}:function(t){var e=!1;return function(){e||(e=!0,setTimeout((function(){e=!1,t()}),ot))}};function st(t){return t&&"[object Function]"==={}.toString.call(t)}function at(t,e){if(1!==t.nodeType)return[];var n=t.ownerDocument.defaultView.getComputedStyle(t,null);return e?n[e]:n}function lt(t){return"HTML"===t.nodeName?t:t.parentNode||t.host}function ct(t){if(!t)return document.body;switch(t.nodeName){case"HTML":case"BODY":return t.ownerDocument.body;case"#document":return t.body}var e=at(t),n=e.overflow,i=e.overflowX,o=e.overflowY;return/(auto|scroll|overlay)/.test(n+o+i)?t:ct(lt(t))}function ut(t){return t&&t.referenceNode?t.referenceNode:t}var ft=it&&!(!window.MSInputMethodContext||!document.documentMode),dt=it&&/MSIE 10/.test(navigator.userAgent);function ht(t){return 11===t?ft:10===t?dt:ft||dt}function pt(t){if(!t)return document.documentElement;for(var e=ht(10)?document.body:null,n=t.offsetParent||null;n===e&&t.nextElementSibling;)n=(t=t.nextElementSibling).offsetParent;var i=n&&n.nodeName;return i&&"BODY"!==i&&"HTML"!==i?-1!==["TH","TD","TABLE"].indexOf(n.nodeName)&&"static"===at(n,"position")?pt(n):n:t?t.ownerDocument.documentElement:document.documentElement}function gt(t){return null!==t.parentNode?gt(t.parentNode):t}function mt(t,e){if(!(t&&t.nodeType&&e&&e.nodeType))return document.documentElement;var n=t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_FOLLOWING,i=n?t:e,o=n?e:t,r=document.createRange();r.setStart(i,0),r.setEnd(o,0);var s,a,l=r.commonAncestorContainer;if(t!==l&&e!==l||i.contains(o))return"BODY"===(a=(s=l).nodeName)||"HTML"!==a&&pt(s.firstElementChild)!==s?pt(l):l;var c=gt(t);return c.host?mt(c.host,e):mt(t,gt(e).host)}function vt(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"top",n="top"===e?"scrollTop":"scrollLeft",i=t.nodeName;if("BODY"===i||"HTML"===i){var o=t.ownerDocument.documentElement,r=t.ownerDocument.scrollingElement||o;return r[n]}return t[n]}function _t(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=vt(e,"top"),o=vt(e,"left"),r=n?-1:1;return t.top+=i*r,t.bottom+=i*r,t.left+=o*r,t.right+=o*r,t}function bt(t,e){var n="x"===e?"Left":"Top",i="Left"===n?"Right":"Bottom";return parseFloat(t["border"+n+"Width"])+parseFloat(t["border"+i+"Width"])}function yt(t,e,n,i){return Math.max(e["offset"+t],e["scroll"+t],n["client"+t],n["offset"+t],n["scroll"+t],ht(10)?parseInt(n["offset"+t])+parseInt(i["margin"+("Height"===t?"Top":"Left")])+parseInt(i["margin"+("Height"===t?"Bottom":"Right")]):0)}function wt(t){var e=t.body,n=t.documentElement,i=ht(10)&&getComputedStyle(n);return{height:yt("Height",e,n,i),width:yt("Width",e,n,i)}}var Et=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},Tt=function(){function t(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}}(),Lt=function(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t},kt=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t};function At(t){return kt({},t,{right:t.left+t.width,bottom:t.top+t.height})}function Ct(t){var e={};try{if(ht(10)){e=t.getBoundingClientRect();var n=vt(t,"top"),i=vt(t,"left");e.top+=n,e.left+=i,e.bottom+=n,e.right+=i}else e=t.getBoundingClientRect()}catch(t){}var o={left:e.left,top:e.top,width:e.right-e.left,height:e.bottom-e.top},r="HTML"===t.nodeName?wt(t.ownerDocument):{},s=r.width||t.clientWidth||o.width,a=r.height||t.clientHeight||o.height,l=t.offsetWidth-s,c=t.offsetHeight-a;if(l||c){var u=at(t);l-=bt(u,"x"),c-=bt(u,"y"),o.width-=l,o.height-=c}return At(o)}function Dt(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=ht(10),o="HTML"===e.nodeName,r=Ct(t),s=Ct(e),a=ct(t),l=at(e),c=parseFloat(l.borderTopWidth),u=parseFloat(l.borderLeftWidth);n&&o&&(s.top=Math.max(s.top,0),s.left=Math.max(s.left,0));var f=At({top:r.top-s.top-c,left:r.left-s.left-u,width:r.width,height:r.height});if(f.marginTop=0,f.marginLeft=0,!i&&o){var d=parseFloat(l.marginTop),h=parseFloat(l.marginLeft);f.top-=c-d,f.bottom-=c-d,f.left-=u-h,f.right-=u-h,f.marginTop=d,f.marginLeft=h}return(i&&!n?e.contains(a):e===a&&"BODY"!==a.nodeName)&&(f=_t(f,e)),f}function Ot(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=t.ownerDocument.documentElement,i=Dt(t,n),o=Math.max(n.clientWidth,window.innerWidth||0),r=Math.max(n.clientHeight,window.innerHeight||0),s=e?0:vt(n),a=e?0:vt(n,"left"),l={top:s-i.top+i.marginTop,left:a-i.left+i.marginLeft,width:o,height:r};return At(l)}function St(t){var e=t.nodeName;if("BODY"===e||"HTML"===e)return!1;if("fixed"===at(t,"position"))return!0;var n=lt(t);return!!n&&St(n)}function Nt(t){if(!t||!t.parentElement||ht())return document.documentElement;for(var e=t.parentElement;e&&"none"===at(e,"transform");)e=e.parentElement;return e||document.documentElement}function xt(t,e,n,i){var o=arguments.length>4&&void 0!==arguments[4]&&arguments[4],r={top:0,left:0},s=o?Nt(t):mt(t,ut(e));if("viewport"===i)r=Ot(s,o);else{var a=void 0;"scrollParent"===i?"BODY"===(a=ct(lt(e))).nodeName&&(a=t.ownerDocument.documentElement):a="window"===i?t.ownerDocument.documentElement:i;var l=Dt(a,s,o);if("HTML"!==a.nodeName||St(s))r=l;else{var c=wt(t.ownerDocument),u=c.height,f=c.width;r.top+=l.top-l.marginTop,r.bottom=u+l.top,r.left+=l.left-l.marginLeft,r.right=f+l.left}}var d="number"==typeof(n=n||0);return r.left+=d?n:n.left||0,r.top+=d?n:n.top||0,r.right-=d?n:n.right||0,r.bottom-=d?n:n.bottom||0,r}function It(t){return t.width*t.height}function jt(t,e,n,i,o){var r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0;if(-1===t.indexOf("auto"))return t;var s=xt(n,i,r,o),a={top:{width:s.width,height:e.top-s.top},right:{width:s.right-e.right,height:s.height},bottom:{width:s.width,height:s.bottom-e.bottom},left:{width:e.left-s.left,height:s.height}},l=Object.keys(a).map((function(t){return kt({key:t},a[t],{area:It(a[t])})})).sort((function(t,e){return e.area-t.area})),c=l.filter((function(t){var e=t.width,i=t.height;return e>=n.clientWidth&&i>=n.clientHeight})),u=c.length>0?c[0].key:l[0].key,f=t.split("-")[1];return u+(f?"-"+f:"")}function Pt(t,e,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,o=i?Nt(e):mt(e,ut(n));return Dt(n,o,i)}function Mt(t){var e=t.ownerDocument.defaultView.getComputedStyle(t),n=parseFloat(e.marginTop||0)+parseFloat(e.marginBottom||0),i=parseFloat(e.marginLeft||0)+parseFloat(e.marginRight||0);return{width:t.offsetWidth+i,height:t.offsetHeight+n}}function Ht(t){var e={left:"right",right:"left",bottom:"top",top:"bottom"};return t.replace(/left|right|bottom|top/g,(function(t){return e[t]}))}function Bt(t,e,n){n=n.split("-")[0];var i=Mt(t),o={width:i.width,height:i.height},r=-1!==["right","left"].indexOf(n),s=r?"top":"left",a=r?"left":"top",l=r?"height":"width",c=r?"width":"height";return o[s]=e[s]+e[l]/2-i[l]/2,o[a]=n===a?e[a]-i[c]:e[Ht(a)],o}function Ft(t,e){return Array.prototype.find?t.find(e):t.filter(e)[0]}function Rt(t,e,n){return(void 0===n?t:t.slice(0,function(t,e,n){if(Array.prototype.findIndex)return t.findIndex((function(t){return t[e]===n}));var i=Ft(t,(function(t){return t[e]===n}));return t.indexOf(i)}(t,"name",n))).forEach((function(t){t.function&&console.warn("`modifier.function` is deprecated, use `modifier.fn`!");var n=t.function||t.fn;t.enabled&&st(n)&&(e.offsets.popper=At(e.offsets.popper),e.offsets.reference=At(e.offsets.reference),e=n(e,t))})),e}function Wt(){if(!this.state.isDestroyed){var t={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};t.offsets.reference=Pt(this.state,this.popper,this.reference,this.options.positionFixed),t.placement=jt(this.options.placement,t.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),t.originalPlacement=t.placement,t.positionFixed=this.options.positionFixed,t.offsets.popper=Bt(this.popper,t.offsets.reference,t.placement),t.offsets.popper.position=this.options.positionFixed?"fixed":"absolute",t=Rt(this.modifiers,t),this.state.isCreated?this.options.onUpdate(t):(this.state.isCreated=!0,this.options.onCreate(t))}}function Ut(t,e){return t.some((function(t){var n=t.name;return t.enabled&&n===e}))}function Kt(t){for(var e=[!1,"ms","Webkit","Moz","O"],n=t.charAt(0).toUpperCase()+t.slice(1),i=0;i<e.length;i++){var o=e[i],r=o?""+o+n:t;if(void 0!==document.body.style[r])return r}return null}function Qt(){return this.state.isDestroyed=!0,Ut(this.modifiers,"applyStyle")&&(this.popper.removeAttribute("x-placement"),this.popper.style.position="",this.popper.style.top="",this.popper.style.left="",this.popper.style.right="",this.popper.style.bottom="",this.popper.style.willChange="",this.popper.style[Kt("transform")]=""),this.disableEventListeners(),this.options.removeOnDestroy&&this.popper.parentNode.removeChild(this.popper),this}function Yt(t){var e=t.ownerDocument;return e?e.defaultView:window}function zt(t,e,n,i){n.updateBound=i,Yt(t).addEventListener("resize",n.updateBound,{passive:!0});var o=ct(t);return function t(e,n,i,o){var r="BODY"===e.nodeName,s=r?e.ownerDocument.defaultView:e;s.addEventListener(n,i,{passive:!0}),r||t(ct(s.parentNode),n,i,o),o.push(s)}(o,"scroll",n.updateBound,n.scrollParents),n.scrollElement=o,n.eventsEnabled=!0,n}function Vt(){this.state.eventsEnabled||(this.state=zt(this.reference,this.options,this.state,this.scheduleUpdate))}function qt(){var t,e;this.state.eventsEnabled&&(cancelAnimationFrame(this.scheduleUpdate),this.state=(t=this.reference,e=this.state,Yt(t).removeEventListener("resize",e.updateBound),e.scrollParents.forEach((function(t){t.removeEventListener("scroll",e.updateBound)})),e.updateBound=null,e.scrollParents=[],e.scrollElement=null,e.eventsEnabled=!1,e))}function Xt(t){return""!==t&&!isNaN(parseFloat(t))&&isFinite(t)}function Gt(t,e){Object.keys(e).forEach((function(n){var i="";-1!==["width","height","top","right","bottom","left"].indexOf(n)&&Xt(e[n])&&(i="px"),t.style[n]=e[n]+i}))}var $t=it&&/Firefox/i.test(navigator.userAgent);function Zt(t,e,n){var i=Ft(t,(function(t){return t.name===e})),o=!!i&&t.some((function(t){return t.name===n&&t.enabled&&t.order<i.order}));if(!o){var r="`"+e+"`",s="`"+n+"`";console.warn(s+" modifier is required by "+r+" modifier in order to work, be sure to include it before "+r+"!")}return o}var Jt=["auto-start","auto","auto-end","top-start","top","top-end","right-start","right","right-end","bottom-end","bottom","bottom-start","left-end","left","left-start"],te=Jt.slice(3);function ee(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=te.indexOf(t),i=te.slice(n+1).concat(te.slice(0,n));return e?i.reverse():i}var ne="flip",ie="clockwise",oe="counterclockwise";function re(t,e,n,i){var o=[0,0],r=-1!==["right","left"].indexOf(i),s=t.split(/(\+|\-)/).map((function(t){return t.trim()})),a=s.indexOf(Ft(s,(function(t){return-1!==t.search(/,|\s/)})));s[a]&&-1===s[a].indexOf(",")&&console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead.");var l=/\s*,\s*|\s+/,c=-1!==a?[s.slice(0,a).concat([s[a].split(l)[0]]),[s[a].split(l)[1]].concat(s.slice(a+1))]:[s];return(c=c.map((function(t,i){var o=(1===i?!r:r)?"height":"width",s=!1;return t.reduce((function(t,e){return""===t[t.length-1]&&-1!==["+","-"].indexOf(e)?(t[t.length-1]=e,s=!0,t):s?(t[t.length-1]+=e,s=!1,t):t.concat(e)}),[]).map((function(t){return function(t,e,n,i){var o=t.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),r=+o[1],s=o[2];if(!r)return t;if(0===s.indexOf("%")){var a=void 0;switch(s){case"%p":a=n;break;case"%":case"%r":default:a=i}return At(a)[e]/100*r}if("vh"===s||"vw"===s)return("vh"===s?Math.max(document.documentElement.clientHeight,window.innerHeight||0):Math.max(document.documentElement.clientWidth,window.innerWidth||0))/100*r;return r}(t,o,e,n)}))}))).forEach((function(t,e){t.forEach((function(n,i){Xt(n)&&(o[e]+=n*("-"===t[i-1]?-1:1))}))})),o}var se={placement:"bottom",positionFixed:!1,eventsEnabled:!0,removeOnDestroy:!1,onCreate:function(){},onUpdate:function(){},modifiers:{shift:{order:100,enabled:!0,fn:function(t){var e=t.placement,n=e.split("-")[0],i=e.split("-")[1];if(i){var o=t.offsets,r=o.reference,s=o.popper,a=-1!==["bottom","top"].indexOf(n),l=a?"left":"top",c=a?"width":"height",u={start:Lt({},l,r[l]),end:Lt({},l,r[l]+r[c]-s[c])};t.offsets.popper=kt({},s,u[i])}return t}},offset:{order:200,enabled:!0,fn:function(t,e){var n=e.offset,i=t.placement,o=t.offsets,r=o.popper,s=o.reference,a=i.split("-")[0],l=void 0;return l=Xt(+n)?[+n,0]:re(n,r,s,a),"left"===a?(r.top+=l[0],r.left-=l[1]):"right"===a?(r.top+=l[0],r.left+=l[1]):"top"===a?(r.left+=l[0],r.top-=l[1]):"bottom"===a&&(r.left+=l[0],r.top+=l[1]),t.popper=r,t},offset:0},preventOverflow:{order:300,enabled:!0,fn:function(t,e){var n=e.boundariesElement||pt(t.instance.popper);t.instance.reference===n&&(n=pt(n));var i=Kt("transform"),o=t.instance.popper.style,r=o.top,s=o.left,a=o[i];o.top="",o.left="",o[i]="";var l=xt(t.instance.popper,t.instance.reference,e.padding,n,t.positionFixed);o.top=r,o.left=s,o[i]=a,e.boundaries=l;var c=e.priority,u=t.offsets.popper,f={primary:function(t){var n=u[t];return u[t]<l[t]&&!e.escapeWithReference&&(n=Math.max(u[t],l[t])),Lt({},t,n)},secondary:function(t){var n="right"===t?"left":"top",i=u[n];return u[t]>l[t]&&!e.escapeWithReference&&(i=Math.min(u[n],l[t]-("right"===t?u.width:u.height))),Lt({},n,i)}};return c.forEach((function(t){var e=-1!==["left","top"].indexOf(t)?"primary":"secondary";u=kt({},u,f[e](t))})),t.offsets.popper=u,t},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(t){var e=t.offsets,n=e.popper,i=e.reference,o=t.placement.split("-")[0],r=Math.floor,s=-1!==["top","bottom"].indexOf(o),a=s?"right":"bottom",l=s?"left":"top",c=s?"width":"height";return n[a]<r(i[l])&&(t.offsets.popper[l]=r(i[l])-n[c]),n[l]>r(i[a])&&(t.offsets.popper[l]=r(i[a])),t}},arrow:{order:500,enabled:!0,fn:function(t,e){var n;if(!Zt(t.instance.modifiers,"arrow","keepTogether"))return t;var i=e.element;if("string"==typeof i){if(!(i=t.instance.popper.querySelector(i)))return t}else if(!t.instance.popper.contains(i))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),t;var o=t.placement.split("-")[0],r=t.offsets,s=r.popper,a=r.reference,l=-1!==["left","right"].indexOf(o),c=l?"height":"width",u=l?"Top":"Left",f=u.toLowerCase(),d=l?"left":"top",h=l?"bottom":"right",p=Mt(i)[c];a[h]-p<s[f]&&(t.offsets.popper[f]-=s[f]-(a[h]-p)),a[f]+p>s[h]&&(t.offsets.popper[f]+=a[f]+p-s[h]),t.offsets.popper=At(t.offsets.popper);var g=a[f]+a[c]/2-p/2,m=at(t.instance.popper),v=parseFloat(m["margin"+u]),_=parseFloat(m["border"+u+"Width"]),b=g-t.offsets.popper[f]-v-_;return b=Math.max(Math.min(s[c]-p,b),0),t.arrowElement=i,t.offsets.arrow=(Lt(n={},f,Math.round(b)),Lt(n,d,""),n),t},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(t,e){if(Ut(t.instance.modifiers,"inner"))return t;if(t.flipped&&t.placement===t.originalPlacement)return t;var n=xt(t.instance.popper,t.instance.reference,e.padding,e.boundariesElement,t.positionFixed),i=t.placement.split("-")[0],o=Ht(i),r=t.placement.split("-")[1]||"",s=[];switch(e.behavior){case ne:s=[i,o];break;case ie:s=ee(i);break;case oe:s=ee(i,!0);break;default:s=e.behavior}return s.forEach((function(a,l){if(i!==a||s.length===l+1)return t;i=t.placement.split("-")[0],o=Ht(i);var c=t.offsets.popper,u=t.offsets.reference,f=Math.floor,d="left"===i&&f(c.right)>f(u.left)||"right"===i&&f(c.left)<f(u.right)||"top"===i&&f(c.bottom)>f(u.top)||"bottom"===i&&f(c.top)<f(u.bottom),h=f(c.left)<f(n.left),p=f(c.right)>f(n.right),g=f(c.top)<f(n.top),m=f(c.bottom)>f(n.bottom),v="left"===i&&h||"right"===i&&p||"top"===i&&g||"bottom"===i&&m,_=-1!==["top","bottom"].indexOf(i),b=!!e.flipVariations&&(_&&"start"===r&&h||_&&"end"===r&&p||!_&&"start"===r&&g||!_&&"end"===r&&m),y=!!e.flipVariationsByContent&&(_&&"start"===r&&p||_&&"end"===r&&h||!_&&"start"===r&&m||!_&&"end"===r&&g),w=b||y;(d||v||w)&&(t.flipped=!0,(d||v)&&(i=s[l+1]),w&&(r=function(t){return"end"===t?"start":"start"===t?"end":t}(r)),t.placement=i+(r?"-"+r:""),t.offsets.popper=kt({},t.offsets.popper,Bt(t.instance.popper,t.offsets.reference,t.placement)),t=Rt(t.instance.modifiers,t,"flip"))})),t},behavior:"flip",padding:5,boundariesElement:"viewport",flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:function(t){var e=t.placement,n=e.split("-")[0],i=t.offsets,o=i.popper,r=i.reference,s=-1!==["left","right"].indexOf(n),a=-1===["top","left"].indexOf(n);return o[s?"left":"top"]=r[n]-(a?o[s?"width":"height"]:0),t.placement=Ht(e),t.offsets.popper=At(o),t}},hide:{order:800,enabled:!0,fn:function(t){if(!Zt(t.instance.modifiers,"hide","preventOverflow"))return t;var e=t.offsets.reference,n=Ft(t.instance.modifiers,(function(t){return"preventOverflow"===t.name})).boundaries;if(e.bottom<n.top||e.left>n.right||e.top>n.bottom||e.right<n.left){if(!0===t.hide)return t;t.hide=!0,t.attributes["x-out-of-boundaries"]=""}else{if(!1===t.hide)return t;t.hide=!1,t.attributes["x-out-of-boundaries"]=!1}return t}},computeStyle:{order:850,enabled:!0,fn:function(t,e){var n=e.x,i=e.y,o=t.offsets.popper,r=Ft(t.instance.modifiers,(function(t){return"applyStyle"===t.name})).gpuAcceleration;void 0!==r&&console.warn("WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!");var s=void 0!==r?r:e.gpuAcceleration,a=pt(t.instance.popper),l=Ct(a),c={position:o.position},u=function(t,e){var n=t.offsets,i=n.popper,o=n.reference,r=Math.round,s=Math.floor,a=function(t){return t},l=r(o.width),c=r(i.width),u=-1!==["left","right"].indexOf(t.placement),f=-1!==t.placement.indexOf("-"),d=e?u||f||l%2==c%2?r:s:a,h=e?r:a;return{left:d(l%2==1&&c%2==1&&!f&&e?i.left-1:i.left),top:h(i.top),bottom:h(i.bottom),right:d(i.right)}}(t,window.devicePixelRatio<2||!$t),f="bottom"===n?"top":"bottom",d="right"===i?"left":"right",h=Kt("transform"),p=void 0,g=void 0;if(g="bottom"===f?"HTML"===a.nodeName?-a.clientHeight+u.bottom:-l.height+u.bottom:u.top,p="right"===d?"HTML"===a.nodeName?-a.clientWidth+u.right:-l.width+u.right:u.left,s&&h)c[h]="translate3d("+p+"px, "+g+"px, 0)",c[f]=0,c[d]=0,c.willChange="transform";else{var m="bottom"===f?-1:1,v="right"===d?-1:1;c[f]=g*m,c[d]=p*v,c.willChange=f+", "+d}var _={"x-placement":t.placement};return t.attributes=kt({},_,t.attributes),t.styles=kt({},c,t.styles),t.arrowStyles=kt({},t.offsets.arrow,t.arrowStyles),t},gpuAcceleration:!0,x:"bottom",y:"right"},applyStyle:{order:900,enabled:!0,fn:function(t){var e,n;return Gt(t.instance.popper,t.styles),e=t.instance.popper,n=t.attributes,Object.keys(n).forEach((function(t){!1!==n[t]?e.setAttribute(t,n[t]):e.removeAttribute(t)})),t.arrowElement&&Object.keys(t.arrowStyles).length&&Gt(t.arrowElement,t.arrowStyles),t},onLoad:function(t,e,n,i,o){var r=Pt(o,e,t,n.positionFixed),s=jt(n.placement,r,e,t,n.modifiers.flip.boundariesElement,n.modifiers.flip.padding);return e.setAttribute("x-placement",s),Gt(e,{position:n.positionFixed?"fixed":"absolute"}),n},gpuAcceleration:void 0}}},ae=function(){function t(e,n){var i=this,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Et(this,t),this.scheduleUpdate=function(){return requestAnimationFrame(i.update)},this.update=rt(this.update.bind(this)),this.options=kt({},t.Defaults,o),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=e&&e.jquery?e[0]:e,this.popper=n&&n.jquery?n[0]:n,this.options.modifiers={},Object.keys(kt({},t.Defaults.modifiers,o.modifiers)).forEach((function(e){i.options.modifiers[e]=kt({},t.Defaults.modifiers[e]||{},o.modifiers?o.modifiers[e]:{})})),this.modifiers=Object.keys(this.options.modifiers).map((function(t){return kt({name:t},i.options.modifiers[t])})).sort((function(t,e){return t.order-e.order})),this.modifiers.forEach((function(t){t.enabled&&st(t.onLoad)&&t.onLoad(i.reference,i.popper,i.options,t,i.state)})),this.update();var r=this.options.eventsEnabled;r&&this.enableEventListeners(),this.state.eventsEnabled=r}return Tt(t,[{key:"update",value:function(){return Wt.call(this)}},{key:"destroy",value:function(){return Qt.call(this)}},{key:"enableEventListeners",value:function(){return Vt.call(this)}},{key:"disableEventListeners",value:function(){return qt.call(this)}}]),t}();ae.Utils=("undefined"!=typeof window?window:global).PopperUtils,ae.placements=Jt,ae.Defaults=se;var le="dropdown",ce=new RegExp("ArrowUp|ArrowDown|Escape"),ue=y?"top-end":"top-start",fe=y?"top-start":"top-end",de=y?"bottom-end":"bottom-start",he=y?"bottom-start":"bottom-end",pe=y?"left-start":"right-start",ge=y?"right-start":"left-start",me={offset:0,flip:!0,boundary:"scrollParent",reference:"toggle",display:"dynamic",popperConfig:null},ve={offset:"(number|string|function)",flip:"boolean",boundary:"(string|element)",reference:"(string|element)",display:"string",popperConfig:"(null|object)"},_e=function(t){function o(e,n){var i;return(i=t.call(this,e)||this)._popper=null,i._config=i._getConfig(n),i._menu=i._getMenuElement(),i._inNavbar=i._detectNavbar(),i._addEventListeners(),i}i(o,t);var r=o.prototype;return r.toggle=function(){if(!this._element.disabled&&!this._element.classList.contains("disabled")){var t=this._element.classList.contains("show");o.clearMenus(),t||this.show()}},r.show=function(){if(!(this._element.disabled||this._element.classList.contains("disabled")||this._menu.classList.contains("show"))){var t=o.getParentFromElement(this._element),e={relatedTarget:this._element};if(!B.trigger(this._element,"show.bs.dropdown",e).defaultPrevented){if(!this._inNavbar){if(void 0===ae)throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");var n=this._element;"parent"===this._config.reference?n=t:d(this._config.reference)&&(n=this._config.reference,void 0!==this._config.reference.jquery&&(n=this._config.reference[0])),"scrollParent"!==this._config.boundary&&t.classList.add("position-static"),this._popper=new ae(n,this._menu,this._getPopperConfig())}var i;if("ontouchstart"in document.documentElement&&!t.closest(".navbar-nav"))(i=[]).concat.apply(i,document.body.children).forEach((function(t){return B.on(t,"mouseover",null,(function(){}))}));this._element.focus(),this._element.setAttribute("aria-expanded",!0),this._menu.classList.toggle("show"),this._element.classList.toggle("show"),B.trigger(t,"shown.bs.dropdown",e)}}},r.hide=function(){if(!this._element.disabled&&!this._element.classList.contains("disabled")&&this._menu.classList.contains("show")){var t=o.getParentFromElement(this._element),e={relatedTarget:this._element};B.trigger(t,"hide.bs.dropdown",e).defaultPrevented||(this._popper&&this._popper.destroy(),this._menu.classList.toggle("show"),this._element.classList.toggle("show"),B.trigger(t,"hidden.bs.dropdown",e))}},r.dispose=function(){t.prototype.dispose.call(this),B.off(this._element,".bs.dropdown"),this._menu=null,this._popper&&(this._popper.destroy(),this._popper=null)},r.update=function(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.scheduleUpdate()},r._addEventListeners=function(){var t=this;B.on(this._element,"click.bs.dropdown",(function(e){e.preventDefault(),e.stopPropagation(),t.toggle()}))},r._getConfig=function(t){return t=n({},this.constructor.Default,Y.getDataAttributes(this._element),t),p(le,t,this.constructor.DefaultType),t},r._getMenuElement=function(){return z.next(this._element,".dropdown-menu")[0]},r._getPlacement=function(){var t=this._element.parentNode,e=de;return t.classList.contains("dropup")?e=this._menu.classList.contains("dropdown-menu-end")?fe:ue:t.classList.contains("dropend")?e=pe:t.classList.contains("dropstart")?e=ge:this._menu.classList.contains("dropdown-menu-end")&&(e=he),e},r._detectNavbar=function(){return Boolean(this._element.closest(".navbar"))},r._getOffset=function(){var t=this,e={};return"function"==typeof this._config.offset?e.fn=function(e){return e.offsets=n({},e.offsets,t._config.offset(e.offsets,t._element)||{}),e}:e.offset=this._config.offset,e},r._getPopperConfig=function(){var t={placement:this._getPlacement(),modifiers:{offset:this._getOffset(),flip:{enabled:this._config.flip},preventOverflow:{boundariesElement:this._config.boundary}}};return"static"===this._config.display&&(t.modifiers.applyStyle={enabled:!1}),n({},t,this._config.popperConfig)},o.dropdownInterface=function(t,e){var n=T(t,"bs.dropdown");if(n||(n=new o(t,"object"==typeof e?e:null)),"string"==typeof e){if(void 0===n[e])throw new TypeError('No method named "'+e+'"');n[e]()}},o.jQueryInterface=function(t){return this.each((function(){o.dropdownInterface(this,t)}))},o.clearMenus=function(t){if(!t||2!==t.button&&("keyup"!==t.type||"Tab"===t.key))for(var e=z.find('[data-bs-toggle="dropdown"]'),n=0,i=e.length;n<i;n++){var r=o.getParentFromElement(e[n]),s=T(e[n],"bs.dropdown"),a={relatedTarget:e[n]};if(t&&"click"===t.type&&(a.clickEvent=t),s){var l=s._menu;if(e[n].classList.contains("show"))if(!(t&&("click"===t.type&&/input|textarea/i.test(t.target.tagName)||"keyup"===t.type&&"Tab"===t.key)&&l.contains(t.target)))if(!B.trigger(r,"hide.bs.dropdown",a).defaultPrevented){var c;if("ontouchstart"in document.documentElement)(c=[]).concat.apply(c,document.body.children).forEach((function(t){return B.off(t,"mouseover",null,(function(){}))}));e[n].setAttribute("aria-expanded","false"),s._popper&&s._popper.destroy(),l.classList.remove("show"),e[n].classList.remove("show"),B.trigger(r,"hidden.bs.dropdown",a)}}}},o.getParentFromElement=function(t){return c(t)||t.parentNode},o.dataApiKeydownHandler=function(t){if(!(/input|textarea/i.test(t.target.tagName)?"Space"===t.key||"Escape"!==t.key&&("ArrowDown"!==t.key&&"ArrowUp"!==t.key||t.target.closest(".dropdown-menu")):!ce.test(t.key))&&(t.preventDefault(),t.stopPropagation(),!this.disabled&&!this.classList.contains("disabled"))){var e=o.getParentFromElement(this),n=this.classList.contains("show");if("Escape"===t.key)return(this.matches('[data-bs-toggle="dropdown"]')?this:z.prev(this,'[data-bs-toggle="dropdown"]')[0]).focus(),void o.clearMenus();if(n&&"Space"!==t.key){var i=z.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",e).filter(g);if(i.length){var r=i.indexOf(t.target);"ArrowUp"===t.key&&r>0&&r--,"ArrowDown"===t.key&&r<i.length-1&&r++,i[r=-1===r?0:r].focus()}}else o.clearMenus()}},e(o,null,[{key:"Default",get:function(){return me}},{key:"DefaultType",get:function(){return ve}},{key:"DATA_KEY",get:function(){return"bs.dropdown"}}]),o}(F);B.on(document,"keydown.bs.dropdown.data-api",'[data-bs-toggle="dropdown"]',_e.dataApiKeydownHandler),B.on(document,"keydown.bs.dropdown.data-api",".dropdown-menu",_e.dataApiKeydownHandler),B.on(document,"click.bs.dropdown.data-api",_e.clearMenus),B.on(document,"keyup.bs.dropdown.data-api",_e.clearMenus),B.on(document,"click.bs.dropdown.data-api",'[data-bs-toggle="dropdown"]',(function(t){t.preventDefault(),t.stopPropagation(),_e.dropdownInterface(this,"toggle")})),B.on(document,"click.bs.dropdown.data-api",".dropdown form",(function(t){return t.stopPropagation()})),b((function(){var t=_();if(t){var e=t.fn[le];t.fn[le]=_e.jQueryInterface,t.fn[le].Constructor=_e,t.fn[le].noConflict=function(){return t.fn[le]=e,_e.jQueryInterface}}}));var be={backdrop:!0,keyboard:!0,focus:!0},ye={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean"},we=function(t){function o(e,n){var i;return(i=t.call(this,e)||this)._config=i._getConfig(n),i._dialog=z.findOne(".modal-dialog",e),i._backdrop=null,i._isShown=!1,i._isBodyOverflowing=!1,i._ignoreBackdropClick=!1,i._isTransitioning=!1,i._scrollbarWidth=0,i}i(o,t);var r=o.prototype;return r.toggle=function(t){return this._isShown?this.hide():this.show(t)},r.show=function(t){var e=this;if(!this._isShown&&!this._isTransitioning){this._element.classList.contains("fade")&&(this._isTransitioning=!0);var n=B.trigger(this._element,"show.bs.modal",{relatedTarget:t});this._isShown||n.defaultPrevented||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),this._adjustDialog(),this._setEscapeEvent(),this._setResizeEvent(),B.on(this._element,"click.dismiss.bs.modal",'[data-bs-dismiss="modal"]',(function(t){return e.hide(t)})),B.on(this._dialog,"mousedown.dismiss.bs.modal",(function(){B.one(e._element,"mouseup.dismiss.bs.modal",(function(t){t.target===e._element&&(e._ignoreBackdropClick=!0)}))})),this._showBackdrop((function(){return e._showElement(t)})))}},r.hide=function(t){var e=this;if((t&&t.preventDefault(),this._isShown&&!this._isTransitioning)&&!B.trigger(this._element,"hide.bs.modal").defaultPrevented){this._isShown=!1;var n=this._element.classList.contains("fade");if(n&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),B.off(document,"focusin.bs.modal"),this._element.classList.remove("show"),B.off(this._element,"click.dismiss.bs.modal"),B.off(this._dialog,"mousedown.dismiss.bs.modal"),n){var i=u(this._element);B.one(this._element,"transitionend",(function(t){return e._hideModal(t)})),h(this._element,i)}else this._hideModal()}},r.dispose=function(){[window,this._element,this._dialog].forEach((function(t){return B.off(t,".bs.modal")})),t.prototype.dispose.call(this),B.off(document,"focusin.bs.modal"),this._config=null,this._dialog=null,this._backdrop=null,this._isShown=null,this._isBodyOverflowing=null,this._ignoreBackdropClick=null,this._isTransitioning=null,this._scrollbarWidth=null},r.handleUpdate=function(){this._adjustDialog()},r._getConfig=function(t){return t=n({},be,t),p("modal",t,ye),t},r._showElement=function(t){var e=this,n=this._element.classList.contains("fade"),i=z.findOne(".modal-body",this._dialog);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0,i&&(i.scrollTop=0),n&&v(this._element),this._element.classList.add("show"),this._config.focus&&this._enforceFocus();var o=function(){e._config.focus&&e._element.focus(),e._isTransitioning=!1,B.trigger(e._element,"shown.bs.modal",{relatedTarget:t})};if(n){var r=u(this._dialog);B.one(this._dialog,"transitionend",o),h(this._dialog,r)}else o()},r._enforceFocus=function(){var t=this;B.off(document,"focusin.bs.modal"),B.on(document,"focusin.bs.modal",(function(e){document===e.target||t._element===e.target||t._element.contains(e.target)||t._element.focus()}))},r._setEscapeEvent=function(){var t=this;this._isShown?B.on(this._element,"keydown.dismiss.bs.modal",(function(e){t._config.keyboard&&"Escape"===e.key?(e.preventDefault(),t.hide()):t._config.keyboard||"Escape"!==e.key||t._triggerBackdropTransition()})):B.off(this._element,"keydown.dismiss.bs.modal")},r._setResizeEvent=function(){var t=this;this._isShown?B.on(window,"resize.bs.modal",(function(){return t._adjustDialog()})):B.off(window,"resize.bs.modal")},r._hideModal=function(){var t=this;this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._showBackdrop((function(){document.body.classList.remove("modal-open"),t._resetAdjustments(),t._resetScrollbar(),B.trigger(t._element,"hidden.bs.modal")}))},r._removeBackdrop=function(){this._backdrop.parentNode.removeChild(this._backdrop),this._backdrop=null},r._showBackdrop=function(t){var e=this,n=this._element.classList.contains("fade")?"fade":"";if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className="modal-backdrop",n&&this._backdrop.classList.add(n),document.body.appendChild(this._backdrop),B.on(this._element,"click.dismiss.bs.modal",(function(t){e._ignoreBackdropClick?e._ignoreBackdropClick=!1:t.target===t.currentTarget&&("static"===e._config.backdrop?e._triggerBackdropTransition():e.hide())})),n&&v(this._backdrop),this._backdrop.classList.add("show"),!n)return void t();var i=u(this._backdrop);B.one(this._backdrop,"transitionend",t),h(this._backdrop,i)}else if(!this._isShown&&this._backdrop){this._backdrop.classList.remove("show");var o=function(){e._removeBackdrop(),t()};if(this._element.classList.contains("fade")){var r=u(this._backdrop);B.one(this._backdrop,"transitionend",o),h(this._backdrop,r)}else o()}else t()},r._triggerBackdropTransition=function(){var t=this;if(!B.trigger(this._element,"hidePrevented.bs.modal").defaultPrevented){var e=this._element.scrollHeight>document.documentElement.clientHeight;e||(this._element.style.overflowY="hidden"),this._element.classList.add("modal-static");var n=u(this._dialog);B.off(this._element,"transitionend"),B.one(this._element,"transitionend",(function(){t._element.classList.remove("modal-static"),e||(B.one(t._element,"transitionend",(function(){t._element.style.overflowY=""})),h(t._element,n))})),h(this._element,n),this._element.focus()}},r._adjustDialog=function(){var t=this._element.scrollHeight>document.documentElement.clientHeight;(!this._isBodyOverflowing&&t&&!y||this._isBodyOverflowing&&!t&&y)&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),(this._isBodyOverflowing&&!t&&!y||!this._isBodyOverflowing&&t&&y)&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},r._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},r._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=Math.round(t.left+t.right)<window.innerWidth,this._scrollbarWidth=this._getScrollbarWidth()},r._setScrollbar=function(){var t=this;if(this._isBodyOverflowing){z.find(".fixed-top, .fixed-bottom, .is-fixed, .sticky-top").forEach((function(e){var n=e.style.paddingRight,i=window.getComputedStyle(e)["padding-right"];Y.setDataAttribute(e,"padding-right",n),e.style.paddingRight=Number.parseFloat(i)+t._scrollbarWidth+"px"})),z.find(".sticky-top").forEach((function(e){var n=e.style.marginRight,i=window.getComputedStyle(e)["margin-right"];Y.setDataAttribute(e,"margin-right",n),e.style.marginRight=Number.parseFloat(i)-t._scrollbarWidth+"px"}));var e=document.body.style.paddingRight,n=window.getComputedStyle(document.body)["padding-right"];Y.setDataAttribute(document.body,"padding-right",e),document.body.style.paddingRight=Number.parseFloat(n)+this._scrollbarWidth+"px"}document.body.classList.add("modal-open")},r._resetScrollbar=function(){z.find(".fixed-top, .fixed-bottom, .is-fixed, .sticky-top").forEach((function(t){var e=Y.getDataAttribute(t,"padding-right");void 0!==e&&(Y.removeDataAttribute(t,"padding-right"),t.style.paddingRight=e)})),z.find(".sticky-top").forEach((function(t){var e=Y.getDataAttribute(t,"margin-right");void 0!==e&&(Y.removeDataAttribute(t,"margin-right"),t.style.marginRight=e)}));var t=Y.getDataAttribute(document.body,"padding-right");void 0===t?document.body.style.paddingRight="":(Y.removeDataAttribute(document.body,"padding-right"),document.body.style.paddingRight=t)},r._getScrollbarWidth=function(){var t=document.createElement("div");t.className="modal-scrollbar-measure",document.body.appendChild(t);var e=t.getBoundingClientRect().width-t.clientWidth;return document.body.removeChild(t),e},o.jQueryInterface=function(t,e){return this.each((function(){var i=T(this,"bs.modal"),r=n({},be,Y.getDataAttributes(this),"object"==typeof t&&t?t:{});if(i||(i=new o(this,r)),"string"==typeof t){if(void 0===i[t])throw new TypeError('No method named "'+t+'"');i[t](e)}}))},e(o,null,[{key:"Default",get:function(){return be}},{key:"DATA_KEY",get:function(){return"bs.modal"}}]),o}(F);B.on(document,"click.bs.modal.data-api",'[data-bs-toggle="modal"]',(function(t){var e=this,i=c(this);"A"!==this.tagName&&"AREA"!==this.tagName||t.preventDefault(),B.one(i,"show.bs.modal",(function(t){t.defaultPrevented||B.one(i,"hidden.bs.modal",(function(){g(e)&&e.focus()}))}));var o=T(i,"bs.modal");if(!o){var r=n({},Y.getDataAttributes(i),Y.getDataAttributes(this));o=new we(i,r)}o.show(this)})),b((function(){var t=_();if(t){var e=t.fn.modal;t.fn.modal=we.jQueryInterface,t.fn.modal.Constructor=we,t.fn.modal.noConflict=function(){return t.fn.modal=e,we.jQueryInterface}}}));var Ee=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),Te=/^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi,Le=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i,ke={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]};function Ae(t,e,n){var i;if(!t.length)return t;if(n&&"function"==typeof n)return n(t);for(var o=(new window.DOMParser).parseFromString(t,"text/html"),r=Object.keys(e),s=(i=[]).concat.apply(i,o.body.querySelectorAll("*")),a=function(t,n){var i,o=s[t],a=o.nodeName.toLowerCase();if(!r.includes(a))return o.parentNode.removeChild(o),"continue";var l=(i=[]).concat.apply(i,o.attributes),c=[].concat(e["*"]||[],e[a]||[]);l.forEach((function(t){(function(t,e){var n=t.nodeName.toLowerCase();if(e.includes(n))return!Ee.has(n)||Boolean(t.nodeValue.match(Te)||t.nodeValue.match(Le));for(var i=e.filter((function(t){return t instanceof RegExp})),o=0,r=i.length;o<r;o++)if(n.match(i[o]))return!0;return!1})(t,c)||o.removeAttribute(t.nodeName)}))},l=0,c=s.length;l<c;l++)a(l);return o.body.innerHTML}var Ce="tooltip",De=new RegExp("(^|\\s)bs-tooltip\\S+","g"),Oe=new Set(["sanitize","allowList","sanitizeFn"]),Se={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(number|string|function)",container:"(string|element|boolean)",fallbackPlacement:"(string|array)",boundary:"(string|element)",customClass:"(string|function)",sanitize:"boolean",sanitizeFn:"(null|function)",allowList:"object",popperConfig:"(null|object)"},Ne={AUTO:"auto",TOP:"top",RIGHT:y?"left":"right",BOTTOM:"bottom",LEFT:y?"right":"left"},xe={animation:!0,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent",customClass:"",sanitize:!0,sanitizeFn:null,allowList:ke,popperConfig:null},Ie={HIDE:"hide.bs.tooltip",HIDDEN:"hidden.bs.tooltip",SHOW:"show.bs.tooltip",SHOWN:"shown.bs.tooltip",INSERTED:"inserted.bs.tooltip",CLICK:"click.bs.tooltip",FOCUSIN:"focusin.bs.tooltip",FOCUSOUT:"focusout.bs.tooltip",MOUSEENTER:"mouseenter.bs.tooltip",MOUSELEAVE:"mouseleave.bs.tooltip"},je=function(t){function o(e,n){var i;if(void 0===ae)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");return(i=t.call(this,e)||this)._isEnabled=!0,i._timeout=0,i._hoverState="",i._activeTrigger={},i._popper=null,i.config=i._getConfig(n),i.tip=null,i._setListeners(),i}i(o,t);var r=o.prototype;return r.enable=function(){this._isEnabled=!0},r.disable=function(){this._isEnabled=!1},r.toggleEnabled=function(){this._isEnabled=!this._isEnabled},r.toggle=function(t){if(this._isEnabled)if(t){var e=this.constructor.DATA_KEY,n=T(t.delegateTarget,e);n||(n=new this.constructor(t.delegateTarget,this._getDelegateConfig()),E(t.delegateTarget,e,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(this.getTipElement().classList.contains("show"))return void this._leave(null,this);this._enter(null,this)}},r.dispose=function(){clearTimeout(this._timeout),B.off(this._element,this.constructor.EVENT_KEY),B.off(this._element.closest(".modal"),"hide.bs.modal",this._hideModalHandler),this.tip&&this.tip.parentNode.removeChild(this.tip),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,this._popper&&this._popper.destroy(),this._popper=null,this.config=null,this.tip=null,t.prototype.dispose.call(this)},r.show=function(){var t=this;if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(this.isWithContent()&&this._isEnabled){var e=B.trigger(this._element,this.constructor.Event.SHOW),n=function t(e){if(!document.documentElement.attachShadow)return null;if("function"==typeof e.getRootNode){var n=e.getRootNode();return n instanceof ShadowRoot?n:null}return e instanceof ShadowRoot?e:e.parentNode?t(e.parentNode):null}(this._element),i=null===n?this._element.ownerDocument.documentElement.contains(this._element):n.contains(this._element);if(e.defaultPrevented||!i)return;var o=this.getTipElement(),r=s(this.constructor.NAME);o.setAttribute("id",r),this._element.setAttribute("aria-describedby",r),this.setContent(),this.config.animation&&o.classList.add("fade");var a="function"==typeof this.config.placement?this.config.placement.call(this,o,this._element):this.config.placement,l=this._getAttachment(a);this._addAttachmentClass(l);var c=this._getContainer();E(o,this.constructor.DATA_KEY,this),this._element.ownerDocument.documentElement.contains(this.tip)||c.appendChild(o),B.trigger(this._element,this.constructor.Event.INSERTED),this._popper=new ae(this._element,o,this._getPopperConfig(l)),o.classList.add("show");var f,d,p="function"==typeof this.config.customClass?this.config.customClass():this.config.customClass;if(p)(f=o.classList).add.apply(f,p.split(" "));if("ontouchstart"in document.documentElement)(d=[]).concat.apply(d,document.body.children).forEach((function(t){B.on(t,"mouseover",(function(){}))}));var g=function(){t.config.animation&&t._fixTransition();var e=t._hoverState;t._hoverState=null,B.trigger(t._element,t.constructor.Event.SHOWN),"out"===e&&t._leave(null,t)};if(this.tip.classList.contains("fade")){var m=u(this.tip);B.one(this.tip,"transitionend",g),h(this.tip,m)}else g()}},r.hide=function(){var t=this;if(this._popper){var e=this.getTipElement(),n=function(){"show"!==t._hoverState&&e.parentNode&&e.parentNode.removeChild(e),t._cleanTipClass(),t._element.removeAttribute("aria-describedby"),B.trigger(t._element,t.constructor.Event.HIDDEN),t._popper.destroy()};if(!B.trigger(this._element,this.constructor.Event.HIDE).defaultPrevented){var i;if(e.classList.remove("show"),"ontouchstart"in document.documentElement)(i=[]).concat.apply(i,document.body.children).forEach((function(t){return B.off(t,"mouseover",m)}));if(this._activeTrigger.click=!1,this._activeTrigger.focus=!1,this._activeTrigger.hover=!1,this.tip.classList.contains("fade")){var o=u(e);B.one(e,"transitionend",n),h(e,o)}else n();this._hoverState=""}}},r.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},r.isWithContent=function(){return Boolean(this.getTitle())},r.getTipElement=function(){if(this.tip)return this.tip;var t=document.createElement("div");return t.innerHTML=this.config.template,this.tip=t.children[0],this.tip},r.setContent=function(){var t=this.getTipElement();this.setElementContent(z.findOne(".tooltip-inner",t),this.getTitle()),t.classList.remove("fade","show")},r.setElementContent=function(t,e){if(null!==t)return"object"==typeof e&&d(e)?(e.jquery&&(e=e[0]),void(this.config.html?e.parentNode!==t&&(t.innerHTML="",t.appendChild(e)):t.textContent=e.textContent)):void(this.config.html?(this.config.sanitize&&(e=Ae(e,this.config.allowList,this.config.sanitizeFn)),t.innerHTML=e):t.textContent=e)},r.getTitle=function(){var t=this._element.getAttribute("data-bs-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this._element):this.config.title),t},r.updateAttachment=function(t){return"right"===t?"end":"left"===t?"start":t},r._getPopperConfig=function(t){var e=this;return n({},{placement:t,modifiers:{offset:this._getOffset(),flip:{behavior:this.config.fallbackPlacement},arrow:{element:"."+this.constructor.NAME+"-arrow"},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(t){t.originalPlacement!==t.placement&&e._handlePopperPlacementChange(t)},onUpdate:function(t){return e._handlePopperPlacementChange(t)}},this.config.popperConfig)},r._addAttachmentClass=function(t){this.getTipElement().classList.add("bs-tooltip-"+this.updateAttachment(t))},r._getOffset=function(){var t=this,e={};return"function"==typeof this.config.offset?e.fn=function(e){return e.offsets=n({},e.offsets,t.config.offset(e.offsets,t._element)||{}),e}:e.offset=this.config.offset,e},r._getContainer=function(){return!1===this.config.container?document.body:d(this.config.container)?this.config.container:z.findOne(this.config.container)},r._getAttachment=function(t){return Ne[t.toUpperCase()]},r._setListeners=function(){var t=this;this.config.trigger.split(" ").forEach((function(e){if("click"===e)B.on(t._element,t.constructor.Event.CLICK,t.config.selector,(function(e){return t.toggle(e)}));else if("manual"!==e){var n="hover"===e?t.constructor.Event.MOUSEENTER:t.constructor.Event.FOCUSIN,i="hover"===e?t.constructor.Event.MOUSELEAVE:t.constructor.Event.FOCUSOUT;B.on(t._element,n,t.config.selector,(function(e){return t._enter(e)})),B.on(t._element,i,t.config.selector,(function(e){return t._leave(e)}))}})),this._hideModalHandler=function(){t._element&&t.hide()},B.on(this._element.closest(".modal"),"hide.bs.modal",this._hideModalHandler),this.config.selector?this.config=n({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},r._fixTitle=function(){var t=this._element.getAttribute("title"),e=typeof this._element.getAttribute("data-bs-original-title");(t||"string"!==e)&&(this._element.setAttribute("data-bs-original-title",t||""),!t||this._element.getAttribute("aria-label")||this._element.textContent||this._element.setAttribute("aria-label",t),this._element.setAttribute("title",""))},r._enter=function(t,e){var n=this.constructor.DATA_KEY;(e=e||T(t.delegateTarget,n))||(e=new this.constructor(t.delegateTarget,this._getDelegateConfig()),E(t.delegateTarget,n,e)),t&&(e._activeTrigger["focusin"===t.type?"focus":"hover"]=!0),e.getTipElement().classList.contains("show")||"show"===e._hoverState?e._hoverState="show":(clearTimeout(e._timeout),e._hoverState="show",e.config.delay&&e.config.delay.show?e._timeout=setTimeout((function(){"show"===e._hoverState&&e.show()}),e.config.delay.show):e.show())},r._leave=function(t,e){var n=this.constructor.DATA_KEY;(e=e||T(t.delegateTarget,n))||(e=new this.constructor(t.delegateTarget,this._getDelegateConfig()),E(t.delegateTarget,n,e)),t&&(e._activeTrigger["focusout"===t.type?"focus":"hover"]=!1),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState="out",e.config.delay&&e.config.delay.hide?e._timeout=setTimeout((function(){"out"===e._hoverState&&e.hide()}),e.config.delay.hide):e.hide())},r._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},r._getConfig=function(t){var e=Y.getDataAttributes(this._element);return Object.keys(e).forEach((function(t){Oe.has(t)&&delete e[t]})),t&&"object"==typeof t.container&&t.container.jquery&&(t.container=t.container[0]),"number"==typeof(t=n({},this.constructor.Default,e,"object"==typeof t&&t?t:{})).delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),p(Ce,t,this.constructor.DefaultType),t.sanitize&&(t.template=Ae(t.template,t.allowList,t.sanitizeFn)),t},r._getDelegateConfig=function(){var t={};if(this.config)for(var e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t},r._cleanTipClass=function(){var t=this.getTipElement(),e=t.getAttribute("class").match(De);null!==e&&e.length>0&&e.map((function(t){return t.trim()})).forEach((function(e){return t.classList.remove(e)}))},r._handlePopperPlacementChange=function(t){this.tip=t.instance.popper,this._cleanTipClass(),this._addAttachmentClass(this._getAttachment(t.placement))},r._fixTransition=function(){var t=this.getTipElement(),e=this.config.animation;null===t.getAttribute("x-placement")&&(t.classList.remove("fade"),this.config.animation=!1,this.hide(),this.show(),this.config.animation=e)},o.jQueryInterface=function(t){return this.each((function(){var e=T(this,"bs.tooltip"),n="object"==typeof t&&t;if((e||!/dispose|hide/.test(t))&&(e||(e=new o(this,n)),"string"==typeof t)){if(void 0===e[t])throw new TypeError('No method named "'+t+'"');e[t]()}}))},e(o,null,[{key:"Default",get:function(){return xe}},{key:"NAME",get:function(){return Ce}},{key:"DATA_KEY",get:function(){return"bs.tooltip"}},{key:"Event",get:function(){return Ie}},{key:"EVENT_KEY",get:function(){return".bs.tooltip"}},{key:"DefaultType",get:function(){return Se}}]),o}(F);b((function(){var t=_();if(t){var e=t.fn[Ce];t.fn[Ce]=je.jQueryInterface,t.fn[Ce].Constructor=je,t.fn[Ce].noConflict=function(){return t.fn[Ce]=e,je.jQueryInterface}}}));var Pe="popover",Me=new RegExp("(^|\\s)bs-popover\\S+","g"),He=n({},je.Default,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="popover-arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'}),Be=n({},je.DefaultType,{content:"(string|element|function)"}),Fe={HIDE:"hide.bs.popover",HIDDEN:"hidden.bs.popover",SHOW:"show.bs.popover",SHOWN:"shown.bs.popover",INSERTED:"inserted.bs.popover",CLICK:"click.bs.popover",FOCUSIN:"focusin.bs.popover",FOCUSOUT:"focusout.bs.popover",MOUSEENTER:"mouseenter.bs.popover",MOUSELEAVE:"mouseleave.bs.popover"},Re=function(t){function n(){return t.apply(this,arguments)||this}i(n,t);var o=n.prototype;return o.isWithContent=function(){return this.getTitle()||this._getContent()},o.setContent=function(){var t=this.getTipElement();this.setElementContent(z.findOne(".popover-header",t),this.getTitle());var e=this._getContent();"function"==typeof e&&(e=e.call(this._element)),this.setElementContent(z.findOne(".popover-body",t),e),t.classList.remove("fade","show")},o._addAttachmentClass=function(t){this.getTipElement().classList.add("bs-popover-"+this.updateAttachment(t))},o._getContent=function(){return this._element.getAttribute("data-bs-content")||this.config.content},o._cleanTipClass=function(){var t=this.getTipElement(),e=t.getAttribute("class").match(Me);null!==e&&e.length>0&&e.map((function(t){return t.trim()})).forEach((function(e){return t.classList.remove(e)}))},n.jQueryInterface=function(t){return this.each((function(){var e=T(this,"bs.popover"),i="object"==typeof t?t:null;if((e||!/dispose|hide/.test(t))&&(e||(e=new n(this,i),E(this,"bs.popover",e)),"string"==typeof t)){if(void 0===e[t])throw new TypeError('No method named "'+t+'"');e[t]()}}))},e(n,null,[{key:"Default",get:function(){return He}},{key:"NAME",get:function(){return Pe}},{key:"DATA_KEY",get:function(){return"bs.popover"}},{key:"Event",get:function(){return Fe}},{key:"EVENT_KEY",get:function(){return".bs.popover"}},{key:"DefaultType",get:function(){return Be}}]),n}(je);b((function(){var t=_();if(t){var e=t.fn[Pe];t.fn[Pe]=Re.jQueryInterface,t.fn[Pe].Constructor=Re,t.fn[Pe].noConflict=function(){return t.fn[Pe]=e,Re.jQueryInterface}}}));var We="scrollspy",Ue={offset:10,method:"auto",target:""},Ke={offset:"number",method:"string",target:"(string|element)"},Qe=function(t){function o(e,n){var i;return(i=t.call(this,e)||this)._scrollElement="BODY"===e.tagName?window:e,i._config=i._getConfig(n),i._selector=i._config.target+" .nav-link, "+i._config.target+" .list-group-item, "+i._config.target+" .dropdown-item",i._offsets=[],i._targets=[],i._activeTarget=null,i._scrollHeight=0,B.on(i._scrollElement,"scroll.bs.scrollspy",(function(t){return i._process(t)})),i.refresh(),i._process(),i}i(o,t);var r=o.prototype;return r.refresh=function(){var t=this,e=this._scrollElement===this._scrollElement.window?"offset":"position",n="auto"===this._config.method?e:this._config.method,i="position"===n?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),z.find(this._selector).map((function(t){var e=l(t),o=e?z.findOne(e):null;if(o){var r=o.getBoundingClientRect();if(r.width||r.height)return[Y[n](o).top+i,e]}return null})).filter((function(t){return t})).sort((function(t,e){return t[0]-e[0]})).forEach((function(e){t._offsets.push(e[0]),t._targets.push(e[1])}))},r.dispose=function(){t.prototype.dispose.call(this),B.off(this._scrollElement,".bs.scrollspy"),this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},r._getConfig=function(t){if("string"!=typeof(t=n({},Ue,"object"==typeof t&&t?t:{})).target&&d(t.target)){var e=t.target.id;e||(e=s(We),t.target.id=e),t.target="#"+e}return p(We,t,Ke),t},r._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},r._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},r._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},r._process=function(){var t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),n=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),t>=n){var i=this._targets[this._targets.length-1];this._activeTarget!==i&&this._activate(i)}else{if(this._activeTarget&&t<this._offsets[0]&&this._offsets[0]>0)return this._activeTarget=null,void this._clear();for(var o=this._offsets.length;o--;){this._activeTarget!==this._targets[o]&&t>=this._offsets[o]&&(void 0===this._offsets[o+1]||t<this._offsets[o+1])&&this._activate(this._targets[o])}}},r._activate=function(t){this._activeTarget=t,this._clear();var e=this._selector.split(",").map((function(e){return e+'[data-bs-target="'+t+'"],'+e+'[href="'+t+'"]'})),n=z.findOne(e.join(","));n.classList.contains("dropdown-item")?(z.findOne(".dropdown-toggle",n.closest(".dropdown")).classList.add("active"),n.classList.add("active")):(n.classList.add("active"),z.parents(n,".nav, .list-group").forEach((function(t){z.prev(t,".nav-link, .list-group-item").forEach((function(t){return t.classList.add("active")})),z.prev(t,".nav-item").forEach((function(t){z.children(t,".nav-link").forEach((function(t){return t.classList.add("active")}))}))}))),B.trigger(this._scrollElement,"activate.bs.scrollspy",{relatedTarget:t})},r._clear=function(){z.find(this._selector).filter((function(t){return t.classList.contains("active")})).forEach((function(t){return t.classList.remove("active")}))},o.jQueryInterface=function(t){return this.each((function(){var e=T(this,"bs.scrollspy");if(e||(e=new o(this,"object"==typeof t&&t)),"string"==typeof t){if(void 0===e[t])throw new TypeError('No method named "'+t+'"');e[t]()}}))},e(o,null,[{key:"Default",get:function(){return Ue}},{key:"DATA_KEY",get:function(){return"bs.scrollspy"}}]),o}(F);B.on(window,"load.bs.scrollspy.data-api",(function(){z.find('[data-bs-spy="scroll"]').forEach((function(t){return new Qe(t,Y.getDataAttributes(t))}))})),b((function(){var t=_();if(t){var e=t.fn[We];t.fn[We]=Qe.jQueryInterface,t.fn[We].Constructor=Qe,t.fn[We].noConflict=function(){return t.fn[We]=e,Qe.jQueryInterface}}}));var Ye=function(t){function n(){return t.apply(this,arguments)||this}i(n,t);var o=n.prototype;return o.show=function(){var t=this;if(!(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&this._element.classList.contains("active")||this._element.classList.contains("disabled"))){var e,n=c(this._element),i=this._element.closest(".nav, .list-group");if(i){var o="UL"===i.nodeName||"OL"===i.nodeName?":scope > li > .active":".active";e=(e=z.find(o,i))[e.length-1]}var r=null;if(e&&(r=B.trigger(e,"hide.bs.tab",{relatedTarget:this._element})),!(B.trigger(this._element,"show.bs.tab",{relatedTarget:e}).defaultPrevented||null!==r&&r.defaultPrevented)){this._activate(this._element,i);var s=function(){B.trigger(e,"hidden.bs.tab",{relatedTarget:t._element}),B.trigger(t._element,"shown.bs.tab",{relatedTarget:e})};n?this._activate(n,n.parentNode,s):s()}}},o._activate=function(t,e,n){var i=this,o=(!e||"UL"!==e.nodeName&&"OL"!==e.nodeName?z.children(e,".active"):z.find(":scope > li > .active",e))[0],r=n&&o&&o.classList.contains("fade"),s=function(){return i._transitionComplete(t,o,n)};if(o&&r){var a=u(o);o.classList.remove("show"),B.one(o,"transitionend",s),h(o,a)}else s()},o._transitionComplete=function(t,e,n){if(e){e.classList.remove("active");var i=z.findOne(":scope > .dropdown-menu .active",e.parentNode);i&&i.classList.remove("active"),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!1)}(t.classList.add("active"),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),v(t),t.classList.contains("fade")&&t.classList.add("show"),t.parentNode&&t.parentNode.classList.contains("dropdown-menu"))&&(t.closest(".dropdown")&&z.find(".dropdown-toggle").forEach((function(t){return t.classList.add("active")})),t.setAttribute("aria-expanded",!0));n&&n()},n.jQueryInterface=function(t){return this.each((function(){var e=T(this,"bs.tab")||new n(this);if("string"==typeof t){if(void 0===e[t])throw new TypeError('No method named "'+t+'"');e[t]()}}))},e(n,null,[{key:"DATA_KEY",get:function(){return"bs.tab"}}]),n}(F);B.on(document,"click.bs.tab.data-api",'[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',(function(t){t.preventDefault(),(T(this,"bs.tab")||new Ye(this)).show()})),b((function(){var t=_();if(t){var e=t.fn.tab;t.fn.tab=Ye.jQueryInterface,t.fn.tab.Constructor=Ye,t.fn.tab.noConflict=function(){return t.fn.tab=e,Ye.jQueryInterface}}}));var ze={animation:"boolean",autohide:"boolean",delay:"number"},Ve={animation:!0,autohide:!0,delay:5e3},qe=function(t){function o(e,n){var i;return(i=t.call(this,e)||this)._config=i._getConfig(n),i._timeout=null,i._setListeners(),i}i(o,t);var r=o.prototype;return r.show=function(){var t=this;if(!B.trigger(this._element,"show.bs.toast").defaultPrevented){this._clearTimeout(),this._config.animation&&this._element.classList.add("fade");var e=function(){t._element.classList.remove("showing"),t._element.classList.add("show"),B.trigger(t._element,"shown.bs.toast"),t._config.autohide&&(t._timeout=setTimeout((function(){t.hide()}),t._config.delay))};if(this._element.classList.remove("hide"),v(this._element),this._element.classList.add("showing"),this._config.animation){var n=u(this._element);B.one(this._element,"transitionend",e),h(this._element,n)}else e()}},r.hide=function(){var t=this;if(this._element.classList.contains("show")&&!B.trigger(this._element,"hide.bs.toast").defaultPrevented){var e=function(){t._element.classList.add("hide"),B.trigger(t._element,"hidden.bs.toast")};if(this._element.classList.remove("show"),this._config.animation){var n=u(this._element);B.one(this._element,"transitionend",e),h(this._element,n)}else e()}},r.dispose=function(){this._clearTimeout(),this._element.classList.contains("show")&&this._element.classList.remove("show"),B.off(this._element,"click.dismiss.bs.toast"),t.prototype.dispose.call(this),this._config=null},r._getConfig=function(t){return t=n({},Ve,Y.getDataAttributes(this._element),"object"==typeof t&&t?t:{}),p("toast",t,this.constructor.DefaultType),t},r._setListeners=function(){var t=this;B.on(this._element,"click.dismiss.bs.toast",'[data-bs-dismiss="toast"]',(function(){return t.hide()}))},r._clearTimeout=function(){clearTimeout(this._timeout),this._timeout=null},o.jQueryInterface=function(t){return this.each((function(){var e=T(this,"bs.toast");if(e||(e=new o(this,"object"==typeof t&&t)),"string"==typeof t){if(void 0===e[t])throw new TypeError('No method named "'+t+'"');e[t](this)}}))},e(o,null,[{key:"DefaultType",get:function(){return ze}},{key:"Default",get:function(){return Ve}},{key:"DATA_KEY",get:function(){return"bs.toast"}}]),o}(F);return b((function(){var t=_();if(t){var e=t.fn.toast;t.fn.toast=qe.jQueryInterface,t.fn.toast.Constructor=qe,t.fn.toast.noConflict=function(){return t.fn.toast=e,qe.jQueryInterface}}})),{Alert:W,Button:U,Carousel:Z,Collapse:nt,Dropdown:_e,Modal:we,Popover:Re,ScrollSpy:Qe,Tab:Ye,Toast:qe,Tooltip:je}})); +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).bootstrap=e()}(this,(function(){"use strict";const t=t=>{do{t+=Math.floor(1e6*Math.random())}while(document.getElementById(t));return t},e=t=>{let e=t.getAttribute("data-bs-target");if(!e||"#"===e){let i=t.getAttribute("href");if(!i||!i.includes("#")&&!i.startsWith("."))return null;i.includes("#")&&!i.startsWith("#")&&(i="#"+i.split("#")[1]),e=i&&"#"!==i?i.trim():null}return e},i=t=>{const i=e(t);return i&&document.querySelector(i)?i:null},s=t=>{const i=e(t);return i?document.querySelector(i):null},n=t=>{if(!t)return 0;let{transitionDuration:e,transitionDelay:i}=window.getComputedStyle(t);const s=Number.parseFloat(e),n=Number.parseFloat(i);return s||n?(e=e.split(",")[0],i=i.split(",")[0],1e3*(Number.parseFloat(e)+Number.parseFloat(i))):0},o=t=>{t.dispatchEvent(new Event("transitionend"))},r=t=>(t[0]||t).nodeType,a=(t,e)=>{let i=!1;const s=e+5;t.addEventListener("transitionend",(function e(){i=!0,t.removeEventListener("transitionend",e)})),setTimeout(()=>{i||o(t)},s)},l=(t,e,i)=>{Object.keys(i).forEach(s=>{const n=i[s],o=e[s],a=o&&r(o)?"element":null==(l=o)?""+l:{}.toString.call(l).match(/\s([a-z]+)/i)[1].toLowerCase();var l;if(!new RegExp(n).test(a))throw new TypeError(t.toUpperCase()+": "+`Option "${s}" provided type "${a}" `+`but expected type "${n}".`)})},c=t=>{if(!t)return!1;if(t.style&&t.parentNode&&t.parentNode.style){const e=getComputedStyle(t),i=getComputedStyle(t.parentNode);return"none"!==e.display&&"none"!==i.display&&"hidden"!==e.visibility}return!1},d=t=>!t||t.nodeType!==Node.ELEMENT_NODE||!!t.classList.contains("disabled")||(void 0!==t.disabled?t.disabled:t.hasAttribute("disabled")&&"false"!==t.getAttribute("disabled")),h=t=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof t.getRootNode){const e=t.getRootNode();return e instanceof ShadowRoot?e:null}return t instanceof ShadowRoot?t:t.parentNode?h(t.parentNode):null},f=()=>function(){},u=t=>t.offsetHeight,p=()=>{const{jQuery:t}=window;return t&&!document.body.hasAttribute("data-bs-no-jquery")?t:null},g=()=>"rtl"===document.documentElement.dir,m=(t,e)=>{var i;i=()=>{const i=p();if(i){const s=i.fn[t];i.fn[t]=e.jQueryInterface,i.fn[t].Constructor=e,i.fn[t].noConflict=()=>(i.fn[t]=s,e.jQueryInterface)}},"loading"===document.readyState?document.addEventListener("DOMContentLoaded",i):i()},_=new Map;var b={set(t,e,i){_.has(t)||_.set(t,new Map);const s=_.get(t);s.has(e)||0===s.size?s.set(e,i):console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(s.keys())[0]}.`)},get:(t,e)=>_.has(t)&&_.get(t).get(e)||null,remove(t,e){if(!_.has(t))return;const i=_.get(t);i.delete(e),0===i.size&&_.delete(t)}};const v=/[^.]*(?=\..*)\.|.*/,y=/\..*/,w=/::\d+$/,E={};let T=1;const A={mouseenter:"mouseover",mouseleave:"mouseout"},L=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function O(t,e){return e&&`${e}::${T++}`||t.uidEvent||T++}function k(t){const e=O(t);return t.uidEvent=e,E[e]=E[e]||{},E[e]}function D(t,e,i=null){const s=Object.keys(t);for(let n=0,o=s.length;n<o;n++){const o=t[s[n]];if(o.originalHandler===e&&o.delegationSelector===i)return o}return null}function x(t,e,i){const s="string"==typeof e,n=s?i:e;let o=t.replace(y,"");const r=A[o];return r&&(o=r),L.has(o)||(o=t),[s,n,o]}function C(t,e,i,s,n){if("string"!=typeof e||!t)return;i||(i=s,s=null);const[o,r,a]=x(e,i,s),l=k(t),c=l[a]||(l[a]={}),d=D(c,r,o?i:null);if(d)return void(d.oneOff=d.oneOff&&n);const h=O(r,e.replace(v,"")),f=o?function(t,e,i){return function s(n){const o=t.querySelectorAll(e);for(let{target:e}=n;e&&e!==this;e=e.parentNode)for(let r=o.length;r--;)if(o[r]===e)return n.delegateTarget=e,s.oneOff&&N.off(t,n.type,i),i.apply(e,[n]);return null}}(t,i,s):function(t,e){return function i(s){return s.delegateTarget=t,i.oneOff&&N.off(t,s.type,e),e.apply(t,[s])}}(t,i);f.delegationSelector=o?i:null,f.originalHandler=r,f.oneOff=n,f.uidEvent=h,c[h]=f,t.addEventListener(a,f,o)}function S(t,e,i,s,n){const o=D(e[i],s,n);o&&(t.removeEventListener(i,o,Boolean(n)),delete e[i][o.uidEvent])}const N={on(t,e,i,s){C(t,e,i,s,!1)},one(t,e,i,s){C(t,e,i,s,!0)},off(t,e,i,s){if("string"!=typeof e||!t)return;const[n,o,r]=x(e,i,s),a=r!==e,l=k(t),c=e.startsWith(".");if(void 0!==o){if(!l||!l[r])return;return void S(t,l,r,o,n?i:null)}c&&Object.keys(l).forEach(i=>{!function(t,e,i,s){const n=e[i]||{};Object.keys(n).forEach(o=>{if(o.includes(s)){const s=n[o];S(t,e,i,s.originalHandler,s.delegationSelector)}})}(t,l,i,e.slice(1))});const d=l[r]||{};Object.keys(d).forEach(i=>{const s=i.replace(w,"");if(!a||e.includes(s)){const e=d[i];S(t,l,r,e.originalHandler,e.delegationSelector)}})},trigger(t,e,i){if("string"!=typeof e||!t)return null;const s=p(),n=e.replace(y,""),o=e!==n,r=L.has(n);let a,l=!0,c=!0,d=!1,h=null;return o&&s&&(a=s.Event(e,i),s(t).trigger(a),l=!a.isPropagationStopped(),c=!a.isImmediatePropagationStopped(),d=a.isDefaultPrevented()),r?(h=document.createEvent("HTMLEvents"),h.initEvent(n,l,!0)):h=new CustomEvent(e,{bubbles:l,cancelable:!0}),void 0!==i&&Object.keys(i).forEach(t=>{Object.defineProperty(h,t,{get:()=>i[t]})}),d&&h.preventDefault(),c&&t.dispatchEvent(h),h.defaultPrevented&&void 0!==a&&a.preventDefault(),h}};class j{constructor(t){(t="string"==typeof t?document.querySelector(t):t)&&(this._element=t,b.set(this._element,this.constructor.DATA_KEY,this))}dispose(){b.remove(this._element,this.constructor.DATA_KEY),this._element=null}static getInstance(t){return b.get(t,this.DATA_KEY)}static get VERSION(){return"5.0.0-beta3"}}class P extends j{static get DATA_KEY(){return"bs.alert"}close(t){const e=t?this._getRootElement(t):this._element,i=this._triggerCloseEvent(e);null===i||i.defaultPrevented||this._removeElement(e)}_getRootElement(t){return s(t)||t.closest(".alert")}_triggerCloseEvent(t){return N.trigger(t,"close.bs.alert")}_removeElement(t){if(t.classList.remove("show"),!t.classList.contains("fade"))return void this._destroyElement(t);const e=n(t);N.one(t,"transitionend",()=>this._destroyElement(t)),a(t,e)}_destroyElement(t){t.parentNode&&t.parentNode.removeChild(t),N.trigger(t,"closed.bs.alert")}static jQueryInterface(t){return this.each((function(){let e=b.get(this,"bs.alert");e||(e=new P(this)),"close"===t&&e[t](this)}))}static handleDismiss(t){return function(e){e&&e.preventDefault(),t.close(this)}}}N.on(document,"click.bs.alert.data-api",'[data-bs-dismiss="alert"]',P.handleDismiss(new P)),m("alert",P);class I extends j{static get DATA_KEY(){return"bs.button"}toggle(){this._element.setAttribute("aria-pressed",this._element.classList.toggle("active"))}static jQueryInterface(t){return this.each((function(){let e=b.get(this,"bs.button");e||(e=new I(this)),"toggle"===t&&e[t]()}))}}function M(t){return"true"===t||"false"!==t&&(t===Number(t).toString()?Number(t):""===t||"null"===t?null:t)}function R(t){return t.replace(/[A-Z]/g,t=>"-"+t.toLowerCase())}N.on(document,"click.bs.button.data-api",'[data-bs-toggle="button"]',t=>{t.preventDefault();const e=t.target.closest('[data-bs-toggle="button"]');let i=b.get(e,"bs.button");i||(i=new I(e)),i.toggle()}),m("button",I);const B={setDataAttribute(t,e,i){t.setAttribute("data-bs-"+R(e),i)},removeDataAttribute(t,e){t.removeAttribute("data-bs-"+R(e))},getDataAttributes(t){if(!t)return{};const e={};return Object.keys(t.dataset).filter(t=>t.startsWith("bs")).forEach(i=>{let s=i.replace(/^bs/,"");s=s.charAt(0).toLowerCase()+s.slice(1,s.length),e[s]=M(t.dataset[i])}),e},getDataAttribute:(t,e)=>M(t.getAttribute("data-bs-"+R(e))),offset(t){const e=t.getBoundingClientRect();return{top:e.top+document.body.scrollTop,left:e.left+document.body.scrollLeft}},position:t=>({top:t.offsetTop,left:t.offsetLeft})},H={find:(t,e=document.documentElement)=>[].concat(...Element.prototype.querySelectorAll.call(e,t)),findOne:(t,e=document.documentElement)=>Element.prototype.querySelector.call(e,t),children:(t,e)=>[].concat(...t.children).filter(t=>t.matches(e)),parents(t,e){const i=[];let s=t.parentNode;for(;s&&s.nodeType===Node.ELEMENT_NODE&&3!==s.nodeType;)s.matches(e)&&i.push(s),s=s.parentNode;return i},prev(t,e){let i=t.previousElementSibling;for(;i;){if(i.matches(e))return[i];i=i.previousElementSibling}return[]},next(t,e){let i=t.nextElementSibling;for(;i;){if(i.matches(e))return[i];i=i.nextElementSibling}return[]}},W={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},U={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},$="next",F="prev",z="left",K="right";class Y extends j{constructor(t,e){super(t),this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this.touchStartX=0,this.touchDeltaX=0,this._config=this._getConfig(e),this._indicatorsElement=H.findOne(".carousel-indicators",this._element),this._touchSupported="ontouchstart"in document.documentElement||navigator.maxTouchPoints>0,this._pointerEvent=Boolean(window.PointerEvent),this._addEventListeners()}static get Default(){return W}static get DATA_KEY(){return"bs.carousel"}next(){this._isSliding||this._slide($)}nextWhenVisible(){!document.hidden&&c(this._element)&&this.next()}prev(){this._isSliding||this._slide(F)}pause(t){t||(this._isPaused=!0),H.findOne(".carousel-item-next, .carousel-item-prev",this._element)&&(o(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null}cycle(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config&&this._config.interval&&!this._isPaused&&(this._updateInterval(),this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))}to(t){this._activeElement=H.findOne(".active.carousel-item",this._element);const e=this._getItemIndex(this._activeElement);if(t>this._items.length-1||t<0)return;if(this._isSliding)return void N.one(this._element,"slid.bs.carousel",()=>this.to(t));if(e===t)return this.pause(),void this.cycle();const i=t>e?$:F;this._slide(i,this._items[t])}dispose(){N.off(this._element,".bs.carousel"),this._items=null,this._config=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null,super.dispose()}_getConfig(t){return t={...W,...t},l("carousel",t,U),t}_handleSwipe(){const t=Math.abs(this.touchDeltaX);if(t<=40)return;const e=t/this.touchDeltaX;this.touchDeltaX=0,e&&this._slide(e>0?K:z)}_addEventListeners(){this._config.keyboard&&N.on(this._element,"keydown.bs.carousel",t=>this._keydown(t)),"hover"===this._config.pause&&(N.on(this._element,"mouseenter.bs.carousel",t=>this.pause(t)),N.on(this._element,"mouseleave.bs.carousel",t=>this.cycle(t))),this._config.touch&&this._touchSupported&&this._addTouchEventListeners()}_addTouchEventListeners(){const t=t=>{!this._pointerEvent||"pen"!==t.pointerType&&"touch"!==t.pointerType?this._pointerEvent||(this.touchStartX=t.touches[0].clientX):this.touchStartX=t.clientX},e=t=>{this.touchDeltaX=t.touches&&t.touches.length>1?0:t.touches[0].clientX-this.touchStartX},i=t=>{!this._pointerEvent||"pen"!==t.pointerType&&"touch"!==t.pointerType||(this.touchDeltaX=t.clientX-this.touchStartX),this._handleSwipe(),"hover"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout(t=>this.cycle(t),500+this._config.interval))};H.find(".carousel-item img",this._element).forEach(t=>{N.on(t,"dragstart.bs.carousel",t=>t.preventDefault())}),this._pointerEvent?(N.on(this._element,"pointerdown.bs.carousel",e=>t(e)),N.on(this._element,"pointerup.bs.carousel",t=>i(t)),this._element.classList.add("pointer-event")):(N.on(this._element,"touchstart.bs.carousel",e=>t(e)),N.on(this._element,"touchmove.bs.carousel",t=>e(t)),N.on(this._element,"touchend.bs.carousel",t=>i(t)))}_keydown(t){/input|textarea/i.test(t.target.tagName)||("ArrowLeft"===t.key?(t.preventDefault(),this._slide(z)):"ArrowRight"===t.key&&(t.preventDefault(),this._slide(K)))}_getItemIndex(t){return this._items=t&&t.parentNode?H.find(".carousel-item",t.parentNode):[],this._items.indexOf(t)}_getItemByOrder(t,e){const i=t===$,s=t===F,n=this._getItemIndex(e),o=this._items.length-1;if((s&&0===n||i&&n===o)&&!this._config.wrap)return e;const r=(n+(s?-1:1))%this._items.length;return-1===r?this._items[this._items.length-1]:this._items[r]}_triggerSlideEvent(t,e){const i=this._getItemIndex(t),s=this._getItemIndex(H.findOne(".active.carousel-item",this._element));return N.trigger(this._element,"slide.bs.carousel",{relatedTarget:t,direction:e,from:s,to:i})}_setActiveIndicatorElement(t){if(this._indicatorsElement){const e=H.findOne(".active",this._indicatorsElement);e.classList.remove("active"),e.removeAttribute("aria-current");const i=H.find("[data-bs-target]",this._indicatorsElement);for(let e=0;e<i.length;e++)if(Number.parseInt(i[e].getAttribute("data-bs-slide-to"),10)===this._getItemIndex(t)){i[e].classList.add("active"),i[e].setAttribute("aria-current","true");break}}}_updateInterval(){const t=this._activeElement||H.findOne(".active.carousel-item",this._element);if(!t)return;const e=Number.parseInt(t.getAttribute("data-bs-interval"),10);e?(this._config.defaultInterval=this._config.defaultInterval||this._config.interval,this._config.interval=e):this._config.interval=this._config.defaultInterval||this._config.interval}_slide(t,e){const i=this._directionToOrder(t),s=H.findOne(".active.carousel-item",this._element),o=this._getItemIndex(s),r=e||this._getItemByOrder(i,s),l=this._getItemIndex(r),c=Boolean(this._interval),d=i===$,h=d?"carousel-item-start":"carousel-item-end",f=d?"carousel-item-next":"carousel-item-prev",p=this._orderToDirection(i);if(r&&r.classList.contains("active"))this._isSliding=!1;else if(!this._triggerSlideEvent(r,p).defaultPrevented&&s&&r){if(this._isSliding=!0,c&&this.pause(),this._setActiveIndicatorElement(r),this._activeElement=r,this._element.classList.contains("slide")){r.classList.add(f),u(r),s.classList.add(h),r.classList.add(h);const t=n(s);N.one(s,"transitionend",()=>{r.classList.remove(h,f),r.classList.add("active"),s.classList.remove("active",f,h),this._isSliding=!1,setTimeout(()=>{N.trigger(this._element,"slid.bs.carousel",{relatedTarget:r,direction:p,from:o,to:l})},0)}),a(s,t)}else s.classList.remove("active"),r.classList.add("active"),this._isSliding=!1,N.trigger(this._element,"slid.bs.carousel",{relatedTarget:r,direction:p,from:o,to:l});c&&this.cycle()}}_directionToOrder(t){return[K,z].includes(t)?g()?t===K?F:$:t===K?$:F:t}_orderToDirection(t){return[$,F].includes(t)?g()?t===$?z:K:t===$?K:z:t}static carouselInterface(t,e){let i=b.get(t,"bs.carousel"),s={...W,...B.getDataAttributes(t)};"object"==typeof e&&(s={...s,...e});const n="string"==typeof e?e:s.slide;if(i||(i=new Y(t,s)),"number"==typeof e)i.to(e);else if("string"==typeof n){if(void 0===i[n])throw new TypeError(`No method named "${n}"`);i[n]()}else s.interval&&s.ride&&(i.pause(),i.cycle())}static jQueryInterface(t){return this.each((function(){Y.carouselInterface(this,t)}))}static dataApiClickHandler(t){const e=s(this);if(!e||!e.classList.contains("carousel"))return;const i={...B.getDataAttributes(e),...B.getDataAttributes(this)},n=this.getAttribute("data-bs-slide-to");n&&(i.interval=!1),Y.carouselInterface(e,i),n&&b.get(e,"bs.carousel").to(n),t.preventDefault()}}N.on(document,"click.bs.carousel.data-api","[data-bs-slide], [data-bs-slide-to]",Y.dataApiClickHandler),N.on(window,"load.bs.carousel.data-api",()=>{const t=H.find('[data-bs-ride="carousel"]');for(let e=0,i=t.length;e<i;e++)Y.carouselInterface(t[e],b.get(t[e],"bs.carousel"))}),m("carousel",Y);const q={toggle:!0,parent:""},V={toggle:"boolean",parent:"(string|element)"};class X extends j{constructor(t,e){super(t),this._isTransitioning=!1,this._config=this._getConfig(e),this._triggerArray=H.find(`[data-bs-toggle="collapse"][href="#${this._element.id}"],[data-bs-toggle="collapse"][data-bs-target="#${this._element.id}"]`);const s=H.find('[data-bs-toggle="collapse"]');for(let t=0,e=s.length;t<e;t++){const e=s[t],n=i(e),o=H.find(n).filter(t=>t===this._element);null!==n&&o.length&&(this._selector=n,this._triggerArray.push(e))}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle()}static get Default(){return q}static get DATA_KEY(){return"bs.collapse"}toggle(){this._element.classList.contains("show")?this.hide():this.show()}show(){if(this._isTransitioning||this._element.classList.contains("show"))return;let t,e;this._parent&&(t=H.find(".show, .collapsing",this._parent).filter(t=>"string"==typeof this._config.parent?t.getAttribute("data-bs-parent")===this._config.parent:t.classList.contains("collapse")),0===t.length&&(t=null));const i=H.findOne(this._selector);if(t){const s=t.find(t=>i!==t);if(e=s?b.get(s,"bs.collapse"):null,e&&e._isTransitioning)return}if(N.trigger(this._element,"show.bs.collapse").defaultPrevented)return;t&&t.forEach(t=>{i!==t&&X.collapseInterface(t,"hide"),e||b.set(t,"bs.collapse",null)});const s=this._getDimension();this._element.classList.remove("collapse"),this._element.classList.add("collapsing"),this._element.style[s]=0,this._triggerArray.length&&this._triggerArray.forEach(t=>{t.classList.remove("collapsed"),t.setAttribute("aria-expanded",!0)}),this.setTransitioning(!0);const o="scroll"+(s[0].toUpperCase()+s.slice(1)),r=n(this._element);N.one(this._element,"transitionend",()=>{this._element.classList.remove("collapsing"),this._element.classList.add("collapse","show"),this._element.style[s]="",this.setTransitioning(!1),N.trigger(this._element,"shown.bs.collapse")}),a(this._element,r),this._element.style[s]=this._element[o]+"px"}hide(){if(this._isTransitioning||!this._element.classList.contains("show"))return;if(N.trigger(this._element,"hide.bs.collapse").defaultPrevented)return;const t=this._getDimension();this._element.style[t]=this._element.getBoundingClientRect()[t]+"px",u(this._element),this._element.classList.add("collapsing"),this._element.classList.remove("collapse","show");const e=this._triggerArray.length;if(e>0)for(let t=0;t<e;t++){const e=this._triggerArray[t],i=s(e);i&&!i.classList.contains("show")&&(e.classList.add("collapsed"),e.setAttribute("aria-expanded",!1))}this.setTransitioning(!0),this._element.style[t]="";const i=n(this._element);N.one(this._element,"transitionend",()=>{this.setTransitioning(!1),this._element.classList.remove("collapsing"),this._element.classList.add("collapse"),N.trigger(this._element,"hidden.bs.collapse")}),a(this._element,i)}setTransitioning(t){this._isTransitioning=t}dispose(){super.dispose(),this._config=null,this._parent=null,this._triggerArray=null,this._isTransitioning=null}_getConfig(t){return(t={...q,...t}).toggle=Boolean(t.toggle),l("collapse",t,V),t}_getDimension(){return this._element.classList.contains("width")?"width":"height"}_getParent(){let{parent:t}=this._config;r(t)?void 0===t.jquery&&void 0===t[0]||(t=t[0]):t=H.findOne(t);const e=`[data-bs-toggle="collapse"][data-bs-parent="${t}"]`;return H.find(e,t).forEach(t=>{const e=s(t);this._addAriaAndCollapsedClass(e,[t])}),t}_addAriaAndCollapsedClass(t,e){if(!t||!e.length)return;const i=t.classList.contains("show");e.forEach(t=>{i?t.classList.remove("collapsed"):t.classList.add("collapsed"),t.setAttribute("aria-expanded",i)})}static collapseInterface(t,e){let i=b.get(t,"bs.collapse");const s={...q,...B.getDataAttributes(t),..."object"==typeof e&&e?e:{}};if(!i&&s.toggle&&"string"==typeof e&&/show|hide/.test(e)&&(s.toggle=!1),i||(i=new X(t,s)),"string"==typeof e){if(void 0===i[e])throw new TypeError(`No method named "${e}"`);i[e]()}}static jQueryInterface(t){return this.each((function(){X.collapseInterface(this,t)}))}}N.on(document,"click.bs.collapse.data-api",'[data-bs-toggle="collapse"]',(function(t){("A"===t.target.tagName||t.delegateTarget&&"A"===t.delegateTarget.tagName)&&t.preventDefault();const e=B.getDataAttributes(this),s=i(this);H.find(s).forEach(t=>{const i=b.get(t,"bs.collapse");let s;i?(null===i._parent&&"string"==typeof e.parent&&(i._config.parent=e.parent,i._parent=i._getParent()),s="toggle"):s=e,X.collapseInterface(t,s)})})),m("collapse",X);var Q="top",G="bottom",Z="right",J="left",tt=[Q,G,Z,J],et=tt.reduce((function(t,e){return t.concat([e+"-start",e+"-end"])}),[]),it=[].concat(tt,["auto"]).reduce((function(t,e){return t.concat([e,e+"-start",e+"-end"])}),[]),st=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function nt(t){return t?(t.nodeName||"").toLowerCase():null}function ot(t){if(null==t)return window;if("[object Window]"!==t.toString()){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function rt(t){return t instanceof ot(t).Element||t instanceof Element}function at(t){return t instanceof ot(t).HTMLElement||t instanceof HTMLElement}function lt(t){return"undefined"!=typeof ShadowRoot&&(t instanceof ot(t).ShadowRoot||t instanceof ShadowRoot)}var ct={name:"applyStyles",enabled:!0,phase:"write",fn:function(t){var e=t.state;Object.keys(e.elements).forEach((function(t){var i=e.styles[t]||{},s=e.attributes[t]||{},n=e.elements[t];at(n)&&nt(n)&&(Object.assign(n.style,i),Object.keys(s).forEach((function(t){var e=s[t];!1===e?n.removeAttribute(t):n.setAttribute(t,!0===e?"":e)})))}))},effect:function(t){var e=t.state,i={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,i.popper),e.styles=i,e.elements.arrow&&Object.assign(e.elements.arrow.style,i.arrow),function(){Object.keys(e.elements).forEach((function(t){var s=e.elements[t],n=e.attributes[t]||{},o=Object.keys(e.styles.hasOwnProperty(t)?e.styles[t]:i[t]).reduce((function(t,e){return t[e]="",t}),{});at(s)&&nt(s)&&(Object.assign(s.style,o),Object.keys(n).forEach((function(t){s.removeAttribute(t)})))}))}},requires:["computeStyles"]};function dt(t){return t.split("-")[0]}function ht(t){var e=t.getBoundingClientRect();return{width:e.width,height:e.height,top:e.top,right:e.right,bottom:e.bottom,left:e.left,x:e.left,y:e.top}}function ft(t){var e=ht(t),i=t.offsetWidth,s=t.offsetHeight;return Math.abs(e.width-i)<=1&&(i=e.width),Math.abs(e.height-s)<=1&&(s=e.height),{x:t.offsetLeft,y:t.offsetTop,width:i,height:s}}function ut(t,e){var i=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(i&<(i)){var s=e;do{if(s&&t.isSameNode(s))return!0;s=s.parentNode||s.host}while(s)}return!1}function pt(t){return ot(t).getComputedStyle(t)}function gt(t){return["table","td","th"].indexOf(nt(t))>=0}function mt(t){return((rt(t)?t.ownerDocument:t.document)||window.document).documentElement}function _t(t){return"html"===nt(t)?t:t.assignedSlot||t.parentNode||(lt(t)?t.host:null)||mt(t)}function bt(t){return at(t)&&"fixed"!==pt(t).position?t.offsetParent:null}function vt(t){for(var e=ot(t),i=bt(t);i&>(i)&&"static"===pt(i).position;)i=bt(i);return i&&("html"===nt(i)||"body"===nt(i)&&"static"===pt(i).position)?e:i||function(t){for(var e=-1!==navigator.userAgent.toLowerCase().indexOf("firefox"),i=_t(t);at(i)&&["html","body"].indexOf(nt(i))<0;){var s=pt(i);if("none"!==s.transform||"none"!==s.perspective||"paint"===s.contain||-1!==["transform","perspective"].indexOf(s.willChange)||e&&"filter"===s.willChange||e&&s.filter&&"none"!==s.filter)return i;i=i.parentNode}return null}(t)||e}function yt(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}var wt=Math.max,Et=Math.min,Tt=Math.round;function At(t,e,i){return wt(t,Et(e,i))}function Lt(t){return Object.assign({},{top:0,right:0,bottom:0,left:0},t)}function Ot(t,e){return e.reduce((function(e,i){return e[i]=t,e}),{})}var kt={name:"arrow",enabled:!0,phase:"main",fn:function(t){var e,i=t.state,s=t.name,n=t.options,o=i.elements.arrow,r=i.modifiersData.popperOffsets,a=dt(i.placement),l=yt(a),c=[J,Z].indexOf(a)>=0?"height":"width";if(o&&r){var d=function(t,e){return Lt("number"!=typeof(t="function"==typeof t?t(Object.assign({},e.rects,{placement:e.placement})):t)?t:Ot(t,tt))}(n.padding,i),h=ft(o),f="y"===l?Q:J,u="y"===l?G:Z,p=i.rects.reference[c]+i.rects.reference[l]-r[l]-i.rects.popper[c],g=r[l]-i.rects.reference[l],m=vt(o),_=m?"y"===l?m.clientHeight||0:m.clientWidth||0:0,b=p/2-g/2,v=d[f],y=_-h[c]-d[u],w=_/2-h[c]/2+b,E=At(v,w,y),T=l;i.modifiersData[s]=((e={})[T]=E,e.centerOffset=E-w,e)}},effect:function(t){var e=t.state,i=t.options.element,s=void 0===i?"[data-popper-arrow]":i;null!=s&&("string"!=typeof s||(s=e.elements.popper.querySelector(s)))&&ut(e.elements.popper,s)&&(e.elements.arrow=s)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]},Dt={top:"auto",right:"auto",bottom:"auto",left:"auto"};function xt(t){var e,i=t.popper,s=t.popperRect,n=t.placement,o=t.offsets,r=t.position,a=t.gpuAcceleration,l=t.adaptive,c=t.roundOffsets,d=!0===c?function(t){var e=t.x,i=t.y,s=window.devicePixelRatio||1;return{x:Tt(Tt(e*s)/s)||0,y:Tt(Tt(i*s)/s)||0}}(o):"function"==typeof c?c(o):o,h=d.x,f=void 0===h?0:h,u=d.y,p=void 0===u?0:u,g=o.hasOwnProperty("x"),m=o.hasOwnProperty("y"),_=J,b=Q,v=window;if(l){var y=vt(i),w="clientHeight",E="clientWidth";y===ot(i)&&"static"!==pt(y=mt(i)).position&&(w="scrollHeight",E="scrollWidth"),y=y,n===Q&&(b=G,p-=y[w]-s.height,p*=a?1:-1),n===J&&(_=Z,f-=y[E]-s.width,f*=a?1:-1)}var T,A=Object.assign({position:r},l&&Dt);return a?Object.assign({},A,((T={})[b]=m?"0":"",T[_]=g?"0":"",T.transform=(v.devicePixelRatio||1)<2?"translate("+f+"px, "+p+"px)":"translate3d("+f+"px, "+p+"px, 0)",T)):Object.assign({},A,((e={})[b]=m?p+"px":"",e[_]=g?f+"px":"",e.transform="",e))}var Ct={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(t){var e=t.state,i=t.options,s=i.gpuAcceleration,n=void 0===s||s,o=i.adaptive,r=void 0===o||o,a=i.roundOffsets,l=void 0===a||a,c={placement:dt(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:n};null!=e.modifiersData.popperOffsets&&(e.styles.popper=Object.assign({},e.styles.popper,xt(Object.assign({},c,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:r,roundOffsets:l})))),null!=e.modifiersData.arrow&&(e.styles.arrow=Object.assign({},e.styles.arrow,xt(Object.assign({},c,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})},data:{}},St={passive:!0},Nt={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(t){var e=t.state,i=t.instance,s=t.options,n=s.scroll,o=void 0===n||n,r=s.resize,a=void 0===r||r,l=ot(e.elements.popper),c=[].concat(e.scrollParents.reference,e.scrollParents.popper);return o&&c.forEach((function(t){t.addEventListener("scroll",i.update,St)})),a&&l.addEventListener("resize",i.update,St),function(){o&&c.forEach((function(t){t.removeEventListener("scroll",i.update,St)})),a&&l.removeEventListener("resize",i.update,St)}},data:{}},jt={left:"right",right:"left",bottom:"top",top:"bottom"};function Pt(t){return t.replace(/left|right|bottom|top/g,(function(t){return jt[t]}))}var It={start:"end",end:"start"};function Mt(t){return t.replace(/start|end/g,(function(t){return It[t]}))}function Rt(t){var e=ot(t);return{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function Bt(t){return ht(mt(t)).left+Rt(t).scrollLeft}function Ht(t){var e=pt(t),i=e.overflow,s=e.overflowX,n=e.overflowY;return/auto|scroll|overlay|hidden/.test(i+n+s)}function Wt(t,e){var i;void 0===e&&(e=[]);var s=function t(e){return["html","body","#document"].indexOf(nt(e))>=0?e.ownerDocument.body:at(e)&&Ht(e)?e:t(_t(e))}(t),n=s===(null==(i=t.ownerDocument)?void 0:i.body),o=ot(s),r=n?[o].concat(o.visualViewport||[],Ht(s)?s:[]):s,a=e.concat(r);return n?a:a.concat(Wt(_t(r)))}function Ut(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function $t(t,e){return"viewport"===e?Ut(function(t){var e=ot(t),i=mt(t),s=e.visualViewport,n=i.clientWidth,o=i.clientHeight,r=0,a=0;return s&&(n=s.width,o=s.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(r=s.offsetLeft,a=s.offsetTop)),{width:n,height:o,x:r+Bt(t),y:a}}(t)):at(e)?function(t){var e=ht(t);return e.top=e.top+t.clientTop,e.left=e.left+t.clientLeft,e.bottom=e.top+t.clientHeight,e.right=e.left+t.clientWidth,e.width=t.clientWidth,e.height=t.clientHeight,e.x=e.left,e.y=e.top,e}(e):Ut(function(t){var e,i=mt(t),s=Rt(t),n=null==(e=t.ownerDocument)?void 0:e.body,o=wt(i.scrollWidth,i.clientWidth,n?n.scrollWidth:0,n?n.clientWidth:0),r=wt(i.scrollHeight,i.clientHeight,n?n.scrollHeight:0,n?n.clientHeight:0),a=-s.scrollLeft+Bt(t),l=-s.scrollTop;return"rtl"===pt(n||i).direction&&(a+=wt(i.clientWidth,n?n.clientWidth:0)-o),{width:o,height:r,x:a,y:l}}(mt(t)))}function Ft(t){return t.split("-")[1]}function zt(t){var e,i=t.reference,s=t.element,n=t.placement,o=n?dt(n):null,r=n?Ft(n):null,a=i.x+i.width/2-s.width/2,l=i.y+i.height/2-s.height/2;switch(o){case Q:e={x:a,y:i.y-s.height};break;case G:e={x:a,y:i.y+i.height};break;case Z:e={x:i.x+i.width,y:l};break;case J:e={x:i.x-s.width,y:l};break;default:e={x:i.x,y:i.y}}var c=o?yt(o):null;if(null!=c){var d="y"===c?"height":"width";switch(r){case"start":e[c]=e[c]-(i[d]/2-s[d]/2);break;case"end":e[c]=e[c]+(i[d]/2-s[d]/2)}}return e}function Kt(t,e){void 0===e&&(e={});var i=e,s=i.placement,n=void 0===s?t.placement:s,o=i.boundary,r=void 0===o?"clippingParents":o,a=i.rootBoundary,l=void 0===a?"viewport":a,c=i.elementContext,d=void 0===c?"popper":c,h=i.altBoundary,f=void 0!==h&&h,u=i.padding,p=void 0===u?0:u,g=Lt("number"!=typeof p?p:Ot(p,tt)),m="popper"===d?"reference":"popper",_=t.elements.reference,b=t.rects.popper,v=t.elements[f?m:d],y=function(t,e,i){var s="clippingParents"===e?function(t){var e=Wt(_t(t)),i=["absolute","fixed"].indexOf(pt(t).position)>=0&&at(t)?vt(t):t;return rt(i)?e.filter((function(t){return rt(t)&&ut(t,i)&&"body"!==nt(t)})):[]}(t):[].concat(e),n=[].concat(s,[i]),o=n[0],r=n.reduce((function(e,i){var s=$t(t,i);return e.top=wt(s.top,e.top),e.right=Et(s.right,e.right),e.bottom=Et(s.bottom,e.bottom),e.left=wt(s.left,e.left),e}),$t(t,o));return r.width=r.right-r.left,r.height=r.bottom-r.top,r.x=r.left,r.y=r.top,r}(rt(v)?v:v.contextElement||mt(t.elements.popper),r,l),w=ht(_),E=zt({reference:w,element:b,strategy:"absolute",placement:n}),T=Ut(Object.assign({},b,E)),A="popper"===d?T:w,L={top:y.top-A.top+g.top,bottom:A.bottom-y.bottom+g.bottom,left:y.left-A.left+g.left,right:A.right-y.right+g.right},O=t.modifiersData.offset;if("popper"===d&&O){var k=O[n];Object.keys(L).forEach((function(t){var e=[Z,G].indexOf(t)>=0?1:-1,i=[Q,G].indexOf(t)>=0?"y":"x";L[t]+=k[i]*e}))}return L}function Yt(t,e){void 0===e&&(e={});var i=e,s=i.placement,n=i.boundary,o=i.rootBoundary,r=i.padding,a=i.flipVariations,l=i.allowedAutoPlacements,c=void 0===l?it:l,d=Ft(s),h=d?a?et:et.filter((function(t){return Ft(t)===d})):tt,f=h.filter((function(t){return c.indexOf(t)>=0}));0===f.length&&(f=h);var u=f.reduce((function(e,i){return e[i]=Kt(t,{placement:i,boundary:n,rootBoundary:o,padding:r})[dt(i)],e}),{});return Object.keys(u).sort((function(t,e){return u[t]-u[e]}))}var qt={name:"flip",enabled:!0,phase:"main",fn:function(t){var e=t.state,i=t.options,s=t.name;if(!e.modifiersData[s]._skip){for(var n=i.mainAxis,o=void 0===n||n,r=i.altAxis,a=void 0===r||r,l=i.fallbackPlacements,c=i.padding,d=i.boundary,h=i.rootBoundary,f=i.altBoundary,u=i.flipVariations,p=void 0===u||u,g=i.allowedAutoPlacements,m=e.options.placement,_=dt(m),b=l||(_!==m&&p?function(t){if("auto"===dt(t))return[];var e=Pt(t);return[Mt(t),e,Mt(e)]}(m):[Pt(m)]),v=[m].concat(b).reduce((function(t,i){return t.concat("auto"===dt(i)?Yt(e,{placement:i,boundary:d,rootBoundary:h,padding:c,flipVariations:p,allowedAutoPlacements:g}):i)}),[]),y=e.rects.reference,w=e.rects.popper,E=new Map,T=!0,A=v[0],L=0;L<v.length;L++){var O=v[L],k=dt(O),D="start"===Ft(O),x=[Q,G].indexOf(k)>=0,C=x?"width":"height",S=Kt(e,{placement:O,boundary:d,rootBoundary:h,altBoundary:f,padding:c}),N=x?D?Z:J:D?G:Q;y[C]>w[C]&&(N=Pt(N));var j=Pt(N),P=[];if(o&&P.push(S[k]<=0),a&&P.push(S[N]<=0,S[j]<=0),P.every((function(t){return t}))){A=O,T=!1;break}E.set(O,P)}if(T)for(var I=function(t){var e=v.find((function(e){var i=E.get(e);if(i)return i.slice(0,t).every((function(t){return t}))}));if(e)return A=e,"break"},M=p?3:1;M>0&&"break"!==I(M);M--);e.placement!==A&&(e.modifiersData[s]._skip=!0,e.placement=A,e.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function Vt(t,e,i){return void 0===i&&(i={x:0,y:0}),{top:t.top-e.height-i.y,right:t.right-e.width+i.x,bottom:t.bottom-e.height+i.y,left:t.left-e.width-i.x}}function Xt(t){return[Q,Z,G,J].some((function(e){return t[e]>=0}))}var Qt={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(t){var e=t.state,i=t.name,s=e.rects.reference,n=e.rects.popper,o=e.modifiersData.preventOverflow,r=Kt(e,{elementContext:"reference"}),a=Kt(e,{altBoundary:!0}),l=Vt(r,s),c=Vt(a,n,o),d=Xt(l),h=Xt(c);e.modifiersData[i]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:d,hasPopperEscaped:h},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":d,"data-popper-escaped":h})}},Gt={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(t){var e=t.state,i=t.options,s=t.name,n=i.offset,o=void 0===n?[0,0]:n,r=it.reduce((function(t,i){return t[i]=function(t,e,i){var s=dt(t),n=[J,Q].indexOf(s)>=0?-1:1,o="function"==typeof i?i(Object.assign({},e,{placement:t})):i,r=o[0],a=o[1];return r=r||0,a=(a||0)*n,[J,Z].indexOf(s)>=0?{x:a,y:r}:{x:r,y:a}}(i,e.rects,o),t}),{}),a=r[e.placement],l=a.x,c=a.y;null!=e.modifiersData.popperOffsets&&(e.modifiersData.popperOffsets.x+=l,e.modifiersData.popperOffsets.y+=c),e.modifiersData[s]=r}},Zt={name:"popperOffsets",enabled:!0,phase:"read",fn:function(t){var e=t.state,i=t.name;e.modifiersData[i]=zt({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})},data:{}},Jt={name:"preventOverflow",enabled:!0,phase:"main",fn:function(t){var e=t.state,i=t.options,s=t.name,n=i.mainAxis,o=void 0===n||n,r=i.altAxis,a=void 0!==r&&r,l=i.boundary,c=i.rootBoundary,d=i.altBoundary,h=i.padding,f=i.tether,u=void 0===f||f,p=i.tetherOffset,g=void 0===p?0:p,m=Kt(e,{boundary:l,rootBoundary:c,padding:h,altBoundary:d}),_=dt(e.placement),b=Ft(e.placement),v=!b,y=yt(_),w="x"===y?"y":"x",E=e.modifiersData.popperOffsets,T=e.rects.reference,A=e.rects.popper,L="function"==typeof g?g(Object.assign({},e.rects,{placement:e.placement})):g,O={x:0,y:0};if(E){if(o||a){var k="y"===y?Q:J,D="y"===y?G:Z,x="y"===y?"height":"width",C=E[y],S=E[y]+m[k],N=E[y]-m[D],j=u?-A[x]/2:0,P="start"===b?T[x]:A[x],I="start"===b?-A[x]:-T[x],M=e.elements.arrow,R=u&&M?ft(M):{width:0,height:0},B=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},H=B[k],W=B[D],U=At(0,T[x],R[x]),$=v?T[x]/2-j-U-H-L:P-U-H-L,F=v?-T[x]/2+j+U+W+L:I+U+W+L,z=e.elements.arrow&&vt(e.elements.arrow),K=z?"y"===y?z.clientTop||0:z.clientLeft||0:0,Y=e.modifiersData.offset?e.modifiersData.offset[e.placement][y]:0,q=E[y]+$-Y-K,V=E[y]+F-Y;if(o){var X=At(u?Et(S,q):S,C,u?wt(N,V):N);E[y]=X,O[y]=X-C}if(a){var tt="x"===y?Q:J,et="x"===y?G:Z,it=E[w],st=it+m[tt],nt=it-m[et],ot=At(u?Et(st,q):st,it,u?wt(nt,V):nt);E[w]=ot,O[w]=ot-it}}e.modifiersData[s]=O}},requiresIfExists:["offset"]};function te(t,e,i){void 0===i&&(i=!1);var s,n,o=mt(e),r=ht(t),a=at(e),l={scrollLeft:0,scrollTop:0},c={x:0,y:0};return(a||!a&&!i)&&(("body"!==nt(e)||Ht(o))&&(l=(s=e)!==ot(s)&&at(s)?{scrollLeft:(n=s).scrollLeft,scrollTop:n.scrollTop}:Rt(s)),at(e)?((c=ht(e)).x+=e.clientLeft,c.y+=e.clientTop):o&&(c.x=Bt(o))),{x:r.left+l.scrollLeft-c.x,y:r.top+l.scrollTop-c.y,width:r.width,height:r.height}}var ee={placement:"bottom",modifiers:[],strategy:"absolute"};function ie(){for(var t=arguments.length,e=new Array(t),i=0;i<t;i++)e[i]=arguments[i];return!e.some((function(t){return!(t&&"function"==typeof t.getBoundingClientRect)}))}function se(t){void 0===t&&(t={});var e=t,i=e.defaultModifiers,s=void 0===i?[]:i,n=e.defaultOptions,o=void 0===n?ee:n;return function(t,e,i){void 0===i&&(i=o);var n,r,a={placement:"bottom",orderedModifiers:[],options:Object.assign({},ee,o),modifiersData:{},elements:{reference:t,popper:e},attributes:{},styles:{}},l=[],c=!1,d={state:a,setOptions:function(i){h(),a.options=Object.assign({},o,a.options,i),a.scrollParents={reference:rt(t)?Wt(t):t.contextElement?Wt(t.contextElement):[],popper:Wt(e)};var n,r,c=function(t){var e=function(t){var e=new Map,i=new Set,s=[];return t.forEach((function(t){e.set(t.name,t)})),t.forEach((function(t){i.has(t.name)||function t(n){i.add(n.name),[].concat(n.requires||[],n.requiresIfExists||[]).forEach((function(s){if(!i.has(s)){var n=e.get(s);n&&t(n)}})),s.push(n)}(t)})),s}(t);return st.reduce((function(t,i){return t.concat(e.filter((function(t){return t.phase===i})))}),[])}((n=[].concat(s,a.options.modifiers),r=n.reduce((function(t,e){var i=t[e.name];return t[e.name]=i?Object.assign({},i,e,{options:Object.assign({},i.options,e.options),data:Object.assign({},i.data,e.data)}):e,t}),{}),Object.keys(r).map((function(t){return r[t]}))));return a.orderedModifiers=c.filter((function(t){return t.enabled})),a.orderedModifiers.forEach((function(t){var e=t.name,i=t.options,s=void 0===i?{}:i,n=t.effect;if("function"==typeof n){var o=n({state:a,name:e,instance:d,options:s});l.push(o||function(){})}})),d.update()},forceUpdate:function(){if(!c){var t=a.elements,e=t.reference,i=t.popper;if(ie(e,i)){a.rects={reference:te(e,vt(i),"fixed"===a.options.strategy),popper:ft(i)},a.reset=!1,a.placement=a.options.placement,a.orderedModifiers.forEach((function(t){return a.modifiersData[t.name]=Object.assign({},t.data)}));for(var s=0;s<a.orderedModifiers.length;s++)if(!0!==a.reset){var n=a.orderedModifiers[s],o=n.fn,r=n.options,l=void 0===r?{}:r,h=n.name;"function"==typeof o&&(a=o({state:a,options:l,name:h,instance:d})||a)}else a.reset=!1,s=-1}}},update:(n=function(){return new Promise((function(t){d.forceUpdate(),t(a)}))},function(){return r||(r=new Promise((function(t){Promise.resolve().then((function(){r=void 0,t(n())}))}))),r}),destroy:function(){h(),c=!0}};if(!ie(t,e))return d;function h(){l.forEach((function(t){return t()})),l=[]}return d.setOptions(i).then((function(t){!c&&i.onFirstUpdate&&i.onFirstUpdate(t)})),d}}var ne=se(),oe=se({defaultModifiers:[Nt,Zt,Ct,ct]}),re=se({defaultModifiers:[Nt,Zt,Ct,ct,Gt,qt,Jt,kt,Qt]}),ae=Object.freeze({__proto__:null,popperGenerator:se,detectOverflow:Kt,createPopperBase:ne,createPopper:re,createPopperLite:oe,top:Q,bottom:G,right:Z,left:J,auto:"auto",basePlacements:tt,start:"start",end:"end",clippingParents:"clippingParents",viewport:"viewport",popper:"popper",reference:"reference",variationPlacements:et,placements:it,beforeRead:"beforeRead",read:"read",afterRead:"afterRead",beforeMain:"beforeMain",main:"main",afterMain:"afterMain",beforeWrite:"beforeWrite",write:"write",afterWrite:"afterWrite",modifierPhases:st,applyStyles:ct,arrow:kt,computeStyles:Ct,eventListeners:Nt,flip:qt,hide:Qt,offset:Gt,popperOffsets:Zt,preventOverflow:Jt});const le=new RegExp("ArrowUp|ArrowDown|Escape"),ce=g()?"top-end":"top-start",de=g()?"top-start":"top-end",he=g()?"bottom-end":"bottom-start",fe=g()?"bottom-start":"bottom-end",ue=g()?"left-start":"right-start",pe=g()?"right-start":"left-start",ge={offset:[0,2],boundary:"clippingParents",reference:"toggle",display:"dynamic",popperConfig:null},me={offset:"(array|string|function)",boundary:"(string|element)",reference:"(string|element|object)",display:"string",popperConfig:"(null|object|function)"};class _e extends j{constructor(t,e){super(t),this._popper=null,this._config=this._getConfig(e),this._menu=this._getMenuElement(),this._inNavbar=this._detectNavbar(),this._addEventListeners()}static get Default(){return ge}static get DefaultType(){return me}static get DATA_KEY(){return"bs.dropdown"}toggle(){if(this._element.disabled||this._element.classList.contains("disabled"))return;const t=this._element.classList.contains("show");_e.clearMenus(),t||this.show()}show(){if(this._element.disabled||this._element.classList.contains("disabled")||this._menu.classList.contains("show"))return;const t=_e.getParentFromElement(this._element),e={relatedTarget:this._element};if(!N.trigger(this._element,"show.bs.dropdown",e).defaultPrevented){if(this._inNavbar)B.setDataAttribute(this._menu,"popper","none");else{if(void 0===ae)throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");let e=this._element;"parent"===this._config.reference?e=t:r(this._config.reference)?(e=this._config.reference,void 0!==this._config.reference.jquery&&(e=this._config.reference[0])):"object"==typeof this._config.reference&&(e=this._config.reference);const i=this._getPopperConfig(),s=i.modifiers.find(t=>"applyStyles"===t.name&&!1===t.enabled);this._popper=re(e,this._menu,i),s&&B.setDataAttribute(this._menu,"popper","static")}"ontouchstart"in document.documentElement&&!t.closest(".navbar-nav")&&[].concat(...document.body.children).forEach(t=>N.on(t,"mouseover",null,(function(){}))),this._element.focus(),this._element.setAttribute("aria-expanded",!0),this._menu.classList.toggle("show"),this._element.classList.toggle("show"),N.trigger(this._element,"shown.bs.dropdown",e)}}hide(){if(this._element.disabled||this._element.classList.contains("disabled")||!this._menu.classList.contains("show"))return;const t={relatedTarget:this._element};N.trigger(this._element,"hide.bs.dropdown",t).defaultPrevented||(this._popper&&this._popper.destroy(),this._menu.classList.toggle("show"),this._element.classList.toggle("show"),B.removeDataAttribute(this._menu,"popper"),N.trigger(this._element,"hidden.bs.dropdown",t))}dispose(){N.off(this._element,".bs.dropdown"),this._menu=null,this._popper&&(this._popper.destroy(),this._popper=null),super.dispose()}update(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.update()}_addEventListeners(){N.on(this._element,"click.bs.dropdown",t=>{t.preventDefault(),this.toggle()})}_getConfig(t){if(t={...this.constructor.Default,...B.getDataAttributes(this._element),...t},l("dropdown",t,this.constructor.DefaultType),"object"==typeof t.reference&&!r(t.reference)&&"function"!=typeof t.reference.getBoundingClientRect)throw new TypeError("dropdown".toUpperCase()+': Option "reference" provided type "object" without a required "getBoundingClientRect" method.');return t}_getMenuElement(){return H.next(this._element,".dropdown-menu")[0]}_getPlacement(){const t=this._element.parentNode;if(t.classList.contains("dropend"))return ue;if(t.classList.contains("dropstart"))return pe;const e="end"===getComputedStyle(this._menu).getPropertyValue("--bs-position").trim();return t.classList.contains("dropup")?e?de:ce:e?fe:he}_detectNavbar(){return null!==this._element.closest(".navbar")}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map(t=>Number.parseInt(t,10)):"function"==typeof t?e=>t(e,this._element):t}_getPopperConfig(){const t={placement:this._getPlacement(),modifiers:[{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"offset",options:{offset:this._getOffset()}}]};return"static"===this._config.display&&(t.modifiers=[{name:"applyStyles",enabled:!1}]),{...t,..."function"==typeof this._config.popperConfig?this._config.popperConfig(t):this._config.popperConfig}}static dropdownInterface(t,e){let i=b.get(t,"bs.dropdown");if(i||(i=new _e(t,"object"==typeof e?e:null)),"string"==typeof e){if(void 0===i[e])throw new TypeError(`No method named "${e}"`);i[e]()}}static jQueryInterface(t){return this.each((function(){_e.dropdownInterface(this,t)}))}static clearMenus(t){if(t){if(2===t.button||"keyup"===t.type&&"Tab"!==t.key)return;if(/input|select|textarea|form/i.test(t.target.tagName))return}const e=H.find('[data-bs-toggle="dropdown"]');for(let i=0,s=e.length;i<s;i++){const s=b.get(e[i],"bs.dropdown"),n={relatedTarget:e[i]};if(t&&"click"===t.type&&(n.clickEvent=t),!s)continue;const o=s._menu;if(e[i].classList.contains("show")){if(t){if([s._element].some(e=>t.composedPath().includes(e)))continue;if("keyup"===t.type&&"Tab"===t.key&&o.contains(t.target))continue}N.trigger(e[i],"hide.bs.dropdown",n).defaultPrevented||("ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach(t=>N.off(t,"mouseover",null,(function(){}))),e[i].setAttribute("aria-expanded","false"),s._popper&&s._popper.destroy(),o.classList.remove("show"),e[i].classList.remove("show"),B.removeDataAttribute(o,"popper"),N.trigger(e[i],"hidden.bs.dropdown",n))}}}static getParentFromElement(t){return s(t)||t.parentNode}static dataApiKeydownHandler(t){if(/input|textarea/i.test(t.target.tagName)?"Space"===t.key||"Escape"!==t.key&&("ArrowDown"!==t.key&&"ArrowUp"!==t.key||t.target.closest(".dropdown-menu")):!le.test(t.key))return;if(t.preventDefault(),t.stopPropagation(),this.disabled||this.classList.contains("disabled"))return;const e=_e.getParentFromElement(this),i=this.classList.contains("show");if("Escape"===t.key)return(this.matches('[data-bs-toggle="dropdown"]')?this:H.prev(this,'[data-bs-toggle="dropdown"]')[0]).focus(),void _e.clearMenus();if(!i&&("ArrowUp"===t.key||"ArrowDown"===t.key))return void(this.matches('[data-bs-toggle="dropdown"]')?this:H.prev(this,'[data-bs-toggle="dropdown"]')[0]).click();if(!i||"Space"===t.key)return void _e.clearMenus();const s=H.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",e).filter(c);if(!s.length)return;let n=s.indexOf(t.target);"ArrowUp"===t.key&&n>0&&n--,"ArrowDown"===t.key&&n<s.length-1&&n++,n=-1===n?0:n,s[n].focus()}}N.on(document,"keydown.bs.dropdown.data-api",'[data-bs-toggle="dropdown"]',_e.dataApiKeydownHandler),N.on(document,"keydown.bs.dropdown.data-api",".dropdown-menu",_e.dataApiKeydownHandler),N.on(document,"click.bs.dropdown.data-api",_e.clearMenus),N.on(document,"keyup.bs.dropdown.data-api",_e.clearMenus),N.on(document,"click.bs.dropdown.data-api",'[data-bs-toggle="dropdown"]',(function(t){t.preventDefault(),_e.dropdownInterface(this)})),m("dropdown",_e);const be={backdrop:!0,keyboard:!0,focus:!0},ve={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean"};class ye extends j{constructor(t,e){super(t),this._config=this._getConfig(e),this._dialog=H.findOne(".modal-dialog",this._element),this._backdrop=null,this._isShown=!1,this._isBodyOverflowing=!1,this._ignoreBackdropClick=!1,this._isTransitioning=!1,this._scrollbarWidth=0}static get Default(){return be}static get DATA_KEY(){return"bs.modal"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){if(this._isShown||this._isTransitioning)return;this._isAnimated()&&(this._isTransitioning=!0);const e=N.trigger(this._element,"show.bs.modal",{relatedTarget:t});this._isShown||e.defaultPrevented||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),this._adjustDialog(),this._setEscapeEvent(),this._setResizeEvent(),N.on(this._element,"click.dismiss.bs.modal",'[data-bs-dismiss="modal"]',t=>this.hide(t)),N.on(this._dialog,"mousedown.dismiss.bs.modal",()=>{N.one(this._element,"mouseup.dismiss.bs.modal",t=>{t.target===this._element&&(this._ignoreBackdropClick=!0)})}),this._showBackdrop(()=>this._showElement(t)))}hide(t){if(t&&t.preventDefault(),!this._isShown||this._isTransitioning)return;if(N.trigger(this._element,"hide.bs.modal").defaultPrevented)return;this._isShown=!1;const e=this._isAnimated();if(e&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),N.off(document,"focusin.bs.modal"),this._element.classList.remove("show"),N.off(this._element,"click.dismiss.bs.modal"),N.off(this._dialog,"mousedown.dismiss.bs.modal"),e){const t=n(this._element);N.one(this._element,"transitionend",t=>this._hideModal(t)),a(this._element,t)}else this._hideModal()}dispose(){[window,this._element,this._dialog].forEach(t=>N.off(t,".bs.modal")),super.dispose(),N.off(document,"focusin.bs.modal"),this._config=null,this._dialog=null,this._backdrop=null,this._isShown=null,this._isBodyOverflowing=null,this._ignoreBackdropClick=null,this._isTransitioning=null,this._scrollbarWidth=null}handleUpdate(){this._adjustDialog()}_getConfig(t){return t={...be,...t},l("modal",t,ve),t}_showElement(t){const e=this._isAnimated(),i=H.findOne(".modal-body",this._dialog);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0,i&&(i.scrollTop=0),e&&u(this._element),this._element.classList.add("show"),this._config.focus&&this._enforceFocus();const s=()=>{this._config.focus&&this._element.focus(),this._isTransitioning=!1,N.trigger(this._element,"shown.bs.modal",{relatedTarget:t})};if(e){const t=n(this._dialog);N.one(this._dialog,"transitionend",s),a(this._dialog,t)}else s()}_enforceFocus(){N.off(document,"focusin.bs.modal"),N.on(document,"focusin.bs.modal",t=>{document===t.target||this._element===t.target||this._element.contains(t.target)||this._element.focus()})}_setEscapeEvent(){this._isShown?N.on(this._element,"keydown.dismiss.bs.modal",t=>{this._config.keyboard&&"Escape"===t.key?(t.preventDefault(),this.hide()):this._config.keyboard||"Escape"!==t.key||this._triggerBackdropTransition()}):N.off(this._element,"keydown.dismiss.bs.modal")}_setResizeEvent(){this._isShown?N.on(window,"resize.bs.modal",()=>this._adjustDialog()):N.off(window,"resize.bs.modal")}_hideModal(){this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._showBackdrop(()=>{document.body.classList.remove("modal-open"),this._resetAdjustments(),this._resetScrollbar(),N.trigger(this._element,"hidden.bs.modal")})}_removeBackdrop(){this._backdrop.parentNode.removeChild(this._backdrop),this._backdrop=null}_showBackdrop(t){const e=this._isAnimated();if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className="modal-backdrop",e&&this._backdrop.classList.add("fade"),document.body.appendChild(this._backdrop),N.on(this._element,"click.dismiss.bs.modal",t=>{this._ignoreBackdropClick?this._ignoreBackdropClick=!1:t.target===t.currentTarget&&("static"===this._config.backdrop?this._triggerBackdropTransition():this.hide())}),e&&u(this._backdrop),this._backdrop.classList.add("show"),!e)return void t();const i=n(this._backdrop);N.one(this._backdrop,"transitionend",t),a(this._backdrop,i)}else if(!this._isShown&&this._backdrop){this._backdrop.classList.remove("show");const i=()=>{this._removeBackdrop(),t()};if(e){const t=n(this._backdrop);N.one(this._backdrop,"transitionend",i),a(this._backdrop,t)}else i()}else t()}_isAnimated(){return this._element.classList.contains("fade")}_triggerBackdropTransition(){if(N.trigger(this._element,"hidePrevented.bs.modal").defaultPrevented)return;const t=this._element.scrollHeight>document.documentElement.clientHeight;t||(this._element.style.overflowY="hidden"),this._element.classList.add("modal-static");const e=n(this._dialog);N.off(this._element,"transitionend"),N.one(this._element,"transitionend",()=>{this._element.classList.remove("modal-static"),t||(N.one(this._element,"transitionend",()=>{this._element.style.overflowY=""}),a(this._element,e))}),a(this._element,e),this._element.focus()}_adjustDialog(){const t=this._element.scrollHeight>document.documentElement.clientHeight;(!this._isBodyOverflowing&&t&&!g()||this._isBodyOverflowing&&!t&&g())&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),(this._isBodyOverflowing&&!t&&!g()||!this._isBodyOverflowing&&t&&g())&&(this._element.style.paddingRight=this._scrollbarWidth+"px")}_resetAdjustments(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}_checkScrollbar(){const t=document.body.getBoundingClientRect();this._isBodyOverflowing=Math.round(t.left+t.right)<window.innerWidth,this._scrollbarWidth=this._getScrollbarWidth()}_setScrollbar(){this._isBodyOverflowing&&(this._setElementAttributes(".fixed-top, .fixed-bottom, .is-fixed, .sticky-top","paddingRight",t=>t+this._scrollbarWidth),this._setElementAttributes(".sticky-top","marginRight",t=>t-this._scrollbarWidth),this._setElementAttributes("body","paddingRight",t=>t+this._scrollbarWidth)),document.body.classList.add("modal-open")}_setElementAttributes(t,e,i){H.find(t).forEach(t=>{if(t!==document.body&&window.innerWidth>t.clientWidth+this._scrollbarWidth)return;const s=t.style[e],n=window.getComputedStyle(t)[e];B.setDataAttribute(t,e,s),t.style[e]=i(Number.parseFloat(n))+"px"})}_resetScrollbar(){this._resetElementAttributes(".fixed-top, .fixed-bottom, .is-fixed, .sticky-top","paddingRight"),this._resetElementAttributes(".sticky-top","marginRight"),this._resetElementAttributes("body","paddingRight")}_resetElementAttributes(t,e){H.find(t).forEach(t=>{const i=B.getDataAttribute(t,e);void 0===i&&t===document.body?t.style[e]="":(B.removeDataAttribute(t,e),t.style[e]=i)})}_getScrollbarWidth(){const t=document.createElement("div");t.className="modal-scrollbar-measure",document.body.appendChild(t);const e=t.getBoundingClientRect().width-t.clientWidth;return document.body.removeChild(t),e}static jQueryInterface(t,e){return this.each((function(){let i=b.get(this,"bs.modal");const s={...be,...B.getDataAttributes(this),..."object"==typeof t&&t?t:{}};if(i||(i=new ye(this,s)),"string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t](e)}}))}}N.on(document,"click.bs.modal.data-api",'[data-bs-toggle="modal"]',(function(t){const e=s(this);"A"!==this.tagName&&"AREA"!==this.tagName||t.preventDefault(),N.one(e,"show.bs.modal",t=>{t.defaultPrevented||N.one(e,"hidden.bs.modal",()=>{c(this)&&this.focus()})});let i=b.get(e,"bs.modal");if(!i){const t={...B.getDataAttributes(e),...B.getDataAttributes(this)};i=new ye(e,t)}i.toggle(this)})),m("modal",ye);const we=()=>{const t=document.documentElement.clientWidth;return Math.abs(window.innerWidth-t)},Ee=(t,e,i)=>{const s=we();H.find(t).forEach(t=>{if(t!==document.body&&window.innerWidth>t.clientWidth+s)return;const n=t.style[e],o=window.getComputedStyle(t)[e];B.setDataAttribute(t,e,n),t.style[e]=i(Number.parseFloat(o))+"px"})},Te=(t,e)=>{H.find(t).forEach(t=>{const i=B.getDataAttribute(t,e);void 0===i&&t===document.body?t.style.removeProperty(e):(B.removeDataAttribute(t,e),t.style[e]=i)})},Ae={backdrop:!0,keyboard:!0,scroll:!1},Le={backdrop:"boolean",keyboard:"boolean",scroll:"boolean"};class Oe extends j{constructor(t,e){super(t),this._config=this._getConfig(e),this._isShown=!1,this._addEventListeners()}static get Default(){return Ae}static get DATA_KEY(){return"bs.offcanvas"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||N.trigger(this._element,"show.bs.offcanvas",{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._element.style.visibility="visible",this._config.backdrop&&document.body.classList.add("offcanvas-backdrop"),this._config.scroll||((t=we())=>{document.body.style.overflow="hidden",Ee(".fixed-top, .fixed-bottom, .is-fixed","paddingRight",e=>e+t),Ee(".sticky-top","marginRight",e=>e-t),Ee("body","paddingRight",e=>e+t)})(),this._element.classList.add("offcanvas-toggling"),this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.classList.add("show"),setTimeout(()=>{this._element.classList.remove("offcanvas-toggling"),N.trigger(this._element,"shown.bs.offcanvas",{relatedTarget:t}),this._enforceFocusOnElement(this._element)},n(this._element)))}hide(){this._isShown&&(N.trigger(this._element,"hide.bs.offcanvas").defaultPrevented||(this._element.classList.add("offcanvas-toggling"),N.off(document,"focusin.bs.offcanvas"),this._element.blur(),this._isShown=!1,this._element.classList.remove("show"),setTimeout(()=>{this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._element.style.visibility="hidden",this._config.backdrop&&document.body.classList.remove("offcanvas-backdrop"),this._config.scroll||(document.body.style.overflow="auto",Te(".fixed-top, .fixed-bottom, .is-fixed","paddingRight"),Te(".sticky-top","marginRight"),Te("body","paddingRight")),N.trigger(this._element,"hidden.bs.offcanvas"),this._element.classList.remove("offcanvas-toggling")},n(this._element))))}_getConfig(t){return t={...Ae,...B.getDataAttributes(this._element),..."object"==typeof t?t:{}},l("offcanvas",t,Le),t}_enforceFocusOnElement(t){N.off(document,"focusin.bs.offcanvas"),N.on(document,"focusin.bs.offcanvas",e=>{document===e.target||t===e.target||t.contains(e.target)||t.focus()}),t.focus()}_addEventListeners(){N.on(this._element,"click.dismiss.bs.offcanvas",'[data-bs-dismiss="offcanvas"]',()=>this.hide()),N.on(document,"keydown",t=>{this._config.keyboard&&"Escape"===t.key&&this.hide()}),N.on(document,"click.bs.offcanvas.data-api",t=>{const e=H.findOne(i(t.target));this._element.contains(t.target)||e===this._element||this.hide()})}static jQueryInterface(t){return this.each((function(){const e=b.get(this,"bs.offcanvas")||new Oe(this,"object"==typeof t?t:{});if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}N.on(document,"click.bs.offcanvas.data-api",'[data-bs-toggle="offcanvas"]',(function(t){const e=s(this);if(["A","AREA"].includes(this.tagName)&&t.preventDefault(),d(this))return;N.one(e,"hidden.bs.offcanvas",()=>{c(this)&&this.focus()});const i=H.findOne(".offcanvas.show, .offcanvas-toggling");i&&i!==e||(b.get(e,"bs.offcanvas")||new Oe(e)).toggle(this)})),N.on(window,"load.bs.offcanvas.data-api",()=>{H.find(".offcanvas.show").forEach(t=>(b.get(t,"bs.offcanvas")||new Oe(t)).show())}),m("offcanvas",Oe);const ke=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),De=/^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/i,xe=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i,Ce=(t,e)=>{const i=t.nodeName.toLowerCase();if(e.includes(i))return!ke.has(i)||Boolean(De.test(t.nodeValue)||xe.test(t.nodeValue));const s=e.filter(t=>t instanceof RegExp);for(let t=0,e=s.length;t<e;t++)if(s[t].test(i))return!0;return!1};function Se(t,e,i){if(!t.length)return t;if(i&&"function"==typeof i)return i(t);const s=(new window.DOMParser).parseFromString(t,"text/html"),n=Object.keys(e),o=[].concat(...s.body.querySelectorAll("*"));for(let t=0,i=o.length;t<i;t++){const i=o[t],s=i.nodeName.toLowerCase();if(!n.includes(s)){i.parentNode.removeChild(i);continue}const r=[].concat(...i.attributes),a=[].concat(e["*"]||[],e[s]||[]);r.forEach(t=>{Ce(t,a)||i.removeAttribute(t.nodeName)})}return s.body.innerHTML}const Ne=new RegExp("(^|\\s)bs-tooltip\\S+","g"),je=new Set(["sanitize","allowList","sanitizeFn"]),Pe={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(array|string|function)",container:"(string|element|boolean)",fallbackPlacements:"array",boundary:"(string|element)",customClass:"(string|function)",sanitize:"boolean",sanitizeFn:"(null|function)",allowList:"object",popperConfig:"(null|object|function)"},Ie={AUTO:"auto",TOP:"top",RIGHT:g()?"left":"right",BOTTOM:"bottom",LEFT:g()?"right":"left"},Me={animation:!0,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:[0,0],container:!1,fallbackPlacements:["top","right","bottom","left"],boundary:"clippingParents",customClass:"",sanitize:!0,sanitizeFn:null,allowList:{"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},popperConfig:null},Re={HIDE:"hide.bs.tooltip",HIDDEN:"hidden.bs.tooltip",SHOW:"show.bs.tooltip",SHOWN:"shown.bs.tooltip",INSERTED:"inserted.bs.tooltip",CLICK:"click.bs.tooltip",FOCUSIN:"focusin.bs.tooltip",FOCUSOUT:"focusout.bs.tooltip",MOUSEENTER:"mouseenter.bs.tooltip",MOUSELEAVE:"mouseleave.bs.tooltip"};class Be extends j{constructor(t,e){if(void 0===ae)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(t),this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.config=this._getConfig(e),this.tip=null,this._setListeners()}static get Default(){return Me}static get NAME(){return"tooltip"}static get DATA_KEY(){return"bs.tooltip"}static get Event(){return Re}static get EVENT_KEY(){return".bs.tooltip"}static get DefaultType(){return Pe}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(t){if(this._isEnabled)if(t){const e=this._initializeOnDelegatedTarget(t);e._activeTrigger.click=!e._activeTrigger.click,e._isWithActiveTrigger()?e._enter(null,e):e._leave(null,e)}else{if(this.getTipElement().classList.contains("show"))return void this._leave(null,this);this._enter(null,this)}}dispose(){clearTimeout(this._timeout),N.off(this._element,this.constructor.EVENT_KEY),N.off(this._element.closest(".modal"),"hide.bs.modal",this._hideModalHandler),this.tip&&this.tip.parentNode&&this.tip.parentNode.removeChild(this.tip),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,this._popper&&this._popper.destroy(),this._popper=null,this.config=null,this.tip=null,super.dispose()}show(){if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(!this.isWithContent()||!this._isEnabled)return;const e=N.trigger(this._element,this.constructor.Event.SHOW),i=h(this._element),s=null===i?this._element.ownerDocument.documentElement.contains(this._element):i.contains(this._element);if(e.defaultPrevented||!s)return;const o=this.getTipElement(),r=t(this.constructor.NAME);o.setAttribute("id",r),this._element.setAttribute("aria-describedby",r),this.setContent(),this.config.animation&&o.classList.add("fade");const l="function"==typeof this.config.placement?this.config.placement.call(this,o,this._element):this.config.placement,c=this._getAttachment(l);this._addAttachmentClass(c);const d=this._getContainer();b.set(o,this.constructor.DATA_KEY,this),this._element.ownerDocument.documentElement.contains(this.tip)||(d.appendChild(o),N.trigger(this._element,this.constructor.Event.INSERTED)),this._popper?this._popper.update():this._popper=re(this._element,o,this._getPopperConfig(c)),o.classList.add("show");const f="function"==typeof this.config.customClass?this.config.customClass():this.config.customClass;f&&o.classList.add(...f.split(" ")),"ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach(t=>{N.on(t,"mouseover",(function(){}))});const u=()=>{const t=this._hoverState;this._hoverState=null,N.trigger(this._element,this.constructor.Event.SHOWN),"out"===t&&this._leave(null,this)};if(this.tip.classList.contains("fade")){const t=n(this.tip);N.one(this.tip,"transitionend",u),a(this.tip,t)}else u()}hide(){if(!this._popper)return;const t=this.getTipElement(),e=()=>{this._isWithActiveTrigger()||("show"!==this._hoverState&&t.parentNode&&t.parentNode.removeChild(t),this._cleanTipClass(),this._element.removeAttribute("aria-describedby"),N.trigger(this._element,this.constructor.Event.HIDDEN),this._popper&&(this._popper.destroy(),this._popper=null))};if(!N.trigger(this._element,this.constructor.Event.HIDE).defaultPrevented){if(t.classList.remove("show"),"ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach(t=>N.off(t,"mouseover",f)),this._activeTrigger.click=!1,this._activeTrigger.focus=!1,this._activeTrigger.hover=!1,this.tip.classList.contains("fade")){const i=n(t);N.one(t,"transitionend",e),a(t,i)}else e();this._hoverState=""}}update(){null!==this._popper&&this._popper.update()}isWithContent(){return Boolean(this.getTitle())}getTipElement(){if(this.tip)return this.tip;const t=document.createElement("div");return t.innerHTML=this.config.template,this.tip=t.children[0],this.tip}setContent(){const t=this.getTipElement();this.setElementContent(H.findOne(".tooltip-inner",t),this.getTitle()),t.classList.remove("fade","show")}setElementContent(t,e){if(null!==t)return"object"==typeof e&&r(e)?(e.jquery&&(e=e[0]),void(this.config.html?e.parentNode!==t&&(t.innerHTML="",t.appendChild(e)):t.textContent=e.textContent)):void(this.config.html?(this.config.sanitize&&(e=Se(e,this.config.allowList,this.config.sanitizeFn)),t.innerHTML=e):t.textContent=e)}getTitle(){let t=this._element.getAttribute("data-bs-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this._element):this.config.title),t}updateAttachment(t){return"right"===t?"end":"left"===t?"start":t}_initializeOnDelegatedTarget(t,e){const i=this.constructor.DATA_KEY;return(e=e||b.get(t.delegateTarget,i))||(e=new this.constructor(t.delegateTarget,this._getDelegateConfig()),b.set(t.delegateTarget,i,e)),e}_getOffset(){const{offset:t}=this.config;return"string"==typeof t?t.split(",").map(t=>Number.parseInt(t,10)):"function"==typeof t?e=>t(e,this._element):t}_getPopperConfig(t){const e={placement:t,modifiers:[{name:"flip",options:{altBoundary:!0,fallbackPlacements:this.config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this.config.boundary}},{name:"arrow",options:{element:`.${this.constructor.NAME}-arrow`}},{name:"onChange",enabled:!0,phase:"afterWrite",fn:t=>this._handlePopperPlacementChange(t)}],onFirstUpdate:t=>{t.options.placement!==t.placement&&this._handlePopperPlacementChange(t)}};return{...e,..."function"==typeof this.config.popperConfig?this.config.popperConfig(e):this.config.popperConfig}}_addAttachmentClass(t){this.getTipElement().classList.add("bs-tooltip-"+this.updateAttachment(t))}_getContainer(){return!1===this.config.container?document.body:r(this.config.container)?this.config.container:H.findOne(this.config.container)}_getAttachment(t){return Ie[t.toUpperCase()]}_setListeners(){this.config.trigger.split(" ").forEach(t=>{if("click"===t)N.on(this._element,this.constructor.Event.CLICK,this.config.selector,t=>this.toggle(t));else if("manual"!==t){const e="hover"===t?this.constructor.Event.MOUSEENTER:this.constructor.Event.FOCUSIN,i="hover"===t?this.constructor.Event.MOUSELEAVE:this.constructor.Event.FOCUSOUT;N.on(this._element,e,this.config.selector,t=>this._enter(t)),N.on(this._element,i,this.config.selector,t=>this._leave(t))}}),this._hideModalHandler=()=>{this._element&&this.hide()},N.on(this._element.closest(".modal"),"hide.bs.modal",this._hideModalHandler),this.config.selector?this.config={...this.config,trigger:"manual",selector:""}:this._fixTitle()}_fixTitle(){const t=this._element.getAttribute("title"),e=typeof this._element.getAttribute("data-bs-original-title");(t||"string"!==e)&&(this._element.setAttribute("data-bs-original-title",t||""),!t||this._element.getAttribute("aria-label")||this._element.textContent||this._element.setAttribute("aria-label",t),this._element.setAttribute("title",""))}_enter(t,e){e=this._initializeOnDelegatedTarget(t,e),t&&(e._activeTrigger["focusin"===t.type?"focus":"hover"]=!0),e.getTipElement().classList.contains("show")||"show"===e._hoverState?e._hoverState="show":(clearTimeout(e._timeout),e._hoverState="show",e.config.delay&&e.config.delay.show?e._timeout=setTimeout(()=>{"show"===e._hoverState&&e.show()},e.config.delay.show):e.show())}_leave(t,e){e=this._initializeOnDelegatedTarget(t,e),t&&(e._activeTrigger["focusout"===t.type?"focus":"hover"]=e._element.contains(t.relatedTarget)),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState="out",e.config.delay&&e.config.delay.hide?e._timeout=setTimeout(()=>{"out"===e._hoverState&&e.hide()},e.config.delay.hide):e.hide())}_isWithActiveTrigger(){for(const t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1}_getConfig(t){const e=B.getDataAttributes(this._element);return Object.keys(e).forEach(t=>{je.has(t)&&delete e[t]}),t&&"object"==typeof t.container&&t.container.jquery&&(t.container=t.container[0]),"number"==typeof(t={...this.constructor.Default,...e,..."object"==typeof t&&t?t:{}}).delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),l("tooltip",t,this.constructor.DefaultType),t.sanitize&&(t.template=Se(t.template,t.allowList,t.sanitizeFn)),t}_getDelegateConfig(){const t={};if(this.config)for(const e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t}_cleanTipClass(){const t=this.getTipElement(),e=t.getAttribute("class").match(Ne);null!==e&&e.length>0&&e.map(t=>t.trim()).forEach(e=>t.classList.remove(e))}_handlePopperPlacementChange(t){const{state:e}=t;e&&(this.tip=e.elements.popper,this._cleanTipClass(),this._addAttachmentClass(this._getAttachment(e.placement)))}static jQueryInterface(t){return this.each((function(){let e=b.get(this,"bs.tooltip");const i="object"==typeof t&&t;if((e||!/dispose|hide/.test(t))&&(e||(e=new Be(this,i)),"string"==typeof t)){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}m("tooltip",Be);const He=new RegExp("(^|\\s)bs-popover\\S+","g"),We={...Be.Default,placement:"right",offset:[0,8],trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="popover-arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'},Ue={...Be.DefaultType,content:"(string|element|function)"},$e={HIDE:"hide.bs.popover",HIDDEN:"hidden.bs.popover",SHOW:"show.bs.popover",SHOWN:"shown.bs.popover",INSERTED:"inserted.bs.popover",CLICK:"click.bs.popover",FOCUSIN:"focusin.bs.popover",FOCUSOUT:"focusout.bs.popover",MOUSEENTER:"mouseenter.bs.popover",MOUSELEAVE:"mouseleave.bs.popover"};class Fe extends Be{static get Default(){return We}static get NAME(){return"popover"}static get DATA_KEY(){return"bs.popover"}static get Event(){return $e}static get EVENT_KEY(){return".bs.popover"}static get DefaultType(){return Ue}isWithContent(){return this.getTitle()||this._getContent()}setContent(){const t=this.getTipElement();this.setElementContent(H.findOne(".popover-header",t),this.getTitle());let e=this._getContent();"function"==typeof e&&(e=e.call(this._element)),this.setElementContent(H.findOne(".popover-body",t),e),t.classList.remove("fade","show")}_addAttachmentClass(t){this.getTipElement().classList.add("bs-popover-"+this.updateAttachment(t))}_getContent(){return this._element.getAttribute("data-bs-content")||this.config.content}_cleanTipClass(){const t=this.getTipElement(),e=t.getAttribute("class").match(He);null!==e&&e.length>0&&e.map(t=>t.trim()).forEach(e=>t.classList.remove(e))}static jQueryInterface(t){return this.each((function(){let e=b.get(this,"bs.popover");const i="object"==typeof t?t:null;if((e||!/dispose|hide/.test(t))&&(e||(e=new Fe(this,i),b.set(this,"bs.popover",e)),"string"==typeof t)){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}m("popover",Fe);const ze={offset:10,method:"auto",target:""},Ke={offset:"number",method:"string",target:"(string|element)"};class Ye extends j{constructor(t,e){super(t),this._scrollElement="BODY"===this._element.tagName?window:this._element,this._config=this._getConfig(e),this._selector=`${this._config.target} .nav-link, ${this._config.target} .list-group-item, ${this._config.target} .dropdown-item`,this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,N.on(this._scrollElement,"scroll.bs.scrollspy",()=>this._process()),this.refresh(),this._process()}static get Default(){return ze}static get DATA_KEY(){return"bs.scrollspy"}refresh(){const t=this._scrollElement===this._scrollElement.window?"offset":"position",e="auto"===this._config.method?t:this._config.method,s="position"===e?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),H.find(this._selector).map(t=>{const n=i(t),o=n?H.findOne(n):null;if(o){const t=o.getBoundingClientRect();if(t.width||t.height)return[B[e](o).top+s,n]}return null}).filter(t=>t).sort((t,e)=>t[0]-e[0]).forEach(t=>{this._offsets.push(t[0]),this._targets.push(t[1])})}dispose(){super.dispose(),N.off(this._scrollElement,".bs.scrollspy"),this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null}_getConfig(e){if("string"!=typeof(e={...ze,..."object"==typeof e&&e?e:{}}).target&&r(e.target)){let{id:i}=e.target;i||(i=t("scrollspy"),e.target.id=i),e.target="#"+i}return l("scrollspy",e,Ke),e}_getScrollTop(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop}_getScrollHeight(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)}_getOffsetHeight(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height}_process(){const t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),i=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),t>=i){const t=this._targets[this._targets.length-1];this._activeTarget!==t&&this._activate(t)}else{if(this._activeTarget&&t<this._offsets[0]&&this._offsets[0]>0)return this._activeTarget=null,void this._clear();for(let e=this._offsets.length;e--;)this._activeTarget!==this._targets[e]&&t>=this._offsets[e]&&(void 0===this._offsets[e+1]||t<this._offsets[e+1])&&this._activate(this._targets[e])}}_activate(t){this._activeTarget=t,this._clear();const e=this._selector.split(",").map(e=>`${e}[data-bs-target="${t}"],${e}[href="${t}"]`),i=H.findOne(e.join(","));i.classList.contains("dropdown-item")?(H.findOne(".dropdown-toggle",i.closest(".dropdown")).classList.add("active"),i.classList.add("active")):(i.classList.add("active"),H.parents(i,".nav, .list-group").forEach(t=>{H.prev(t,".nav-link, .list-group-item").forEach(t=>t.classList.add("active")),H.prev(t,".nav-item").forEach(t=>{H.children(t,".nav-link").forEach(t=>t.classList.add("active"))})})),N.trigger(this._scrollElement,"activate.bs.scrollspy",{relatedTarget:t})}_clear(){H.find(this._selector).filter(t=>t.classList.contains("active")).forEach(t=>t.classList.remove("active"))}static jQueryInterface(t){return this.each((function(){let e=b.get(this,"bs.scrollspy");if(e||(e=new Ye(this,"object"==typeof t&&t)),"string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}N.on(window,"load.bs.scrollspy.data-api",()=>{H.find('[data-bs-spy="scroll"]').forEach(t=>new Ye(t,B.getDataAttributes(t)))}),m("scrollspy",Ye);class qe extends j{static get DATA_KEY(){return"bs.tab"}show(){if(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&this._element.classList.contains("active")||d(this._element))return;let t;const e=s(this._element),i=this._element.closest(".nav, .list-group");if(i){const e="UL"===i.nodeName||"OL"===i.nodeName?":scope > li > .active":".active";t=H.find(e,i),t=t[t.length-1]}const n=t?N.trigger(t,"hide.bs.tab",{relatedTarget:this._element}):null;if(N.trigger(this._element,"show.bs.tab",{relatedTarget:t}).defaultPrevented||null!==n&&n.defaultPrevented)return;this._activate(this._element,i);const o=()=>{N.trigger(t,"hidden.bs.tab",{relatedTarget:this._element}),N.trigger(this._element,"shown.bs.tab",{relatedTarget:t})};e?this._activate(e,e.parentNode,o):o()}_activate(t,e,i){const s=(!e||"UL"!==e.nodeName&&"OL"!==e.nodeName?H.children(e,".active"):H.find(":scope > li > .active",e))[0],o=i&&s&&s.classList.contains("fade"),r=()=>this._transitionComplete(t,s,i);if(s&&o){const t=n(s);s.classList.remove("show"),N.one(s,"transitionend",r),a(s,t)}else r()}_transitionComplete(t,e,i){if(e){e.classList.remove("active");const t=H.findOne(":scope > .dropdown-menu .active",e.parentNode);t&&t.classList.remove("active"),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!1)}t.classList.add("active"),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),u(t),t.classList.contains("fade")&&t.classList.add("show"),t.parentNode&&t.parentNode.classList.contains("dropdown-menu")&&(t.closest(".dropdown")&&H.find(".dropdown-toggle").forEach(t=>t.classList.add("active")),t.setAttribute("aria-expanded",!0)),i&&i()}static jQueryInterface(t){return this.each((function(){const e=b.get(this,"bs.tab")||new qe(this);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}N.on(document,"click.bs.tab.data-api",'[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',(function(t){t.preventDefault(),(b.get(this,"bs.tab")||new qe(this)).show()})),m("tab",qe);const Ve={animation:"boolean",autohide:"boolean",delay:"number"},Xe={animation:!0,autohide:!0,delay:5e3};class Qe extends j{constructor(t,e){super(t),this._config=this._getConfig(e),this._timeout=null,this._setListeners()}static get DefaultType(){return Ve}static get Default(){return Xe}static get DATA_KEY(){return"bs.toast"}show(){if(N.trigger(this._element,"show.bs.toast").defaultPrevented)return;this._clearTimeout(),this._config.animation&&this._element.classList.add("fade");const t=()=>{this._element.classList.remove("showing"),this._element.classList.add("show"),N.trigger(this._element,"shown.bs.toast"),this._config.autohide&&(this._timeout=setTimeout(()=>{this.hide()},this._config.delay))};if(this._element.classList.remove("hide"),u(this._element),this._element.classList.add("showing"),this._config.animation){const e=n(this._element);N.one(this._element,"transitionend",t),a(this._element,e)}else t()}hide(){if(!this._element.classList.contains("show"))return;if(N.trigger(this._element,"hide.bs.toast").defaultPrevented)return;const t=()=>{this._element.classList.add("hide"),N.trigger(this._element,"hidden.bs.toast")};if(this._element.classList.remove("show"),this._config.animation){const e=n(this._element);N.one(this._element,"transitionend",t),a(this._element,e)}else t()}dispose(){this._clearTimeout(),this._element.classList.contains("show")&&this._element.classList.remove("show"),N.off(this._element,"click.dismiss.bs.toast"),super.dispose(),this._config=null}_getConfig(t){return t={...Xe,...B.getDataAttributes(this._element),..."object"==typeof t&&t?t:{}},l("toast",t,this.constructor.DefaultType),t}_setListeners(){N.on(this._element,"click.dismiss.bs.toast",'[data-bs-dismiss="toast"]',()=>this.hide())}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static jQueryInterface(t){return this.each((function(){let e=b.get(this,"bs.toast");if(e||(e=new Qe(this,"object"==typeof t&&t)),"string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}return m("toast",Qe),{Alert:P,Button:I,Carousel:Y,Collapse:X,Dropdown:_e,Modal:ye,Offcanvas:Oe,Popover:Fe,ScrollSpy:Ye,Tab:qe,Toast:Qe,Tooltip:Be}})); //# sourceMappingURL=bootstrap.bundle.min.js.map
\ No newline at end of file diff --git a/dist/js/bootstrap.bundle.min.js.map b/dist/js/bootstrap.bundle.min.js.map index 66a8e054a..6e1031c29 100644 --- a/dist/js/bootstrap.bundle.min.js.map +++ b/dist/js/bootstrap.bundle.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["../../js/src/util/index.js","../../js/src/dom/data.js","../../js/src/dom/event-handler.js","../../js/src/base-component.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/dom/manipulator.js","../../js/src/dom/selector-engine.js","../../js/src/carousel.js","../../js/src/collapse.js","../../node_modules/popper.js/dist/esm/popper.js","../../js/src/dropdown.js","../../js/src/modal.js","../../js/src/util/sanitizer.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/toast.js","../../js/index.umd.js"],"names":["storeData","id","getUID","prefix","Math","floor","random","document","getElementById","getSelector","element","selector","getAttribute","hrefAttr","trim","getSelectorFromElement","querySelector","getElementFromSelector","getTransitionDurationFromElement","_window$getComputedSt","window","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","Number","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","dispatchEvent","Event","isElement","obj","nodeType","emulateTransitionEnd","duration","called","emulatedDuration","addEventListener","listener","removeEventListener","setTimeout","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","toString","call","match","toLowerCase","RegExp","test","Error","toUpperCase","isVisible","style","parentNode","elementStyle","parentNodeStyle","display","visibility","noop","reflow","offsetHeight","getjQuery","jQuery","body","hasAttribute","onDOMContentLoaded","callback","readyState","isRTL","documentElement","dir","mapData","set","key","data","bsKey","get","keyProperties","delete","Data","instance","namespaceRegex","stripNameRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","nativeEvents","Set","getUidEvent","uid","getEvent","findHandler","events","handler","delegationSelector","uidEventList","i","len","length","event","originalHandler","normalizeParams","originalTypeEvent","delegationFn","delegation","typeEvent","replace","custom","has","addHandler","oneOff","_normalizeParams","handlers","previousFn","fn","domElements","querySelectorAll","target","this","delegateTarget","EventHandler","off","type","apply","bootstrapDelegationHandler","bootstrapHandler","removeHandler","Boolean","on","one","_normalizeParams2","inNamespace","isNamespace","startsWith","elementEvent","namespace","storeElementEvent","handlerKey","includes","removeNamespacedHandlers","slice","keyHandlers","trigger","args","jQueryEvent","$","isNative","bubbles","nativeDispatch","defaultPrevented","evt","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","createEvent","initEvent","CustomEvent","cancelable","defineProperty","preventDefault","BaseComponent","_element","constructor","DATA_KEY","dispose","getInstance","NAME","Alert","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","_removeElement","closest","_this","classList","remove","contains","_destroyElement","removeChild","jQueryInterface","each","handleDismiss","alertInstance","JQUERY_NO_CONFLICT","Constructor","noConflict","Button","toggle","setAttribute","normalizeData","val","normalizeDataKey","chr","button","Manipulator","setDataAttribute","removeDataAttribute","removeAttribute","getDataAttributes","attributes","dataset","filter","pureKey","charAt","getDataAttribute","offset","rect","getBoundingClientRect","top","scrollTop","left","scrollLeft","position","offsetTop","offsetLeft","SelectorEngine","matches","find","_ref","concat","Element","prototype","findOne","children","_ref2","child","parents","ancestor","Node","ELEMENT_NODE","push","prev","previous","previousElementSibling","next","nextElementSibling","EVENT_KEY","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","PointerType","TOUCH","PEN","Carousel","_BaseComponent","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","_addEventListeners","_slide","nextWhenVisible","hidden","cycle","clearInterval","_updateInterval","setInterval","visibilityState","bind","to","index","_this2","activeIndex","_getItemIndex","direction","_extends","_handleSwipe","absDeltax","abs","_this3","_keydown","_addTouchEventListeners","_this4","start","pointerType","clientX","touches","end","clearTimeout","itemImg","e","add","move","tagName","indexOf","_getItemByDirection","activeElement","isNextDirection","isPrevDirection","lastItemIndex","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","from","_setActiveIndicatorElement","indicators","nextIndicator","elementInterval","parseInt","defaultInterval","directionalClassName","orderClassName","_this5","activeElementIndex","nextElement","nextElementIndex","isCycling","carouselInterface","action","TypeError","ride","dataApiClickHandler","slideIndex","carousels","parent","Collapse","_isTransitioning","_triggerArray","SELECTOR_DATA_TOGGLE","toggleList","elem","filterElement","foundElem","_selector","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","container","tempActiveData","elemActive","collapseInterface","dimension","_getDimension","setTransitioning","scrollSize","triggerArrayLength","isTransitioning","jquery","selected","triggerArray","isOpen","triggerData","isBrowser","timeoutDuration","longerTimeoutBrowsers","userAgent","debounce","Promise","resolve","then","scheduled","isFunction","functionToCheck","getStyleComputedProperty","css","ownerDocument","defaultView","getParentNode","nodeName","host","getScrollParent","_getStyleComputedProp","overflow","overflowX","overflowY","getReferenceNode","reference","referenceNode","isIE11","MSInputMethodContext","documentMode","isIE10","isIE","version","getOffsetParent","noOffsetParent","offsetParent","getRoot","node","findCommonOffsetParent","element1","element2","order","compareDocumentPosition","DOCUMENT_POSITION_FOLLOWING","range","createRange","setStart","setEnd","commonAncestorContainer","firstElementChild","element1root","getScroll","side","arguments","undefined","upperSide","html","scrollingElement","includeScroll","subtract","modifier","bottom","right","getBordersSize","styles","axis","sideA","sideB","getSize","computedStyle","max","getWindowSizes","height","width","classCallCheck","createClass","defineProperties","props","descriptor","enumerable","configurable","writable","protoProps","staticProps","assign","source","hasOwnProperty","getClientRect","offsets","result","sizes","clientWidth","clientHeight","horizScrollbar","offsetWidth","vertScrollbar","getOffsetRectRelativeToArbitraryNode","fixedPosition","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","innerWidth","innerHeight","isFixed","getFixedPositionOffsetParent","parentElement","el","getBoundaries","popper","padding","boundariesElement","boundaries","boundariesNode","_getWindowSizes","isPaddingNumber","getArea","computeAutoPlacement","placement","refRect","rects","sortedAreas","map","area","sort","a","b","filteredAreas","computedPlacement","variation","getReferenceOffsets","state","commonOffsetParent","getOuterSizes","x","marginBottom","y","marginRight","getOppositePlacement","hash","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","arr","check","Array","runModifiers","modifiers","ends","prop","findIndex","cur","console","warn","enabled","update","isDestroyed","arrowStyles","flipped","options","positionFixed","flip","originalPlacement","isCreated","onUpdate","onCreate","isModifierEnabled","modifierName","some","name","getSupportedPropertyName","prefixes","upperProp","toCheck","destroy","willChange","disableEventListeners","removeOnDestroy","getWindow","setupEventListeners","updateBound","passive","scrollElement","attachToScrollParents","scrollParents","isBody","eventsEnabled","enableEventListeners","scheduleUpdate","cancelAnimationFrame","isNumeric","n","isNaN","isFinite","setStyles","unit","isFirefox","isModifierRequired","requestingName","requestedName","requesting","isRequired","_requesting","requested","placements","validPlacements","clockwise","counter","reverse","BEHAVIORS","parseOffset","basePlacement","useHeight","fragments","frag","divider","search","splitRegex","ops","op","mergeWithPrevious","reduce","str","toValue","index2","Defaults","shift","shiftvariation","_data$offsets","isVertical","shiftOffsets","preventOverflow","transformProp","popperStyles","transform","priority","primary","escapeWithReference","secondary","min","keepTogether","opSide","arrow","_data$offsets$arrow","arrowElement","sideCapitalized","altSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","round","placementOpposite","flipOrder","behavior","step","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","getOppositeVariation","inner","subtractLength","bound","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","shouldRound","noRound","v","referenceWidth","popperWidth","isVariation","horizontalToInteger","verticalToInteger","getRoundedOffsets","devicePixelRatio","prefixedProperty","invertTop","invertLeft","x-placement","applyStyle","onLoad","modifierOptions","Popper","requestAnimationFrame","Utils","global","PopperUtils","REGEXP_KEYDOWN","ARROW_UP_KEY","PLACEMENT_TOP","PLACEMENT_TOPEND","PLACEMENT_BOTTOM","PLACEMENT_BOTTOMEND","PLACEMENT_RIGHT","PLACEMENT_LEFT","boundary","popperConfig","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","isActive","clearMenus","getParentFromElement","referenceElement","_getPopperConfig","focus","stopPropagation","_getPlacement","parentDropdown","_getOffset","dropdownInterface","toggles","context","clickEvent","dropdownMenu","dataApiKeydownHandler","items","backdrop","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","showEvent","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","htmlElement","handleUpdate","modalBody","appendChild","_enforceFocus","transitionComplete","_this6","_triggerBackdropTransition","_this7","_this8","_resetAdjustments","_resetScrollbar","_removeBackdrop","_this9","animate","createElement","className","currentTarget","backdropTransitionDuration","callbackRemove","_this10","isModalOverflowing","scrollHeight","modalTransitionDuration","paddingLeft","paddingRight","_getScrollbarWidth","_this11","actualPadding","calculatedPadding","actualMargin","calculatedMargin","margin","scrollDiv","scrollbarWidth","_this12","uriAttrs","SAFE_URL_PATTERN","DATA_URL_PATTERN","DefaultAllowlist","*","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","sanitizeHtml","unsafeHtml","allowList","sanitizeFn","createdDocument","DOMParser","parseFromString","allowlistKeys","elements","_loop","elName","attributeList","allowedAttributes","attr","allowedAttributeList","attrName","nodeValue","regExp","attrRegex","allowedAttribute","innerHTML","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","fallbackPlacement","customClass","sanitize","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","_hideModalHandler","isWithContent","shadowRoot","findShadowRoot","attachShadow","getRootNode","root","ShadowRoot","isInTheDom","tipId","setContent","attachment","_getAttachment","_addAttachmentClass","_getContainer","_tip$classList","complete","_fixTransition","prevHoverState","_cleanTipClass","getTitle","setElementContent","content","textContent","updateAttachment","_handlePopperPlacementChange","CLASS_PREFIX","eventIn","eventOut","_fixTitle","originalTitleType","dataAttributes","dataAttr","tabClass","token","tClass","popperData","initConfigAnimation","Popover","_getContent","method","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targetSelector","targetBCR","item","pageYOffset","_getOffsetHeight","maxScroll","_activate","_clear","queries","link","join","listGroup","SELECTOR_NAV_LINKS","navItem","spy","Tab","listElement","itemSelector","hideEvent","active","_transitionComplete","dropdownChild","dropdown","autohide","Toast","_clearTimeout"],"mappings":"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","sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => {\n if (obj === null || obj === undefined) {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n prefix += Math.floor(Math.random() * MAX_UID)\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelector = element => {\n let selector = element.getAttribute('data-bs-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null\n }\n\n return selector\n}\n\nconst getSelectorFromElement = element => {\n const selector = getSelector(element)\n\n if (selector) {\n return document.querySelector(selector) ? selector : null\n }\n\n return null\n}\n\nconst getElementFromSelector = element => {\n const selector = getSelector(element)\n\n return selector ? document.querySelector(selector) : null\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 = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes).forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n const elementStyle = getComputedStyle(element)\n const parentNodeStyle = getComputedStyle(element.parentNode)\n\n return elementStyle.display !== 'none' &&\n parentNodeStyle.display !== 'none' &&\n elementStyle.visibility !== 'hidden'\n }\n\n return 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 = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nconst getjQuery = () => {\n const { jQuery } = window\n\n if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n return jQuery\n }\n\n return null\n}\n\nconst onDOMContentLoaded = callback => {\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', callback)\n } else {\n callback()\n }\n}\n\nconst isRTL = document.documentElement.dir === 'rtl'\n\nexport {\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n isVisible,\n findShadowRoot,\n noop,\n reflow,\n getjQuery,\n onDOMContentLoaded,\n isRTL\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst mapData = (() => {\n const storeData = {}\n let id = 1\n return {\n set(element, key, data) {\n if (typeof element.bsKey === 'undefined') {\n element.bsKey = {\n key,\n id\n }\n id++\n }\n\n storeData[element.bsKey.id] = data\n },\n get(element, key) {\n if (!element || typeof element.bsKey === 'undefined') {\n return null\n }\n\n const keyProperties = element.bsKey\n if (keyProperties.key === key) {\n return storeData[keyProperties.id]\n }\n\n return null\n },\n delete(element, key) {\n if (typeof element.bsKey === 'undefined') {\n return\n }\n\n const keyProperties = element.bsKey\n if (keyProperties.key === key) {\n delete storeData[keyProperties.id]\n delete element.bsKey\n }\n }\n }\n})()\n\nconst Data = {\n setData(instance, key, data) {\n mapData.set(instance, key, data)\n },\n getData(instance, key) {\n return mapData.get(instance, key)\n },\n removeData(instance, key) {\n mapData.delete(instance, key)\n }\n}\n\nexport default Data\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getjQuery } from '../util/index'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\nconst nativeEvents = new Set([\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 * ------------------------------------------------------------------------\n * Private methods\n * ------------------------------------------------------------------------\n */\n\nfunction getUidEvent(element, uid) {\n return (uid && `${uid}::${uidEvent++}`) || element.uidEvent || uidEvent++\n}\n\nfunction getEvent(element) {\n const uid = getUidEvent(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 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 (let i = domElements.length; i--;) {\n if (domElements[i] === target) {\n event.delegateTarget = target\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(target, [event])\n }\n }\n }\n\n // To please ESLint\n return null\n }\n}\n\nfunction findHandler(events, handler, delegationSelector = null) {\n const uidEventList = Object.keys(events)\n\n for (let i = 0, len = uidEventList.length; i < len; i++) {\n const event = events[uidEventList[i]]\n\n if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {\n return event\n }\n }\n\n return null\n}\n\nfunction normalizeParams(originalTypeEvent, handler, delegationFn) {\n const delegation = typeof handler === 'string'\n const originalHandler = delegation ? delegationFn : handler\n\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n let typeEvent = originalTypeEvent.replace(stripNameRegex, '')\n const custom = customEvents[typeEvent]\n\n if (custom) {\n typeEvent = custom\n }\n\n const isNative = nativeEvents.has(typeEvent)\n\n if (!isNative) {\n typeEvent = originalTypeEvent\n }\n\n return [delegation, originalHandler, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n if (!handler) {\n handler = delegationFn\n delegationFn = null\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const events = getEvent(element)\n const handlers = events[typeEvent] || (events[typeEvent] = {})\n const previousFn = findHandler(handlers, originalHandler, delegation ? handler : null)\n\n if (previousFn) {\n previousFn.oneOff = previousFn.oneOff && oneOff\n\n return\n }\n\n const uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, ''))\n const fn = delegation ?\n bootstrapDelegationHandler(element, handler, delegationFn) :\n bootstrapHandler(element, handler)\n\n fn.delegationSelector = delegation ? handler : null\n fn.originalHandler = originalHandler\n fn.oneOff = oneOff\n fn.uidEvent = uid\n handlers[uid] = fn\n\n element.addEventListener(typeEvent, fn, delegation)\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 Object.keys(storeElementEvent).forEach(handlerKey => {\n if (handlerKey.includes(namespace)) {\n const event = storeElementEvent[handlerKey]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, false)\n },\n\n one(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFn) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getEvent(element)\n const isNamespace = originalTypeEvent.startsWith('.')\n\n if (typeof originalHandler !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!events || !events[typeEvent]) {\n return\n }\n\n removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null)\n return\n }\n\n if (isNamespace) {\n Object.keys(events).forEach(elementEvent => {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1))\n })\n }\n\n const storeElementEvent = events[typeEvent] || {}\n Object.keys(storeElementEvent).forEach(keyHandlers => {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.includes(handlerKey)) {\n const event = storeElementEvent[keyHandlers]\n\n removeHandler(element, events, typeEvent, event.originalHandler, 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 = event.replace(stripNameRegex, '')\n const inNamespace = event !== typeEvent\n const isNative = nativeEvents.has(typeEvent)\n\n let jQueryEvent\n let bubbles = true\n let nativeDispatch = true\n let defaultPrevented = false\n let evt = null\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 if (isNative) {\n evt = document.createEvent('HTMLEvents')\n evt.initEvent(typeEvent, bubbles, true)\n } else {\n evt = new CustomEvent(event, {\n bubbles,\n cancelable: true\n })\n }\n\n // merge custom information in our event\n if (typeof args !== 'undefined') {\n Object.keys(args).forEach(key => {\n Object.defineProperty(evt, key, {\n get() {\n return args[key]\n }\n })\n })\n }\n\n if (defaultPrevented) {\n evt.preventDefault()\n }\n\n if (nativeDispatch) {\n element.dispatchEvent(evt)\n }\n\n if (evt.defaultPrevented && typeof jQueryEvent !== 'undefined') {\n jQueryEvent.preventDefault()\n }\n\n return evt\n }\n}\n\nexport default EventHandler\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): base-component.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Data from './dom/data'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst VERSION = '5.0.0-alpha3'\n\nclass BaseComponent {\n constructor(element) {\n if (!element) {\n return\n }\n\n this._element = element\n Data.setData(element, this.constructor.DATA_KEY, this)\n }\n\n dispose() {\n Data.removeData(this._element, this.constructor.DATA_KEY)\n this._element = null\n }\n\n /** Static */\n\n static getInstance(element) {\n return Data.getData(element, this.DATA_KEY)\n }\n\n static get VERSION() {\n return VERSION\n }\n}\n\nexport default BaseComponent\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n onDOMContentLoaded,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'alert'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst SELECTOR_DISMISS = '[data-bs-dismiss=\"alert\"]'\n\nconst EVENT_CLOSE = `close${EVENT_KEY}`\nconst EVENT_CLOSED = `closed${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASSNAME_ALERT = 'alert'\nconst CLASSNAME_FADE = 'fade'\nconst CLASSNAME_SHOW = 'show'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Alert extends BaseComponent {\n // Getters\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n close(element) {\n const rootElement = element ? this._getRootElement(element) : this._element\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent === null || customEvent.defaultPrevented) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n // Private\n\n _getRootElement(element) {\n return getElementFromSelector(element) || element.closest(`.${CLASSNAME_ALERT}`)\n }\n\n _triggerCloseEvent(element) {\n return EventHandler.trigger(element, EVENT_CLOSE)\n }\n\n _removeElement(element) {\n element.classList.remove(CLASSNAME_SHOW)\n\n if (!element.classList.contains(CLASSNAME_FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = getTransitionDurationFromElement(element)\n\n EventHandler.one(element, TRANSITION_END, () => this._destroyElement(element))\n emulateTransitionEnd(element, transitionDuration)\n }\n\n _destroyElement(element) {\n if (element.parentNode) {\n element.parentNode.removeChild(element)\n }\n\n EventHandler.trigger(element, EVENT_CLOSED)\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DISMISS, Alert.handleDismiss(new Alert()))\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Alert to jQuery only if jQuery is present\n */\n\nonDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Alert.jQueryInterface\n $.fn[NAME].Constructor = Alert\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert.jQueryInterface\n }\n }\n})\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getjQuery, onDOMContentLoaded } from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\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'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"button\"]'\n\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Button extends BaseComponent {\n // Getters\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n toggle() {\n // Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method\n this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE))\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\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\n let data = Data.getData(button, DATA_KEY)\n if (!data) {\n data = new Button(button)\n }\n\n data.toggle()\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Button to jQuery only if jQuery is present\n */\n\nonDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Button.jQueryInterface\n $.fn[NAME].Constructor = Button\n\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button.jQueryInterface\n }\n }\n})\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(val) {\n if (val === 'true') {\n return true\n }\n\n if (val === 'false') {\n return false\n }\n\n if (val === Number(val).toString()) {\n return Number(val)\n }\n\n if (val === '' || val === 'null') {\n return null\n }\n\n return val\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\n Object.keys(element.dataset)\n .filter(key => key.startsWith('bs'))\n .forEach(key => {\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 offset(element) {\n const rect = element.getBoundingClientRect()\n\n return {\n top: rect.top + document.body.scrollTop,\n left: rect.left + document.body.scrollLeft\n }\n },\n\n position(element) {\n return {\n top: element.offsetTop,\n left: element.offsetLeft\n }\n }\n}\n\nexport default Manipulator\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NODE_TEXT = 3\n\nconst SelectorEngine = {\n matches(element, selector) {\n return element.matches(selector)\n },\n\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 const children = [].concat(...element.children)\n\n return children.filter(child => child.matches(selector))\n },\n\n parents(element, selector) {\n const parents = []\n\n let ancestor = element.parentNode\n\n while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {\n if (this.matches(ancestor, selector)) {\n parents.push(ancestor)\n }\n\n ancestor = ancestor.parentNode\n }\n\n return parents\n },\n\n prev(element, selector) {\n let previous = element.previousElementSibling\n\n while (previous) {\n if (previous.matches(selector)) {\n return [previous]\n }\n\n previous = previous.previousElementSibling\n }\n\n return []\n },\n\n next(element, selector) {\n let next = element.nextElementSibling\n\n while (next) {\n if (this.matches(next, selector)) {\n return [next]\n }\n\n next = next.nextElementSibling\n }\n\n return []\n }\n}\n\nexport default SelectorEngine\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n onDOMContentLoaded,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isVisible,\n reflow,\n triggerTransitionEnd,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\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\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\n\nconst DIRECTION_NEXT = 'next'\nconst DIRECTION_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_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 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'\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event'\n\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_ITEM = '.active.carousel-item'\nconst SELECTOR_ITEM = '.carousel-item'\nconst SELECTOR_ITEM_IMG = '.carousel-item img'\nconst SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev'\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 PointerType = {\n TOUCH: 'touch',\n PEN: 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent)\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(DIRECTION_NEXT)\n }\n }\n\n nextWhenVisible() {\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 if (!this._isSliding) {\n this._slide(DIRECTION_PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (SelectorEngine.findOne(SELECTOR_NEXT_PREV, this._element)) {\n triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config && this._config.interval && !this._isPaused) {\n this._updateInterval()\n\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._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 if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex ?\n DIRECTION_NEXT :\n DIRECTION_PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n super.dispose()\n EventHandler.off(this._element, EVENT_KEY)\n\n this._items = null\n this._config = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n this.touchDeltaX = 0\n\n // swipe left\n if (direction > 0) {\n this.prev()\n }\n\n // swipe right\n if (direction < 0) {\n this.next()\n }\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, event => this.pause(event))\n EventHandler.on(this._element, EVENT_MOUSELEAVE, event => this.cycle(event))\n }\n\n if (this._config.touch && this._touchSupported) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n const start = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchStartX = event.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.touches[0].clientX\n }\n }\n\n const move = event => {\n // ensure swiping with one touch and not pinching\n if (event.touches && event.touches.length > 1) {\n this.touchDeltaX = 0\n } else {\n this.touchDeltaX = event.touches[0].clientX - this.touchStartX\n }\n }\n\n const end = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchDeltaX = event.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\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(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n SelectorEngine.find(SELECTOR_ITEM_IMG, this._element).forEach(itemImg => {\n EventHandler.on(itemImg, EVENT_DRAG_START, e => e.preventDefault())\n })\n\n if (this._pointerEvent) {\n EventHandler.on(this._element, EVENT_POINTERDOWN, event => start(event))\n EventHandler.on(this._element, EVENT_POINTERUP, event => end(event))\n\n this._element.classList.add(CLASS_NAME_POINTER_EVENT)\n } else {\n EventHandler.on(this._element, EVENT_TOUCHSTART, event => start(event))\n EventHandler.on(this._element, EVENT_TOUCHMOVE, event => move(event))\n EventHandler.on(this._element, EVENT_TOUCHEND, event => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.key) {\n case ARROW_LEFT_KEY:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEY:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode ?\n SelectorEngine.find(SELECTOR_ITEM, element.parentNode) :\n []\n\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === DIRECTION_NEXT\n const isPrevDirection = direction === DIRECTION_PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = (isPrevDirection && activeIndex === 0) ||\n (isNextDirection && activeIndex === lastItemIndex)\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === DIRECTION_PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1 ?\n this._items[this._items.length - 1] :\n this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element))\n\n return EventHandler.trigger(this._element, EVENT_SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n const indicators = SelectorEngine.find(SELECTOR_ACTIVE, this._indicatorsElement)\n\n for (let i = 0; i < indicators.length; i++) {\n indicators[i].classList.remove(CLASS_NAME_ACTIVE)\n }\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n nextIndicator.classList.add(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n _updateInterval() {\n const element = this._activeElement || SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n\n if (!element) {\n return\n }\n\n const elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10)\n\n if (elementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval\n this._config.interval = elementInterval\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval\n }\n }\n\n _slide(direction, element) {\n const activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || (activeElement && this._getItemByDirection(direction, activeElement))\n\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === DIRECTION_NEXT) {\n directionalClassName = CLASS_NAME_START\n orderClassName = CLASS_NAME_NEXT\n eventDirectionName = DIRECTION_LEFT\n } else {\n directionalClassName = CLASS_NAME_END\n orderClassName = CLASS_NAME_PREV\n eventDirectionName = DIRECTION_RIGHT\n }\n\n if (nextElement && nextElement.classList.contains(CLASS_NAME_ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.defaultPrevented) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n this._activeElement = nextElement\n\n if (this._element.classList.contains(CLASS_NAME_SLIDE)) {\n nextElement.classList.add(orderClassName)\n\n reflow(nextElement)\n\n activeElement.classList.add(directionalClassName)\n nextElement.classList.add(directionalClassName)\n\n const transitionDuration = getTransitionDurationFromElement(activeElement)\n\n EventHandler.one(activeElement, TRANSITION_END, () => {\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 setTimeout(() => {\n EventHandler.trigger(this._element, EVENT_SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }, 0)\n })\n\n emulateTransitionEnd(activeElement, transitionDuration)\n } else {\n activeElement.classList.remove(CLASS_NAME_ACTIVE)\n nextElement.classList.add(CLASS_NAME_ACTIVE)\n\n this._isSliding = false\n EventHandler.trigger(this._element, EVENT_SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static carouselInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n let _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element)\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(element, _config)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n\n data[action]()\n } else if (_config.interval && _config.ride) {\n data.pause()\n data.cycle()\n }\n }\n\n static jQueryInterface(config) {\n return this.each(function () {\n Carousel.carouselInterface(this, config)\n })\n }\n\n static dataApiClickHandler(event) {\n const target = getElementFromSelector(this)\n\n if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {\n return\n }\n\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n const slideIndex = this.getAttribute('data-bs-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel.carouselInterface(target, config)\n\n if (slideIndex) {\n Data.getData(target, DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, Carousel.dataApiClickHandler)\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE)\n\n for (let i = 0, len = carousels.length; i < len; i++) {\n Carousel.carouselInterface(carousels[i], Data.getData(carousels[i], DATA_KEY))\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Carousel to jQuery only if jQuery is present\n */\n\nonDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Carousel.jQueryInterface\n $.fn[NAME].Constructor = Carousel\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel.jQueryInterface\n }\n }\n})\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n onDOMContentLoaded,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isElement,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'collapse'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n toggle: true,\n parent: ''\n}\n\nconst DefaultType = {\n toggle: 'boolean',\n parent: '(string|element)'\n}\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'\n\nconst WIDTH = 'width'\nconst HEIGHT = 'height'\n\nconst SELECTOR_ACTIVES = '.show, .collapsing'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"collapse\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._isTransitioning = false\n this._config = this._getConfig(config)\n this._triggerArray = SelectorEngine.find(\n `${SELECTOR_DATA_TOGGLE}[href=\"#${element.id}\"],` +\n `${SELECTOR_DATA_TOGGLE}[data-bs-target=\"#${element.id}\"]`\n )\n\n const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\n\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = getSelectorFromElement(elem)\n const filterElement = SelectorEngine.find(selector)\n .filter(foundElem => foundElem === element)\n\n if (selector !== null && filterElement.length) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n toggle() {\n if (this._element.classList.contains(CLASS_NAME_SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning || this._element.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = SelectorEngine.find(SELECTOR_ACTIVES, this._parent)\n .filter(elem => {\n if (typeof this._config.parent === 'string') {\n return elem.getAttribute('data-bs-parent') === this._config.parent\n }\n\n return elem.classList.contains(CLASS_NAME_COLLAPSE)\n })\n\n if (actives.length === 0) {\n actives = null\n }\n }\n\n const container = SelectorEngine.findOne(this._selector)\n if (actives) {\n const tempActiveData = actives.find(elem => container !== elem)\n activesData = tempActiveData ? Data.getData(tempActiveData, DATA_KEY) : null\n\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = EventHandler.trigger(this._element, EVENT_SHOW)\n if (startEvent.defaultPrevented) {\n return\n }\n\n if (actives) {\n actives.forEach(elemActive => {\n if (container !== elemActive) {\n Collapse.collapseInterface(elemActive, 'hide')\n }\n\n if (!activesData) {\n Data.setData(elemActive, DATA_KEY, null)\n }\n })\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 if (this._triggerArray.length) {\n this._triggerArray.forEach(element => {\n element.classList.remove(CLASS_NAME_COLLAPSED)\n element.setAttribute('aria-expanded', true)\n })\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\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 this.setTransitioning(false)\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 const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n\n emulateTransitionEnd(this._element, transitionDuration)\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning || !this._element.classList.contains(CLASS_NAME_SHOW)) {\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 const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const elem = getElementFromSelector(trigger)\n\n if (elem && !elem.classList.contains(CLASS_NAME_SHOW)) {\n trigger.classList.add(CLASS_NAME_COLLAPSED)\n trigger.setAttribute('aria-expanded', false)\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(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 const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n super.dispose()\n this._config = null\n this._parent = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n return this._element.classList.contains(WIDTH) ? WIDTH : HEIGHT\n }\n\n _getParent() {\n let { parent } = this._config\n\n if (isElement(parent)) {\n // it's a jQuery object\n if (typeof parent.jquery !== 'undefined' || typeof parent[0] !== 'undefined') {\n parent = parent[0]\n }\n } else {\n parent = SelectorEngine.findOne(parent)\n }\n\n const selector = `${SELECTOR_DATA_TOGGLE}[data-bs-parent=\"${parent}\"]`\n\n SelectorEngine.find(selector, parent)\n .forEach(element => {\n const selected = getElementFromSelector(element)\n\n this._addAriaAndCollapsedClass(\n selected,\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n if (!element || !triggerArray.length) {\n return\n }\n\n const isOpen = element.classList.contains(CLASS_NAME_SHOW)\n\n triggerArray.forEach(elem => {\n if (isOpen) {\n elem.classList.remove(CLASS_NAME_COLLAPSED)\n } else {\n elem.classList.add(CLASS_NAME_COLLAPSED)\n }\n\n elem.setAttribute('aria-expanded', isOpen)\n })\n }\n\n // Static\n\n static collapseInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element),\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(element, _config)\n }\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 static jQueryInterface(config) {\n return this.each(function () {\n Collapse.collapseInterface(this, config)\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\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') {\n event.preventDefault()\n }\n\n const triggerData = Manipulator.getDataAttributes(this)\n const selector = getSelectorFromElement(this)\n const selectorElements = SelectorEngine.find(selector)\n\n selectorElements.forEach(element => {\n const data = Data.getData(element, DATA_KEY)\n let config\n if (data) {\n // update parent attribute\n if (data._parent === null && typeof triggerData.parent === 'string') {\n data._config.parent = triggerData.parent\n data._parent = data._getParent()\n }\n\n config = 'toggle'\n } else {\n config = triggerData\n }\n\n Collapse.collapseInterface(element, config)\n })\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Collapse to jQuery only if jQuery is present\n */\n\nonDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Collapse.jQueryInterface\n $.fn[NAME].Constructor = Collapse\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse.jQueryInterface\n }\n }\n})\n\nexport default Collapse\n","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.16.1\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n\nvar timeoutDuration = function () {\n var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n return 1;\n }\n }\n return 0;\n}();\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var window = element.ownerDocument.defaultView;\n var css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n\n/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\nfunction getReferenceNode(reference) {\n return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n var element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE(10) && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n var rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\n\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n\n // subtract scrollbar size from sizes\n var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n var width = sizes.width || element.clientWidth || result.width;\n var height = sizes.height || element.clientHeight || result.height;\n\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop);\n var marginLeft = parseFloat(styles.marginLeft);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n\n return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n var parentNode = getParentNode(element);\n if (!parentNode) {\n return false;\n }\n return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n var el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n // NOTE: 1 DOM access here\n\n var boundaries = { top: 0, left: 0 };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n padding = padding || 0;\n var isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n\n var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n var variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var window = element.ownerDocument.defaultView;\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.<br />\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicitly asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nfunction getRoundedOffsets(data, shouldRound) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var round = Math.round,\n floor = Math.floor;\n\n var noRound = function noRound(v) {\n return v;\n };\n\n var referenceWidth = round(reference.width);\n var popperWidth = round(popper.width);\n\n var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n var isVariation = data.placement.indexOf('-') !== -1;\n var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n var verticalToInteger = !shouldRound ? noRound : round;\n\n return {\n left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right)\n };\n}\n\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position\n };\n\n var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n var prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n // when offsetParent is <html> the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n }\n\n // Attributes\n var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.<br />\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n var _data$offsets$arrow;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized]);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.<br />\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.<br />\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n // flips variation if reference element overflows boundaries\n var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n // flips variation if popper content overflows boundaries\n var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);\n\n var flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n });\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var basePlacement = placement.split('-')[0];\n\n var offsets = void 0;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n\n options.boundaries = boundaries;\n\n var order = options.priority;\n var popper = data.offsets.popper;\n\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n return defineProperty({}, mainSide, value);\n }\n };\n\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends({}, popper, check[side](placement));\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.<br />\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.<br />\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.<br />\n * It will read the variation of the `placement` property.<br />\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.<br />\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the `height`.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.<br />\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.<br />\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries.<br />\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".<br />\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport',\n /**\n * @prop {Boolean} flipVariations=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the reference element overlaps its boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariations: false,\n /**\n * @prop {Boolean} flipVariationsByContent=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the popper element overlaps its reference boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariationsByContent: false\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right'\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined\n }\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.<br />\n * These can be overridden using the `options` argument of Popper.js.<br />\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.<br />\n * By default, it is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function onCreate() {},\n\n /**\n * Callback called when the popper is updated. This callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.<br />\n * By default, it is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function onUpdate() {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js.\n * @prop {modifiers}\n */\n modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n /**\n * Creates a new Popper.js instance.\n * @class Popper\n * @param {Element|referenceObject} reference - The reference element used to position the popper\n * @param {Element} popper - The HTML / XML element used as the popper\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n };\n\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = _extends({}, Popper.Defaults, options);\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n var eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\n\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n\n }]);\n return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.<br />\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n onDOMContentLoaded,\n getElementFromSelector,\n isElement,\n isVisible,\n isRTL,\n noop,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\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 SPACE_KEY = 'Space'\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 REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEY}|${ARROW_DOWN_KEY}|${ESCAPE_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 = `click${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_DISABLED = 'disabled'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_DROPUP = 'dropup'\nconst CLASS_NAME_DROPEND = 'dropend'\nconst CLASS_NAME_DROPSTART = 'dropstart'\nconst CLASS_NAME_MENUEND = 'dropdown-menu-end'\nconst CLASS_NAME_NAVBAR = 'navbar'\nconst CLASS_NAME_POSITION_STATIC = 'position-static'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"dropdown\"]'\nconst SELECTOR_FORM_CHILD = '.dropdown form'\nconst SELECTOR_MENU = '.dropdown-menu'\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'\n\nconst Default = {\n offset: 0,\n flip: true,\n boundary: 'scrollParent',\n reference: 'toggle',\n display: 'dynamic',\n popperConfig: null\n}\n\nconst DefaultType = {\n offset: '(number|string|function)',\n flip: 'boolean',\n boundary: '(string|element)',\n reference: '(string|element)',\n display: 'string',\n popperConfig: '(null|object)'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED)) {\n return\n }\n\n const isActive = this._element.classList.contains(CLASS_NAME_SHOW)\n\n Dropdown.clearMenus()\n\n if (isActive) {\n return\n }\n\n this.show()\n }\n\n show() {\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || this._menu.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n const parent = Dropdown.getParentFromElement(this._element)\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 // Totally disable Popper for Dropdowns in Navbar\n if (!this._inNavbar) {\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 = parent\n } else if (isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n parent.classList.add(CLASS_NAME_POSITION_STATIC)\n }\n\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\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 !parent.closest(SELECTOR_NAVBAR_NAV)) {\n [].concat(...document.body.children)\n .forEach(elem => EventHandler.on(elem, 'mouseover', null, noop()))\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n this._menu.classList.toggle(CLASS_NAME_SHOW)\n this._element.classList.toggle(CLASS_NAME_SHOW)\n EventHandler.trigger(parent, EVENT_SHOWN, relatedTarget)\n }\n\n hide() {\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || !this._menu.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n const parent = Dropdown.getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const hideEvent = EventHandler.trigger(parent, EVENT_HIDE, relatedTarget)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n if (this._popper) {\n this._popper.destroy()\n }\n\n this._menu.classList.toggle(CLASS_NAME_SHOW)\n this._element.classList.toggle(CLASS_NAME_SHOW)\n EventHandler.trigger(parent, EVENT_HIDDEN, relatedTarget)\n }\n\n dispose() {\n super.dispose()\n EventHandler.off(this._element, EVENT_KEY)\n this._menu = null\n if (this._popper) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n EventHandler.on(this._element, EVENT_CLICK, event => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...Manipulator.getDataAttributes(this._element),\n ...config\n }\n\n typeCheckConfig(NAME, config, this.constructor.DefaultType)\n\n return config\n }\n\n _getMenuElement() {\n return SelectorEngine.next(this._element, SELECTOR_MENU)[0]\n }\n\n _getPlacement() {\n const parentDropdown = this._element.parentNode\n let placement = PLACEMENT_BOTTOM\n\n // Handle dropup\n if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) {\n placement = this._menu.classList.contains(CLASS_NAME_MENUEND) ?\n PLACEMENT_TOPEND :\n PLACEMENT_TOP\n } else if (parentDropdown.classList.contains(CLASS_NAME_DROPEND)) {\n placement = PLACEMENT_RIGHT\n } else if (parentDropdown.classList.contains(CLASS_NAME_DROPSTART)) {\n placement = PLACEMENT_LEFT\n } else if (this._menu.classList.contains(CLASS_NAME_MENUEND)) {\n placement = PLACEMENT_BOTTOMEND\n }\n\n return placement\n }\n\n _detectNavbar() {\n return Boolean(this._element.closest(`.${CLASS_NAME_NAVBAR}`))\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this._config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...(this._config.offset(data.offsets, this._element) || {})\n }\n\n return data\n }\n } else {\n offset.offset = this._config.offset\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: this._getOffset(),\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n\n return {\n ...popperConfig,\n ...this._config.popperConfig\n }\n }\n\n // Static\n\n static dropdownInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(element, _config)\n }\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 static jQueryInterface(config) {\n return this.each(function () {\n Dropdown.dropdownInterface(this, config)\n })\n }\n\n static clearMenus(event) {\n if (event && (event.button === RIGHT_MOUSE_BUTTON || (event.type === 'keyup' && event.key !== TAB_KEY))) {\n return\n }\n\n const toggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\n\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown.getParentFromElement(toggles[i])\n const context = Data.getData(toggles[i], DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!toggles[i].classList.contains(CLASS_NAME_SHOW)) {\n continue\n }\n\n if (event && ((event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName)) ||\n (event.type === 'keyup' && event.key === TAB_KEY)) &&\n dropdownMenu.contains(event.target)) {\n continue\n }\n\n const hideEvent = EventHandler.trigger(parent, EVENT_HIDE, relatedTarget)\n if (hideEvent.defaultPrevented) {\n continue\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 [].concat(...document.body.children)\n .forEach(elem => EventHandler.off(elem, 'mouseover', null, noop()))\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n if (context._popper) {\n context._popper.destroy()\n }\n\n dropdownMenu.classList.remove(CLASS_NAME_SHOW)\n toggles[i].classList.remove(CLASS_NAME_SHOW)\n EventHandler.trigger(parent, EVENT_HIDDEN, relatedTarget)\n }\n }\n\n static getParentFromElement(element) {\n return getElementFromSelector(element) || element.parentNode\n }\n\n static dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ?\n event.key === SPACE_KEY || (event.key !== ESCAPE_KEY &&\n ((event.key !== ARROW_DOWN_KEY && event.key !== ARROW_UP_KEY) ||\n event.target.closest(SELECTOR_MENU))) :\n !REGEXP_KEYDOWN.test(event.key)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || this.classList.contains(CLASS_NAME_DISABLED)) {\n return\n }\n\n const parent = Dropdown.getParentFromElement(this)\n const isActive = this.classList.contains(CLASS_NAME_SHOW)\n\n if (event.key === ESCAPE_KEY) {\n const button = this.matches(SELECTOR_DATA_TOGGLE) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE)[0]\n button.focus()\n Dropdown.clearMenus()\n return\n }\n\n if (!isActive || event.key === SPACE_KEY) {\n Dropdown.clearMenus()\n return\n }\n\n const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, parent).filter(isVisible)\n\n if (!items.length) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n // Up\n if (event.key === ARROW_UP_KEY && index > 0) {\n index--\n }\n\n // Down\n if (event.key === ARROW_DOWN_KEY && index < items.length - 1) {\n index++\n }\n\n // index is -1 if the first keydown is an ArrowUp\n index = index === -1 ? 0 : index\n\n items[index].focus()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\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 event.stopPropagation()\n Dropdown.dropdownInterface(this, 'toggle')\n})\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_FORM_CHILD, e => e.stopPropagation())\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Dropdown to jQuery only if jQuery is present\n */\n\nonDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Dropdown.jQueryInterface\n $.fn[NAME].Constructor = Dropdown\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown.jQueryInterface\n }\n }\n})\n\nexport default Dropdown\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n onDOMContentLoaded,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isVisible,\n isRTL,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\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 Default = {\n backdrop: true,\n keyboard: true,\n focus: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean'\n}\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_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${EVENT_KEY}`\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEUP_DISMISS = `mouseup.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure'\nconst CLASS_NAME_BACKDROP = 'modal-backdrop'\nconst CLASS_NAME_OPEN = 'modal-open'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_STATIC = 'modal-static'\n\nconst SELECTOR_DIALOG = '.modal-dialog'\nconst SELECTOR_MODAL_BODY = '.modal-body'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"modal\"]'\nconst SELECTOR_DATA_DISMISS = '[data-bs-dismiss=\"modal\"]'\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'\nconst SELECTOR_STICKY_CONTENT = '.sticky-top'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._config = this._getConfig(config)\n this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, element)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollbarWidth = 0\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n if (this._element.classList.contains(CLASS_NAME_FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, {\n relatedTarget\n })\n\n if (this._isShown || showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, event => this.hide(event))\n\n EventHandler.on(this._dialog, EVENT_MOUSEDOWN_DISMISS, () => {\n EventHandler.one(this._element, EVENT_MOUSEUP_DISMISS, event => {\n if (event.target === this._element) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\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 const transition = this._element.classList.contains(CLASS_NAME_FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.off(document, EVENT_FOCUSIN)\n\n this._element.classList.remove(CLASS_NAME_SHOW)\n\n EventHandler.off(this._element, EVENT_CLICK_DISMISS)\n EventHandler.off(this._dialog, EVENT_MOUSEDOWN_DISMISS)\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, event => this._hideModal(event))\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach(htmlElement => EventHandler.off(htmlElement, EVENT_KEY))\n\n super.dispose()\n\n /**\n * `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `EVENT_CLICK_DATA_API` event that should remain\n */\n EventHandler.off(document, EVENT_FOCUSIN)\n\n this._config = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._isTransitioning = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const transition = this._element.classList.contains(CLASS_NAME_FADE)\n const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog)\n\n if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(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 if (modalBody) {\n modalBody.scrollTop = 0\n }\n\n if (transition) {\n reflow(this._element)\n }\n\n this._element.classList.add(CLASS_NAME_SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n\n this._isTransitioning = false\n EventHandler.trigger(this._element, EVENT_SHOWN, {\n relatedTarget\n })\n }\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._dialog)\n\n EventHandler.one(this._dialog, TRANSITION_END, transitionComplete)\n emulateTransitionEnd(this._dialog, transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n EventHandler.off(document, EVENT_FOCUSIN) // guard against infinite focus loop\n EventHandler.on(document, EVENT_FOCUSIN, event => {\n if (document !== event.target &&\n this._element !== event.target &&\n !this._element.contains(event.target)) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown) {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {\n if (this._config.keyboard && event.key === ESCAPE_KEY) {\n event.preventDefault()\n this.hide()\n } else if (!this._config.keyboard && event.key === ESCAPE_KEY) {\n this._triggerBackdropTransition()\n }\n })\n } else {\n EventHandler.off(this._element, EVENT_KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n EventHandler.on(window, EVENT_RESIZE, () => this._adjustDialog())\n } else {\n EventHandler.off(window, EVENT_RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._element.removeAttribute('role')\n this._isTransitioning = false\n this._showBackdrop(() => {\n document.body.classList.remove(CLASS_NAME_OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n })\n }\n\n _removeBackdrop() {\n this._backdrop.parentNode.removeChild(this._backdrop)\n this._backdrop = null\n }\n\n _showBackdrop(callback) {\n const animate = this._element.classList.contains(CLASS_NAME_FADE) ?\n CLASS_NAME_FADE :\n ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = CLASS_NAME_BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n document.body.appendChild(this._backdrop)\n\n EventHandler.on(this._element, EVENT_CLICK_DISMISS, event => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n\n if (event.target !== event.currentTarget) {\n return\n }\n\n if (this._config.backdrop === 'static') {\n this._triggerBackdropTransition()\n } else {\n this.hide()\n }\n })\n\n if (animate) {\n reflow(this._backdrop)\n }\n\n this._backdrop.classList.add(CLASS_NAME_SHOW)\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n\n EventHandler.one(this._backdrop, TRANSITION_END, callback)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n this._backdrop.classList.remove(CLASS_NAME_SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n callback()\n }\n\n if (this._element.classList.contains(CLASS_NAME_FADE)) {\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n EventHandler.one(this._backdrop, TRANSITION_END, callbackRemove)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else {\n callback()\n }\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\n if (!isModalOverflowing) {\n this._element.style.overflowY = 'hidden'\n }\n\n this._element.classList.add(CLASS_NAME_STATIC)\n const modalTransitionDuration = getTransitionDurationFromElement(this._dialog)\n EventHandler.off(this._element, TRANSITION_END)\n EventHandler.one(this._element, TRANSITION_END, () => {\n this._element.classList.remove(CLASS_NAME_STATIC)\n if (!isModalOverflowing) {\n EventHandler.one(this._element, TRANSITION_END, () => {\n this._element.style.overflowY = ''\n })\n emulateTransitionEnd(this._element, modalTransitionDuration)\n }\n })\n emulateTransitionEnd(this._element, modalTransitionDuration)\n this._element.focus()\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing =\n this._element.scrollHeight > document.documentElement.clientHeight\n\n if ((!this._isBodyOverflowing && isModalOverflowing && !isRTL) || (this._isBodyOverflowing && !isModalOverflowing && isRTL)) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if ((this._isBodyOverflowing && !isModalOverflowing && !isRTL) || (!this._isBodyOverflowing && isModalOverflowing && isRTL)) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n // Adjust fixed content padding\n SelectorEngine.find(SELECTOR_FIXED_CONTENT)\n .forEach(element => {\n const actualPadding = element.style.paddingRight\n const calculatedPadding = window.getComputedStyle(element)['padding-right']\n Manipulator.setDataAttribute(element, 'padding-right', actualPadding)\n element.style.paddingRight = `${Number.parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n })\n\n // Adjust sticky content margin\n SelectorEngine.find(SELECTOR_STICKY_CONTENT)\n .forEach(element => {\n const actualMargin = element.style.marginRight\n const calculatedMargin = window.getComputedStyle(element)['margin-right']\n Manipulator.setDataAttribute(element, 'margin-right', actualMargin)\n element.style.marginRight = `${Number.parseFloat(calculatedMargin) - this._scrollbarWidth}px`\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = window.getComputedStyle(document.body)['padding-right']\n\n Manipulator.setDataAttribute(document.body, 'padding-right', actualPadding)\n document.body.style.paddingRight = `${Number.parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n }\n\n document.body.classList.add(CLASS_NAME_OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n SelectorEngine.find(SELECTOR_FIXED_CONTENT)\n .forEach(element => {\n const padding = Manipulator.getDataAttribute(element, 'padding-right')\n if (typeof padding !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'padding-right')\n element.style.paddingRight = padding\n }\n })\n\n // Restore sticky content and navbar-toggler margin\n SelectorEngine.find(`${SELECTOR_STICKY_CONTENT}`)\n .forEach(element => {\n const margin = Manipulator.getDataAttribute(element, 'margin-right')\n if (typeof margin !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'margin-right')\n element.style.marginRight = margin\n }\n })\n\n // Restore body padding\n const padding = Manipulator.getDataAttribute(document.body, 'padding-right')\n if (typeof padding === 'undefined') {\n document.body.style.paddingRight = ''\n } else {\n Manipulator.removeDataAttribute(document.body, 'padding-right')\n document.body.style.paddingRight = padding\n }\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = CLASS_NAME_SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(this),\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (!data) {\n data = new Modal(this, _config)\n }\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](relatedTarget)\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n const target = getElementFromSelector(this)\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\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 let data = Data.getData(target, DATA_KEY)\n if (!data) {\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n\n data = new Modal(target, config)\n }\n\n data.show(this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Modal to jQuery only if jQuery is present\n */\n\nonDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Modal.jQueryInterface\n $.fn[NAME].Constructor = Modal\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal.jQueryInterface\n }\n }\n})\n\nexport default Modal\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst uriAttrs = new Set([\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n])\n\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[\\d+/a-z]+=*$/i\n\nconst allowedAttribute = (attr, allowedAttributeList) => {\n const attrName = attr.nodeName.toLowerCase()\n\n if (allowedAttributeList.includes(attrName)) {\n if (uriAttrs.has(attrName)) {\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, len = regExp.length; i < len; i++) {\n if (attrName.match(regExp[i])) {\n return true\n }\n }\n\n return false\n}\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\nexport function sanitizeHtml(unsafeHtml, allowList, sanitizeFn) {\n if (!unsafeHtml.length) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const allowlistKeys = Object.keys(allowList)\n const elements = [].concat(...createdDocument.body.querySelectorAll('*'))\n\n for (let i = 0, len = elements.length; i < len; i++) {\n const el = elements[i]\n const elName = el.nodeName.toLowerCase()\n\n if (!allowlistKeys.includes(elName)) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n const attributeList = [].concat(...el.attributes)\n const allowedAttributes = [].concat(allowList['*'] || [], allowList[elName] || [])\n\n attributeList.forEach(attr => {\n if (!allowedAttribute(attr, allowedAttributes)) {\n el.removeAttribute(attr.nodeName)\n }\n })\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n onDOMContentLoaded,\n TRANSITION_END,\n emulateTransitionEnd,\n findShadowRoot,\n getTransitionDurationFromElement,\n getUID,\n isElement,\n isRTL,\n noop,\n typeCheckConfig\n} from './util/index'\nimport {\n DefaultAllowlist,\n sanitizeHtml\n} from './util/sanitizer'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tooltip'\nconst DATA_KEY = 'bs.tooltip'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-tooltip'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\nconst DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn'])\n\nconst DefaultType = {\n animation: 'boolean',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string',\n delay: '(number|object)',\n html: 'boolean',\n selector: '(string|boolean)',\n placement: '(string|function)',\n offset: '(number|string|function)',\n container: '(string|element|boolean)',\n fallbackPlacement: '(string|array)',\n boundary: '(string|element)',\n customClass: '(string|function)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n allowList: 'object',\n popperConfig: '(null|object)'\n}\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 animation: true,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"tooltip-arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div>' +\n '</div>',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n selector: false,\n placement: 'top',\n offset: 0,\n container: false,\n fallbackPlacement: 'flip',\n boundary: 'scrollParent',\n customClass: '',\n sanitize: true,\n sanitizeFn: null,\n allowList: DefaultAllowlist,\n popperConfig: null\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_MODAL = 'modal'\nconst CLASS_NAME_SHOW = 'show'\n\nconst HOVER_STATE_SHOW = 'show'\nconst HOVER_STATE_OUT = 'out'\n\nconst SELECTOR_TOOLTIP_INNER = '.tooltip-inner'\n\nconst TRIGGER_HOVER = 'hover'\nconst TRIGGER_FOCUS = 'focus'\nconst TRIGGER_CLICK = 'click'\nconst TRIGGER_MANUAL = 'manual'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\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)\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(event.delegateTarget, this._getDelegateConfig())\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if (this.getTipElement().classList.contains(CLASS_NAME_SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n EventHandler.off(this._element, this.constructor.EVENT_KEY)\n EventHandler.off(this._element.closest(`.${CLASS_NAME_MODAL}`), 'hide.bs.modal', this._hideModalHandler)\n\n if (this.tip) {\n this.tip.parentNode.removeChild(this.tip)\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.config = null\n this.tip = null\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 const showEvent = EventHandler.trigger(this._element, this.constructor.Event.SHOW)\n const shadowRoot = findShadowRoot(this._element)\n const isInTheDom = shadowRoot === null ?\n this._element.ownerDocument.documentElement.contains(this._element) :\n shadowRoot.contains(this._element)\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this._element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n tip.classList.add(CLASS_NAME_FADE)\n }\n\n const placement = typeof this.config.placement === 'function' ?\n this.config.placement.call(this, tip, this._element) :\n this.config.placement\n\n const attachment = this._getAttachment(placement)\n this._addAttachmentClass(attachment)\n\n const container = this._getContainer()\n Data.setData(tip, this.constructor.DATA_KEY, this)\n\n if (!this._element.ownerDocument.documentElement.contains(this.tip)) {\n container.appendChild(tip)\n }\n\n EventHandler.trigger(this._element, this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this._element, tip, this._getPopperConfig(attachment))\n\n tip.classList.add(CLASS_NAME_SHOW)\n\n const customClass = typeof this.config.customClass === 'function' ? this.config.customClass() : this.config.customClass\n if (customClass) {\n tip.classList.add(...customClass.split(' '))\n }\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 [].concat(...document.body.children).forEach(element => {\n EventHandler.on(element, 'mouseover', noop())\n })\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n EventHandler.trigger(this._element, this.constructor.Event.SHOWN)\n\n if (prevHoverState === HOVER_STATE_OUT) {\n this._leave(null, this)\n }\n }\n\n if (this.tip.classList.contains(CLASS_NAME_FADE)) {\n const transitionDuration = getTransitionDurationFromElement(this.tip)\n EventHandler.one(this.tip, TRANSITION_END, complete)\n emulateTransitionEnd(this.tip, transitionDuration)\n } else {\n complete()\n }\n }\n }\n\n hide() {\n if (!this._popper) {\n return\n }\n\n const tip = this.getTipElement()\n const complete = () => {\n if (this._hoverState !== HOVER_STATE_SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this._element.removeAttribute('aria-describedby')\n EventHandler.trigger(this._element, this.constructor.Event.HIDDEN)\n this._popper.destroy()\n }\n\n const hideEvent = EventHandler.trigger(this._element, this.constructor.Event.HIDE)\n if (hideEvent.defaultPrevented) {\n return\n }\n\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 [].concat(...document.body.children)\n .forEach(element => EventHandler.off(element, 'mouseover', noop))\n }\n\n this._activeTrigger[TRIGGER_CLICK] = false\n this._activeTrigger[TRIGGER_FOCUS] = false\n this._activeTrigger[TRIGGER_HOVER] = false\n\n if (this.tip.classList.contains(CLASS_NAME_FADE)) {\n const transitionDuration = getTransitionDurationFromElement(tip)\n\n EventHandler.one(tip, TRANSITION_END, complete)\n emulateTransitionEnd(tip, transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n getTipElement() {\n if (this.tip) {\n return this.tip\n }\n\n const element = document.createElement('div')\n element.innerHTML = this.config.template\n\n this.tip = element.children[0]\n return this.tip\n }\n\n setContent() {\n const tip = this.getTipElement()\n this.setElementContent(SelectorEngine.findOne(SELECTOR_TOOLTIP_INNER, tip), this.getTitle())\n tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW)\n }\n\n setElementContent(element, content) {\n if (element === null) {\n return\n }\n\n if (typeof content === 'object' && isElement(content)) {\n if (content.jquery) {\n content = content[0]\n }\n\n // content is a DOM node or a jQuery\n if (this.config.html) {\n if (content.parentNode !== element) {\n element.innerHTML = ''\n element.appendChild(content)\n }\n } else {\n element.textContent = content.textContent\n }\n\n return\n }\n\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.allowList, this.config.sanitizeFn)\n }\n\n element.innerHTML = content\n } else {\n element.textContent = content\n }\n }\n\n getTitle() {\n let title = this._element.getAttribute('data-bs-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function' ?\n this.config.title.call(this._element) :\n this.config.title\n }\n\n return title\n }\n\n updateAttachment(attachment) {\n if (attachment === 'right') {\n return 'end'\n }\n\n if (attachment === 'left') {\n return 'start'\n }\n\n return attachment\n }\n\n // Private\n\n _getPopperConfig(attachment) {\n const defaultBsConfig = {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: `.${this.constructor.NAME}-arrow`\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: data => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: data => this._handlePopperPlacementChange(data)\n }\n\n return {\n ...defaultBsConfig,\n ...this.config.popperConfig\n }\n }\n\n _addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${this.updateAttachment(attachment)}`)\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this.config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...(this.config.offset(data.offsets, this._element) || {})\n }\n\n return data\n }\n } else {\n offset.offset = this.config.offset\n }\n\n return offset\n }\n\n _getContainer() {\n if (this.config.container === false) {\n return document.body\n }\n\n if (isElement(this.config.container)) {\n return this.config.container\n }\n\n return SelectorEngine.findOne(this.config.container)\n }\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach(trigger => {\n if (trigger === 'click') {\n EventHandler.on(this._element, this.constructor.Event.CLICK, this.config.selector, event => this.toggle(event)\n )\n } else if (trigger !== TRIGGER_MANUAL) {\n const eventIn = trigger === TRIGGER_HOVER ?\n this.constructor.Event.MOUSEENTER :\n this.constructor.Event.FOCUSIN\n const eventOut = trigger === TRIGGER_HOVER ?\n this.constructor.Event.MOUSELEAVE :\n this.constructor.Event.FOCUSOUT\n\n EventHandler.on(this._element, eventIn, this.config.selector, event => this._enter(event))\n EventHandler.on(this._element, eventOut, this.config.selector, event => this._leave(event))\n }\n })\n\n this._hideModalHandler = () => {\n if (this._element) {\n this.hide()\n }\n }\n\n EventHandler.on(this._element.closest(`.${CLASS_NAME_MODAL}`), 'hide.bs.modal', this._hideModalHandler)\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const title = this._element.getAttribute('title')\n const originalTitleType = typeof this._element.getAttribute('data-bs-original-title')\n\n if (title || originalTitleType !== 'string') {\n this._element.setAttribute('data-bs-original-title', title || '')\n if (title && !this._element.getAttribute('aria-label') && !this._element.textContent) {\n this._element.setAttribute('aria-label', title)\n }\n\n this._element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER\n ] = true\n }\n\n if (context.getTipElement().classList.contains(CLASS_NAME_SHOW) || context._hoverState === HOVER_STATE_SHOW) {\n context._hoverState = HOVER_STATE_SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this._element)\n\n Object.keys(dataAttributes).forEach(dataAttr => {\n if (DISALLOWED_ATTRIBUTES.has(dataAttr)) {\n delete dataAttributes[dataAttr]\n }\n })\n\n if (config && typeof config.container === 'object' && config.container.jquery) {\n config.container = config.container[0]\n }\n\n config = {\n ...this.constructor.Default,\n ...dataAttributes,\n ...(typeof config === 'object' && config ? config : {})\n }\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 typeCheckConfig(NAME, config, this.constructor.DefaultType)\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.allowList, config.sanitizeFn)\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n _handlePopperPlacementChange(popperData) {\n this.tip = popperData.instance.popper\n this._cleanTipClass()\n this._addAttachmentClass(this._getAttachment(popperData.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n\n tip.classList.remove(CLASS_NAME_FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n }\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 * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Tooltip to jQuery only if jQuery is present\n */\n\nonDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tooltip.jQueryInterface\n $.fn[NAME].Constructor = Tooltip\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip.jQueryInterface\n }\n }\n})\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getjQuery, onDOMContentLoaded } from './util/index'\nimport Data from './dom/data'\nimport SelectorEngine from './dom/selector-engine'\nimport Tooltip from './tooltip'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'popover'\nconst DATA_KEY = 'bs.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-popover'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst Default = {\n ...Tooltip.Default,\n placement: 'right',\n trigger: 'click',\n content: '',\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}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content: '(string|element|function)'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_TITLE = '.popover-header'\nconst SELECTOR_CONTENT = '.popover-body'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Popover extends Tooltip {\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n setContent() {\n const tip = this.getTipElement()\n\n // we use append for html objects to maintain js events\n this.setElementContent(SelectorEngine.findOne(SELECTOR_TITLE, tip), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this._element)\n }\n\n this.setElementContent(SelectorEngine.findOne(SELECTOR_CONTENT, tip), content)\n\n tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW)\n }\n\n // Private\n\n _addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${this.updateAttachment(attachment)}`)\n }\n\n _getContent() {\n return this._element.getAttribute('data-bs-content') || this.config.content\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n Data.setData(this, DATA_KEY, data)\n }\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 * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Popover to jQuery only if jQuery is present\n */\n\nonDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Popover.jQueryInterface\n $.fn[NAME].Constructor = Popover\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover.jQueryInterface\n }\n }\n})\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n onDOMContentLoaded,\n getSelectorFromElement,\n getUID,\n isElement,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollspy'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n offset: 10,\n method: 'auto',\n target: ''\n}\n\nconst DefaultType = {\n offset: 'number',\n method: 'string',\n target: '(string|element)'\n}\n\nconst EVENT_ACTIVATE = `activate${EVENT_KEY}`\nconst EVENT_SCROLL = `scroll${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_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_DROPDOWN = '.dropdown'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\n\nconst METHOD_OFFSET = 'offset'\nconst METHOD_POSITION = 'position'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy extends BaseComponent {\n constructor(element, config) {\n super(element)\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${SELECTOR_NAV_LINKS}, ${this._config.target} ${SELECTOR_LIST_ITEMS}, ${this._config.target} .${CLASS_NAME_DROPDOWN_ITEM}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n EventHandler.on(this._scrollElement, EVENT_SCROLL, event => this._process(event))\n\n this.refresh()\n this._process()\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window ?\n METHOD_OFFSET :\n METHOD_POSITION\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod :\n this._config.method\n\n const offsetBase = offsetMethod === METHOD_POSITION ?\n this._getScrollTop() :\n 0\n\n this._offsets = []\n this._targets = []\n this._scrollHeight = this._getScrollHeight()\n\n const targets = SelectorEngine.find(this._selector)\n\n targets.map(element => {\n const targetSelector = getSelectorFromElement(element)\n const target = targetSelector ? SelectorEngine.findOne(targetSelector) : null\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n return [\n Manipulator[offsetMethod](target).top + offsetBase,\n targetSelector\n ]\n }\n }\n\n return null\n })\n .filter(item => item)\n .sort((a, b) => a[0] - b[0])\n .forEach(item => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n super.dispose()\n EventHandler.off(this._scrollElement, EVENT_KEY)\n\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (typeof config.target !== 'string' && isElement(config.target)) {\n let { id } = config.target\n if (!id) {\n id = getUID(NAME)\n config.target.id = id\n }\n\n config.target = `#${id}`\n }\n\n typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window ?\n this._scrollElement.pageYOffset :\n this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window ?\n window.innerHeight :\n this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n for (let i = this._offsets.length; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector.split(',')\n .map(selector => `${selector}[data-bs-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const link = SelectorEngine.findOne(queries.join(','))\n\n if (link.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) {\n SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE, link.closest(SELECTOR_DROPDOWN))\n .classList.add(CLASS_NAME_ACTIVE)\n\n link.classList.add(CLASS_NAME_ACTIVE)\n } else {\n // Set triggered link as active\n link.classList.add(CLASS_NAME_ACTIVE)\n\n SelectorEngine.parents(link, SELECTOR_NAV_LIST_GROUP)\n .forEach(listGroup => {\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 SelectorEngine.prev(listGroup, `${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`)\n .forEach(item => item.classList.add(CLASS_NAME_ACTIVE))\n\n // Handle special case when .nav-link is inside .nav-item\n SelectorEngine.prev(listGroup, SELECTOR_NAV_ITEMS)\n .forEach(navItem => {\n SelectorEngine.children(navItem, SELECTOR_NAV_LINKS)\n .forEach(item => item.classList.add(CLASS_NAME_ACTIVE))\n })\n })\n }\n\n EventHandler.trigger(this._scrollElement, EVENT_ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n SelectorEngine.find(this._selector)\n .filter(node => node.classList.contains(CLASS_NAME_ACTIVE))\n .forEach(node => node.classList.remove(CLASS_NAME_ACTIVE))\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n }\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 * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n SelectorEngine.find(SELECTOR_DATA_SPY)\n .forEach(spy => new ScrollSpy(spy, Manipulator.getDataAttributes(spy)))\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .ScrollSpy to jQuery only if jQuery is present\n */\n\nonDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = ScrollSpy.jQueryInterface\n $.fn[NAME].Constructor = ScrollSpy\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy.jQueryInterface\n }\n }\n})\n\nexport default ScrollSpy\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n onDOMContentLoaded,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\n reflow\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tab'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\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}`\n\nconst CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_UL = ':scope > li > .active'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"tab\"], [data-bs-toggle=\"pill\"], [data-bs-toggle=\"list\"]'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\nconst SELECTOR_DROPDOWN_ACTIVE_CHILD = ':scope > .dropdown-menu .active'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tab extends BaseComponent {\n // Getters\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n show() {\n if ((this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n this._element.classList.contains(CLASS_NAME_ACTIVE)) ||\n this._element.classList.contains(CLASS_NAME_DISABLED)) {\n return\n }\n\n let previous\n const target = getElementFromSelector(this._element)\n const listElement = this._element.closest(SELECTOR_NAV_LIST_GROUP)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE\n previous = SelectorEngine.find(itemSelector, listElement)\n previous = previous[previous.length - 1]\n }\n\n let hideEvent = null\n\n if (previous) {\n hideEvent = EventHandler.trigger(previous, EVENT_HIDE, {\n relatedTarget: this._element\n })\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, {\n relatedTarget: previous\n })\n\n if (showEvent.defaultPrevented || (hideEvent !== null && hideEvent.defaultPrevented)) {\n return\n }\n\n this._activate(this._element, listElement)\n\n const complete = () => {\n EventHandler.trigger(previous, EVENT_HIDDEN, {\n relatedTarget: this._element\n })\n EventHandler.trigger(this._element, EVENT_SHOWN, {\n relatedTarget: previous\n })\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n // Private\n\n _activate(element, container, callback) {\n const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ?\n SelectorEngine.find(SELECTOR_ACTIVE_UL, container) :\n SelectorEngine.children(container, SELECTOR_ACTIVE)\n\n const active = activeElements[0]\n const isTransitioning = callback && (active && active.classList.contains(CLASS_NAME_FADE))\n\n const complete = () => this._transitionComplete(element, active, callback)\n\n if (active && isTransitioning) {\n const transitionDuration = getTransitionDurationFromElement(active)\n active.classList.remove(CLASS_NAME_SHOW)\n\n EventHandler.one(active, TRANSITION_END, complete)\n emulateTransitionEnd(active, transitionDuration)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n active.classList.remove(CLASS_NAME_ACTIVE)\n\n const dropdownChild = SelectorEngine.findOne(SELECTOR_DROPDOWN_ACTIVE_CHILD, active.parentNode)\n\n if (dropdownChild) {\n dropdownChild.classList.remove(CLASS_NAME_ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n element.classList.add(CLASS_NAME_ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n reflow(element)\n\n if (element.classList.contains(CLASS_NAME_FADE)) {\n element.classList.add(CLASS_NAME_SHOW)\n }\n\n if (element.parentNode && element.parentNode.classList.contains(CLASS_NAME_DROPDOWN_MENU)) {\n const dropdownElement = element.closest(SELECTOR_DROPDOWN)\n\n if (dropdownElement) {\n SelectorEngine.find(SELECTOR_DROPDOWN_TOGGLE)\n .forEach(dropdown => dropdown.classList.add(CLASS_NAME_ACTIVE))\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\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 * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault()\n\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n data.show()\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Tab to jQuery only if jQuery is present\n */\n\nonDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tab.jQueryInterface\n $.fn[NAME].Constructor = Tab\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab.jQueryInterface\n }\n }\n})\n\nexport default Tab\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n onDOMContentLoaded,\n TRANSITION_END,\n emulateTransitionEnd,\n getTransitionDurationFromElement,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'toast'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_CLICK_DISMISS = `click.dismiss${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'\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\nconst SELECTOR_DATA_DISMISS = '[data-bs-dismiss=\"toast\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n }\n\n // Getters\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get Default() {\n return Default\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\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 this._element.classList.add(CLASS_NAME_SHOW)\n\n EventHandler.trigger(this._element, EVENT_SHOWN)\n\n if (this._config.autohide) {\n this._timeout = setTimeout(() => {\n this.hide()\n }, this._config.delay)\n }\n }\n\n this._element.classList.remove(CLASS_NAME_HIDE)\n reflow(this._element)\n this._element.classList.add(CLASS_NAME_SHOWING)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n hide() {\n if (!this._element.classList.contains(CLASS_NAME_SHOW)) {\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)\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n }\n\n this._element.classList.remove(CLASS_NAME_SHOW)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n dispose() {\n this._clearTimeout()\n\n if (this._element.classList.contains(CLASS_NAME_SHOW)) {\n this._element.classList.remove(CLASS_NAME_SHOW)\n }\n\n EventHandler.off(this._element, EVENT_CLICK_DISMISS)\n\n super.dispose()\n this._config = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...(typeof config === 'object' && config ? config : {})\n }\n\n typeCheckConfig(NAME, config, this.constructor.DefaultType)\n\n return config\n }\n\n _setListeners() {\n EventHandler.on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, () => this.hide())\n }\n\n _clearTimeout() {\n clearTimeout(this._timeout)\n this._timeout = null\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new Toast(this, _config)\n }\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 * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Toast to jQuery only if jQuery is present\n */\n\nonDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Toast.jQueryInterface\n $.fn[NAME].Constructor = Toast\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Toast.jQueryInterface\n }\n }\n})\n\nexport default Toast\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): index.umd.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Alert from './src/alert'\nimport Button from './src/button'\nimport Carousel from './src/carousel'\nimport Collapse from './src/collapse'\nimport Dropdown from './src/dropdown'\nimport Modal from './src/modal'\nimport Popover from './src/popover'\nimport ScrollSpy from './src/scrollspy'\nimport Tab from './src/tab'\nimport Toast from './src/toast'\nimport Tooltip from './src/tooltip'\n\nexport default {\n Alert,\n Button,\n Carousel,\n Collapse,\n Dropdown,\n Modal,\n Popover,\n ScrollSpy,\n Tab,\n Toast,\n Tooltip\n}\n"]}
\ No newline at end of file +{"version":3,"sources":["../../js/src/util/index.js","../../js/src/dom/data.js","../../js/src/dom/event-handler.js","../../js/src/base-component.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/dom/manipulator.js","../../js/src/dom/selector-engine.js","../../js/src/carousel.js","../../js/src/collapse.js","../../node_modules/@popperjs/core/lib/enums.js","../../node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","../../node_modules/@popperjs/core/lib/dom-utils/getWindow.js","../../node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","../../node_modules/@popperjs/core/lib/modifiers/applyStyles.js","../../node_modules/@popperjs/core/lib/utils/getBasePlacement.js","../../node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","../../node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","../../node_modules/@popperjs/core/lib/dom-utils/contains.js","../../node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","../../node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","../../node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","../../node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","../../node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","../../node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","../../node_modules/@popperjs/core/lib/utils/math.js","../../node_modules/@popperjs/core/lib/utils/within.js","../../node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","../../node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","../../node_modules/@popperjs/core/lib/utils/expandToHashMap.js","../../node_modules/@popperjs/core/lib/modifiers/arrow.js","../../node_modules/@popperjs/core/lib/modifiers/computeStyles.js","../../node_modules/@popperjs/core/lib/modifiers/eventListeners.js","../../node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","../../node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","../../node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","../../node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","../../node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","../../node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","../../node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","../../node_modules/@popperjs/core/lib/utils/rectToClientRect.js","../../node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","../../node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","../../node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","../../node_modules/@popperjs/core/lib/utils/getVariation.js","../../node_modules/@popperjs/core/lib/utils/computeOffsets.js","../../node_modules/@popperjs/core/lib/utils/detectOverflow.js","../../node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","../../node_modules/@popperjs/core/lib/modifiers/flip.js","../../node_modules/@popperjs/core/lib/modifiers/hide.js","../../node_modules/@popperjs/core/lib/modifiers/offset.js","../../node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","../../node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","../../node_modules/@popperjs/core/lib/utils/getAltAxis.js","../../node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","../../node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","../../node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","../../node_modules/@popperjs/core/lib/createPopper.js","../../node_modules/@popperjs/core/lib/utils/debounce.js","../../node_modules/@popperjs/core/lib/utils/mergeByName.js","../../node_modules/@popperjs/core/lib/utils/orderModifiers.js","../../node_modules/@popperjs/core/lib/popper-lite.js","../../node_modules/@popperjs/core/lib/popper.js","../../js/src/dropdown.js","../../js/src/modal.js","../../js/src/util/scrollbar.js","../../js/src/offcanvas.js","../../js/src/util/sanitizer.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/toast.js","../../js/index.umd.js"],"names":["getUID","prefix","Math","floor","random","document","getElementById","getSelector","element","selector","getAttribute","hrefAttr","includes","startsWith","split","trim","getSelectorFromElement","querySelector","getElementFromSelector","getTransitionDurationFromElement","transitionDuration","transitionDelay","window","getComputedStyle","floatTransitionDuration","Number","parseFloat","floatTransitionDelay","triggerTransitionEnd","dispatchEvent","Event","isElement","obj","nodeType","emulateTransitionEnd","duration","called","emulatedDuration","addEventListener","listener","removeEventListener","setTimeout","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","toString","call","match","toLowerCase","RegExp","test","TypeError","toUpperCase","isVisible","style","parentNode","elementStyle","parentNodeStyle","display","visibility","isDisabled","Node","ELEMENT_NODE","classList","contains","disabled","hasAttribute","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","noop","reflow","offsetHeight","getjQuery","jQuery","body","isRTL","dir","defineJQueryPlugin","name","plugin","callback","$","JQUERY_NO_CONFLICT","fn","jQueryInterface","Constructor","noConflict","readyState","elementMap","Map","Data","set","key","instance","has","instanceMap","get","size","console","error","Array","from","remove","delete","namespaceRegex","stripNameRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","nativeEvents","Set","getUidEvent","uid","getEvent","findHandler","events","handler","delegationSelector","uidEventList","i","len","length","event","originalHandler","normalizeParams","originalTypeEvent","delegationFn","delegation","typeEvent","replace","custom","addHandler","oneOff","handlers","previousFn","domElements","querySelectorAll","target","this","delegateTarget","EventHandler","off","type","apply","bootstrapDelegationHandler","bootstrapHandler","removeHandler","Boolean","on","one","inNamespace","isNamespace","elementEvent","namespace","storeElementEvent","handlerKey","removeNamespacedHandlers","slice","keyHandlers","trigger","args","isNative","jQueryEvent","bubbles","nativeDispatch","defaultPrevented","evt","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","createEvent","initEvent","CustomEvent","cancelable","defineProperty","preventDefault","BaseComponent","constructor","_element","DATA_KEY","dispose","[object Object]","VERSION","Alert","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","_removeElement","closest","_destroyElement","removeChild","each","data","alertInstance","handleDismiss","Button","toggle","setAttribute","normalizeData","val","normalizeDataKey","chr","button","Manipulator","setDataAttribute","removeDataAttribute","removeAttribute","getDataAttributes","attributes","dataset","filter","pureKey","charAt","getDataAttribute","offset","rect","getBoundingClientRect","top","scrollTop","left","scrollLeft","position","offsetTop","offsetLeft","SelectorEngine","find","concat","Element","prototype","findOne","children","child","matches","parents","ancestor","push","prev","previous","previousElementSibling","next","nextElementSibling","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","ORDER_NEXT","ORDER_PREV","DIRECTION_LEFT","DIRECTION_RIGHT","Carousel","super","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","_addEventListeners","_slide","nextWhenVisible","hidden","cycle","clearInterval","_updateInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","order","_handleSwipe","absDeltax","abs","direction","_keydown","_addTouchEventListeners","start","pointerType","touches","clientX","move","end","clearTimeout","itemImg","e","add","tagName","indexOf","_getItemByOrder","activeElement","isNext","isPrev","lastItemIndex","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","_setActiveIndicatorElement","activeIndicator","indicators","parseInt","elementInterval","defaultInterval","directionOrOrder","_directionToOrder","activeElementIndex","nextElement","nextElementIndex","isCycling","directionalClassName","orderClassName","_orderToDirection","action","ride","carouselInterface","slideIndex","dataApiClickHandler","carousels","parent","Collapse","_isTransitioning","_triggerArray","id","toggleList","elem","filterElement","foundElem","_selector","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","container","tempActiveData","elemActive","collapseInterface","dimension","_getDimension","setTransitioning","scrollSize","triggerArrayLength","isTransitioning","jquery","selected","triggerArray","isOpen","triggerData","bottom","right","basePlacements","variationPlacements","reduce","acc","placement","placements","modifierPhases","getNodeName","nodeName","getWindow","node","ownerDocument","defaultView","isHTMLElement","HTMLElement","isShadowRoot","applyStyles$1","enabled","phase","_ref","state","elements","styles","assign","effect","_ref2","initialStyles","popper","options","strategy","margin","arrow","reference","hasOwnProperty","attribute","requires","getBasePlacement","width","height","x","y","getLayoutRect","clientRect","offsetWidth","rootNode","isSameNode","host","isTableElement","getDocumentElement","getParentNode","assignedSlot","getTrueOffsetParent","offsetParent","getOffsetParent","isFirefox","userAgent","currentNode","css","transform","perspective","contain","willChange","getContainingBlock","getMainAxisFromPlacement","max","min","round","within","mathMax","mathMin","mergePaddingObject","paddingObject","expandToHashMap","hashMap","arrow$1","_state$modifiersData$","arrowElement","popperOffsets","modifiersData","basePlacement","axis","padding","rects","toPaddingObject","arrowRect","minProp","maxProp","endDiff","startDiff","arrowOffsetParent","clientSize","clientHeight","clientWidth","centerToReference","center","axisProp","centerOffset","_options$element","requiresIfExists","unsetSides","mapToStyles","_Object$assign2","popperRect","offsets","gpuAcceleration","adaptive","roundOffsets","_ref3","dpr","devicePixelRatio","roundOffsetsByDPR","_ref3$x","_ref3$y","hasX","hasY","sideX","sideY","win","heightProp","widthProp","_Object$assign","commonStyles","computeStyles$1","_ref4","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","data-popper-placement","passive","eventListeners","_options$scroll","scroll","_options$resize","resize","scrollParents","scrollParent","update","hash","getOppositePlacement","matched","getOppositeVariationPlacement","getWindowScroll","pageXOffset","pageYOffset","getWindowScrollBarX","isScrollParent","_getComputedStyle","overflow","overflowX","overflowY","listScrollParents","list","_element$ownerDocumen","getScrollParent","isBody","visualViewport","updatedList","rectToClientRect","getClientRectFromMixedType","clippingParent","html","getViewportRect","clientTop","clientLeft","getInnerBoundingClientRect","winScroll","scrollWidth","scrollHeight","getDocumentRect","getVariation","computeOffsets","variation","commonX","commonY","mainAxis","detectOverflow","_options","_options$placement","_options$boundary","boundary","_options$rootBoundary","rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","altContext","referenceElement","clippingClientRect","mainClippingParents","clippingParents","clipperElement","getClippingParents","firstClippingParent","clippingRect","accRect","getClippingRect","contextElement","referenceClientRect","popperClientRect","elementClientRect","overflowOffsets","offsetData","multiply","computeAutoPlacement","flipVariations","_options$allowedAutoP","allowedAutoPlacements","allPlacements","allowedPlacements","overflows","sort","a","b","flip$1","_skip","_options$mainAxis","checkMainAxis","_options$altAxis","altAxis","checkAltAxis","specifiedFallbackPlacements","fallbackPlacements","_options$flipVariatio","preferredPlacement","oppositePlacement","getExpandedFallbackPlacements","referenceRect","checksMap","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","isVertical","mainVariationSide","altVariationSide","checks","every","check","_loop","_i","fittingPlacement","reset","getSideOffsets","preventedOffsets","isAnySideFullyClipped","some","side","hide$2","preventOverflow","referenceOverflow","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","data-popper-reference-hidden","data-popper-escaped","offset$1","_options$offset","invertDistance","skidding","distance","distanceAndSkiddingToXY","_data$state$placement","popperOffsets$1","preventOverflow$1","_options$tether","tether","_options$tetherOffset","tetherOffset","isBasePlacement","tetherOffsetValue","mainSide","altSide","additive","minLen","maxLen","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","clientOffset","offsetModifierValue","tetherMin","tetherMax","preventedOffset","_mainSide","_altSide","_offset","_min","_max","_preventedOffset","getCompositeRect","elementOrVirtualElement","isFixed","isOffsetParentAnElement","DEFAULT_OPTIONS","modifiers","areValidElements","_len","arguments","_key","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","defaultOptions","pending","orderedModifiers","effectCleanupFns","isDestroyed","setOptions","cleanupModifierEffects","merged","map","visited","result","modifier","dep","depModifier","orderModifiers","current","existing","m","_ref3$options","cleanupFn","forceUpdate","_state$elements","_state$orderedModifie","_state$orderedModifie2","Promise","resolve","then","undefined","destroy","onFirstUpdate","createPopper","computeStyles","applyStyles","flip","REGEXP_KEYDOWN","PLACEMENT_TOP","PLACEMENT_TOPEND","PLACEMENT_BOTTOM","PLACEMENT_BOTTOMEND","PLACEMENT_RIGHT","PLACEMENT_LEFT","popperConfig","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","isActive","clearMenus","getParentFromElement","Popper","_getPopperConfig","isDisplayStatic","focus","_getPlacement","parentDropdown","isEnd","getPropertyValue","_getOffset","popperData","defaultBsPopperConfig","dropdownInterface","toggles","context","clickEvent","dropdownMenu","composedPath","stopPropagation","click","items","dataApiKeydownHandler","backdrop","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_isAnimated","showEvent","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","isAnimated","_hideModal","htmlElement","handleUpdate","modalBody","appendChild","_enforceFocus","transitionComplete","_triggerBackdropTransition","_resetAdjustments","_resetScrollbar","_removeBackdrop","createElement","className","currentTarget","backdropTransitionDuration","callbackRemove","isModalOverflowing","modalTransitionDuration","paddingLeft","paddingRight","innerWidth","_getScrollbarWidth","_setElementAttributes","calculatedValue","styleProp","actualValue","_resetElementAttributes","scrollDiv","scrollbarWidth","getWidth","documentWidth","removeProperty","Offcanvas","scrollBarHide","_enforceFocusOnElement","blur","allReadyOpen","el","uriAttrs","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","attr","allowedAttributeList","attrName","nodeValue","regExp","attrRegex","sanitizeHtml","unsafeHtml","allowList","sanitizeFn","createdDocument","DOMParser","parseFromString","allowlistKeys","elName","attributeList","allowedAttributes","innerHTML","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","customClass","sanitize","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","*","area","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","NAME","EVENT_KEY","enable","disable","toggleEnabled","_initializeOnDelegatedTarget","_isWithActiveTrigger","_enter","_leave","getTipElement","_hideModalHandler","Error","isWithContent","shadowRoot","isInTheDom","tipId","setContent","attachment","_getAttachment","_addAttachmentClass","_getContainer","complete","prevHoverState","_cleanTipClass","getTitle","setElementContent","content","textContent","updateAttachment","dataKey","_getDelegateConfig","_handlePopperPlacementChange","eventIn","eventOut","_fixTitle","originalTitleType","dataAttributes","dataAttr","tabClass","token","tClass","Popover","_getContent","method","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targetSelector","targetBCR","item","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","queries","link","join","listGroup","navItem","spy","Tab","listElement","itemSelector","hideEvent","active","_transitionComplete","dropdownChild","dropdown","autohide","Toast","_clearTimeout"],"mappings":"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","sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => {\n if (obj === null || obj === undefined) {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n prefix += Math.floor(Math.random() * MAX_UID)\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelector = element => {\n let selector = element.getAttribute('data-bs-target')\n\n if (!selector || selector === '#') {\n let hrefAttr = 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 (!hrefAttr || (!hrefAttr.includes('#') && !hrefAttr.startsWith('.'))) {\n return null\n }\n\n // Just in case some CMS puts out a full URL with the anchor appended\n if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {\n hrefAttr = '#' + hrefAttr.split('#')[1]\n }\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null\n }\n\n return selector\n}\n\nconst getSelectorFromElement = element => {\n const selector = getSelector(element)\n\n if (selector) {\n return document.querySelector(selector) ? selector : null\n }\n\n return null\n}\n\nconst getElementFromSelector = element => {\n const selector = getSelector(element)\n\n return selector ? document.querySelector(selector) : null\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 = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes).forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ? 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`\n )\n }\n })\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n const elementStyle = getComputedStyle(element)\n const parentNodeStyle = getComputedStyle(element.parentNode)\n\n return elementStyle.display !== 'none' &&\n parentNodeStyle.display !== 'none' &&\n elementStyle.visibility !== 'hidden'\n }\n\n return false\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 = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nconst getjQuery = () => {\n const { jQuery } = window\n\n if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n return jQuery\n }\n\n return null\n}\n\nconst onDOMContentLoaded = callback => {\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', callback)\n } else {\n callback()\n }\n}\n\nconst isRTL = () => document.documentElement.dir === 'rtl'\n\nconst defineJQueryPlugin = (name, plugin) => {\n onDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\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\nexport {\n getUID,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n isVisible,\n isDisabled,\n findShadowRoot,\n noop,\n reflow,\n getjQuery,\n onDOMContentLoaded,\n isRTL,\n defineJQueryPlugin\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\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 (v5.0.0-beta3): dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getjQuery } from '../util/index'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\nconst nativeEvents = new Set([\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 * ------------------------------------------------------------------------\n * Private methods\n * ------------------------------------------------------------------------\n */\n\nfunction getUidEvent(element, uid) {\n return (uid && `${uid}::${uidEvent++}`) || element.uidEvent || uidEvent++\n}\n\nfunction getEvent(element) {\n const uid = getUidEvent(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 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 (let i = domElements.length; i--;) {\n if (domElements[i] === target) {\n event.delegateTarget = target\n\n if (handler.oneOff) {\n // eslint-disable-next-line unicorn/consistent-destructuring\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(target, [event])\n }\n }\n }\n\n // To please ESLint\n return null\n }\n}\n\nfunction findHandler(events, handler, delegationSelector = null) {\n const uidEventList = Object.keys(events)\n\n for (let i = 0, len = uidEventList.length; i < len; i++) {\n const event = events[uidEventList[i]]\n\n if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {\n return event\n }\n }\n\n return null\n}\n\nfunction normalizeParams(originalTypeEvent, handler, delegationFn) {\n const delegation = typeof handler === 'string'\n const originalHandler = delegation ? delegationFn : handler\n\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n let typeEvent = originalTypeEvent.replace(stripNameRegex, '')\n const custom = customEvents[typeEvent]\n\n if (custom) {\n typeEvent = custom\n }\n\n const isNative = nativeEvents.has(typeEvent)\n\n if (!isNative) {\n typeEvent = originalTypeEvent\n }\n\n return [delegation, originalHandler, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n if (!handler) {\n handler = delegationFn\n delegationFn = null\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const events = getEvent(element)\n const handlers = events[typeEvent] || (events[typeEvent] = {})\n const previousFn = findHandler(handlers, originalHandler, delegation ? handler : null)\n\n if (previousFn) {\n previousFn.oneOff = previousFn.oneOff && oneOff\n\n return\n }\n\n const uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, ''))\n const fn = delegation ?\n bootstrapDelegationHandler(element, handler, delegationFn) :\n bootstrapHandler(element, handler)\n\n fn.delegationSelector = delegation ? handler : null\n fn.originalHandler = originalHandler\n fn.oneOff = oneOff\n fn.uidEvent = uid\n handlers[uid] = fn\n\n element.addEventListener(typeEvent, fn, delegation)\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 Object.keys(storeElementEvent).forEach(handlerKey => {\n if (handlerKey.includes(namespace)) {\n const event = storeElementEvent[handlerKey]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, false)\n },\n\n one(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFn) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getEvent(element)\n const isNamespace = originalTypeEvent.startsWith('.')\n\n if (typeof originalHandler !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!events || !events[typeEvent]) {\n return\n }\n\n removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null)\n return\n }\n\n if (isNamespace) {\n Object.keys(events).forEach(elementEvent => {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1))\n })\n }\n\n const storeElementEvent = events[typeEvent] || {}\n Object.keys(storeElementEvent).forEach(keyHandlers => {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.includes(handlerKey)) {\n const event = storeElementEvent[keyHandlers]\n\n removeHandler(element, events, typeEvent, event.originalHandler, 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 = event.replace(stripNameRegex, '')\n const inNamespace = event !== typeEvent\n const isNative = nativeEvents.has(typeEvent)\n\n let jQueryEvent\n let bubbles = true\n let nativeDispatch = true\n let defaultPrevented = false\n let evt = null\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 if (isNative) {\n evt = document.createEvent('HTMLEvents')\n evt.initEvent(typeEvent, bubbles, true)\n } else {\n evt = new CustomEvent(event, {\n bubbles,\n cancelable: true\n })\n }\n\n // merge custom information in our event\n if (typeof args !== 'undefined') {\n Object.keys(args).forEach(key => {\n Object.defineProperty(evt, key, {\n get() {\n return args[key]\n }\n })\n })\n }\n\n if (defaultPrevented) {\n evt.preventDefault()\n }\n\n if (nativeDispatch) {\n element.dispatchEvent(evt)\n }\n\n if (evt.defaultPrevented && typeof jQueryEvent !== 'undefined') {\n jQueryEvent.preventDefault()\n }\n\n return evt\n }\n}\n\nexport default EventHandler\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): base-component.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Data from './dom/data'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst VERSION = '5.0.0-beta3'\n\nclass BaseComponent {\n constructor(element) {\n element = typeof element === 'string' ? document.querySelector(element) : element\n\n if (!element) {\n return\n }\n\n this._element = element\n Data.set(this._element, this.constructor.DATA_KEY, this)\n }\n\n dispose() {\n Data.remove(this._element, this.constructor.DATA_KEY)\n this._element = null\n }\n\n /** Static */\n\n static getInstance(element) {\n return Data.get(element, this.DATA_KEY)\n }\n\n static get VERSION() {\n return VERSION\n }\n}\n\nexport default BaseComponent\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n defineJQueryPlugin,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'alert'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst SELECTOR_DISMISS = '[data-bs-dismiss=\"alert\"]'\n\nconst EVENT_CLOSE = `close${EVENT_KEY}`\nconst EVENT_CLOSED = `closed${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_ALERT = 'alert'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Alert extends BaseComponent {\n // Getters\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n close(element) {\n const rootElement = element ? this._getRootElement(element) : this._element\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent === null || customEvent.defaultPrevented) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n // Private\n\n _getRootElement(element) {\n return getElementFromSelector(element) || element.closest(`.${CLASS_NAME_ALERT}`)\n }\n\n _triggerCloseEvent(element) {\n return EventHandler.trigger(element, EVENT_CLOSE)\n }\n\n _removeElement(element) {\n element.classList.remove(CLASS_NAME_SHOW)\n\n if (!element.classList.contains(CLASS_NAME_FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = getTransitionDurationFromElement(element)\n\n EventHandler.one(element, 'transitionend', () => this._destroyElement(element))\n emulateTransitionEnd(element, transitionDuration)\n }\n\n _destroyElement(element) {\n if (element.parentNode) {\n element.parentNode.removeChild(element)\n }\n\n EventHandler.trigger(element, EVENT_CLOSED)\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.get(this, DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DISMISS, Alert.handleDismiss(new Alert()))\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Alert to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(NAME, Alert)\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { defineJQueryPlugin } from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\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'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"button\"]'\n\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Button extends BaseComponent {\n // Getters\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n toggle() {\n // Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method\n this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE))\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.get(this, DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\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\n let data = Data.get(button, DATA_KEY)\n if (!data) {\n data = new Button(button)\n }\n\n data.toggle()\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Button to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(NAME, Button)\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(val) {\n if (val === 'true') {\n return true\n }\n\n if (val === 'false') {\n return false\n }\n\n if (val === Number(val).toString()) {\n return Number(val)\n }\n\n if (val === '' || val === 'null') {\n return null\n }\n\n return val\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\n Object.keys(element.dataset)\n .filter(key => key.startsWith('bs'))\n .forEach(key => {\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 offset(element) {\n const rect = element.getBoundingClientRect()\n\n return {\n top: rect.top + document.body.scrollTop,\n left: rect.left + document.body.scrollLeft\n }\n },\n\n position(element) {\n return {\n top: element.offsetTop,\n left: element.offsetLeft\n }\n }\n}\n\nexport default Manipulator\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NODE_TEXT = 3\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)\n .filter(child => child.matches(selector))\n },\n\n parents(element, selector) {\n const parents = []\n\n let ancestor = element.parentNode\n\n while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {\n if (ancestor.matches(selector)) {\n parents.push(ancestor)\n }\n\n ancestor = ancestor.parentNode\n }\n\n return parents\n },\n\n prev(element, selector) {\n let previous = element.previousElementSibling\n\n while (previous) {\n if (previous.matches(selector)) {\n return [previous]\n }\n\n previous = previous.previousElementSibling\n }\n\n return []\n },\n\n 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\nexport default SelectorEngine\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n defineJQueryPlugin,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isRTL,\n isVisible,\n reflow,\n triggerTransitionEnd,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\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\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\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_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 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'\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event'\n\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_ITEM = '.active.carousel-item'\nconst SELECTOR_ITEM = '.carousel-item'\nconst SELECTOR_ITEM_IMG = '.carousel-item img'\nconst SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev'\nconst SELECTOR_INDICATORS = '.carousel-indicators'\nconst SELECTOR_INDICATOR = '[data-bs-target]'\nconst SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]'\nconst SELECTOR_DATA_RIDE = '[data-bs-ride=\"carousel\"]'\n\nconst POINTER_TYPE_TOUCH = 'touch'\nconst POINTER_TYPE_PEN = 'pen'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent)\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(ORDER_NEXT)\n }\n }\n\n nextWhenVisible() {\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 if (!this._isSliding) {\n this._slide(ORDER_PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (SelectorEngine.findOne(SELECTOR_NEXT_PREV, this._element)) {\n triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config && this._config.interval && !this._isPaused) {\n this._updateInterval()\n\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._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 if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const order = index > activeIndex ?\n ORDER_NEXT :\n ORDER_PREV\n\n this._slide(order, this._items[index])\n }\n\n dispose() {\n EventHandler.off(this._element, EVENT_KEY)\n\n this._items = null\n this._config = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n\n super.dispose()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n this.touchDeltaX = 0\n\n if (!direction) {\n return\n }\n\n this._slide(direction > 0 ? DIRECTION_RIGHT : DIRECTION_LEFT)\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, event => this.pause(event))\n EventHandler.on(this._element, EVENT_MOUSELEAVE, event => this.cycle(event))\n }\n\n if (this._config.touch && this._touchSupported) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n const start = event => {\n if (this._pointerEvent && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH)) {\n this.touchStartX = event.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.touches[0].clientX\n }\n }\n\n const move = event => {\n // ensure swiping with one touch and not pinching\n this.touchDeltaX = event.touches && event.touches.length > 1 ?\n 0 :\n event.touches[0].clientX - this.touchStartX\n }\n\n const end = event => {\n if (this._pointerEvent && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH)) {\n this.touchDeltaX = event.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\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(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n SelectorEngine.find(SELECTOR_ITEM_IMG, this._element).forEach(itemImg => {\n EventHandler.on(itemImg, EVENT_DRAG_START, e => e.preventDefault())\n })\n\n if (this._pointerEvent) {\n EventHandler.on(this._element, EVENT_POINTERDOWN, event => start(event))\n EventHandler.on(this._element, EVENT_POINTERUP, event => end(event))\n\n this._element.classList.add(CLASS_NAME_POINTER_EVENT)\n } else {\n EventHandler.on(this._element, EVENT_TOUCHSTART, event => start(event))\n EventHandler.on(this._element, EVENT_TOUCHMOVE, event => move(event))\n EventHandler.on(this._element, EVENT_TOUCHEND, event => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n if (event.key === ARROW_LEFT_KEY) {\n event.preventDefault()\n this._slide(DIRECTION_LEFT)\n } else if (event.key === ARROW_RIGHT_KEY) {\n event.preventDefault()\n this._slide(DIRECTION_RIGHT)\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode ?\n SelectorEngine.find(SELECTOR_ITEM, element.parentNode) :\n []\n\n return this._items.indexOf(element)\n }\n\n _getItemByOrder(order, activeElement) {\n const isNext = order === ORDER_NEXT\n const isPrev = order === ORDER_PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = (isPrev && activeIndex === 0) || (isNext && activeIndex === lastItemIndex)\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = isPrev ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1 ?\n this._items[this._items.length - 1] :\n this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element))\n\n return EventHandler.trigger(this._element, EVENT_SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\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 indicators = SelectorEngine.find(SELECTOR_INDICATOR, this._indicatorsElement)\n\n for (let i = 0; i < indicators.length; i++) {\n if (Number.parseInt(indicators[i].getAttribute('data-bs-slide-to'), 10) === this._getItemIndex(element)) {\n indicators[i].classList.add(CLASS_NAME_ACTIVE)\n indicators[i].setAttribute('aria-current', 'true')\n break\n }\n }\n }\n }\n\n _updateInterval() {\n const element = this._activeElement || SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n\n if (!element) {\n return\n }\n\n const elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10)\n\n if (elementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval\n this._config.interval = elementInterval\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval\n }\n }\n\n _slide(directionOrOrder, element) {\n const order = this._directionToOrder(directionOrOrder)\n const activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || this._getItemByOrder(order, activeElement)\n\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n const isNext = order === ORDER_NEXT\n const directionalClassName = isNext ? CLASS_NAME_START : CLASS_NAME_END\n const orderClassName = isNext ? CLASS_NAME_NEXT : CLASS_NAME_PREV\n const eventDirectionName = this._orderToDirection(order)\n\n if (nextElement && nextElement.classList.contains(CLASS_NAME_ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.defaultPrevented) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n this._activeElement = nextElement\n\n if (this._element.classList.contains(CLASS_NAME_SLIDE)) {\n nextElement.classList.add(orderClassName)\n\n reflow(nextElement)\n\n activeElement.classList.add(directionalClassName)\n nextElement.classList.add(directionalClassName)\n\n const transitionDuration = getTransitionDurationFromElement(activeElement)\n\n EventHandler.one(activeElement, 'transitionend', () => {\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 setTimeout(() => {\n EventHandler.trigger(this._element, EVENT_SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }, 0)\n })\n\n emulateTransitionEnd(activeElement, transitionDuration)\n } else {\n activeElement.classList.remove(CLASS_NAME_ACTIVE)\n nextElement.classList.add(CLASS_NAME_ACTIVE)\n\n this._isSliding = false\n EventHandler.trigger(this._element, EVENT_SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n _directionToOrder(direction) {\n if (![DIRECTION_RIGHT, DIRECTION_LEFT].includes(direction)) {\n return direction\n }\n\n if (isRTL()) {\n return direction === DIRECTION_RIGHT ? ORDER_PREV : ORDER_NEXT\n }\n\n return direction === DIRECTION_RIGHT ? ORDER_NEXT : ORDER_PREV\n }\n\n _orderToDirection(order) {\n if (![ORDER_NEXT, ORDER_PREV].includes(order)) {\n return order\n }\n\n if (isRTL()) {\n return order === ORDER_NEXT ? DIRECTION_LEFT : DIRECTION_RIGHT\n }\n\n return order === ORDER_NEXT ? DIRECTION_RIGHT : DIRECTION_LEFT\n }\n\n // Static\n\n static carouselInterface(element, config) {\n let data = Data.get(element, DATA_KEY)\n let _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element)\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(element, _config)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n\n data[action]()\n } else if (_config.interval && _config.ride) {\n data.pause()\n data.cycle()\n }\n }\n\n static jQueryInterface(config) {\n return this.each(function () {\n Carousel.carouselInterface(this, config)\n })\n }\n\n static dataApiClickHandler(event) {\n const target = getElementFromSelector(this)\n\n if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {\n return\n }\n\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n const slideIndex = this.getAttribute('data-bs-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel.carouselInterface(target, config)\n\n if (slideIndex) {\n Data.get(target, DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, Carousel.dataApiClickHandler)\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE)\n\n for (let i = 0, len = carousels.length; i < len; i++) {\n Carousel.carouselInterface(carousels[i], Data.get(carousels[i], DATA_KEY))\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Carousel to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(NAME, Carousel)\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n defineJQueryPlugin,\n emulateTransitionEnd,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isElement,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'collapse'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n toggle: true,\n parent: ''\n}\n\nconst DefaultType = {\n toggle: 'boolean',\n parent: '(string|element)'\n}\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'\n\nconst WIDTH = 'width'\nconst HEIGHT = 'height'\n\nconst SELECTOR_ACTIVES = '.show, .collapsing'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"collapse\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._isTransitioning = false\n this._config = this._getConfig(config)\n this._triggerArray = SelectorEngine.find(\n `${SELECTOR_DATA_TOGGLE}[href=\"#${this._element.id}\"],` +\n `${SELECTOR_DATA_TOGGLE}[data-bs-target=\"#${this._element.id}\"]`\n )\n\n const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\n\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = getSelectorFromElement(elem)\n const filterElement = SelectorEngine.find(selector)\n .filter(foundElem => foundElem === this._element)\n\n if (selector !== null && filterElement.length) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n toggle() {\n if (this._element.classList.contains(CLASS_NAME_SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning || this._element.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = SelectorEngine.find(SELECTOR_ACTIVES, this._parent)\n .filter(elem => {\n if (typeof this._config.parent === 'string') {\n return elem.getAttribute('data-bs-parent') === this._config.parent\n }\n\n return elem.classList.contains(CLASS_NAME_COLLAPSE)\n })\n\n if (actives.length === 0) {\n actives = null\n }\n }\n\n const container = SelectorEngine.findOne(this._selector)\n if (actives) {\n const tempActiveData = actives.find(elem => container !== elem)\n activesData = tempActiveData ? Data.get(tempActiveData, DATA_KEY) : null\n\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = EventHandler.trigger(this._element, EVENT_SHOW)\n if (startEvent.defaultPrevented) {\n return\n }\n\n if (actives) {\n actives.forEach(elemActive => {\n if (container !== elemActive) {\n Collapse.collapseInterface(elemActive, 'hide')\n }\n\n if (!activesData) {\n Data.set(elemActive, DATA_KEY, null)\n }\n })\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 if (this._triggerArray.length) {\n this._triggerArray.forEach(element => {\n element.classList.remove(CLASS_NAME_COLLAPSED)\n element.setAttribute('aria-expanded', true)\n })\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\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 this.setTransitioning(false)\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 const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, 'transitionend', complete)\n\n emulateTransitionEnd(this._element, transitionDuration)\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning || !this._element.classList.contains(CLASS_NAME_SHOW)) {\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 const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const elem = getElementFromSelector(trigger)\n\n if (elem && !elem.classList.contains(CLASS_NAME_SHOW)) {\n trigger.classList.add(CLASS_NAME_COLLAPSED)\n trigger.setAttribute('aria-expanded', false)\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(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 const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, 'transitionend', complete)\n emulateTransitionEnd(this._element, transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n super.dispose()\n this._config = null\n this._parent = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n return this._element.classList.contains(WIDTH) ? WIDTH : HEIGHT\n }\n\n _getParent() {\n let { parent } = this._config\n\n if (isElement(parent)) {\n // it's a jQuery object\n if (typeof parent.jquery !== 'undefined' || typeof parent[0] !== 'undefined') {\n parent = parent[0]\n }\n } else {\n parent = SelectorEngine.findOne(parent)\n }\n\n const selector = `${SELECTOR_DATA_TOGGLE}[data-bs-parent=\"${parent}\"]`\n\n SelectorEngine.find(selector, parent)\n .forEach(element => {\n const selected = getElementFromSelector(element)\n\n this._addAriaAndCollapsedClass(\n selected,\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n if (!element || !triggerArray.length) {\n return\n }\n\n const isOpen = element.classList.contains(CLASS_NAME_SHOW)\n\n triggerArray.forEach(elem => {\n if (isOpen) {\n elem.classList.remove(CLASS_NAME_COLLAPSED)\n } else {\n elem.classList.add(CLASS_NAME_COLLAPSED)\n }\n\n elem.setAttribute('aria-expanded', isOpen)\n })\n }\n\n // Static\n\n static collapseInterface(element, config) {\n let data = Data.get(element, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element),\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(element, _config)\n }\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 static jQueryInterface(config) {\n return this.each(function () {\n Collapse.collapseInterface(this, config)\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\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 const triggerData = Manipulator.getDataAttributes(this)\n const selector = getSelectorFromElement(this)\n const selectorElements = SelectorEngine.find(selector)\n\n selectorElements.forEach(element => {\n const data = Data.get(element, DATA_KEY)\n let config\n if (data) {\n // update parent attribute\n if (data._parent === null && typeof triggerData.parent === 'string') {\n data._config.parent = triggerData.parent\n data._parent = data._getParent()\n }\n\n config = 'toggle'\n } else {\n config = triggerData\n }\n\n Collapse.collapseInterface(element, config)\n })\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Collapse to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(NAME, Collapse)\n\nexport default Collapse\n","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","import getNodeName from \"../dom-utils/getNodeName.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect,\n requires: ['computeStyles']\n};","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","export default function getBoundingClientRect(element) {\n var rect = element.getBoundingClientRect();\n return {\n width: rect.width,\n height: rect.height,\n top: rect.top,\n right: rect.right,\n bottom: rect.bottom,\n left: rect.left,\n x: rect.left,\n y: rect.top\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\"; // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nexport default function getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n}","import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') !== -1;\n var currentNode = getParentNode(element);\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","import { max as mathMax, min as mathMin } from \"./math.js\";\nexport default function within(min, value, max) {\n return mathMax(min, mathMin(value, max));\n}","import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), paddingObject);\n}","export default function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}","export default function expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport within from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n if (!isHTMLElement(arrowElement)) {\n console.error(['Popper: \"arrow\" element must be an HTMLElement (not an SVGElement).', 'To use an SVG arrow, wrap it in an HTMLElement that will be used as', 'the arrow.'].join(' '));\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(['Popper: \"arrow\" modifier\\'s `element` must be a child of the popper', 'element.'].join(' '));\n }\n\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};","import { top, left, right, bottom } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { round } from \"../utils/math.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref) {\n var x = _ref.x,\n y = _ref.y;\n var win = window;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(round(x * dpr) / dpr) || 0,\n y: round(round(y * dpr) / dpr) || 0\n };\n}\n\nexport function mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets;\n\n var _ref3 = roundOffsets === true ? roundOffsetsByDPR(offsets) : typeof roundOffsets === 'function' ? roundOffsets(offsets) : offsets,\n _ref3$x = _ref3.x,\n x = _ref3$x === void 0 ? 0 : _ref3$x,\n _ref3$y = _ref3.y,\n y = _ref3$y === void 0 ? 0 : _ref3$y;\n\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (getComputedStyle(offsetParent).position !== 'static') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === top) {\n sideY = bottom; // $FlowFixMe[prop-missing]\n\n y -= offsetParent[heightProp] - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left) {\n sideX = right; // $FlowFixMe[prop-missing]\n\n x -= offsetParent[widthProp] - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) < 2 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref4) {\n var state = _ref4.state,\n options = _ref4.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n\n if (process.env.NODE_ENV !== \"production\") {\n var transitionProperty = getComputedStyle(state.elements.popper).transitionProperty || '';\n\n if (adaptive && ['transform', 'top', 'right', 'bottom', 'left'].some(function (property) {\n return transitionProperty.indexOf(property) >= 0;\n })) {\n console.warn(['Popper: Detected CSS transitions on at least one of the following', 'CSS properties: \"transform\", \"top\", \"right\", \"bottom\", \"left\".', '\\n\\n', 'Disable the \"computeStyles\" modifier\\'s `adaptive` option to allow', 'for smooth transitions, or remove these properties from the CSS', 'transition declaration on the popper element if only transitioning', 'opacity or background-color for example.', '\\n\\n', 'We recommend using the popper element as a wrapper around an inner', 'element that can have any CSS property transitioned for animations.'].join(' '));\n }\n }\n\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};","import getWindow from \"../dom-utils/getWindow.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n passive: true\n};\n\nfunction effect(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n};","var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nexport default function getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}","var hash = {\n start: 'end',\n end: 'start'\n};\nexport default function getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash[matched];\n });\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If <html> has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on <html>\n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element) {\n var rect = getBoundingClientRect(element);\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element)) : isHTMLElement(clippingParent) ? getInnerBoundingClientRect(clippingParent) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nexport default function getViewportRect(element) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0; // NB: This isn't supported on iOS <= 12. If the keyboard is open, the popper\n // can be obscured underneath it.\n // Also, `html.clientHeight` adds the bottom bar height in Safari iOS, even\n // if it isn't open, so if this isn't available, the popper will be detected\n // to overflow the bottom of the screen too early.\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height; // Uses Layout Viewport (like Chrome; Safari does not currently)\n // In Chrome, it returns a value very close to 0 (+/-) but contains rounding\n // errors due to floating point numbers, so we need to check precision.\n // Safari returns a number <= 0, usually < -1 when pinch-zoomed\n // Feature detection fails in mobile emulation mode in Chrome.\n // Math.abs(win.innerWidth / visualViewport.scale - visualViewport.width) <\n // 0.001\n // Fallback here: \"Not Safari\" userAgent\n\n if (!/^((?!chrome|android).)*safari/i.test(navigator.userAgent)) {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}","import getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var referenceElement = state.elements.reference;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary);\n var referenceClientRect = getBoundingClientRect(referenceElement);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements, placements as allPlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\nexport default function computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;\n var variation = getVariation(placement);\n var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements;\n var allowedPlacements = placements.filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n });\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements;\n\n if (process.env.NODE_ENV !== \"production\") {\n console.error(['Popper: The `allowedAutoPlacements` option did not allow any', 'placements. Ensure the `placement` option matches the variation', 'of the allowed placements.', 'For example, \"auto\" cannot be used to allow \"bottom-start\".', 'Use \"auto-start\" instead.'].join(' '));\n }\n } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n var overflows = allowedPlacements.reduce(function (acc, placement) {\n acc[placement] = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n}","import getOppositePlacement from \"../utils/getOppositePlacement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getOppositeVariationPlacement from \"../utils/getOppositeVariationPlacement.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport computeAutoPlacement from \"../utils/computeAutoPlacement.js\";\nimport { bottom, top, start, right, left, auto } from \"../enums.js\";\nimport getVariation from \"../utils/getVariation.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n var oppositePlacement = getOppositePlacement(placement);\n return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = getBasePlacement(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = getBasePlacement(placement);\n\n var isStartVariation = getVariation(placement) === start;\n var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n var altVariationSide = getOppositePlacement(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n};","import { top, bottom, left, right } from \"../enums.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return [top, right, bottom, left].some(function (side) {\n return overflow[side] >= 0;\n });\n}\n\nfunction hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = detectOverflow(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = detectOverflow(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\";\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};","import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name;\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};","import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport within from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\nimport { max as mathMax, min as mathMin } from \"../utils/math.js\";\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis || checkAltAxis) {\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min = popperOffsets[mainAxis] + overflow[mainSide];\n var max = popperOffsets[mainAxis] - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - tetherOffsetValue : minLen - arrowLen - arrowPaddingMin - tetherOffsetValue;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + tetherOffsetValue : maxLen + arrowLen + arrowPaddingMax + tetherOffsetValue;\n var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = state.modifiersData.offset ? state.modifiersData.offset[state.placement][mainAxis] : 0;\n var tetherMin = popperOffsets[mainAxis] + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = popperOffsets[mainAxis] + maxOffset - offsetModifierValue;\n\n if (checkMainAxis) {\n var preventedOffset = within(tether ? mathMin(min, tetherMin) : min, offset, tether ? mathMax(max, tetherMax) : max);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var _preventedOffset = within(tether ? mathMin(_min, tetherMin) : _min, _offset, tether ? mathMax(_max, tetherMax) : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n};","export default function getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\"; // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement);\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}","export default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}","import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport getComputedStyle from \"./dom-utils/getComputedStyle.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport validateModifiers from \"./utils/validateModifiers.js\";\nimport uniqueBy from \"./utils/uniqueBy.js\";\nimport getBasePlacement from \"./utils/getBasePlacement.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nimport { auto } from \"./enums.js\";\nvar INVALID_ELEMENT_ERROR = 'Popper: Invalid reference or popper argument provided. They must be either a DOM element or virtual element.';\nvar INFINITE_LOOP_ERROR = 'Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash.';\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nexport function popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(options) {\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n }); // Validate the provided modifiers so that the consumer will get warned\n // if one of the modifiers is invalid for any reason\n\n if (process.env.NODE_ENV !== \"production\") {\n var modifiers = uniqueBy([].concat(orderedModifiers, state.options.modifiers), function (_ref) {\n var name = _ref.name;\n return name;\n });\n validateModifiers(modifiers);\n\n if (getBasePlacement(state.options.placement) === auto) {\n var flipModifier = state.orderedModifiers.find(function (_ref2) {\n var name = _ref2.name;\n return name === 'flip';\n });\n\n if (!flipModifier) {\n console.error(['Popper: \"auto\" placements require the \"flip\" modifier be', 'present and enabled to work.'].join(' '));\n }\n }\n\n var _getComputedStyle = getComputedStyle(popper),\n marginTop = _getComputedStyle.marginTop,\n marginRight = _getComputedStyle.marginRight,\n marginBottom = _getComputedStyle.marginBottom,\n marginLeft = _getComputedStyle.marginLeft; // We no longer take into account `margins` on the popper, and it can\n // cause bugs with positioning, so we'll warn the consumer\n\n\n if ([marginTop, marginRight, marginBottom, marginLeft].some(function (margin) {\n return parseFloat(margin);\n })) {\n console.warn(['Popper: CSS \"margin\" styles cannot be used to apply padding', 'between the popper and its reference element or boundary.', 'To replicate margin, use the `offset` modifier, as well as', 'the `padding` option in the `preventOverflow` and `flip`', 'modifiers.'].join(' '));\n }\n }\n\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(INVALID_ELEMENT_ERROR);\n }\n\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n var __debug_loops__ = 0;\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (process.env.NODE_ENV !== \"production\") {\n __debug_loops__ += 1;\n\n if (__debug_loops__ > 100) {\n console.error(INFINITE_LOOP_ERROR);\n break;\n }\n }\n\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(INVALID_ELEMENT_ERROR);\n }\n\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref3) {\n var name = _ref3.name,\n _ref3$options = _ref3.options,\n options = _ref3$options === void 0 ? {} : _ref3$options,\n effect = _ref3.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };","export default function debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}","export default function mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nexport default function orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow };","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nimport offset from \"./modifiers/offset.js\";\nimport flip from \"./modifiers/flip.js\";\nimport preventOverflow from \"./modifiers/preventOverflow.js\";\nimport arrow from \"./modifiers/arrow.js\";\nimport hide from \"./modifiers/hide.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles, offset, flip, preventOverflow, arrow, hide];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow }; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper as createPopperLite } from \"./popper-lite.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport * from \"./modifiers/index.js\";","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport * as Popper from '@popperjs/core'\n\nimport {\n defineJQueryPlugin,\n getElementFromSelector,\n isElement,\n isVisible,\n isRTL,\n noop,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\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 SPACE_KEY = 'Space'\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 REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEY}|${ARROW_DOWN_KEY}|${ESCAPE_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 = `click${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_DISABLED = 'disabled'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_DROPUP = 'dropup'\nconst CLASS_NAME_DROPEND = 'dropend'\nconst CLASS_NAME_DROPSTART = 'dropstart'\nconst CLASS_NAME_NAVBAR = 'navbar'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"dropdown\"]'\nconst SELECTOR_MENU = '.dropdown-menu'\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'\n\nconst Default = {\n offset: [0, 2],\n boundary: 'clippingParents',\n reference: 'toggle',\n display: 'dynamic',\n popperConfig: null\n}\n\nconst DefaultType = {\n offset: '(array|string|function)',\n boundary: '(string|element)',\n reference: '(string|element|object)',\n display: 'string',\n popperConfig: '(null|object|function)'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED)) {\n return\n }\n\n const isActive = this._element.classList.contains(CLASS_NAME_SHOW)\n\n Dropdown.clearMenus()\n\n if (isActive) {\n return\n }\n\n this.show()\n }\n\n show() {\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || this._menu.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n const parent = Dropdown.getParentFromElement(this._element)\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 // Totally disable Popper for Dropdowns in Navbar\n if (this._inNavbar) {\n Manipulator.setDataAttribute(this._menu, 'popper', 'none')\n } else {\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 = parent\n } else if (isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n } else if (typeof this._config.reference === 'object') {\n referenceElement = this._config.reference\n }\n\n const popperConfig = this._getPopperConfig()\n const isDisplayStatic = popperConfig.modifiers.find(modifier => modifier.name === 'applyStyles' && modifier.enabled === false)\n\n this._popper = Popper.createPopper(referenceElement, this._menu, popperConfig)\n\n if (isDisplayStatic) {\n Manipulator.setDataAttribute(this._menu, 'popper', 'static')\n }\n }\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 !parent.closest(SELECTOR_NAVBAR_NAV)) {\n [].concat(...document.body.children)\n .forEach(elem => EventHandler.on(elem, 'mouseover', null, noop()))\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n this._menu.classList.toggle(CLASS_NAME_SHOW)\n this._element.classList.toggle(CLASS_NAME_SHOW)\n EventHandler.trigger(this._element, EVENT_SHOWN, relatedTarget)\n }\n\n hide() {\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || !this._menu.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE, relatedTarget)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n if (this._popper) {\n this._popper.destroy()\n }\n\n this._menu.classList.toggle(CLASS_NAME_SHOW)\n this._element.classList.toggle(CLASS_NAME_SHOW)\n Manipulator.removeDataAttribute(this._menu, 'popper')\n EventHandler.trigger(this._element, EVENT_HIDDEN, relatedTarget)\n }\n\n dispose() {\n EventHandler.off(this._element, EVENT_KEY)\n this._menu = null\n\n if (this._popper) {\n this._popper.destroy()\n this._popper = null\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\n _addEventListeners() {\n EventHandler.on(this._element, EVENT_CLICK, event => {\n event.preventDefault()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...Manipulator.getDataAttributes(this._element),\n ...config\n }\n\n typeCheckConfig(NAME, config, this.constructor.DefaultType)\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 _getMenuElement() {\n return SelectorEngine.next(this._element, SELECTOR_MENU)[0]\n }\n\n _getPlacement() {\n const parentDropdown = this._element.parentNode\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 // 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(`.${CLASS_NAME_NAVBAR}`) !== null\n }\n\n _getOffset() {\n const { offset } = this._config\n\n if (typeof offset === 'string') {\n return offset.split(',').map(val => Number.parseInt(val, 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\n if (this._config.display === 'static') {\n defaultBsPopperConfig.modifiers = [{\n name: 'applyStyles',\n enabled: false\n }]\n }\n\n return {\n ...defaultBsPopperConfig,\n ...(typeof this._config.popperConfig === 'function' ? this._config.popperConfig(defaultBsPopperConfig) : this._config.popperConfig)\n }\n }\n\n // Static\n\n static dropdownInterface(element, config) {\n let data = Data.get(element, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(element, _config)\n }\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 static jQueryInterface(config) {\n return this.each(function () {\n Dropdown.dropdownInterface(this, config)\n })\n }\n\n static clearMenus(event) {\n if (event) {\n if (event.button === RIGHT_MOUSE_BUTTON || (event.type === 'keyup' && event.key !== TAB_KEY)) {\n return\n }\n\n if (/input|select|textarea|form/i.test(event.target.tagName)) {\n return\n }\n }\n\n const toggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\n\n for (let i = 0, len = toggles.length; i < len; i++) {\n const context = Data.get(toggles[i], DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!toggles[i].classList.contains(CLASS_NAME_SHOW)) {\n continue\n }\n\n if (event) {\n // Don't close the menu if the clicked element or one of its parents is the dropdown button\n if ([context._element].some(element => event.composedPath().includes(element))) {\n continue\n }\n\n // Tab navigation through the dropdown menu shouldn't close the menu\n if (event.type === 'keyup' && event.key === TAB_KEY && dropdownMenu.contains(event.target)) {\n continue\n }\n }\n\n const hideEvent = EventHandler.trigger(toggles[i], EVENT_HIDE, relatedTarget)\n if (hideEvent.defaultPrevented) {\n continue\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 [].concat(...document.body.children)\n .forEach(elem => EventHandler.off(elem, 'mouseover', null, noop()))\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n if (context._popper) {\n context._popper.destroy()\n }\n\n dropdownMenu.classList.remove(CLASS_NAME_SHOW)\n toggles[i].classList.remove(CLASS_NAME_SHOW)\n Manipulator.removeDataAttribute(dropdownMenu, 'popper')\n EventHandler.trigger(toggles[i], EVENT_HIDDEN, relatedTarget)\n }\n }\n\n static getParentFromElement(element) {\n return getElementFromSelector(element) || element.parentNode\n }\n\n static dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ?\n event.key === SPACE_KEY || (event.key !== ESCAPE_KEY &&\n ((event.key !== ARROW_DOWN_KEY && event.key !== ARROW_UP_KEY) ||\n event.target.closest(SELECTOR_MENU))) :\n !REGEXP_KEYDOWN.test(event.key)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || this.classList.contains(CLASS_NAME_DISABLED)) {\n return\n }\n\n const parent = Dropdown.getParentFromElement(this)\n const isActive = this.classList.contains(CLASS_NAME_SHOW)\n\n if (event.key === ESCAPE_KEY) {\n const button = this.matches(SELECTOR_DATA_TOGGLE) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE)[0]\n button.focus()\n Dropdown.clearMenus()\n return\n }\n\n if (!isActive && (event.key === ARROW_UP_KEY || event.key === ARROW_DOWN_KEY)) {\n const button = this.matches(SELECTOR_DATA_TOGGLE) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE)[0]\n button.click()\n return\n }\n\n if (!isActive || event.key === SPACE_KEY) {\n Dropdown.clearMenus()\n return\n }\n\n const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, parent).filter(isVisible)\n\n if (!items.length) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n // Up\n if (event.key === ARROW_UP_KEY && index > 0) {\n index--\n }\n\n // Down\n if (event.key === ARROW_DOWN_KEY && index < items.length - 1) {\n index++\n }\n\n // index is -1 if the first keydown is an ArrowUp\n index = index === -1 ? 0 : index\n\n items[index].focus()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\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.dropdownInterface(this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Dropdown to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(NAME, Dropdown)\n\nexport default Dropdown\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n defineJQueryPlugin,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isVisible,\n isRTL,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\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 Default = {\n backdrop: true,\n keyboard: true,\n focus: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean'\n}\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_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${EVENT_KEY}`\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEUP_DISMISS = `mouseup.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure'\nconst CLASS_NAME_BACKDROP = 'modal-backdrop'\nconst CLASS_NAME_OPEN = 'modal-open'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_STATIC = 'modal-static'\n\nconst SELECTOR_DIALOG = '.modal-dialog'\nconst SELECTOR_MODAL_BODY = '.modal-body'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"modal\"]'\nconst SELECTOR_DATA_DISMISS = '[data-bs-dismiss=\"modal\"]'\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'\nconst SELECTOR_STICKY_CONTENT = '.sticky-top'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._config = this._getConfig(config)\n this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, this._element)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollbarWidth = 0\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n if (this._isAnimated()) {\n this._isTransitioning = true\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, {\n relatedTarget\n })\n\n if (this._isShown || showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, event => this.hide(event))\n\n EventHandler.on(this._dialog, EVENT_MOUSEDOWN_DISMISS, () => {\n EventHandler.one(this._element, EVENT_MOUSEUP_DISMISS, event => {\n if (event.target === this._element) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\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 const isAnimated = this._isAnimated()\n\n if (isAnimated) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.off(document, EVENT_FOCUSIN)\n\n this._element.classList.remove(CLASS_NAME_SHOW)\n\n EventHandler.off(this._element, EVENT_CLICK_DISMISS)\n EventHandler.off(this._dialog, EVENT_MOUSEDOWN_DISMISS)\n\n if (isAnimated) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, 'transitionend', event => this._hideModal(event))\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach(htmlElement => EventHandler.off(htmlElement, EVENT_KEY))\n\n super.dispose()\n\n /**\n * `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `EVENT_CLICK_DATA_API` event that should remain\n */\n EventHandler.off(document, EVENT_FOCUSIN)\n\n this._config = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._isTransitioning = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const isAnimated = this._isAnimated()\n const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog)\n\n if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(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 if (modalBody) {\n modalBody.scrollTop = 0\n }\n\n if (isAnimated) {\n reflow(this._element)\n }\n\n this._element.classList.add(CLASS_NAME_SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n\n this._isTransitioning = false\n EventHandler.trigger(this._element, EVENT_SHOWN, {\n relatedTarget\n })\n }\n\n if (isAnimated) {\n const transitionDuration = getTransitionDurationFromElement(this._dialog)\n\n EventHandler.one(this._dialog, 'transitionend', transitionComplete)\n emulateTransitionEnd(this._dialog, transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n EventHandler.off(document, EVENT_FOCUSIN) // guard against infinite focus loop\n EventHandler.on(document, EVENT_FOCUSIN, event => {\n if (document !== event.target &&\n this._element !== event.target &&\n !this._element.contains(event.target)) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown) {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {\n if (this._config.keyboard && event.key === ESCAPE_KEY) {\n event.preventDefault()\n this.hide()\n } else if (!this._config.keyboard && event.key === ESCAPE_KEY) {\n this._triggerBackdropTransition()\n }\n })\n } else {\n EventHandler.off(this._element, EVENT_KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n EventHandler.on(window, EVENT_RESIZE, () => this._adjustDialog())\n } else {\n EventHandler.off(window, EVENT_RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._element.removeAttribute('role')\n this._isTransitioning = false\n this._showBackdrop(() => {\n document.body.classList.remove(CLASS_NAME_OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n })\n }\n\n _removeBackdrop() {\n this._backdrop.parentNode.removeChild(this._backdrop)\n this._backdrop = null\n }\n\n _showBackdrop(callback) {\n const isAnimated = this._isAnimated()\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = CLASS_NAME_BACKDROP\n\n if (isAnimated) {\n this._backdrop.classList.add(CLASS_NAME_FADE)\n }\n\n document.body.appendChild(this._backdrop)\n\n EventHandler.on(this._element, EVENT_CLICK_DISMISS, event => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n\n if (event.target !== event.currentTarget) {\n return\n }\n\n if (this._config.backdrop === 'static') {\n this._triggerBackdropTransition()\n } else {\n this.hide()\n }\n })\n\n if (isAnimated) {\n reflow(this._backdrop)\n }\n\n this._backdrop.classList.add(CLASS_NAME_SHOW)\n\n if (!isAnimated) {\n callback()\n return\n }\n\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n\n EventHandler.one(this._backdrop, 'transitionend', callback)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n this._backdrop.classList.remove(CLASS_NAME_SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n callback()\n }\n\n if (isAnimated) {\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n EventHandler.one(this._backdrop, 'transitionend', callbackRemove)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else {\n callback()\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\n if (!isModalOverflowing) {\n this._element.style.overflowY = 'hidden'\n }\n\n this._element.classList.add(CLASS_NAME_STATIC)\n const modalTransitionDuration = getTransitionDurationFromElement(this._dialog)\n EventHandler.off(this._element, 'transitionend')\n EventHandler.one(this._element, 'transitionend', () => {\n this._element.classList.remove(CLASS_NAME_STATIC)\n if (!isModalOverflowing) {\n EventHandler.one(this._element, 'transitionend', () => {\n this._element.style.overflowY = ''\n })\n emulateTransitionEnd(this._element, modalTransitionDuration)\n }\n })\n emulateTransitionEnd(this._element, modalTransitionDuration)\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\n if ((!this._isBodyOverflowing && isModalOverflowing && !isRTL()) || (this._isBodyOverflowing && !isModalOverflowing && isRTL())) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if ((this._isBodyOverflowing && !isModalOverflowing && !isRTL()) || (!this._isBodyOverflowing && isModalOverflowing && isRTL())) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n this._setElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight', calculatedValue => calculatedValue + this._scrollbarWidth)\n this._setElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight', calculatedValue => calculatedValue - this._scrollbarWidth)\n this._setElementAttributes('body', 'paddingRight', calculatedValue => calculatedValue + this._scrollbarWidth)\n }\n\n document.body.classList.add(CLASS_NAME_OPEN)\n }\n\n _setElementAttributes(selector, styleProp, callback) {\n SelectorEngine.find(selector)\n .forEach(element => {\n if (element !== document.body && window.innerWidth > element.clientWidth + this._scrollbarWidth) {\n return\n }\n\n const actualValue = element.style[styleProp]\n const calculatedValue = window.getComputedStyle(element)[styleProp]\n Manipulator.setDataAttribute(element, styleProp, actualValue)\n element.style[styleProp] = callback(Number.parseFloat(calculatedValue)) + 'px'\n })\n }\n\n _resetScrollbar() {\n this._resetElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight')\n this._resetElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight')\n this._resetElementAttributes('body', 'paddingRight')\n }\n\n _resetElementAttributes(selector, styleProp) {\n SelectorEngine.find(selector).forEach(element => {\n const value = Manipulator.getDataAttribute(element, styleProp)\n if (typeof value === 'undefined' && element === document.body) {\n element.style[styleProp] = ''\n } else {\n Manipulator.removeDataAttribute(element, styleProp)\n element.style[styleProp] = value\n }\n })\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = CLASS_NAME_SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = Data.get(this, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(this),\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (!data) {\n data = new Modal(this, _config)\n }\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](relatedTarget)\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n const target = getElementFromSelector(this)\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\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 let data = Data.get(target, DATA_KEY)\n if (!data) {\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n\n data = new Modal(target, config)\n }\n\n data.toggle(this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Modal to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(NAME, Modal)\n\nexport default Modal\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): util/scrollBar.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport SelectorEngine from '../dom/selector-engine'\nimport Manipulator from '../dom/manipulator'\n\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed'\nconst SELECTOR_STICKY_CONTENT = '.sticky-top'\n\nconst 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\nconst hide = (width = getWidth()) => {\n document.body.style.overflow = 'hidden'\n _setElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight', calculatedValue => calculatedValue + width)\n _setElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight', calculatedValue => calculatedValue - width)\n _setElementAttributes('body', 'paddingRight', calculatedValue => calculatedValue + width)\n}\n\nconst _setElementAttributes = (selector, styleProp, callback) => {\n const scrollbarWidth = getWidth()\n SelectorEngine.find(selector)\n .forEach(element => {\n if (element !== document.body && window.innerWidth > element.clientWidth + scrollbarWidth) {\n return\n }\n\n const actualValue = element.style[styleProp]\n const calculatedValue = window.getComputedStyle(element)[styleProp]\n Manipulator.setDataAttribute(element, styleProp, actualValue)\n element.style[styleProp] = callback(Number.parseFloat(calculatedValue)) + 'px'\n })\n}\n\nconst reset = () => {\n document.body.style.overflow = 'auto'\n _resetElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight')\n _resetElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight')\n _resetElementAttributes('body', 'paddingRight')\n}\n\nconst _resetElementAttributes = (selector, styleProp) => {\n SelectorEngine.find(selector).forEach(element => {\n const value = Manipulator.getDataAttribute(element, styleProp)\n if (typeof value === 'undefined' && element === document.body) {\n element.style.removeProperty(styleProp)\n } else {\n Manipulator.removeDataAttribute(element, styleProp)\n element.style[styleProp] = value\n }\n })\n}\n\nconst isBodyOverflowing = () => {\n return getWidth() > 0\n}\n\nexport {\n getWidth,\n hide,\n isBodyOverflowing,\n reset\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): offcanvas.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n defineJQueryPlugin,\n getElementFromSelector,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isDisabled,\n isVisible,\n typeCheckConfig\n} from './util/index'\nimport { hide as scrollBarHide, reset as scrollBarReset } from './util/scrollbar'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport BaseComponent from './base-component'\nimport SelectorEngine from './dom/selector-engine'\nimport Manipulator from './dom/manipulator'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\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 Default = {\n backdrop: true,\n keyboard: true,\n scroll: false\n}\n\nconst DefaultType = {\n backdrop: 'boolean',\n keyboard: 'boolean',\n scroll: 'boolean'\n}\n\nconst CLASS_NAME_BACKDROP_BODY = 'offcanvas-backdrop'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_TOGGLING = 'offcanvas-toggling'\nconst OPEN_SELECTOR = '.offcanvas.show'\nconst ACTIVE_SELECTOR = `${OPEN_SELECTOR}, .${CLASS_NAME_TOGGLING}`\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_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\n\nconst SELECTOR_DATA_DISMISS = '[data-bs-dismiss=\"offcanvas\"]'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"offcanvas\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Offcanvas extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._config = this._getConfig(config)\n this._isShown = false\n this._addEventListeners()\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown) {\n return\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, { relatedTarget })\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n this._element.style.visibility = 'visible'\n\n if (this._config.backdrop) {\n document.body.classList.add(CLASS_NAME_BACKDROP_BODY)\n }\n\n if (!this._config.scroll) {\n scrollBarHide()\n }\n\n this._element.classList.add(CLASS_NAME_TOGGLING)\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n this._element.setAttribute('role', 'dialog')\n this._element.classList.add(CLASS_NAME_SHOW)\n\n const completeCallBack = () => {\n this._element.classList.remove(CLASS_NAME_TOGGLING)\n EventHandler.trigger(this._element, EVENT_SHOWN, { relatedTarget })\n this._enforceFocusOnElement(this._element)\n }\n\n setTimeout(completeCallBack, getTransitionDurationFromElement(this._element))\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._element.classList.add(CLASS_NAME_TOGGLING)\n EventHandler.off(document, EVENT_FOCUSIN)\n this._element.blur()\n this._isShown = false\n this._element.classList.remove(CLASS_NAME_SHOW)\n\n const completeCallback = () => {\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._element.removeAttribute('role')\n this._element.style.visibility = 'hidden'\n\n if (this._config.backdrop) {\n document.body.classList.remove(CLASS_NAME_BACKDROP_BODY)\n }\n\n if (!this._config.scroll) {\n scrollBarReset()\n }\n\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n this._element.classList.remove(CLASS_NAME_TOGGLING)\n }\n\n setTimeout(completeCallback, getTransitionDurationFromElement(this._element))\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...(typeof config === 'object' ? config : {})\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _enforceFocusOnElement(element) {\n EventHandler.off(document, EVENT_FOCUSIN) // guard against infinite focus loop\n EventHandler.on(document, EVENT_FOCUSIN, event => {\n if (document !== event.target &&\n element !== event.target &&\n !element.contains(event.target)) {\n element.focus()\n }\n })\n element.focus()\n }\n\n _addEventListeners() {\n EventHandler.on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, () => this.hide())\n\n EventHandler.on(document, 'keydown', event => {\n if (this._config.keyboard && event.key === ESCAPE_KEY) {\n this.hide()\n }\n })\n\n EventHandler.on(document, EVENT_CLICK_DATA_API, event => {\n const target = SelectorEngine.findOne(getSelectorFromElement(event.target))\n if (!this._element.contains(event.target) && target !== this._element) {\n this.hide()\n }\n })\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Data.get(this, DATA_KEY) || new Offcanvas(this, typeof config === 'object' ? 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 * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n const target = getElementFromSelector(this)\n\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n if (isDisabled(this)) {\n return\n }\n\n EventHandler.one(target, EVENT_HIDDEN, () => {\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 allReadyOpen = SelectorEngine.findOne(ACTIVE_SELECTOR)\n if (allReadyOpen && allReadyOpen !== target) {\n return\n }\n\n const data = Data.get(target, DATA_KEY) || new Offcanvas(target)\n\n data.toggle(this)\n})\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n SelectorEngine.find(OPEN_SELECTOR).forEach(el => (Data.get(el, DATA_KEY) || new Offcanvas(el)).show())\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\ndefineJQueryPlugin(NAME, Offcanvas)\n\nexport default Offcanvas\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst uriAttrs = new Set([\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n])\n\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/i\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[\\d+/a-z]+=*$/i\n\nconst allowedAttribute = (attr, allowedAttributeList) => {\n const attrName = attr.nodeName.toLowerCase()\n\n if (allowedAttributeList.includes(attrName)) {\n if (uriAttrs.has(attrName)) {\n return Boolean(SAFE_URL_PATTERN.test(attr.nodeValue) || DATA_URL_PATTERN.test(attr.nodeValue))\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, len = regExp.length; i < len; i++) {\n if (regExp[i].test(attrName)) {\n return true\n }\n }\n\n return false\n}\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\nexport function sanitizeHtml(unsafeHtml, allowList, sanitizeFn) {\n if (!unsafeHtml.length) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const allowlistKeys = Object.keys(allowList)\n const elements = [].concat(...createdDocument.body.querySelectorAll('*'))\n\n for (let i = 0, len = elements.length; i < len; i++) {\n const el = elements[i]\n const elName = el.nodeName.toLowerCase()\n\n if (!allowlistKeys.includes(elName)) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n const attributeList = [].concat(...el.attributes)\n const allowedAttributes = [].concat(allowList['*'] || [], allowList[elName] || [])\n\n attributeList.forEach(attr => {\n if (!allowedAttribute(attr, allowedAttributes)) {\n el.removeAttribute(attr.nodeName)\n }\n })\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport * as Popper from '@popperjs/core'\n\nimport {\n defineJQueryPlugin,\n emulateTransitionEnd,\n findShadowRoot,\n getTransitionDurationFromElement,\n getUID,\n isElement,\n isRTL,\n noop,\n typeCheckConfig\n} from './util/index'\nimport {\n DefaultAllowlist,\n sanitizeHtml\n} from './util/sanitizer'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tooltip'\nconst DATA_KEY = 'bs.tooltip'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-tooltip'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\nconst DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn'])\n\nconst DefaultType = {\n animation: 'boolean',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string',\n delay: '(number|object)',\n html: 'boolean',\n selector: '(string|boolean)',\n placement: '(string|function)',\n offset: '(array|string|function)',\n container: '(string|element|boolean)',\n fallbackPlacements: 'array',\n boundary: '(string|element)',\n customClass: '(string|function)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n allowList: 'object',\n popperConfig: '(null|object|function)'\n}\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 animation: true,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"tooltip-arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div>' +\n '</div>',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n selector: false,\n placement: 'top',\n offset: [0, 0],\n container: false,\n fallbackPlacements: ['top', 'right', 'bottom', 'left'],\n boundary: 'clippingParents',\n customClass: '',\n sanitize: true,\n sanitizeFn: null,\n allowList: DefaultAllowlist,\n popperConfig: null\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_MODAL = 'modal'\nconst CLASS_NAME_SHOW = 'show'\n\nconst HOVER_STATE_SHOW = 'show'\nconst HOVER_STATE_OUT = 'out'\n\nconst SELECTOR_TOOLTIP_INNER = '.tooltip-inner'\n\nconst TRIGGER_HOVER = 'hover'\nconst TRIGGER_FOCUS = 'focus'\nconst TRIGGER_CLICK = 'click'\nconst TRIGGER_MANUAL = 'manual'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\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)\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const context = this._initializeOnDelegatedTarget(event)\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if (this.getTipElement().classList.contains(CLASS_NAME_SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n EventHandler.off(this._element, this.constructor.EVENT_KEY)\n EventHandler.off(this._element.closest(`.${CLASS_NAME_MODAL}`), 'hide.bs.modal', this._hideModalHandler)\n\n if (this.tip && this.tip.parentNode) {\n this.tip.parentNode.removeChild(this.tip)\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.config = null\n this.tip = null\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.Event.SHOW)\n const shadowRoot = findShadowRoot(this._element)\n const isInTheDom = shadowRoot === null ?\n this._element.ownerDocument.documentElement.contains(this._element) :\n shadowRoot.contains(this._element)\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this._element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n tip.classList.add(CLASS_NAME_FADE)\n }\n\n const placement = typeof this.config.placement === 'function' ?\n this.config.placement.call(this, tip, this._element) :\n this.config.placement\n\n const attachment = this._getAttachment(placement)\n this._addAttachmentClass(attachment)\n\n const container = this._getContainer()\n Data.set(tip, this.constructor.DATA_KEY, this)\n\n if (!this._element.ownerDocument.documentElement.contains(this.tip)) {\n container.appendChild(tip)\n EventHandler.trigger(this._element, this.constructor.Event.INSERTED)\n }\n\n if (this._popper) {\n this._popper.update()\n } else {\n this._popper = Popper.createPopper(this._element, tip, this._getPopperConfig(attachment))\n }\n\n tip.classList.add(CLASS_NAME_SHOW)\n\n const customClass = typeof this.config.customClass === 'function' ? this.config.customClass() : this.config.customClass\n if (customClass) {\n tip.classList.add(...customClass.split(' '))\n }\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 [].concat(...document.body.children).forEach(element => {\n EventHandler.on(element, 'mouseover', noop())\n })\n }\n\n const complete = () => {\n const prevHoverState = this._hoverState\n\n this._hoverState = null\n EventHandler.trigger(this._element, this.constructor.Event.SHOWN)\n\n if (prevHoverState === HOVER_STATE_OUT) {\n this._leave(null, this)\n }\n }\n\n if (this.tip.classList.contains(CLASS_NAME_FADE)) {\n const transitionDuration = getTransitionDurationFromElement(this.tip)\n EventHandler.one(this.tip, 'transitionend', complete)\n emulateTransitionEnd(this.tip, transitionDuration)\n } else {\n complete()\n }\n }\n\n hide() {\n if (!this._popper) {\n return\n }\n\n const tip = this.getTipElement()\n const complete = () => {\n if (this._isWithActiveTrigger()) {\n return\n }\n\n if (this._hoverState !== HOVER_STATE_SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this._element.removeAttribute('aria-describedby')\n EventHandler.trigger(this._element, this.constructor.Event.HIDDEN)\n\n if (this._popper) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n const hideEvent = EventHandler.trigger(this._element, this.constructor.Event.HIDE)\n if (hideEvent.defaultPrevented) {\n return\n }\n\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 [].concat(...document.body.children)\n .forEach(element => EventHandler.off(element, 'mouseover', noop))\n }\n\n this._activeTrigger[TRIGGER_CLICK] = false\n this._activeTrigger[TRIGGER_FOCUS] = false\n this._activeTrigger[TRIGGER_HOVER] = false\n\n if (this.tip.classList.contains(CLASS_NAME_FADE)) {\n const transitionDuration = getTransitionDurationFromElement(tip)\n\n EventHandler.one(tip, 'transitionend', complete)\n emulateTransitionEnd(tip, transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.update()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n getTipElement() {\n if (this.tip) {\n return this.tip\n }\n\n const element = document.createElement('div')\n element.innerHTML = this.config.template\n\n this.tip = element.children[0]\n return this.tip\n }\n\n setContent() {\n const tip = this.getTipElement()\n this.setElementContent(SelectorEngine.findOne(SELECTOR_TOOLTIP_INNER, tip), this.getTitle())\n tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW)\n }\n\n setElementContent(element, content) {\n if (element === null) {\n return\n }\n\n if (typeof content === 'object' && isElement(content)) {\n if (content.jquery) {\n content = content[0]\n }\n\n // content is a DOM node or a jQuery\n if (this.config.html) {\n if (content.parentNode !== element) {\n element.innerHTML = ''\n element.appendChild(content)\n }\n } else {\n element.textContent = content.textContent\n }\n\n return\n }\n\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.allowList, this.config.sanitizeFn)\n }\n\n element.innerHTML = content\n } else {\n element.textContent = content\n }\n }\n\n getTitle() {\n let title = this._element.getAttribute('data-bs-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function' ?\n this.config.title.call(this._element) :\n this.config.title\n }\n\n return title\n }\n\n updateAttachment(attachment) {\n if (attachment === 'right') {\n return 'end'\n }\n\n if (attachment === 'left') {\n return 'start'\n }\n\n return attachment\n }\n\n // Private\n\n _initializeOnDelegatedTarget(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.get(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(event.delegateTarget, this._getDelegateConfig())\n Data.set(event.delegateTarget, dataKey, context)\n }\n\n return context\n }\n\n _getOffset() {\n const { offset } = this.config\n\n if (typeof offset === 'string') {\n return offset.split(',').map(val => Number.parseInt(val, 10))\n }\n\n if (typeof offset === 'function') {\n return popperData => offset(popperData, this._element)\n }\n\n return offset\n }\n\n _getPopperConfig(attachment) {\n const defaultBsPopperConfig = {\n placement: attachment,\n modifiers: [\n {\n name: 'flip',\n options: {\n altBoundary: true,\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: 'onChange',\n enabled: true,\n phase: 'afterWrite',\n fn: data => this._handlePopperPlacementChange(data)\n }\n ],\n onFirstUpdate: data => {\n if (data.options.placement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n }\n }\n\n return {\n ...defaultBsPopperConfig,\n ...(typeof this.config.popperConfig === 'function' ? this.config.popperConfig(defaultBsPopperConfig) : this.config.popperConfig)\n }\n }\n\n _addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${this.updateAttachment(attachment)}`)\n }\n\n _getContainer() {\n if (this.config.container === false) {\n return document.body\n }\n\n if (isElement(this.config.container)) {\n return this.config.container\n }\n\n return SelectorEngine.findOne(this.config.container)\n }\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach(trigger => {\n if (trigger === 'click') {\n EventHandler.on(this._element, this.constructor.Event.CLICK, this.config.selector, event => this.toggle(event))\n } else if (trigger !== TRIGGER_MANUAL) {\n const eventIn = trigger === TRIGGER_HOVER ?\n this.constructor.Event.MOUSEENTER :\n this.constructor.Event.FOCUSIN\n const eventOut = trigger === TRIGGER_HOVER ?\n this.constructor.Event.MOUSELEAVE :\n this.constructor.Event.FOCUSOUT\n\n EventHandler.on(this._element, eventIn, this.config.selector, event => this._enter(event))\n EventHandler.on(this._element, eventOut, this.config.selector, event => this._leave(event))\n }\n })\n\n this._hideModalHandler = () => {\n if (this._element) {\n this.hide()\n }\n }\n\n EventHandler.on(this._element.closest(`.${CLASS_NAME_MODAL}`), 'hide.bs.modal', this._hideModalHandler)\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const title = this._element.getAttribute('title')\n const originalTitleType = typeof this._element.getAttribute('data-bs-original-title')\n\n if (title || originalTitleType !== 'string') {\n this._element.setAttribute('data-bs-original-title', title || '')\n if (title && !this._element.getAttribute('aria-label') && !this._element.textContent) {\n this._element.setAttribute('aria-label', title)\n }\n\n this._element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n context = this._initializeOnDelegatedTarget(event, context)\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER\n ] = true\n }\n\n if (context.getTipElement().classList.contains(CLASS_NAME_SHOW) || context._hoverState === HOVER_STATE_SHOW) {\n context._hoverState = HOVER_STATE_SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n context = this._initializeOnDelegatedTarget(event, context)\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER\n ] = context._element.contains(event.relatedTarget)\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this._element)\n\n Object.keys(dataAttributes).forEach(dataAttr => {\n if (DISALLOWED_ATTRIBUTES.has(dataAttr)) {\n delete dataAttributes[dataAttr]\n }\n })\n\n if (config && typeof config.container === 'object' && config.container.jquery) {\n config.container = config.container[0]\n }\n\n config = {\n ...this.constructor.Default,\n ...dataAttributes,\n ...(typeof config === 'object' && config ? config : {})\n }\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 typeCheckConfig(NAME, config, this.constructor.DefaultType)\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.allowList, config.sanitizeFn)\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n _handlePopperPlacementChange(popperData) {\n const { state } = popperData\n\n if (!state) {\n return\n }\n\n this.tip = state.elements.popper\n this._cleanTipClass()\n this._addAttachmentClass(this._getAttachment(state.placement))\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.get(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n }\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 * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Tooltip to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(NAME, Tooltip)\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { defineJQueryPlugin } from './util/index'\nimport Data from './dom/data'\nimport SelectorEngine from './dom/selector-engine'\nimport Tooltip from './tooltip'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'popover'\nconst DATA_KEY = 'bs.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-popover'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst Default = {\n ...Tooltip.Default,\n placement: 'right',\n offset: [0, 8],\n trigger: 'click',\n content: '',\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}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content: '(string|element|function)'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_TITLE = '.popover-header'\nconst SELECTOR_CONTENT = '.popover-body'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Popover extends Tooltip {\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n setContent() {\n const tip = this.getTipElement()\n\n // we use append for html objects to maintain js events\n this.setElementContent(SelectorEngine.findOne(SELECTOR_TITLE, tip), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this._element)\n }\n\n this.setElementContent(SelectorEngine.findOne(SELECTOR_CONTENT, tip), content)\n\n tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW)\n }\n\n // Private\n\n _addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${this.updateAttachment(attachment)}`)\n }\n\n _getContent() {\n return this._element.getAttribute('data-bs-content') || this.config.content\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.get(this, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n Data.set(this, DATA_KEY, data)\n }\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 * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Popover to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(NAME, Popover)\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n defineJQueryPlugin,\n getSelectorFromElement,\n getUID,\n isElement,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollspy'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n offset: 10,\n method: 'auto',\n target: ''\n}\n\nconst DefaultType = {\n offset: 'number',\n method: 'string',\n target: '(string|element)'\n}\n\nconst EVENT_ACTIVATE = `activate${EVENT_KEY}`\nconst EVENT_SCROLL = `scroll${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_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_DROPDOWN = '.dropdown'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\n\nconst METHOD_OFFSET = 'offset'\nconst METHOD_POSITION = 'position'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy extends BaseComponent {\n constructor(element, config) {\n super(element)\n this._scrollElement = this._element.tagName === 'BODY' ? window : this._element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${SELECTOR_NAV_LINKS}, ${this._config.target} ${SELECTOR_LIST_ITEMS}, ${this._config.target} .${CLASS_NAME_DROPDOWN_ITEM}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n EventHandler.on(this._scrollElement, EVENT_SCROLL, () => this._process())\n\n this.refresh()\n this._process()\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window ?\n METHOD_OFFSET :\n METHOD_POSITION\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod :\n this._config.method\n\n const offsetBase = offsetMethod === METHOD_POSITION ?\n this._getScrollTop() :\n 0\n\n this._offsets = []\n this._targets = []\n this._scrollHeight = this._getScrollHeight()\n\n const targets = SelectorEngine.find(this._selector)\n\n targets.map(element => {\n const targetSelector = getSelectorFromElement(element)\n const target = targetSelector ? SelectorEngine.findOne(targetSelector) : null\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n return [\n Manipulator[offsetMethod](target).top + offsetBase,\n targetSelector\n ]\n }\n }\n\n return null\n })\n .filter(item => item)\n .sort((a, b) => a[0] - b[0])\n .forEach(item => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n super.dispose()\n EventHandler.off(this._scrollElement, EVENT_KEY)\n\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (typeof config.target !== 'string' && isElement(config.target)) {\n let { id } = config.target\n if (!id) {\n id = getUID(NAME)\n config.target.id = id\n }\n\n config.target = `#${id}`\n }\n\n typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window ?\n this._scrollElement.pageYOffset :\n this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window ?\n window.innerHeight :\n this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n for (let i = this._offsets.length; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector.split(',')\n .map(selector => `${selector}[data-bs-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const link = SelectorEngine.findOne(queries.join(','))\n\n if (link.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) {\n SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE, link.closest(SELECTOR_DROPDOWN))\n .classList.add(CLASS_NAME_ACTIVE)\n\n link.classList.add(CLASS_NAME_ACTIVE)\n } else {\n // Set triggered link as active\n link.classList.add(CLASS_NAME_ACTIVE)\n\n SelectorEngine.parents(link, SELECTOR_NAV_LIST_GROUP)\n .forEach(listGroup => {\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 SelectorEngine.prev(listGroup, `${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`)\n .forEach(item => item.classList.add(CLASS_NAME_ACTIVE))\n\n // Handle special case when .nav-link is inside .nav-item\n SelectorEngine.prev(listGroup, SELECTOR_NAV_ITEMS)\n .forEach(navItem => {\n SelectorEngine.children(navItem, SELECTOR_NAV_LINKS)\n .forEach(item => item.classList.add(CLASS_NAME_ACTIVE))\n })\n })\n }\n\n EventHandler.trigger(this._scrollElement, EVENT_ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n SelectorEngine.find(this._selector)\n .filter(node => node.classList.contains(CLASS_NAME_ACTIVE))\n .forEach(node => node.classList.remove(CLASS_NAME_ACTIVE))\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.get(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n }\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 * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n SelectorEngine.find(SELECTOR_DATA_SPY)\n .forEach(spy => new ScrollSpy(spy, Manipulator.getDataAttributes(spy)))\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .ScrollSpy to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(NAME, ScrollSpy)\n\nexport default ScrollSpy\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n defineJQueryPlugin,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isDisabled,\n reflow\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tab'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\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}`\n\nconst CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_UL = ':scope > li > .active'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"tab\"], [data-bs-toggle=\"pill\"], [data-bs-toggle=\"list\"]'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\nconst SELECTOR_DROPDOWN_ACTIVE_CHILD = ':scope > .dropdown-menu .active'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tab extends BaseComponent {\n // Getters\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n show() {\n if ((this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n this._element.classList.contains(CLASS_NAME_ACTIVE)) ||\n isDisabled(this._element)) {\n return\n }\n\n let previous\n const target = getElementFromSelector(this._element)\n const listElement = this._element.closest(SELECTOR_NAV_LIST_GROUP)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE\n previous = SelectorEngine.find(itemSelector, listElement)\n previous = previous[previous.length - 1]\n }\n\n const hideEvent = previous ?\n EventHandler.trigger(previous, EVENT_HIDE, {\n relatedTarget: this._element\n }) :\n null\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, {\n relatedTarget: previous\n })\n\n if (showEvent.defaultPrevented || (hideEvent !== null && hideEvent.defaultPrevented)) {\n return\n }\n\n this._activate(this._element, listElement)\n\n const complete = () => {\n EventHandler.trigger(previous, EVENT_HIDDEN, {\n relatedTarget: this._element\n })\n EventHandler.trigger(this._element, EVENT_SHOWN, {\n relatedTarget: previous\n })\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n // Private\n\n _activate(element, container, callback) {\n const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ?\n SelectorEngine.find(SELECTOR_ACTIVE_UL, container) :\n SelectorEngine.children(container, SELECTOR_ACTIVE)\n\n const active = activeElements[0]\n const isTransitioning = callback && (active && active.classList.contains(CLASS_NAME_FADE))\n\n const complete = () => this._transitionComplete(element, active, callback)\n\n if (active && isTransitioning) {\n const transitionDuration = getTransitionDurationFromElement(active)\n active.classList.remove(CLASS_NAME_SHOW)\n\n EventHandler.one(active, 'transitionend', complete)\n emulateTransitionEnd(active, transitionDuration)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n active.classList.remove(CLASS_NAME_ACTIVE)\n\n const dropdownChild = SelectorEngine.findOne(SELECTOR_DROPDOWN_ACTIVE_CHILD, active.parentNode)\n\n if (dropdownChild) {\n dropdownChild.classList.remove(CLASS_NAME_ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n element.classList.add(CLASS_NAME_ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n reflow(element)\n\n if (element.classList.contains(CLASS_NAME_FADE)) {\n element.classList.add(CLASS_NAME_SHOW)\n }\n\n if (element.parentNode && element.parentNode.classList.contains(CLASS_NAME_DROPDOWN_MENU)) {\n const dropdownElement = element.closest(SELECTOR_DROPDOWN)\n\n if (dropdownElement) {\n SelectorEngine.find(SELECTOR_DROPDOWN_TOGGLE)\n .forEach(dropdown => dropdown.classList.add(CLASS_NAME_ACTIVE))\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Data.get(this, DATA_KEY) || new Tab(this)\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 * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault()\n\n const data = Data.get(this, DATA_KEY) || new Tab(this)\n data.show()\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Tab to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(NAME, Tab)\n\nexport default Tab\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n defineJQueryPlugin,\n emulateTransitionEnd,\n getTransitionDurationFromElement,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'toast'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_CLICK_DISMISS = `click.dismiss${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'\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\nconst SELECTOR_DATA_DISMISS = '[data-bs-dismiss=\"toast\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n }\n\n // Getters\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get Default() {\n return Default\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\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 this._element.classList.add(CLASS_NAME_SHOW)\n\n EventHandler.trigger(this._element, EVENT_SHOWN)\n\n if (this._config.autohide) {\n this._timeout = setTimeout(() => {\n this.hide()\n }, this._config.delay)\n }\n }\n\n this._element.classList.remove(CLASS_NAME_HIDE)\n reflow(this._element)\n this._element.classList.add(CLASS_NAME_SHOWING)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, 'transitionend', complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n hide() {\n if (!this._element.classList.contains(CLASS_NAME_SHOW)) {\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)\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n }\n\n this._element.classList.remove(CLASS_NAME_SHOW)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, 'transitionend', complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n dispose() {\n this._clearTimeout()\n\n if (this._element.classList.contains(CLASS_NAME_SHOW)) {\n this._element.classList.remove(CLASS_NAME_SHOW)\n }\n\n EventHandler.off(this._element, EVENT_CLICK_DISMISS)\n\n super.dispose()\n this._config = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...(typeof config === 'object' && config ? config : {})\n }\n\n typeCheckConfig(NAME, config, this.constructor.DefaultType)\n\n return config\n }\n\n _setListeners() {\n EventHandler.on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, () => this.hide())\n }\n\n _clearTimeout() {\n clearTimeout(this._timeout)\n this._timeout = null\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.get(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new Toast(this, _config)\n }\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 * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Toast to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(NAME, Toast)\n\nexport default Toast\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): index.umd.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Alert from './src/alert'\nimport Button from './src/button'\nimport Carousel from './src/carousel'\nimport Collapse from './src/collapse'\nimport Dropdown from './src/dropdown'\nimport Modal from './src/modal'\nimport Offcanvas from './src/offcanvas'\nimport Popover from './src/popover'\nimport ScrollSpy from './src/scrollspy'\nimport Tab from './src/tab'\nimport Toast from './src/toast'\nimport Tooltip from './src/tooltip'\n\nexport default {\n Alert,\n Button,\n Carousel,\n Collapse,\n Dropdown,\n Modal,\n Offcanvas,\n Popover,\n ScrollSpy,\n Tab,\n Toast,\n Tooltip\n}\n"]}
\ No newline at end of file diff --git a/dist/js/bootstrap.esm.js b/dist/js/bootstrap.esm.js index 2d5969f7d..3ca4ebc8f 100644 --- a/dist/js/bootstrap.esm.js +++ b/dist/js/bootstrap.esm.js @@ -1,63 +1,23 @@ /*! - * Bootstrap v5.0.0-alpha3 (https://getbootstrap.com/) - * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) + * Bootstrap v5.0.0-beta3 (https://getbootstrap.com/) + * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) */ -import Popper from 'popper.js'; - -function _defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) descriptor.writable = true; - Object.defineProperty(target, descriptor.key, descriptor); - } -} - -function _createClass(Constructor, protoProps, staticProps) { - if (protoProps) _defineProperties(Constructor.prototype, protoProps); - if (staticProps) _defineProperties(Constructor, staticProps); - return Constructor; -} - -function _extends() { - _extends = Object.assign || function (target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i]; - - for (var key in source) { - if (Object.prototype.hasOwnProperty.call(source, key)) { - target[key] = source[key]; - } - } - } - - return target; - }; - - return _extends.apply(this, arguments); -} - -function _inheritsLoose(subClass, superClass) { - subClass.prototype = Object.create(superClass.prototype); - subClass.prototype.constructor = subClass; - subClass.__proto__ = superClass; -} +import * as Popper from '@popperjs/core'; /** * -------------------------------------------------------------------------- - * Bootstrap (v5.0.0-alpha3): util/index.js + * Bootstrap (v5.0.0-beta3): util/index.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ -var MAX_UID = 1000000; -var MILLISECONDS_MULTIPLIER = 1000; -var TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp) +const MAX_UID = 1000000; +const MILLISECONDS_MULTIPLIER = 1000; +const TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp) -var toType = function toType(obj) { +const toType = obj => { if (obj === null || obj === undefined) { - return "" + obj; + return `${obj}`; } return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase(); @@ -69,7 +29,7 @@ var toType = function toType(obj) { */ -var getUID = function getUID(prefix) { +const getUID = prefix => { do { prefix += Math.floor(Math.random() * MAX_UID); } while (document.getElementById(prefix)); @@ -77,19 +37,32 @@ var getUID = function getUID(prefix) { return prefix; }; -var getSelector = function getSelector(element) { - var selector = element.getAttribute('data-bs-target'); +const getSelector = element => { + let selector = element.getAttribute('data-bs-target'); if (!selector || selector === '#') { - var hrefAttr = element.getAttribute('href'); + let hrefAttr = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes, + // so everything starting with `#` or `.`. If a "real" URL is used as the selector, + // `document.querySelector` will rightfully complain it is invalid. + // See https://github.com/twbs/bootstrap/issues/32273 + + if (!hrefAttr || !hrefAttr.includes('#') && !hrefAttr.startsWith('.')) { + return null; + } // Just in case some CMS puts out a full URL with the anchor appended + + + if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) { + hrefAttr = '#' + hrefAttr.split('#')[1]; + } + selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null; } return selector; }; -var getSelectorFromElement = function getSelectorFromElement(element) { - var selector = getSelector(element); +const getSelectorFromElement = element => { + const selector = getSelector(element); if (selector) { return document.querySelector(selector) ? selector : null; @@ -98,23 +71,23 @@ var getSelectorFromElement = function getSelectorFromElement(element) { return null; }; -var getElementFromSelector = function getElementFromSelector(element) { - var selector = getSelector(element); +const getElementFromSelector = element => { + const selector = getSelector(element); return selector ? document.querySelector(selector) : null; }; -var getTransitionDurationFromElement = function getTransitionDurationFromElement(element) { +const getTransitionDurationFromElement = element => { if (!element) { return 0; } // Get transition-duration of the element - var _window$getComputedSt = window.getComputedStyle(element), - transitionDuration = _window$getComputedSt.transitionDuration, - transitionDelay = _window$getComputedSt.transitionDelay; - - var floatTransitionDuration = Number.parseFloat(transitionDuration); - var floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found + let { + transitionDuration, + transitionDelay + } = window.getComputedStyle(element); + const floatTransitionDuration = Number.parseFloat(transitionDuration); + const floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found if (!floatTransitionDuration && !floatTransitionDelay) { return 0; @@ -126,18 +99,16 @@ var getTransitionDurationFromElement = function getTransitionDurationFromElement return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER; }; -var triggerTransitionEnd = function triggerTransitionEnd(element) { +const triggerTransitionEnd = element => { element.dispatchEvent(new Event(TRANSITION_END)); }; -var isElement = function isElement(obj) { - return (obj[0] || obj).nodeType; -}; +const isElement = obj => (obj[0] || obj).nodeType; -var emulateTransitionEnd = function emulateTransitionEnd(element, duration) { - var called = false; - var durationPadding = 5; - var emulatedDuration = duration + durationPadding; +const emulateTransitionEnd = (element, duration) => { + let called = false; + const durationPadding = 5; + const emulatedDuration = duration + durationPadding; function listener() { called = true; @@ -145,47 +116,63 @@ var emulateTransitionEnd = function emulateTransitionEnd(element, duration) { } element.addEventListener(TRANSITION_END, listener); - setTimeout(function () { + setTimeout(() => { if (!called) { triggerTransitionEnd(element); } }, emulatedDuration); }; -var typeCheckConfig = function typeCheckConfig(componentName, config, configTypes) { - Object.keys(configTypes).forEach(function (property) { - var expectedTypes = configTypes[property]; - var value = config[property]; - var valueType = value && isElement(value) ? 'element' : toType(value); +const typeCheckConfig = (componentName, config, configTypes) => { + Object.keys(configTypes).forEach(property => { + const expectedTypes = configTypes[property]; + const value = config[property]; + const valueType = value && isElement(value) ? 'element' : toType(value); if (!new RegExp(expectedTypes).test(valueType)) { - throw new Error(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\".")); + throw new TypeError(`${componentName.toUpperCase()}: ` + `Option "${property}" provided type "${valueType}" ` + `but expected type "${expectedTypes}".`); } }); }; -var isVisible = function isVisible(element) { +const isVisible = element => { if (!element) { return false; } if (element.style && element.parentNode && element.parentNode.style) { - var elementStyle = getComputedStyle(element); - var parentNodeStyle = getComputedStyle(element.parentNode); + const elementStyle = getComputedStyle(element); + const parentNodeStyle = getComputedStyle(element.parentNode); return elementStyle.display !== 'none' && parentNodeStyle.display !== 'none' && elementStyle.visibility !== 'hidden'; } return false; }; -var findShadowRoot = function findShadowRoot(element) { +const isDisabled = element => { + if (!element || element.nodeType !== Node.ELEMENT_NODE) { + return true; + } + + if (element.classList.contains('disabled')) { + return true; + } + + if (typeof element.disabled !== 'undefined') { + return element.disabled; + } + + return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false'; +}; + +const findShadowRoot = element => { if (!document.documentElement.attachShadow) { return null; } // Can find the shadow root otherwise it'll return the document if (typeof element.getRootNode === 'function') { - var root = element.getRootNode(); + const root = element.getRootNode(); return root instanceof ShadowRoot ? root : null; } @@ -201,17 +188,14 @@ var findShadowRoot = function findShadowRoot(element) { return findShadowRoot(element.parentNode); }; -var noop = function noop() { - return function () {}; -}; +const noop = () => function () {}; -var reflow = function reflow(element) { - return element.offsetHeight; -}; +const reflow = element => element.offsetHeight; -var getjQuery = function getjQuery() { - var _window = window, - jQuery = _window.jQuery; +const getjQuery = () => { + const { + jQuery + } = window; if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) { return jQuery; @@ -220,7 +204,7 @@ var getjQuery = function getjQuery() { return null; }; -var onDOMContentLoaded = function onDOMContentLoaded(callback) { +const onDOMContentLoaded = callback => { if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', callback); } else { @@ -228,11 +212,29 @@ var onDOMContentLoaded = function onDOMContentLoaded(callback) { } }; -var isRTL = document.documentElement.dir === 'rtl'; +const isRTL = () => document.documentElement.dir === 'rtl'; + +const defineJQueryPlugin = (name, plugin) => { + onDOMContentLoaded(() => { + const $ = getjQuery(); + /* istanbul ignore if */ + + if ($) { + const JQUERY_NO_CONFLICT = $.fn[name]; + $.fn[name] = plugin.jQueryInterface; + $.fn[name].Constructor = plugin; + + $.fn[name].noConflict = () => { + $.fn[name] = JQUERY_NO_CONFLICT; + return plugin.jQueryInterface; + }; + } + }); +}; /** * -------------------------------------------------------------------------- - * Bootstrap (v5.0.0-alpha3): dom/data.js + * Bootstrap (v5.0.0-beta3): dom/data.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -242,64 +244,51 @@ var isRTL = document.documentElement.dir === 'rtl'; * Constants * ------------------------------------------------------------------------ */ -var mapData = function () { - var storeData = {}; - var id = 1; - return { - set: function set(element, key, data) { - if (typeof element.bsKey === 'undefined') { - element.bsKey = { - key: key, - id: id - }; - id++; - } +const elementMap = new Map(); +var Data = { + set(element, key, instance) { + if (!elementMap.has(element)) { + elementMap.set(element, new Map()); + } - storeData[element.bsKey.id] = data; - }, - get: function get(element, key) { - if (!element || typeof element.bsKey === 'undefined') { - return null; - } + const instanceMap = elementMap.get(element); // make it clear we only want one instance per element + // can be removed later when multiple key/instances are fine to be used - var keyProperties = element.bsKey; + if (!instanceMap.has(key) && instanceMap.size !== 0) { + // eslint-disable-next-line no-console + console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(instanceMap.keys())[0]}.`); + return; + } - if (keyProperties.key === key) { - return storeData[keyProperties.id]; - } + instanceMap.set(key, instance); + }, - return null; - }, - delete: function _delete(element, key) { - if (typeof element.bsKey === 'undefined') { - return; - } + get(element, key) { + if (elementMap.has(element)) { + return elementMap.get(element).get(key) || null; + } - var keyProperties = element.bsKey; + return null; + }, - if (keyProperties.key === key) { - delete storeData[keyProperties.id]; - delete element.bsKey; - } + remove(element, key) { + if (!elementMap.has(element)) { + return; } - }; -}(); -var Data = { - setData: function setData(instance, key, data) { - mapData.set(instance, key, data); - }, - getData: function getData(instance, key) { - return mapData.get(instance, key); - }, - removeData: function removeData(instance, key) { - mapData.delete(instance, key); + const instanceMap = elementMap.get(element); + instanceMap.delete(key); // free up element references if there are no instances left for an element + + if (instanceMap.size === 0) { + elementMap.delete(element); + } } + }; /** * -------------------------------------------------------------------------- - * Bootstrap (v5.0.0-alpha3): dom/event-handler.js + * Bootstrap (v5.0.0-beta3): dom/event-handler.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -309,17 +298,17 @@ var Data = { * ------------------------------------------------------------------------ */ -var namespaceRegex = /[^.]*(?=\..*)\.|.*/; -var stripNameRegex = /\..*/; -var stripUidRegex = /::\d+$/; -var eventRegistry = {}; // Events storage +const namespaceRegex = /[^.]*(?=\..*)\.|.*/; +const stripNameRegex = /\..*/; +const stripUidRegex = /::\d+$/; +const eventRegistry = {}; // Events storage -var uidEvent = 1; -var customEvents = { +let uidEvent = 1; +const customEvents = { mouseenter: 'mouseover', mouseleave: 'mouseout' }; -var nativeEvents = new Set(['click', 'dblclick', 'mouseup', 'mousedown', 'contextmenu', 'mousewheel', 'DOMMouseScroll', 'mouseover', 'mouseout', 'mousemove', 'selectstart', 'selectend', 'keydown', 'keypress', 'keyup', 'orientationchange', 'touchstart', 'touchmove', 'touchend', 'touchcancel', 'pointerdown', 'pointermove', 'pointerup', 'pointerleave', 'pointercancel', 'gesturestart', 'gesturechange', 'gestureend', 'focus', 'blur', 'change', 'reset', 'select', 'submit', 'focusin', 'focusout', 'load', 'unload', 'beforeunload', 'resize', 'move', 'DOMContentLoaded', 'readystatechange', 'error', 'abort', 'scroll']); +const nativeEvents = new Set(['click', 'dblclick', 'mouseup', 'mousedown', 'contextmenu', 'mousewheel', 'DOMMouseScroll', 'mouseover', 'mouseout', 'mousemove', 'selectstart', 'selectend', 'keydown', 'keypress', 'keyup', 'orientationchange', 'touchstart', 'touchmove', 'touchend', 'touchcancel', 'pointerdown', 'pointermove', 'pointerup', 'pointerleave', 'pointercancel', 'gesturestart', 'gesturechange', 'gestureend', 'focus', 'blur', 'change', 'reset', 'select', 'submit', 'focusin', 'focusout', 'load', 'unload', 'beforeunload', 'resize', 'move', 'DOMContentLoaded', 'readystatechange', 'error', 'abort', 'scroll']); /** * ------------------------------------------------------------------------ * Private methods @@ -327,11 +316,11 @@ var nativeEvents = new Set(['click', 'dblclick', 'mouseup', 'mousedown', 'contex */ function getUidEvent(element, uid) { - return uid && uid + "::" + uidEvent++ || element.uidEvent || uidEvent++; + return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++; } function getEvent(element) { - var uid = getUidEvent(element); + const uid = getUidEvent(element); element.uidEvent = uid; eventRegistry[uid] = eventRegistry[uid] || {}; return eventRegistry[uid]; @@ -351,14 +340,17 @@ function bootstrapHandler(element, fn) { function bootstrapDelegationHandler(element, selector, fn) { return function handler(event) { - var domElements = element.querySelectorAll(selector); + const domElements = element.querySelectorAll(selector); - for (var target = event.target; target && target !== this; target = target.parentNode) { - for (var i = domElements.length; i--;) { + for (let { + target + } = event; target && target !== this; target = target.parentNode) { + for (let i = domElements.length; i--;) { if (domElements[i] === target) { event.delegateTarget = target; if (handler.oneOff) { + // eslint-disable-next-line unicorn/consistent-destructuring EventHandler.off(element, event.type, fn); } @@ -372,15 +364,11 @@ function bootstrapDelegationHandler(element, selector, fn) { }; } -function findHandler(events, handler, delegationSelector) { - if (delegationSelector === void 0) { - delegationSelector = null; - } - - var uidEventList = Object.keys(events); +function findHandler(events, handler, delegationSelector = null) { + const uidEventList = Object.keys(events); - for (var i = 0, len = uidEventList.length; i < len; i++) { - var event = events[uidEventList[i]]; + for (let i = 0, len = uidEventList.length; i < len; i++) { + const event = events[uidEventList[i]]; if (event.originalHandler === handler && event.delegationSelector === delegationSelector) { return event; @@ -391,17 +379,17 @@ function findHandler(events, handler, delegationSelector) { } function normalizeParams(originalTypeEvent, handler, delegationFn) { - var delegation = typeof handler === 'string'; - var originalHandler = delegation ? delegationFn : handler; // allow to get the native events from namespaced events ('click.bs.button' --> 'click') + const delegation = typeof handler === 'string'; + const originalHandler = delegation ? delegationFn : handler; // allow to get the native events from namespaced events ('click.bs.button' --> 'click') - var typeEvent = originalTypeEvent.replace(stripNameRegex, ''); - var custom = customEvents[typeEvent]; + let typeEvent = originalTypeEvent.replace(stripNameRegex, ''); + const custom = customEvents[typeEvent]; if (custom) { typeEvent = custom; } - var isNative = nativeEvents.has(typeEvent); + const isNative = nativeEvents.has(typeEvent); if (!isNative) { typeEvent = originalTypeEvent; @@ -420,22 +408,18 @@ function addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) { delegationFn = null; } - var _normalizeParams = normalizeParams(originalTypeEvent, handler, delegationFn), - delegation = _normalizeParams[0], - originalHandler = _normalizeParams[1], - typeEvent = _normalizeParams[2]; - - var events = getEvent(element); - var handlers = events[typeEvent] || (events[typeEvent] = {}); - var previousFn = findHandler(handlers, originalHandler, delegation ? handler : null); + const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn); + const events = getEvent(element); + const handlers = events[typeEvent] || (events[typeEvent] = {}); + const previousFn = findHandler(handlers, originalHandler, delegation ? handler : null); if (previousFn) { previousFn.oneOff = previousFn.oneOff && oneOff; return; } - var uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, '')); - var fn = delegation ? bootstrapDelegationHandler(element, handler, delegationFn) : bootstrapHandler(element, handler); + const uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, '')); + const fn = delegation ? bootstrapDelegationHandler(element, handler, delegationFn) : bootstrapHandler(element, handler); fn.delegationSelector = delegation ? handler : null; fn.originalHandler = originalHandler; fn.oneOff = oneOff; @@ -445,7 +429,7 @@ function addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) { } function removeHandler(element, events, typeEvent, handler, delegationSelector) { - var fn = findHandler(events[typeEvent], handler, delegationSelector); + const fn = findHandler(events[typeEvent], handler, delegationSelector); if (!fn) { return; @@ -456,35 +440,33 @@ function removeHandler(element, events, typeEvent, handler, delegationSelector) } function removeNamespacedHandlers(element, events, typeEvent, namespace) { - var storeElementEvent = events[typeEvent] || {}; - Object.keys(storeElementEvent).forEach(function (handlerKey) { + const storeElementEvent = events[typeEvent] || {}; + Object.keys(storeElementEvent).forEach(handlerKey => { if (handlerKey.includes(namespace)) { - var event = storeElementEvent[handlerKey]; + const event = storeElementEvent[handlerKey]; removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector); } }); } -var EventHandler = { - on: function on(element, event, handler, delegationFn) { +const EventHandler = { + on(element, event, handler, delegationFn) { addHandler(element, event, handler, delegationFn, false); }, - one: function one(element, event, handler, delegationFn) { + + one(element, event, handler, delegationFn) { addHandler(element, event, handler, delegationFn, true); }, - off: function off(element, originalTypeEvent, handler, delegationFn) { + + off(element, originalTypeEvent, handler, delegationFn) { if (typeof originalTypeEvent !== 'string' || !element) { return; } - var _normalizeParams2 = normalizeParams(originalTypeEvent, handler, delegationFn), - delegation = _normalizeParams2[0], - originalHandler = _normalizeParams2[1], - typeEvent = _normalizeParams2[2]; - - var inNamespace = typeEvent !== originalTypeEvent; - var events = getEvent(element); - var isNamespace = originalTypeEvent.startsWith('.'); + const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn); + const inNamespace = typeEvent !== originalTypeEvent; + const events = getEvent(element); + const isNamespace = originalTypeEvent.startsWith('.'); if (typeof originalHandler !== 'undefined') { // Simplest case: handler is passed, remove that listener ONLY. @@ -497,35 +479,36 @@ var EventHandler = { } if (isNamespace) { - Object.keys(events).forEach(function (elementEvent) { + Object.keys(events).forEach(elementEvent => { removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1)); }); } - var storeElementEvent = events[typeEvent] || {}; - Object.keys(storeElementEvent).forEach(function (keyHandlers) { - var handlerKey = keyHandlers.replace(stripUidRegex, ''); + const storeElementEvent = events[typeEvent] || {}; + Object.keys(storeElementEvent).forEach(keyHandlers => { + const handlerKey = keyHandlers.replace(stripUidRegex, ''); if (!inNamespace || originalTypeEvent.includes(handlerKey)) { - var event = storeElementEvent[keyHandlers]; + const event = storeElementEvent[keyHandlers]; removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector); } }); }, - trigger: function trigger(element, event, args) { + + trigger(element, event, args) { if (typeof event !== 'string' || !element) { return null; } - var $ = getjQuery(); - var typeEvent = event.replace(stripNameRegex, ''); - var inNamespace = event !== typeEvent; - var isNative = nativeEvents.has(typeEvent); - var jQueryEvent; - var bubbles = true; - var nativeDispatch = true; - var defaultPrevented = false; - var evt = null; + const $ = getjQuery(); + const typeEvent = event.replace(stripNameRegex, ''); + const inNamespace = event !== typeEvent; + const isNative = nativeEvents.has(typeEvent); + let jQueryEvent; + let bubbles = true; + let nativeDispatch = true; + let defaultPrevented = false; + let evt = null; if (inNamespace && $) { jQueryEvent = $.Event(event, args); @@ -540,18 +523,19 @@ var EventHandler = { evt.initEvent(typeEvent, bubbles, true); } else { evt = new CustomEvent(event, { - bubbles: bubbles, + bubbles, cancelable: true }); } // merge custom information in our event if (typeof args !== 'undefined') { - Object.keys(args).forEach(function (key) { + Object.keys(args).forEach(key => { Object.defineProperty(evt, key, { - get: function get() { + get() { return args[key]; } + }); }); } @@ -570,86 +554,92 @@ var EventHandler = { return evt; } + }; /** + * -------------------------------------------------------------------------- + * Bootstrap (v5.0.0-beta3): base-component.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ +/** * ------------------------------------------------------------------------ * Constants * ------------------------------------------------------------------------ */ -var VERSION = '5.0.0-alpha3'; +const VERSION = '5.0.0-beta3'; + +class BaseComponent { + constructor(element) { + element = typeof element === 'string' ? document.querySelector(element) : element; -var BaseComponent = /*#__PURE__*/function () { - function BaseComponent(element) { if (!element) { return; } this._element = element; - Data.setData(element, this.constructor.DATA_KEY, this); + Data.set(this._element, this.constructor.DATA_KEY, this); } - var _proto = BaseComponent.prototype; - - _proto.dispose = function dispose() { - Data.removeData(this._element, this.constructor.DATA_KEY); + dispose() { + Data.remove(this._element, this.constructor.DATA_KEY); this._element = null; } /** Static */ - ; - BaseComponent.getInstance = function getInstance(element) { - return Data.getData(element, this.DATA_KEY); - }; - _createClass(BaseComponent, null, [{ - key: "VERSION", - get: function get() { - return VERSION; - } - }]); + static getInstance(element) { + return Data.get(element, this.DATA_KEY); + } - return BaseComponent; -}(); + static get VERSION() { + return VERSION; + } + +} /** + * -------------------------------------------------------------------------- + * Bootstrap (v5.0.0-beta3): alert.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ +/** * ------------------------------------------------------------------------ * Constants * ------------------------------------------------------------------------ */ -var NAME = 'alert'; -var DATA_KEY = 'bs.alert'; -var EVENT_KEY = "." + DATA_KEY; -var DATA_API_KEY = '.data-api'; -var SELECTOR_DISMISS = '[data-bs-dismiss="alert"]'; -var EVENT_CLOSE = "close" + EVENT_KEY; -var EVENT_CLOSED = "closed" + EVENT_KEY; -var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY; -var CLASSNAME_ALERT = 'alert'; -var CLASSNAME_FADE = 'fade'; -var CLASSNAME_SHOW = 'show'; +const NAME$b = 'alert'; +const DATA_KEY$b = 'bs.alert'; +const EVENT_KEY$b = `.${DATA_KEY$b}`; +const DATA_API_KEY$8 = '.data-api'; +const SELECTOR_DISMISS = '[data-bs-dismiss="alert"]'; +const EVENT_CLOSE = `close${EVENT_KEY$b}`; +const EVENT_CLOSED = `closed${EVENT_KEY$b}`; +const EVENT_CLICK_DATA_API$7 = `click${EVENT_KEY$b}${DATA_API_KEY$8}`; +const CLASS_NAME_ALERT = 'alert'; +const CLASS_NAME_FADE$5 = 'fade'; +const CLASS_NAME_SHOW$8 = 'show'; /** * ------------------------------------------------------------------------ * Class Definition * ------------------------------------------------------------------------ */ -var Alert = /*#__PURE__*/function (_BaseComponent) { - _inheritsLoose(Alert, _BaseComponent); +class Alert extends BaseComponent { + // Getters + static get DATA_KEY() { + return DATA_KEY$b; + } // Public - function Alert() { - return _BaseComponent.apply(this, arguments) || this; - } - - var _proto = Alert.prototype; - // Public - _proto.close = function close(element) { - var rootElement = element ? this._getRootElement(element) : this._element; + close(element) { + const rootElement = element ? this._getRootElement(element) : this._element; - var customEvent = this._triggerCloseEvent(rootElement); + const customEvent = this._triggerCloseEvent(rootElement); if (customEvent === null || customEvent.defaultPrevented) { return; @@ -657,46 +647,42 @@ var Alert = /*#__PURE__*/function (_BaseComponent) { this._removeElement(rootElement); } // Private - ; - _proto._getRootElement = function _getRootElement(element) { - return getElementFromSelector(element) || element.closest("." + CLASSNAME_ALERT); - }; - _proto._triggerCloseEvent = function _triggerCloseEvent(element) { - return EventHandler.trigger(element, EVENT_CLOSE); - }; + _getRootElement(element) { + return getElementFromSelector(element) || element.closest(`.${CLASS_NAME_ALERT}`); + } - _proto._removeElement = function _removeElement(element) { - var _this = this; + _triggerCloseEvent(element) { + return EventHandler.trigger(element, EVENT_CLOSE); + } - element.classList.remove(CLASSNAME_SHOW); + _removeElement(element) { + element.classList.remove(CLASS_NAME_SHOW$8); - if (!element.classList.contains(CLASSNAME_FADE)) { + if (!element.classList.contains(CLASS_NAME_FADE$5)) { this._destroyElement(element); return; } - var transitionDuration = getTransitionDurationFromElement(element); - EventHandler.one(element, TRANSITION_END, function () { - return _this._destroyElement(element); - }); + const transitionDuration = getTransitionDurationFromElement(element); + EventHandler.one(element, 'transitionend', () => this._destroyElement(element)); emulateTransitionEnd(element, transitionDuration); - }; + } - _proto._destroyElement = function _destroyElement(element) { + _destroyElement(element) { if (element.parentNode) { element.parentNode.removeChild(element); } EventHandler.trigger(element, EVENT_CLOSED); } // Static - ; - Alert.jQueryInterface = function jQueryInterface(config) { + + static jQueryInterface(config) { return this.each(function () { - var data = Data.getData(this, DATA_KEY); + let data = Data.get(this, DATA_KEY$b); if (!data) { data = new Alert(this); @@ -706,9 +692,9 @@ var Alert = /*#__PURE__*/function (_BaseComponent) { data[config](this); } }); - }; + } - Alert.handleDismiss = function handleDismiss(alertInstance) { + static handleDismiss(alertInstance) { return function (event) { if (event) { event.preventDefault(); @@ -716,18 +702,9 @@ var Alert = /*#__PURE__*/function (_BaseComponent) { alertInstance.close(this); }; - }; - - _createClass(Alert, null, [{ - key: "DATA_KEY", - // Getters - get: function get() { - return DATA_KEY; - } - }]); + } - return Alert; -}(BaseComponent); +} /** * ------------------------------------------------------------------------ * Data Api implementation @@ -735,7 +712,7 @@ var Alert = /*#__PURE__*/function (_BaseComponent) { */ -EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DISMISS, Alert.handleDismiss(new Alert())); +EventHandler.on(document, EVENT_CLICK_DATA_API$7, SELECTOR_DISMISS, Alert.handleDismiss(new Alert())); /** * ------------------------------------------------------------------------ * jQuery @@ -743,60 +720,49 @@ EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DISMISS, Alert.handleDi * add .Alert to jQuery only if jQuery is present */ -onDOMContentLoaded(function () { - var $ = getjQuery(); - /* istanbul ignore if */ - - if ($) { - var JQUERY_NO_CONFLICT = $.fn[NAME]; - $.fn[NAME] = Alert.jQueryInterface; - $.fn[NAME].Constructor = Alert; - - $.fn[NAME].noConflict = function () { - $.fn[NAME] = JQUERY_NO_CONFLICT; - return Alert.jQueryInterface; - }; - } -}); +defineJQueryPlugin(NAME$b, Alert); /** + * -------------------------------------------------------------------------- + * Bootstrap (v5.0.0-beta3): button.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ +/** * ------------------------------------------------------------------------ * Constants * ------------------------------------------------------------------------ */ -var NAME$1 = 'button'; -var DATA_KEY$1 = 'bs.button'; -var EVENT_KEY$1 = "." + DATA_KEY$1; -var DATA_API_KEY$1 = '.data-api'; -var CLASS_NAME_ACTIVE = 'active'; -var SELECTOR_DATA_TOGGLE = '[data-bs-toggle="button"]'; -var EVENT_CLICK_DATA_API$1 = "click" + EVENT_KEY$1 + DATA_API_KEY$1; +const NAME$a = 'button'; +const DATA_KEY$a = 'bs.button'; +const EVENT_KEY$a = `.${DATA_KEY$a}`; +const DATA_API_KEY$7 = '.data-api'; +const CLASS_NAME_ACTIVE$3 = 'active'; +const SELECTOR_DATA_TOGGLE$5 = '[data-bs-toggle="button"]'; +const EVENT_CLICK_DATA_API$6 = `click${EVENT_KEY$a}${DATA_API_KEY$7}`; /** * ------------------------------------------------------------------------ * Class Definition * ------------------------------------------------------------------------ */ -var Button = /*#__PURE__*/function (_BaseComponent) { - _inheritsLoose(Button, _BaseComponent); - - function Button() { - return _BaseComponent.apply(this, arguments) || this; - } +class Button extends BaseComponent { + // Getters + static get DATA_KEY() { + return DATA_KEY$a; + } // Public - var _proto = Button.prototype; - // Public - _proto.toggle = function toggle() { + toggle() { // Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method - this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE)); + this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE$3)); } // Static - ; - Button.jQueryInterface = function jQueryInterface(config) { + + static jQueryInterface(config) { return this.each(function () { - var data = Data.getData(this, DATA_KEY$1); + let data = Data.get(this, DATA_KEY$a); if (!data) { data = new Button(this); @@ -806,18 +772,9 @@ var Button = /*#__PURE__*/function (_BaseComponent) { data[config](); } }); - }; - - _createClass(Button, null, [{ - key: "DATA_KEY", - // Getters - get: function get() { - return DATA_KEY$1; - } - }]); + } - return Button; -}(BaseComponent); +} /** * ------------------------------------------------------------------------ * Data Api implementation @@ -825,10 +782,10 @@ var Button = /*#__PURE__*/function (_BaseComponent) { */ -EventHandler.on(document, EVENT_CLICK_DATA_API$1, SELECTOR_DATA_TOGGLE, function (event) { +EventHandler.on(document, EVENT_CLICK_DATA_API$6, SELECTOR_DATA_TOGGLE$5, event => { event.preventDefault(); - var button = event.target.closest(SELECTOR_DATA_TOGGLE); - var data = Data.getData(button, DATA_KEY$1); + const button = event.target.closest(SELECTOR_DATA_TOGGLE$5); + let data = Data.get(button, DATA_KEY$a); if (!data) { data = new Button(button); @@ -843,25 +800,11 @@ EventHandler.on(document, EVENT_CLICK_DATA_API$1, SELECTOR_DATA_TOGGLE, function * add .Button to jQuery only if jQuery is present */ -onDOMContentLoaded(function () { - var $ = getjQuery(); - /* istanbul ignore if */ - - if ($) { - var JQUERY_NO_CONFLICT = $.fn[NAME$1]; - $.fn[NAME$1] = Button.jQueryInterface; - $.fn[NAME$1].Constructor = Button; - - $.fn[NAME$1].noConflict = function () { - $.fn[NAME$1] = JQUERY_NO_CONFLICT; - return Button.jQueryInterface; - }; - } -}); +defineJQueryPlugin(NAME$a, Button); /** * -------------------------------------------------------------------------- - * Bootstrap (v5.0.0-alpha3): dom/manipulator.js + * Bootstrap (v5.0.0-beta3): dom/manipulator.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -886,54 +829,56 @@ function normalizeData(val) { } function normalizeDataKey(key) { - return key.replace(/[A-Z]/g, function (chr) { - return "-" + chr.toLowerCase(); - }); + return key.replace(/[A-Z]/g, chr => `-${chr.toLowerCase()}`); } -var Manipulator = { - setDataAttribute: function setDataAttribute(element, key, value) { - element.setAttribute("data-bs-" + normalizeDataKey(key), value); +const Manipulator = { + setDataAttribute(element, key, value) { + element.setAttribute(`data-bs-${normalizeDataKey(key)}`, value); }, - removeDataAttribute: function removeDataAttribute(element, key) { - element.removeAttribute("data-bs-" + normalizeDataKey(key)); + + removeDataAttribute(element, key) { + element.removeAttribute(`data-bs-${normalizeDataKey(key)}`); }, - getDataAttributes: function getDataAttributes(element) { + + getDataAttributes(element) { if (!element) { return {}; } - var attributes = {}; - Object.keys(element.dataset).filter(function (key) { - return key.startsWith('bs'); - }).forEach(function (key) { - var pureKey = key.replace(/^bs/, ''); + const attributes = {}; + Object.keys(element.dataset).filter(key => key.startsWith('bs')).forEach(key => { + let pureKey = key.replace(/^bs/, ''); pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length); attributes[pureKey] = normalizeData(element.dataset[key]); }); return attributes; }, - getDataAttribute: function getDataAttribute(element, key) { - return normalizeData(element.getAttribute("data-bs-" + normalizeDataKey(key))); + + getDataAttribute(element, key) { + return normalizeData(element.getAttribute(`data-bs-${normalizeDataKey(key)}`)); }, - offset: function offset(element) { - var rect = element.getBoundingClientRect(); + + offset(element) { + const rect = element.getBoundingClientRect(); return { top: rect.top + document.body.scrollTop, left: rect.left + document.body.scrollLeft }; }, - position: function position(element) { + + position(element) { return { top: element.offsetTop, left: element.offsetLeft }; } + }; /** * -------------------------------------------------------------------------- - * Bootstrap (v5.0.0-alpha3): dom/selector-engine.js + * Bootstrap (v5.0.0-beta3): dom/selector-engine.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -943,42 +888,26 @@ var Manipulator = { * Constants * ------------------------------------------------------------------------ */ -var NODE_TEXT = 3; -var SelectorEngine = { - matches: function matches(element, selector) { - return element.matches(selector); +const NODE_TEXT = 3; +const SelectorEngine = { + find(selector, element = document.documentElement) { + return [].concat(...Element.prototype.querySelectorAll.call(element, selector)); }, - find: function find(selector, element) { - var _ref; - - if (element === void 0) { - element = document.documentElement; - } - - return (_ref = []).concat.apply(_ref, Element.prototype.querySelectorAll.call(element, selector)); - }, - findOne: function findOne(selector, element) { - if (element === void 0) { - element = document.documentElement; - } + findOne(selector, element = document.documentElement) { return Element.prototype.querySelector.call(element, selector); }, - children: function children(element, selector) { - var _ref2; - - var children = (_ref2 = []).concat.apply(_ref2, element.children); - return children.filter(function (child) { - return child.matches(selector); - }); + children(element, selector) { + return [].concat(...element.children).filter(child => child.matches(selector)); }, - parents: function parents(element, selector) { - var parents = []; - var ancestor = element.parentNode; + + parents(element, selector) { + const parents = []; + let ancestor = element.parentNode; while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) { - if (this.matches(ancestor, selector)) { + if (ancestor.matches(selector)) { parents.push(ancestor); } @@ -987,8 +916,9 @@ var SelectorEngine = { return parents; }, - prev: function prev(element, selector) { - var previous = element.previousElementSibling; + + prev(element, selector) { + let previous = element.previousElementSibling; while (previous) { if (previous.matches(selector)) { @@ -1000,11 +930,12 @@ var SelectorEngine = { return []; }, - next: function next(element, selector) { - var next = element.nextElementSibling; + + next(element, selector) { + let next = element.nextElementSibling; while (next) { - if (this.matches(next, selector)) { + if (next.matches(selector)) { return [next]; } @@ -1013,24 +944,31 @@ var SelectorEngine = { return []; } + }; /** + * -------------------------------------------------------------------------- + * Bootstrap (v5.0.0-beta3): carousel.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ +/** * ------------------------------------------------------------------------ * Constants * ------------------------------------------------------------------------ */ -var NAME$2 = 'carousel'; -var DATA_KEY$2 = 'bs.carousel'; -var EVENT_KEY$2 = "." + DATA_KEY$2; -var DATA_API_KEY$2 = '.data-api'; -var ARROW_LEFT_KEY = 'ArrowLeft'; -var ARROW_RIGHT_KEY = 'ArrowRight'; -var TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch +const NAME$9 = 'carousel'; +const DATA_KEY$9 = 'bs.carousel'; +const EVENT_KEY$9 = `.${DATA_KEY$9}`; +const DATA_API_KEY$6 = '.data-api'; +const ARROW_LEFT_KEY = 'ArrowLeft'; +const ARROW_RIGHT_KEY = 'ArrowRight'; +const TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch -var SWIPE_THRESHOLD = 40; -var Default = { +const SWIPE_THRESHOLD = 40; +const Default$8 = { interval: 5000, keyboard: true, slide: false, @@ -1038,7 +976,7 @@ var Default = { wrap: true, touch: true }; -var DefaultType = { +const DefaultType$8 = { interval: '(number|boolean)', keyboard: 'boolean', slide: '(boolean|string)', @@ -1046,99 +984,98 @@ var DefaultType = { wrap: 'boolean', touch: 'boolean' }; -var DIRECTION_NEXT = 'next'; -var DIRECTION_PREV = 'prev'; -var DIRECTION_LEFT = 'left'; -var DIRECTION_RIGHT = 'right'; -var EVENT_SLIDE = "slide" + EVENT_KEY$2; -var EVENT_SLID = "slid" + EVENT_KEY$2; -var EVENT_KEYDOWN = "keydown" + EVENT_KEY$2; -var EVENT_MOUSEENTER = "mouseenter" + EVENT_KEY$2; -var EVENT_MOUSELEAVE = "mouseleave" + EVENT_KEY$2; -var EVENT_TOUCHSTART = "touchstart" + EVENT_KEY$2; -var EVENT_TOUCHMOVE = "touchmove" + EVENT_KEY$2; -var EVENT_TOUCHEND = "touchend" + EVENT_KEY$2; -var EVENT_POINTERDOWN = "pointerdown" + EVENT_KEY$2; -var EVENT_POINTERUP = "pointerup" + EVENT_KEY$2; -var EVENT_DRAG_START = "dragstart" + EVENT_KEY$2; -var EVENT_LOAD_DATA_API = "load" + EVENT_KEY$2 + DATA_API_KEY$2; -var EVENT_CLICK_DATA_API$2 = "click" + EVENT_KEY$2 + DATA_API_KEY$2; -var CLASS_NAME_CAROUSEL = 'carousel'; -var CLASS_NAME_ACTIVE$1 = 'active'; -var CLASS_NAME_SLIDE = 'slide'; -var CLASS_NAME_END = 'carousel-item-end'; -var CLASS_NAME_START = 'carousel-item-start'; -var CLASS_NAME_NEXT = 'carousel-item-next'; -var CLASS_NAME_PREV = 'carousel-item-prev'; -var CLASS_NAME_POINTER_EVENT = 'pointer-event'; -var SELECTOR_ACTIVE = '.active'; -var SELECTOR_ACTIVE_ITEM = '.active.carousel-item'; -var SELECTOR_ITEM = '.carousel-item'; -var SELECTOR_ITEM_IMG = '.carousel-item img'; -var SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev'; -var SELECTOR_INDICATORS = '.carousel-indicators'; -var SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]'; -var SELECTOR_DATA_RIDE = '[data-bs-ride="carousel"]'; -var PointerType = { - TOUCH: 'touch', - PEN: 'pen' -}; +const ORDER_NEXT = 'next'; +const ORDER_PREV = 'prev'; +const DIRECTION_LEFT = 'left'; +const DIRECTION_RIGHT = 'right'; +const EVENT_SLIDE = `slide${EVENT_KEY$9}`; +const EVENT_SLID = `slid${EVENT_KEY$9}`; +const EVENT_KEYDOWN = `keydown${EVENT_KEY$9}`; +const EVENT_MOUSEENTER = `mouseenter${EVENT_KEY$9}`; +const EVENT_MOUSELEAVE = `mouseleave${EVENT_KEY$9}`; +const EVENT_TOUCHSTART = `touchstart${EVENT_KEY$9}`; +const EVENT_TOUCHMOVE = `touchmove${EVENT_KEY$9}`; +const EVENT_TOUCHEND = `touchend${EVENT_KEY$9}`; +const EVENT_POINTERDOWN = `pointerdown${EVENT_KEY$9}`; +const EVENT_POINTERUP = `pointerup${EVENT_KEY$9}`; +const EVENT_DRAG_START = `dragstart${EVENT_KEY$9}`; +const EVENT_LOAD_DATA_API$2 = `load${EVENT_KEY$9}${DATA_API_KEY$6}`; +const EVENT_CLICK_DATA_API$5 = `click${EVENT_KEY$9}${DATA_API_KEY$6}`; +const CLASS_NAME_CAROUSEL = 'carousel'; +const CLASS_NAME_ACTIVE$2 = 'active'; +const CLASS_NAME_SLIDE = 'slide'; +const CLASS_NAME_END = 'carousel-item-end'; +const CLASS_NAME_START = 'carousel-item-start'; +const CLASS_NAME_NEXT = 'carousel-item-next'; +const CLASS_NAME_PREV = 'carousel-item-prev'; +const CLASS_NAME_POINTER_EVENT = 'pointer-event'; +const SELECTOR_ACTIVE$1 = '.active'; +const SELECTOR_ACTIVE_ITEM = '.active.carousel-item'; +const SELECTOR_ITEM = '.carousel-item'; +const SELECTOR_ITEM_IMG = '.carousel-item img'; +const SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev'; +const SELECTOR_INDICATORS = '.carousel-indicators'; +const SELECTOR_INDICATOR = '[data-bs-target]'; +const SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]'; +const SELECTOR_DATA_RIDE = '[data-bs-ride="carousel"]'; +const POINTER_TYPE_TOUCH = 'touch'; +const POINTER_TYPE_PEN = 'pen'; /** * ------------------------------------------------------------------------ * Class Definition * ------------------------------------------------------------------------ */ -var Carousel = /*#__PURE__*/function (_BaseComponent) { - _inheritsLoose(Carousel, _BaseComponent); - - function Carousel(element, config) { - var _this; - - _this = _BaseComponent.call(this, element) || this; - _this._items = null; - _this._interval = null; - _this._activeElement = null; - _this._isPaused = false; - _this._isSliding = false; - _this.touchTimeout = null; - _this.touchStartX = 0; - _this.touchDeltaX = 0; - _this._config = _this._getConfig(config); - _this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, _this._element); - _this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0; - _this._pointerEvent = Boolean(window.PointerEvent); - - _this._addEventListeners(); - - return _this; +class Carousel extends BaseComponent { + constructor(element, config) { + super(element); + this._items = null; + this._interval = null; + this._activeElement = null; + this._isPaused = false; + this._isSliding = false; + this.touchTimeout = null; + this.touchStartX = 0; + this.touchDeltaX = 0; + this._config = this._getConfig(config); + this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element); + this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0; + this._pointerEvent = Boolean(window.PointerEvent); + + this._addEventListeners(); } // Getters - var _proto = Carousel.prototype; + static get Default() { + return Default$8; + } + + static get DATA_KEY() { + return DATA_KEY$9; + } // Public - // Public - _proto.next = function next() { + + next() { if (!this._isSliding) { - this._slide(DIRECTION_NEXT); + this._slide(ORDER_NEXT); } - }; + } - _proto.nextWhenVisible = function nextWhenVisible() { + nextWhenVisible() { // Don't call next when the page isn't visible // or the carousel or its parent isn't visible if (!document.hidden && isVisible(this._element)) { this.next(); } - }; + } - _proto.prev = function prev() { + prev() { if (!this._isSliding) { - this._slide(DIRECTION_PREV); + this._slide(ORDER_PREV); } - }; + } - _proto.pause = function pause(event) { + pause(event) { if (!event) { this._isPaused = true; } @@ -1150,9 +1087,9 @@ var Carousel = /*#__PURE__*/function (_BaseComponent) { clearInterval(this._interval); this._interval = null; - }; + } - _proto.cycle = function cycle(event) { + cycle(event) { if (!event) { this._isPaused = false; } @@ -1167,23 +1104,19 @@ var Carousel = /*#__PURE__*/function (_BaseComponent) { this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval); } - }; - - _proto.to = function to(index) { - var _this2 = this; + } + to(index) { this._activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element); - var activeIndex = this._getItemIndex(this._activeElement); + const activeIndex = this._getItemIndex(this._activeElement); if (index > this._items.length - 1 || index < 0) { return; } if (this._isSliding) { - EventHandler.one(this._element, EVENT_SLID, function () { - return _this2.to(index); - }); + EventHandler.one(this._element, EVENT_SLID, () => this.to(index)); return; } @@ -1193,15 +1126,13 @@ var Carousel = /*#__PURE__*/function (_BaseComponent) { return; } - var direction = index > activeIndex ? DIRECTION_NEXT : DIRECTION_PREV; - - this._slide(direction, this._items[index]); - }; + const order = index > activeIndex ? ORDER_NEXT : ORDER_PREV; - _proto.dispose = function dispose() { - _BaseComponent.prototype.dispose.call(this); + this._slide(order, this._items[index]); + } - EventHandler.off(this._element, EVENT_KEY$2); + dispose() { + EventHandler.off(this._element, EVENT_KEY$9); this._items = null; this._config = null; this._interval = null; @@ -1209,86 +1140,72 @@ var Carousel = /*#__PURE__*/function (_BaseComponent) { this._isSliding = null; this._activeElement = null; this._indicatorsElement = null; + super.dispose(); } // Private - ; - _proto._getConfig = function _getConfig(config) { - config = _extends({}, Default, config); - typeCheckConfig(NAME$2, config, DefaultType); + + _getConfig(config) { + config = { ...Default$8, + ...config + }; + typeCheckConfig(NAME$9, config, DefaultType$8); return config; - }; + } - _proto._handleSwipe = function _handleSwipe() { - var absDeltax = Math.abs(this.touchDeltaX); + _handleSwipe() { + const absDeltax = Math.abs(this.touchDeltaX); if (absDeltax <= SWIPE_THRESHOLD) { return; } - var direction = absDeltax / this.touchDeltaX; - this.touchDeltaX = 0; // swipe left - - if (direction > 0) { - this.prev(); - } // swipe right - + const direction = absDeltax / this.touchDeltaX; + this.touchDeltaX = 0; - if (direction < 0) { - this.next(); + if (!direction) { + return; } - }; - _proto._addEventListeners = function _addEventListeners() { - var _this3 = this; + this._slide(direction > 0 ? DIRECTION_RIGHT : DIRECTION_LEFT); + } + _addEventListeners() { if (this._config.keyboard) { - EventHandler.on(this._element, EVENT_KEYDOWN, function (event) { - return _this3._keydown(event); - }); + EventHandler.on(this._element, EVENT_KEYDOWN, event => this._keydown(event)); } if (this._config.pause === 'hover') { - EventHandler.on(this._element, EVENT_MOUSEENTER, function (event) { - return _this3.pause(event); - }); - EventHandler.on(this._element, EVENT_MOUSELEAVE, function (event) { - return _this3.cycle(event); - }); + EventHandler.on(this._element, EVENT_MOUSEENTER, event => this.pause(event)); + EventHandler.on(this._element, EVENT_MOUSELEAVE, event => this.cycle(event)); } if (this._config.touch && this._touchSupported) { this._addTouchEventListeners(); } - }; - - _proto._addTouchEventListeners = function _addTouchEventListeners() { - var _this4 = this; + } - var start = function start(event) { - if (_this4._pointerEvent && PointerType[event.pointerType.toUpperCase()]) { - _this4.touchStartX = event.clientX; - } else if (!_this4._pointerEvent) { - _this4.touchStartX = event.touches[0].clientX; + _addTouchEventListeners() { + const start = event => { + if (this._pointerEvent && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH)) { + this.touchStartX = event.clientX; + } else if (!this._pointerEvent) { + this.touchStartX = event.touches[0].clientX; } }; - var move = function move(event) { + const move = event => { // ensure swiping with one touch and not pinching - if (event.touches && event.touches.length > 1) { - _this4.touchDeltaX = 0; - } else { - _this4.touchDeltaX = event.touches[0].clientX - _this4.touchStartX; - } + this.touchDeltaX = event.touches && event.touches.length > 1 ? 0 : event.touches[0].clientX - this.touchStartX; }; - var end = function end(event) { - if (_this4._pointerEvent && PointerType[event.pointerType.toUpperCase()]) { - _this4.touchDeltaX = event.clientX - _this4.touchStartX; + const end = event => { + if (this._pointerEvent && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH)) { + this.touchDeltaX = event.clientX - this.touchStartX; } - _this4._handleSwipe(); + this._handleSwipe(); - if (_this4._config.pause === 'hover') { + if (this._config.pause === 'hover') { // If it's a touch-enabled device, mouseenter/leave are fired as // part of the mouse compatibility events on first tap - the carousel // would stop cycling until user tapped out of it; @@ -1296,124 +1213,109 @@ var Carousel = /*#__PURE__*/function (_BaseComponent) { // (as if it's the second time we tap on it, mouseenter compat event // is NOT fired) and after a timeout (to allow for mouse compatibility // events to fire) we explicitly restart cycling - _this4.pause(); + this.pause(); - if (_this4.touchTimeout) { - clearTimeout(_this4.touchTimeout); + if (this.touchTimeout) { + clearTimeout(this.touchTimeout); } - _this4.touchTimeout = setTimeout(function (event) { - return _this4.cycle(event); - }, TOUCHEVENT_COMPAT_WAIT + _this4._config.interval); + this.touchTimeout = setTimeout(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval); } }; - SelectorEngine.find(SELECTOR_ITEM_IMG, this._element).forEach(function (itemImg) { - EventHandler.on(itemImg, EVENT_DRAG_START, function (e) { - return e.preventDefault(); - }); + SelectorEngine.find(SELECTOR_ITEM_IMG, this._element).forEach(itemImg => { + EventHandler.on(itemImg, EVENT_DRAG_START, e => e.preventDefault()); }); if (this._pointerEvent) { - EventHandler.on(this._element, EVENT_POINTERDOWN, function (event) { - return start(event); - }); - EventHandler.on(this._element, EVENT_POINTERUP, function (event) { - return end(event); - }); + EventHandler.on(this._element, EVENT_POINTERDOWN, event => start(event)); + EventHandler.on(this._element, EVENT_POINTERUP, event => end(event)); this._element.classList.add(CLASS_NAME_POINTER_EVENT); } else { - EventHandler.on(this._element, EVENT_TOUCHSTART, function (event) { - return start(event); - }); - EventHandler.on(this._element, EVENT_TOUCHMOVE, function (event) { - return move(event); - }); - EventHandler.on(this._element, EVENT_TOUCHEND, function (event) { - return end(event); - }); + EventHandler.on(this._element, EVENT_TOUCHSTART, event => start(event)); + EventHandler.on(this._element, EVENT_TOUCHMOVE, event => move(event)); + EventHandler.on(this._element, EVENT_TOUCHEND, event => end(event)); } - }; + } - _proto._keydown = function _keydown(event) { + _keydown(event) { if (/input|textarea/i.test(event.target.tagName)) { return; } - switch (event.key) { - case ARROW_LEFT_KEY: - event.preventDefault(); - this.prev(); - break; + if (event.key === ARROW_LEFT_KEY) { + event.preventDefault(); - case ARROW_RIGHT_KEY: - event.preventDefault(); - this.next(); - break; + this._slide(DIRECTION_LEFT); + } else if (event.key === ARROW_RIGHT_KEY) { + event.preventDefault(); + + this._slide(DIRECTION_RIGHT); } - }; + } - _proto._getItemIndex = function _getItemIndex(element) { + _getItemIndex(element) { this._items = element && element.parentNode ? SelectorEngine.find(SELECTOR_ITEM, element.parentNode) : []; return this._items.indexOf(element); - }; + } - _proto._getItemByDirection = function _getItemByDirection(direction, activeElement) { - var isNextDirection = direction === DIRECTION_NEXT; - var isPrevDirection = direction === DIRECTION_PREV; + _getItemByOrder(order, activeElement) { + const isNext = order === ORDER_NEXT; + const isPrev = order === ORDER_PREV; - var activeIndex = this._getItemIndex(activeElement); + const activeIndex = this._getItemIndex(activeElement); - var lastItemIndex = this._items.length - 1; - var isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex === lastItemIndex; + const lastItemIndex = this._items.length - 1; + const isGoingToWrap = isPrev && activeIndex === 0 || isNext && activeIndex === lastItemIndex; if (isGoingToWrap && !this._config.wrap) { return activeElement; } - var delta = direction === DIRECTION_PREV ? -1 : 1; - var itemIndex = (activeIndex + delta) % this._items.length; + const delta = isPrev ? -1 : 1; + const itemIndex = (activeIndex + delta) % this._items.length; return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex]; - }; + } - _proto._triggerSlideEvent = function _triggerSlideEvent(relatedTarget, eventDirectionName) { - var targetIndex = this._getItemIndex(relatedTarget); + _triggerSlideEvent(relatedTarget, eventDirectionName) { + const targetIndex = this._getItemIndex(relatedTarget); - var fromIndex = this._getItemIndex(SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)); + const fromIndex = this._getItemIndex(SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)); return EventHandler.trigger(this._element, EVENT_SLIDE, { - relatedTarget: relatedTarget, + relatedTarget, direction: eventDirectionName, from: fromIndex, to: targetIndex }); - }; + } - _proto._setActiveIndicatorElement = function _setActiveIndicatorElement(element) { + _setActiveIndicatorElement(element) { if (this._indicatorsElement) { - var indicators = SelectorEngine.find(SELECTOR_ACTIVE, this._indicatorsElement); - - for (var i = 0; i < indicators.length; i++) { - indicators[i].classList.remove(CLASS_NAME_ACTIVE$1); - } - - var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)]; - - if (nextIndicator) { - nextIndicator.classList.add(CLASS_NAME_ACTIVE$1); + const activeIndicator = SelectorEngine.findOne(SELECTOR_ACTIVE$1, this._indicatorsElement); + activeIndicator.classList.remove(CLASS_NAME_ACTIVE$2); + activeIndicator.removeAttribute('aria-current'); + const indicators = SelectorEngine.find(SELECTOR_INDICATOR, this._indicatorsElement); + + for (let i = 0; i < indicators.length; i++) { + if (Number.parseInt(indicators[i].getAttribute('data-bs-slide-to'), 10) === this._getItemIndex(element)) { + indicators[i].classList.add(CLASS_NAME_ACTIVE$2); + indicators[i].setAttribute('aria-current', 'true'); + break; + } } } - }; + } - _proto._updateInterval = function _updateInterval() { - var element = this._activeElement || SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element); + _updateInterval() { + const element = this._activeElement || SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element); if (!element) { return; } - var elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10); + const elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10); if (elementInterval) { this._config.defaultInterval = this._config.defaultInterval || this._config.interval; @@ -1421,40 +1323,32 @@ var Carousel = /*#__PURE__*/function (_BaseComponent) { } else { this._config.interval = this._config.defaultInterval || this._config.interval; } - }; + } - _proto._slide = function _slide(direction, element) { - var _this5 = this; + _slide(directionOrOrder, element) { + const order = this._directionToOrder(directionOrOrder); - var activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element); + const activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element); - var activeElementIndex = this._getItemIndex(activeElement); + const activeElementIndex = this._getItemIndex(activeElement); - var nextElement = element || activeElement && this._getItemByDirection(direction, activeElement); + const nextElement = element || this._getItemByOrder(order, activeElement); - var nextElementIndex = this._getItemIndex(nextElement); + const nextElementIndex = this._getItemIndex(nextElement); - var isCycling = Boolean(this._interval); - var directionalClassName; - var orderClassName; - var eventDirectionName; + const isCycling = Boolean(this._interval); + const isNext = order === ORDER_NEXT; + const directionalClassName = isNext ? CLASS_NAME_START : CLASS_NAME_END; + const orderClassName = isNext ? CLASS_NAME_NEXT : CLASS_NAME_PREV; - if (direction === DIRECTION_NEXT) { - directionalClassName = CLASS_NAME_START; - orderClassName = CLASS_NAME_NEXT; - eventDirectionName = DIRECTION_LEFT; - } else { - directionalClassName = CLASS_NAME_END; - orderClassName = CLASS_NAME_PREV; - eventDirectionName = DIRECTION_RIGHT; - } + const eventDirectionName = this._orderToDirection(order); - if (nextElement && nextElement.classList.contains(CLASS_NAME_ACTIVE$1)) { + if (nextElement && nextElement.classList.contains(CLASS_NAME_ACTIVE$2)) { this._isSliding = false; return; } - var slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName); + const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName); if (slideEvent.defaultPrevented) { return; @@ -1480,14 +1374,14 @@ var Carousel = /*#__PURE__*/function (_BaseComponent) { reflow(nextElement); activeElement.classList.add(directionalClassName); nextElement.classList.add(directionalClassName); - var transitionDuration = getTransitionDurationFromElement(activeElement); - EventHandler.one(activeElement, TRANSITION_END, function () { + const transitionDuration = getTransitionDurationFromElement(activeElement); + EventHandler.one(activeElement, 'transitionend', () => { nextElement.classList.remove(directionalClassName, orderClassName); - nextElement.classList.add(CLASS_NAME_ACTIVE$1); - activeElement.classList.remove(CLASS_NAME_ACTIVE$1, orderClassName, directionalClassName); - _this5._isSliding = false; - setTimeout(function () { - EventHandler.trigger(_this5._element, EVENT_SLID, { + nextElement.classList.add(CLASS_NAME_ACTIVE$2); + activeElement.classList.remove(CLASS_NAME_ACTIVE$2, orderClassName, directionalClassName); + this._isSliding = false; + setTimeout(() => { + EventHandler.trigger(this._element, EVENT_SLID, { relatedTarget: nextElement, direction: eventDirectionName, from: activeElementIndex, @@ -1497,8 +1391,8 @@ var Carousel = /*#__PURE__*/function (_BaseComponent) { }); emulateTransitionEnd(activeElement, transitionDuration); } else { - activeElement.classList.remove(CLASS_NAME_ACTIVE$1); - nextElement.classList.add(CLASS_NAME_ACTIVE$1); + activeElement.classList.remove(CLASS_NAME_ACTIVE$2); + nextElement.classList.add(CLASS_NAME_ACTIVE$2); this._isSliding = false; EventHandler.trigger(this._element, EVENT_SLID, { relatedTarget: nextElement, @@ -1511,19 +1405,46 @@ var Carousel = /*#__PURE__*/function (_BaseComponent) { if (isCycling) { this.cycle(); } + } + + _directionToOrder(direction) { + if (![DIRECTION_RIGHT, DIRECTION_LEFT].includes(direction)) { + return direction; + } + + if (isRTL()) { + return direction === DIRECTION_RIGHT ? ORDER_PREV : ORDER_NEXT; + } + + return direction === DIRECTION_RIGHT ? ORDER_NEXT : ORDER_PREV; + } + + _orderToDirection(order) { + if (![ORDER_NEXT, ORDER_PREV].includes(order)) { + return order; + } + + if (isRTL()) { + return order === ORDER_NEXT ? DIRECTION_LEFT : DIRECTION_RIGHT; + } + + return order === ORDER_NEXT ? DIRECTION_RIGHT : DIRECTION_LEFT; } // Static - ; - Carousel.carouselInterface = function carouselInterface(element, config) { - var data = Data.getData(element, DATA_KEY$2); - var _config = _extends({}, Default, Manipulator.getDataAttributes(element)); + static carouselInterface(element, config) { + let data = Data.get(element, DATA_KEY$9); + let _config = { ...Default$8, + ...Manipulator.getDataAttributes(element) + }; if (typeof config === 'object') { - _config = _extends({}, _config, config); + _config = { ..._config, + ...config + }; } - var action = typeof config === 'string' ? config : _config.slide; + const action = typeof config === 'string' ? config : _config.slide; if (!data) { data = new Carousel(element, _config); @@ -1533,7 +1454,7 @@ var Carousel = /*#__PURE__*/function (_BaseComponent) { data.to(config); } else if (typeof action === 'string') { if (typeof data[action] === 'undefined') { - throw new TypeError("No method named \"" + action + "\""); + throw new TypeError(`No method named "${action}"`); } data[action](); @@ -1541,24 +1462,25 @@ var Carousel = /*#__PURE__*/function (_BaseComponent) { data.pause(); data.cycle(); } - }; + } - Carousel.jQueryInterface = function jQueryInterface(config) { + static jQueryInterface(config) { return this.each(function () { Carousel.carouselInterface(this, config); }); - }; + } - Carousel.dataApiClickHandler = function dataApiClickHandler(event) { - var target = getElementFromSelector(this); + static dataApiClickHandler(event) { + const target = getElementFromSelector(this); if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) { return; } - var config = _extends({}, Manipulator.getDataAttributes(target), Manipulator.getDataAttributes(this)); - - var slideIndex = this.getAttribute('data-bs-slide-to'); + const config = { ...Manipulator.getDataAttributes(target), + ...Manipulator.getDataAttributes(this) + }; + const slideIndex = this.getAttribute('data-bs-slide-to'); if (slideIndex) { config.interval = false; @@ -1567,26 +1489,13 @@ var Carousel = /*#__PURE__*/function (_BaseComponent) { Carousel.carouselInterface(target, config); if (slideIndex) { - Data.getData(target, DATA_KEY$2).to(slideIndex); + Data.get(target, DATA_KEY$9).to(slideIndex); } event.preventDefault(); - }; - - _createClass(Carousel, null, [{ - key: "Default", - get: function get() { - return Default; - } - }, { - key: "DATA_KEY", - get: function get() { - return DATA_KEY$2; - } - }]); + } - return Carousel; -}(BaseComponent); +} /** * ------------------------------------------------------------------------ * Data Api implementation @@ -1594,12 +1503,12 @@ var Carousel = /*#__PURE__*/function (_BaseComponent) { */ -EventHandler.on(document, EVENT_CLICK_DATA_API$2, SELECTOR_DATA_SLIDE, Carousel.dataApiClickHandler); -EventHandler.on(window, EVENT_LOAD_DATA_API, function () { - var carousels = SelectorEngine.find(SELECTOR_DATA_RIDE); +EventHandler.on(document, EVENT_CLICK_DATA_API$5, SELECTOR_DATA_SLIDE, Carousel.dataApiClickHandler); +EventHandler.on(window, EVENT_LOAD_DATA_API$2, () => { + const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE); - for (var i = 0, len = carousels.length; i < len; i++) { - Carousel.carouselInterface(carousels[i], Data.getData(carousels[i], DATA_KEY$2)); + for (let i = 0, len = carousels.length; i < len; i++) { + Carousel.carouselInterface(carousels[i], Data.get(carousels[i], DATA_KEY$9)); } }); /** @@ -1609,124 +1518,112 @@ EventHandler.on(window, EVENT_LOAD_DATA_API, function () { * add .Carousel to jQuery only if jQuery is present */ -onDOMContentLoaded(function () { - var $ = getjQuery(); - /* istanbul ignore if */ - - if ($) { - var JQUERY_NO_CONFLICT = $.fn[NAME$2]; - $.fn[NAME$2] = Carousel.jQueryInterface; - $.fn[NAME$2].Constructor = Carousel; - - $.fn[NAME$2].noConflict = function () { - $.fn[NAME$2] = JQUERY_NO_CONFLICT; - return Carousel.jQueryInterface; - }; - } -}); +defineJQueryPlugin(NAME$9, Carousel); /** + * -------------------------------------------------------------------------- + * Bootstrap (v5.0.0-beta3): collapse.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ +/** * ------------------------------------------------------------------------ * Constants * ------------------------------------------------------------------------ */ -var NAME$3 = 'collapse'; -var DATA_KEY$3 = 'bs.collapse'; -var EVENT_KEY$3 = "." + DATA_KEY$3; -var DATA_API_KEY$3 = '.data-api'; -var Default$1 = { +const NAME$8 = 'collapse'; +const DATA_KEY$8 = 'bs.collapse'; +const EVENT_KEY$8 = `.${DATA_KEY$8}`; +const DATA_API_KEY$5 = '.data-api'; +const Default$7 = { toggle: true, parent: '' }; -var DefaultType$1 = { +const DefaultType$7 = { toggle: 'boolean', parent: '(string|element)' }; -var EVENT_SHOW = "show" + EVENT_KEY$3; -var EVENT_SHOWN = "shown" + EVENT_KEY$3; -var EVENT_HIDE = "hide" + EVENT_KEY$3; -var EVENT_HIDDEN = "hidden" + EVENT_KEY$3; -var EVENT_CLICK_DATA_API$3 = "click" + EVENT_KEY$3 + DATA_API_KEY$3; -var CLASS_NAME_SHOW = 'show'; -var CLASS_NAME_COLLAPSE = 'collapse'; -var CLASS_NAME_COLLAPSING = 'collapsing'; -var CLASS_NAME_COLLAPSED = 'collapsed'; -var WIDTH = 'width'; -var HEIGHT = 'height'; -var SELECTOR_ACTIVES = '.show, .collapsing'; -var SELECTOR_DATA_TOGGLE$1 = '[data-bs-toggle="collapse"]'; +const EVENT_SHOW$5 = `show${EVENT_KEY$8}`; +const EVENT_SHOWN$5 = `shown${EVENT_KEY$8}`; +const EVENT_HIDE$5 = `hide${EVENT_KEY$8}`; +const EVENT_HIDDEN$5 = `hidden${EVENT_KEY$8}`; +const EVENT_CLICK_DATA_API$4 = `click${EVENT_KEY$8}${DATA_API_KEY$5}`; +const CLASS_NAME_SHOW$7 = 'show'; +const CLASS_NAME_COLLAPSE = 'collapse'; +const CLASS_NAME_COLLAPSING = 'collapsing'; +const CLASS_NAME_COLLAPSED = 'collapsed'; +const WIDTH = 'width'; +const HEIGHT = 'height'; +const SELECTOR_ACTIVES = '.show, .collapsing'; +const SELECTOR_DATA_TOGGLE$4 = '[data-bs-toggle="collapse"]'; /** * ------------------------------------------------------------------------ * Class Definition * ------------------------------------------------------------------------ */ -var Collapse = /*#__PURE__*/function (_BaseComponent) { - _inheritsLoose(Collapse, _BaseComponent); - - function Collapse(element, config) { - var _this; - - _this = _BaseComponent.call(this, element) || this; - _this._isTransitioning = false; - _this._config = _this._getConfig(config); - _this._triggerArray = SelectorEngine.find(SELECTOR_DATA_TOGGLE$1 + "[href=\"#" + element.id + "\"]," + (SELECTOR_DATA_TOGGLE$1 + "[data-bs-target=\"#" + element.id + "\"]")); - var toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE$1); +class Collapse extends BaseComponent { + constructor(element, config) { + super(element); + this._isTransitioning = false; + this._config = this._getConfig(config); + this._triggerArray = SelectorEngine.find(`${SELECTOR_DATA_TOGGLE$4}[href="#${this._element.id}"],` + `${SELECTOR_DATA_TOGGLE$4}[data-bs-target="#${this._element.id}"]`); + const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE$4); - for (var i = 0, len = toggleList.length; i < len; i++) { - var elem = toggleList[i]; - var selector = getSelectorFromElement(elem); - var filterElement = SelectorEngine.find(selector).filter(function (foundElem) { - return foundElem === element; - }); + for (let i = 0, len = toggleList.length; i < len; i++) { + const elem = toggleList[i]; + const selector = getSelectorFromElement(elem); + const filterElement = SelectorEngine.find(selector).filter(foundElem => foundElem === this._element); if (selector !== null && filterElement.length) { - _this._selector = selector; + this._selector = selector; - _this._triggerArray.push(elem); + this._triggerArray.push(elem); } } - _this._parent = _this._config.parent ? _this._getParent() : null; + this._parent = this._config.parent ? this._getParent() : null; - if (!_this._config.parent) { - _this._addAriaAndCollapsedClass(_this._element, _this._triggerArray); + if (!this._config.parent) { + this._addAriaAndCollapsedClass(this._element, this._triggerArray); } - if (_this._config.toggle) { - _this.toggle(); + if (this._config.toggle) { + this.toggle(); } - - return _this; } // Getters - var _proto = Collapse.prototype; + static get Default() { + return Default$7; + } - // Public - _proto.toggle = function toggle() { - if (this._element.classList.contains(CLASS_NAME_SHOW)) { + static get DATA_KEY() { + return DATA_KEY$8; + } // Public + + + toggle() { + if (this._element.classList.contains(CLASS_NAME_SHOW$7)) { this.hide(); } else { this.show(); } - }; - - _proto.show = function show() { - var _this2 = this; + } - if (this._isTransitioning || this._element.classList.contains(CLASS_NAME_SHOW)) { + show() { + if (this._isTransitioning || this._element.classList.contains(CLASS_NAME_SHOW$7)) { return; } - var actives; - var activesData; + let actives; + let activesData; if (this._parent) { - actives = SelectorEngine.find(SELECTOR_ACTIVES, this._parent).filter(function (elem) { - if (typeof _this2._config.parent === 'string') { - return elem.getAttribute('data-bs-parent') === _this2._config.parent; + actives = SelectorEngine.find(SELECTOR_ACTIVES, this._parent).filter(elem => { + if (typeof this._config.parent === 'string') { + return elem.getAttribute('data-bs-parent') === this._config.parent; } return elem.classList.contains(CLASS_NAME_COLLAPSE); @@ -1737,38 +1634,36 @@ var Collapse = /*#__PURE__*/function (_BaseComponent) { } } - var container = SelectorEngine.findOne(this._selector); + const container = SelectorEngine.findOne(this._selector); if (actives) { - var tempActiveData = actives.find(function (elem) { - return container !== elem; - }); - activesData = tempActiveData ? Data.getData(tempActiveData, DATA_KEY$3) : null; + const tempActiveData = actives.find(elem => container !== elem); + activesData = tempActiveData ? Data.get(tempActiveData, DATA_KEY$8) : null; if (activesData && activesData._isTransitioning) { return; } } - var startEvent = EventHandler.trigger(this._element, EVENT_SHOW); + const startEvent = EventHandler.trigger(this._element, EVENT_SHOW$5); if (startEvent.defaultPrevented) { return; } if (actives) { - actives.forEach(function (elemActive) { + actives.forEach(elemActive => { if (container !== elemActive) { Collapse.collapseInterface(elemActive, 'hide'); } if (!activesData) { - Data.setData(elemActive, DATA_KEY$3, null); + Data.set(elemActive, DATA_KEY$8, null); } }); } - var dimension = this._getDimension(); + const dimension = this._getDimension(); this._element.classList.remove(CLASS_NAME_COLLAPSE); @@ -1777,7 +1672,7 @@ var Collapse = /*#__PURE__*/function (_BaseComponent) { this._element.style[dimension] = 0; if (this._triggerArray.length) { - this._triggerArray.forEach(function (element) { + this._triggerArray.forEach(element => { element.classList.remove(CLASS_NAME_COLLAPSED); element.setAttribute('aria-expanded', true); }); @@ -1785,56 +1680,52 @@ var Collapse = /*#__PURE__*/function (_BaseComponent) { this.setTransitioning(true); - var complete = function complete() { - _this2._element.classList.remove(CLASS_NAME_COLLAPSING); + const complete = () => { + this._element.classList.remove(CLASS_NAME_COLLAPSING); - _this2._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW); + this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7); - _this2._element.style[dimension] = ''; - - _this2.setTransitioning(false); - - EventHandler.trigger(_this2._element, EVENT_SHOWN); + this._element.style[dimension] = ''; + this.setTransitioning(false); + EventHandler.trigger(this._element, EVENT_SHOWN$5); }; - var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1); - var scrollSize = "scroll" + capitalizedDimension; - var transitionDuration = getTransitionDurationFromElement(this._element); - EventHandler.one(this._element, TRANSITION_END, complete); + const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1); + const scrollSize = `scroll${capitalizedDimension}`; + const transitionDuration = getTransitionDurationFromElement(this._element); + EventHandler.one(this._element, 'transitionend', complete); emulateTransitionEnd(this._element, transitionDuration); - this._element.style[dimension] = this._element[scrollSize] + "px"; - }; - - _proto.hide = function hide() { - var _this3 = this; + this._element.style[dimension] = `${this._element[scrollSize]}px`; + } - if (this._isTransitioning || !this._element.classList.contains(CLASS_NAME_SHOW)) { + hide() { + if (this._isTransitioning || !this._element.classList.contains(CLASS_NAME_SHOW$7)) { return; } - var startEvent = EventHandler.trigger(this._element, EVENT_HIDE); + const startEvent = EventHandler.trigger(this._element, EVENT_HIDE$5); if (startEvent.defaultPrevented) { return; } - var dimension = this._getDimension(); + const dimension = this._getDimension(); - this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + "px"; + this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`; reflow(this._element); this._element.classList.add(CLASS_NAME_COLLAPSING); - this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW); + this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7); - var triggerArrayLength = this._triggerArray.length; + const triggerArrayLength = this._triggerArray.length; if (triggerArrayLength > 0) { - for (var i = 0; i < triggerArrayLength; i++) { - var trigger = this._triggerArray[i]; - var elem = getElementFromSelector(trigger); + for (let i = 0; i < triggerArrayLength; i++) { + const trigger = this._triggerArray[i]; + const elem = getElementFromSelector(trigger); - if (elem && !elem.classList.contains(CLASS_NAME_SHOW)) { + if (elem && !elem.classList.contains(CLASS_NAME_SHOW$7)) { trigger.classList.add(CLASS_NAME_COLLAPSED); trigger.setAttribute('aria-expanded', false); } @@ -1843,52 +1734,53 @@ var Collapse = /*#__PURE__*/function (_BaseComponent) { this.setTransitioning(true); - var complete = function complete() { - _this3.setTransitioning(false); + const complete = () => { + this.setTransitioning(false); - _this3._element.classList.remove(CLASS_NAME_COLLAPSING); + this._element.classList.remove(CLASS_NAME_COLLAPSING); - _this3._element.classList.add(CLASS_NAME_COLLAPSE); + this._element.classList.add(CLASS_NAME_COLLAPSE); - EventHandler.trigger(_this3._element, EVENT_HIDDEN); + EventHandler.trigger(this._element, EVENT_HIDDEN$5); }; this._element.style[dimension] = ''; - var transitionDuration = getTransitionDurationFromElement(this._element); - EventHandler.one(this._element, TRANSITION_END, complete); + const transitionDuration = getTransitionDurationFromElement(this._element); + EventHandler.one(this._element, 'transitionend', complete); emulateTransitionEnd(this._element, transitionDuration); - }; + } - _proto.setTransitioning = function setTransitioning(isTransitioning) { + setTransitioning(isTransitioning) { this._isTransitioning = isTransitioning; - }; - - _proto.dispose = function dispose() { - _BaseComponent.prototype.dispose.call(this); + } + dispose() { + super.dispose(); this._config = null; this._parent = null; this._triggerArray = null; this._isTransitioning = null; } // Private - ; - _proto._getConfig = function _getConfig(config) { - config = _extends({}, Default$1, config); + + _getConfig(config) { + config = { ...Default$7, + ...config + }; config.toggle = Boolean(config.toggle); // Coerce string values - typeCheckConfig(NAME$3, config, DefaultType$1); + typeCheckConfig(NAME$8, config, DefaultType$7); return config; - }; + } - _proto._getDimension = function _getDimension() { + _getDimension() { return this._element.classList.contains(WIDTH) ? WIDTH : HEIGHT; - }; - - _proto._getParent = function _getParent() { - var _this4 = this; + } - var parent = this._config.parent; + _getParent() { + let { + parent + } = this._config; if (isElement(parent)) { // it's a jQuery object @@ -1899,22 +1791,22 @@ var Collapse = /*#__PURE__*/function (_BaseComponent) { parent = SelectorEngine.findOne(parent); } - var selector = SELECTOR_DATA_TOGGLE$1 + "[data-bs-parent=\"" + parent + "\"]"; - SelectorEngine.find(selector, parent).forEach(function (element) { - var selected = getElementFromSelector(element); + const selector = `${SELECTOR_DATA_TOGGLE$4}[data-bs-parent="${parent}"]`; + SelectorEngine.find(selector, parent).forEach(element => { + const selected = getElementFromSelector(element); - _this4._addAriaAndCollapsedClass(selected, [element]); + this._addAriaAndCollapsedClass(selected, [element]); }); return parent; - }; + } - _proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) { + _addAriaAndCollapsedClass(element, triggerArray) { if (!element || !triggerArray.length) { return; } - var isOpen = element.classList.contains(CLASS_NAME_SHOW); - triggerArray.forEach(function (elem) { + const isOpen = element.classList.contains(CLASS_NAME_SHOW$7); + triggerArray.forEach(elem => { if (isOpen) { elem.classList.remove(CLASS_NAME_COLLAPSED); } else { @@ -1924,12 +1816,14 @@ var Collapse = /*#__PURE__*/function (_BaseComponent) { elem.setAttribute('aria-expanded', isOpen); }); } // Static - ; - Collapse.collapseInterface = function collapseInterface(element, config) { - var data = Data.getData(element, DATA_KEY$3); - var _config = _extends({}, Default$1, Manipulator.getDataAttributes(element), typeof config === 'object' && config ? config : {}); + static collapseInterface(element, config) { + let data = Data.get(element, DATA_KEY$8); + const _config = { ...Default$7, + ...Manipulator.getDataAttributes(element), + ...(typeof config === 'object' && config ? config : {}) + }; if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) { _config.toggle = false; @@ -1941,33 +1835,20 @@ var Collapse = /*#__PURE__*/function (_BaseComponent) { if (typeof config === 'string') { if (typeof data[config] === 'undefined') { - throw new TypeError("No method named \"" + config + "\""); + throw new TypeError(`No method named "${config}"`); } data[config](); } - }; + } - Collapse.jQueryInterface = function jQueryInterface(config) { + static jQueryInterface(config) { return this.each(function () { Collapse.collapseInterface(this, config); }); - }; - - _createClass(Collapse, null, [{ - key: "Default", - get: function get() { - return Default$1; - } - }, { - key: "DATA_KEY", - get: function get() { - return DATA_KEY$3; - } - }]); + } - return Collapse; -}(BaseComponent); +} /** * ------------------------------------------------------------------------ * Data Api implementation @@ -1975,18 +1856,18 @@ var Collapse = /*#__PURE__*/function (_BaseComponent) { */ -EventHandler.on(document, EVENT_CLICK_DATA_API$3, SELECTOR_DATA_TOGGLE$1, function (event) { +EventHandler.on(document, EVENT_CLICK_DATA_API$4, SELECTOR_DATA_TOGGLE$4, function (event) { // preventDefault only for <a> elements (which change the URL) not inside the collapsible element - if (event.target.tagName === 'A') { + if (event.target.tagName === 'A' || event.delegateTarget && event.delegateTarget.tagName === 'A') { event.preventDefault(); } - var triggerData = Manipulator.getDataAttributes(this); - var selector = getSelectorFromElement(this); - var selectorElements = SelectorEngine.find(selector); - selectorElements.forEach(function (element) { - var data = Data.getData(element, DATA_KEY$3); - var config; + const triggerData = Manipulator.getDataAttributes(this); + const selector = getSelectorFromElement(this); + const selectorElements = SelectorEngine.find(selector); + selectorElements.forEach(element => { + const data = Data.get(element, DATA_KEY$8); + let config; if (data) { // update parent attribute @@ -2010,82 +1891,69 @@ EventHandler.on(document, EVENT_CLICK_DATA_API$3, SELECTOR_DATA_TOGGLE$1, functi * add .Collapse to jQuery only if jQuery is present */ -onDOMContentLoaded(function () { - var $ = getjQuery(); - /* istanbul ignore if */ - - if ($) { - var JQUERY_NO_CONFLICT = $.fn[NAME$3]; - $.fn[NAME$3] = Collapse.jQueryInterface; - $.fn[NAME$3].Constructor = Collapse; - - $.fn[NAME$3].noConflict = function () { - $.fn[NAME$3] = JQUERY_NO_CONFLICT; - return Collapse.jQueryInterface; - }; - } -}); +defineJQueryPlugin(NAME$8, Collapse); /** + * -------------------------------------------------------------------------- + * Bootstrap (v5.0.0-beta3): dropdown.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ +/** * ------------------------------------------------------------------------ * Constants * ------------------------------------------------------------------------ */ -var NAME$4 = 'dropdown'; -var DATA_KEY$4 = 'bs.dropdown'; -var EVENT_KEY$4 = "." + DATA_KEY$4; -var DATA_API_KEY$4 = '.data-api'; -var ESCAPE_KEY = 'Escape'; -var SPACE_KEY = 'Space'; -var TAB_KEY = 'Tab'; -var ARROW_UP_KEY = 'ArrowUp'; -var ARROW_DOWN_KEY = 'ArrowDown'; -var RIGHT_MOUSE_BUTTON = 2; // MouseEvent.button value for the secondary button, usually the right button - -var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEY + "|" + ARROW_DOWN_KEY + "|" + ESCAPE_KEY); -var EVENT_HIDE$1 = "hide" + EVENT_KEY$4; -var EVENT_HIDDEN$1 = "hidden" + EVENT_KEY$4; -var EVENT_SHOW$1 = "show" + EVENT_KEY$4; -var EVENT_SHOWN$1 = "shown" + EVENT_KEY$4; -var EVENT_CLICK = "click" + EVENT_KEY$4; -var EVENT_CLICK_DATA_API$4 = "click" + EVENT_KEY$4 + DATA_API_KEY$4; -var EVENT_KEYDOWN_DATA_API = "keydown" + EVENT_KEY$4 + DATA_API_KEY$4; -var EVENT_KEYUP_DATA_API = "keyup" + EVENT_KEY$4 + DATA_API_KEY$4; -var CLASS_NAME_DISABLED = 'disabled'; -var CLASS_NAME_SHOW$1 = 'show'; -var CLASS_NAME_DROPUP = 'dropup'; -var CLASS_NAME_DROPEND = 'dropend'; -var CLASS_NAME_DROPSTART = 'dropstart'; -var CLASS_NAME_MENUEND = 'dropdown-menu-end'; -var CLASS_NAME_NAVBAR = 'navbar'; -var CLASS_NAME_POSITION_STATIC = 'position-static'; -var SELECTOR_DATA_TOGGLE$2 = '[data-bs-toggle="dropdown"]'; -var SELECTOR_FORM_CHILD = '.dropdown form'; -var SELECTOR_MENU = '.dropdown-menu'; -var SELECTOR_NAVBAR_NAV = '.navbar-nav'; -var SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'; -var PLACEMENT_TOP = isRTL ? 'top-end' : 'top-start'; -var PLACEMENT_TOPEND = isRTL ? 'top-start' : 'top-end'; -var PLACEMENT_BOTTOM = isRTL ? 'bottom-end' : 'bottom-start'; -var PLACEMENT_BOTTOMEND = isRTL ? 'bottom-start' : 'bottom-end'; -var PLACEMENT_RIGHT = isRTL ? 'left-start' : 'right-start'; -var PLACEMENT_LEFT = isRTL ? 'right-start' : 'left-start'; -var Default$2 = { - offset: 0, - flip: true, - boundary: 'scrollParent', +const NAME$7 = 'dropdown'; +const DATA_KEY$7 = 'bs.dropdown'; +const EVENT_KEY$7 = `.${DATA_KEY$7}`; +const DATA_API_KEY$4 = '.data-api'; +const ESCAPE_KEY$2 = 'Escape'; +const SPACE_KEY = 'Space'; +const TAB_KEY = 'Tab'; +const ARROW_UP_KEY = 'ArrowUp'; +const ARROW_DOWN_KEY = 'ArrowDown'; +const RIGHT_MOUSE_BUTTON = 2; // MouseEvent.button value for the secondary button, usually the right button + +const REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEY}|${ARROW_DOWN_KEY}|${ESCAPE_KEY$2}`); +const EVENT_HIDE$4 = `hide${EVENT_KEY$7}`; +const EVENT_HIDDEN$4 = `hidden${EVENT_KEY$7}`; +const EVENT_SHOW$4 = `show${EVENT_KEY$7}`; +const EVENT_SHOWN$4 = `shown${EVENT_KEY$7}`; +const EVENT_CLICK = `click${EVENT_KEY$7}`; +const EVENT_CLICK_DATA_API$3 = `click${EVENT_KEY$7}${DATA_API_KEY$4}`; +const EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY$7}${DATA_API_KEY$4}`; +const EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY$7}${DATA_API_KEY$4}`; +const CLASS_NAME_DISABLED = 'disabled'; +const CLASS_NAME_SHOW$6 = 'show'; +const CLASS_NAME_DROPUP = 'dropup'; +const CLASS_NAME_DROPEND = 'dropend'; +const CLASS_NAME_DROPSTART = 'dropstart'; +const CLASS_NAME_NAVBAR = 'navbar'; +const SELECTOR_DATA_TOGGLE$3 = '[data-bs-toggle="dropdown"]'; +const SELECTOR_MENU = '.dropdown-menu'; +const SELECTOR_NAVBAR_NAV = '.navbar-nav'; +const SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'; +const PLACEMENT_TOP = isRTL() ? 'top-end' : 'top-start'; +const PLACEMENT_TOPEND = isRTL() ? 'top-start' : 'top-end'; +const PLACEMENT_BOTTOM = isRTL() ? 'bottom-end' : 'bottom-start'; +const PLACEMENT_BOTTOMEND = isRTL() ? 'bottom-start' : 'bottom-end'; +const PLACEMENT_RIGHT = isRTL() ? 'left-start' : 'right-start'; +const PLACEMENT_LEFT = isRTL() ? 'right-start' : 'left-start'; +const Default$6 = { + offset: [0, 2], + boundary: 'clippingParents', reference: 'toggle', display: 'dynamic', popperConfig: null }; -var DefaultType$2 = { - offset: '(number|string|function)', - flip: 'boolean', +const DefaultType$6 = { + offset: '(array|string|function)', boundary: '(string|element)', - reference: '(string|element)', + reference: '(string|element|object)', display: 'string', - popperConfig: '(null|object)' + popperConfig: '(null|object|function)' }; /** * ------------------------------------------------------------------------ @@ -2093,33 +1961,37 @@ var DefaultType$2 = { * ------------------------------------------------------------------------ */ -var Dropdown = /*#__PURE__*/function (_BaseComponent) { - _inheritsLoose(Dropdown, _BaseComponent); +class Dropdown extends BaseComponent { + constructor(element, config) { + super(element); + this._popper = null; + this._config = this._getConfig(config); + this._menu = this._getMenuElement(); + this._inNavbar = this._detectNavbar(); - function Dropdown(element, config) { - var _this; + this._addEventListeners(); + } // Getters - _this = _BaseComponent.call(this, element) || this; - _this._popper = null; - _this._config = _this._getConfig(config); - _this._menu = _this._getMenuElement(); - _this._inNavbar = _this._detectNavbar(); - _this._addEventListeners(); + static get Default() { + return Default$6; + } - return _this; - } // Getters + static get DefaultType() { + return DefaultType$6; + } + static get DATA_KEY() { + return DATA_KEY$7; + } // Public - var _proto = Dropdown.prototype; - // Public - _proto.toggle = function toggle() { + toggle() { if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED)) { return; } - var isActive = this._element.classList.contains(CLASS_NAME_SHOW$1); + const isActive = this._element.classList.contains(CLASS_NAME_SHOW$6); Dropdown.clearMenus(); @@ -2128,30 +2000,32 @@ var Dropdown = /*#__PURE__*/function (_BaseComponent) { } this.show(); - }; + } - _proto.show = function show() { - if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || this._menu.classList.contains(CLASS_NAME_SHOW$1)) { + show() { + if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || this._menu.classList.contains(CLASS_NAME_SHOW$6)) { return; } - var parent = Dropdown.getParentFromElement(this._element); - var relatedTarget = { + const parent = Dropdown.getParentFromElement(this._element); + const relatedTarget = { relatedTarget: this._element }; - var showEvent = EventHandler.trigger(this._element, EVENT_SHOW$1, relatedTarget); + const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$4, relatedTarget); if (showEvent.defaultPrevented) { return; } // Totally disable Popper for Dropdowns in Navbar - if (!this._inNavbar) { + if (this._inNavbar) { + Manipulator.setDataAttribute(this._menu, 'popper', 'none'); + } else { if (typeof Popper === 'undefined') { throw new TypeError('Bootstrap\'s dropdowns require Popper (https://popper.js.org)'); } - var referenceElement = this._element; + let referenceElement = this._element; if (this._config.reference === 'parent') { referenceElement = parent; @@ -2161,16 +2035,18 @@ var Dropdown = /*#__PURE__*/function (_BaseComponent) { if (typeof this._config.reference.jquery !== 'undefined') { referenceElement = this._config.reference[0]; } - } // If boundary is not `scrollParent`, then set position to `static` - // to allow the menu to "escape" the scroll parent's boundaries - // https://github.com/twbs/bootstrap/issues/24251 + } else if (typeof this._config.reference === 'object') { + referenceElement = this._config.reference; + } + const popperConfig = this._getPopperConfig(); - if (this._config.boundary !== 'scrollParent') { - parent.classList.add(CLASS_NAME_POSITION_STATIC); - } + const isDisplayStatic = popperConfig.modifiers.find(modifier => modifier.name === 'applyStyles' && modifier.enabled === false); + this._popper = Popper.createPopper(referenceElement, this._menu, popperConfig); - this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig()); + if (isDisplayStatic) { + Manipulator.setDataAttribute(this._menu, 'popper', 'static'); + } } // If this is a touch-enabled device we add extra // empty mouseover listeners to the body's immediate children; // only needed because of broken event delegation on iOS @@ -2178,34 +2054,29 @@ var Dropdown = /*#__PURE__*/function (_BaseComponent) { if ('ontouchstart' in document.documentElement && !parent.closest(SELECTOR_NAVBAR_NAV)) { - var _ref; - - (_ref = []).concat.apply(_ref, document.body.children).forEach(function (elem) { - return EventHandler.on(elem, 'mouseover', null, noop()); - }); + [].concat(...document.body.children).forEach(elem => EventHandler.on(elem, 'mouseover', null, noop())); } this._element.focus(); this._element.setAttribute('aria-expanded', true); - this._menu.classList.toggle(CLASS_NAME_SHOW$1); + this._menu.classList.toggle(CLASS_NAME_SHOW$6); - this._element.classList.toggle(CLASS_NAME_SHOW$1); + this._element.classList.toggle(CLASS_NAME_SHOW$6); - EventHandler.trigger(parent, EVENT_SHOWN$1, relatedTarget); - }; + EventHandler.trigger(this._element, EVENT_SHOWN$4, relatedTarget); + } - _proto.hide = function hide() { - if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || !this._menu.classList.contains(CLASS_NAME_SHOW$1)) { + hide() { + if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || !this._menu.classList.contains(CLASS_NAME_SHOW$6)) { return; } - var parent = Dropdown.getParentFromElement(this._element); - var relatedTarget = { + const relatedTarget = { relatedTarget: this._element }; - var hideEvent = EventHandler.trigger(parent, EVENT_HIDE$1, relatedTarget); + const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$4, relatedTarget); if (hideEvent.defaultPrevented) { return; @@ -2215,17 +2086,16 @@ var Dropdown = /*#__PURE__*/function (_BaseComponent) { this._popper.destroy(); } - this._menu.classList.toggle(CLASS_NAME_SHOW$1); + this._menu.classList.toggle(CLASS_NAME_SHOW$6); - this._element.classList.toggle(CLASS_NAME_SHOW$1); - - EventHandler.trigger(parent, EVENT_HIDDEN$1, relatedTarget); - }; + this._element.classList.toggle(CLASS_NAME_SHOW$6); - _proto.dispose = function dispose() { - _BaseComponent.prototype.dispose.call(this); + Manipulator.removeDataAttribute(this._menu, 'popper'); + EventHandler.trigger(this._element, EVENT_HIDDEN$4, relatedTarget); + } - EventHandler.off(this._element, EVENT_KEY$4); + dispose() { + EventHandler.off(this._element, EVENT_KEY$7); this._menu = null; if (this._popper) { @@ -2233,104 +2103,119 @@ var Dropdown = /*#__PURE__*/function (_BaseComponent) { this._popper = null; } - }; - _proto.update = function update() { + super.dispose(); + } + + update() { this._inNavbar = this._detectNavbar(); if (this._popper) { - this._popper.scheduleUpdate(); + this._popper.update(); } } // Private - ; - _proto._addEventListeners = function _addEventListeners() { - var _this2 = this; - EventHandler.on(this._element, EVENT_CLICK, function (event) { + _addEventListeners() { + EventHandler.on(this._element, EVENT_CLICK, event => { event.preventDefault(); - event.stopPropagation(); - - _this2.toggle(); + this.toggle(); }); - }; + } + + _getConfig(config) { + config = { ...this.constructor.Default, + ...Manipulator.getDataAttributes(this._element), + ...config + }; + typeCheckConfig(NAME$7, config, this.constructor.DefaultType); + + if (typeof config.reference === 'object' && !isElement(config.reference) && typeof config.reference.getBoundingClientRect !== 'function') { + // Popper virtual elements require a getBoundingClientRect method + throw new TypeError(`${NAME$7.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`); + } - _proto._getConfig = function _getConfig(config) { - config = _extends({}, this.constructor.Default, Manipulator.getDataAttributes(this._element), config); - typeCheckConfig(NAME$4, config, this.constructor.DefaultType); return config; - }; + } - _proto._getMenuElement = function _getMenuElement() { + _getMenuElement() { return SelectorEngine.next(this._element, SELECTOR_MENU)[0]; - }; + } + + _getPlacement() { + const parentDropdown = this._element.parentNode; + + if (parentDropdown.classList.contains(CLASS_NAME_DROPEND)) { + return PLACEMENT_RIGHT; + } + + if (parentDropdown.classList.contains(CLASS_NAME_DROPSTART)) { + return PLACEMENT_LEFT; + } // We need to trim the value because custom properties can also include spaces - _proto._getPlacement = function _getPlacement() { - var parentDropdown = this._element.parentNode; - var placement = PLACEMENT_BOTTOM; // Handle dropup + + const isEnd = getComputedStyle(this._menu).getPropertyValue('--bs-position').trim() === 'end'; if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) { - placement = this._menu.classList.contains(CLASS_NAME_MENUEND) ? PLACEMENT_TOPEND : PLACEMENT_TOP; - } else if (parentDropdown.classList.contains(CLASS_NAME_DROPEND)) { - placement = PLACEMENT_RIGHT; - } else if (parentDropdown.classList.contains(CLASS_NAME_DROPSTART)) { - placement = PLACEMENT_LEFT; - } else if (this._menu.classList.contains(CLASS_NAME_MENUEND)) { - placement = PLACEMENT_BOTTOMEND; + return isEnd ? PLACEMENT_TOPEND : PLACEMENT_TOP; } - return placement; - }; + return isEnd ? PLACEMENT_BOTTOMEND : PLACEMENT_BOTTOM; + } - _proto._detectNavbar = function _detectNavbar() { - return Boolean(this._element.closest("." + CLASS_NAME_NAVBAR)); - }; + _detectNavbar() { + return this._element.closest(`.${CLASS_NAME_NAVBAR}`) !== null; + } - _proto._getOffset = function _getOffset() { - var _this3 = this; + _getOffset() { + const { + offset + } = this._config; - var offset = {}; + if (typeof offset === 'string') { + return offset.split(',').map(val => Number.parseInt(val, 10)); + } - if (typeof this._config.offset === 'function') { - offset.fn = function (data) { - data.offsets = _extends({}, data.offsets, _this3._config.offset(data.offsets, _this3._element) || {}); - return data; - }; - } else { - offset.offset = this._config.offset; + if (typeof offset === 'function') { + return popperData => offset(popperData, this._element); } return offset; - }; + } - _proto._getPopperConfig = function _getPopperConfig() { - var popperConfig = { + _getPopperConfig() { + const defaultBsPopperConfig = { placement: this._getPlacement(), - modifiers: { - offset: this._getOffset(), - flip: { - enabled: this._config.flip - }, - preventOverflow: { - boundariesElement: this._config.boundary + modifiers: [{ + name: 'preventOverflow', + options: { + boundary: this._config.boundary } - } + }, { + name: 'offset', + options: { + offset: this._getOffset() + } + }] }; // Disable Popper if we have a static display if (this._config.display === 'static') { - popperConfig.modifiers.applyStyle = { + defaultBsPopperConfig.modifiers = [{ + name: 'applyStyles', enabled: false - }; + }]; } - return _extends({}, popperConfig, this._config.popperConfig); + return { ...defaultBsPopperConfig, + ...(typeof this._config.popperConfig === 'function' ? this._config.popperConfig(defaultBsPopperConfig) : this._config.popperConfig) + }; } // Static - ; - Dropdown.dropdownInterface = function dropdownInterface(element, config) { - var data = Data.getData(element, DATA_KEY$4); - var _config = typeof config === 'object' ? config : null; + static dropdownInterface(element, config) { + let data = Data.get(element, DATA_KEY$7); + + const _config = typeof config === 'object' ? config : null; if (!data) { data = new Dropdown(element, _config); @@ -2338,30 +2223,35 @@ var Dropdown = /*#__PURE__*/function (_BaseComponent) { if (typeof config === 'string') { if (typeof data[config] === 'undefined') { - throw new TypeError("No method named \"" + config + "\""); + throw new TypeError(`No method named "${config}"`); } data[config](); } - }; + } - Dropdown.jQueryInterface = function jQueryInterface(config) { + static jQueryInterface(config) { return this.each(function () { Dropdown.dropdownInterface(this, config); }); - }; + } - Dropdown.clearMenus = function clearMenus(event) { - if (event && (event.button === RIGHT_MOUSE_BUTTON || event.type === 'keyup' && event.key !== TAB_KEY)) { - return; + static clearMenus(event) { + if (event) { + if (event.button === RIGHT_MOUSE_BUTTON || event.type === 'keyup' && event.key !== TAB_KEY) { + return; + } + + if (/input|select|textarea|form/i.test(event.target.tagName)) { + return; + } } - var toggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE$2); + const toggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE$3); - for (var i = 0, len = toggles.length; i < len; i++) { - var parent = Dropdown.getParentFromElement(toggles[i]); - var context = Data.getData(toggles[i], DATA_KEY$4); - var relatedTarget = { + for (let i = 0, len = toggles.length; i < len; i++) { + const context = Data.get(toggles[i], DATA_KEY$7); + const relatedTarget = { relatedTarget: toggles[i] }; @@ -2373,17 +2263,25 @@ var Dropdown = /*#__PURE__*/function (_BaseComponent) { continue; } - var dropdownMenu = context._menu; + const dropdownMenu = context._menu; - if (!toggles[i].classList.contains(CLASS_NAME_SHOW$1)) { + if (!toggles[i].classList.contains(CLASS_NAME_SHOW$6)) { continue; } - if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.key === TAB_KEY) && dropdownMenu.contains(event.target)) { - continue; + if (event) { + // Don't close the menu if the clicked element or one of its parents is the dropdown button + if ([context._element].some(element => event.composedPath().includes(element))) { + continue; + } // Tab navigation through the dropdown menu shouldn't close the menu + + + if (event.type === 'keyup' && event.key === TAB_KEY && dropdownMenu.contains(event.target)) { + continue; + } } - var hideEvent = EventHandler.trigger(parent, EVENT_HIDE$1, relatedTarget); + const hideEvent = EventHandler.trigger(toggles[i], EVENT_HIDE$4, relatedTarget); if (hideEvent.defaultPrevented) { continue; @@ -2392,11 +2290,7 @@ var Dropdown = /*#__PURE__*/function (_BaseComponent) { if ('ontouchstart' in document.documentElement) { - var _ref2; - - (_ref2 = []).concat.apply(_ref2, document.body.children).forEach(function (elem) { - return EventHandler.off(elem, 'mouseover', null, noop()); - }); + [].concat(...document.body.children).forEach(elem => EventHandler.off(elem, 'mouseover', null, noop())); } toggles[i].setAttribute('aria-expanded', 'false'); @@ -2405,17 +2299,18 @@ var Dropdown = /*#__PURE__*/function (_BaseComponent) { context._popper.destroy(); } - dropdownMenu.classList.remove(CLASS_NAME_SHOW$1); - toggles[i].classList.remove(CLASS_NAME_SHOW$1); - EventHandler.trigger(parent, EVENT_HIDDEN$1, relatedTarget); + dropdownMenu.classList.remove(CLASS_NAME_SHOW$6); + toggles[i].classList.remove(CLASS_NAME_SHOW$6); + Manipulator.removeDataAttribute(dropdownMenu, 'popper'); + EventHandler.trigger(toggles[i], EVENT_HIDDEN$4, relatedTarget); } - }; + } - Dropdown.getParentFromElement = function getParentFromElement(element) { + static getParentFromElement(element) { return getElementFromSelector(element) || element.parentNode; - }; + } - Dropdown.dataApiKeydownHandler = function dataApiKeydownHandler(event) { + static dataApiKeydownHandler(event) { // If not input/textarea: // - And not a key in REGEXP_KEYDOWN => not a dropdown command // If input/textarea: @@ -2423,7 +2318,7 @@ var Dropdown = /*#__PURE__*/function (_BaseComponent) { // - If key is other than escape // - If key is not up or down => not a dropdown command // - If trigger inside the menu => not a dropdown command - if (/input|textarea/i.test(event.target.tagName) ? event.key === SPACE_KEY || event.key !== ESCAPE_KEY && (event.key !== ARROW_DOWN_KEY && event.key !== ARROW_UP_KEY || event.target.closest(SELECTOR_MENU)) : !REGEXP_KEYDOWN.test(event.key)) { + if (/input|textarea/i.test(event.target.tagName) ? event.key === SPACE_KEY || event.key !== ESCAPE_KEY$2 && (event.key !== ARROW_DOWN_KEY && event.key !== ARROW_UP_KEY || event.target.closest(SELECTOR_MENU)) : !REGEXP_KEYDOWN.test(event.key)) { return; } @@ -2434,28 +2329,34 @@ var Dropdown = /*#__PURE__*/function (_BaseComponent) { return; } - var parent = Dropdown.getParentFromElement(this); - var isActive = this.classList.contains(CLASS_NAME_SHOW$1); + const parent = Dropdown.getParentFromElement(this); + const isActive = this.classList.contains(CLASS_NAME_SHOW$6); - if (event.key === ESCAPE_KEY) { - var button = this.matches(SELECTOR_DATA_TOGGLE$2) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE$2)[0]; + if (event.key === ESCAPE_KEY$2) { + const button = this.matches(SELECTOR_DATA_TOGGLE$3) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE$3)[0]; button.focus(); Dropdown.clearMenus(); return; } + if (!isActive && (event.key === ARROW_UP_KEY || event.key === ARROW_DOWN_KEY)) { + const button = this.matches(SELECTOR_DATA_TOGGLE$3) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE$3)[0]; + button.click(); + return; + } + if (!isActive || event.key === SPACE_KEY) { Dropdown.clearMenus(); return; } - var items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, parent).filter(isVisible); + const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, parent).filter(isVisible); if (!items.length) { return; } - var index = items.indexOf(event.target); // Up + let index = items.indexOf(event.target); // Up if (event.key === ARROW_UP_KEY && index > 0) { index--; @@ -2469,27 +2370,9 @@ var Dropdown = /*#__PURE__*/function (_BaseComponent) { index = index === -1 ? 0 : index; items[index].focus(); - }; - - _createClass(Dropdown, null, [{ - key: "Default", - get: function get() { - return Default$2; - } - }, { - key: "DefaultType", - get: function get() { - return DefaultType$2; - } - }, { - key: "DATA_KEY", - get: function get() { - return DATA_KEY$4; - } - }]); + } - return Dropdown; -}(BaseComponent); +} /** * ------------------------------------------------------------------------ * Data Api implementation @@ -2497,17 +2380,13 @@ var Dropdown = /*#__PURE__*/function (_BaseComponent) { */ -EventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE$2, Dropdown.dataApiKeydownHandler); +EventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE$3, Dropdown.dataApiKeydownHandler); EventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown.dataApiKeydownHandler); -EventHandler.on(document, EVENT_CLICK_DATA_API$4, Dropdown.clearMenus); +EventHandler.on(document, EVENT_CLICK_DATA_API$3, Dropdown.clearMenus); EventHandler.on(document, EVENT_KEYUP_DATA_API, Dropdown.clearMenus); -EventHandler.on(document, EVENT_CLICK_DATA_API$4, SELECTOR_DATA_TOGGLE$2, function (event) { +EventHandler.on(document, EVENT_CLICK_DATA_API$3, SELECTOR_DATA_TOGGLE$3, function (event) { event.preventDefault(); - event.stopPropagation(); - Dropdown.dropdownInterface(this, 'toggle'); -}); -EventHandler.on(document, EVENT_CLICK_DATA_API$4, SELECTOR_FORM_CHILD, function (e) { - return e.stopPropagation(); + Dropdown.dropdownInterface(this); }); /** * ------------------------------------------------------------------------ @@ -2516,112 +2395,103 @@ EventHandler.on(document, EVENT_CLICK_DATA_API$4, SELECTOR_FORM_CHILD, function * add .Dropdown to jQuery only if jQuery is present */ -onDOMContentLoaded(function () { - var $ = getjQuery(); - /* istanbul ignore if */ - - if ($) { - var JQUERY_NO_CONFLICT = $.fn[NAME$4]; - $.fn[NAME$4] = Dropdown.jQueryInterface; - $.fn[NAME$4].Constructor = Dropdown; - - $.fn[NAME$4].noConflict = function () { - $.fn[NAME$4] = JQUERY_NO_CONFLICT; - return Dropdown.jQueryInterface; - }; - } -}); +defineJQueryPlugin(NAME$7, Dropdown); /** + * -------------------------------------------------------------------------- + * Bootstrap (v5.0.0-beta3): modal.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ +/** * ------------------------------------------------------------------------ * Constants * ------------------------------------------------------------------------ */ -var NAME$5 = 'modal'; -var DATA_KEY$5 = 'bs.modal'; -var EVENT_KEY$5 = "." + DATA_KEY$5; -var DATA_API_KEY$5 = '.data-api'; -var ESCAPE_KEY$1 = 'Escape'; -var Default$3 = { +const NAME$6 = 'modal'; +const DATA_KEY$6 = 'bs.modal'; +const EVENT_KEY$6 = `.${DATA_KEY$6}`; +const DATA_API_KEY$3 = '.data-api'; +const ESCAPE_KEY$1 = 'Escape'; +const Default$5 = { backdrop: true, keyboard: true, focus: true }; -var DefaultType$3 = { +const DefaultType$5 = { backdrop: '(boolean|string)', keyboard: 'boolean', focus: 'boolean' }; -var EVENT_HIDE$2 = "hide" + EVENT_KEY$5; -var EVENT_HIDE_PREVENTED = "hidePrevented" + EVENT_KEY$5; -var EVENT_HIDDEN$2 = "hidden" + EVENT_KEY$5; -var EVENT_SHOW$2 = "show" + EVENT_KEY$5; -var EVENT_SHOWN$2 = "shown" + EVENT_KEY$5; -var EVENT_FOCUSIN = "focusin" + EVENT_KEY$5; -var EVENT_RESIZE = "resize" + EVENT_KEY$5; -var EVENT_CLICK_DISMISS = "click.dismiss" + EVENT_KEY$5; -var EVENT_KEYDOWN_DISMISS = "keydown.dismiss" + EVENT_KEY$5; -var EVENT_MOUSEUP_DISMISS = "mouseup.dismiss" + EVENT_KEY$5; -var EVENT_MOUSEDOWN_DISMISS = "mousedown.dismiss" + EVENT_KEY$5; -var EVENT_CLICK_DATA_API$5 = "click" + EVENT_KEY$5 + DATA_API_KEY$5; -var CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure'; -var CLASS_NAME_BACKDROP = 'modal-backdrop'; -var CLASS_NAME_OPEN = 'modal-open'; -var CLASS_NAME_FADE = 'fade'; -var CLASS_NAME_SHOW$2 = 'show'; -var CLASS_NAME_STATIC = 'modal-static'; -var SELECTOR_DIALOG = '.modal-dialog'; -var SELECTOR_MODAL_BODY = '.modal-body'; -var SELECTOR_DATA_TOGGLE$3 = '[data-bs-toggle="modal"]'; -var SELECTOR_DATA_DISMISS = '[data-bs-dismiss="modal"]'; -var SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'; -var SELECTOR_STICKY_CONTENT = '.sticky-top'; +const EVENT_HIDE$3 = `hide${EVENT_KEY$6}`; +const EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY$6}`; +const EVENT_HIDDEN$3 = `hidden${EVENT_KEY$6}`; +const EVENT_SHOW$3 = `show${EVENT_KEY$6}`; +const EVENT_SHOWN$3 = `shown${EVENT_KEY$6}`; +const EVENT_FOCUSIN$1 = `focusin${EVENT_KEY$6}`; +const EVENT_RESIZE = `resize${EVENT_KEY$6}`; +const EVENT_CLICK_DISMISS$2 = `click.dismiss${EVENT_KEY$6}`; +const EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY$6}`; +const EVENT_MOUSEUP_DISMISS = `mouseup.dismiss${EVENT_KEY$6}`; +const EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY$6}`; +const EVENT_CLICK_DATA_API$2 = `click${EVENT_KEY$6}${DATA_API_KEY$3}`; +const CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure'; +const CLASS_NAME_BACKDROP = 'modal-backdrop'; +const CLASS_NAME_OPEN = 'modal-open'; +const CLASS_NAME_FADE$4 = 'fade'; +const CLASS_NAME_SHOW$5 = 'show'; +const CLASS_NAME_STATIC = 'modal-static'; +const SELECTOR_DIALOG = '.modal-dialog'; +const SELECTOR_MODAL_BODY = '.modal-body'; +const SELECTOR_DATA_TOGGLE$2 = '[data-bs-toggle="modal"]'; +const SELECTOR_DATA_DISMISS$2 = '[data-bs-dismiss="modal"]'; +const SELECTOR_FIXED_CONTENT$1 = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'; +const SELECTOR_STICKY_CONTENT$1 = '.sticky-top'; /** * ------------------------------------------------------------------------ * Class Definition * ------------------------------------------------------------------------ */ -var Modal = /*#__PURE__*/function (_BaseComponent) { - _inheritsLoose(Modal, _BaseComponent); - - function Modal(element, config) { - var _this; - - _this = _BaseComponent.call(this, element) || this; - _this._config = _this._getConfig(config); - _this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, element); - _this._backdrop = null; - _this._isShown = false; - _this._isBodyOverflowing = false; - _this._ignoreBackdropClick = false; - _this._isTransitioning = false; - _this._scrollbarWidth = 0; - return _this; +class Modal extends BaseComponent { + constructor(element, config) { + super(element); + this._config = this._getConfig(config); + this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, this._element); + this._backdrop = null; + this._isShown = false; + this._isBodyOverflowing = false; + this._ignoreBackdropClick = false; + this._isTransitioning = false; + this._scrollbarWidth = 0; } // Getters - var _proto = Modal.prototype; + static get Default() { + return Default$5; + } - // Public - _proto.toggle = function toggle(relatedTarget) { - return this._isShown ? this.hide() : this.show(relatedTarget); - }; + static get DATA_KEY() { + return DATA_KEY$6; + } // Public - _proto.show = function show(relatedTarget) { - var _this2 = this; + toggle(relatedTarget) { + return this._isShown ? this.hide() : this.show(relatedTarget); + } + + show(relatedTarget) { if (this._isShown || this._isTransitioning) { return; } - if (this._element.classList.contains(CLASS_NAME_FADE)) { + if (this._isAnimated()) { this._isTransitioning = true; } - var showEvent = EventHandler.trigger(this._element, EVENT_SHOW$2, { - relatedTarget: relatedTarget + const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$3, { + relatedTarget }); if (this._isShown || showEvent.defaultPrevented) { @@ -2640,25 +2510,19 @@ var Modal = /*#__PURE__*/function (_BaseComponent) { this._setResizeEvent(); - EventHandler.on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, function (event) { - return _this2.hide(event); - }); - EventHandler.on(this._dialog, EVENT_MOUSEDOWN_DISMISS, function () { - EventHandler.one(_this2._element, EVENT_MOUSEUP_DISMISS, function (event) { - if (event.target === _this2._element) { - _this2._ignoreBackdropClick = true; + EventHandler.on(this._element, EVENT_CLICK_DISMISS$2, SELECTOR_DATA_DISMISS$2, event => this.hide(event)); + EventHandler.on(this._dialog, EVENT_MOUSEDOWN_DISMISS, () => { + EventHandler.one(this._element, EVENT_MOUSEUP_DISMISS, event => { + if (event.target === this._element) { + this._ignoreBackdropClick = true; } }); }); - this._showBackdrop(function () { - return _this2._showElement(relatedTarget); - }); - }; - - _proto.hide = function hide(event) { - var _this3 = this; + this._showBackdrop(() => this._showElement(relatedTarget)); + } + hide(event) { if (event) { event.preventDefault(); } @@ -2667,7 +2531,7 @@ var Modal = /*#__PURE__*/function (_BaseComponent) { return; } - var hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$2); + const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$3); if (hideEvent.defaultPrevented) { return; @@ -2675,9 +2539,9 @@ var Modal = /*#__PURE__*/function (_BaseComponent) { this._isShown = false; - var transition = this._element.classList.contains(CLASS_NAME_FADE); + const isAnimated = this._isAnimated(); - if (transition) { + if (isAnimated) { this._isTransitioning = true; } @@ -2685,38 +2549,32 @@ var Modal = /*#__PURE__*/function (_BaseComponent) { this._setResizeEvent(); - EventHandler.off(document, EVENT_FOCUSIN); + EventHandler.off(document, EVENT_FOCUSIN$1); - this._element.classList.remove(CLASS_NAME_SHOW$2); + this._element.classList.remove(CLASS_NAME_SHOW$5); - EventHandler.off(this._element, EVENT_CLICK_DISMISS); + EventHandler.off(this._element, EVENT_CLICK_DISMISS$2); EventHandler.off(this._dialog, EVENT_MOUSEDOWN_DISMISS); - if (transition) { - var transitionDuration = getTransitionDurationFromElement(this._element); - EventHandler.one(this._element, TRANSITION_END, function (event) { - return _this3._hideModal(event); - }); + if (isAnimated) { + const transitionDuration = getTransitionDurationFromElement(this._element); + EventHandler.one(this._element, 'transitionend', event => this._hideModal(event)); emulateTransitionEnd(this._element, transitionDuration); } else { this._hideModal(); } - }; - - _proto.dispose = function dispose() { - [window, this._element, this._dialog].forEach(function (htmlElement) { - return EventHandler.off(htmlElement, EVENT_KEY$5); - }); + } - _BaseComponent.prototype.dispose.call(this); + dispose() { + [window, this._element, this._dialog].forEach(htmlElement => EventHandler.off(htmlElement, EVENT_KEY$6)); + super.dispose(); /** * `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API` * Do not move `document` in `htmlElements` array * It will remove `EVENT_CLICK_DATA_API` event that should remain */ - - EventHandler.off(document, EVENT_FOCUSIN); + EventHandler.off(document, EVENT_FOCUSIN$1); this._config = null; this._dialog = null; this._backdrop = null; @@ -2725,25 +2583,25 @@ var Modal = /*#__PURE__*/function (_BaseComponent) { this._ignoreBackdropClick = null; this._isTransitioning = null; this._scrollbarWidth = null; - }; + } - _proto.handleUpdate = function handleUpdate() { + handleUpdate() { this._adjustDialog(); } // Private - ; - _proto._getConfig = function _getConfig(config) { - config = _extends({}, Default$3, config); - typeCheckConfig(NAME$5, config, DefaultType$3); - return config; - }; - _proto._showElement = function _showElement(relatedTarget) { - var _this4 = this; + _getConfig(config) { + config = { ...Default$5, + ...config + }; + typeCheckConfig(NAME$6, config, DefaultType$5); + return config; + } - var transition = this._element.classList.contains(CLASS_NAME_FADE); + _showElement(relatedTarget) { + const isAnimated = this._isAnimated(); - var modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog); + const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog); if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) { // Don't move modal's DOM position @@ -2764,81 +2622,70 @@ var Modal = /*#__PURE__*/function (_BaseComponent) { modalBody.scrollTop = 0; } - if (transition) { + if (isAnimated) { reflow(this._element); } - this._element.classList.add(CLASS_NAME_SHOW$2); + this._element.classList.add(CLASS_NAME_SHOW$5); if (this._config.focus) { this._enforceFocus(); } - var transitionComplete = function transitionComplete() { - if (_this4._config.focus) { - _this4._element.focus(); + const transitionComplete = () => { + if (this._config.focus) { + this._element.focus(); } - _this4._isTransitioning = false; - EventHandler.trigger(_this4._element, EVENT_SHOWN$2, { - relatedTarget: relatedTarget + this._isTransitioning = false; + EventHandler.trigger(this._element, EVENT_SHOWN$3, { + relatedTarget }); }; - if (transition) { - var transitionDuration = getTransitionDurationFromElement(this._dialog); - EventHandler.one(this._dialog, TRANSITION_END, transitionComplete); + if (isAnimated) { + const transitionDuration = getTransitionDurationFromElement(this._dialog); + EventHandler.one(this._dialog, 'transitionend', transitionComplete); emulateTransitionEnd(this._dialog, transitionDuration); } else { transitionComplete(); } - }; - - _proto._enforceFocus = function _enforceFocus() { - var _this5 = this; + } - EventHandler.off(document, EVENT_FOCUSIN); // guard against infinite focus loop + _enforceFocus() { + EventHandler.off(document, EVENT_FOCUSIN$1); // guard against infinite focus loop - EventHandler.on(document, EVENT_FOCUSIN, function (event) { - if (document !== event.target && _this5._element !== event.target && !_this5._element.contains(event.target)) { - _this5._element.focus(); + EventHandler.on(document, EVENT_FOCUSIN$1, event => { + if (document !== event.target && this._element !== event.target && !this._element.contains(event.target)) { + this._element.focus(); } }); - }; - - _proto._setEscapeEvent = function _setEscapeEvent() { - var _this6 = this; + } + _setEscapeEvent() { if (this._isShown) { - EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, function (event) { - if (_this6._config.keyboard && event.key === ESCAPE_KEY$1) { + EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => { + if (this._config.keyboard && event.key === ESCAPE_KEY$1) { event.preventDefault(); - - _this6.hide(); - } else if (!_this6._config.keyboard && event.key === ESCAPE_KEY$1) { - _this6._triggerBackdropTransition(); + this.hide(); + } else if (!this._config.keyboard && event.key === ESCAPE_KEY$1) { + this._triggerBackdropTransition(); } }); } else { EventHandler.off(this._element, EVENT_KEYDOWN_DISMISS); } - }; - - _proto._setResizeEvent = function _setResizeEvent() { - var _this7 = this; + } + _setResizeEvent() { if (this._isShown) { - EventHandler.on(window, EVENT_RESIZE, function () { - return _this7._adjustDialog(); - }); + EventHandler.on(window, EVENT_RESIZE, () => this._adjustDialog()); } else { EventHandler.off(window, EVENT_RESIZE); } - }; - - _proto._hideModal = function _hideModal() { - var _this8 = this; + } + _hideModal() { this._element.style.display = 'none'; this._element.setAttribute('aria-hidden', true); @@ -2849,40 +2696,38 @@ var Modal = /*#__PURE__*/function (_BaseComponent) { this._isTransitioning = false; - this._showBackdrop(function () { + this._showBackdrop(() => { document.body.classList.remove(CLASS_NAME_OPEN); - _this8._resetAdjustments(); + this._resetAdjustments(); - _this8._resetScrollbar(); + this._resetScrollbar(); - EventHandler.trigger(_this8._element, EVENT_HIDDEN$2); + EventHandler.trigger(this._element, EVENT_HIDDEN$3); }); - }; + } - _proto._removeBackdrop = function _removeBackdrop() { + _removeBackdrop() { this._backdrop.parentNode.removeChild(this._backdrop); this._backdrop = null; - }; - - _proto._showBackdrop = function _showBackdrop(callback) { - var _this9 = this; + } - var animate = this._element.classList.contains(CLASS_NAME_FADE) ? CLASS_NAME_FADE : ''; + _showBackdrop(callback) { + const isAnimated = this._isAnimated(); if (this._isShown && this._config.backdrop) { this._backdrop = document.createElement('div'); this._backdrop.className = CLASS_NAME_BACKDROP; - if (animate) { - this._backdrop.classList.add(animate); + if (isAnimated) { + this._backdrop.classList.add(CLASS_NAME_FADE$4); } document.body.appendChild(this._backdrop); - EventHandler.on(this._element, EVENT_CLICK_DISMISS, function (event) { - if (_this9._ignoreBackdropClick) { - _this9._ignoreBackdropClick = false; + EventHandler.on(this._element, EVENT_CLICK_DISMISS$2, event => { + if (this._ignoreBackdropClick) { + this._ignoreBackdropClick = false; return; } @@ -2890,59 +2735,60 @@ var Modal = /*#__PURE__*/function (_BaseComponent) { return; } - if (_this9._config.backdrop === 'static') { - _this9._triggerBackdropTransition(); + if (this._config.backdrop === 'static') { + this._triggerBackdropTransition(); } else { - _this9.hide(); + this.hide(); } }); - if (animate) { + if (isAnimated) { reflow(this._backdrop); } - this._backdrop.classList.add(CLASS_NAME_SHOW$2); + this._backdrop.classList.add(CLASS_NAME_SHOW$5); - if (!animate) { + if (!isAnimated) { callback(); return; } - var backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop); - EventHandler.one(this._backdrop, TRANSITION_END, callback); + const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop); + EventHandler.one(this._backdrop, 'transitionend', callback); emulateTransitionEnd(this._backdrop, backdropTransitionDuration); } else if (!this._isShown && this._backdrop) { - this._backdrop.classList.remove(CLASS_NAME_SHOW$2); + this._backdrop.classList.remove(CLASS_NAME_SHOW$5); - var callbackRemove = function callbackRemove() { - _this9._removeBackdrop(); + const callbackRemove = () => { + this._removeBackdrop(); callback(); }; - if (this._element.classList.contains(CLASS_NAME_FADE)) { - var _backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop); - - EventHandler.one(this._backdrop, TRANSITION_END, callbackRemove); - emulateTransitionEnd(this._backdrop, _backdropTransitionDuration); + if (isAnimated) { + const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop); + EventHandler.one(this._backdrop, 'transitionend', callbackRemove); + emulateTransitionEnd(this._backdrop, backdropTransitionDuration); } else { callbackRemove(); } } else { callback(); } - }; + } - _proto._triggerBackdropTransition = function _triggerBackdropTransition() { - var _this10 = this; + _isAnimated() { + return this._element.classList.contains(CLASS_NAME_FADE$4); + } - var hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED); + _triggerBackdropTransition() { + const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED); if (hideEvent.defaultPrevented) { return; } - var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight; + const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight; if (!isModalOverflowing) { this._element.style.overflowY = 'hidden'; @@ -2950,16 +2796,16 @@ var Modal = /*#__PURE__*/function (_BaseComponent) { this._element.classList.add(CLASS_NAME_STATIC); - var modalTransitionDuration = getTransitionDurationFromElement(this._dialog); - EventHandler.off(this._element, TRANSITION_END); - EventHandler.one(this._element, TRANSITION_END, function () { - _this10._element.classList.remove(CLASS_NAME_STATIC); + const modalTransitionDuration = getTransitionDurationFromElement(this._dialog); + EventHandler.off(this._element, 'transitionend'); + EventHandler.one(this._element, 'transitionend', () => { + this._element.classList.remove(CLASS_NAME_STATIC); if (!isModalOverflowing) { - EventHandler.one(_this10._element, TRANSITION_END, function () { - _this10._element.style.overflowY = ''; + EventHandler.one(this._element, 'transitionend', () => { + this._element.style.overflowY = ''; }); - emulateTransitionEnd(_this10._element, modalTransitionDuration); + emulateTransitionEnd(this._element, modalTransitionDuration); } }); emulateTransitionEnd(this._element, modalTransitionDuration); @@ -2968,107 +2814,95 @@ var Modal = /*#__PURE__*/function (_BaseComponent) { } // ---------------------------------------------------------------------- // the following methods are used to handle overflowing modals // ---------------------------------------------------------------------- - ; - _proto._adjustDialog = function _adjustDialog() { - var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight; - if (!this._isBodyOverflowing && isModalOverflowing && !isRTL || this._isBodyOverflowing && !isModalOverflowing && isRTL) { - this._element.style.paddingLeft = this._scrollbarWidth + "px"; + _adjustDialog() { + const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight; + + if (!this._isBodyOverflowing && isModalOverflowing && !isRTL() || this._isBodyOverflowing && !isModalOverflowing && isRTL()) { + this._element.style.paddingLeft = `${this._scrollbarWidth}px`; } - if (this._isBodyOverflowing && !isModalOverflowing && !isRTL || !this._isBodyOverflowing && isModalOverflowing && isRTL) { - this._element.style.paddingRight = this._scrollbarWidth + "px"; + if (this._isBodyOverflowing && !isModalOverflowing && !isRTL() || !this._isBodyOverflowing && isModalOverflowing && isRTL()) { + this._element.style.paddingRight = `${this._scrollbarWidth}px`; } - }; + } - _proto._resetAdjustments = function _resetAdjustments() { + _resetAdjustments() { this._element.style.paddingLeft = ''; this._element.style.paddingRight = ''; - }; + } - _proto._checkScrollbar = function _checkScrollbar() { - var rect = document.body.getBoundingClientRect(); + _checkScrollbar() { + const rect = document.body.getBoundingClientRect(); this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth; this._scrollbarWidth = this._getScrollbarWidth(); - }; - - _proto._setScrollbar = function _setScrollbar() { - var _this11 = this; + } + _setScrollbar() { if (this._isBodyOverflowing) { - // Note: DOMNode.style.paddingRight returns the actual value or '' if not set - // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set - // Adjust fixed content padding - SelectorEngine.find(SELECTOR_FIXED_CONTENT).forEach(function (element) { - var actualPadding = element.style.paddingRight; - var calculatedPadding = window.getComputedStyle(element)['padding-right']; - Manipulator.setDataAttribute(element, 'padding-right', actualPadding); - element.style.paddingRight = Number.parseFloat(calculatedPadding) + _this11._scrollbarWidth + "px"; - }); // Adjust sticky content margin - - SelectorEngine.find(SELECTOR_STICKY_CONTENT).forEach(function (element) { - var actualMargin = element.style.marginRight; - var calculatedMargin = window.getComputedStyle(element)['margin-right']; - Manipulator.setDataAttribute(element, 'margin-right', actualMargin); - element.style.marginRight = Number.parseFloat(calculatedMargin) - _this11._scrollbarWidth + "px"; - }); // Adjust body padding - - var actualPadding = document.body.style.paddingRight; - var calculatedPadding = window.getComputedStyle(document.body)['padding-right']; - Manipulator.setDataAttribute(document.body, 'padding-right', actualPadding); - document.body.style.paddingRight = Number.parseFloat(calculatedPadding) + this._scrollbarWidth + "px"; + this._setElementAttributes(SELECTOR_FIXED_CONTENT$1, 'paddingRight', calculatedValue => calculatedValue + this._scrollbarWidth); + + this._setElementAttributes(SELECTOR_STICKY_CONTENT$1, 'marginRight', calculatedValue => calculatedValue - this._scrollbarWidth); + + this._setElementAttributes('body', 'paddingRight', calculatedValue => calculatedValue + this._scrollbarWidth); } document.body.classList.add(CLASS_NAME_OPEN); - }; - - _proto._resetScrollbar = function _resetScrollbar() { - // Restore fixed content padding - SelectorEngine.find(SELECTOR_FIXED_CONTENT).forEach(function (element) { - var padding = Manipulator.getDataAttribute(element, 'padding-right'); + } - if (typeof padding !== 'undefined') { - Manipulator.removeDataAttribute(element, 'padding-right'); - element.style.paddingRight = padding; + _setElementAttributes(selector, styleProp, callback) { + SelectorEngine.find(selector).forEach(element => { + if (element !== document.body && window.innerWidth > element.clientWidth + this._scrollbarWidth) { + return; } - }); // Restore sticky content and navbar-toggler margin - SelectorEngine.find("" + SELECTOR_STICKY_CONTENT).forEach(function (element) { - var margin = Manipulator.getDataAttribute(element, 'margin-right'); + const actualValue = element.style[styleProp]; + const calculatedValue = window.getComputedStyle(element)[styleProp]; + Manipulator.setDataAttribute(element, styleProp, actualValue); + element.style[styleProp] = callback(Number.parseFloat(calculatedValue)) + 'px'; + }); + } - if (typeof margin !== 'undefined') { - Manipulator.removeDataAttribute(element, 'margin-right'); - element.style.marginRight = margin; - } - }); // Restore body padding + _resetScrollbar() { + this._resetElementAttributes(SELECTOR_FIXED_CONTENT$1, 'paddingRight'); - var padding = Manipulator.getDataAttribute(document.body, 'padding-right'); + this._resetElementAttributes(SELECTOR_STICKY_CONTENT$1, 'marginRight'); - if (typeof padding === 'undefined') { - document.body.style.paddingRight = ''; - } else { - Manipulator.removeDataAttribute(document.body, 'padding-right'); - document.body.style.paddingRight = padding; - } - }; + this._resetElementAttributes('body', 'paddingRight'); + } + + _resetElementAttributes(selector, styleProp) { + SelectorEngine.find(selector).forEach(element => { + const value = Manipulator.getDataAttribute(element, styleProp); + + if (typeof value === 'undefined' && element === document.body) { + element.style[styleProp] = ''; + } else { + Manipulator.removeDataAttribute(element, styleProp); + element.style[styleProp] = value; + } + }); + } - _proto._getScrollbarWidth = function _getScrollbarWidth() { + _getScrollbarWidth() { // thx d.walsh - var scrollDiv = document.createElement('div'); + const scrollDiv = document.createElement('div'); scrollDiv.className = CLASS_NAME_SCROLLBAR_MEASURER; document.body.appendChild(scrollDiv); - var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth; + const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth; document.body.removeChild(scrollDiv); return scrollbarWidth; } // Static - ; - Modal.jQueryInterface = function jQueryInterface(config, relatedTarget) { - return this.each(function () { - var data = Data.getData(this, DATA_KEY$5); - var _config = _extends({}, Default$3, Manipulator.getDataAttributes(this), typeof config === 'object' && config ? config : {}); + static jQueryInterface(config, relatedTarget) { + return this.each(function () { + let data = Data.get(this, DATA_KEY$6); + const _config = { ...Default$5, + ...Manipulator.getDataAttributes(this), + ...(typeof config === 'object' && config ? config : {}) + }; if (!data) { data = new Modal(this, _config); @@ -3076,28 +2910,15 @@ var Modal = /*#__PURE__*/function (_BaseComponent) { if (typeof config === 'string') { if (typeof data[config] === 'undefined') { - throw new TypeError("No method named \"" + config + "\""); + throw new TypeError(`No method named "${config}"`); } data[config](relatedTarget); } }); - }; - - _createClass(Modal, null, [{ - key: "Default", - get: function get() { - return Default$3; - } - }, { - key: "DATA_KEY", - get: function get() { - return DATA_KEY$5; - } - }]); + } - return Modal; -}(BaseComponent); +} /** * ------------------------------------------------------------------------ * Data Api implementation @@ -3105,36 +2926,35 @@ var Modal = /*#__PURE__*/function (_BaseComponent) { */ -EventHandler.on(document, EVENT_CLICK_DATA_API$5, SELECTOR_DATA_TOGGLE$3, function (event) { - var _this12 = this; - - var target = getElementFromSelector(this); +EventHandler.on(document, EVENT_CLICK_DATA_API$2, SELECTOR_DATA_TOGGLE$2, function (event) { + const target = getElementFromSelector(this); if (this.tagName === 'A' || this.tagName === 'AREA') { event.preventDefault(); } - EventHandler.one(target, EVENT_SHOW$2, function (showEvent) { + EventHandler.one(target, EVENT_SHOW$3, showEvent => { if (showEvent.defaultPrevented) { // only register focus restorer if modal will actually get shown return; } - EventHandler.one(target, EVENT_HIDDEN$2, function () { - if (isVisible(_this12)) { - _this12.focus(); + EventHandler.one(target, EVENT_HIDDEN$3, () => { + if (isVisible(this)) { + this.focus(); } }); }); - var data = Data.getData(target, DATA_KEY$5); + let data = Data.get(target, DATA_KEY$6); if (!data) { - var config = _extends({}, Manipulator.getDataAttributes(target), Manipulator.getDataAttributes(this)); - + const config = { ...Manipulator.getDataAttributes(target), + ...Manipulator.getDataAttributes(this) + }; data = new Modal(target, config); } - data.show(this); + data.toggle(this); }); /** * ------------------------------------------------------------------------ @@ -3143,62 +2963,372 @@ EventHandler.on(document, EVENT_CLICK_DATA_API$5, SELECTOR_DATA_TOGGLE$3, functi * add .Modal to jQuery only if jQuery is present */ -onDOMContentLoaded(function () { - var $ = getjQuery(); - /* istanbul ignore if */ +defineJQueryPlugin(NAME$6, Modal); + +/** + * -------------------------------------------------------------------------- + * Bootstrap (v5.0.0-beta3): util/scrollBar.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ +const SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed'; +const SELECTOR_STICKY_CONTENT = '.sticky-top'; + +const getWidth = () => { + // https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes + const documentWidth = document.documentElement.clientWidth; + return Math.abs(window.innerWidth - documentWidth); +}; + +const hide = (width = getWidth()) => { + document.body.style.overflow = 'hidden'; + + _setElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight', calculatedValue => calculatedValue + width); - if ($) { - var JQUERY_NO_CONFLICT = $.fn[NAME$5]; - $.fn[NAME$5] = Modal.jQueryInterface; - $.fn[NAME$5].Constructor = Modal; + _setElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight', calculatedValue => calculatedValue - width); - $.fn[NAME$5].noConflict = function () { - $.fn[NAME$5] = JQUERY_NO_CONFLICT; - return Modal.jQueryInterface; + _setElementAttributes('body', 'paddingRight', calculatedValue => calculatedValue + width); +}; + +const _setElementAttributes = (selector, styleProp, callback) => { + const scrollbarWidth = getWidth(); + SelectorEngine.find(selector).forEach(element => { + if (element !== document.body && window.innerWidth > element.clientWidth + scrollbarWidth) { + return; + } + + const actualValue = element.style[styleProp]; + const calculatedValue = window.getComputedStyle(element)[styleProp]; + Manipulator.setDataAttribute(element, styleProp, actualValue); + element.style[styleProp] = callback(Number.parseFloat(calculatedValue)) + 'px'; + }); +}; + +const reset = () => { + document.body.style.overflow = 'auto'; + + _resetElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight'); + + _resetElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight'); + + _resetElementAttributes('body', 'paddingRight'); +}; + +const _resetElementAttributes = (selector, styleProp) => { + SelectorEngine.find(selector).forEach(element => { + const value = Manipulator.getDataAttribute(element, styleProp); + + if (typeof value === 'undefined' && element === document.body) { + element.style.removeProperty(styleProp); + } else { + Manipulator.removeDataAttribute(element, styleProp); + element.style[styleProp] = value; + } + }); +}; + +/** + * -------------------------------------------------------------------------- + * Bootstrap (v5.0.0-beta3): offcanvas.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * -------------------------------------------------------------------------- + */ +/** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + +const NAME$5 = 'offcanvas'; +const DATA_KEY$5 = 'bs.offcanvas'; +const EVENT_KEY$5 = `.${DATA_KEY$5}`; +const DATA_API_KEY$2 = '.data-api'; +const EVENT_LOAD_DATA_API$1 = `load${EVENT_KEY$5}${DATA_API_KEY$2}`; +const ESCAPE_KEY = 'Escape'; +const Default$4 = { + backdrop: true, + keyboard: true, + scroll: false +}; +const DefaultType$4 = { + backdrop: 'boolean', + keyboard: 'boolean', + scroll: 'boolean' +}; +const CLASS_NAME_BACKDROP_BODY = 'offcanvas-backdrop'; +const CLASS_NAME_SHOW$4 = 'show'; +const CLASS_NAME_TOGGLING = 'offcanvas-toggling'; +const OPEN_SELECTOR = '.offcanvas.show'; +const ACTIVE_SELECTOR = `${OPEN_SELECTOR}, .${CLASS_NAME_TOGGLING}`; +const EVENT_SHOW$2 = `show${EVENT_KEY$5}`; +const EVENT_SHOWN$2 = `shown${EVENT_KEY$5}`; +const EVENT_HIDE$2 = `hide${EVENT_KEY$5}`; +const EVENT_HIDDEN$2 = `hidden${EVENT_KEY$5}`; +const EVENT_FOCUSIN = `focusin${EVENT_KEY$5}`; +const EVENT_CLICK_DATA_API$1 = `click${EVENT_KEY$5}${DATA_API_KEY$2}`; +const EVENT_CLICK_DISMISS$1 = `click.dismiss${EVENT_KEY$5}`; +const SELECTOR_DATA_DISMISS$1 = '[data-bs-dismiss="offcanvas"]'; +const SELECTOR_DATA_TOGGLE$1 = '[data-bs-toggle="offcanvas"]'; +/** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + +class Offcanvas extends BaseComponent { + constructor(element, config) { + super(element); + this._config = this._getConfig(config); + this._isShown = false; + + this._addEventListeners(); + } // Getters + + + static get Default() { + return Default$4; + } + + static get DATA_KEY() { + return DATA_KEY$5; + } // Public + + + toggle(relatedTarget) { + return this._isShown ? this.hide() : this.show(relatedTarget); + } + + show(relatedTarget) { + if (this._isShown) { + return; + } + + const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$2, { + relatedTarget + }); + + if (showEvent.defaultPrevented) { + return; + } + + this._isShown = true; + this._element.style.visibility = 'visible'; + + if (this._config.backdrop) { + document.body.classList.add(CLASS_NAME_BACKDROP_BODY); + } + + if (!this._config.scroll) { + hide(); + } + + this._element.classList.add(CLASS_NAME_TOGGLING); + + this._element.removeAttribute('aria-hidden'); + + this._element.setAttribute('aria-modal', true); + + this._element.setAttribute('role', 'dialog'); + + this._element.classList.add(CLASS_NAME_SHOW$4); + + const completeCallBack = () => { + this._element.classList.remove(CLASS_NAME_TOGGLING); + + EventHandler.trigger(this._element, EVENT_SHOWN$2, { + relatedTarget + }); + + this._enforceFocusOnElement(this._element); + }; + + setTimeout(completeCallBack, getTransitionDurationFromElement(this._element)); + } + + hide() { + if (!this._isShown) { + return; + } + + const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$2); + + if (hideEvent.defaultPrevented) { + return; + } + + this._element.classList.add(CLASS_NAME_TOGGLING); + + EventHandler.off(document, EVENT_FOCUSIN); + + this._element.blur(); + + this._isShown = false; + + this._element.classList.remove(CLASS_NAME_SHOW$4); + + const completeCallback = () => { + this._element.setAttribute('aria-hidden', true); + + this._element.removeAttribute('aria-modal'); + + this._element.removeAttribute('role'); + + this._element.style.visibility = 'hidden'; + + if (this._config.backdrop) { + document.body.classList.remove(CLASS_NAME_BACKDROP_BODY); + } + + if (!this._config.scroll) { + reset(); + } + + EventHandler.trigger(this._element, EVENT_HIDDEN$2); + + this._element.classList.remove(CLASS_NAME_TOGGLING); + }; + + setTimeout(completeCallback, getTransitionDurationFromElement(this._element)); + } // Private + + + _getConfig(config) { + config = { ...Default$4, + ...Manipulator.getDataAttributes(this._element), + ...(typeof config === 'object' ? config : {}) }; + typeCheckConfig(NAME$5, config, DefaultType$4); + return config; + } + + _enforceFocusOnElement(element) { + EventHandler.off(document, EVENT_FOCUSIN); // guard against infinite focus loop + + EventHandler.on(document, EVENT_FOCUSIN, event => { + if (document !== event.target && element !== event.target && !element.contains(event.target)) { + element.focus(); + } + }); + element.focus(); + } + + _addEventListeners() { + EventHandler.on(this._element, EVENT_CLICK_DISMISS$1, SELECTOR_DATA_DISMISS$1, () => this.hide()); + EventHandler.on(document, 'keydown', event => { + if (this._config.keyboard && event.key === ESCAPE_KEY) { + this.hide(); + } + }); + EventHandler.on(document, EVENT_CLICK_DATA_API$1, event => { + const target = SelectorEngine.findOne(getSelectorFromElement(event.target)); + + if (!this._element.contains(event.target) && target !== this._element) { + this.hide(); + } + }); + } // Static + + + static jQueryInterface(config) { + return this.each(function () { + const data = Data.get(this, DATA_KEY$5) || new Offcanvas(this, typeof config === 'object' ? config : {}); + + if (typeof config !== 'string') { + return; + } + + if (data[config] === undefined || config.startsWith('_') || config === 'constructor') { + throw new TypeError(`No method named "${config}"`); + } + + data[config](this); + }); } + +} +/** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + +EventHandler.on(document, EVENT_CLICK_DATA_API$1, SELECTOR_DATA_TOGGLE$1, function (event) { + const target = getElementFromSelector(this); + + if (['A', 'AREA'].includes(this.tagName)) { + event.preventDefault(); + } + + if (isDisabled(this)) { + return; + } + + EventHandler.one(target, EVENT_HIDDEN$2, () => { + // focus on trigger when it is closed + if (isVisible(this)) { + this.focus(); + } + }); // avoid conflict when clicking a toggler of an offcanvas, while another is open + + const allReadyOpen = SelectorEngine.findOne(ACTIVE_SELECTOR); + + if (allReadyOpen && allReadyOpen !== target) { + return; + } + + const data = Data.get(target, DATA_KEY$5) || new Offcanvas(target); + data.toggle(this); +}); +EventHandler.on(window, EVENT_LOAD_DATA_API$1, () => { + SelectorEngine.find(OPEN_SELECTOR).forEach(el => (Data.get(el, DATA_KEY$5) || new Offcanvas(el)).show()); }); +/** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + */ + +defineJQueryPlugin(NAME$5, Offcanvas); /** * -------------------------------------------------------------------------- - * Bootstrap (v5.0.0-alpha3): util/sanitizer.js + * Bootstrap (v5.0.0-beta3): util/sanitizer.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ -var uriAttrs = new Set(['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href']); -var ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i; +const uriAttrs = new Set(['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href']); +const ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i; /** * A pattern that recognizes a commonly useful subset of URLs that are safe. * * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts */ -var SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi; +const SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/i; /** * A pattern that matches safe data URLs. Only matches image, video and audio types. * * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts */ -var DATA_URL_PATTERN = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i; +const DATA_URL_PATTERN = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i; -var allowedAttribute = function allowedAttribute(attr, allowedAttributeList) { - var attrName = attr.nodeName.toLowerCase(); +const allowedAttribute = (attr, allowedAttributeList) => { + const attrName = attr.nodeName.toLowerCase(); if (allowedAttributeList.includes(attrName)) { if (uriAttrs.has(attrName)) { - return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN)); + return Boolean(SAFE_URL_PATTERN.test(attr.nodeValue) || DATA_URL_PATTERN.test(attr.nodeValue)); } return true; } - var regExp = allowedAttributeList.filter(function (attrRegex) { - return attrRegex instanceof RegExp; - }); // Check if a regular expression validates the attribute. + const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp); // Check if a regular expression validates the attribute. - for (var i = 0, len = regExp.length; i < len; i++) { - if (attrName.match(regExp[i])) { + for (let i = 0, len = regExp.length; i < len; i++) { + if (regExp[i].test(attrName)) { return true; } } @@ -3206,7 +3336,7 @@ var allowedAttribute = function allowedAttribute(attr, allowedAttributeList) { return false; }; -var DefaultAllowlist = { +const DefaultAllowlist = { // Global attributes allowed on any supplied element below. '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN], a: ['target', 'href', 'title', 'rel'], @@ -3240,8 +3370,6 @@ var DefaultAllowlist = { ul: [] }; function sanitizeHtml(unsafeHtml, allowList, sanitizeFn) { - var _ref; - if (!unsafeHtml.length) { return unsafeHtml; } @@ -3250,55 +3378,51 @@ function sanitizeHtml(unsafeHtml, allowList, sanitizeFn) { return sanitizeFn(unsafeHtml); } - var domParser = new window.DOMParser(); - var createdDocument = domParser.parseFromString(unsafeHtml, 'text/html'); - var allowlistKeys = Object.keys(allowList); - - var elements = (_ref = []).concat.apply(_ref, createdDocument.body.querySelectorAll('*')); + const domParser = new window.DOMParser(); + const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html'); + const allowlistKeys = Object.keys(allowList); + const elements = [].concat(...createdDocument.body.querySelectorAll('*')); - var _loop = function _loop(i, len) { - var _ref2; - - var el = elements[i]; - var elName = el.nodeName.toLowerCase(); + for (let i = 0, len = elements.length; i < len; i++) { + const el = elements[i]; + const elName = el.nodeName.toLowerCase(); if (!allowlistKeys.includes(elName)) { el.parentNode.removeChild(el); - return "continue"; + continue; } - var attributeList = (_ref2 = []).concat.apply(_ref2, el.attributes); - - var allowedAttributes = [].concat(allowList['*'] || [], allowList[elName] || []); - attributeList.forEach(function (attr) { + const attributeList = [].concat(...el.attributes); + const allowedAttributes = [].concat(allowList['*'] || [], allowList[elName] || []); + attributeList.forEach(attr => { if (!allowedAttribute(attr, allowedAttributes)) { el.removeAttribute(attr.nodeName); } }); - }; - - for (var i = 0, len = elements.length; i < len; i++) { - var _ret = _loop(i); - - if (_ret === "continue") continue; } return createdDocument.body.innerHTML; } /** + * -------------------------------------------------------------------------- + * Bootstrap (v5.0.0-beta3): tooltip.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ +/** * ------------------------------------------------------------------------ * Constants * ------------------------------------------------------------------------ */ -var NAME$6 = 'tooltip'; -var DATA_KEY$6 = 'bs.tooltip'; -var EVENT_KEY$6 = "." + DATA_KEY$6; -var CLASS_PREFIX = 'bs-tooltip'; -var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g'); -var DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn']); -var DefaultType$4 = { +const NAME$4 = 'tooltip'; +const DATA_KEY$4 = 'bs.tooltip'; +const EVENT_KEY$4 = `.${DATA_KEY$4}`; +const CLASS_PREFIX$1 = 'bs-tooltip'; +const BSCLS_PREFIX_REGEX$1 = new RegExp(`(^|\\s)${CLASS_PREFIX$1}\\S+`, 'g'); +const DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn']); +const DefaultType$3 = { animation: 'boolean', template: 'string', title: '(string|element|function)', @@ -3307,24 +3431,24 @@ var DefaultType$4 = { html: 'boolean', selector: '(string|boolean)', placement: '(string|function)', - offset: '(number|string|function)', + offset: '(array|string|function)', container: '(string|element|boolean)', - fallbackPlacement: '(string|array)', + fallbackPlacements: 'array', boundary: '(string|element)', customClass: '(string|function)', sanitize: 'boolean', sanitizeFn: '(null|function)', allowList: 'object', - popperConfig: '(null|object)' + popperConfig: '(null|object|function)' }; -var AttachmentMap = { +const AttachmentMap = { AUTO: 'auto', TOP: 'top', - RIGHT: isRTL ? 'left' : 'right', + RIGHT: isRTL() ? 'left' : 'right', BOTTOM: 'bottom', - LEFT: isRTL ? 'right' : 'left' + LEFT: isRTL() ? 'right' : 'left' }; -var Default$4 = { +const Default$3 = { animation: true, template: '<div class="tooltip" role="tooltip">' + '<div class="tooltip-arrow"></div>' + '<div class="tooltip-inner"></div>' + '</div>', trigger: 'hover focus', @@ -3333,99 +3457,109 @@ var Default$4 = { html: false, selector: false, placement: 'top', - offset: 0, + offset: [0, 0], container: false, - fallbackPlacement: 'flip', - boundary: 'scrollParent', + fallbackPlacements: ['top', 'right', 'bottom', 'left'], + boundary: 'clippingParents', customClass: '', sanitize: true, sanitizeFn: null, allowList: DefaultAllowlist, popperConfig: null }; -var Event$1 = { - HIDE: "hide" + EVENT_KEY$6, - HIDDEN: "hidden" + EVENT_KEY$6, - SHOW: "show" + EVENT_KEY$6, - SHOWN: "shown" + EVENT_KEY$6, - INSERTED: "inserted" + EVENT_KEY$6, - CLICK: "click" + EVENT_KEY$6, - FOCUSIN: "focusin" + EVENT_KEY$6, - FOCUSOUT: "focusout" + EVENT_KEY$6, - MOUSEENTER: "mouseenter" + EVENT_KEY$6, - MOUSELEAVE: "mouseleave" + EVENT_KEY$6 +const Event$2 = { + HIDE: `hide${EVENT_KEY$4}`, + HIDDEN: `hidden${EVENT_KEY$4}`, + SHOW: `show${EVENT_KEY$4}`, + SHOWN: `shown${EVENT_KEY$4}`, + INSERTED: `inserted${EVENT_KEY$4}`, + CLICK: `click${EVENT_KEY$4}`, + FOCUSIN: `focusin${EVENT_KEY$4}`, + FOCUSOUT: `focusout${EVENT_KEY$4}`, + MOUSEENTER: `mouseenter${EVENT_KEY$4}`, + MOUSELEAVE: `mouseleave${EVENT_KEY$4}` }; -var CLASS_NAME_FADE$1 = 'fade'; -var CLASS_NAME_MODAL = 'modal'; -var CLASS_NAME_SHOW$3 = 'show'; -var HOVER_STATE_SHOW = 'show'; -var HOVER_STATE_OUT = 'out'; -var SELECTOR_TOOLTIP_INNER = '.tooltip-inner'; -var TRIGGER_HOVER = 'hover'; -var TRIGGER_FOCUS = 'focus'; -var TRIGGER_CLICK = 'click'; -var TRIGGER_MANUAL = 'manual'; +const CLASS_NAME_FADE$3 = 'fade'; +const CLASS_NAME_MODAL = 'modal'; +const CLASS_NAME_SHOW$3 = 'show'; +const HOVER_STATE_SHOW = 'show'; +const HOVER_STATE_OUT = 'out'; +const SELECTOR_TOOLTIP_INNER = '.tooltip-inner'; +const TRIGGER_HOVER = 'hover'; +const TRIGGER_FOCUS = 'focus'; +const TRIGGER_CLICK = 'click'; +const TRIGGER_MANUAL = 'manual'; /** * ------------------------------------------------------------------------ * Class Definition * ------------------------------------------------------------------------ */ -var Tooltip = /*#__PURE__*/function (_BaseComponent) { - _inheritsLoose(Tooltip, _BaseComponent); - - function Tooltip(element, config) { - var _this; - +class Tooltip extends BaseComponent { + constructor(element, config) { if (typeof Popper === 'undefined') { throw new TypeError('Bootstrap\'s tooltips require Popper (https://popper.js.org)'); } - _this = _BaseComponent.call(this, element) || this; // private + super(element); // private - _this._isEnabled = true; - _this._timeout = 0; - _this._hoverState = ''; - _this._activeTrigger = {}; - _this._popper = null; // Protected - - _this.config = _this._getConfig(config); - _this.tip = null; + this._isEnabled = true; + this._timeout = 0; + this._hoverState = ''; + this._activeTrigger = {}; + this._popper = null; // Protected - _this._setListeners(); + this.config = this._getConfig(config); + this.tip = null; - return _this; + this._setListeners(); } // Getters - var _proto = Tooltip.prototype; + static get Default() { + return Default$3; + } + + static get NAME() { + return NAME$4; + } + + static get DATA_KEY() { + return DATA_KEY$4; + } + + static get Event() { + return Event$2; + } + + static get EVENT_KEY() { + return EVENT_KEY$4; + } + + static get DefaultType() { + return DefaultType$3; + } // Public - // Public - _proto.enable = function enable() { + + enable() { this._isEnabled = true; - }; + } - _proto.disable = function disable() { + disable() { this._isEnabled = false; - }; + } - _proto.toggleEnabled = function toggleEnabled() { + toggleEnabled() { this._isEnabled = !this._isEnabled; - }; + } - _proto.toggle = function toggle(event) { + toggle(event) { if (!this._isEnabled) { return; } if (event) { - var dataKey = this.constructor.DATA_KEY; - var context = Data.getData(event.delegateTarget, dataKey); - - if (!context) { - context = new this.constructor(event.delegateTarget, this._getDelegateConfig()); - Data.setData(event.delegateTarget, dataKey, context); - } + const context = this._initializeOnDelegatedTarget(event); context._activeTrigger.click = !context._activeTrigger.click; @@ -3443,14 +3577,14 @@ var Tooltip = /*#__PURE__*/function (_BaseComponent) { this._enter(null, this); } - }; + } - _proto.dispose = function dispose() { + dispose() { clearTimeout(this._timeout); EventHandler.off(this._element, this.constructor.EVENT_KEY); - EventHandler.off(this._element.closest("." + CLASS_NAME_MODAL), 'hide.bs.modal', this._hideModalHandler); + EventHandler.off(this._element.closest(`.${CLASS_NAME_MODAL}`), 'hide.bs.modal', this._hideModalHandler); - if (this.tip) { + if (this.tip && this.tip.parentNode) { this.tip.parentNode.removeChild(this.tip); } @@ -3466,123 +3600,125 @@ var Tooltip = /*#__PURE__*/function (_BaseComponent) { this._popper = null; this.config = null; this.tip = null; + super.dispose(); + } - _BaseComponent.prototype.dispose.call(this); - }; - - _proto.show = function show() { - var _this2 = this; - + show() { if (this._element.style.display === 'none') { throw new Error('Please use show on visible elements'); } - if (this.isWithContent() && this._isEnabled) { - var showEvent = EventHandler.trigger(this._element, this.constructor.Event.SHOW); - var shadowRoot = findShadowRoot(this._element); - var isInTheDom = shadowRoot === null ? this._element.ownerDocument.documentElement.contains(this._element) : shadowRoot.contains(this._element); + if (!(this.isWithContent() && this._isEnabled)) { + return; + } - if (showEvent.defaultPrevented || !isInTheDom) { - return; - } + const showEvent = EventHandler.trigger(this._element, this.constructor.Event.SHOW); + const shadowRoot = findShadowRoot(this._element); + const isInTheDom = shadowRoot === null ? this._element.ownerDocument.documentElement.contains(this._element) : shadowRoot.contains(this._element); - var tip = this.getTipElement(); - var tipId = getUID(this.constructor.NAME); - tip.setAttribute('id', tipId); + if (showEvent.defaultPrevented || !isInTheDom) { + return; + } - this._element.setAttribute('aria-describedby', tipId); + const tip = this.getTipElement(); + const tipId = getUID(this.constructor.NAME); + tip.setAttribute('id', tipId); - this.setContent(); + this._element.setAttribute('aria-describedby', tipId); - if (this.config.animation) { - tip.classList.add(CLASS_NAME_FADE$1); - } + this.setContent(); - var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this._element) : this.config.placement; + if (this.config.animation) { + tip.classList.add(CLASS_NAME_FADE$3); + } - var attachment = this._getAttachment(placement); + const placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this._element) : this.config.placement; - this._addAttachmentClass(attachment); + const attachment = this._getAttachment(placement); - var container = this._getContainer(); + this._addAttachmentClass(attachment); - Data.setData(tip, this.constructor.DATA_KEY, this); + const container = this._getContainer(); - if (!this._element.ownerDocument.documentElement.contains(this.tip)) { - container.appendChild(tip); - } + Data.set(tip, this.constructor.DATA_KEY, this); + if (!this._element.ownerDocument.documentElement.contains(this.tip)) { + container.appendChild(tip); EventHandler.trigger(this._element, this.constructor.Event.INSERTED); - this._popper = new Popper(this._element, tip, this._getPopperConfig(attachment)); - tip.classList.add(CLASS_NAME_SHOW$3); - var customClass = typeof this.config.customClass === 'function' ? this.config.customClass() : this.config.customClass; - - if (customClass) { - var _tip$classList; - - (_tip$classList = tip.classList).add.apply(_tip$classList, customClass.split(' ')); - } // If this is a touch-enabled device we add extra - // empty mouseover listeners to the body's immediate children; - // only needed because of broken event delegation on iOS - // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html + } + if (this._popper) { + this._popper.update(); + } else { + this._popper = Popper.createPopper(this._element, tip, this._getPopperConfig(attachment)); + } - if ('ontouchstart' in document.documentElement) { - var _ref; + tip.classList.add(CLASS_NAME_SHOW$3); + const customClass = typeof this.config.customClass === 'function' ? this.config.customClass() : this.config.customClass; - (_ref = []).concat.apply(_ref, document.body.children).forEach(function (element) { - EventHandler.on(element, 'mouseover', noop()); - }); - } + if (customClass) { + tip.classList.add(...customClass.split(' ')); + } // If this is a touch-enabled device we add extra + // empty mouseover listeners to the body's immediate children; + // only needed because of broken event delegation on iOS + // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html - var complete = function complete() { - if (_this2.config.animation) { - _this2._fixTransition(); - } - var prevHoverState = _this2._hoverState; - _this2._hoverState = null; - EventHandler.trigger(_this2._element, _this2.constructor.Event.SHOWN); + if ('ontouchstart' in document.documentElement) { + [].concat(...document.body.children).forEach(element => { + EventHandler.on(element, 'mouseover', noop()); + }); + } - if (prevHoverState === HOVER_STATE_OUT) { - _this2._leave(null, _this2); - } - }; + const complete = () => { + const prevHoverState = this._hoverState; + this._hoverState = null; + EventHandler.trigger(this._element, this.constructor.Event.SHOWN); - if (this.tip.classList.contains(CLASS_NAME_FADE$1)) { - var transitionDuration = getTransitionDurationFromElement(this.tip); - EventHandler.one(this.tip, TRANSITION_END, complete); - emulateTransitionEnd(this.tip, transitionDuration); - } else { - complete(); + if (prevHoverState === HOVER_STATE_OUT) { + this._leave(null, this); } - } - }; + }; - _proto.hide = function hide() { - var _this3 = this; + if (this.tip.classList.contains(CLASS_NAME_FADE$3)) { + const transitionDuration = getTransitionDurationFromElement(this.tip); + EventHandler.one(this.tip, 'transitionend', complete); + emulateTransitionEnd(this.tip, transitionDuration); + } else { + complete(); + } + } + hide() { if (!this._popper) { return; } - var tip = this.getTipElement(); + const tip = this.getTipElement(); + + const complete = () => { + if (this._isWithActiveTrigger()) { + return; + } - var complete = function complete() { - if (_this3._hoverState !== HOVER_STATE_SHOW && tip.parentNode) { + if (this._hoverState !== HOVER_STATE_SHOW && tip.parentNode) { tip.parentNode.removeChild(tip); } - _this3._cleanTipClass(); + this._cleanTipClass(); + + this._element.removeAttribute('aria-describedby'); - _this3._element.removeAttribute('aria-describedby'); + EventHandler.trigger(this._element, this.constructor.Event.HIDDEN); - EventHandler.trigger(_this3._element, _this3.constructor.Event.HIDDEN); + if (this._popper) { + this._popper.destroy(); - _this3._popper.destroy(); + this._popper = null; + } }; - var hideEvent = EventHandler.trigger(this._element, this.constructor.Event.HIDE); + const hideEvent = EventHandler.trigger(this._element, this.constructor.Event.HIDE); if (hideEvent.defaultPrevented) { return; @@ -3592,57 +3728,53 @@ var Tooltip = /*#__PURE__*/function (_BaseComponent) { // empty mouseover listeners we added for iOS support if ('ontouchstart' in document.documentElement) { - var _ref2; - - (_ref2 = []).concat.apply(_ref2, document.body.children).forEach(function (element) { - return EventHandler.off(element, 'mouseover', noop); - }); + [].concat(...document.body.children).forEach(element => EventHandler.off(element, 'mouseover', noop)); } this._activeTrigger[TRIGGER_CLICK] = false; this._activeTrigger[TRIGGER_FOCUS] = false; this._activeTrigger[TRIGGER_HOVER] = false; - if (this.tip.classList.contains(CLASS_NAME_FADE$1)) { - var transitionDuration = getTransitionDurationFromElement(tip); - EventHandler.one(tip, TRANSITION_END, complete); + if (this.tip.classList.contains(CLASS_NAME_FADE$3)) { + const transitionDuration = getTransitionDurationFromElement(tip); + EventHandler.one(tip, 'transitionend', complete); emulateTransitionEnd(tip, transitionDuration); } else { complete(); } this._hoverState = ''; - }; + } - _proto.update = function update() { + update() { if (this._popper !== null) { - this._popper.scheduleUpdate(); + this._popper.update(); } } // Protected - ; - _proto.isWithContent = function isWithContent() { + + isWithContent() { return Boolean(this.getTitle()); - }; + } - _proto.getTipElement = function getTipElement() { + getTipElement() { if (this.tip) { return this.tip; } - var element = document.createElement('div'); + const element = document.createElement('div'); element.innerHTML = this.config.template; this.tip = element.children[0]; return this.tip; - }; + } - _proto.setContent = function setContent() { - var tip = this.getTipElement(); + setContent() { + const tip = this.getTipElement(); this.setElementContent(SelectorEngine.findOne(SELECTOR_TOOLTIP_INNER, tip), this.getTitle()); - tip.classList.remove(CLASS_NAME_FADE$1, CLASS_NAME_SHOW$3); - }; + tip.classList.remove(CLASS_NAME_FADE$3, CLASS_NAME_SHOW$3); + } - _proto.setElementContent = function setElementContent(element, content) { + setElementContent(element, content) { if (element === null) { return; } @@ -3674,19 +3806,19 @@ var Tooltip = /*#__PURE__*/function (_BaseComponent) { } else { element.textContent = content; } - }; + } - _proto.getTitle = function getTitle() { - var title = this._element.getAttribute('data-bs-original-title'); + getTitle() { + let title = this._element.getAttribute('data-bs-original-title'); if (!title) { title = typeof this.config.title === 'function' ? this.config.title.call(this._element) : this.config.title; } return title; - }; + } - _proto.updateAttachment = function updateAttachment(attachment) { + updateAttachment(attachment) { if (attachment === 'right') { return 'end'; } @@ -3697,59 +3829,82 @@ var Tooltip = /*#__PURE__*/function (_BaseComponent) { return attachment; } // Private - ; - _proto._getPopperConfig = function _getPopperConfig(attachment) { - var _this4 = this; - var defaultBsConfig = { - placement: attachment, - modifiers: { - offset: this._getOffset(), - flip: { - behavior: this.config.fallbackPlacement - }, - arrow: { - element: "." + this.constructor.NAME + "-arrow" - }, - preventOverflow: { - boundariesElement: this.config.boundary - } - }, - onCreate: function onCreate(data) { - if (data.originalPlacement !== data.placement) { - _this4._handlePopperPlacementChange(data); - } - }, - onUpdate: function onUpdate(data) { - return _this4._handlePopperPlacementChange(data); - } - }; - return _extends({}, defaultBsConfig, this.config.popperConfig); - }; + _initializeOnDelegatedTarget(event, context) { + const dataKey = this.constructor.DATA_KEY; + context = context || Data.get(event.delegateTarget, dataKey); - _proto._addAttachmentClass = function _addAttachmentClass(attachment) { - this.getTipElement().classList.add(CLASS_PREFIX + "-" + this.updateAttachment(attachment)); - }; + if (!context) { + context = new this.constructor(event.delegateTarget, this._getDelegateConfig()); + Data.set(event.delegateTarget, dataKey, context); + } + + return context; + } - _proto._getOffset = function _getOffset() { - var _this5 = this; + _getOffset() { + const { + offset + } = this.config; - var offset = {}; + if (typeof offset === 'string') { + return offset.split(',').map(val => Number.parseInt(val, 10)); + } - if (typeof this.config.offset === 'function') { - offset.fn = function (data) { - data.offsets = _extends({}, data.offsets, _this5.config.offset(data.offsets, _this5._element) || {}); - return data; - }; - } else { - offset.offset = this.config.offset; + if (typeof offset === 'function') { + return popperData => offset(popperData, this._element); } return offset; - }; + } - _proto._getContainer = function _getContainer() { + _getPopperConfig(attachment) { + const defaultBsPopperConfig = { + placement: attachment, + modifiers: [{ + name: 'flip', + options: { + altBoundary: true, + fallbackPlacements: this.config.fallbackPlacements + } + }, { + name: 'offset', + options: { + offset: this._getOffset() + } + }, { + name: 'preventOverflow', + options: { + boundary: this.config.boundary + } + }, { + name: 'arrow', + options: { + element: `.${this.constructor.NAME}-arrow` + } + }, { + name: 'onChange', + enabled: true, + phase: 'afterWrite', + fn: data => this._handlePopperPlacementChange(data) + }], + onFirstUpdate: data => { + if (data.options.placement !== data.placement) { + this._handlePopperPlacementChange(data); + } + } + }; + return { ...defaultBsPopperConfig, + ...(typeof this.config.popperConfig === 'function' ? this.config.popperConfig(defaultBsPopperConfig) : this.config.popperConfig) + }; + } + + _addAttachmentClass(attachment) { + this.getTipElement().classList.add(`${CLASS_PREFIX$1}-${this.updateAttachment(attachment)}`); + } + + _getContainer() { if (this.config.container === false) { return document.body; } @@ -3759,55 +3914,47 @@ var Tooltip = /*#__PURE__*/function (_BaseComponent) { } return SelectorEngine.findOne(this.config.container); - }; + } - _proto._getAttachment = function _getAttachment(placement) { + _getAttachment(placement) { return AttachmentMap[placement.toUpperCase()]; - }; - - _proto._setListeners = function _setListeners() { - var _this6 = this; + } - var triggers = this.config.trigger.split(' '); - triggers.forEach(function (trigger) { + _setListeners() { + const triggers = this.config.trigger.split(' '); + triggers.forEach(trigger => { if (trigger === 'click') { - EventHandler.on(_this6._element, _this6.constructor.Event.CLICK, _this6.config.selector, function (event) { - return _this6.toggle(event); - }); + EventHandler.on(this._element, this.constructor.Event.CLICK, this.config.selector, event => this.toggle(event)); } else if (trigger !== TRIGGER_MANUAL) { - var eventIn = trigger === TRIGGER_HOVER ? _this6.constructor.Event.MOUSEENTER : _this6.constructor.Event.FOCUSIN; - var eventOut = trigger === TRIGGER_HOVER ? _this6.constructor.Event.MOUSELEAVE : _this6.constructor.Event.FOCUSOUT; - EventHandler.on(_this6._element, eventIn, _this6.config.selector, function (event) { - return _this6._enter(event); - }); - EventHandler.on(_this6._element, eventOut, _this6.config.selector, function (event) { - return _this6._leave(event); - }); + const eventIn = trigger === TRIGGER_HOVER ? this.constructor.Event.MOUSEENTER : this.constructor.Event.FOCUSIN; + const eventOut = trigger === TRIGGER_HOVER ? this.constructor.Event.MOUSELEAVE : this.constructor.Event.FOCUSOUT; + EventHandler.on(this._element, eventIn, this.config.selector, event => this._enter(event)); + EventHandler.on(this._element, eventOut, this.config.selector, event => this._leave(event)); } }); - this._hideModalHandler = function () { - if (_this6._element) { - _this6.hide(); + this._hideModalHandler = () => { + if (this._element) { + this.hide(); } }; - EventHandler.on(this._element.closest("." + CLASS_NAME_MODAL), 'hide.bs.modal', this._hideModalHandler); + EventHandler.on(this._element.closest(`.${CLASS_NAME_MODAL}`), 'hide.bs.modal', this._hideModalHandler); if (this.config.selector) { - this.config = _extends({}, this.config, { + this.config = { ...this.config, trigger: 'manual', selector: '' - }); + }; } else { this._fixTitle(); } - }; + } - _proto._fixTitle = function _fixTitle() { - var title = this._element.getAttribute('title'); + _fixTitle() { + const title = this._element.getAttribute('title'); - var originalTitleType = typeof this._element.getAttribute('data-bs-original-title'); + const originalTitleType = typeof this._element.getAttribute('data-bs-original-title'); if (title || originalTitleType !== 'string') { this._element.setAttribute('data-bs-original-title', title || ''); @@ -3818,16 +3965,10 @@ var Tooltip = /*#__PURE__*/function (_BaseComponent) { this._element.setAttribute('title', ''); } - }; - - _proto._enter = function _enter(event, context) { - var dataKey = this.constructor.DATA_KEY; - context = context || Data.getData(event.delegateTarget, dataKey); + } - if (!context) { - context = new this.constructor(event.delegateTarget, this._getDelegateConfig()); - Data.setData(event.delegateTarget, dataKey, context); - } + _enter(event, context) { + context = this._initializeOnDelegatedTarget(event, context); if (event) { context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true; @@ -3846,24 +3987,18 @@ var Tooltip = /*#__PURE__*/function (_BaseComponent) { return; } - context._timeout = setTimeout(function () { + context._timeout = setTimeout(() => { if (context._hoverState === HOVER_STATE_SHOW) { context.show(); } }, context.config.delay.show); - }; - - _proto._leave = function _leave(event, context) { - var dataKey = this.constructor.DATA_KEY; - context = context || Data.getData(event.delegateTarget, dataKey); + } - if (!context) { - context = new this.constructor(event.delegateTarget, this._getDelegateConfig()); - Data.setData(event.delegateTarget, dataKey, context); - } + _leave(event, context) { + context = this._initializeOnDelegatedTarget(event, context); if (event) { - context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] = false; + context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] = context._element.contains(event.relatedTarget); } if (context._isWithActiveTrigger()) { @@ -3878,26 +4013,26 @@ var Tooltip = /*#__PURE__*/function (_BaseComponent) { return; } - context._timeout = setTimeout(function () { + context._timeout = setTimeout(() => { if (context._hoverState === HOVER_STATE_OUT) { context.hide(); } }, context.config.delay.hide); - }; + } - _proto._isWithActiveTrigger = function _isWithActiveTrigger() { - for (var trigger in this._activeTrigger) { + _isWithActiveTrigger() { + for (const trigger in this._activeTrigger) { if (this._activeTrigger[trigger]) { return true; } } return false; - }; + } - _proto._getConfig = function _getConfig(config) { - var dataAttributes = Manipulator.getDataAttributes(this._element); - Object.keys(dataAttributes).forEach(function (dataAttr) { + _getConfig(config) { + const dataAttributes = Manipulator.getDataAttributes(this._element); + Object.keys(dataAttributes).forEach(dataAttr => { if (DISALLOWED_ATTRIBUTES.has(dataAttr)) { delete dataAttributes[dataAttr]; } @@ -3907,7 +4042,10 @@ var Tooltip = /*#__PURE__*/function (_BaseComponent) { config.container = config.container[0]; } - config = _extends({}, this.constructor.Default, dataAttributes, typeof config === 'object' && config ? config : {}); + config = { ...this.constructor.Default, + ...dataAttributes, + ...(typeof config === 'object' && config ? config : {}) + }; if (typeof config.delay === 'number') { config.delay = { @@ -3924,20 +4062,20 @@ var Tooltip = /*#__PURE__*/function (_BaseComponent) { config.content = config.content.toString(); } - typeCheckConfig(NAME$6, config, this.constructor.DefaultType); + typeCheckConfig(NAME$4, config, this.constructor.DefaultType); if (config.sanitize) { config.template = sanitizeHtml(config.template, config.allowList, config.sanitizeFn); } return config; - }; + } - _proto._getDelegateConfig = function _getDelegateConfig() { - var config = {}; + _getDelegateConfig() { + const config = {}; if (this.config) { - for (var key in this.config) { + for (const key in this.config) { if (this.constructor.Default[key] !== this.config[key]) { config[key] = this.config[key]; } @@ -3945,50 +4083,39 @@ var Tooltip = /*#__PURE__*/function (_BaseComponent) { } return config; - }; + } - _proto._cleanTipClass = function _cleanTipClass() { - var tip = this.getTipElement(); - var tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX); + _cleanTipClass() { + const tip = this.getTipElement(); + const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX$1); if (tabClass !== null && tabClass.length > 0) { - tabClass.map(function (token) { - return token.trim(); - }).forEach(function (tClass) { - return tip.classList.remove(tClass); - }); + tabClass.map(token => token.trim()).forEach(tClass => tip.classList.remove(tClass)); } - }; - - _proto._handlePopperPlacementChange = function _handlePopperPlacementChange(popperData) { - this.tip = popperData.instance.popper; - - this._cleanTipClass(); - - this._addAttachmentClass(this._getAttachment(popperData.placement)); - }; + } - _proto._fixTransition = function _fixTransition() { - var tip = this.getTipElement(); - var initConfigAnimation = this.config.animation; + _handlePopperPlacementChange(popperData) { + const { + state + } = popperData; - if (tip.getAttribute('x-placement') !== null) { + if (!state) { return; } - tip.classList.remove(CLASS_NAME_FADE$1); - this.config.animation = false; - this.hide(); - this.show(); - this.config.animation = initConfigAnimation; + this.tip = state.elements.popper; + + this._cleanTipClass(); + + this._addAttachmentClass(this._getAttachment(state.placement)); } // Static - ; - Tooltip.jQueryInterface = function jQueryInterface(config) { + + static jQueryInterface(config) { return this.each(function () { - var data = Data.getData(this, DATA_KEY$6); + let data = Data.get(this, DATA_KEY$4); - var _config = typeof config === 'object' && config; + const _config = typeof config === 'object' && config; if (!data && /dispose|hide/.test(config)) { return; @@ -4000,48 +4127,15 @@ var Tooltip = /*#__PURE__*/function (_BaseComponent) { if (typeof config === 'string') { if (typeof data[config] === 'undefined') { - throw new TypeError("No method named \"" + config + "\""); + throw new TypeError(`No method named "${config}"`); } data[config](); } }); - }; - - _createClass(Tooltip, null, [{ - key: "Default", - get: function get() { - return Default$4; - } - }, { - key: "NAME", - get: function get() { - return NAME$6; - } - }, { - key: "DATA_KEY", - get: function get() { - return DATA_KEY$6; - } - }, { - key: "Event", - get: function get() { - return Event$1; - } - }, { - key: "EVENT_KEY", - get: function get() { - return EVENT_KEY$6; - } - }, { - key: "DefaultType", - get: function get() { - return DefaultType$4; - } - }]); + } - return Tooltip; -}(BaseComponent); +} /** * ------------------------------------------------------------------------ * jQuery @@ -4050,124 +4144,127 @@ var Tooltip = /*#__PURE__*/function (_BaseComponent) { */ -onDOMContentLoaded(function () { - var $ = getjQuery(); - /* istanbul ignore if */ - - if ($) { - var JQUERY_NO_CONFLICT = $.fn[NAME$6]; - $.fn[NAME$6] = Tooltip.jQueryInterface; - $.fn[NAME$6].Constructor = Tooltip; - - $.fn[NAME$6].noConflict = function () { - $.fn[NAME$6] = JQUERY_NO_CONFLICT; - return Tooltip.jQueryInterface; - }; - } -}); +defineJQueryPlugin(NAME$4, Tooltip); /** + * -------------------------------------------------------------------------- + * Bootstrap (v5.0.0-beta3): popover.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ +/** * ------------------------------------------------------------------------ * Constants * ------------------------------------------------------------------------ */ -var NAME$7 = 'popover'; -var DATA_KEY$7 = 'bs.popover'; -var EVENT_KEY$7 = "." + DATA_KEY$7; -var CLASS_PREFIX$1 = 'bs-popover'; -var BSCLS_PREFIX_REGEX$1 = new RegExp("(^|\\s)" + CLASS_PREFIX$1 + "\\S+", 'g'); - -var Default$5 = _extends({}, Tooltip.Default, { +const NAME$3 = 'popover'; +const DATA_KEY$3 = 'bs.popover'; +const EVENT_KEY$3 = `.${DATA_KEY$3}`; +const CLASS_PREFIX = 'bs-popover'; +const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\s)${CLASS_PREFIX}\\S+`, 'g'); +const Default$2 = { ...Tooltip.Default, placement: 'right', + offset: [0, 8], trigger: 'click', content: '', template: '<div class="popover" role="tooltip">' + '<div class="popover-arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div>' + '</div>' -}); - -var DefaultType$5 = _extends({}, Tooltip.DefaultType, { +}; +const DefaultType$2 = { ...Tooltip.DefaultType, content: '(string|element|function)' -}); - -var Event$2 = { - HIDE: "hide" + EVENT_KEY$7, - HIDDEN: "hidden" + EVENT_KEY$7, - SHOW: "show" + EVENT_KEY$7, - SHOWN: "shown" + EVENT_KEY$7, - INSERTED: "inserted" + EVENT_KEY$7, - CLICK: "click" + EVENT_KEY$7, - FOCUSIN: "focusin" + EVENT_KEY$7, - FOCUSOUT: "focusout" + EVENT_KEY$7, - MOUSEENTER: "mouseenter" + EVENT_KEY$7, - MOUSELEAVE: "mouseleave" + EVENT_KEY$7 }; -var CLASS_NAME_FADE$2 = 'fade'; -var CLASS_NAME_SHOW$4 = 'show'; -var SELECTOR_TITLE = '.popover-header'; -var SELECTOR_CONTENT = '.popover-body'; +const Event$1 = { + HIDE: `hide${EVENT_KEY$3}`, + HIDDEN: `hidden${EVENT_KEY$3}`, + SHOW: `show${EVENT_KEY$3}`, + SHOWN: `shown${EVENT_KEY$3}`, + INSERTED: `inserted${EVENT_KEY$3}`, + CLICK: `click${EVENT_KEY$3}`, + FOCUSIN: `focusin${EVENT_KEY$3}`, + FOCUSOUT: `focusout${EVENT_KEY$3}`, + MOUSEENTER: `mouseenter${EVENT_KEY$3}`, + MOUSELEAVE: `mouseleave${EVENT_KEY$3}` +}; +const CLASS_NAME_FADE$2 = 'fade'; +const CLASS_NAME_SHOW$2 = 'show'; +const SELECTOR_TITLE = '.popover-header'; +const SELECTOR_CONTENT = '.popover-body'; /** * ------------------------------------------------------------------------ * Class Definition * ------------------------------------------------------------------------ */ -var Popover = /*#__PURE__*/function (_Tooltip) { - _inheritsLoose(Popover, _Tooltip); +class Popover extends Tooltip { + // Getters + static get Default() { + return Default$2; + } + + static get NAME() { + return NAME$3; + } + + static get DATA_KEY() { + return DATA_KEY$3; + } + + static get Event() { + return Event$1; + } - function Popover() { - return _Tooltip.apply(this, arguments) || this; + static get EVENT_KEY() { + return EVENT_KEY$3; } - var _proto = Popover.prototype; + static get DefaultType() { + return DefaultType$2; + } // Overrides - // Overrides - _proto.isWithContent = function isWithContent() { + + isWithContent() { return this.getTitle() || this._getContent(); - }; + } - _proto.setContent = function setContent() { - var tip = this.getTipElement(); // we use append for html objects to maintain js events + setContent() { + const tip = this.getTipElement(); // we use append for html objects to maintain js events this.setElementContent(SelectorEngine.findOne(SELECTOR_TITLE, tip), this.getTitle()); - var content = this._getContent(); + let content = this._getContent(); if (typeof content === 'function') { content = content.call(this._element); } this.setElementContent(SelectorEngine.findOne(SELECTOR_CONTENT, tip), content); - tip.classList.remove(CLASS_NAME_FADE$2, CLASS_NAME_SHOW$4); + tip.classList.remove(CLASS_NAME_FADE$2, CLASS_NAME_SHOW$2); } // Private - ; - _proto._addAttachmentClass = function _addAttachmentClass(attachment) { - this.getTipElement().classList.add(CLASS_PREFIX$1 + "-" + this.updateAttachment(attachment)); - }; - _proto._getContent = function _getContent() { + _addAttachmentClass(attachment) { + this.getTipElement().classList.add(`${CLASS_PREFIX}-${this.updateAttachment(attachment)}`); + } + + _getContent() { return this._element.getAttribute('data-bs-content') || this.config.content; - }; + } - _proto._cleanTipClass = function _cleanTipClass() { - var tip = this.getTipElement(); - var tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX$1); + _cleanTipClass() { + const tip = this.getTipElement(); + const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX); if (tabClass !== null && tabClass.length > 0) { - tabClass.map(function (token) { - return token.trim(); - }).forEach(function (tClass) { - return tip.classList.remove(tClass); - }); + tabClass.map(token => token.trim()).forEach(tClass => tip.classList.remove(tClass)); } } // Static - ; - Popover.jQueryInterface = function jQueryInterface(config) { + + static jQueryInterface(config) { return this.each(function () { - var data = Data.getData(this, DATA_KEY$7); + let data = Data.get(this, DATA_KEY$3); - var _config = typeof config === 'object' ? config : null; + const _config = typeof config === 'object' ? config : null; if (!data && /dispose|hide/.test(config)) { return; @@ -4175,54 +4272,20 @@ var Popover = /*#__PURE__*/function (_Tooltip) { if (!data) { data = new Popover(this, _config); - Data.setData(this, DATA_KEY$7, data); + Data.set(this, DATA_KEY$3, data); } if (typeof config === 'string') { if (typeof data[config] === 'undefined') { - throw new TypeError("No method named \"" + config + "\""); + throw new TypeError(`No method named "${config}"`); } data[config](); } }); - }; + } - _createClass(Popover, null, [{ - key: "Default", - // Getters - get: function get() { - return Default$5; - } - }, { - key: "NAME", - get: function get() { - return NAME$7; - } - }, { - key: "DATA_KEY", - get: function get() { - return DATA_KEY$7; - } - }, { - key: "Event", - get: function get() { - return Event$2; - } - }, { - key: "EVENT_KEY", - get: function get() { - return EVENT_KEY$7; - } - }, { - key: "DefaultType", - get: function get() { - return DefaultType$5; - } - }]); - - return Popover; -}(Tooltip); +} /** * ------------------------------------------------------------------------ * jQuery @@ -4231,107 +4294,94 @@ var Popover = /*#__PURE__*/function (_Tooltip) { */ -onDOMContentLoaded(function () { - var $ = getjQuery(); - /* istanbul ignore if */ - - if ($) { - var JQUERY_NO_CONFLICT = $.fn[NAME$7]; - $.fn[NAME$7] = Popover.jQueryInterface; - $.fn[NAME$7].Constructor = Popover; - - $.fn[NAME$7].noConflict = function () { - $.fn[NAME$7] = JQUERY_NO_CONFLICT; - return Popover.jQueryInterface; - }; - } -}); +defineJQueryPlugin(NAME$3, Popover); /** + * -------------------------------------------------------------------------- + * Bootstrap (v5.0.0-beta3): scrollspy.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ +/** * ------------------------------------------------------------------------ * Constants * ------------------------------------------------------------------------ */ -var NAME$8 = 'scrollspy'; -var DATA_KEY$8 = 'bs.scrollspy'; -var EVENT_KEY$8 = "." + DATA_KEY$8; -var DATA_API_KEY$6 = '.data-api'; -var Default$6 = { +const NAME$2 = 'scrollspy'; +const DATA_KEY$2 = 'bs.scrollspy'; +const EVENT_KEY$2 = `.${DATA_KEY$2}`; +const DATA_API_KEY$1 = '.data-api'; +const Default$1 = { offset: 10, method: 'auto', target: '' }; -var DefaultType$6 = { +const DefaultType$1 = { offset: 'number', method: 'string', target: '(string|element)' }; -var EVENT_ACTIVATE = "activate" + EVENT_KEY$8; -var EVENT_SCROLL = "scroll" + EVENT_KEY$8; -var EVENT_LOAD_DATA_API$1 = "load" + EVENT_KEY$8 + DATA_API_KEY$6; -var CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item'; -var CLASS_NAME_ACTIVE$2 = 'active'; -var SELECTOR_DATA_SPY = '[data-bs-spy="scroll"]'; -var SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'; -var SELECTOR_NAV_LINKS = '.nav-link'; -var SELECTOR_NAV_ITEMS = '.nav-item'; -var SELECTOR_LIST_ITEMS = '.list-group-item'; -var SELECTOR_DROPDOWN = '.dropdown'; -var SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'; -var METHOD_OFFSET = 'offset'; -var METHOD_POSITION = 'position'; +const EVENT_ACTIVATE = `activate${EVENT_KEY$2}`; +const EVENT_SCROLL = `scroll${EVENT_KEY$2}`; +const EVENT_LOAD_DATA_API = `load${EVENT_KEY$2}${DATA_API_KEY$1}`; +const CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item'; +const CLASS_NAME_ACTIVE$1 = 'active'; +const SELECTOR_DATA_SPY = '[data-bs-spy="scroll"]'; +const SELECTOR_NAV_LIST_GROUP$1 = '.nav, .list-group'; +const SELECTOR_NAV_LINKS = '.nav-link'; +const SELECTOR_NAV_ITEMS = '.nav-item'; +const SELECTOR_LIST_ITEMS = '.list-group-item'; +const SELECTOR_DROPDOWN$1 = '.dropdown'; +const SELECTOR_DROPDOWN_TOGGLE$1 = '.dropdown-toggle'; +const METHOD_OFFSET = 'offset'; +const METHOD_POSITION = 'position'; /** * ------------------------------------------------------------------------ * Class Definition * ------------------------------------------------------------------------ */ -var ScrollSpy = /*#__PURE__*/function (_BaseComponent) { - _inheritsLoose(ScrollSpy, _BaseComponent); - - function ScrollSpy(element, config) { - var _this; - - _this = _BaseComponent.call(this, element) || this; - _this._scrollElement = element.tagName === 'BODY' ? window : element; - _this._config = _this._getConfig(config); - _this._selector = _this._config.target + " " + SELECTOR_NAV_LINKS + ", " + _this._config.target + " " + SELECTOR_LIST_ITEMS + ", " + _this._config.target + " ." + CLASS_NAME_DROPDOWN_ITEM; - _this._offsets = []; - _this._targets = []; - _this._activeTarget = null; - _this._scrollHeight = 0; - EventHandler.on(_this._scrollElement, EVENT_SCROLL, function (event) { - return _this._process(event); - }); - - _this.refresh(); - - _this._process(); +class ScrollSpy extends BaseComponent { + constructor(element, config) { + super(element); + this._scrollElement = this._element.tagName === 'BODY' ? window : this._element; + this._config = this._getConfig(config); + this._selector = `${this._config.target} ${SELECTOR_NAV_LINKS}, ${this._config.target} ${SELECTOR_LIST_ITEMS}, ${this._config.target} .${CLASS_NAME_DROPDOWN_ITEM}`; + this._offsets = []; + this._targets = []; + this._activeTarget = null; + this._scrollHeight = 0; + EventHandler.on(this._scrollElement, EVENT_SCROLL, () => this._process()); + this.refresh(); - return _this; + this._process(); } // Getters - var _proto = ScrollSpy.prototype; + static get Default() { + return Default$1; + } + + static get DATA_KEY() { + return DATA_KEY$2; + } // Public - // Public - _proto.refresh = function refresh() { - var _this2 = this; - var autoMethod = this._scrollElement === this._scrollElement.window ? METHOD_OFFSET : METHOD_POSITION; - var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method; - var offsetBase = offsetMethod === METHOD_POSITION ? this._getScrollTop() : 0; + refresh() { + const autoMethod = this._scrollElement === this._scrollElement.window ? METHOD_OFFSET : METHOD_POSITION; + const offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method; + const offsetBase = offsetMethod === METHOD_POSITION ? this._getScrollTop() : 0; this._offsets = []; this._targets = []; this._scrollHeight = this._getScrollHeight(); - var targets = SelectorEngine.find(this._selector); - targets.map(function (element) { - var targetSelector = getSelectorFromElement(element); - var target = targetSelector ? SelectorEngine.findOne(targetSelector) : null; + const targets = SelectorEngine.find(this._selector); + targets.map(element => { + const targetSelector = getSelectorFromElement(element); + const target = targetSelector ? SelectorEngine.findOne(targetSelector) : null; if (target) { - var targetBCR = target.getBoundingClientRect(); + const targetBCR = target.getBoundingClientRect(); if (targetBCR.width || targetBCR.height) { return [Manipulator[offsetMethod](target).top + offsetBase, targetSelector]; @@ -4339,21 +4389,16 @@ var ScrollSpy = /*#__PURE__*/function (_BaseComponent) { } return null; - }).filter(function (item) { - return item; - }).sort(function (a, b) { - return a[0] - b[0]; - }).forEach(function (item) { - _this2._offsets.push(item[0]); - - _this2._targets.push(item[1]); - }); - }; + }).filter(item => item).sort((a, b) => a[0] - b[0]).forEach(item => { + this._offsets.push(item[0]); - _proto.dispose = function dispose() { - _BaseComponent.prototype.dispose.call(this); + this._targets.push(item[1]); + }); + } - EventHandler.off(this._scrollElement, EVENT_KEY$8); + dispose() { + super.dispose(); + EventHandler.off(this._scrollElement, EVENT_KEY$2); this._scrollElement = null; this._config = null; this._selector = null; @@ -4362,51 +4407,55 @@ var ScrollSpy = /*#__PURE__*/function (_BaseComponent) { this._activeTarget = null; this._scrollHeight = null; } // Private - ; - _proto._getConfig = function _getConfig(config) { - config = _extends({}, Default$6, typeof config === 'object' && config ? config : {}); + + _getConfig(config) { + config = { ...Default$1, + ...(typeof config === 'object' && config ? config : {}) + }; if (typeof config.target !== 'string' && isElement(config.target)) { - var id = config.target.id; + let { + id + } = config.target; if (!id) { - id = getUID(NAME$8); + id = getUID(NAME$2); config.target.id = id; } - config.target = "#" + id; + config.target = `#${id}`; } - typeCheckConfig(NAME$8, config, DefaultType$6); + typeCheckConfig(NAME$2, config, DefaultType$1); return config; - }; + } - _proto._getScrollTop = function _getScrollTop() { + _getScrollTop() { return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop; - }; + } - _proto._getScrollHeight = function _getScrollHeight() { + _getScrollHeight() { return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight); - }; + } - _proto._getOffsetHeight = function _getOffsetHeight() { + _getOffsetHeight() { return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height; - }; + } - _proto._process = function _process() { - var scrollTop = this._getScrollTop() + this._config.offset; + _process() { + const scrollTop = this._getScrollTop() + this._config.offset; - var scrollHeight = this._getScrollHeight(); + const scrollHeight = this._getScrollHeight(); - var maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight(); + const maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight(); if (this._scrollHeight !== scrollHeight) { this.refresh(); } if (scrollTop >= maxScroll) { - var target = this._targets[this._targets.length - 1]; + const target = this._targets[this._targets.length - 1]; if (this._activeTarget !== target) { this._activate(target); @@ -4423,43 +4472,37 @@ var ScrollSpy = /*#__PURE__*/function (_BaseComponent) { return; } - for (var i = this._offsets.length; i--;) { - var isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]); + for (let i = this._offsets.length; i--;) { + const isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]); if (isActiveTarget) { this._activate(this._targets[i]); } } - }; + } - _proto._activate = function _activate(target) { + _activate(target) { this._activeTarget = target; this._clear(); - var queries = this._selector.split(',').map(function (selector) { - return selector + "[data-bs-target=\"" + target + "\"]," + selector + "[href=\"" + target + "\"]"; - }); + const queries = this._selector.split(',').map(selector => `${selector}[data-bs-target="${target}"],${selector}[href="${target}"]`); - var link = SelectorEngine.findOne(queries.join(',')); + const link = SelectorEngine.findOne(queries.join(',')); if (link.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) { - SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE, link.closest(SELECTOR_DROPDOWN)).classList.add(CLASS_NAME_ACTIVE$2); - link.classList.add(CLASS_NAME_ACTIVE$2); + SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE$1, link.closest(SELECTOR_DROPDOWN$1)).classList.add(CLASS_NAME_ACTIVE$1); + link.classList.add(CLASS_NAME_ACTIVE$1); } else { // Set triggered link as active - link.classList.add(CLASS_NAME_ACTIVE$2); - SelectorEngine.parents(link, SELECTOR_NAV_LIST_GROUP).forEach(function (listGroup) { + link.classList.add(CLASS_NAME_ACTIVE$1); + SelectorEngine.parents(link, SELECTOR_NAV_LIST_GROUP$1).forEach(listGroup => { // Set triggered links parents as active // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor - SelectorEngine.prev(listGroup, SELECTOR_NAV_LINKS + ", " + SELECTOR_LIST_ITEMS).forEach(function (item) { - return item.classList.add(CLASS_NAME_ACTIVE$2); - }); // Handle special case when .nav-link is inside .nav-item + SelectorEngine.prev(listGroup, `${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`).forEach(item => item.classList.add(CLASS_NAME_ACTIVE$1)); // Handle special case when .nav-link is inside .nav-item - SelectorEngine.prev(listGroup, SELECTOR_NAV_ITEMS).forEach(function (navItem) { - SelectorEngine.children(navItem, SELECTOR_NAV_LINKS).forEach(function (item) { - return item.classList.add(CLASS_NAME_ACTIVE$2); - }); + SelectorEngine.prev(listGroup, SELECTOR_NAV_ITEMS).forEach(navItem => { + SelectorEngine.children(navItem, SELECTOR_NAV_LINKS).forEach(item => item.classList.add(CLASS_NAME_ACTIVE$1)); }); }); } @@ -4467,22 +4510,18 @@ var ScrollSpy = /*#__PURE__*/function (_BaseComponent) { EventHandler.trigger(this._scrollElement, EVENT_ACTIVATE, { relatedTarget: target }); - }; + } - _proto._clear = function _clear() { - SelectorEngine.find(this._selector).filter(function (node) { - return node.classList.contains(CLASS_NAME_ACTIVE$2); - }).forEach(function (node) { - return node.classList.remove(CLASS_NAME_ACTIVE$2); - }); + _clear() { + SelectorEngine.find(this._selector).filter(node => node.classList.contains(CLASS_NAME_ACTIVE$1)).forEach(node => node.classList.remove(CLASS_NAME_ACTIVE$1)); } // Static - ; - ScrollSpy.jQueryInterface = function jQueryInterface(config) { + + static jQueryInterface(config) { return this.each(function () { - var data = Data.getData(this, DATA_KEY$8); + let data = Data.get(this, DATA_KEY$2); - var _config = typeof config === 'object' && config; + const _config = typeof config === 'object' && config; if (!data) { data = new ScrollSpy(this, _config); @@ -4490,28 +4529,15 @@ var ScrollSpy = /*#__PURE__*/function (_BaseComponent) { if (typeof config === 'string') { if (typeof data[config] === 'undefined') { - throw new TypeError("No method named \"" + config + "\""); + throw new TypeError(`No method named "${config}"`); } data[config](); } }); - }; - - _createClass(ScrollSpy, null, [{ - key: "Default", - get: function get() { - return Default$6; - } - }, { - key: "DATA_KEY", - get: function get() { - return DATA_KEY$8; - } - }]); + } - return ScrollSpy; -}(BaseComponent); +} /** * ------------------------------------------------------------------------ * Data Api implementation @@ -4519,10 +4545,8 @@ var ScrollSpy = /*#__PURE__*/function (_BaseComponent) { */ -EventHandler.on(window, EVENT_LOAD_DATA_API$1, function () { - SelectorEngine.find(SELECTOR_DATA_SPY).forEach(function (spy) { - return new ScrollSpy(spy, Manipulator.getDataAttributes(spy)); - }); +EventHandler.on(window, EVENT_LOAD_DATA_API, () => { + SelectorEngine.find(SELECTOR_DATA_SPY).forEach(spy => new ScrollSpy(spy, Manipulator.getDataAttributes(spy))); }); /** * ------------------------------------------------------------------------ @@ -4531,92 +4555,73 @@ EventHandler.on(window, EVENT_LOAD_DATA_API$1, function () { * add .ScrollSpy to jQuery only if jQuery is present */ -onDOMContentLoaded(function () { - var $ = getjQuery(); - /* istanbul ignore if */ - - if ($) { - var JQUERY_NO_CONFLICT = $.fn[NAME$8]; - $.fn[NAME$8] = ScrollSpy.jQueryInterface; - $.fn[NAME$8].Constructor = ScrollSpy; - - $.fn[NAME$8].noConflict = function () { - $.fn[NAME$8] = JQUERY_NO_CONFLICT; - return ScrollSpy.jQueryInterface; - }; - } -}); +defineJQueryPlugin(NAME$2, ScrollSpy); /** + * -------------------------------------------------------------------------- + * Bootstrap (v5.0.0-beta3): tab.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ +/** * ------------------------------------------------------------------------ * Constants * ------------------------------------------------------------------------ */ -var NAME$9 = 'tab'; -var DATA_KEY$9 = 'bs.tab'; -var EVENT_KEY$9 = "." + DATA_KEY$9; -var DATA_API_KEY$7 = '.data-api'; -var EVENT_HIDE$3 = "hide" + EVENT_KEY$9; -var EVENT_HIDDEN$3 = "hidden" + EVENT_KEY$9; -var EVENT_SHOW$3 = "show" + EVENT_KEY$9; -var EVENT_SHOWN$3 = "shown" + EVENT_KEY$9; -var EVENT_CLICK_DATA_API$6 = "click" + EVENT_KEY$9 + DATA_API_KEY$7; -var CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu'; -var CLASS_NAME_ACTIVE$3 = 'active'; -var CLASS_NAME_DISABLED$1 = 'disabled'; -var CLASS_NAME_FADE$3 = 'fade'; -var CLASS_NAME_SHOW$5 = 'show'; -var SELECTOR_DROPDOWN$1 = '.dropdown'; -var SELECTOR_NAV_LIST_GROUP$1 = '.nav, .list-group'; -var SELECTOR_ACTIVE$1 = '.active'; -var SELECTOR_ACTIVE_UL = ':scope > li > .active'; -var SELECTOR_DATA_TOGGLE$4 = '[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]'; -var SELECTOR_DROPDOWN_TOGGLE$1 = '.dropdown-toggle'; -var SELECTOR_DROPDOWN_ACTIVE_CHILD = ':scope > .dropdown-menu .active'; +const NAME$1 = 'tab'; +const DATA_KEY$1 = 'bs.tab'; +const EVENT_KEY$1 = `.${DATA_KEY$1}`; +const DATA_API_KEY = '.data-api'; +const EVENT_HIDE$1 = `hide${EVENT_KEY$1}`; +const EVENT_HIDDEN$1 = `hidden${EVENT_KEY$1}`; +const EVENT_SHOW$1 = `show${EVENT_KEY$1}`; +const EVENT_SHOWN$1 = `shown${EVENT_KEY$1}`; +const EVENT_CLICK_DATA_API = `click${EVENT_KEY$1}${DATA_API_KEY}`; +const CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu'; +const CLASS_NAME_ACTIVE = 'active'; +const CLASS_NAME_FADE$1 = 'fade'; +const CLASS_NAME_SHOW$1 = 'show'; +const SELECTOR_DROPDOWN = '.dropdown'; +const SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'; +const SELECTOR_ACTIVE = '.active'; +const SELECTOR_ACTIVE_UL = ':scope > li > .active'; +const SELECTOR_DATA_TOGGLE = '[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]'; +const SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'; +const SELECTOR_DROPDOWN_ACTIVE_CHILD = ':scope > .dropdown-menu .active'; /** * ------------------------------------------------------------------------ * Class Definition * ------------------------------------------------------------------------ */ -var Tab = /*#__PURE__*/function (_BaseComponent) { - _inheritsLoose(Tab, _BaseComponent); - - function Tab() { - return _BaseComponent.apply(this, arguments) || this; - } - - var _proto = Tab.prototype; +class Tab extends BaseComponent { + // Getters + static get DATA_KEY() { + return DATA_KEY$1; + } // Public - // Public - _proto.show = function show() { - var _this = this; - if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && this._element.classList.contains(CLASS_NAME_ACTIVE$3) || this._element.classList.contains(CLASS_NAME_DISABLED$1)) { + show() { + if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && this._element.classList.contains(CLASS_NAME_ACTIVE) || isDisabled(this._element)) { return; } - var previous; - var target = getElementFromSelector(this._element); + let previous; + const target = getElementFromSelector(this._element); - var listElement = this._element.closest(SELECTOR_NAV_LIST_GROUP$1); + const listElement = this._element.closest(SELECTOR_NAV_LIST_GROUP); if (listElement) { - var itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE$1; + const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE; previous = SelectorEngine.find(itemSelector, listElement); previous = previous[previous.length - 1]; } - var hideEvent = null; - - if (previous) { - hideEvent = EventHandler.trigger(previous, EVENT_HIDE$3, { - relatedTarget: this._element - }); - } - - var showEvent = EventHandler.trigger(this._element, EVENT_SHOW$3, { + const hideEvent = previous ? EventHandler.trigger(previous, EVENT_HIDE$1, { + relatedTarget: this._element + }) : null; + const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$1, { relatedTarget: previous }); @@ -4626,11 +4631,11 @@ var Tab = /*#__PURE__*/function (_BaseComponent) { this._activate(this._element, listElement); - var complete = function complete() { - EventHandler.trigger(previous, EVENT_HIDDEN$3, { - relatedTarget: _this._element + const complete = () => { + EventHandler.trigger(previous, EVENT_HIDDEN$1, { + relatedTarget: this._element }); - EventHandler.trigger(_this._element, EVENT_SHOWN$3, { + EventHandler.trigger(this._element, EVENT_SHOWN$1, { relatedTarget: previous }); }; @@ -4641,36 +4646,32 @@ var Tab = /*#__PURE__*/function (_BaseComponent) { complete(); } } // Private - ; - _proto._activate = function _activate(element, container, callback) { - var _this2 = this; - var activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ? SelectorEngine.find(SELECTOR_ACTIVE_UL, container) : SelectorEngine.children(container, SELECTOR_ACTIVE$1); - var active = activeElements[0]; - var isTransitioning = callback && active && active.classList.contains(CLASS_NAME_FADE$3); + _activate(element, container, callback) { + const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ? SelectorEngine.find(SELECTOR_ACTIVE_UL, container) : SelectorEngine.children(container, SELECTOR_ACTIVE); + const active = activeElements[0]; + const isTransitioning = callback && active && active.classList.contains(CLASS_NAME_FADE$1); - var complete = function complete() { - return _this2._transitionComplete(element, active, callback); - }; + const complete = () => this._transitionComplete(element, active, callback); if (active && isTransitioning) { - var transitionDuration = getTransitionDurationFromElement(active); - active.classList.remove(CLASS_NAME_SHOW$5); - EventHandler.one(active, TRANSITION_END, complete); + const transitionDuration = getTransitionDurationFromElement(active); + active.classList.remove(CLASS_NAME_SHOW$1); + EventHandler.one(active, 'transitionend', complete); emulateTransitionEnd(active, transitionDuration); } else { complete(); } - }; + } - _proto._transitionComplete = function _transitionComplete(element, active, callback) { + _transitionComplete(element, active, callback) { if (active) { - active.classList.remove(CLASS_NAME_ACTIVE$3); - var dropdownChild = SelectorEngine.findOne(SELECTOR_DROPDOWN_ACTIVE_CHILD, active.parentNode); + active.classList.remove(CLASS_NAME_ACTIVE); + const dropdownChild = SelectorEngine.findOne(SELECTOR_DROPDOWN_ACTIVE_CHILD, active.parentNode); if (dropdownChild) { - dropdownChild.classList.remove(CLASS_NAME_ACTIVE$3); + dropdownChild.classList.remove(CLASS_NAME_ACTIVE); } if (active.getAttribute('role') === 'tab') { @@ -4678,7 +4679,7 @@ var Tab = /*#__PURE__*/function (_BaseComponent) { } } - element.classList.add(CLASS_NAME_ACTIVE$3); + element.classList.add(CLASS_NAME_ACTIVE); if (element.getAttribute('role') === 'tab') { element.setAttribute('aria-selected', true); @@ -4686,17 +4687,15 @@ var Tab = /*#__PURE__*/function (_BaseComponent) { reflow(element); - if (element.classList.contains(CLASS_NAME_FADE$3)) { - element.classList.add(CLASS_NAME_SHOW$5); + if (element.classList.contains(CLASS_NAME_FADE$1)) { + element.classList.add(CLASS_NAME_SHOW$1); } if (element.parentNode && element.parentNode.classList.contains(CLASS_NAME_DROPDOWN_MENU)) { - var dropdownElement = element.closest(SELECTOR_DROPDOWN$1); + const dropdownElement = element.closest(SELECTOR_DROPDOWN); if (dropdownElement) { - SelectorEngine.find(SELECTOR_DROPDOWN_TOGGLE$1).forEach(function (dropdown) { - return dropdown.classList.add(CLASS_NAME_ACTIVE$3); - }); + SelectorEngine.find(SELECTOR_DROPDOWN_TOGGLE).forEach(dropdown => dropdown.classList.add(CLASS_NAME_ACTIVE)); } element.setAttribute('aria-expanded', true); @@ -4706,32 +4705,23 @@ var Tab = /*#__PURE__*/function (_BaseComponent) { callback(); } } // Static - ; - Tab.jQueryInterface = function jQueryInterface(config) { + + static jQueryInterface(config) { return this.each(function () { - var data = Data.getData(this, DATA_KEY$9) || new Tab(this); + const data = Data.get(this, DATA_KEY$1) || new Tab(this); if (typeof config === 'string') { if (typeof data[config] === 'undefined') { - throw new TypeError("No method named \"" + config + "\""); + throw new TypeError(`No method named "${config}"`); } data[config](); } }); - }; - - _createClass(Tab, null, [{ - key: "DATA_KEY", - // Getters - get: function get() { - return DATA_KEY$9; - } - }]); + } - return Tab; -}(BaseComponent); +} /** * ------------------------------------------------------------------------ * Data Api implementation @@ -4739,9 +4729,9 @@ var Tab = /*#__PURE__*/function (_BaseComponent) { */ -EventHandler.on(document, EVENT_CLICK_DATA_API$6, SELECTOR_DATA_TOGGLE$4, function (event) { +EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) { event.preventDefault(); - var data = Data.getData(this, DATA_KEY$9) || new Tab(this); + const data = Data.get(this, DATA_KEY$1) || new Tab(this); data.show(); }); /** @@ -4751,80 +4741,74 @@ EventHandler.on(document, EVENT_CLICK_DATA_API$6, SELECTOR_DATA_TOGGLE$4, functi * add .Tab to jQuery only if jQuery is present */ -onDOMContentLoaded(function () { - var $ = getjQuery(); - /* istanbul ignore if */ - - if ($) { - var JQUERY_NO_CONFLICT = $.fn[NAME$9]; - $.fn[NAME$9] = Tab.jQueryInterface; - $.fn[NAME$9].Constructor = Tab; - - $.fn[NAME$9].noConflict = function () { - $.fn[NAME$9] = JQUERY_NO_CONFLICT; - return Tab.jQueryInterface; - }; - } -}); +defineJQueryPlugin(NAME$1, Tab); /** + * -------------------------------------------------------------------------- + * Bootstrap (v5.0.0-beta3): toast.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ +/** * ------------------------------------------------------------------------ * Constants * ------------------------------------------------------------------------ */ -var NAME$a = 'toast'; -var DATA_KEY$a = 'bs.toast'; -var EVENT_KEY$a = "." + DATA_KEY$a; -var EVENT_CLICK_DISMISS$1 = "click.dismiss" + EVENT_KEY$a; -var EVENT_HIDE$4 = "hide" + EVENT_KEY$a; -var EVENT_HIDDEN$4 = "hidden" + EVENT_KEY$a; -var EVENT_SHOW$4 = "show" + EVENT_KEY$a; -var EVENT_SHOWN$4 = "shown" + EVENT_KEY$a; -var CLASS_NAME_FADE$4 = 'fade'; -var CLASS_NAME_HIDE = 'hide'; -var CLASS_NAME_SHOW$6 = 'show'; -var CLASS_NAME_SHOWING = 'showing'; -var DefaultType$7 = { +const NAME = 'toast'; +const DATA_KEY = 'bs.toast'; +const EVENT_KEY = `.${DATA_KEY}`; +const EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`; +const EVENT_HIDE = `hide${EVENT_KEY}`; +const EVENT_HIDDEN = `hidden${EVENT_KEY}`; +const EVENT_SHOW = `show${EVENT_KEY}`; +const EVENT_SHOWN = `shown${EVENT_KEY}`; +const CLASS_NAME_FADE = 'fade'; +const CLASS_NAME_HIDE = 'hide'; +const CLASS_NAME_SHOW = 'show'; +const CLASS_NAME_SHOWING = 'showing'; +const DefaultType = { animation: 'boolean', autohide: 'boolean', delay: 'number' }; -var Default$7 = { +const Default = { animation: true, autohide: true, delay: 5000 }; -var SELECTOR_DATA_DISMISS$1 = '[data-bs-dismiss="toast"]'; +const SELECTOR_DATA_DISMISS = '[data-bs-dismiss="toast"]'; /** * ------------------------------------------------------------------------ * Class Definition * ------------------------------------------------------------------------ */ -var Toast = /*#__PURE__*/function (_BaseComponent) { - _inheritsLoose(Toast, _BaseComponent); - - function Toast(element, config) { - var _this; +class Toast extends BaseComponent { + constructor(element, config) { + super(element); + this._config = this._getConfig(config); + this._timeout = null; - _this = _BaseComponent.call(this, element) || this; - _this._config = _this._getConfig(config); - _this._timeout = null; + this._setListeners(); + } // Getters - _this._setListeners(); - return _this; - } // Getters + static get DefaultType() { + return DefaultType; + } + static get Default() { + return Default; + } - var _proto = Toast.prototype; + static get DATA_KEY() { + return DATA_KEY; + } // Public - // Public - _proto.show = function show() { - var _this2 = this; - var showEvent = EventHandler.trigger(this._element, EVENT_SHOW$4); + show() { + const showEvent = EventHandler.trigger(this._element, EVENT_SHOW); if (showEvent.defaultPrevented) { return; @@ -4833,20 +4817,20 @@ var Toast = /*#__PURE__*/function (_BaseComponent) { this._clearTimeout(); if (this._config.animation) { - this._element.classList.add(CLASS_NAME_FADE$4); + this._element.classList.add(CLASS_NAME_FADE); } - var complete = function complete() { - _this2._element.classList.remove(CLASS_NAME_SHOWING); + const complete = () => { + this._element.classList.remove(CLASS_NAME_SHOWING); - _this2._element.classList.add(CLASS_NAME_SHOW$6); + this._element.classList.add(CLASS_NAME_SHOW); - EventHandler.trigger(_this2._element, EVENT_SHOWN$4); + EventHandler.trigger(this._element, EVENT_SHOWN); - if (_this2._config.autohide) { - _this2._timeout = setTimeout(function () { - _this2.hide(); - }, _this2._config.delay); + if (this._config.autohide) { + this._timeout = setTimeout(() => { + this.hide(); + }, this._config.delay); } }; @@ -4857,84 +4841,79 @@ var Toast = /*#__PURE__*/function (_BaseComponent) { this._element.classList.add(CLASS_NAME_SHOWING); if (this._config.animation) { - var transitionDuration = getTransitionDurationFromElement(this._element); - EventHandler.one(this._element, TRANSITION_END, complete); + const transitionDuration = getTransitionDurationFromElement(this._element); + EventHandler.one(this._element, 'transitionend', complete); emulateTransitionEnd(this._element, transitionDuration); } else { complete(); } - }; - - _proto.hide = function hide() { - var _this3 = this; + } - if (!this._element.classList.contains(CLASS_NAME_SHOW$6)) { + hide() { + if (!this._element.classList.contains(CLASS_NAME_SHOW)) { return; } - var hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$4); + const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE); if (hideEvent.defaultPrevented) { return; } - var complete = function complete() { - _this3._element.classList.add(CLASS_NAME_HIDE); + const complete = () => { + this._element.classList.add(CLASS_NAME_HIDE); - EventHandler.trigger(_this3._element, EVENT_HIDDEN$4); + EventHandler.trigger(this._element, EVENT_HIDDEN); }; - this._element.classList.remove(CLASS_NAME_SHOW$6); + this._element.classList.remove(CLASS_NAME_SHOW); if (this._config.animation) { - var transitionDuration = getTransitionDurationFromElement(this._element); - EventHandler.one(this._element, TRANSITION_END, complete); + const transitionDuration = getTransitionDurationFromElement(this._element); + EventHandler.one(this._element, 'transitionend', complete); emulateTransitionEnd(this._element, transitionDuration); } else { complete(); } - }; + } - _proto.dispose = function dispose() { + dispose() { this._clearTimeout(); - if (this._element.classList.contains(CLASS_NAME_SHOW$6)) { - this._element.classList.remove(CLASS_NAME_SHOW$6); + if (this._element.classList.contains(CLASS_NAME_SHOW)) { + this._element.classList.remove(CLASS_NAME_SHOW); } - EventHandler.off(this._element, EVENT_CLICK_DISMISS$1); - - _BaseComponent.prototype.dispose.call(this); - + EventHandler.off(this._element, EVENT_CLICK_DISMISS); + super.dispose(); this._config = null; } // Private - ; - _proto._getConfig = function _getConfig(config) { - config = _extends({}, Default$7, Manipulator.getDataAttributes(this._element), typeof config === 'object' && config ? config : {}); - typeCheckConfig(NAME$a, config, this.constructor.DefaultType); - return config; - }; - _proto._setListeners = function _setListeners() { - var _this4 = this; + _getConfig(config) { + config = { ...Default, + ...Manipulator.getDataAttributes(this._element), + ...(typeof config === 'object' && config ? config : {}) + }; + typeCheckConfig(NAME, config, this.constructor.DefaultType); + return config; + } - EventHandler.on(this._element, EVENT_CLICK_DISMISS$1, SELECTOR_DATA_DISMISS$1, function () { - return _this4.hide(); - }); - }; + _setListeners() { + EventHandler.on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, () => this.hide()); + } - _proto._clearTimeout = function _clearTimeout() { + _clearTimeout() { clearTimeout(this._timeout); this._timeout = null; } // Static - ; - Toast.jQueryInterface = function jQueryInterface(config) { + + static jQueryInterface(config) { return this.each(function () { - var data = Data.getData(this, DATA_KEY$a); + let data = Data.get(this, DATA_KEY); - var _config = typeof config === 'object' && config; + const _config = typeof config === 'object' && config; if (!data) { data = new Toast(this, _config); @@ -4942,33 +4921,15 @@ var Toast = /*#__PURE__*/function (_BaseComponent) { if (typeof config === 'string') { if (typeof data[config] === 'undefined') { - throw new TypeError("No method named \"" + config + "\""); + throw new TypeError(`No method named "${config}"`); } data[config](this); } }); - }; - - _createClass(Toast, null, [{ - key: "DefaultType", - get: function get() { - return DefaultType$7; - } - }, { - key: "Default", - get: function get() { - return Default$7; - } - }, { - key: "DATA_KEY", - get: function get() { - return DATA_KEY$a; - } - }]); + } - return Toast; -}(BaseComponent); +} /** * ------------------------------------------------------------------------ * jQuery @@ -4977,21 +4938,7 @@ var Toast = /*#__PURE__*/function (_BaseComponent) { */ -onDOMContentLoaded(function () { - var $ = getjQuery(); - /* istanbul ignore if */ - - if ($) { - var JQUERY_NO_CONFLICT = $.fn[NAME$a]; - $.fn[NAME$a] = Toast.jQueryInterface; - $.fn[NAME$a].Constructor = Toast; - - $.fn[NAME$a].noConflict = function () { - $.fn[NAME$a] = JQUERY_NO_CONFLICT; - return Toast.jQueryInterface; - }; - } -}); +defineJQueryPlugin(NAME, Toast); -export { Alert, Button, Carousel, Collapse, Dropdown, Modal, Popover, ScrollSpy, Tab, Toast, Tooltip }; +export { Alert, Button, Carousel, Collapse, Dropdown, Modal, Offcanvas, Popover, ScrollSpy, Tab, Toast, Tooltip }; //# sourceMappingURL=bootstrap.esm.js.map diff --git a/dist/js/bootstrap.esm.js.map b/dist/js/bootstrap.esm.js.map index 526ded452..de55b4521 100644 --- a/dist/js/bootstrap.esm.js.map +++ b/dist/js/bootstrap.esm.js.map @@ -1 +1 @@ -{"version":3,"file":"bootstrap.esm.js","sources":["../../js/src/util/index.js","../../js/src/dom/data.js","../../js/src/dom/event-handler.js","../../js/src/base-component.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/dom/manipulator.js","../../js/src/dom/selector-engine.js","../../js/src/carousel.js","../../js/src/collapse.js","../../js/src/dropdown.js","../../js/src/modal.js","../../js/src/util/sanitizer.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/toast.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => {\n if (obj === null || obj === undefined) {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n prefix += Math.floor(Math.random() * MAX_UID)\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelector = element => {\n let selector = element.getAttribute('data-bs-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null\n }\n\n return selector\n}\n\nconst getSelectorFromElement = element => {\n const selector = getSelector(element)\n\n if (selector) {\n return document.querySelector(selector) ? selector : null\n }\n\n return null\n}\n\nconst getElementFromSelector = element => {\n const selector = getSelector(element)\n\n return selector ? document.querySelector(selector) : null\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 = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes).forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n const elementStyle = getComputedStyle(element)\n const parentNodeStyle = getComputedStyle(element.parentNode)\n\n return elementStyle.display !== 'none' &&\n parentNodeStyle.display !== 'none' &&\n elementStyle.visibility !== 'hidden'\n }\n\n return 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 = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nconst getjQuery = () => {\n const { jQuery } = window\n\n if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n return jQuery\n }\n\n return null\n}\n\nconst onDOMContentLoaded = callback => {\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', callback)\n } else {\n callback()\n }\n}\n\nconst isRTL = document.documentElement.dir === 'rtl'\n\nexport {\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n isVisible,\n findShadowRoot,\n noop,\n reflow,\n getjQuery,\n onDOMContentLoaded,\n isRTL\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst mapData = (() => {\n const storeData = {}\n let id = 1\n return {\n set(element, key, data) {\n if (typeof element.bsKey === 'undefined') {\n element.bsKey = {\n key,\n id\n }\n id++\n }\n\n storeData[element.bsKey.id] = data\n },\n get(element, key) {\n if (!element || typeof element.bsKey === 'undefined') {\n return null\n }\n\n const keyProperties = element.bsKey\n if (keyProperties.key === key) {\n return storeData[keyProperties.id]\n }\n\n return null\n },\n delete(element, key) {\n if (typeof element.bsKey === 'undefined') {\n return\n }\n\n const keyProperties = element.bsKey\n if (keyProperties.key === key) {\n delete storeData[keyProperties.id]\n delete element.bsKey\n }\n }\n }\n})()\n\nconst Data = {\n setData(instance, key, data) {\n mapData.set(instance, key, data)\n },\n getData(instance, key) {\n return mapData.get(instance, key)\n },\n removeData(instance, key) {\n mapData.delete(instance, key)\n }\n}\n\nexport default Data\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getjQuery } from '../util/index'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\nconst nativeEvents = new Set([\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 * ------------------------------------------------------------------------\n * Private methods\n * ------------------------------------------------------------------------\n */\n\nfunction getUidEvent(element, uid) {\n return (uid && `${uid}::${uidEvent++}`) || element.uidEvent || uidEvent++\n}\n\nfunction getEvent(element) {\n const uid = getUidEvent(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 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 (let i = domElements.length; i--;) {\n if (domElements[i] === target) {\n event.delegateTarget = target\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(target, [event])\n }\n }\n }\n\n // To please ESLint\n return null\n }\n}\n\nfunction findHandler(events, handler, delegationSelector = null) {\n const uidEventList = Object.keys(events)\n\n for (let i = 0, len = uidEventList.length; i < len; i++) {\n const event = events[uidEventList[i]]\n\n if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {\n return event\n }\n }\n\n return null\n}\n\nfunction normalizeParams(originalTypeEvent, handler, delegationFn) {\n const delegation = typeof handler === 'string'\n const originalHandler = delegation ? delegationFn : handler\n\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n let typeEvent = originalTypeEvent.replace(stripNameRegex, '')\n const custom = customEvents[typeEvent]\n\n if (custom) {\n typeEvent = custom\n }\n\n const isNative = nativeEvents.has(typeEvent)\n\n if (!isNative) {\n typeEvent = originalTypeEvent\n }\n\n return [delegation, originalHandler, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n if (!handler) {\n handler = delegationFn\n delegationFn = null\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const events = getEvent(element)\n const handlers = events[typeEvent] || (events[typeEvent] = {})\n const previousFn = findHandler(handlers, originalHandler, delegation ? handler : null)\n\n if (previousFn) {\n previousFn.oneOff = previousFn.oneOff && oneOff\n\n return\n }\n\n const uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, ''))\n const fn = delegation ?\n bootstrapDelegationHandler(element, handler, delegationFn) :\n bootstrapHandler(element, handler)\n\n fn.delegationSelector = delegation ? handler : null\n fn.originalHandler = originalHandler\n fn.oneOff = oneOff\n fn.uidEvent = uid\n handlers[uid] = fn\n\n element.addEventListener(typeEvent, fn, delegation)\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 Object.keys(storeElementEvent).forEach(handlerKey => {\n if (handlerKey.includes(namespace)) {\n const event = storeElementEvent[handlerKey]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, false)\n },\n\n one(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFn) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getEvent(element)\n const isNamespace = originalTypeEvent.startsWith('.')\n\n if (typeof originalHandler !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!events || !events[typeEvent]) {\n return\n }\n\n removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null)\n return\n }\n\n if (isNamespace) {\n Object.keys(events).forEach(elementEvent => {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1))\n })\n }\n\n const storeElementEvent = events[typeEvent] || {}\n Object.keys(storeElementEvent).forEach(keyHandlers => {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.includes(handlerKey)) {\n const event = storeElementEvent[keyHandlers]\n\n removeHandler(element, events, typeEvent, event.originalHandler, 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 = event.replace(stripNameRegex, '')\n const inNamespace = event !== typeEvent\n const isNative = nativeEvents.has(typeEvent)\n\n let jQueryEvent\n let bubbles = true\n let nativeDispatch = true\n let defaultPrevented = false\n let evt = null\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 if (isNative) {\n evt = document.createEvent('HTMLEvents')\n evt.initEvent(typeEvent, bubbles, true)\n } else {\n evt = new CustomEvent(event, {\n bubbles,\n cancelable: true\n })\n }\n\n // merge custom information in our event\n if (typeof args !== 'undefined') {\n Object.keys(args).forEach(key => {\n Object.defineProperty(evt, key, {\n get() {\n return args[key]\n }\n })\n })\n }\n\n if (defaultPrevented) {\n evt.preventDefault()\n }\n\n if (nativeDispatch) {\n element.dispatchEvent(evt)\n }\n\n if (evt.defaultPrevented && typeof jQueryEvent !== 'undefined') {\n jQueryEvent.preventDefault()\n }\n\n return evt\n }\n}\n\nexport default EventHandler\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): base-component.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Data from './dom/data'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst VERSION = '5.0.0-alpha3'\n\nclass BaseComponent {\n constructor(element) {\n if (!element) {\n return\n }\n\n this._element = element\n Data.setData(element, this.constructor.DATA_KEY, this)\n }\n\n dispose() {\n Data.removeData(this._element, this.constructor.DATA_KEY)\n this._element = null\n }\n\n /** Static */\n\n static getInstance(element) {\n return Data.getData(element, this.DATA_KEY)\n }\n\n static get VERSION() {\n return VERSION\n }\n}\n\nexport default BaseComponent\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n onDOMContentLoaded,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'alert'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst SELECTOR_DISMISS = '[data-bs-dismiss=\"alert\"]'\n\nconst EVENT_CLOSE = `close${EVENT_KEY}`\nconst EVENT_CLOSED = `closed${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASSNAME_ALERT = 'alert'\nconst CLASSNAME_FADE = 'fade'\nconst CLASSNAME_SHOW = 'show'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Alert extends BaseComponent {\n // Getters\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n close(element) {\n const rootElement = element ? this._getRootElement(element) : this._element\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent === null || customEvent.defaultPrevented) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n // Private\n\n _getRootElement(element) {\n return getElementFromSelector(element) || element.closest(`.${CLASSNAME_ALERT}`)\n }\n\n _triggerCloseEvent(element) {\n return EventHandler.trigger(element, EVENT_CLOSE)\n }\n\n _removeElement(element) {\n element.classList.remove(CLASSNAME_SHOW)\n\n if (!element.classList.contains(CLASSNAME_FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = getTransitionDurationFromElement(element)\n\n EventHandler.one(element, TRANSITION_END, () => this._destroyElement(element))\n emulateTransitionEnd(element, transitionDuration)\n }\n\n _destroyElement(element) {\n if (element.parentNode) {\n element.parentNode.removeChild(element)\n }\n\n EventHandler.trigger(element, EVENT_CLOSED)\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DISMISS, Alert.handleDismiss(new Alert()))\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Alert to jQuery only if jQuery is present\n */\n\nonDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Alert.jQueryInterface\n $.fn[NAME].Constructor = Alert\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert.jQueryInterface\n }\n }\n})\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getjQuery, onDOMContentLoaded } from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\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'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"button\"]'\n\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Button extends BaseComponent {\n // Getters\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n toggle() {\n // Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method\n this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE))\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\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\n let data = Data.getData(button, DATA_KEY)\n if (!data) {\n data = new Button(button)\n }\n\n data.toggle()\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Button to jQuery only if jQuery is present\n */\n\nonDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Button.jQueryInterface\n $.fn[NAME].Constructor = Button\n\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button.jQueryInterface\n }\n }\n})\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(val) {\n if (val === 'true') {\n return true\n }\n\n if (val === 'false') {\n return false\n }\n\n if (val === Number(val).toString()) {\n return Number(val)\n }\n\n if (val === '' || val === 'null') {\n return null\n }\n\n return val\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\n Object.keys(element.dataset)\n .filter(key => key.startsWith('bs'))\n .forEach(key => {\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 offset(element) {\n const rect = element.getBoundingClientRect()\n\n return {\n top: rect.top + document.body.scrollTop,\n left: rect.left + document.body.scrollLeft\n }\n },\n\n position(element) {\n return {\n top: element.offsetTop,\n left: element.offsetLeft\n }\n }\n}\n\nexport default Manipulator\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NODE_TEXT = 3\n\nconst SelectorEngine = {\n matches(element, selector) {\n return element.matches(selector)\n },\n\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 const children = [].concat(...element.children)\n\n return children.filter(child => child.matches(selector))\n },\n\n parents(element, selector) {\n const parents = []\n\n let ancestor = element.parentNode\n\n while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {\n if (this.matches(ancestor, selector)) {\n parents.push(ancestor)\n }\n\n ancestor = ancestor.parentNode\n }\n\n return parents\n },\n\n prev(element, selector) {\n let previous = element.previousElementSibling\n\n while (previous) {\n if (previous.matches(selector)) {\n return [previous]\n }\n\n previous = previous.previousElementSibling\n }\n\n return []\n },\n\n next(element, selector) {\n let next = element.nextElementSibling\n\n while (next) {\n if (this.matches(next, selector)) {\n return [next]\n }\n\n next = next.nextElementSibling\n }\n\n return []\n }\n}\n\nexport default SelectorEngine\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n onDOMContentLoaded,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isVisible,\n reflow,\n triggerTransitionEnd,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\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\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\n\nconst DIRECTION_NEXT = 'next'\nconst DIRECTION_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_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 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'\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event'\n\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_ITEM = '.active.carousel-item'\nconst SELECTOR_ITEM = '.carousel-item'\nconst SELECTOR_ITEM_IMG = '.carousel-item img'\nconst SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev'\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 PointerType = {\n TOUCH: 'touch',\n PEN: 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent)\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(DIRECTION_NEXT)\n }\n }\n\n nextWhenVisible() {\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 if (!this._isSliding) {\n this._slide(DIRECTION_PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (SelectorEngine.findOne(SELECTOR_NEXT_PREV, this._element)) {\n triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config && this._config.interval && !this._isPaused) {\n this._updateInterval()\n\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._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 if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex ?\n DIRECTION_NEXT :\n DIRECTION_PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n super.dispose()\n EventHandler.off(this._element, EVENT_KEY)\n\n this._items = null\n this._config = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n this.touchDeltaX = 0\n\n // swipe left\n if (direction > 0) {\n this.prev()\n }\n\n // swipe right\n if (direction < 0) {\n this.next()\n }\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, event => this.pause(event))\n EventHandler.on(this._element, EVENT_MOUSELEAVE, event => this.cycle(event))\n }\n\n if (this._config.touch && this._touchSupported) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n const start = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchStartX = event.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.touches[0].clientX\n }\n }\n\n const move = event => {\n // ensure swiping with one touch and not pinching\n if (event.touches && event.touches.length > 1) {\n this.touchDeltaX = 0\n } else {\n this.touchDeltaX = event.touches[0].clientX - this.touchStartX\n }\n }\n\n const end = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchDeltaX = event.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\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(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n SelectorEngine.find(SELECTOR_ITEM_IMG, this._element).forEach(itemImg => {\n EventHandler.on(itemImg, EVENT_DRAG_START, e => e.preventDefault())\n })\n\n if (this._pointerEvent) {\n EventHandler.on(this._element, EVENT_POINTERDOWN, event => start(event))\n EventHandler.on(this._element, EVENT_POINTERUP, event => end(event))\n\n this._element.classList.add(CLASS_NAME_POINTER_EVENT)\n } else {\n EventHandler.on(this._element, EVENT_TOUCHSTART, event => start(event))\n EventHandler.on(this._element, EVENT_TOUCHMOVE, event => move(event))\n EventHandler.on(this._element, EVENT_TOUCHEND, event => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.key) {\n case ARROW_LEFT_KEY:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEY:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode ?\n SelectorEngine.find(SELECTOR_ITEM, element.parentNode) :\n []\n\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === DIRECTION_NEXT\n const isPrevDirection = direction === DIRECTION_PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = (isPrevDirection && activeIndex === 0) ||\n (isNextDirection && activeIndex === lastItemIndex)\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === DIRECTION_PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1 ?\n this._items[this._items.length - 1] :\n this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element))\n\n return EventHandler.trigger(this._element, EVENT_SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n const indicators = SelectorEngine.find(SELECTOR_ACTIVE, this._indicatorsElement)\n\n for (let i = 0; i < indicators.length; i++) {\n indicators[i].classList.remove(CLASS_NAME_ACTIVE)\n }\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n nextIndicator.classList.add(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n _updateInterval() {\n const element = this._activeElement || SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n\n if (!element) {\n return\n }\n\n const elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10)\n\n if (elementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval\n this._config.interval = elementInterval\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval\n }\n }\n\n _slide(direction, element) {\n const activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || (activeElement && this._getItemByDirection(direction, activeElement))\n\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === DIRECTION_NEXT) {\n directionalClassName = CLASS_NAME_START\n orderClassName = CLASS_NAME_NEXT\n eventDirectionName = DIRECTION_LEFT\n } else {\n directionalClassName = CLASS_NAME_END\n orderClassName = CLASS_NAME_PREV\n eventDirectionName = DIRECTION_RIGHT\n }\n\n if (nextElement && nextElement.classList.contains(CLASS_NAME_ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.defaultPrevented) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n this._activeElement = nextElement\n\n if (this._element.classList.contains(CLASS_NAME_SLIDE)) {\n nextElement.classList.add(orderClassName)\n\n reflow(nextElement)\n\n activeElement.classList.add(directionalClassName)\n nextElement.classList.add(directionalClassName)\n\n const transitionDuration = getTransitionDurationFromElement(activeElement)\n\n EventHandler.one(activeElement, TRANSITION_END, () => {\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 setTimeout(() => {\n EventHandler.trigger(this._element, EVENT_SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }, 0)\n })\n\n emulateTransitionEnd(activeElement, transitionDuration)\n } else {\n activeElement.classList.remove(CLASS_NAME_ACTIVE)\n nextElement.classList.add(CLASS_NAME_ACTIVE)\n\n this._isSliding = false\n EventHandler.trigger(this._element, EVENT_SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static carouselInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n let _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element)\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(element, _config)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n\n data[action]()\n } else if (_config.interval && _config.ride) {\n data.pause()\n data.cycle()\n }\n }\n\n static jQueryInterface(config) {\n return this.each(function () {\n Carousel.carouselInterface(this, config)\n })\n }\n\n static dataApiClickHandler(event) {\n const target = getElementFromSelector(this)\n\n if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {\n return\n }\n\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n const slideIndex = this.getAttribute('data-bs-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel.carouselInterface(target, config)\n\n if (slideIndex) {\n Data.getData(target, DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, Carousel.dataApiClickHandler)\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE)\n\n for (let i = 0, len = carousels.length; i < len; i++) {\n Carousel.carouselInterface(carousels[i], Data.getData(carousels[i], DATA_KEY))\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Carousel to jQuery only if jQuery is present\n */\n\nonDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Carousel.jQueryInterface\n $.fn[NAME].Constructor = Carousel\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel.jQueryInterface\n }\n }\n})\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n onDOMContentLoaded,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isElement,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'collapse'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n toggle: true,\n parent: ''\n}\n\nconst DefaultType = {\n toggle: 'boolean',\n parent: '(string|element)'\n}\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'\n\nconst WIDTH = 'width'\nconst HEIGHT = 'height'\n\nconst SELECTOR_ACTIVES = '.show, .collapsing'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"collapse\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._isTransitioning = false\n this._config = this._getConfig(config)\n this._triggerArray = SelectorEngine.find(\n `${SELECTOR_DATA_TOGGLE}[href=\"#${element.id}\"],` +\n `${SELECTOR_DATA_TOGGLE}[data-bs-target=\"#${element.id}\"]`\n )\n\n const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\n\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = getSelectorFromElement(elem)\n const filterElement = SelectorEngine.find(selector)\n .filter(foundElem => foundElem === element)\n\n if (selector !== null && filterElement.length) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n toggle() {\n if (this._element.classList.contains(CLASS_NAME_SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning || this._element.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = SelectorEngine.find(SELECTOR_ACTIVES, this._parent)\n .filter(elem => {\n if (typeof this._config.parent === 'string') {\n return elem.getAttribute('data-bs-parent') === this._config.parent\n }\n\n return elem.classList.contains(CLASS_NAME_COLLAPSE)\n })\n\n if (actives.length === 0) {\n actives = null\n }\n }\n\n const container = SelectorEngine.findOne(this._selector)\n if (actives) {\n const tempActiveData = actives.find(elem => container !== elem)\n activesData = tempActiveData ? Data.getData(tempActiveData, DATA_KEY) : null\n\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = EventHandler.trigger(this._element, EVENT_SHOW)\n if (startEvent.defaultPrevented) {\n return\n }\n\n if (actives) {\n actives.forEach(elemActive => {\n if (container !== elemActive) {\n Collapse.collapseInterface(elemActive, 'hide')\n }\n\n if (!activesData) {\n Data.setData(elemActive, DATA_KEY, null)\n }\n })\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 if (this._triggerArray.length) {\n this._triggerArray.forEach(element => {\n element.classList.remove(CLASS_NAME_COLLAPSED)\n element.setAttribute('aria-expanded', true)\n })\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\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 this.setTransitioning(false)\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 const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n\n emulateTransitionEnd(this._element, transitionDuration)\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning || !this._element.classList.contains(CLASS_NAME_SHOW)) {\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 const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const elem = getElementFromSelector(trigger)\n\n if (elem && !elem.classList.contains(CLASS_NAME_SHOW)) {\n trigger.classList.add(CLASS_NAME_COLLAPSED)\n trigger.setAttribute('aria-expanded', false)\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(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 const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n super.dispose()\n this._config = null\n this._parent = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n return this._element.classList.contains(WIDTH) ? WIDTH : HEIGHT\n }\n\n _getParent() {\n let { parent } = this._config\n\n if (isElement(parent)) {\n // it's a jQuery object\n if (typeof parent.jquery !== 'undefined' || typeof parent[0] !== 'undefined') {\n parent = parent[0]\n }\n } else {\n parent = SelectorEngine.findOne(parent)\n }\n\n const selector = `${SELECTOR_DATA_TOGGLE}[data-bs-parent=\"${parent}\"]`\n\n SelectorEngine.find(selector, parent)\n .forEach(element => {\n const selected = getElementFromSelector(element)\n\n this._addAriaAndCollapsedClass(\n selected,\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n if (!element || !triggerArray.length) {\n return\n }\n\n const isOpen = element.classList.contains(CLASS_NAME_SHOW)\n\n triggerArray.forEach(elem => {\n if (isOpen) {\n elem.classList.remove(CLASS_NAME_COLLAPSED)\n } else {\n elem.classList.add(CLASS_NAME_COLLAPSED)\n }\n\n elem.setAttribute('aria-expanded', isOpen)\n })\n }\n\n // Static\n\n static collapseInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element),\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(element, _config)\n }\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 static jQueryInterface(config) {\n return this.each(function () {\n Collapse.collapseInterface(this, config)\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\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') {\n event.preventDefault()\n }\n\n const triggerData = Manipulator.getDataAttributes(this)\n const selector = getSelectorFromElement(this)\n const selectorElements = SelectorEngine.find(selector)\n\n selectorElements.forEach(element => {\n const data = Data.getData(element, DATA_KEY)\n let config\n if (data) {\n // update parent attribute\n if (data._parent === null && typeof triggerData.parent === 'string') {\n data._config.parent = triggerData.parent\n data._parent = data._getParent()\n }\n\n config = 'toggle'\n } else {\n config = triggerData\n }\n\n Collapse.collapseInterface(element, config)\n })\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Collapse to jQuery only if jQuery is present\n */\n\nonDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Collapse.jQueryInterface\n $.fn[NAME].Constructor = Collapse\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse.jQueryInterface\n }\n }\n})\n\nexport default Collapse\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n onDOMContentLoaded,\n getElementFromSelector,\n isElement,\n isVisible,\n isRTL,\n noop,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\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 SPACE_KEY = 'Space'\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 REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEY}|${ARROW_DOWN_KEY}|${ESCAPE_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 = `click${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_DISABLED = 'disabled'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_DROPUP = 'dropup'\nconst CLASS_NAME_DROPEND = 'dropend'\nconst CLASS_NAME_DROPSTART = 'dropstart'\nconst CLASS_NAME_MENUEND = 'dropdown-menu-end'\nconst CLASS_NAME_NAVBAR = 'navbar'\nconst CLASS_NAME_POSITION_STATIC = 'position-static'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"dropdown\"]'\nconst SELECTOR_FORM_CHILD = '.dropdown form'\nconst SELECTOR_MENU = '.dropdown-menu'\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'\n\nconst Default = {\n offset: 0,\n flip: true,\n boundary: 'scrollParent',\n reference: 'toggle',\n display: 'dynamic',\n popperConfig: null\n}\n\nconst DefaultType = {\n offset: '(number|string|function)',\n flip: 'boolean',\n boundary: '(string|element)',\n reference: '(string|element)',\n display: 'string',\n popperConfig: '(null|object)'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED)) {\n return\n }\n\n const isActive = this._element.classList.contains(CLASS_NAME_SHOW)\n\n Dropdown.clearMenus()\n\n if (isActive) {\n return\n }\n\n this.show()\n }\n\n show() {\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || this._menu.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n const parent = Dropdown.getParentFromElement(this._element)\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 // Totally disable Popper for Dropdowns in Navbar\n if (!this._inNavbar) {\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 = parent\n } else if (isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n parent.classList.add(CLASS_NAME_POSITION_STATIC)\n }\n\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\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 !parent.closest(SELECTOR_NAVBAR_NAV)) {\n [].concat(...document.body.children)\n .forEach(elem => EventHandler.on(elem, 'mouseover', null, noop()))\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n this._menu.classList.toggle(CLASS_NAME_SHOW)\n this._element.classList.toggle(CLASS_NAME_SHOW)\n EventHandler.trigger(parent, EVENT_SHOWN, relatedTarget)\n }\n\n hide() {\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || !this._menu.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n const parent = Dropdown.getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const hideEvent = EventHandler.trigger(parent, EVENT_HIDE, relatedTarget)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n if (this._popper) {\n this._popper.destroy()\n }\n\n this._menu.classList.toggle(CLASS_NAME_SHOW)\n this._element.classList.toggle(CLASS_NAME_SHOW)\n EventHandler.trigger(parent, EVENT_HIDDEN, relatedTarget)\n }\n\n dispose() {\n super.dispose()\n EventHandler.off(this._element, EVENT_KEY)\n this._menu = null\n if (this._popper) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n EventHandler.on(this._element, EVENT_CLICK, event => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...Manipulator.getDataAttributes(this._element),\n ...config\n }\n\n typeCheckConfig(NAME, config, this.constructor.DefaultType)\n\n return config\n }\n\n _getMenuElement() {\n return SelectorEngine.next(this._element, SELECTOR_MENU)[0]\n }\n\n _getPlacement() {\n const parentDropdown = this._element.parentNode\n let placement = PLACEMENT_BOTTOM\n\n // Handle dropup\n if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) {\n placement = this._menu.classList.contains(CLASS_NAME_MENUEND) ?\n PLACEMENT_TOPEND :\n PLACEMENT_TOP\n } else if (parentDropdown.classList.contains(CLASS_NAME_DROPEND)) {\n placement = PLACEMENT_RIGHT\n } else if (parentDropdown.classList.contains(CLASS_NAME_DROPSTART)) {\n placement = PLACEMENT_LEFT\n } else if (this._menu.classList.contains(CLASS_NAME_MENUEND)) {\n placement = PLACEMENT_BOTTOMEND\n }\n\n return placement\n }\n\n _detectNavbar() {\n return Boolean(this._element.closest(`.${CLASS_NAME_NAVBAR}`))\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this._config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...(this._config.offset(data.offsets, this._element) || {})\n }\n\n return data\n }\n } else {\n offset.offset = this._config.offset\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: this._getOffset(),\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n\n return {\n ...popperConfig,\n ...this._config.popperConfig\n }\n }\n\n // Static\n\n static dropdownInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(element, _config)\n }\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 static jQueryInterface(config) {\n return this.each(function () {\n Dropdown.dropdownInterface(this, config)\n })\n }\n\n static clearMenus(event) {\n if (event && (event.button === RIGHT_MOUSE_BUTTON || (event.type === 'keyup' && event.key !== TAB_KEY))) {\n return\n }\n\n const toggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\n\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown.getParentFromElement(toggles[i])\n const context = Data.getData(toggles[i], DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!toggles[i].classList.contains(CLASS_NAME_SHOW)) {\n continue\n }\n\n if (event && ((event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName)) ||\n (event.type === 'keyup' && event.key === TAB_KEY)) &&\n dropdownMenu.contains(event.target)) {\n continue\n }\n\n const hideEvent = EventHandler.trigger(parent, EVENT_HIDE, relatedTarget)\n if (hideEvent.defaultPrevented) {\n continue\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 [].concat(...document.body.children)\n .forEach(elem => EventHandler.off(elem, 'mouseover', null, noop()))\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n if (context._popper) {\n context._popper.destroy()\n }\n\n dropdownMenu.classList.remove(CLASS_NAME_SHOW)\n toggles[i].classList.remove(CLASS_NAME_SHOW)\n EventHandler.trigger(parent, EVENT_HIDDEN, relatedTarget)\n }\n }\n\n static getParentFromElement(element) {\n return getElementFromSelector(element) || element.parentNode\n }\n\n static dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ?\n event.key === SPACE_KEY || (event.key !== ESCAPE_KEY &&\n ((event.key !== ARROW_DOWN_KEY && event.key !== ARROW_UP_KEY) ||\n event.target.closest(SELECTOR_MENU))) :\n !REGEXP_KEYDOWN.test(event.key)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || this.classList.contains(CLASS_NAME_DISABLED)) {\n return\n }\n\n const parent = Dropdown.getParentFromElement(this)\n const isActive = this.classList.contains(CLASS_NAME_SHOW)\n\n if (event.key === ESCAPE_KEY) {\n const button = this.matches(SELECTOR_DATA_TOGGLE) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE)[0]\n button.focus()\n Dropdown.clearMenus()\n return\n }\n\n if (!isActive || event.key === SPACE_KEY) {\n Dropdown.clearMenus()\n return\n }\n\n const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, parent).filter(isVisible)\n\n if (!items.length) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n // Up\n if (event.key === ARROW_UP_KEY && index > 0) {\n index--\n }\n\n // Down\n if (event.key === ARROW_DOWN_KEY && index < items.length - 1) {\n index++\n }\n\n // index is -1 if the first keydown is an ArrowUp\n index = index === -1 ? 0 : index\n\n items[index].focus()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\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 event.stopPropagation()\n Dropdown.dropdownInterface(this, 'toggle')\n})\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_FORM_CHILD, e => e.stopPropagation())\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Dropdown to jQuery only if jQuery is present\n */\n\nonDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Dropdown.jQueryInterface\n $.fn[NAME].Constructor = Dropdown\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown.jQueryInterface\n }\n }\n})\n\nexport default Dropdown\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n onDOMContentLoaded,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isVisible,\n isRTL,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\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 Default = {\n backdrop: true,\n keyboard: true,\n focus: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean'\n}\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_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${EVENT_KEY}`\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEUP_DISMISS = `mouseup.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure'\nconst CLASS_NAME_BACKDROP = 'modal-backdrop'\nconst CLASS_NAME_OPEN = 'modal-open'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_STATIC = 'modal-static'\n\nconst SELECTOR_DIALOG = '.modal-dialog'\nconst SELECTOR_MODAL_BODY = '.modal-body'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"modal\"]'\nconst SELECTOR_DATA_DISMISS = '[data-bs-dismiss=\"modal\"]'\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'\nconst SELECTOR_STICKY_CONTENT = '.sticky-top'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._config = this._getConfig(config)\n this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, element)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollbarWidth = 0\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n if (this._element.classList.contains(CLASS_NAME_FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, {\n relatedTarget\n })\n\n if (this._isShown || showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, event => this.hide(event))\n\n EventHandler.on(this._dialog, EVENT_MOUSEDOWN_DISMISS, () => {\n EventHandler.one(this._element, EVENT_MOUSEUP_DISMISS, event => {\n if (event.target === this._element) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\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 const transition = this._element.classList.contains(CLASS_NAME_FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.off(document, EVENT_FOCUSIN)\n\n this._element.classList.remove(CLASS_NAME_SHOW)\n\n EventHandler.off(this._element, EVENT_CLICK_DISMISS)\n EventHandler.off(this._dialog, EVENT_MOUSEDOWN_DISMISS)\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, event => this._hideModal(event))\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach(htmlElement => EventHandler.off(htmlElement, EVENT_KEY))\n\n super.dispose()\n\n /**\n * `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `EVENT_CLICK_DATA_API` event that should remain\n */\n EventHandler.off(document, EVENT_FOCUSIN)\n\n this._config = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._isTransitioning = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const transition = this._element.classList.contains(CLASS_NAME_FADE)\n const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog)\n\n if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(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 if (modalBody) {\n modalBody.scrollTop = 0\n }\n\n if (transition) {\n reflow(this._element)\n }\n\n this._element.classList.add(CLASS_NAME_SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n\n this._isTransitioning = false\n EventHandler.trigger(this._element, EVENT_SHOWN, {\n relatedTarget\n })\n }\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._dialog)\n\n EventHandler.one(this._dialog, TRANSITION_END, transitionComplete)\n emulateTransitionEnd(this._dialog, transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n EventHandler.off(document, EVENT_FOCUSIN) // guard against infinite focus loop\n EventHandler.on(document, EVENT_FOCUSIN, event => {\n if (document !== event.target &&\n this._element !== event.target &&\n !this._element.contains(event.target)) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown) {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {\n if (this._config.keyboard && event.key === ESCAPE_KEY) {\n event.preventDefault()\n this.hide()\n } else if (!this._config.keyboard && event.key === ESCAPE_KEY) {\n this._triggerBackdropTransition()\n }\n })\n } else {\n EventHandler.off(this._element, EVENT_KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n EventHandler.on(window, EVENT_RESIZE, () => this._adjustDialog())\n } else {\n EventHandler.off(window, EVENT_RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._element.removeAttribute('role')\n this._isTransitioning = false\n this._showBackdrop(() => {\n document.body.classList.remove(CLASS_NAME_OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n })\n }\n\n _removeBackdrop() {\n this._backdrop.parentNode.removeChild(this._backdrop)\n this._backdrop = null\n }\n\n _showBackdrop(callback) {\n const animate = this._element.classList.contains(CLASS_NAME_FADE) ?\n CLASS_NAME_FADE :\n ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = CLASS_NAME_BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n document.body.appendChild(this._backdrop)\n\n EventHandler.on(this._element, EVENT_CLICK_DISMISS, event => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n\n if (event.target !== event.currentTarget) {\n return\n }\n\n if (this._config.backdrop === 'static') {\n this._triggerBackdropTransition()\n } else {\n this.hide()\n }\n })\n\n if (animate) {\n reflow(this._backdrop)\n }\n\n this._backdrop.classList.add(CLASS_NAME_SHOW)\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n\n EventHandler.one(this._backdrop, TRANSITION_END, callback)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n this._backdrop.classList.remove(CLASS_NAME_SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n callback()\n }\n\n if (this._element.classList.contains(CLASS_NAME_FADE)) {\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n EventHandler.one(this._backdrop, TRANSITION_END, callbackRemove)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else {\n callback()\n }\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\n if (!isModalOverflowing) {\n this._element.style.overflowY = 'hidden'\n }\n\n this._element.classList.add(CLASS_NAME_STATIC)\n const modalTransitionDuration = getTransitionDurationFromElement(this._dialog)\n EventHandler.off(this._element, TRANSITION_END)\n EventHandler.one(this._element, TRANSITION_END, () => {\n this._element.classList.remove(CLASS_NAME_STATIC)\n if (!isModalOverflowing) {\n EventHandler.one(this._element, TRANSITION_END, () => {\n this._element.style.overflowY = ''\n })\n emulateTransitionEnd(this._element, modalTransitionDuration)\n }\n })\n emulateTransitionEnd(this._element, modalTransitionDuration)\n this._element.focus()\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing =\n this._element.scrollHeight > document.documentElement.clientHeight\n\n if ((!this._isBodyOverflowing && isModalOverflowing && !isRTL) || (this._isBodyOverflowing && !isModalOverflowing && isRTL)) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if ((this._isBodyOverflowing && !isModalOverflowing && !isRTL) || (!this._isBodyOverflowing && isModalOverflowing && isRTL)) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n // Adjust fixed content padding\n SelectorEngine.find(SELECTOR_FIXED_CONTENT)\n .forEach(element => {\n const actualPadding = element.style.paddingRight\n const calculatedPadding = window.getComputedStyle(element)['padding-right']\n Manipulator.setDataAttribute(element, 'padding-right', actualPadding)\n element.style.paddingRight = `${Number.parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n })\n\n // Adjust sticky content margin\n SelectorEngine.find(SELECTOR_STICKY_CONTENT)\n .forEach(element => {\n const actualMargin = element.style.marginRight\n const calculatedMargin = window.getComputedStyle(element)['margin-right']\n Manipulator.setDataAttribute(element, 'margin-right', actualMargin)\n element.style.marginRight = `${Number.parseFloat(calculatedMargin) - this._scrollbarWidth}px`\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = window.getComputedStyle(document.body)['padding-right']\n\n Manipulator.setDataAttribute(document.body, 'padding-right', actualPadding)\n document.body.style.paddingRight = `${Number.parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n }\n\n document.body.classList.add(CLASS_NAME_OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n SelectorEngine.find(SELECTOR_FIXED_CONTENT)\n .forEach(element => {\n const padding = Manipulator.getDataAttribute(element, 'padding-right')\n if (typeof padding !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'padding-right')\n element.style.paddingRight = padding\n }\n })\n\n // Restore sticky content and navbar-toggler margin\n SelectorEngine.find(`${SELECTOR_STICKY_CONTENT}`)\n .forEach(element => {\n const margin = Manipulator.getDataAttribute(element, 'margin-right')\n if (typeof margin !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'margin-right')\n element.style.marginRight = margin\n }\n })\n\n // Restore body padding\n const padding = Manipulator.getDataAttribute(document.body, 'padding-right')\n if (typeof padding === 'undefined') {\n document.body.style.paddingRight = ''\n } else {\n Manipulator.removeDataAttribute(document.body, 'padding-right')\n document.body.style.paddingRight = padding\n }\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = CLASS_NAME_SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(this),\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (!data) {\n data = new Modal(this, _config)\n }\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](relatedTarget)\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n const target = getElementFromSelector(this)\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\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 let data = Data.getData(target, DATA_KEY)\n if (!data) {\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n\n data = new Modal(target, config)\n }\n\n data.show(this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Modal to jQuery only if jQuery is present\n */\n\nonDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Modal.jQueryInterface\n $.fn[NAME].Constructor = Modal\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal.jQueryInterface\n }\n }\n})\n\nexport default Modal\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst uriAttrs = new Set([\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n])\n\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[\\d+/a-z]+=*$/i\n\nconst allowedAttribute = (attr, allowedAttributeList) => {\n const attrName = attr.nodeName.toLowerCase()\n\n if (allowedAttributeList.includes(attrName)) {\n if (uriAttrs.has(attrName)) {\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, len = regExp.length; i < len; i++) {\n if (attrName.match(regExp[i])) {\n return true\n }\n }\n\n return false\n}\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\nexport function sanitizeHtml(unsafeHtml, allowList, sanitizeFn) {\n if (!unsafeHtml.length) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const allowlistKeys = Object.keys(allowList)\n const elements = [].concat(...createdDocument.body.querySelectorAll('*'))\n\n for (let i = 0, len = elements.length; i < len; i++) {\n const el = elements[i]\n const elName = el.nodeName.toLowerCase()\n\n if (!allowlistKeys.includes(elName)) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n const attributeList = [].concat(...el.attributes)\n const allowedAttributes = [].concat(allowList['*'] || [], allowList[elName] || [])\n\n attributeList.forEach(attr => {\n if (!allowedAttribute(attr, allowedAttributes)) {\n el.removeAttribute(attr.nodeName)\n }\n })\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n onDOMContentLoaded,\n TRANSITION_END,\n emulateTransitionEnd,\n findShadowRoot,\n getTransitionDurationFromElement,\n getUID,\n isElement,\n isRTL,\n noop,\n typeCheckConfig\n} from './util/index'\nimport {\n DefaultAllowlist,\n sanitizeHtml\n} from './util/sanitizer'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tooltip'\nconst DATA_KEY = 'bs.tooltip'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-tooltip'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\nconst DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn'])\n\nconst DefaultType = {\n animation: 'boolean',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string',\n delay: '(number|object)',\n html: 'boolean',\n selector: '(string|boolean)',\n placement: '(string|function)',\n offset: '(number|string|function)',\n container: '(string|element|boolean)',\n fallbackPlacement: '(string|array)',\n boundary: '(string|element)',\n customClass: '(string|function)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n allowList: 'object',\n popperConfig: '(null|object)'\n}\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 animation: true,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"tooltip-arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div>' +\n '</div>',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n selector: false,\n placement: 'top',\n offset: 0,\n container: false,\n fallbackPlacement: 'flip',\n boundary: 'scrollParent',\n customClass: '',\n sanitize: true,\n sanitizeFn: null,\n allowList: DefaultAllowlist,\n popperConfig: null\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_MODAL = 'modal'\nconst CLASS_NAME_SHOW = 'show'\n\nconst HOVER_STATE_SHOW = 'show'\nconst HOVER_STATE_OUT = 'out'\n\nconst SELECTOR_TOOLTIP_INNER = '.tooltip-inner'\n\nconst TRIGGER_HOVER = 'hover'\nconst TRIGGER_FOCUS = 'focus'\nconst TRIGGER_CLICK = 'click'\nconst TRIGGER_MANUAL = 'manual'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\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)\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(event.delegateTarget, this._getDelegateConfig())\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if (this.getTipElement().classList.contains(CLASS_NAME_SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n EventHandler.off(this._element, this.constructor.EVENT_KEY)\n EventHandler.off(this._element.closest(`.${CLASS_NAME_MODAL}`), 'hide.bs.modal', this._hideModalHandler)\n\n if (this.tip) {\n this.tip.parentNode.removeChild(this.tip)\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.config = null\n this.tip = null\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 const showEvent = EventHandler.trigger(this._element, this.constructor.Event.SHOW)\n const shadowRoot = findShadowRoot(this._element)\n const isInTheDom = shadowRoot === null ?\n this._element.ownerDocument.documentElement.contains(this._element) :\n shadowRoot.contains(this._element)\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this._element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n tip.classList.add(CLASS_NAME_FADE)\n }\n\n const placement = typeof this.config.placement === 'function' ?\n this.config.placement.call(this, tip, this._element) :\n this.config.placement\n\n const attachment = this._getAttachment(placement)\n this._addAttachmentClass(attachment)\n\n const container = this._getContainer()\n Data.setData(tip, this.constructor.DATA_KEY, this)\n\n if (!this._element.ownerDocument.documentElement.contains(this.tip)) {\n container.appendChild(tip)\n }\n\n EventHandler.trigger(this._element, this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this._element, tip, this._getPopperConfig(attachment))\n\n tip.classList.add(CLASS_NAME_SHOW)\n\n const customClass = typeof this.config.customClass === 'function' ? this.config.customClass() : this.config.customClass\n if (customClass) {\n tip.classList.add(...customClass.split(' '))\n }\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 [].concat(...document.body.children).forEach(element => {\n EventHandler.on(element, 'mouseover', noop())\n })\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n EventHandler.trigger(this._element, this.constructor.Event.SHOWN)\n\n if (prevHoverState === HOVER_STATE_OUT) {\n this._leave(null, this)\n }\n }\n\n if (this.tip.classList.contains(CLASS_NAME_FADE)) {\n const transitionDuration = getTransitionDurationFromElement(this.tip)\n EventHandler.one(this.tip, TRANSITION_END, complete)\n emulateTransitionEnd(this.tip, transitionDuration)\n } else {\n complete()\n }\n }\n }\n\n hide() {\n if (!this._popper) {\n return\n }\n\n const tip = this.getTipElement()\n const complete = () => {\n if (this._hoverState !== HOVER_STATE_SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this._element.removeAttribute('aria-describedby')\n EventHandler.trigger(this._element, this.constructor.Event.HIDDEN)\n this._popper.destroy()\n }\n\n const hideEvent = EventHandler.trigger(this._element, this.constructor.Event.HIDE)\n if (hideEvent.defaultPrevented) {\n return\n }\n\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 [].concat(...document.body.children)\n .forEach(element => EventHandler.off(element, 'mouseover', noop))\n }\n\n this._activeTrigger[TRIGGER_CLICK] = false\n this._activeTrigger[TRIGGER_FOCUS] = false\n this._activeTrigger[TRIGGER_HOVER] = false\n\n if (this.tip.classList.contains(CLASS_NAME_FADE)) {\n const transitionDuration = getTransitionDurationFromElement(tip)\n\n EventHandler.one(tip, TRANSITION_END, complete)\n emulateTransitionEnd(tip, transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n getTipElement() {\n if (this.tip) {\n return this.tip\n }\n\n const element = document.createElement('div')\n element.innerHTML = this.config.template\n\n this.tip = element.children[0]\n return this.tip\n }\n\n setContent() {\n const tip = this.getTipElement()\n this.setElementContent(SelectorEngine.findOne(SELECTOR_TOOLTIP_INNER, tip), this.getTitle())\n tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW)\n }\n\n setElementContent(element, content) {\n if (element === null) {\n return\n }\n\n if (typeof content === 'object' && isElement(content)) {\n if (content.jquery) {\n content = content[0]\n }\n\n // content is a DOM node or a jQuery\n if (this.config.html) {\n if (content.parentNode !== element) {\n element.innerHTML = ''\n element.appendChild(content)\n }\n } else {\n element.textContent = content.textContent\n }\n\n return\n }\n\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.allowList, this.config.sanitizeFn)\n }\n\n element.innerHTML = content\n } else {\n element.textContent = content\n }\n }\n\n getTitle() {\n let title = this._element.getAttribute('data-bs-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function' ?\n this.config.title.call(this._element) :\n this.config.title\n }\n\n return title\n }\n\n updateAttachment(attachment) {\n if (attachment === 'right') {\n return 'end'\n }\n\n if (attachment === 'left') {\n return 'start'\n }\n\n return attachment\n }\n\n // Private\n\n _getPopperConfig(attachment) {\n const defaultBsConfig = {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: `.${this.constructor.NAME}-arrow`\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: data => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: data => this._handlePopperPlacementChange(data)\n }\n\n return {\n ...defaultBsConfig,\n ...this.config.popperConfig\n }\n }\n\n _addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${this.updateAttachment(attachment)}`)\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this.config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...(this.config.offset(data.offsets, this._element) || {})\n }\n\n return data\n }\n } else {\n offset.offset = this.config.offset\n }\n\n return offset\n }\n\n _getContainer() {\n if (this.config.container === false) {\n return document.body\n }\n\n if (isElement(this.config.container)) {\n return this.config.container\n }\n\n return SelectorEngine.findOne(this.config.container)\n }\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach(trigger => {\n if (trigger === 'click') {\n EventHandler.on(this._element, this.constructor.Event.CLICK, this.config.selector, event => this.toggle(event)\n )\n } else if (trigger !== TRIGGER_MANUAL) {\n const eventIn = trigger === TRIGGER_HOVER ?\n this.constructor.Event.MOUSEENTER :\n this.constructor.Event.FOCUSIN\n const eventOut = trigger === TRIGGER_HOVER ?\n this.constructor.Event.MOUSELEAVE :\n this.constructor.Event.FOCUSOUT\n\n EventHandler.on(this._element, eventIn, this.config.selector, event => this._enter(event))\n EventHandler.on(this._element, eventOut, this.config.selector, event => this._leave(event))\n }\n })\n\n this._hideModalHandler = () => {\n if (this._element) {\n this.hide()\n }\n }\n\n EventHandler.on(this._element.closest(`.${CLASS_NAME_MODAL}`), 'hide.bs.modal', this._hideModalHandler)\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const title = this._element.getAttribute('title')\n const originalTitleType = typeof this._element.getAttribute('data-bs-original-title')\n\n if (title || originalTitleType !== 'string') {\n this._element.setAttribute('data-bs-original-title', title || '')\n if (title && !this._element.getAttribute('aria-label') && !this._element.textContent) {\n this._element.setAttribute('aria-label', title)\n }\n\n this._element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER\n ] = true\n }\n\n if (context.getTipElement().classList.contains(CLASS_NAME_SHOW) || context._hoverState === HOVER_STATE_SHOW) {\n context._hoverState = HOVER_STATE_SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this._element)\n\n Object.keys(dataAttributes).forEach(dataAttr => {\n if (DISALLOWED_ATTRIBUTES.has(dataAttr)) {\n delete dataAttributes[dataAttr]\n }\n })\n\n if (config && typeof config.container === 'object' && config.container.jquery) {\n config.container = config.container[0]\n }\n\n config = {\n ...this.constructor.Default,\n ...dataAttributes,\n ...(typeof config === 'object' && config ? config : {})\n }\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 typeCheckConfig(NAME, config, this.constructor.DefaultType)\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.allowList, config.sanitizeFn)\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n _handlePopperPlacementChange(popperData) {\n this.tip = popperData.instance.popper\n this._cleanTipClass()\n this._addAttachmentClass(this._getAttachment(popperData.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n\n tip.classList.remove(CLASS_NAME_FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n }\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 * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Tooltip to jQuery only if jQuery is present\n */\n\nonDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tooltip.jQueryInterface\n $.fn[NAME].Constructor = Tooltip\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip.jQueryInterface\n }\n }\n})\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getjQuery, onDOMContentLoaded } from './util/index'\nimport Data from './dom/data'\nimport SelectorEngine from './dom/selector-engine'\nimport Tooltip from './tooltip'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'popover'\nconst DATA_KEY = 'bs.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-popover'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst Default = {\n ...Tooltip.Default,\n placement: 'right',\n trigger: 'click',\n content: '',\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}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content: '(string|element|function)'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_TITLE = '.popover-header'\nconst SELECTOR_CONTENT = '.popover-body'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Popover extends Tooltip {\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n setContent() {\n const tip = this.getTipElement()\n\n // we use append for html objects to maintain js events\n this.setElementContent(SelectorEngine.findOne(SELECTOR_TITLE, tip), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this._element)\n }\n\n this.setElementContent(SelectorEngine.findOne(SELECTOR_CONTENT, tip), content)\n\n tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW)\n }\n\n // Private\n\n _addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${this.updateAttachment(attachment)}`)\n }\n\n _getContent() {\n return this._element.getAttribute('data-bs-content') || this.config.content\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n Data.setData(this, DATA_KEY, data)\n }\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 * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Popover to jQuery only if jQuery is present\n */\n\nonDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Popover.jQueryInterface\n $.fn[NAME].Constructor = Popover\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover.jQueryInterface\n }\n }\n})\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n onDOMContentLoaded,\n getSelectorFromElement,\n getUID,\n isElement,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollspy'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n offset: 10,\n method: 'auto',\n target: ''\n}\n\nconst DefaultType = {\n offset: 'number',\n method: 'string',\n target: '(string|element)'\n}\n\nconst EVENT_ACTIVATE = `activate${EVENT_KEY}`\nconst EVENT_SCROLL = `scroll${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_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_DROPDOWN = '.dropdown'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\n\nconst METHOD_OFFSET = 'offset'\nconst METHOD_POSITION = 'position'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy extends BaseComponent {\n constructor(element, config) {\n super(element)\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${SELECTOR_NAV_LINKS}, ${this._config.target} ${SELECTOR_LIST_ITEMS}, ${this._config.target} .${CLASS_NAME_DROPDOWN_ITEM}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n EventHandler.on(this._scrollElement, EVENT_SCROLL, event => this._process(event))\n\n this.refresh()\n this._process()\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window ?\n METHOD_OFFSET :\n METHOD_POSITION\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod :\n this._config.method\n\n const offsetBase = offsetMethod === METHOD_POSITION ?\n this._getScrollTop() :\n 0\n\n this._offsets = []\n this._targets = []\n this._scrollHeight = this._getScrollHeight()\n\n const targets = SelectorEngine.find(this._selector)\n\n targets.map(element => {\n const targetSelector = getSelectorFromElement(element)\n const target = targetSelector ? SelectorEngine.findOne(targetSelector) : null\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n return [\n Manipulator[offsetMethod](target).top + offsetBase,\n targetSelector\n ]\n }\n }\n\n return null\n })\n .filter(item => item)\n .sort((a, b) => a[0] - b[0])\n .forEach(item => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n super.dispose()\n EventHandler.off(this._scrollElement, EVENT_KEY)\n\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (typeof config.target !== 'string' && isElement(config.target)) {\n let { id } = config.target\n if (!id) {\n id = getUID(NAME)\n config.target.id = id\n }\n\n config.target = `#${id}`\n }\n\n typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window ?\n this._scrollElement.pageYOffset :\n this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window ?\n window.innerHeight :\n this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n for (let i = this._offsets.length; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector.split(',')\n .map(selector => `${selector}[data-bs-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const link = SelectorEngine.findOne(queries.join(','))\n\n if (link.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) {\n SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE, link.closest(SELECTOR_DROPDOWN))\n .classList.add(CLASS_NAME_ACTIVE)\n\n link.classList.add(CLASS_NAME_ACTIVE)\n } else {\n // Set triggered link as active\n link.classList.add(CLASS_NAME_ACTIVE)\n\n SelectorEngine.parents(link, SELECTOR_NAV_LIST_GROUP)\n .forEach(listGroup => {\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 SelectorEngine.prev(listGroup, `${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`)\n .forEach(item => item.classList.add(CLASS_NAME_ACTIVE))\n\n // Handle special case when .nav-link is inside .nav-item\n SelectorEngine.prev(listGroup, SELECTOR_NAV_ITEMS)\n .forEach(navItem => {\n SelectorEngine.children(navItem, SELECTOR_NAV_LINKS)\n .forEach(item => item.classList.add(CLASS_NAME_ACTIVE))\n })\n })\n }\n\n EventHandler.trigger(this._scrollElement, EVENT_ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n SelectorEngine.find(this._selector)\n .filter(node => node.classList.contains(CLASS_NAME_ACTIVE))\n .forEach(node => node.classList.remove(CLASS_NAME_ACTIVE))\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n }\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 * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n SelectorEngine.find(SELECTOR_DATA_SPY)\n .forEach(spy => new ScrollSpy(spy, Manipulator.getDataAttributes(spy)))\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .ScrollSpy to jQuery only if jQuery is present\n */\n\nonDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = ScrollSpy.jQueryInterface\n $.fn[NAME].Constructor = ScrollSpy\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy.jQueryInterface\n }\n }\n})\n\nexport default ScrollSpy\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n onDOMContentLoaded,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\n reflow\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tab'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\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}`\n\nconst CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_UL = ':scope > li > .active'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"tab\"], [data-bs-toggle=\"pill\"], [data-bs-toggle=\"list\"]'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\nconst SELECTOR_DROPDOWN_ACTIVE_CHILD = ':scope > .dropdown-menu .active'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tab extends BaseComponent {\n // Getters\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n show() {\n if ((this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n this._element.classList.contains(CLASS_NAME_ACTIVE)) ||\n this._element.classList.contains(CLASS_NAME_DISABLED)) {\n return\n }\n\n let previous\n const target = getElementFromSelector(this._element)\n const listElement = this._element.closest(SELECTOR_NAV_LIST_GROUP)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE\n previous = SelectorEngine.find(itemSelector, listElement)\n previous = previous[previous.length - 1]\n }\n\n let hideEvent = null\n\n if (previous) {\n hideEvent = EventHandler.trigger(previous, EVENT_HIDE, {\n relatedTarget: this._element\n })\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, {\n relatedTarget: previous\n })\n\n if (showEvent.defaultPrevented || (hideEvent !== null && hideEvent.defaultPrevented)) {\n return\n }\n\n this._activate(this._element, listElement)\n\n const complete = () => {\n EventHandler.trigger(previous, EVENT_HIDDEN, {\n relatedTarget: this._element\n })\n EventHandler.trigger(this._element, EVENT_SHOWN, {\n relatedTarget: previous\n })\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n // Private\n\n _activate(element, container, callback) {\n const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ?\n SelectorEngine.find(SELECTOR_ACTIVE_UL, container) :\n SelectorEngine.children(container, SELECTOR_ACTIVE)\n\n const active = activeElements[0]\n const isTransitioning = callback && (active && active.classList.contains(CLASS_NAME_FADE))\n\n const complete = () => this._transitionComplete(element, active, callback)\n\n if (active && isTransitioning) {\n const transitionDuration = getTransitionDurationFromElement(active)\n active.classList.remove(CLASS_NAME_SHOW)\n\n EventHandler.one(active, TRANSITION_END, complete)\n emulateTransitionEnd(active, transitionDuration)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n active.classList.remove(CLASS_NAME_ACTIVE)\n\n const dropdownChild = SelectorEngine.findOne(SELECTOR_DROPDOWN_ACTIVE_CHILD, active.parentNode)\n\n if (dropdownChild) {\n dropdownChild.classList.remove(CLASS_NAME_ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n element.classList.add(CLASS_NAME_ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n reflow(element)\n\n if (element.classList.contains(CLASS_NAME_FADE)) {\n element.classList.add(CLASS_NAME_SHOW)\n }\n\n if (element.parentNode && element.parentNode.classList.contains(CLASS_NAME_DROPDOWN_MENU)) {\n const dropdownElement = element.closest(SELECTOR_DROPDOWN)\n\n if (dropdownElement) {\n SelectorEngine.find(SELECTOR_DROPDOWN_TOGGLE)\n .forEach(dropdown => dropdown.classList.add(CLASS_NAME_ACTIVE))\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\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 * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault()\n\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n data.show()\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Tab to jQuery only if jQuery is present\n */\n\nonDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tab.jQueryInterface\n $.fn[NAME].Constructor = Tab\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab.jQueryInterface\n }\n }\n})\n\nexport default Tab\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n onDOMContentLoaded,\n TRANSITION_END,\n emulateTransitionEnd,\n getTransitionDurationFromElement,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'toast'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_CLICK_DISMISS = `click.dismiss${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'\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\nconst SELECTOR_DATA_DISMISS = '[data-bs-dismiss=\"toast\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n }\n\n // Getters\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get Default() {\n return Default\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\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 this._element.classList.add(CLASS_NAME_SHOW)\n\n EventHandler.trigger(this._element, EVENT_SHOWN)\n\n if (this._config.autohide) {\n this._timeout = setTimeout(() => {\n this.hide()\n }, this._config.delay)\n }\n }\n\n this._element.classList.remove(CLASS_NAME_HIDE)\n reflow(this._element)\n this._element.classList.add(CLASS_NAME_SHOWING)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n hide() {\n if (!this._element.classList.contains(CLASS_NAME_SHOW)) {\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)\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n }\n\n this._element.classList.remove(CLASS_NAME_SHOW)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n dispose() {\n this._clearTimeout()\n\n if (this._element.classList.contains(CLASS_NAME_SHOW)) {\n this._element.classList.remove(CLASS_NAME_SHOW)\n }\n\n EventHandler.off(this._element, EVENT_CLICK_DISMISS)\n\n super.dispose()\n this._config = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...(typeof config === 'object' && config ? config : {})\n }\n\n typeCheckConfig(NAME, config, this.constructor.DefaultType)\n\n return config\n }\n\n _setListeners() {\n EventHandler.on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, () => this.hide())\n }\n\n _clearTimeout() {\n clearTimeout(this._timeout)\n this._timeout = null\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new Toast(this, _config)\n }\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 * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Toast to jQuery only if jQuery is present\n */\n\nonDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Toast.jQueryInterface\n $.fn[NAME].Constructor = Toast\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Toast.jQueryInterface\n }\n }\n})\n\nexport default Toast\n"],"names":["MAX_UID","MILLISECONDS_MULTIPLIER","TRANSITION_END","toType","obj","undefined","toString","call","match","toLowerCase","getUID","prefix","Math","floor","random","document","getElementById","getSelector","element","selector","getAttribute","hrefAttr","trim","getSelectorFromElement","querySelector","getElementFromSelector","getTransitionDurationFromElement","window","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","Number","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","dispatchEvent","Event","isElement","nodeType","emulateTransitionEnd","duration","called","durationPadding","emulatedDuration","listener","removeEventListener","addEventListener","setTimeout","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","isVisible","style","parentNode","elementStyle","parentNodeStyle","display","visibility","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","noop","reflow","offsetHeight","getjQuery","jQuery","body","hasAttribute","onDOMContentLoaded","callback","readyState","isRTL","dir","mapData","storeData","id","set","key","data","bsKey","get","keyProperties","delete","Data","setData","instance","getData","removeData","namespaceRegex","stripNameRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","nativeEvents","Set","getUidEvent","uid","getEvent","bootstrapHandler","fn","handler","event","delegateTarget","oneOff","EventHandler","off","type","apply","bootstrapDelegationHandler","domElements","querySelectorAll","target","i","length","findHandler","events","delegationSelector","uidEventList","len","originalHandler","normalizeParams","originalTypeEvent","delegationFn","delegation","typeEvent","replace","custom","isNative","has","addHandler","handlers","previousFn","removeHandler","Boolean","removeNamespacedHandlers","namespace","storeElementEvent","handlerKey","includes","on","one","inNamespace","isNamespace","startsWith","elementEvent","slice","keyHandlers","trigger","args","$","jQueryEvent","bubbles","nativeDispatch","defaultPrevented","evt","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","createEvent","initEvent","CustomEvent","cancelable","defineProperty","preventDefault","VERSION","BaseComponent","_element","constructor","DATA_KEY","dispose","getInstance","NAME","EVENT_KEY","DATA_API_KEY","SELECTOR_DISMISS","EVENT_CLOSE","EVENT_CLOSED","EVENT_CLICK_DATA_API","CLASSNAME_ALERT","CLASSNAME_FADE","CLASSNAME_SHOW","Alert","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","_removeElement","closest","classList","remove","contains","_destroyElement","removeChild","jQueryInterface","each","handleDismiss","alertInstance","JQUERY_NO_CONFLICT","Constructor","noConflict","CLASS_NAME_ACTIVE","SELECTOR_DATA_TOGGLE","Button","toggle","setAttribute","button","normalizeData","val","normalizeDataKey","chr","Manipulator","setDataAttribute","removeDataAttribute","removeAttribute","getDataAttributes","attributes","dataset","filter","pureKey","charAt","getDataAttribute","offset","rect","getBoundingClientRect","top","scrollTop","left","scrollLeft","position","offsetTop","offsetLeft","NODE_TEXT","SelectorEngine","matches","find","concat","Element","prototype","findOne","children","child","parents","ancestor","Node","ELEMENT_NODE","push","prev","previous","previousElementSibling","next","nextElementSibling","ARROW_LEFT_KEY","ARROW_RIGHT_KEY","TOUCHEVENT_COMPAT_WAIT","SWIPE_THRESHOLD","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","DIRECTION_NEXT","DIRECTION_PREV","DIRECTION_LEFT","DIRECTION_RIGHT","EVENT_SLIDE","EVENT_SLID","EVENT_KEYDOWN","EVENT_MOUSEENTER","EVENT_MOUSELEAVE","EVENT_TOUCHSTART","EVENT_TOUCHMOVE","EVENT_TOUCHEND","EVENT_POINTERDOWN","EVENT_POINTERUP","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","CLASS_NAME_POINTER_EVENT","SELECTOR_ACTIVE","SELECTOR_ACTIVE_ITEM","SELECTOR_ITEM","SELECTOR_ITEM_IMG","SELECTOR_NEXT_PREV","SELECTOR_INDICATORS","SELECTOR_DATA_SLIDE","SELECTOR_DATA_RIDE","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","_addEventListeners","_slide","nextWhenVisible","hidden","cycle","clearInterval","_updateInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","direction","_handleSwipe","absDeltax","abs","_keydown","_addTouchEventListeners","start","pointerType","clientX","touches","move","end","clearTimeout","itemImg","e","add","tagName","indexOf","_getItemByDirection","activeElement","isNextDirection","isPrevDirection","lastItemIndex","isGoingToWrap","delta","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","from","_setActiveIndicatorElement","indicators","nextIndicator","elementInterval","parseInt","defaultInterval","activeElementIndex","nextElement","nextElementIndex","isCycling","directionalClassName","orderClassName","slideEvent","carouselInterface","action","TypeError","ride","dataApiClickHandler","slideIndex","carousels","parent","EVENT_SHOW","EVENT_SHOWN","EVENT_HIDE","EVENT_HIDDEN","CLASS_NAME_SHOW","CLASS_NAME_COLLAPSE","CLASS_NAME_COLLAPSING","CLASS_NAME_COLLAPSED","WIDTH","HEIGHT","SELECTOR_ACTIVES","Collapse","_isTransitioning","_triggerArray","toggleList","elem","filterElement","foundElem","_selector","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","container","tempActiveData","startEvent","elemActive","collapseInterface","dimension","_getDimension","setTransitioning","complete","capitalizedDimension","scrollSize","triggerArrayLength","isTransitioning","jquery","selected","triggerArray","isOpen","triggerData","selectorElements","ESCAPE_KEY","SPACE_KEY","TAB_KEY","ARROW_UP_KEY","ARROW_DOWN_KEY","RIGHT_MOUSE_BUTTON","REGEXP_KEYDOWN","EVENT_CLICK","EVENT_KEYDOWN_DATA_API","EVENT_KEYUP_DATA_API","CLASS_NAME_DISABLED","CLASS_NAME_DROPUP","CLASS_NAME_DROPEND","CLASS_NAME_DROPSTART","CLASS_NAME_MENUEND","CLASS_NAME_NAVBAR","CLASS_NAME_POSITION_STATIC","SELECTOR_FORM_CHILD","SELECTOR_MENU","SELECTOR_NAVBAR_NAV","SELECTOR_VISIBLE_ITEMS","PLACEMENT_TOP","PLACEMENT_TOPEND","PLACEMENT_BOTTOM","PLACEMENT_BOTTOMEND","PLACEMENT_RIGHT","PLACEMENT_LEFT","flip","boundary","reference","popperConfig","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","isActive","clearMenus","getParentFromElement","showEvent","Popper","referenceElement","_getPopperConfig","focus","hideEvent","destroy","update","scheduleUpdate","stopPropagation","_getPlacement","parentDropdown","placement","_getOffset","offsets","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","dropdownInterface","toggles","context","clickEvent","dropdownMenu","dataApiKeydownHandler","items","backdrop","EVENT_HIDE_PREVENTED","EVENT_FOCUSIN","EVENT_RESIZE","EVENT_CLICK_DISMISS","EVENT_KEYDOWN_DISMISS","EVENT_MOUSEUP_DISMISS","EVENT_MOUSEDOWN_DISMISS","CLASS_NAME_SCROLLBAR_MEASURER","CLASS_NAME_BACKDROP","CLASS_NAME_OPEN","CLASS_NAME_FADE","CLASS_NAME_STATIC","SELECTOR_DIALOG","SELECTOR_MODAL_BODY","SELECTOR_DATA_DISMISS","SELECTOR_FIXED_CONTENT","SELECTOR_STICKY_CONTENT","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","htmlElement","handleUpdate","modalBody","appendChild","_enforceFocus","transitionComplete","_triggerBackdropTransition","_resetAdjustments","_resetScrollbar","_removeBackdrop","animate","createElement","className","currentTarget","backdropTransitionDuration","callbackRemove","isModalOverflowing","scrollHeight","clientHeight","overflowY","modalTransitionDuration","paddingLeft","paddingRight","round","right","innerWidth","_getScrollbarWidth","actualPadding","calculatedPadding","actualMargin","marginRight","calculatedMargin","padding","margin","scrollDiv","scrollbarWidth","width","clientWidth","uriAttrs","ARIA_ATTRIBUTE_PATTERN","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","attr","allowedAttributeList","attrName","nodeName","nodeValue","regExp","attrRegex","DefaultAllowlist","a","area","b","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","sanitizeHtml","unsafeHtml","allowList","sanitizeFn","domParser","DOMParser","createdDocument","parseFromString","allowlistKeys","elements","el","elName","attributeList","allowedAttributes","innerHTML","CLASS_PREFIX","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","html","fallbackPlacement","customClass","sanitize","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","CLASS_NAME_MODAL","HOVER_STATE_SHOW","HOVER_STATE_OUT","SELECTOR_TOOLTIP_INNER","TRIGGER_HOVER","TRIGGER_FOCUS","TRIGGER_CLICK","TRIGGER_MANUAL","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","_hideModalHandler","isWithContent","shadowRoot","isInTheDom","ownerDocument","tipId","setContent","attachment","_getAttachment","_addAttachmentClass","_getContainer","_fixTransition","prevHoverState","_cleanTipClass","getTitle","setElementContent","content","textContent","updateAttachment","defaultBsConfig","behavior","arrow","onCreate","originalPlacement","_handlePopperPlacementChange","onUpdate","triggers","eventIn","eventOut","_fixTitle","originalTitleType","dataAttributes","dataAttr","tabClass","map","token","tClass","popperData","popper","initConfigAnimation","SELECTOR_TITLE","SELECTOR_CONTENT","Popover","_getContent","method","EVENT_ACTIVATE","EVENT_SCROLL","CLASS_NAME_DROPDOWN_ITEM","SELECTOR_DATA_SPY","SELECTOR_NAV_LIST_GROUP","SELECTOR_NAV_LINKS","SELECTOR_NAV_ITEMS","SELECTOR_LIST_ITEMS","SELECTOR_DROPDOWN","SELECTOR_DROPDOWN_TOGGLE","METHOD_OFFSET","METHOD_POSITION","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targets","targetSelector","targetBCR","height","item","sort","pageYOffset","max","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","isActiveTarget","queries","link","join","listGroup","navItem","node","spy","CLASS_NAME_DROPDOWN_MENU","SELECTOR_ACTIVE_UL","SELECTOR_DROPDOWN_ACTIVE_CHILD","Tab","listElement","itemSelector","activeElements","active","_transitionComplete","dropdownChild","dropdownElement","dropdown","CLASS_NAME_HIDE","CLASS_NAME_SHOWING","autohide","Toast","_clearTimeout"],"mappings":"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"}
\ No newline at end of file +{"version":3,"file":"bootstrap.esm.js","sources":["../../js/src/util/index.js","../../js/src/dom/data.js","../../js/src/dom/event-handler.js","../../js/src/base-component.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/dom/manipulator.js","../../js/src/dom/selector-engine.js","../../js/src/carousel.js","../../js/src/collapse.js","../../js/src/dropdown.js","../../js/src/modal.js","../../js/src/util/scrollbar.js","../../js/src/offcanvas.js","../../js/src/util/sanitizer.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/toast.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => {\n if (obj === null || obj === undefined) {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n prefix += Math.floor(Math.random() * MAX_UID)\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelector = element => {\n let selector = element.getAttribute('data-bs-target')\n\n if (!selector || selector === '#') {\n let hrefAttr = 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 (!hrefAttr || (!hrefAttr.includes('#') && !hrefAttr.startsWith('.'))) {\n return null\n }\n\n // Just in case some CMS puts out a full URL with the anchor appended\n if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {\n hrefAttr = '#' + hrefAttr.split('#')[1]\n }\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null\n }\n\n return selector\n}\n\nconst getSelectorFromElement = element => {\n const selector = getSelector(element)\n\n if (selector) {\n return document.querySelector(selector) ? selector : null\n }\n\n return null\n}\n\nconst getElementFromSelector = element => {\n const selector = getSelector(element)\n\n return selector ? document.querySelector(selector) : null\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 = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes).forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ? 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`\n )\n }\n })\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n const elementStyle = getComputedStyle(element)\n const parentNodeStyle = getComputedStyle(element.parentNode)\n\n return elementStyle.display !== 'none' &&\n parentNodeStyle.display !== 'none' &&\n elementStyle.visibility !== 'hidden'\n }\n\n return false\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 = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nconst getjQuery = () => {\n const { jQuery } = window\n\n if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n return jQuery\n }\n\n return null\n}\n\nconst onDOMContentLoaded = callback => {\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', callback)\n } else {\n callback()\n }\n}\n\nconst isRTL = () => document.documentElement.dir === 'rtl'\n\nconst defineJQueryPlugin = (name, plugin) => {\n onDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\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\nexport {\n getUID,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n isVisible,\n isDisabled,\n findShadowRoot,\n noop,\n reflow,\n getjQuery,\n onDOMContentLoaded,\n isRTL,\n defineJQueryPlugin\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\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 (v5.0.0-beta3): dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getjQuery } from '../util/index'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\nconst nativeEvents = new Set([\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 * ------------------------------------------------------------------------\n * Private methods\n * ------------------------------------------------------------------------\n */\n\nfunction getUidEvent(element, uid) {\n return (uid && `${uid}::${uidEvent++}`) || element.uidEvent || uidEvent++\n}\n\nfunction getEvent(element) {\n const uid = getUidEvent(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 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 (let i = domElements.length; i--;) {\n if (domElements[i] === target) {\n event.delegateTarget = target\n\n if (handler.oneOff) {\n // eslint-disable-next-line unicorn/consistent-destructuring\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(target, [event])\n }\n }\n }\n\n // To please ESLint\n return null\n }\n}\n\nfunction findHandler(events, handler, delegationSelector = null) {\n const uidEventList = Object.keys(events)\n\n for (let i = 0, len = uidEventList.length; i < len; i++) {\n const event = events[uidEventList[i]]\n\n if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {\n return event\n }\n }\n\n return null\n}\n\nfunction normalizeParams(originalTypeEvent, handler, delegationFn) {\n const delegation = typeof handler === 'string'\n const originalHandler = delegation ? delegationFn : handler\n\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n let typeEvent = originalTypeEvent.replace(stripNameRegex, '')\n const custom = customEvents[typeEvent]\n\n if (custom) {\n typeEvent = custom\n }\n\n const isNative = nativeEvents.has(typeEvent)\n\n if (!isNative) {\n typeEvent = originalTypeEvent\n }\n\n return [delegation, originalHandler, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n if (!handler) {\n handler = delegationFn\n delegationFn = null\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const events = getEvent(element)\n const handlers = events[typeEvent] || (events[typeEvent] = {})\n const previousFn = findHandler(handlers, originalHandler, delegation ? handler : null)\n\n if (previousFn) {\n previousFn.oneOff = previousFn.oneOff && oneOff\n\n return\n }\n\n const uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, ''))\n const fn = delegation ?\n bootstrapDelegationHandler(element, handler, delegationFn) :\n bootstrapHandler(element, handler)\n\n fn.delegationSelector = delegation ? handler : null\n fn.originalHandler = originalHandler\n fn.oneOff = oneOff\n fn.uidEvent = uid\n handlers[uid] = fn\n\n element.addEventListener(typeEvent, fn, delegation)\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 Object.keys(storeElementEvent).forEach(handlerKey => {\n if (handlerKey.includes(namespace)) {\n const event = storeElementEvent[handlerKey]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, false)\n },\n\n one(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFn) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getEvent(element)\n const isNamespace = originalTypeEvent.startsWith('.')\n\n if (typeof originalHandler !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!events || !events[typeEvent]) {\n return\n }\n\n removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null)\n return\n }\n\n if (isNamespace) {\n Object.keys(events).forEach(elementEvent => {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1))\n })\n }\n\n const storeElementEvent = events[typeEvent] || {}\n Object.keys(storeElementEvent).forEach(keyHandlers => {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.includes(handlerKey)) {\n const event = storeElementEvent[keyHandlers]\n\n removeHandler(element, events, typeEvent, event.originalHandler, 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 = event.replace(stripNameRegex, '')\n const inNamespace = event !== typeEvent\n const isNative = nativeEvents.has(typeEvent)\n\n let jQueryEvent\n let bubbles = true\n let nativeDispatch = true\n let defaultPrevented = false\n let evt = null\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 if (isNative) {\n evt = document.createEvent('HTMLEvents')\n evt.initEvent(typeEvent, bubbles, true)\n } else {\n evt = new CustomEvent(event, {\n bubbles,\n cancelable: true\n })\n }\n\n // merge custom information in our event\n if (typeof args !== 'undefined') {\n Object.keys(args).forEach(key => {\n Object.defineProperty(evt, key, {\n get() {\n return args[key]\n }\n })\n })\n }\n\n if (defaultPrevented) {\n evt.preventDefault()\n }\n\n if (nativeDispatch) {\n element.dispatchEvent(evt)\n }\n\n if (evt.defaultPrevented && typeof jQueryEvent !== 'undefined') {\n jQueryEvent.preventDefault()\n }\n\n return evt\n }\n}\n\nexport default EventHandler\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): base-component.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Data from './dom/data'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst VERSION = '5.0.0-beta3'\n\nclass BaseComponent {\n constructor(element) {\n element = typeof element === 'string' ? document.querySelector(element) : element\n\n if (!element) {\n return\n }\n\n this._element = element\n Data.set(this._element, this.constructor.DATA_KEY, this)\n }\n\n dispose() {\n Data.remove(this._element, this.constructor.DATA_KEY)\n this._element = null\n }\n\n /** Static */\n\n static getInstance(element) {\n return Data.get(element, this.DATA_KEY)\n }\n\n static get VERSION() {\n return VERSION\n }\n}\n\nexport default BaseComponent\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n defineJQueryPlugin,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'alert'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst SELECTOR_DISMISS = '[data-bs-dismiss=\"alert\"]'\n\nconst EVENT_CLOSE = `close${EVENT_KEY}`\nconst EVENT_CLOSED = `closed${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_ALERT = 'alert'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Alert extends BaseComponent {\n // Getters\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n close(element) {\n const rootElement = element ? this._getRootElement(element) : this._element\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent === null || customEvent.defaultPrevented) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n // Private\n\n _getRootElement(element) {\n return getElementFromSelector(element) || element.closest(`.${CLASS_NAME_ALERT}`)\n }\n\n _triggerCloseEvent(element) {\n return EventHandler.trigger(element, EVENT_CLOSE)\n }\n\n _removeElement(element) {\n element.classList.remove(CLASS_NAME_SHOW)\n\n if (!element.classList.contains(CLASS_NAME_FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = getTransitionDurationFromElement(element)\n\n EventHandler.one(element, 'transitionend', () => this._destroyElement(element))\n emulateTransitionEnd(element, transitionDuration)\n }\n\n _destroyElement(element) {\n if (element.parentNode) {\n element.parentNode.removeChild(element)\n }\n\n EventHandler.trigger(element, EVENT_CLOSED)\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.get(this, DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DISMISS, Alert.handleDismiss(new Alert()))\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Alert to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(NAME, Alert)\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { defineJQueryPlugin } from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\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'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"button\"]'\n\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Button extends BaseComponent {\n // Getters\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n toggle() {\n // Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method\n this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE))\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.get(this, DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\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\n let data = Data.get(button, DATA_KEY)\n if (!data) {\n data = new Button(button)\n }\n\n data.toggle()\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Button to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(NAME, Button)\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(val) {\n if (val === 'true') {\n return true\n }\n\n if (val === 'false') {\n return false\n }\n\n if (val === Number(val).toString()) {\n return Number(val)\n }\n\n if (val === '' || val === 'null') {\n return null\n }\n\n return val\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\n Object.keys(element.dataset)\n .filter(key => key.startsWith('bs'))\n .forEach(key => {\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 offset(element) {\n const rect = element.getBoundingClientRect()\n\n return {\n top: rect.top + document.body.scrollTop,\n left: rect.left + document.body.scrollLeft\n }\n },\n\n position(element) {\n return {\n top: element.offsetTop,\n left: element.offsetLeft\n }\n }\n}\n\nexport default Manipulator\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NODE_TEXT = 3\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)\n .filter(child => child.matches(selector))\n },\n\n parents(element, selector) {\n const parents = []\n\n let ancestor = element.parentNode\n\n while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {\n if (ancestor.matches(selector)) {\n parents.push(ancestor)\n }\n\n ancestor = ancestor.parentNode\n }\n\n return parents\n },\n\n prev(element, selector) {\n let previous = element.previousElementSibling\n\n while (previous) {\n if (previous.matches(selector)) {\n return [previous]\n }\n\n previous = previous.previousElementSibling\n }\n\n return []\n },\n\n 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\nexport default SelectorEngine\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n defineJQueryPlugin,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isRTL,\n isVisible,\n reflow,\n triggerTransitionEnd,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\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\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\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_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 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'\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event'\n\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_ITEM = '.active.carousel-item'\nconst SELECTOR_ITEM = '.carousel-item'\nconst SELECTOR_ITEM_IMG = '.carousel-item img'\nconst SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev'\nconst SELECTOR_INDICATORS = '.carousel-indicators'\nconst SELECTOR_INDICATOR = '[data-bs-target]'\nconst SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]'\nconst SELECTOR_DATA_RIDE = '[data-bs-ride=\"carousel\"]'\n\nconst POINTER_TYPE_TOUCH = 'touch'\nconst POINTER_TYPE_PEN = 'pen'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent)\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(ORDER_NEXT)\n }\n }\n\n nextWhenVisible() {\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 if (!this._isSliding) {\n this._slide(ORDER_PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (SelectorEngine.findOne(SELECTOR_NEXT_PREV, this._element)) {\n triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config && this._config.interval && !this._isPaused) {\n this._updateInterval()\n\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._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 if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const order = index > activeIndex ?\n ORDER_NEXT :\n ORDER_PREV\n\n this._slide(order, this._items[index])\n }\n\n dispose() {\n EventHandler.off(this._element, EVENT_KEY)\n\n this._items = null\n this._config = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n\n super.dispose()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n this.touchDeltaX = 0\n\n if (!direction) {\n return\n }\n\n this._slide(direction > 0 ? DIRECTION_RIGHT : DIRECTION_LEFT)\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, event => this.pause(event))\n EventHandler.on(this._element, EVENT_MOUSELEAVE, event => this.cycle(event))\n }\n\n if (this._config.touch && this._touchSupported) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n const start = event => {\n if (this._pointerEvent && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH)) {\n this.touchStartX = event.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.touches[0].clientX\n }\n }\n\n const move = event => {\n // ensure swiping with one touch and not pinching\n this.touchDeltaX = event.touches && event.touches.length > 1 ?\n 0 :\n event.touches[0].clientX - this.touchStartX\n }\n\n const end = event => {\n if (this._pointerEvent && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH)) {\n this.touchDeltaX = event.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\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(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n SelectorEngine.find(SELECTOR_ITEM_IMG, this._element).forEach(itemImg => {\n EventHandler.on(itemImg, EVENT_DRAG_START, e => e.preventDefault())\n })\n\n if (this._pointerEvent) {\n EventHandler.on(this._element, EVENT_POINTERDOWN, event => start(event))\n EventHandler.on(this._element, EVENT_POINTERUP, event => end(event))\n\n this._element.classList.add(CLASS_NAME_POINTER_EVENT)\n } else {\n EventHandler.on(this._element, EVENT_TOUCHSTART, event => start(event))\n EventHandler.on(this._element, EVENT_TOUCHMOVE, event => move(event))\n EventHandler.on(this._element, EVENT_TOUCHEND, event => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n if (event.key === ARROW_LEFT_KEY) {\n event.preventDefault()\n this._slide(DIRECTION_LEFT)\n } else if (event.key === ARROW_RIGHT_KEY) {\n event.preventDefault()\n this._slide(DIRECTION_RIGHT)\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode ?\n SelectorEngine.find(SELECTOR_ITEM, element.parentNode) :\n []\n\n return this._items.indexOf(element)\n }\n\n _getItemByOrder(order, activeElement) {\n const isNext = order === ORDER_NEXT\n const isPrev = order === ORDER_PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = (isPrev && activeIndex === 0) || (isNext && activeIndex === lastItemIndex)\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = isPrev ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1 ?\n this._items[this._items.length - 1] :\n this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element))\n\n return EventHandler.trigger(this._element, EVENT_SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\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 indicators = SelectorEngine.find(SELECTOR_INDICATOR, this._indicatorsElement)\n\n for (let i = 0; i < indicators.length; i++) {\n if (Number.parseInt(indicators[i].getAttribute('data-bs-slide-to'), 10) === this._getItemIndex(element)) {\n indicators[i].classList.add(CLASS_NAME_ACTIVE)\n indicators[i].setAttribute('aria-current', 'true')\n break\n }\n }\n }\n }\n\n _updateInterval() {\n const element = this._activeElement || SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n\n if (!element) {\n return\n }\n\n const elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10)\n\n if (elementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval\n this._config.interval = elementInterval\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval\n }\n }\n\n _slide(directionOrOrder, element) {\n const order = this._directionToOrder(directionOrOrder)\n const activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || this._getItemByOrder(order, activeElement)\n\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n const isNext = order === ORDER_NEXT\n const directionalClassName = isNext ? CLASS_NAME_START : CLASS_NAME_END\n const orderClassName = isNext ? CLASS_NAME_NEXT : CLASS_NAME_PREV\n const eventDirectionName = this._orderToDirection(order)\n\n if (nextElement && nextElement.classList.contains(CLASS_NAME_ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.defaultPrevented) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n this._activeElement = nextElement\n\n if (this._element.classList.contains(CLASS_NAME_SLIDE)) {\n nextElement.classList.add(orderClassName)\n\n reflow(nextElement)\n\n activeElement.classList.add(directionalClassName)\n nextElement.classList.add(directionalClassName)\n\n const transitionDuration = getTransitionDurationFromElement(activeElement)\n\n EventHandler.one(activeElement, 'transitionend', () => {\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 setTimeout(() => {\n EventHandler.trigger(this._element, EVENT_SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }, 0)\n })\n\n emulateTransitionEnd(activeElement, transitionDuration)\n } else {\n activeElement.classList.remove(CLASS_NAME_ACTIVE)\n nextElement.classList.add(CLASS_NAME_ACTIVE)\n\n this._isSliding = false\n EventHandler.trigger(this._element, EVENT_SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n _directionToOrder(direction) {\n if (![DIRECTION_RIGHT, DIRECTION_LEFT].includes(direction)) {\n return direction\n }\n\n if (isRTL()) {\n return direction === DIRECTION_RIGHT ? ORDER_PREV : ORDER_NEXT\n }\n\n return direction === DIRECTION_RIGHT ? ORDER_NEXT : ORDER_PREV\n }\n\n _orderToDirection(order) {\n if (![ORDER_NEXT, ORDER_PREV].includes(order)) {\n return order\n }\n\n if (isRTL()) {\n return order === ORDER_NEXT ? DIRECTION_LEFT : DIRECTION_RIGHT\n }\n\n return order === ORDER_NEXT ? DIRECTION_RIGHT : DIRECTION_LEFT\n }\n\n // Static\n\n static carouselInterface(element, config) {\n let data = Data.get(element, DATA_KEY)\n let _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element)\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(element, _config)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n\n data[action]()\n } else if (_config.interval && _config.ride) {\n data.pause()\n data.cycle()\n }\n }\n\n static jQueryInterface(config) {\n return this.each(function () {\n Carousel.carouselInterface(this, config)\n })\n }\n\n static dataApiClickHandler(event) {\n const target = getElementFromSelector(this)\n\n if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {\n return\n }\n\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n const slideIndex = this.getAttribute('data-bs-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel.carouselInterface(target, config)\n\n if (slideIndex) {\n Data.get(target, DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, Carousel.dataApiClickHandler)\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE)\n\n for (let i = 0, len = carousels.length; i < len; i++) {\n Carousel.carouselInterface(carousels[i], Data.get(carousels[i], DATA_KEY))\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Carousel to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(NAME, Carousel)\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n defineJQueryPlugin,\n emulateTransitionEnd,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isElement,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'collapse'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n toggle: true,\n parent: ''\n}\n\nconst DefaultType = {\n toggle: 'boolean',\n parent: '(string|element)'\n}\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'\n\nconst WIDTH = 'width'\nconst HEIGHT = 'height'\n\nconst SELECTOR_ACTIVES = '.show, .collapsing'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"collapse\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._isTransitioning = false\n this._config = this._getConfig(config)\n this._triggerArray = SelectorEngine.find(\n `${SELECTOR_DATA_TOGGLE}[href=\"#${this._element.id}\"],` +\n `${SELECTOR_DATA_TOGGLE}[data-bs-target=\"#${this._element.id}\"]`\n )\n\n const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\n\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = getSelectorFromElement(elem)\n const filterElement = SelectorEngine.find(selector)\n .filter(foundElem => foundElem === this._element)\n\n if (selector !== null && filterElement.length) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n toggle() {\n if (this._element.classList.contains(CLASS_NAME_SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning || this._element.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = SelectorEngine.find(SELECTOR_ACTIVES, this._parent)\n .filter(elem => {\n if (typeof this._config.parent === 'string') {\n return elem.getAttribute('data-bs-parent') === this._config.parent\n }\n\n return elem.classList.contains(CLASS_NAME_COLLAPSE)\n })\n\n if (actives.length === 0) {\n actives = null\n }\n }\n\n const container = SelectorEngine.findOne(this._selector)\n if (actives) {\n const tempActiveData = actives.find(elem => container !== elem)\n activesData = tempActiveData ? Data.get(tempActiveData, DATA_KEY) : null\n\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = EventHandler.trigger(this._element, EVENT_SHOW)\n if (startEvent.defaultPrevented) {\n return\n }\n\n if (actives) {\n actives.forEach(elemActive => {\n if (container !== elemActive) {\n Collapse.collapseInterface(elemActive, 'hide')\n }\n\n if (!activesData) {\n Data.set(elemActive, DATA_KEY, null)\n }\n })\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 if (this._triggerArray.length) {\n this._triggerArray.forEach(element => {\n element.classList.remove(CLASS_NAME_COLLAPSED)\n element.setAttribute('aria-expanded', true)\n })\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\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 this.setTransitioning(false)\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 const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, 'transitionend', complete)\n\n emulateTransitionEnd(this._element, transitionDuration)\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning || !this._element.classList.contains(CLASS_NAME_SHOW)) {\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 const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const elem = getElementFromSelector(trigger)\n\n if (elem && !elem.classList.contains(CLASS_NAME_SHOW)) {\n trigger.classList.add(CLASS_NAME_COLLAPSED)\n trigger.setAttribute('aria-expanded', false)\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(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 const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, 'transitionend', complete)\n emulateTransitionEnd(this._element, transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n super.dispose()\n this._config = null\n this._parent = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n return this._element.classList.contains(WIDTH) ? WIDTH : HEIGHT\n }\n\n _getParent() {\n let { parent } = this._config\n\n if (isElement(parent)) {\n // it's a jQuery object\n if (typeof parent.jquery !== 'undefined' || typeof parent[0] !== 'undefined') {\n parent = parent[0]\n }\n } else {\n parent = SelectorEngine.findOne(parent)\n }\n\n const selector = `${SELECTOR_DATA_TOGGLE}[data-bs-parent=\"${parent}\"]`\n\n SelectorEngine.find(selector, parent)\n .forEach(element => {\n const selected = getElementFromSelector(element)\n\n this._addAriaAndCollapsedClass(\n selected,\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n if (!element || !triggerArray.length) {\n return\n }\n\n const isOpen = element.classList.contains(CLASS_NAME_SHOW)\n\n triggerArray.forEach(elem => {\n if (isOpen) {\n elem.classList.remove(CLASS_NAME_COLLAPSED)\n } else {\n elem.classList.add(CLASS_NAME_COLLAPSED)\n }\n\n elem.setAttribute('aria-expanded', isOpen)\n })\n }\n\n // Static\n\n static collapseInterface(element, config) {\n let data = Data.get(element, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element),\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(element, _config)\n }\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 static jQueryInterface(config) {\n return this.each(function () {\n Collapse.collapseInterface(this, config)\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\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 const triggerData = Manipulator.getDataAttributes(this)\n const selector = getSelectorFromElement(this)\n const selectorElements = SelectorEngine.find(selector)\n\n selectorElements.forEach(element => {\n const data = Data.get(element, DATA_KEY)\n let config\n if (data) {\n // update parent attribute\n if (data._parent === null && typeof triggerData.parent === 'string') {\n data._config.parent = triggerData.parent\n data._parent = data._getParent()\n }\n\n config = 'toggle'\n } else {\n config = triggerData\n }\n\n Collapse.collapseInterface(element, config)\n })\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Collapse to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(NAME, Collapse)\n\nexport default Collapse\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport * as Popper from '@popperjs/core'\n\nimport {\n defineJQueryPlugin,\n getElementFromSelector,\n isElement,\n isVisible,\n isRTL,\n noop,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\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 SPACE_KEY = 'Space'\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 REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEY}|${ARROW_DOWN_KEY}|${ESCAPE_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 = `click${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_DISABLED = 'disabled'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_DROPUP = 'dropup'\nconst CLASS_NAME_DROPEND = 'dropend'\nconst CLASS_NAME_DROPSTART = 'dropstart'\nconst CLASS_NAME_NAVBAR = 'navbar'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"dropdown\"]'\nconst SELECTOR_MENU = '.dropdown-menu'\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'\n\nconst Default = {\n offset: [0, 2],\n boundary: 'clippingParents',\n reference: 'toggle',\n display: 'dynamic',\n popperConfig: null\n}\n\nconst DefaultType = {\n offset: '(array|string|function)',\n boundary: '(string|element)',\n reference: '(string|element|object)',\n display: 'string',\n popperConfig: '(null|object|function)'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED)) {\n return\n }\n\n const isActive = this._element.classList.contains(CLASS_NAME_SHOW)\n\n Dropdown.clearMenus()\n\n if (isActive) {\n return\n }\n\n this.show()\n }\n\n show() {\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || this._menu.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n const parent = Dropdown.getParentFromElement(this._element)\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 // Totally disable Popper for Dropdowns in Navbar\n if (this._inNavbar) {\n Manipulator.setDataAttribute(this._menu, 'popper', 'none')\n } else {\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 = parent\n } else if (isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n } else if (typeof this._config.reference === 'object') {\n referenceElement = this._config.reference\n }\n\n const popperConfig = this._getPopperConfig()\n const isDisplayStatic = popperConfig.modifiers.find(modifier => modifier.name === 'applyStyles' && modifier.enabled === false)\n\n this._popper = Popper.createPopper(referenceElement, this._menu, popperConfig)\n\n if (isDisplayStatic) {\n Manipulator.setDataAttribute(this._menu, 'popper', 'static')\n }\n }\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 !parent.closest(SELECTOR_NAVBAR_NAV)) {\n [].concat(...document.body.children)\n .forEach(elem => EventHandler.on(elem, 'mouseover', null, noop()))\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n this._menu.classList.toggle(CLASS_NAME_SHOW)\n this._element.classList.toggle(CLASS_NAME_SHOW)\n EventHandler.trigger(this._element, EVENT_SHOWN, relatedTarget)\n }\n\n hide() {\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || !this._menu.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE, relatedTarget)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n if (this._popper) {\n this._popper.destroy()\n }\n\n this._menu.classList.toggle(CLASS_NAME_SHOW)\n this._element.classList.toggle(CLASS_NAME_SHOW)\n Manipulator.removeDataAttribute(this._menu, 'popper')\n EventHandler.trigger(this._element, EVENT_HIDDEN, relatedTarget)\n }\n\n dispose() {\n EventHandler.off(this._element, EVENT_KEY)\n this._menu = null\n\n if (this._popper) {\n this._popper.destroy()\n this._popper = null\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\n _addEventListeners() {\n EventHandler.on(this._element, EVENT_CLICK, event => {\n event.preventDefault()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...Manipulator.getDataAttributes(this._element),\n ...config\n }\n\n typeCheckConfig(NAME, config, this.constructor.DefaultType)\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 _getMenuElement() {\n return SelectorEngine.next(this._element, SELECTOR_MENU)[0]\n }\n\n _getPlacement() {\n const parentDropdown = this._element.parentNode\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 // 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(`.${CLASS_NAME_NAVBAR}`) !== null\n }\n\n _getOffset() {\n const { offset } = this._config\n\n if (typeof offset === 'string') {\n return offset.split(',').map(val => Number.parseInt(val, 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\n if (this._config.display === 'static') {\n defaultBsPopperConfig.modifiers = [{\n name: 'applyStyles',\n enabled: false\n }]\n }\n\n return {\n ...defaultBsPopperConfig,\n ...(typeof this._config.popperConfig === 'function' ? this._config.popperConfig(defaultBsPopperConfig) : this._config.popperConfig)\n }\n }\n\n // Static\n\n static dropdownInterface(element, config) {\n let data = Data.get(element, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(element, _config)\n }\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 static jQueryInterface(config) {\n return this.each(function () {\n Dropdown.dropdownInterface(this, config)\n })\n }\n\n static clearMenus(event) {\n if (event) {\n if (event.button === RIGHT_MOUSE_BUTTON || (event.type === 'keyup' && event.key !== TAB_KEY)) {\n return\n }\n\n if (/input|select|textarea|form/i.test(event.target.tagName)) {\n return\n }\n }\n\n const toggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\n\n for (let i = 0, len = toggles.length; i < len; i++) {\n const context = Data.get(toggles[i], DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!toggles[i].classList.contains(CLASS_NAME_SHOW)) {\n continue\n }\n\n if (event) {\n // Don't close the menu if the clicked element or one of its parents is the dropdown button\n if ([context._element].some(element => event.composedPath().includes(element))) {\n continue\n }\n\n // Tab navigation through the dropdown menu shouldn't close the menu\n if (event.type === 'keyup' && event.key === TAB_KEY && dropdownMenu.contains(event.target)) {\n continue\n }\n }\n\n const hideEvent = EventHandler.trigger(toggles[i], EVENT_HIDE, relatedTarget)\n if (hideEvent.defaultPrevented) {\n continue\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 [].concat(...document.body.children)\n .forEach(elem => EventHandler.off(elem, 'mouseover', null, noop()))\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n if (context._popper) {\n context._popper.destroy()\n }\n\n dropdownMenu.classList.remove(CLASS_NAME_SHOW)\n toggles[i].classList.remove(CLASS_NAME_SHOW)\n Manipulator.removeDataAttribute(dropdownMenu, 'popper')\n EventHandler.trigger(toggles[i], EVENT_HIDDEN, relatedTarget)\n }\n }\n\n static getParentFromElement(element) {\n return getElementFromSelector(element) || element.parentNode\n }\n\n static dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ?\n event.key === SPACE_KEY || (event.key !== ESCAPE_KEY &&\n ((event.key !== ARROW_DOWN_KEY && event.key !== ARROW_UP_KEY) ||\n event.target.closest(SELECTOR_MENU))) :\n !REGEXP_KEYDOWN.test(event.key)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || this.classList.contains(CLASS_NAME_DISABLED)) {\n return\n }\n\n const parent = Dropdown.getParentFromElement(this)\n const isActive = this.classList.contains(CLASS_NAME_SHOW)\n\n if (event.key === ESCAPE_KEY) {\n const button = this.matches(SELECTOR_DATA_TOGGLE) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE)[0]\n button.focus()\n Dropdown.clearMenus()\n return\n }\n\n if (!isActive && (event.key === ARROW_UP_KEY || event.key === ARROW_DOWN_KEY)) {\n const button = this.matches(SELECTOR_DATA_TOGGLE) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE)[0]\n button.click()\n return\n }\n\n if (!isActive || event.key === SPACE_KEY) {\n Dropdown.clearMenus()\n return\n }\n\n const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, parent).filter(isVisible)\n\n if (!items.length) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n // Up\n if (event.key === ARROW_UP_KEY && index > 0) {\n index--\n }\n\n // Down\n if (event.key === ARROW_DOWN_KEY && index < items.length - 1) {\n index++\n }\n\n // index is -1 if the first keydown is an ArrowUp\n index = index === -1 ? 0 : index\n\n items[index].focus()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\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.dropdownInterface(this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Dropdown to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(NAME, Dropdown)\n\nexport default Dropdown\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n defineJQueryPlugin,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isVisible,\n isRTL,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\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 Default = {\n backdrop: true,\n keyboard: true,\n focus: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean'\n}\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_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${EVENT_KEY}`\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEUP_DISMISS = `mouseup.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure'\nconst CLASS_NAME_BACKDROP = 'modal-backdrop'\nconst CLASS_NAME_OPEN = 'modal-open'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_STATIC = 'modal-static'\n\nconst SELECTOR_DIALOG = '.modal-dialog'\nconst SELECTOR_MODAL_BODY = '.modal-body'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"modal\"]'\nconst SELECTOR_DATA_DISMISS = '[data-bs-dismiss=\"modal\"]'\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'\nconst SELECTOR_STICKY_CONTENT = '.sticky-top'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._config = this._getConfig(config)\n this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, this._element)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollbarWidth = 0\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n if (this._isAnimated()) {\n this._isTransitioning = true\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, {\n relatedTarget\n })\n\n if (this._isShown || showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, event => this.hide(event))\n\n EventHandler.on(this._dialog, EVENT_MOUSEDOWN_DISMISS, () => {\n EventHandler.one(this._element, EVENT_MOUSEUP_DISMISS, event => {\n if (event.target === this._element) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\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 const isAnimated = this._isAnimated()\n\n if (isAnimated) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.off(document, EVENT_FOCUSIN)\n\n this._element.classList.remove(CLASS_NAME_SHOW)\n\n EventHandler.off(this._element, EVENT_CLICK_DISMISS)\n EventHandler.off(this._dialog, EVENT_MOUSEDOWN_DISMISS)\n\n if (isAnimated) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, 'transitionend', event => this._hideModal(event))\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach(htmlElement => EventHandler.off(htmlElement, EVENT_KEY))\n\n super.dispose()\n\n /**\n * `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `EVENT_CLICK_DATA_API` event that should remain\n */\n EventHandler.off(document, EVENT_FOCUSIN)\n\n this._config = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._isTransitioning = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const isAnimated = this._isAnimated()\n const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog)\n\n if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(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 if (modalBody) {\n modalBody.scrollTop = 0\n }\n\n if (isAnimated) {\n reflow(this._element)\n }\n\n this._element.classList.add(CLASS_NAME_SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n\n this._isTransitioning = false\n EventHandler.trigger(this._element, EVENT_SHOWN, {\n relatedTarget\n })\n }\n\n if (isAnimated) {\n const transitionDuration = getTransitionDurationFromElement(this._dialog)\n\n EventHandler.one(this._dialog, 'transitionend', transitionComplete)\n emulateTransitionEnd(this._dialog, transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n EventHandler.off(document, EVENT_FOCUSIN) // guard against infinite focus loop\n EventHandler.on(document, EVENT_FOCUSIN, event => {\n if (document !== event.target &&\n this._element !== event.target &&\n !this._element.contains(event.target)) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown) {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {\n if (this._config.keyboard && event.key === ESCAPE_KEY) {\n event.preventDefault()\n this.hide()\n } else if (!this._config.keyboard && event.key === ESCAPE_KEY) {\n this._triggerBackdropTransition()\n }\n })\n } else {\n EventHandler.off(this._element, EVENT_KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n EventHandler.on(window, EVENT_RESIZE, () => this._adjustDialog())\n } else {\n EventHandler.off(window, EVENT_RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._element.removeAttribute('role')\n this._isTransitioning = false\n this._showBackdrop(() => {\n document.body.classList.remove(CLASS_NAME_OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n })\n }\n\n _removeBackdrop() {\n this._backdrop.parentNode.removeChild(this._backdrop)\n this._backdrop = null\n }\n\n _showBackdrop(callback) {\n const isAnimated = this._isAnimated()\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = CLASS_NAME_BACKDROP\n\n if (isAnimated) {\n this._backdrop.classList.add(CLASS_NAME_FADE)\n }\n\n document.body.appendChild(this._backdrop)\n\n EventHandler.on(this._element, EVENT_CLICK_DISMISS, event => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n\n if (event.target !== event.currentTarget) {\n return\n }\n\n if (this._config.backdrop === 'static') {\n this._triggerBackdropTransition()\n } else {\n this.hide()\n }\n })\n\n if (isAnimated) {\n reflow(this._backdrop)\n }\n\n this._backdrop.classList.add(CLASS_NAME_SHOW)\n\n if (!isAnimated) {\n callback()\n return\n }\n\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n\n EventHandler.one(this._backdrop, 'transitionend', callback)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n this._backdrop.classList.remove(CLASS_NAME_SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n callback()\n }\n\n if (isAnimated) {\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n EventHandler.one(this._backdrop, 'transitionend', callbackRemove)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else {\n callback()\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\n if (!isModalOverflowing) {\n this._element.style.overflowY = 'hidden'\n }\n\n this._element.classList.add(CLASS_NAME_STATIC)\n const modalTransitionDuration = getTransitionDurationFromElement(this._dialog)\n EventHandler.off(this._element, 'transitionend')\n EventHandler.one(this._element, 'transitionend', () => {\n this._element.classList.remove(CLASS_NAME_STATIC)\n if (!isModalOverflowing) {\n EventHandler.one(this._element, 'transitionend', () => {\n this._element.style.overflowY = ''\n })\n emulateTransitionEnd(this._element, modalTransitionDuration)\n }\n })\n emulateTransitionEnd(this._element, modalTransitionDuration)\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\n if ((!this._isBodyOverflowing && isModalOverflowing && !isRTL()) || (this._isBodyOverflowing && !isModalOverflowing && isRTL())) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if ((this._isBodyOverflowing && !isModalOverflowing && !isRTL()) || (!this._isBodyOverflowing && isModalOverflowing && isRTL())) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n this._setElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight', calculatedValue => calculatedValue + this._scrollbarWidth)\n this._setElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight', calculatedValue => calculatedValue - this._scrollbarWidth)\n this._setElementAttributes('body', 'paddingRight', calculatedValue => calculatedValue + this._scrollbarWidth)\n }\n\n document.body.classList.add(CLASS_NAME_OPEN)\n }\n\n _setElementAttributes(selector, styleProp, callback) {\n SelectorEngine.find(selector)\n .forEach(element => {\n if (element !== document.body && window.innerWidth > element.clientWidth + this._scrollbarWidth) {\n return\n }\n\n const actualValue = element.style[styleProp]\n const calculatedValue = window.getComputedStyle(element)[styleProp]\n Manipulator.setDataAttribute(element, styleProp, actualValue)\n element.style[styleProp] = callback(Number.parseFloat(calculatedValue)) + 'px'\n })\n }\n\n _resetScrollbar() {\n this._resetElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight')\n this._resetElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight')\n this._resetElementAttributes('body', 'paddingRight')\n }\n\n _resetElementAttributes(selector, styleProp) {\n SelectorEngine.find(selector).forEach(element => {\n const value = Manipulator.getDataAttribute(element, styleProp)\n if (typeof value === 'undefined' && element === document.body) {\n element.style[styleProp] = ''\n } else {\n Manipulator.removeDataAttribute(element, styleProp)\n element.style[styleProp] = value\n }\n })\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = CLASS_NAME_SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = Data.get(this, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(this),\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (!data) {\n data = new Modal(this, _config)\n }\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](relatedTarget)\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n const target = getElementFromSelector(this)\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\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 let data = Data.get(target, DATA_KEY)\n if (!data) {\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n\n data = new Modal(target, config)\n }\n\n data.toggle(this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Modal to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(NAME, Modal)\n\nexport default Modal\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): util/scrollBar.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport SelectorEngine from '../dom/selector-engine'\nimport Manipulator from '../dom/manipulator'\n\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed'\nconst SELECTOR_STICKY_CONTENT = '.sticky-top'\n\nconst 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\nconst hide = (width = getWidth()) => {\n document.body.style.overflow = 'hidden'\n _setElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight', calculatedValue => calculatedValue + width)\n _setElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight', calculatedValue => calculatedValue - width)\n _setElementAttributes('body', 'paddingRight', calculatedValue => calculatedValue + width)\n}\n\nconst _setElementAttributes = (selector, styleProp, callback) => {\n const scrollbarWidth = getWidth()\n SelectorEngine.find(selector)\n .forEach(element => {\n if (element !== document.body && window.innerWidth > element.clientWidth + scrollbarWidth) {\n return\n }\n\n const actualValue = element.style[styleProp]\n const calculatedValue = window.getComputedStyle(element)[styleProp]\n Manipulator.setDataAttribute(element, styleProp, actualValue)\n element.style[styleProp] = callback(Number.parseFloat(calculatedValue)) + 'px'\n })\n}\n\nconst reset = () => {\n document.body.style.overflow = 'auto'\n _resetElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight')\n _resetElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight')\n _resetElementAttributes('body', 'paddingRight')\n}\n\nconst _resetElementAttributes = (selector, styleProp) => {\n SelectorEngine.find(selector).forEach(element => {\n const value = Manipulator.getDataAttribute(element, styleProp)\n if (typeof value === 'undefined' && element === document.body) {\n element.style.removeProperty(styleProp)\n } else {\n Manipulator.removeDataAttribute(element, styleProp)\n element.style[styleProp] = value\n }\n })\n}\n\nconst isBodyOverflowing = () => {\n return getWidth() > 0\n}\n\nexport {\n getWidth,\n hide,\n isBodyOverflowing,\n reset\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): offcanvas.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n defineJQueryPlugin,\n getElementFromSelector,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isDisabled,\n isVisible,\n typeCheckConfig\n} from './util/index'\nimport { hide as scrollBarHide, reset as scrollBarReset } from './util/scrollbar'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport BaseComponent from './base-component'\nimport SelectorEngine from './dom/selector-engine'\nimport Manipulator from './dom/manipulator'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\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 Default = {\n backdrop: true,\n keyboard: true,\n scroll: false\n}\n\nconst DefaultType = {\n backdrop: 'boolean',\n keyboard: 'boolean',\n scroll: 'boolean'\n}\n\nconst CLASS_NAME_BACKDROP_BODY = 'offcanvas-backdrop'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_TOGGLING = 'offcanvas-toggling'\nconst OPEN_SELECTOR = '.offcanvas.show'\nconst ACTIVE_SELECTOR = `${OPEN_SELECTOR}, .${CLASS_NAME_TOGGLING}`\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_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\n\nconst SELECTOR_DATA_DISMISS = '[data-bs-dismiss=\"offcanvas\"]'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"offcanvas\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Offcanvas extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._config = this._getConfig(config)\n this._isShown = false\n this._addEventListeners()\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown) {\n return\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, { relatedTarget })\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n this._element.style.visibility = 'visible'\n\n if (this._config.backdrop) {\n document.body.classList.add(CLASS_NAME_BACKDROP_BODY)\n }\n\n if (!this._config.scroll) {\n scrollBarHide()\n }\n\n this._element.classList.add(CLASS_NAME_TOGGLING)\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n this._element.setAttribute('role', 'dialog')\n this._element.classList.add(CLASS_NAME_SHOW)\n\n const completeCallBack = () => {\n this._element.classList.remove(CLASS_NAME_TOGGLING)\n EventHandler.trigger(this._element, EVENT_SHOWN, { relatedTarget })\n this._enforceFocusOnElement(this._element)\n }\n\n setTimeout(completeCallBack, getTransitionDurationFromElement(this._element))\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._element.classList.add(CLASS_NAME_TOGGLING)\n EventHandler.off(document, EVENT_FOCUSIN)\n this._element.blur()\n this._isShown = false\n this._element.classList.remove(CLASS_NAME_SHOW)\n\n const completeCallback = () => {\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._element.removeAttribute('role')\n this._element.style.visibility = 'hidden'\n\n if (this._config.backdrop) {\n document.body.classList.remove(CLASS_NAME_BACKDROP_BODY)\n }\n\n if (!this._config.scroll) {\n scrollBarReset()\n }\n\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n this._element.classList.remove(CLASS_NAME_TOGGLING)\n }\n\n setTimeout(completeCallback, getTransitionDurationFromElement(this._element))\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...(typeof config === 'object' ? config : {})\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _enforceFocusOnElement(element) {\n EventHandler.off(document, EVENT_FOCUSIN) // guard against infinite focus loop\n EventHandler.on(document, EVENT_FOCUSIN, event => {\n if (document !== event.target &&\n element !== event.target &&\n !element.contains(event.target)) {\n element.focus()\n }\n })\n element.focus()\n }\n\n _addEventListeners() {\n EventHandler.on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, () => this.hide())\n\n EventHandler.on(document, 'keydown', event => {\n if (this._config.keyboard && event.key === ESCAPE_KEY) {\n this.hide()\n }\n })\n\n EventHandler.on(document, EVENT_CLICK_DATA_API, event => {\n const target = SelectorEngine.findOne(getSelectorFromElement(event.target))\n if (!this._element.contains(event.target) && target !== this._element) {\n this.hide()\n }\n })\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Data.get(this, DATA_KEY) || new Offcanvas(this, typeof config === 'object' ? 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 * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n const target = getElementFromSelector(this)\n\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n if (isDisabled(this)) {\n return\n }\n\n EventHandler.one(target, EVENT_HIDDEN, () => {\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 allReadyOpen = SelectorEngine.findOne(ACTIVE_SELECTOR)\n if (allReadyOpen && allReadyOpen !== target) {\n return\n }\n\n const data = Data.get(target, DATA_KEY) || new Offcanvas(target)\n\n data.toggle(this)\n})\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n SelectorEngine.find(OPEN_SELECTOR).forEach(el => (Data.get(el, DATA_KEY) || new Offcanvas(el)).show())\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\ndefineJQueryPlugin(NAME, Offcanvas)\n\nexport default Offcanvas\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst uriAttrs = new Set([\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n])\n\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/i\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[\\d+/a-z]+=*$/i\n\nconst allowedAttribute = (attr, allowedAttributeList) => {\n const attrName = attr.nodeName.toLowerCase()\n\n if (allowedAttributeList.includes(attrName)) {\n if (uriAttrs.has(attrName)) {\n return Boolean(SAFE_URL_PATTERN.test(attr.nodeValue) || DATA_URL_PATTERN.test(attr.nodeValue))\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, len = regExp.length; i < len; i++) {\n if (regExp[i].test(attrName)) {\n return true\n }\n }\n\n return false\n}\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\nexport function sanitizeHtml(unsafeHtml, allowList, sanitizeFn) {\n if (!unsafeHtml.length) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const allowlistKeys = Object.keys(allowList)\n const elements = [].concat(...createdDocument.body.querySelectorAll('*'))\n\n for (let i = 0, len = elements.length; i < len; i++) {\n const el = elements[i]\n const elName = el.nodeName.toLowerCase()\n\n if (!allowlistKeys.includes(elName)) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n const attributeList = [].concat(...el.attributes)\n const allowedAttributes = [].concat(allowList['*'] || [], allowList[elName] || [])\n\n attributeList.forEach(attr => {\n if (!allowedAttribute(attr, allowedAttributes)) {\n el.removeAttribute(attr.nodeName)\n }\n })\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport * as Popper from '@popperjs/core'\n\nimport {\n defineJQueryPlugin,\n emulateTransitionEnd,\n findShadowRoot,\n getTransitionDurationFromElement,\n getUID,\n isElement,\n isRTL,\n noop,\n typeCheckConfig\n} from './util/index'\nimport {\n DefaultAllowlist,\n sanitizeHtml\n} from './util/sanitizer'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tooltip'\nconst DATA_KEY = 'bs.tooltip'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-tooltip'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\nconst DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn'])\n\nconst DefaultType = {\n animation: 'boolean',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string',\n delay: '(number|object)',\n html: 'boolean',\n selector: '(string|boolean)',\n placement: '(string|function)',\n offset: '(array|string|function)',\n container: '(string|element|boolean)',\n fallbackPlacements: 'array',\n boundary: '(string|element)',\n customClass: '(string|function)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n allowList: 'object',\n popperConfig: '(null|object|function)'\n}\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 animation: true,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"tooltip-arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div>' +\n '</div>',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n selector: false,\n placement: 'top',\n offset: [0, 0],\n container: false,\n fallbackPlacements: ['top', 'right', 'bottom', 'left'],\n boundary: 'clippingParents',\n customClass: '',\n sanitize: true,\n sanitizeFn: null,\n allowList: DefaultAllowlist,\n popperConfig: null\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_MODAL = 'modal'\nconst CLASS_NAME_SHOW = 'show'\n\nconst HOVER_STATE_SHOW = 'show'\nconst HOVER_STATE_OUT = 'out'\n\nconst SELECTOR_TOOLTIP_INNER = '.tooltip-inner'\n\nconst TRIGGER_HOVER = 'hover'\nconst TRIGGER_FOCUS = 'focus'\nconst TRIGGER_CLICK = 'click'\nconst TRIGGER_MANUAL = 'manual'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\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)\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const context = this._initializeOnDelegatedTarget(event)\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if (this.getTipElement().classList.contains(CLASS_NAME_SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n EventHandler.off(this._element, this.constructor.EVENT_KEY)\n EventHandler.off(this._element.closest(`.${CLASS_NAME_MODAL}`), 'hide.bs.modal', this._hideModalHandler)\n\n if (this.tip && this.tip.parentNode) {\n this.tip.parentNode.removeChild(this.tip)\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.config = null\n this.tip = null\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.Event.SHOW)\n const shadowRoot = findShadowRoot(this._element)\n const isInTheDom = shadowRoot === null ?\n this._element.ownerDocument.documentElement.contains(this._element) :\n shadowRoot.contains(this._element)\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this._element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n tip.classList.add(CLASS_NAME_FADE)\n }\n\n const placement = typeof this.config.placement === 'function' ?\n this.config.placement.call(this, tip, this._element) :\n this.config.placement\n\n const attachment = this._getAttachment(placement)\n this._addAttachmentClass(attachment)\n\n const container = this._getContainer()\n Data.set(tip, this.constructor.DATA_KEY, this)\n\n if (!this._element.ownerDocument.documentElement.contains(this.tip)) {\n container.appendChild(tip)\n EventHandler.trigger(this._element, this.constructor.Event.INSERTED)\n }\n\n if (this._popper) {\n this._popper.update()\n } else {\n this._popper = Popper.createPopper(this._element, tip, this._getPopperConfig(attachment))\n }\n\n tip.classList.add(CLASS_NAME_SHOW)\n\n const customClass = typeof this.config.customClass === 'function' ? this.config.customClass() : this.config.customClass\n if (customClass) {\n tip.classList.add(...customClass.split(' '))\n }\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 [].concat(...document.body.children).forEach(element => {\n EventHandler.on(element, 'mouseover', noop())\n })\n }\n\n const complete = () => {\n const prevHoverState = this._hoverState\n\n this._hoverState = null\n EventHandler.trigger(this._element, this.constructor.Event.SHOWN)\n\n if (prevHoverState === HOVER_STATE_OUT) {\n this._leave(null, this)\n }\n }\n\n if (this.tip.classList.contains(CLASS_NAME_FADE)) {\n const transitionDuration = getTransitionDurationFromElement(this.tip)\n EventHandler.one(this.tip, 'transitionend', complete)\n emulateTransitionEnd(this.tip, transitionDuration)\n } else {\n complete()\n }\n }\n\n hide() {\n if (!this._popper) {\n return\n }\n\n const tip = this.getTipElement()\n const complete = () => {\n if (this._isWithActiveTrigger()) {\n return\n }\n\n if (this._hoverState !== HOVER_STATE_SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this._element.removeAttribute('aria-describedby')\n EventHandler.trigger(this._element, this.constructor.Event.HIDDEN)\n\n if (this._popper) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n const hideEvent = EventHandler.trigger(this._element, this.constructor.Event.HIDE)\n if (hideEvent.defaultPrevented) {\n return\n }\n\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 [].concat(...document.body.children)\n .forEach(element => EventHandler.off(element, 'mouseover', noop))\n }\n\n this._activeTrigger[TRIGGER_CLICK] = false\n this._activeTrigger[TRIGGER_FOCUS] = false\n this._activeTrigger[TRIGGER_HOVER] = false\n\n if (this.tip.classList.contains(CLASS_NAME_FADE)) {\n const transitionDuration = getTransitionDurationFromElement(tip)\n\n EventHandler.one(tip, 'transitionend', complete)\n emulateTransitionEnd(tip, transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.update()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n getTipElement() {\n if (this.tip) {\n return this.tip\n }\n\n const element = document.createElement('div')\n element.innerHTML = this.config.template\n\n this.tip = element.children[0]\n return this.tip\n }\n\n setContent() {\n const tip = this.getTipElement()\n this.setElementContent(SelectorEngine.findOne(SELECTOR_TOOLTIP_INNER, tip), this.getTitle())\n tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW)\n }\n\n setElementContent(element, content) {\n if (element === null) {\n return\n }\n\n if (typeof content === 'object' && isElement(content)) {\n if (content.jquery) {\n content = content[0]\n }\n\n // content is a DOM node or a jQuery\n if (this.config.html) {\n if (content.parentNode !== element) {\n element.innerHTML = ''\n element.appendChild(content)\n }\n } else {\n element.textContent = content.textContent\n }\n\n return\n }\n\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.allowList, this.config.sanitizeFn)\n }\n\n element.innerHTML = content\n } else {\n element.textContent = content\n }\n }\n\n getTitle() {\n let title = this._element.getAttribute('data-bs-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function' ?\n this.config.title.call(this._element) :\n this.config.title\n }\n\n return title\n }\n\n updateAttachment(attachment) {\n if (attachment === 'right') {\n return 'end'\n }\n\n if (attachment === 'left') {\n return 'start'\n }\n\n return attachment\n }\n\n // Private\n\n _initializeOnDelegatedTarget(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.get(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(event.delegateTarget, this._getDelegateConfig())\n Data.set(event.delegateTarget, dataKey, context)\n }\n\n return context\n }\n\n _getOffset() {\n const { offset } = this.config\n\n if (typeof offset === 'string') {\n return offset.split(',').map(val => Number.parseInt(val, 10))\n }\n\n if (typeof offset === 'function') {\n return popperData => offset(popperData, this._element)\n }\n\n return offset\n }\n\n _getPopperConfig(attachment) {\n const defaultBsPopperConfig = {\n placement: attachment,\n modifiers: [\n {\n name: 'flip',\n options: {\n altBoundary: true,\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: 'onChange',\n enabled: true,\n phase: 'afterWrite',\n fn: data => this._handlePopperPlacementChange(data)\n }\n ],\n onFirstUpdate: data => {\n if (data.options.placement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n }\n }\n\n return {\n ...defaultBsPopperConfig,\n ...(typeof this.config.popperConfig === 'function' ? this.config.popperConfig(defaultBsPopperConfig) : this.config.popperConfig)\n }\n }\n\n _addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${this.updateAttachment(attachment)}`)\n }\n\n _getContainer() {\n if (this.config.container === false) {\n return document.body\n }\n\n if (isElement(this.config.container)) {\n return this.config.container\n }\n\n return SelectorEngine.findOne(this.config.container)\n }\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach(trigger => {\n if (trigger === 'click') {\n EventHandler.on(this._element, this.constructor.Event.CLICK, this.config.selector, event => this.toggle(event))\n } else if (trigger !== TRIGGER_MANUAL) {\n const eventIn = trigger === TRIGGER_HOVER ?\n this.constructor.Event.MOUSEENTER :\n this.constructor.Event.FOCUSIN\n const eventOut = trigger === TRIGGER_HOVER ?\n this.constructor.Event.MOUSELEAVE :\n this.constructor.Event.FOCUSOUT\n\n EventHandler.on(this._element, eventIn, this.config.selector, event => this._enter(event))\n EventHandler.on(this._element, eventOut, this.config.selector, event => this._leave(event))\n }\n })\n\n this._hideModalHandler = () => {\n if (this._element) {\n this.hide()\n }\n }\n\n EventHandler.on(this._element.closest(`.${CLASS_NAME_MODAL}`), 'hide.bs.modal', this._hideModalHandler)\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const title = this._element.getAttribute('title')\n const originalTitleType = typeof this._element.getAttribute('data-bs-original-title')\n\n if (title || originalTitleType !== 'string') {\n this._element.setAttribute('data-bs-original-title', title || '')\n if (title && !this._element.getAttribute('aria-label') && !this._element.textContent) {\n this._element.setAttribute('aria-label', title)\n }\n\n this._element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n context = this._initializeOnDelegatedTarget(event, context)\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER\n ] = true\n }\n\n if (context.getTipElement().classList.contains(CLASS_NAME_SHOW) || context._hoverState === HOVER_STATE_SHOW) {\n context._hoverState = HOVER_STATE_SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n context = this._initializeOnDelegatedTarget(event, context)\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER\n ] = context._element.contains(event.relatedTarget)\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this._element)\n\n Object.keys(dataAttributes).forEach(dataAttr => {\n if (DISALLOWED_ATTRIBUTES.has(dataAttr)) {\n delete dataAttributes[dataAttr]\n }\n })\n\n if (config && typeof config.container === 'object' && config.container.jquery) {\n config.container = config.container[0]\n }\n\n config = {\n ...this.constructor.Default,\n ...dataAttributes,\n ...(typeof config === 'object' && config ? config : {})\n }\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 typeCheckConfig(NAME, config, this.constructor.DefaultType)\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.allowList, config.sanitizeFn)\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n _handlePopperPlacementChange(popperData) {\n const { state } = popperData\n\n if (!state) {\n return\n }\n\n this.tip = state.elements.popper\n this._cleanTipClass()\n this._addAttachmentClass(this._getAttachment(state.placement))\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.get(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n }\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 * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Tooltip to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(NAME, Tooltip)\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { defineJQueryPlugin } from './util/index'\nimport Data from './dom/data'\nimport SelectorEngine from './dom/selector-engine'\nimport Tooltip from './tooltip'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'popover'\nconst DATA_KEY = 'bs.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-popover'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst Default = {\n ...Tooltip.Default,\n placement: 'right',\n offset: [0, 8],\n trigger: 'click',\n content: '',\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}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content: '(string|element|function)'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_TITLE = '.popover-header'\nconst SELECTOR_CONTENT = '.popover-body'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Popover extends Tooltip {\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n setContent() {\n const tip = this.getTipElement()\n\n // we use append for html objects to maintain js events\n this.setElementContent(SelectorEngine.findOne(SELECTOR_TITLE, tip), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this._element)\n }\n\n this.setElementContent(SelectorEngine.findOne(SELECTOR_CONTENT, tip), content)\n\n tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW)\n }\n\n // Private\n\n _addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${this.updateAttachment(attachment)}`)\n }\n\n _getContent() {\n return this._element.getAttribute('data-bs-content') || this.config.content\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.get(this, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n Data.set(this, DATA_KEY, data)\n }\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 * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Popover to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(NAME, Popover)\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n defineJQueryPlugin,\n getSelectorFromElement,\n getUID,\n isElement,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollspy'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n offset: 10,\n method: 'auto',\n target: ''\n}\n\nconst DefaultType = {\n offset: 'number',\n method: 'string',\n target: '(string|element)'\n}\n\nconst EVENT_ACTIVATE = `activate${EVENT_KEY}`\nconst EVENT_SCROLL = `scroll${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_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_DROPDOWN = '.dropdown'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\n\nconst METHOD_OFFSET = 'offset'\nconst METHOD_POSITION = 'position'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy extends BaseComponent {\n constructor(element, config) {\n super(element)\n this._scrollElement = this._element.tagName === 'BODY' ? window : this._element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${SELECTOR_NAV_LINKS}, ${this._config.target} ${SELECTOR_LIST_ITEMS}, ${this._config.target} .${CLASS_NAME_DROPDOWN_ITEM}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n EventHandler.on(this._scrollElement, EVENT_SCROLL, () => this._process())\n\n this.refresh()\n this._process()\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window ?\n METHOD_OFFSET :\n METHOD_POSITION\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod :\n this._config.method\n\n const offsetBase = offsetMethod === METHOD_POSITION ?\n this._getScrollTop() :\n 0\n\n this._offsets = []\n this._targets = []\n this._scrollHeight = this._getScrollHeight()\n\n const targets = SelectorEngine.find(this._selector)\n\n targets.map(element => {\n const targetSelector = getSelectorFromElement(element)\n const target = targetSelector ? SelectorEngine.findOne(targetSelector) : null\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n return [\n Manipulator[offsetMethod](target).top + offsetBase,\n targetSelector\n ]\n }\n }\n\n return null\n })\n .filter(item => item)\n .sort((a, b) => a[0] - b[0])\n .forEach(item => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n super.dispose()\n EventHandler.off(this._scrollElement, EVENT_KEY)\n\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (typeof config.target !== 'string' && isElement(config.target)) {\n let { id } = config.target\n if (!id) {\n id = getUID(NAME)\n config.target.id = id\n }\n\n config.target = `#${id}`\n }\n\n typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window ?\n this._scrollElement.pageYOffset :\n this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window ?\n window.innerHeight :\n this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n for (let i = this._offsets.length; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector.split(',')\n .map(selector => `${selector}[data-bs-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const link = SelectorEngine.findOne(queries.join(','))\n\n if (link.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) {\n SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE, link.closest(SELECTOR_DROPDOWN))\n .classList.add(CLASS_NAME_ACTIVE)\n\n link.classList.add(CLASS_NAME_ACTIVE)\n } else {\n // Set triggered link as active\n link.classList.add(CLASS_NAME_ACTIVE)\n\n SelectorEngine.parents(link, SELECTOR_NAV_LIST_GROUP)\n .forEach(listGroup => {\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 SelectorEngine.prev(listGroup, `${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`)\n .forEach(item => item.classList.add(CLASS_NAME_ACTIVE))\n\n // Handle special case when .nav-link is inside .nav-item\n SelectorEngine.prev(listGroup, SELECTOR_NAV_ITEMS)\n .forEach(navItem => {\n SelectorEngine.children(navItem, SELECTOR_NAV_LINKS)\n .forEach(item => item.classList.add(CLASS_NAME_ACTIVE))\n })\n })\n }\n\n EventHandler.trigger(this._scrollElement, EVENT_ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n SelectorEngine.find(this._selector)\n .filter(node => node.classList.contains(CLASS_NAME_ACTIVE))\n .forEach(node => node.classList.remove(CLASS_NAME_ACTIVE))\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.get(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n }\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 * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n SelectorEngine.find(SELECTOR_DATA_SPY)\n .forEach(spy => new ScrollSpy(spy, Manipulator.getDataAttributes(spy)))\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .ScrollSpy to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(NAME, ScrollSpy)\n\nexport default ScrollSpy\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n defineJQueryPlugin,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isDisabled,\n reflow\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tab'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\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}`\n\nconst CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_UL = ':scope > li > .active'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"tab\"], [data-bs-toggle=\"pill\"], [data-bs-toggle=\"list\"]'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\nconst SELECTOR_DROPDOWN_ACTIVE_CHILD = ':scope > .dropdown-menu .active'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tab extends BaseComponent {\n // Getters\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n show() {\n if ((this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n this._element.classList.contains(CLASS_NAME_ACTIVE)) ||\n isDisabled(this._element)) {\n return\n }\n\n let previous\n const target = getElementFromSelector(this._element)\n const listElement = this._element.closest(SELECTOR_NAV_LIST_GROUP)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE\n previous = SelectorEngine.find(itemSelector, listElement)\n previous = previous[previous.length - 1]\n }\n\n const hideEvent = previous ?\n EventHandler.trigger(previous, EVENT_HIDE, {\n relatedTarget: this._element\n }) :\n null\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, {\n relatedTarget: previous\n })\n\n if (showEvent.defaultPrevented || (hideEvent !== null && hideEvent.defaultPrevented)) {\n return\n }\n\n this._activate(this._element, listElement)\n\n const complete = () => {\n EventHandler.trigger(previous, EVENT_HIDDEN, {\n relatedTarget: this._element\n })\n EventHandler.trigger(this._element, EVENT_SHOWN, {\n relatedTarget: previous\n })\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n // Private\n\n _activate(element, container, callback) {\n const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ?\n SelectorEngine.find(SELECTOR_ACTIVE_UL, container) :\n SelectorEngine.children(container, SELECTOR_ACTIVE)\n\n const active = activeElements[0]\n const isTransitioning = callback && (active && active.classList.contains(CLASS_NAME_FADE))\n\n const complete = () => this._transitionComplete(element, active, callback)\n\n if (active && isTransitioning) {\n const transitionDuration = getTransitionDurationFromElement(active)\n active.classList.remove(CLASS_NAME_SHOW)\n\n EventHandler.one(active, 'transitionend', complete)\n emulateTransitionEnd(active, transitionDuration)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n active.classList.remove(CLASS_NAME_ACTIVE)\n\n const dropdownChild = SelectorEngine.findOne(SELECTOR_DROPDOWN_ACTIVE_CHILD, active.parentNode)\n\n if (dropdownChild) {\n dropdownChild.classList.remove(CLASS_NAME_ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n element.classList.add(CLASS_NAME_ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n reflow(element)\n\n if (element.classList.contains(CLASS_NAME_FADE)) {\n element.classList.add(CLASS_NAME_SHOW)\n }\n\n if (element.parentNode && element.parentNode.classList.contains(CLASS_NAME_DROPDOWN_MENU)) {\n const dropdownElement = element.closest(SELECTOR_DROPDOWN)\n\n if (dropdownElement) {\n SelectorEngine.find(SELECTOR_DROPDOWN_TOGGLE)\n .forEach(dropdown => dropdown.classList.add(CLASS_NAME_ACTIVE))\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Data.get(this, DATA_KEY) || new Tab(this)\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 * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault()\n\n const data = Data.get(this, DATA_KEY) || new Tab(this)\n data.show()\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Tab to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(NAME, Tab)\n\nexport default Tab\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n defineJQueryPlugin,\n emulateTransitionEnd,\n getTransitionDurationFromElement,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'toast'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_CLICK_DISMISS = `click.dismiss${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'\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\nconst SELECTOR_DATA_DISMISS = '[data-bs-dismiss=\"toast\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n }\n\n // Getters\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get Default() {\n return Default\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\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 this._element.classList.add(CLASS_NAME_SHOW)\n\n EventHandler.trigger(this._element, EVENT_SHOWN)\n\n if (this._config.autohide) {\n this._timeout = setTimeout(() => {\n this.hide()\n }, this._config.delay)\n }\n }\n\n this._element.classList.remove(CLASS_NAME_HIDE)\n reflow(this._element)\n this._element.classList.add(CLASS_NAME_SHOWING)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, 'transitionend', complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n hide() {\n if (!this._element.classList.contains(CLASS_NAME_SHOW)) {\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)\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n }\n\n this._element.classList.remove(CLASS_NAME_SHOW)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, 'transitionend', complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n dispose() {\n this._clearTimeout()\n\n if (this._element.classList.contains(CLASS_NAME_SHOW)) {\n this._element.classList.remove(CLASS_NAME_SHOW)\n }\n\n EventHandler.off(this._element, EVENT_CLICK_DISMISS)\n\n super.dispose()\n this._config = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...(typeof config === 'object' && config ? config : {})\n }\n\n typeCheckConfig(NAME, config, this.constructor.DefaultType)\n\n return config\n }\n\n _setListeners() {\n EventHandler.on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, () => this.hide())\n }\n\n _clearTimeout() {\n clearTimeout(this._timeout)\n this._timeout = null\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.get(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new Toast(this, _config)\n }\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 * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Toast to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(NAME, Toast)\n\nexport default Toast\n"],"names":["MAX_UID","MILLISECONDS_MULTIPLIER","TRANSITION_END","toType","obj","undefined","toString","call","match","toLowerCase","getUID","prefix","Math","floor","random","document","getElementById","getSelector","element","selector","getAttribute","hrefAttr","includes","startsWith","split","trim","getSelectorFromElement","querySelector","getElementFromSelector","getTransitionDurationFromElement","transitionDuration","transitionDelay","window","getComputedStyle","floatTransitionDuration","Number","parseFloat","floatTransitionDelay","triggerTransitionEnd","dispatchEvent","Event","isElement","nodeType","emulateTransitionEnd","duration","called","durationPadding","emulatedDuration","listener","removeEventListener","addEventListener","setTimeout","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","TypeError","toUpperCase","isVisible","style","parentNode","elementStyle","parentNodeStyle","display","visibility","isDisabled","Node","ELEMENT_NODE","classList","contains","disabled","hasAttribute","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","noop","reflow","offsetHeight","getjQuery","jQuery","body","onDOMContentLoaded","callback","readyState","isRTL","dir","defineJQueryPlugin","name","plugin","$","JQUERY_NO_CONFLICT","fn","jQueryInterface","Constructor","noConflict","elementMap","Map","set","key","instance","has","instanceMap","get","size","console","error","Array","from","remove","delete","namespaceRegex","stripNameRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","nativeEvents","Set","getUidEvent","uid","getEvent","bootstrapHandler","handler","event","delegateTarget","oneOff","EventHandler","off","type","apply","bootstrapDelegationHandler","domElements","querySelectorAll","target","i","length","findHandler","events","delegationSelector","uidEventList","len","originalHandler","normalizeParams","originalTypeEvent","delegationFn","delegation","typeEvent","replace","custom","isNative","addHandler","handlers","previousFn","removeHandler","Boolean","removeNamespacedHandlers","namespace","storeElementEvent","handlerKey","on","one","inNamespace","isNamespace","elementEvent","slice","keyHandlers","trigger","args","jQueryEvent","bubbles","nativeDispatch","defaultPrevented","evt","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","createEvent","initEvent","CustomEvent","cancelable","defineProperty","preventDefault","VERSION","BaseComponent","constructor","_element","Data","DATA_KEY","dispose","getInstance","NAME","EVENT_KEY","DATA_API_KEY","SELECTOR_DISMISS","EVENT_CLOSE","EVENT_CLOSED","EVENT_CLICK_DATA_API","CLASS_NAME_ALERT","CLASS_NAME_FADE","CLASS_NAME_SHOW","Alert","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","_removeElement","closest","_destroyElement","removeChild","each","data","handleDismiss","alertInstance","CLASS_NAME_ACTIVE","SELECTOR_DATA_TOGGLE","Button","toggle","setAttribute","button","normalizeData","val","normalizeDataKey","chr","Manipulator","setDataAttribute","removeDataAttribute","removeAttribute","getDataAttributes","attributes","dataset","filter","pureKey","charAt","getDataAttribute","offset","rect","getBoundingClientRect","top","scrollTop","left","scrollLeft","position","offsetTop","offsetLeft","NODE_TEXT","SelectorEngine","find","concat","Element","prototype","findOne","children","child","matches","parents","ancestor","push","prev","previous","previousElementSibling","next","nextElementSibling","ARROW_LEFT_KEY","ARROW_RIGHT_KEY","TOUCHEVENT_COMPAT_WAIT","SWIPE_THRESHOLD","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","ORDER_NEXT","ORDER_PREV","DIRECTION_LEFT","DIRECTION_RIGHT","EVENT_SLIDE","EVENT_SLID","EVENT_KEYDOWN","EVENT_MOUSEENTER","EVENT_MOUSELEAVE","EVENT_TOUCHSTART","EVENT_TOUCHMOVE","EVENT_TOUCHEND","EVENT_POINTERDOWN","EVENT_POINTERUP","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","CLASS_NAME_POINTER_EVENT","SELECTOR_ACTIVE","SELECTOR_ACTIVE_ITEM","SELECTOR_ITEM","SELECTOR_ITEM_IMG","SELECTOR_NEXT_PREV","SELECTOR_INDICATORS","SELECTOR_INDICATOR","SELECTOR_DATA_SLIDE","SELECTOR_DATA_RIDE","POINTER_TYPE_TOUCH","POINTER_TYPE_PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","_addEventListeners","_slide","nextWhenVisible","hidden","cycle","clearInterval","_updateInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","order","_handleSwipe","absDeltax","abs","direction","_keydown","_addTouchEventListeners","start","pointerType","clientX","touches","move","end","clearTimeout","itemImg","e","add","tagName","indexOf","_getItemByOrder","activeElement","isNext","isPrev","lastItemIndex","isGoingToWrap","delta","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","_setActiveIndicatorElement","activeIndicator","indicators","parseInt","elementInterval","defaultInterval","directionOrOrder","_directionToOrder","activeElementIndex","nextElement","nextElementIndex","isCycling","directionalClassName","orderClassName","_orderToDirection","slideEvent","carouselInterface","action","ride","dataApiClickHandler","slideIndex","carousels","parent","EVENT_SHOW","EVENT_SHOWN","EVENT_HIDE","EVENT_HIDDEN","CLASS_NAME_COLLAPSE","CLASS_NAME_COLLAPSING","CLASS_NAME_COLLAPSED","WIDTH","HEIGHT","SELECTOR_ACTIVES","Collapse","_isTransitioning","_triggerArray","id","toggleList","elem","filterElement","foundElem","_selector","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","container","tempActiveData","startEvent","elemActive","collapseInterface","dimension","_getDimension","setTransitioning","complete","capitalizedDimension","scrollSize","triggerArrayLength","isTransitioning","jquery","selected","triggerArray","isOpen","triggerData","selectorElements","ESCAPE_KEY","SPACE_KEY","TAB_KEY","ARROW_UP_KEY","ARROW_DOWN_KEY","RIGHT_MOUSE_BUTTON","REGEXP_KEYDOWN","EVENT_CLICK","EVENT_KEYDOWN_DATA_API","EVENT_KEYUP_DATA_API","CLASS_NAME_DISABLED","CLASS_NAME_DROPUP","CLASS_NAME_DROPEND","CLASS_NAME_DROPSTART","CLASS_NAME_NAVBAR","SELECTOR_MENU","SELECTOR_NAVBAR_NAV","SELECTOR_VISIBLE_ITEMS","PLACEMENT_TOP","PLACEMENT_TOPEND","PLACEMENT_BOTTOM","PLACEMENT_BOTTOMEND","PLACEMENT_RIGHT","PLACEMENT_LEFT","boundary","reference","popperConfig","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","isActive","clearMenus","getParentFromElement","showEvent","Popper","referenceElement","_getPopperConfig","isDisplayStatic","modifiers","modifier","enabled","createPopper","focus","hideEvent","destroy","update","_getPlacement","parentDropdown","isEnd","getPropertyValue","_getOffset","map","popperData","defaultBsPopperConfig","placement","options","dropdownInterface","toggles","context","clickEvent","dropdownMenu","some","composedPath","dataApiKeydownHandler","stopPropagation","click","items","backdrop","EVENT_HIDE_PREVENTED","EVENT_FOCUSIN","EVENT_RESIZE","EVENT_CLICK_DISMISS","EVENT_KEYDOWN_DISMISS","EVENT_MOUSEUP_DISMISS","EVENT_MOUSEDOWN_DISMISS","CLASS_NAME_SCROLLBAR_MEASURER","CLASS_NAME_BACKDROP","CLASS_NAME_OPEN","CLASS_NAME_STATIC","SELECTOR_DIALOG","SELECTOR_MODAL_BODY","SELECTOR_DATA_DISMISS","SELECTOR_FIXED_CONTENT","SELECTOR_STICKY_CONTENT","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_isAnimated","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","isAnimated","_hideModal","htmlElement","handleUpdate","modalBody","appendChild","_enforceFocus","transitionComplete","_triggerBackdropTransition","_resetAdjustments","_resetScrollbar","_removeBackdrop","createElement","className","currentTarget","backdropTransitionDuration","callbackRemove","isModalOverflowing","scrollHeight","clientHeight","overflowY","modalTransitionDuration","paddingLeft","paddingRight","round","right","innerWidth","_getScrollbarWidth","_setElementAttributes","calculatedValue","styleProp","clientWidth","actualValue","_resetElementAttributes","scrollDiv","scrollbarWidth","width","getWidth","documentWidth","overflow","reset","removeProperty","scroll","CLASS_NAME_BACKDROP_BODY","CLASS_NAME_TOGGLING","OPEN_SELECTOR","ACTIVE_SELECTOR","Offcanvas","scrollBarHide","completeCallBack","_enforceFocusOnElement","blur","completeCallback","scrollBarReset","allReadyOpen","el","uriAttrs","ARIA_ATTRIBUTE_PATTERN","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","attr","allowedAttributeList","attrName","nodeName","nodeValue","regExp","attrRegex","DefaultAllowlist","a","area","b","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","sanitizeHtml","unsafeHtml","allowList","sanitizeFn","domParser","DOMParser","createdDocument","parseFromString","allowlistKeys","elements","elName","attributeList","allowedAttributes","innerHTML","CLASS_PREFIX","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","html","fallbackPlacements","customClass","sanitize","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","CLASS_NAME_MODAL","HOVER_STATE_SHOW","HOVER_STATE_OUT","SELECTOR_TOOLTIP_INNER","TRIGGER_HOVER","TRIGGER_FOCUS","TRIGGER_CLICK","TRIGGER_MANUAL","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","_initializeOnDelegatedTarget","_isWithActiveTrigger","_enter","_leave","getTipElement","_hideModalHandler","Error","isWithContent","shadowRoot","isInTheDom","ownerDocument","tipId","setContent","attachment","_getAttachment","_addAttachmentClass","_getContainer","prevHoverState","_cleanTipClass","getTitle","setElementContent","content","textContent","updateAttachment","dataKey","_getDelegateConfig","altBoundary","phase","_handlePopperPlacementChange","onFirstUpdate","triggers","eventIn","eventOut","_fixTitle","originalTitleType","dataAttributes","dataAttr","tabClass","token","tClass","state","popper","SELECTOR_TITLE","SELECTOR_CONTENT","Popover","_getContent","method","EVENT_ACTIVATE","EVENT_SCROLL","CLASS_NAME_DROPDOWN_ITEM","SELECTOR_DATA_SPY","SELECTOR_NAV_LIST_GROUP","SELECTOR_NAV_LINKS","SELECTOR_NAV_ITEMS","SELECTOR_LIST_ITEMS","SELECTOR_DROPDOWN","SELECTOR_DROPDOWN_TOGGLE","METHOD_OFFSET","METHOD_POSITION","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targets","targetSelector","targetBCR","height","item","sort","pageYOffset","max","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","isActiveTarget","queries","link","join","listGroup","navItem","node","spy","CLASS_NAME_DROPDOWN_MENU","SELECTOR_ACTIVE_UL","SELECTOR_DROPDOWN_ACTIVE_CHILD","Tab","listElement","itemSelector","activeElements","active","_transitionComplete","dropdownChild","dropdownElement","dropdown","CLASS_NAME_HIDE","CLASS_NAME_SHOWING","autohide","Toast","_clearTimeout"],"mappings":"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"}
\ No newline at end of file diff --git a/dist/js/bootstrap.esm.min.js b/dist/js/bootstrap.esm.min.js index c41041244..011b31a03 100644 --- a/dist/js/bootstrap.esm.min.js +++ b/dist/js/bootstrap.esm.min.js @@ -1,7 +1,7 @@ /*! - * Bootstrap v5.0.0-alpha3 (https://getbootstrap.com/) - * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) + * Bootstrap v5.0.0-beta3 (https://getbootstrap.com/) + * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) */ -import Popper from"popper.js";function _defineProperties(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function _createClass(e,t,n){return t&&_defineProperties(e.prototype,t),n&&_defineProperties(e,n),e}function _extends(){return(_extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e}).apply(this,arguments)}function _inheritsLoose(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}var MAX_UID=1e6,MILLISECONDS_MULTIPLIER=1e3,TRANSITION_END="transitionend",toType=function(e){return null==e?""+e:{}.toString.call(e).match(/\s([a-z]+)/i)[1].toLowerCase()},getUID=function(e){do{e+=Math.floor(Math.random()*MAX_UID)}while(document.getElementById(e));return e},getSelector=function(e){var t=e.getAttribute("data-bs-target");if(!t||"#"===t){var n=e.getAttribute("href");t=n&&"#"!==n?n.trim():null}return t},getSelectorFromElement=function(e){var t=getSelector(e);return t&&document.querySelector(t)?t:null},getElementFromSelector=function(e){var t=getSelector(e);return t?document.querySelector(t):null},getTransitionDurationFromElement=function(e){if(!e)return 0;var t=window.getComputedStyle(e),n=t.transitionDuration,i=t.transitionDelay,o=Number.parseFloat(n),r=Number.parseFloat(i);return o||r?(n=n.split(",")[0],i=i.split(",")[0],(Number.parseFloat(n)+Number.parseFloat(i))*MILLISECONDS_MULTIPLIER):0},triggerTransitionEnd=function(e){e.dispatchEvent(new Event(TRANSITION_END))},isElement=function(e){return(e[0]||e).nodeType},emulateTransitionEnd=function(e,t){var n=!1,i=t+5;e.addEventListener(TRANSITION_END,(function t(){n=!0,e.removeEventListener(TRANSITION_END,t)})),setTimeout((function(){n||triggerTransitionEnd(e)}),i)},typeCheckConfig=function(e,t,n){Object.keys(n).forEach((function(i){var o=n[i],r=t[i],a=r&&isElement(r)?"element":toType(r);if(!new RegExp(o).test(a))throw new Error(e.toUpperCase()+': Option "'+i+'" provided type "'+a+'" but expected type "'+o+'".')}))},isVisible=function(e){if(!e)return!1;if(e.style&&e.parentNode&&e.parentNode.style){var t=getComputedStyle(e),n=getComputedStyle(e.parentNode);return"none"!==t.display&&"none"!==n.display&&"hidden"!==t.visibility}return!1},findShadowRoot=function e(t){if(!document.documentElement.attachShadow)return null;if("function"==typeof t.getRootNode){var n=t.getRootNode();return n instanceof ShadowRoot?n:null}return t instanceof ShadowRoot?t:t.parentNode?e(t.parentNode):null},noop=function(){return function(){}},reflow=function(e){return e.offsetHeight},getjQuery=function(){var e=window.jQuery;return e&&!document.body.hasAttribute("data-bs-no-jquery")?e:null},onDOMContentLoaded=function(e){"loading"===document.readyState?document.addEventListener("DOMContentLoaded",e):e()},isRTL="rtl"===document.documentElement.dir,mapData=function(){var e={},t=1;return{set:function(n,i,o){void 0===n.bsKey&&(n.bsKey={key:i,id:t},t++),e[n.bsKey.id]=o},get:function(t,n){if(!t||void 0===t.bsKey)return null;var i=t.bsKey;return i.key===n?e[i.id]:null},delete:function(t,n){if(void 0!==t.bsKey){var i=t.bsKey;i.key===n&&(delete e[i.id],delete t.bsKey)}}}}(),Data={setData:function(e,t,n){mapData.set(e,t,n)},getData:function(e,t){return mapData.get(e,t)},removeData:function(e,t){mapData.delete(e,t)}},namespaceRegex=/[^.]*(?=\..*)\.|.*/,stripNameRegex=/\..*/,stripUidRegex=/::\d+$/,eventRegistry={},uidEvent=1,customEvents={mouseenter:"mouseover",mouseleave:"mouseout"},nativeEvents=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function getUidEvent(e,t){return t&&t+"::"+uidEvent++||e.uidEvent||uidEvent++}function getEvent(e){var t=getUidEvent(e);return e.uidEvent=t,eventRegistry[t]=eventRegistry[t]||{},eventRegistry[t]}function bootstrapHandler(e,t){return function n(i){return i.delegateTarget=e,n.oneOff&&EventHandler.off(e,i.type,t),t.apply(e,[i])}}function bootstrapDelegationHandler(e,t,n){return function i(o){for(var r=e.querySelectorAll(t),a=o.target;a&&a!==this;a=a.parentNode)for(var s=r.length;s--;)if(r[s]===a)return o.delegateTarget=a,i.oneOff&&EventHandler.off(e,o.type,n),n.apply(a,[o]);return null}}function findHandler(e,t,n){void 0===n&&(n=null);for(var i=Object.keys(e),o=0,r=i.length;o<r;o++){var a=e[i[o]];if(a.originalHandler===t&&a.delegationSelector===n)return a}return null}function normalizeParams(e,t,n){var i="string"==typeof t,o=i?n:t,r=e.replace(stripNameRegex,""),a=customEvents[r];return a&&(r=a),nativeEvents.has(r)||(r=e),[i,o,r]}function addHandler(e,t,n,i,o){if("string"==typeof t&&e){n||(n=i,i=null);var r=normalizeParams(t,n,i),a=r[0],s=r[1],l=r[2],E=getEvent(e),_=E[l]||(E[l]={}),c=findHandler(_,s,a?n:null);if(c)c.oneOff=c.oneOff&&o;else{var u=getUidEvent(s,t.replace(namespaceRegex,"")),d=a?bootstrapDelegationHandler(e,n,i):bootstrapHandler(e,n);d.delegationSelector=a?n:null,d.originalHandler=s,d.oneOff=o,d.uidEvent=u,_[u]=d,e.addEventListener(l,d,a)}}}function removeHandler(e,t,n,i,o){var r=findHandler(t[n],i,o);r&&(e.removeEventListener(n,r,Boolean(o)),delete t[n][r.uidEvent])}function removeNamespacedHandlers(e,t,n,i){var o=t[n]||{};Object.keys(o).forEach((function(r){if(r.includes(i)){var a=o[r];removeHandler(e,t,n,a.originalHandler,a.delegationSelector)}}))}var EventHandler={on:function(e,t,n,i){addHandler(e,t,n,i,!1)},one:function(e,t,n,i){addHandler(e,t,n,i,!0)},off:function(e,t,n,i){if("string"==typeof t&&e){var o=normalizeParams(t,n,i),r=o[0],a=o[1],s=o[2],l=s!==t,E=getEvent(e),_=t.startsWith(".");if(void 0===a){_&&Object.keys(E).forEach((function(n){removeNamespacedHandlers(e,E,n,t.slice(1))}));var c=E[s]||{};Object.keys(c).forEach((function(n){var i=n.replace(stripUidRegex,"");if(!l||t.includes(i)){var o=c[n];removeHandler(e,E,s,o.originalHandler,o.delegationSelector)}}))}else{if(!E||!E[s])return;removeHandler(e,E,s,a,r?n:null)}}},trigger:function(e,t,n){if("string"!=typeof t||!e)return null;var i,o=getjQuery(),r=t.replace(stripNameRegex,""),a=t!==r,s=nativeEvents.has(r),l=!0,E=!0,_=!1,c=null;return a&&o&&(i=o.Event(t,n),o(e).trigger(i),l=!i.isPropagationStopped(),E=!i.isImmediatePropagationStopped(),_=i.isDefaultPrevented()),s?(c=document.createEvent("HTMLEvents")).initEvent(r,l,!0):c=new CustomEvent(t,{bubbles:l,cancelable:!0}),void 0!==n&&Object.keys(n).forEach((function(e){Object.defineProperty(c,e,{get:function(){return n[e]}})})),_&&c.preventDefault(),E&&e.dispatchEvent(c),c.defaultPrevented&&void 0!==i&&i.preventDefault(),c}},VERSION="5.0.0-alpha3",BaseComponent=function(){function e(e){e&&(this._element=e,Data.setData(e,this.constructor.DATA_KEY,this))}return e.prototype.dispose=function(){Data.removeData(this._element,this.constructor.DATA_KEY),this._element=null},e.getInstance=function(e){return Data.getData(e,this.DATA_KEY)},_createClass(e,null,[{key:"VERSION",get:function(){return VERSION}}]),e}(),NAME="alert",DATA_KEY="bs.alert",EVENT_KEY="."+DATA_KEY,DATA_API_KEY=".data-api",SELECTOR_DISMISS='[data-bs-dismiss="alert"]',EVENT_CLOSE="close"+EVENT_KEY,EVENT_CLOSED="closed"+EVENT_KEY,EVENT_CLICK_DATA_API="click"+EVENT_KEY+DATA_API_KEY,CLASSNAME_ALERT="alert",CLASSNAME_FADE="fade",CLASSNAME_SHOW="show",Alert=function(e){function t(){return e.apply(this,arguments)||this}_inheritsLoose(t,e);var n=t.prototype;return n.close=function(e){var t=e?this._getRootElement(e):this._element,n=this._triggerCloseEvent(t);null===n||n.defaultPrevented||this._removeElement(t)},n._getRootElement=function(e){return getElementFromSelector(e)||e.closest("."+CLASSNAME_ALERT)},n._triggerCloseEvent=function(e){return EventHandler.trigger(e,EVENT_CLOSE)},n._removeElement=function(e){var t=this;if(e.classList.remove(CLASSNAME_SHOW),e.classList.contains(CLASSNAME_FADE)){var n=getTransitionDurationFromElement(e);EventHandler.one(e,TRANSITION_END,(function(){return t._destroyElement(e)})),emulateTransitionEnd(e,n)}else this._destroyElement(e)},n._destroyElement=function(e){e.parentNode&&e.parentNode.removeChild(e),EventHandler.trigger(e,EVENT_CLOSED)},t.jQueryInterface=function(e){return this.each((function(){var n=Data.getData(this,DATA_KEY);n||(n=new t(this)),"close"===e&&n[e](this)}))},t.handleDismiss=function(e){return function(t){t&&t.preventDefault(),e.close(this)}},_createClass(t,null,[{key:"DATA_KEY",get:function(){return DATA_KEY}}]),t}(BaseComponent);EventHandler.on(document,EVENT_CLICK_DATA_API,SELECTOR_DISMISS,Alert.handleDismiss(new Alert)),onDOMContentLoaded((function(){var e=getjQuery();if(e){var t=e.fn[NAME];e.fn[NAME]=Alert.jQueryInterface,e.fn[NAME].Constructor=Alert,e.fn[NAME].noConflict=function(){return e.fn[NAME]=t,Alert.jQueryInterface}}}));var NAME$1="button",DATA_KEY$1="bs.button",EVENT_KEY$1="."+DATA_KEY$1,DATA_API_KEY$1=".data-api",CLASS_NAME_ACTIVE="active",SELECTOR_DATA_TOGGLE='[data-bs-toggle="button"]',EVENT_CLICK_DATA_API$1="click"+EVENT_KEY$1+DATA_API_KEY$1,Button=function(e){function t(){return e.apply(this,arguments)||this}return _inheritsLoose(t,e),t.prototype.toggle=function(){this._element.setAttribute("aria-pressed",this._element.classList.toggle(CLASS_NAME_ACTIVE))},t.jQueryInterface=function(e){return this.each((function(){var n=Data.getData(this,DATA_KEY$1);n||(n=new t(this)),"toggle"===e&&n[e]()}))},_createClass(t,null,[{key:"DATA_KEY",get:function(){return DATA_KEY$1}}]),t}(BaseComponent);function normalizeData(e){return"true"===e||"false"!==e&&(e===Number(e).toString()?Number(e):""===e||"null"===e?null:e)}function normalizeDataKey(e){return e.replace(/[A-Z]/g,(function(e){return"-"+e.toLowerCase()}))}EventHandler.on(document,EVENT_CLICK_DATA_API$1,SELECTOR_DATA_TOGGLE,(function(e){e.preventDefault();var t=e.target.closest(SELECTOR_DATA_TOGGLE),n=Data.getData(t,DATA_KEY$1);n||(n=new Button(t)),n.toggle()})),onDOMContentLoaded((function(){var e=getjQuery();if(e){var t=e.fn[NAME$1];e.fn[NAME$1]=Button.jQueryInterface,e.fn[NAME$1].Constructor=Button,e.fn[NAME$1].noConflict=function(){return e.fn[NAME$1]=t,Button.jQueryInterface}}}));var Manipulator={setDataAttribute:function(e,t,n){e.setAttribute("data-bs-"+normalizeDataKey(t),n)},removeDataAttribute:function(e,t){e.removeAttribute("data-bs-"+normalizeDataKey(t))},getDataAttributes:function(e){if(!e)return{};var t={};return Object.keys(e.dataset).filter((function(e){return e.startsWith("bs")})).forEach((function(n){var i=n.replace(/^bs/,"");i=i.charAt(0).toLowerCase()+i.slice(1,i.length),t[i]=normalizeData(e.dataset[n])})),t},getDataAttribute:function(e,t){return normalizeData(e.getAttribute("data-bs-"+normalizeDataKey(t)))},offset:function(e){var t=e.getBoundingClientRect();return{top:t.top+document.body.scrollTop,left:t.left+document.body.scrollLeft}},position:function(e){return{top:e.offsetTop,left:e.offsetLeft}}},NODE_TEXT=3,SelectorEngine={matches:function(e,t){return e.matches(t)},find:function(e,t){var n;return void 0===t&&(t=document.documentElement),(n=[]).concat.apply(n,Element.prototype.querySelectorAll.call(t,e))},findOne:function(e,t){return void 0===t&&(t=document.documentElement),Element.prototype.querySelector.call(t,e)},children:function(e,t){var n,i=(n=[]).concat.apply(n,e.children);return i.filter((function(e){return e.matches(t)}))},parents:function(e,t){for(var n=[],i=e.parentNode;i&&i.nodeType===Node.ELEMENT_NODE&&i.nodeType!==NODE_TEXT;)this.matches(i,t)&&n.push(i),i=i.parentNode;return n},prev:function(e,t){for(var n=e.previousElementSibling;n;){if(n.matches(t))return[n];n=n.previousElementSibling}return[]},next:function(e,t){for(var n=e.nextElementSibling;n;){if(this.matches(n,t))return[n];n=n.nextElementSibling}return[]}},NAME$2="carousel",DATA_KEY$2="bs.carousel",EVENT_KEY$2="."+DATA_KEY$2,DATA_API_KEY$2=".data-api",ARROW_LEFT_KEY="ArrowLeft",ARROW_RIGHT_KEY="ArrowRight",TOUCHEVENT_COMPAT_WAIT=500,SWIPE_THRESHOLD=40,Default={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},DefaultType={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},DIRECTION_NEXT="next",DIRECTION_PREV="prev",DIRECTION_LEFT="left",DIRECTION_RIGHT="right",EVENT_SLIDE="slide"+EVENT_KEY$2,EVENT_SLID="slid"+EVENT_KEY$2,EVENT_KEYDOWN="keydown"+EVENT_KEY$2,EVENT_MOUSEENTER="mouseenter"+EVENT_KEY$2,EVENT_MOUSELEAVE="mouseleave"+EVENT_KEY$2,EVENT_TOUCHSTART="touchstart"+EVENT_KEY$2,EVENT_TOUCHMOVE="touchmove"+EVENT_KEY$2,EVENT_TOUCHEND="touchend"+EVENT_KEY$2,EVENT_POINTERDOWN="pointerdown"+EVENT_KEY$2,EVENT_POINTERUP="pointerup"+EVENT_KEY$2,EVENT_DRAG_START="dragstart"+EVENT_KEY$2,EVENT_LOAD_DATA_API="load"+EVENT_KEY$2+DATA_API_KEY$2,EVENT_CLICK_DATA_API$2="click"+EVENT_KEY$2+DATA_API_KEY$2,CLASS_NAME_CAROUSEL="carousel",CLASS_NAME_ACTIVE$1="active",CLASS_NAME_SLIDE="slide",CLASS_NAME_END="carousel-item-end",CLASS_NAME_START="carousel-item-start",CLASS_NAME_NEXT="carousel-item-next",CLASS_NAME_PREV="carousel-item-prev",CLASS_NAME_POINTER_EVENT="pointer-event",SELECTOR_ACTIVE=".active",SELECTOR_ACTIVE_ITEM=".active.carousel-item",SELECTOR_ITEM=".carousel-item",SELECTOR_ITEM_IMG=".carousel-item img",SELECTOR_NEXT_PREV=".carousel-item-next, .carousel-item-prev",SELECTOR_INDICATORS=".carousel-indicators",SELECTOR_DATA_SLIDE="[data-bs-slide], [data-bs-slide-to]",SELECTOR_DATA_RIDE='[data-bs-ride="carousel"]',PointerType={TOUCH:"touch",PEN:"pen"},Carousel=function(e){function t(t,n){var i;return(i=e.call(this,t)||this)._items=null,i._interval=null,i._activeElement=null,i._isPaused=!1,i._isSliding=!1,i.touchTimeout=null,i.touchStartX=0,i.touchDeltaX=0,i._config=i._getConfig(n),i._indicatorsElement=SelectorEngine.findOne(SELECTOR_INDICATORS,i._element),i._touchSupported="ontouchstart"in document.documentElement||navigator.maxTouchPoints>0,i._pointerEvent=Boolean(window.PointerEvent),i._addEventListeners(),i}_inheritsLoose(t,e);var n=t.prototype;return n.next=function(){this._isSliding||this._slide(DIRECTION_NEXT)},n.nextWhenVisible=function(){!document.hidden&&isVisible(this._element)&&this.next()},n.prev=function(){this._isSliding||this._slide(DIRECTION_PREV)},n.pause=function(e){e||(this._isPaused=!0),SelectorEngine.findOne(SELECTOR_NEXT_PREV,this._element)&&(triggerTransitionEnd(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},n.cycle=function(e){e||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config&&this._config.interval&&!this._isPaused&&(this._updateInterval(),this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},n.to=function(e){var t=this;this._activeElement=SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM,this._element);var n=this._getItemIndex(this._activeElement);if(!(e>this._items.length-1||e<0))if(this._isSliding)EventHandler.one(this._element,EVENT_SLID,(function(){return t.to(e)}));else{if(n===e)return this.pause(),void this.cycle();var i=e>n?DIRECTION_NEXT:DIRECTION_PREV;this._slide(i,this._items[e])}},n.dispose=function(){e.prototype.dispose.call(this),EventHandler.off(this._element,EVENT_KEY$2),this._items=null,this._config=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},n._getConfig=function(e){return e=_extends({},Default,e),typeCheckConfig(NAME$2,e,DefaultType),e},n._handleSwipe=function(){var e=Math.abs(this.touchDeltaX);if(!(e<=SWIPE_THRESHOLD)){var t=e/this.touchDeltaX;this.touchDeltaX=0,t>0&&this.prev(),t<0&&this.next()}},n._addEventListeners=function(){var e=this;this._config.keyboard&&EventHandler.on(this._element,EVENT_KEYDOWN,(function(t){return e._keydown(t)})),"hover"===this._config.pause&&(EventHandler.on(this._element,EVENT_MOUSEENTER,(function(t){return e.pause(t)})),EventHandler.on(this._element,EVENT_MOUSELEAVE,(function(t){return e.cycle(t)}))),this._config.touch&&this._touchSupported&&this._addTouchEventListeners()},n._addTouchEventListeners=function(){var e=this,t=function(t){e._pointerEvent&&PointerType[t.pointerType.toUpperCase()]?e.touchStartX=t.clientX:e._pointerEvent||(e.touchStartX=t.touches[0].clientX)},n=function(t){e._pointerEvent&&PointerType[t.pointerType.toUpperCase()]&&(e.touchDeltaX=t.clientX-e.touchStartX),e._handleSwipe(),"hover"===e._config.pause&&(e.pause(),e.touchTimeout&&clearTimeout(e.touchTimeout),e.touchTimeout=setTimeout((function(t){return e.cycle(t)}),TOUCHEVENT_COMPAT_WAIT+e._config.interval))};SelectorEngine.find(SELECTOR_ITEM_IMG,this._element).forEach((function(e){EventHandler.on(e,EVENT_DRAG_START,(function(e){return e.preventDefault()}))})),this._pointerEvent?(EventHandler.on(this._element,EVENT_POINTERDOWN,(function(e){return t(e)})),EventHandler.on(this._element,EVENT_POINTERUP,(function(e){return n(e)})),this._element.classList.add(CLASS_NAME_POINTER_EVENT)):(EventHandler.on(this._element,EVENT_TOUCHSTART,(function(e){return t(e)})),EventHandler.on(this._element,EVENT_TOUCHMOVE,(function(t){return function(t){t.touches&&t.touches.length>1?e.touchDeltaX=0:e.touchDeltaX=t.touches[0].clientX-e.touchStartX}(t)})),EventHandler.on(this._element,EVENT_TOUCHEND,(function(e){return n(e)})))},n._keydown=function(e){if(!/input|textarea/i.test(e.target.tagName))switch(e.key){case ARROW_LEFT_KEY:e.preventDefault(),this.prev();break;case ARROW_RIGHT_KEY:e.preventDefault(),this.next()}},n._getItemIndex=function(e){return this._items=e&&e.parentNode?SelectorEngine.find(SELECTOR_ITEM,e.parentNode):[],this._items.indexOf(e)},n._getItemByDirection=function(e,t){var n=e===DIRECTION_NEXT,i=e===DIRECTION_PREV,o=this._getItemIndex(t),r=this._items.length-1;if((i&&0===o||n&&o===r)&&!this._config.wrap)return t;var a=(o+(e===DIRECTION_PREV?-1:1))%this._items.length;return-1===a?this._items[this._items.length-1]:this._items[a]},n._triggerSlideEvent=function(e,t){var n=this._getItemIndex(e),i=this._getItemIndex(SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM,this._element));return EventHandler.trigger(this._element,EVENT_SLIDE,{relatedTarget:e,direction:t,from:i,to:n})},n._setActiveIndicatorElement=function(e){if(this._indicatorsElement){for(var t=SelectorEngine.find(SELECTOR_ACTIVE,this._indicatorsElement),n=0;n<t.length;n++)t[n].classList.remove(CLASS_NAME_ACTIVE$1);var i=this._indicatorsElement.children[this._getItemIndex(e)];i&&i.classList.add(CLASS_NAME_ACTIVE$1)}},n._updateInterval=function(){var e=this._activeElement||SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM,this._element);if(e){var t=Number.parseInt(e.getAttribute("data-bs-interval"),10);t?(this._config.defaultInterval=this._config.defaultInterval||this._config.interval,this._config.interval=t):this._config.interval=this._config.defaultInterval||this._config.interval}},n._slide=function(e,t){var n,i,o,r=this,a=SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM,this._element),s=this._getItemIndex(a),l=t||a&&this._getItemByDirection(e,a),E=this._getItemIndex(l),_=Boolean(this._interval);if(e===DIRECTION_NEXT?(n=CLASS_NAME_START,i=CLASS_NAME_NEXT,o=DIRECTION_LEFT):(n=CLASS_NAME_END,i=CLASS_NAME_PREV,o=DIRECTION_RIGHT),l&&l.classList.contains(CLASS_NAME_ACTIVE$1))this._isSliding=!1;else if(!this._triggerSlideEvent(l,o).defaultPrevented&&a&&l){if(this._isSliding=!0,_&&this.pause(),this._setActiveIndicatorElement(l),this._activeElement=l,this._element.classList.contains(CLASS_NAME_SLIDE)){l.classList.add(i),reflow(l),a.classList.add(n),l.classList.add(n);var c=getTransitionDurationFromElement(a);EventHandler.one(a,TRANSITION_END,(function(){l.classList.remove(n,i),l.classList.add(CLASS_NAME_ACTIVE$1),a.classList.remove(CLASS_NAME_ACTIVE$1,i,n),r._isSliding=!1,setTimeout((function(){EventHandler.trigger(r._element,EVENT_SLID,{relatedTarget:l,direction:o,from:s,to:E})}),0)})),emulateTransitionEnd(a,c)}else a.classList.remove(CLASS_NAME_ACTIVE$1),l.classList.add(CLASS_NAME_ACTIVE$1),this._isSliding=!1,EventHandler.trigger(this._element,EVENT_SLID,{relatedTarget:l,direction:o,from:s,to:E});_&&this.cycle()}},t.carouselInterface=function(e,n){var i=Data.getData(e,DATA_KEY$2),o=_extends({},Default,Manipulator.getDataAttributes(e));"object"==typeof n&&(o=_extends({},o,n));var r="string"==typeof n?n:o.slide;if(i||(i=new t(e,o)),"number"==typeof n)i.to(n);else if("string"==typeof r){if(void 0===i[r])throw new TypeError('No method named "'+r+'"');i[r]()}else o.interval&&o.ride&&(i.pause(),i.cycle())},t.jQueryInterface=function(e){return this.each((function(){t.carouselInterface(this,e)}))},t.dataApiClickHandler=function(e){var n=getElementFromSelector(this);if(n&&n.classList.contains(CLASS_NAME_CAROUSEL)){var i=_extends({},Manipulator.getDataAttributes(n),Manipulator.getDataAttributes(this)),o=this.getAttribute("data-bs-slide-to");o&&(i.interval=!1),t.carouselInterface(n,i),o&&Data.getData(n,DATA_KEY$2).to(o),e.preventDefault()}},_createClass(t,null,[{key:"Default",get:function(){return Default}},{key:"DATA_KEY",get:function(){return DATA_KEY$2}}]),t}(BaseComponent);EventHandler.on(document,EVENT_CLICK_DATA_API$2,SELECTOR_DATA_SLIDE,Carousel.dataApiClickHandler),EventHandler.on(window,EVENT_LOAD_DATA_API,(function(){for(var e=SelectorEngine.find(SELECTOR_DATA_RIDE),t=0,n=e.length;t<n;t++)Carousel.carouselInterface(e[t],Data.getData(e[t],DATA_KEY$2))})),onDOMContentLoaded((function(){var e=getjQuery();if(e){var t=e.fn[NAME$2];e.fn[NAME$2]=Carousel.jQueryInterface,e.fn[NAME$2].Constructor=Carousel,e.fn[NAME$2].noConflict=function(){return e.fn[NAME$2]=t,Carousel.jQueryInterface}}}));var NAME$3="collapse",DATA_KEY$3="bs.collapse",EVENT_KEY$3="."+DATA_KEY$3,DATA_API_KEY$3=".data-api",Default$1={toggle:!0,parent:""},DefaultType$1={toggle:"boolean",parent:"(string|element)"},EVENT_SHOW="show"+EVENT_KEY$3,EVENT_SHOWN="shown"+EVENT_KEY$3,EVENT_HIDE="hide"+EVENT_KEY$3,EVENT_HIDDEN="hidden"+EVENT_KEY$3,EVENT_CLICK_DATA_API$3="click"+EVENT_KEY$3+DATA_API_KEY$3,CLASS_NAME_SHOW="show",CLASS_NAME_COLLAPSE="collapse",CLASS_NAME_COLLAPSING="collapsing",CLASS_NAME_COLLAPSED="collapsed",WIDTH="width",HEIGHT="height",SELECTOR_ACTIVES=".show, .collapsing",SELECTOR_DATA_TOGGLE$1='[data-bs-toggle="collapse"]',Collapse=function(e){function t(t,n){var i;(i=e.call(this,t)||this)._isTransitioning=!1,i._config=i._getConfig(n),i._triggerArray=SelectorEngine.find(SELECTOR_DATA_TOGGLE$1+'[href="#'+t.id+'"],'+SELECTOR_DATA_TOGGLE$1+'[data-bs-target="#'+t.id+'"]');for(var o=SelectorEngine.find(SELECTOR_DATA_TOGGLE$1),r=0,a=o.length;r<a;r++){var s=o[r],l=getSelectorFromElement(s),E=SelectorEngine.find(l).filter((function(e){return e===t}));null!==l&&E.length&&(i._selector=l,i._triggerArray.push(s))}return i._parent=i._config.parent?i._getParent():null,i._config.parent||i._addAriaAndCollapsedClass(i._element,i._triggerArray),i._config.toggle&&i.toggle(),i}_inheritsLoose(t,e);var n=t.prototype;return n.toggle=function(){this._element.classList.contains(CLASS_NAME_SHOW)?this.hide():this.show()},n.show=function(){var e=this;if(!this._isTransitioning&&!this._element.classList.contains(CLASS_NAME_SHOW)){var n,i;this._parent&&0===(n=SelectorEngine.find(SELECTOR_ACTIVES,this._parent).filter((function(t){return"string"==typeof e._config.parent?t.getAttribute("data-bs-parent")===e._config.parent:t.classList.contains(CLASS_NAME_COLLAPSE)}))).length&&(n=null);var o=SelectorEngine.findOne(this._selector);if(n){var r=n.find((function(e){return o!==e}));if((i=r?Data.getData(r,DATA_KEY$3):null)&&i._isTransitioning)return}if(!EventHandler.trigger(this._element,EVENT_SHOW).defaultPrevented){n&&n.forEach((function(e){o!==e&&t.collapseInterface(e,"hide"),i||Data.setData(e,DATA_KEY$3,null)}));var a=this._getDimension();this._element.classList.remove(CLASS_NAME_COLLAPSE),this._element.classList.add(CLASS_NAME_COLLAPSING),this._element.style[a]=0,this._triggerArray.length&&this._triggerArray.forEach((function(e){e.classList.remove(CLASS_NAME_COLLAPSED),e.setAttribute("aria-expanded",!0)})),this.setTransitioning(!0);var s="scroll"+(a[0].toUpperCase()+a.slice(1)),l=getTransitionDurationFromElement(this._element);EventHandler.one(this._element,TRANSITION_END,(function(){e._element.classList.remove(CLASS_NAME_COLLAPSING),e._element.classList.add(CLASS_NAME_COLLAPSE,CLASS_NAME_SHOW),e._element.style[a]="",e.setTransitioning(!1),EventHandler.trigger(e._element,EVENT_SHOWN)})),emulateTransitionEnd(this._element,l),this._element.style[a]=this._element[s]+"px"}}},n.hide=function(){var e=this;if(!this._isTransitioning&&this._element.classList.contains(CLASS_NAME_SHOW)&&!EventHandler.trigger(this._element,EVENT_HIDE).defaultPrevented){var t=this._getDimension();this._element.style[t]=this._element.getBoundingClientRect()[t]+"px",reflow(this._element),this._element.classList.add(CLASS_NAME_COLLAPSING),this._element.classList.remove(CLASS_NAME_COLLAPSE,CLASS_NAME_SHOW);var n=this._triggerArray.length;if(n>0)for(var i=0;i<n;i++){var o=this._triggerArray[i],r=getElementFromSelector(o);r&&!r.classList.contains(CLASS_NAME_SHOW)&&(o.classList.add(CLASS_NAME_COLLAPSED),o.setAttribute("aria-expanded",!1))}this.setTransitioning(!0);this._element.style[t]="";var a=getTransitionDurationFromElement(this._element);EventHandler.one(this._element,TRANSITION_END,(function(){e.setTransitioning(!1),e._element.classList.remove(CLASS_NAME_COLLAPSING),e._element.classList.add(CLASS_NAME_COLLAPSE),EventHandler.trigger(e._element,EVENT_HIDDEN)})),emulateTransitionEnd(this._element,a)}},n.setTransitioning=function(e){this._isTransitioning=e},n.dispose=function(){e.prototype.dispose.call(this),this._config=null,this._parent=null,this._triggerArray=null,this._isTransitioning=null},n._getConfig=function(e){return(e=_extends({},Default$1,e)).toggle=Boolean(e.toggle),typeCheckConfig(NAME$3,e,DefaultType$1),e},n._getDimension=function(){return this._element.classList.contains(WIDTH)?WIDTH:HEIGHT},n._getParent=function(){var e=this,t=this._config.parent;isElement(t)?void 0===t.jquery&&void 0===t[0]||(t=t[0]):t=SelectorEngine.findOne(t);var n=SELECTOR_DATA_TOGGLE$1+'[data-bs-parent="'+t+'"]';return SelectorEngine.find(n,t).forEach((function(t){var n=getElementFromSelector(t);e._addAriaAndCollapsedClass(n,[t])})),t},n._addAriaAndCollapsedClass=function(e,t){if(e&&t.length){var n=e.classList.contains(CLASS_NAME_SHOW);t.forEach((function(e){n?e.classList.remove(CLASS_NAME_COLLAPSED):e.classList.add(CLASS_NAME_COLLAPSED),e.setAttribute("aria-expanded",n)}))}},t.collapseInterface=function(e,n){var i=Data.getData(e,DATA_KEY$3),o=_extends({},Default$1,Manipulator.getDataAttributes(e),"object"==typeof n&&n?n:{});if(!i&&o.toggle&&"string"==typeof n&&/show|hide/.test(n)&&(o.toggle=!1),i||(i=new t(e,o)),"string"==typeof n){if(void 0===i[n])throw new TypeError('No method named "'+n+'"');i[n]()}},t.jQueryInterface=function(e){return this.each((function(){t.collapseInterface(this,e)}))},_createClass(t,null,[{key:"Default",get:function(){return Default$1}},{key:"DATA_KEY",get:function(){return DATA_KEY$3}}]),t}(BaseComponent);EventHandler.on(document,EVENT_CLICK_DATA_API$3,SELECTOR_DATA_TOGGLE$1,(function(e){"A"===e.target.tagName&&e.preventDefault();var t=Manipulator.getDataAttributes(this),n=getSelectorFromElement(this);SelectorEngine.find(n).forEach((function(e){var n,i=Data.getData(e,DATA_KEY$3);i?(null===i._parent&&"string"==typeof t.parent&&(i._config.parent=t.parent,i._parent=i._getParent()),n="toggle"):n=t,Collapse.collapseInterface(e,n)}))})),onDOMContentLoaded((function(){var e=getjQuery();if(e){var t=e.fn[NAME$3];e.fn[NAME$3]=Collapse.jQueryInterface,e.fn[NAME$3].Constructor=Collapse,e.fn[NAME$3].noConflict=function(){return e.fn[NAME$3]=t,Collapse.jQueryInterface}}}));var NAME$4="dropdown",DATA_KEY$4="bs.dropdown",EVENT_KEY$4="."+DATA_KEY$4,DATA_API_KEY$4=".data-api",ESCAPE_KEY="Escape",SPACE_KEY="Space",TAB_KEY="Tab",ARROW_UP_KEY="ArrowUp",ARROW_DOWN_KEY="ArrowDown",RIGHT_MOUSE_BUTTON=2,REGEXP_KEYDOWN=new RegExp(ARROW_UP_KEY+"|"+ARROW_DOWN_KEY+"|"+ESCAPE_KEY),EVENT_HIDE$1="hide"+EVENT_KEY$4,EVENT_HIDDEN$1="hidden"+EVENT_KEY$4,EVENT_SHOW$1="show"+EVENT_KEY$4,EVENT_SHOWN$1="shown"+EVENT_KEY$4,EVENT_CLICK="click"+EVENT_KEY$4,EVENT_CLICK_DATA_API$4="click"+EVENT_KEY$4+DATA_API_KEY$4,EVENT_KEYDOWN_DATA_API="keydown"+EVENT_KEY$4+DATA_API_KEY$4,EVENT_KEYUP_DATA_API="keyup"+EVENT_KEY$4+DATA_API_KEY$4,CLASS_NAME_DISABLED="disabled",CLASS_NAME_SHOW$1="show",CLASS_NAME_DROPUP="dropup",CLASS_NAME_DROPEND="dropend",CLASS_NAME_DROPSTART="dropstart",CLASS_NAME_MENUEND="dropdown-menu-end",CLASS_NAME_NAVBAR="navbar",CLASS_NAME_POSITION_STATIC="position-static",SELECTOR_DATA_TOGGLE$2='[data-bs-toggle="dropdown"]',SELECTOR_FORM_CHILD=".dropdown form",SELECTOR_MENU=".dropdown-menu",SELECTOR_NAVBAR_NAV=".navbar-nav",SELECTOR_VISIBLE_ITEMS=".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",PLACEMENT_TOP=isRTL?"top-end":"top-start",PLACEMENT_TOPEND=isRTL?"top-start":"top-end",PLACEMENT_BOTTOM=isRTL?"bottom-end":"bottom-start",PLACEMENT_BOTTOMEND=isRTL?"bottom-start":"bottom-end",PLACEMENT_RIGHT=isRTL?"left-start":"right-start",PLACEMENT_LEFT=isRTL?"right-start":"left-start",Default$2={offset:0,flip:!0,boundary:"scrollParent",reference:"toggle",display:"dynamic",popperConfig:null},DefaultType$2={offset:"(number|string|function)",flip:"boolean",boundary:"(string|element)",reference:"(string|element)",display:"string",popperConfig:"(null|object)"},Dropdown=function(e){function t(t,n){var i;return(i=e.call(this,t)||this)._popper=null,i._config=i._getConfig(n),i._menu=i._getMenuElement(),i._inNavbar=i._detectNavbar(),i._addEventListeners(),i}_inheritsLoose(t,e);var n=t.prototype;return n.toggle=function(){if(!this._element.disabled&&!this._element.classList.contains(CLASS_NAME_DISABLED)){var e=this._element.classList.contains(CLASS_NAME_SHOW$1);t.clearMenus(),e||this.show()}},n.show=function(){if(!(this._element.disabled||this._element.classList.contains(CLASS_NAME_DISABLED)||this._menu.classList.contains(CLASS_NAME_SHOW$1))){var e=t.getParentFromElement(this._element),n={relatedTarget:this._element};if(!EventHandler.trigger(this._element,EVENT_SHOW$1,n).defaultPrevented){if(!this._inNavbar){if(void 0===Popper)throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");var i=this._element;"parent"===this._config.reference?i=e:isElement(this._config.reference)&&(i=this._config.reference,void 0!==this._config.reference.jquery&&(i=this._config.reference[0])),"scrollParent"!==this._config.boundary&&e.classList.add(CLASS_NAME_POSITION_STATIC),this._popper=new Popper(i,this._menu,this._getPopperConfig())}var o;if("ontouchstart"in document.documentElement&&!e.closest(SELECTOR_NAVBAR_NAV))(o=[]).concat.apply(o,document.body.children).forEach((function(e){return EventHandler.on(e,"mouseover",null,noop())}));this._element.focus(),this._element.setAttribute("aria-expanded",!0),this._menu.classList.toggle(CLASS_NAME_SHOW$1),this._element.classList.toggle(CLASS_NAME_SHOW$1),EventHandler.trigger(e,EVENT_SHOWN$1,n)}}},n.hide=function(){if(!this._element.disabled&&!this._element.classList.contains(CLASS_NAME_DISABLED)&&this._menu.classList.contains(CLASS_NAME_SHOW$1)){var e=t.getParentFromElement(this._element),n={relatedTarget:this._element};EventHandler.trigger(e,EVENT_HIDE$1,n).defaultPrevented||(this._popper&&this._popper.destroy(),this._menu.classList.toggle(CLASS_NAME_SHOW$1),this._element.classList.toggle(CLASS_NAME_SHOW$1),EventHandler.trigger(e,EVENT_HIDDEN$1,n))}},n.dispose=function(){e.prototype.dispose.call(this),EventHandler.off(this._element,EVENT_KEY$4),this._menu=null,this._popper&&(this._popper.destroy(),this._popper=null)},n.update=function(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.scheduleUpdate()},n._addEventListeners=function(){var e=this;EventHandler.on(this._element,EVENT_CLICK,(function(t){t.preventDefault(),t.stopPropagation(),e.toggle()}))},n._getConfig=function(e){return e=_extends({},this.constructor.Default,Manipulator.getDataAttributes(this._element),e),typeCheckConfig(NAME$4,e,this.constructor.DefaultType),e},n._getMenuElement=function(){return SelectorEngine.next(this._element,SELECTOR_MENU)[0]},n._getPlacement=function(){var e=this._element.parentNode,t=PLACEMENT_BOTTOM;return e.classList.contains(CLASS_NAME_DROPUP)?t=this._menu.classList.contains(CLASS_NAME_MENUEND)?PLACEMENT_TOPEND:PLACEMENT_TOP:e.classList.contains(CLASS_NAME_DROPEND)?t=PLACEMENT_RIGHT:e.classList.contains(CLASS_NAME_DROPSTART)?t=PLACEMENT_LEFT:this._menu.classList.contains(CLASS_NAME_MENUEND)&&(t=PLACEMENT_BOTTOMEND),t},n._detectNavbar=function(){return Boolean(this._element.closest("."+CLASS_NAME_NAVBAR))},n._getOffset=function(){var e=this,t={};return"function"==typeof this._config.offset?t.fn=function(t){return t.offsets=_extends({},t.offsets,e._config.offset(t.offsets,e._element)||{}),t}:t.offset=this._config.offset,t},n._getPopperConfig=function(){var e={placement:this._getPlacement(),modifiers:{offset:this._getOffset(),flip:{enabled:this._config.flip},preventOverflow:{boundariesElement:this._config.boundary}}};return"static"===this._config.display&&(e.modifiers.applyStyle={enabled:!1}),_extends({},e,this._config.popperConfig)},t.dropdownInterface=function(e,n){var i=Data.getData(e,DATA_KEY$4);if(i||(i=new t(e,"object"==typeof n?n:null)),"string"==typeof n){if(void 0===i[n])throw new TypeError('No method named "'+n+'"');i[n]()}},t.jQueryInterface=function(e){return this.each((function(){t.dropdownInterface(this,e)}))},t.clearMenus=function(e){if(!e||e.button!==RIGHT_MOUSE_BUTTON&&("keyup"!==e.type||e.key===TAB_KEY))for(var n=SelectorEngine.find(SELECTOR_DATA_TOGGLE$2),i=0,o=n.length;i<o;i++){var r=t.getParentFromElement(n[i]),a=Data.getData(n[i],DATA_KEY$4),s={relatedTarget:n[i]};if(e&&"click"===e.type&&(s.clickEvent=e),a){var l=a._menu;if(n[i].classList.contains(CLASS_NAME_SHOW$1))if(!(e&&("click"===e.type&&/input|textarea/i.test(e.target.tagName)||"keyup"===e.type&&e.key===TAB_KEY)&&l.contains(e.target)))if(!EventHandler.trigger(r,EVENT_HIDE$1,s).defaultPrevented){var E;if("ontouchstart"in document.documentElement)(E=[]).concat.apply(E,document.body.children).forEach((function(e){return EventHandler.off(e,"mouseover",null,noop())}));n[i].setAttribute("aria-expanded","false"),a._popper&&a._popper.destroy(),l.classList.remove(CLASS_NAME_SHOW$1),n[i].classList.remove(CLASS_NAME_SHOW$1),EventHandler.trigger(r,EVENT_HIDDEN$1,s)}}}},t.getParentFromElement=function(e){return getElementFromSelector(e)||e.parentNode},t.dataApiKeydownHandler=function(e){if(!(/input|textarea/i.test(e.target.tagName)?e.key===SPACE_KEY||e.key!==ESCAPE_KEY&&(e.key!==ARROW_DOWN_KEY&&e.key!==ARROW_UP_KEY||e.target.closest(SELECTOR_MENU)):!REGEXP_KEYDOWN.test(e.key))&&(e.preventDefault(),e.stopPropagation(),!this.disabled&&!this.classList.contains(CLASS_NAME_DISABLED))){var n=t.getParentFromElement(this),i=this.classList.contains(CLASS_NAME_SHOW$1);if(e.key===ESCAPE_KEY)return(this.matches(SELECTOR_DATA_TOGGLE$2)?this:SelectorEngine.prev(this,SELECTOR_DATA_TOGGLE$2)[0]).focus(),void t.clearMenus();if(i&&e.key!==SPACE_KEY){var o=SelectorEngine.find(SELECTOR_VISIBLE_ITEMS,n).filter(isVisible);if(o.length){var r=o.indexOf(e.target);e.key===ARROW_UP_KEY&&r>0&&r--,e.key===ARROW_DOWN_KEY&&r<o.length-1&&r++,o[r=-1===r?0:r].focus()}}else t.clearMenus()}},_createClass(t,null,[{key:"Default",get:function(){return Default$2}},{key:"DefaultType",get:function(){return DefaultType$2}},{key:"DATA_KEY",get:function(){return DATA_KEY$4}}]),t}(BaseComponent);EventHandler.on(document,EVENT_KEYDOWN_DATA_API,SELECTOR_DATA_TOGGLE$2,Dropdown.dataApiKeydownHandler),EventHandler.on(document,EVENT_KEYDOWN_DATA_API,SELECTOR_MENU,Dropdown.dataApiKeydownHandler),EventHandler.on(document,EVENT_CLICK_DATA_API$4,Dropdown.clearMenus),EventHandler.on(document,EVENT_KEYUP_DATA_API,Dropdown.clearMenus),EventHandler.on(document,EVENT_CLICK_DATA_API$4,SELECTOR_DATA_TOGGLE$2,(function(e){e.preventDefault(),e.stopPropagation(),Dropdown.dropdownInterface(this,"toggle")})),EventHandler.on(document,EVENT_CLICK_DATA_API$4,SELECTOR_FORM_CHILD,(function(e){return e.stopPropagation()})),onDOMContentLoaded((function(){var e=getjQuery();if(e){var t=e.fn[NAME$4];e.fn[NAME$4]=Dropdown.jQueryInterface,e.fn[NAME$4].Constructor=Dropdown,e.fn[NAME$4].noConflict=function(){return e.fn[NAME$4]=t,Dropdown.jQueryInterface}}}));var NAME$5="modal",DATA_KEY$5="bs.modal",EVENT_KEY$5="."+DATA_KEY$5,DATA_API_KEY$5=".data-api",ESCAPE_KEY$1="Escape",Default$3={backdrop:!0,keyboard:!0,focus:!0},DefaultType$3={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean"},EVENT_HIDE$2="hide"+EVENT_KEY$5,EVENT_HIDE_PREVENTED="hidePrevented"+EVENT_KEY$5,EVENT_HIDDEN$2="hidden"+EVENT_KEY$5,EVENT_SHOW$2="show"+EVENT_KEY$5,EVENT_SHOWN$2="shown"+EVENT_KEY$5,EVENT_FOCUSIN="focusin"+EVENT_KEY$5,EVENT_RESIZE="resize"+EVENT_KEY$5,EVENT_CLICK_DISMISS="click.dismiss"+EVENT_KEY$5,EVENT_KEYDOWN_DISMISS="keydown.dismiss"+EVENT_KEY$5,EVENT_MOUSEUP_DISMISS="mouseup.dismiss"+EVENT_KEY$5,EVENT_MOUSEDOWN_DISMISS="mousedown.dismiss"+EVENT_KEY$5,EVENT_CLICK_DATA_API$5="click"+EVENT_KEY$5+DATA_API_KEY$5,CLASS_NAME_SCROLLBAR_MEASURER="modal-scrollbar-measure",CLASS_NAME_BACKDROP="modal-backdrop",CLASS_NAME_OPEN="modal-open",CLASS_NAME_FADE="fade",CLASS_NAME_SHOW$2="show",CLASS_NAME_STATIC="modal-static",SELECTOR_DIALOG=".modal-dialog",SELECTOR_MODAL_BODY=".modal-body",SELECTOR_DATA_TOGGLE$3='[data-bs-toggle="modal"]',SELECTOR_DATA_DISMISS='[data-bs-dismiss="modal"]',SELECTOR_FIXED_CONTENT=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",SELECTOR_STICKY_CONTENT=".sticky-top",Modal=function(e){function t(t,n){var i;return(i=e.call(this,t)||this)._config=i._getConfig(n),i._dialog=SelectorEngine.findOne(SELECTOR_DIALOG,t),i._backdrop=null,i._isShown=!1,i._isBodyOverflowing=!1,i._ignoreBackdropClick=!1,i._isTransitioning=!1,i._scrollbarWidth=0,i}_inheritsLoose(t,e);var n=t.prototype;return n.toggle=function(e){return this._isShown?this.hide():this.show(e)},n.show=function(e){var t=this;if(!this._isShown&&!this._isTransitioning){this._element.classList.contains(CLASS_NAME_FADE)&&(this._isTransitioning=!0);var n=EventHandler.trigger(this._element,EVENT_SHOW$2,{relatedTarget:e});this._isShown||n.defaultPrevented||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),this._adjustDialog(),this._setEscapeEvent(),this._setResizeEvent(),EventHandler.on(this._element,EVENT_CLICK_DISMISS,SELECTOR_DATA_DISMISS,(function(e){return t.hide(e)})),EventHandler.on(this._dialog,EVENT_MOUSEDOWN_DISMISS,(function(){EventHandler.one(t._element,EVENT_MOUSEUP_DISMISS,(function(e){e.target===t._element&&(t._ignoreBackdropClick=!0)}))})),this._showBackdrop((function(){return t._showElement(e)})))}},n.hide=function(e){var t=this;if((e&&e.preventDefault(),this._isShown&&!this._isTransitioning)&&!EventHandler.trigger(this._element,EVENT_HIDE$2).defaultPrevented){this._isShown=!1;var n=this._element.classList.contains(CLASS_NAME_FADE);if(n&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),EventHandler.off(document,EVENT_FOCUSIN),this._element.classList.remove(CLASS_NAME_SHOW$2),EventHandler.off(this._element,EVENT_CLICK_DISMISS),EventHandler.off(this._dialog,EVENT_MOUSEDOWN_DISMISS),n){var i=getTransitionDurationFromElement(this._element);EventHandler.one(this._element,TRANSITION_END,(function(e){return t._hideModal(e)})),emulateTransitionEnd(this._element,i)}else this._hideModal()}},n.dispose=function(){[window,this._element,this._dialog].forEach((function(e){return EventHandler.off(e,EVENT_KEY$5)})),e.prototype.dispose.call(this),EventHandler.off(document,EVENT_FOCUSIN),this._config=null,this._dialog=null,this._backdrop=null,this._isShown=null,this._isBodyOverflowing=null,this._ignoreBackdropClick=null,this._isTransitioning=null,this._scrollbarWidth=null},n.handleUpdate=function(){this._adjustDialog()},n._getConfig=function(e){return e=_extends({},Default$3,e),typeCheckConfig(NAME$5,e,DefaultType$3),e},n._showElement=function(e){var t=this,n=this._element.classList.contains(CLASS_NAME_FADE),i=SelectorEngine.findOne(SELECTOR_MODAL_BODY,this._dialog);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0,i&&(i.scrollTop=0),n&&reflow(this._element),this._element.classList.add(CLASS_NAME_SHOW$2),this._config.focus&&this._enforceFocus();var o=function(){t._config.focus&&t._element.focus(),t._isTransitioning=!1,EventHandler.trigger(t._element,EVENT_SHOWN$2,{relatedTarget:e})};if(n){var r=getTransitionDurationFromElement(this._dialog);EventHandler.one(this._dialog,TRANSITION_END,o),emulateTransitionEnd(this._dialog,r)}else o()},n._enforceFocus=function(){var e=this;EventHandler.off(document,EVENT_FOCUSIN),EventHandler.on(document,EVENT_FOCUSIN,(function(t){document===t.target||e._element===t.target||e._element.contains(t.target)||e._element.focus()}))},n._setEscapeEvent=function(){var e=this;this._isShown?EventHandler.on(this._element,EVENT_KEYDOWN_DISMISS,(function(t){e._config.keyboard&&t.key===ESCAPE_KEY$1?(t.preventDefault(),e.hide()):e._config.keyboard||t.key!==ESCAPE_KEY$1||e._triggerBackdropTransition()})):EventHandler.off(this._element,EVENT_KEYDOWN_DISMISS)},n._setResizeEvent=function(){var e=this;this._isShown?EventHandler.on(window,EVENT_RESIZE,(function(){return e._adjustDialog()})):EventHandler.off(window,EVENT_RESIZE)},n._hideModal=function(){var e=this;this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._showBackdrop((function(){document.body.classList.remove(CLASS_NAME_OPEN),e._resetAdjustments(),e._resetScrollbar(),EventHandler.trigger(e._element,EVENT_HIDDEN$2)}))},n._removeBackdrop=function(){this._backdrop.parentNode.removeChild(this._backdrop),this._backdrop=null},n._showBackdrop=function(e){var t=this,n=this._element.classList.contains(CLASS_NAME_FADE)?CLASS_NAME_FADE:"";if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className=CLASS_NAME_BACKDROP,n&&this._backdrop.classList.add(n),document.body.appendChild(this._backdrop),EventHandler.on(this._element,EVENT_CLICK_DISMISS,(function(e){t._ignoreBackdropClick?t._ignoreBackdropClick=!1:e.target===e.currentTarget&&("static"===t._config.backdrop?t._triggerBackdropTransition():t.hide())})),n&&reflow(this._backdrop),this._backdrop.classList.add(CLASS_NAME_SHOW$2),!n)return void e();var i=getTransitionDurationFromElement(this._backdrop);EventHandler.one(this._backdrop,TRANSITION_END,e),emulateTransitionEnd(this._backdrop,i)}else if(!this._isShown&&this._backdrop){this._backdrop.classList.remove(CLASS_NAME_SHOW$2);var o=function(){t._removeBackdrop(),e()};if(this._element.classList.contains(CLASS_NAME_FADE)){var r=getTransitionDurationFromElement(this._backdrop);EventHandler.one(this._backdrop,TRANSITION_END,o),emulateTransitionEnd(this._backdrop,r)}else o()}else e()},n._triggerBackdropTransition=function(){var e=this;if(!EventHandler.trigger(this._element,EVENT_HIDE_PREVENTED).defaultPrevented){var t=this._element.scrollHeight>document.documentElement.clientHeight;t||(this._element.style.overflowY="hidden"),this._element.classList.add(CLASS_NAME_STATIC);var n=getTransitionDurationFromElement(this._dialog);EventHandler.off(this._element,TRANSITION_END),EventHandler.one(this._element,TRANSITION_END,(function(){e._element.classList.remove(CLASS_NAME_STATIC),t||(EventHandler.one(e._element,TRANSITION_END,(function(){e._element.style.overflowY=""})),emulateTransitionEnd(e._element,n))})),emulateTransitionEnd(this._element,n),this._element.focus()}},n._adjustDialog=function(){var e=this._element.scrollHeight>document.documentElement.clientHeight;(!this._isBodyOverflowing&&e&&!isRTL||this._isBodyOverflowing&&!e&&isRTL)&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),(this._isBodyOverflowing&&!e&&!isRTL||!this._isBodyOverflowing&&e&&isRTL)&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},n._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},n._checkScrollbar=function(){var e=document.body.getBoundingClientRect();this._isBodyOverflowing=Math.round(e.left+e.right)<window.innerWidth,this._scrollbarWidth=this._getScrollbarWidth()},n._setScrollbar=function(){var e=this;if(this._isBodyOverflowing){SelectorEngine.find(SELECTOR_FIXED_CONTENT).forEach((function(t){var n=t.style.paddingRight,i=window.getComputedStyle(t)["padding-right"];Manipulator.setDataAttribute(t,"padding-right",n),t.style.paddingRight=Number.parseFloat(i)+e._scrollbarWidth+"px"})),SelectorEngine.find(SELECTOR_STICKY_CONTENT).forEach((function(t){var n=t.style.marginRight,i=window.getComputedStyle(t)["margin-right"];Manipulator.setDataAttribute(t,"margin-right",n),t.style.marginRight=Number.parseFloat(i)-e._scrollbarWidth+"px"}));var t=document.body.style.paddingRight,n=window.getComputedStyle(document.body)["padding-right"];Manipulator.setDataAttribute(document.body,"padding-right",t),document.body.style.paddingRight=Number.parseFloat(n)+this._scrollbarWidth+"px"}document.body.classList.add(CLASS_NAME_OPEN)},n._resetScrollbar=function(){SelectorEngine.find(SELECTOR_FIXED_CONTENT).forEach((function(e){var t=Manipulator.getDataAttribute(e,"padding-right");void 0!==t&&(Manipulator.removeDataAttribute(e,"padding-right"),e.style.paddingRight=t)})),SelectorEngine.find(""+SELECTOR_STICKY_CONTENT).forEach((function(e){var t=Manipulator.getDataAttribute(e,"margin-right");void 0!==t&&(Manipulator.removeDataAttribute(e,"margin-right"),e.style.marginRight=t)}));var e=Manipulator.getDataAttribute(document.body,"padding-right");void 0===e?document.body.style.paddingRight="":(Manipulator.removeDataAttribute(document.body,"padding-right"),document.body.style.paddingRight=e)},n._getScrollbarWidth=function(){var e=document.createElement("div");e.className=CLASS_NAME_SCROLLBAR_MEASURER,document.body.appendChild(e);var t=e.getBoundingClientRect().width-e.clientWidth;return document.body.removeChild(e),t},t.jQueryInterface=function(e,n){return this.each((function(){var i=Data.getData(this,DATA_KEY$5),o=_extends({},Default$3,Manipulator.getDataAttributes(this),"object"==typeof e&&e?e:{});if(i||(i=new t(this,o)),"string"==typeof e){if(void 0===i[e])throw new TypeError('No method named "'+e+'"');i[e](n)}}))},_createClass(t,null,[{key:"Default",get:function(){return Default$3}},{key:"DATA_KEY",get:function(){return DATA_KEY$5}}]),t}(BaseComponent);EventHandler.on(document,EVENT_CLICK_DATA_API$5,SELECTOR_DATA_TOGGLE$3,(function(e){var t=this,n=getElementFromSelector(this);"A"!==this.tagName&&"AREA"!==this.tagName||e.preventDefault(),EventHandler.one(n,EVENT_SHOW$2,(function(e){e.defaultPrevented||EventHandler.one(n,EVENT_HIDDEN$2,(function(){isVisible(t)&&t.focus()}))}));var i=Data.getData(n,DATA_KEY$5);if(!i){var o=_extends({},Manipulator.getDataAttributes(n),Manipulator.getDataAttributes(this));i=new Modal(n,o)}i.show(this)})),onDOMContentLoaded((function(){var e=getjQuery();if(e){var t=e.fn[NAME$5];e.fn[NAME$5]=Modal.jQueryInterface,e.fn[NAME$5].Constructor=Modal,e.fn[NAME$5].noConflict=function(){return e.fn[NAME$5]=t,Modal.jQueryInterface}}}));var uriAttrs=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),ARIA_ATTRIBUTE_PATTERN=/^aria-[\w-]*$/i,SAFE_URL_PATTERN=/^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi,DATA_URL_PATTERN=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i,allowedAttribute=function(e,t){var n=e.nodeName.toLowerCase();if(t.includes(n))return!uriAttrs.has(n)||Boolean(e.nodeValue.match(SAFE_URL_PATTERN)||e.nodeValue.match(DATA_URL_PATTERN));for(var i=t.filter((function(e){return e instanceof RegExp})),o=0,r=i.length;o<r;o++)if(n.match(i[o]))return!0;return!1},DefaultAllowlist={"*":["class","dir","id","lang","role",ARIA_ATTRIBUTE_PATTERN],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]};function sanitizeHtml(e,t,n){var i;if(!e.length)return e;if(n&&"function"==typeof n)return n(e);for(var o=(new window.DOMParser).parseFromString(e,"text/html"),r=Object.keys(t),a=(i=[]).concat.apply(i,o.body.querySelectorAll("*")),s=function(e,n){var i,o=a[e],s=o.nodeName.toLowerCase();if(!r.includes(s))return o.parentNode.removeChild(o),"continue";var l=(i=[]).concat.apply(i,o.attributes),E=[].concat(t["*"]||[],t[s]||[]);l.forEach((function(e){allowedAttribute(e,E)||o.removeAttribute(e.nodeName)}))},l=0,E=a.length;l<E;l++)s(l);return o.body.innerHTML}var NAME$6="tooltip",DATA_KEY$6="bs.tooltip",EVENT_KEY$6="."+DATA_KEY$6,CLASS_PREFIX="bs-tooltip",BSCLS_PREFIX_REGEX=new RegExp("(^|\\s)"+CLASS_PREFIX+"\\S+","g"),DISALLOWED_ATTRIBUTES=new Set(["sanitize","allowList","sanitizeFn"]),DefaultType$4={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(number|string|function)",container:"(string|element|boolean)",fallbackPlacement:"(string|array)",boundary:"(string|element)",customClass:"(string|function)",sanitize:"boolean",sanitizeFn:"(null|function)",allowList:"object",popperConfig:"(null|object)"},AttachmentMap={AUTO:"auto",TOP:"top",RIGHT:isRTL?"left":"right",BOTTOM:"bottom",LEFT:isRTL?"right":"left"},Default$4={animation:!0,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent",customClass:"",sanitize:!0,sanitizeFn:null,allowList:DefaultAllowlist,popperConfig:null},Event$1={HIDE:"hide"+EVENT_KEY$6,HIDDEN:"hidden"+EVENT_KEY$6,SHOW:"show"+EVENT_KEY$6,SHOWN:"shown"+EVENT_KEY$6,INSERTED:"inserted"+EVENT_KEY$6,CLICK:"click"+EVENT_KEY$6,FOCUSIN:"focusin"+EVENT_KEY$6,FOCUSOUT:"focusout"+EVENT_KEY$6,MOUSEENTER:"mouseenter"+EVENT_KEY$6,MOUSELEAVE:"mouseleave"+EVENT_KEY$6},CLASS_NAME_FADE$1="fade",CLASS_NAME_MODAL="modal",CLASS_NAME_SHOW$3="show",HOVER_STATE_SHOW="show",HOVER_STATE_OUT="out",SELECTOR_TOOLTIP_INNER=".tooltip-inner",TRIGGER_HOVER="hover",TRIGGER_FOCUS="focus",TRIGGER_CLICK="click",TRIGGER_MANUAL="manual",Tooltip=function(e){function t(t,n){var i;if(void 0===Popper)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");return(i=e.call(this,t)||this)._isEnabled=!0,i._timeout=0,i._hoverState="",i._activeTrigger={},i._popper=null,i.config=i._getConfig(n),i.tip=null,i._setListeners(),i}_inheritsLoose(t,e);var n=t.prototype;return n.enable=function(){this._isEnabled=!0},n.disable=function(){this._isEnabled=!1},n.toggleEnabled=function(){this._isEnabled=!this._isEnabled},n.toggle=function(e){if(this._isEnabled)if(e){var t=this.constructor.DATA_KEY,n=Data.getData(e.delegateTarget,t);n||(n=new this.constructor(e.delegateTarget,this._getDelegateConfig()),Data.setData(e.delegateTarget,t,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(this.getTipElement().classList.contains(CLASS_NAME_SHOW$3))return void this._leave(null,this);this._enter(null,this)}},n.dispose=function(){clearTimeout(this._timeout),EventHandler.off(this._element,this.constructor.EVENT_KEY),EventHandler.off(this._element.closest("."+CLASS_NAME_MODAL),"hide.bs.modal",this._hideModalHandler),this.tip&&this.tip.parentNode.removeChild(this.tip),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,this._popper&&this._popper.destroy(),this._popper=null,this.config=null,this.tip=null,e.prototype.dispose.call(this)},n.show=function(){var e=this;if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(this.isWithContent()&&this._isEnabled){var t=EventHandler.trigger(this._element,this.constructor.Event.SHOW),n=findShadowRoot(this._element),i=null===n?this._element.ownerDocument.documentElement.contains(this._element):n.contains(this._element);if(t.defaultPrevented||!i)return;var o=this.getTipElement(),r=getUID(this.constructor.NAME);o.setAttribute("id",r),this._element.setAttribute("aria-describedby",r),this.setContent(),this.config.animation&&o.classList.add(CLASS_NAME_FADE$1);var a="function"==typeof this.config.placement?this.config.placement.call(this,o,this._element):this.config.placement,s=this._getAttachment(a);this._addAttachmentClass(s);var l=this._getContainer();Data.setData(o,this.constructor.DATA_KEY,this),this._element.ownerDocument.documentElement.contains(this.tip)||l.appendChild(o),EventHandler.trigger(this._element,this.constructor.Event.INSERTED),this._popper=new Popper(this._element,o,this._getPopperConfig(s)),o.classList.add(CLASS_NAME_SHOW$3);var E,_,c="function"==typeof this.config.customClass?this.config.customClass():this.config.customClass;if(c)(E=o.classList).add.apply(E,c.split(" "));if("ontouchstart"in document.documentElement)(_=[]).concat.apply(_,document.body.children).forEach((function(e){EventHandler.on(e,"mouseover",noop())}));var u=function(){e.config.animation&&e._fixTransition();var t=e._hoverState;e._hoverState=null,EventHandler.trigger(e._element,e.constructor.Event.SHOWN),t===HOVER_STATE_OUT&&e._leave(null,e)};if(this.tip.classList.contains(CLASS_NAME_FADE$1)){var d=getTransitionDurationFromElement(this.tip);EventHandler.one(this.tip,TRANSITION_END,u),emulateTransitionEnd(this.tip,d)}else u()}},n.hide=function(){var e=this;if(this._popper){var t=this.getTipElement(),n=function(){e._hoverState!==HOVER_STATE_SHOW&&t.parentNode&&t.parentNode.removeChild(t),e._cleanTipClass(),e._element.removeAttribute("aria-describedby"),EventHandler.trigger(e._element,e.constructor.Event.HIDDEN),e._popper.destroy()};if(!EventHandler.trigger(this._element,this.constructor.Event.HIDE).defaultPrevented){var i;if(t.classList.remove(CLASS_NAME_SHOW$3),"ontouchstart"in document.documentElement)(i=[]).concat.apply(i,document.body.children).forEach((function(e){return EventHandler.off(e,"mouseover",noop)}));if(this._activeTrigger[TRIGGER_CLICK]=!1,this._activeTrigger[TRIGGER_FOCUS]=!1,this._activeTrigger[TRIGGER_HOVER]=!1,this.tip.classList.contains(CLASS_NAME_FADE$1)){var o=getTransitionDurationFromElement(t);EventHandler.one(t,TRANSITION_END,n),emulateTransitionEnd(t,o)}else n();this._hoverState=""}}},n.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},n.isWithContent=function(){return Boolean(this.getTitle())},n.getTipElement=function(){if(this.tip)return this.tip;var e=document.createElement("div");return e.innerHTML=this.config.template,this.tip=e.children[0],this.tip},n.setContent=function(){var e=this.getTipElement();this.setElementContent(SelectorEngine.findOne(SELECTOR_TOOLTIP_INNER,e),this.getTitle()),e.classList.remove(CLASS_NAME_FADE$1,CLASS_NAME_SHOW$3)},n.setElementContent=function(e,t){if(null!==e)return"object"==typeof t&&isElement(t)?(t.jquery&&(t=t[0]),void(this.config.html?t.parentNode!==e&&(e.innerHTML="",e.appendChild(t)):e.textContent=t.textContent)):void(this.config.html?(this.config.sanitize&&(t=sanitizeHtml(t,this.config.allowList,this.config.sanitizeFn)),e.innerHTML=t):e.textContent=t)},n.getTitle=function(){var e=this._element.getAttribute("data-bs-original-title");return e||(e="function"==typeof this.config.title?this.config.title.call(this._element):this.config.title),e},n.updateAttachment=function(e){return"right"===e?"end":"left"===e?"start":e},n._getPopperConfig=function(e){var t=this;return _extends({},{placement:e,modifiers:{offset:this._getOffset(),flip:{behavior:this.config.fallbackPlacement},arrow:{element:"."+this.constructor.NAME+"-arrow"},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(e){e.originalPlacement!==e.placement&&t._handlePopperPlacementChange(e)},onUpdate:function(e){return t._handlePopperPlacementChange(e)}},this.config.popperConfig)},n._addAttachmentClass=function(e){this.getTipElement().classList.add(CLASS_PREFIX+"-"+this.updateAttachment(e))},n._getOffset=function(){var e=this,t={};return"function"==typeof this.config.offset?t.fn=function(t){return t.offsets=_extends({},t.offsets,e.config.offset(t.offsets,e._element)||{}),t}:t.offset=this.config.offset,t},n._getContainer=function(){return!1===this.config.container?document.body:isElement(this.config.container)?this.config.container:SelectorEngine.findOne(this.config.container)},n._getAttachment=function(e){return AttachmentMap[e.toUpperCase()]},n._setListeners=function(){var e=this;this.config.trigger.split(" ").forEach((function(t){if("click"===t)EventHandler.on(e._element,e.constructor.Event.CLICK,e.config.selector,(function(t){return e.toggle(t)}));else if(t!==TRIGGER_MANUAL){var n=t===TRIGGER_HOVER?e.constructor.Event.MOUSEENTER:e.constructor.Event.FOCUSIN,i=t===TRIGGER_HOVER?e.constructor.Event.MOUSELEAVE:e.constructor.Event.FOCUSOUT;EventHandler.on(e._element,n,e.config.selector,(function(t){return e._enter(t)})),EventHandler.on(e._element,i,e.config.selector,(function(t){return e._leave(t)}))}})),this._hideModalHandler=function(){e._element&&e.hide()},EventHandler.on(this._element.closest("."+CLASS_NAME_MODAL),"hide.bs.modal",this._hideModalHandler),this.config.selector?this.config=_extends({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},n._fixTitle=function(){var e=this._element.getAttribute("title"),t=typeof this._element.getAttribute("data-bs-original-title");(e||"string"!==t)&&(this._element.setAttribute("data-bs-original-title",e||""),!e||this._element.getAttribute("aria-label")||this._element.textContent||this._element.setAttribute("aria-label",e),this._element.setAttribute("title",""))},n._enter=function(e,t){var n=this.constructor.DATA_KEY;(t=t||Data.getData(e.delegateTarget,n))||(t=new this.constructor(e.delegateTarget,this._getDelegateConfig()),Data.setData(e.delegateTarget,n,t)),e&&(t._activeTrigger["focusin"===e.type?TRIGGER_FOCUS:TRIGGER_HOVER]=!0),t.getTipElement().classList.contains(CLASS_NAME_SHOW$3)||t._hoverState===HOVER_STATE_SHOW?t._hoverState=HOVER_STATE_SHOW:(clearTimeout(t._timeout),t._hoverState=HOVER_STATE_SHOW,t.config.delay&&t.config.delay.show?t._timeout=setTimeout((function(){t._hoverState===HOVER_STATE_SHOW&&t.show()}),t.config.delay.show):t.show())},n._leave=function(e,t){var n=this.constructor.DATA_KEY;(t=t||Data.getData(e.delegateTarget,n))||(t=new this.constructor(e.delegateTarget,this._getDelegateConfig()),Data.setData(e.delegateTarget,n,t)),e&&(t._activeTrigger["focusout"===e.type?TRIGGER_FOCUS:TRIGGER_HOVER]=!1),t._isWithActiveTrigger()||(clearTimeout(t._timeout),t._hoverState=HOVER_STATE_OUT,t.config.delay&&t.config.delay.hide?t._timeout=setTimeout((function(){t._hoverState===HOVER_STATE_OUT&&t.hide()}),t.config.delay.hide):t.hide())},n._isWithActiveTrigger=function(){for(var e in this._activeTrigger)if(this._activeTrigger[e])return!0;return!1},n._getConfig=function(e){var t=Manipulator.getDataAttributes(this._element);return Object.keys(t).forEach((function(e){DISALLOWED_ATTRIBUTES.has(e)&&delete t[e]})),e&&"object"==typeof e.container&&e.container.jquery&&(e.container=e.container[0]),"number"==typeof(e=_extends({},this.constructor.Default,t,"object"==typeof e&&e?e:{})).delay&&(e.delay={show:e.delay,hide:e.delay}),"number"==typeof e.title&&(e.title=e.title.toString()),"number"==typeof e.content&&(e.content=e.content.toString()),typeCheckConfig(NAME$6,e,this.constructor.DefaultType),e.sanitize&&(e.template=sanitizeHtml(e.template,e.allowList,e.sanitizeFn)),e},n._getDelegateConfig=function(){var e={};if(this.config)for(var t in this.config)this.constructor.Default[t]!==this.config[t]&&(e[t]=this.config[t]);return e},n._cleanTipClass=function(){var e=this.getTipElement(),t=e.getAttribute("class").match(BSCLS_PREFIX_REGEX);null!==t&&t.length>0&&t.map((function(e){return e.trim()})).forEach((function(t){return e.classList.remove(t)}))},n._handlePopperPlacementChange=function(e){this.tip=e.instance.popper,this._cleanTipClass(),this._addAttachmentClass(this._getAttachment(e.placement))},n._fixTransition=function(){var e=this.getTipElement(),t=this.config.animation;null===e.getAttribute("x-placement")&&(e.classList.remove(CLASS_NAME_FADE$1),this.config.animation=!1,this.hide(),this.show(),this.config.animation=t)},t.jQueryInterface=function(e){return this.each((function(){var n=Data.getData(this,DATA_KEY$6),i="object"==typeof e&&e;if((n||!/dispose|hide/.test(e))&&(n||(n=new t(this,i)),"string"==typeof e)){if(void 0===n[e])throw new TypeError('No method named "'+e+'"');n[e]()}}))},_createClass(t,null,[{key:"Default",get:function(){return Default$4}},{key:"NAME",get:function(){return NAME$6}},{key:"DATA_KEY",get:function(){return DATA_KEY$6}},{key:"Event",get:function(){return Event$1}},{key:"EVENT_KEY",get:function(){return EVENT_KEY$6}},{key:"DefaultType",get:function(){return DefaultType$4}}]),t}(BaseComponent);onDOMContentLoaded((function(){var e=getjQuery();if(e){var t=e.fn[NAME$6];e.fn[NAME$6]=Tooltip.jQueryInterface,e.fn[NAME$6].Constructor=Tooltip,e.fn[NAME$6].noConflict=function(){return e.fn[NAME$6]=t,Tooltip.jQueryInterface}}}));var NAME$7="popover",DATA_KEY$7="bs.popover",EVENT_KEY$7="."+DATA_KEY$7,CLASS_PREFIX$1="bs-popover",BSCLS_PREFIX_REGEX$1=new RegExp("(^|\\s)"+CLASS_PREFIX$1+"\\S+","g"),Default$5=_extends({},Tooltip.Default,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="popover-arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'}),DefaultType$5=_extends({},Tooltip.DefaultType,{content:"(string|element|function)"}),Event$2={HIDE:"hide"+EVENT_KEY$7,HIDDEN:"hidden"+EVENT_KEY$7,SHOW:"show"+EVENT_KEY$7,SHOWN:"shown"+EVENT_KEY$7,INSERTED:"inserted"+EVENT_KEY$7,CLICK:"click"+EVENT_KEY$7,FOCUSIN:"focusin"+EVENT_KEY$7,FOCUSOUT:"focusout"+EVENT_KEY$7,MOUSEENTER:"mouseenter"+EVENT_KEY$7,MOUSELEAVE:"mouseleave"+EVENT_KEY$7},CLASS_NAME_FADE$2="fade",CLASS_NAME_SHOW$4="show",SELECTOR_TITLE=".popover-header",SELECTOR_CONTENT=".popover-body",Popover=function(e){function t(){return e.apply(this,arguments)||this}_inheritsLoose(t,e);var n=t.prototype;return n.isWithContent=function(){return this.getTitle()||this._getContent()},n.setContent=function(){var e=this.getTipElement();this.setElementContent(SelectorEngine.findOne(SELECTOR_TITLE,e),this.getTitle());var t=this._getContent();"function"==typeof t&&(t=t.call(this._element)),this.setElementContent(SelectorEngine.findOne(SELECTOR_CONTENT,e),t),e.classList.remove(CLASS_NAME_FADE$2,CLASS_NAME_SHOW$4)},n._addAttachmentClass=function(e){this.getTipElement().classList.add(CLASS_PREFIX$1+"-"+this.updateAttachment(e))},n._getContent=function(){return this._element.getAttribute("data-bs-content")||this.config.content},n._cleanTipClass=function(){var e=this.getTipElement(),t=e.getAttribute("class").match(BSCLS_PREFIX_REGEX$1);null!==t&&t.length>0&&t.map((function(e){return e.trim()})).forEach((function(t){return e.classList.remove(t)}))},t.jQueryInterface=function(e){return this.each((function(){var n=Data.getData(this,DATA_KEY$7),i="object"==typeof e?e:null;if((n||!/dispose|hide/.test(e))&&(n||(n=new t(this,i),Data.setData(this,DATA_KEY$7,n)),"string"==typeof e)){if(void 0===n[e])throw new TypeError('No method named "'+e+'"');n[e]()}}))},_createClass(t,null,[{key:"Default",get:function(){return Default$5}},{key:"NAME",get:function(){return NAME$7}},{key:"DATA_KEY",get:function(){return DATA_KEY$7}},{key:"Event",get:function(){return Event$2}},{key:"EVENT_KEY",get:function(){return EVENT_KEY$7}},{key:"DefaultType",get:function(){return DefaultType$5}}]),t}(Tooltip);onDOMContentLoaded((function(){var e=getjQuery();if(e){var t=e.fn[NAME$7];e.fn[NAME$7]=Popover.jQueryInterface,e.fn[NAME$7].Constructor=Popover,e.fn[NAME$7].noConflict=function(){return e.fn[NAME$7]=t,Popover.jQueryInterface}}}));var NAME$8="scrollspy",DATA_KEY$8="bs.scrollspy",EVENT_KEY$8="."+DATA_KEY$8,DATA_API_KEY$6=".data-api",Default$6={offset:10,method:"auto",target:""},DefaultType$6={offset:"number",method:"string",target:"(string|element)"},EVENT_ACTIVATE="activate"+EVENT_KEY$8,EVENT_SCROLL="scroll"+EVENT_KEY$8,EVENT_LOAD_DATA_API$1="load"+EVENT_KEY$8+DATA_API_KEY$6,CLASS_NAME_DROPDOWN_ITEM="dropdown-item",CLASS_NAME_ACTIVE$2="active",SELECTOR_DATA_SPY='[data-bs-spy="scroll"]',SELECTOR_NAV_LIST_GROUP=".nav, .list-group",SELECTOR_NAV_LINKS=".nav-link",SELECTOR_NAV_ITEMS=".nav-item",SELECTOR_LIST_ITEMS=".list-group-item",SELECTOR_DROPDOWN=".dropdown",SELECTOR_DROPDOWN_TOGGLE=".dropdown-toggle",METHOD_OFFSET="offset",METHOD_POSITION="position",ScrollSpy=function(e){function t(t,n){var i;return(i=e.call(this,t)||this)._scrollElement="BODY"===t.tagName?window:t,i._config=i._getConfig(n),i._selector=i._config.target+" "+SELECTOR_NAV_LINKS+", "+i._config.target+" "+SELECTOR_LIST_ITEMS+", "+i._config.target+" ."+CLASS_NAME_DROPDOWN_ITEM,i._offsets=[],i._targets=[],i._activeTarget=null,i._scrollHeight=0,EventHandler.on(i._scrollElement,EVENT_SCROLL,(function(e){return i._process(e)})),i.refresh(),i._process(),i}_inheritsLoose(t,e);var n=t.prototype;return n.refresh=function(){var e=this,t=this._scrollElement===this._scrollElement.window?METHOD_OFFSET:METHOD_POSITION,n="auto"===this._config.method?t:this._config.method,i=n===METHOD_POSITION?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),SelectorEngine.find(this._selector).map((function(e){var t=getSelectorFromElement(e),o=t?SelectorEngine.findOne(t):null;if(o){var r=o.getBoundingClientRect();if(r.width||r.height)return[Manipulator[n](o).top+i,t]}return null})).filter((function(e){return e})).sort((function(e,t){return e[0]-t[0]})).forEach((function(t){e._offsets.push(t[0]),e._targets.push(t[1])}))},n.dispose=function(){e.prototype.dispose.call(this),EventHandler.off(this._scrollElement,EVENT_KEY$8),this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},n._getConfig=function(e){if("string"!=typeof(e=_extends({},Default$6,"object"==typeof e&&e?e:{})).target&&isElement(e.target)){var t=e.target.id;t||(t=getUID(NAME$8),e.target.id=t),e.target="#"+t}return typeCheckConfig(NAME$8,e,DefaultType$6),e},n._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},n._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},n._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},n._process=function(){var e=this._getScrollTop()+this._config.offset,t=this._getScrollHeight(),n=this._config.offset+t-this._getOffsetHeight();if(this._scrollHeight!==t&&this.refresh(),e>=n){var i=this._targets[this._targets.length-1];this._activeTarget!==i&&this._activate(i)}else{if(this._activeTarget&&e<this._offsets[0]&&this._offsets[0]>0)return this._activeTarget=null,void this._clear();for(var o=this._offsets.length;o--;){this._activeTarget!==this._targets[o]&&e>=this._offsets[o]&&(void 0===this._offsets[o+1]||e<this._offsets[o+1])&&this._activate(this._targets[o])}}},n._activate=function(e){this._activeTarget=e,this._clear();var t=this._selector.split(",").map((function(t){return t+'[data-bs-target="'+e+'"],'+t+'[href="'+e+'"]'})),n=SelectorEngine.findOne(t.join(","));n.classList.contains(CLASS_NAME_DROPDOWN_ITEM)?(SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE,n.closest(SELECTOR_DROPDOWN)).classList.add(CLASS_NAME_ACTIVE$2),n.classList.add(CLASS_NAME_ACTIVE$2)):(n.classList.add(CLASS_NAME_ACTIVE$2),SelectorEngine.parents(n,SELECTOR_NAV_LIST_GROUP).forEach((function(e){SelectorEngine.prev(e,SELECTOR_NAV_LINKS+", "+SELECTOR_LIST_ITEMS).forEach((function(e){return e.classList.add(CLASS_NAME_ACTIVE$2)})),SelectorEngine.prev(e,SELECTOR_NAV_ITEMS).forEach((function(e){SelectorEngine.children(e,SELECTOR_NAV_LINKS).forEach((function(e){return e.classList.add(CLASS_NAME_ACTIVE$2)}))}))}))),EventHandler.trigger(this._scrollElement,EVENT_ACTIVATE,{relatedTarget:e})},n._clear=function(){SelectorEngine.find(this._selector).filter((function(e){return e.classList.contains(CLASS_NAME_ACTIVE$2)})).forEach((function(e){return e.classList.remove(CLASS_NAME_ACTIVE$2)}))},t.jQueryInterface=function(e){return this.each((function(){var n=Data.getData(this,DATA_KEY$8);if(n||(n=new t(this,"object"==typeof e&&e)),"string"==typeof e){if(void 0===n[e])throw new TypeError('No method named "'+e+'"');n[e]()}}))},_createClass(t,null,[{key:"Default",get:function(){return Default$6}},{key:"DATA_KEY",get:function(){return DATA_KEY$8}}]),t}(BaseComponent);EventHandler.on(window,EVENT_LOAD_DATA_API$1,(function(){SelectorEngine.find(SELECTOR_DATA_SPY).forEach((function(e){return new ScrollSpy(e,Manipulator.getDataAttributes(e))}))})),onDOMContentLoaded((function(){var e=getjQuery();if(e){var t=e.fn[NAME$8];e.fn[NAME$8]=ScrollSpy.jQueryInterface,e.fn[NAME$8].Constructor=ScrollSpy,e.fn[NAME$8].noConflict=function(){return e.fn[NAME$8]=t,ScrollSpy.jQueryInterface}}}));var NAME$9="tab",DATA_KEY$9="bs.tab",EVENT_KEY$9="."+DATA_KEY$9,DATA_API_KEY$7=".data-api",EVENT_HIDE$3="hide"+EVENT_KEY$9,EVENT_HIDDEN$3="hidden"+EVENT_KEY$9,EVENT_SHOW$3="show"+EVENT_KEY$9,EVENT_SHOWN$3="shown"+EVENT_KEY$9,EVENT_CLICK_DATA_API$6="click"+EVENT_KEY$9+DATA_API_KEY$7,CLASS_NAME_DROPDOWN_MENU="dropdown-menu",CLASS_NAME_ACTIVE$3="active",CLASS_NAME_DISABLED$1="disabled",CLASS_NAME_FADE$3="fade",CLASS_NAME_SHOW$5="show",SELECTOR_DROPDOWN$1=".dropdown",SELECTOR_NAV_LIST_GROUP$1=".nav, .list-group",SELECTOR_ACTIVE$1=".active",SELECTOR_ACTIVE_UL=":scope > li > .active",SELECTOR_DATA_TOGGLE$4='[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',SELECTOR_DROPDOWN_TOGGLE$1=".dropdown-toggle",SELECTOR_DROPDOWN_ACTIVE_CHILD=":scope > .dropdown-menu .active",Tab=function(e){function t(){return e.apply(this,arguments)||this}_inheritsLoose(t,e);var n=t.prototype;return n.show=function(){var e=this;if(!(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&this._element.classList.contains(CLASS_NAME_ACTIVE$3)||this._element.classList.contains(CLASS_NAME_DISABLED$1))){var t,n=getElementFromSelector(this._element),i=this._element.closest(SELECTOR_NAV_LIST_GROUP$1);if(i){var o="UL"===i.nodeName||"OL"===i.nodeName?SELECTOR_ACTIVE_UL:SELECTOR_ACTIVE$1;t=(t=SelectorEngine.find(o,i))[t.length-1]}var r=null;if(t&&(r=EventHandler.trigger(t,EVENT_HIDE$3,{relatedTarget:this._element})),!(EventHandler.trigger(this._element,EVENT_SHOW$3,{relatedTarget:t}).defaultPrevented||null!==r&&r.defaultPrevented)){this._activate(this._element,i);var a=function(){EventHandler.trigger(t,EVENT_HIDDEN$3,{relatedTarget:e._element}),EventHandler.trigger(e._element,EVENT_SHOWN$3,{relatedTarget:t})};n?this._activate(n,n.parentNode,a):a()}}},n._activate=function(e,t,n){var i=this,o=(!t||"UL"!==t.nodeName&&"OL"!==t.nodeName?SelectorEngine.children(t,SELECTOR_ACTIVE$1):SelectorEngine.find(SELECTOR_ACTIVE_UL,t))[0],r=n&&o&&o.classList.contains(CLASS_NAME_FADE$3),a=function(){return i._transitionComplete(e,o,n)};if(o&&r){var s=getTransitionDurationFromElement(o);o.classList.remove(CLASS_NAME_SHOW$5),EventHandler.one(o,TRANSITION_END,a),emulateTransitionEnd(o,s)}else a()},n._transitionComplete=function(e,t,n){if(t){t.classList.remove(CLASS_NAME_ACTIVE$3);var i=SelectorEngine.findOne(SELECTOR_DROPDOWN_ACTIVE_CHILD,t.parentNode);i&&i.classList.remove(CLASS_NAME_ACTIVE$3),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!1)}(e.classList.add(CLASS_NAME_ACTIVE$3),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!0),reflow(e),e.classList.contains(CLASS_NAME_FADE$3)&&e.classList.add(CLASS_NAME_SHOW$5),e.parentNode&&e.parentNode.classList.contains(CLASS_NAME_DROPDOWN_MENU))&&(e.closest(SELECTOR_DROPDOWN$1)&&SelectorEngine.find(SELECTOR_DROPDOWN_TOGGLE$1).forEach((function(e){return e.classList.add(CLASS_NAME_ACTIVE$3)})),e.setAttribute("aria-expanded",!0));n&&n()},t.jQueryInterface=function(e){return this.each((function(){var n=Data.getData(this,DATA_KEY$9)||new t(this);if("string"==typeof e){if(void 0===n[e])throw new TypeError('No method named "'+e+'"');n[e]()}}))},_createClass(t,null,[{key:"DATA_KEY",get:function(){return DATA_KEY$9}}]),t}(BaseComponent);EventHandler.on(document,EVENT_CLICK_DATA_API$6,SELECTOR_DATA_TOGGLE$4,(function(e){e.preventDefault(),(Data.getData(this,DATA_KEY$9)||new Tab(this)).show()})),onDOMContentLoaded((function(){var e=getjQuery();if(e){var t=e.fn[NAME$9];e.fn[NAME$9]=Tab.jQueryInterface,e.fn[NAME$9].Constructor=Tab,e.fn[NAME$9].noConflict=function(){return e.fn[NAME$9]=t,Tab.jQueryInterface}}}));var NAME$a="toast",DATA_KEY$a="bs.toast",EVENT_KEY$a="."+DATA_KEY$a,EVENT_CLICK_DISMISS$1="click.dismiss"+EVENT_KEY$a,EVENT_HIDE$4="hide"+EVENT_KEY$a,EVENT_HIDDEN$4="hidden"+EVENT_KEY$a,EVENT_SHOW$4="show"+EVENT_KEY$a,EVENT_SHOWN$4="shown"+EVENT_KEY$a,CLASS_NAME_FADE$4="fade",CLASS_NAME_HIDE="hide",CLASS_NAME_SHOW$6="show",CLASS_NAME_SHOWING="showing",DefaultType$7={animation:"boolean",autohide:"boolean",delay:"number"},Default$7={animation:!0,autohide:!0,delay:5e3},SELECTOR_DATA_DISMISS$1='[data-bs-dismiss="toast"]',Toast=function(e){function t(t,n){var i;return(i=e.call(this,t)||this)._config=i._getConfig(n),i._timeout=null,i._setListeners(),i}_inheritsLoose(t,e);var n=t.prototype;return n.show=function(){var e=this;if(!EventHandler.trigger(this._element,EVENT_SHOW$4).defaultPrevented){this._clearTimeout(),this._config.animation&&this._element.classList.add(CLASS_NAME_FADE$4);var t=function(){e._element.classList.remove(CLASS_NAME_SHOWING),e._element.classList.add(CLASS_NAME_SHOW$6),EventHandler.trigger(e._element,EVENT_SHOWN$4),e._config.autohide&&(e._timeout=setTimeout((function(){e.hide()}),e._config.delay))};if(this._element.classList.remove(CLASS_NAME_HIDE),reflow(this._element),this._element.classList.add(CLASS_NAME_SHOWING),this._config.animation){var n=getTransitionDurationFromElement(this._element);EventHandler.one(this._element,TRANSITION_END,t),emulateTransitionEnd(this._element,n)}else t()}},n.hide=function(){var e=this;if(this._element.classList.contains(CLASS_NAME_SHOW$6)&&!EventHandler.trigger(this._element,EVENT_HIDE$4).defaultPrevented){var t=function(){e._element.classList.add(CLASS_NAME_HIDE),EventHandler.trigger(e._element,EVENT_HIDDEN$4)};if(this._element.classList.remove(CLASS_NAME_SHOW$6),this._config.animation){var n=getTransitionDurationFromElement(this._element);EventHandler.one(this._element,TRANSITION_END,t),emulateTransitionEnd(this._element,n)}else t()}},n.dispose=function(){this._clearTimeout(),this._element.classList.contains(CLASS_NAME_SHOW$6)&&this._element.classList.remove(CLASS_NAME_SHOW$6),EventHandler.off(this._element,EVENT_CLICK_DISMISS$1),e.prototype.dispose.call(this),this._config=null},n._getConfig=function(e){return e=_extends({},Default$7,Manipulator.getDataAttributes(this._element),"object"==typeof e&&e?e:{}),typeCheckConfig(NAME$a,e,this.constructor.DefaultType),e},n._setListeners=function(){var e=this;EventHandler.on(this._element,EVENT_CLICK_DISMISS$1,SELECTOR_DATA_DISMISS$1,(function(){return e.hide()}))},n._clearTimeout=function(){clearTimeout(this._timeout),this._timeout=null},t.jQueryInterface=function(e){return this.each((function(){var n=Data.getData(this,DATA_KEY$a);if(n||(n=new t(this,"object"==typeof e&&e)),"string"==typeof e){if(void 0===n[e])throw new TypeError('No method named "'+e+'"');n[e](this)}}))},_createClass(t,null,[{key:"DefaultType",get:function(){return DefaultType$7}},{key:"Default",get:function(){return Default$7}},{key:"DATA_KEY",get:function(){return DATA_KEY$a}}]),t}(BaseComponent);onDOMContentLoaded((function(){var e=getjQuery();if(e){var t=e.fn[NAME$a];e.fn[NAME$a]=Toast.jQueryInterface,e.fn[NAME$a].Constructor=Toast,e.fn[NAME$a].noConflict=function(){return e.fn[NAME$a]=t,Toast.jQueryInterface}}}));export{Alert,Button,Carousel,Collapse,Dropdown,Modal,Popover,ScrollSpy,Tab,Toast,Tooltip}; +import*as Popper from"@popperjs/core";const MAX_UID=1e6,MILLISECONDS_MULTIPLIER=1e3,TRANSITION_END="transitionend",toType=e=>null==e?""+e:{}.toString.call(e).match(/\s([a-z]+)/i)[1].toLowerCase(),getUID=e=>{do{e+=Math.floor(1e6*Math.random())}while(document.getElementById(e));return e},getSelector=e=>{let t=e.getAttribute("data-bs-target");if(!t||"#"===t){let n=e.getAttribute("href");if(!n||!n.includes("#")&&!n.startsWith("."))return null;n.includes("#")&&!n.startsWith("#")&&(n="#"+n.split("#")[1]),t=n&&"#"!==n?n.trim():null}return t},getSelectorFromElement=e=>{const t=getSelector(e);return t&&document.querySelector(t)?t:null},getElementFromSelector=e=>{const t=getSelector(e);return t?document.querySelector(t):null},getTransitionDurationFromElement=e=>{if(!e)return 0;let{transitionDuration:t,transitionDelay:n}=window.getComputedStyle(e);const i=Number.parseFloat(t),s=Number.parseFloat(n);return i||s?(t=t.split(",")[0],n=n.split(",")[0],1e3*(Number.parseFloat(t)+Number.parseFloat(n))):0},triggerTransitionEnd=e=>{e.dispatchEvent(new Event(TRANSITION_END))},isElement=e=>(e[0]||e).nodeType,emulateTransitionEnd=(e,t)=>{let n=!1;const i=t+5;e.addEventListener(TRANSITION_END,(function t(){n=!0,e.removeEventListener(TRANSITION_END,t)})),setTimeout(()=>{n||triggerTransitionEnd(e)},i)},typeCheckConfig=(e,t,n)=>{Object.keys(n).forEach(i=>{const s=n[i],o=t[i],r=o&&isElement(o)?"element":null==(a=o)?""+a:{}.toString.call(a).match(/\s([a-z]+)/i)[1].toLowerCase();var a;if(!new RegExp(s).test(r))throw new TypeError(e.toUpperCase()+": "+`Option "${i}" provided type "${r}" `+`but expected type "${s}".`)})},isVisible=e=>{if(!e)return!1;if(e.style&&e.parentNode&&e.parentNode.style){const t=getComputedStyle(e),n=getComputedStyle(e.parentNode);return"none"!==t.display&&"none"!==n.display&&"hidden"!==t.visibility}return!1},isDisabled=e=>!e||e.nodeType!==Node.ELEMENT_NODE||!!e.classList.contains("disabled")||(void 0!==e.disabled?e.disabled:e.hasAttribute("disabled")&&"false"!==e.getAttribute("disabled")),findShadowRoot=e=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof e.getRootNode){const t=e.getRootNode();return t instanceof ShadowRoot?t:null}return e instanceof ShadowRoot?e:e.parentNode?findShadowRoot(e.parentNode):null},noop=()=>function(){},reflow=e=>e.offsetHeight,getjQuery=()=>{const{jQuery:e}=window;return e&&!document.body.hasAttribute("data-bs-no-jquery")?e:null},onDOMContentLoaded=e=>{"loading"===document.readyState?document.addEventListener("DOMContentLoaded",e):e()},isRTL=()=>"rtl"===document.documentElement.dir,defineJQueryPlugin=(e,t)=>{var n;n=()=>{const n=getjQuery();if(n){const i=n.fn[e];n.fn[e]=t.jQueryInterface,n.fn[e].Constructor=t,n.fn[e].noConflict=()=>(n.fn[e]=i,t.jQueryInterface)}},"loading"===document.readyState?document.addEventListener("DOMContentLoaded",n):n()},elementMap=new Map;var Data={set(e,t,n){elementMap.has(e)||elementMap.set(e,new Map);const i=elementMap.get(e);i.has(t)||0===i.size?i.set(t,n):console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(i.keys())[0]}.`)},get:(e,t)=>elementMap.has(e)&&elementMap.get(e).get(t)||null,remove(e,t){if(!elementMap.has(e))return;const n=elementMap.get(e);n.delete(t),0===n.size&&elementMap.delete(e)}};const namespaceRegex=/[^.]*(?=\..*)\.|.*/,stripNameRegex=/\..*/,stripUidRegex=/::\d+$/,eventRegistry={};let uidEvent=1;const customEvents={mouseenter:"mouseover",mouseleave:"mouseout"},nativeEvents=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function getUidEvent(e,t){return t&&`${t}::${uidEvent++}`||e.uidEvent||uidEvent++}function getEvent(e){const t=getUidEvent(e);return e.uidEvent=t,eventRegistry[t]=eventRegistry[t]||{},eventRegistry[t]}function bootstrapHandler(e,t){return function n(i){return i.delegateTarget=e,n.oneOff&&EventHandler.off(e,i.type,t),t.apply(e,[i])}}function bootstrapDelegationHandler(e,t,n){return function i(s){const o=e.querySelectorAll(t);for(let{target:t}=s;t&&t!==this;t=t.parentNode)for(let r=o.length;r--;)if(o[r]===t)return s.delegateTarget=t,i.oneOff&&EventHandler.off(e,s.type,n),n.apply(t,[s]);return null}}function findHandler(e,t,n=null){const i=Object.keys(e);for(let s=0,o=i.length;s<o;s++){const o=e[i[s]];if(o.originalHandler===t&&o.delegationSelector===n)return o}return null}function normalizeParams(e,t,n){const i="string"==typeof t,s=i?n:t;let o=e.replace(stripNameRegex,"");const r=customEvents[o];return r&&(o=r),nativeEvents.has(o)||(o=e),[i,s,o]}function addHandler(e,t,n,i,s){if("string"!=typeof t||!e)return;n||(n=i,i=null);const[o,r,a]=normalizeParams(t,n,i),l=getEvent(e),c=l[a]||(l[a]={}),E=findHandler(c,r,o?n:null);if(E)return void(E.oneOff=E.oneOff&&s);const d=getUidEvent(r,t.replace(namespaceRegex,"")),_=o?bootstrapDelegationHandler(e,n,i):bootstrapHandler(e,n);_.delegationSelector=o?n:null,_.originalHandler=r,_.oneOff=s,_.uidEvent=d,c[d]=_,e.addEventListener(a,_,o)}function removeHandler(e,t,n,i,s){const o=findHandler(t[n],i,s);o&&(e.removeEventListener(n,o,Boolean(s)),delete t[n][o.uidEvent])}function removeNamespacedHandlers(e,t,n,i){const s=t[n]||{};Object.keys(s).forEach(o=>{if(o.includes(i)){const i=s[o];removeHandler(e,t,n,i.originalHandler,i.delegationSelector)}})}const EventHandler={on(e,t,n,i){addHandler(e,t,n,i,!1)},one(e,t,n,i){addHandler(e,t,n,i,!0)},off(e,t,n,i){if("string"!=typeof t||!e)return;const[s,o,r]=normalizeParams(t,n,i),a=r!==t,l=getEvent(e),c=t.startsWith(".");if(void 0!==o){if(!l||!l[r])return;return void removeHandler(e,l,r,o,s?n:null)}c&&Object.keys(l).forEach(n=>{removeNamespacedHandlers(e,l,n,t.slice(1))});const E=l[r]||{};Object.keys(E).forEach(n=>{const i=n.replace(stripUidRegex,"");if(!a||t.includes(i)){const t=E[n];removeHandler(e,l,r,t.originalHandler,t.delegationSelector)}})},trigger(e,t,n){if("string"!=typeof t||!e)return null;const i=getjQuery(),s=t.replace(stripNameRegex,""),o=t!==s,r=nativeEvents.has(s);let a,l=!0,c=!0,E=!1,d=null;return o&&i&&(a=i.Event(t,n),i(e).trigger(a),l=!a.isPropagationStopped(),c=!a.isImmediatePropagationStopped(),E=a.isDefaultPrevented()),r?(d=document.createEvent("HTMLEvents"),d.initEvent(s,l,!0)):d=new CustomEvent(t,{bubbles:l,cancelable:!0}),void 0!==n&&Object.keys(n).forEach(e=>{Object.defineProperty(d,e,{get:()=>n[e]})}),E&&d.preventDefault(),c&&e.dispatchEvent(d),d.defaultPrevented&&void 0!==a&&a.preventDefault(),d}},VERSION="5.0.0-beta3";class BaseComponent{constructor(e){(e="string"==typeof e?document.querySelector(e):e)&&(this._element=e,Data.set(this._element,this.constructor.DATA_KEY,this))}dispose(){Data.remove(this._element,this.constructor.DATA_KEY),this._element=null}static getInstance(e){return Data.get(e,this.DATA_KEY)}static get VERSION(){return VERSION}}const NAME$b="alert",DATA_KEY$b="bs.alert",EVENT_KEY$b=".bs.alert",DATA_API_KEY$8=".data-api",SELECTOR_DISMISS='[data-bs-dismiss="alert"]',EVENT_CLOSE="close.bs.alert",EVENT_CLOSED="closed.bs.alert",EVENT_CLICK_DATA_API$7="click.bs.alert.data-api",CLASS_NAME_ALERT="alert",CLASS_NAME_FADE$5="fade",CLASS_NAME_SHOW$8="show";class Alert extends BaseComponent{static get DATA_KEY(){return"bs.alert"}close(e){const t=e?this._getRootElement(e):this._element,n=this._triggerCloseEvent(t);null===n||n.defaultPrevented||this._removeElement(t)}_getRootElement(e){return getElementFromSelector(e)||e.closest(".alert")}_triggerCloseEvent(e){return EventHandler.trigger(e,EVENT_CLOSE)}_removeElement(e){if(e.classList.remove("show"),!e.classList.contains("fade"))return void this._destroyElement(e);const t=getTransitionDurationFromElement(e);EventHandler.one(e,"transitionend",()=>this._destroyElement(e)),emulateTransitionEnd(e,t)}_destroyElement(e){e.parentNode&&e.parentNode.removeChild(e),EventHandler.trigger(e,EVENT_CLOSED)}static jQueryInterface(e){return this.each((function(){let t=Data.get(this,"bs.alert");t||(t=new Alert(this)),"close"===e&&t[e](this)}))}static handleDismiss(e){return function(t){t&&t.preventDefault(),e.close(this)}}}EventHandler.on(document,EVENT_CLICK_DATA_API$7,SELECTOR_DISMISS,Alert.handleDismiss(new Alert)),defineJQueryPlugin(NAME$b,Alert);const NAME$a="button",DATA_KEY$a="bs.button",EVENT_KEY$a=".bs.button",DATA_API_KEY$7=".data-api",CLASS_NAME_ACTIVE$3="active",SELECTOR_DATA_TOGGLE$5='[data-bs-toggle="button"]',EVENT_CLICK_DATA_API$6="click.bs.button.data-api";class Button extends BaseComponent{static get DATA_KEY(){return DATA_KEY$a}toggle(){this._element.setAttribute("aria-pressed",this._element.classList.toggle("active"))}static jQueryInterface(e){return this.each((function(){let t=Data.get(this,DATA_KEY$a);t||(t=new Button(this)),"toggle"===e&&t[e]()}))}}function normalizeData(e){return"true"===e||"false"!==e&&(e===Number(e).toString()?Number(e):""===e||"null"===e?null:e)}function normalizeDataKey(e){return e.replace(/[A-Z]/g,e=>"-"+e.toLowerCase())}EventHandler.on(document,EVENT_CLICK_DATA_API$6,SELECTOR_DATA_TOGGLE$5,e=>{e.preventDefault();const t=e.target.closest(SELECTOR_DATA_TOGGLE$5);let n=Data.get(t,DATA_KEY$a);n||(n=new Button(t)),n.toggle()}),defineJQueryPlugin(NAME$a,Button);const Manipulator={setDataAttribute(e,t,n){e.setAttribute("data-bs-"+normalizeDataKey(t),n)},removeDataAttribute(e,t){e.removeAttribute("data-bs-"+normalizeDataKey(t))},getDataAttributes(e){if(!e)return{};const t={};return Object.keys(e.dataset).filter(e=>e.startsWith("bs")).forEach(n=>{let i=n.replace(/^bs/,"");i=i.charAt(0).toLowerCase()+i.slice(1,i.length),t[i]=normalizeData(e.dataset[n])}),t},getDataAttribute:(e,t)=>normalizeData(e.getAttribute("data-bs-"+normalizeDataKey(t))),offset(e){const t=e.getBoundingClientRect();return{top:t.top+document.body.scrollTop,left:t.left+document.body.scrollLeft}},position:e=>({top:e.offsetTop,left:e.offsetLeft})},NODE_TEXT=3,SelectorEngine={find:(e,t=document.documentElement)=>[].concat(...Element.prototype.querySelectorAll.call(t,e)),findOne:(e,t=document.documentElement)=>Element.prototype.querySelector.call(t,e),children:(e,t)=>[].concat(...e.children).filter(e=>e.matches(t)),parents(e,t){const n=[];let i=e.parentNode;for(;i&&i.nodeType===Node.ELEMENT_NODE&&3!==i.nodeType;)i.matches(t)&&n.push(i),i=i.parentNode;return n},prev(e,t){let n=e.previousElementSibling;for(;n;){if(n.matches(t))return[n];n=n.previousElementSibling}return[]},next(e,t){let n=e.nextElementSibling;for(;n;){if(n.matches(t))return[n];n=n.nextElementSibling}return[]}},NAME$9="carousel",DATA_KEY$9="bs.carousel",EVENT_KEY$9=".bs.carousel",DATA_API_KEY$6=".data-api",ARROW_LEFT_KEY="ArrowLeft",ARROW_RIGHT_KEY="ArrowRight",TOUCHEVENT_COMPAT_WAIT=500,SWIPE_THRESHOLD=40,Default$8={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},DefaultType$8={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},ORDER_NEXT="next",ORDER_PREV="prev",DIRECTION_LEFT="left",DIRECTION_RIGHT="right",EVENT_SLIDE="slide.bs.carousel",EVENT_SLID="slid.bs.carousel",EVENT_KEYDOWN="keydown.bs.carousel",EVENT_MOUSEENTER="mouseenter.bs.carousel",EVENT_MOUSELEAVE="mouseleave.bs.carousel",EVENT_TOUCHSTART="touchstart.bs.carousel",EVENT_TOUCHMOVE="touchmove.bs.carousel",EVENT_TOUCHEND="touchend.bs.carousel",EVENT_POINTERDOWN="pointerdown.bs.carousel",EVENT_POINTERUP="pointerup.bs.carousel",EVENT_DRAG_START="dragstart.bs.carousel",EVENT_LOAD_DATA_API$2="load.bs.carousel.data-api",EVENT_CLICK_DATA_API$5="click.bs.carousel.data-api",CLASS_NAME_CAROUSEL="carousel",CLASS_NAME_ACTIVE$2="active",CLASS_NAME_SLIDE="slide",CLASS_NAME_END="carousel-item-end",CLASS_NAME_START="carousel-item-start",CLASS_NAME_NEXT="carousel-item-next",CLASS_NAME_PREV="carousel-item-prev",CLASS_NAME_POINTER_EVENT="pointer-event",SELECTOR_ACTIVE$1=".active",SELECTOR_ACTIVE_ITEM=".active.carousel-item",SELECTOR_ITEM=".carousel-item",SELECTOR_ITEM_IMG=".carousel-item img",SELECTOR_NEXT_PREV=".carousel-item-next, .carousel-item-prev",SELECTOR_INDICATORS=".carousel-indicators",SELECTOR_INDICATOR="[data-bs-target]",SELECTOR_DATA_SLIDE="[data-bs-slide], [data-bs-slide-to]",SELECTOR_DATA_RIDE='[data-bs-ride="carousel"]',POINTER_TYPE_TOUCH="touch",POINTER_TYPE_PEN="pen";class Carousel extends BaseComponent{constructor(e,t){super(e),this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this.touchStartX=0,this.touchDeltaX=0,this._config=this._getConfig(t),this._indicatorsElement=SelectorEngine.findOne(SELECTOR_INDICATORS,this._element),this._touchSupported="ontouchstart"in document.documentElement||navigator.maxTouchPoints>0,this._pointerEvent=Boolean(window.PointerEvent),this._addEventListeners()}static get Default(){return Default$8}static get DATA_KEY(){return DATA_KEY$9}next(){this._isSliding||this._slide(ORDER_NEXT)}nextWhenVisible(){!document.hidden&&isVisible(this._element)&&this.next()}prev(){this._isSliding||this._slide(ORDER_PREV)}pause(e){e||(this._isPaused=!0),SelectorEngine.findOne(SELECTOR_NEXT_PREV,this._element)&&(triggerTransitionEnd(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null}cycle(e){e||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config&&this._config.interval&&!this._isPaused&&(this._updateInterval(),this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))}to(e){this._activeElement=SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM,this._element);const t=this._getItemIndex(this._activeElement);if(e>this._items.length-1||e<0)return;if(this._isSliding)return void EventHandler.one(this._element,EVENT_SLID,()=>this.to(e));if(t===e)return this.pause(),void this.cycle();const n=e>t?ORDER_NEXT:ORDER_PREV;this._slide(n,this._items[e])}dispose(){EventHandler.off(this._element,EVENT_KEY$9),this._items=null,this._config=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null,super.dispose()}_getConfig(e){return e={...Default$8,...e},typeCheckConfig(NAME$9,e,DefaultType$8),e}_handleSwipe(){const e=Math.abs(this.touchDeltaX);if(e<=40)return;const t=e/this.touchDeltaX;this.touchDeltaX=0,t&&this._slide(t>0?DIRECTION_RIGHT:DIRECTION_LEFT)}_addEventListeners(){this._config.keyboard&&EventHandler.on(this._element,EVENT_KEYDOWN,e=>this._keydown(e)),"hover"===this._config.pause&&(EventHandler.on(this._element,EVENT_MOUSEENTER,e=>this.pause(e)),EventHandler.on(this._element,EVENT_MOUSELEAVE,e=>this.cycle(e))),this._config.touch&&this._touchSupported&&this._addTouchEventListeners()}_addTouchEventListeners(){const e=e=>{!this._pointerEvent||"pen"!==e.pointerType&&"touch"!==e.pointerType?this._pointerEvent||(this.touchStartX=e.touches[0].clientX):this.touchStartX=e.clientX},t=e=>{this.touchDeltaX=e.touches&&e.touches.length>1?0:e.touches[0].clientX-this.touchStartX},n=e=>{!this._pointerEvent||"pen"!==e.pointerType&&"touch"!==e.pointerType||(this.touchDeltaX=e.clientX-this.touchStartX),this._handleSwipe(),"hover"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout(e=>this.cycle(e),500+this._config.interval))};SelectorEngine.find(SELECTOR_ITEM_IMG,this._element).forEach(e=>{EventHandler.on(e,EVENT_DRAG_START,e=>e.preventDefault())}),this._pointerEvent?(EventHandler.on(this._element,EVENT_POINTERDOWN,t=>e(t)),EventHandler.on(this._element,EVENT_POINTERUP,e=>n(e)),this._element.classList.add("pointer-event")):(EventHandler.on(this._element,EVENT_TOUCHSTART,t=>e(t)),EventHandler.on(this._element,EVENT_TOUCHMOVE,e=>t(e)),EventHandler.on(this._element,EVENT_TOUCHEND,e=>n(e)))}_keydown(e){/input|textarea/i.test(e.target.tagName)||("ArrowLeft"===e.key?(e.preventDefault(),this._slide(DIRECTION_LEFT)):"ArrowRight"===e.key&&(e.preventDefault(),this._slide(DIRECTION_RIGHT)))}_getItemIndex(e){return this._items=e&&e.parentNode?SelectorEngine.find(SELECTOR_ITEM,e.parentNode):[],this._items.indexOf(e)}_getItemByOrder(e,t){const n=e===ORDER_NEXT,i=e===ORDER_PREV,s=this._getItemIndex(t),o=this._items.length-1;if((i&&0===s||n&&s===o)&&!this._config.wrap)return t;const r=(s+(i?-1:1))%this._items.length;return-1===r?this._items[this._items.length-1]:this._items[r]}_triggerSlideEvent(e,t){const n=this._getItemIndex(e),i=this._getItemIndex(SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM,this._element));return EventHandler.trigger(this._element,EVENT_SLIDE,{relatedTarget:e,direction:t,from:i,to:n})}_setActiveIndicatorElement(e){if(this._indicatorsElement){const t=SelectorEngine.findOne(".active",this._indicatorsElement);t.classList.remove("active"),t.removeAttribute("aria-current");const n=SelectorEngine.find("[data-bs-target]",this._indicatorsElement);for(let t=0;t<n.length;t++)if(Number.parseInt(n[t].getAttribute("data-bs-slide-to"),10)===this._getItemIndex(e)){n[t].classList.add("active"),n[t].setAttribute("aria-current","true");break}}}_updateInterval(){const e=this._activeElement||SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM,this._element);if(!e)return;const t=Number.parseInt(e.getAttribute("data-bs-interval"),10);t?(this._config.defaultInterval=this._config.defaultInterval||this._config.interval,this._config.interval=t):this._config.interval=this._config.defaultInterval||this._config.interval}_slide(e,t){const n=this._directionToOrder(e),i=SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM,this._element),s=this._getItemIndex(i),o=t||this._getItemByOrder(n,i),r=this._getItemIndex(o),a=Boolean(this._interval),l=n===ORDER_NEXT,c=l?CLASS_NAME_START:CLASS_NAME_END,E=l?CLASS_NAME_NEXT:CLASS_NAME_PREV,d=this._orderToDirection(n);if(o&&o.classList.contains("active"))this._isSliding=!1;else if(!this._triggerSlideEvent(o,d).defaultPrevented&&i&&o){if(this._isSliding=!0,a&&this.pause(),this._setActiveIndicatorElement(o),this._activeElement=o,this._element.classList.contains("slide")){o.classList.add(E),reflow(o),i.classList.add(c),o.classList.add(c);const e=getTransitionDurationFromElement(i);EventHandler.one(i,"transitionend",()=>{o.classList.remove(c,E),o.classList.add("active"),i.classList.remove("active",E,c),this._isSliding=!1,setTimeout(()=>{EventHandler.trigger(this._element,EVENT_SLID,{relatedTarget:o,direction:d,from:s,to:r})},0)}),emulateTransitionEnd(i,e)}else i.classList.remove("active"),o.classList.add("active"),this._isSliding=!1,EventHandler.trigger(this._element,EVENT_SLID,{relatedTarget:o,direction:d,from:s,to:r});a&&this.cycle()}}_directionToOrder(e){return[DIRECTION_RIGHT,DIRECTION_LEFT].includes(e)?isRTL()?e===DIRECTION_RIGHT?ORDER_PREV:ORDER_NEXT:e===DIRECTION_RIGHT?ORDER_NEXT:ORDER_PREV:e}_orderToDirection(e){return[ORDER_NEXT,ORDER_PREV].includes(e)?isRTL()?e===ORDER_NEXT?DIRECTION_LEFT:DIRECTION_RIGHT:e===ORDER_NEXT?DIRECTION_RIGHT:DIRECTION_LEFT:e}static carouselInterface(e,t){let n=Data.get(e,DATA_KEY$9),i={...Default$8,...Manipulator.getDataAttributes(e)};"object"==typeof t&&(i={...i,...t});const s="string"==typeof t?t:i.slide;if(n||(n=new Carousel(e,i)),"number"==typeof t)n.to(t);else if("string"==typeof s){if(void 0===n[s])throw new TypeError(`No method named "${s}"`);n[s]()}else i.interval&&i.ride&&(n.pause(),n.cycle())}static jQueryInterface(e){return this.each((function(){Carousel.carouselInterface(this,e)}))}static dataApiClickHandler(e){const t=getElementFromSelector(this);if(!t||!t.classList.contains("carousel"))return;const n={...Manipulator.getDataAttributes(t),...Manipulator.getDataAttributes(this)},i=this.getAttribute("data-bs-slide-to");i&&(n.interval=!1),Carousel.carouselInterface(t,n),i&&Data.get(t,DATA_KEY$9).to(i),e.preventDefault()}}EventHandler.on(document,EVENT_CLICK_DATA_API$5,SELECTOR_DATA_SLIDE,Carousel.dataApiClickHandler),EventHandler.on(window,EVENT_LOAD_DATA_API$2,()=>{const e=SelectorEngine.find(SELECTOR_DATA_RIDE);for(let t=0,n=e.length;t<n;t++)Carousel.carouselInterface(e[t],Data.get(e[t],DATA_KEY$9))}),defineJQueryPlugin(NAME$9,Carousel);const NAME$8="collapse",DATA_KEY$8="bs.collapse",EVENT_KEY$8=".bs.collapse",DATA_API_KEY$5=".data-api",Default$7={toggle:!0,parent:""},DefaultType$7={toggle:"boolean",parent:"(string|element)"},EVENT_SHOW$5="show.bs.collapse",EVENT_SHOWN$5="shown.bs.collapse",EVENT_HIDE$5="hide.bs.collapse",EVENT_HIDDEN$5="hidden.bs.collapse",EVENT_CLICK_DATA_API$4="click.bs.collapse.data-api",CLASS_NAME_SHOW$7="show",CLASS_NAME_COLLAPSE="collapse",CLASS_NAME_COLLAPSING="collapsing",CLASS_NAME_COLLAPSED="collapsed",WIDTH="width",HEIGHT="height",SELECTOR_ACTIVES=".show, .collapsing",SELECTOR_DATA_TOGGLE$4='[data-bs-toggle="collapse"]';class Collapse extends BaseComponent{constructor(e,t){super(e),this._isTransitioning=!1,this._config=this._getConfig(t),this._triggerArray=SelectorEngine.find(`${SELECTOR_DATA_TOGGLE$4}[href="#${this._element.id}"],${SELECTOR_DATA_TOGGLE$4}[data-bs-target="#${this._element.id}"]`);const n=SelectorEngine.find(SELECTOR_DATA_TOGGLE$4);for(let e=0,t=n.length;e<t;e++){const t=n[e],i=getSelectorFromElement(t),s=SelectorEngine.find(i).filter(e=>e===this._element);null!==i&&s.length&&(this._selector=i,this._triggerArray.push(t))}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle()}static get Default(){return Default$7}static get DATA_KEY(){return DATA_KEY$8}toggle(){this._element.classList.contains("show")?this.hide():this.show()}show(){if(this._isTransitioning||this._element.classList.contains("show"))return;let e,t;this._parent&&(e=SelectorEngine.find(SELECTOR_ACTIVES,this._parent).filter(e=>"string"==typeof this._config.parent?e.getAttribute("data-bs-parent")===this._config.parent:e.classList.contains("collapse")),0===e.length&&(e=null));const n=SelectorEngine.findOne(this._selector);if(e){const i=e.find(e=>n!==e);if(t=i?Data.get(i,DATA_KEY$8):null,t&&t._isTransitioning)return}if(EventHandler.trigger(this._element,EVENT_SHOW$5).defaultPrevented)return;e&&e.forEach(e=>{n!==e&&Collapse.collapseInterface(e,"hide"),t||Data.set(e,DATA_KEY$8,null)});const i=this._getDimension();this._element.classList.remove("collapse"),this._element.classList.add("collapsing"),this._element.style[i]=0,this._triggerArray.length&&this._triggerArray.forEach(e=>{e.classList.remove("collapsed"),e.setAttribute("aria-expanded",!0)}),this.setTransitioning(!0);const s="scroll"+(i[0].toUpperCase()+i.slice(1)),o=getTransitionDurationFromElement(this._element);EventHandler.one(this._element,"transitionend",()=>{this._element.classList.remove("collapsing"),this._element.classList.add("collapse","show"),this._element.style[i]="",this.setTransitioning(!1),EventHandler.trigger(this._element,EVENT_SHOWN$5)}),emulateTransitionEnd(this._element,o),this._element.style[i]=this._element[s]+"px"}hide(){if(this._isTransitioning||!this._element.classList.contains("show"))return;if(EventHandler.trigger(this._element,EVENT_HIDE$5).defaultPrevented)return;const e=this._getDimension();this._element.style[e]=this._element.getBoundingClientRect()[e]+"px",reflow(this._element),this._element.classList.add("collapsing"),this._element.classList.remove("collapse","show");const t=this._triggerArray.length;if(t>0)for(let e=0;e<t;e++){const t=this._triggerArray[e],n=getElementFromSelector(t);n&&!n.classList.contains("show")&&(t.classList.add("collapsed"),t.setAttribute("aria-expanded",!1))}this.setTransitioning(!0),this._element.style[e]="";const n=getTransitionDurationFromElement(this._element);EventHandler.one(this._element,"transitionend",()=>{this.setTransitioning(!1),this._element.classList.remove("collapsing"),this._element.classList.add("collapse"),EventHandler.trigger(this._element,EVENT_HIDDEN$5)}),emulateTransitionEnd(this._element,n)}setTransitioning(e){this._isTransitioning=e}dispose(){super.dispose(),this._config=null,this._parent=null,this._triggerArray=null,this._isTransitioning=null}_getConfig(e){return(e={...Default$7,...e}).toggle=Boolean(e.toggle),typeCheckConfig(NAME$8,e,DefaultType$7),e}_getDimension(){return this._element.classList.contains(WIDTH)?WIDTH:HEIGHT}_getParent(){let{parent:e}=this._config;isElement(e)?void 0===e.jquery&&void 0===e[0]||(e=e[0]):e=SelectorEngine.findOne(e);const t=`${SELECTOR_DATA_TOGGLE$4}[data-bs-parent="${e}"]`;return SelectorEngine.find(t,e).forEach(e=>{const t=getElementFromSelector(e);this._addAriaAndCollapsedClass(t,[e])}),e}_addAriaAndCollapsedClass(e,t){if(!e||!t.length)return;const n=e.classList.contains("show");t.forEach(e=>{n?e.classList.remove("collapsed"):e.classList.add("collapsed"),e.setAttribute("aria-expanded",n)})}static collapseInterface(e,t){let n=Data.get(e,DATA_KEY$8);const i={...Default$7,...Manipulator.getDataAttributes(e),..."object"==typeof t&&t?t:{}};if(!n&&i.toggle&&"string"==typeof t&&/show|hide/.test(t)&&(i.toggle=!1),n||(n=new Collapse(e,i)),"string"==typeof t){if(void 0===n[t])throw new TypeError(`No method named "${t}"`);n[t]()}}static jQueryInterface(e){return this.each((function(){Collapse.collapseInterface(this,e)}))}}EventHandler.on(document,EVENT_CLICK_DATA_API$4,SELECTOR_DATA_TOGGLE$4,(function(e){("A"===e.target.tagName||e.delegateTarget&&"A"===e.delegateTarget.tagName)&&e.preventDefault();const t=Manipulator.getDataAttributes(this),n=getSelectorFromElement(this);SelectorEngine.find(n).forEach(e=>{const n=Data.get(e,DATA_KEY$8);let i;n?(null===n._parent&&"string"==typeof t.parent&&(n._config.parent=t.parent,n._parent=n._getParent()),i="toggle"):i=t,Collapse.collapseInterface(e,i)})})),defineJQueryPlugin(NAME$8,Collapse);const NAME$7="dropdown",DATA_KEY$7="bs.dropdown",EVENT_KEY$7=".bs.dropdown",DATA_API_KEY$4=".data-api",ESCAPE_KEY$2="Escape",SPACE_KEY="Space",TAB_KEY="Tab",ARROW_UP_KEY="ArrowUp",ARROW_DOWN_KEY="ArrowDown",RIGHT_MOUSE_BUTTON=2,REGEXP_KEYDOWN=new RegExp("ArrowUp|ArrowDown|Escape"),EVENT_HIDE$4="hide.bs.dropdown",EVENT_HIDDEN$4="hidden.bs.dropdown",EVENT_SHOW$4="show.bs.dropdown",EVENT_SHOWN$4="shown.bs.dropdown",EVENT_CLICK="click.bs.dropdown",EVENT_CLICK_DATA_API$3="click.bs.dropdown.data-api",EVENT_KEYDOWN_DATA_API="keydown.bs.dropdown.data-api",EVENT_KEYUP_DATA_API="keyup.bs.dropdown.data-api",CLASS_NAME_DISABLED="disabled",CLASS_NAME_SHOW$6="show",CLASS_NAME_DROPUP="dropup",CLASS_NAME_DROPEND="dropend",CLASS_NAME_DROPSTART="dropstart",CLASS_NAME_NAVBAR="navbar",SELECTOR_DATA_TOGGLE$3='[data-bs-toggle="dropdown"]',SELECTOR_MENU=".dropdown-menu",SELECTOR_NAVBAR_NAV=".navbar-nav",SELECTOR_VISIBLE_ITEMS=".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",PLACEMENT_TOP=isRTL()?"top-end":"top-start",PLACEMENT_TOPEND=isRTL()?"top-start":"top-end",PLACEMENT_BOTTOM=isRTL()?"bottom-end":"bottom-start",PLACEMENT_BOTTOMEND=isRTL()?"bottom-start":"bottom-end",PLACEMENT_RIGHT=isRTL()?"left-start":"right-start",PLACEMENT_LEFT=isRTL()?"right-start":"left-start",Default$6={offset:[0,2],boundary:"clippingParents",reference:"toggle",display:"dynamic",popperConfig:null},DefaultType$6={offset:"(array|string|function)",boundary:"(string|element)",reference:"(string|element|object)",display:"string",popperConfig:"(null|object|function)"};class Dropdown extends BaseComponent{constructor(e,t){super(e),this._popper=null,this._config=this._getConfig(t),this._menu=this._getMenuElement(),this._inNavbar=this._detectNavbar(),this._addEventListeners()}static get Default(){return Default$6}static get DefaultType(){return DefaultType$6}static get DATA_KEY(){return DATA_KEY$7}toggle(){if(this._element.disabled||this._element.classList.contains("disabled"))return;const e=this._element.classList.contains("show");Dropdown.clearMenus(),e||this.show()}show(){if(this._element.disabled||this._element.classList.contains("disabled")||this._menu.classList.contains("show"))return;const e=Dropdown.getParentFromElement(this._element),t={relatedTarget:this._element};if(!EventHandler.trigger(this._element,EVENT_SHOW$4,t).defaultPrevented){if(this._inNavbar)Manipulator.setDataAttribute(this._menu,"popper","none");else{if(void 0===Popper)throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");let t=this._element;"parent"===this._config.reference?t=e:isElement(this._config.reference)?(t=this._config.reference,void 0!==this._config.reference.jquery&&(t=this._config.reference[0])):"object"==typeof this._config.reference&&(t=this._config.reference);const n=this._getPopperConfig(),i=n.modifiers.find(e=>"applyStyles"===e.name&&!1===e.enabled);this._popper=Popper.createPopper(t,this._menu,n),i&&Manipulator.setDataAttribute(this._menu,"popper","static")}"ontouchstart"in document.documentElement&&!e.closest(".navbar-nav")&&[].concat(...document.body.children).forEach(e=>EventHandler.on(e,"mouseover",null,(function(){}))),this._element.focus(),this._element.setAttribute("aria-expanded",!0),this._menu.classList.toggle("show"),this._element.classList.toggle("show"),EventHandler.trigger(this._element,EVENT_SHOWN$4,t)}}hide(){if(this._element.disabled||this._element.classList.contains("disabled")||!this._menu.classList.contains("show"))return;const e={relatedTarget:this._element};EventHandler.trigger(this._element,EVENT_HIDE$4,e).defaultPrevented||(this._popper&&this._popper.destroy(),this._menu.classList.toggle("show"),this._element.classList.toggle("show"),Manipulator.removeDataAttribute(this._menu,"popper"),EventHandler.trigger(this._element,EVENT_HIDDEN$4,e))}dispose(){EventHandler.off(this._element,EVENT_KEY$7),this._menu=null,this._popper&&(this._popper.destroy(),this._popper=null),super.dispose()}update(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.update()}_addEventListeners(){EventHandler.on(this._element,EVENT_CLICK,e=>{e.preventDefault(),this.toggle()})}_getConfig(e){if(e={...this.constructor.Default,...Manipulator.getDataAttributes(this._element),...e},typeCheckConfig(NAME$7,e,this.constructor.DefaultType),"object"==typeof e.reference&&!isElement(e.reference)&&"function"!=typeof e.reference.getBoundingClientRect)throw new TypeError(NAME$7.toUpperCase()+': Option "reference" provided type "object" without a required "getBoundingClientRect" method.');return e}_getMenuElement(){return SelectorEngine.next(this._element,SELECTOR_MENU)[0]}_getPlacement(){const e=this._element.parentNode;if(e.classList.contains("dropend"))return PLACEMENT_RIGHT;if(e.classList.contains("dropstart"))return PLACEMENT_LEFT;const t="end"===getComputedStyle(this._menu).getPropertyValue("--bs-position").trim();return e.classList.contains("dropup")?t?PLACEMENT_TOPEND:PLACEMENT_TOP:t?PLACEMENT_BOTTOMEND:PLACEMENT_BOTTOM}_detectNavbar(){return null!==this._element.closest(".navbar")}_getOffset(){const{offset:e}=this._config;return"string"==typeof e?e.split(",").map(e=>Number.parseInt(e,10)):"function"==typeof e?t=>e(t,this._element):e}_getPopperConfig(){const e={placement:this._getPlacement(),modifiers:[{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"offset",options:{offset:this._getOffset()}}]};return"static"===this._config.display&&(e.modifiers=[{name:"applyStyles",enabled:!1}]),{...e,..."function"==typeof this._config.popperConfig?this._config.popperConfig(e):this._config.popperConfig}}static dropdownInterface(e,t){let n=Data.get(e,DATA_KEY$7);if(n||(n=new Dropdown(e,"object"==typeof t?t:null)),"string"==typeof t){if(void 0===n[t])throw new TypeError(`No method named "${t}"`);n[t]()}}static jQueryInterface(e){return this.each((function(){Dropdown.dropdownInterface(this,e)}))}static clearMenus(e){if(e){if(2===e.button||"keyup"===e.type&&"Tab"!==e.key)return;if(/input|select|textarea|form/i.test(e.target.tagName))return}const t=SelectorEngine.find(SELECTOR_DATA_TOGGLE$3);for(let n=0,i=t.length;n<i;n++){const i=Data.get(t[n],DATA_KEY$7),s={relatedTarget:t[n]};if(e&&"click"===e.type&&(s.clickEvent=e),!i)continue;const o=i._menu;if(t[n].classList.contains("show")){if(e){if([i._element].some(t=>e.composedPath().includes(t)))continue;if("keyup"===e.type&&"Tab"===e.key&&o.contains(e.target))continue}EventHandler.trigger(t[n],EVENT_HIDE$4,s).defaultPrevented||("ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach(e=>EventHandler.off(e,"mouseover",null,(function(){}))),t[n].setAttribute("aria-expanded","false"),i._popper&&i._popper.destroy(),o.classList.remove("show"),t[n].classList.remove("show"),Manipulator.removeDataAttribute(o,"popper"),EventHandler.trigger(t[n],EVENT_HIDDEN$4,s))}}}static getParentFromElement(e){return getElementFromSelector(e)||e.parentNode}static dataApiKeydownHandler(e){if(/input|textarea/i.test(e.target.tagName)?"Space"===e.key||"Escape"!==e.key&&("ArrowDown"!==e.key&&"ArrowUp"!==e.key||e.target.closest(SELECTOR_MENU)):!REGEXP_KEYDOWN.test(e.key))return;if(e.preventDefault(),e.stopPropagation(),this.disabled||this.classList.contains("disabled"))return;const t=Dropdown.getParentFromElement(this),n=this.classList.contains("show");if("Escape"===e.key)return(this.matches(SELECTOR_DATA_TOGGLE$3)?this:SelectorEngine.prev(this,SELECTOR_DATA_TOGGLE$3)[0]).focus(),void Dropdown.clearMenus();if(!n&&("ArrowUp"===e.key||"ArrowDown"===e.key))return void(this.matches(SELECTOR_DATA_TOGGLE$3)?this:SelectorEngine.prev(this,SELECTOR_DATA_TOGGLE$3)[0]).click();if(!n||"Space"===e.key)return void Dropdown.clearMenus();const i=SelectorEngine.find(SELECTOR_VISIBLE_ITEMS,t).filter(isVisible);if(!i.length)return;let s=i.indexOf(e.target);"ArrowUp"===e.key&&s>0&&s--,"ArrowDown"===e.key&&s<i.length-1&&s++,s=-1===s?0:s,i[s].focus()}}EventHandler.on(document,EVENT_KEYDOWN_DATA_API,SELECTOR_DATA_TOGGLE$3,Dropdown.dataApiKeydownHandler),EventHandler.on(document,EVENT_KEYDOWN_DATA_API,SELECTOR_MENU,Dropdown.dataApiKeydownHandler),EventHandler.on(document,EVENT_CLICK_DATA_API$3,Dropdown.clearMenus),EventHandler.on(document,EVENT_KEYUP_DATA_API,Dropdown.clearMenus),EventHandler.on(document,EVENT_CLICK_DATA_API$3,SELECTOR_DATA_TOGGLE$3,(function(e){e.preventDefault(),Dropdown.dropdownInterface(this)})),defineJQueryPlugin(NAME$7,Dropdown);const NAME$6="modal",DATA_KEY$6="bs.modal",EVENT_KEY$6=".bs.modal",DATA_API_KEY$3=".data-api",ESCAPE_KEY$1="Escape",Default$5={backdrop:!0,keyboard:!0,focus:!0},DefaultType$5={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean"},EVENT_HIDE$3="hide.bs.modal",EVENT_HIDE_PREVENTED="hidePrevented.bs.modal",EVENT_HIDDEN$3="hidden.bs.modal",EVENT_SHOW$3="show.bs.modal",EVENT_SHOWN$3="shown.bs.modal",EVENT_FOCUSIN$1="focusin.bs.modal",EVENT_RESIZE="resize.bs.modal",EVENT_CLICK_DISMISS$2="click.dismiss.bs.modal",EVENT_KEYDOWN_DISMISS="keydown.dismiss.bs.modal",EVENT_MOUSEUP_DISMISS="mouseup.dismiss.bs.modal",EVENT_MOUSEDOWN_DISMISS="mousedown.dismiss.bs.modal",EVENT_CLICK_DATA_API$2="click.bs.modal.data-api",CLASS_NAME_SCROLLBAR_MEASURER="modal-scrollbar-measure",CLASS_NAME_BACKDROP="modal-backdrop",CLASS_NAME_OPEN="modal-open",CLASS_NAME_FADE$4="fade",CLASS_NAME_SHOW$5="show",CLASS_NAME_STATIC="modal-static",SELECTOR_DIALOG=".modal-dialog",SELECTOR_MODAL_BODY=".modal-body",SELECTOR_DATA_TOGGLE$2='[data-bs-toggle="modal"]',SELECTOR_DATA_DISMISS$2='[data-bs-dismiss="modal"]',SELECTOR_FIXED_CONTENT$1=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",SELECTOR_STICKY_CONTENT$1=".sticky-top";class Modal extends BaseComponent{constructor(e,t){super(e),this._config=this._getConfig(t),this._dialog=SelectorEngine.findOne(".modal-dialog",this._element),this._backdrop=null,this._isShown=!1,this._isBodyOverflowing=!1,this._ignoreBackdropClick=!1,this._isTransitioning=!1,this._scrollbarWidth=0}static get Default(){return Default$5}static get DATA_KEY(){return"bs.modal"}toggle(e){return this._isShown?this.hide():this.show(e)}show(e){if(this._isShown||this._isTransitioning)return;this._isAnimated()&&(this._isTransitioning=!0);const t=EventHandler.trigger(this._element,EVENT_SHOW$3,{relatedTarget:e});this._isShown||t.defaultPrevented||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),this._adjustDialog(),this._setEscapeEvent(),this._setResizeEvent(),EventHandler.on(this._element,EVENT_CLICK_DISMISS$2,SELECTOR_DATA_DISMISS$2,e=>this.hide(e)),EventHandler.on(this._dialog,EVENT_MOUSEDOWN_DISMISS,()=>{EventHandler.one(this._element,EVENT_MOUSEUP_DISMISS,e=>{e.target===this._element&&(this._ignoreBackdropClick=!0)})}),this._showBackdrop(()=>this._showElement(e)))}hide(e){if(e&&e.preventDefault(),!this._isShown||this._isTransitioning)return;if(EventHandler.trigger(this._element,EVENT_HIDE$3).defaultPrevented)return;this._isShown=!1;const t=this._isAnimated();if(t&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),EventHandler.off(document,EVENT_FOCUSIN$1),this._element.classList.remove("show"),EventHandler.off(this._element,EVENT_CLICK_DISMISS$2),EventHandler.off(this._dialog,EVENT_MOUSEDOWN_DISMISS),t){const e=getTransitionDurationFromElement(this._element);EventHandler.one(this._element,"transitionend",e=>this._hideModal(e)),emulateTransitionEnd(this._element,e)}else this._hideModal()}dispose(){[window,this._element,this._dialog].forEach(e=>EventHandler.off(e,".bs.modal")),super.dispose(),EventHandler.off(document,EVENT_FOCUSIN$1),this._config=null,this._dialog=null,this._backdrop=null,this._isShown=null,this._isBodyOverflowing=null,this._ignoreBackdropClick=null,this._isTransitioning=null,this._scrollbarWidth=null}handleUpdate(){this._adjustDialog()}_getConfig(e){return e={...Default$5,...e},typeCheckConfig(NAME$6,e,DefaultType$5),e}_showElement(e){const t=this._isAnimated(),n=SelectorEngine.findOne(".modal-body",this._dialog);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0,n&&(n.scrollTop=0),t&&reflow(this._element),this._element.classList.add("show"),this._config.focus&&this._enforceFocus();const i=()=>{this._config.focus&&this._element.focus(),this._isTransitioning=!1,EventHandler.trigger(this._element,EVENT_SHOWN$3,{relatedTarget:e})};if(t){const e=getTransitionDurationFromElement(this._dialog);EventHandler.one(this._dialog,"transitionend",i),emulateTransitionEnd(this._dialog,e)}else i()}_enforceFocus(){EventHandler.off(document,EVENT_FOCUSIN$1),EventHandler.on(document,EVENT_FOCUSIN$1,e=>{document===e.target||this._element===e.target||this._element.contains(e.target)||this._element.focus()})}_setEscapeEvent(){this._isShown?EventHandler.on(this._element,EVENT_KEYDOWN_DISMISS,e=>{this._config.keyboard&&"Escape"===e.key?(e.preventDefault(),this.hide()):this._config.keyboard||"Escape"!==e.key||this._triggerBackdropTransition()}):EventHandler.off(this._element,EVENT_KEYDOWN_DISMISS)}_setResizeEvent(){this._isShown?EventHandler.on(window,EVENT_RESIZE,()=>this._adjustDialog()):EventHandler.off(window,EVENT_RESIZE)}_hideModal(){this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._showBackdrop(()=>{document.body.classList.remove("modal-open"),this._resetAdjustments(),this._resetScrollbar(),EventHandler.trigger(this._element,EVENT_HIDDEN$3)})}_removeBackdrop(){this._backdrop.parentNode.removeChild(this._backdrop),this._backdrop=null}_showBackdrop(e){const t=this._isAnimated();if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className="modal-backdrop",t&&this._backdrop.classList.add("fade"),document.body.appendChild(this._backdrop),EventHandler.on(this._element,EVENT_CLICK_DISMISS$2,e=>{this._ignoreBackdropClick?this._ignoreBackdropClick=!1:e.target===e.currentTarget&&("static"===this._config.backdrop?this._triggerBackdropTransition():this.hide())}),t&&reflow(this._backdrop),this._backdrop.classList.add("show"),!t)return void e();const n=getTransitionDurationFromElement(this._backdrop);EventHandler.one(this._backdrop,"transitionend",e),emulateTransitionEnd(this._backdrop,n)}else if(!this._isShown&&this._backdrop){this._backdrop.classList.remove("show");const n=()=>{this._removeBackdrop(),e()};if(t){const e=getTransitionDurationFromElement(this._backdrop);EventHandler.one(this._backdrop,"transitionend",n),emulateTransitionEnd(this._backdrop,e)}else n()}else e()}_isAnimated(){return this._element.classList.contains("fade")}_triggerBackdropTransition(){if(EventHandler.trigger(this._element,EVENT_HIDE_PREVENTED).defaultPrevented)return;const e=this._element.scrollHeight>document.documentElement.clientHeight;e||(this._element.style.overflowY="hidden"),this._element.classList.add("modal-static");const t=getTransitionDurationFromElement(this._dialog);EventHandler.off(this._element,"transitionend"),EventHandler.one(this._element,"transitionend",()=>{this._element.classList.remove("modal-static"),e||(EventHandler.one(this._element,"transitionend",()=>{this._element.style.overflowY=""}),emulateTransitionEnd(this._element,t))}),emulateTransitionEnd(this._element,t),this._element.focus()}_adjustDialog(){const e=this._element.scrollHeight>document.documentElement.clientHeight;(!this._isBodyOverflowing&&e&&!isRTL()||this._isBodyOverflowing&&!e&&isRTL())&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),(this._isBodyOverflowing&&!e&&!isRTL()||!this._isBodyOverflowing&&e&&isRTL())&&(this._element.style.paddingRight=this._scrollbarWidth+"px")}_resetAdjustments(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}_checkScrollbar(){const e=document.body.getBoundingClientRect();this._isBodyOverflowing=Math.round(e.left+e.right)<window.innerWidth,this._scrollbarWidth=this._getScrollbarWidth()}_setScrollbar(){this._isBodyOverflowing&&(this._setElementAttributes(SELECTOR_FIXED_CONTENT$1,"paddingRight",e=>e+this._scrollbarWidth),this._setElementAttributes(".sticky-top","marginRight",e=>e-this._scrollbarWidth),this._setElementAttributes("body","paddingRight",e=>e+this._scrollbarWidth)),document.body.classList.add("modal-open")}_setElementAttributes(e,t,n){SelectorEngine.find(e).forEach(e=>{if(e!==document.body&&window.innerWidth>e.clientWidth+this._scrollbarWidth)return;const i=e.style[t],s=window.getComputedStyle(e)[t];Manipulator.setDataAttribute(e,t,i),e.style[t]=n(Number.parseFloat(s))+"px"})}_resetScrollbar(){this._resetElementAttributes(SELECTOR_FIXED_CONTENT$1,"paddingRight"),this._resetElementAttributes(".sticky-top","marginRight"),this._resetElementAttributes("body","paddingRight")}_resetElementAttributes(e,t){SelectorEngine.find(e).forEach(e=>{const n=Manipulator.getDataAttribute(e,t);void 0===n&&e===document.body?e.style[t]="":(Manipulator.removeDataAttribute(e,t),e.style[t]=n)})}_getScrollbarWidth(){const e=document.createElement("div");e.className="modal-scrollbar-measure",document.body.appendChild(e);const t=e.getBoundingClientRect().width-e.clientWidth;return document.body.removeChild(e),t}static jQueryInterface(e,t){return this.each((function(){let n=Data.get(this,"bs.modal");const i={...Default$5,...Manipulator.getDataAttributes(this),..."object"==typeof e&&e?e:{}};if(n||(n=new Modal(this,i)),"string"==typeof e){if(void 0===n[e])throw new TypeError(`No method named "${e}"`);n[e](t)}}))}}EventHandler.on(document,EVENT_CLICK_DATA_API$2,SELECTOR_DATA_TOGGLE$2,(function(e){const t=getElementFromSelector(this);"A"!==this.tagName&&"AREA"!==this.tagName||e.preventDefault(),EventHandler.one(t,EVENT_SHOW$3,e=>{e.defaultPrevented||EventHandler.one(t,EVENT_HIDDEN$3,()=>{isVisible(this)&&this.focus()})});let n=Data.get(t,"bs.modal");if(!n){const e={...Manipulator.getDataAttributes(t),...Manipulator.getDataAttributes(this)};n=new Modal(t,e)}n.toggle(this)})),defineJQueryPlugin(NAME$6,Modal);const SELECTOR_FIXED_CONTENT=".fixed-top, .fixed-bottom, .is-fixed",SELECTOR_STICKY_CONTENT=".sticky-top",getWidth=()=>{const e=document.documentElement.clientWidth;return Math.abs(window.innerWidth-e)},hide=(e=getWidth())=>{document.body.style.overflow="hidden",_setElementAttributes(SELECTOR_FIXED_CONTENT,"paddingRight",t=>t+e),_setElementAttributes(".sticky-top","marginRight",t=>t-e),_setElementAttributes("body","paddingRight",t=>t+e)},_setElementAttributes=(e,t,n)=>{const i=getWidth();SelectorEngine.find(e).forEach(e=>{if(e!==document.body&&window.innerWidth>e.clientWidth+i)return;const s=e.style[t],o=window.getComputedStyle(e)[t];Manipulator.setDataAttribute(e,t,s),e.style[t]=n(Number.parseFloat(o))+"px"})},reset=()=>{document.body.style.overflow="auto",_resetElementAttributes(SELECTOR_FIXED_CONTENT,"paddingRight"),_resetElementAttributes(".sticky-top","marginRight"),_resetElementAttributes("body","paddingRight")},_resetElementAttributes=(e,t)=>{SelectorEngine.find(e).forEach(e=>{const n=Manipulator.getDataAttribute(e,t);void 0===n&&e===document.body?e.style.removeProperty(t):(Manipulator.removeDataAttribute(e,t),e.style[t]=n)})},NAME$5="offcanvas",DATA_KEY$5="bs.offcanvas",EVENT_KEY$5=".bs.offcanvas",DATA_API_KEY$2=".data-api",EVENT_LOAD_DATA_API$1="load.bs.offcanvas.data-api",ESCAPE_KEY="Escape",Default$4={backdrop:!0,keyboard:!0,scroll:!1},DefaultType$4={backdrop:"boolean",keyboard:"boolean",scroll:"boolean"},CLASS_NAME_BACKDROP_BODY="offcanvas-backdrop",CLASS_NAME_SHOW$4="show",CLASS_NAME_TOGGLING="offcanvas-toggling",OPEN_SELECTOR=".offcanvas.show",ACTIVE_SELECTOR=".offcanvas.show, .offcanvas-toggling",EVENT_SHOW$2="show.bs.offcanvas",EVENT_SHOWN$2="shown.bs.offcanvas",EVENT_HIDE$2="hide.bs.offcanvas",EVENT_HIDDEN$2="hidden.bs.offcanvas",EVENT_FOCUSIN="focusin.bs.offcanvas",EVENT_CLICK_DATA_API$1="click.bs.offcanvas.data-api",EVENT_CLICK_DISMISS$1="click.dismiss.bs.offcanvas",SELECTOR_DATA_DISMISS$1='[data-bs-dismiss="offcanvas"]',SELECTOR_DATA_TOGGLE$1='[data-bs-toggle="offcanvas"]';class Offcanvas extends BaseComponent{constructor(e,t){super(e),this._config=this._getConfig(t),this._isShown=!1,this._addEventListeners()}static get Default(){return Default$4}static get DATA_KEY(){return DATA_KEY$5}toggle(e){return this._isShown?this.hide():this.show(e)}show(e){this._isShown||EventHandler.trigger(this._element,EVENT_SHOW$2,{relatedTarget:e}).defaultPrevented||(this._isShown=!0,this._element.style.visibility="visible",this._config.backdrop&&document.body.classList.add("offcanvas-backdrop"),this._config.scroll||hide(),this._element.classList.add(CLASS_NAME_TOGGLING),this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.classList.add("show"),setTimeout(()=>{this._element.classList.remove(CLASS_NAME_TOGGLING),EventHandler.trigger(this._element,EVENT_SHOWN$2,{relatedTarget:e}),this._enforceFocusOnElement(this._element)},getTransitionDurationFromElement(this._element)))}hide(){this._isShown&&(EventHandler.trigger(this._element,EVENT_HIDE$2).defaultPrevented||(this._element.classList.add(CLASS_NAME_TOGGLING),EventHandler.off(document,EVENT_FOCUSIN),this._element.blur(),this._isShown=!1,this._element.classList.remove("show"),setTimeout(()=>{this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._element.style.visibility="hidden",this._config.backdrop&&document.body.classList.remove("offcanvas-backdrop"),this._config.scroll||(document.body.style.overflow="auto",_resetElementAttributes(SELECTOR_FIXED_CONTENT,"paddingRight"),_resetElementAttributes(".sticky-top","marginRight"),_resetElementAttributes("body","paddingRight")),EventHandler.trigger(this._element,EVENT_HIDDEN$2),this._element.classList.remove(CLASS_NAME_TOGGLING)},getTransitionDurationFromElement(this._element))))}_getConfig(e){return e={...Default$4,...Manipulator.getDataAttributes(this._element),..."object"==typeof e?e:{}},typeCheckConfig(NAME$5,e,DefaultType$4),e}_enforceFocusOnElement(e){EventHandler.off(document,EVENT_FOCUSIN),EventHandler.on(document,EVENT_FOCUSIN,t=>{document===t.target||e===t.target||e.contains(t.target)||e.focus()}),e.focus()}_addEventListeners(){EventHandler.on(this._element,EVENT_CLICK_DISMISS$1,SELECTOR_DATA_DISMISS$1,()=>this.hide()),EventHandler.on(document,"keydown",e=>{this._config.keyboard&&"Escape"===e.key&&this.hide()}),EventHandler.on(document,EVENT_CLICK_DATA_API$1,e=>{const t=SelectorEngine.findOne(getSelectorFromElement(e.target));this._element.contains(e.target)||t===this._element||this.hide()})}static jQueryInterface(e){return this.each((function(){const t=Data.get(this,DATA_KEY$5)||new Offcanvas(this,"object"==typeof e?e:{});if("string"==typeof e){if(void 0===t[e]||e.startsWith("_")||"constructor"===e)throw new TypeError(`No method named "${e}"`);t[e](this)}}))}}EventHandler.on(document,EVENT_CLICK_DATA_API$1,SELECTOR_DATA_TOGGLE$1,(function(e){const t=getElementFromSelector(this);if(["A","AREA"].includes(this.tagName)&&e.preventDefault(),isDisabled(this))return;EventHandler.one(t,EVENT_HIDDEN$2,()=>{isVisible(this)&&this.focus()});const n=SelectorEngine.findOne(ACTIVE_SELECTOR);n&&n!==t||(Data.get(t,DATA_KEY$5)||new Offcanvas(t)).toggle(this)})),EventHandler.on(window,EVENT_LOAD_DATA_API$1,()=>{SelectorEngine.find(OPEN_SELECTOR).forEach(e=>(Data.get(e,DATA_KEY$5)||new Offcanvas(e)).show())}),defineJQueryPlugin(NAME$5,Offcanvas);const uriAttrs=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),ARIA_ATTRIBUTE_PATTERN=/^aria-[\w-]*$/i,SAFE_URL_PATTERN=/^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/i,DATA_URL_PATTERN=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i,allowedAttribute=(e,t)=>{const n=e.nodeName.toLowerCase();if(t.includes(n))return!uriAttrs.has(n)||Boolean(SAFE_URL_PATTERN.test(e.nodeValue)||DATA_URL_PATTERN.test(e.nodeValue));const i=t.filter(e=>e instanceof RegExp);for(let e=0,t=i.length;e<t;e++)if(i[e].test(n))return!0;return!1},DefaultAllowlist={"*":["class","dir","id","lang","role",ARIA_ATTRIBUTE_PATTERN],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]};function sanitizeHtml(e,t,n){if(!e.length)return e;if(n&&"function"==typeof n)return n(e);const i=(new window.DOMParser).parseFromString(e,"text/html"),s=Object.keys(t),o=[].concat(...i.body.querySelectorAll("*"));for(let e=0,n=o.length;e<n;e++){const n=o[e],i=n.nodeName.toLowerCase();if(!s.includes(i)){n.parentNode.removeChild(n);continue}const r=[].concat(...n.attributes),a=[].concat(t["*"]||[],t[i]||[]);r.forEach(e=>{allowedAttribute(e,a)||n.removeAttribute(e.nodeName)})}return i.body.innerHTML}const NAME$4="tooltip",DATA_KEY$4="bs.tooltip",EVENT_KEY$4=".bs.tooltip",CLASS_PREFIX$1="bs-tooltip",BSCLS_PREFIX_REGEX$1=new RegExp("(^|\\s)bs-tooltip\\S+","g"),DISALLOWED_ATTRIBUTES=new Set(["sanitize","allowList","sanitizeFn"]),DefaultType$3={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(array|string|function)",container:"(string|element|boolean)",fallbackPlacements:"array",boundary:"(string|element)",customClass:"(string|function)",sanitize:"boolean",sanitizeFn:"(null|function)",allowList:"object",popperConfig:"(null|object|function)"},AttachmentMap={AUTO:"auto",TOP:"top",RIGHT:isRTL()?"left":"right",BOTTOM:"bottom",LEFT:isRTL()?"right":"left"},Default$3={animation:!0,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:[0,0],container:!1,fallbackPlacements:["top","right","bottom","left"],boundary:"clippingParents",customClass:"",sanitize:!0,sanitizeFn:null,allowList:DefaultAllowlist,popperConfig:null},Event$2={HIDE:"hide.bs.tooltip",HIDDEN:"hidden.bs.tooltip",SHOW:"show.bs.tooltip",SHOWN:"shown.bs.tooltip",INSERTED:"inserted.bs.tooltip",CLICK:"click.bs.tooltip",FOCUSIN:"focusin.bs.tooltip",FOCUSOUT:"focusout.bs.tooltip",MOUSEENTER:"mouseenter.bs.tooltip",MOUSELEAVE:"mouseleave.bs.tooltip"},CLASS_NAME_FADE$3="fade",CLASS_NAME_MODAL="modal",CLASS_NAME_SHOW$3="show",HOVER_STATE_SHOW="show",HOVER_STATE_OUT="out",SELECTOR_TOOLTIP_INNER=".tooltip-inner",TRIGGER_HOVER="hover",TRIGGER_FOCUS="focus",TRIGGER_CLICK="click",TRIGGER_MANUAL="manual";class Tooltip extends BaseComponent{constructor(e,t){if(void 0===Popper)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(e),this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.config=this._getConfig(t),this.tip=null,this._setListeners()}static get Default(){return Default$3}static get NAME(){return NAME$4}static get DATA_KEY(){return DATA_KEY$4}static get Event(){return Event$2}static get EVENT_KEY(){return EVENT_KEY$4}static get DefaultType(){return DefaultType$3}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(e){if(this._isEnabled)if(e){const t=this._initializeOnDelegatedTarget(e);t._activeTrigger.click=!t._activeTrigger.click,t._isWithActiveTrigger()?t._enter(null,t):t._leave(null,t)}else{if(this.getTipElement().classList.contains("show"))return void this._leave(null,this);this._enter(null,this)}}dispose(){clearTimeout(this._timeout),EventHandler.off(this._element,this.constructor.EVENT_KEY),EventHandler.off(this._element.closest(".modal"),"hide.bs.modal",this._hideModalHandler),this.tip&&this.tip.parentNode&&this.tip.parentNode.removeChild(this.tip),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,this._popper&&this._popper.destroy(),this._popper=null,this.config=null,this.tip=null,super.dispose()}show(){if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(!this.isWithContent()||!this._isEnabled)return;const e=EventHandler.trigger(this._element,this.constructor.Event.SHOW),t=findShadowRoot(this._element),n=null===t?this._element.ownerDocument.documentElement.contains(this._element):t.contains(this._element);if(e.defaultPrevented||!n)return;const i=this.getTipElement(),s=getUID(this.constructor.NAME);i.setAttribute("id",s),this._element.setAttribute("aria-describedby",s),this.setContent(),this.config.animation&&i.classList.add("fade");const o="function"==typeof this.config.placement?this.config.placement.call(this,i,this._element):this.config.placement,r=this._getAttachment(o);this._addAttachmentClass(r);const a=this._getContainer();Data.set(i,this.constructor.DATA_KEY,this),this._element.ownerDocument.documentElement.contains(this.tip)||(a.appendChild(i),EventHandler.trigger(this._element,this.constructor.Event.INSERTED)),this._popper?this._popper.update():this._popper=Popper.createPopper(this._element,i,this._getPopperConfig(r)),i.classList.add("show");const l="function"==typeof this.config.customClass?this.config.customClass():this.config.customClass;l&&i.classList.add(...l.split(" ")),"ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach(e=>{EventHandler.on(e,"mouseover",(function(){}))});const c=()=>{const e=this._hoverState;this._hoverState=null,EventHandler.trigger(this._element,this.constructor.Event.SHOWN),"out"===e&&this._leave(null,this)};if(this.tip.classList.contains("fade")){const e=getTransitionDurationFromElement(this.tip);EventHandler.one(this.tip,"transitionend",c),emulateTransitionEnd(this.tip,e)}else c()}hide(){if(!this._popper)return;const e=this.getTipElement(),t=()=>{this._isWithActiveTrigger()||("show"!==this._hoverState&&e.parentNode&&e.parentNode.removeChild(e),this._cleanTipClass(),this._element.removeAttribute("aria-describedby"),EventHandler.trigger(this._element,this.constructor.Event.HIDDEN),this._popper&&(this._popper.destroy(),this._popper=null))};if(!EventHandler.trigger(this._element,this.constructor.Event.HIDE).defaultPrevented){if(e.classList.remove("show"),"ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach(e=>EventHandler.off(e,"mouseover",noop)),this._activeTrigger.click=!1,this._activeTrigger.focus=!1,this._activeTrigger.hover=!1,this.tip.classList.contains("fade")){const n=getTransitionDurationFromElement(e);EventHandler.one(e,"transitionend",t),emulateTransitionEnd(e,n)}else t();this._hoverState=""}}update(){null!==this._popper&&this._popper.update()}isWithContent(){return Boolean(this.getTitle())}getTipElement(){if(this.tip)return this.tip;const e=document.createElement("div");return e.innerHTML=this.config.template,this.tip=e.children[0],this.tip}setContent(){const e=this.getTipElement();this.setElementContent(SelectorEngine.findOne(".tooltip-inner",e),this.getTitle()),e.classList.remove("fade","show")}setElementContent(e,t){if(null!==e)return"object"==typeof t&&isElement(t)?(t.jquery&&(t=t[0]),void(this.config.html?t.parentNode!==e&&(e.innerHTML="",e.appendChild(t)):e.textContent=t.textContent)):void(this.config.html?(this.config.sanitize&&(t=sanitizeHtml(t,this.config.allowList,this.config.sanitizeFn)),e.innerHTML=t):e.textContent=t)}getTitle(){let e=this._element.getAttribute("data-bs-original-title");return e||(e="function"==typeof this.config.title?this.config.title.call(this._element):this.config.title),e}updateAttachment(e){return"right"===e?"end":"left"===e?"start":e}_initializeOnDelegatedTarget(e,t){const n=this.constructor.DATA_KEY;return(t=t||Data.get(e.delegateTarget,n))||(t=new this.constructor(e.delegateTarget,this._getDelegateConfig()),Data.set(e.delegateTarget,n,t)),t}_getOffset(){const{offset:e}=this.config;return"string"==typeof e?e.split(",").map(e=>Number.parseInt(e,10)):"function"==typeof e?t=>e(t,this._element):e}_getPopperConfig(e){const t={placement:e,modifiers:[{name:"flip",options:{altBoundary:!0,fallbackPlacements:this.config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this.config.boundary}},{name:"arrow",options:{element:`.${this.constructor.NAME}-arrow`}},{name:"onChange",enabled:!0,phase:"afterWrite",fn:e=>this._handlePopperPlacementChange(e)}],onFirstUpdate:e=>{e.options.placement!==e.placement&&this._handlePopperPlacementChange(e)}};return{...t,..."function"==typeof this.config.popperConfig?this.config.popperConfig(t):this.config.popperConfig}}_addAttachmentClass(e){this.getTipElement().classList.add("bs-tooltip-"+this.updateAttachment(e))}_getContainer(){return!1===this.config.container?document.body:isElement(this.config.container)?this.config.container:SelectorEngine.findOne(this.config.container)}_getAttachment(e){return AttachmentMap[e.toUpperCase()]}_setListeners(){this.config.trigger.split(" ").forEach(e=>{if("click"===e)EventHandler.on(this._element,this.constructor.Event.CLICK,this.config.selector,e=>this.toggle(e));else if("manual"!==e){const t="hover"===e?this.constructor.Event.MOUSEENTER:this.constructor.Event.FOCUSIN,n="hover"===e?this.constructor.Event.MOUSELEAVE:this.constructor.Event.FOCUSOUT;EventHandler.on(this._element,t,this.config.selector,e=>this._enter(e)),EventHandler.on(this._element,n,this.config.selector,e=>this._leave(e))}}),this._hideModalHandler=()=>{this._element&&this.hide()},EventHandler.on(this._element.closest(".modal"),"hide.bs.modal",this._hideModalHandler),this.config.selector?this.config={...this.config,trigger:"manual",selector:""}:this._fixTitle()}_fixTitle(){const e=this._element.getAttribute("title"),t=typeof this._element.getAttribute("data-bs-original-title");(e||"string"!==t)&&(this._element.setAttribute("data-bs-original-title",e||""),!e||this._element.getAttribute("aria-label")||this._element.textContent||this._element.setAttribute("aria-label",e),this._element.setAttribute("title",""))}_enter(e,t){t=this._initializeOnDelegatedTarget(e,t),e&&(t._activeTrigger["focusin"===e.type?"focus":"hover"]=!0),t.getTipElement().classList.contains("show")||"show"===t._hoverState?t._hoverState="show":(clearTimeout(t._timeout),t._hoverState="show",t.config.delay&&t.config.delay.show?t._timeout=setTimeout(()=>{"show"===t._hoverState&&t.show()},t.config.delay.show):t.show())}_leave(e,t){t=this._initializeOnDelegatedTarget(e,t),e&&(t._activeTrigger["focusout"===e.type?"focus":"hover"]=t._element.contains(e.relatedTarget)),t._isWithActiveTrigger()||(clearTimeout(t._timeout),t._hoverState="out",t.config.delay&&t.config.delay.hide?t._timeout=setTimeout(()=>{"out"===t._hoverState&&t.hide()},t.config.delay.hide):t.hide())}_isWithActiveTrigger(){for(const e in this._activeTrigger)if(this._activeTrigger[e])return!0;return!1}_getConfig(e){const t=Manipulator.getDataAttributes(this._element);return Object.keys(t).forEach(e=>{DISALLOWED_ATTRIBUTES.has(e)&&delete t[e]}),e&&"object"==typeof e.container&&e.container.jquery&&(e.container=e.container[0]),"number"==typeof(e={...this.constructor.Default,...t,..."object"==typeof e&&e?e:{}}).delay&&(e.delay={show:e.delay,hide:e.delay}),"number"==typeof e.title&&(e.title=e.title.toString()),"number"==typeof e.content&&(e.content=e.content.toString()),typeCheckConfig(NAME$4,e,this.constructor.DefaultType),e.sanitize&&(e.template=sanitizeHtml(e.template,e.allowList,e.sanitizeFn)),e}_getDelegateConfig(){const e={};if(this.config)for(const t in this.config)this.constructor.Default[t]!==this.config[t]&&(e[t]=this.config[t]);return e}_cleanTipClass(){const e=this.getTipElement(),t=e.getAttribute("class").match(BSCLS_PREFIX_REGEX$1);null!==t&&t.length>0&&t.map(e=>e.trim()).forEach(t=>e.classList.remove(t))}_handlePopperPlacementChange(e){const{state:t}=e;t&&(this.tip=t.elements.popper,this._cleanTipClass(),this._addAttachmentClass(this._getAttachment(t.placement)))}static jQueryInterface(e){return this.each((function(){let t=Data.get(this,DATA_KEY$4);const n="object"==typeof e&&e;if((t||!/dispose|hide/.test(e))&&(t||(t=new Tooltip(this,n)),"string"==typeof e)){if(void 0===t[e])throw new TypeError(`No method named "${e}"`);t[e]()}}))}}defineJQueryPlugin(NAME$4,Tooltip);const NAME$3="popover",DATA_KEY$3="bs.popover",EVENT_KEY$3=".bs.popover",CLASS_PREFIX="bs-popover",BSCLS_PREFIX_REGEX=new RegExp("(^|\\s)bs-popover\\S+","g"),Default$2={...Tooltip.Default,placement:"right",offset:[0,8],trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="popover-arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'},DefaultType$2={...Tooltip.DefaultType,content:"(string|element|function)"},Event$1={HIDE:"hide.bs.popover",HIDDEN:"hidden.bs.popover",SHOW:"show.bs.popover",SHOWN:"shown.bs.popover",INSERTED:"inserted.bs.popover",CLICK:"click.bs.popover",FOCUSIN:"focusin.bs.popover",FOCUSOUT:"focusout.bs.popover",MOUSEENTER:"mouseenter.bs.popover",MOUSELEAVE:"mouseleave.bs.popover"},CLASS_NAME_FADE$2="fade",CLASS_NAME_SHOW$2="show",SELECTOR_TITLE=".popover-header",SELECTOR_CONTENT=".popover-body";class Popover extends Tooltip{static get Default(){return Default$2}static get NAME(){return NAME$3}static get DATA_KEY(){return DATA_KEY$3}static get Event(){return Event$1}static get EVENT_KEY(){return EVENT_KEY$3}static get DefaultType(){return DefaultType$2}isWithContent(){return this.getTitle()||this._getContent()}setContent(){const e=this.getTipElement();this.setElementContent(SelectorEngine.findOne(SELECTOR_TITLE,e),this.getTitle());let t=this._getContent();"function"==typeof t&&(t=t.call(this._element)),this.setElementContent(SelectorEngine.findOne(".popover-body",e),t),e.classList.remove("fade","show")}_addAttachmentClass(e){this.getTipElement().classList.add("bs-popover-"+this.updateAttachment(e))}_getContent(){return this._element.getAttribute("data-bs-content")||this.config.content}_cleanTipClass(){const e=this.getTipElement(),t=e.getAttribute("class").match(BSCLS_PREFIX_REGEX);null!==t&&t.length>0&&t.map(e=>e.trim()).forEach(t=>e.classList.remove(t))}static jQueryInterface(e){return this.each((function(){let t=Data.get(this,DATA_KEY$3);const n="object"==typeof e?e:null;if((t||!/dispose|hide/.test(e))&&(t||(t=new Popover(this,n),Data.set(this,DATA_KEY$3,t)),"string"==typeof e)){if(void 0===t[e])throw new TypeError(`No method named "${e}"`);t[e]()}}))}}defineJQueryPlugin(NAME$3,Popover);const NAME$2="scrollspy",DATA_KEY$2="bs.scrollspy",EVENT_KEY$2=".bs.scrollspy",DATA_API_KEY$1=".data-api",Default$1={offset:10,method:"auto",target:""},DefaultType$1={offset:"number",method:"string",target:"(string|element)"},EVENT_ACTIVATE="activate.bs.scrollspy",EVENT_SCROLL="scroll.bs.scrollspy",EVENT_LOAD_DATA_API="load.bs.scrollspy.data-api",CLASS_NAME_DROPDOWN_ITEM="dropdown-item",CLASS_NAME_ACTIVE$1="active",SELECTOR_DATA_SPY='[data-bs-spy="scroll"]',SELECTOR_NAV_LIST_GROUP$1=".nav, .list-group",SELECTOR_NAV_LINKS=".nav-link",SELECTOR_NAV_ITEMS=".nav-item",SELECTOR_LIST_ITEMS=".list-group-item",SELECTOR_DROPDOWN$1=".dropdown",SELECTOR_DROPDOWN_TOGGLE$1=".dropdown-toggle",METHOD_OFFSET="offset",METHOD_POSITION="position";class ScrollSpy extends BaseComponent{constructor(e,t){super(e),this._scrollElement="BODY"===this._element.tagName?window:this._element,this._config=this._getConfig(t),this._selector=`${this._config.target} .nav-link, ${this._config.target} .list-group-item, ${this._config.target} .dropdown-item`,this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,EventHandler.on(this._scrollElement,EVENT_SCROLL,()=>this._process()),this.refresh(),this._process()}static get Default(){return Default$1}static get DATA_KEY(){return DATA_KEY$2}refresh(){const e=this._scrollElement===this._scrollElement.window?"offset":"position",t="auto"===this._config.method?e:this._config.method,n="position"===t?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),SelectorEngine.find(this._selector).map(e=>{const i=getSelectorFromElement(e),s=i?SelectorEngine.findOne(i):null;if(s){const e=s.getBoundingClientRect();if(e.width||e.height)return[Manipulator[t](s).top+n,i]}return null}).filter(e=>e).sort((e,t)=>e[0]-t[0]).forEach(e=>{this._offsets.push(e[0]),this._targets.push(e[1])})}dispose(){super.dispose(),EventHandler.off(this._scrollElement,EVENT_KEY$2),this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null}_getConfig(e){if("string"!=typeof(e={...Default$1,..."object"==typeof e&&e?e:{}}).target&&isElement(e.target)){let{id:t}=e.target;t||(t=getUID(NAME$2),e.target.id=t),e.target="#"+t}return typeCheckConfig(NAME$2,e,DefaultType$1),e}_getScrollTop(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop}_getScrollHeight(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)}_getOffsetHeight(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height}_process(){const e=this._getScrollTop()+this._config.offset,t=this._getScrollHeight(),n=this._config.offset+t-this._getOffsetHeight();if(this._scrollHeight!==t&&this.refresh(),e>=n){const e=this._targets[this._targets.length-1];this._activeTarget!==e&&this._activate(e)}else{if(this._activeTarget&&e<this._offsets[0]&&this._offsets[0]>0)return this._activeTarget=null,void this._clear();for(let t=this._offsets.length;t--;)this._activeTarget!==this._targets[t]&&e>=this._offsets[t]&&(void 0===this._offsets[t+1]||e<this._offsets[t+1])&&this._activate(this._targets[t])}}_activate(e){this._activeTarget=e,this._clear();const t=this._selector.split(",").map(t=>`${t}[data-bs-target="${e}"],${t}[href="${e}"]`),n=SelectorEngine.findOne(t.join(","));n.classList.contains("dropdown-item")?(SelectorEngine.findOne(".dropdown-toggle",n.closest(".dropdown")).classList.add("active"),n.classList.add("active")):(n.classList.add("active"),SelectorEngine.parents(n,".nav, .list-group").forEach(e=>{SelectorEngine.prev(e,".nav-link, .list-group-item").forEach(e=>e.classList.add("active")),SelectorEngine.prev(e,".nav-item").forEach(e=>{SelectorEngine.children(e,".nav-link").forEach(e=>e.classList.add("active"))})})),EventHandler.trigger(this._scrollElement,EVENT_ACTIVATE,{relatedTarget:e})}_clear(){SelectorEngine.find(this._selector).filter(e=>e.classList.contains("active")).forEach(e=>e.classList.remove("active"))}static jQueryInterface(e){return this.each((function(){let t=Data.get(this,DATA_KEY$2);if(t||(t=new ScrollSpy(this,"object"==typeof e&&e)),"string"==typeof e){if(void 0===t[e])throw new TypeError(`No method named "${e}"`);t[e]()}}))}}EventHandler.on(window,EVENT_LOAD_DATA_API,()=>{SelectorEngine.find(SELECTOR_DATA_SPY).forEach(e=>new ScrollSpy(e,Manipulator.getDataAttributes(e)))}),defineJQueryPlugin(NAME$2,ScrollSpy);const NAME$1="tab",DATA_KEY$1="bs.tab",EVENT_KEY$1=".bs.tab",DATA_API_KEY=".data-api",EVENT_HIDE$1="hide.bs.tab",EVENT_HIDDEN$1="hidden.bs.tab",EVENT_SHOW$1="show.bs.tab",EVENT_SHOWN$1="shown.bs.tab",EVENT_CLICK_DATA_API="click.bs.tab.data-api",CLASS_NAME_DROPDOWN_MENU="dropdown-menu",CLASS_NAME_ACTIVE="active",CLASS_NAME_FADE$1="fade",CLASS_NAME_SHOW$1="show",SELECTOR_DROPDOWN=".dropdown",SELECTOR_NAV_LIST_GROUP=".nav, .list-group",SELECTOR_ACTIVE=".active",SELECTOR_ACTIVE_UL=":scope > li > .active",SELECTOR_DATA_TOGGLE='[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',SELECTOR_DROPDOWN_TOGGLE=".dropdown-toggle",SELECTOR_DROPDOWN_ACTIVE_CHILD=":scope > .dropdown-menu .active";class Tab extends BaseComponent{static get DATA_KEY(){return"bs.tab"}show(){if(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&this._element.classList.contains("active")||isDisabled(this._element))return;let e;const t=getElementFromSelector(this._element),n=this._element.closest(".nav, .list-group");if(n){const t="UL"===n.nodeName||"OL"===n.nodeName?SELECTOR_ACTIVE_UL:".active";e=SelectorEngine.find(t,n),e=e[e.length-1]}const i=e?EventHandler.trigger(e,EVENT_HIDE$1,{relatedTarget:this._element}):null;if(EventHandler.trigger(this._element,EVENT_SHOW$1,{relatedTarget:e}).defaultPrevented||null!==i&&i.defaultPrevented)return;this._activate(this._element,n);const s=()=>{EventHandler.trigger(e,EVENT_HIDDEN$1,{relatedTarget:this._element}),EventHandler.trigger(this._element,EVENT_SHOWN$1,{relatedTarget:e})};t?this._activate(t,t.parentNode,s):s()}_activate(e,t,n){const i=(!t||"UL"!==t.nodeName&&"OL"!==t.nodeName?SelectorEngine.children(t,".active"):SelectorEngine.find(SELECTOR_ACTIVE_UL,t))[0],s=n&&i&&i.classList.contains("fade"),o=()=>this._transitionComplete(e,i,n);if(i&&s){const e=getTransitionDurationFromElement(i);i.classList.remove("show"),EventHandler.one(i,"transitionend",o),emulateTransitionEnd(i,e)}else o()}_transitionComplete(e,t,n){if(t){t.classList.remove("active");const e=SelectorEngine.findOne(SELECTOR_DROPDOWN_ACTIVE_CHILD,t.parentNode);e&&e.classList.remove("active"),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!1)}e.classList.add("active"),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!0),reflow(e),e.classList.contains("fade")&&e.classList.add("show"),e.parentNode&&e.parentNode.classList.contains("dropdown-menu")&&(e.closest(".dropdown")&&SelectorEngine.find(".dropdown-toggle").forEach(e=>e.classList.add("active")),e.setAttribute("aria-expanded",!0)),n&&n()}static jQueryInterface(e){return this.each((function(){const t=Data.get(this,"bs.tab")||new Tab(this);if("string"==typeof e){if(void 0===t[e])throw new TypeError(`No method named "${e}"`);t[e]()}}))}}EventHandler.on(document,EVENT_CLICK_DATA_API,SELECTOR_DATA_TOGGLE,(function(e){e.preventDefault(),(Data.get(this,"bs.tab")||new Tab(this)).show()})),defineJQueryPlugin("tab",Tab);const NAME="toast",DATA_KEY="bs.toast",EVENT_KEY=".bs.toast",EVENT_CLICK_DISMISS="click.dismiss.bs.toast",EVENT_HIDE="hide.bs.toast",EVENT_HIDDEN="hidden.bs.toast",EVENT_SHOW="show.bs.toast",EVENT_SHOWN="shown.bs.toast",CLASS_NAME_FADE="fade",CLASS_NAME_HIDE="hide",CLASS_NAME_SHOW="show",CLASS_NAME_SHOWING="showing",DefaultType={animation:"boolean",autohide:"boolean",delay:"number"},Default={animation:!0,autohide:!0,delay:5e3},SELECTOR_DATA_DISMISS='[data-bs-dismiss="toast"]';class Toast extends BaseComponent{constructor(e,t){super(e),this._config=this._getConfig(t),this._timeout=null,this._setListeners()}static get DefaultType(){return DefaultType}static get Default(){return Default}static get DATA_KEY(){return DATA_KEY}show(){if(EventHandler.trigger(this._element,EVENT_SHOW).defaultPrevented)return;this._clearTimeout(),this._config.animation&&this._element.classList.add("fade");const e=()=>{this._element.classList.remove("showing"),this._element.classList.add("show"),EventHandler.trigger(this._element,EVENT_SHOWN),this._config.autohide&&(this._timeout=setTimeout(()=>{this.hide()},this._config.delay))};if(this._element.classList.remove("hide"),reflow(this._element),this._element.classList.add("showing"),this._config.animation){const t=getTransitionDurationFromElement(this._element);EventHandler.one(this._element,"transitionend",e),emulateTransitionEnd(this._element,t)}else e()}hide(){if(!this._element.classList.contains("show"))return;if(EventHandler.trigger(this._element,EVENT_HIDE).defaultPrevented)return;const e=()=>{this._element.classList.add("hide"),EventHandler.trigger(this._element,EVENT_HIDDEN)};if(this._element.classList.remove("show"),this._config.animation){const t=getTransitionDurationFromElement(this._element);EventHandler.one(this._element,"transitionend",e),emulateTransitionEnd(this._element,t)}else e()}dispose(){this._clearTimeout(),this._element.classList.contains("show")&&this._element.classList.remove("show"),EventHandler.off(this._element,EVENT_CLICK_DISMISS),super.dispose(),this._config=null}_getConfig(e){return e={...Default,...Manipulator.getDataAttributes(this._element),..."object"==typeof e&&e?e:{}},typeCheckConfig(NAME,e,this.constructor.DefaultType),e}_setListeners(){EventHandler.on(this._element,EVENT_CLICK_DISMISS,SELECTOR_DATA_DISMISS,()=>this.hide())}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static jQueryInterface(e){return this.each((function(){let t=Data.get(this,DATA_KEY);if(t||(t=new Toast(this,"object"==typeof e&&e)),"string"==typeof e){if(void 0===t[e])throw new TypeError(`No method named "${e}"`);t[e](this)}}))}}defineJQueryPlugin(NAME,Toast);export{Alert,Button,Carousel,Collapse,Dropdown,Modal,Offcanvas,Popover,ScrollSpy,Tab,Toast,Tooltip}; //# sourceMappingURL=bootstrap.esm.min.js.map
\ No newline at end of file diff --git a/dist/js/bootstrap.esm.min.js.map b/dist/js/bootstrap.esm.min.js.map index 7fc40a5df..2331f0e06 100644 --- a/dist/js/bootstrap.esm.min.js.map +++ b/dist/js/bootstrap.esm.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["../../js/src/util/index.js","../../js/src/dom/data.js","../../js/src/dom/event-handler.js","../../js/src/base-component.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/dom/manipulator.js","../../js/src/dom/selector-engine.js","../../js/src/carousel.js","../../js/src/collapse.js","../../js/src/dropdown.js","../../js/src/modal.js","../../js/src/util/sanitizer.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/toast.js"],"names":["MAX_UID","MILLISECONDS_MULTIPLIER","TRANSITION_END","toType","obj","toString","call","match","toLowerCase","getUID","prefix","Math","floor","random","document","getElementById","getSelector","element","selector","getAttribute","hrefAttr","trim","getSelectorFromElement","querySelector","getElementFromSelector","getTransitionDurationFromElement","_window$getComputedSt","window","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","Number","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","dispatchEvent","Event","isElement","nodeType","emulateTransitionEnd","duration","called","emulatedDuration","addEventListener","listener","removeEventListener","setTimeout","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","isVisible","style","parentNode","elementStyle","parentNodeStyle","display","visibility","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","noop","reflow","offsetHeight","getjQuery","jQuery","body","hasAttribute","onDOMContentLoaded","callback","readyState","isRTL","dir","mapData","storeData","id","set","key","data","bsKey","get","keyProperties","delete","Data","setData","instance","getData","removeData","namespaceRegex","stripNameRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","nativeEvents","Set","getUidEvent","uid","getEvent","bootstrapHandler","fn","handler","event","delegateTarget","oneOff","EventHandler","off","type","apply","bootstrapDelegationHandler","domElements","querySelectorAll","target","this","i","length","findHandler","events","delegationSelector","uidEventList","len","originalHandler","normalizeParams","originalTypeEvent","delegationFn","delegation","typeEvent","replace","custom","has","addHandler","_normalizeParams","handlers","previousFn","removeHandler","Boolean","removeNamespacedHandlers","namespace","storeElementEvent","handlerKey","includes","on","one","_normalizeParams2","inNamespace","isNamespace","startsWith","elementEvent","slice","keyHandlers","trigger","args","jQueryEvent","$","isNative","bubbles","nativeDispatch","defaultPrevented","evt","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","createEvent","initEvent","CustomEvent","cancelable","defineProperty","preventDefault","VERSION","BaseComponent","_element","constructor","DATA_KEY","dispose","getInstance","NAME","EVENT_KEY","DATA_API_KEY","SELECTOR_DISMISS","EVENT_CLOSE","EVENT_CLOSED","EVENT_CLICK_DATA_API","CLASSNAME_ALERT","CLASSNAME_FADE","CLASSNAME_SHOW","Alert","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","_removeElement","closest","_this","classList","remove","contains","_destroyElement","removeChild","jQueryInterface","each","handleDismiss","alertInstance","JQUERY_NO_CONFLICT","Constructor","noConflict","CLASS_NAME_ACTIVE","SELECTOR_DATA_TOGGLE","Button","toggle","setAttribute","normalizeData","val","normalizeDataKey","chr","button","Manipulator","setDataAttribute","removeDataAttribute","removeAttribute","getDataAttributes","attributes","dataset","filter","pureKey","charAt","getDataAttribute","offset","rect","getBoundingClientRect","top","scrollTop","left","scrollLeft","position","offsetTop","offsetLeft","NODE_TEXT","SelectorEngine","matches","find","_ref","concat","Element","prototype","findOne","children","_ref2","child","parents","ancestor","Node","ELEMENT_NODE","push","prev","previous","previousElementSibling","next","nextElementSibling","ARROW_LEFT_KEY","ARROW_RIGHT_KEY","TOUCHEVENT_COMPAT_WAIT","SWIPE_THRESHOLD","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","DIRECTION_NEXT","DIRECTION_PREV","DIRECTION_LEFT","DIRECTION_RIGHT","EVENT_SLIDE","EVENT_SLID","EVENT_KEYDOWN","EVENT_MOUSEENTER","EVENT_MOUSELEAVE","EVENT_TOUCHSTART","EVENT_TOUCHMOVE","EVENT_TOUCHEND","EVENT_POINTERDOWN","EVENT_POINTERUP","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","CLASS_NAME_POINTER_EVENT","SELECTOR_ACTIVE","SELECTOR_ACTIVE_ITEM","SELECTOR_ITEM","SELECTOR_ITEM_IMG","SELECTOR_NEXT_PREV","SELECTOR_INDICATORS","SELECTOR_DATA_SLIDE","SELECTOR_DATA_RIDE","PointerType","TOUCH","PEN","Carousel","_BaseComponent","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","_addEventListeners","_slide","nextWhenVisible","hidden","cycle","clearInterval","_updateInterval","setInterval","visibilityState","bind","to","index","_this2","activeIndex","_getItemIndex","direction","_extends","_handleSwipe","absDeltax","abs","_this3","_keydown","_addTouchEventListeners","_this4","start","pointerType","clientX","touches","end","clearTimeout","itemImg","e","add","move","tagName","indexOf","_getItemByDirection","activeElement","isNextDirection","isPrevDirection","lastItemIndex","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","from","_setActiveIndicatorElement","indicators","nextIndicator","elementInterval","parseInt","defaultInterval","directionalClassName","orderClassName","_this5","activeElementIndex","nextElement","nextElementIndex","isCycling","carouselInterface","action","TypeError","ride","dataApiClickHandler","slideIndex","carousels","parent","EVENT_SHOW","EVENT_SHOWN","EVENT_HIDE","EVENT_HIDDEN","CLASS_NAME_SHOW","CLASS_NAME_COLLAPSE","CLASS_NAME_COLLAPSING","CLASS_NAME_COLLAPSED","WIDTH","HEIGHT","SELECTOR_ACTIVES","Collapse","_isTransitioning","_triggerArray","toggleList","elem","filterElement","foundElem","_selector","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","container","tempActiveData","elemActive","collapseInterface","dimension","_getDimension","setTransitioning","scrollSize","triggerArrayLength","isTransitioning","jquery","selected","triggerArray","isOpen","triggerData","ESCAPE_KEY","SPACE_KEY","TAB_KEY","ARROW_UP_KEY","ARROW_DOWN_KEY","RIGHT_MOUSE_BUTTON","REGEXP_KEYDOWN","EVENT_CLICK","EVENT_KEYDOWN_DATA_API","EVENT_KEYUP_DATA_API","CLASS_NAME_DISABLED","CLASS_NAME_DROPUP","CLASS_NAME_DROPEND","CLASS_NAME_DROPSTART","CLASS_NAME_MENUEND","CLASS_NAME_NAVBAR","CLASS_NAME_POSITION_STATIC","SELECTOR_FORM_CHILD","SELECTOR_MENU","SELECTOR_NAVBAR_NAV","SELECTOR_VISIBLE_ITEMS","PLACEMENT_TOP","PLACEMENT_TOPEND","PLACEMENT_BOTTOM","PLACEMENT_BOTTOMEND","PLACEMENT_RIGHT","PLACEMENT_LEFT","flip","boundary","reference","popperConfig","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","isActive","clearMenus","getParentFromElement","Popper","referenceElement","_getPopperConfig","focus","destroy","update","scheduleUpdate","stopPropagation","_getPlacement","parentDropdown","placement","_getOffset","offsets","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","dropdownInterface","toggles","context","clickEvent","dropdownMenu","dataApiKeydownHandler","items","backdrop","EVENT_HIDE_PREVENTED","EVENT_FOCUSIN","EVENT_RESIZE","EVENT_CLICK_DISMISS","EVENT_KEYDOWN_DISMISS","EVENT_MOUSEUP_DISMISS","EVENT_MOUSEDOWN_DISMISS","CLASS_NAME_SCROLLBAR_MEASURER","CLASS_NAME_BACKDROP","CLASS_NAME_OPEN","CLASS_NAME_FADE","CLASS_NAME_STATIC","SELECTOR_DIALOG","SELECTOR_MODAL_BODY","SELECTOR_DATA_DISMISS","SELECTOR_FIXED_CONTENT","SELECTOR_STICKY_CONTENT","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","showEvent","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","htmlElement","handleUpdate","modalBody","appendChild","_enforceFocus","transitionComplete","_this6","_triggerBackdropTransition","_this7","_this8","_resetAdjustments","_resetScrollbar","_removeBackdrop","_this9","animate","createElement","className","currentTarget","backdropTransitionDuration","callbackRemove","_this10","isModalOverflowing","scrollHeight","clientHeight","overflowY","modalTransitionDuration","paddingLeft","paddingRight","round","right","innerWidth","_getScrollbarWidth","_this11","actualPadding","calculatedPadding","actualMargin","marginRight","calculatedMargin","padding","margin","scrollDiv","scrollbarWidth","width","clientWidth","_this12","uriAttrs","ARIA_ATTRIBUTE_PATTERN","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","attr","allowedAttributeList","attrName","nodeName","nodeValue","regExp","attrRegex","DefaultAllowlist","*","a","area","b","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","sanitizeHtml","unsafeHtml","allowList","sanitizeFn","createdDocument","DOMParser","parseFromString","allowlistKeys","elements","_loop","el","elName","attributeList","allowedAttributes","innerHTML","CLASS_PREFIX","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","html","fallbackPlacement","customClass","sanitize","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","CLASS_NAME_MODAL","HOVER_STATE_SHOW","HOVER_STATE_OUT","SELECTOR_TOOLTIP_INNER","TRIGGER_HOVER","TRIGGER_FOCUS","TRIGGER_CLICK","TRIGGER_MANUAL","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","_hideModalHandler","isWithContent","shadowRoot","isInTheDom","ownerDocument","tipId","setContent","attachment","_getAttachment","_addAttachmentClass","_getContainer","_tip$classList","complete","_fixTransition","prevHoverState","_cleanTipClass","getTitle","setElementContent","content","textContent","updateAttachment","behavior","arrow","onCreate","originalPlacement","_handlePopperPlacementChange","onUpdate","eventIn","eventOut","_fixTitle","originalTitleType","dataAttributes","dataAttr","tabClass","map","token","tClass","popperData","popper","initConfigAnimation","SELECTOR_TITLE","SELECTOR_CONTENT","Popover","_getContent","method","EVENT_ACTIVATE","EVENT_SCROLL","CLASS_NAME_DROPDOWN_ITEM","SELECTOR_DATA_SPY","SELECTOR_NAV_LIST_GROUP","SELECTOR_NAV_LINKS","SELECTOR_NAV_ITEMS","SELECTOR_LIST_ITEMS","SELECTOR_DROPDOWN","SELECTOR_DROPDOWN_TOGGLE","METHOD_OFFSET","METHOD_POSITION","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targetSelector","targetBCR","height","item","sort","pageYOffset","max","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","queries","link","join","listGroup","navItem","node","spy","CLASS_NAME_DROPDOWN_MENU","SELECTOR_ACTIVE_UL","SELECTOR_DROPDOWN_ACTIVE_CHILD","Tab","listElement","itemSelector","hideEvent","active","_transitionComplete","dropdownChild","dropdown","CLASS_NAME_HIDE","CLASS_NAME_SHOWING","autohide","Toast","_clearTimeout"],"mappings":"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","sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => {\n if (obj === null || obj === undefined) {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n prefix += Math.floor(Math.random() * MAX_UID)\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelector = element => {\n let selector = element.getAttribute('data-bs-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null\n }\n\n return selector\n}\n\nconst getSelectorFromElement = element => {\n const selector = getSelector(element)\n\n if (selector) {\n return document.querySelector(selector) ? selector : null\n }\n\n return null\n}\n\nconst getElementFromSelector = element => {\n const selector = getSelector(element)\n\n return selector ? document.querySelector(selector) : null\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 = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes).forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n const elementStyle = getComputedStyle(element)\n const parentNodeStyle = getComputedStyle(element.parentNode)\n\n return elementStyle.display !== 'none' &&\n parentNodeStyle.display !== 'none' &&\n elementStyle.visibility !== 'hidden'\n }\n\n return 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 = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nconst getjQuery = () => {\n const { jQuery } = window\n\n if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n return jQuery\n }\n\n return null\n}\n\nconst onDOMContentLoaded = callback => {\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', callback)\n } else {\n callback()\n }\n}\n\nconst isRTL = document.documentElement.dir === 'rtl'\n\nexport {\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n isVisible,\n findShadowRoot,\n noop,\n reflow,\n getjQuery,\n onDOMContentLoaded,\n isRTL\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst mapData = (() => {\n const storeData = {}\n let id = 1\n return {\n set(element, key, data) {\n if (typeof element.bsKey === 'undefined') {\n element.bsKey = {\n key,\n id\n }\n id++\n }\n\n storeData[element.bsKey.id] = data\n },\n get(element, key) {\n if (!element || typeof element.bsKey === 'undefined') {\n return null\n }\n\n const keyProperties = element.bsKey\n if (keyProperties.key === key) {\n return storeData[keyProperties.id]\n }\n\n return null\n },\n delete(element, key) {\n if (typeof element.bsKey === 'undefined') {\n return\n }\n\n const keyProperties = element.bsKey\n if (keyProperties.key === key) {\n delete storeData[keyProperties.id]\n delete element.bsKey\n }\n }\n }\n})()\n\nconst Data = {\n setData(instance, key, data) {\n mapData.set(instance, key, data)\n },\n getData(instance, key) {\n return mapData.get(instance, key)\n },\n removeData(instance, key) {\n mapData.delete(instance, key)\n }\n}\n\nexport default Data\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getjQuery } from '../util/index'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\nconst nativeEvents = new Set([\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 * ------------------------------------------------------------------------\n * Private methods\n * ------------------------------------------------------------------------\n */\n\nfunction getUidEvent(element, uid) {\n return (uid && `${uid}::${uidEvent++}`) || element.uidEvent || uidEvent++\n}\n\nfunction getEvent(element) {\n const uid = getUidEvent(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 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 (let i = domElements.length; i--;) {\n if (domElements[i] === target) {\n event.delegateTarget = target\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(target, [event])\n }\n }\n }\n\n // To please ESLint\n return null\n }\n}\n\nfunction findHandler(events, handler, delegationSelector = null) {\n const uidEventList = Object.keys(events)\n\n for (let i = 0, len = uidEventList.length; i < len; i++) {\n const event = events[uidEventList[i]]\n\n if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {\n return event\n }\n }\n\n return null\n}\n\nfunction normalizeParams(originalTypeEvent, handler, delegationFn) {\n const delegation = typeof handler === 'string'\n const originalHandler = delegation ? delegationFn : handler\n\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n let typeEvent = originalTypeEvent.replace(stripNameRegex, '')\n const custom = customEvents[typeEvent]\n\n if (custom) {\n typeEvent = custom\n }\n\n const isNative = nativeEvents.has(typeEvent)\n\n if (!isNative) {\n typeEvent = originalTypeEvent\n }\n\n return [delegation, originalHandler, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n if (!handler) {\n handler = delegationFn\n delegationFn = null\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const events = getEvent(element)\n const handlers = events[typeEvent] || (events[typeEvent] = {})\n const previousFn = findHandler(handlers, originalHandler, delegation ? handler : null)\n\n if (previousFn) {\n previousFn.oneOff = previousFn.oneOff && oneOff\n\n return\n }\n\n const uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, ''))\n const fn = delegation ?\n bootstrapDelegationHandler(element, handler, delegationFn) :\n bootstrapHandler(element, handler)\n\n fn.delegationSelector = delegation ? handler : null\n fn.originalHandler = originalHandler\n fn.oneOff = oneOff\n fn.uidEvent = uid\n handlers[uid] = fn\n\n element.addEventListener(typeEvent, fn, delegation)\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 Object.keys(storeElementEvent).forEach(handlerKey => {\n if (handlerKey.includes(namespace)) {\n const event = storeElementEvent[handlerKey]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, false)\n },\n\n one(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFn) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getEvent(element)\n const isNamespace = originalTypeEvent.startsWith('.')\n\n if (typeof originalHandler !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!events || !events[typeEvent]) {\n return\n }\n\n removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null)\n return\n }\n\n if (isNamespace) {\n Object.keys(events).forEach(elementEvent => {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1))\n })\n }\n\n const storeElementEvent = events[typeEvent] || {}\n Object.keys(storeElementEvent).forEach(keyHandlers => {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.includes(handlerKey)) {\n const event = storeElementEvent[keyHandlers]\n\n removeHandler(element, events, typeEvent, event.originalHandler, 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 = event.replace(stripNameRegex, '')\n const inNamespace = event !== typeEvent\n const isNative = nativeEvents.has(typeEvent)\n\n let jQueryEvent\n let bubbles = true\n let nativeDispatch = true\n let defaultPrevented = false\n let evt = null\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 if (isNative) {\n evt = document.createEvent('HTMLEvents')\n evt.initEvent(typeEvent, bubbles, true)\n } else {\n evt = new CustomEvent(event, {\n bubbles,\n cancelable: true\n })\n }\n\n // merge custom information in our event\n if (typeof args !== 'undefined') {\n Object.keys(args).forEach(key => {\n Object.defineProperty(evt, key, {\n get() {\n return args[key]\n }\n })\n })\n }\n\n if (defaultPrevented) {\n evt.preventDefault()\n }\n\n if (nativeDispatch) {\n element.dispatchEvent(evt)\n }\n\n if (evt.defaultPrevented && typeof jQueryEvent !== 'undefined') {\n jQueryEvent.preventDefault()\n }\n\n return evt\n }\n}\n\nexport default EventHandler\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): base-component.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Data from './dom/data'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst VERSION = '5.0.0-alpha3'\n\nclass BaseComponent {\n constructor(element) {\n if (!element) {\n return\n }\n\n this._element = element\n Data.setData(element, this.constructor.DATA_KEY, this)\n }\n\n dispose() {\n Data.removeData(this._element, this.constructor.DATA_KEY)\n this._element = null\n }\n\n /** Static */\n\n static getInstance(element) {\n return Data.getData(element, this.DATA_KEY)\n }\n\n static get VERSION() {\n return VERSION\n }\n}\n\nexport default BaseComponent\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n onDOMContentLoaded,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'alert'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst SELECTOR_DISMISS = '[data-bs-dismiss=\"alert\"]'\n\nconst EVENT_CLOSE = `close${EVENT_KEY}`\nconst EVENT_CLOSED = `closed${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASSNAME_ALERT = 'alert'\nconst CLASSNAME_FADE = 'fade'\nconst CLASSNAME_SHOW = 'show'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Alert extends BaseComponent {\n // Getters\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n close(element) {\n const rootElement = element ? this._getRootElement(element) : this._element\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent === null || customEvent.defaultPrevented) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n // Private\n\n _getRootElement(element) {\n return getElementFromSelector(element) || element.closest(`.${CLASSNAME_ALERT}`)\n }\n\n _triggerCloseEvent(element) {\n return EventHandler.trigger(element, EVENT_CLOSE)\n }\n\n _removeElement(element) {\n element.classList.remove(CLASSNAME_SHOW)\n\n if (!element.classList.contains(CLASSNAME_FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = getTransitionDurationFromElement(element)\n\n EventHandler.one(element, TRANSITION_END, () => this._destroyElement(element))\n emulateTransitionEnd(element, transitionDuration)\n }\n\n _destroyElement(element) {\n if (element.parentNode) {\n element.parentNode.removeChild(element)\n }\n\n EventHandler.trigger(element, EVENT_CLOSED)\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DISMISS, Alert.handleDismiss(new Alert()))\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Alert to jQuery only if jQuery is present\n */\n\nonDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Alert.jQueryInterface\n $.fn[NAME].Constructor = Alert\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert.jQueryInterface\n }\n }\n})\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getjQuery, onDOMContentLoaded } from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\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'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"button\"]'\n\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Button extends BaseComponent {\n // Getters\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n toggle() {\n // Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method\n this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE))\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\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\n let data = Data.getData(button, DATA_KEY)\n if (!data) {\n data = new Button(button)\n }\n\n data.toggle()\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Button to jQuery only if jQuery is present\n */\n\nonDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Button.jQueryInterface\n $.fn[NAME].Constructor = Button\n\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button.jQueryInterface\n }\n }\n})\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(val) {\n if (val === 'true') {\n return true\n }\n\n if (val === 'false') {\n return false\n }\n\n if (val === Number(val).toString()) {\n return Number(val)\n }\n\n if (val === '' || val === 'null') {\n return null\n }\n\n return val\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\n Object.keys(element.dataset)\n .filter(key => key.startsWith('bs'))\n .forEach(key => {\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 offset(element) {\n const rect = element.getBoundingClientRect()\n\n return {\n top: rect.top + document.body.scrollTop,\n left: rect.left + document.body.scrollLeft\n }\n },\n\n position(element) {\n return {\n top: element.offsetTop,\n left: element.offsetLeft\n }\n }\n}\n\nexport default Manipulator\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NODE_TEXT = 3\n\nconst SelectorEngine = {\n matches(element, selector) {\n return element.matches(selector)\n },\n\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 const children = [].concat(...element.children)\n\n return children.filter(child => child.matches(selector))\n },\n\n parents(element, selector) {\n const parents = []\n\n let ancestor = element.parentNode\n\n while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {\n if (this.matches(ancestor, selector)) {\n parents.push(ancestor)\n }\n\n ancestor = ancestor.parentNode\n }\n\n return parents\n },\n\n prev(element, selector) {\n let previous = element.previousElementSibling\n\n while (previous) {\n if (previous.matches(selector)) {\n return [previous]\n }\n\n previous = previous.previousElementSibling\n }\n\n return []\n },\n\n next(element, selector) {\n let next = element.nextElementSibling\n\n while (next) {\n if (this.matches(next, selector)) {\n return [next]\n }\n\n next = next.nextElementSibling\n }\n\n return []\n }\n}\n\nexport default SelectorEngine\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n onDOMContentLoaded,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isVisible,\n reflow,\n triggerTransitionEnd,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\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\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\n\nconst DIRECTION_NEXT = 'next'\nconst DIRECTION_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_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 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'\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event'\n\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_ITEM = '.active.carousel-item'\nconst SELECTOR_ITEM = '.carousel-item'\nconst SELECTOR_ITEM_IMG = '.carousel-item img'\nconst SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev'\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 PointerType = {\n TOUCH: 'touch',\n PEN: 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent)\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(DIRECTION_NEXT)\n }\n }\n\n nextWhenVisible() {\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 if (!this._isSliding) {\n this._slide(DIRECTION_PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (SelectorEngine.findOne(SELECTOR_NEXT_PREV, this._element)) {\n triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config && this._config.interval && !this._isPaused) {\n this._updateInterval()\n\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._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 if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex ?\n DIRECTION_NEXT :\n DIRECTION_PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n super.dispose()\n EventHandler.off(this._element, EVENT_KEY)\n\n this._items = null\n this._config = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n this.touchDeltaX = 0\n\n // swipe left\n if (direction > 0) {\n this.prev()\n }\n\n // swipe right\n if (direction < 0) {\n this.next()\n }\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, event => this.pause(event))\n EventHandler.on(this._element, EVENT_MOUSELEAVE, event => this.cycle(event))\n }\n\n if (this._config.touch && this._touchSupported) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n const start = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchStartX = event.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.touches[0].clientX\n }\n }\n\n const move = event => {\n // ensure swiping with one touch and not pinching\n if (event.touches && event.touches.length > 1) {\n this.touchDeltaX = 0\n } else {\n this.touchDeltaX = event.touches[0].clientX - this.touchStartX\n }\n }\n\n const end = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchDeltaX = event.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\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(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n SelectorEngine.find(SELECTOR_ITEM_IMG, this._element).forEach(itemImg => {\n EventHandler.on(itemImg, EVENT_DRAG_START, e => e.preventDefault())\n })\n\n if (this._pointerEvent) {\n EventHandler.on(this._element, EVENT_POINTERDOWN, event => start(event))\n EventHandler.on(this._element, EVENT_POINTERUP, event => end(event))\n\n this._element.classList.add(CLASS_NAME_POINTER_EVENT)\n } else {\n EventHandler.on(this._element, EVENT_TOUCHSTART, event => start(event))\n EventHandler.on(this._element, EVENT_TOUCHMOVE, event => move(event))\n EventHandler.on(this._element, EVENT_TOUCHEND, event => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.key) {\n case ARROW_LEFT_KEY:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEY:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode ?\n SelectorEngine.find(SELECTOR_ITEM, element.parentNode) :\n []\n\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === DIRECTION_NEXT\n const isPrevDirection = direction === DIRECTION_PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = (isPrevDirection && activeIndex === 0) ||\n (isNextDirection && activeIndex === lastItemIndex)\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === DIRECTION_PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1 ?\n this._items[this._items.length - 1] :\n this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element))\n\n return EventHandler.trigger(this._element, EVENT_SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n const indicators = SelectorEngine.find(SELECTOR_ACTIVE, this._indicatorsElement)\n\n for (let i = 0; i < indicators.length; i++) {\n indicators[i].classList.remove(CLASS_NAME_ACTIVE)\n }\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n nextIndicator.classList.add(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n _updateInterval() {\n const element = this._activeElement || SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n\n if (!element) {\n return\n }\n\n const elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10)\n\n if (elementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval\n this._config.interval = elementInterval\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval\n }\n }\n\n _slide(direction, element) {\n const activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || (activeElement && this._getItemByDirection(direction, activeElement))\n\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === DIRECTION_NEXT) {\n directionalClassName = CLASS_NAME_START\n orderClassName = CLASS_NAME_NEXT\n eventDirectionName = DIRECTION_LEFT\n } else {\n directionalClassName = CLASS_NAME_END\n orderClassName = CLASS_NAME_PREV\n eventDirectionName = DIRECTION_RIGHT\n }\n\n if (nextElement && nextElement.classList.contains(CLASS_NAME_ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.defaultPrevented) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n this._activeElement = nextElement\n\n if (this._element.classList.contains(CLASS_NAME_SLIDE)) {\n nextElement.classList.add(orderClassName)\n\n reflow(nextElement)\n\n activeElement.classList.add(directionalClassName)\n nextElement.classList.add(directionalClassName)\n\n const transitionDuration = getTransitionDurationFromElement(activeElement)\n\n EventHandler.one(activeElement, TRANSITION_END, () => {\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 setTimeout(() => {\n EventHandler.trigger(this._element, EVENT_SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }, 0)\n })\n\n emulateTransitionEnd(activeElement, transitionDuration)\n } else {\n activeElement.classList.remove(CLASS_NAME_ACTIVE)\n nextElement.classList.add(CLASS_NAME_ACTIVE)\n\n this._isSliding = false\n EventHandler.trigger(this._element, EVENT_SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static carouselInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n let _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element)\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(element, _config)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n\n data[action]()\n } else if (_config.interval && _config.ride) {\n data.pause()\n data.cycle()\n }\n }\n\n static jQueryInterface(config) {\n return this.each(function () {\n Carousel.carouselInterface(this, config)\n })\n }\n\n static dataApiClickHandler(event) {\n const target = getElementFromSelector(this)\n\n if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {\n return\n }\n\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n const slideIndex = this.getAttribute('data-bs-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel.carouselInterface(target, config)\n\n if (slideIndex) {\n Data.getData(target, DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, Carousel.dataApiClickHandler)\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE)\n\n for (let i = 0, len = carousels.length; i < len; i++) {\n Carousel.carouselInterface(carousels[i], Data.getData(carousels[i], DATA_KEY))\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Carousel to jQuery only if jQuery is present\n */\n\nonDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Carousel.jQueryInterface\n $.fn[NAME].Constructor = Carousel\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel.jQueryInterface\n }\n }\n})\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n onDOMContentLoaded,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isElement,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'collapse'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n toggle: true,\n parent: ''\n}\n\nconst DefaultType = {\n toggle: 'boolean',\n parent: '(string|element)'\n}\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'\n\nconst WIDTH = 'width'\nconst HEIGHT = 'height'\n\nconst SELECTOR_ACTIVES = '.show, .collapsing'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"collapse\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._isTransitioning = false\n this._config = this._getConfig(config)\n this._triggerArray = SelectorEngine.find(\n `${SELECTOR_DATA_TOGGLE}[href=\"#${element.id}\"],` +\n `${SELECTOR_DATA_TOGGLE}[data-bs-target=\"#${element.id}\"]`\n )\n\n const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\n\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = getSelectorFromElement(elem)\n const filterElement = SelectorEngine.find(selector)\n .filter(foundElem => foundElem === element)\n\n if (selector !== null && filterElement.length) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n toggle() {\n if (this._element.classList.contains(CLASS_NAME_SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning || this._element.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = SelectorEngine.find(SELECTOR_ACTIVES, this._parent)\n .filter(elem => {\n if (typeof this._config.parent === 'string') {\n return elem.getAttribute('data-bs-parent') === this._config.parent\n }\n\n return elem.classList.contains(CLASS_NAME_COLLAPSE)\n })\n\n if (actives.length === 0) {\n actives = null\n }\n }\n\n const container = SelectorEngine.findOne(this._selector)\n if (actives) {\n const tempActiveData = actives.find(elem => container !== elem)\n activesData = tempActiveData ? Data.getData(tempActiveData, DATA_KEY) : null\n\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = EventHandler.trigger(this._element, EVENT_SHOW)\n if (startEvent.defaultPrevented) {\n return\n }\n\n if (actives) {\n actives.forEach(elemActive => {\n if (container !== elemActive) {\n Collapse.collapseInterface(elemActive, 'hide')\n }\n\n if (!activesData) {\n Data.setData(elemActive, DATA_KEY, null)\n }\n })\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 if (this._triggerArray.length) {\n this._triggerArray.forEach(element => {\n element.classList.remove(CLASS_NAME_COLLAPSED)\n element.setAttribute('aria-expanded', true)\n })\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\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 this.setTransitioning(false)\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 const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n\n emulateTransitionEnd(this._element, transitionDuration)\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning || !this._element.classList.contains(CLASS_NAME_SHOW)) {\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 const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const elem = getElementFromSelector(trigger)\n\n if (elem && !elem.classList.contains(CLASS_NAME_SHOW)) {\n trigger.classList.add(CLASS_NAME_COLLAPSED)\n trigger.setAttribute('aria-expanded', false)\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(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 const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n super.dispose()\n this._config = null\n this._parent = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n return this._element.classList.contains(WIDTH) ? WIDTH : HEIGHT\n }\n\n _getParent() {\n let { parent } = this._config\n\n if (isElement(parent)) {\n // it's a jQuery object\n if (typeof parent.jquery !== 'undefined' || typeof parent[0] !== 'undefined') {\n parent = parent[0]\n }\n } else {\n parent = SelectorEngine.findOne(parent)\n }\n\n const selector = `${SELECTOR_DATA_TOGGLE}[data-bs-parent=\"${parent}\"]`\n\n SelectorEngine.find(selector, parent)\n .forEach(element => {\n const selected = getElementFromSelector(element)\n\n this._addAriaAndCollapsedClass(\n selected,\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n if (!element || !triggerArray.length) {\n return\n }\n\n const isOpen = element.classList.contains(CLASS_NAME_SHOW)\n\n triggerArray.forEach(elem => {\n if (isOpen) {\n elem.classList.remove(CLASS_NAME_COLLAPSED)\n } else {\n elem.classList.add(CLASS_NAME_COLLAPSED)\n }\n\n elem.setAttribute('aria-expanded', isOpen)\n })\n }\n\n // Static\n\n static collapseInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element),\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(element, _config)\n }\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 static jQueryInterface(config) {\n return this.each(function () {\n Collapse.collapseInterface(this, config)\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\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') {\n event.preventDefault()\n }\n\n const triggerData = Manipulator.getDataAttributes(this)\n const selector = getSelectorFromElement(this)\n const selectorElements = SelectorEngine.find(selector)\n\n selectorElements.forEach(element => {\n const data = Data.getData(element, DATA_KEY)\n let config\n if (data) {\n // update parent attribute\n if (data._parent === null && typeof triggerData.parent === 'string') {\n data._config.parent = triggerData.parent\n data._parent = data._getParent()\n }\n\n config = 'toggle'\n } else {\n config = triggerData\n }\n\n Collapse.collapseInterface(element, config)\n })\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Collapse to jQuery only if jQuery is present\n */\n\nonDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Collapse.jQueryInterface\n $.fn[NAME].Constructor = Collapse\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse.jQueryInterface\n }\n }\n})\n\nexport default Collapse\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n onDOMContentLoaded,\n getElementFromSelector,\n isElement,\n isVisible,\n isRTL,\n noop,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\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 SPACE_KEY = 'Space'\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 REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEY}|${ARROW_DOWN_KEY}|${ESCAPE_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 = `click${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_DISABLED = 'disabled'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_DROPUP = 'dropup'\nconst CLASS_NAME_DROPEND = 'dropend'\nconst CLASS_NAME_DROPSTART = 'dropstart'\nconst CLASS_NAME_MENUEND = 'dropdown-menu-end'\nconst CLASS_NAME_NAVBAR = 'navbar'\nconst CLASS_NAME_POSITION_STATIC = 'position-static'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"dropdown\"]'\nconst SELECTOR_FORM_CHILD = '.dropdown form'\nconst SELECTOR_MENU = '.dropdown-menu'\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'\n\nconst Default = {\n offset: 0,\n flip: true,\n boundary: 'scrollParent',\n reference: 'toggle',\n display: 'dynamic',\n popperConfig: null\n}\n\nconst DefaultType = {\n offset: '(number|string|function)',\n flip: 'boolean',\n boundary: '(string|element)',\n reference: '(string|element)',\n display: 'string',\n popperConfig: '(null|object)'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED)) {\n return\n }\n\n const isActive = this._element.classList.contains(CLASS_NAME_SHOW)\n\n Dropdown.clearMenus()\n\n if (isActive) {\n return\n }\n\n this.show()\n }\n\n show() {\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || this._menu.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n const parent = Dropdown.getParentFromElement(this._element)\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 // Totally disable Popper for Dropdowns in Navbar\n if (!this._inNavbar) {\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 = parent\n } else if (isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n parent.classList.add(CLASS_NAME_POSITION_STATIC)\n }\n\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\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 !parent.closest(SELECTOR_NAVBAR_NAV)) {\n [].concat(...document.body.children)\n .forEach(elem => EventHandler.on(elem, 'mouseover', null, noop()))\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n this._menu.classList.toggle(CLASS_NAME_SHOW)\n this._element.classList.toggle(CLASS_NAME_SHOW)\n EventHandler.trigger(parent, EVENT_SHOWN, relatedTarget)\n }\n\n hide() {\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || !this._menu.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n const parent = Dropdown.getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const hideEvent = EventHandler.trigger(parent, EVENT_HIDE, relatedTarget)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n if (this._popper) {\n this._popper.destroy()\n }\n\n this._menu.classList.toggle(CLASS_NAME_SHOW)\n this._element.classList.toggle(CLASS_NAME_SHOW)\n EventHandler.trigger(parent, EVENT_HIDDEN, relatedTarget)\n }\n\n dispose() {\n super.dispose()\n EventHandler.off(this._element, EVENT_KEY)\n this._menu = null\n if (this._popper) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n EventHandler.on(this._element, EVENT_CLICK, event => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...Manipulator.getDataAttributes(this._element),\n ...config\n }\n\n typeCheckConfig(NAME, config, this.constructor.DefaultType)\n\n return config\n }\n\n _getMenuElement() {\n return SelectorEngine.next(this._element, SELECTOR_MENU)[0]\n }\n\n _getPlacement() {\n const parentDropdown = this._element.parentNode\n let placement = PLACEMENT_BOTTOM\n\n // Handle dropup\n if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) {\n placement = this._menu.classList.contains(CLASS_NAME_MENUEND) ?\n PLACEMENT_TOPEND :\n PLACEMENT_TOP\n } else if (parentDropdown.classList.contains(CLASS_NAME_DROPEND)) {\n placement = PLACEMENT_RIGHT\n } else if (parentDropdown.classList.contains(CLASS_NAME_DROPSTART)) {\n placement = PLACEMENT_LEFT\n } else if (this._menu.classList.contains(CLASS_NAME_MENUEND)) {\n placement = PLACEMENT_BOTTOMEND\n }\n\n return placement\n }\n\n _detectNavbar() {\n return Boolean(this._element.closest(`.${CLASS_NAME_NAVBAR}`))\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this._config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...(this._config.offset(data.offsets, this._element) || {})\n }\n\n return data\n }\n } else {\n offset.offset = this._config.offset\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: this._getOffset(),\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n\n return {\n ...popperConfig,\n ...this._config.popperConfig\n }\n }\n\n // Static\n\n static dropdownInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(element, _config)\n }\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 static jQueryInterface(config) {\n return this.each(function () {\n Dropdown.dropdownInterface(this, config)\n })\n }\n\n static clearMenus(event) {\n if (event && (event.button === RIGHT_MOUSE_BUTTON || (event.type === 'keyup' && event.key !== TAB_KEY))) {\n return\n }\n\n const toggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\n\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown.getParentFromElement(toggles[i])\n const context = Data.getData(toggles[i], DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!toggles[i].classList.contains(CLASS_NAME_SHOW)) {\n continue\n }\n\n if (event && ((event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName)) ||\n (event.type === 'keyup' && event.key === TAB_KEY)) &&\n dropdownMenu.contains(event.target)) {\n continue\n }\n\n const hideEvent = EventHandler.trigger(parent, EVENT_HIDE, relatedTarget)\n if (hideEvent.defaultPrevented) {\n continue\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 [].concat(...document.body.children)\n .forEach(elem => EventHandler.off(elem, 'mouseover', null, noop()))\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n if (context._popper) {\n context._popper.destroy()\n }\n\n dropdownMenu.classList.remove(CLASS_NAME_SHOW)\n toggles[i].classList.remove(CLASS_NAME_SHOW)\n EventHandler.trigger(parent, EVENT_HIDDEN, relatedTarget)\n }\n }\n\n static getParentFromElement(element) {\n return getElementFromSelector(element) || element.parentNode\n }\n\n static dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ?\n event.key === SPACE_KEY || (event.key !== ESCAPE_KEY &&\n ((event.key !== ARROW_DOWN_KEY && event.key !== ARROW_UP_KEY) ||\n event.target.closest(SELECTOR_MENU))) :\n !REGEXP_KEYDOWN.test(event.key)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || this.classList.contains(CLASS_NAME_DISABLED)) {\n return\n }\n\n const parent = Dropdown.getParentFromElement(this)\n const isActive = this.classList.contains(CLASS_NAME_SHOW)\n\n if (event.key === ESCAPE_KEY) {\n const button = this.matches(SELECTOR_DATA_TOGGLE) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE)[0]\n button.focus()\n Dropdown.clearMenus()\n return\n }\n\n if (!isActive || event.key === SPACE_KEY) {\n Dropdown.clearMenus()\n return\n }\n\n const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, parent).filter(isVisible)\n\n if (!items.length) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n // Up\n if (event.key === ARROW_UP_KEY && index > 0) {\n index--\n }\n\n // Down\n if (event.key === ARROW_DOWN_KEY && index < items.length - 1) {\n index++\n }\n\n // index is -1 if the first keydown is an ArrowUp\n index = index === -1 ? 0 : index\n\n items[index].focus()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\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 event.stopPropagation()\n Dropdown.dropdownInterface(this, 'toggle')\n})\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_FORM_CHILD, e => e.stopPropagation())\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Dropdown to jQuery only if jQuery is present\n */\n\nonDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Dropdown.jQueryInterface\n $.fn[NAME].Constructor = Dropdown\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown.jQueryInterface\n }\n }\n})\n\nexport default Dropdown\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n onDOMContentLoaded,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isVisible,\n isRTL,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\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 Default = {\n backdrop: true,\n keyboard: true,\n focus: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean'\n}\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_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${EVENT_KEY}`\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEUP_DISMISS = `mouseup.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure'\nconst CLASS_NAME_BACKDROP = 'modal-backdrop'\nconst CLASS_NAME_OPEN = 'modal-open'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_STATIC = 'modal-static'\n\nconst SELECTOR_DIALOG = '.modal-dialog'\nconst SELECTOR_MODAL_BODY = '.modal-body'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"modal\"]'\nconst SELECTOR_DATA_DISMISS = '[data-bs-dismiss=\"modal\"]'\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'\nconst SELECTOR_STICKY_CONTENT = '.sticky-top'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._config = this._getConfig(config)\n this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, element)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollbarWidth = 0\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n if (this._element.classList.contains(CLASS_NAME_FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, {\n relatedTarget\n })\n\n if (this._isShown || showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, event => this.hide(event))\n\n EventHandler.on(this._dialog, EVENT_MOUSEDOWN_DISMISS, () => {\n EventHandler.one(this._element, EVENT_MOUSEUP_DISMISS, event => {\n if (event.target === this._element) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\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 const transition = this._element.classList.contains(CLASS_NAME_FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.off(document, EVENT_FOCUSIN)\n\n this._element.classList.remove(CLASS_NAME_SHOW)\n\n EventHandler.off(this._element, EVENT_CLICK_DISMISS)\n EventHandler.off(this._dialog, EVENT_MOUSEDOWN_DISMISS)\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, event => this._hideModal(event))\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach(htmlElement => EventHandler.off(htmlElement, EVENT_KEY))\n\n super.dispose()\n\n /**\n * `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `EVENT_CLICK_DATA_API` event that should remain\n */\n EventHandler.off(document, EVENT_FOCUSIN)\n\n this._config = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._isTransitioning = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const transition = this._element.classList.contains(CLASS_NAME_FADE)\n const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog)\n\n if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(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 if (modalBody) {\n modalBody.scrollTop = 0\n }\n\n if (transition) {\n reflow(this._element)\n }\n\n this._element.classList.add(CLASS_NAME_SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n\n this._isTransitioning = false\n EventHandler.trigger(this._element, EVENT_SHOWN, {\n relatedTarget\n })\n }\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._dialog)\n\n EventHandler.one(this._dialog, TRANSITION_END, transitionComplete)\n emulateTransitionEnd(this._dialog, transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n EventHandler.off(document, EVENT_FOCUSIN) // guard against infinite focus loop\n EventHandler.on(document, EVENT_FOCUSIN, event => {\n if (document !== event.target &&\n this._element !== event.target &&\n !this._element.contains(event.target)) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown) {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {\n if (this._config.keyboard && event.key === ESCAPE_KEY) {\n event.preventDefault()\n this.hide()\n } else if (!this._config.keyboard && event.key === ESCAPE_KEY) {\n this._triggerBackdropTransition()\n }\n })\n } else {\n EventHandler.off(this._element, EVENT_KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n EventHandler.on(window, EVENT_RESIZE, () => this._adjustDialog())\n } else {\n EventHandler.off(window, EVENT_RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._element.removeAttribute('role')\n this._isTransitioning = false\n this._showBackdrop(() => {\n document.body.classList.remove(CLASS_NAME_OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n })\n }\n\n _removeBackdrop() {\n this._backdrop.parentNode.removeChild(this._backdrop)\n this._backdrop = null\n }\n\n _showBackdrop(callback) {\n const animate = this._element.classList.contains(CLASS_NAME_FADE) ?\n CLASS_NAME_FADE :\n ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = CLASS_NAME_BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n document.body.appendChild(this._backdrop)\n\n EventHandler.on(this._element, EVENT_CLICK_DISMISS, event => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n\n if (event.target !== event.currentTarget) {\n return\n }\n\n if (this._config.backdrop === 'static') {\n this._triggerBackdropTransition()\n } else {\n this.hide()\n }\n })\n\n if (animate) {\n reflow(this._backdrop)\n }\n\n this._backdrop.classList.add(CLASS_NAME_SHOW)\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n\n EventHandler.one(this._backdrop, TRANSITION_END, callback)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n this._backdrop.classList.remove(CLASS_NAME_SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n callback()\n }\n\n if (this._element.classList.contains(CLASS_NAME_FADE)) {\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n EventHandler.one(this._backdrop, TRANSITION_END, callbackRemove)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else {\n callback()\n }\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\n if (!isModalOverflowing) {\n this._element.style.overflowY = 'hidden'\n }\n\n this._element.classList.add(CLASS_NAME_STATIC)\n const modalTransitionDuration = getTransitionDurationFromElement(this._dialog)\n EventHandler.off(this._element, TRANSITION_END)\n EventHandler.one(this._element, TRANSITION_END, () => {\n this._element.classList.remove(CLASS_NAME_STATIC)\n if (!isModalOverflowing) {\n EventHandler.one(this._element, TRANSITION_END, () => {\n this._element.style.overflowY = ''\n })\n emulateTransitionEnd(this._element, modalTransitionDuration)\n }\n })\n emulateTransitionEnd(this._element, modalTransitionDuration)\n this._element.focus()\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing =\n this._element.scrollHeight > document.documentElement.clientHeight\n\n if ((!this._isBodyOverflowing && isModalOverflowing && !isRTL) || (this._isBodyOverflowing && !isModalOverflowing && isRTL)) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if ((this._isBodyOverflowing && !isModalOverflowing && !isRTL) || (!this._isBodyOverflowing && isModalOverflowing && isRTL)) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n // Adjust fixed content padding\n SelectorEngine.find(SELECTOR_FIXED_CONTENT)\n .forEach(element => {\n const actualPadding = element.style.paddingRight\n const calculatedPadding = window.getComputedStyle(element)['padding-right']\n Manipulator.setDataAttribute(element, 'padding-right', actualPadding)\n element.style.paddingRight = `${Number.parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n })\n\n // Adjust sticky content margin\n SelectorEngine.find(SELECTOR_STICKY_CONTENT)\n .forEach(element => {\n const actualMargin = element.style.marginRight\n const calculatedMargin = window.getComputedStyle(element)['margin-right']\n Manipulator.setDataAttribute(element, 'margin-right', actualMargin)\n element.style.marginRight = `${Number.parseFloat(calculatedMargin) - this._scrollbarWidth}px`\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = window.getComputedStyle(document.body)['padding-right']\n\n Manipulator.setDataAttribute(document.body, 'padding-right', actualPadding)\n document.body.style.paddingRight = `${Number.parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n }\n\n document.body.classList.add(CLASS_NAME_OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n SelectorEngine.find(SELECTOR_FIXED_CONTENT)\n .forEach(element => {\n const padding = Manipulator.getDataAttribute(element, 'padding-right')\n if (typeof padding !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'padding-right')\n element.style.paddingRight = padding\n }\n })\n\n // Restore sticky content and navbar-toggler margin\n SelectorEngine.find(`${SELECTOR_STICKY_CONTENT}`)\n .forEach(element => {\n const margin = Manipulator.getDataAttribute(element, 'margin-right')\n if (typeof margin !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'margin-right')\n element.style.marginRight = margin\n }\n })\n\n // Restore body padding\n const padding = Manipulator.getDataAttribute(document.body, 'padding-right')\n if (typeof padding === 'undefined') {\n document.body.style.paddingRight = ''\n } else {\n Manipulator.removeDataAttribute(document.body, 'padding-right')\n document.body.style.paddingRight = padding\n }\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = CLASS_NAME_SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(this),\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (!data) {\n data = new Modal(this, _config)\n }\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](relatedTarget)\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n const target = getElementFromSelector(this)\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\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 let data = Data.getData(target, DATA_KEY)\n if (!data) {\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n\n data = new Modal(target, config)\n }\n\n data.show(this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Modal to jQuery only if jQuery is present\n */\n\nonDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Modal.jQueryInterface\n $.fn[NAME].Constructor = Modal\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal.jQueryInterface\n }\n }\n})\n\nexport default Modal\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst uriAttrs = new Set([\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n])\n\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[\\d+/a-z]+=*$/i\n\nconst allowedAttribute = (attr, allowedAttributeList) => {\n const attrName = attr.nodeName.toLowerCase()\n\n if (allowedAttributeList.includes(attrName)) {\n if (uriAttrs.has(attrName)) {\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, len = regExp.length; i < len; i++) {\n if (attrName.match(regExp[i])) {\n return true\n }\n }\n\n return false\n}\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\nexport function sanitizeHtml(unsafeHtml, allowList, sanitizeFn) {\n if (!unsafeHtml.length) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const allowlistKeys = Object.keys(allowList)\n const elements = [].concat(...createdDocument.body.querySelectorAll('*'))\n\n for (let i = 0, len = elements.length; i < len; i++) {\n const el = elements[i]\n const elName = el.nodeName.toLowerCase()\n\n if (!allowlistKeys.includes(elName)) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n const attributeList = [].concat(...el.attributes)\n const allowedAttributes = [].concat(allowList['*'] || [], allowList[elName] || [])\n\n attributeList.forEach(attr => {\n if (!allowedAttribute(attr, allowedAttributes)) {\n el.removeAttribute(attr.nodeName)\n }\n })\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n onDOMContentLoaded,\n TRANSITION_END,\n emulateTransitionEnd,\n findShadowRoot,\n getTransitionDurationFromElement,\n getUID,\n isElement,\n isRTL,\n noop,\n typeCheckConfig\n} from './util/index'\nimport {\n DefaultAllowlist,\n sanitizeHtml\n} from './util/sanitizer'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tooltip'\nconst DATA_KEY = 'bs.tooltip'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-tooltip'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\nconst DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn'])\n\nconst DefaultType = {\n animation: 'boolean',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string',\n delay: '(number|object)',\n html: 'boolean',\n selector: '(string|boolean)',\n placement: '(string|function)',\n offset: '(number|string|function)',\n container: '(string|element|boolean)',\n fallbackPlacement: '(string|array)',\n boundary: '(string|element)',\n customClass: '(string|function)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n allowList: 'object',\n popperConfig: '(null|object)'\n}\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 animation: true,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"tooltip-arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div>' +\n '</div>',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n selector: false,\n placement: 'top',\n offset: 0,\n container: false,\n fallbackPlacement: 'flip',\n boundary: 'scrollParent',\n customClass: '',\n sanitize: true,\n sanitizeFn: null,\n allowList: DefaultAllowlist,\n popperConfig: null\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_MODAL = 'modal'\nconst CLASS_NAME_SHOW = 'show'\n\nconst HOVER_STATE_SHOW = 'show'\nconst HOVER_STATE_OUT = 'out'\n\nconst SELECTOR_TOOLTIP_INNER = '.tooltip-inner'\n\nconst TRIGGER_HOVER = 'hover'\nconst TRIGGER_FOCUS = 'focus'\nconst TRIGGER_CLICK = 'click'\nconst TRIGGER_MANUAL = 'manual'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\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)\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(event.delegateTarget, this._getDelegateConfig())\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if (this.getTipElement().classList.contains(CLASS_NAME_SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n EventHandler.off(this._element, this.constructor.EVENT_KEY)\n EventHandler.off(this._element.closest(`.${CLASS_NAME_MODAL}`), 'hide.bs.modal', this._hideModalHandler)\n\n if (this.tip) {\n this.tip.parentNode.removeChild(this.tip)\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.config = null\n this.tip = null\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 const showEvent = EventHandler.trigger(this._element, this.constructor.Event.SHOW)\n const shadowRoot = findShadowRoot(this._element)\n const isInTheDom = shadowRoot === null ?\n this._element.ownerDocument.documentElement.contains(this._element) :\n shadowRoot.contains(this._element)\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this._element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n tip.classList.add(CLASS_NAME_FADE)\n }\n\n const placement = typeof this.config.placement === 'function' ?\n this.config.placement.call(this, tip, this._element) :\n this.config.placement\n\n const attachment = this._getAttachment(placement)\n this._addAttachmentClass(attachment)\n\n const container = this._getContainer()\n Data.setData(tip, this.constructor.DATA_KEY, this)\n\n if (!this._element.ownerDocument.documentElement.contains(this.tip)) {\n container.appendChild(tip)\n }\n\n EventHandler.trigger(this._element, this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this._element, tip, this._getPopperConfig(attachment))\n\n tip.classList.add(CLASS_NAME_SHOW)\n\n const customClass = typeof this.config.customClass === 'function' ? this.config.customClass() : this.config.customClass\n if (customClass) {\n tip.classList.add(...customClass.split(' '))\n }\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 [].concat(...document.body.children).forEach(element => {\n EventHandler.on(element, 'mouseover', noop())\n })\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n EventHandler.trigger(this._element, this.constructor.Event.SHOWN)\n\n if (prevHoverState === HOVER_STATE_OUT) {\n this._leave(null, this)\n }\n }\n\n if (this.tip.classList.contains(CLASS_NAME_FADE)) {\n const transitionDuration = getTransitionDurationFromElement(this.tip)\n EventHandler.one(this.tip, TRANSITION_END, complete)\n emulateTransitionEnd(this.tip, transitionDuration)\n } else {\n complete()\n }\n }\n }\n\n hide() {\n if (!this._popper) {\n return\n }\n\n const tip = this.getTipElement()\n const complete = () => {\n if (this._hoverState !== HOVER_STATE_SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this._element.removeAttribute('aria-describedby')\n EventHandler.trigger(this._element, this.constructor.Event.HIDDEN)\n this._popper.destroy()\n }\n\n const hideEvent = EventHandler.trigger(this._element, this.constructor.Event.HIDE)\n if (hideEvent.defaultPrevented) {\n return\n }\n\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 [].concat(...document.body.children)\n .forEach(element => EventHandler.off(element, 'mouseover', noop))\n }\n\n this._activeTrigger[TRIGGER_CLICK] = false\n this._activeTrigger[TRIGGER_FOCUS] = false\n this._activeTrigger[TRIGGER_HOVER] = false\n\n if (this.tip.classList.contains(CLASS_NAME_FADE)) {\n const transitionDuration = getTransitionDurationFromElement(tip)\n\n EventHandler.one(tip, TRANSITION_END, complete)\n emulateTransitionEnd(tip, transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n getTipElement() {\n if (this.tip) {\n return this.tip\n }\n\n const element = document.createElement('div')\n element.innerHTML = this.config.template\n\n this.tip = element.children[0]\n return this.tip\n }\n\n setContent() {\n const tip = this.getTipElement()\n this.setElementContent(SelectorEngine.findOne(SELECTOR_TOOLTIP_INNER, tip), this.getTitle())\n tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW)\n }\n\n setElementContent(element, content) {\n if (element === null) {\n return\n }\n\n if (typeof content === 'object' && isElement(content)) {\n if (content.jquery) {\n content = content[0]\n }\n\n // content is a DOM node or a jQuery\n if (this.config.html) {\n if (content.parentNode !== element) {\n element.innerHTML = ''\n element.appendChild(content)\n }\n } else {\n element.textContent = content.textContent\n }\n\n return\n }\n\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.allowList, this.config.sanitizeFn)\n }\n\n element.innerHTML = content\n } else {\n element.textContent = content\n }\n }\n\n getTitle() {\n let title = this._element.getAttribute('data-bs-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function' ?\n this.config.title.call(this._element) :\n this.config.title\n }\n\n return title\n }\n\n updateAttachment(attachment) {\n if (attachment === 'right') {\n return 'end'\n }\n\n if (attachment === 'left') {\n return 'start'\n }\n\n return attachment\n }\n\n // Private\n\n _getPopperConfig(attachment) {\n const defaultBsConfig = {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: `.${this.constructor.NAME}-arrow`\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: data => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: data => this._handlePopperPlacementChange(data)\n }\n\n return {\n ...defaultBsConfig,\n ...this.config.popperConfig\n }\n }\n\n _addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${this.updateAttachment(attachment)}`)\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this.config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...(this.config.offset(data.offsets, this._element) || {})\n }\n\n return data\n }\n } else {\n offset.offset = this.config.offset\n }\n\n return offset\n }\n\n _getContainer() {\n if (this.config.container === false) {\n return document.body\n }\n\n if (isElement(this.config.container)) {\n return this.config.container\n }\n\n return SelectorEngine.findOne(this.config.container)\n }\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach(trigger => {\n if (trigger === 'click') {\n EventHandler.on(this._element, this.constructor.Event.CLICK, this.config.selector, event => this.toggle(event)\n )\n } else if (trigger !== TRIGGER_MANUAL) {\n const eventIn = trigger === TRIGGER_HOVER ?\n this.constructor.Event.MOUSEENTER :\n this.constructor.Event.FOCUSIN\n const eventOut = trigger === TRIGGER_HOVER ?\n this.constructor.Event.MOUSELEAVE :\n this.constructor.Event.FOCUSOUT\n\n EventHandler.on(this._element, eventIn, this.config.selector, event => this._enter(event))\n EventHandler.on(this._element, eventOut, this.config.selector, event => this._leave(event))\n }\n })\n\n this._hideModalHandler = () => {\n if (this._element) {\n this.hide()\n }\n }\n\n EventHandler.on(this._element.closest(`.${CLASS_NAME_MODAL}`), 'hide.bs.modal', this._hideModalHandler)\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const title = this._element.getAttribute('title')\n const originalTitleType = typeof this._element.getAttribute('data-bs-original-title')\n\n if (title || originalTitleType !== 'string') {\n this._element.setAttribute('data-bs-original-title', title || '')\n if (title && !this._element.getAttribute('aria-label') && !this._element.textContent) {\n this._element.setAttribute('aria-label', title)\n }\n\n this._element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER\n ] = true\n }\n\n if (context.getTipElement().classList.contains(CLASS_NAME_SHOW) || context._hoverState === HOVER_STATE_SHOW) {\n context._hoverState = HOVER_STATE_SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this._element)\n\n Object.keys(dataAttributes).forEach(dataAttr => {\n if (DISALLOWED_ATTRIBUTES.has(dataAttr)) {\n delete dataAttributes[dataAttr]\n }\n })\n\n if (config && typeof config.container === 'object' && config.container.jquery) {\n config.container = config.container[0]\n }\n\n config = {\n ...this.constructor.Default,\n ...dataAttributes,\n ...(typeof config === 'object' && config ? config : {})\n }\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 typeCheckConfig(NAME, config, this.constructor.DefaultType)\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.allowList, config.sanitizeFn)\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n _handlePopperPlacementChange(popperData) {\n this.tip = popperData.instance.popper\n this._cleanTipClass()\n this._addAttachmentClass(this._getAttachment(popperData.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n\n tip.classList.remove(CLASS_NAME_FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n }\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 * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Tooltip to jQuery only if jQuery is present\n */\n\nonDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tooltip.jQueryInterface\n $.fn[NAME].Constructor = Tooltip\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip.jQueryInterface\n }\n }\n})\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getjQuery, onDOMContentLoaded } from './util/index'\nimport Data from './dom/data'\nimport SelectorEngine from './dom/selector-engine'\nimport Tooltip from './tooltip'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'popover'\nconst DATA_KEY = 'bs.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-popover'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst Default = {\n ...Tooltip.Default,\n placement: 'right',\n trigger: 'click',\n content: '',\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}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content: '(string|element|function)'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_TITLE = '.popover-header'\nconst SELECTOR_CONTENT = '.popover-body'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Popover extends Tooltip {\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n setContent() {\n const tip = this.getTipElement()\n\n // we use append for html objects to maintain js events\n this.setElementContent(SelectorEngine.findOne(SELECTOR_TITLE, tip), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this._element)\n }\n\n this.setElementContent(SelectorEngine.findOne(SELECTOR_CONTENT, tip), content)\n\n tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW)\n }\n\n // Private\n\n _addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${this.updateAttachment(attachment)}`)\n }\n\n _getContent() {\n return this._element.getAttribute('data-bs-content') || this.config.content\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n Data.setData(this, DATA_KEY, data)\n }\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 * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Popover to jQuery only if jQuery is present\n */\n\nonDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Popover.jQueryInterface\n $.fn[NAME].Constructor = Popover\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover.jQueryInterface\n }\n }\n})\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n onDOMContentLoaded,\n getSelectorFromElement,\n getUID,\n isElement,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollspy'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n offset: 10,\n method: 'auto',\n target: ''\n}\n\nconst DefaultType = {\n offset: 'number',\n method: 'string',\n target: '(string|element)'\n}\n\nconst EVENT_ACTIVATE = `activate${EVENT_KEY}`\nconst EVENT_SCROLL = `scroll${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_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_DROPDOWN = '.dropdown'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\n\nconst METHOD_OFFSET = 'offset'\nconst METHOD_POSITION = 'position'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy extends BaseComponent {\n constructor(element, config) {\n super(element)\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${SELECTOR_NAV_LINKS}, ${this._config.target} ${SELECTOR_LIST_ITEMS}, ${this._config.target} .${CLASS_NAME_DROPDOWN_ITEM}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n EventHandler.on(this._scrollElement, EVENT_SCROLL, event => this._process(event))\n\n this.refresh()\n this._process()\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window ?\n METHOD_OFFSET :\n METHOD_POSITION\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod :\n this._config.method\n\n const offsetBase = offsetMethod === METHOD_POSITION ?\n this._getScrollTop() :\n 0\n\n this._offsets = []\n this._targets = []\n this._scrollHeight = this._getScrollHeight()\n\n const targets = SelectorEngine.find(this._selector)\n\n targets.map(element => {\n const targetSelector = getSelectorFromElement(element)\n const target = targetSelector ? SelectorEngine.findOne(targetSelector) : null\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n return [\n Manipulator[offsetMethod](target).top + offsetBase,\n targetSelector\n ]\n }\n }\n\n return null\n })\n .filter(item => item)\n .sort((a, b) => a[0] - b[0])\n .forEach(item => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n super.dispose()\n EventHandler.off(this._scrollElement, EVENT_KEY)\n\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (typeof config.target !== 'string' && isElement(config.target)) {\n let { id } = config.target\n if (!id) {\n id = getUID(NAME)\n config.target.id = id\n }\n\n config.target = `#${id}`\n }\n\n typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window ?\n this._scrollElement.pageYOffset :\n this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window ?\n window.innerHeight :\n this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n for (let i = this._offsets.length; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector.split(',')\n .map(selector => `${selector}[data-bs-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const link = SelectorEngine.findOne(queries.join(','))\n\n if (link.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) {\n SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE, link.closest(SELECTOR_DROPDOWN))\n .classList.add(CLASS_NAME_ACTIVE)\n\n link.classList.add(CLASS_NAME_ACTIVE)\n } else {\n // Set triggered link as active\n link.classList.add(CLASS_NAME_ACTIVE)\n\n SelectorEngine.parents(link, SELECTOR_NAV_LIST_GROUP)\n .forEach(listGroup => {\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 SelectorEngine.prev(listGroup, `${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`)\n .forEach(item => item.classList.add(CLASS_NAME_ACTIVE))\n\n // Handle special case when .nav-link is inside .nav-item\n SelectorEngine.prev(listGroup, SELECTOR_NAV_ITEMS)\n .forEach(navItem => {\n SelectorEngine.children(navItem, SELECTOR_NAV_LINKS)\n .forEach(item => item.classList.add(CLASS_NAME_ACTIVE))\n })\n })\n }\n\n EventHandler.trigger(this._scrollElement, EVENT_ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n SelectorEngine.find(this._selector)\n .filter(node => node.classList.contains(CLASS_NAME_ACTIVE))\n .forEach(node => node.classList.remove(CLASS_NAME_ACTIVE))\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n }\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 * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n SelectorEngine.find(SELECTOR_DATA_SPY)\n .forEach(spy => new ScrollSpy(spy, Manipulator.getDataAttributes(spy)))\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .ScrollSpy to jQuery only if jQuery is present\n */\n\nonDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = ScrollSpy.jQueryInterface\n $.fn[NAME].Constructor = ScrollSpy\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy.jQueryInterface\n }\n }\n})\n\nexport default ScrollSpy\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n onDOMContentLoaded,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\n reflow\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tab'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\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}`\n\nconst CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_UL = ':scope > li > .active'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"tab\"], [data-bs-toggle=\"pill\"], [data-bs-toggle=\"list\"]'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\nconst SELECTOR_DROPDOWN_ACTIVE_CHILD = ':scope > .dropdown-menu .active'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tab extends BaseComponent {\n // Getters\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n show() {\n if ((this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n this._element.classList.contains(CLASS_NAME_ACTIVE)) ||\n this._element.classList.contains(CLASS_NAME_DISABLED)) {\n return\n }\n\n let previous\n const target = getElementFromSelector(this._element)\n const listElement = this._element.closest(SELECTOR_NAV_LIST_GROUP)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE\n previous = SelectorEngine.find(itemSelector, listElement)\n previous = previous[previous.length - 1]\n }\n\n let hideEvent = null\n\n if (previous) {\n hideEvent = EventHandler.trigger(previous, EVENT_HIDE, {\n relatedTarget: this._element\n })\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, {\n relatedTarget: previous\n })\n\n if (showEvent.defaultPrevented || (hideEvent !== null && hideEvent.defaultPrevented)) {\n return\n }\n\n this._activate(this._element, listElement)\n\n const complete = () => {\n EventHandler.trigger(previous, EVENT_HIDDEN, {\n relatedTarget: this._element\n })\n EventHandler.trigger(this._element, EVENT_SHOWN, {\n relatedTarget: previous\n })\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n // Private\n\n _activate(element, container, callback) {\n const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ?\n SelectorEngine.find(SELECTOR_ACTIVE_UL, container) :\n SelectorEngine.children(container, SELECTOR_ACTIVE)\n\n const active = activeElements[0]\n const isTransitioning = callback && (active && active.classList.contains(CLASS_NAME_FADE))\n\n const complete = () => this._transitionComplete(element, active, callback)\n\n if (active && isTransitioning) {\n const transitionDuration = getTransitionDurationFromElement(active)\n active.classList.remove(CLASS_NAME_SHOW)\n\n EventHandler.one(active, TRANSITION_END, complete)\n emulateTransitionEnd(active, transitionDuration)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n active.classList.remove(CLASS_NAME_ACTIVE)\n\n const dropdownChild = SelectorEngine.findOne(SELECTOR_DROPDOWN_ACTIVE_CHILD, active.parentNode)\n\n if (dropdownChild) {\n dropdownChild.classList.remove(CLASS_NAME_ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n element.classList.add(CLASS_NAME_ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n reflow(element)\n\n if (element.classList.contains(CLASS_NAME_FADE)) {\n element.classList.add(CLASS_NAME_SHOW)\n }\n\n if (element.parentNode && element.parentNode.classList.contains(CLASS_NAME_DROPDOWN_MENU)) {\n const dropdownElement = element.closest(SELECTOR_DROPDOWN)\n\n if (dropdownElement) {\n SelectorEngine.find(SELECTOR_DROPDOWN_TOGGLE)\n .forEach(dropdown => dropdown.classList.add(CLASS_NAME_ACTIVE))\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\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 * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault()\n\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n data.show()\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Tab to jQuery only if jQuery is present\n */\n\nonDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tab.jQueryInterface\n $.fn[NAME].Constructor = Tab\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab.jQueryInterface\n }\n }\n})\n\nexport default Tab\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n onDOMContentLoaded,\n TRANSITION_END,\n emulateTransitionEnd,\n getTransitionDurationFromElement,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'toast'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_CLICK_DISMISS = `click.dismiss${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'\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\nconst SELECTOR_DATA_DISMISS = '[data-bs-dismiss=\"toast\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n }\n\n // Getters\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get Default() {\n return Default\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\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 this._element.classList.add(CLASS_NAME_SHOW)\n\n EventHandler.trigger(this._element, EVENT_SHOWN)\n\n if (this._config.autohide) {\n this._timeout = setTimeout(() => {\n this.hide()\n }, this._config.delay)\n }\n }\n\n this._element.classList.remove(CLASS_NAME_HIDE)\n reflow(this._element)\n this._element.classList.add(CLASS_NAME_SHOWING)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n hide() {\n if (!this._element.classList.contains(CLASS_NAME_SHOW)) {\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)\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n }\n\n this._element.classList.remove(CLASS_NAME_SHOW)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n dispose() {\n this._clearTimeout()\n\n if (this._element.classList.contains(CLASS_NAME_SHOW)) {\n this._element.classList.remove(CLASS_NAME_SHOW)\n }\n\n EventHandler.off(this._element, EVENT_CLICK_DISMISS)\n\n super.dispose()\n this._config = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...(typeof config === 'object' && config ? config : {})\n }\n\n typeCheckConfig(NAME, config, this.constructor.DefaultType)\n\n return config\n }\n\n _setListeners() {\n EventHandler.on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, () => this.hide())\n }\n\n _clearTimeout() {\n clearTimeout(this._timeout)\n this._timeout = null\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new Toast(this, _config)\n }\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 * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Toast to jQuery only if jQuery is present\n */\n\nonDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Toast.jQueryInterface\n $.fn[NAME].Constructor = Toast\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Toast.jQueryInterface\n }\n }\n})\n\nexport default Toast\n"]}
\ No newline at end of file +{"version":3,"sources":["../../js/src/util/index.js","../../js/src/dom/data.js","../../js/src/dom/event-handler.js","../../js/src/base-component.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/dom/manipulator.js","../../js/src/dom/selector-engine.js","../../js/src/carousel.js","../../js/src/collapse.js","../../js/src/dropdown.js","../../js/src/modal.js","../../js/src/util/scrollbar.js","../../js/src/offcanvas.js","../../js/src/util/sanitizer.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/toast.js"],"names":["MAX_UID","MILLISECONDS_MULTIPLIER","TRANSITION_END","toType","obj","toString","call","match","toLowerCase","getUID","prefix","Math","floor","random","document","getElementById","getSelector","element","selector","getAttribute","hrefAttr","includes","startsWith","split","trim","getSelectorFromElement","querySelector","getElementFromSelector","getTransitionDurationFromElement","transitionDuration","transitionDelay","window","getComputedStyle","floatTransitionDuration","Number","parseFloat","floatTransitionDelay","triggerTransitionEnd","dispatchEvent","Event","isElement","nodeType","emulateTransitionEnd","duration","called","emulatedDuration","addEventListener","listener","removeEventListener","setTimeout","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","TypeError","toUpperCase","isVisible","style","parentNode","elementStyle","parentNodeStyle","display","visibility","isDisabled","Node","ELEMENT_NODE","classList","contains","disabled","hasAttribute","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","noop","reflow","offsetHeight","getjQuery","jQuery","body","onDOMContentLoaded","callback","readyState","isRTL","dir","defineJQueryPlugin","name","plugin","$","JQUERY_NO_CONFLICT","fn","jQueryInterface","Constructor","noConflict","elementMap","Map","Data","set","key","instance","has","instanceMap","get","size","console","error","Array","from","remove","delete","namespaceRegex","stripNameRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","nativeEvents","Set","getUidEvent","uid","getEvent","bootstrapHandler","handler","event","delegateTarget","oneOff","EventHandler","off","type","apply","bootstrapDelegationHandler","domElements","querySelectorAll","target","this","i","length","findHandler","events","delegationSelector","uidEventList","len","originalHandler","normalizeParams","originalTypeEvent","delegationFn","delegation","typeEvent","replace","custom","addHandler","handlers","previousFn","removeHandler","Boolean","removeNamespacedHandlers","namespace","storeElementEvent","handlerKey","on","one","inNamespace","isNamespace","elementEvent","slice","keyHandlers","trigger","args","isNative","jQueryEvent","bubbles","nativeDispatch","defaultPrevented","evt","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","createEvent","initEvent","CustomEvent","cancelable","defineProperty","preventDefault","VERSION","BaseComponent","constructor","_element","DATA_KEY","dispose","[object Object]","NAME","EVENT_KEY","DATA_API_KEY","SELECTOR_DISMISS","EVENT_CLOSE","EVENT_CLOSED","EVENT_CLICK_DATA_API","CLASS_NAME_ALERT","CLASS_NAME_FADE","CLASS_NAME_SHOW","Alert","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","_removeElement","closest","_destroyElement","removeChild","each","data","alertInstance","handleDismiss","CLASS_NAME_ACTIVE","SELECTOR_DATA_TOGGLE","Button","toggle","setAttribute","normalizeData","val","normalizeDataKey","chr","button","Manipulator","setDataAttribute","removeDataAttribute","removeAttribute","getDataAttributes","attributes","dataset","filter","pureKey","charAt","getDataAttribute","offset","rect","getBoundingClientRect","top","scrollTop","left","scrollLeft","position","offsetTop","offsetLeft","NODE_TEXT","SelectorEngine","find","concat","Element","prototype","findOne","children","child","matches","parents","ancestor","push","prev","previous","previousElementSibling","next","nextElementSibling","ARROW_LEFT_KEY","ARROW_RIGHT_KEY","TOUCHEVENT_COMPAT_WAIT","SWIPE_THRESHOLD","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","ORDER_NEXT","ORDER_PREV","DIRECTION_LEFT","DIRECTION_RIGHT","EVENT_SLIDE","EVENT_SLID","EVENT_KEYDOWN","EVENT_MOUSEENTER","EVENT_MOUSELEAVE","EVENT_TOUCHSTART","EVENT_TOUCHMOVE","EVENT_TOUCHEND","EVENT_POINTERDOWN","EVENT_POINTERUP","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","CLASS_NAME_POINTER_EVENT","SELECTOR_ACTIVE","SELECTOR_ACTIVE_ITEM","SELECTOR_ITEM","SELECTOR_ITEM_IMG","SELECTOR_NEXT_PREV","SELECTOR_INDICATORS","SELECTOR_INDICATOR","SELECTOR_DATA_SLIDE","SELECTOR_DATA_RIDE","POINTER_TYPE_TOUCH","POINTER_TYPE_PEN","Carousel","super","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","_addEventListeners","_slide","nextWhenVisible","hidden","cycle","clearInterval","_updateInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","order","_handleSwipe","absDeltax","abs","direction","_keydown","_addTouchEventListeners","start","pointerType","touches","clientX","move","end","clearTimeout","itemImg","e","add","tagName","indexOf","_getItemByOrder","activeElement","isNext","isPrev","lastItemIndex","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","_setActiveIndicatorElement","activeIndicator","indicators","parseInt","elementInterval","defaultInterval","directionOrOrder","_directionToOrder","activeElementIndex","nextElement","nextElementIndex","isCycling","directionalClassName","orderClassName","_orderToDirection","action","ride","carouselInterface","slideIndex","dataApiClickHandler","carousels","parent","EVENT_SHOW","EVENT_SHOWN","EVENT_HIDE","EVENT_HIDDEN","CLASS_NAME_COLLAPSE","CLASS_NAME_COLLAPSING","CLASS_NAME_COLLAPSED","WIDTH","HEIGHT","SELECTOR_ACTIVES","Collapse","_isTransitioning","_triggerArray","id","toggleList","elem","filterElement","foundElem","_selector","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","container","tempActiveData","elemActive","collapseInterface","dimension","_getDimension","setTransitioning","scrollSize","triggerArrayLength","isTransitioning","jquery","selected","triggerArray","isOpen","triggerData","ESCAPE_KEY","SPACE_KEY","TAB_KEY","ARROW_UP_KEY","ARROW_DOWN_KEY","RIGHT_MOUSE_BUTTON","REGEXP_KEYDOWN","EVENT_CLICK","EVENT_KEYDOWN_DATA_API","EVENT_KEYUP_DATA_API","CLASS_NAME_DISABLED","CLASS_NAME_DROPUP","CLASS_NAME_DROPEND","CLASS_NAME_DROPSTART","CLASS_NAME_NAVBAR","SELECTOR_MENU","SELECTOR_NAVBAR_NAV","SELECTOR_VISIBLE_ITEMS","PLACEMENT_TOP","PLACEMENT_TOPEND","PLACEMENT_BOTTOM","PLACEMENT_BOTTOMEND","PLACEMENT_RIGHT","PLACEMENT_LEFT","boundary","reference","popperConfig","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","isActive","clearMenus","getParentFromElement","Popper","referenceElement","_getPopperConfig","isDisplayStatic","modifiers","modifier","enabled","createPopper","focus","destroy","update","_getPlacement","parentDropdown","isEnd","getPropertyValue","_getOffset","map","popperData","defaultBsPopperConfig","placement","options","dropdownInterface","toggles","context","clickEvent","dropdownMenu","some","composedPath","stopPropagation","click","items","dataApiKeydownHandler","backdrop","EVENT_HIDE_PREVENTED","EVENT_FOCUSIN","EVENT_RESIZE","EVENT_CLICK_DISMISS","EVENT_KEYDOWN_DISMISS","EVENT_MOUSEUP_DISMISS","EVENT_MOUSEDOWN_DISMISS","CLASS_NAME_SCROLLBAR_MEASURER","CLASS_NAME_BACKDROP","CLASS_NAME_OPEN","CLASS_NAME_STATIC","SELECTOR_DIALOG","SELECTOR_MODAL_BODY","SELECTOR_DATA_DISMISS","SELECTOR_FIXED_CONTENT","SELECTOR_STICKY_CONTENT","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_isAnimated","showEvent","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","isAnimated","_hideModal","htmlElement","handleUpdate","modalBody","appendChild","_enforceFocus","transitionComplete","_triggerBackdropTransition","_resetAdjustments","_resetScrollbar","_removeBackdrop","createElement","className","currentTarget","backdropTransitionDuration","callbackRemove","isModalOverflowing","scrollHeight","clientHeight","overflowY","modalTransitionDuration","paddingLeft","paddingRight","round","right","innerWidth","_getScrollbarWidth","_setElementAttributes","calculatedValue","styleProp","clientWidth","actualValue","_resetElementAttributes","scrollDiv","scrollbarWidth","width","getWidth","documentWidth","overflow","reset","removeProperty","scroll","CLASS_NAME_BACKDROP_BODY","CLASS_NAME_TOGGLING","OPEN_SELECTOR","ACTIVE_SELECTOR","Offcanvas","scrollBarHide","_enforceFocusOnElement","blur","undefined","allReadyOpen","el","uriAttrs","ARIA_ATTRIBUTE_PATTERN","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","attr","allowedAttributeList","attrName","nodeName","nodeValue","regExp","attrRegex","DefaultAllowlist","*","a","area","b","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","sanitizeHtml","unsafeHtml","allowList","sanitizeFn","createdDocument","DOMParser","parseFromString","allowlistKeys","elements","elName","attributeList","allowedAttributes","innerHTML","CLASS_PREFIX","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","html","fallbackPlacements","customClass","sanitize","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","CLASS_NAME_MODAL","HOVER_STATE_SHOW","HOVER_STATE_OUT","SELECTOR_TOOLTIP_INNER","TRIGGER_HOVER","TRIGGER_FOCUS","TRIGGER_CLICK","TRIGGER_MANUAL","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","_initializeOnDelegatedTarget","_isWithActiveTrigger","_enter","_leave","getTipElement","_hideModalHandler","Error","isWithContent","shadowRoot","isInTheDom","ownerDocument","tipId","setContent","attachment","_getAttachment","_addAttachmentClass","_getContainer","complete","prevHoverState","_cleanTipClass","getTitle","setElementContent","content","textContent","updateAttachment","dataKey","_getDelegateConfig","altBoundary","phase","_handlePopperPlacementChange","onFirstUpdate","eventIn","eventOut","_fixTitle","originalTitleType","dataAttributes","dataAttr","tabClass","token","tClass","state","popper","SELECTOR_TITLE","SELECTOR_CONTENT","Popover","_getContent","method","EVENT_ACTIVATE","EVENT_SCROLL","CLASS_NAME_DROPDOWN_ITEM","SELECTOR_DATA_SPY","SELECTOR_NAV_LIST_GROUP","SELECTOR_NAV_LINKS","SELECTOR_NAV_ITEMS","SELECTOR_LIST_ITEMS","SELECTOR_DROPDOWN","SELECTOR_DROPDOWN_TOGGLE","METHOD_OFFSET","METHOD_POSITION","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targetSelector","targetBCR","height","item","sort","pageYOffset","max","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","queries","link","join","listGroup","navItem","node","spy","CLASS_NAME_DROPDOWN_MENU","SELECTOR_ACTIVE_UL","SELECTOR_DROPDOWN_ACTIVE_CHILD","Tab","listElement","itemSelector","hideEvent","active","_transitionComplete","dropdownChild","dropdown","CLASS_NAME_HIDE","CLASS_NAME_SHOWING","autohide","Toast","_clearTimeout"],"mappings":"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","sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => {\n if (obj === null || obj === undefined) {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n prefix += Math.floor(Math.random() * MAX_UID)\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelector = element => {\n let selector = element.getAttribute('data-bs-target')\n\n if (!selector || selector === '#') {\n let hrefAttr = 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 (!hrefAttr || (!hrefAttr.includes('#') && !hrefAttr.startsWith('.'))) {\n return null\n }\n\n // Just in case some CMS puts out a full URL with the anchor appended\n if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {\n hrefAttr = '#' + hrefAttr.split('#')[1]\n }\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null\n }\n\n return selector\n}\n\nconst getSelectorFromElement = element => {\n const selector = getSelector(element)\n\n if (selector) {\n return document.querySelector(selector) ? selector : null\n }\n\n return null\n}\n\nconst getElementFromSelector = element => {\n const selector = getSelector(element)\n\n return selector ? document.querySelector(selector) : null\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 = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes).forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ? 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`\n )\n }\n })\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n const elementStyle = getComputedStyle(element)\n const parentNodeStyle = getComputedStyle(element.parentNode)\n\n return elementStyle.display !== 'none' &&\n parentNodeStyle.display !== 'none' &&\n elementStyle.visibility !== 'hidden'\n }\n\n return false\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 = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nconst getjQuery = () => {\n const { jQuery } = window\n\n if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n return jQuery\n }\n\n return null\n}\n\nconst onDOMContentLoaded = callback => {\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', callback)\n } else {\n callback()\n }\n}\n\nconst isRTL = () => document.documentElement.dir === 'rtl'\n\nconst defineJQueryPlugin = (name, plugin) => {\n onDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\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\nexport {\n getUID,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n isVisible,\n isDisabled,\n findShadowRoot,\n noop,\n reflow,\n getjQuery,\n onDOMContentLoaded,\n isRTL,\n defineJQueryPlugin\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\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 (v5.0.0-beta3): dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getjQuery } from '../util/index'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\nconst nativeEvents = new Set([\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 * ------------------------------------------------------------------------\n * Private methods\n * ------------------------------------------------------------------------\n */\n\nfunction getUidEvent(element, uid) {\n return (uid && `${uid}::${uidEvent++}`) || element.uidEvent || uidEvent++\n}\n\nfunction getEvent(element) {\n const uid = getUidEvent(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 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 (let i = domElements.length; i--;) {\n if (domElements[i] === target) {\n event.delegateTarget = target\n\n if (handler.oneOff) {\n // eslint-disable-next-line unicorn/consistent-destructuring\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(target, [event])\n }\n }\n }\n\n // To please ESLint\n return null\n }\n}\n\nfunction findHandler(events, handler, delegationSelector = null) {\n const uidEventList = Object.keys(events)\n\n for (let i = 0, len = uidEventList.length; i < len; i++) {\n const event = events[uidEventList[i]]\n\n if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {\n return event\n }\n }\n\n return null\n}\n\nfunction normalizeParams(originalTypeEvent, handler, delegationFn) {\n const delegation = typeof handler === 'string'\n const originalHandler = delegation ? delegationFn : handler\n\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n let typeEvent = originalTypeEvent.replace(stripNameRegex, '')\n const custom = customEvents[typeEvent]\n\n if (custom) {\n typeEvent = custom\n }\n\n const isNative = nativeEvents.has(typeEvent)\n\n if (!isNative) {\n typeEvent = originalTypeEvent\n }\n\n return [delegation, originalHandler, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n if (!handler) {\n handler = delegationFn\n delegationFn = null\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const events = getEvent(element)\n const handlers = events[typeEvent] || (events[typeEvent] = {})\n const previousFn = findHandler(handlers, originalHandler, delegation ? handler : null)\n\n if (previousFn) {\n previousFn.oneOff = previousFn.oneOff && oneOff\n\n return\n }\n\n const uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, ''))\n const fn = delegation ?\n bootstrapDelegationHandler(element, handler, delegationFn) :\n bootstrapHandler(element, handler)\n\n fn.delegationSelector = delegation ? handler : null\n fn.originalHandler = originalHandler\n fn.oneOff = oneOff\n fn.uidEvent = uid\n handlers[uid] = fn\n\n element.addEventListener(typeEvent, fn, delegation)\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 Object.keys(storeElementEvent).forEach(handlerKey => {\n if (handlerKey.includes(namespace)) {\n const event = storeElementEvent[handlerKey]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, false)\n },\n\n one(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFn) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getEvent(element)\n const isNamespace = originalTypeEvent.startsWith('.')\n\n if (typeof originalHandler !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!events || !events[typeEvent]) {\n return\n }\n\n removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null)\n return\n }\n\n if (isNamespace) {\n Object.keys(events).forEach(elementEvent => {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1))\n })\n }\n\n const storeElementEvent = events[typeEvent] || {}\n Object.keys(storeElementEvent).forEach(keyHandlers => {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.includes(handlerKey)) {\n const event = storeElementEvent[keyHandlers]\n\n removeHandler(element, events, typeEvent, event.originalHandler, 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 = event.replace(stripNameRegex, '')\n const inNamespace = event !== typeEvent\n const isNative = nativeEvents.has(typeEvent)\n\n let jQueryEvent\n let bubbles = true\n let nativeDispatch = true\n let defaultPrevented = false\n let evt = null\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 if (isNative) {\n evt = document.createEvent('HTMLEvents')\n evt.initEvent(typeEvent, bubbles, true)\n } else {\n evt = new CustomEvent(event, {\n bubbles,\n cancelable: true\n })\n }\n\n // merge custom information in our event\n if (typeof args !== 'undefined') {\n Object.keys(args).forEach(key => {\n Object.defineProperty(evt, key, {\n get() {\n return args[key]\n }\n })\n })\n }\n\n if (defaultPrevented) {\n evt.preventDefault()\n }\n\n if (nativeDispatch) {\n element.dispatchEvent(evt)\n }\n\n if (evt.defaultPrevented && typeof jQueryEvent !== 'undefined') {\n jQueryEvent.preventDefault()\n }\n\n return evt\n }\n}\n\nexport default EventHandler\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): base-component.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Data from './dom/data'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst VERSION = '5.0.0-beta3'\n\nclass BaseComponent {\n constructor(element) {\n element = typeof element === 'string' ? document.querySelector(element) : element\n\n if (!element) {\n return\n }\n\n this._element = element\n Data.set(this._element, this.constructor.DATA_KEY, this)\n }\n\n dispose() {\n Data.remove(this._element, this.constructor.DATA_KEY)\n this._element = null\n }\n\n /** Static */\n\n static getInstance(element) {\n return Data.get(element, this.DATA_KEY)\n }\n\n static get VERSION() {\n return VERSION\n }\n}\n\nexport default BaseComponent\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n defineJQueryPlugin,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'alert'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst SELECTOR_DISMISS = '[data-bs-dismiss=\"alert\"]'\n\nconst EVENT_CLOSE = `close${EVENT_KEY}`\nconst EVENT_CLOSED = `closed${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_ALERT = 'alert'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Alert extends BaseComponent {\n // Getters\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n close(element) {\n const rootElement = element ? this._getRootElement(element) : this._element\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent === null || customEvent.defaultPrevented) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n // Private\n\n _getRootElement(element) {\n return getElementFromSelector(element) || element.closest(`.${CLASS_NAME_ALERT}`)\n }\n\n _triggerCloseEvent(element) {\n return EventHandler.trigger(element, EVENT_CLOSE)\n }\n\n _removeElement(element) {\n element.classList.remove(CLASS_NAME_SHOW)\n\n if (!element.classList.contains(CLASS_NAME_FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = getTransitionDurationFromElement(element)\n\n EventHandler.one(element, 'transitionend', () => this._destroyElement(element))\n emulateTransitionEnd(element, transitionDuration)\n }\n\n _destroyElement(element) {\n if (element.parentNode) {\n element.parentNode.removeChild(element)\n }\n\n EventHandler.trigger(element, EVENT_CLOSED)\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.get(this, DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DISMISS, Alert.handleDismiss(new Alert()))\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Alert to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(NAME, Alert)\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { defineJQueryPlugin } from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\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'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"button\"]'\n\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Button extends BaseComponent {\n // Getters\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n toggle() {\n // Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method\n this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE))\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.get(this, DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\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\n let data = Data.get(button, DATA_KEY)\n if (!data) {\n data = new Button(button)\n }\n\n data.toggle()\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Button to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(NAME, Button)\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(val) {\n if (val === 'true') {\n return true\n }\n\n if (val === 'false') {\n return false\n }\n\n if (val === Number(val).toString()) {\n return Number(val)\n }\n\n if (val === '' || val === 'null') {\n return null\n }\n\n return val\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\n Object.keys(element.dataset)\n .filter(key => key.startsWith('bs'))\n .forEach(key => {\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 offset(element) {\n const rect = element.getBoundingClientRect()\n\n return {\n top: rect.top + document.body.scrollTop,\n left: rect.left + document.body.scrollLeft\n }\n },\n\n position(element) {\n return {\n top: element.offsetTop,\n left: element.offsetLeft\n }\n }\n}\n\nexport default Manipulator\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NODE_TEXT = 3\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)\n .filter(child => child.matches(selector))\n },\n\n parents(element, selector) {\n const parents = []\n\n let ancestor = element.parentNode\n\n while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {\n if (ancestor.matches(selector)) {\n parents.push(ancestor)\n }\n\n ancestor = ancestor.parentNode\n }\n\n return parents\n },\n\n prev(element, selector) {\n let previous = element.previousElementSibling\n\n while (previous) {\n if (previous.matches(selector)) {\n return [previous]\n }\n\n previous = previous.previousElementSibling\n }\n\n return []\n },\n\n 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\nexport default SelectorEngine\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n defineJQueryPlugin,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isRTL,\n isVisible,\n reflow,\n triggerTransitionEnd,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\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\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\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_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 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'\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event'\n\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_ITEM = '.active.carousel-item'\nconst SELECTOR_ITEM = '.carousel-item'\nconst SELECTOR_ITEM_IMG = '.carousel-item img'\nconst SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev'\nconst SELECTOR_INDICATORS = '.carousel-indicators'\nconst SELECTOR_INDICATOR = '[data-bs-target]'\nconst SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]'\nconst SELECTOR_DATA_RIDE = '[data-bs-ride=\"carousel\"]'\n\nconst POINTER_TYPE_TOUCH = 'touch'\nconst POINTER_TYPE_PEN = 'pen'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent)\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(ORDER_NEXT)\n }\n }\n\n nextWhenVisible() {\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 if (!this._isSliding) {\n this._slide(ORDER_PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (SelectorEngine.findOne(SELECTOR_NEXT_PREV, this._element)) {\n triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config && this._config.interval && !this._isPaused) {\n this._updateInterval()\n\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._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 if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const order = index > activeIndex ?\n ORDER_NEXT :\n ORDER_PREV\n\n this._slide(order, this._items[index])\n }\n\n dispose() {\n EventHandler.off(this._element, EVENT_KEY)\n\n this._items = null\n this._config = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n\n super.dispose()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n this.touchDeltaX = 0\n\n if (!direction) {\n return\n }\n\n this._slide(direction > 0 ? DIRECTION_RIGHT : DIRECTION_LEFT)\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, event => this.pause(event))\n EventHandler.on(this._element, EVENT_MOUSELEAVE, event => this.cycle(event))\n }\n\n if (this._config.touch && this._touchSupported) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n const start = event => {\n if (this._pointerEvent && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH)) {\n this.touchStartX = event.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.touches[0].clientX\n }\n }\n\n const move = event => {\n // ensure swiping with one touch and not pinching\n this.touchDeltaX = event.touches && event.touches.length > 1 ?\n 0 :\n event.touches[0].clientX - this.touchStartX\n }\n\n const end = event => {\n if (this._pointerEvent && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH)) {\n this.touchDeltaX = event.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\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(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n SelectorEngine.find(SELECTOR_ITEM_IMG, this._element).forEach(itemImg => {\n EventHandler.on(itemImg, EVENT_DRAG_START, e => e.preventDefault())\n })\n\n if (this._pointerEvent) {\n EventHandler.on(this._element, EVENT_POINTERDOWN, event => start(event))\n EventHandler.on(this._element, EVENT_POINTERUP, event => end(event))\n\n this._element.classList.add(CLASS_NAME_POINTER_EVENT)\n } else {\n EventHandler.on(this._element, EVENT_TOUCHSTART, event => start(event))\n EventHandler.on(this._element, EVENT_TOUCHMOVE, event => move(event))\n EventHandler.on(this._element, EVENT_TOUCHEND, event => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n if (event.key === ARROW_LEFT_KEY) {\n event.preventDefault()\n this._slide(DIRECTION_LEFT)\n } else if (event.key === ARROW_RIGHT_KEY) {\n event.preventDefault()\n this._slide(DIRECTION_RIGHT)\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode ?\n SelectorEngine.find(SELECTOR_ITEM, element.parentNode) :\n []\n\n return this._items.indexOf(element)\n }\n\n _getItemByOrder(order, activeElement) {\n const isNext = order === ORDER_NEXT\n const isPrev = order === ORDER_PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = (isPrev && activeIndex === 0) || (isNext && activeIndex === lastItemIndex)\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = isPrev ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1 ?\n this._items[this._items.length - 1] :\n this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element))\n\n return EventHandler.trigger(this._element, EVENT_SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\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 indicators = SelectorEngine.find(SELECTOR_INDICATOR, this._indicatorsElement)\n\n for (let i = 0; i < indicators.length; i++) {\n if (Number.parseInt(indicators[i].getAttribute('data-bs-slide-to'), 10) === this._getItemIndex(element)) {\n indicators[i].classList.add(CLASS_NAME_ACTIVE)\n indicators[i].setAttribute('aria-current', 'true')\n break\n }\n }\n }\n }\n\n _updateInterval() {\n const element = this._activeElement || SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n\n if (!element) {\n return\n }\n\n const elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10)\n\n if (elementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval\n this._config.interval = elementInterval\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval\n }\n }\n\n _slide(directionOrOrder, element) {\n const order = this._directionToOrder(directionOrOrder)\n const activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || this._getItemByOrder(order, activeElement)\n\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n const isNext = order === ORDER_NEXT\n const directionalClassName = isNext ? CLASS_NAME_START : CLASS_NAME_END\n const orderClassName = isNext ? CLASS_NAME_NEXT : CLASS_NAME_PREV\n const eventDirectionName = this._orderToDirection(order)\n\n if (nextElement && nextElement.classList.contains(CLASS_NAME_ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.defaultPrevented) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n this._activeElement = nextElement\n\n if (this._element.classList.contains(CLASS_NAME_SLIDE)) {\n nextElement.classList.add(orderClassName)\n\n reflow(nextElement)\n\n activeElement.classList.add(directionalClassName)\n nextElement.classList.add(directionalClassName)\n\n const transitionDuration = getTransitionDurationFromElement(activeElement)\n\n EventHandler.one(activeElement, 'transitionend', () => {\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 setTimeout(() => {\n EventHandler.trigger(this._element, EVENT_SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }, 0)\n })\n\n emulateTransitionEnd(activeElement, transitionDuration)\n } else {\n activeElement.classList.remove(CLASS_NAME_ACTIVE)\n nextElement.classList.add(CLASS_NAME_ACTIVE)\n\n this._isSliding = false\n EventHandler.trigger(this._element, EVENT_SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n _directionToOrder(direction) {\n if (![DIRECTION_RIGHT, DIRECTION_LEFT].includes(direction)) {\n return direction\n }\n\n if (isRTL()) {\n return direction === DIRECTION_RIGHT ? ORDER_PREV : ORDER_NEXT\n }\n\n return direction === DIRECTION_RIGHT ? ORDER_NEXT : ORDER_PREV\n }\n\n _orderToDirection(order) {\n if (![ORDER_NEXT, ORDER_PREV].includes(order)) {\n return order\n }\n\n if (isRTL()) {\n return order === ORDER_NEXT ? DIRECTION_LEFT : DIRECTION_RIGHT\n }\n\n return order === ORDER_NEXT ? DIRECTION_RIGHT : DIRECTION_LEFT\n }\n\n // Static\n\n static carouselInterface(element, config) {\n let data = Data.get(element, DATA_KEY)\n let _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element)\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(element, _config)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n\n data[action]()\n } else if (_config.interval && _config.ride) {\n data.pause()\n data.cycle()\n }\n }\n\n static jQueryInterface(config) {\n return this.each(function () {\n Carousel.carouselInterface(this, config)\n })\n }\n\n static dataApiClickHandler(event) {\n const target = getElementFromSelector(this)\n\n if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {\n return\n }\n\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n const slideIndex = this.getAttribute('data-bs-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel.carouselInterface(target, config)\n\n if (slideIndex) {\n Data.get(target, DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, Carousel.dataApiClickHandler)\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE)\n\n for (let i = 0, len = carousels.length; i < len; i++) {\n Carousel.carouselInterface(carousels[i], Data.get(carousels[i], DATA_KEY))\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Carousel to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(NAME, Carousel)\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n defineJQueryPlugin,\n emulateTransitionEnd,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isElement,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'collapse'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n toggle: true,\n parent: ''\n}\n\nconst DefaultType = {\n toggle: 'boolean',\n parent: '(string|element)'\n}\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'\n\nconst WIDTH = 'width'\nconst HEIGHT = 'height'\n\nconst SELECTOR_ACTIVES = '.show, .collapsing'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"collapse\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._isTransitioning = false\n this._config = this._getConfig(config)\n this._triggerArray = SelectorEngine.find(\n `${SELECTOR_DATA_TOGGLE}[href=\"#${this._element.id}\"],` +\n `${SELECTOR_DATA_TOGGLE}[data-bs-target=\"#${this._element.id}\"]`\n )\n\n const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\n\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = getSelectorFromElement(elem)\n const filterElement = SelectorEngine.find(selector)\n .filter(foundElem => foundElem === this._element)\n\n if (selector !== null && filterElement.length) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n toggle() {\n if (this._element.classList.contains(CLASS_NAME_SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning || this._element.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = SelectorEngine.find(SELECTOR_ACTIVES, this._parent)\n .filter(elem => {\n if (typeof this._config.parent === 'string') {\n return elem.getAttribute('data-bs-parent') === this._config.parent\n }\n\n return elem.classList.contains(CLASS_NAME_COLLAPSE)\n })\n\n if (actives.length === 0) {\n actives = null\n }\n }\n\n const container = SelectorEngine.findOne(this._selector)\n if (actives) {\n const tempActiveData = actives.find(elem => container !== elem)\n activesData = tempActiveData ? Data.get(tempActiveData, DATA_KEY) : null\n\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = EventHandler.trigger(this._element, EVENT_SHOW)\n if (startEvent.defaultPrevented) {\n return\n }\n\n if (actives) {\n actives.forEach(elemActive => {\n if (container !== elemActive) {\n Collapse.collapseInterface(elemActive, 'hide')\n }\n\n if (!activesData) {\n Data.set(elemActive, DATA_KEY, null)\n }\n })\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 if (this._triggerArray.length) {\n this._triggerArray.forEach(element => {\n element.classList.remove(CLASS_NAME_COLLAPSED)\n element.setAttribute('aria-expanded', true)\n })\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\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 this.setTransitioning(false)\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 const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, 'transitionend', complete)\n\n emulateTransitionEnd(this._element, transitionDuration)\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning || !this._element.classList.contains(CLASS_NAME_SHOW)) {\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 const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const elem = getElementFromSelector(trigger)\n\n if (elem && !elem.classList.contains(CLASS_NAME_SHOW)) {\n trigger.classList.add(CLASS_NAME_COLLAPSED)\n trigger.setAttribute('aria-expanded', false)\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(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 const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, 'transitionend', complete)\n emulateTransitionEnd(this._element, transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n super.dispose()\n this._config = null\n this._parent = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n return this._element.classList.contains(WIDTH) ? WIDTH : HEIGHT\n }\n\n _getParent() {\n let { parent } = this._config\n\n if (isElement(parent)) {\n // it's a jQuery object\n if (typeof parent.jquery !== 'undefined' || typeof parent[0] !== 'undefined') {\n parent = parent[0]\n }\n } else {\n parent = SelectorEngine.findOne(parent)\n }\n\n const selector = `${SELECTOR_DATA_TOGGLE}[data-bs-parent=\"${parent}\"]`\n\n SelectorEngine.find(selector, parent)\n .forEach(element => {\n const selected = getElementFromSelector(element)\n\n this._addAriaAndCollapsedClass(\n selected,\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n if (!element || !triggerArray.length) {\n return\n }\n\n const isOpen = element.classList.contains(CLASS_NAME_SHOW)\n\n triggerArray.forEach(elem => {\n if (isOpen) {\n elem.classList.remove(CLASS_NAME_COLLAPSED)\n } else {\n elem.classList.add(CLASS_NAME_COLLAPSED)\n }\n\n elem.setAttribute('aria-expanded', isOpen)\n })\n }\n\n // Static\n\n static collapseInterface(element, config) {\n let data = Data.get(element, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element),\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(element, _config)\n }\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 static jQueryInterface(config) {\n return this.each(function () {\n Collapse.collapseInterface(this, config)\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\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 const triggerData = Manipulator.getDataAttributes(this)\n const selector = getSelectorFromElement(this)\n const selectorElements = SelectorEngine.find(selector)\n\n selectorElements.forEach(element => {\n const data = Data.get(element, DATA_KEY)\n let config\n if (data) {\n // update parent attribute\n if (data._parent === null && typeof triggerData.parent === 'string') {\n data._config.parent = triggerData.parent\n data._parent = data._getParent()\n }\n\n config = 'toggle'\n } else {\n config = triggerData\n }\n\n Collapse.collapseInterface(element, config)\n })\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Collapse to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(NAME, Collapse)\n\nexport default Collapse\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport * as Popper from '@popperjs/core'\n\nimport {\n defineJQueryPlugin,\n getElementFromSelector,\n isElement,\n isVisible,\n isRTL,\n noop,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\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 SPACE_KEY = 'Space'\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 REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEY}|${ARROW_DOWN_KEY}|${ESCAPE_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 = `click${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_DISABLED = 'disabled'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_DROPUP = 'dropup'\nconst CLASS_NAME_DROPEND = 'dropend'\nconst CLASS_NAME_DROPSTART = 'dropstart'\nconst CLASS_NAME_NAVBAR = 'navbar'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"dropdown\"]'\nconst SELECTOR_MENU = '.dropdown-menu'\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'\n\nconst Default = {\n offset: [0, 2],\n boundary: 'clippingParents',\n reference: 'toggle',\n display: 'dynamic',\n popperConfig: null\n}\n\nconst DefaultType = {\n offset: '(array|string|function)',\n boundary: '(string|element)',\n reference: '(string|element|object)',\n display: 'string',\n popperConfig: '(null|object|function)'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED)) {\n return\n }\n\n const isActive = this._element.classList.contains(CLASS_NAME_SHOW)\n\n Dropdown.clearMenus()\n\n if (isActive) {\n return\n }\n\n this.show()\n }\n\n show() {\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || this._menu.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n const parent = Dropdown.getParentFromElement(this._element)\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 // Totally disable Popper for Dropdowns in Navbar\n if (this._inNavbar) {\n Manipulator.setDataAttribute(this._menu, 'popper', 'none')\n } else {\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 = parent\n } else if (isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n } else if (typeof this._config.reference === 'object') {\n referenceElement = this._config.reference\n }\n\n const popperConfig = this._getPopperConfig()\n const isDisplayStatic = popperConfig.modifiers.find(modifier => modifier.name === 'applyStyles' && modifier.enabled === false)\n\n this._popper = Popper.createPopper(referenceElement, this._menu, popperConfig)\n\n if (isDisplayStatic) {\n Manipulator.setDataAttribute(this._menu, 'popper', 'static')\n }\n }\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 !parent.closest(SELECTOR_NAVBAR_NAV)) {\n [].concat(...document.body.children)\n .forEach(elem => EventHandler.on(elem, 'mouseover', null, noop()))\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n this._menu.classList.toggle(CLASS_NAME_SHOW)\n this._element.classList.toggle(CLASS_NAME_SHOW)\n EventHandler.trigger(this._element, EVENT_SHOWN, relatedTarget)\n }\n\n hide() {\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || !this._menu.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE, relatedTarget)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n if (this._popper) {\n this._popper.destroy()\n }\n\n this._menu.classList.toggle(CLASS_NAME_SHOW)\n this._element.classList.toggle(CLASS_NAME_SHOW)\n Manipulator.removeDataAttribute(this._menu, 'popper')\n EventHandler.trigger(this._element, EVENT_HIDDEN, relatedTarget)\n }\n\n dispose() {\n EventHandler.off(this._element, EVENT_KEY)\n this._menu = null\n\n if (this._popper) {\n this._popper.destroy()\n this._popper = null\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\n _addEventListeners() {\n EventHandler.on(this._element, EVENT_CLICK, event => {\n event.preventDefault()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...Manipulator.getDataAttributes(this._element),\n ...config\n }\n\n typeCheckConfig(NAME, config, this.constructor.DefaultType)\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 _getMenuElement() {\n return SelectorEngine.next(this._element, SELECTOR_MENU)[0]\n }\n\n _getPlacement() {\n const parentDropdown = this._element.parentNode\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 // 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(`.${CLASS_NAME_NAVBAR}`) !== null\n }\n\n _getOffset() {\n const { offset } = this._config\n\n if (typeof offset === 'string') {\n return offset.split(',').map(val => Number.parseInt(val, 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\n if (this._config.display === 'static') {\n defaultBsPopperConfig.modifiers = [{\n name: 'applyStyles',\n enabled: false\n }]\n }\n\n return {\n ...defaultBsPopperConfig,\n ...(typeof this._config.popperConfig === 'function' ? this._config.popperConfig(defaultBsPopperConfig) : this._config.popperConfig)\n }\n }\n\n // Static\n\n static dropdownInterface(element, config) {\n let data = Data.get(element, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(element, _config)\n }\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 static jQueryInterface(config) {\n return this.each(function () {\n Dropdown.dropdownInterface(this, config)\n })\n }\n\n static clearMenus(event) {\n if (event) {\n if (event.button === RIGHT_MOUSE_BUTTON || (event.type === 'keyup' && event.key !== TAB_KEY)) {\n return\n }\n\n if (/input|select|textarea|form/i.test(event.target.tagName)) {\n return\n }\n }\n\n const toggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\n\n for (let i = 0, len = toggles.length; i < len; i++) {\n const context = Data.get(toggles[i], DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!toggles[i].classList.contains(CLASS_NAME_SHOW)) {\n continue\n }\n\n if (event) {\n // Don't close the menu if the clicked element or one of its parents is the dropdown button\n if ([context._element].some(element => event.composedPath().includes(element))) {\n continue\n }\n\n // Tab navigation through the dropdown menu shouldn't close the menu\n if (event.type === 'keyup' && event.key === TAB_KEY && dropdownMenu.contains(event.target)) {\n continue\n }\n }\n\n const hideEvent = EventHandler.trigger(toggles[i], EVENT_HIDE, relatedTarget)\n if (hideEvent.defaultPrevented) {\n continue\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 [].concat(...document.body.children)\n .forEach(elem => EventHandler.off(elem, 'mouseover', null, noop()))\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n if (context._popper) {\n context._popper.destroy()\n }\n\n dropdownMenu.classList.remove(CLASS_NAME_SHOW)\n toggles[i].classList.remove(CLASS_NAME_SHOW)\n Manipulator.removeDataAttribute(dropdownMenu, 'popper')\n EventHandler.trigger(toggles[i], EVENT_HIDDEN, relatedTarget)\n }\n }\n\n static getParentFromElement(element) {\n return getElementFromSelector(element) || element.parentNode\n }\n\n static dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ?\n event.key === SPACE_KEY || (event.key !== ESCAPE_KEY &&\n ((event.key !== ARROW_DOWN_KEY && event.key !== ARROW_UP_KEY) ||\n event.target.closest(SELECTOR_MENU))) :\n !REGEXP_KEYDOWN.test(event.key)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || this.classList.contains(CLASS_NAME_DISABLED)) {\n return\n }\n\n const parent = Dropdown.getParentFromElement(this)\n const isActive = this.classList.contains(CLASS_NAME_SHOW)\n\n if (event.key === ESCAPE_KEY) {\n const button = this.matches(SELECTOR_DATA_TOGGLE) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE)[0]\n button.focus()\n Dropdown.clearMenus()\n return\n }\n\n if (!isActive && (event.key === ARROW_UP_KEY || event.key === ARROW_DOWN_KEY)) {\n const button = this.matches(SELECTOR_DATA_TOGGLE) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE)[0]\n button.click()\n return\n }\n\n if (!isActive || event.key === SPACE_KEY) {\n Dropdown.clearMenus()\n return\n }\n\n const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, parent).filter(isVisible)\n\n if (!items.length) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n // Up\n if (event.key === ARROW_UP_KEY && index > 0) {\n index--\n }\n\n // Down\n if (event.key === ARROW_DOWN_KEY && index < items.length - 1) {\n index++\n }\n\n // index is -1 if the first keydown is an ArrowUp\n index = index === -1 ? 0 : index\n\n items[index].focus()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\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.dropdownInterface(this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Dropdown to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(NAME, Dropdown)\n\nexport default Dropdown\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n defineJQueryPlugin,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isVisible,\n isRTL,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\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 Default = {\n backdrop: true,\n keyboard: true,\n focus: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean'\n}\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_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${EVENT_KEY}`\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEUP_DISMISS = `mouseup.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure'\nconst CLASS_NAME_BACKDROP = 'modal-backdrop'\nconst CLASS_NAME_OPEN = 'modal-open'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_STATIC = 'modal-static'\n\nconst SELECTOR_DIALOG = '.modal-dialog'\nconst SELECTOR_MODAL_BODY = '.modal-body'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"modal\"]'\nconst SELECTOR_DATA_DISMISS = '[data-bs-dismiss=\"modal\"]'\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'\nconst SELECTOR_STICKY_CONTENT = '.sticky-top'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._config = this._getConfig(config)\n this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, this._element)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollbarWidth = 0\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n if (this._isAnimated()) {\n this._isTransitioning = true\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, {\n relatedTarget\n })\n\n if (this._isShown || showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, event => this.hide(event))\n\n EventHandler.on(this._dialog, EVENT_MOUSEDOWN_DISMISS, () => {\n EventHandler.one(this._element, EVENT_MOUSEUP_DISMISS, event => {\n if (event.target === this._element) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\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 const isAnimated = this._isAnimated()\n\n if (isAnimated) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.off(document, EVENT_FOCUSIN)\n\n this._element.classList.remove(CLASS_NAME_SHOW)\n\n EventHandler.off(this._element, EVENT_CLICK_DISMISS)\n EventHandler.off(this._dialog, EVENT_MOUSEDOWN_DISMISS)\n\n if (isAnimated) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, 'transitionend', event => this._hideModal(event))\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach(htmlElement => EventHandler.off(htmlElement, EVENT_KEY))\n\n super.dispose()\n\n /**\n * `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `EVENT_CLICK_DATA_API` event that should remain\n */\n EventHandler.off(document, EVENT_FOCUSIN)\n\n this._config = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._isTransitioning = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const isAnimated = this._isAnimated()\n const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog)\n\n if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(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 if (modalBody) {\n modalBody.scrollTop = 0\n }\n\n if (isAnimated) {\n reflow(this._element)\n }\n\n this._element.classList.add(CLASS_NAME_SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n\n this._isTransitioning = false\n EventHandler.trigger(this._element, EVENT_SHOWN, {\n relatedTarget\n })\n }\n\n if (isAnimated) {\n const transitionDuration = getTransitionDurationFromElement(this._dialog)\n\n EventHandler.one(this._dialog, 'transitionend', transitionComplete)\n emulateTransitionEnd(this._dialog, transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n EventHandler.off(document, EVENT_FOCUSIN) // guard against infinite focus loop\n EventHandler.on(document, EVENT_FOCUSIN, event => {\n if (document !== event.target &&\n this._element !== event.target &&\n !this._element.contains(event.target)) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown) {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {\n if (this._config.keyboard && event.key === ESCAPE_KEY) {\n event.preventDefault()\n this.hide()\n } else if (!this._config.keyboard && event.key === ESCAPE_KEY) {\n this._triggerBackdropTransition()\n }\n })\n } else {\n EventHandler.off(this._element, EVENT_KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n EventHandler.on(window, EVENT_RESIZE, () => this._adjustDialog())\n } else {\n EventHandler.off(window, EVENT_RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._element.removeAttribute('role')\n this._isTransitioning = false\n this._showBackdrop(() => {\n document.body.classList.remove(CLASS_NAME_OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n })\n }\n\n _removeBackdrop() {\n this._backdrop.parentNode.removeChild(this._backdrop)\n this._backdrop = null\n }\n\n _showBackdrop(callback) {\n const isAnimated = this._isAnimated()\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = CLASS_NAME_BACKDROP\n\n if (isAnimated) {\n this._backdrop.classList.add(CLASS_NAME_FADE)\n }\n\n document.body.appendChild(this._backdrop)\n\n EventHandler.on(this._element, EVENT_CLICK_DISMISS, event => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n\n if (event.target !== event.currentTarget) {\n return\n }\n\n if (this._config.backdrop === 'static') {\n this._triggerBackdropTransition()\n } else {\n this.hide()\n }\n })\n\n if (isAnimated) {\n reflow(this._backdrop)\n }\n\n this._backdrop.classList.add(CLASS_NAME_SHOW)\n\n if (!isAnimated) {\n callback()\n return\n }\n\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n\n EventHandler.one(this._backdrop, 'transitionend', callback)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n this._backdrop.classList.remove(CLASS_NAME_SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n callback()\n }\n\n if (isAnimated) {\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n EventHandler.one(this._backdrop, 'transitionend', callbackRemove)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else {\n callback()\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\n if (!isModalOverflowing) {\n this._element.style.overflowY = 'hidden'\n }\n\n this._element.classList.add(CLASS_NAME_STATIC)\n const modalTransitionDuration = getTransitionDurationFromElement(this._dialog)\n EventHandler.off(this._element, 'transitionend')\n EventHandler.one(this._element, 'transitionend', () => {\n this._element.classList.remove(CLASS_NAME_STATIC)\n if (!isModalOverflowing) {\n EventHandler.one(this._element, 'transitionend', () => {\n this._element.style.overflowY = ''\n })\n emulateTransitionEnd(this._element, modalTransitionDuration)\n }\n })\n emulateTransitionEnd(this._element, modalTransitionDuration)\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\n if ((!this._isBodyOverflowing && isModalOverflowing && !isRTL()) || (this._isBodyOverflowing && !isModalOverflowing && isRTL())) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if ((this._isBodyOverflowing && !isModalOverflowing && !isRTL()) || (!this._isBodyOverflowing && isModalOverflowing && isRTL())) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n this._setElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight', calculatedValue => calculatedValue + this._scrollbarWidth)\n this._setElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight', calculatedValue => calculatedValue - this._scrollbarWidth)\n this._setElementAttributes('body', 'paddingRight', calculatedValue => calculatedValue + this._scrollbarWidth)\n }\n\n document.body.classList.add(CLASS_NAME_OPEN)\n }\n\n _setElementAttributes(selector, styleProp, callback) {\n SelectorEngine.find(selector)\n .forEach(element => {\n if (element !== document.body && window.innerWidth > element.clientWidth + this._scrollbarWidth) {\n return\n }\n\n const actualValue = element.style[styleProp]\n const calculatedValue = window.getComputedStyle(element)[styleProp]\n Manipulator.setDataAttribute(element, styleProp, actualValue)\n element.style[styleProp] = callback(Number.parseFloat(calculatedValue)) + 'px'\n })\n }\n\n _resetScrollbar() {\n this._resetElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight')\n this._resetElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight')\n this._resetElementAttributes('body', 'paddingRight')\n }\n\n _resetElementAttributes(selector, styleProp) {\n SelectorEngine.find(selector).forEach(element => {\n const value = Manipulator.getDataAttribute(element, styleProp)\n if (typeof value === 'undefined' && element === document.body) {\n element.style[styleProp] = ''\n } else {\n Manipulator.removeDataAttribute(element, styleProp)\n element.style[styleProp] = value\n }\n })\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = CLASS_NAME_SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = Data.get(this, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(this),\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (!data) {\n data = new Modal(this, _config)\n }\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](relatedTarget)\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n const target = getElementFromSelector(this)\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\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 let data = Data.get(target, DATA_KEY)\n if (!data) {\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n\n data = new Modal(target, config)\n }\n\n data.toggle(this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Modal to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(NAME, Modal)\n\nexport default Modal\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): util/scrollBar.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport SelectorEngine from '../dom/selector-engine'\nimport Manipulator from '../dom/manipulator'\n\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed'\nconst SELECTOR_STICKY_CONTENT = '.sticky-top'\n\nconst 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\nconst hide = (width = getWidth()) => {\n document.body.style.overflow = 'hidden'\n _setElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight', calculatedValue => calculatedValue + width)\n _setElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight', calculatedValue => calculatedValue - width)\n _setElementAttributes('body', 'paddingRight', calculatedValue => calculatedValue + width)\n}\n\nconst _setElementAttributes = (selector, styleProp, callback) => {\n const scrollbarWidth = getWidth()\n SelectorEngine.find(selector)\n .forEach(element => {\n if (element !== document.body && window.innerWidth > element.clientWidth + scrollbarWidth) {\n return\n }\n\n const actualValue = element.style[styleProp]\n const calculatedValue = window.getComputedStyle(element)[styleProp]\n Manipulator.setDataAttribute(element, styleProp, actualValue)\n element.style[styleProp] = callback(Number.parseFloat(calculatedValue)) + 'px'\n })\n}\n\nconst reset = () => {\n document.body.style.overflow = 'auto'\n _resetElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight')\n _resetElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight')\n _resetElementAttributes('body', 'paddingRight')\n}\n\nconst _resetElementAttributes = (selector, styleProp) => {\n SelectorEngine.find(selector).forEach(element => {\n const value = Manipulator.getDataAttribute(element, styleProp)\n if (typeof value === 'undefined' && element === document.body) {\n element.style.removeProperty(styleProp)\n } else {\n Manipulator.removeDataAttribute(element, styleProp)\n element.style[styleProp] = value\n }\n })\n}\n\nconst isBodyOverflowing = () => {\n return getWidth() > 0\n}\n\nexport {\n getWidth,\n hide,\n isBodyOverflowing,\n reset\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): offcanvas.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n defineJQueryPlugin,\n getElementFromSelector,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isDisabled,\n isVisible,\n typeCheckConfig\n} from './util/index'\nimport { hide as scrollBarHide, reset as scrollBarReset } from './util/scrollbar'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport BaseComponent from './base-component'\nimport SelectorEngine from './dom/selector-engine'\nimport Manipulator from './dom/manipulator'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\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 Default = {\n backdrop: true,\n keyboard: true,\n scroll: false\n}\n\nconst DefaultType = {\n backdrop: 'boolean',\n keyboard: 'boolean',\n scroll: 'boolean'\n}\n\nconst CLASS_NAME_BACKDROP_BODY = 'offcanvas-backdrop'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_TOGGLING = 'offcanvas-toggling'\nconst OPEN_SELECTOR = '.offcanvas.show'\nconst ACTIVE_SELECTOR = `${OPEN_SELECTOR}, .${CLASS_NAME_TOGGLING}`\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_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\n\nconst SELECTOR_DATA_DISMISS = '[data-bs-dismiss=\"offcanvas\"]'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"offcanvas\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Offcanvas extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._config = this._getConfig(config)\n this._isShown = false\n this._addEventListeners()\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown) {\n return\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, { relatedTarget })\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n this._element.style.visibility = 'visible'\n\n if (this._config.backdrop) {\n document.body.classList.add(CLASS_NAME_BACKDROP_BODY)\n }\n\n if (!this._config.scroll) {\n scrollBarHide()\n }\n\n this._element.classList.add(CLASS_NAME_TOGGLING)\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n this._element.setAttribute('role', 'dialog')\n this._element.classList.add(CLASS_NAME_SHOW)\n\n const completeCallBack = () => {\n this._element.classList.remove(CLASS_NAME_TOGGLING)\n EventHandler.trigger(this._element, EVENT_SHOWN, { relatedTarget })\n this._enforceFocusOnElement(this._element)\n }\n\n setTimeout(completeCallBack, getTransitionDurationFromElement(this._element))\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._element.classList.add(CLASS_NAME_TOGGLING)\n EventHandler.off(document, EVENT_FOCUSIN)\n this._element.blur()\n this._isShown = false\n this._element.classList.remove(CLASS_NAME_SHOW)\n\n const completeCallback = () => {\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._element.removeAttribute('role')\n this._element.style.visibility = 'hidden'\n\n if (this._config.backdrop) {\n document.body.classList.remove(CLASS_NAME_BACKDROP_BODY)\n }\n\n if (!this._config.scroll) {\n scrollBarReset()\n }\n\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n this._element.classList.remove(CLASS_NAME_TOGGLING)\n }\n\n setTimeout(completeCallback, getTransitionDurationFromElement(this._element))\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...(typeof config === 'object' ? config : {})\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _enforceFocusOnElement(element) {\n EventHandler.off(document, EVENT_FOCUSIN) // guard against infinite focus loop\n EventHandler.on(document, EVENT_FOCUSIN, event => {\n if (document !== event.target &&\n element !== event.target &&\n !element.contains(event.target)) {\n element.focus()\n }\n })\n element.focus()\n }\n\n _addEventListeners() {\n EventHandler.on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, () => this.hide())\n\n EventHandler.on(document, 'keydown', event => {\n if (this._config.keyboard && event.key === ESCAPE_KEY) {\n this.hide()\n }\n })\n\n EventHandler.on(document, EVENT_CLICK_DATA_API, event => {\n const target = SelectorEngine.findOne(getSelectorFromElement(event.target))\n if (!this._element.contains(event.target) && target !== this._element) {\n this.hide()\n }\n })\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Data.get(this, DATA_KEY) || new Offcanvas(this, typeof config === 'object' ? 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 * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n const target = getElementFromSelector(this)\n\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n if (isDisabled(this)) {\n return\n }\n\n EventHandler.one(target, EVENT_HIDDEN, () => {\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 allReadyOpen = SelectorEngine.findOne(ACTIVE_SELECTOR)\n if (allReadyOpen && allReadyOpen !== target) {\n return\n }\n\n const data = Data.get(target, DATA_KEY) || new Offcanvas(target)\n\n data.toggle(this)\n})\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n SelectorEngine.find(OPEN_SELECTOR).forEach(el => (Data.get(el, DATA_KEY) || new Offcanvas(el)).show())\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\ndefineJQueryPlugin(NAME, Offcanvas)\n\nexport default Offcanvas\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst uriAttrs = new Set([\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n])\n\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/i\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[\\d+/a-z]+=*$/i\n\nconst allowedAttribute = (attr, allowedAttributeList) => {\n const attrName = attr.nodeName.toLowerCase()\n\n if (allowedAttributeList.includes(attrName)) {\n if (uriAttrs.has(attrName)) {\n return Boolean(SAFE_URL_PATTERN.test(attr.nodeValue) || DATA_URL_PATTERN.test(attr.nodeValue))\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, len = regExp.length; i < len; i++) {\n if (regExp[i].test(attrName)) {\n return true\n }\n }\n\n return false\n}\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\nexport function sanitizeHtml(unsafeHtml, allowList, sanitizeFn) {\n if (!unsafeHtml.length) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const allowlistKeys = Object.keys(allowList)\n const elements = [].concat(...createdDocument.body.querySelectorAll('*'))\n\n for (let i = 0, len = elements.length; i < len; i++) {\n const el = elements[i]\n const elName = el.nodeName.toLowerCase()\n\n if (!allowlistKeys.includes(elName)) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n const attributeList = [].concat(...el.attributes)\n const allowedAttributes = [].concat(allowList['*'] || [], allowList[elName] || [])\n\n attributeList.forEach(attr => {\n if (!allowedAttribute(attr, allowedAttributes)) {\n el.removeAttribute(attr.nodeName)\n }\n })\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport * as Popper from '@popperjs/core'\n\nimport {\n defineJQueryPlugin,\n emulateTransitionEnd,\n findShadowRoot,\n getTransitionDurationFromElement,\n getUID,\n isElement,\n isRTL,\n noop,\n typeCheckConfig\n} from './util/index'\nimport {\n DefaultAllowlist,\n sanitizeHtml\n} from './util/sanitizer'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tooltip'\nconst DATA_KEY = 'bs.tooltip'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-tooltip'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\nconst DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn'])\n\nconst DefaultType = {\n animation: 'boolean',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string',\n delay: '(number|object)',\n html: 'boolean',\n selector: '(string|boolean)',\n placement: '(string|function)',\n offset: '(array|string|function)',\n container: '(string|element|boolean)',\n fallbackPlacements: 'array',\n boundary: '(string|element)',\n customClass: '(string|function)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n allowList: 'object',\n popperConfig: '(null|object|function)'\n}\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 animation: true,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"tooltip-arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div>' +\n '</div>',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n selector: false,\n placement: 'top',\n offset: [0, 0],\n container: false,\n fallbackPlacements: ['top', 'right', 'bottom', 'left'],\n boundary: 'clippingParents',\n customClass: '',\n sanitize: true,\n sanitizeFn: null,\n allowList: DefaultAllowlist,\n popperConfig: null\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_MODAL = 'modal'\nconst CLASS_NAME_SHOW = 'show'\n\nconst HOVER_STATE_SHOW = 'show'\nconst HOVER_STATE_OUT = 'out'\n\nconst SELECTOR_TOOLTIP_INNER = '.tooltip-inner'\n\nconst TRIGGER_HOVER = 'hover'\nconst TRIGGER_FOCUS = 'focus'\nconst TRIGGER_CLICK = 'click'\nconst TRIGGER_MANUAL = 'manual'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\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)\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const context = this._initializeOnDelegatedTarget(event)\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if (this.getTipElement().classList.contains(CLASS_NAME_SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n EventHandler.off(this._element, this.constructor.EVENT_KEY)\n EventHandler.off(this._element.closest(`.${CLASS_NAME_MODAL}`), 'hide.bs.modal', this._hideModalHandler)\n\n if (this.tip && this.tip.parentNode) {\n this.tip.parentNode.removeChild(this.tip)\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.config = null\n this.tip = null\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.Event.SHOW)\n const shadowRoot = findShadowRoot(this._element)\n const isInTheDom = shadowRoot === null ?\n this._element.ownerDocument.documentElement.contains(this._element) :\n shadowRoot.contains(this._element)\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this._element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n tip.classList.add(CLASS_NAME_FADE)\n }\n\n const placement = typeof this.config.placement === 'function' ?\n this.config.placement.call(this, tip, this._element) :\n this.config.placement\n\n const attachment = this._getAttachment(placement)\n this._addAttachmentClass(attachment)\n\n const container = this._getContainer()\n Data.set(tip, this.constructor.DATA_KEY, this)\n\n if (!this._element.ownerDocument.documentElement.contains(this.tip)) {\n container.appendChild(tip)\n EventHandler.trigger(this._element, this.constructor.Event.INSERTED)\n }\n\n if (this._popper) {\n this._popper.update()\n } else {\n this._popper = Popper.createPopper(this._element, tip, this._getPopperConfig(attachment))\n }\n\n tip.classList.add(CLASS_NAME_SHOW)\n\n const customClass = typeof this.config.customClass === 'function' ? this.config.customClass() : this.config.customClass\n if (customClass) {\n tip.classList.add(...customClass.split(' '))\n }\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 [].concat(...document.body.children).forEach(element => {\n EventHandler.on(element, 'mouseover', noop())\n })\n }\n\n const complete = () => {\n const prevHoverState = this._hoverState\n\n this._hoverState = null\n EventHandler.trigger(this._element, this.constructor.Event.SHOWN)\n\n if (prevHoverState === HOVER_STATE_OUT) {\n this._leave(null, this)\n }\n }\n\n if (this.tip.classList.contains(CLASS_NAME_FADE)) {\n const transitionDuration = getTransitionDurationFromElement(this.tip)\n EventHandler.one(this.tip, 'transitionend', complete)\n emulateTransitionEnd(this.tip, transitionDuration)\n } else {\n complete()\n }\n }\n\n hide() {\n if (!this._popper) {\n return\n }\n\n const tip = this.getTipElement()\n const complete = () => {\n if (this._isWithActiveTrigger()) {\n return\n }\n\n if (this._hoverState !== HOVER_STATE_SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this._element.removeAttribute('aria-describedby')\n EventHandler.trigger(this._element, this.constructor.Event.HIDDEN)\n\n if (this._popper) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n const hideEvent = EventHandler.trigger(this._element, this.constructor.Event.HIDE)\n if (hideEvent.defaultPrevented) {\n return\n }\n\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 [].concat(...document.body.children)\n .forEach(element => EventHandler.off(element, 'mouseover', noop))\n }\n\n this._activeTrigger[TRIGGER_CLICK] = false\n this._activeTrigger[TRIGGER_FOCUS] = false\n this._activeTrigger[TRIGGER_HOVER] = false\n\n if (this.tip.classList.contains(CLASS_NAME_FADE)) {\n const transitionDuration = getTransitionDurationFromElement(tip)\n\n EventHandler.one(tip, 'transitionend', complete)\n emulateTransitionEnd(tip, transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.update()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n getTipElement() {\n if (this.tip) {\n return this.tip\n }\n\n const element = document.createElement('div')\n element.innerHTML = this.config.template\n\n this.tip = element.children[0]\n return this.tip\n }\n\n setContent() {\n const tip = this.getTipElement()\n this.setElementContent(SelectorEngine.findOne(SELECTOR_TOOLTIP_INNER, tip), this.getTitle())\n tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW)\n }\n\n setElementContent(element, content) {\n if (element === null) {\n return\n }\n\n if (typeof content === 'object' && isElement(content)) {\n if (content.jquery) {\n content = content[0]\n }\n\n // content is a DOM node or a jQuery\n if (this.config.html) {\n if (content.parentNode !== element) {\n element.innerHTML = ''\n element.appendChild(content)\n }\n } else {\n element.textContent = content.textContent\n }\n\n return\n }\n\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.allowList, this.config.sanitizeFn)\n }\n\n element.innerHTML = content\n } else {\n element.textContent = content\n }\n }\n\n getTitle() {\n let title = this._element.getAttribute('data-bs-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function' ?\n this.config.title.call(this._element) :\n this.config.title\n }\n\n return title\n }\n\n updateAttachment(attachment) {\n if (attachment === 'right') {\n return 'end'\n }\n\n if (attachment === 'left') {\n return 'start'\n }\n\n return attachment\n }\n\n // Private\n\n _initializeOnDelegatedTarget(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.get(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(event.delegateTarget, this._getDelegateConfig())\n Data.set(event.delegateTarget, dataKey, context)\n }\n\n return context\n }\n\n _getOffset() {\n const { offset } = this.config\n\n if (typeof offset === 'string') {\n return offset.split(',').map(val => Number.parseInt(val, 10))\n }\n\n if (typeof offset === 'function') {\n return popperData => offset(popperData, this._element)\n }\n\n return offset\n }\n\n _getPopperConfig(attachment) {\n const defaultBsPopperConfig = {\n placement: attachment,\n modifiers: [\n {\n name: 'flip',\n options: {\n altBoundary: true,\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: 'onChange',\n enabled: true,\n phase: 'afterWrite',\n fn: data => this._handlePopperPlacementChange(data)\n }\n ],\n onFirstUpdate: data => {\n if (data.options.placement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n }\n }\n\n return {\n ...defaultBsPopperConfig,\n ...(typeof this.config.popperConfig === 'function' ? this.config.popperConfig(defaultBsPopperConfig) : this.config.popperConfig)\n }\n }\n\n _addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${this.updateAttachment(attachment)}`)\n }\n\n _getContainer() {\n if (this.config.container === false) {\n return document.body\n }\n\n if (isElement(this.config.container)) {\n return this.config.container\n }\n\n return SelectorEngine.findOne(this.config.container)\n }\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach(trigger => {\n if (trigger === 'click') {\n EventHandler.on(this._element, this.constructor.Event.CLICK, this.config.selector, event => this.toggle(event))\n } else if (trigger !== TRIGGER_MANUAL) {\n const eventIn = trigger === TRIGGER_HOVER ?\n this.constructor.Event.MOUSEENTER :\n this.constructor.Event.FOCUSIN\n const eventOut = trigger === TRIGGER_HOVER ?\n this.constructor.Event.MOUSELEAVE :\n this.constructor.Event.FOCUSOUT\n\n EventHandler.on(this._element, eventIn, this.config.selector, event => this._enter(event))\n EventHandler.on(this._element, eventOut, this.config.selector, event => this._leave(event))\n }\n })\n\n this._hideModalHandler = () => {\n if (this._element) {\n this.hide()\n }\n }\n\n EventHandler.on(this._element.closest(`.${CLASS_NAME_MODAL}`), 'hide.bs.modal', this._hideModalHandler)\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const title = this._element.getAttribute('title')\n const originalTitleType = typeof this._element.getAttribute('data-bs-original-title')\n\n if (title || originalTitleType !== 'string') {\n this._element.setAttribute('data-bs-original-title', title || '')\n if (title && !this._element.getAttribute('aria-label') && !this._element.textContent) {\n this._element.setAttribute('aria-label', title)\n }\n\n this._element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n context = this._initializeOnDelegatedTarget(event, context)\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER\n ] = true\n }\n\n if (context.getTipElement().classList.contains(CLASS_NAME_SHOW) || context._hoverState === HOVER_STATE_SHOW) {\n context._hoverState = HOVER_STATE_SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n context = this._initializeOnDelegatedTarget(event, context)\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER\n ] = context._element.contains(event.relatedTarget)\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this._element)\n\n Object.keys(dataAttributes).forEach(dataAttr => {\n if (DISALLOWED_ATTRIBUTES.has(dataAttr)) {\n delete dataAttributes[dataAttr]\n }\n })\n\n if (config && typeof config.container === 'object' && config.container.jquery) {\n config.container = config.container[0]\n }\n\n config = {\n ...this.constructor.Default,\n ...dataAttributes,\n ...(typeof config === 'object' && config ? config : {})\n }\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 typeCheckConfig(NAME, config, this.constructor.DefaultType)\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.allowList, config.sanitizeFn)\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n _handlePopperPlacementChange(popperData) {\n const { state } = popperData\n\n if (!state) {\n return\n }\n\n this.tip = state.elements.popper\n this._cleanTipClass()\n this._addAttachmentClass(this._getAttachment(state.placement))\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.get(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n }\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 * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Tooltip to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(NAME, Tooltip)\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { defineJQueryPlugin } from './util/index'\nimport Data from './dom/data'\nimport SelectorEngine from './dom/selector-engine'\nimport Tooltip from './tooltip'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'popover'\nconst DATA_KEY = 'bs.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-popover'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst Default = {\n ...Tooltip.Default,\n placement: 'right',\n offset: [0, 8],\n trigger: 'click',\n content: '',\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}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content: '(string|element|function)'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_TITLE = '.popover-header'\nconst SELECTOR_CONTENT = '.popover-body'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Popover extends Tooltip {\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n setContent() {\n const tip = this.getTipElement()\n\n // we use append for html objects to maintain js events\n this.setElementContent(SelectorEngine.findOne(SELECTOR_TITLE, tip), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this._element)\n }\n\n this.setElementContent(SelectorEngine.findOne(SELECTOR_CONTENT, tip), content)\n\n tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW)\n }\n\n // Private\n\n _addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${this.updateAttachment(attachment)}`)\n }\n\n _getContent() {\n return this._element.getAttribute('data-bs-content') || this.config.content\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.get(this, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n Data.set(this, DATA_KEY, data)\n }\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 * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Popover to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(NAME, Popover)\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n defineJQueryPlugin,\n getSelectorFromElement,\n getUID,\n isElement,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollspy'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n offset: 10,\n method: 'auto',\n target: ''\n}\n\nconst DefaultType = {\n offset: 'number',\n method: 'string',\n target: '(string|element)'\n}\n\nconst EVENT_ACTIVATE = `activate${EVENT_KEY}`\nconst EVENT_SCROLL = `scroll${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_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_DROPDOWN = '.dropdown'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\n\nconst METHOD_OFFSET = 'offset'\nconst METHOD_POSITION = 'position'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy extends BaseComponent {\n constructor(element, config) {\n super(element)\n this._scrollElement = this._element.tagName === 'BODY' ? window : this._element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${SELECTOR_NAV_LINKS}, ${this._config.target} ${SELECTOR_LIST_ITEMS}, ${this._config.target} .${CLASS_NAME_DROPDOWN_ITEM}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n EventHandler.on(this._scrollElement, EVENT_SCROLL, () => this._process())\n\n this.refresh()\n this._process()\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window ?\n METHOD_OFFSET :\n METHOD_POSITION\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod :\n this._config.method\n\n const offsetBase = offsetMethod === METHOD_POSITION ?\n this._getScrollTop() :\n 0\n\n this._offsets = []\n this._targets = []\n this._scrollHeight = this._getScrollHeight()\n\n const targets = SelectorEngine.find(this._selector)\n\n targets.map(element => {\n const targetSelector = getSelectorFromElement(element)\n const target = targetSelector ? SelectorEngine.findOne(targetSelector) : null\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n return [\n Manipulator[offsetMethod](target).top + offsetBase,\n targetSelector\n ]\n }\n }\n\n return null\n })\n .filter(item => item)\n .sort((a, b) => a[0] - b[0])\n .forEach(item => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n super.dispose()\n EventHandler.off(this._scrollElement, EVENT_KEY)\n\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (typeof config.target !== 'string' && isElement(config.target)) {\n let { id } = config.target\n if (!id) {\n id = getUID(NAME)\n config.target.id = id\n }\n\n config.target = `#${id}`\n }\n\n typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window ?\n this._scrollElement.pageYOffset :\n this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window ?\n window.innerHeight :\n this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n for (let i = this._offsets.length; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector.split(',')\n .map(selector => `${selector}[data-bs-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const link = SelectorEngine.findOne(queries.join(','))\n\n if (link.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) {\n SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE, link.closest(SELECTOR_DROPDOWN))\n .classList.add(CLASS_NAME_ACTIVE)\n\n link.classList.add(CLASS_NAME_ACTIVE)\n } else {\n // Set triggered link as active\n link.classList.add(CLASS_NAME_ACTIVE)\n\n SelectorEngine.parents(link, SELECTOR_NAV_LIST_GROUP)\n .forEach(listGroup => {\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 SelectorEngine.prev(listGroup, `${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`)\n .forEach(item => item.classList.add(CLASS_NAME_ACTIVE))\n\n // Handle special case when .nav-link is inside .nav-item\n SelectorEngine.prev(listGroup, SELECTOR_NAV_ITEMS)\n .forEach(navItem => {\n SelectorEngine.children(navItem, SELECTOR_NAV_LINKS)\n .forEach(item => item.classList.add(CLASS_NAME_ACTIVE))\n })\n })\n }\n\n EventHandler.trigger(this._scrollElement, EVENT_ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n SelectorEngine.find(this._selector)\n .filter(node => node.classList.contains(CLASS_NAME_ACTIVE))\n .forEach(node => node.classList.remove(CLASS_NAME_ACTIVE))\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.get(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n }\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 * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n SelectorEngine.find(SELECTOR_DATA_SPY)\n .forEach(spy => new ScrollSpy(spy, Manipulator.getDataAttributes(spy)))\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .ScrollSpy to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(NAME, ScrollSpy)\n\nexport default ScrollSpy\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n defineJQueryPlugin,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isDisabled,\n reflow\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tab'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\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}`\n\nconst CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_UL = ':scope > li > .active'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"tab\"], [data-bs-toggle=\"pill\"], [data-bs-toggle=\"list\"]'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\nconst SELECTOR_DROPDOWN_ACTIVE_CHILD = ':scope > .dropdown-menu .active'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tab extends BaseComponent {\n // Getters\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n show() {\n if ((this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n this._element.classList.contains(CLASS_NAME_ACTIVE)) ||\n isDisabled(this._element)) {\n return\n }\n\n let previous\n const target = getElementFromSelector(this._element)\n const listElement = this._element.closest(SELECTOR_NAV_LIST_GROUP)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE\n previous = SelectorEngine.find(itemSelector, listElement)\n previous = previous[previous.length - 1]\n }\n\n const hideEvent = previous ?\n EventHandler.trigger(previous, EVENT_HIDE, {\n relatedTarget: this._element\n }) :\n null\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, {\n relatedTarget: previous\n })\n\n if (showEvent.defaultPrevented || (hideEvent !== null && hideEvent.defaultPrevented)) {\n return\n }\n\n this._activate(this._element, listElement)\n\n const complete = () => {\n EventHandler.trigger(previous, EVENT_HIDDEN, {\n relatedTarget: this._element\n })\n EventHandler.trigger(this._element, EVENT_SHOWN, {\n relatedTarget: previous\n })\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n // Private\n\n _activate(element, container, callback) {\n const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ?\n SelectorEngine.find(SELECTOR_ACTIVE_UL, container) :\n SelectorEngine.children(container, SELECTOR_ACTIVE)\n\n const active = activeElements[0]\n const isTransitioning = callback && (active && active.classList.contains(CLASS_NAME_FADE))\n\n const complete = () => this._transitionComplete(element, active, callback)\n\n if (active && isTransitioning) {\n const transitionDuration = getTransitionDurationFromElement(active)\n active.classList.remove(CLASS_NAME_SHOW)\n\n EventHandler.one(active, 'transitionend', complete)\n emulateTransitionEnd(active, transitionDuration)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n active.classList.remove(CLASS_NAME_ACTIVE)\n\n const dropdownChild = SelectorEngine.findOne(SELECTOR_DROPDOWN_ACTIVE_CHILD, active.parentNode)\n\n if (dropdownChild) {\n dropdownChild.classList.remove(CLASS_NAME_ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n element.classList.add(CLASS_NAME_ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n reflow(element)\n\n if (element.classList.contains(CLASS_NAME_FADE)) {\n element.classList.add(CLASS_NAME_SHOW)\n }\n\n if (element.parentNode && element.parentNode.classList.contains(CLASS_NAME_DROPDOWN_MENU)) {\n const dropdownElement = element.closest(SELECTOR_DROPDOWN)\n\n if (dropdownElement) {\n SelectorEngine.find(SELECTOR_DROPDOWN_TOGGLE)\n .forEach(dropdown => dropdown.classList.add(CLASS_NAME_ACTIVE))\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Data.get(this, DATA_KEY) || new Tab(this)\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 * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault()\n\n const data = Data.get(this, DATA_KEY) || new Tab(this)\n data.show()\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Tab to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(NAME, Tab)\n\nexport default Tab\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n defineJQueryPlugin,\n emulateTransitionEnd,\n getTransitionDurationFromElement,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'toast'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_CLICK_DISMISS = `click.dismiss${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'\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\nconst SELECTOR_DATA_DISMISS = '[data-bs-dismiss=\"toast\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n }\n\n // Getters\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get Default() {\n return Default\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\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 this._element.classList.add(CLASS_NAME_SHOW)\n\n EventHandler.trigger(this._element, EVENT_SHOWN)\n\n if (this._config.autohide) {\n this._timeout = setTimeout(() => {\n this.hide()\n }, this._config.delay)\n }\n }\n\n this._element.classList.remove(CLASS_NAME_HIDE)\n reflow(this._element)\n this._element.classList.add(CLASS_NAME_SHOWING)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, 'transitionend', complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n hide() {\n if (!this._element.classList.contains(CLASS_NAME_SHOW)) {\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)\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n }\n\n this._element.classList.remove(CLASS_NAME_SHOW)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, 'transitionend', complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n dispose() {\n this._clearTimeout()\n\n if (this._element.classList.contains(CLASS_NAME_SHOW)) {\n this._element.classList.remove(CLASS_NAME_SHOW)\n }\n\n EventHandler.off(this._element, EVENT_CLICK_DISMISS)\n\n super.dispose()\n this._config = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...(typeof config === 'object' && config ? config : {})\n }\n\n typeCheckConfig(NAME, config, this.constructor.DefaultType)\n\n return config\n }\n\n _setListeners() {\n EventHandler.on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, () => this.hide())\n }\n\n _clearTimeout() {\n clearTimeout(this._timeout)\n this._timeout = null\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.get(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new Toast(this, _config)\n }\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 * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Toast to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(NAME, Toast)\n\nexport default Toast\n"]}
\ No newline at end of file diff --git a/dist/js/bootstrap.js b/dist/js/bootstrap.js index 1d6c166ef..d5a0b5b70 100644 --- a/dist/js/bootstrap.js +++ b/dist/js/bootstrap.js @@ -1,71 +1,49 @@ /*! - * Bootstrap v5.0.0-alpha3 (https://getbootstrap.com/) - * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) + * Bootstrap v5.0.0-beta3 (https://getbootstrap.com/) + * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) */ (function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('popper.js')) : - typeof define === 'function' && define.amd ? define(['popper.js'], factory) : + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('@popperjs/core')) : + typeof define === 'function' && define.amd ? define(['@popperjs/core'], factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.bootstrap = factory(global.Popper)); }(this, (function (Popper) { 'use strict'; - function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } - - var Popper__default = /*#__PURE__*/_interopDefaultLegacy(Popper); - - function _defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) descriptor.writable = true; - Object.defineProperty(target, descriptor.key, descriptor); + function _interopNamespace(e) { + if (e && e.__esModule) return e; + var n = Object.create(null); + if (e) { + Object.keys(e).forEach(function (k) { + if (k !== 'default') { + var d = Object.getOwnPropertyDescriptor(e, k); + Object.defineProperty(n, k, d.get ? d : { + enumerable: true, + get: function () { + return e[k]; + } + }); + } + }); } + n['default'] = e; + return Object.freeze(n); } - function _createClass(Constructor, protoProps, staticProps) { - if (protoProps) _defineProperties(Constructor.prototype, protoProps); - if (staticProps) _defineProperties(Constructor, staticProps); - return Constructor; - } - - function _extends() { - _extends = Object.assign || function (target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i]; - - for (var key in source) { - if (Object.prototype.hasOwnProperty.call(source, key)) { - target[key] = source[key]; - } - } - } - - return target; - }; - - return _extends.apply(this, arguments); - } - - function _inheritsLoose(subClass, superClass) { - subClass.prototype = Object.create(superClass.prototype); - subClass.prototype.constructor = subClass; - subClass.__proto__ = superClass; - } + var Popper__namespace = /*#__PURE__*/_interopNamespace(Popper); /** * -------------------------------------------------------------------------- - * Bootstrap (v5.0.0-alpha3): util/index.js + * Bootstrap (v5.0.0-beta3): util/index.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ - var MAX_UID = 1000000; - var MILLISECONDS_MULTIPLIER = 1000; - var TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp) + const MAX_UID = 1000000; + const MILLISECONDS_MULTIPLIER = 1000; + const TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp) - var toType = function toType(obj) { + const toType = obj => { if (obj === null || obj === undefined) { - return "" + obj; + return `${obj}`; } return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase(); @@ -77,7 +55,7 @@ */ - var getUID = function getUID(prefix) { + const getUID = prefix => { do { prefix += Math.floor(Math.random() * MAX_UID); } while (document.getElementById(prefix)); @@ -85,19 +63,32 @@ return prefix; }; - var getSelector = function getSelector(element) { - var selector = element.getAttribute('data-bs-target'); + const getSelector = element => { + let selector = element.getAttribute('data-bs-target'); if (!selector || selector === '#') { - var hrefAttr = element.getAttribute('href'); + let hrefAttr = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes, + // so everything starting with `#` or `.`. If a "real" URL is used as the selector, + // `document.querySelector` will rightfully complain it is invalid. + // See https://github.com/twbs/bootstrap/issues/32273 + + if (!hrefAttr || !hrefAttr.includes('#') && !hrefAttr.startsWith('.')) { + return null; + } // Just in case some CMS puts out a full URL with the anchor appended + + + if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) { + hrefAttr = '#' + hrefAttr.split('#')[1]; + } + selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null; } return selector; }; - var getSelectorFromElement = function getSelectorFromElement(element) { - var selector = getSelector(element); + const getSelectorFromElement = element => { + const selector = getSelector(element); if (selector) { return document.querySelector(selector) ? selector : null; @@ -106,23 +97,23 @@ return null; }; - var getElementFromSelector = function getElementFromSelector(element) { - var selector = getSelector(element); + const getElementFromSelector = element => { + const selector = getSelector(element); return selector ? document.querySelector(selector) : null; }; - var getTransitionDurationFromElement = function getTransitionDurationFromElement(element) { + const getTransitionDurationFromElement = element => { if (!element) { return 0; } // Get transition-duration of the element - var _window$getComputedSt = window.getComputedStyle(element), - transitionDuration = _window$getComputedSt.transitionDuration, - transitionDelay = _window$getComputedSt.transitionDelay; - - var floatTransitionDuration = Number.parseFloat(transitionDuration); - var floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found + let { + transitionDuration, + transitionDelay + } = window.getComputedStyle(element); + const floatTransitionDuration = Number.parseFloat(transitionDuration); + const floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found if (!floatTransitionDuration && !floatTransitionDelay) { return 0; @@ -134,18 +125,16 @@ return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER; }; - var triggerTransitionEnd = function triggerTransitionEnd(element) { + const triggerTransitionEnd = element => { element.dispatchEvent(new Event(TRANSITION_END)); }; - var isElement = function isElement(obj) { - return (obj[0] || obj).nodeType; - }; + const isElement = obj => (obj[0] || obj).nodeType; - var emulateTransitionEnd = function emulateTransitionEnd(element, duration) { - var called = false; - var durationPadding = 5; - var emulatedDuration = duration + durationPadding; + const emulateTransitionEnd = (element, duration) => { + let called = false; + const durationPadding = 5; + const emulatedDuration = duration + durationPadding; function listener() { called = true; @@ -153,47 +142,63 @@ } element.addEventListener(TRANSITION_END, listener); - setTimeout(function () { + setTimeout(() => { if (!called) { triggerTransitionEnd(element); } }, emulatedDuration); }; - var typeCheckConfig = function typeCheckConfig(componentName, config, configTypes) { - Object.keys(configTypes).forEach(function (property) { - var expectedTypes = configTypes[property]; - var value = config[property]; - var valueType = value && isElement(value) ? 'element' : toType(value); + const typeCheckConfig = (componentName, config, configTypes) => { + Object.keys(configTypes).forEach(property => { + const expectedTypes = configTypes[property]; + const value = config[property]; + const valueType = value && isElement(value) ? 'element' : toType(value); if (!new RegExp(expectedTypes).test(valueType)) { - throw new Error(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\".")); + throw new TypeError(`${componentName.toUpperCase()}: ` + `Option "${property}" provided type "${valueType}" ` + `but expected type "${expectedTypes}".`); } }); }; - var isVisible = function isVisible(element) { + const isVisible = element => { if (!element) { return false; } if (element.style && element.parentNode && element.parentNode.style) { - var elementStyle = getComputedStyle(element); - var parentNodeStyle = getComputedStyle(element.parentNode); + const elementStyle = getComputedStyle(element); + const parentNodeStyle = getComputedStyle(element.parentNode); return elementStyle.display !== 'none' && parentNodeStyle.display !== 'none' && elementStyle.visibility !== 'hidden'; } return false; }; - var findShadowRoot = function findShadowRoot(element) { + const isDisabled = element => { + if (!element || element.nodeType !== Node.ELEMENT_NODE) { + return true; + } + + if (element.classList.contains('disabled')) { + return true; + } + + if (typeof element.disabled !== 'undefined') { + return element.disabled; + } + + return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false'; + }; + + const findShadowRoot = element => { if (!document.documentElement.attachShadow) { return null; } // Can find the shadow root otherwise it'll return the document if (typeof element.getRootNode === 'function') { - var root = element.getRootNode(); + const root = element.getRootNode(); return root instanceof ShadowRoot ? root : null; } @@ -209,17 +214,14 @@ return findShadowRoot(element.parentNode); }; - var noop = function noop() { - return function () {}; - }; + const noop = () => function () {}; - var reflow = function reflow(element) { - return element.offsetHeight; - }; + const reflow = element => element.offsetHeight; - var getjQuery = function getjQuery() { - var _window = window, - jQuery = _window.jQuery; + const getjQuery = () => { + const { + jQuery + } = window; if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) { return jQuery; @@ -228,7 +230,7 @@ return null; }; - var onDOMContentLoaded = function onDOMContentLoaded(callback) { + const onDOMContentLoaded = callback => { if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', callback); } else { @@ -236,11 +238,29 @@ } }; - var isRTL = document.documentElement.dir === 'rtl'; + const isRTL = () => document.documentElement.dir === 'rtl'; + + const defineJQueryPlugin = (name, plugin) => { + onDOMContentLoaded(() => { + const $ = getjQuery(); + /* istanbul ignore if */ + + if ($) { + const JQUERY_NO_CONFLICT = $.fn[name]; + $.fn[name] = plugin.jQueryInterface; + $.fn[name].Constructor = plugin; + + $.fn[name].noConflict = () => { + $.fn[name] = JQUERY_NO_CONFLICT; + return plugin.jQueryInterface; + }; + } + }); + }; /** * -------------------------------------------------------------------------- - * Bootstrap (v5.0.0-alpha3): dom/data.js + * Bootstrap (v5.0.0-beta3): dom/data.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -250,64 +270,51 @@ * Constants * ------------------------------------------------------------------------ */ - var mapData = function () { - var storeData = {}; - var id = 1; - return { - set: function set(element, key, data) { - if (typeof element.bsKey === 'undefined') { - element.bsKey = { - key: key, - id: id - }; - id++; - } + const elementMap = new Map(); + var Data = { + set(element, key, instance) { + if (!elementMap.has(element)) { + elementMap.set(element, new Map()); + } - storeData[element.bsKey.id] = data; - }, - get: function get(element, key) { - if (!element || typeof element.bsKey === 'undefined') { - return null; - } + const instanceMap = elementMap.get(element); // make it clear we only want one instance per element + // can be removed later when multiple key/instances are fine to be used - var keyProperties = element.bsKey; + if (!instanceMap.has(key) && instanceMap.size !== 0) { + // eslint-disable-next-line no-console + console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(instanceMap.keys())[0]}.`); + return; + } - if (keyProperties.key === key) { - return storeData[keyProperties.id]; - } + instanceMap.set(key, instance); + }, - return null; - }, - delete: function _delete(element, key) { - if (typeof element.bsKey === 'undefined') { - return; - } + get(element, key) { + if (elementMap.has(element)) { + return elementMap.get(element).get(key) || null; + } - var keyProperties = element.bsKey; + return null; + }, - if (keyProperties.key === key) { - delete storeData[keyProperties.id]; - delete element.bsKey; - } + remove(element, key) { + if (!elementMap.has(element)) { + return; } - }; - }(); - var Data = { - setData: function setData(instance, key, data) { - mapData.set(instance, key, data); - }, - getData: function getData(instance, key) { - return mapData.get(instance, key); - }, - removeData: function removeData(instance, key) { - mapData.delete(instance, key); + const instanceMap = elementMap.get(element); + instanceMap.delete(key); // free up element references if there are no instances left for an element + + if (instanceMap.size === 0) { + elementMap.delete(element); + } } + }; /** * -------------------------------------------------------------------------- - * Bootstrap (v5.0.0-alpha3): dom/event-handler.js + * Bootstrap (v5.0.0-beta3): dom/event-handler.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -317,17 +324,17 @@ * ------------------------------------------------------------------------ */ - var namespaceRegex = /[^.]*(?=\..*)\.|.*/; - var stripNameRegex = /\..*/; - var stripUidRegex = /::\d+$/; - var eventRegistry = {}; // Events storage + const namespaceRegex = /[^.]*(?=\..*)\.|.*/; + const stripNameRegex = /\..*/; + const stripUidRegex = /::\d+$/; + const eventRegistry = {}; // Events storage - var uidEvent = 1; - var customEvents = { + let uidEvent = 1; + const customEvents = { mouseenter: 'mouseover', mouseleave: 'mouseout' }; - var nativeEvents = new Set(['click', 'dblclick', 'mouseup', 'mousedown', 'contextmenu', 'mousewheel', 'DOMMouseScroll', 'mouseover', 'mouseout', 'mousemove', 'selectstart', 'selectend', 'keydown', 'keypress', 'keyup', 'orientationchange', 'touchstart', 'touchmove', 'touchend', 'touchcancel', 'pointerdown', 'pointermove', 'pointerup', 'pointerleave', 'pointercancel', 'gesturestart', 'gesturechange', 'gestureend', 'focus', 'blur', 'change', 'reset', 'select', 'submit', 'focusin', 'focusout', 'load', 'unload', 'beforeunload', 'resize', 'move', 'DOMContentLoaded', 'readystatechange', 'error', 'abort', 'scroll']); + const nativeEvents = new Set(['click', 'dblclick', 'mouseup', 'mousedown', 'contextmenu', 'mousewheel', 'DOMMouseScroll', 'mouseover', 'mouseout', 'mousemove', 'selectstart', 'selectend', 'keydown', 'keypress', 'keyup', 'orientationchange', 'touchstart', 'touchmove', 'touchend', 'touchcancel', 'pointerdown', 'pointermove', 'pointerup', 'pointerleave', 'pointercancel', 'gesturestart', 'gesturechange', 'gestureend', 'focus', 'blur', 'change', 'reset', 'select', 'submit', 'focusin', 'focusout', 'load', 'unload', 'beforeunload', 'resize', 'move', 'DOMContentLoaded', 'readystatechange', 'error', 'abort', 'scroll']); /** * ------------------------------------------------------------------------ * Private methods @@ -335,11 +342,11 @@ */ function getUidEvent(element, uid) { - return uid && uid + "::" + uidEvent++ || element.uidEvent || uidEvent++; + return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++; } function getEvent(element) { - var uid = getUidEvent(element); + const uid = getUidEvent(element); element.uidEvent = uid; eventRegistry[uid] = eventRegistry[uid] || {}; return eventRegistry[uid]; @@ -359,14 +366,17 @@ function bootstrapDelegationHandler(element, selector, fn) { return function handler(event) { - var domElements = element.querySelectorAll(selector); + const domElements = element.querySelectorAll(selector); - for (var target = event.target; target && target !== this; target = target.parentNode) { - for (var i = domElements.length; i--;) { + for (let { + target + } = event; target && target !== this; target = target.parentNode) { + for (let i = domElements.length; i--;) { if (domElements[i] === target) { event.delegateTarget = target; if (handler.oneOff) { + // eslint-disable-next-line unicorn/consistent-destructuring EventHandler.off(element, event.type, fn); } @@ -380,15 +390,11 @@ }; } - function findHandler(events, handler, delegationSelector) { - if (delegationSelector === void 0) { - delegationSelector = null; - } - - var uidEventList = Object.keys(events); + function findHandler(events, handler, delegationSelector = null) { + const uidEventList = Object.keys(events); - for (var i = 0, len = uidEventList.length; i < len; i++) { - var event = events[uidEventList[i]]; + for (let i = 0, len = uidEventList.length; i < len; i++) { + const event = events[uidEventList[i]]; if (event.originalHandler === handler && event.delegationSelector === delegationSelector) { return event; @@ -399,17 +405,17 @@ } function normalizeParams(originalTypeEvent, handler, delegationFn) { - var delegation = typeof handler === 'string'; - var originalHandler = delegation ? delegationFn : handler; // allow to get the native events from namespaced events ('click.bs.button' --> 'click') + const delegation = typeof handler === 'string'; + const originalHandler = delegation ? delegationFn : handler; // allow to get the native events from namespaced events ('click.bs.button' --> 'click') - var typeEvent = originalTypeEvent.replace(stripNameRegex, ''); - var custom = customEvents[typeEvent]; + let typeEvent = originalTypeEvent.replace(stripNameRegex, ''); + const custom = customEvents[typeEvent]; if (custom) { typeEvent = custom; } - var isNative = nativeEvents.has(typeEvent); + const isNative = nativeEvents.has(typeEvent); if (!isNative) { typeEvent = originalTypeEvent; @@ -428,22 +434,18 @@ delegationFn = null; } - var _normalizeParams = normalizeParams(originalTypeEvent, handler, delegationFn), - delegation = _normalizeParams[0], - originalHandler = _normalizeParams[1], - typeEvent = _normalizeParams[2]; - - var events = getEvent(element); - var handlers = events[typeEvent] || (events[typeEvent] = {}); - var previousFn = findHandler(handlers, originalHandler, delegation ? handler : null); + const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn); + const events = getEvent(element); + const handlers = events[typeEvent] || (events[typeEvent] = {}); + const previousFn = findHandler(handlers, originalHandler, delegation ? handler : null); if (previousFn) { previousFn.oneOff = previousFn.oneOff && oneOff; return; } - var uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, '')); - var fn = delegation ? bootstrapDelegationHandler(element, handler, delegationFn) : bootstrapHandler(element, handler); + const uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, '')); + const fn = delegation ? bootstrapDelegationHandler(element, handler, delegationFn) : bootstrapHandler(element, handler); fn.delegationSelector = delegation ? handler : null; fn.originalHandler = originalHandler; fn.oneOff = oneOff; @@ -453,7 +455,7 @@ } function removeHandler(element, events, typeEvent, handler, delegationSelector) { - var fn = findHandler(events[typeEvent], handler, delegationSelector); + const fn = findHandler(events[typeEvent], handler, delegationSelector); if (!fn) { return; @@ -464,35 +466,33 @@ } function removeNamespacedHandlers(element, events, typeEvent, namespace) { - var storeElementEvent = events[typeEvent] || {}; - Object.keys(storeElementEvent).forEach(function (handlerKey) { + const storeElementEvent = events[typeEvent] || {}; + Object.keys(storeElementEvent).forEach(handlerKey => { if (handlerKey.includes(namespace)) { - var event = storeElementEvent[handlerKey]; + const event = storeElementEvent[handlerKey]; removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector); } }); } - var EventHandler = { - on: function on(element, event, handler, delegationFn) { + const EventHandler = { + on(element, event, handler, delegationFn) { addHandler(element, event, handler, delegationFn, false); }, - one: function one(element, event, handler, delegationFn) { + + one(element, event, handler, delegationFn) { addHandler(element, event, handler, delegationFn, true); }, - off: function off(element, originalTypeEvent, handler, delegationFn) { + + off(element, originalTypeEvent, handler, delegationFn) { if (typeof originalTypeEvent !== 'string' || !element) { return; } - var _normalizeParams2 = normalizeParams(originalTypeEvent, handler, delegationFn), - delegation = _normalizeParams2[0], - originalHandler = _normalizeParams2[1], - typeEvent = _normalizeParams2[2]; - - var inNamespace = typeEvent !== originalTypeEvent; - var events = getEvent(element); - var isNamespace = originalTypeEvent.startsWith('.'); + const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn); + const inNamespace = typeEvent !== originalTypeEvent; + const events = getEvent(element); + const isNamespace = originalTypeEvent.startsWith('.'); if (typeof originalHandler !== 'undefined') { // Simplest case: handler is passed, remove that listener ONLY. @@ -505,35 +505,36 @@ } if (isNamespace) { - Object.keys(events).forEach(function (elementEvent) { + Object.keys(events).forEach(elementEvent => { removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1)); }); } - var storeElementEvent = events[typeEvent] || {}; - Object.keys(storeElementEvent).forEach(function (keyHandlers) { - var handlerKey = keyHandlers.replace(stripUidRegex, ''); + const storeElementEvent = events[typeEvent] || {}; + Object.keys(storeElementEvent).forEach(keyHandlers => { + const handlerKey = keyHandlers.replace(stripUidRegex, ''); if (!inNamespace || originalTypeEvent.includes(handlerKey)) { - var event = storeElementEvent[keyHandlers]; + const event = storeElementEvent[keyHandlers]; removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector); } }); }, - trigger: function trigger(element, event, args) { + + trigger(element, event, args) { if (typeof event !== 'string' || !element) { return null; } - var $ = getjQuery(); - var typeEvent = event.replace(stripNameRegex, ''); - var inNamespace = event !== typeEvent; - var isNative = nativeEvents.has(typeEvent); - var jQueryEvent; - var bubbles = true; - var nativeDispatch = true; - var defaultPrevented = false; - var evt = null; + const $ = getjQuery(); + const typeEvent = event.replace(stripNameRegex, ''); + const inNamespace = event !== typeEvent; + const isNative = nativeEvents.has(typeEvent); + let jQueryEvent; + let bubbles = true; + let nativeDispatch = true; + let defaultPrevented = false; + let evt = null; if (inNamespace && $) { jQueryEvent = $.Event(event, args); @@ -548,18 +549,19 @@ evt.initEvent(typeEvent, bubbles, true); } else { evt = new CustomEvent(event, { - bubbles: bubbles, + bubbles, cancelable: true }); } // merge custom information in our event if (typeof args !== 'undefined') { - Object.keys(args).forEach(function (key) { + Object.keys(args).forEach(key => { Object.defineProperty(evt, key, { - get: function get() { + get() { return args[key]; } + }); }); } @@ -578,86 +580,92 @@ return evt; } + }; /** + * -------------------------------------------------------------------------- + * Bootstrap (v5.0.0-beta3): base-component.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + /** * ------------------------------------------------------------------------ * Constants * ------------------------------------------------------------------------ */ - var VERSION = '5.0.0-alpha3'; + const VERSION = '5.0.0-beta3'; + + class BaseComponent { + constructor(element) { + element = typeof element === 'string' ? document.querySelector(element) : element; - var BaseComponent = /*#__PURE__*/function () { - function BaseComponent(element) { if (!element) { return; } this._element = element; - Data.setData(element, this.constructor.DATA_KEY, this); + Data.set(this._element, this.constructor.DATA_KEY, this); } - var _proto = BaseComponent.prototype; - - _proto.dispose = function dispose() { - Data.removeData(this._element, this.constructor.DATA_KEY); + dispose() { + Data.remove(this._element, this.constructor.DATA_KEY); this._element = null; } /** Static */ - ; - BaseComponent.getInstance = function getInstance(element) { - return Data.getData(element, this.DATA_KEY); - }; - _createClass(BaseComponent, null, [{ - key: "VERSION", - get: function get() { - return VERSION; - } - }]); + static getInstance(element) { + return Data.get(element, this.DATA_KEY); + } + + static get VERSION() { + return VERSION; + } - return BaseComponent; - }(); + } /** + * -------------------------------------------------------------------------- + * Bootstrap (v5.0.0-beta3): alert.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + /** * ------------------------------------------------------------------------ * Constants * ------------------------------------------------------------------------ */ - var NAME = 'alert'; - var DATA_KEY = 'bs.alert'; - var EVENT_KEY = "." + DATA_KEY; - var DATA_API_KEY = '.data-api'; - var SELECTOR_DISMISS = '[data-bs-dismiss="alert"]'; - var EVENT_CLOSE = "close" + EVENT_KEY; - var EVENT_CLOSED = "closed" + EVENT_KEY; - var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY; - var CLASSNAME_ALERT = 'alert'; - var CLASSNAME_FADE = 'fade'; - var CLASSNAME_SHOW = 'show'; + const NAME$b = 'alert'; + const DATA_KEY$b = 'bs.alert'; + const EVENT_KEY$b = `.${DATA_KEY$b}`; + const DATA_API_KEY$8 = '.data-api'; + const SELECTOR_DISMISS = '[data-bs-dismiss="alert"]'; + const EVENT_CLOSE = `close${EVENT_KEY$b}`; + const EVENT_CLOSED = `closed${EVENT_KEY$b}`; + const EVENT_CLICK_DATA_API$7 = `click${EVENT_KEY$b}${DATA_API_KEY$8}`; + const CLASS_NAME_ALERT = 'alert'; + const CLASS_NAME_FADE$5 = 'fade'; + const CLASS_NAME_SHOW$8 = 'show'; /** * ------------------------------------------------------------------------ * Class Definition * ------------------------------------------------------------------------ */ - var Alert = /*#__PURE__*/function (_BaseComponent) { - _inheritsLoose(Alert, _BaseComponent); - - function Alert() { - return _BaseComponent.apply(this, arguments) || this; - } + class Alert extends BaseComponent { + // Getters + static get DATA_KEY() { + return DATA_KEY$b; + } // Public - var _proto = Alert.prototype; - // Public - _proto.close = function close(element) { - var rootElement = element ? this._getRootElement(element) : this._element; + close(element) { + const rootElement = element ? this._getRootElement(element) : this._element; - var customEvent = this._triggerCloseEvent(rootElement); + const customEvent = this._triggerCloseEvent(rootElement); if (customEvent === null || customEvent.defaultPrevented) { return; @@ -665,46 +673,42 @@ this._removeElement(rootElement); } // Private - ; - _proto._getRootElement = function _getRootElement(element) { - return getElementFromSelector(element) || element.closest("." + CLASSNAME_ALERT); - }; - _proto._triggerCloseEvent = function _triggerCloseEvent(element) { - return EventHandler.trigger(element, EVENT_CLOSE); - }; + _getRootElement(element) { + return getElementFromSelector(element) || element.closest(`.${CLASS_NAME_ALERT}`); + } - _proto._removeElement = function _removeElement(element) { - var _this = this; + _triggerCloseEvent(element) { + return EventHandler.trigger(element, EVENT_CLOSE); + } - element.classList.remove(CLASSNAME_SHOW); + _removeElement(element) { + element.classList.remove(CLASS_NAME_SHOW$8); - if (!element.classList.contains(CLASSNAME_FADE)) { + if (!element.classList.contains(CLASS_NAME_FADE$5)) { this._destroyElement(element); return; } - var transitionDuration = getTransitionDurationFromElement(element); - EventHandler.one(element, TRANSITION_END, function () { - return _this._destroyElement(element); - }); + const transitionDuration = getTransitionDurationFromElement(element); + EventHandler.one(element, 'transitionend', () => this._destroyElement(element)); emulateTransitionEnd(element, transitionDuration); - }; + } - _proto._destroyElement = function _destroyElement(element) { + _destroyElement(element) { if (element.parentNode) { element.parentNode.removeChild(element); } EventHandler.trigger(element, EVENT_CLOSED); } // Static - ; - Alert.jQueryInterface = function jQueryInterface(config) { + + static jQueryInterface(config) { return this.each(function () { - var data = Data.getData(this, DATA_KEY); + let data = Data.get(this, DATA_KEY$b); if (!data) { data = new Alert(this); @@ -714,9 +718,9 @@ data[config](this); } }); - }; + } - Alert.handleDismiss = function handleDismiss(alertInstance) { + static handleDismiss(alertInstance) { return function (event) { if (event) { event.preventDefault(); @@ -724,18 +728,9 @@ alertInstance.close(this); }; - }; - - _createClass(Alert, null, [{ - key: "DATA_KEY", - // Getters - get: function get() { - return DATA_KEY; - } - }]); + } - return Alert; - }(BaseComponent); + } /** * ------------------------------------------------------------------------ * Data Api implementation @@ -743,7 +738,7 @@ */ - EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DISMISS, Alert.handleDismiss(new Alert())); + EventHandler.on(document, EVENT_CLICK_DATA_API$7, SELECTOR_DISMISS, Alert.handleDismiss(new Alert())); /** * ------------------------------------------------------------------------ * jQuery @@ -751,60 +746,49 @@ * add .Alert to jQuery only if jQuery is present */ - onDOMContentLoaded(function () { - var $ = getjQuery(); - /* istanbul ignore if */ - - if ($) { - var JQUERY_NO_CONFLICT = $.fn[NAME]; - $.fn[NAME] = Alert.jQueryInterface; - $.fn[NAME].Constructor = Alert; - - $.fn[NAME].noConflict = function () { - $.fn[NAME] = JQUERY_NO_CONFLICT; - return Alert.jQueryInterface; - }; - } - }); + defineJQueryPlugin(NAME$b, Alert); /** + * -------------------------------------------------------------------------- + * Bootstrap (v5.0.0-beta3): button.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + /** * ------------------------------------------------------------------------ * Constants * ------------------------------------------------------------------------ */ - var NAME$1 = 'button'; - var DATA_KEY$1 = 'bs.button'; - var EVENT_KEY$1 = "." + DATA_KEY$1; - var DATA_API_KEY$1 = '.data-api'; - var CLASS_NAME_ACTIVE = 'active'; - var SELECTOR_DATA_TOGGLE = '[data-bs-toggle="button"]'; - var EVENT_CLICK_DATA_API$1 = "click" + EVENT_KEY$1 + DATA_API_KEY$1; + const NAME$a = 'button'; + const DATA_KEY$a = 'bs.button'; + const EVENT_KEY$a = `.${DATA_KEY$a}`; + const DATA_API_KEY$7 = '.data-api'; + const CLASS_NAME_ACTIVE$3 = 'active'; + const SELECTOR_DATA_TOGGLE$5 = '[data-bs-toggle="button"]'; + const EVENT_CLICK_DATA_API$6 = `click${EVENT_KEY$a}${DATA_API_KEY$7}`; /** * ------------------------------------------------------------------------ * Class Definition * ------------------------------------------------------------------------ */ - var Button = /*#__PURE__*/function (_BaseComponent) { - _inheritsLoose(Button, _BaseComponent); - - function Button() { - return _BaseComponent.apply(this, arguments) || this; - } + class Button extends BaseComponent { + // Getters + static get DATA_KEY() { + return DATA_KEY$a; + } // Public - var _proto = Button.prototype; - // Public - _proto.toggle = function toggle() { + toggle() { // Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method - this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE)); + this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE$3)); } // Static - ; - Button.jQueryInterface = function jQueryInterface(config) { + + static jQueryInterface(config) { return this.each(function () { - var data = Data.getData(this, DATA_KEY$1); + let data = Data.get(this, DATA_KEY$a); if (!data) { data = new Button(this); @@ -814,18 +798,9 @@ data[config](); } }); - }; - - _createClass(Button, null, [{ - key: "DATA_KEY", - // Getters - get: function get() { - return DATA_KEY$1; - } - }]); + } - return Button; - }(BaseComponent); + } /** * ------------------------------------------------------------------------ * Data Api implementation @@ -833,10 +808,10 @@ */ - EventHandler.on(document, EVENT_CLICK_DATA_API$1, SELECTOR_DATA_TOGGLE, function (event) { + EventHandler.on(document, EVENT_CLICK_DATA_API$6, SELECTOR_DATA_TOGGLE$5, event => { event.preventDefault(); - var button = event.target.closest(SELECTOR_DATA_TOGGLE); - var data = Data.getData(button, DATA_KEY$1); + const button = event.target.closest(SELECTOR_DATA_TOGGLE$5); + let data = Data.get(button, DATA_KEY$a); if (!data) { data = new Button(button); @@ -851,25 +826,11 @@ * add .Button to jQuery only if jQuery is present */ - onDOMContentLoaded(function () { - var $ = getjQuery(); - /* istanbul ignore if */ - - if ($) { - var JQUERY_NO_CONFLICT = $.fn[NAME$1]; - $.fn[NAME$1] = Button.jQueryInterface; - $.fn[NAME$1].Constructor = Button; - - $.fn[NAME$1].noConflict = function () { - $.fn[NAME$1] = JQUERY_NO_CONFLICT; - return Button.jQueryInterface; - }; - } - }); + defineJQueryPlugin(NAME$a, Button); /** * -------------------------------------------------------------------------- - * Bootstrap (v5.0.0-alpha3): dom/manipulator.js + * Bootstrap (v5.0.0-beta3): dom/manipulator.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -894,54 +855,56 @@ } function normalizeDataKey(key) { - return key.replace(/[A-Z]/g, function (chr) { - return "-" + chr.toLowerCase(); - }); + return key.replace(/[A-Z]/g, chr => `-${chr.toLowerCase()}`); } - var Manipulator = { - setDataAttribute: function setDataAttribute(element, key, value) { - element.setAttribute("data-bs-" + normalizeDataKey(key), value); + const Manipulator = { + setDataAttribute(element, key, value) { + element.setAttribute(`data-bs-${normalizeDataKey(key)}`, value); }, - removeDataAttribute: function removeDataAttribute(element, key) { - element.removeAttribute("data-bs-" + normalizeDataKey(key)); + + removeDataAttribute(element, key) { + element.removeAttribute(`data-bs-${normalizeDataKey(key)}`); }, - getDataAttributes: function getDataAttributes(element) { + + getDataAttributes(element) { if (!element) { return {}; } - var attributes = {}; - Object.keys(element.dataset).filter(function (key) { - return key.startsWith('bs'); - }).forEach(function (key) { - var pureKey = key.replace(/^bs/, ''); + const attributes = {}; + Object.keys(element.dataset).filter(key => key.startsWith('bs')).forEach(key => { + let pureKey = key.replace(/^bs/, ''); pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length); attributes[pureKey] = normalizeData(element.dataset[key]); }); return attributes; }, - getDataAttribute: function getDataAttribute(element, key) { - return normalizeData(element.getAttribute("data-bs-" + normalizeDataKey(key))); + + getDataAttribute(element, key) { + return normalizeData(element.getAttribute(`data-bs-${normalizeDataKey(key)}`)); }, - offset: function offset(element) { - var rect = element.getBoundingClientRect(); + + offset(element) { + const rect = element.getBoundingClientRect(); return { top: rect.top + document.body.scrollTop, left: rect.left + document.body.scrollLeft }; }, - position: function position(element) { + + position(element) { return { top: element.offsetTop, left: element.offsetLeft }; } + }; /** * -------------------------------------------------------------------------- - * Bootstrap (v5.0.0-alpha3): dom/selector-engine.js + * Bootstrap (v5.0.0-beta3): dom/selector-engine.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -951,42 +914,26 @@ * Constants * ------------------------------------------------------------------------ */ - var NODE_TEXT = 3; - var SelectorEngine = { - matches: function matches(element, selector) { - return element.matches(selector); + const NODE_TEXT = 3; + const SelectorEngine = { + find(selector, element = document.documentElement) { + return [].concat(...Element.prototype.querySelectorAll.call(element, selector)); }, - find: function find(selector, element) { - var _ref; - - if (element === void 0) { - element = document.documentElement; - } - - return (_ref = []).concat.apply(_ref, Element.prototype.querySelectorAll.call(element, selector)); - }, - findOne: function findOne(selector, element) { - if (element === void 0) { - element = document.documentElement; - } + findOne(selector, element = document.documentElement) { return Element.prototype.querySelector.call(element, selector); }, - children: function children(element, selector) { - var _ref2; - var children = (_ref2 = []).concat.apply(_ref2, element.children); - - return children.filter(function (child) { - return child.matches(selector); - }); + children(element, selector) { + return [].concat(...element.children).filter(child => child.matches(selector)); }, - parents: function parents(element, selector) { - var parents = []; - var ancestor = element.parentNode; + + parents(element, selector) { + const parents = []; + let ancestor = element.parentNode; while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) { - if (this.matches(ancestor, selector)) { + if (ancestor.matches(selector)) { parents.push(ancestor); } @@ -995,8 +942,9 @@ return parents; }, - prev: function prev(element, selector) { - var previous = element.previousElementSibling; + + prev(element, selector) { + let previous = element.previousElementSibling; while (previous) { if (previous.matches(selector)) { @@ -1008,11 +956,12 @@ return []; }, - next: function next(element, selector) { - var next = element.nextElementSibling; + + next(element, selector) { + let next = element.nextElementSibling; while (next) { - if (this.matches(next, selector)) { + if (next.matches(selector)) { return [next]; } @@ -1021,24 +970,31 @@ return []; } + }; /** + * -------------------------------------------------------------------------- + * Bootstrap (v5.0.0-beta3): carousel.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + /** * ------------------------------------------------------------------------ * Constants * ------------------------------------------------------------------------ */ - var NAME$2 = 'carousel'; - var DATA_KEY$2 = 'bs.carousel'; - var EVENT_KEY$2 = "." + DATA_KEY$2; - var DATA_API_KEY$2 = '.data-api'; - var ARROW_LEFT_KEY = 'ArrowLeft'; - var ARROW_RIGHT_KEY = 'ArrowRight'; - var TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch + const NAME$9 = 'carousel'; + const DATA_KEY$9 = 'bs.carousel'; + const EVENT_KEY$9 = `.${DATA_KEY$9}`; + const DATA_API_KEY$6 = '.data-api'; + const ARROW_LEFT_KEY = 'ArrowLeft'; + const ARROW_RIGHT_KEY = 'ArrowRight'; + const TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch - var SWIPE_THRESHOLD = 40; - var Default = { + const SWIPE_THRESHOLD = 40; + const Default$8 = { interval: 5000, keyboard: true, slide: false, @@ -1046,7 +1002,7 @@ wrap: true, touch: true }; - var DefaultType = { + const DefaultType$8 = { interval: '(number|boolean)', keyboard: 'boolean', slide: '(boolean|string)', @@ -1054,99 +1010,98 @@ wrap: 'boolean', touch: 'boolean' }; - var DIRECTION_NEXT = 'next'; - var DIRECTION_PREV = 'prev'; - var DIRECTION_LEFT = 'left'; - var DIRECTION_RIGHT = 'right'; - var EVENT_SLIDE = "slide" + EVENT_KEY$2; - var EVENT_SLID = "slid" + EVENT_KEY$2; - var EVENT_KEYDOWN = "keydown" + EVENT_KEY$2; - var EVENT_MOUSEENTER = "mouseenter" + EVENT_KEY$2; - var EVENT_MOUSELEAVE = "mouseleave" + EVENT_KEY$2; - var EVENT_TOUCHSTART = "touchstart" + EVENT_KEY$2; - var EVENT_TOUCHMOVE = "touchmove" + EVENT_KEY$2; - var EVENT_TOUCHEND = "touchend" + EVENT_KEY$2; - var EVENT_POINTERDOWN = "pointerdown" + EVENT_KEY$2; - var EVENT_POINTERUP = "pointerup" + EVENT_KEY$2; - var EVENT_DRAG_START = "dragstart" + EVENT_KEY$2; - var EVENT_LOAD_DATA_API = "load" + EVENT_KEY$2 + DATA_API_KEY$2; - var EVENT_CLICK_DATA_API$2 = "click" + EVENT_KEY$2 + DATA_API_KEY$2; - var CLASS_NAME_CAROUSEL = 'carousel'; - var CLASS_NAME_ACTIVE$1 = 'active'; - var CLASS_NAME_SLIDE = 'slide'; - var CLASS_NAME_END = 'carousel-item-end'; - var CLASS_NAME_START = 'carousel-item-start'; - var CLASS_NAME_NEXT = 'carousel-item-next'; - var CLASS_NAME_PREV = 'carousel-item-prev'; - var CLASS_NAME_POINTER_EVENT = 'pointer-event'; - var SELECTOR_ACTIVE = '.active'; - var SELECTOR_ACTIVE_ITEM = '.active.carousel-item'; - var SELECTOR_ITEM = '.carousel-item'; - var SELECTOR_ITEM_IMG = '.carousel-item img'; - var SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev'; - var SELECTOR_INDICATORS = '.carousel-indicators'; - var SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]'; - var SELECTOR_DATA_RIDE = '[data-bs-ride="carousel"]'; - var PointerType = { - TOUCH: 'touch', - PEN: 'pen' - }; + const ORDER_NEXT = 'next'; + const ORDER_PREV = 'prev'; + const DIRECTION_LEFT = 'left'; + const DIRECTION_RIGHT = 'right'; + const EVENT_SLIDE = `slide${EVENT_KEY$9}`; + const EVENT_SLID = `slid${EVENT_KEY$9}`; + const EVENT_KEYDOWN = `keydown${EVENT_KEY$9}`; + const EVENT_MOUSEENTER = `mouseenter${EVENT_KEY$9}`; + const EVENT_MOUSELEAVE = `mouseleave${EVENT_KEY$9}`; + const EVENT_TOUCHSTART = `touchstart${EVENT_KEY$9}`; + const EVENT_TOUCHMOVE = `touchmove${EVENT_KEY$9}`; + const EVENT_TOUCHEND = `touchend${EVENT_KEY$9}`; + const EVENT_POINTERDOWN = `pointerdown${EVENT_KEY$9}`; + const EVENT_POINTERUP = `pointerup${EVENT_KEY$9}`; + const EVENT_DRAG_START = `dragstart${EVENT_KEY$9}`; + const EVENT_LOAD_DATA_API$2 = `load${EVENT_KEY$9}${DATA_API_KEY$6}`; + const EVENT_CLICK_DATA_API$5 = `click${EVENT_KEY$9}${DATA_API_KEY$6}`; + const CLASS_NAME_CAROUSEL = 'carousel'; + const CLASS_NAME_ACTIVE$2 = 'active'; + const CLASS_NAME_SLIDE = 'slide'; + const CLASS_NAME_END = 'carousel-item-end'; + const CLASS_NAME_START = 'carousel-item-start'; + const CLASS_NAME_NEXT = 'carousel-item-next'; + const CLASS_NAME_PREV = 'carousel-item-prev'; + const CLASS_NAME_POINTER_EVENT = 'pointer-event'; + const SELECTOR_ACTIVE$1 = '.active'; + const SELECTOR_ACTIVE_ITEM = '.active.carousel-item'; + const SELECTOR_ITEM = '.carousel-item'; + const SELECTOR_ITEM_IMG = '.carousel-item img'; + const SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev'; + const SELECTOR_INDICATORS = '.carousel-indicators'; + const SELECTOR_INDICATOR = '[data-bs-target]'; + const SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]'; + const SELECTOR_DATA_RIDE = '[data-bs-ride="carousel"]'; + const POINTER_TYPE_TOUCH = 'touch'; + const POINTER_TYPE_PEN = 'pen'; /** * ------------------------------------------------------------------------ * Class Definition * ------------------------------------------------------------------------ */ - var Carousel = /*#__PURE__*/function (_BaseComponent) { - _inheritsLoose(Carousel, _BaseComponent); - - function Carousel(element, config) { - var _this; - - _this = _BaseComponent.call(this, element) || this; - _this._items = null; - _this._interval = null; - _this._activeElement = null; - _this._isPaused = false; - _this._isSliding = false; - _this.touchTimeout = null; - _this.touchStartX = 0; - _this.touchDeltaX = 0; - _this._config = _this._getConfig(config); - _this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, _this._element); - _this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0; - _this._pointerEvent = Boolean(window.PointerEvent); - - _this._addEventListeners(); - - return _this; + class Carousel extends BaseComponent { + constructor(element, config) { + super(element); + this._items = null; + this._interval = null; + this._activeElement = null; + this._isPaused = false; + this._isSliding = false; + this.touchTimeout = null; + this.touchStartX = 0; + this.touchDeltaX = 0; + this._config = this._getConfig(config); + this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element); + this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0; + this._pointerEvent = Boolean(window.PointerEvent); + + this._addEventListeners(); } // Getters - var _proto = Carousel.prototype; + static get Default() { + return Default$8; + } + + static get DATA_KEY() { + return DATA_KEY$9; + } // Public + - // Public - _proto.next = function next() { + next() { if (!this._isSliding) { - this._slide(DIRECTION_NEXT); + this._slide(ORDER_NEXT); } - }; + } - _proto.nextWhenVisible = function nextWhenVisible() { + nextWhenVisible() { // Don't call next when the page isn't visible // or the carousel or its parent isn't visible if (!document.hidden && isVisible(this._element)) { this.next(); } - }; + } - _proto.prev = function prev() { + prev() { if (!this._isSliding) { - this._slide(DIRECTION_PREV); + this._slide(ORDER_PREV); } - }; + } - _proto.pause = function pause(event) { + pause(event) { if (!event) { this._isPaused = true; } @@ -1158,9 +1113,9 @@ clearInterval(this._interval); this._interval = null; - }; + } - _proto.cycle = function cycle(event) { + cycle(event) { if (!event) { this._isPaused = false; } @@ -1175,23 +1130,19 @@ this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval); } - }; - - _proto.to = function to(index) { - var _this2 = this; + } + to(index) { this._activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element); - var activeIndex = this._getItemIndex(this._activeElement); + const activeIndex = this._getItemIndex(this._activeElement); if (index > this._items.length - 1 || index < 0) { return; } if (this._isSliding) { - EventHandler.one(this._element, EVENT_SLID, function () { - return _this2.to(index); - }); + EventHandler.one(this._element, EVENT_SLID, () => this.to(index)); return; } @@ -1201,15 +1152,13 @@ return; } - var direction = index > activeIndex ? DIRECTION_NEXT : DIRECTION_PREV; + const order = index > activeIndex ? ORDER_NEXT : ORDER_PREV; - this._slide(direction, this._items[index]); - }; - - _proto.dispose = function dispose() { - _BaseComponent.prototype.dispose.call(this); + this._slide(order, this._items[index]); + } - EventHandler.off(this._element, EVENT_KEY$2); + dispose() { + EventHandler.off(this._element, EVENT_KEY$9); this._items = null; this._config = null; this._interval = null; @@ -1217,86 +1166,72 @@ this._isSliding = null; this._activeElement = null; this._indicatorsElement = null; + super.dispose(); } // Private - ; - _proto._getConfig = function _getConfig(config) { - config = _extends({}, Default, config); - typeCheckConfig(NAME$2, config, DefaultType); + + _getConfig(config) { + config = { ...Default$8, + ...config + }; + typeCheckConfig(NAME$9, config, DefaultType$8); return config; - }; + } - _proto._handleSwipe = function _handleSwipe() { - var absDeltax = Math.abs(this.touchDeltaX); + _handleSwipe() { + const absDeltax = Math.abs(this.touchDeltaX); if (absDeltax <= SWIPE_THRESHOLD) { return; } - var direction = absDeltax / this.touchDeltaX; - this.touchDeltaX = 0; // swipe left - - if (direction > 0) { - this.prev(); - } // swipe right + const direction = absDeltax / this.touchDeltaX; + this.touchDeltaX = 0; - - if (direction < 0) { - this.next(); + if (!direction) { + return; } - }; - _proto._addEventListeners = function _addEventListeners() { - var _this3 = this; + this._slide(direction > 0 ? DIRECTION_RIGHT : DIRECTION_LEFT); + } + _addEventListeners() { if (this._config.keyboard) { - EventHandler.on(this._element, EVENT_KEYDOWN, function (event) { - return _this3._keydown(event); - }); + EventHandler.on(this._element, EVENT_KEYDOWN, event => this._keydown(event)); } if (this._config.pause === 'hover') { - EventHandler.on(this._element, EVENT_MOUSEENTER, function (event) { - return _this3.pause(event); - }); - EventHandler.on(this._element, EVENT_MOUSELEAVE, function (event) { - return _this3.cycle(event); - }); + EventHandler.on(this._element, EVENT_MOUSEENTER, event => this.pause(event)); + EventHandler.on(this._element, EVENT_MOUSELEAVE, event => this.cycle(event)); } if (this._config.touch && this._touchSupported) { this._addTouchEventListeners(); } - }; - - _proto._addTouchEventListeners = function _addTouchEventListeners() { - var _this4 = this; + } - var start = function start(event) { - if (_this4._pointerEvent && PointerType[event.pointerType.toUpperCase()]) { - _this4.touchStartX = event.clientX; - } else if (!_this4._pointerEvent) { - _this4.touchStartX = event.touches[0].clientX; + _addTouchEventListeners() { + const start = event => { + if (this._pointerEvent && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH)) { + this.touchStartX = event.clientX; + } else if (!this._pointerEvent) { + this.touchStartX = event.touches[0].clientX; } }; - var move = function move(event) { + const move = event => { // ensure swiping with one touch and not pinching - if (event.touches && event.touches.length > 1) { - _this4.touchDeltaX = 0; - } else { - _this4.touchDeltaX = event.touches[0].clientX - _this4.touchStartX; - } + this.touchDeltaX = event.touches && event.touches.length > 1 ? 0 : event.touches[0].clientX - this.touchStartX; }; - var end = function end(event) { - if (_this4._pointerEvent && PointerType[event.pointerType.toUpperCase()]) { - _this4.touchDeltaX = event.clientX - _this4.touchStartX; + const end = event => { + if (this._pointerEvent && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH)) { + this.touchDeltaX = event.clientX - this.touchStartX; } - _this4._handleSwipe(); + this._handleSwipe(); - if (_this4._config.pause === 'hover') { + if (this._config.pause === 'hover') { // If it's a touch-enabled device, mouseenter/leave are fired as // part of the mouse compatibility events on first tap - the carousel // would stop cycling until user tapped out of it; @@ -1304,124 +1239,109 @@ // (as if it's the second time we tap on it, mouseenter compat event // is NOT fired) and after a timeout (to allow for mouse compatibility // events to fire) we explicitly restart cycling - _this4.pause(); + this.pause(); - if (_this4.touchTimeout) { - clearTimeout(_this4.touchTimeout); + if (this.touchTimeout) { + clearTimeout(this.touchTimeout); } - _this4.touchTimeout = setTimeout(function (event) { - return _this4.cycle(event); - }, TOUCHEVENT_COMPAT_WAIT + _this4._config.interval); + this.touchTimeout = setTimeout(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval); } }; - SelectorEngine.find(SELECTOR_ITEM_IMG, this._element).forEach(function (itemImg) { - EventHandler.on(itemImg, EVENT_DRAG_START, function (e) { - return e.preventDefault(); - }); + SelectorEngine.find(SELECTOR_ITEM_IMG, this._element).forEach(itemImg => { + EventHandler.on(itemImg, EVENT_DRAG_START, e => e.preventDefault()); }); if (this._pointerEvent) { - EventHandler.on(this._element, EVENT_POINTERDOWN, function (event) { - return start(event); - }); - EventHandler.on(this._element, EVENT_POINTERUP, function (event) { - return end(event); - }); + EventHandler.on(this._element, EVENT_POINTERDOWN, event => start(event)); + EventHandler.on(this._element, EVENT_POINTERUP, event => end(event)); this._element.classList.add(CLASS_NAME_POINTER_EVENT); } else { - EventHandler.on(this._element, EVENT_TOUCHSTART, function (event) { - return start(event); - }); - EventHandler.on(this._element, EVENT_TOUCHMOVE, function (event) { - return move(event); - }); - EventHandler.on(this._element, EVENT_TOUCHEND, function (event) { - return end(event); - }); + EventHandler.on(this._element, EVENT_TOUCHSTART, event => start(event)); + EventHandler.on(this._element, EVENT_TOUCHMOVE, event => move(event)); + EventHandler.on(this._element, EVENT_TOUCHEND, event => end(event)); } - }; + } - _proto._keydown = function _keydown(event) { + _keydown(event) { if (/input|textarea/i.test(event.target.tagName)) { return; } - switch (event.key) { - case ARROW_LEFT_KEY: - event.preventDefault(); - this.prev(); - break; + if (event.key === ARROW_LEFT_KEY) { + event.preventDefault(); - case ARROW_RIGHT_KEY: - event.preventDefault(); - this.next(); - break; + this._slide(DIRECTION_LEFT); + } else if (event.key === ARROW_RIGHT_KEY) { + event.preventDefault(); + + this._slide(DIRECTION_RIGHT); } - }; + } - _proto._getItemIndex = function _getItemIndex(element) { + _getItemIndex(element) { this._items = element && element.parentNode ? SelectorEngine.find(SELECTOR_ITEM, element.parentNode) : []; return this._items.indexOf(element); - }; + } - _proto._getItemByDirection = function _getItemByDirection(direction, activeElement) { - var isNextDirection = direction === DIRECTION_NEXT; - var isPrevDirection = direction === DIRECTION_PREV; + _getItemByOrder(order, activeElement) { + const isNext = order === ORDER_NEXT; + const isPrev = order === ORDER_PREV; - var activeIndex = this._getItemIndex(activeElement); + const activeIndex = this._getItemIndex(activeElement); - var lastItemIndex = this._items.length - 1; - var isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex === lastItemIndex; + const lastItemIndex = this._items.length - 1; + const isGoingToWrap = isPrev && activeIndex === 0 || isNext && activeIndex === lastItemIndex; if (isGoingToWrap && !this._config.wrap) { return activeElement; } - var delta = direction === DIRECTION_PREV ? -1 : 1; - var itemIndex = (activeIndex + delta) % this._items.length; + const delta = isPrev ? -1 : 1; + const itemIndex = (activeIndex + delta) % this._items.length; return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex]; - }; + } - _proto._triggerSlideEvent = function _triggerSlideEvent(relatedTarget, eventDirectionName) { - var targetIndex = this._getItemIndex(relatedTarget); + _triggerSlideEvent(relatedTarget, eventDirectionName) { + const targetIndex = this._getItemIndex(relatedTarget); - var fromIndex = this._getItemIndex(SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)); + const fromIndex = this._getItemIndex(SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)); return EventHandler.trigger(this._element, EVENT_SLIDE, { - relatedTarget: relatedTarget, + relatedTarget, direction: eventDirectionName, from: fromIndex, to: targetIndex }); - }; + } - _proto._setActiveIndicatorElement = function _setActiveIndicatorElement(element) { + _setActiveIndicatorElement(element) { if (this._indicatorsElement) { - var indicators = SelectorEngine.find(SELECTOR_ACTIVE, this._indicatorsElement); - - for (var i = 0; i < indicators.length; i++) { - indicators[i].classList.remove(CLASS_NAME_ACTIVE$1); - } - - var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)]; - - if (nextIndicator) { - nextIndicator.classList.add(CLASS_NAME_ACTIVE$1); + const activeIndicator = SelectorEngine.findOne(SELECTOR_ACTIVE$1, this._indicatorsElement); + activeIndicator.classList.remove(CLASS_NAME_ACTIVE$2); + activeIndicator.removeAttribute('aria-current'); + const indicators = SelectorEngine.find(SELECTOR_INDICATOR, this._indicatorsElement); + + for (let i = 0; i < indicators.length; i++) { + if (Number.parseInt(indicators[i].getAttribute('data-bs-slide-to'), 10) === this._getItemIndex(element)) { + indicators[i].classList.add(CLASS_NAME_ACTIVE$2); + indicators[i].setAttribute('aria-current', 'true'); + break; + } } } - }; + } - _proto._updateInterval = function _updateInterval() { - var element = this._activeElement || SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element); + _updateInterval() { + const element = this._activeElement || SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element); if (!element) { return; } - var elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10); + const elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10); if (elementInterval) { this._config.defaultInterval = this._config.defaultInterval || this._config.interval; @@ -1429,40 +1349,32 @@ } else { this._config.interval = this._config.defaultInterval || this._config.interval; } - }; + } - _proto._slide = function _slide(direction, element) { - var _this5 = this; + _slide(directionOrOrder, element) { + const order = this._directionToOrder(directionOrOrder); - var activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element); + const activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element); - var activeElementIndex = this._getItemIndex(activeElement); + const activeElementIndex = this._getItemIndex(activeElement); - var nextElement = element || activeElement && this._getItemByDirection(direction, activeElement); + const nextElement = element || this._getItemByOrder(order, activeElement); - var nextElementIndex = this._getItemIndex(nextElement); + const nextElementIndex = this._getItemIndex(nextElement); - var isCycling = Boolean(this._interval); - var directionalClassName; - var orderClassName; - var eventDirectionName; + const isCycling = Boolean(this._interval); + const isNext = order === ORDER_NEXT; + const directionalClassName = isNext ? CLASS_NAME_START : CLASS_NAME_END; + const orderClassName = isNext ? CLASS_NAME_NEXT : CLASS_NAME_PREV; - if (direction === DIRECTION_NEXT) { - directionalClassName = CLASS_NAME_START; - orderClassName = CLASS_NAME_NEXT; - eventDirectionName = DIRECTION_LEFT; - } else { - directionalClassName = CLASS_NAME_END; - orderClassName = CLASS_NAME_PREV; - eventDirectionName = DIRECTION_RIGHT; - } + const eventDirectionName = this._orderToDirection(order); - if (nextElement && nextElement.classList.contains(CLASS_NAME_ACTIVE$1)) { + if (nextElement && nextElement.classList.contains(CLASS_NAME_ACTIVE$2)) { this._isSliding = false; return; } - var slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName); + const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName); if (slideEvent.defaultPrevented) { return; @@ -1488,14 +1400,14 @@ reflow(nextElement); activeElement.classList.add(directionalClassName); nextElement.classList.add(directionalClassName); - var transitionDuration = getTransitionDurationFromElement(activeElement); - EventHandler.one(activeElement, TRANSITION_END, function () { + const transitionDuration = getTransitionDurationFromElement(activeElement); + EventHandler.one(activeElement, 'transitionend', () => { nextElement.classList.remove(directionalClassName, orderClassName); - nextElement.classList.add(CLASS_NAME_ACTIVE$1); - activeElement.classList.remove(CLASS_NAME_ACTIVE$1, orderClassName, directionalClassName); - _this5._isSliding = false; - setTimeout(function () { - EventHandler.trigger(_this5._element, EVENT_SLID, { + nextElement.classList.add(CLASS_NAME_ACTIVE$2); + activeElement.classList.remove(CLASS_NAME_ACTIVE$2, orderClassName, directionalClassName); + this._isSliding = false; + setTimeout(() => { + EventHandler.trigger(this._element, EVENT_SLID, { relatedTarget: nextElement, direction: eventDirectionName, from: activeElementIndex, @@ -1505,8 +1417,8 @@ }); emulateTransitionEnd(activeElement, transitionDuration); } else { - activeElement.classList.remove(CLASS_NAME_ACTIVE$1); - nextElement.classList.add(CLASS_NAME_ACTIVE$1); + activeElement.classList.remove(CLASS_NAME_ACTIVE$2); + nextElement.classList.add(CLASS_NAME_ACTIVE$2); this._isSliding = false; EventHandler.trigger(this._element, EVENT_SLID, { relatedTarget: nextElement, @@ -1519,19 +1431,46 @@ if (isCycling) { this.cycle(); } + } + + _directionToOrder(direction) { + if (![DIRECTION_RIGHT, DIRECTION_LEFT].includes(direction)) { + return direction; + } + + if (isRTL()) { + return direction === DIRECTION_RIGHT ? ORDER_PREV : ORDER_NEXT; + } + + return direction === DIRECTION_RIGHT ? ORDER_NEXT : ORDER_PREV; + } + + _orderToDirection(order) { + if (![ORDER_NEXT, ORDER_PREV].includes(order)) { + return order; + } + + if (isRTL()) { + return order === ORDER_NEXT ? DIRECTION_LEFT : DIRECTION_RIGHT; + } + + return order === ORDER_NEXT ? DIRECTION_RIGHT : DIRECTION_LEFT; } // Static - ; - Carousel.carouselInterface = function carouselInterface(element, config) { - var data = Data.getData(element, DATA_KEY$2); - var _config = _extends({}, Default, Manipulator.getDataAttributes(element)); + static carouselInterface(element, config) { + let data = Data.get(element, DATA_KEY$9); + let _config = { ...Default$8, + ...Manipulator.getDataAttributes(element) + }; if (typeof config === 'object') { - _config = _extends({}, _config, config); + _config = { ..._config, + ...config + }; } - var action = typeof config === 'string' ? config : _config.slide; + const action = typeof config === 'string' ? config : _config.slide; if (!data) { data = new Carousel(element, _config); @@ -1541,7 +1480,7 @@ data.to(config); } else if (typeof action === 'string') { if (typeof data[action] === 'undefined') { - throw new TypeError("No method named \"" + action + "\""); + throw new TypeError(`No method named "${action}"`); } data[action](); @@ -1549,24 +1488,25 @@ data.pause(); data.cycle(); } - }; + } - Carousel.jQueryInterface = function jQueryInterface(config) { + static jQueryInterface(config) { return this.each(function () { Carousel.carouselInterface(this, config); }); - }; + } - Carousel.dataApiClickHandler = function dataApiClickHandler(event) { - var target = getElementFromSelector(this); + static dataApiClickHandler(event) { + const target = getElementFromSelector(this); if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) { return; } - var config = _extends({}, Manipulator.getDataAttributes(target), Manipulator.getDataAttributes(this)); - - var slideIndex = this.getAttribute('data-bs-slide-to'); + const config = { ...Manipulator.getDataAttributes(target), + ...Manipulator.getDataAttributes(this) + }; + const slideIndex = this.getAttribute('data-bs-slide-to'); if (slideIndex) { config.interval = false; @@ -1575,26 +1515,13 @@ Carousel.carouselInterface(target, config); if (slideIndex) { - Data.getData(target, DATA_KEY$2).to(slideIndex); + Data.get(target, DATA_KEY$9).to(slideIndex); } event.preventDefault(); - }; - - _createClass(Carousel, null, [{ - key: "Default", - get: function get() { - return Default; - } - }, { - key: "DATA_KEY", - get: function get() { - return DATA_KEY$2; - } - }]); + } - return Carousel; - }(BaseComponent); + } /** * ------------------------------------------------------------------------ * Data Api implementation @@ -1602,12 +1529,12 @@ */ - EventHandler.on(document, EVENT_CLICK_DATA_API$2, SELECTOR_DATA_SLIDE, Carousel.dataApiClickHandler); - EventHandler.on(window, EVENT_LOAD_DATA_API, function () { - var carousels = SelectorEngine.find(SELECTOR_DATA_RIDE); + EventHandler.on(document, EVENT_CLICK_DATA_API$5, SELECTOR_DATA_SLIDE, Carousel.dataApiClickHandler); + EventHandler.on(window, EVENT_LOAD_DATA_API$2, () => { + const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE); - for (var i = 0, len = carousels.length; i < len; i++) { - Carousel.carouselInterface(carousels[i], Data.getData(carousels[i], DATA_KEY$2)); + for (let i = 0, len = carousels.length; i < len; i++) { + Carousel.carouselInterface(carousels[i], Data.get(carousels[i], DATA_KEY$9)); } }); /** @@ -1617,124 +1544,112 @@ * add .Carousel to jQuery only if jQuery is present */ - onDOMContentLoaded(function () { - var $ = getjQuery(); - /* istanbul ignore if */ - - if ($) { - var JQUERY_NO_CONFLICT = $.fn[NAME$2]; - $.fn[NAME$2] = Carousel.jQueryInterface; - $.fn[NAME$2].Constructor = Carousel; - - $.fn[NAME$2].noConflict = function () { - $.fn[NAME$2] = JQUERY_NO_CONFLICT; - return Carousel.jQueryInterface; - }; - } - }); + defineJQueryPlugin(NAME$9, Carousel); /** + * -------------------------------------------------------------------------- + * Bootstrap (v5.0.0-beta3): collapse.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + /** * ------------------------------------------------------------------------ * Constants * ------------------------------------------------------------------------ */ - var NAME$3 = 'collapse'; - var DATA_KEY$3 = 'bs.collapse'; - var EVENT_KEY$3 = "." + DATA_KEY$3; - var DATA_API_KEY$3 = '.data-api'; - var Default$1 = { + const NAME$8 = 'collapse'; + const DATA_KEY$8 = 'bs.collapse'; + const EVENT_KEY$8 = `.${DATA_KEY$8}`; + const DATA_API_KEY$5 = '.data-api'; + const Default$7 = { toggle: true, parent: '' }; - var DefaultType$1 = { + const DefaultType$7 = { toggle: 'boolean', parent: '(string|element)' }; - var EVENT_SHOW = "show" + EVENT_KEY$3; - var EVENT_SHOWN = "shown" + EVENT_KEY$3; - var EVENT_HIDE = "hide" + EVENT_KEY$3; - var EVENT_HIDDEN = "hidden" + EVENT_KEY$3; - var EVENT_CLICK_DATA_API$3 = "click" + EVENT_KEY$3 + DATA_API_KEY$3; - var CLASS_NAME_SHOW = 'show'; - var CLASS_NAME_COLLAPSE = 'collapse'; - var CLASS_NAME_COLLAPSING = 'collapsing'; - var CLASS_NAME_COLLAPSED = 'collapsed'; - var WIDTH = 'width'; - var HEIGHT = 'height'; - var SELECTOR_ACTIVES = '.show, .collapsing'; - var SELECTOR_DATA_TOGGLE$1 = '[data-bs-toggle="collapse"]'; + const EVENT_SHOW$5 = `show${EVENT_KEY$8}`; + const EVENT_SHOWN$5 = `shown${EVENT_KEY$8}`; + const EVENT_HIDE$5 = `hide${EVENT_KEY$8}`; + const EVENT_HIDDEN$5 = `hidden${EVENT_KEY$8}`; + const EVENT_CLICK_DATA_API$4 = `click${EVENT_KEY$8}${DATA_API_KEY$5}`; + const CLASS_NAME_SHOW$7 = 'show'; + const CLASS_NAME_COLLAPSE = 'collapse'; + const CLASS_NAME_COLLAPSING = 'collapsing'; + const CLASS_NAME_COLLAPSED = 'collapsed'; + const WIDTH = 'width'; + const HEIGHT = 'height'; + const SELECTOR_ACTIVES = '.show, .collapsing'; + const SELECTOR_DATA_TOGGLE$4 = '[data-bs-toggle="collapse"]'; /** * ------------------------------------------------------------------------ * Class Definition * ------------------------------------------------------------------------ */ - var Collapse = /*#__PURE__*/function (_BaseComponent) { - _inheritsLoose(Collapse, _BaseComponent); - - function Collapse(element, config) { - var _this; - - _this = _BaseComponent.call(this, element) || this; - _this._isTransitioning = false; - _this._config = _this._getConfig(config); - _this._triggerArray = SelectorEngine.find(SELECTOR_DATA_TOGGLE$1 + "[href=\"#" + element.id + "\"]," + (SELECTOR_DATA_TOGGLE$1 + "[data-bs-target=\"#" + element.id + "\"]")); - var toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE$1); + class Collapse extends BaseComponent { + constructor(element, config) { + super(element); + this._isTransitioning = false; + this._config = this._getConfig(config); + this._triggerArray = SelectorEngine.find(`${SELECTOR_DATA_TOGGLE$4}[href="#${this._element.id}"],` + `${SELECTOR_DATA_TOGGLE$4}[data-bs-target="#${this._element.id}"]`); + const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE$4); - for (var i = 0, len = toggleList.length; i < len; i++) { - var elem = toggleList[i]; - var selector = getSelectorFromElement(elem); - var filterElement = SelectorEngine.find(selector).filter(function (foundElem) { - return foundElem === element; - }); + for (let i = 0, len = toggleList.length; i < len; i++) { + const elem = toggleList[i]; + const selector = getSelectorFromElement(elem); + const filterElement = SelectorEngine.find(selector).filter(foundElem => foundElem === this._element); if (selector !== null && filterElement.length) { - _this._selector = selector; + this._selector = selector; - _this._triggerArray.push(elem); + this._triggerArray.push(elem); } } - _this._parent = _this._config.parent ? _this._getParent() : null; + this._parent = this._config.parent ? this._getParent() : null; - if (!_this._config.parent) { - _this._addAriaAndCollapsedClass(_this._element, _this._triggerArray); + if (!this._config.parent) { + this._addAriaAndCollapsedClass(this._element, this._triggerArray); } - if (_this._config.toggle) { - _this.toggle(); + if (this._config.toggle) { + this.toggle(); } - - return _this; } // Getters - var _proto = Collapse.prototype; + static get Default() { + return Default$7; + } + + static get DATA_KEY() { + return DATA_KEY$8; + } // Public - // Public - _proto.toggle = function toggle() { - if (this._element.classList.contains(CLASS_NAME_SHOW)) { + + toggle() { + if (this._element.classList.contains(CLASS_NAME_SHOW$7)) { this.hide(); } else { this.show(); } - }; - - _proto.show = function show() { - var _this2 = this; + } - if (this._isTransitioning || this._element.classList.contains(CLASS_NAME_SHOW)) { + show() { + if (this._isTransitioning || this._element.classList.contains(CLASS_NAME_SHOW$7)) { return; } - var actives; - var activesData; + let actives; + let activesData; if (this._parent) { - actives = SelectorEngine.find(SELECTOR_ACTIVES, this._parent).filter(function (elem) { - if (typeof _this2._config.parent === 'string') { - return elem.getAttribute('data-bs-parent') === _this2._config.parent; + actives = SelectorEngine.find(SELECTOR_ACTIVES, this._parent).filter(elem => { + if (typeof this._config.parent === 'string') { + return elem.getAttribute('data-bs-parent') === this._config.parent; } return elem.classList.contains(CLASS_NAME_COLLAPSE); @@ -1745,38 +1660,36 @@ } } - var container = SelectorEngine.findOne(this._selector); + const container = SelectorEngine.findOne(this._selector); if (actives) { - var tempActiveData = actives.find(function (elem) { - return container !== elem; - }); - activesData = tempActiveData ? Data.getData(tempActiveData, DATA_KEY$3) : null; + const tempActiveData = actives.find(elem => container !== elem); + activesData = tempActiveData ? Data.get(tempActiveData, DATA_KEY$8) : null; if (activesData && activesData._isTransitioning) { return; } } - var startEvent = EventHandler.trigger(this._element, EVENT_SHOW); + const startEvent = EventHandler.trigger(this._element, EVENT_SHOW$5); if (startEvent.defaultPrevented) { return; } if (actives) { - actives.forEach(function (elemActive) { + actives.forEach(elemActive => { if (container !== elemActive) { Collapse.collapseInterface(elemActive, 'hide'); } if (!activesData) { - Data.setData(elemActive, DATA_KEY$3, null); + Data.set(elemActive, DATA_KEY$8, null); } }); } - var dimension = this._getDimension(); + const dimension = this._getDimension(); this._element.classList.remove(CLASS_NAME_COLLAPSE); @@ -1785,7 +1698,7 @@ this._element.style[dimension] = 0; if (this._triggerArray.length) { - this._triggerArray.forEach(function (element) { + this._triggerArray.forEach(element => { element.classList.remove(CLASS_NAME_COLLAPSED); element.setAttribute('aria-expanded', true); }); @@ -1793,56 +1706,52 @@ this.setTransitioning(true); - var complete = function complete() { - _this2._element.classList.remove(CLASS_NAME_COLLAPSING); - - _this2._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW); + const complete = () => { + this._element.classList.remove(CLASS_NAME_COLLAPSING); - _this2._element.style[dimension] = ''; + this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7); - _this2.setTransitioning(false); - - EventHandler.trigger(_this2._element, EVENT_SHOWN); + this._element.style[dimension] = ''; + this.setTransitioning(false); + EventHandler.trigger(this._element, EVENT_SHOWN$5); }; - var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1); - var scrollSize = "scroll" + capitalizedDimension; - var transitionDuration = getTransitionDurationFromElement(this._element); - EventHandler.one(this._element, TRANSITION_END, complete); + const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1); + const scrollSize = `scroll${capitalizedDimension}`; + const transitionDuration = getTransitionDurationFromElement(this._element); + EventHandler.one(this._element, 'transitionend', complete); emulateTransitionEnd(this._element, transitionDuration); - this._element.style[dimension] = this._element[scrollSize] + "px"; - }; - - _proto.hide = function hide() { - var _this3 = this; + this._element.style[dimension] = `${this._element[scrollSize]}px`; + } - if (this._isTransitioning || !this._element.classList.contains(CLASS_NAME_SHOW)) { + hide() { + if (this._isTransitioning || !this._element.classList.contains(CLASS_NAME_SHOW$7)) { return; } - var startEvent = EventHandler.trigger(this._element, EVENT_HIDE); + const startEvent = EventHandler.trigger(this._element, EVENT_HIDE$5); if (startEvent.defaultPrevented) { return; } - var dimension = this._getDimension(); + const dimension = this._getDimension(); - this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + "px"; + this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`; reflow(this._element); this._element.classList.add(CLASS_NAME_COLLAPSING); - this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW); + this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7); - var triggerArrayLength = this._triggerArray.length; + const triggerArrayLength = this._triggerArray.length; if (triggerArrayLength > 0) { - for (var i = 0; i < triggerArrayLength; i++) { - var trigger = this._triggerArray[i]; - var elem = getElementFromSelector(trigger); + for (let i = 0; i < triggerArrayLength; i++) { + const trigger = this._triggerArray[i]; + const elem = getElementFromSelector(trigger); - if (elem && !elem.classList.contains(CLASS_NAME_SHOW)) { + if (elem && !elem.classList.contains(CLASS_NAME_SHOW$7)) { trigger.classList.add(CLASS_NAME_COLLAPSED); trigger.setAttribute('aria-expanded', false); } @@ -1851,52 +1760,53 @@ this.setTransitioning(true); - var complete = function complete() { - _this3.setTransitioning(false); + const complete = () => { + this.setTransitioning(false); - _this3._element.classList.remove(CLASS_NAME_COLLAPSING); + this._element.classList.remove(CLASS_NAME_COLLAPSING); - _this3._element.classList.add(CLASS_NAME_COLLAPSE); + this._element.classList.add(CLASS_NAME_COLLAPSE); - EventHandler.trigger(_this3._element, EVENT_HIDDEN); + EventHandler.trigger(this._element, EVENT_HIDDEN$5); }; this._element.style[dimension] = ''; - var transitionDuration = getTransitionDurationFromElement(this._element); - EventHandler.one(this._element, TRANSITION_END, complete); + const transitionDuration = getTransitionDurationFromElement(this._element); + EventHandler.one(this._element, 'transitionend', complete); emulateTransitionEnd(this._element, transitionDuration); - }; + } - _proto.setTransitioning = function setTransitioning(isTransitioning) { + setTransitioning(isTransitioning) { this._isTransitioning = isTransitioning; - }; - - _proto.dispose = function dispose() { - _BaseComponent.prototype.dispose.call(this); + } + dispose() { + super.dispose(); this._config = null; this._parent = null; this._triggerArray = null; this._isTransitioning = null; } // Private - ; - _proto._getConfig = function _getConfig(config) { - config = _extends({}, Default$1, config); + + _getConfig(config) { + config = { ...Default$7, + ...config + }; config.toggle = Boolean(config.toggle); // Coerce string values - typeCheckConfig(NAME$3, config, DefaultType$1); + typeCheckConfig(NAME$8, config, DefaultType$7); return config; - }; + } - _proto._getDimension = function _getDimension() { + _getDimension() { return this._element.classList.contains(WIDTH) ? WIDTH : HEIGHT; - }; - - _proto._getParent = function _getParent() { - var _this4 = this; + } - var parent = this._config.parent; + _getParent() { + let { + parent + } = this._config; if (isElement(parent)) { // it's a jQuery object @@ -1907,22 +1817,22 @@ parent = SelectorEngine.findOne(parent); } - var selector = SELECTOR_DATA_TOGGLE$1 + "[data-bs-parent=\"" + parent + "\"]"; - SelectorEngine.find(selector, parent).forEach(function (element) { - var selected = getElementFromSelector(element); + const selector = `${SELECTOR_DATA_TOGGLE$4}[data-bs-parent="${parent}"]`; + SelectorEngine.find(selector, parent).forEach(element => { + const selected = getElementFromSelector(element); - _this4._addAriaAndCollapsedClass(selected, [element]); + this._addAriaAndCollapsedClass(selected, [element]); }); return parent; - }; + } - _proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) { + _addAriaAndCollapsedClass(element, triggerArray) { if (!element || !triggerArray.length) { return; } - var isOpen = element.classList.contains(CLASS_NAME_SHOW); - triggerArray.forEach(function (elem) { + const isOpen = element.classList.contains(CLASS_NAME_SHOW$7); + triggerArray.forEach(elem => { if (isOpen) { elem.classList.remove(CLASS_NAME_COLLAPSED); } else { @@ -1932,12 +1842,14 @@ elem.setAttribute('aria-expanded', isOpen); }); } // Static - ; - Collapse.collapseInterface = function collapseInterface(element, config) { - var data = Data.getData(element, DATA_KEY$3); - var _config = _extends({}, Default$1, Manipulator.getDataAttributes(element), typeof config === 'object' && config ? config : {}); + static collapseInterface(element, config) { + let data = Data.get(element, DATA_KEY$8); + const _config = { ...Default$7, + ...Manipulator.getDataAttributes(element), + ...(typeof config === 'object' && config ? config : {}) + }; if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) { _config.toggle = false; @@ -1949,33 +1861,20 @@ if (typeof config === 'string') { if (typeof data[config] === 'undefined') { - throw new TypeError("No method named \"" + config + "\""); + throw new TypeError(`No method named "${config}"`); } data[config](); } - }; + } - Collapse.jQueryInterface = function jQueryInterface(config) { + static jQueryInterface(config) { return this.each(function () { Collapse.collapseInterface(this, config); }); - }; - - _createClass(Collapse, null, [{ - key: "Default", - get: function get() { - return Default$1; - } - }, { - key: "DATA_KEY", - get: function get() { - return DATA_KEY$3; - } - }]); + } - return Collapse; - }(BaseComponent); + } /** * ------------------------------------------------------------------------ * Data Api implementation @@ -1983,18 +1882,18 @@ */ - EventHandler.on(document, EVENT_CLICK_DATA_API$3, SELECTOR_DATA_TOGGLE$1, function (event) { + EventHandler.on(document, EVENT_CLICK_DATA_API$4, SELECTOR_DATA_TOGGLE$4, function (event) { // preventDefault only for <a> elements (which change the URL) not inside the collapsible element - if (event.target.tagName === 'A') { + if (event.target.tagName === 'A' || event.delegateTarget && event.delegateTarget.tagName === 'A') { event.preventDefault(); } - var triggerData = Manipulator.getDataAttributes(this); - var selector = getSelectorFromElement(this); - var selectorElements = SelectorEngine.find(selector); - selectorElements.forEach(function (element) { - var data = Data.getData(element, DATA_KEY$3); - var config; + const triggerData = Manipulator.getDataAttributes(this); + const selector = getSelectorFromElement(this); + const selectorElements = SelectorEngine.find(selector); + selectorElements.forEach(element => { + const data = Data.get(element, DATA_KEY$8); + let config; if (data) { // update parent attribute @@ -2018,82 +1917,69 @@ * add .Collapse to jQuery only if jQuery is present */ - onDOMContentLoaded(function () { - var $ = getjQuery(); - /* istanbul ignore if */ - - if ($) { - var JQUERY_NO_CONFLICT = $.fn[NAME$3]; - $.fn[NAME$3] = Collapse.jQueryInterface; - $.fn[NAME$3].Constructor = Collapse; - - $.fn[NAME$3].noConflict = function () { - $.fn[NAME$3] = JQUERY_NO_CONFLICT; - return Collapse.jQueryInterface; - }; - } - }); + defineJQueryPlugin(NAME$8, Collapse); /** + * -------------------------------------------------------------------------- + * Bootstrap (v5.0.0-beta3): dropdown.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + /** * ------------------------------------------------------------------------ * Constants * ------------------------------------------------------------------------ */ - var NAME$4 = 'dropdown'; - var DATA_KEY$4 = 'bs.dropdown'; - var EVENT_KEY$4 = "." + DATA_KEY$4; - var DATA_API_KEY$4 = '.data-api'; - var ESCAPE_KEY = 'Escape'; - var SPACE_KEY = 'Space'; - var TAB_KEY = 'Tab'; - var ARROW_UP_KEY = 'ArrowUp'; - var ARROW_DOWN_KEY = 'ArrowDown'; - var RIGHT_MOUSE_BUTTON = 2; // MouseEvent.button value for the secondary button, usually the right button - - var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEY + "|" + ARROW_DOWN_KEY + "|" + ESCAPE_KEY); - var EVENT_HIDE$1 = "hide" + EVENT_KEY$4; - var EVENT_HIDDEN$1 = "hidden" + EVENT_KEY$4; - var EVENT_SHOW$1 = "show" + EVENT_KEY$4; - var EVENT_SHOWN$1 = "shown" + EVENT_KEY$4; - var EVENT_CLICK = "click" + EVENT_KEY$4; - var EVENT_CLICK_DATA_API$4 = "click" + EVENT_KEY$4 + DATA_API_KEY$4; - var EVENT_KEYDOWN_DATA_API = "keydown" + EVENT_KEY$4 + DATA_API_KEY$4; - var EVENT_KEYUP_DATA_API = "keyup" + EVENT_KEY$4 + DATA_API_KEY$4; - var CLASS_NAME_DISABLED = 'disabled'; - var CLASS_NAME_SHOW$1 = 'show'; - var CLASS_NAME_DROPUP = 'dropup'; - var CLASS_NAME_DROPEND = 'dropend'; - var CLASS_NAME_DROPSTART = 'dropstart'; - var CLASS_NAME_MENUEND = 'dropdown-menu-end'; - var CLASS_NAME_NAVBAR = 'navbar'; - var CLASS_NAME_POSITION_STATIC = 'position-static'; - var SELECTOR_DATA_TOGGLE$2 = '[data-bs-toggle="dropdown"]'; - var SELECTOR_FORM_CHILD = '.dropdown form'; - var SELECTOR_MENU = '.dropdown-menu'; - var SELECTOR_NAVBAR_NAV = '.navbar-nav'; - var SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'; - var PLACEMENT_TOP = isRTL ? 'top-end' : 'top-start'; - var PLACEMENT_TOPEND = isRTL ? 'top-start' : 'top-end'; - var PLACEMENT_BOTTOM = isRTL ? 'bottom-end' : 'bottom-start'; - var PLACEMENT_BOTTOMEND = isRTL ? 'bottom-start' : 'bottom-end'; - var PLACEMENT_RIGHT = isRTL ? 'left-start' : 'right-start'; - var PLACEMENT_LEFT = isRTL ? 'right-start' : 'left-start'; - var Default$2 = { - offset: 0, - flip: true, - boundary: 'scrollParent', + const NAME$7 = 'dropdown'; + const DATA_KEY$7 = 'bs.dropdown'; + const EVENT_KEY$7 = `.${DATA_KEY$7}`; + const DATA_API_KEY$4 = '.data-api'; + const ESCAPE_KEY$2 = 'Escape'; + const SPACE_KEY = 'Space'; + const TAB_KEY = 'Tab'; + const ARROW_UP_KEY = 'ArrowUp'; + const ARROW_DOWN_KEY = 'ArrowDown'; + const RIGHT_MOUSE_BUTTON = 2; // MouseEvent.button value for the secondary button, usually the right button + + const REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEY}|${ARROW_DOWN_KEY}|${ESCAPE_KEY$2}`); + const EVENT_HIDE$4 = `hide${EVENT_KEY$7}`; + const EVENT_HIDDEN$4 = `hidden${EVENT_KEY$7}`; + const EVENT_SHOW$4 = `show${EVENT_KEY$7}`; + const EVENT_SHOWN$4 = `shown${EVENT_KEY$7}`; + const EVENT_CLICK = `click${EVENT_KEY$7}`; + const EVENT_CLICK_DATA_API$3 = `click${EVENT_KEY$7}${DATA_API_KEY$4}`; + const EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY$7}${DATA_API_KEY$4}`; + const EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY$7}${DATA_API_KEY$4}`; + const CLASS_NAME_DISABLED = 'disabled'; + const CLASS_NAME_SHOW$6 = 'show'; + const CLASS_NAME_DROPUP = 'dropup'; + const CLASS_NAME_DROPEND = 'dropend'; + const CLASS_NAME_DROPSTART = 'dropstart'; + const CLASS_NAME_NAVBAR = 'navbar'; + const SELECTOR_DATA_TOGGLE$3 = '[data-bs-toggle="dropdown"]'; + const SELECTOR_MENU = '.dropdown-menu'; + const SELECTOR_NAVBAR_NAV = '.navbar-nav'; + const SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'; + const PLACEMENT_TOP = isRTL() ? 'top-end' : 'top-start'; + const PLACEMENT_TOPEND = isRTL() ? 'top-start' : 'top-end'; + const PLACEMENT_BOTTOM = isRTL() ? 'bottom-end' : 'bottom-start'; + const PLACEMENT_BOTTOMEND = isRTL() ? 'bottom-start' : 'bottom-end'; + const PLACEMENT_RIGHT = isRTL() ? 'left-start' : 'right-start'; + const PLACEMENT_LEFT = isRTL() ? 'right-start' : 'left-start'; + const Default$6 = { + offset: [0, 2], + boundary: 'clippingParents', reference: 'toggle', display: 'dynamic', popperConfig: null }; - var DefaultType$2 = { - offset: '(number|string|function)', - flip: 'boolean', + const DefaultType$6 = { + offset: '(array|string|function)', boundary: '(string|element)', - reference: '(string|element)', + reference: '(string|element|object)', display: 'string', - popperConfig: '(null|object)' + popperConfig: '(null|object|function)' }; /** * ------------------------------------------------------------------------ @@ -2101,33 +1987,37 @@ * ------------------------------------------------------------------------ */ - var Dropdown = /*#__PURE__*/function (_BaseComponent) { - _inheritsLoose(Dropdown, _BaseComponent); + class Dropdown extends BaseComponent { + constructor(element, config) { + super(element); + this._popper = null; + this._config = this._getConfig(config); + this._menu = this._getMenuElement(); + this._inNavbar = this._detectNavbar(); - function Dropdown(element, config) { - var _this; + this._addEventListeners(); + } // Getters - _this = _BaseComponent.call(this, element) || this; - _this._popper = null; - _this._config = _this._getConfig(config); - _this._menu = _this._getMenuElement(); - _this._inNavbar = _this._detectNavbar(); - _this._addEventListeners(); + static get Default() { + return Default$6; + } - return _this; - } // Getters + static get DefaultType() { + return DefaultType$6; + } + static get DATA_KEY() { + return DATA_KEY$7; + } // Public - var _proto = Dropdown.prototype; - // Public - _proto.toggle = function toggle() { + toggle() { if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED)) { return; } - var isActive = this._element.classList.contains(CLASS_NAME_SHOW$1); + const isActive = this._element.classList.contains(CLASS_NAME_SHOW$6); Dropdown.clearMenus(); @@ -2136,30 +2026,32 @@ } this.show(); - }; + } - _proto.show = function show() { - if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || this._menu.classList.contains(CLASS_NAME_SHOW$1)) { + show() { + if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || this._menu.classList.contains(CLASS_NAME_SHOW$6)) { return; } - var parent = Dropdown.getParentFromElement(this._element); - var relatedTarget = { + const parent = Dropdown.getParentFromElement(this._element); + const relatedTarget = { relatedTarget: this._element }; - var showEvent = EventHandler.trigger(this._element, EVENT_SHOW$1, relatedTarget); + const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$4, relatedTarget); if (showEvent.defaultPrevented) { return; } // Totally disable Popper for Dropdowns in Navbar - if (!this._inNavbar) { - if (typeof Popper__default['default'] === 'undefined') { + if (this._inNavbar) { + Manipulator.setDataAttribute(this._menu, 'popper', 'none'); + } else { + if (typeof Popper__namespace === 'undefined') { throw new TypeError('Bootstrap\'s dropdowns require Popper (https://popper.js.org)'); } - var referenceElement = this._element; + let referenceElement = this._element; if (this._config.reference === 'parent') { referenceElement = parent; @@ -2169,16 +2061,18 @@ if (typeof this._config.reference.jquery !== 'undefined') { referenceElement = this._config.reference[0]; } - } // If boundary is not `scrollParent`, then set position to `static` - // to allow the menu to "escape" the scroll parent's boundaries - // https://github.com/twbs/bootstrap/issues/24251 + } else if (typeof this._config.reference === 'object') { + referenceElement = this._config.reference; + } + const popperConfig = this._getPopperConfig(); - if (this._config.boundary !== 'scrollParent') { - parent.classList.add(CLASS_NAME_POSITION_STATIC); - } + const isDisplayStatic = popperConfig.modifiers.find(modifier => modifier.name === 'applyStyles' && modifier.enabled === false); + this._popper = Popper__namespace.createPopper(referenceElement, this._menu, popperConfig); - this._popper = new Popper__default['default'](referenceElement, this._menu, this._getPopperConfig()); + if (isDisplayStatic) { + Manipulator.setDataAttribute(this._menu, 'popper', 'static'); + } } // If this is a touch-enabled device we add extra // empty mouseover listeners to the body's immediate children; // only needed because of broken event delegation on iOS @@ -2186,34 +2080,29 @@ if ('ontouchstart' in document.documentElement && !parent.closest(SELECTOR_NAVBAR_NAV)) { - var _ref; - - (_ref = []).concat.apply(_ref, document.body.children).forEach(function (elem) { - return EventHandler.on(elem, 'mouseover', null, noop()); - }); + [].concat(...document.body.children).forEach(elem => EventHandler.on(elem, 'mouseover', null, noop())); } this._element.focus(); this._element.setAttribute('aria-expanded', true); - this._menu.classList.toggle(CLASS_NAME_SHOW$1); + this._menu.classList.toggle(CLASS_NAME_SHOW$6); - this._element.classList.toggle(CLASS_NAME_SHOW$1); + this._element.classList.toggle(CLASS_NAME_SHOW$6); - EventHandler.trigger(parent, EVENT_SHOWN$1, relatedTarget); - }; + EventHandler.trigger(this._element, EVENT_SHOWN$4, relatedTarget); + } - _proto.hide = function hide() { - if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || !this._menu.classList.contains(CLASS_NAME_SHOW$1)) { + hide() { + if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || !this._menu.classList.contains(CLASS_NAME_SHOW$6)) { return; } - var parent = Dropdown.getParentFromElement(this._element); - var relatedTarget = { + const relatedTarget = { relatedTarget: this._element }; - var hideEvent = EventHandler.trigger(parent, EVENT_HIDE$1, relatedTarget); + const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$4, relatedTarget); if (hideEvent.defaultPrevented) { return; @@ -2223,17 +2112,16 @@ this._popper.destroy(); } - this._menu.classList.toggle(CLASS_NAME_SHOW$1); - - this._element.classList.toggle(CLASS_NAME_SHOW$1); + this._menu.classList.toggle(CLASS_NAME_SHOW$6); - EventHandler.trigger(parent, EVENT_HIDDEN$1, relatedTarget); - }; + this._element.classList.toggle(CLASS_NAME_SHOW$6); - _proto.dispose = function dispose() { - _BaseComponent.prototype.dispose.call(this); + Manipulator.removeDataAttribute(this._menu, 'popper'); + EventHandler.trigger(this._element, EVENT_HIDDEN$4, relatedTarget); + } - EventHandler.off(this._element, EVENT_KEY$4); + dispose() { + EventHandler.off(this._element, EVENT_KEY$7); this._menu = null; if (this._popper) { @@ -2241,104 +2129,119 @@ this._popper = null; } - }; - _proto.update = function update() { + super.dispose(); + } + + update() { this._inNavbar = this._detectNavbar(); if (this._popper) { - this._popper.scheduleUpdate(); + this._popper.update(); } } // Private - ; - _proto._addEventListeners = function _addEventListeners() { - var _this2 = this; - EventHandler.on(this._element, EVENT_CLICK, function (event) { + _addEventListeners() { + EventHandler.on(this._element, EVENT_CLICK, event => { event.preventDefault(); - event.stopPropagation(); - - _this2.toggle(); + this.toggle(); }); - }; + } + + _getConfig(config) { + config = { ...this.constructor.Default, + ...Manipulator.getDataAttributes(this._element), + ...config + }; + typeCheckConfig(NAME$7, config, this.constructor.DefaultType); + + if (typeof config.reference === 'object' && !isElement(config.reference) && typeof config.reference.getBoundingClientRect !== 'function') { + // Popper virtual elements require a getBoundingClientRect method + throw new TypeError(`${NAME$7.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`); + } - _proto._getConfig = function _getConfig(config) { - config = _extends({}, this.constructor.Default, Manipulator.getDataAttributes(this._element), config); - typeCheckConfig(NAME$4, config, this.constructor.DefaultType); return config; - }; + } - _proto._getMenuElement = function _getMenuElement() { + _getMenuElement() { return SelectorEngine.next(this._element, SELECTOR_MENU)[0]; - }; + } + + _getPlacement() { + const parentDropdown = this._element.parentNode; + + if (parentDropdown.classList.contains(CLASS_NAME_DROPEND)) { + return PLACEMENT_RIGHT; + } - _proto._getPlacement = function _getPlacement() { - var parentDropdown = this._element.parentNode; - var placement = PLACEMENT_BOTTOM; // Handle dropup + if (parentDropdown.classList.contains(CLASS_NAME_DROPSTART)) { + return PLACEMENT_LEFT; + } // We need to trim the value because custom properties can also include spaces + + + const isEnd = getComputedStyle(this._menu).getPropertyValue('--bs-position').trim() === 'end'; if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) { - placement = this._menu.classList.contains(CLASS_NAME_MENUEND) ? PLACEMENT_TOPEND : PLACEMENT_TOP; - } else if (parentDropdown.classList.contains(CLASS_NAME_DROPEND)) { - placement = PLACEMENT_RIGHT; - } else if (parentDropdown.classList.contains(CLASS_NAME_DROPSTART)) { - placement = PLACEMENT_LEFT; - } else if (this._menu.classList.contains(CLASS_NAME_MENUEND)) { - placement = PLACEMENT_BOTTOMEND; + return isEnd ? PLACEMENT_TOPEND : PLACEMENT_TOP; } - return placement; - }; + return isEnd ? PLACEMENT_BOTTOMEND : PLACEMENT_BOTTOM; + } - _proto._detectNavbar = function _detectNavbar() { - return Boolean(this._element.closest("." + CLASS_NAME_NAVBAR)); - }; + _detectNavbar() { + return this._element.closest(`.${CLASS_NAME_NAVBAR}`) !== null; + } - _proto._getOffset = function _getOffset() { - var _this3 = this; + _getOffset() { + const { + offset + } = this._config; - var offset = {}; + if (typeof offset === 'string') { + return offset.split(',').map(val => Number.parseInt(val, 10)); + } - if (typeof this._config.offset === 'function') { - offset.fn = function (data) { - data.offsets = _extends({}, data.offsets, _this3._config.offset(data.offsets, _this3._element) || {}); - return data; - }; - } else { - offset.offset = this._config.offset; + if (typeof offset === 'function') { + return popperData => offset(popperData, this._element); } return offset; - }; + } - _proto._getPopperConfig = function _getPopperConfig() { - var popperConfig = { + _getPopperConfig() { + const defaultBsPopperConfig = { placement: this._getPlacement(), - modifiers: { - offset: this._getOffset(), - flip: { - enabled: this._config.flip - }, - preventOverflow: { - boundariesElement: this._config.boundary + modifiers: [{ + name: 'preventOverflow', + options: { + boundary: this._config.boundary } - } + }, { + name: 'offset', + options: { + offset: this._getOffset() + } + }] }; // Disable Popper if we have a static display if (this._config.display === 'static') { - popperConfig.modifiers.applyStyle = { + defaultBsPopperConfig.modifiers = [{ + name: 'applyStyles', enabled: false - }; + }]; } - return _extends({}, popperConfig, this._config.popperConfig); + return { ...defaultBsPopperConfig, + ...(typeof this._config.popperConfig === 'function' ? this._config.popperConfig(defaultBsPopperConfig) : this._config.popperConfig) + }; } // Static - ; - Dropdown.dropdownInterface = function dropdownInterface(element, config) { - var data = Data.getData(element, DATA_KEY$4); - var _config = typeof config === 'object' ? config : null; + static dropdownInterface(element, config) { + let data = Data.get(element, DATA_KEY$7); + + const _config = typeof config === 'object' ? config : null; if (!data) { data = new Dropdown(element, _config); @@ -2346,30 +2249,35 @@ if (typeof config === 'string') { if (typeof data[config] === 'undefined') { - throw new TypeError("No method named \"" + config + "\""); + throw new TypeError(`No method named "${config}"`); } data[config](); } - }; + } - Dropdown.jQueryInterface = function jQueryInterface(config) { + static jQueryInterface(config) { return this.each(function () { Dropdown.dropdownInterface(this, config); }); - }; + } - Dropdown.clearMenus = function clearMenus(event) { - if (event && (event.button === RIGHT_MOUSE_BUTTON || event.type === 'keyup' && event.key !== TAB_KEY)) { - return; + static clearMenus(event) { + if (event) { + if (event.button === RIGHT_MOUSE_BUTTON || event.type === 'keyup' && event.key !== TAB_KEY) { + return; + } + + if (/input|select|textarea|form/i.test(event.target.tagName)) { + return; + } } - var toggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE$2); + const toggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE$3); - for (var i = 0, len = toggles.length; i < len; i++) { - var parent = Dropdown.getParentFromElement(toggles[i]); - var context = Data.getData(toggles[i], DATA_KEY$4); - var relatedTarget = { + for (let i = 0, len = toggles.length; i < len; i++) { + const context = Data.get(toggles[i], DATA_KEY$7); + const relatedTarget = { relatedTarget: toggles[i] }; @@ -2381,17 +2289,25 @@ continue; } - var dropdownMenu = context._menu; + const dropdownMenu = context._menu; - if (!toggles[i].classList.contains(CLASS_NAME_SHOW$1)) { + if (!toggles[i].classList.contains(CLASS_NAME_SHOW$6)) { continue; } - if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.key === TAB_KEY) && dropdownMenu.contains(event.target)) { - continue; + if (event) { + // Don't close the menu if the clicked element or one of its parents is the dropdown button + if ([context._element].some(element => event.composedPath().includes(element))) { + continue; + } // Tab navigation through the dropdown menu shouldn't close the menu + + + if (event.type === 'keyup' && event.key === TAB_KEY && dropdownMenu.contains(event.target)) { + continue; + } } - var hideEvent = EventHandler.trigger(parent, EVENT_HIDE$1, relatedTarget); + const hideEvent = EventHandler.trigger(toggles[i], EVENT_HIDE$4, relatedTarget); if (hideEvent.defaultPrevented) { continue; @@ -2400,11 +2316,7 @@ if ('ontouchstart' in document.documentElement) { - var _ref2; - - (_ref2 = []).concat.apply(_ref2, document.body.children).forEach(function (elem) { - return EventHandler.off(elem, 'mouseover', null, noop()); - }); + [].concat(...document.body.children).forEach(elem => EventHandler.off(elem, 'mouseover', null, noop())); } toggles[i].setAttribute('aria-expanded', 'false'); @@ -2413,17 +2325,18 @@ context._popper.destroy(); } - dropdownMenu.classList.remove(CLASS_NAME_SHOW$1); - toggles[i].classList.remove(CLASS_NAME_SHOW$1); - EventHandler.trigger(parent, EVENT_HIDDEN$1, relatedTarget); + dropdownMenu.classList.remove(CLASS_NAME_SHOW$6); + toggles[i].classList.remove(CLASS_NAME_SHOW$6); + Manipulator.removeDataAttribute(dropdownMenu, 'popper'); + EventHandler.trigger(toggles[i], EVENT_HIDDEN$4, relatedTarget); } - }; + } - Dropdown.getParentFromElement = function getParentFromElement(element) { + static getParentFromElement(element) { return getElementFromSelector(element) || element.parentNode; - }; + } - Dropdown.dataApiKeydownHandler = function dataApiKeydownHandler(event) { + static dataApiKeydownHandler(event) { // If not input/textarea: // - And not a key in REGEXP_KEYDOWN => not a dropdown command // If input/textarea: @@ -2431,7 +2344,7 @@ // - If key is other than escape // - If key is not up or down => not a dropdown command // - If trigger inside the menu => not a dropdown command - if (/input|textarea/i.test(event.target.tagName) ? event.key === SPACE_KEY || event.key !== ESCAPE_KEY && (event.key !== ARROW_DOWN_KEY && event.key !== ARROW_UP_KEY || event.target.closest(SELECTOR_MENU)) : !REGEXP_KEYDOWN.test(event.key)) { + if (/input|textarea/i.test(event.target.tagName) ? event.key === SPACE_KEY || event.key !== ESCAPE_KEY$2 && (event.key !== ARROW_DOWN_KEY && event.key !== ARROW_UP_KEY || event.target.closest(SELECTOR_MENU)) : !REGEXP_KEYDOWN.test(event.key)) { return; } @@ -2442,28 +2355,34 @@ return; } - var parent = Dropdown.getParentFromElement(this); - var isActive = this.classList.contains(CLASS_NAME_SHOW$1); + const parent = Dropdown.getParentFromElement(this); + const isActive = this.classList.contains(CLASS_NAME_SHOW$6); - if (event.key === ESCAPE_KEY) { - var button = this.matches(SELECTOR_DATA_TOGGLE$2) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE$2)[0]; + if (event.key === ESCAPE_KEY$2) { + const button = this.matches(SELECTOR_DATA_TOGGLE$3) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE$3)[0]; button.focus(); Dropdown.clearMenus(); return; } + if (!isActive && (event.key === ARROW_UP_KEY || event.key === ARROW_DOWN_KEY)) { + const button = this.matches(SELECTOR_DATA_TOGGLE$3) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE$3)[0]; + button.click(); + return; + } + if (!isActive || event.key === SPACE_KEY) { Dropdown.clearMenus(); return; } - var items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, parent).filter(isVisible); + const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, parent).filter(isVisible); if (!items.length) { return; } - var index = items.indexOf(event.target); // Up + let index = items.indexOf(event.target); // Up if (event.key === ARROW_UP_KEY && index > 0) { index--; @@ -2477,27 +2396,9 @@ index = index === -1 ? 0 : index; items[index].focus(); - }; - - _createClass(Dropdown, null, [{ - key: "Default", - get: function get() { - return Default$2; - } - }, { - key: "DefaultType", - get: function get() { - return DefaultType$2; - } - }, { - key: "DATA_KEY", - get: function get() { - return DATA_KEY$4; - } - }]); + } - return Dropdown; - }(BaseComponent); + } /** * ------------------------------------------------------------------------ * Data Api implementation @@ -2505,17 +2406,13 @@ */ - EventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE$2, Dropdown.dataApiKeydownHandler); + EventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE$3, Dropdown.dataApiKeydownHandler); EventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown.dataApiKeydownHandler); - EventHandler.on(document, EVENT_CLICK_DATA_API$4, Dropdown.clearMenus); + EventHandler.on(document, EVENT_CLICK_DATA_API$3, Dropdown.clearMenus); EventHandler.on(document, EVENT_KEYUP_DATA_API, Dropdown.clearMenus); - EventHandler.on(document, EVENT_CLICK_DATA_API$4, SELECTOR_DATA_TOGGLE$2, function (event) { + EventHandler.on(document, EVENT_CLICK_DATA_API$3, SELECTOR_DATA_TOGGLE$3, function (event) { event.preventDefault(); - event.stopPropagation(); - Dropdown.dropdownInterface(this, 'toggle'); - }); - EventHandler.on(document, EVENT_CLICK_DATA_API$4, SELECTOR_FORM_CHILD, function (e) { - return e.stopPropagation(); + Dropdown.dropdownInterface(this); }); /** * ------------------------------------------------------------------------ @@ -2524,112 +2421,103 @@ * add .Dropdown to jQuery only if jQuery is present */ - onDOMContentLoaded(function () { - var $ = getjQuery(); - /* istanbul ignore if */ - - if ($) { - var JQUERY_NO_CONFLICT = $.fn[NAME$4]; - $.fn[NAME$4] = Dropdown.jQueryInterface; - $.fn[NAME$4].Constructor = Dropdown; - - $.fn[NAME$4].noConflict = function () { - $.fn[NAME$4] = JQUERY_NO_CONFLICT; - return Dropdown.jQueryInterface; - }; - } - }); + defineJQueryPlugin(NAME$7, Dropdown); /** + * -------------------------------------------------------------------------- + * Bootstrap (v5.0.0-beta3): modal.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + /** * ------------------------------------------------------------------------ * Constants * ------------------------------------------------------------------------ */ - var NAME$5 = 'modal'; - var DATA_KEY$5 = 'bs.modal'; - var EVENT_KEY$5 = "." + DATA_KEY$5; - var DATA_API_KEY$5 = '.data-api'; - var ESCAPE_KEY$1 = 'Escape'; - var Default$3 = { + const NAME$6 = 'modal'; + const DATA_KEY$6 = 'bs.modal'; + const EVENT_KEY$6 = `.${DATA_KEY$6}`; + const DATA_API_KEY$3 = '.data-api'; + const ESCAPE_KEY$1 = 'Escape'; + const Default$5 = { backdrop: true, keyboard: true, focus: true }; - var DefaultType$3 = { + const DefaultType$5 = { backdrop: '(boolean|string)', keyboard: 'boolean', focus: 'boolean' }; - var EVENT_HIDE$2 = "hide" + EVENT_KEY$5; - var EVENT_HIDE_PREVENTED = "hidePrevented" + EVENT_KEY$5; - var EVENT_HIDDEN$2 = "hidden" + EVENT_KEY$5; - var EVENT_SHOW$2 = "show" + EVENT_KEY$5; - var EVENT_SHOWN$2 = "shown" + EVENT_KEY$5; - var EVENT_FOCUSIN = "focusin" + EVENT_KEY$5; - var EVENT_RESIZE = "resize" + EVENT_KEY$5; - var EVENT_CLICK_DISMISS = "click.dismiss" + EVENT_KEY$5; - var EVENT_KEYDOWN_DISMISS = "keydown.dismiss" + EVENT_KEY$5; - var EVENT_MOUSEUP_DISMISS = "mouseup.dismiss" + EVENT_KEY$5; - var EVENT_MOUSEDOWN_DISMISS = "mousedown.dismiss" + EVENT_KEY$5; - var EVENT_CLICK_DATA_API$5 = "click" + EVENT_KEY$5 + DATA_API_KEY$5; - var CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure'; - var CLASS_NAME_BACKDROP = 'modal-backdrop'; - var CLASS_NAME_OPEN = 'modal-open'; - var CLASS_NAME_FADE = 'fade'; - var CLASS_NAME_SHOW$2 = 'show'; - var CLASS_NAME_STATIC = 'modal-static'; - var SELECTOR_DIALOG = '.modal-dialog'; - var SELECTOR_MODAL_BODY = '.modal-body'; - var SELECTOR_DATA_TOGGLE$3 = '[data-bs-toggle="modal"]'; - var SELECTOR_DATA_DISMISS = '[data-bs-dismiss="modal"]'; - var SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'; - var SELECTOR_STICKY_CONTENT = '.sticky-top'; + const EVENT_HIDE$3 = `hide${EVENT_KEY$6}`; + const EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY$6}`; + const EVENT_HIDDEN$3 = `hidden${EVENT_KEY$6}`; + const EVENT_SHOW$3 = `show${EVENT_KEY$6}`; + const EVENT_SHOWN$3 = `shown${EVENT_KEY$6}`; + const EVENT_FOCUSIN$1 = `focusin${EVENT_KEY$6}`; + const EVENT_RESIZE = `resize${EVENT_KEY$6}`; + const EVENT_CLICK_DISMISS$2 = `click.dismiss${EVENT_KEY$6}`; + const EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY$6}`; + const EVENT_MOUSEUP_DISMISS = `mouseup.dismiss${EVENT_KEY$6}`; + const EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY$6}`; + const EVENT_CLICK_DATA_API$2 = `click${EVENT_KEY$6}${DATA_API_KEY$3}`; + const CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure'; + const CLASS_NAME_BACKDROP = 'modal-backdrop'; + const CLASS_NAME_OPEN = 'modal-open'; + const CLASS_NAME_FADE$4 = 'fade'; + const CLASS_NAME_SHOW$5 = 'show'; + const CLASS_NAME_STATIC = 'modal-static'; + const SELECTOR_DIALOG = '.modal-dialog'; + const SELECTOR_MODAL_BODY = '.modal-body'; + const SELECTOR_DATA_TOGGLE$2 = '[data-bs-toggle="modal"]'; + const SELECTOR_DATA_DISMISS$2 = '[data-bs-dismiss="modal"]'; + const SELECTOR_FIXED_CONTENT$1 = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'; + const SELECTOR_STICKY_CONTENT$1 = '.sticky-top'; /** * ------------------------------------------------------------------------ * Class Definition * ------------------------------------------------------------------------ */ - var Modal = /*#__PURE__*/function (_BaseComponent) { - _inheritsLoose(Modal, _BaseComponent); - - function Modal(element, config) { - var _this; - - _this = _BaseComponent.call(this, element) || this; - _this._config = _this._getConfig(config); - _this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, element); - _this._backdrop = null; - _this._isShown = false; - _this._isBodyOverflowing = false; - _this._ignoreBackdropClick = false; - _this._isTransitioning = false; - _this._scrollbarWidth = 0; - return _this; + class Modal extends BaseComponent { + constructor(element, config) { + super(element); + this._config = this._getConfig(config); + this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, this._element); + this._backdrop = null; + this._isShown = false; + this._isBodyOverflowing = false; + this._ignoreBackdropClick = false; + this._isTransitioning = false; + this._scrollbarWidth = 0; } // Getters - var _proto = Modal.prototype; + static get Default() { + return Default$5; + } - // Public - _proto.toggle = function toggle(relatedTarget) { - return this._isShown ? this.hide() : this.show(relatedTarget); - }; + static get DATA_KEY() { + return DATA_KEY$6; + } // Public - _proto.show = function show(relatedTarget) { - var _this2 = this; + toggle(relatedTarget) { + return this._isShown ? this.hide() : this.show(relatedTarget); + } + + show(relatedTarget) { if (this._isShown || this._isTransitioning) { return; } - if (this._element.classList.contains(CLASS_NAME_FADE)) { + if (this._isAnimated()) { this._isTransitioning = true; } - var showEvent = EventHandler.trigger(this._element, EVENT_SHOW$2, { - relatedTarget: relatedTarget + const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$3, { + relatedTarget }); if (this._isShown || showEvent.defaultPrevented) { @@ -2648,25 +2536,19 @@ this._setResizeEvent(); - EventHandler.on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, function (event) { - return _this2.hide(event); - }); - EventHandler.on(this._dialog, EVENT_MOUSEDOWN_DISMISS, function () { - EventHandler.one(_this2._element, EVENT_MOUSEUP_DISMISS, function (event) { - if (event.target === _this2._element) { - _this2._ignoreBackdropClick = true; + EventHandler.on(this._element, EVENT_CLICK_DISMISS$2, SELECTOR_DATA_DISMISS$2, event => this.hide(event)); + EventHandler.on(this._dialog, EVENT_MOUSEDOWN_DISMISS, () => { + EventHandler.one(this._element, EVENT_MOUSEUP_DISMISS, event => { + if (event.target === this._element) { + this._ignoreBackdropClick = true; } }); }); - this._showBackdrop(function () { - return _this2._showElement(relatedTarget); - }); - }; - - _proto.hide = function hide(event) { - var _this3 = this; + this._showBackdrop(() => this._showElement(relatedTarget)); + } + hide(event) { if (event) { event.preventDefault(); } @@ -2675,7 +2557,7 @@ return; } - var hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$2); + const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$3); if (hideEvent.defaultPrevented) { return; @@ -2683,9 +2565,9 @@ this._isShown = false; - var transition = this._element.classList.contains(CLASS_NAME_FADE); + const isAnimated = this._isAnimated(); - if (transition) { + if (isAnimated) { this._isTransitioning = true; } @@ -2693,38 +2575,32 @@ this._setResizeEvent(); - EventHandler.off(document, EVENT_FOCUSIN); + EventHandler.off(document, EVENT_FOCUSIN$1); - this._element.classList.remove(CLASS_NAME_SHOW$2); + this._element.classList.remove(CLASS_NAME_SHOW$5); - EventHandler.off(this._element, EVENT_CLICK_DISMISS); + EventHandler.off(this._element, EVENT_CLICK_DISMISS$2); EventHandler.off(this._dialog, EVENT_MOUSEDOWN_DISMISS); - if (transition) { - var transitionDuration = getTransitionDurationFromElement(this._element); - EventHandler.one(this._element, TRANSITION_END, function (event) { - return _this3._hideModal(event); - }); + if (isAnimated) { + const transitionDuration = getTransitionDurationFromElement(this._element); + EventHandler.one(this._element, 'transitionend', event => this._hideModal(event)); emulateTransitionEnd(this._element, transitionDuration); } else { this._hideModal(); } - }; - - _proto.dispose = function dispose() { - [window, this._element, this._dialog].forEach(function (htmlElement) { - return EventHandler.off(htmlElement, EVENT_KEY$5); - }); + } - _BaseComponent.prototype.dispose.call(this); + dispose() { + [window, this._element, this._dialog].forEach(htmlElement => EventHandler.off(htmlElement, EVENT_KEY$6)); + super.dispose(); /** * `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API` * Do not move `document` in `htmlElements` array * It will remove `EVENT_CLICK_DATA_API` event that should remain */ - - EventHandler.off(document, EVENT_FOCUSIN); + EventHandler.off(document, EVENT_FOCUSIN$1); this._config = null; this._dialog = null; this._backdrop = null; @@ -2733,25 +2609,25 @@ this._ignoreBackdropClick = null; this._isTransitioning = null; this._scrollbarWidth = null; - }; + } - _proto.handleUpdate = function handleUpdate() { + handleUpdate() { this._adjustDialog(); } // Private - ; - _proto._getConfig = function _getConfig(config) { - config = _extends({}, Default$3, config); - typeCheckConfig(NAME$5, config, DefaultType$3); - return config; - }; - _proto._showElement = function _showElement(relatedTarget) { - var _this4 = this; + _getConfig(config) { + config = { ...Default$5, + ...config + }; + typeCheckConfig(NAME$6, config, DefaultType$5); + return config; + } - var transition = this._element.classList.contains(CLASS_NAME_FADE); + _showElement(relatedTarget) { + const isAnimated = this._isAnimated(); - var modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog); + const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog); if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) { // Don't move modal's DOM position @@ -2772,81 +2648,70 @@ modalBody.scrollTop = 0; } - if (transition) { + if (isAnimated) { reflow(this._element); } - this._element.classList.add(CLASS_NAME_SHOW$2); + this._element.classList.add(CLASS_NAME_SHOW$5); if (this._config.focus) { this._enforceFocus(); } - var transitionComplete = function transitionComplete() { - if (_this4._config.focus) { - _this4._element.focus(); + const transitionComplete = () => { + if (this._config.focus) { + this._element.focus(); } - _this4._isTransitioning = false; - EventHandler.trigger(_this4._element, EVENT_SHOWN$2, { - relatedTarget: relatedTarget + this._isTransitioning = false; + EventHandler.trigger(this._element, EVENT_SHOWN$3, { + relatedTarget }); }; - if (transition) { - var transitionDuration = getTransitionDurationFromElement(this._dialog); - EventHandler.one(this._dialog, TRANSITION_END, transitionComplete); + if (isAnimated) { + const transitionDuration = getTransitionDurationFromElement(this._dialog); + EventHandler.one(this._dialog, 'transitionend', transitionComplete); emulateTransitionEnd(this._dialog, transitionDuration); } else { transitionComplete(); } - }; - - _proto._enforceFocus = function _enforceFocus() { - var _this5 = this; + } - EventHandler.off(document, EVENT_FOCUSIN); // guard against infinite focus loop + _enforceFocus() { + EventHandler.off(document, EVENT_FOCUSIN$1); // guard against infinite focus loop - EventHandler.on(document, EVENT_FOCUSIN, function (event) { - if (document !== event.target && _this5._element !== event.target && !_this5._element.contains(event.target)) { - _this5._element.focus(); + EventHandler.on(document, EVENT_FOCUSIN$1, event => { + if (document !== event.target && this._element !== event.target && !this._element.contains(event.target)) { + this._element.focus(); } }); - }; - - _proto._setEscapeEvent = function _setEscapeEvent() { - var _this6 = this; + } + _setEscapeEvent() { if (this._isShown) { - EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, function (event) { - if (_this6._config.keyboard && event.key === ESCAPE_KEY$1) { + EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => { + if (this._config.keyboard && event.key === ESCAPE_KEY$1) { event.preventDefault(); - - _this6.hide(); - } else if (!_this6._config.keyboard && event.key === ESCAPE_KEY$1) { - _this6._triggerBackdropTransition(); + this.hide(); + } else if (!this._config.keyboard && event.key === ESCAPE_KEY$1) { + this._triggerBackdropTransition(); } }); } else { EventHandler.off(this._element, EVENT_KEYDOWN_DISMISS); } - }; - - _proto._setResizeEvent = function _setResizeEvent() { - var _this7 = this; + } + _setResizeEvent() { if (this._isShown) { - EventHandler.on(window, EVENT_RESIZE, function () { - return _this7._adjustDialog(); - }); + EventHandler.on(window, EVENT_RESIZE, () => this._adjustDialog()); } else { EventHandler.off(window, EVENT_RESIZE); } - }; - - _proto._hideModal = function _hideModal() { - var _this8 = this; + } + _hideModal() { this._element.style.display = 'none'; this._element.setAttribute('aria-hidden', true); @@ -2857,40 +2722,38 @@ this._isTransitioning = false; - this._showBackdrop(function () { + this._showBackdrop(() => { document.body.classList.remove(CLASS_NAME_OPEN); - _this8._resetAdjustments(); + this._resetAdjustments(); - _this8._resetScrollbar(); + this._resetScrollbar(); - EventHandler.trigger(_this8._element, EVENT_HIDDEN$2); + EventHandler.trigger(this._element, EVENT_HIDDEN$3); }); - }; + } - _proto._removeBackdrop = function _removeBackdrop() { + _removeBackdrop() { this._backdrop.parentNode.removeChild(this._backdrop); this._backdrop = null; - }; - - _proto._showBackdrop = function _showBackdrop(callback) { - var _this9 = this; + } - var animate = this._element.classList.contains(CLASS_NAME_FADE) ? CLASS_NAME_FADE : ''; + _showBackdrop(callback) { + const isAnimated = this._isAnimated(); if (this._isShown && this._config.backdrop) { this._backdrop = document.createElement('div'); this._backdrop.className = CLASS_NAME_BACKDROP; - if (animate) { - this._backdrop.classList.add(animate); + if (isAnimated) { + this._backdrop.classList.add(CLASS_NAME_FADE$4); } document.body.appendChild(this._backdrop); - EventHandler.on(this._element, EVENT_CLICK_DISMISS, function (event) { - if (_this9._ignoreBackdropClick) { - _this9._ignoreBackdropClick = false; + EventHandler.on(this._element, EVENT_CLICK_DISMISS$2, event => { + if (this._ignoreBackdropClick) { + this._ignoreBackdropClick = false; return; } @@ -2898,59 +2761,60 @@ return; } - if (_this9._config.backdrop === 'static') { - _this9._triggerBackdropTransition(); + if (this._config.backdrop === 'static') { + this._triggerBackdropTransition(); } else { - _this9.hide(); + this.hide(); } }); - if (animate) { + if (isAnimated) { reflow(this._backdrop); } - this._backdrop.classList.add(CLASS_NAME_SHOW$2); + this._backdrop.classList.add(CLASS_NAME_SHOW$5); - if (!animate) { + if (!isAnimated) { callback(); return; } - var backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop); - EventHandler.one(this._backdrop, TRANSITION_END, callback); + const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop); + EventHandler.one(this._backdrop, 'transitionend', callback); emulateTransitionEnd(this._backdrop, backdropTransitionDuration); } else if (!this._isShown && this._backdrop) { - this._backdrop.classList.remove(CLASS_NAME_SHOW$2); + this._backdrop.classList.remove(CLASS_NAME_SHOW$5); - var callbackRemove = function callbackRemove() { - _this9._removeBackdrop(); + const callbackRemove = () => { + this._removeBackdrop(); callback(); }; - if (this._element.classList.contains(CLASS_NAME_FADE)) { - var _backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop); - - EventHandler.one(this._backdrop, TRANSITION_END, callbackRemove); - emulateTransitionEnd(this._backdrop, _backdropTransitionDuration); + if (isAnimated) { + const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop); + EventHandler.one(this._backdrop, 'transitionend', callbackRemove); + emulateTransitionEnd(this._backdrop, backdropTransitionDuration); } else { callbackRemove(); } } else { callback(); } - }; + } - _proto._triggerBackdropTransition = function _triggerBackdropTransition() { - var _this10 = this; + _isAnimated() { + return this._element.classList.contains(CLASS_NAME_FADE$4); + } - var hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED); + _triggerBackdropTransition() { + const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED); if (hideEvent.defaultPrevented) { return; } - var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight; + const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight; if (!isModalOverflowing) { this._element.style.overflowY = 'hidden'; @@ -2958,16 +2822,16 @@ this._element.classList.add(CLASS_NAME_STATIC); - var modalTransitionDuration = getTransitionDurationFromElement(this._dialog); - EventHandler.off(this._element, TRANSITION_END); - EventHandler.one(this._element, TRANSITION_END, function () { - _this10._element.classList.remove(CLASS_NAME_STATIC); + const modalTransitionDuration = getTransitionDurationFromElement(this._dialog); + EventHandler.off(this._element, 'transitionend'); + EventHandler.one(this._element, 'transitionend', () => { + this._element.classList.remove(CLASS_NAME_STATIC); if (!isModalOverflowing) { - EventHandler.one(_this10._element, TRANSITION_END, function () { - _this10._element.style.overflowY = ''; + EventHandler.one(this._element, 'transitionend', () => { + this._element.style.overflowY = ''; }); - emulateTransitionEnd(_this10._element, modalTransitionDuration); + emulateTransitionEnd(this._element, modalTransitionDuration); } }); emulateTransitionEnd(this._element, modalTransitionDuration); @@ -2976,107 +2840,95 @@ } // ---------------------------------------------------------------------- // the following methods are used to handle overflowing modals // ---------------------------------------------------------------------- - ; - _proto._adjustDialog = function _adjustDialog() { - var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight; - if (!this._isBodyOverflowing && isModalOverflowing && !isRTL || this._isBodyOverflowing && !isModalOverflowing && isRTL) { - this._element.style.paddingLeft = this._scrollbarWidth + "px"; + _adjustDialog() { + const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight; + + if (!this._isBodyOverflowing && isModalOverflowing && !isRTL() || this._isBodyOverflowing && !isModalOverflowing && isRTL()) { + this._element.style.paddingLeft = `${this._scrollbarWidth}px`; } - if (this._isBodyOverflowing && !isModalOverflowing && !isRTL || !this._isBodyOverflowing && isModalOverflowing && isRTL) { - this._element.style.paddingRight = this._scrollbarWidth + "px"; + if (this._isBodyOverflowing && !isModalOverflowing && !isRTL() || !this._isBodyOverflowing && isModalOverflowing && isRTL()) { + this._element.style.paddingRight = `${this._scrollbarWidth}px`; } - }; + } - _proto._resetAdjustments = function _resetAdjustments() { + _resetAdjustments() { this._element.style.paddingLeft = ''; this._element.style.paddingRight = ''; - }; + } - _proto._checkScrollbar = function _checkScrollbar() { - var rect = document.body.getBoundingClientRect(); + _checkScrollbar() { + const rect = document.body.getBoundingClientRect(); this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth; this._scrollbarWidth = this._getScrollbarWidth(); - }; - - _proto._setScrollbar = function _setScrollbar() { - var _this11 = this; + } + _setScrollbar() { if (this._isBodyOverflowing) { - // Note: DOMNode.style.paddingRight returns the actual value or '' if not set - // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set - // Adjust fixed content padding - SelectorEngine.find(SELECTOR_FIXED_CONTENT).forEach(function (element) { - var actualPadding = element.style.paddingRight; - var calculatedPadding = window.getComputedStyle(element)['padding-right']; - Manipulator.setDataAttribute(element, 'padding-right', actualPadding); - element.style.paddingRight = Number.parseFloat(calculatedPadding) + _this11._scrollbarWidth + "px"; - }); // Adjust sticky content margin - - SelectorEngine.find(SELECTOR_STICKY_CONTENT).forEach(function (element) { - var actualMargin = element.style.marginRight; - var calculatedMargin = window.getComputedStyle(element)['margin-right']; - Manipulator.setDataAttribute(element, 'margin-right', actualMargin); - element.style.marginRight = Number.parseFloat(calculatedMargin) - _this11._scrollbarWidth + "px"; - }); // Adjust body padding - - var actualPadding = document.body.style.paddingRight; - var calculatedPadding = window.getComputedStyle(document.body)['padding-right']; - Manipulator.setDataAttribute(document.body, 'padding-right', actualPadding); - document.body.style.paddingRight = Number.parseFloat(calculatedPadding) + this._scrollbarWidth + "px"; + this._setElementAttributes(SELECTOR_FIXED_CONTENT$1, 'paddingRight', calculatedValue => calculatedValue + this._scrollbarWidth); + + this._setElementAttributes(SELECTOR_STICKY_CONTENT$1, 'marginRight', calculatedValue => calculatedValue - this._scrollbarWidth); + + this._setElementAttributes('body', 'paddingRight', calculatedValue => calculatedValue + this._scrollbarWidth); } document.body.classList.add(CLASS_NAME_OPEN); - }; - - _proto._resetScrollbar = function _resetScrollbar() { - // Restore fixed content padding - SelectorEngine.find(SELECTOR_FIXED_CONTENT).forEach(function (element) { - var padding = Manipulator.getDataAttribute(element, 'padding-right'); + } - if (typeof padding !== 'undefined') { - Manipulator.removeDataAttribute(element, 'padding-right'); - element.style.paddingRight = padding; + _setElementAttributes(selector, styleProp, callback) { + SelectorEngine.find(selector).forEach(element => { + if (element !== document.body && window.innerWidth > element.clientWidth + this._scrollbarWidth) { + return; } - }); // Restore sticky content and navbar-toggler margin - SelectorEngine.find("" + SELECTOR_STICKY_CONTENT).forEach(function (element) { - var margin = Manipulator.getDataAttribute(element, 'margin-right'); + const actualValue = element.style[styleProp]; + const calculatedValue = window.getComputedStyle(element)[styleProp]; + Manipulator.setDataAttribute(element, styleProp, actualValue); + element.style[styleProp] = callback(Number.parseFloat(calculatedValue)) + 'px'; + }); + } + + _resetScrollbar() { + this._resetElementAttributes(SELECTOR_FIXED_CONTENT$1, 'paddingRight'); - if (typeof margin !== 'undefined') { - Manipulator.removeDataAttribute(element, 'margin-right'); - element.style.marginRight = margin; - } - }); // Restore body padding + this._resetElementAttributes(SELECTOR_STICKY_CONTENT$1, 'marginRight'); - var padding = Manipulator.getDataAttribute(document.body, 'padding-right'); + this._resetElementAttributes('body', 'paddingRight'); + } - if (typeof padding === 'undefined') { - document.body.style.paddingRight = ''; - } else { - Manipulator.removeDataAttribute(document.body, 'padding-right'); - document.body.style.paddingRight = padding; - } - }; + _resetElementAttributes(selector, styleProp) { + SelectorEngine.find(selector).forEach(element => { + const value = Manipulator.getDataAttribute(element, styleProp); + + if (typeof value === 'undefined' && element === document.body) { + element.style[styleProp] = ''; + } else { + Manipulator.removeDataAttribute(element, styleProp); + element.style[styleProp] = value; + } + }); + } - _proto._getScrollbarWidth = function _getScrollbarWidth() { + _getScrollbarWidth() { // thx d.walsh - var scrollDiv = document.createElement('div'); + const scrollDiv = document.createElement('div'); scrollDiv.className = CLASS_NAME_SCROLLBAR_MEASURER; document.body.appendChild(scrollDiv); - var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth; + const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth; document.body.removeChild(scrollDiv); return scrollbarWidth; } // Static - ; - Modal.jQueryInterface = function jQueryInterface(config, relatedTarget) { - return this.each(function () { - var data = Data.getData(this, DATA_KEY$5); - var _config = _extends({}, Default$3, Manipulator.getDataAttributes(this), typeof config === 'object' && config ? config : {}); + static jQueryInterface(config, relatedTarget) { + return this.each(function () { + let data = Data.get(this, DATA_KEY$6); + const _config = { ...Default$5, + ...Manipulator.getDataAttributes(this), + ...(typeof config === 'object' && config ? config : {}) + }; if (!data) { data = new Modal(this, _config); @@ -3084,28 +2936,15 @@ if (typeof config === 'string') { if (typeof data[config] === 'undefined') { - throw new TypeError("No method named \"" + config + "\""); + throw new TypeError(`No method named "${config}"`); } data[config](relatedTarget); } }); - }; - - _createClass(Modal, null, [{ - key: "Default", - get: function get() { - return Default$3; - } - }, { - key: "DATA_KEY", - get: function get() { - return DATA_KEY$5; - } - }]); + } - return Modal; - }(BaseComponent); + } /** * ------------------------------------------------------------------------ * Data Api implementation @@ -3113,36 +2952,35 @@ */ - EventHandler.on(document, EVENT_CLICK_DATA_API$5, SELECTOR_DATA_TOGGLE$3, function (event) { - var _this12 = this; - - var target = getElementFromSelector(this); + EventHandler.on(document, EVENT_CLICK_DATA_API$2, SELECTOR_DATA_TOGGLE$2, function (event) { + const target = getElementFromSelector(this); if (this.tagName === 'A' || this.tagName === 'AREA') { event.preventDefault(); } - EventHandler.one(target, EVENT_SHOW$2, function (showEvent) { + EventHandler.one(target, EVENT_SHOW$3, showEvent => { if (showEvent.defaultPrevented) { // only register focus restorer if modal will actually get shown return; } - EventHandler.one(target, EVENT_HIDDEN$2, function () { - if (isVisible(_this12)) { - _this12.focus(); + EventHandler.one(target, EVENT_HIDDEN$3, () => { + if (isVisible(this)) { + this.focus(); } }); }); - var data = Data.getData(target, DATA_KEY$5); + let data = Data.get(target, DATA_KEY$6); if (!data) { - var config = _extends({}, Manipulator.getDataAttributes(target), Manipulator.getDataAttributes(this)); - + const config = { ...Manipulator.getDataAttributes(target), + ...Manipulator.getDataAttributes(this) + }; data = new Modal(target, config); } - data.show(this); + data.toggle(this); }); /** * ------------------------------------------------------------------------ @@ -3151,62 +2989,372 @@ * add .Modal to jQuery only if jQuery is present */ - onDOMContentLoaded(function () { - var $ = getjQuery(); - /* istanbul ignore if */ + defineJQueryPlugin(NAME$6, Modal); + + /** + * -------------------------------------------------------------------------- + * Bootstrap (v5.0.0-beta3): util/scrollBar.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + const SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed'; + const SELECTOR_STICKY_CONTENT = '.sticky-top'; + + const getWidth = () => { + // https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes + const documentWidth = document.documentElement.clientWidth; + return Math.abs(window.innerWidth - documentWidth); + }; + + const hide = (width = getWidth()) => { + document.body.style.overflow = 'hidden'; - if ($) { - var JQUERY_NO_CONFLICT = $.fn[NAME$5]; - $.fn[NAME$5] = Modal.jQueryInterface; - $.fn[NAME$5].Constructor = Modal; + _setElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight', calculatedValue => calculatedValue + width); - $.fn[NAME$5].noConflict = function () { - $.fn[NAME$5] = JQUERY_NO_CONFLICT; - return Modal.jQueryInterface; + _setElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight', calculatedValue => calculatedValue - width); + + _setElementAttributes('body', 'paddingRight', calculatedValue => calculatedValue + width); + }; + + const _setElementAttributes = (selector, styleProp, callback) => { + const scrollbarWidth = getWidth(); + SelectorEngine.find(selector).forEach(element => { + if (element !== document.body && window.innerWidth > element.clientWidth + scrollbarWidth) { + return; + } + + const actualValue = element.style[styleProp]; + const calculatedValue = window.getComputedStyle(element)[styleProp]; + Manipulator.setDataAttribute(element, styleProp, actualValue); + element.style[styleProp] = callback(Number.parseFloat(calculatedValue)) + 'px'; + }); + }; + + const reset = () => { + document.body.style.overflow = 'auto'; + + _resetElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight'); + + _resetElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight'); + + _resetElementAttributes('body', 'paddingRight'); + }; + + const _resetElementAttributes = (selector, styleProp) => { + SelectorEngine.find(selector).forEach(element => { + const value = Manipulator.getDataAttribute(element, styleProp); + + if (typeof value === 'undefined' && element === document.body) { + element.style.removeProperty(styleProp); + } else { + Manipulator.removeDataAttribute(element, styleProp); + element.style[styleProp] = value; + } + }); + }; + + /** + * -------------------------------------------------------------------------- + * Bootstrap (v5.0.0-beta3): offcanvas.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * -------------------------------------------------------------------------- + */ + /** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + + const NAME$5 = 'offcanvas'; + const DATA_KEY$5 = 'bs.offcanvas'; + const EVENT_KEY$5 = `.${DATA_KEY$5}`; + const DATA_API_KEY$2 = '.data-api'; + const EVENT_LOAD_DATA_API$1 = `load${EVENT_KEY$5}${DATA_API_KEY$2}`; + const ESCAPE_KEY = 'Escape'; + const Default$4 = { + backdrop: true, + keyboard: true, + scroll: false + }; + const DefaultType$4 = { + backdrop: 'boolean', + keyboard: 'boolean', + scroll: 'boolean' + }; + const CLASS_NAME_BACKDROP_BODY = 'offcanvas-backdrop'; + const CLASS_NAME_SHOW$4 = 'show'; + const CLASS_NAME_TOGGLING = 'offcanvas-toggling'; + const OPEN_SELECTOR = '.offcanvas.show'; + const ACTIVE_SELECTOR = `${OPEN_SELECTOR}, .${CLASS_NAME_TOGGLING}`; + const EVENT_SHOW$2 = `show${EVENT_KEY$5}`; + const EVENT_SHOWN$2 = `shown${EVENT_KEY$5}`; + const EVENT_HIDE$2 = `hide${EVENT_KEY$5}`; + const EVENT_HIDDEN$2 = `hidden${EVENT_KEY$5}`; + const EVENT_FOCUSIN = `focusin${EVENT_KEY$5}`; + const EVENT_CLICK_DATA_API$1 = `click${EVENT_KEY$5}${DATA_API_KEY$2}`; + const EVENT_CLICK_DISMISS$1 = `click.dismiss${EVENT_KEY$5}`; + const SELECTOR_DATA_DISMISS$1 = '[data-bs-dismiss="offcanvas"]'; + const SELECTOR_DATA_TOGGLE$1 = '[data-bs-toggle="offcanvas"]'; + /** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + + class Offcanvas extends BaseComponent { + constructor(element, config) { + super(element); + this._config = this._getConfig(config); + this._isShown = false; + + this._addEventListeners(); + } // Getters + + + static get Default() { + return Default$4; + } + + static get DATA_KEY() { + return DATA_KEY$5; + } // Public + + + toggle(relatedTarget) { + return this._isShown ? this.hide() : this.show(relatedTarget); + } + + show(relatedTarget) { + if (this._isShown) { + return; + } + + const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$2, { + relatedTarget + }); + + if (showEvent.defaultPrevented) { + return; + } + + this._isShown = true; + this._element.style.visibility = 'visible'; + + if (this._config.backdrop) { + document.body.classList.add(CLASS_NAME_BACKDROP_BODY); + } + + if (!this._config.scroll) { + hide(); + } + + this._element.classList.add(CLASS_NAME_TOGGLING); + + this._element.removeAttribute('aria-hidden'); + + this._element.setAttribute('aria-modal', true); + + this._element.setAttribute('role', 'dialog'); + + this._element.classList.add(CLASS_NAME_SHOW$4); + + const completeCallBack = () => { + this._element.classList.remove(CLASS_NAME_TOGGLING); + + EventHandler.trigger(this._element, EVENT_SHOWN$2, { + relatedTarget + }); + + this._enforceFocusOnElement(this._element); + }; + + setTimeout(completeCallBack, getTransitionDurationFromElement(this._element)); + } + + hide() { + if (!this._isShown) { + return; + } + + const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$2); + + if (hideEvent.defaultPrevented) { + return; + } + + this._element.classList.add(CLASS_NAME_TOGGLING); + + EventHandler.off(document, EVENT_FOCUSIN); + + this._element.blur(); + + this._isShown = false; + + this._element.classList.remove(CLASS_NAME_SHOW$4); + + const completeCallback = () => { + this._element.setAttribute('aria-hidden', true); + + this._element.removeAttribute('aria-modal'); + + this._element.removeAttribute('role'); + + this._element.style.visibility = 'hidden'; + + if (this._config.backdrop) { + document.body.classList.remove(CLASS_NAME_BACKDROP_BODY); + } + + if (!this._config.scroll) { + reset(); + } + + EventHandler.trigger(this._element, EVENT_HIDDEN$2); + + this._element.classList.remove(CLASS_NAME_TOGGLING); + }; + + setTimeout(completeCallback, getTransitionDurationFromElement(this._element)); + } // Private + + + _getConfig(config) { + config = { ...Default$4, + ...Manipulator.getDataAttributes(this._element), + ...(typeof config === 'object' ? config : {}) }; + typeCheckConfig(NAME$5, config, DefaultType$4); + return config; + } + + _enforceFocusOnElement(element) { + EventHandler.off(document, EVENT_FOCUSIN); // guard against infinite focus loop + + EventHandler.on(document, EVENT_FOCUSIN, event => { + if (document !== event.target && element !== event.target && !element.contains(event.target)) { + element.focus(); + } + }); + element.focus(); + } + + _addEventListeners() { + EventHandler.on(this._element, EVENT_CLICK_DISMISS$1, SELECTOR_DATA_DISMISS$1, () => this.hide()); + EventHandler.on(document, 'keydown', event => { + if (this._config.keyboard && event.key === ESCAPE_KEY) { + this.hide(); + } + }); + EventHandler.on(document, EVENT_CLICK_DATA_API$1, event => { + const target = SelectorEngine.findOne(getSelectorFromElement(event.target)); + + if (!this._element.contains(event.target) && target !== this._element) { + this.hide(); + } + }); + } // Static + + + static jQueryInterface(config) { + return this.each(function () { + const data = Data.get(this, DATA_KEY$5) || new Offcanvas(this, typeof config === 'object' ? config : {}); + + if (typeof config !== 'string') { + return; + } + + if (data[config] === undefined || config.startsWith('_') || config === 'constructor') { + throw new TypeError(`No method named "${config}"`); + } + + data[config](this); + }); } + + } + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + + EventHandler.on(document, EVENT_CLICK_DATA_API$1, SELECTOR_DATA_TOGGLE$1, function (event) { + const target = getElementFromSelector(this); + + if (['A', 'AREA'].includes(this.tagName)) { + event.preventDefault(); + } + + if (isDisabled(this)) { + return; + } + + EventHandler.one(target, EVENT_HIDDEN$2, () => { + // focus on trigger when it is closed + if (isVisible(this)) { + this.focus(); + } + }); // avoid conflict when clicking a toggler of an offcanvas, while another is open + + const allReadyOpen = SelectorEngine.findOne(ACTIVE_SELECTOR); + + if (allReadyOpen && allReadyOpen !== target) { + return; + } + + const data = Data.get(target, DATA_KEY$5) || new Offcanvas(target); + data.toggle(this); }); + EventHandler.on(window, EVENT_LOAD_DATA_API$1, () => { + SelectorEngine.find(OPEN_SELECTOR).forEach(el => (Data.get(el, DATA_KEY$5) || new Offcanvas(el)).show()); + }); + /** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + */ + + defineJQueryPlugin(NAME$5, Offcanvas); /** * -------------------------------------------------------------------------- - * Bootstrap (v5.0.0-alpha3): util/sanitizer.js + * Bootstrap (v5.0.0-beta3): util/sanitizer.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ - var uriAttrs = new Set(['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href']); - var ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i; + const uriAttrs = new Set(['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href']); + const ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i; /** * A pattern that recognizes a commonly useful subset of URLs that are safe. * * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts */ - var SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi; + const SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/i; /** * A pattern that matches safe data URLs. Only matches image, video and audio types. * * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts */ - var DATA_URL_PATTERN = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i; + const DATA_URL_PATTERN = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i; - var allowedAttribute = function allowedAttribute(attr, allowedAttributeList) { - var attrName = attr.nodeName.toLowerCase(); + const allowedAttribute = (attr, allowedAttributeList) => { + const attrName = attr.nodeName.toLowerCase(); if (allowedAttributeList.includes(attrName)) { if (uriAttrs.has(attrName)) { - return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN)); + return Boolean(SAFE_URL_PATTERN.test(attr.nodeValue) || DATA_URL_PATTERN.test(attr.nodeValue)); } return true; } - var regExp = allowedAttributeList.filter(function (attrRegex) { - return attrRegex instanceof RegExp; - }); // Check if a regular expression validates the attribute. + const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp); // Check if a regular expression validates the attribute. - for (var i = 0, len = regExp.length; i < len; i++) { - if (attrName.match(regExp[i])) { + for (let i = 0, len = regExp.length; i < len; i++) { + if (regExp[i].test(attrName)) { return true; } } @@ -3214,7 +3362,7 @@ return false; }; - var DefaultAllowlist = { + const DefaultAllowlist = { // Global attributes allowed on any supplied element below. '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN], a: ['target', 'href', 'title', 'rel'], @@ -3248,8 +3396,6 @@ ul: [] }; function sanitizeHtml(unsafeHtml, allowList, sanitizeFn) { - var _ref; - if (!unsafeHtml.length) { return unsafeHtml; } @@ -3258,55 +3404,51 @@ return sanitizeFn(unsafeHtml); } - var domParser = new window.DOMParser(); - var createdDocument = domParser.parseFromString(unsafeHtml, 'text/html'); - var allowlistKeys = Object.keys(allowList); - - var elements = (_ref = []).concat.apply(_ref, createdDocument.body.querySelectorAll('*')); - - var _loop = function _loop(i, len) { - var _ref2; + const domParser = new window.DOMParser(); + const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html'); + const allowlistKeys = Object.keys(allowList); + const elements = [].concat(...createdDocument.body.querySelectorAll('*')); - var el = elements[i]; - var elName = el.nodeName.toLowerCase(); + for (let i = 0, len = elements.length; i < len; i++) { + const el = elements[i]; + const elName = el.nodeName.toLowerCase(); if (!allowlistKeys.includes(elName)) { el.parentNode.removeChild(el); - return "continue"; + continue; } - var attributeList = (_ref2 = []).concat.apply(_ref2, el.attributes); - - var allowedAttributes = [].concat(allowList['*'] || [], allowList[elName] || []); - attributeList.forEach(function (attr) { + const attributeList = [].concat(...el.attributes); + const allowedAttributes = [].concat(allowList['*'] || [], allowList[elName] || []); + attributeList.forEach(attr => { if (!allowedAttribute(attr, allowedAttributes)) { el.removeAttribute(attr.nodeName); } }); - }; - - for (var i = 0, len = elements.length; i < len; i++) { - var _ret = _loop(i); - - if (_ret === "continue") continue; } return createdDocument.body.innerHTML; } /** + * -------------------------------------------------------------------------- + * Bootstrap (v5.0.0-beta3): tooltip.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + /** * ------------------------------------------------------------------------ * Constants * ------------------------------------------------------------------------ */ - var NAME$6 = 'tooltip'; - var DATA_KEY$6 = 'bs.tooltip'; - var EVENT_KEY$6 = "." + DATA_KEY$6; - var CLASS_PREFIX = 'bs-tooltip'; - var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g'); - var DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn']); - var DefaultType$4 = { + const NAME$4 = 'tooltip'; + const DATA_KEY$4 = 'bs.tooltip'; + const EVENT_KEY$4 = `.${DATA_KEY$4}`; + const CLASS_PREFIX$1 = 'bs-tooltip'; + const BSCLS_PREFIX_REGEX$1 = new RegExp(`(^|\\s)${CLASS_PREFIX$1}\\S+`, 'g'); + const DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn']); + const DefaultType$3 = { animation: 'boolean', template: 'string', title: '(string|element|function)', @@ -3315,24 +3457,24 @@ html: 'boolean', selector: '(string|boolean)', placement: '(string|function)', - offset: '(number|string|function)', + offset: '(array|string|function)', container: '(string|element|boolean)', - fallbackPlacement: '(string|array)', + fallbackPlacements: 'array', boundary: '(string|element)', customClass: '(string|function)', sanitize: 'boolean', sanitizeFn: '(null|function)', allowList: 'object', - popperConfig: '(null|object)' + popperConfig: '(null|object|function)' }; - var AttachmentMap = { + const AttachmentMap = { AUTO: 'auto', TOP: 'top', - RIGHT: isRTL ? 'left' : 'right', + RIGHT: isRTL() ? 'left' : 'right', BOTTOM: 'bottom', - LEFT: isRTL ? 'right' : 'left' + LEFT: isRTL() ? 'right' : 'left' }; - var Default$4 = { + const Default$3 = { animation: true, template: '<div class="tooltip" role="tooltip">' + '<div class="tooltip-arrow"></div>' + '<div class="tooltip-inner"></div>' + '</div>', trigger: 'hover focus', @@ -3341,99 +3483,109 @@ html: false, selector: false, placement: 'top', - offset: 0, + offset: [0, 0], container: false, - fallbackPlacement: 'flip', - boundary: 'scrollParent', + fallbackPlacements: ['top', 'right', 'bottom', 'left'], + boundary: 'clippingParents', customClass: '', sanitize: true, sanitizeFn: null, allowList: DefaultAllowlist, popperConfig: null }; - var Event$1 = { - HIDE: "hide" + EVENT_KEY$6, - HIDDEN: "hidden" + EVENT_KEY$6, - SHOW: "show" + EVENT_KEY$6, - SHOWN: "shown" + EVENT_KEY$6, - INSERTED: "inserted" + EVENT_KEY$6, - CLICK: "click" + EVENT_KEY$6, - FOCUSIN: "focusin" + EVENT_KEY$6, - FOCUSOUT: "focusout" + EVENT_KEY$6, - MOUSEENTER: "mouseenter" + EVENT_KEY$6, - MOUSELEAVE: "mouseleave" + EVENT_KEY$6 + const Event$2 = { + HIDE: `hide${EVENT_KEY$4}`, + HIDDEN: `hidden${EVENT_KEY$4}`, + SHOW: `show${EVENT_KEY$4}`, + SHOWN: `shown${EVENT_KEY$4}`, + INSERTED: `inserted${EVENT_KEY$4}`, + CLICK: `click${EVENT_KEY$4}`, + FOCUSIN: `focusin${EVENT_KEY$4}`, + FOCUSOUT: `focusout${EVENT_KEY$4}`, + MOUSEENTER: `mouseenter${EVENT_KEY$4}`, + MOUSELEAVE: `mouseleave${EVENT_KEY$4}` }; - var CLASS_NAME_FADE$1 = 'fade'; - var CLASS_NAME_MODAL = 'modal'; - var CLASS_NAME_SHOW$3 = 'show'; - var HOVER_STATE_SHOW = 'show'; - var HOVER_STATE_OUT = 'out'; - var SELECTOR_TOOLTIP_INNER = '.tooltip-inner'; - var TRIGGER_HOVER = 'hover'; - var TRIGGER_FOCUS = 'focus'; - var TRIGGER_CLICK = 'click'; - var TRIGGER_MANUAL = 'manual'; + const CLASS_NAME_FADE$3 = 'fade'; + const CLASS_NAME_MODAL = 'modal'; + const CLASS_NAME_SHOW$3 = 'show'; + const HOVER_STATE_SHOW = 'show'; + const HOVER_STATE_OUT = 'out'; + const SELECTOR_TOOLTIP_INNER = '.tooltip-inner'; + const TRIGGER_HOVER = 'hover'; + const TRIGGER_FOCUS = 'focus'; + const TRIGGER_CLICK = 'click'; + const TRIGGER_MANUAL = 'manual'; /** * ------------------------------------------------------------------------ * Class Definition * ------------------------------------------------------------------------ */ - var Tooltip = /*#__PURE__*/function (_BaseComponent) { - _inheritsLoose(Tooltip, _BaseComponent); - - function Tooltip(element, config) { - var _this; - - if (typeof Popper__default['default'] === 'undefined') { + class Tooltip extends BaseComponent { + constructor(element, config) { + if (typeof Popper__namespace === 'undefined') { throw new TypeError('Bootstrap\'s tooltips require Popper (https://popper.js.org)'); } - _this = _BaseComponent.call(this, element) || this; // private - - _this._isEnabled = true; - _this._timeout = 0; - _this._hoverState = ''; - _this._activeTrigger = {}; - _this._popper = null; // Protected + super(element); // private - _this.config = _this._getConfig(config); - _this.tip = null; + this._isEnabled = true; + this._timeout = 0; + this._hoverState = ''; + this._activeTrigger = {}; + this._popper = null; // Protected - _this._setListeners(); + this.config = this._getConfig(config); + this.tip = null; - return _this; + this._setListeners(); } // Getters - var _proto = Tooltip.prototype; + static get Default() { + return Default$3; + } + + static get NAME() { + return NAME$4; + } + + static get DATA_KEY() { + return DATA_KEY$4; + } + + static get Event() { + return Event$2; + } + + static get EVENT_KEY() { + return EVENT_KEY$4; + } - // Public - _proto.enable = function enable() { + static get DefaultType() { + return DefaultType$3; + } // Public + + + enable() { this._isEnabled = true; - }; + } - _proto.disable = function disable() { + disable() { this._isEnabled = false; - }; + } - _proto.toggleEnabled = function toggleEnabled() { + toggleEnabled() { this._isEnabled = !this._isEnabled; - }; + } - _proto.toggle = function toggle(event) { + toggle(event) { if (!this._isEnabled) { return; } if (event) { - var dataKey = this.constructor.DATA_KEY; - var context = Data.getData(event.delegateTarget, dataKey); - - if (!context) { - context = new this.constructor(event.delegateTarget, this._getDelegateConfig()); - Data.setData(event.delegateTarget, dataKey, context); - } + const context = this._initializeOnDelegatedTarget(event); context._activeTrigger.click = !context._activeTrigger.click; @@ -3451,14 +3603,14 @@ this._enter(null, this); } - }; + } - _proto.dispose = function dispose() { + dispose() { clearTimeout(this._timeout); EventHandler.off(this._element, this.constructor.EVENT_KEY); - EventHandler.off(this._element.closest("." + CLASS_NAME_MODAL), 'hide.bs.modal', this._hideModalHandler); + EventHandler.off(this._element.closest(`.${CLASS_NAME_MODAL}`), 'hide.bs.modal', this._hideModalHandler); - if (this.tip) { + if (this.tip && this.tip.parentNode) { this.tip.parentNode.removeChild(this.tip); } @@ -3474,123 +3626,125 @@ this._popper = null; this.config = null; this.tip = null; + super.dispose(); + } - _BaseComponent.prototype.dispose.call(this); - }; - - _proto.show = function show() { - var _this2 = this; - + show() { if (this._element.style.display === 'none') { throw new Error('Please use show on visible elements'); } - if (this.isWithContent() && this._isEnabled) { - var showEvent = EventHandler.trigger(this._element, this.constructor.Event.SHOW); - var shadowRoot = findShadowRoot(this._element); - var isInTheDom = shadowRoot === null ? this._element.ownerDocument.documentElement.contains(this._element) : shadowRoot.contains(this._element); + if (!(this.isWithContent() && this._isEnabled)) { + return; + } - if (showEvent.defaultPrevented || !isInTheDom) { - return; - } + const showEvent = EventHandler.trigger(this._element, this.constructor.Event.SHOW); + const shadowRoot = findShadowRoot(this._element); + const isInTheDom = shadowRoot === null ? this._element.ownerDocument.documentElement.contains(this._element) : shadowRoot.contains(this._element); - var tip = this.getTipElement(); - var tipId = getUID(this.constructor.NAME); - tip.setAttribute('id', tipId); + if (showEvent.defaultPrevented || !isInTheDom) { + return; + } - this._element.setAttribute('aria-describedby', tipId); + const tip = this.getTipElement(); + const tipId = getUID(this.constructor.NAME); + tip.setAttribute('id', tipId); - this.setContent(); + this._element.setAttribute('aria-describedby', tipId); - if (this.config.animation) { - tip.classList.add(CLASS_NAME_FADE$1); - } + this.setContent(); - var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this._element) : this.config.placement; + if (this.config.animation) { + tip.classList.add(CLASS_NAME_FADE$3); + } - var attachment = this._getAttachment(placement); + const placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this._element) : this.config.placement; - this._addAttachmentClass(attachment); + const attachment = this._getAttachment(placement); - var container = this._getContainer(); + this._addAttachmentClass(attachment); - Data.setData(tip, this.constructor.DATA_KEY, this); + const container = this._getContainer(); - if (!this._element.ownerDocument.documentElement.contains(this.tip)) { - container.appendChild(tip); - } + Data.set(tip, this.constructor.DATA_KEY, this); + if (!this._element.ownerDocument.documentElement.contains(this.tip)) { + container.appendChild(tip); EventHandler.trigger(this._element, this.constructor.Event.INSERTED); - this._popper = new Popper__default['default'](this._element, tip, this._getPopperConfig(attachment)); - tip.classList.add(CLASS_NAME_SHOW$3); - var customClass = typeof this.config.customClass === 'function' ? this.config.customClass() : this.config.customClass; - - if (customClass) { - var _tip$classList; - - (_tip$classList = tip.classList).add.apply(_tip$classList, customClass.split(' ')); - } // If this is a touch-enabled device we add extra - // empty mouseover listeners to the body's immediate children; - // only needed because of broken event delegation on iOS - // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html + } + if (this._popper) { + this._popper.update(); + } else { + this._popper = Popper__namespace.createPopper(this._element, tip, this._getPopperConfig(attachment)); + } - if ('ontouchstart' in document.documentElement) { - var _ref; + tip.classList.add(CLASS_NAME_SHOW$3); + const customClass = typeof this.config.customClass === 'function' ? this.config.customClass() : this.config.customClass; - (_ref = []).concat.apply(_ref, document.body.children).forEach(function (element) { - EventHandler.on(element, 'mouseover', noop()); - }); - } + if (customClass) { + tip.classList.add(...customClass.split(' ')); + } // If this is a touch-enabled device we add extra + // empty mouseover listeners to the body's immediate children; + // only needed because of broken event delegation on iOS + // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html - var complete = function complete() { - if (_this2.config.animation) { - _this2._fixTransition(); - } - var prevHoverState = _this2._hoverState; - _this2._hoverState = null; - EventHandler.trigger(_this2._element, _this2.constructor.Event.SHOWN); + if ('ontouchstart' in document.documentElement) { + [].concat(...document.body.children).forEach(element => { + EventHandler.on(element, 'mouseover', noop()); + }); + } - if (prevHoverState === HOVER_STATE_OUT) { - _this2._leave(null, _this2); - } - }; + const complete = () => { + const prevHoverState = this._hoverState; + this._hoverState = null; + EventHandler.trigger(this._element, this.constructor.Event.SHOWN); - if (this.tip.classList.contains(CLASS_NAME_FADE$1)) { - var transitionDuration = getTransitionDurationFromElement(this.tip); - EventHandler.one(this.tip, TRANSITION_END, complete); - emulateTransitionEnd(this.tip, transitionDuration); - } else { - complete(); + if (prevHoverState === HOVER_STATE_OUT) { + this._leave(null, this); } - } - }; + }; - _proto.hide = function hide() { - var _this3 = this; + if (this.tip.classList.contains(CLASS_NAME_FADE$3)) { + const transitionDuration = getTransitionDurationFromElement(this.tip); + EventHandler.one(this.tip, 'transitionend', complete); + emulateTransitionEnd(this.tip, transitionDuration); + } else { + complete(); + } + } + hide() { if (!this._popper) { return; } - var tip = this.getTipElement(); + const tip = this.getTipElement(); + + const complete = () => { + if (this._isWithActiveTrigger()) { + return; + } - var complete = function complete() { - if (_this3._hoverState !== HOVER_STATE_SHOW && tip.parentNode) { + if (this._hoverState !== HOVER_STATE_SHOW && tip.parentNode) { tip.parentNode.removeChild(tip); } - _this3._cleanTipClass(); + this._cleanTipClass(); - _this3._element.removeAttribute('aria-describedby'); + this._element.removeAttribute('aria-describedby'); - EventHandler.trigger(_this3._element, _this3.constructor.Event.HIDDEN); + EventHandler.trigger(this._element, this.constructor.Event.HIDDEN); - _this3._popper.destroy(); + if (this._popper) { + this._popper.destroy(); + + this._popper = null; + } }; - var hideEvent = EventHandler.trigger(this._element, this.constructor.Event.HIDE); + const hideEvent = EventHandler.trigger(this._element, this.constructor.Event.HIDE); if (hideEvent.defaultPrevented) { return; @@ -3600,57 +3754,53 @@ // empty mouseover listeners we added for iOS support if ('ontouchstart' in document.documentElement) { - var _ref2; - - (_ref2 = []).concat.apply(_ref2, document.body.children).forEach(function (element) { - return EventHandler.off(element, 'mouseover', noop); - }); + [].concat(...document.body.children).forEach(element => EventHandler.off(element, 'mouseover', noop)); } this._activeTrigger[TRIGGER_CLICK] = false; this._activeTrigger[TRIGGER_FOCUS] = false; this._activeTrigger[TRIGGER_HOVER] = false; - if (this.tip.classList.contains(CLASS_NAME_FADE$1)) { - var transitionDuration = getTransitionDurationFromElement(tip); - EventHandler.one(tip, TRANSITION_END, complete); + if (this.tip.classList.contains(CLASS_NAME_FADE$3)) { + const transitionDuration = getTransitionDurationFromElement(tip); + EventHandler.one(tip, 'transitionend', complete); emulateTransitionEnd(tip, transitionDuration); } else { complete(); } this._hoverState = ''; - }; + } - _proto.update = function update() { + update() { if (this._popper !== null) { - this._popper.scheduleUpdate(); + this._popper.update(); } } // Protected - ; - _proto.isWithContent = function isWithContent() { + + isWithContent() { return Boolean(this.getTitle()); - }; + } - _proto.getTipElement = function getTipElement() { + getTipElement() { if (this.tip) { return this.tip; } - var element = document.createElement('div'); + const element = document.createElement('div'); element.innerHTML = this.config.template; this.tip = element.children[0]; return this.tip; - }; + } - _proto.setContent = function setContent() { - var tip = this.getTipElement(); + setContent() { + const tip = this.getTipElement(); this.setElementContent(SelectorEngine.findOne(SELECTOR_TOOLTIP_INNER, tip), this.getTitle()); - tip.classList.remove(CLASS_NAME_FADE$1, CLASS_NAME_SHOW$3); - }; + tip.classList.remove(CLASS_NAME_FADE$3, CLASS_NAME_SHOW$3); + } - _proto.setElementContent = function setElementContent(element, content) { + setElementContent(element, content) { if (element === null) { return; } @@ -3682,19 +3832,19 @@ } else { element.textContent = content; } - }; + } - _proto.getTitle = function getTitle() { - var title = this._element.getAttribute('data-bs-original-title'); + getTitle() { + let title = this._element.getAttribute('data-bs-original-title'); if (!title) { title = typeof this.config.title === 'function' ? this.config.title.call(this._element) : this.config.title; } return title; - }; + } - _proto.updateAttachment = function updateAttachment(attachment) { + updateAttachment(attachment) { if (attachment === 'right') { return 'end'; } @@ -3705,59 +3855,82 @@ return attachment; } // Private - ; - _proto._getPopperConfig = function _getPopperConfig(attachment) { - var _this4 = this; - var defaultBsConfig = { - placement: attachment, - modifiers: { - offset: this._getOffset(), - flip: { - behavior: this.config.fallbackPlacement - }, - arrow: { - element: "." + this.constructor.NAME + "-arrow" - }, - preventOverflow: { - boundariesElement: this.config.boundary - } - }, - onCreate: function onCreate(data) { - if (data.originalPlacement !== data.placement) { - _this4._handlePopperPlacementChange(data); - } - }, - onUpdate: function onUpdate(data) { - return _this4._handlePopperPlacementChange(data); - } - }; - return _extends({}, defaultBsConfig, this.config.popperConfig); - }; + _initializeOnDelegatedTarget(event, context) { + const dataKey = this.constructor.DATA_KEY; + context = context || Data.get(event.delegateTarget, dataKey); - _proto._addAttachmentClass = function _addAttachmentClass(attachment) { - this.getTipElement().classList.add(CLASS_PREFIX + "-" + this.updateAttachment(attachment)); - }; + if (!context) { + context = new this.constructor(event.delegateTarget, this._getDelegateConfig()); + Data.set(event.delegateTarget, dataKey, context); + } - _proto._getOffset = function _getOffset() { - var _this5 = this; + return context; + } - var offset = {}; + _getOffset() { + const { + offset + } = this.config; - if (typeof this.config.offset === 'function') { - offset.fn = function (data) { - data.offsets = _extends({}, data.offsets, _this5.config.offset(data.offsets, _this5._element) || {}); - return data; - }; - } else { - offset.offset = this.config.offset; + if (typeof offset === 'string') { + return offset.split(',').map(val => Number.parseInt(val, 10)); + } + + if (typeof offset === 'function') { + return popperData => offset(popperData, this._element); } return offset; - }; + } - _proto._getContainer = function _getContainer() { + _getPopperConfig(attachment) { + const defaultBsPopperConfig = { + placement: attachment, + modifiers: [{ + name: 'flip', + options: { + altBoundary: true, + fallbackPlacements: this.config.fallbackPlacements + } + }, { + name: 'offset', + options: { + offset: this._getOffset() + } + }, { + name: 'preventOverflow', + options: { + boundary: this.config.boundary + } + }, { + name: 'arrow', + options: { + element: `.${this.constructor.NAME}-arrow` + } + }, { + name: 'onChange', + enabled: true, + phase: 'afterWrite', + fn: data => this._handlePopperPlacementChange(data) + }], + onFirstUpdate: data => { + if (data.options.placement !== data.placement) { + this._handlePopperPlacementChange(data); + } + } + }; + return { ...defaultBsPopperConfig, + ...(typeof this.config.popperConfig === 'function' ? this.config.popperConfig(defaultBsPopperConfig) : this.config.popperConfig) + }; + } + + _addAttachmentClass(attachment) { + this.getTipElement().classList.add(`${CLASS_PREFIX$1}-${this.updateAttachment(attachment)}`); + } + + _getContainer() { if (this.config.container === false) { return document.body; } @@ -3767,55 +3940,47 @@ } return SelectorEngine.findOne(this.config.container); - }; + } - _proto._getAttachment = function _getAttachment(placement) { + _getAttachment(placement) { return AttachmentMap[placement.toUpperCase()]; - }; - - _proto._setListeners = function _setListeners() { - var _this6 = this; + } - var triggers = this.config.trigger.split(' '); - triggers.forEach(function (trigger) { + _setListeners() { + const triggers = this.config.trigger.split(' '); + triggers.forEach(trigger => { if (trigger === 'click') { - EventHandler.on(_this6._element, _this6.constructor.Event.CLICK, _this6.config.selector, function (event) { - return _this6.toggle(event); - }); + EventHandler.on(this._element, this.constructor.Event.CLICK, this.config.selector, event => this.toggle(event)); } else if (trigger !== TRIGGER_MANUAL) { - var eventIn = trigger === TRIGGER_HOVER ? _this6.constructor.Event.MOUSEENTER : _this6.constructor.Event.FOCUSIN; - var eventOut = trigger === TRIGGER_HOVER ? _this6.constructor.Event.MOUSELEAVE : _this6.constructor.Event.FOCUSOUT; - EventHandler.on(_this6._element, eventIn, _this6.config.selector, function (event) { - return _this6._enter(event); - }); - EventHandler.on(_this6._element, eventOut, _this6.config.selector, function (event) { - return _this6._leave(event); - }); + const eventIn = trigger === TRIGGER_HOVER ? this.constructor.Event.MOUSEENTER : this.constructor.Event.FOCUSIN; + const eventOut = trigger === TRIGGER_HOVER ? this.constructor.Event.MOUSELEAVE : this.constructor.Event.FOCUSOUT; + EventHandler.on(this._element, eventIn, this.config.selector, event => this._enter(event)); + EventHandler.on(this._element, eventOut, this.config.selector, event => this._leave(event)); } }); - this._hideModalHandler = function () { - if (_this6._element) { - _this6.hide(); + this._hideModalHandler = () => { + if (this._element) { + this.hide(); } }; - EventHandler.on(this._element.closest("." + CLASS_NAME_MODAL), 'hide.bs.modal', this._hideModalHandler); + EventHandler.on(this._element.closest(`.${CLASS_NAME_MODAL}`), 'hide.bs.modal', this._hideModalHandler); if (this.config.selector) { - this.config = _extends({}, this.config, { + this.config = { ...this.config, trigger: 'manual', selector: '' - }); + }; } else { this._fixTitle(); } - }; + } - _proto._fixTitle = function _fixTitle() { - var title = this._element.getAttribute('title'); + _fixTitle() { + const title = this._element.getAttribute('title'); - var originalTitleType = typeof this._element.getAttribute('data-bs-original-title'); + const originalTitleType = typeof this._element.getAttribute('data-bs-original-title'); if (title || originalTitleType !== 'string') { this._element.setAttribute('data-bs-original-title', title || ''); @@ -3826,16 +3991,10 @@ this._element.setAttribute('title', ''); } - }; - - _proto._enter = function _enter(event, context) { - var dataKey = this.constructor.DATA_KEY; - context = context || Data.getData(event.delegateTarget, dataKey); + } - if (!context) { - context = new this.constructor(event.delegateTarget, this._getDelegateConfig()); - Data.setData(event.delegateTarget, dataKey, context); - } + _enter(event, context) { + context = this._initializeOnDelegatedTarget(event, context); if (event) { context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true; @@ -3854,24 +4013,18 @@ return; } - context._timeout = setTimeout(function () { + context._timeout = setTimeout(() => { if (context._hoverState === HOVER_STATE_SHOW) { context.show(); } }, context.config.delay.show); - }; - - _proto._leave = function _leave(event, context) { - var dataKey = this.constructor.DATA_KEY; - context = context || Data.getData(event.delegateTarget, dataKey); + } - if (!context) { - context = new this.constructor(event.delegateTarget, this._getDelegateConfig()); - Data.setData(event.delegateTarget, dataKey, context); - } + _leave(event, context) { + context = this._initializeOnDelegatedTarget(event, context); if (event) { - context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] = false; + context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] = context._element.contains(event.relatedTarget); } if (context._isWithActiveTrigger()) { @@ -3886,26 +4039,26 @@ return; } - context._timeout = setTimeout(function () { + context._timeout = setTimeout(() => { if (context._hoverState === HOVER_STATE_OUT) { context.hide(); } }, context.config.delay.hide); - }; + } - _proto._isWithActiveTrigger = function _isWithActiveTrigger() { - for (var trigger in this._activeTrigger) { + _isWithActiveTrigger() { + for (const trigger in this._activeTrigger) { if (this._activeTrigger[trigger]) { return true; } } return false; - }; + } - _proto._getConfig = function _getConfig(config) { - var dataAttributes = Manipulator.getDataAttributes(this._element); - Object.keys(dataAttributes).forEach(function (dataAttr) { + _getConfig(config) { + const dataAttributes = Manipulator.getDataAttributes(this._element); + Object.keys(dataAttributes).forEach(dataAttr => { if (DISALLOWED_ATTRIBUTES.has(dataAttr)) { delete dataAttributes[dataAttr]; } @@ -3915,7 +4068,10 @@ config.container = config.container[0]; } - config = _extends({}, this.constructor.Default, dataAttributes, typeof config === 'object' && config ? config : {}); + config = { ...this.constructor.Default, + ...dataAttributes, + ...(typeof config === 'object' && config ? config : {}) + }; if (typeof config.delay === 'number') { config.delay = { @@ -3932,20 +4088,20 @@ config.content = config.content.toString(); } - typeCheckConfig(NAME$6, config, this.constructor.DefaultType); + typeCheckConfig(NAME$4, config, this.constructor.DefaultType); if (config.sanitize) { config.template = sanitizeHtml(config.template, config.allowList, config.sanitizeFn); } return config; - }; + } - _proto._getDelegateConfig = function _getDelegateConfig() { - var config = {}; + _getDelegateConfig() { + const config = {}; if (this.config) { - for (var key in this.config) { + for (const key in this.config) { if (this.constructor.Default[key] !== this.config[key]) { config[key] = this.config[key]; } @@ -3953,50 +4109,39 @@ } return config; - }; + } - _proto._cleanTipClass = function _cleanTipClass() { - var tip = this.getTipElement(); - var tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX); + _cleanTipClass() { + const tip = this.getTipElement(); + const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX$1); if (tabClass !== null && tabClass.length > 0) { - tabClass.map(function (token) { - return token.trim(); - }).forEach(function (tClass) { - return tip.classList.remove(tClass); - }); + tabClass.map(token => token.trim()).forEach(tClass => tip.classList.remove(tClass)); } - }; - - _proto._handlePopperPlacementChange = function _handlePopperPlacementChange(popperData) { - this.tip = popperData.instance.popper; - - this._cleanTipClass(); - - this._addAttachmentClass(this._getAttachment(popperData.placement)); - }; + } - _proto._fixTransition = function _fixTransition() { - var tip = this.getTipElement(); - var initConfigAnimation = this.config.animation; + _handlePopperPlacementChange(popperData) { + const { + state + } = popperData; - if (tip.getAttribute('x-placement') !== null) { + if (!state) { return; } - tip.classList.remove(CLASS_NAME_FADE$1); - this.config.animation = false; - this.hide(); - this.show(); - this.config.animation = initConfigAnimation; + this.tip = state.elements.popper; + + this._cleanTipClass(); + + this._addAttachmentClass(this._getAttachment(state.placement)); } // Static - ; - Tooltip.jQueryInterface = function jQueryInterface(config) { + + static jQueryInterface(config) { return this.each(function () { - var data = Data.getData(this, DATA_KEY$6); + let data = Data.get(this, DATA_KEY$4); - var _config = typeof config === 'object' && config; + const _config = typeof config === 'object' && config; if (!data && /dispose|hide/.test(config)) { return; @@ -4008,48 +4153,15 @@ if (typeof config === 'string') { if (typeof data[config] === 'undefined') { - throw new TypeError("No method named \"" + config + "\""); + throw new TypeError(`No method named "${config}"`); } data[config](); } }); - }; - - _createClass(Tooltip, null, [{ - key: "Default", - get: function get() { - return Default$4; - } - }, { - key: "NAME", - get: function get() { - return NAME$6; - } - }, { - key: "DATA_KEY", - get: function get() { - return DATA_KEY$6; - } - }, { - key: "Event", - get: function get() { - return Event$1; - } - }, { - key: "EVENT_KEY", - get: function get() { - return EVENT_KEY$6; - } - }, { - key: "DefaultType", - get: function get() { - return DefaultType$4; - } - }]); + } - return Tooltip; - }(BaseComponent); + } /** * ------------------------------------------------------------------------ * jQuery @@ -4058,124 +4170,127 @@ */ - onDOMContentLoaded(function () { - var $ = getjQuery(); - /* istanbul ignore if */ - - if ($) { - var JQUERY_NO_CONFLICT = $.fn[NAME$6]; - $.fn[NAME$6] = Tooltip.jQueryInterface; - $.fn[NAME$6].Constructor = Tooltip; - - $.fn[NAME$6].noConflict = function () { - $.fn[NAME$6] = JQUERY_NO_CONFLICT; - return Tooltip.jQueryInterface; - }; - } - }); + defineJQueryPlugin(NAME$4, Tooltip); /** + * -------------------------------------------------------------------------- + * Bootstrap (v5.0.0-beta3): popover.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + /** * ------------------------------------------------------------------------ * Constants * ------------------------------------------------------------------------ */ - var NAME$7 = 'popover'; - var DATA_KEY$7 = 'bs.popover'; - var EVENT_KEY$7 = "." + DATA_KEY$7; - var CLASS_PREFIX$1 = 'bs-popover'; - var BSCLS_PREFIX_REGEX$1 = new RegExp("(^|\\s)" + CLASS_PREFIX$1 + "\\S+", 'g'); - - var Default$5 = _extends({}, Tooltip.Default, { + const NAME$3 = 'popover'; + const DATA_KEY$3 = 'bs.popover'; + const EVENT_KEY$3 = `.${DATA_KEY$3}`; + const CLASS_PREFIX = 'bs-popover'; + const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\s)${CLASS_PREFIX}\\S+`, 'g'); + const Default$2 = { ...Tooltip.Default, placement: 'right', + offset: [0, 8], trigger: 'click', content: '', template: '<div class="popover" role="tooltip">' + '<div class="popover-arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div>' + '</div>' - }); - - var DefaultType$5 = _extends({}, Tooltip.DefaultType, { + }; + const DefaultType$2 = { ...Tooltip.DefaultType, content: '(string|element|function)' - }); - - var Event$2 = { - HIDE: "hide" + EVENT_KEY$7, - HIDDEN: "hidden" + EVENT_KEY$7, - SHOW: "show" + EVENT_KEY$7, - SHOWN: "shown" + EVENT_KEY$7, - INSERTED: "inserted" + EVENT_KEY$7, - CLICK: "click" + EVENT_KEY$7, - FOCUSIN: "focusin" + EVENT_KEY$7, - FOCUSOUT: "focusout" + EVENT_KEY$7, - MOUSEENTER: "mouseenter" + EVENT_KEY$7, - MOUSELEAVE: "mouseleave" + EVENT_KEY$7 }; - var CLASS_NAME_FADE$2 = 'fade'; - var CLASS_NAME_SHOW$4 = 'show'; - var SELECTOR_TITLE = '.popover-header'; - var SELECTOR_CONTENT = '.popover-body'; + const Event$1 = { + HIDE: `hide${EVENT_KEY$3}`, + HIDDEN: `hidden${EVENT_KEY$3}`, + SHOW: `show${EVENT_KEY$3}`, + SHOWN: `shown${EVENT_KEY$3}`, + INSERTED: `inserted${EVENT_KEY$3}`, + CLICK: `click${EVENT_KEY$3}`, + FOCUSIN: `focusin${EVENT_KEY$3}`, + FOCUSOUT: `focusout${EVENT_KEY$3}`, + MOUSEENTER: `mouseenter${EVENT_KEY$3}`, + MOUSELEAVE: `mouseleave${EVENT_KEY$3}` + }; + const CLASS_NAME_FADE$2 = 'fade'; + const CLASS_NAME_SHOW$2 = 'show'; + const SELECTOR_TITLE = '.popover-header'; + const SELECTOR_CONTENT = '.popover-body'; /** * ------------------------------------------------------------------------ * Class Definition * ------------------------------------------------------------------------ */ - var Popover = /*#__PURE__*/function (_Tooltip) { - _inheritsLoose(Popover, _Tooltip); + class Popover extends Tooltip { + // Getters + static get Default() { + return Default$2; + } + + static get NAME() { + return NAME$3; + } + + static get DATA_KEY() { + return DATA_KEY$3; + } + + static get Event() { + return Event$1; + } - function Popover() { - return _Tooltip.apply(this, arguments) || this; + static get EVENT_KEY() { + return EVENT_KEY$3; } - var _proto = Popover.prototype; + static get DefaultType() { + return DefaultType$2; + } // Overrides + - // Overrides - _proto.isWithContent = function isWithContent() { + isWithContent() { return this.getTitle() || this._getContent(); - }; + } - _proto.setContent = function setContent() { - var tip = this.getTipElement(); // we use append for html objects to maintain js events + setContent() { + const tip = this.getTipElement(); // we use append for html objects to maintain js events this.setElementContent(SelectorEngine.findOne(SELECTOR_TITLE, tip), this.getTitle()); - var content = this._getContent(); + let content = this._getContent(); if (typeof content === 'function') { content = content.call(this._element); } this.setElementContent(SelectorEngine.findOne(SELECTOR_CONTENT, tip), content); - tip.classList.remove(CLASS_NAME_FADE$2, CLASS_NAME_SHOW$4); + tip.classList.remove(CLASS_NAME_FADE$2, CLASS_NAME_SHOW$2); } // Private - ; - _proto._addAttachmentClass = function _addAttachmentClass(attachment) { - this.getTipElement().classList.add(CLASS_PREFIX$1 + "-" + this.updateAttachment(attachment)); - }; - _proto._getContent = function _getContent() { + _addAttachmentClass(attachment) { + this.getTipElement().classList.add(`${CLASS_PREFIX}-${this.updateAttachment(attachment)}`); + } + + _getContent() { return this._element.getAttribute('data-bs-content') || this.config.content; - }; + } - _proto._cleanTipClass = function _cleanTipClass() { - var tip = this.getTipElement(); - var tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX$1); + _cleanTipClass() { + const tip = this.getTipElement(); + const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX); if (tabClass !== null && tabClass.length > 0) { - tabClass.map(function (token) { - return token.trim(); - }).forEach(function (tClass) { - return tip.classList.remove(tClass); - }); + tabClass.map(token => token.trim()).forEach(tClass => tip.classList.remove(tClass)); } } // Static - ; - Popover.jQueryInterface = function jQueryInterface(config) { + + static jQueryInterface(config) { return this.each(function () { - var data = Data.getData(this, DATA_KEY$7); + let data = Data.get(this, DATA_KEY$3); - var _config = typeof config === 'object' ? config : null; + const _config = typeof config === 'object' ? config : null; if (!data && /dispose|hide/.test(config)) { return; @@ -4183,54 +4298,20 @@ if (!data) { data = new Popover(this, _config); - Data.setData(this, DATA_KEY$7, data); + Data.set(this, DATA_KEY$3, data); } if (typeof config === 'string') { if (typeof data[config] === 'undefined') { - throw new TypeError("No method named \"" + config + "\""); + throw new TypeError(`No method named "${config}"`); } data[config](); } }); - }; + } - _createClass(Popover, null, [{ - key: "Default", - // Getters - get: function get() { - return Default$5; - } - }, { - key: "NAME", - get: function get() { - return NAME$7; - } - }, { - key: "DATA_KEY", - get: function get() { - return DATA_KEY$7; - } - }, { - key: "Event", - get: function get() { - return Event$2; - } - }, { - key: "EVENT_KEY", - get: function get() { - return EVENT_KEY$7; - } - }, { - key: "DefaultType", - get: function get() { - return DefaultType$5; - } - }]); - - return Popover; - }(Tooltip); + } /** * ------------------------------------------------------------------------ * jQuery @@ -4239,107 +4320,94 @@ */ - onDOMContentLoaded(function () { - var $ = getjQuery(); - /* istanbul ignore if */ - - if ($) { - var JQUERY_NO_CONFLICT = $.fn[NAME$7]; - $.fn[NAME$7] = Popover.jQueryInterface; - $.fn[NAME$7].Constructor = Popover; - - $.fn[NAME$7].noConflict = function () { - $.fn[NAME$7] = JQUERY_NO_CONFLICT; - return Popover.jQueryInterface; - }; - } - }); + defineJQueryPlugin(NAME$3, Popover); /** + * -------------------------------------------------------------------------- + * Bootstrap (v5.0.0-beta3): scrollspy.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + /** * ------------------------------------------------------------------------ * Constants * ------------------------------------------------------------------------ */ - var NAME$8 = 'scrollspy'; - var DATA_KEY$8 = 'bs.scrollspy'; - var EVENT_KEY$8 = "." + DATA_KEY$8; - var DATA_API_KEY$6 = '.data-api'; - var Default$6 = { + const NAME$2 = 'scrollspy'; + const DATA_KEY$2 = 'bs.scrollspy'; + const EVENT_KEY$2 = `.${DATA_KEY$2}`; + const DATA_API_KEY$1 = '.data-api'; + const Default$1 = { offset: 10, method: 'auto', target: '' }; - var DefaultType$6 = { + const DefaultType$1 = { offset: 'number', method: 'string', target: '(string|element)' }; - var EVENT_ACTIVATE = "activate" + EVENT_KEY$8; - var EVENT_SCROLL = "scroll" + EVENT_KEY$8; - var EVENT_LOAD_DATA_API$1 = "load" + EVENT_KEY$8 + DATA_API_KEY$6; - var CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item'; - var CLASS_NAME_ACTIVE$2 = 'active'; - var SELECTOR_DATA_SPY = '[data-bs-spy="scroll"]'; - var SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'; - var SELECTOR_NAV_LINKS = '.nav-link'; - var SELECTOR_NAV_ITEMS = '.nav-item'; - var SELECTOR_LIST_ITEMS = '.list-group-item'; - var SELECTOR_DROPDOWN = '.dropdown'; - var SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'; - var METHOD_OFFSET = 'offset'; - var METHOD_POSITION = 'position'; + const EVENT_ACTIVATE = `activate${EVENT_KEY$2}`; + const EVENT_SCROLL = `scroll${EVENT_KEY$2}`; + const EVENT_LOAD_DATA_API = `load${EVENT_KEY$2}${DATA_API_KEY$1}`; + const CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item'; + const CLASS_NAME_ACTIVE$1 = 'active'; + const SELECTOR_DATA_SPY = '[data-bs-spy="scroll"]'; + const SELECTOR_NAV_LIST_GROUP$1 = '.nav, .list-group'; + const SELECTOR_NAV_LINKS = '.nav-link'; + const SELECTOR_NAV_ITEMS = '.nav-item'; + const SELECTOR_LIST_ITEMS = '.list-group-item'; + const SELECTOR_DROPDOWN$1 = '.dropdown'; + const SELECTOR_DROPDOWN_TOGGLE$1 = '.dropdown-toggle'; + const METHOD_OFFSET = 'offset'; + const METHOD_POSITION = 'position'; /** * ------------------------------------------------------------------------ * Class Definition * ------------------------------------------------------------------------ */ - var ScrollSpy = /*#__PURE__*/function (_BaseComponent) { - _inheritsLoose(ScrollSpy, _BaseComponent); - - function ScrollSpy(element, config) { - var _this; - - _this = _BaseComponent.call(this, element) || this; - _this._scrollElement = element.tagName === 'BODY' ? window : element; - _this._config = _this._getConfig(config); - _this._selector = _this._config.target + " " + SELECTOR_NAV_LINKS + ", " + _this._config.target + " " + SELECTOR_LIST_ITEMS + ", " + _this._config.target + " ." + CLASS_NAME_DROPDOWN_ITEM; - _this._offsets = []; - _this._targets = []; - _this._activeTarget = null; - _this._scrollHeight = 0; - EventHandler.on(_this._scrollElement, EVENT_SCROLL, function (event) { - return _this._process(event); - }); - - _this.refresh(); - - _this._process(); + class ScrollSpy extends BaseComponent { + constructor(element, config) { + super(element); + this._scrollElement = this._element.tagName === 'BODY' ? window : this._element; + this._config = this._getConfig(config); + this._selector = `${this._config.target} ${SELECTOR_NAV_LINKS}, ${this._config.target} ${SELECTOR_LIST_ITEMS}, ${this._config.target} .${CLASS_NAME_DROPDOWN_ITEM}`; + this._offsets = []; + this._targets = []; + this._activeTarget = null; + this._scrollHeight = 0; + EventHandler.on(this._scrollElement, EVENT_SCROLL, () => this._process()); + this.refresh(); - return _this; + this._process(); } // Getters - var _proto = ScrollSpy.prototype; + static get Default() { + return Default$1; + } + + static get DATA_KEY() { + return DATA_KEY$2; + } // Public - // Public - _proto.refresh = function refresh() { - var _this2 = this; - var autoMethod = this._scrollElement === this._scrollElement.window ? METHOD_OFFSET : METHOD_POSITION; - var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method; - var offsetBase = offsetMethod === METHOD_POSITION ? this._getScrollTop() : 0; + refresh() { + const autoMethod = this._scrollElement === this._scrollElement.window ? METHOD_OFFSET : METHOD_POSITION; + const offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method; + const offsetBase = offsetMethod === METHOD_POSITION ? this._getScrollTop() : 0; this._offsets = []; this._targets = []; this._scrollHeight = this._getScrollHeight(); - var targets = SelectorEngine.find(this._selector); - targets.map(function (element) { - var targetSelector = getSelectorFromElement(element); - var target = targetSelector ? SelectorEngine.findOne(targetSelector) : null; + const targets = SelectorEngine.find(this._selector); + targets.map(element => { + const targetSelector = getSelectorFromElement(element); + const target = targetSelector ? SelectorEngine.findOne(targetSelector) : null; if (target) { - var targetBCR = target.getBoundingClientRect(); + const targetBCR = target.getBoundingClientRect(); if (targetBCR.width || targetBCR.height) { return [Manipulator[offsetMethod](target).top + offsetBase, targetSelector]; @@ -4347,21 +4415,16 @@ } return null; - }).filter(function (item) { - return item; - }).sort(function (a, b) { - return a[0] - b[0]; - }).forEach(function (item) { - _this2._offsets.push(item[0]); - - _this2._targets.push(item[1]); - }); - }; + }).filter(item => item).sort((a, b) => a[0] - b[0]).forEach(item => { + this._offsets.push(item[0]); - _proto.dispose = function dispose() { - _BaseComponent.prototype.dispose.call(this); + this._targets.push(item[1]); + }); + } - EventHandler.off(this._scrollElement, EVENT_KEY$8); + dispose() { + super.dispose(); + EventHandler.off(this._scrollElement, EVENT_KEY$2); this._scrollElement = null; this._config = null; this._selector = null; @@ -4370,51 +4433,55 @@ this._activeTarget = null; this._scrollHeight = null; } // Private - ; - _proto._getConfig = function _getConfig(config) { - config = _extends({}, Default$6, typeof config === 'object' && config ? config : {}); + + _getConfig(config) { + config = { ...Default$1, + ...(typeof config === 'object' && config ? config : {}) + }; if (typeof config.target !== 'string' && isElement(config.target)) { - var id = config.target.id; + let { + id + } = config.target; if (!id) { - id = getUID(NAME$8); + id = getUID(NAME$2); config.target.id = id; } - config.target = "#" + id; + config.target = `#${id}`; } - typeCheckConfig(NAME$8, config, DefaultType$6); + typeCheckConfig(NAME$2, config, DefaultType$1); return config; - }; + } - _proto._getScrollTop = function _getScrollTop() { + _getScrollTop() { return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop; - }; + } - _proto._getScrollHeight = function _getScrollHeight() { + _getScrollHeight() { return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight); - }; + } - _proto._getOffsetHeight = function _getOffsetHeight() { + _getOffsetHeight() { return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height; - }; + } - _proto._process = function _process() { - var scrollTop = this._getScrollTop() + this._config.offset; + _process() { + const scrollTop = this._getScrollTop() + this._config.offset; - var scrollHeight = this._getScrollHeight(); + const scrollHeight = this._getScrollHeight(); - var maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight(); + const maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight(); if (this._scrollHeight !== scrollHeight) { this.refresh(); } if (scrollTop >= maxScroll) { - var target = this._targets[this._targets.length - 1]; + const target = this._targets[this._targets.length - 1]; if (this._activeTarget !== target) { this._activate(target); @@ -4431,43 +4498,37 @@ return; } - for (var i = this._offsets.length; i--;) { - var isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]); + for (let i = this._offsets.length; i--;) { + const isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]); if (isActiveTarget) { this._activate(this._targets[i]); } } - }; + } - _proto._activate = function _activate(target) { + _activate(target) { this._activeTarget = target; this._clear(); - var queries = this._selector.split(',').map(function (selector) { - return selector + "[data-bs-target=\"" + target + "\"]," + selector + "[href=\"" + target + "\"]"; - }); + const queries = this._selector.split(',').map(selector => `${selector}[data-bs-target="${target}"],${selector}[href="${target}"]`); - var link = SelectorEngine.findOne(queries.join(',')); + const link = SelectorEngine.findOne(queries.join(',')); if (link.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) { - SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE, link.closest(SELECTOR_DROPDOWN)).classList.add(CLASS_NAME_ACTIVE$2); - link.classList.add(CLASS_NAME_ACTIVE$2); + SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE$1, link.closest(SELECTOR_DROPDOWN$1)).classList.add(CLASS_NAME_ACTIVE$1); + link.classList.add(CLASS_NAME_ACTIVE$1); } else { // Set triggered link as active - link.classList.add(CLASS_NAME_ACTIVE$2); - SelectorEngine.parents(link, SELECTOR_NAV_LIST_GROUP).forEach(function (listGroup) { + link.classList.add(CLASS_NAME_ACTIVE$1); + SelectorEngine.parents(link, SELECTOR_NAV_LIST_GROUP$1).forEach(listGroup => { // Set triggered links parents as active // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor - SelectorEngine.prev(listGroup, SELECTOR_NAV_LINKS + ", " + SELECTOR_LIST_ITEMS).forEach(function (item) { - return item.classList.add(CLASS_NAME_ACTIVE$2); - }); // Handle special case when .nav-link is inside .nav-item + SelectorEngine.prev(listGroup, `${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`).forEach(item => item.classList.add(CLASS_NAME_ACTIVE$1)); // Handle special case when .nav-link is inside .nav-item - SelectorEngine.prev(listGroup, SELECTOR_NAV_ITEMS).forEach(function (navItem) { - SelectorEngine.children(navItem, SELECTOR_NAV_LINKS).forEach(function (item) { - return item.classList.add(CLASS_NAME_ACTIVE$2); - }); + SelectorEngine.prev(listGroup, SELECTOR_NAV_ITEMS).forEach(navItem => { + SelectorEngine.children(navItem, SELECTOR_NAV_LINKS).forEach(item => item.classList.add(CLASS_NAME_ACTIVE$1)); }); }); } @@ -4475,22 +4536,18 @@ EventHandler.trigger(this._scrollElement, EVENT_ACTIVATE, { relatedTarget: target }); - }; + } - _proto._clear = function _clear() { - SelectorEngine.find(this._selector).filter(function (node) { - return node.classList.contains(CLASS_NAME_ACTIVE$2); - }).forEach(function (node) { - return node.classList.remove(CLASS_NAME_ACTIVE$2); - }); + _clear() { + SelectorEngine.find(this._selector).filter(node => node.classList.contains(CLASS_NAME_ACTIVE$1)).forEach(node => node.classList.remove(CLASS_NAME_ACTIVE$1)); } // Static - ; - ScrollSpy.jQueryInterface = function jQueryInterface(config) { + + static jQueryInterface(config) { return this.each(function () { - var data = Data.getData(this, DATA_KEY$8); + let data = Data.get(this, DATA_KEY$2); - var _config = typeof config === 'object' && config; + const _config = typeof config === 'object' && config; if (!data) { data = new ScrollSpy(this, _config); @@ -4498,28 +4555,15 @@ if (typeof config === 'string') { if (typeof data[config] === 'undefined') { - throw new TypeError("No method named \"" + config + "\""); + throw new TypeError(`No method named "${config}"`); } data[config](); } }); - }; - - _createClass(ScrollSpy, null, [{ - key: "Default", - get: function get() { - return Default$6; - } - }, { - key: "DATA_KEY", - get: function get() { - return DATA_KEY$8; - } - }]); + } - return ScrollSpy; - }(BaseComponent); + } /** * ------------------------------------------------------------------------ * Data Api implementation @@ -4527,10 +4571,8 @@ */ - EventHandler.on(window, EVENT_LOAD_DATA_API$1, function () { - SelectorEngine.find(SELECTOR_DATA_SPY).forEach(function (spy) { - return new ScrollSpy(spy, Manipulator.getDataAttributes(spy)); - }); + EventHandler.on(window, EVENT_LOAD_DATA_API, () => { + SelectorEngine.find(SELECTOR_DATA_SPY).forEach(spy => new ScrollSpy(spy, Manipulator.getDataAttributes(spy))); }); /** * ------------------------------------------------------------------------ @@ -4539,92 +4581,73 @@ * add .ScrollSpy to jQuery only if jQuery is present */ - onDOMContentLoaded(function () { - var $ = getjQuery(); - /* istanbul ignore if */ - - if ($) { - var JQUERY_NO_CONFLICT = $.fn[NAME$8]; - $.fn[NAME$8] = ScrollSpy.jQueryInterface; - $.fn[NAME$8].Constructor = ScrollSpy; - - $.fn[NAME$8].noConflict = function () { - $.fn[NAME$8] = JQUERY_NO_CONFLICT; - return ScrollSpy.jQueryInterface; - }; - } - }); + defineJQueryPlugin(NAME$2, ScrollSpy); /** + * -------------------------------------------------------------------------- + * Bootstrap (v5.0.0-beta3): tab.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + /** * ------------------------------------------------------------------------ * Constants * ------------------------------------------------------------------------ */ - var NAME$9 = 'tab'; - var DATA_KEY$9 = 'bs.tab'; - var EVENT_KEY$9 = "." + DATA_KEY$9; - var DATA_API_KEY$7 = '.data-api'; - var EVENT_HIDE$3 = "hide" + EVENT_KEY$9; - var EVENT_HIDDEN$3 = "hidden" + EVENT_KEY$9; - var EVENT_SHOW$3 = "show" + EVENT_KEY$9; - var EVENT_SHOWN$3 = "shown" + EVENT_KEY$9; - var EVENT_CLICK_DATA_API$6 = "click" + EVENT_KEY$9 + DATA_API_KEY$7; - var CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu'; - var CLASS_NAME_ACTIVE$3 = 'active'; - var CLASS_NAME_DISABLED$1 = 'disabled'; - var CLASS_NAME_FADE$3 = 'fade'; - var CLASS_NAME_SHOW$5 = 'show'; - var SELECTOR_DROPDOWN$1 = '.dropdown'; - var SELECTOR_NAV_LIST_GROUP$1 = '.nav, .list-group'; - var SELECTOR_ACTIVE$1 = '.active'; - var SELECTOR_ACTIVE_UL = ':scope > li > .active'; - var SELECTOR_DATA_TOGGLE$4 = '[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]'; - var SELECTOR_DROPDOWN_TOGGLE$1 = '.dropdown-toggle'; - var SELECTOR_DROPDOWN_ACTIVE_CHILD = ':scope > .dropdown-menu .active'; + const NAME$1 = 'tab'; + const DATA_KEY$1 = 'bs.tab'; + const EVENT_KEY$1 = `.${DATA_KEY$1}`; + const DATA_API_KEY = '.data-api'; + const EVENT_HIDE$1 = `hide${EVENT_KEY$1}`; + const EVENT_HIDDEN$1 = `hidden${EVENT_KEY$1}`; + const EVENT_SHOW$1 = `show${EVENT_KEY$1}`; + const EVENT_SHOWN$1 = `shown${EVENT_KEY$1}`; + const EVENT_CLICK_DATA_API = `click${EVENT_KEY$1}${DATA_API_KEY}`; + const CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu'; + const CLASS_NAME_ACTIVE = 'active'; + const CLASS_NAME_FADE$1 = 'fade'; + const CLASS_NAME_SHOW$1 = 'show'; + const SELECTOR_DROPDOWN = '.dropdown'; + const SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'; + const SELECTOR_ACTIVE = '.active'; + const SELECTOR_ACTIVE_UL = ':scope > li > .active'; + const SELECTOR_DATA_TOGGLE = '[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]'; + const SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'; + const SELECTOR_DROPDOWN_ACTIVE_CHILD = ':scope > .dropdown-menu .active'; /** * ------------------------------------------------------------------------ * Class Definition * ------------------------------------------------------------------------ */ - var Tab = /*#__PURE__*/function (_BaseComponent) { - _inheritsLoose(Tab, _BaseComponent); - - function Tab() { - return _BaseComponent.apply(this, arguments) || this; - } + class Tab extends BaseComponent { + // Getters + static get DATA_KEY() { + return DATA_KEY$1; + } // Public - var _proto = Tab.prototype; - // Public - _proto.show = function show() { - var _this = this; - - if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && this._element.classList.contains(CLASS_NAME_ACTIVE$3) || this._element.classList.contains(CLASS_NAME_DISABLED$1)) { + show() { + if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && this._element.classList.contains(CLASS_NAME_ACTIVE) || isDisabled(this._element)) { return; } - var previous; - var target = getElementFromSelector(this._element); + let previous; + const target = getElementFromSelector(this._element); - var listElement = this._element.closest(SELECTOR_NAV_LIST_GROUP$1); + const listElement = this._element.closest(SELECTOR_NAV_LIST_GROUP); if (listElement) { - var itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE$1; + const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE; previous = SelectorEngine.find(itemSelector, listElement); previous = previous[previous.length - 1]; } - var hideEvent = null; - - if (previous) { - hideEvent = EventHandler.trigger(previous, EVENT_HIDE$3, { - relatedTarget: this._element - }); - } - - var showEvent = EventHandler.trigger(this._element, EVENT_SHOW$3, { + const hideEvent = previous ? EventHandler.trigger(previous, EVENT_HIDE$1, { + relatedTarget: this._element + }) : null; + const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$1, { relatedTarget: previous }); @@ -4634,11 +4657,11 @@ this._activate(this._element, listElement); - var complete = function complete() { - EventHandler.trigger(previous, EVENT_HIDDEN$3, { - relatedTarget: _this._element + const complete = () => { + EventHandler.trigger(previous, EVENT_HIDDEN$1, { + relatedTarget: this._element }); - EventHandler.trigger(_this._element, EVENT_SHOWN$3, { + EventHandler.trigger(this._element, EVENT_SHOWN$1, { relatedTarget: previous }); }; @@ -4649,36 +4672,32 @@ complete(); } } // Private - ; - _proto._activate = function _activate(element, container, callback) { - var _this2 = this; - var activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ? SelectorEngine.find(SELECTOR_ACTIVE_UL, container) : SelectorEngine.children(container, SELECTOR_ACTIVE$1); - var active = activeElements[0]; - var isTransitioning = callback && active && active.classList.contains(CLASS_NAME_FADE$3); + _activate(element, container, callback) { + const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ? SelectorEngine.find(SELECTOR_ACTIVE_UL, container) : SelectorEngine.children(container, SELECTOR_ACTIVE); + const active = activeElements[0]; + const isTransitioning = callback && active && active.classList.contains(CLASS_NAME_FADE$1); - var complete = function complete() { - return _this2._transitionComplete(element, active, callback); - }; + const complete = () => this._transitionComplete(element, active, callback); if (active && isTransitioning) { - var transitionDuration = getTransitionDurationFromElement(active); - active.classList.remove(CLASS_NAME_SHOW$5); - EventHandler.one(active, TRANSITION_END, complete); + const transitionDuration = getTransitionDurationFromElement(active); + active.classList.remove(CLASS_NAME_SHOW$1); + EventHandler.one(active, 'transitionend', complete); emulateTransitionEnd(active, transitionDuration); } else { complete(); } - }; + } - _proto._transitionComplete = function _transitionComplete(element, active, callback) { + _transitionComplete(element, active, callback) { if (active) { - active.classList.remove(CLASS_NAME_ACTIVE$3); - var dropdownChild = SelectorEngine.findOne(SELECTOR_DROPDOWN_ACTIVE_CHILD, active.parentNode); + active.classList.remove(CLASS_NAME_ACTIVE); + const dropdownChild = SelectorEngine.findOne(SELECTOR_DROPDOWN_ACTIVE_CHILD, active.parentNode); if (dropdownChild) { - dropdownChild.classList.remove(CLASS_NAME_ACTIVE$3); + dropdownChild.classList.remove(CLASS_NAME_ACTIVE); } if (active.getAttribute('role') === 'tab') { @@ -4686,7 +4705,7 @@ } } - element.classList.add(CLASS_NAME_ACTIVE$3); + element.classList.add(CLASS_NAME_ACTIVE); if (element.getAttribute('role') === 'tab') { element.setAttribute('aria-selected', true); @@ -4694,17 +4713,15 @@ reflow(element); - if (element.classList.contains(CLASS_NAME_FADE$3)) { - element.classList.add(CLASS_NAME_SHOW$5); + if (element.classList.contains(CLASS_NAME_FADE$1)) { + element.classList.add(CLASS_NAME_SHOW$1); } if (element.parentNode && element.parentNode.classList.contains(CLASS_NAME_DROPDOWN_MENU)) { - var dropdownElement = element.closest(SELECTOR_DROPDOWN$1); + const dropdownElement = element.closest(SELECTOR_DROPDOWN); if (dropdownElement) { - SelectorEngine.find(SELECTOR_DROPDOWN_TOGGLE$1).forEach(function (dropdown) { - return dropdown.classList.add(CLASS_NAME_ACTIVE$3); - }); + SelectorEngine.find(SELECTOR_DROPDOWN_TOGGLE).forEach(dropdown => dropdown.classList.add(CLASS_NAME_ACTIVE)); } element.setAttribute('aria-expanded', true); @@ -4714,32 +4731,23 @@ callback(); } } // Static - ; - Tab.jQueryInterface = function jQueryInterface(config) { + + static jQueryInterface(config) { return this.each(function () { - var data = Data.getData(this, DATA_KEY$9) || new Tab(this); + const data = Data.get(this, DATA_KEY$1) || new Tab(this); if (typeof config === 'string') { if (typeof data[config] === 'undefined') { - throw new TypeError("No method named \"" + config + "\""); + throw new TypeError(`No method named "${config}"`); } data[config](); } }); - }; - - _createClass(Tab, null, [{ - key: "DATA_KEY", - // Getters - get: function get() { - return DATA_KEY$9; - } - }]); + } - return Tab; - }(BaseComponent); + } /** * ------------------------------------------------------------------------ * Data Api implementation @@ -4747,9 +4755,9 @@ */ - EventHandler.on(document, EVENT_CLICK_DATA_API$6, SELECTOR_DATA_TOGGLE$4, function (event) { + EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) { event.preventDefault(); - var data = Data.getData(this, DATA_KEY$9) || new Tab(this); + const data = Data.get(this, DATA_KEY$1) || new Tab(this); data.show(); }); /** @@ -4759,80 +4767,74 @@ * add .Tab to jQuery only if jQuery is present */ - onDOMContentLoaded(function () { - var $ = getjQuery(); - /* istanbul ignore if */ - - if ($) { - var JQUERY_NO_CONFLICT = $.fn[NAME$9]; - $.fn[NAME$9] = Tab.jQueryInterface; - $.fn[NAME$9].Constructor = Tab; - - $.fn[NAME$9].noConflict = function () { - $.fn[NAME$9] = JQUERY_NO_CONFLICT; - return Tab.jQueryInterface; - }; - } - }); + defineJQueryPlugin(NAME$1, Tab); /** + * -------------------------------------------------------------------------- + * Bootstrap (v5.0.0-beta3): toast.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + /** * ------------------------------------------------------------------------ * Constants * ------------------------------------------------------------------------ */ - var NAME$a = 'toast'; - var DATA_KEY$a = 'bs.toast'; - var EVENT_KEY$a = "." + DATA_KEY$a; - var EVENT_CLICK_DISMISS$1 = "click.dismiss" + EVENT_KEY$a; - var EVENT_HIDE$4 = "hide" + EVENT_KEY$a; - var EVENT_HIDDEN$4 = "hidden" + EVENT_KEY$a; - var EVENT_SHOW$4 = "show" + EVENT_KEY$a; - var EVENT_SHOWN$4 = "shown" + EVENT_KEY$a; - var CLASS_NAME_FADE$4 = 'fade'; - var CLASS_NAME_HIDE = 'hide'; - var CLASS_NAME_SHOW$6 = 'show'; - var CLASS_NAME_SHOWING = 'showing'; - var DefaultType$7 = { + const NAME = 'toast'; + const DATA_KEY = 'bs.toast'; + const EVENT_KEY = `.${DATA_KEY}`; + const EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`; + const EVENT_HIDE = `hide${EVENT_KEY}`; + const EVENT_HIDDEN = `hidden${EVENT_KEY}`; + const EVENT_SHOW = `show${EVENT_KEY}`; + const EVENT_SHOWN = `shown${EVENT_KEY}`; + const CLASS_NAME_FADE = 'fade'; + const CLASS_NAME_HIDE = 'hide'; + const CLASS_NAME_SHOW = 'show'; + const CLASS_NAME_SHOWING = 'showing'; + const DefaultType = { animation: 'boolean', autohide: 'boolean', delay: 'number' }; - var Default$7 = { + const Default = { animation: true, autohide: true, delay: 5000 }; - var SELECTOR_DATA_DISMISS$1 = '[data-bs-dismiss="toast"]'; + const SELECTOR_DATA_DISMISS = '[data-bs-dismiss="toast"]'; /** * ------------------------------------------------------------------------ * Class Definition * ------------------------------------------------------------------------ */ - var Toast = /*#__PURE__*/function (_BaseComponent) { - _inheritsLoose(Toast, _BaseComponent); - - function Toast(element, config) { - var _this; + class Toast extends BaseComponent { + constructor(element, config) { + super(element); + this._config = this._getConfig(config); + this._timeout = null; - _this = _BaseComponent.call(this, element) || this; - _this._config = _this._getConfig(config); - _this._timeout = null; + this._setListeners(); + } // Getters - _this._setListeners(); - return _this; - } // Getters + static get DefaultType() { + return DefaultType; + } + static get Default() { + return Default; + } - var _proto = Toast.prototype; + static get DATA_KEY() { + return DATA_KEY; + } // Public - // Public - _proto.show = function show() { - var _this2 = this; - var showEvent = EventHandler.trigger(this._element, EVENT_SHOW$4); + show() { + const showEvent = EventHandler.trigger(this._element, EVENT_SHOW); if (showEvent.defaultPrevented) { return; @@ -4841,20 +4843,20 @@ this._clearTimeout(); if (this._config.animation) { - this._element.classList.add(CLASS_NAME_FADE$4); + this._element.classList.add(CLASS_NAME_FADE); } - var complete = function complete() { - _this2._element.classList.remove(CLASS_NAME_SHOWING); + const complete = () => { + this._element.classList.remove(CLASS_NAME_SHOWING); - _this2._element.classList.add(CLASS_NAME_SHOW$6); + this._element.classList.add(CLASS_NAME_SHOW); - EventHandler.trigger(_this2._element, EVENT_SHOWN$4); + EventHandler.trigger(this._element, EVENT_SHOWN); - if (_this2._config.autohide) { - _this2._timeout = setTimeout(function () { - _this2.hide(); - }, _this2._config.delay); + if (this._config.autohide) { + this._timeout = setTimeout(() => { + this.hide(); + }, this._config.delay); } }; @@ -4865,84 +4867,79 @@ this._element.classList.add(CLASS_NAME_SHOWING); if (this._config.animation) { - var transitionDuration = getTransitionDurationFromElement(this._element); - EventHandler.one(this._element, TRANSITION_END, complete); + const transitionDuration = getTransitionDurationFromElement(this._element); + EventHandler.one(this._element, 'transitionend', complete); emulateTransitionEnd(this._element, transitionDuration); } else { complete(); } - }; - - _proto.hide = function hide() { - var _this3 = this; + } - if (!this._element.classList.contains(CLASS_NAME_SHOW$6)) { + hide() { + if (!this._element.classList.contains(CLASS_NAME_SHOW)) { return; } - var hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$4); + const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE); if (hideEvent.defaultPrevented) { return; } - var complete = function complete() { - _this3._element.classList.add(CLASS_NAME_HIDE); + const complete = () => { + this._element.classList.add(CLASS_NAME_HIDE); - EventHandler.trigger(_this3._element, EVENT_HIDDEN$4); + EventHandler.trigger(this._element, EVENT_HIDDEN); }; - this._element.classList.remove(CLASS_NAME_SHOW$6); + this._element.classList.remove(CLASS_NAME_SHOW); if (this._config.animation) { - var transitionDuration = getTransitionDurationFromElement(this._element); - EventHandler.one(this._element, TRANSITION_END, complete); + const transitionDuration = getTransitionDurationFromElement(this._element); + EventHandler.one(this._element, 'transitionend', complete); emulateTransitionEnd(this._element, transitionDuration); } else { complete(); } - }; + } - _proto.dispose = function dispose() { + dispose() { this._clearTimeout(); - if (this._element.classList.contains(CLASS_NAME_SHOW$6)) { - this._element.classList.remove(CLASS_NAME_SHOW$6); + if (this._element.classList.contains(CLASS_NAME_SHOW)) { + this._element.classList.remove(CLASS_NAME_SHOW); } - EventHandler.off(this._element, EVENT_CLICK_DISMISS$1); - - _BaseComponent.prototype.dispose.call(this); - + EventHandler.off(this._element, EVENT_CLICK_DISMISS); + super.dispose(); this._config = null; } // Private - ; - _proto._getConfig = function _getConfig(config) { - config = _extends({}, Default$7, Manipulator.getDataAttributes(this._element), typeof config === 'object' && config ? config : {}); - typeCheckConfig(NAME$a, config, this.constructor.DefaultType); - return config; - }; - _proto._setListeners = function _setListeners() { - var _this4 = this; + _getConfig(config) { + config = { ...Default, + ...Manipulator.getDataAttributes(this._element), + ...(typeof config === 'object' && config ? config : {}) + }; + typeCheckConfig(NAME, config, this.constructor.DefaultType); + return config; + } - EventHandler.on(this._element, EVENT_CLICK_DISMISS$1, SELECTOR_DATA_DISMISS$1, function () { - return _this4.hide(); - }); - }; + _setListeners() { + EventHandler.on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, () => this.hide()); + } - _proto._clearTimeout = function _clearTimeout() { + _clearTimeout() { clearTimeout(this._timeout); this._timeout = null; } // Static - ; - Toast.jQueryInterface = function jQueryInterface(config) { + + static jQueryInterface(config) { return this.each(function () { - var data = Data.getData(this, DATA_KEY$a); + let data = Data.get(this, DATA_KEY); - var _config = typeof config === 'object' && config; + const _config = typeof config === 'object' && config; if (!data) { data = new Toast(this, _config); @@ -4950,33 +4947,15 @@ if (typeof config === 'string') { if (typeof data[config] === 'undefined') { - throw new TypeError("No method named \"" + config + "\""); + throw new TypeError(`No method named "${config}"`); } data[config](this); } }); - }; - - _createClass(Toast, null, [{ - key: "DefaultType", - get: function get() { - return DefaultType$7; - } - }, { - key: "Default", - get: function get() { - return Default$7; - } - }, { - key: "DATA_KEY", - get: function get() { - return DATA_KEY$a; - } - }]); + } - return Toast; - }(BaseComponent); + } /** * ------------------------------------------------------------------------ * jQuery @@ -4985,40 +4964,27 @@ */ - onDOMContentLoaded(function () { - var $ = getjQuery(); - /* istanbul ignore if */ - - if ($) { - var JQUERY_NO_CONFLICT = $.fn[NAME$a]; - $.fn[NAME$a] = Toast.jQueryInterface; - $.fn[NAME$a].Constructor = Toast; - - $.fn[NAME$a].noConflict = function () { - $.fn[NAME$a] = JQUERY_NO_CONFLICT; - return Toast.jQueryInterface; - }; - } - }); + defineJQueryPlugin(NAME, Toast); /** * -------------------------------------------------------------------------- - * Bootstrap (v5.0.0-alpha3): index.umd.js + * Bootstrap (v5.0.0-beta3): index.umd.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ var index_umd = { - Alert: Alert, - Button: Button, - Carousel: Carousel, - Collapse: Collapse, - Dropdown: Dropdown, - Modal: Modal, - Popover: Popover, - ScrollSpy: ScrollSpy, - Tab: Tab, - Toast: Toast, - Tooltip: Tooltip + Alert, + Button, + Carousel, + Collapse, + Dropdown, + Modal, + Offcanvas, + Popover, + ScrollSpy, + Tab, + Toast, + Tooltip }; return index_umd; diff --git a/dist/js/bootstrap.js.map b/dist/js/bootstrap.js.map index 40800c082..bce362175 100644 --- a/dist/js/bootstrap.js.map +++ b/dist/js/bootstrap.js.map @@ -1 +1 @@ -{"version":3,"file":"bootstrap.js","sources":["../../js/src/util/index.js","../../js/src/dom/data.js","../../js/src/dom/event-handler.js","../../js/src/base-component.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/dom/manipulator.js","../../js/src/dom/selector-engine.js","../../js/src/carousel.js","../../js/src/collapse.js","../../js/src/dropdown.js","../../js/src/modal.js","../../js/src/util/sanitizer.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/toast.js","../../js/index.umd.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => {\n if (obj === null || obj === undefined) {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n prefix += Math.floor(Math.random() * MAX_UID)\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelector = element => {\n let selector = element.getAttribute('data-bs-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null\n }\n\n return selector\n}\n\nconst getSelectorFromElement = element => {\n const selector = getSelector(element)\n\n if (selector) {\n return document.querySelector(selector) ? selector : null\n }\n\n return null\n}\n\nconst getElementFromSelector = element => {\n const selector = getSelector(element)\n\n return selector ? document.querySelector(selector) : null\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 = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes).forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n const elementStyle = getComputedStyle(element)\n const parentNodeStyle = getComputedStyle(element.parentNode)\n\n return elementStyle.display !== 'none' &&\n parentNodeStyle.display !== 'none' &&\n elementStyle.visibility !== 'hidden'\n }\n\n return 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 = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nconst getjQuery = () => {\n const { jQuery } = window\n\n if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n return jQuery\n }\n\n return null\n}\n\nconst onDOMContentLoaded = callback => {\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', callback)\n } else {\n callback()\n }\n}\n\nconst isRTL = document.documentElement.dir === 'rtl'\n\nexport {\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n isVisible,\n findShadowRoot,\n noop,\n reflow,\n getjQuery,\n onDOMContentLoaded,\n isRTL\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst mapData = (() => {\n const storeData = {}\n let id = 1\n return {\n set(element, key, data) {\n if (typeof element.bsKey === 'undefined') {\n element.bsKey = {\n key,\n id\n }\n id++\n }\n\n storeData[element.bsKey.id] = data\n },\n get(element, key) {\n if (!element || typeof element.bsKey === 'undefined') {\n return null\n }\n\n const keyProperties = element.bsKey\n if (keyProperties.key === key) {\n return storeData[keyProperties.id]\n }\n\n return null\n },\n delete(element, key) {\n if (typeof element.bsKey === 'undefined') {\n return\n }\n\n const keyProperties = element.bsKey\n if (keyProperties.key === key) {\n delete storeData[keyProperties.id]\n delete element.bsKey\n }\n }\n }\n})()\n\nconst Data = {\n setData(instance, key, data) {\n mapData.set(instance, key, data)\n },\n getData(instance, key) {\n return mapData.get(instance, key)\n },\n removeData(instance, key) {\n mapData.delete(instance, key)\n }\n}\n\nexport default Data\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getjQuery } from '../util/index'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\nconst nativeEvents = new Set([\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 * ------------------------------------------------------------------------\n * Private methods\n * ------------------------------------------------------------------------\n */\n\nfunction getUidEvent(element, uid) {\n return (uid && `${uid}::${uidEvent++}`) || element.uidEvent || uidEvent++\n}\n\nfunction getEvent(element) {\n const uid = getUidEvent(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 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 (let i = domElements.length; i--;) {\n if (domElements[i] === target) {\n event.delegateTarget = target\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(target, [event])\n }\n }\n }\n\n // To please ESLint\n return null\n }\n}\n\nfunction findHandler(events, handler, delegationSelector = null) {\n const uidEventList = Object.keys(events)\n\n for (let i = 0, len = uidEventList.length; i < len; i++) {\n const event = events[uidEventList[i]]\n\n if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {\n return event\n }\n }\n\n return null\n}\n\nfunction normalizeParams(originalTypeEvent, handler, delegationFn) {\n const delegation = typeof handler === 'string'\n const originalHandler = delegation ? delegationFn : handler\n\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n let typeEvent = originalTypeEvent.replace(stripNameRegex, '')\n const custom = customEvents[typeEvent]\n\n if (custom) {\n typeEvent = custom\n }\n\n const isNative = nativeEvents.has(typeEvent)\n\n if (!isNative) {\n typeEvent = originalTypeEvent\n }\n\n return [delegation, originalHandler, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n if (!handler) {\n handler = delegationFn\n delegationFn = null\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const events = getEvent(element)\n const handlers = events[typeEvent] || (events[typeEvent] = {})\n const previousFn = findHandler(handlers, originalHandler, delegation ? handler : null)\n\n if (previousFn) {\n previousFn.oneOff = previousFn.oneOff && oneOff\n\n return\n }\n\n const uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, ''))\n const fn = delegation ?\n bootstrapDelegationHandler(element, handler, delegationFn) :\n bootstrapHandler(element, handler)\n\n fn.delegationSelector = delegation ? handler : null\n fn.originalHandler = originalHandler\n fn.oneOff = oneOff\n fn.uidEvent = uid\n handlers[uid] = fn\n\n element.addEventListener(typeEvent, fn, delegation)\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 Object.keys(storeElementEvent).forEach(handlerKey => {\n if (handlerKey.includes(namespace)) {\n const event = storeElementEvent[handlerKey]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, false)\n },\n\n one(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFn) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getEvent(element)\n const isNamespace = originalTypeEvent.startsWith('.')\n\n if (typeof originalHandler !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!events || !events[typeEvent]) {\n return\n }\n\n removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null)\n return\n }\n\n if (isNamespace) {\n Object.keys(events).forEach(elementEvent => {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1))\n })\n }\n\n const storeElementEvent = events[typeEvent] || {}\n Object.keys(storeElementEvent).forEach(keyHandlers => {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.includes(handlerKey)) {\n const event = storeElementEvent[keyHandlers]\n\n removeHandler(element, events, typeEvent, event.originalHandler, 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 = event.replace(stripNameRegex, '')\n const inNamespace = event !== typeEvent\n const isNative = nativeEvents.has(typeEvent)\n\n let jQueryEvent\n let bubbles = true\n let nativeDispatch = true\n let defaultPrevented = false\n let evt = null\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 if (isNative) {\n evt = document.createEvent('HTMLEvents')\n evt.initEvent(typeEvent, bubbles, true)\n } else {\n evt = new CustomEvent(event, {\n bubbles,\n cancelable: true\n })\n }\n\n // merge custom information in our event\n if (typeof args !== 'undefined') {\n Object.keys(args).forEach(key => {\n Object.defineProperty(evt, key, {\n get() {\n return args[key]\n }\n })\n })\n }\n\n if (defaultPrevented) {\n evt.preventDefault()\n }\n\n if (nativeDispatch) {\n element.dispatchEvent(evt)\n }\n\n if (evt.defaultPrevented && typeof jQueryEvent !== 'undefined') {\n jQueryEvent.preventDefault()\n }\n\n return evt\n }\n}\n\nexport default EventHandler\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): base-component.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Data from './dom/data'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst VERSION = '5.0.0-alpha3'\n\nclass BaseComponent {\n constructor(element) {\n if (!element) {\n return\n }\n\n this._element = element\n Data.setData(element, this.constructor.DATA_KEY, this)\n }\n\n dispose() {\n Data.removeData(this._element, this.constructor.DATA_KEY)\n this._element = null\n }\n\n /** Static */\n\n static getInstance(element) {\n return Data.getData(element, this.DATA_KEY)\n }\n\n static get VERSION() {\n return VERSION\n }\n}\n\nexport default BaseComponent\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n onDOMContentLoaded,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'alert'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst SELECTOR_DISMISS = '[data-bs-dismiss=\"alert\"]'\n\nconst EVENT_CLOSE = `close${EVENT_KEY}`\nconst EVENT_CLOSED = `closed${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASSNAME_ALERT = 'alert'\nconst CLASSNAME_FADE = 'fade'\nconst CLASSNAME_SHOW = 'show'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Alert extends BaseComponent {\n // Getters\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n close(element) {\n const rootElement = element ? this._getRootElement(element) : this._element\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent === null || customEvent.defaultPrevented) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n // Private\n\n _getRootElement(element) {\n return getElementFromSelector(element) || element.closest(`.${CLASSNAME_ALERT}`)\n }\n\n _triggerCloseEvent(element) {\n return EventHandler.trigger(element, EVENT_CLOSE)\n }\n\n _removeElement(element) {\n element.classList.remove(CLASSNAME_SHOW)\n\n if (!element.classList.contains(CLASSNAME_FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = getTransitionDurationFromElement(element)\n\n EventHandler.one(element, TRANSITION_END, () => this._destroyElement(element))\n emulateTransitionEnd(element, transitionDuration)\n }\n\n _destroyElement(element) {\n if (element.parentNode) {\n element.parentNode.removeChild(element)\n }\n\n EventHandler.trigger(element, EVENT_CLOSED)\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DISMISS, Alert.handleDismiss(new Alert()))\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Alert to jQuery only if jQuery is present\n */\n\nonDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Alert.jQueryInterface\n $.fn[NAME].Constructor = Alert\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert.jQueryInterface\n }\n }\n})\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getjQuery, onDOMContentLoaded } from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\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'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"button\"]'\n\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Button extends BaseComponent {\n // Getters\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n toggle() {\n // Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method\n this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE))\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\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\n let data = Data.getData(button, DATA_KEY)\n if (!data) {\n data = new Button(button)\n }\n\n data.toggle()\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Button to jQuery only if jQuery is present\n */\n\nonDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Button.jQueryInterface\n $.fn[NAME].Constructor = Button\n\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button.jQueryInterface\n }\n }\n})\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(val) {\n if (val === 'true') {\n return true\n }\n\n if (val === 'false') {\n return false\n }\n\n if (val === Number(val).toString()) {\n return Number(val)\n }\n\n if (val === '' || val === 'null') {\n return null\n }\n\n return val\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\n Object.keys(element.dataset)\n .filter(key => key.startsWith('bs'))\n .forEach(key => {\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 offset(element) {\n const rect = element.getBoundingClientRect()\n\n return {\n top: rect.top + document.body.scrollTop,\n left: rect.left + document.body.scrollLeft\n }\n },\n\n position(element) {\n return {\n top: element.offsetTop,\n left: element.offsetLeft\n }\n }\n}\n\nexport default Manipulator\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NODE_TEXT = 3\n\nconst SelectorEngine = {\n matches(element, selector) {\n return element.matches(selector)\n },\n\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 const children = [].concat(...element.children)\n\n return children.filter(child => child.matches(selector))\n },\n\n parents(element, selector) {\n const parents = []\n\n let ancestor = element.parentNode\n\n while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {\n if (this.matches(ancestor, selector)) {\n parents.push(ancestor)\n }\n\n ancestor = ancestor.parentNode\n }\n\n return parents\n },\n\n prev(element, selector) {\n let previous = element.previousElementSibling\n\n while (previous) {\n if (previous.matches(selector)) {\n return [previous]\n }\n\n previous = previous.previousElementSibling\n }\n\n return []\n },\n\n next(element, selector) {\n let next = element.nextElementSibling\n\n while (next) {\n if (this.matches(next, selector)) {\n return [next]\n }\n\n next = next.nextElementSibling\n }\n\n return []\n }\n}\n\nexport default SelectorEngine\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n onDOMContentLoaded,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isVisible,\n reflow,\n triggerTransitionEnd,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\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\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\n\nconst DIRECTION_NEXT = 'next'\nconst DIRECTION_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_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 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'\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event'\n\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_ITEM = '.active.carousel-item'\nconst SELECTOR_ITEM = '.carousel-item'\nconst SELECTOR_ITEM_IMG = '.carousel-item img'\nconst SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev'\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 PointerType = {\n TOUCH: 'touch',\n PEN: 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent)\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(DIRECTION_NEXT)\n }\n }\n\n nextWhenVisible() {\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 if (!this._isSliding) {\n this._slide(DIRECTION_PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (SelectorEngine.findOne(SELECTOR_NEXT_PREV, this._element)) {\n triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config && this._config.interval && !this._isPaused) {\n this._updateInterval()\n\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._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 if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex ?\n DIRECTION_NEXT :\n DIRECTION_PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n super.dispose()\n EventHandler.off(this._element, EVENT_KEY)\n\n this._items = null\n this._config = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n this.touchDeltaX = 0\n\n // swipe left\n if (direction > 0) {\n this.prev()\n }\n\n // swipe right\n if (direction < 0) {\n this.next()\n }\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, event => this.pause(event))\n EventHandler.on(this._element, EVENT_MOUSELEAVE, event => this.cycle(event))\n }\n\n if (this._config.touch && this._touchSupported) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n const start = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchStartX = event.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.touches[0].clientX\n }\n }\n\n const move = event => {\n // ensure swiping with one touch and not pinching\n if (event.touches && event.touches.length > 1) {\n this.touchDeltaX = 0\n } else {\n this.touchDeltaX = event.touches[0].clientX - this.touchStartX\n }\n }\n\n const end = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchDeltaX = event.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\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(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n SelectorEngine.find(SELECTOR_ITEM_IMG, this._element).forEach(itemImg => {\n EventHandler.on(itemImg, EVENT_DRAG_START, e => e.preventDefault())\n })\n\n if (this._pointerEvent) {\n EventHandler.on(this._element, EVENT_POINTERDOWN, event => start(event))\n EventHandler.on(this._element, EVENT_POINTERUP, event => end(event))\n\n this._element.classList.add(CLASS_NAME_POINTER_EVENT)\n } else {\n EventHandler.on(this._element, EVENT_TOUCHSTART, event => start(event))\n EventHandler.on(this._element, EVENT_TOUCHMOVE, event => move(event))\n EventHandler.on(this._element, EVENT_TOUCHEND, event => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.key) {\n case ARROW_LEFT_KEY:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEY:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode ?\n SelectorEngine.find(SELECTOR_ITEM, element.parentNode) :\n []\n\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === DIRECTION_NEXT\n const isPrevDirection = direction === DIRECTION_PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = (isPrevDirection && activeIndex === 0) ||\n (isNextDirection && activeIndex === lastItemIndex)\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === DIRECTION_PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1 ?\n this._items[this._items.length - 1] :\n this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element))\n\n return EventHandler.trigger(this._element, EVENT_SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n const indicators = SelectorEngine.find(SELECTOR_ACTIVE, this._indicatorsElement)\n\n for (let i = 0; i < indicators.length; i++) {\n indicators[i].classList.remove(CLASS_NAME_ACTIVE)\n }\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n nextIndicator.classList.add(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n _updateInterval() {\n const element = this._activeElement || SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n\n if (!element) {\n return\n }\n\n const elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10)\n\n if (elementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval\n this._config.interval = elementInterval\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval\n }\n }\n\n _slide(direction, element) {\n const activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || (activeElement && this._getItemByDirection(direction, activeElement))\n\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === DIRECTION_NEXT) {\n directionalClassName = CLASS_NAME_START\n orderClassName = CLASS_NAME_NEXT\n eventDirectionName = DIRECTION_LEFT\n } else {\n directionalClassName = CLASS_NAME_END\n orderClassName = CLASS_NAME_PREV\n eventDirectionName = DIRECTION_RIGHT\n }\n\n if (nextElement && nextElement.classList.contains(CLASS_NAME_ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.defaultPrevented) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n this._activeElement = nextElement\n\n if (this._element.classList.contains(CLASS_NAME_SLIDE)) {\n nextElement.classList.add(orderClassName)\n\n reflow(nextElement)\n\n activeElement.classList.add(directionalClassName)\n nextElement.classList.add(directionalClassName)\n\n const transitionDuration = getTransitionDurationFromElement(activeElement)\n\n EventHandler.one(activeElement, TRANSITION_END, () => {\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 setTimeout(() => {\n EventHandler.trigger(this._element, EVENT_SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }, 0)\n })\n\n emulateTransitionEnd(activeElement, transitionDuration)\n } else {\n activeElement.classList.remove(CLASS_NAME_ACTIVE)\n nextElement.classList.add(CLASS_NAME_ACTIVE)\n\n this._isSliding = false\n EventHandler.trigger(this._element, EVENT_SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static carouselInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n let _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element)\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(element, _config)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n\n data[action]()\n } else if (_config.interval && _config.ride) {\n data.pause()\n data.cycle()\n }\n }\n\n static jQueryInterface(config) {\n return this.each(function () {\n Carousel.carouselInterface(this, config)\n })\n }\n\n static dataApiClickHandler(event) {\n const target = getElementFromSelector(this)\n\n if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {\n return\n }\n\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n const slideIndex = this.getAttribute('data-bs-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel.carouselInterface(target, config)\n\n if (slideIndex) {\n Data.getData(target, DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, Carousel.dataApiClickHandler)\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE)\n\n for (let i = 0, len = carousels.length; i < len; i++) {\n Carousel.carouselInterface(carousels[i], Data.getData(carousels[i], DATA_KEY))\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Carousel to jQuery only if jQuery is present\n */\n\nonDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Carousel.jQueryInterface\n $.fn[NAME].Constructor = Carousel\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel.jQueryInterface\n }\n }\n})\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n onDOMContentLoaded,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isElement,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'collapse'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n toggle: true,\n parent: ''\n}\n\nconst DefaultType = {\n toggle: 'boolean',\n parent: '(string|element)'\n}\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'\n\nconst WIDTH = 'width'\nconst HEIGHT = 'height'\n\nconst SELECTOR_ACTIVES = '.show, .collapsing'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"collapse\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._isTransitioning = false\n this._config = this._getConfig(config)\n this._triggerArray = SelectorEngine.find(\n `${SELECTOR_DATA_TOGGLE}[href=\"#${element.id}\"],` +\n `${SELECTOR_DATA_TOGGLE}[data-bs-target=\"#${element.id}\"]`\n )\n\n const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\n\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = getSelectorFromElement(elem)\n const filterElement = SelectorEngine.find(selector)\n .filter(foundElem => foundElem === element)\n\n if (selector !== null && filterElement.length) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n toggle() {\n if (this._element.classList.contains(CLASS_NAME_SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning || this._element.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = SelectorEngine.find(SELECTOR_ACTIVES, this._parent)\n .filter(elem => {\n if (typeof this._config.parent === 'string') {\n return elem.getAttribute('data-bs-parent') === this._config.parent\n }\n\n return elem.classList.contains(CLASS_NAME_COLLAPSE)\n })\n\n if (actives.length === 0) {\n actives = null\n }\n }\n\n const container = SelectorEngine.findOne(this._selector)\n if (actives) {\n const tempActiveData = actives.find(elem => container !== elem)\n activesData = tempActiveData ? Data.getData(tempActiveData, DATA_KEY) : null\n\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = EventHandler.trigger(this._element, EVENT_SHOW)\n if (startEvent.defaultPrevented) {\n return\n }\n\n if (actives) {\n actives.forEach(elemActive => {\n if (container !== elemActive) {\n Collapse.collapseInterface(elemActive, 'hide')\n }\n\n if (!activesData) {\n Data.setData(elemActive, DATA_KEY, null)\n }\n })\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 if (this._triggerArray.length) {\n this._triggerArray.forEach(element => {\n element.classList.remove(CLASS_NAME_COLLAPSED)\n element.setAttribute('aria-expanded', true)\n })\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\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 this.setTransitioning(false)\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 const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n\n emulateTransitionEnd(this._element, transitionDuration)\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning || !this._element.classList.contains(CLASS_NAME_SHOW)) {\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 const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const elem = getElementFromSelector(trigger)\n\n if (elem && !elem.classList.contains(CLASS_NAME_SHOW)) {\n trigger.classList.add(CLASS_NAME_COLLAPSED)\n trigger.setAttribute('aria-expanded', false)\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(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 const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n super.dispose()\n this._config = null\n this._parent = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n return this._element.classList.contains(WIDTH) ? WIDTH : HEIGHT\n }\n\n _getParent() {\n let { parent } = this._config\n\n if (isElement(parent)) {\n // it's a jQuery object\n if (typeof parent.jquery !== 'undefined' || typeof parent[0] !== 'undefined') {\n parent = parent[0]\n }\n } else {\n parent = SelectorEngine.findOne(parent)\n }\n\n const selector = `${SELECTOR_DATA_TOGGLE}[data-bs-parent=\"${parent}\"]`\n\n SelectorEngine.find(selector, parent)\n .forEach(element => {\n const selected = getElementFromSelector(element)\n\n this._addAriaAndCollapsedClass(\n selected,\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n if (!element || !triggerArray.length) {\n return\n }\n\n const isOpen = element.classList.contains(CLASS_NAME_SHOW)\n\n triggerArray.forEach(elem => {\n if (isOpen) {\n elem.classList.remove(CLASS_NAME_COLLAPSED)\n } else {\n elem.classList.add(CLASS_NAME_COLLAPSED)\n }\n\n elem.setAttribute('aria-expanded', isOpen)\n })\n }\n\n // Static\n\n static collapseInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element),\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(element, _config)\n }\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 static jQueryInterface(config) {\n return this.each(function () {\n Collapse.collapseInterface(this, config)\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\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') {\n event.preventDefault()\n }\n\n const triggerData = Manipulator.getDataAttributes(this)\n const selector = getSelectorFromElement(this)\n const selectorElements = SelectorEngine.find(selector)\n\n selectorElements.forEach(element => {\n const data = Data.getData(element, DATA_KEY)\n let config\n if (data) {\n // update parent attribute\n if (data._parent === null && typeof triggerData.parent === 'string') {\n data._config.parent = triggerData.parent\n data._parent = data._getParent()\n }\n\n config = 'toggle'\n } else {\n config = triggerData\n }\n\n Collapse.collapseInterface(element, config)\n })\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Collapse to jQuery only if jQuery is present\n */\n\nonDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Collapse.jQueryInterface\n $.fn[NAME].Constructor = Collapse\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse.jQueryInterface\n }\n }\n})\n\nexport default Collapse\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n onDOMContentLoaded,\n getElementFromSelector,\n isElement,\n isVisible,\n isRTL,\n noop,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\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 SPACE_KEY = 'Space'\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 REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEY}|${ARROW_DOWN_KEY}|${ESCAPE_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 = `click${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_DISABLED = 'disabled'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_DROPUP = 'dropup'\nconst CLASS_NAME_DROPEND = 'dropend'\nconst CLASS_NAME_DROPSTART = 'dropstart'\nconst CLASS_NAME_MENUEND = 'dropdown-menu-end'\nconst CLASS_NAME_NAVBAR = 'navbar'\nconst CLASS_NAME_POSITION_STATIC = 'position-static'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"dropdown\"]'\nconst SELECTOR_FORM_CHILD = '.dropdown form'\nconst SELECTOR_MENU = '.dropdown-menu'\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'\n\nconst Default = {\n offset: 0,\n flip: true,\n boundary: 'scrollParent',\n reference: 'toggle',\n display: 'dynamic',\n popperConfig: null\n}\n\nconst DefaultType = {\n offset: '(number|string|function)',\n flip: 'boolean',\n boundary: '(string|element)',\n reference: '(string|element)',\n display: 'string',\n popperConfig: '(null|object)'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED)) {\n return\n }\n\n const isActive = this._element.classList.contains(CLASS_NAME_SHOW)\n\n Dropdown.clearMenus()\n\n if (isActive) {\n return\n }\n\n this.show()\n }\n\n show() {\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || this._menu.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n const parent = Dropdown.getParentFromElement(this._element)\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 // Totally disable Popper for Dropdowns in Navbar\n if (!this._inNavbar) {\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 = parent\n } else if (isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n parent.classList.add(CLASS_NAME_POSITION_STATIC)\n }\n\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\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 !parent.closest(SELECTOR_NAVBAR_NAV)) {\n [].concat(...document.body.children)\n .forEach(elem => EventHandler.on(elem, 'mouseover', null, noop()))\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n this._menu.classList.toggle(CLASS_NAME_SHOW)\n this._element.classList.toggle(CLASS_NAME_SHOW)\n EventHandler.trigger(parent, EVENT_SHOWN, relatedTarget)\n }\n\n hide() {\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || !this._menu.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n const parent = Dropdown.getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const hideEvent = EventHandler.trigger(parent, EVENT_HIDE, relatedTarget)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n if (this._popper) {\n this._popper.destroy()\n }\n\n this._menu.classList.toggle(CLASS_NAME_SHOW)\n this._element.classList.toggle(CLASS_NAME_SHOW)\n EventHandler.trigger(parent, EVENT_HIDDEN, relatedTarget)\n }\n\n dispose() {\n super.dispose()\n EventHandler.off(this._element, EVENT_KEY)\n this._menu = null\n if (this._popper) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n EventHandler.on(this._element, EVENT_CLICK, event => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...Manipulator.getDataAttributes(this._element),\n ...config\n }\n\n typeCheckConfig(NAME, config, this.constructor.DefaultType)\n\n return config\n }\n\n _getMenuElement() {\n return SelectorEngine.next(this._element, SELECTOR_MENU)[0]\n }\n\n _getPlacement() {\n const parentDropdown = this._element.parentNode\n let placement = PLACEMENT_BOTTOM\n\n // Handle dropup\n if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) {\n placement = this._menu.classList.contains(CLASS_NAME_MENUEND) ?\n PLACEMENT_TOPEND :\n PLACEMENT_TOP\n } else if (parentDropdown.classList.contains(CLASS_NAME_DROPEND)) {\n placement = PLACEMENT_RIGHT\n } else if (parentDropdown.classList.contains(CLASS_NAME_DROPSTART)) {\n placement = PLACEMENT_LEFT\n } else if (this._menu.classList.contains(CLASS_NAME_MENUEND)) {\n placement = PLACEMENT_BOTTOMEND\n }\n\n return placement\n }\n\n _detectNavbar() {\n return Boolean(this._element.closest(`.${CLASS_NAME_NAVBAR}`))\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this._config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...(this._config.offset(data.offsets, this._element) || {})\n }\n\n return data\n }\n } else {\n offset.offset = this._config.offset\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: this._getOffset(),\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n\n return {\n ...popperConfig,\n ...this._config.popperConfig\n }\n }\n\n // Static\n\n static dropdownInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(element, _config)\n }\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 static jQueryInterface(config) {\n return this.each(function () {\n Dropdown.dropdownInterface(this, config)\n })\n }\n\n static clearMenus(event) {\n if (event && (event.button === RIGHT_MOUSE_BUTTON || (event.type === 'keyup' && event.key !== TAB_KEY))) {\n return\n }\n\n const toggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\n\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown.getParentFromElement(toggles[i])\n const context = Data.getData(toggles[i], DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!toggles[i].classList.contains(CLASS_NAME_SHOW)) {\n continue\n }\n\n if (event && ((event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName)) ||\n (event.type === 'keyup' && event.key === TAB_KEY)) &&\n dropdownMenu.contains(event.target)) {\n continue\n }\n\n const hideEvent = EventHandler.trigger(parent, EVENT_HIDE, relatedTarget)\n if (hideEvent.defaultPrevented) {\n continue\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 [].concat(...document.body.children)\n .forEach(elem => EventHandler.off(elem, 'mouseover', null, noop()))\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n if (context._popper) {\n context._popper.destroy()\n }\n\n dropdownMenu.classList.remove(CLASS_NAME_SHOW)\n toggles[i].classList.remove(CLASS_NAME_SHOW)\n EventHandler.trigger(parent, EVENT_HIDDEN, relatedTarget)\n }\n }\n\n static getParentFromElement(element) {\n return getElementFromSelector(element) || element.parentNode\n }\n\n static dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ?\n event.key === SPACE_KEY || (event.key !== ESCAPE_KEY &&\n ((event.key !== ARROW_DOWN_KEY && event.key !== ARROW_UP_KEY) ||\n event.target.closest(SELECTOR_MENU))) :\n !REGEXP_KEYDOWN.test(event.key)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || this.classList.contains(CLASS_NAME_DISABLED)) {\n return\n }\n\n const parent = Dropdown.getParentFromElement(this)\n const isActive = this.classList.contains(CLASS_NAME_SHOW)\n\n if (event.key === ESCAPE_KEY) {\n const button = this.matches(SELECTOR_DATA_TOGGLE) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE)[0]\n button.focus()\n Dropdown.clearMenus()\n return\n }\n\n if (!isActive || event.key === SPACE_KEY) {\n Dropdown.clearMenus()\n return\n }\n\n const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, parent).filter(isVisible)\n\n if (!items.length) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n // Up\n if (event.key === ARROW_UP_KEY && index > 0) {\n index--\n }\n\n // Down\n if (event.key === ARROW_DOWN_KEY && index < items.length - 1) {\n index++\n }\n\n // index is -1 if the first keydown is an ArrowUp\n index = index === -1 ? 0 : index\n\n items[index].focus()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\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 event.stopPropagation()\n Dropdown.dropdownInterface(this, 'toggle')\n})\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_FORM_CHILD, e => e.stopPropagation())\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Dropdown to jQuery only if jQuery is present\n */\n\nonDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Dropdown.jQueryInterface\n $.fn[NAME].Constructor = Dropdown\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown.jQueryInterface\n }\n }\n})\n\nexport default Dropdown\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n onDOMContentLoaded,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isVisible,\n isRTL,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\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 Default = {\n backdrop: true,\n keyboard: true,\n focus: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean'\n}\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_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${EVENT_KEY}`\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEUP_DISMISS = `mouseup.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure'\nconst CLASS_NAME_BACKDROP = 'modal-backdrop'\nconst CLASS_NAME_OPEN = 'modal-open'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_STATIC = 'modal-static'\n\nconst SELECTOR_DIALOG = '.modal-dialog'\nconst SELECTOR_MODAL_BODY = '.modal-body'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"modal\"]'\nconst SELECTOR_DATA_DISMISS = '[data-bs-dismiss=\"modal\"]'\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'\nconst SELECTOR_STICKY_CONTENT = '.sticky-top'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._config = this._getConfig(config)\n this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, element)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollbarWidth = 0\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n if (this._element.classList.contains(CLASS_NAME_FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, {\n relatedTarget\n })\n\n if (this._isShown || showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, event => this.hide(event))\n\n EventHandler.on(this._dialog, EVENT_MOUSEDOWN_DISMISS, () => {\n EventHandler.one(this._element, EVENT_MOUSEUP_DISMISS, event => {\n if (event.target === this._element) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\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 const transition = this._element.classList.contains(CLASS_NAME_FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.off(document, EVENT_FOCUSIN)\n\n this._element.classList.remove(CLASS_NAME_SHOW)\n\n EventHandler.off(this._element, EVENT_CLICK_DISMISS)\n EventHandler.off(this._dialog, EVENT_MOUSEDOWN_DISMISS)\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, event => this._hideModal(event))\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach(htmlElement => EventHandler.off(htmlElement, EVENT_KEY))\n\n super.dispose()\n\n /**\n * `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `EVENT_CLICK_DATA_API` event that should remain\n */\n EventHandler.off(document, EVENT_FOCUSIN)\n\n this._config = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._isTransitioning = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const transition = this._element.classList.contains(CLASS_NAME_FADE)\n const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog)\n\n if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(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 if (modalBody) {\n modalBody.scrollTop = 0\n }\n\n if (transition) {\n reflow(this._element)\n }\n\n this._element.classList.add(CLASS_NAME_SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n\n this._isTransitioning = false\n EventHandler.trigger(this._element, EVENT_SHOWN, {\n relatedTarget\n })\n }\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._dialog)\n\n EventHandler.one(this._dialog, TRANSITION_END, transitionComplete)\n emulateTransitionEnd(this._dialog, transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n EventHandler.off(document, EVENT_FOCUSIN) // guard against infinite focus loop\n EventHandler.on(document, EVENT_FOCUSIN, event => {\n if (document !== event.target &&\n this._element !== event.target &&\n !this._element.contains(event.target)) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown) {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {\n if (this._config.keyboard && event.key === ESCAPE_KEY) {\n event.preventDefault()\n this.hide()\n } else if (!this._config.keyboard && event.key === ESCAPE_KEY) {\n this._triggerBackdropTransition()\n }\n })\n } else {\n EventHandler.off(this._element, EVENT_KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n EventHandler.on(window, EVENT_RESIZE, () => this._adjustDialog())\n } else {\n EventHandler.off(window, EVENT_RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._element.removeAttribute('role')\n this._isTransitioning = false\n this._showBackdrop(() => {\n document.body.classList.remove(CLASS_NAME_OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n })\n }\n\n _removeBackdrop() {\n this._backdrop.parentNode.removeChild(this._backdrop)\n this._backdrop = null\n }\n\n _showBackdrop(callback) {\n const animate = this._element.classList.contains(CLASS_NAME_FADE) ?\n CLASS_NAME_FADE :\n ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = CLASS_NAME_BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n document.body.appendChild(this._backdrop)\n\n EventHandler.on(this._element, EVENT_CLICK_DISMISS, event => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n\n if (event.target !== event.currentTarget) {\n return\n }\n\n if (this._config.backdrop === 'static') {\n this._triggerBackdropTransition()\n } else {\n this.hide()\n }\n })\n\n if (animate) {\n reflow(this._backdrop)\n }\n\n this._backdrop.classList.add(CLASS_NAME_SHOW)\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n\n EventHandler.one(this._backdrop, TRANSITION_END, callback)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n this._backdrop.classList.remove(CLASS_NAME_SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n callback()\n }\n\n if (this._element.classList.contains(CLASS_NAME_FADE)) {\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n EventHandler.one(this._backdrop, TRANSITION_END, callbackRemove)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else {\n callback()\n }\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\n if (!isModalOverflowing) {\n this._element.style.overflowY = 'hidden'\n }\n\n this._element.classList.add(CLASS_NAME_STATIC)\n const modalTransitionDuration = getTransitionDurationFromElement(this._dialog)\n EventHandler.off(this._element, TRANSITION_END)\n EventHandler.one(this._element, TRANSITION_END, () => {\n this._element.classList.remove(CLASS_NAME_STATIC)\n if (!isModalOverflowing) {\n EventHandler.one(this._element, TRANSITION_END, () => {\n this._element.style.overflowY = ''\n })\n emulateTransitionEnd(this._element, modalTransitionDuration)\n }\n })\n emulateTransitionEnd(this._element, modalTransitionDuration)\n this._element.focus()\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing =\n this._element.scrollHeight > document.documentElement.clientHeight\n\n if ((!this._isBodyOverflowing && isModalOverflowing && !isRTL) || (this._isBodyOverflowing && !isModalOverflowing && isRTL)) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if ((this._isBodyOverflowing && !isModalOverflowing && !isRTL) || (!this._isBodyOverflowing && isModalOverflowing && isRTL)) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n // Adjust fixed content padding\n SelectorEngine.find(SELECTOR_FIXED_CONTENT)\n .forEach(element => {\n const actualPadding = element.style.paddingRight\n const calculatedPadding = window.getComputedStyle(element)['padding-right']\n Manipulator.setDataAttribute(element, 'padding-right', actualPadding)\n element.style.paddingRight = `${Number.parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n })\n\n // Adjust sticky content margin\n SelectorEngine.find(SELECTOR_STICKY_CONTENT)\n .forEach(element => {\n const actualMargin = element.style.marginRight\n const calculatedMargin = window.getComputedStyle(element)['margin-right']\n Manipulator.setDataAttribute(element, 'margin-right', actualMargin)\n element.style.marginRight = `${Number.parseFloat(calculatedMargin) - this._scrollbarWidth}px`\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = window.getComputedStyle(document.body)['padding-right']\n\n Manipulator.setDataAttribute(document.body, 'padding-right', actualPadding)\n document.body.style.paddingRight = `${Number.parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n }\n\n document.body.classList.add(CLASS_NAME_OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n SelectorEngine.find(SELECTOR_FIXED_CONTENT)\n .forEach(element => {\n const padding = Manipulator.getDataAttribute(element, 'padding-right')\n if (typeof padding !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'padding-right')\n element.style.paddingRight = padding\n }\n })\n\n // Restore sticky content and navbar-toggler margin\n SelectorEngine.find(`${SELECTOR_STICKY_CONTENT}`)\n .forEach(element => {\n const margin = Manipulator.getDataAttribute(element, 'margin-right')\n if (typeof margin !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'margin-right')\n element.style.marginRight = margin\n }\n })\n\n // Restore body padding\n const padding = Manipulator.getDataAttribute(document.body, 'padding-right')\n if (typeof padding === 'undefined') {\n document.body.style.paddingRight = ''\n } else {\n Manipulator.removeDataAttribute(document.body, 'padding-right')\n document.body.style.paddingRight = padding\n }\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = CLASS_NAME_SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(this),\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (!data) {\n data = new Modal(this, _config)\n }\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](relatedTarget)\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n const target = getElementFromSelector(this)\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\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 let data = Data.getData(target, DATA_KEY)\n if (!data) {\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n\n data = new Modal(target, config)\n }\n\n data.show(this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Modal to jQuery only if jQuery is present\n */\n\nonDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Modal.jQueryInterface\n $.fn[NAME].Constructor = Modal\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal.jQueryInterface\n }\n }\n})\n\nexport default Modal\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst uriAttrs = new Set([\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n])\n\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[\\d+/a-z]+=*$/i\n\nconst allowedAttribute = (attr, allowedAttributeList) => {\n const attrName = attr.nodeName.toLowerCase()\n\n if (allowedAttributeList.includes(attrName)) {\n if (uriAttrs.has(attrName)) {\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, len = regExp.length; i < len; i++) {\n if (attrName.match(regExp[i])) {\n return true\n }\n }\n\n return false\n}\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\nexport function sanitizeHtml(unsafeHtml, allowList, sanitizeFn) {\n if (!unsafeHtml.length) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const allowlistKeys = Object.keys(allowList)\n const elements = [].concat(...createdDocument.body.querySelectorAll('*'))\n\n for (let i = 0, len = elements.length; i < len; i++) {\n const el = elements[i]\n const elName = el.nodeName.toLowerCase()\n\n if (!allowlistKeys.includes(elName)) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n const attributeList = [].concat(...el.attributes)\n const allowedAttributes = [].concat(allowList['*'] || [], allowList[elName] || [])\n\n attributeList.forEach(attr => {\n if (!allowedAttribute(attr, allowedAttributes)) {\n el.removeAttribute(attr.nodeName)\n }\n })\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n onDOMContentLoaded,\n TRANSITION_END,\n emulateTransitionEnd,\n findShadowRoot,\n getTransitionDurationFromElement,\n getUID,\n isElement,\n isRTL,\n noop,\n typeCheckConfig\n} from './util/index'\nimport {\n DefaultAllowlist,\n sanitizeHtml\n} from './util/sanitizer'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tooltip'\nconst DATA_KEY = 'bs.tooltip'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-tooltip'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\nconst DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn'])\n\nconst DefaultType = {\n animation: 'boolean',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string',\n delay: '(number|object)',\n html: 'boolean',\n selector: '(string|boolean)',\n placement: '(string|function)',\n offset: '(number|string|function)',\n container: '(string|element|boolean)',\n fallbackPlacement: '(string|array)',\n boundary: '(string|element)',\n customClass: '(string|function)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n allowList: 'object',\n popperConfig: '(null|object)'\n}\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 animation: true,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"tooltip-arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div>' +\n '</div>',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n selector: false,\n placement: 'top',\n offset: 0,\n container: false,\n fallbackPlacement: 'flip',\n boundary: 'scrollParent',\n customClass: '',\n sanitize: true,\n sanitizeFn: null,\n allowList: DefaultAllowlist,\n popperConfig: null\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_MODAL = 'modal'\nconst CLASS_NAME_SHOW = 'show'\n\nconst HOVER_STATE_SHOW = 'show'\nconst HOVER_STATE_OUT = 'out'\n\nconst SELECTOR_TOOLTIP_INNER = '.tooltip-inner'\n\nconst TRIGGER_HOVER = 'hover'\nconst TRIGGER_FOCUS = 'focus'\nconst TRIGGER_CLICK = 'click'\nconst TRIGGER_MANUAL = 'manual'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\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)\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(event.delegateTarget, this._getDelegateConfig())\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if (this.getTipElement().classList.contains(CLASS_NAME_SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n EventHandler.off(this._element, this.constructor.EVENT_KEY)\n EventHandler.off(this._element.closest(`.${CLASS_NAME_MODAL}`), 'hide.bs.modal', this._hideModalHandler)\n\n if (this.tip) {\n this.tip.parentNode.removeChild(this.tip)\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.config = null\n this.tip = null\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 const showEvent = EventHandler.trigger(this._element, this.constructor.Event.SHOW)\n const shadowRoot = findShadowRoot(this._element)\n const isInTheDom = shadowRoot === null ?\n this._element.ownerDocument.documentElement.contains(this._element) :\n shadowRoot.contains(this._element)\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this._element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n tip.classList.add(CLASS_NAME_FADE)\n }\n\n const placement = typeof this.config.placement === 'function' ?\n this.config.placement.call(this, tip, this._element) :\n this.config.placement\n\n const attachment = this._getAttachment(placement)\n this._addAttachmentClass(attachment)\n\n const container = this._getContainer()\n Data.setData(tip, this.constructor.DATA_KEY, this)\n\n if (!this._element.ownerDocument.documentElement.contains(this.tip)) {\n container.appendChild(tip)\n }\n\n EventHandler.trigger(this._element, this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this._element, tip, this._getPopperConfig(attachment))\n\n tip.classList.add(CLASS_NAME_SHOW)\n\n const customClass = typeof this.config.customClass === 'function' ? this.config.customClass() : this.config.customClass\n if (customClass) {\n tip.classList.add(...customClass.split(' '))\n }\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 [].concat(...document.body.children).forEach(element => {\n EventHandler.on(element, 'mouseover', noop())\n })\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n EventHandler.trigger(this._element, this.constructor.Event.SHOWN)\n\n if (prevHoverState === HOVER_STATE_OUT) {\n this._leave(null, this)\n }\n }\n\n if (this.tip.classList.contains(CLASS_NAME_FADE)) {\n const transitionDuration = getTransitionDurationFromElement(this.tip)\n EventHandler.one(this.tip, TRANSITION_END, complete)\n emulateTransitionEnd(this.tip, transitionDuration)\n } else {\n complete()\n }\n }\n }\n\n hide() {\n if (!this._popper) {\n return\n }\n\n const tip = this.getTipElement()\n const complete = () => {\n if (this._hoverState !== HOVER_STATE_SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this._element.removeAttribute('aria-describedby')\n EventHandler.trigger(this._element, this.constructor.Event.HIDDEN)\n this._popper.destroy()\n }\n\n const hideEvent = EventHandler.trigger(this._element, this.constructor.Event.HIDE)\n if (hideEvent.defaultPrevented) {\n return\n }\n\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 [].concat(...document.body.children)\n .forEach(element => EventHandler.off(element, 'mouseover', noop))\n }\n\n this._activeTrigger[TRIGGER_CLICK] = false\n this._activeTrigger[TRIGGER_FOCUS] = false\n this._activeTrigger[TRIGGER_HOVER] = false\n\n if (this.tip.classList.contains(CLASS_NAME_FADE)) {\n const transitionDuration = getTransitionDurationFromElement(tip)\n\n EventHandler.one(tip, TRANSITION_END, complete)\n emulateTransitionEnd(tip, transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n getTipElement() {\n if (this.tip) {\n return this.tip\n }\n\n const element = document.createElement('div')\n element.innerHTML = this.config.template\n\n this.tip = element.children[0]\n return this.tip\n }\n\n setContent() {\n const tip = this.getTipElement()\n this.setElementContent(SelectorEngine.findOne(SELECTOR_TOOLTIP_INNER, tip), this.getTitle())\n tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW)\n }\n\n setElementContent(element, content) {\n if (element === null) {\n return\n }\n\n if (typeof content === 'object' && isElement(content)) {\n if (content.jquery) {\n content = content[0]\n }\n\n // content is a DOM node or a jQuery\n if (this.config.html) {\n if (content.parentNode !== element) {\n element.innerHTML = ''\n element.appendChild(content)\n }\n } else {\n element.textContent = content.textContent\n }\n\n return\n }\n\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.allowList, this.config.sanitizeFn)\n }\n\n element.innerHTML = content\n } else {\n element.textContent = content\n }\n }\n\n getTitle() {\n let title = this._element.getAttribute('data-bs-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function' ?\n this.config.title.call(this._element) :\n this.config.title\n }\n\n return title\n }\n\n updateAttachment(attachment) {\n if (attachment === 'right') {\n return 'end'\n }\n\n if (attachment === 'left') {\n return 'start'\n }\n\n return attachment\n }\n\n // Private\n\n _getPopperConfig(attachment) {\n const defaultBsConfig = {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: `.${this.constructor.NAME}-arrow`\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: data => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: data => this._handlePopperPlacementChange(data)\n }\n\n return {\n ...defaultBsConfig,\n ...this.config.popperConfig\n }\n }\n\n _addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${this.updateAttachment(attachment)}`)\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this.config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...(this.config.offset(data.offsets, this._element) || {})\n }\n\n return data\n }\n } else {\n offset.offset = this.config.offset\n }\n\n return offset\n }\n\n _getContainer() {\n if (this.config.container === false) {\n return document.body\n }\n\n if (isElement(this.config.container)) {\n return this.config.container\n }\n\n return SelectorEngine.findOne(this.config.container)\n }\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach(trigger => {\n if (trigger === 'click') {\n EventHandler.on(this._element, this.constructor.Event.CLICK, this.config.selector, event => this.toggle(event)\n )\n } else if (trigger !== TRIGGER_MANUAL) {\n const eventIn = trigger === TRIGGER_HOVER ?\n this.constructor.Event.MOUSEENTER :\n this.constructor.Event.FOCUSIN\n const eventOut = trigger === TRIGGER_HOVER ?\n this.constructor.Event.MOUSELEAVE :\n this.constructor.Event.FOCUSOUT\n\n EventHandler.on(this._element, eventIn, this.config.selector, event => this._enter(event))\n EventHandler.on(this._element, eventOut, this.config.selector, event => this._leave(event))\n }\n })\n\n this._hideModalHandler = () => {\n if (this._element) {\n this.hide()\n }\n }\n\n EventHandler.on(this._element.closest(`.${CLASS_NAME_MODAL}`), 'hide.bs.modal', this._hideModalHandler)\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const title = this._element.getAttribute('title')\n const originalTitleType = typeof this._element.getAttribute('data-bs-original-title')\n\n if (title || originalTitleType !== 'string') {\n this._element.setAttribute('data-bs-original-title', title || '')\n if (title && !this._element.getAttribute('aria-label') && !this._element.textContent) {\n this._element.setAttribute('aria-label', title)\n }\n\n this._element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER\n ] = true\n }\n\n if (context.getTipElement().classList.contains(CLASS_NAME_SHOW) || context._hoverState === HOVER_STATE_SHOW) {\n context._hoverState = HOVER_STATE_SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this._element)\n\n Object.keys(dataAttributes).forEach(dataAttr => {\n if (DISALLOWED_ATTRIBUTES.has(dataAttr)) {\n delete dataAttributes[dataAttr]\n }\n })\n\n if (config && typeof config.container === 'object' && config.container.jquery) {\n config.container = config.container[0]\n }\n\n config = {\n ...this.constructor.Default,\n ...dataAttributes,\n ...(typeof config === 'object' && config ? config : {})\n }\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 typeCheckConfig(NAME, config, this.constructor.DefaultType)\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.allowList, config.sanitizeFn)\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n _handlePopperPlacementChange(popperData) {\n this.tip = popperData.instance.popper\n this._cleanTipClass()\n this._addAttachmentClass(this._getAttachment(popperData.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n\n tip.classList.remove(CLASS_NAME_FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n }\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 * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Tooltip to jQuery only if jQuery is present\n */\n\nonDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tooltip.jQueryInterface\n $.fn[NAME].Constructor = Tooltip\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip.jQueryInterface\n }\n }\n})\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getjQuery, onDOMContentLoaded } from './util/index'\nimport Data from './dom/data'\nimport SelectorEngine from './dom/selector-engine'\nimport Tooltip from './tooltip'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'popover'\nconst DATA_KEY = 'bs.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-popover'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst Default = {\n ...Tooltip.Default,\n placement: 'right',\n trigger: 'click',\n content: '',\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}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content: '(string|element|function)'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_TITLE = '.popover-header'\nconst SELECTOR_CONTENT = '.popover-body'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Popover extends Tooltip {\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n setContent() {\n const tip = this.getTipElement()\n\n // we use append for html objects to maintain js events\n this.setElementContent(SelectorEngine.findOne(SELECTOR_TITLE, tip), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this._element)\n }\n\n this.setElementContent(SelectorEngine.findOne(SELECTOR_CONTENT, tip), content)\n\n tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW)\n }\n\n // Private\n\n _addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${this.updateAttachment(attachment)}`)\n }\n\n _getContent() {\n return this._element.getAttribute('data-bs-content') || this.config.content\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n Data.setData(this, DATA_KEY, data)\n }\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 * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Popover to jQuery only if jQuery is present\n */\n\nonDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Popover.jQueryInterface\n $.fn[NAME].Constructor = Popover\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover.jQueryInterface\n }\n }\n})\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n onDOMContentLoaded,\n getSelectorFromElement,\n getUID,\n isElement,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollspy'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n offset: 10,\n method: 'auto',\n target: ''\n}\n\nconst DefaultType = {\n offset: 'number',\n method: 'string',\n target: '(string|element)'\n}\n\nconst EVENT_ACTIVATE = `activate${EVENT_KEY}`\nconst EVENT_SCROLL = `scroll${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_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_DROPDOWN = '.dropdown'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\n\nconst METHOD_OFFSET = 'offset'\nconst METHOD_POSITION = 'position'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy extends BaseComponent {\n constructor(element, config) {\n super(element)\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${SELECTOR_NAV_LINKS}, ${this._config.target} ${SELECTOR_LIST_ITEMS}, ${this._config.target} .${CLASS_NAME_DROPDOWN_ITEM}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n EventHandler.on(this._scrollElement, EVENT_SCROLL, event => this._process(event))\n\n this.refresh()\n this._process()\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window ?\n METHOD_OFFSET :\n METHOD_POSITION\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod :\n this._config.method\n\n const offsetBase = offsetMethod === METHOD_POSITION ?\n this._getScrollTop() :\n 0\n\n this._offsets = []\n this._targets = []\n this._scrollHeight = this._getScrollHeight()\n\n const targets = SelectorEngine.find(this._selector)\n\n targets.map(element => {\n const targetSelector = getSelectorFromElement(element)\n const target = targetSelector ? SelectorEngine.findOne(targetSelector) : null\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n return [\n Manipulator[offsetMethod](target).top + offsetBase,\n targetSelector\n ]\n }\n }\n\n return null\n })\n .filter(item => item)\n .sort((a, b) => a[0] - b[0])\n .forEach(item => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n super.dispose()\n EventHandler.off(this._scrollElement, EVENT_KEY)\n\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (typeof config.target !== 'string' && isElement(config.target)) {\n let { id } = config.target\n if (!id) {\n id = getUID(NAME)\n config.target.id = id\n }\n\n config.target = `#${id}`\n }\n\n typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window ?\n this._scrollElement.pageYOffset :\n this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window ?\n window.innerHeight :\n this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n for (let i = this._offsets.length; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector.split(',')\n .map(selector => `${selector}[data-bs-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const link = SelectorEngine.findOne(queries.join(','))\n\n if (link.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) {\n SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE, link.closest(SELECTOR_DROPDOWN))\n .classList.add(CLASS_NAME_ACTIVE)\n\n link.classList.add(CLASS_NAME_ACTIVE)\n } else {\n // Set triggered link as active\n link.classList.add(CLASS_NAME_ACTIVE)\n\n SelectorEngine.parents(link, SELECTOR_NAV_LIST_GROUP)\n .forEach(listGroup => {\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 SelectorEngine.prev(listGroup, `${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`)\n .forEach(item => item.classList.add(CLASS_NAME_ACTIVE))\n\n // Handle special case when .nav-link is inside .nav-item\n SelectorEngine.prev(listGroup, SELECTOR_NAV_ITEMS)\n .forEach(navItem => {\n SelectorEngine.children(navItem, SELECTOR_NAV_LINKS)\n .forEach(item => item.classList.add(CLASS_NAME_ACTIVE))\n })\n })\n }\n\n EventHandler.trigger(this._scrollElement, EVENT_ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n SelectorEngine.find(this._selector)\n .filter(node => node.classList.contains(CLASS_NAME_ACTIVE))\n .forEach(node => node.classList.remove(CLASS_NAME_ACTIVE))\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n }\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 * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n SelectorEngine.find(SELECTOR_DATA_SPY)\n .forEach(spy => new ScrollSpy(spy, Manipulator.getDataAttributes(spy)))\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .ScrollSpy to jQuery only if jQuery is present\n */\n\nonDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = ScrollSpy.jQueryInterface\n $.fn[NAME].Constructor = ScrollSpy\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy.jQueryInterface\n }\n }\n})\n\nexport default ScrollSpy\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n onDOMContentLoaded,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\n reflow\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tab'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\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}`\n\nconst CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_UL = ':scope > li > .active'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"tab\"], [data-bs-toggle=\"pill\"], [data-bs-toggle=\"list\"]'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\nconst SELECTOR_DROPDOWN_ACTIVE_CHILD = ':scope > .dropdown-menu .active'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tab extends BaseComponent {\n // Getters\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n show() {\n if ((this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n this._element.classList.contains(CLASS_NAME_ACTIVE)) ||\n this._element.classList.contains(CLASS_NAME_DISABLED)) {\n return\n }\n\n let previous\n const target = getElementFromSelector(this._element)\n const listElement = this._element.closest(SELECTOR_NAV_LIST_GROUP)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE\n previous = SelectorEngine.find(itemSelector, listElement)\n previous = previous[previous.length - 1]\n }\n\n let hideEvent = null\n\n if (previous) {\n hideEvent = EventHandler.trigger(previous, EVENT_HIDE, {\n relatedTarget: this._element\n })\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, {\n relatedTarget: previous\n })\n\n if (showEvent.defaultPrevented || (hideEvent !== null && hideEvent.defaultPrevented)) {\n return\n }\n\n this._activate(this._element, listElement)\n\n const complete = () => {\n EventHandler.trigger(previous, EVENT_HIDDEN, {\n relatedTarget: this._element\n })\n EventHandler.trigger(this._element, EVENT_SHOWN, {\n relatedTarget: previous\n })\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n // Private\n\n _activate(element, container, callback) {\n const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ?\n SelectorEngine.find(SELECTOR_ACTIVE_UL, container) :\n SelectorEngine.children(container, SELECTOR_ACTIVE)\n\n const active = activeElements[0]\n const isTransitioning = callback && (active && active.classList.contains(CLASS_NAME_FADE))\n\n const complete = () => this._transitionComplete(element, active, callback)\n\n if (active && isTransitioning) {\n const transitionDuration = getTransitionDurationFromElement(active)\n active.classList.remove(CLASS_NAME_SHOW)\n\n EventHandler.one(active, TRANSITION_END, complete)\n emulateTransitionEnd(active, transitionDuration)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n active.classList.remove(CLASS_NAME_ACTIVE)\n\n const dropdownChild = SelectorEngine.findOne(SELECTOR_DROPDOWN_ACTIVE_CHILD, active.parentNode)\n\n if (dropdownChild) {\n dropdownChild.classList.remove(CLASS_NAME_ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n element.classList.add(CLASS_NAME_ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n reflow(element)\n\n if (element.classList.contains(CLASS_NAME_FADE)) {\n element.classList.add(CLASS_NAME_SHOW)\n }\n\n if (element.parentNode && element.parentNode.classList.contains(CLASS_NAME_DROPDOWN_MENU)) {\n const dropdownElement = element.closest(SELECTOR_DROPDOWN)\n\n if (dropdownElement) {\n SelectorEngine.find(SELECTOR_DROPDOWN_TOGGLE)\n .forEach(dropdown => dropdown.classList.add(CLASS_NAME_ACTIVE))\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\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 * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault()\n\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n data.show()\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Tab to jQuery only if jQuery is present\n */\n\nonDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tab.jQueryInterface\n $.fn[NAME].Constructor = Tab\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab.jQueryInterface\n }\n }\n})\n\nexport default Tab\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n onDOMContentLoaded,\n TRANSITION_END,\n emulateTransitionEnd,\n getTransitionDurationFromElement,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'toast'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_CLICK_DISMISS = `click.dismiss${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'\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\nconst SELECTOR_DATA_DISMISS = '[data-bs-dismiss=\"toast\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n }\n\n // Getters\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get Default() {\n return Default\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\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 this._element.classList.add(CLASS_NAME_SHOW)\n\n EventHandler.trigger(this._element, EVENT_SHOWN)\n\n if (this._config.autohide) {\n this._timeout = setTimeout(() => {\n this.hide()\n }, this._config.delay)\n }\n }\n\n this._element.classList.remove(CLASS_NAME_HIDE)\n reflow(this._element)\n this._element.classList.add(CLASS_NAME_SHOWING)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n hide() {\n if (!this._element.classList.contains(CLASS_NAME_SHOW)) {\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)\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n }\n\n this._element.classList.remove(CLASS_NAME_SHOW)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n dispose() {\n this._clearTimeout()\n\n if (this._element.classList.contains(CLASS_NAME_SHOW)) {\n this._element.classList.remove(CLASS_NAME_SHOW)\n }\n\n EventHandler.off(this._element, EVENT_CLICK_DISMISS)\n\n super.dispose()\n this._config = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...(typeof config === 'object' && config ? config : {})\n }\n\n typeCheckConfig(NAME, config, this.constructor.DefaultType)\n\n return config\n }\n\n _setListeners() {\n EventHandler.on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, () => this.hide())\n }\n\n _clearTimeout() {\n clearTimeout(this._timeout)\n this._timeout = null\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new Toast(this, _config)\n }\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 * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Toast to jQuery only if jQuery is present\n */\n\nonDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Toast.jQueryInterface\n $.fn[NAME].Constructor = Toast\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Toast.jQueryInterface\n }\n }\n})\n\nexport default Toast\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): index.umd.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Alert from './src/alert'\nimport Button from './src/button'\nimport Carousel from './src/carousel'\nimport Collapse from './src/collapse'\nimport Dropdown from './src/dropdown'\nimport Modal from './src/modal'\nimport Popover from './src/popover'\nimport ScrollSpy from './src/scrollspy'\nimport Tab from './src/tab'\nimport Toast from './src/toast'\nimport Tooltip from './src/tooltip'\n\nexport default {\n Alert,\n Button,\n Carousel,\n Collapse,\n Dropdown,\n Modal,\n Popover,\n ScrollSpy,\n Tab,\n Toast,\n Tooltip\n}\n"],"names":["MAX_UID","MILLISECONDS_MULTIPLIER","TRANSITION_END","toType","obj","undefined","toString","call","match","toLowerCase","getUID","prefix","Math","floor","random","document","getElementById","getSelector","element","selector","getAttribute","hrefAttr","trim","getSelectorFromElement","querySelector","getElementFromSelector","getTransitionDurationFromElement","window","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","Number","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","dispatchEvent","Event","isElement","nodeType","emulateTransitionEnd","duration","called","durationPadding","emulatedDuration","listener","removeEventListener","addEventListener","setTimeout","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","isVisible","style","parentNode","elementStyle","parentNodeStyle","display","visibility","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","noop","reflow","offsetHeight","getjQuery","jQuery","body","hasAttribute","onDOMContentLoaded","callback","readyState","isRTL","dir","mapData","storeData","id","set","key","data","bsKey","get","keyProperties","delete","Data","setData","instance","getData","removeData","namespaceRegex","stripNameRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","nativeEvents","Set","getUidEvent","uid","getEvent","bootstrapHandler","fn","handler","event","delegateTarget","oneOff","EventHandler","off","type","apply","bootstrapDelegationHandler","domElements","querySelectorAll","target","i","length","findHandler","events","delegationSelector","uidEventList","len","originalHandler","normalizeParams","originalTypeEvent","delegationFn","delegation","typeEvent","replace","custom","isNative","has","addHandler","handlers","previousFn","removeHandler","Boolean","removeNamespacedHandlers","namespace","storeElementEvent","handlerKey","includes","on","one","inNamespace","isNamespace","startsWith","elementEvent","slice","keyHandlers","trigger","args","$","jQueryEvent","bubbles","nativeDispatch","defaultPrevented","evt","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","createEvent","initEvent","CustomEvent","cancelable","defineProperty","preventDefault","VERSION","BaseComponent","_element","constructor","DATA_KEY","dispose","getInstance","NAME","EVENT_KEY","DATA_API_KEY","SELECTOR_DISMISS","EVENT_CLOSE","EVENT_CLOSED","EVENT_CLICK_DATA_API","CLASSNAME_ALERT","CLASSNAME_FADE","CLASSNAME_SHOW","Alert","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","_removeElement","closest","classList","remove","contains","_destroyElement","removeChild","jQueryInterface","each","handleDismiss","alertInstance","JQUERY_NO_CONFLICT","Constructor","noConflict","CLASS_NAME_ACTIVE","SELECTOR_DATA_TOGGLE","Button","toggle","setAttribute","button","normalizeData","val","normalizeDataKey","chr","Manipulator","setDataAttribute","removeDataAttribute","removeAttribute","getDataAttributes","attributes","dataset","filter","pureKey","charAt","getDataAttribute","offset","rect","getBoundingClientRect","top","scrollTop","left","scrollLeft","position","offsetTop","offsetLeft","NODE_TEXT","SelectorEngine","matches","find","concat","Element","prototype","findOne","children","child","parents","ancestor","Node","ELEMENT_NODE","push","prev","previous","previousElementSibling","next","nextElementSibling","ARROW_LEFT_KEY","ARROW_RIGHT_KEY","TOUCHEVENT_COMPAT_WAIT","SWIPE_THRESHOLD","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","DIRECTION_NEXT","DIRECTION_PREV","DIRECTION_LEFT","DIRECTION_RIGHT","EVENT_SLIDE","EVENT_SLID","EVENT_KEYDOWN","EVENT_MOUSEENTER","EVENT_MOUSELEAVE","EVENT_TOUCHSTART","EVENT_TOUCHMOVE","EVENT_TOUCHEND","EVENT_POINTERDOWN","EVENT_POINTERUP","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","CLASS_NAME_POINTER_EVENT","SELECTOR_ACTIVE","SELECTOR_ACTIVE_ITEM","SELECTOR_ITEM","SELECTOR_ITEM_IMG","SELECTOR_NEXT_PREV","SELECTOR_INDICATORS","SELECTOR_DATA_SLIDE","SELECTOR_DATA_RIDE","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","_addEventListeners","_slide","nextWhenVisible","hidden","cycle","clearInterval","_updateInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","direction","_handleSwipe","absDeltax","abs","_keydown","_addTouchEventListeners","start","pointerType","clientX","touches","move","end","clearTimeout","itemImg","e","add","tagName","indexOf","_getItemByDirection","activeElement","isNextDirection","isPrevDirection","lastItemIndex","isGoingToWrap","delta","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","from","_setActiveIndicatorElement","indicators","nextIndicator","elementInterval","parseInt","defaultInterval","activeElementIndex","nextElement","nextElementIndex","isCycling","directionalClassName","orderClassName","slideEvent","carouselInterface","action","TypeError","ride","dataApiClickHandler","slideIndex","carousels","parent","EVENT_SHOW","EVENT_SHOWN","EVENT_HIDE","EVENT_HIDDEN","CLASS_NAME_SHOW","CLASS_NAME_COLLAPSE","CLASS_NAME_COLLAPSING","CLASS_NAME_COLLAPSED","WIDTH","HEIGHT","SELECTOR_ACTIVES","Collapse","_isTransitioning","_triggerArray","toggleList","elem","filterElement","foundElem","_selector","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","container","tempActiveData","startEvent","elemActive","collapseInterface","dimension","_getDimension","setTransitioning","complete","capitalizedDimension","scrollSize","triggerArrayLength","isTransitioning","jquery","selected","triggerArray","isOpen","triggerData","selectorElements","ESCAPE_KEY","SPACE_KEY","TAB_KEY","ARROW_UP_KEY","ARROW_DOWN_KEY","RIGHT_MOUSE_BUTTON","REGEXP_KEYDOWN","EVENT_CLICK","EVENT_KEYDOWN_DATA_API","EVENT_KEYUP_DATA_API","CLASS_NAME_DISABLED","CLASS_NAME_DROPUP","CLASS_NAME_DROPEND","CLASS_NAME_DROPSTART","CLASS_NAME_MENUEND","CLASS_NAME_NAVBAR","CLASS_NAME_POSITION_STATIC","SELECTOR_FORM_CHILD","SELECTOR_MENU","SELECTOR_NAVBAR_NAV","SELECTOR_VISIBLE_ITEMS","PLACEMENT_TOP","PLACEMENT_TOPEND","PLACEMENT_BOTTOM","PLACEMENT_BOTTOMEND","PLACEMENT_RIGHT","PLACEMENT_LEFT","flip","boundary","reference","popperConfig","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","isActive","clearMenus","getParentFromElement","showEvent","Popper","referenceElement","_getPopperConfig","focus","hideEvent","destroy","update","scheduleUpdate","stopPropagation","_getPlacement","parentDropdown","placement","_getOffset","offsets","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","dropdownInterface","toggles","context","clickEvent","dropdownMenu","dataApiKeydownHandler","items","backdrop","EVENT_HIDE_PREVENTED","EVENT_FOCUSIN","EVENT_RESIZE","EVENT_CLICK_DISMISS","EVENT_KEYDOWN_DISMISS","EVENT_MOUSEUP_DISMISS","EVENT_MOUSEDOWN_DISMISS","CLASS_NAME_SCROLLBAR_MEASURER","CLASS_NAME_BACKDROP","CLASS_NAME_OPEN","CLASS_NAME_FADE","CLASS_NAME_STATIC","SELECTOR_DIALOG","SELECTOR_MODAL_BODY","SELECTOR_DATA_DISMISS","SELECTOR_FIXED_CONTENT","SELECTOR_STICKY_CONTENT","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","htmlElement","handleUpdate","modalBody","appendChild","_enforceFocus","transitionComplete","_triggerBackdropTransition","_resetAdjustments","_resetScrollbar","_removeBackdrop","animate","createElement","className","currentTarget","backdropTransitionDuration","callbackRemove","isModalOverflowing","scrollHeight","clientHeight","overflowY","modalTransitionDuration","paddingLeft","paddingRight","round","right","innerWidth","_getScrollbarWidth","actualPadding","calculatedPadding","actualMargin","marginRight","calculatedMargin","padding","margin","scrollDiv","scrollbarWidth","width","clientWidth","uriAttrs","ARIA_ATTRIBUTE_PATTERN","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","attr","allowedAttributeList","attrName","nodeName","nodeValue","regExp","attrRegex","DefaultAllowlist","a","area","b","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","sanitizeHtml","unsafeHtml","allowList","sanitizeFn","domParser","DOMParser","createdDocument","parseFromString","allowlistKeys","elements","el","elName","attributeList","allowedAttributes","innerHTML","CLASS_PREFIX","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","html","fallbackPlacement","customClass","sanitize","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","CLASS_NAME_MODAL","HOVER_STATE_SHOW","HOVER_STATE_OUT","SELECTOR_TOOLTIP_INNER","TRIGGER_HOVER","TRIGGER_FOCUS","TRIGGER_CLICK","TRIGGER_MANUAL","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","_hideModalHandler","isWithContent","shadowRoot","isInTheDom","ownerDocument","tipId","setContent","attachment","_getAttachment","_addAttachmentClass","_getContainer","_fixTransition","prevHoverState","_cleanTipClass","getTitle","setElementContent","content","textContent","updateAttachment","defaultBsConfig","behavior","arrow","onCreate","originalPlacement","_handlePopperPlacementChange","onUpdate","triggers","eventIn","eventOut","_fixTitle","originalTitleType","dataAttributes","dataAttr","tabClass","map","token","tClass","popperData","popper","initConfigAnimation","SELECTOR_TITLE","SELECTOR_CONTENT","Popover","_getContent","method","EVENT_ACTIVATE","EVENT_SCROLL","CLASS_NAME_DROPDOWN_ITEM","SELECTOR_DATA_SPY","SELECTOR_NAV_LIST_GROUP","SELECTOR_NAV_LINKS","SELECTOR_NAV_ITEMS","SELECTOR_LIST_ITEMS","SELECTOR_DROPDOWN","SELECTOR_DROPDOWN_TOGGLE","METHOD_OFFSET","METHOD_POSITION","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targets","targetSelector","targetBCR","height","item","sort","pageYOffset","max","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","isActiveTarget","queries","link","join","listGroup","navItem","node","spy","CLASS_NAME_DROPDOWN_MENU","SELECTOR_ACTIVE_UL","SELECTOR_DROPDOWN_ACTIVE_CHILD","Tab","listElement","itemSelector","activeElements","active","_transitionComplete","dropdownChild","dropdownElement","dropdown","CLASS_NAME_HIDE","CLASS_NAME_SHOWING","autohide","Toast","_clearTimeout"],"mappings":"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"}
\ No newline at end of file +{"version":3,"file":"bootstrap.js","sources":["../../js/src/util/index.js","../../js/src/dom/data.js","../../js/src/dom/event-handler.js","../../js/src/base-component.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/dom/manipulator.js","../../js/src/dom/selector-engine.js","../../js/src/carousel.js","../../js/src/collapse.js","../../js/src/dropdown.js","../../js/src/modal.js","../../js/src/util/scrollbar.js","../../js/src/offcanvas.js","../../js/src/util/sanitizer.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/toast.js","../../js/index.umd.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => {\n if (obj === null || obj === undefined) {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n prefix += Math.floor(Math.random() * MAX_UID)\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelector = element => {\n let selector = element.getAttribute('data-bs-target')\n\n if (!selector || selector === '#') {\n let hrefAttr = 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 (!hrefAttr || (!hrefAttr.includes('#') && !hrefAttr.startsWith('.'))) {\n return null\n }\n\n // Just in case some CMS puts out a full URL with the anchor appended\n if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {\n hrefAttr = '#' + hrefAttr.split('#')[1]\n }\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null\n }\n\n return selector\n}\n\nconst getSelectorFromElement = element => {\n const selector = getSelector(element)\n\n if (selector) {\n return document.querySelector(selector) ? selector : null\n }\n\n return null\n}\n\nconst getElementFromSelector = element => {\n const selector = getSelector(element)\n\n return selector ? document.querySelector(selector) : null\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 = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes).forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ? 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`\n )\n }\n })\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n const elementStyle = getComputedStyle(element)\n const parentNodeStyle = getComputedStyle(element.parentNode)\n\n return elementStyle.display !== 'none' &&\n parentNodeStyle.display !== 'none' &&\n elementStyle.visibility !== 'hidden'\n }\n\n return false\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 = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nconst getjQuery = () => {\n const { jQuery } = window\n\n if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n return jQuery\n }\n\n return null\n}\n\nconst onDOMContentLoaded = callback => {\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', callback)\n } else {\n callback()\n }\n}\n\nconst isRTL = () => document.documentElement.dir === 'rtl'\n\nconst defineJQueryPlugin = (name, plugin) => {\n onDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\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\nexport {\n getUID,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n isVisible,\n isDisabled,\n findShadowRoot,\n noop,\n reflow,\n getjQuery,\n onDOMContentLoaded,\n isRTL,\n defineJQueryPlugin\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\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 (v5.0.0-beta3): dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getjQuery } from '../util/index'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\nconst nativeEvents = new Set([\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 * ------------------------------------------------------------------------\n * Private methods\n * ------------------------------------------------------------------------\n */\n\nfunction getUidEvent(element, uid) {\n return (uid && `${uid}::${uidEvent++}`) || element.uidEvent || uidEvent++\n}\n\nfunction getEvent(element) {\n const uid = getUidEvent(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 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 (let i = domElements.length; i--;) {\n if (domElements[i] === target) {\n event.delegateTarget = target\n\n if (handler.oneOff) {\n // eslint-disable-next-line unicorn/consistent-destructuring\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(target, [event])\n }\n }\n }\n\n // To please ESLint\n return null\n }\n}\n\nfunction findHandler(events, handler, delegationSelector = null) {\n const uidEventList = Object.keys(events)\n\n for (let i = 0, len = uidEventList.length; i < len; i++) {\n const event = events[uidEventList[i]]\n\n if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {\n return event\n }\n }\n\n return null\n}\n\nfunction normalizeParams(originalTypeEvent, handler, delegationFn) {\n const delegation = typeof handler === 'string'\n const originalHandler = delegation ? delegationFn : handler\n\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n let typeEvent = originalTypeEvent.replace(stripNameRegex, '')\n const custom = customEvents[typeEvent]\n\n if (custom) {\n typeEvent = custom\n }\n\n const isNative = nativeEvents.has(typeEvent)\n\n if (!isNative) {\n typeEvent = originalTypeEvent\n }\n\n return [delegation, originalHandler, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n if (!handler) {\n handler = delegationFn\n delegationFn = null\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const events = getEvent(element)\n const handlers = events[typeEvent] || (events[typeEvent] = {})\n const previousFn = findHandler(handlers, originalHandler, delegation ? handler : null)\n\n if (previousFn) {\n previousFn.oneOff = previousFn.oneOff && oneOff\n\n return\n }\n\n const uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, ''))\n const fn = delegation ?\n bootstrapDelegationHandler(element, handler, delegationFn) :\n bootstrapHandler(element, handler)\n\n fn.delegationSelector = delegation ? handler : null\n fn.originalHandler = originalHandler\n fn.oneOff = oneOff\n fn.uidEvent = uid\n handlers[uid] = fn\n\n element.addEventListener(typeEvent, fn, delegation)\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 Object.keys(storeElementEvent).forEach(handlerKey => {\n if (handlerKey.includes(namespace)) {\n const event = storeElementEvent[handlerKey]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, false)\n },\n\n one(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFn) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getEvent(element)\n const isNamespace = originalTypeEvent.startsWith('.')\n\n if (typeof originalHandler !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!events || !events[typeEvent]) {\n return\n }\n\n removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null)\n return\n }\n\n if (isNamespace) {\n Object.keys(events).forEach(elementEvent => {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1))\n })\n }\n\n const storeElementEvent = events[typeEvent] || {}\n Object.keys(storeElementEvent).forEach(keyHandlers => {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.includes(handlerKey)) {\n const event = storeElementEvent[keyHandlers]\n\n removeHandler(element, events, typeEvent, event.originalHandler, 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 = event.replace(stripNameRegex, '')\n const inNamespace = event !== typeEvent\n const isNative = nativeEvents.has(typeEvent)\n\n let jQueryEvent\n let bubbles = true\n let nativeDispatch = true\n let defaultPrevented = false\n let evt = null\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 if (isNative) {\n evt = document.createEvent('HTMLEvents')\n evt.initEvent(typeEvent, bubbles, true)\n } else {\n evt = new CustomEvent(event, {\n bubbles,\n cancelable: true\n })\n }\n\n // merge custom information in our event\n if (typeof args !== 'undefined') {\n Object.keys(args).forEach(key => {\n Object.defineProperty(evt, key, {\n get() {\n return args[key]\n }\n })\n })\n }\n\n if (defaultPrevented) {\n evt.preventDefault()\n }\n\n if (nativeDispatch) {\n element.dispatchEvent(evt)\n }\n\n if (evt.defaultPrevented && typeof jQueryEvent !== 'undefined') {\n jQueryEvent.preventDefault()\n }\n\n return evt\n }\n}\n\nexport default EventHandler\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): base-component.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Data from './dom/data'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst VERSION = '5.0.0-beta3'\n\nclass BaseComponent {\n constructor(element) {\n element = typeof element === 'string' ? document.querySelector(element) : element\n\n if (!element) {\n return\n }\n\n this._element = element\n Data.set(this._element, this.constructor.DATA_KEY, this)\n }\n\n dispose() {\n Data.remove(this._element, this.constructor.DATA_KEY)\n this._element = null\n }\n\n /** Static */\n\n static getInstance(element) {\n return Data.get(element, this.DATA_KEY)\n }\n\n static get VERSION() {\n return VERSION\n }\n}\n\nexport default BaseComponent\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n defineJQueryPlugin,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'alert'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst SELECTOR_DISMISS = '[data-bs-dismiss=\"alert\"]'\n\nconst EVENT_CLOSE = `close${EVENT_KEY}`\nconst EVENT_CLOSED = `closed${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_ALERT = 'alert'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Alert extends BaseComponent {\n // Getters\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n close(element) {\n const rootElement = element ? this._getRootElement(element) : this._element\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent === null || customEvent.defaultPrevented) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n // Private\n\n _getRootElement(element) {\n return getElementFromSelector(element) || element.closest(`.${CLASS_NAME_ALERT}`)\n }\n\n _triggerCloseEvent(element) {\n return EventHandler.trigger(element, EVENT_CLOSE)\n }\n\n _removeElement(element) {\n element.classList.remove(CLASS_NAME_SHOW)\n\n if (!element.classList.contains(CLASS_NAME_FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = getTransitionDurationFromElement(element)\n\n EventHandler.one(element, 'transitionend', () => this._destroyElement(element))\n emulateTransitionEnd(element, transitionDuration)\n }\n\n _destroyElement(element) {\n if (element.parentNode) {\n element.parentNode.removeChild(element)\n }\n\n EventHandler.trigger(element, EVENT_CLOSED)\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.get(this, DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DISMISS, Alert.handleDismiss(new Alert()))\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Alert to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(NAME, Alert)\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { defineJQueryPlugin } from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\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'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"button\"]'\n\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Button extends BaseComponent {\n // Getters\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n toggle() {\n // Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method\n this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE))\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.get(this, DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\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\n let data = Data.get(button, DATA_KEY)\n if (!data) {\n data = new Button(button)\n }\n\n data.toggle()\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Button to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(NAME, Button)\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(val) {\n if (val === 'true') {\n return true\n }\n\n if (val === 'false') {\n return false\n }\n\n if (val === Number(val).toString()) {\n return Number(val)\n }\n\n if (val === '' || val === 'null') {\n return null\n }\n\n return val\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\n Object.keys(element.dataset)\n .filter(key => key.startsWith('bs'))\n .forEach(key => {\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 offset(element) {\n const rect = element.getBoundingClientRect()\n\n return {\n top: rect.top + document.body.scrollTop,\n left: rect.left + document.body.scrollLeft\n }\n },\n\n position(element) {\n return {\n top: element.offsetTop,\n left: element.offsetLeft\n }\n }\n}\n\nexport default Manipulator\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NODE_TEXT = 3\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)\n .filter(child => child.matches(selector))\n },\n\n parents(element, selector) {\n const parents = []\n\n let ancestor = element.parentNode\n\n while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {\n if (ancestor.matches(selector)) {\n parents.push(ancestor)\n }\n\n ancestor = ancestor.parentNode\n }\n\n return parents\n },\n\n prev(element, selector) {\n let previous = element.previousElementSibling\n\n while (previous) {\n if (previous.matches(selector)) {\n return [previous]\n }\n\n previous = previous.previousElementSibling\n }\n\n return []\n },\n\n 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\nexport default SelectorEngine\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n defineJQueryPlugin,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isRTL,\n isVisible,\n reflow,\n triggerTransitionEnd,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\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\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\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_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 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'\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event'\n\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_ITEM = '.active.carousel-item'\nconst SELECTOR_ITEM = '.carousel-item'\nconst SELECTOR_ITEM_IMG = '.carousel-item img'\nconst SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev'\nconst SELECTOR_INDICATORS = '.carousel-indicators'\nconst SELECTOR_INDICATOR = '[data-bs-target]'\nconst SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]'\nconst SELECTOR_DATA_RIDE = '[data-bs-ride=\"carousel\"]'\n\nconst POINTER_TYPE_TOUCH = 'touch'\nconst POINTER_TYPE_PEN = 'pen'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent)\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(ORDER_NEXT)\n }\n }\n\n nextWhenVisible() {\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 if (!this._isSliding) {\n this._slide(ORDER_PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (SelectorEngine.findOne(SELECTOR_NEXT_PREV, this._element)) {\n triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config && this._config.interval && !this._isPaused) {\n this._updateInterval()\n\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._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 if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const order = index > activeIndex ?\n ORDER_NEXT :\n ORDER_PREV\n\n this._slide(order, this._items[index])\n }\n\n dispose() {\n EventHandler.off(this._element, EVENT_KEY)\n\n this._items = null\n this._config = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n\n super.dispose()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n this.touchDeltaX = 0\n\n if (!direction) {\n return\n }\n\n this._slide(direction > 0 ? DIRECTION_RIGHT : DIRECTION_LEFT)\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, event => this.pause(event))\n EventHandler.on(this._element, EVENT_MOUSELEAVE, event => this.cycle(event))\n }\n\n if (this._config.touch && this._touchSupported) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n const start = event => {\n if (this._pointerEvent && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH)) {\n this.touchStartX = event.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.touches[0].clientX\n }\n }\n\n const move = event => {\n // ensure swiping with one touch and not pinching\n this.touchDeltaX = event.touches && event.touches.length > 1 ?\n 0 :\n event.touches[0].clientX - this.touchStartX\n }\n\n const end = event => {\n if (this._pointerEvent && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH)) {\n this.touchDeltaX = event.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\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(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n SelectorEngine.find(SELECTOR_ITEM_IMG, this._element).forEach(itemImg => {\n EventHandler.on(itemImg, EVENT_DRAG_START, e => e.preventDefault())\n })\n\n if (this._pointerEvent) {\n EventHandler.on(this._element, EVENT_POINTERDOWN, event => start(event))\n EventHandler.on(this._element, EVENT_POINTERUP, event => end(event))\n\n this._element.classList.add(CLASS_NAME_POINTER_EVENT)\n } else {\n EventHandler.on(this._element, EVENT_TOUCHSTART, event => start(event))\n EventHandler.on(this._element, EVENT_TOUCHMOVE, event => move(event))\n EventHandler.on(this._element, EVENT_TOUCHEND, event => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n if (event.key === ARROW_LEFT_KEY) {\n event.preventDefault()\n this._slide(DIRECTION_LEFT)\n } else if (event.key === ARROW_RIGHT_KEY) {\n event.preventDefault()\n this._slide(DIRECTION_RIGHT)\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode ?\n SelectorEngine.find(SELECTOR_ITEM, element.parentNode) :\n []\n\n return this._items.indexOf(element)\n }\n\n _getItemByOrder(order, activeElement) {\n const isNext = order === ORDER_NEXT\n const isPrev = order === ORDER_PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = (isPrev && activeIndex === 0) || (isNext && activeIndex === lastItemIndex)\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = isPrev ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1 ?\n this._items[this._items.length - 1] :\n this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element))\n\n return EventHandler.trigger(this._element, EVENT_SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\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 indicators = SelectorEngine.find(SELECTOR_INDICATOR, this._indicatorsElement)\n\n for (let i = 0; i < indicators.length; i++) {\n if (Number.parseInt(indicators[i].getAttribute('data-bs-slide-to'), 10) === this._getItemIndex(element)) {\n indicators[i].classList.add(CLASS_NAME_ACTIVE)\n indicators[i].setAttribute('aria-current', 'true')\n break\n }\n }\n }\n }\n\n _updateInterval() {\n const element = this._activeElement || SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n\n if (!element) {\n return\n }\n\n const elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10)\n\n if (elementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval\n this._config.interval = elementInterval\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval\n }\n }\n\n _slide(directionOrOrder, element) {\n const order = this._directionToOrder(directionOrOrder)\n const activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || this._getItemByOrder(order, activeElement)\n\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n const isNext = order === ORDER_NEXT\n const directionalClassName = isNext ? CLASS_NAME_START : CLASS_NAME_END\n const orderClassName = isNext ? CLASS_NAME_NEXT : CLASS_NAME_PREV\n const eventDirectionName = this._orderToDirection(order)\n\n if (nextElement && nextElement.classList.contains(CLASS_NAME_ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.defaultPrevented) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n this._activeElement = nextElement\n\n if (this._element.classList.contains(CLASS_NAME_SLIDE)) {\n nextElement.classList.add(orderClassName)\n\n reflow(nextElement)\n\n activeElement.classList.add(directionalClassName)\n nextElement.classList.add(directionalClassName)\n\n const transitionDuration = getTransitionDurationFromElement(activeElement)\n\n EventHandler.one(activeElement, 'transitionend', () => {\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 setTimeout(() => {\n EventHandler.trigger(this._element, EVENT_SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }, 0)\n })\n\n emulateTransitionEnd(activeElement, transitionDuration)\n } else {\n activeElement.classList.remove(CLASS_NAME_ACTIVE)\n nextElement.classList.add(CLASS_NAME_ACTIVE)\n\n this._isSliding = false\n EventHandler.trigger(this._element, EVENT_SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n _directionToOrder(direction) {\n if (![DIRECTION_RIGHT, DIRECTION_LEFT].includes(direction)) {\n return direction\n }\n\n if (isRTL()) {\n return direction === DIRECTION_RIGHT ? ORDER_PREV : ORDER_NEXT\n }\n\n return direction === DIRECTION_RIGHT ? ORDER_NEXT : ORDER_PREV\n }\n\n _orderToDirection(order) {\n if (![ORDER_NEXT, ORDER_PREV].includes(order)) {\n return order\n }\n\n if (isRTL()) {\n return order === ORDER_NEXT ? DIRECTION_LEFT : DIRECTION_RIGHT\n }\n\n return order === ORDER_NEXT ? DIRECTION_RIGHT : DIRECTION_LEFT\n }\n\n // Static\n\n static carouselInterface(element, config) {\n let data = Data.get(element, DATA_KEY)\n let _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element)\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(element, _config)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n\n data[action]()\n } else if (_config.interval && _config.ride) {\n data.pause()\n data.cycle()\n }\n }\n\n static jQueryInterface(config) {\n return this.each(function () {\n Carousel.carouselInterface(this, config)\n })\n }\n\n static dataApiClickHandler(event) {\n const target = getElementFromSelector(this)\n\n if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {\n return\n }\n\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n const slideIndex = this.getAttribute('data-bs-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel.carouselInterface(target, config)\n\n if (slideIndex) {\n Data.get(target, DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, Carousel.dataApiClickHandler)\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE)\n\n for (let i = 0, len = carousels.length; i < len; i++) {\n Carousel.carouselInterface(carousels[i], Data.get(carousels[i], DATA_KEY))\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Carousel to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(NAME, Carousel)\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n defineJQueryPlugin,\n emulateTransitionEnd,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isElement,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'collapse'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n toggle: true,\n parent: ''\n}\n\nconst DefaultType = {\n toggle: 'boolean',\n parent: '(string|element)'\n}\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'\n\nconst WIDTH = 'width'\nconst HEIGHT = 'height'\n\nconst SELECTOR_ACTIVES = '.show, .collapsing'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"collapse\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._isTransitioning = false\n this._config = this._getConfig(config)\n this._triggerArray = SelectorEngine.find(\n `${SELECTOR_DATA_TOGGLE}[href=\"#${this._element.id}\"],` +\n `${SELECTOR_DATA_TOGGLE}[data-bs-target=\"#${this._element.id}\"]`\n )\n\n const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\n\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = getSelectorFromElement(elem)\n const filterElement = SelectorEngine.find(selector)\n .filter(foundElem => foundElem === this._element)\n\n if (selector !== null && filterElement.length) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n toggle() {\n if (this._element.classList.contains(CLASS_NAME_SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning || this._element.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = SelectorEngine.find(SELECTOR_ACTIVES, this._parent)\n .filter(elem => {\n if (typeof this._config.parent === 'string') {\n return elem.getAttribute('data-bs-parent') === this._config.parent\n }\n\n return elem.classList.contains(CLASS_NAME_COLLAPSE)\n })\n\n if (actives.length === 0) {\n actives = null\n }\n }\n\n const container = SelectorEngine.findOne(this._selector)\n if (actives) {\n const tempActiveData = actives.find(elem => container !== elem)\n activesData = tempActiveData ? Data.get(tempActiveData, DATA_KEY) : null\n\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = EventHandler.trigger(this._element, EVENT_SHOW)\n if (startEvent.defaultPrevented) {\n return\n }\n\n if (actives) {\n actives.forEach(elemActive => {\n if (container !== elemActive) {\n Collapse.collapseInterface(elemActive, 'hide')\n }\n\n if (!activesData) {\n Data.set(elemActive, DATA_KEY, null)\n }\n })\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 if (this._triggerArray.length) {\n this._triggerArray.forEach(element => {\n element.classList.remove(CLASS_NAME_COLLAPSED)\n element.setAttribute('aria-expanded', true)\n })\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\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 this.setTransitioning(false)\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 const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, 'transitionend', complete)\n\n emulateTransitionEnd(this._element, transitionDuration)\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning || !this._element.classList.contains(CLASS_NAME_SHOW)) {\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 const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const elem = getElementFromSelector(trigger)\n\n if (elem && !elem.classList.contains(CLASS_NAME_SHOW)) {\n trigger.classList.add(CLASS_NAME_COLLAPSED)\n trigger.setAttribute('aria-expanded', false)\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(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 const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, 'transitionend', complete)\n emulateTransitionEnd(this._element, transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n super.dispose()\n this._config = null\n this._parent = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n return this._element.classList.contains(WIDTH) ? WIDTH : HEIGHT\n }\n\n _getParent() {\n let { parent } = this._config\n\n if (isElement(parent)) {\n // it's a jQuery object\n if (typeof parent.jquery !== 'undefined' || typeof parent[0] !== 'undefined') {\n parent = parent[0]\n }\n } else {\n parent = SelectorEngine.findOne(parent)\n }\n\n const selector = `${SELECTOR_DATA_TOGGLE}[data-bs-parent=\"${parent}\"]`\n\n SelectorEngine.find(selector, parent)\n .forEach(element => {\n const selected = getElementFromSelector(element)\n\n this._addAriaAndCollapsedClass(\n selected,\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n if (!element || !triggerArray.length) {\n return\n }\n\n const isOpen = element.classList.contains(CLASS_NAME_SHOW)\n\n triggerArray.forEach(elem => {\n if (isOpen) {\n elem.classList.remove(CLASS_NAME_COLLAPSED)\n } else {\n elem.classList.add(CLASS_NAME_COLLAPSED)\n }\n\n elem.setAttribute('aria-expanded', isOpen)\n })\n }\n\n // Static\n\n static collapseInterface(element, config) {\n let data = Data.get(element, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element),\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(element, _config)\n }\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 static jQueryInterface(config) {\n return this.each(function () {\n Collapse.collapseInterface(this, config)\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\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 const triggerData = Manipulator.getDataAttributes(this)\n const selector = getSelectorFromElement(this)\n const selectorElements = SelectorEngine.find(selector)\n\n selectorElements.forEach(element => {\n const data = Data.get(element, DATA_KEY)\n let config\n if (data) {\n // update parent attribute\n if (data._parent === null && typeof triggerData.parent === 'string') {\n data._config.parent = triggerData.parent\n data._parent = data._getParent()\n }\n\n config = 'toggle'\n } else {\n config = triggerData\n }\n\n Collapse.collapseInterface(element, config)\n })\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Collapse to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(NAME, Collapse)\n\nexport default Collapse\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport * as Popper from '@popperjs/core'\n\nimport {\n defineJQueryPlugin,\n getElementFromSelector,\n isElement,\n isVisible,\n isRTL,\n noop,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\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 SPACE_KEY = 'Space'\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 REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEY}|${ARROW_DOWN_KEY}|${ESCAPE_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 = `click${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_DISABLED = 'disabled'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_DROPUP = 'dropup'\nconst CLASS_NAME_DROPEND = 'dropend'\nconst CLASS_NAME_DROPSTART = 'dropstart'\nconst CLASS_NAME_NAVBAR = 'navbar'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"dropdown\"]'\nconst SELECTOR_MENU = '.dropdown-menu'\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'\n\nconst Default = {\n offset: [0, 2],\n boundary: 'clippingParents',\n reference: 'toggle',\n display: 'dynamic',\n popperConfig: null\n}\n\nconst DefaultType = {\n offset: '(array|string|function)',\n boundary: '(string|element)',\n reference: '(string|element|object)',\n display: 'string',\n popperConfig: '(null|object|function)'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED)) {\n return\n }\n\n const isActive = this._element.classList.contains(CLASS_NAME_SHOW)\n\n Dropdown.clearMenus()\n\n if (isActive) {\n return\n }\n\n this.show()\n }\n\n show() {\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || this._menu.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n const parent = Dropdown.getParentFromElement(this._element)\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 // Totally disable Popper for Dropdowns in Navbar\n if (this._inNavbar) {\n Manipulator.setDataAttribute(this._menu, 'popper', 'none')\n } else {\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 = parent\n } else if (isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n } else if (typeof this._config.reference === 'object') {\n referenceElement = this._config.reference\n }\n\n const popperConfig = this._getPopperConfig()\n const isDisplayStatic = popperConfig.modifiers.find(modifier => modifier.name === 'applyStyles' && modifier.enabled === false)\n\n this._popper = Popper.createPopper(referenceElement, this._menu, popperConfig)\n\n if (isDisplayStatic) {\n Manipulator.setDataAttribute(this._menu, 'popper', 'static')\n }\n }\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 !parent.closest(SELECTOR_NAVBAR_NAV)) {\n [].concat(...document.body.children)\n .forEach(elem => EventHandler.on(elem, 'mouseover', null, noop()))\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n this._menu.classList.toggle(CLASS_NAME_SHOW)\n this._element.classList.toggle(CLASS_NAME_SHOW)\n EventHandler.trigger(this._element, EVENT_SHOWN, relatedTarget)\n }\n\n hide() {\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || !this._menu.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE, relatedTarget)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n if (this._popper) {\n this._popper.destroy()\n }\n\n this._menu.classList.toggle(CLASS_NAME_SHOW)\n this._element.classList.toggle(CLASS_NAME_SHOW)\n Manipulator.removeDataAttribute(this._menu, 'popper')\n EventHandler.trigger(this._element, EVENT_HIDDEN, relatedTarget)\n }\n\n dispose() {\n EventHandler.off(this._element, EVENT_KEY)\n this._menu = null\n\n if (this._popper) {\n this._popper.destroy()\n this._popper = null\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\n _addEventListeners() {\n EventHandler.on(this._element, EVENT_CLICK, event => {\n event.preventDefault()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...Manipulator.getDataAttributes(this._element),\n ...config\n }\n\n typeCheckConfig(NAME, config, this.constructor.DefaultType)\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 _getMenuElement() {\n return SelectorEngine.next(this._element, SELECTOR_MENU)[0]\n }\n\n _getPlacement() {\n const parentDropdown = this._element.parentNode\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 // 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(`.${CLASS_NAME_NAVBAR}`) !== null\n }\n\n _getOffset() {\n const { offset } = this._config\n\n if (typeof offset === 'string') {\n return offset.split(',').map(val => Number.parseInt(val, 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\n if (this._config.display === 'static') {\n defaultBsPopperConfig.modifiers = [{\n name: 'applyStyles',\n enabled: false\n }]\n }\n\n return {\n ...defaultBsPopperConfig,\n ...(typeof this._config.popperConfig === 'function' ? this._config.popperConfig(defaultBsPopperConfig) : this._config.popperConfig)\n }\n }\n\n // Static\n\n static dropdownInterface(element, config) {\n let data = Data.get(element, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(element, _config)\n }\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 static jQueryInterface(config) {\n return this.each(function () {\n Dropdown.dropdownInterface(this, config)\n })\n }\n\n static clearMenus(event) {\n if (event) {\n if (event.button === RIGHT_MOUSE_BUTTON || (event.type === 'keyup' && event.key !== TAB_KEY)) {\n return\n }\n\n if (/input|select|textarea|form/i.test(event.target.tagName)) {\n return\n }\n }\n\n const toggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\n\n for (let i = 0, len = toggles.length; i < len; i++) {\n const context = Data.get(toggles[i], DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!toggles[i].classList.contains(CLASS_NAME_SHOW)) {\n continue\n }\n\n if (event) {\n // Don't close the menu if the clicked element or one of its parents is the dropdown button\n if ([context._element].some(element => event.composedPath().includes(element))) {\n continue\n }\n\n // Tab navigation through the dropdown menu shouldn't close the menu\n if (event.type === 'keyup' && event.key === TAB_KEY && dropdownMenu.contains(event.target)) {\n continue\n }\n }\n\n const hideEvent = EventHandler.trigger(toggles[i], EVENT_HIDE, relatedTarget)\n if (hideEvent.defaultPrevented) {\n continue\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 [].concat(...document.body.children)\n .forEach(elem => EventHandler.off(elem, 'mouseover', null, noop()))\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n if (context._popper) {\n context._popper.destroy()\n }\n\n dropdownMenu.classList.remove(CLASS_NAME_SHOW)\n toggles[i].classList.remove(CLASS_NAME_SHOW)\n Manipulator.removeDataAttribute(dropdownMenu, 'popper')\n EventHandler.trigger(toggles[i], EVENT_HIDDEN, relatedTarget)\n }\n }\n\n static getParentFromElement(element) {\n return getElementFromSelector(element) || element.parentNode\n }\n\n static dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ?\n event.key === SPACE_KEY || (event.key !== ESCAPE_KEY &&\n ((event.key !== ARROW_DOWN_KEY && event.key !== ARROW_UP_KEY) ||\n event.target.closest(SELECTOR_MENU))) :\n !REGEXP_KEYDOWN.test(event.key)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || this.classList.contains(CLASS_NAME_DISABLED)) {\n return\n }\n\n const parent = Dropdown.getParentFromElement(this)\n const isActive = this.classList.contains(CLASS_NAME_SHOW)\n\n if (event.key === ESCAPE_KEY) {\n const button = this.matches(SELECTOR_DATA_TOGGLE) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE)[0]\n button.focus()\n Dropdown.clearMenus()\n return\n }\n\n if (!isActive && (event.key === ARROW_UP_KEY || event.key === ARROW_DOWN_KEY)) {\n const button = this.matches(SELECTOR_DATA_TOGGLE) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE)[0]\n button.click()\n return\n }\n\n if (!isActive || event.key === SPACE_KEY) {\n Dropdown.clearMenus()\n return\n }\n\n const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, parent).filter(isVisible)\n\n if (!items.length) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n // Up\n if (event.key === ARROW_UP_KEY && index > 0) {\n index--\n }\n\n // Down\n if (event.key === ARROW_DOWN_KEY && index < items.length - 1) {\n index++\n }\n\n // index is -1 if the first keydown is an ArrowUp\n index = index === -1 ? 0 : index\n\n items[index].focus()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\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.dropdownInterface(this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Dropdown to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(NAME, Dropdown)\n\nexport default Dropdown\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n defineJQueryPlugin,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isVisible,\n isRTL,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\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 Default = {\n backdrop: true,\n keyboard: true,\n focus: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean'\n}\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_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${EVENT_KEY}`\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEUP_DISMISS = `mouseup.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure'\nconst CLASS_NAME_BACKDROP = 'modal-backdrop'\nconst CLASS_NAME_OPEN = 'modal-open'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_STATIC = 'modal-static'\n\nconst SELECTOR_DIALOG = '.modal-dialog'\nconst SELECTOR_MODAL_BODY = '.modal-body'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"modal\"]'\nconst SELECTOR_DATA_DISMISS = '[data-bs-dismiss=\"modal\"]'\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'\nconst SELECTOR_STICKY_CONTENT = '.sticky-top'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._config = this._getConfig(config)\n this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, this._element)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollbarWidth = 0\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n if (this._isAnimated()) {\n this._isTransitioning = true\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, {\n relatedTarget\n })\n\n if (this._isShown || showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, event => this.hide(event))\n\n EventHandler.on(this._dialog, EVENT_MOUSEDOWN_DISMISS, () => {\n EventHandler.one(this._element, EVENT_MOUSEUP_DISMISS, event => {\n if (event.target === this._element) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\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 const isAnimated = this._isAnimated()\n\n if (isAnimated) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.off(document, EVENT_FOCUSIN)\n\n this._element.classList.remove(CLASS_NAME_SHOW)\n\n EventHandler.off(this._element, EVENT_CLICK_DISMISS)\n EventHandler.off(this._dialog, EVENT_MOUSEDOWN_DISMISS)\n\n if (isAnimated) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, 'transitionend', event => this._hideModal(event))\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach(htmlElement => EventHandler.off(htmlElement, EVENT_KEY))\n\n super.dispose()\n\n /**\n * `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `EVENT_CLICK_DATA_API` event that should remain\n */\n EventHandler.off(document, EVENT_FOCUSIN)\n\n this._config = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._isTransitioning = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const isAnimated = this._isAnimated()\n const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog)\n\n if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(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 if (modalBody) {\n modalBody.scrollTop = 0\n }\n\n if (isAnimated) {\n reflow(this._element)\n }\n\n this._element.classList.add(CLASS_NAME_SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n\n this._isTransitioning = false\n EventHandler.trigger(this._element, EVENT_SHOWN, {\n relatedTarget\n })\n }\n\n if (isAnimated) {\n const transitionDuration = getTransitionDurationFromElement(this._dialog)\n\n EventHandler.one(this._dialog, 'transitionend', transitionComplete)\n emulateTransitionEnd(this._dialog, transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n EventHandler.off(document, EVENT_FOCUSIN) // guard against infinite focus loop\n EventHandler.on(document, EVENT_FOCUSIN, event => {\n if (document !== event.target &&\n this._element !== event.target &&\n !this._element.contains(event.target)) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown) {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {\n if (this._config.keyboard && event.key === ESCAPE_KEY) {\n event.preventDefault()\n this.hide()\n } else if (!this._config.keyboard && event.key === ESCAPE_KEY) {\n this._triggerBackdropTransition()\n }\n })\n } else {\n EventHandler.off(this._element, EVENT_KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n EventHandler.on(window, EVENT_RESIZE, () => this._adjustDialog())\n } else {\n EventHandler.off(window, EVENT_RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._element.removeAttribute('role')\n this._isTransitioning = false\n this._showBackdrop(() => {\n document.body.classList.remove(CLASS_NAME_OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n })\n }\n\n _removeBackdrop() {\n this._backdrop.parentNode.removeChild(this._backdrop)\n this._backdrop = null\n }\n\n _showBackdrop(callback) {\n const isAnimated = this._isAnimated()\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = CLASS_NAME_BACKDROP\n\n if (isAnimated) {\n this._backdrop.classList.add(CLASS_NAME_FADE)\n }\n\n document.body.appendChild(this._backdrop)\n\n EventHandler.on(this._element, EVENT_CLICK_DISMISS, event => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n\n if (event.target !== event.currentTarget) {\n return\n }\n\n if (this._config.backdrop === 'static') {\n this._triggerBackdropTransition()\n } else {\n this.hide()\n }\n })\n\n if (isAnimated) {\n reflow(this._backdrop)\n }\n\n this._backdrop.classList.add(CLASS_NAME_SHOW)\n\n if (!isAnimated) {\n callback()\n return\n }\n\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n\n EventHandler.one(this._backdrop, 'transitionend', callback)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n this._backdrop.classList.remove(CLASS_NAME_SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n callback()\n }\n\n if (isAnimated) {\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n EventHandler.one(this._backdrop, 'transitionend', callbackRemove)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else {\n callback()\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\n if (!isModalOverflowing) {\n this._element.style.overflowY = 'hidden'\n }\n\n this._element.classList.add(CLASS_NAME_STATIC)\n const modalTransitionDuration = getTransitionDurationFromElement(this._dialog)\n EventHandler.off(this._element, 'transitionend')\n EventHandler.one(this._element, 'transitionend', () => {\n this._element.classList.remove(CLASS_NAME_STATIC)\n if (!isModalOverflowing) {\n EventHandler.one(this._element, 'transitionend', () => {\n this._element.style.overflowY = ''\n })\n emulateTransitionEnd(this._element, modalTransitionDuration)\n }\n })\n emulateTransitionEnd(this._element, modalTransitionDuration)\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\n if ((!this._isBodyOverflowing && isModalOverflowing && !isRTL()) || (this._isBodyOverflowing && !isModalOverflowing && isRTL())) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if ((this._isBodyOverflowing && !isModalOverflowing && !isRTL()) || (!this._isBodyOverflowing && isModalOverflowing && isRTL())) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n this._setElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight', calculatedValue => calculatedValue + this._scrollbarWidth)\n this._setElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight', calculatedValue => calculatedValue - this._scrollbarWidth)\n this._setElementAttributes('body', 'paddingRight', calculatedValue => calculatedValue + this._scrollbarWidth)\n }\n\n document.body.classList.add(CLASS_NAME_OPEN)\n }\n\n _setElementAttributes(selector, styleProp, callback) {\n SelectorEngine.find(selector)\n .forEach(element => {\n if (element !== document.body && window.innerWidth > element.clientWidth + this._scrollbarWidth) {\n return\n }\n\n const actualValue = element.style[styleProp]\n const calculatedValue = window.getComputedStyle(element)[styleProp]\n Manipulator.setDataAttribute(element, styleProp, actualValue)\n element.style[styleProp] = callback(Number.parseFloat(calculatedValue)) + 'px'\n })\n }\n\n _resetScrollbar() {\n this._resetElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight')\n this._resetElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight')\n this._resetElementAttributes('body', 'paddingRight')\n }\n\n _resetElementAttributes(selector, styleProp) {\n SelectorEngine.find(selector).forEach(element => {\n const value = Manipulator.getDataAttribute(element, styleProp)\n if (typeof value === 'undefined' && element === document.body) {\n element.style[styleProp] = ''\n } else {\n Manipulator.removeDataAttribute(element, styleProp)\n element.style[styleProp] = value\n }\n })\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = CLASS_NAME_SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = Data.get(this, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(this),\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (!data) {\n data = new Modal(this, _config)\n }\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](relatedTarget)\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n const target = getElementFromSelector(this)\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\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 let data = Data.get(target, DATA_KEY)\n if (!data) {\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n\n data = new Modal(target, config)\n }\n\n data.toggle(this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Modal to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(NAME, Modal)\n\nexport default Modal\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): util/scrollBar.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport SelectorEngine from '../dom/selector-engine'\nimport Manipulator from '../dom/manipulator'\n\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed'\nconst SELECTOR_STICKY_CONTENT = '.sticky-top'\n\nconst 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\nconst hide = (width = getWidth()) => {\n document.body.style.overflow = 'hidden'\n _setElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight', calculatedValue => calculatedValue + width)\n _setElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight', calculatedValue => calculatedValue - width)\n _setElementAttributes('body', 'paddingRight', calculatedValue => calculatedValue + width)\n}\n\nconst _setElementAttributes = (selector, styleProp, callback) => {\n const scrollbarWidth = getWidth()\n SelectorEngine.find(selector)\n .forEach(element => {\n if (element !== document.body && window.innerWidth > element.clientWidth + scrollbarWidth) {\n return\n }\n\n const actualValue = element.style[styleProp]\n const calculatedValue = window.getComputedStyle(element)[styleProp]\n Manipulator.setDataAttribute(element, styleProp, actualValue)\n element.style[styleProp] = callback(Number.parseFloat(calculatedValue)) + 'px'\n })\n}\n\nconst reset = () => {\n document.body.style.overflow = 'auto'\n _resetElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight')\n _resetElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight')\n _resetElementAttributes('body', 'paddingRight')\n}\n\nconst _resetElementAttributes = (selector, styleProp) => {\n SelectorEngine.find(selector).forEach(element => {\n const value = Manipulator.getDataAttribute(element, styleProp)\n if (typeof value === 'undefined' && element === document.body) {\n element.style.removeProperty(styleProp)\n } else {\n Manipulator.removeDataAttribute(element, styleProp)\n element.style[styleProp] = value\n }\n })\n}\n\nconst isBodyOverflowing = () => {\n return getWidth() > 0\n}\n\nexport {\n getWidth,\n hide,\n isBodyOverflowing,\n reset\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): offcanvas.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n defineJQueryPlugin,\n getElementFromSelector,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isDisabled,\n isVisible,\n typeCheckConfig\n} from './util/index'\nimport { hide as scrollBarHide, reset as scrollBarReset } from './util/scrollbar'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport BaseComponent from './base-component'\nimport SelectorEngine from './dom/selector-engine'\nimport Manipulator from './dom/manipulator'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\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 Default = {\n backdrop: true,\n keyboard: true,\n scroll: false\n}\n\nconst DefaultType = {\n backdrop: 'boolean',\n keyboard: 'boolean',\n scroll: 'boolean'\n}\n\nconst CLASS_NAME_BACKDROP_BODY = 'offcanvas-backdrop'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_TOGGLING = 'offcanvas-toggling'\nconst OPEN_SELECTOR = '.offcanvas.show'\nconst ACTIVE_SELECTOR = `${OPEN_SELECTOR}, .${CLASS_NAME_TOGGLING}`\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_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\n\nconst SELECTOR_DATA_DISMISS = '[data-bs-dismiss=\"offcanvas\"]'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"offcanvas\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Offcanvas extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._config = this._getConfig(config)\n this._isShown = false\n this._addEventListeners()\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown) {\n return\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, { relatedTarget })\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n this._element.style.visibility = 'visible'\n\n if (this._config.backdrop) {\n document.body.classList.add(CLASS_NAME_BACKDROP_BODY)\n }\n\n if (!this._config.scroll) {\n scrollBarHide()\n }\n\n this._element.classList.add(CLASS_NAME_TOGGLING)\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n this._element.setAttribute('role', 'dialog')\n this._element.classList.add(CLASS_NAME_SHOW)\n\n const completeCallBack = () => {\n this._element.classList.remove(CLASS_NAME_TOGGLING)\n EventHandler.trigger(this._element, EVENT_SHOWN, { relatedTarget })\n this._enforceFocusOnElement(this._element)\n }\n\n setTimeout(completeCallBack, getTransitionDurationFromElement(this._element))\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._element.classList.add(CLASS_NAME_TOGGLING)\n EventHandler.off(document, EVENT_FOCUSIN)\n this._element.blur()\n this._isShown = false\n this._element.classList.remove(CLASS_NAME_SHOW)\n\n const completeCallback = () => {\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._element.removeAttribute('role')\n this._element.style.visibility = 'hidden'\n\n if (this._config.backdrop) {\n document.body.classList.remove(CLASS_NAME_BACKDROP_BODY)\n }\n\n if (!this._config.scroll) {\n scrollBarReset()\n }\n\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n this._element.classList.remove(CLASS_NAME_TOGGLING)\n }\n\n setTimeout(completeCallback, getTransitionDurationFromElement(this._element))\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...(typeof config === 'object' ? config : {})\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _enforceFocusOnElement(element) {\n EventHandler.off(document, EVENT_FOCUSIN) // guard against infinite focus loop\n EventHandler.on(document, EVENT_FOCUSIN, event => {\n if (document !== event.target &&\n element !== event.target &&\n !element.contains(event.target)) {\n element.focus()\n }\n })\n element.focus()\n }\n\n _addEventListeners() {\n EventHandler.on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, () => this.hide())\n\n EventHandler.on(document, 'keydown', event => {\n if (this._config.keyboard && event.key === ESCAPE_KEY) {\n this.hide()\n }\n })\n\n EventHandler.on(document, EVENT_CLICK_DATA_API, event => {\n const target = SelectorEngine.findOne(getSelectorFromElement(event.target))\n if (!this._element.contains(event.target) && target !== this._element) {\n this.hide()\n }\n })\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Data.get(this, DATA_KEY) || new Offcanvas(this, typeof config === 'object' ? 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 * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n const target = getElementFromSelector(this)\n\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n if (isDisabled(this)) {\n return\n }\n\n EventHandler.one(target, EVENT_HIDDEN, () => {\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 allReadyOpen = SelectorEngine.findOne(ACTIVE_SELECTOR)\n if (allReadyOpen && allReadyOpen !== target) {\n return\n }\n\n const data = Data.get(target, DATA_KEY) || new Offcanvas(target)\n\n data.toggle(this)\n})\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n SelectorEngine.find(OPEN_SELECTOR).forEach(el => (Data.get(el, DATA_KEY) || new Offcanvas(el)).show())\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\ndefineJQueryPlugin(NAME, Offcanvas)\n\nexport default Offcanvas\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst uriAttrs = new Set([\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n])\n\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/i\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[\\d+/a-z]+=*$/i\n\nconst allowedAttribute = (attr, allowedAttributeList) => {\n const attrName = attr.nodeName.toLowerCase()\n\n if (allowedAttributeList.includes(attrName)) {\n if (uriAttrs.has(attrName)) {\n return Boolean(SAFE_URL_PATTERN.test(attr.nodeValue) || DATA_URL_PATTERN.test(attr.nodeValue))\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, len = regExp.length; i < len; i++) {\n if (regExp[i].test(attrName)) {\n return true\n }\n }\n\n return false\n}\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\nexport function sanitizeHtml(unsafeHtml, allowList, sanitizeFn) {\n if (!unsafeHtml.length) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const allowlistKeys = Object.keys(allowList)\n const elements = [].concat(...createdDocument.body.querySelectorAll('*'))\n\n for (let i = 0, len = elements.length; i < len; i++) {\n const el = elements[i]\n const elName = el.nodeName.toLowerCase()\n\n if (!allowlistKeys.includes(elName)) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n const attributeList = [].concat(...el.attributes)\n const allowedAttributes = [].concat(allowList['*'] || [], allowList[elName] || [])\n\n attributeList.forEach(attr => {\n if (!allowedAttribute(attr, allowedAttributes)) {\n el.removeAttribute(attr.nodeName)\n }\n })\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport * as Popper from '@popperjs/core'\n\nimport {\n defineJQueryPlugin,\n emulateTransitionEnd,\n findShadowRoot,\n getTransitionDurationFromElement,\n getUID,\n isElement,\n isRTL,\n noop,\n typeCheckConfig\n} from './util/index'\nimport {\n DefaultAllowlist,\n sanitizeHtml\n} from './util/sanitizer'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tooltip'\nconst DATA_KEY = 'bs.tooltip'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-tooltip'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\nconst DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn'])\n\nconst DefaultType = {\n animation: 'boolean',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string',\n delay: '(number|object)',\n html: 'boolean',\n selector: '(string|boolean)',\n placement: '(string|function)',\n offset: '(array|string|function)',\n container: '(string|element|boolean)',\n fallbackPlacements: 'array',\n boundary: '(string|element)',\n customClass: '(string|function)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n allowList: 'object',\n popperConfig: '(null|object|function)'\n}\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 animation: true,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"tooltip-arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div>' +\n '</div>',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n selector: false,\n placement: 'top',\n offset: [0, 0],\n container: false,\n fallbackPlacements: ['top', 'right', 'bottom', 'left'],\n boundary: 'clippingParents',\n customClass: '',\n sanitize: true,\n sanitizeFn: null,\n allowList: DefaultAllowlist,\n popperConfig: null\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_MODAL = 'modal'\nconst CLASS_NAME_SHOW = 'show'\n\nconst HOVER_STATE_SHOW = 'show'\nconst HOVER_STATE_OUT = 'out'\n\nconst SELECTOR_TOOLTIP_INNER = '.tooltip-inner'\n\nconst TRIGGER_HOVER = 'hover'\nconst TRIGGER_FOCUS = 'focus'\nconst TRIGGER_CLICK = 'click'\nconst TRIGGER_MANUAL = 'manual'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\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)\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const context = this._initializeOnDelegatedTarget(event)\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if (this.getTipElement().classList.contains(CLASS_NAME_SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n EventHandler.off(this._element, this.constructor.EVENT_KEY)\n EventHandler.off(this._element.closest(`.${CLASS_NAME_MODAL}`), 'hide.bs.modal', this._hideModalHandler)\n\n if (this.tip && this.tip.parentNode) {\n this.tip.parentNode.removeChild(this.tip)\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.config = null\n this.tip = null\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.Event.SHOW)\n const shadowRoot = findShadowRoot(this._element)\n const isInTheDom = shadowRoot === null ?\n this._element.ownerDocument.documentElement.contains(this._element) :\n shadowRoot.contains(this._element)\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this._element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n tip.classList.add(CLASS_NAME_FADE)\n }\n\n const placement = typeof this.config.placement === 'function' ?\n this.config.placement.call(this, tip, this._element) :\n this.config.placement\n\n const attachment = this._getAttachment(placement)\n this._addAttachmentClass(attachment)\n\n const container = this._getContainer()\n Data.set(tip, this.constructor.DATA_KEY, this)\n\n if (!this._element.ownerDocument.documentElement.contains(this.tip)) {\n container.appendChild(tip)\n EventHandler.trigger(this._element, this.constructor.Event.INSERTED)\n }\n\n if (this._popper) {\n this._popper.update()\n } else {\n this._popper = Popper.createPopper(this._element, tip, this._getPopperConfig(attachment))\n }\n\n tip.classList.add(CLASS_NAME_SHOW)\n\n const customClass = typeof this.config.customClass === 'function' ? this.config.customClass() : this.config.customClass\n if (customClass) {\n tip.classList.add(...customClass.split(' '))\n }\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 [].concat(...document.body.children).forEach(element => {\n EventHandler.on(element, 'mouseover', noop())\n })\n }\n\n const complete = () => {\n const prevHoverState = this._hoverState\n\n this._hoverState = null\n EventHandler.trigger(this._element, this.constructor.Event.SHOWN)\n\n if (prevHoverState === HOVER_STATE_OUT) {\n this._leave(null, this)\n }\n }\n\n if (this.tip.classList.contains(CLASS_NAME_FADE)) {\n const transitionDuration = getTransitionDurationFromElement(this.tip)\n EventHandler.one(this.tip, 'transitionend', complete)\n emulateTransitionEnd(this.tip, transitionDuration)\n } else {\n complete()\n }\n }\n\n hide() {\n if (!this._popper) {\n return\n }\n\n const tip = this.getTipElement()\n const complete = () => {\n if (this._isWithActiveTrigger()) {\n return\n }\n\n if (this._hoverState !== HOVER_STATE_SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this._element.removeAttribute('aria-describedby')\n EventHandler.trigger(this._element, this.constructor.Event.HIDDEN)\n\n if (this._popper) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n const hideEvent = EventHandler.trigger(this._element, this.constructor.Event.HIDE)\n if (hideEvent.defaultPrevented) {\n return\n }\n\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 [].concat(...document.body.children)\n .forEach(element => EventHandler.off(element, 'mouseover', noop))\n }\n\n this._activeTrigger[TRIGGER_CLICK] = false\n this._activeTrigger[TRIGGER_FOCUS] = false\n this._activeTrigger[TRIGGER_HOVER] = false\n\n if (this.tip.classList.contains(CLASS_NAME_FADE)) {\n const transitionDuration = getTransitionDurationFromElement(tip)\n\n EventHandler.one(tip, 'transitionend', complete)\n emulateTransitionEnd(tip, transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.update()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n getTipElement() {\n if (this.tip) {\n return this.tip\n }\n\n const element = document.createElement('div')\n element.innerHTML = this.config.template\n\n this.tip = element.children[0]\n return this.tip\n }\n\n setContent() {\n const tip = this.getTipElement()\n this.setElementContent(SelectorEngine.findOne(SELECTOR_TOOLTIP_INNER, tip), this.getTitle())\n tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW)\n }\n\n setElementContent(element, content) {\n if (element === null) {\n return\n }\n\n if (typeof content === 'object' && isElement(content)) {\n if (content.jquery) {\n content = content[0]\n }\n\n // content is a DOM node or a jQuery\n if (this.config.html) {\n if (content.parentNode !== element) {\n element.innerHTML = ''\n element.appendChild(content)\n }\n } else {\n element.textContent = content.textContent\n }\n\n return\n }\n\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.allowList, this.config.sanitizeFn)\n }\n\n element.innerHTML = content\n } else {\n element.textContent = content\n }\n }\n\n getTitle() {\n let title = this._element.getAttribute('data-bs-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function' ?\n this.config.title.call(this._element) :\n this.config.title\n }\n\n return title\n }\n\n updateAttachment(attachment) {\n if (attachment === 'right') {\n return 'end'\n }\n\n if (attachment === 'left') {\n return 'start'\n }\n\n return attachment\n }\n\n // Private\n\n _initializeOnDelegatedTarget(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.get(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(event.delegateTarget, this._getDelegateConfig())\n Data.set(event.delegateTarget, dataKey, context)\n }\n\n return context\n }\n\n _getOffset() {\n const { offset } = this.config\n\n if (typeof offset === 'string') {\n return offset.split(',').map(val => Number.parseInt(val, 10))\n }\n\n if (typeof offset === 'function') {\n return popperData => offset(popperData, this._element)\n }\n\n return offset\n }\n\n _getPopperConfig(attachment) {\n const defaultBsPopperConfig = {\n placement: attachment,\n modifiers: [\n {\n name: 'flip',\n options: {\n altBoundary: true,\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: 'onChange',\n enabled: true,\n phase: 'afterWrite',\n fn: data => this._handlePopperPlacementChange(data)\n }\n ],\n onFirstUpdate: data => {\n if (data.options.placement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n }\n }\n\n return {\n ...defaultBsPopperConfig,\n ...(typeof this.config.popperConfig === 'function' ? this.config.popperConfig(defaultBsPopperConfig) : this.config.popperConfig)\n }\n }\n\n _addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${this.updateAttachment(attachment)}`)\n }\n\n _getContainer() {\n if (this.config.container === false) {\n return document.body\n }\n\n if (isElement(this.config.container)) {\n return this.config.container\n }\n\n return SelectorEngine.findOne(this.config.container)\n }\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach(trigger => {\n if (trigger === 'click') {\n EventHandler.on(this._element, this.constructor.Event.CLICK, this.config.selector, event => this.toggle(event))\n } else if (trigger !== TRIGGER_MANUAL) {\n const eventIn = trigger === TRIGGER_HOVER ?\n this.constructor.Event.MOUSEENTER :\n this.constructor.Event.FOCUSIN\n const eventOut = trigger === TRIGGER_HOVER ?\n this.constructor.Event.MOUSELEAVE :\n this.constructor.Event.FOCUSOUT\n\n EventHandler.on(this._element, eventIn, this.config.selector, event => this._enter(event))\n EventHandler.on(this._element, eventOut, this.config.selector, event => this._leave(event))\n }\n })\n\n this._hideModalHandler = () => {\n if (this._element) {\n this.hide()\n }\n }\n\n EventHandler.on(this._element.closest(`.${CLASS_NAME_MODAL}`), 'hide.bs.modal', this._hideModalHandler)\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const title = this._element.getAttribute('title')\n const originalTitleType = typeof this._element.getAttribute('data-bs-original-title')\n\n if (title || originalTitleType !== 'string') {\n this._element.setAttribute('data-bs-original-title', title || '')\n if (title && !this._element.getAttribute('aria-label') && !this._element.textContent) {\n this._element.setAttribute('aria-label', title)\n }\n\n this._element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n context = this._initializeOnDelegatedTarget(event, context)\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER\n ] = true\n }\n\n if (context.getTipElement().classList.contains(CLASS_NAME_SHOW) || context._hoverState === HOVER_STATE_SHOW) {\n context._hoverState = HOVER_STATE_SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n context = this._initializeOnDelegatedTarget(event, context)\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER\n ] = context._element.contains(event.relatedTarget)\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this._element)\n\n Object.keys(dataAttributes).forEach(dataAttr => {\n if (DISALLOWED_ATTRIBUTES.has(dataAttr)) {\n delete dataAttributes[dataAttr]\n }\n })\n\n if (config && typeof config.container === 'object' && config.container.jquery) {\n config.container = config.container[0]\n }\n\n config = {\n ...this.constructor.Default,\n ...dataAttributes,\n ...(typeof config === 'object' && config ? config : {})\n }\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 typeCheckConfig(NAME, config, this.constructor.DefaultType)\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.allowList, config.sanitizeFn)\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n _handlePopperPlacementChange(popperData) {\n const { state } = popperData\n\n if (!state) {\n return\n }\n\n this.tip = state.elements.popper\n this._cleanTipClass()\n this._addAttachmentClass(this._getAttachment(state.placement))\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.get(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n }\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 * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Tooltip to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(NAME, Tooltip)\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { defineJQueryPlugin } from './util/index'\nimport Data from './dom/data'\nimport SelectorEngine from './dom/selector-engine'\nimport Tooltip from './tooltip'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'popover'\nconst DATA_KEY = 'bs.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-popover'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst Default = {\n ...Tooltip.Default,\n placement: 'right',\n offset: [0, 8],\n trigger: 'click',\n content: '',\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}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content: '(string|element|function)'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_TITLE = '.popover-header'\nconst SELECTOR_CONTENT = '.popover-body'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Popover extends Tooltip {\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n setContent() {\n const tip = this.getTipElement()\n\n // we use append for html objects to maintain js events\n this.setElementContent(SelectorEngine.findOne(SELECTOR_TITLE, tip), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this._element)\n }\n\n this.setElementContent(SelectorEngine.findOne(SELECTOR_CONTENT, tip), content)\n\n tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW)\n }\n\n // Private\n\n _addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${this.updateAttachment(attachment)}`)\n }\n\n _getContent() {\n return this._element.getAttribute('data-bs-content') || this.config.content\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.get(this, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n Data.set(this, DATA_KEY, data)\n }\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 * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Popover to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(NAME, Popover)\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n defineJQueryPlugin,\n getSelectorFromElement,\n getUID,\n isElement,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollspy'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n offset: 10,\n method: 'auto',\n target: ''\n}\n\nconst DefaultType = {\n offset: 'number',\n method: 'string',\n target: '(string|element)'\n}\n\nconst EVENT_ACTIVATE = `activate${EVENT_KEY}`\nconst EVENT_SCROLL = `scroll${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_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_DROPDOWN = '.dropdown'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\n\nconst METHOD_OFFSET = 'offset'\nconst METHOD_POSITION = 'position'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy extends BaseComponent {\n constructor(element, config) {\n super(element)\n this._scrollElement = this._element.tagName === 'BODY' ? window : this._element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${SELECTOR_NAV_LINKS}, ${this._config.target} ${SELECTOR_LIST_ITEMS}, ${this._config.target} .${CLASS_NAME_DROPDOWN_ITEM}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n EventHandler.on(this._scrollElement, EVENT_SCROLL, () => this._process())\n\n this.refresh()\n this._process()\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window ?\n METHOD_OFFSET :\n METHOD_POSITION\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod :\n this._config.method\n\n const offsetBase = offsetMethod === METHOD_POSITION ?\n this._getScrollTop() :\n 0\n\n this._offsets = []\n this._targets = []\n this._scrollHeight = this._getScrollHeight()\n\n const targets = SelectorEngine.find(this._selector)\n\n targets.map(element => {\n const targetSelector = getSelectorFromElement(element)\n const target = targetSelector ? SelectorEngine.findOne(targetSelector) : null\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n return [\n Manipulator[offsetMethod](target).top + offsetBase,\n targetSelector\n ]\n }\n }\n\n return null\n })\n .filter(item => item)\n .sort((a, b) => a[0] - b[0])\n .forEach(item => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n super.dispose()\n EventHandler.off(this._scrollElement, EVENT_KEY)\n\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (typeof config.target !== 'string' && isElement(config.target)) {\n let { id } = config.target\n if (!id) {\n id = getUID(NAME)\n config.target.id = id\n }\n\n config.target = `#${id}`\n }\n\n typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window ?\n this._scrollElement.pageYOffset :\n this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window ?\n window.innerHeight :\n this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n for (let i = this._offsets.length; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector.split(',')\n .map(selector => `${selector}[data-bs-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const link = SelectorEngine.findOne(queries.join(','))\n\n if (link.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) {\n SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE, link.closest(SELECTOR_DROPDOWN))\n .classList.add(CLASS_NAME_ACTIVE)\n\n link.classList.add(CLASS_NAME_ACTIVE)\n } else {\n // Set triggered link as active\n link.classList.add(CLASS_NAME_ACTIVE)\n\n SelectorEngine.parents(link, SELECTOR_NAV_LIST_GROUP)\n .forEach(listGroup => {\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 SelectorEngine.prev(listGroup, `${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`)\n .forEach(item => item.classList.add(CLASS_NAME_ACTIVE))\n\n // Handle special case when .nav-link is inside .nav-item\n SelectorEngine.prev(listGroup, SELECTOR_NAV_ITEMS)\n .forEach(navItem => {\n SelectorEngine.children(navItem, SELECTOR_NAV_LINKS)\n .forEach(item => item.classList.add(CLASS_NAME_ACTIVE))\n })\n })\n }\n\n EventHandler.trigger(this._scrollElement, EVENT_ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n SelectorEngine.find(this._selector)\n .filter(node => node.classList.contains(CLASS_NAME_ACTIVE))\n .forEach(node => node.classList.remove(CLASS_NAME_ACTIVE))\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.get(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n }\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 * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n SelectorEngine.find(SELECTOR_DATA_SPY)\n .forEach(spy => new ScrollSpy(spy, Manipulator.getDataAttributes(spy)))\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .ScrollSpy to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(NAME, ScrollSpy)\n\nexport default ScrollSpy\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n defineJQueryPlugin,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isDisabled,\n reflow\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tab'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\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}`\n\nconst CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_UL = ':scope > li > .active'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"tab\"], [data-bs-toggle=\"pill\"], [data-bs-toggle=\"list\"]'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\nconst SELECTOR_DROPDOWN_ACTIVE_CHILD = ':scope > .dropdown-menu .active'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tab extends BaseComponent {\n // Getters\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n show() {\n if ((this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n this._element.classList.contains(CLASS_NAME_ACTIVE)) ||\n isDisabled(this._element)) {\n return\n }\n\n let previous\n const target = getElementFromSelector(this._element)\n const listElement = this._element.closest(SELECTOR_NAV_LIST_GROUP)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE\n previous = SelectorEngine.find(itemSelector, listElement)\n previous = previous[previous.length - 1]\n }\n\n const hideEvent = previous ?\n EventHandler.trigger(previous, EVENT_HIDE, {\n relatedTarget: this._element\n }) :\n null\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, {\n relatedTarget: previous\n })\n\n if (showEvent.defaultPrevented || (hideEvent !== null && hideEvent.defaultPrevented)) {\n return\n }\n\n this._activate(this._element, listElement)\n\n const complete = () => {\n EventHandler.trigger(previous, EVENT_HIDDEN, {\n relatedTarget: this._element\n })\n EventHandler.trigger(this._element, EVENT_SHOWN, {\n relatedTarget: previous\n })\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n // Private\n\n _activate(element, container, callback) {\n const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ?\n SelectorEngine.find(SELECTOR_ACTIVE_UL, container) :\n SelectorEngine.children(container, SELECTOR_ACTIVE)\n\n const active = activeElements[0]\n const isTransitioning = callback && (active && active.classList.contains(CLASS_NAME_FADE))\n\n const complete = () => this._transitionComplete(element, active, callback)\n\n if (active && isTransitioning) {\n const transitionDuration = getTransitionDurationFromElement(active)\n active.classList.remove(CLASS_NAME_SHOW)\n\n EventHandler.one(active, 'transitionend', complete)\n emulateTransitionEnd(active, transitionDuration)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n active.classList.remove(CLASS_NAME_ACTIVE)\n\n const dropdownChild = SelectorEngine.findOne(SELECTOR_DROPDOWN_ACTIVE_CHILD, active.parentNode)\n\n if (dropdownChild) {\n dropdownChild.classList.remove(CLASS_NAME_ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n element.classList.add(CLASS_NAME_ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n reflow(element)\n\n if (element.classList.contains(CLASS_NAME_FADE)) {\n element.classList.add(CLASS_NAME_SHOW)\n }\n\n if (element.parentNode && element.parentNode.classList.contains(CLASS_NAME_DROPDOWN_MENU)) {\n const dropdownElement = element.closest(SELECTOR_DROPDOWN)\n\n if (dropdownElement) {\n SelectorEngine.find(SELECTOR_DROPDOWN_TOGGLE)\n .forEach(dropdown => dropdown.classList.add(CLASS_NAME_ACTIVE))\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Data.get(this, DATA_KEY) || new Tab(this)\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 * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault()\n\n const data = Data.get(this, DATA_KEY) || new Tab(this)\n data.show()\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Tab to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(NAME, Tab)\n\nexport default Tab\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n defineJQueryPlugin,\n emulateTransitionEnd,\n getTransitionDurationFromElement,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'toast'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_CLICK_DISMISS = `click.dismiss${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'\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\nconst SELECTOR_DATA_DISMISS = '[data-bs-dismiss=\"toast\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n }\n\n // Getters\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get Default() {\n return Default\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\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 this._element.classList.add(CLASS_NAME_SHOW)\n\n EventHandler.trigger(this._element, EVENT_SHOWN)\n\n if (this._config.autohide) {\n this._timeout = setTimeout(() => {\n this.hide()\n }, this._config.delay)\n }\n }\n\n this._element.classList.remove(CLASS_NAME_HIDE)\n reflow(this._element)\n this._element.classList.add(CLASS_NAME_SHOWING)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, 'transitionend', complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n hide() {\n if (!this._element.classList.contains(CLASS_NAME_SHOW)) {\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)\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n }\n\n this._element.classList.remove(CLASS_NAME_SHOW)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, 'transitionend', complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n dispose() {\n this._clearTimeout()\n\n if (this._element.classList.contains(CLASS_NAME_SHOW)) {\n this._element.classList.remove(CLASS_NAME_SHOW)\n }\n\n EventHandler.off(this._element, EVENT_CLICK_DISMISS)\n\n super.dispose()\n this._config = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...(typeof config === 'object' && config ? config : {})\n }\n\n typeCheckConfig(NAME, config, this.constructor.DefaultType)\n\n return config\n }\n\n _setListeners() {\n EventHandler.on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, () => this.hide())\n }\n\n _clearTimeout() {\n clearTimeout(this._timeout)\n this._timeout = null\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.get(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new Toast(this, _config)\n }\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 * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Toast to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(NAME, Toast)\n\nexport default Toast\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): index.umd.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Alert from './src/alert'\nimport Button from './src/button'\nimport Carousel from './src/carousel'\nimport Collapse from './src/collapse'\nimport Dropdown from './src/dropdown'\nimport Modal from './src/modal'\nimport Offcanvas from './src/offcanvas'\nimport Popover from './src/popover'\nimport ScrollSpy from './src/scrollspy'\nimport Tab from './src/tab'\nimport Toast from './src/toast'\nimport Tooltip from './src/tooltip'\n\nexport default {\n Alert,\n Button,\n Carousel,\n Collapse,\n Dropdown,\n Modal,\n Offcanvas,\n Popover,\n ScrollSpy,\n Tab,\n Toast,\n Tooltip\n}\n"],"names":["MAX_UID","MILLISECONDS_MULTIPLIER","TRANSITION_END","toType","obj","undefined","toString","call","match","toLowerCase","getUID","prefix","Math","floor","random","document","getElementById","getSelector","element","selector","getAttribute","hrefAttr","includes","startsWith","split","trim","getSelectorFromElement","querySelector","getElementFromSelector","getTransitionDurationFromElement","transitionDuration","transitionDelay","window","getComputedStyle","floatTransitionDuration","Number","parseFloat","floatTransitionDelay","triggerTransitionEnd","dispatchEvent","Event","isElement","nodeType","emulateTransitionEnd","duration","called","durationPadding","emulatedDuration","listener","removeEventListener","addEventListener","setTimeout","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","TypeError","toUpperCase","isVisible","style","parentNode","elementStyle","parentNodeStyle","display","visibility","isDisabled","Node","ELEMENT_NODE","classList","contains","disabled","hasAttribute","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","noop","reflow","offsetHeight","getjQuery","jQuery","body","onDOMContentLoaded","callback","readyState","isRTL","dir","defineJQueryPlugin","name","plugin","$","JQUERY_NO_CONFLICT","fn","jQueryInterface","Constructor","noConflict","elementMap","Map","set","key","instance","has","instanceMap","get","size","console","error","Array","from","remove","delete","namespaceRegex","stripNameRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","nativeEvents","Set","getUidEvent","uid","getEvent","bootstrapHandler","handler","event","delegateTarget","oneOff","EventHandler","off","type","apply","bootstrapDelegationHandler","domElements","querySelectorAll","target","i","length","findHandler","events","delegationSelector","uidEventList","len","originalHandler","normalizeParams","originalTypeEvent","delegationFn","delegation","typeEvent","replace","custom","isNative","addHandler","handlers","previousFn","removeHandler","Boolean","removeNamespacedHandlers","namespace","storeElementEvent","handlerKey","on","one","inNamespace","isNamespace","elementEvent","slice","keyHandlers","trigger","args","jQueryEvent","bubbles","nativeDispatch","defaultPrevented","evt","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","createEvent","initEvent","CustomEvent","cancelable","defineProperty","preventDefault","VERSION","BaseComponent","constructor","_element","Data","DATA_KEY","dispose","getInstance","NAME","EVENT_KEY","DATA_API_KEY","SELECTOR_DISMISS","EVENT_CLOSE","EVENT_CLOSED","EVENT_CLICK_DATA_API","CLASS_NAME_ALERT","CLASS_NAME_FADE","CLASS_NAME_SHOW","Alert","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","_removeElement","closest","_destroyElement","removeChild","each","data","handleDismiss","alertInstance","CLASS_NAME_ACTIVE","SELECTOR_DATA_TOGGLE","Button","toggle","setAttribute","button","normalizeData","val","normalizeDataKey","chr","Manipulator","setDataAttribute","removeDataAttribute","removeAttribute","getDataAttributes","attributes","dataset","filter","pureKey","charAt","getDataAttribute","offset","rect","getBoundingClientRect","top","scrollTop","left","scrollLeft","position","offsetTop","offsetLeft","NODE_TEXT","SelectorEngine","find","concat","Element","prototype","findOne","children","child","matches","parents","ancestor","push","prev","previous","previousElementSibling","next","nextElementSibling","ARROW_LEFT_KEY","ARROW_RIGHT_KEY","TOUCHEVENT_COMPAT_WAIT","SWIPE_THRESHOLD","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","ORDER_NEXT","ORDER_PREV","DIRECTION_LEFT","DIRECTION_RIGHT","EVENT_SLIDE","EVENT_SLID","EVENT_KEYDOWN","EVENT_MOUSEENTER","EVENT_MOUSELEAVE","EVENT_TOUCHSTART","EVENT_TOUCHMOVE","EVENT_TOUCHEND","EVENT_POINTERDOWN","EVENT_POINTERUP","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","CLASS_NAME_POINTER_EVENT","SELECTOR_ACTIVE","SELECTOR_ACTIVE_ITEM","SELECTOR_ITEM","SELECTOR_ITEM_IMG","SELECTOR_NEXT_PREV","SELECTOR_INDICATORS","SELECTOR_INDICATOR","SELECTOR_DATA_SLIDE","SELECTOR_DATA_RIDE","POINTER_TYPE_TOUCH","POINTER_TYPE_PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","_addEventListeners","_slide","nextWhenVisible","hidden","cycle","clearInterval","_updateInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","order","_handleSwipe","absDeltax","abs","direction","_keydown","_addTouchEventListeners","start","pointerType","clientX","touches","move","end","clearTimeout","itemImg","e","add","tagName","indexOf","_getItemByOrder","activeElement","isNext","isPrev","lastItemIndex","isGoingToWrap","delta","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","_setActiveIndicatorElement","activeIndicator","indicators","parseInt","elementInterval","defaultInterval","directionOrOrder","_directionToOrder","activeElementIndex","nextElement","nextElementIndex","isCycling","directionalClassName","orderClassName","_orderToDirection","slideEvent","carouselInterface","action","ride","dataApiClickHandler","slideIndex","carousels","parent","EVENT_SHOW","EVENT_SHOWN","EVENT_HIDE","EVENT_HIDDEN","CLASS_NAME_COLLAPSE","CLASS_NAME_COLLAPSING","CLASS_NAME_COLLAPSED","WIDTH","HEIGHT","SELECTOR_ACTIVES","Collapse","_isTransitioning","_triggerArray","id","toggleList","elem","filterElement","foundElem","_selector","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","container","tempActiveData","startEvent","elemActive","collapseInterface","dimension","_getDimension","setTransitioning","complete","capitalizedDimension","scrollSize","triggerArrayLength","isTransitioning","jquery","selected","triggerArray","isOpen","triggerData","selectorElements","ESCAPE_KEY","SPACE_KEY","TAB_KEY","ARROW_UP_KEY","ARROW_DOWN_KEY","RIGHT_MOUSE_BUTTON","REGEXP_KEYDOWN","EVENT_CLICK","EVENT_KEYDOWN_DATA_API","EVENT_KEYUP_DATA_API","CLASS_NAME_DISABLED","CLASS_NAME_DROPUP","CLASS_NAME_DROPEND","CLASS_NAME_DROPSTART","CLASS_NAME_NAVBAR","SELECTOR_MENU","SELECTOR_NAVBAR_NAV","SELECTOR_VISIBLE_ITEMS","PLACEMENT_TOP","PLACEMENT_TOPEND","PLACEMENT_BOTTOM","PLACEMENT_BOTTOMEND","PLACEMENT_RIGHT","PLACEMENT_LEFT","boundary","reference","popperConfig","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","isActive","clearMenus","getParentFromElement","showEvent","Popper","referenceElement","_getPopperConfig","isDisplayStatic","modifiers","modifier","enabled","createPopper","focus","hideEvent","destroy","update","_getPlacement","parentDropdown","isEnd","getPropertyValue","_getOffset","map","popperData","defaultBsPopperConfig","placement","options","dropdownInterface","toggles","context","clickEvent","dropdownMenu","some","composedPath","dataApiKeydownHandler","stopPropagation","click","items","backdrop","EVENT_HIDE_PREVENTED","EVENT_FOCUSIN","EVENT_RESIZE","EVENT_CLICK_DISMISS","EVENT_KEYDOWN_DISMISS","EVENT_MOUSEUP_DISMISS","EVENT_MOUSEDOWN_DISMISS","CLASS_NAME_SCROLLBAR_MEASURER","CLASS_NAME_BACKDROP","CLASS_NAME_OPEN","CLASS_NAME_STATIC","SELECTOR_DIALOG","SELECTOR_MODAL_BODY","SELECTOR_DATA_DISMISS","SELECTOR_FIXED_CONTENT","SELECTOR_STICKY_CONTENT","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_isAnimated","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","isAnimated","_hideModal","htmlElement","handleUpdate","modalBody","appendChild","_enforceFocus","transitionComplete","_triggerBackdropTransition","_resetAdjustments","_resetScrollbar","_removeBackdrop","createElement","className","currentTarget","backdropTransitionDuration","callbackRemove","isModalOverflowing","scrollHeight","clientHeight","overflowY","modalTransitionDuration","paddingLeft","paddingRight","round","right","innerWidth","_getScrollbarWidth","_setElementAttributes","calculatedValue","styleProp","clientWidth","actualValue","_resetElementAttributes","scrollDiv","scrollbarWidth","width","getWidth","documentWidth","overflow","reset","removeProperty","scroll","CLASS_NAME_BACKDROP_BODY","CLASS_NAME_TOGGLING","OPEN_SELECTOR","ACTIVE_SELECTOR","Offcanvas","scrollBarHide","completeCallBack","_enforceFocusOnElement","blur","completeCallback","scrollBarReset","allReadyOpen","el","uriAttrs","ARIA_ATTRIBUTE_PATTERN","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","attr","allowedAttributeList","attrName","nodeName","nodeValue","regExp","attrRegex","DefaultAllowlist","a","area","b","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","sanitizeHtml","unsafeHtml","allowList","sanitizeFn","domParser","DOMParser","createdDocument","parseFromString","allowlistKeys","elements","elName","attributeList","allowedAttributes","innerHTML","CLASS_PREFIX","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","html","fallbackPlacements","customClass","sanitize","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","CLASS_NAME_MODAL","HOVER_STATE_SHOW","HOVER_STATE_OUT","SELECTOR_TOOLTIP_INNER","TRIGGER_HOVER","TRIGGER_FOCUS","TRIGGER_CLICK","TRIGGER_MANUAL","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","_initializeOnDelegatedTarget","_isWithActiveTrigger","_enter","_leave","getTipElement","_hideModalHandler","Error","isWithContent","shadowRoot","isInTheDom","ownerDocument","tipId","setContent","attachment","_getAttachment","_addAttachmentClass","_getContainer","prevHoverState","_cleanTipClass","getTitle","setElementContent","content","textContent","updateAttachment","dataKey","_getDelegateConfig","altBoundary","phase","_handlePopperPlacementChange","onFirstUpdate","triggers","eventIn","eventOut","_fixTitle","originalTitleType","dataAttributes","dataAttr","tabClass","token","tClass","state","popper","SELECTOR_TITLE","SELECTOR_CONTENT","Popover","_getContent","method","EVENT_ACTIVATE","EVENT_SCROLL","CLASS_NAME_DROPDOWN_ITEM","SELECTOR_DATA_SPY","SELECTOR_NAV_LIST_GROUP","SELECTOR_NAV_LINKS","SELECTOR_NAV_ITEMS","SELECTOR_LIST_ITEMS","SELECTOR_DROPDOWN","SELECTOR_DROPDOWN_TOGGLE","METHOD_OFFSET","METHOD_POSITION","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targets","targetSelector","targetBCR","height","item","sort","pageYOffset","max","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","isActiveTarget","queries","link","join","listGroup","navItem","node","spy","CLASS_NAME_DROPDOWN_MENU","SELECTOR_ACTIVE_UL","SELECTOR_DROPDOWN_ACTIVE_CHILD","Tab","listElement","itemSelector","activeElements","active","_transitionComplete","dropdownChild","dropdownElement","dropdown","CLASS_NAME_HIDE","CLASS_NAME_SHOWING","autohide","Toast","_clearTimeout"],"mappings":"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"}
\ No newline at end of file diff --git a/dist/js/bootstrap.min.js b/dist/js/bootstrap.min.js index 69559ff6e..d31b6e9bf 100644 --- a/dist/js/bootstrap.min.js +++ b/dist/js/bootstrap.min.js @@ -1,7 +1,7 @@ /*! - * Bootstrap v5.0.0-alpha3 (https://getbootstrap.com/) - * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) + * Bootstrap v5.0.0-beta3 (https://getbootstrap.com/) + * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) */ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("popper.js")):"function"==typeof define&&define.amd?define(["popper.js"],e):(t="undefined"!=typeof globalThis?globalThis:t||self).bootstrap=e(t.Popper)}(this,(function(t){"use strict";function e(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var n=e(t);function i(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function o(t,e,n){return e&&i(t.prototype,e),n&&i(t,n),t}function s(){return(s=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t}).apply(this,arguments)}function r(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,t.__proto__=e}var a,l,c=function(t){do{t+=Math.floor(1e6*Math.random())}while(document.getElementById(t));return t},u=function(t){var e=t.getAttribute("data-bs-target");if(!e||"#"===e){var n=t.getAttribute("href");e=n&&"#"!==n?n.trim():null}return e},f=function(t){var e=u(t);return e&&document.querySelector(e)?e:null},d=function(t){var e=u(t);return e?document.querySelector(e):null},h=function(t){if(!t)return 0;var e=window.getComputedStyle(t),n=e.transitionDuration,i=e.transitionDelay,o=Number.parseFloat(n),s=Number.parseFloat(i);return o||s?(n=n.split(",")[0],i=i.split(",")[0],1e3*(Number.parseFloat(n)+Number.parseFloat(i))):0},g=function(t){t.dispatchEvent(new Event("transitionend"))},p=function(t){return(t[0]||t).nodeType},m=function(t,e){var n=!1,i=e+5;t.addEventListener("transitionend",(function e(){n=!0,t.removeEventListener("transitionend",e)})),setTimeout((function(){n||g(t)}),i)},_=function(t,e,n){Object.keys(n).forEach((function(i){var o,s=n[i],r=e[i],a=r&&p(r)?"element":null==(o=r)?""+o:{}.toString.call(o).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(s).test(a))throw new Error(t.toUpperCase()+': Option "'+i+'" provided type "'+a+'" but expected type "'+s+'".')}))},v=function(t){if(!t)return!1;if(t.style&&t.parentNode&&t.parentNode.style){var e=getComputedStyle(t),n=getComputedStyle(t.parentNode);return"none"!==e.display&&"none"!==n.display&&"hidden"!==e.visibility}return!1},b=function(){return function(){}},y=function(t){return t.offsetHeight},w=function(){var t=window.jQuery;return t&&!document.body.hasAttribute("data-bs-no-jquery")?t:null},E=function(t){"loading"===document.readyState?document.addEventListener("DOMContentLoaded",t):t()},T="rtl"===document.documentElement.dir,L=(a={},l=1,{set:function(t,e,n){void 0===t.bsKey&&(t.bsKey={key:e,id:l},l++),a[t.bsKey.id]=n},get:function(t,e){if(!t||void 0===t.bsKey)return null;var n=t.bsKey;return n.key===e?a[n.id]:null},delete:function(t,e){if(void 0!==t.bsKey){var n=t.bsKey;n.key===e&&(delete a[n.id],delete t.bsKey)}}}),k=function(t,e,n){L.set(t,e,n)},A=function(t,e){return L.get(t,e)},C=function(t,e){L.delete(t,e)},D=/[^.]*(?=\..*)\.|.*/,S=/\..*/,N=/::\d+$/,O={},I=1,j={mouseenter:"mouseover",mouseleave:"mouseout"},x=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function P(t,e){return e&&e+"::"+I++||t.uidEvent||I++}function H(t){var e=P(t);return t.uidEvent=e,O[e]=O[e]||{},O[e]}function M(t,e,n){void 0===n&&(n=null);for(var i=Object.keys(t),o=0,s=i.length;o<s;o++){var r=t[i[o]];if(r.originalHandler===e&&r.delegationSelector===n)return r}return null}function B(t,e,n){var i="string"==typeof e,o=i?n:e,s=t.replace(S,""),r=j[s];return r&&(s=r),x.has(s)||(s=t),[i,o,s]}function R(t,e,n,i,o){if("string"==typeof e&&t){n||(n=i,i=null);var s=B(e,n,i),r=s[0],a=s[1],l=s[2],c=H(t),u=c[l]||(c[l]={}),f=M(u,a,r?n:null);if(f)f.oneOff=f.oneOff&&o;else{var d=P(a,e.replace(D,"")),h=r?function(t,e,n){return function i(o){for(var s=t.querySelectorAll(e),r=o.target;r&&r!==this;r=r.parentNode)for(var a=s.length;a--;)if(s[a]===r)return o.delegateTarget=r,i.oneOff&&Q.off(t,o.type,n),n.apply(r,[o]);return null}}(t,n,i):function(t,e){return function n(i){return i.delegateTarget=t,n.oneOff&&Q.off(t,i.type,e),e.apply(t,[i])}}(t,n);h.delegationSelector=r?n:null,h.originalHandler=a,h.oneOff=o,h.uidEvent=d,u[d]=h,t.addEventListener(l,h,r)}}}function K(t,e,n,i,o){var s=M(e[n],i,o);s&&(t.removeEventListener(n,s,Boolean(o)),delete e[n][s.uidEvent])}var Q={on:function(t,e,n,i){R(t,e,n,i,!1)},one:function(t,e,n,i){R(t,e,n,i,!0)},off:function(t,e,n,i){if("string"==typeof e&&t){var o=B(e,n,i),s=o[0],r=o[1],a=o[2],l=a!==e,c=H(t),u=e.startsWith(".");if(void 0===r){u&&Object.keys(c).forEach((function(n){!function(t,e,n,i){var o=e[n]||{};Object.keys(o).forEach((function(s){if(s.includes(i)){var r=o[s];K(t,e,n,r.originalHandler,r.delegationSelector)}}))}(t,c,n,e.slice(1))}));var f=c[a]||{};Object.keys(f).forEach((function(n){var i=n.replace(N,"");if(!l||e.includes(i)){var o=f[n];K(t,c,a,o.originalHandler,o.delegationSelector)}}))}else{if(!c||!c[a])return;K(t,c,a,r,s?n:null)}}},trigger:function(t,e,n){if("string"!=typeof e||!t)return null;var i,o=w(),s=e.replace(S,""),r=e!==s,a=x.has(s),l=!0,c=!0,u=!1,f=null;return r&&o&&(i=o.Event(e,n),o(t).trigger(i),l=!i.isPropagationStopped(),c=!i.isImmediatePropagationStopped(),u=i.isDefaultPrevented()),a?(f=document.createEvent("HTMLEvents")).initEvent(s,l,!0):f=new CustomEvent(e,{bubbles:l,cancelable:!0}),void 0!==n&&Object.keys(n).forEach((function(t){Object.defineProperty(f,t,{get:function(){return n[t]}})})),u&&f.preventDefault(),c&&t.dispatchEvent(f),f.defaultPrevented&&void 0!==i&&i.preventDefault(),f}},U=function(){function t(t){t&&(this._element=t,k(t,this.constructor.DATA_KEY,this))}return t.prototype.dispose=function(){C(this._element,this.constructor.DATA_KEY),this._element=null},t.getInstance=function(t){return A(t,this.DATA_KEY)},o(t,null,[{key:"VERSION",get:function(){return"5.0.0-alpha3"}}]),t}(),W="alert",F=function(t){function e(){return t.apply(this,arguments)||this}r(e,t);var n=e.prototype;return n.close=function(t){var e=t?this._getRootElement(t):this._element,n=this._triggerCloseEvent(e);null===n||n.defaultPrevented||this._removeElement(e)},n._getRootElement=function(t){return d(t)||t.closest(".alert")},n._triggerCloseEvent=function(t){return Q.trigger(t,"close.bs.alert")},n._removeElement=function(t){var e=this;if(t.classList.remove("show"),t.classList.contains("fade")){var n=h(t);Q.one(t,"transitionend",(function(){return e._destroyElement(t)})),m(t,n)}else this._destroyElement(t)},n._destroyElement=function(t){t.parentNode&&t.parentNode.removeChild(t),Q.trigger(t,"closed.bs.alert")},e.jQueryInterface=function(t){return this.each((function(){var n=A(this,"bs.alert");n||(n=new e(this)),"close"===t&&n[t](this)}))},e.handleDismiss=function(t){return function(e){e&&e.preventDefault(),t.close(this)}},o(e,null,[{key:"DATA_KEY",get:function(){return"bs.alert"}}]),e}(U);Q.on(document,"click.bs.alert.data-api",'[data-bs-dismiss="alert"]',F.handleDismiss(new F)),E((function(){var t=w();if(t){var e=t.fn[W];t.fn[W]=F.jQueryInterface,t.fn[W].Constructor=F,t.fn[W].noConflict=function(){return t.fn[W]=e,F.jQueryInterface}}}));var Y=function(t){function e(){return t.apply(this,arguments)||this}return r(e,t),e.prototype.toggle=function(){this._element.setAttribute("aria-pressed",this._element.classList.toggle("active"))},e.jQueryInterface=function(t){return this.each((function(){var n=A(this,"bs.button");n||(n=new e(this)),"toggle"===t&&n[t]()}))},o(e,null,[{key:"DATA_KEY",get:function(){return"bs.button"}}]),e}(U);function z(t){return"true"===t||"false"!==t&&(t===Number(t).toString()?Number(t):""===t||"null"===t?null:t)}function X(t){return t.replace(/[A-Z]/g,(function(t){return"-"+t.toLowerCase()}))}Q.on(document,"click.bs.button.data-api",'[data-bs-toggle="button"]',(function(t){t.preventDefault();var e=t.target.closest('[data-bs-toggle="button"]'),n=A(e,"bs.button");n||(n=new Y(e)),n.toggle()})),E((function(){var t=w();if(t){var e=t.fn.button;t.fn.button=Y.jQueryInterface,t.fn.button.Constructor=Y,t.fn.button.noConflict=function(){return t.fn.button=e,Y.jQueryInterface}}}));var q={setDataAttribute:function(t,e,n){t.setAttribute("data-bs-"+X(e),n)},removeDataAttribute:function(t,e){t.removeAttribute("data-bs-"+X(e))},getDataAttributes:function(t){if(!t)return{};var e={};return Object.keys(t.dataset).filter((function(t){return t.startsWith("bs")})).forEach((function(n){var i=n.replace(/^bs/,"");i=i.charAt(0).toLowerCase()+i.slice(1,i.length),e[i]=z(t.dataset[n])})),e},getDataAttribute:function(t,e){return z(t.getAttribute("data-bs-"+X(e)))},offset:function(t){var e=t.getBoundingClientRect();return{top:e.top+document.body.scrollTop,left:e.left+document.body.scrollLeft}},position:function(t){return{top:t.offsetTop,left:t.offsetLeft}}},V={matches:function(t,e){return t.matches(e)},find:function(t,e){var n;return void 0===e&&(e=document.documentElement),(n=[]).concat.apply(n,Element.prototype.querySelectorAll.call(e,t))},findOne:function(t,e){return void 0===e&&(e=document.documentElement),Element.prototype.querySelector.call(e,t)},children:function(t,e){var n,i=(n=[]).concat.apply(n,t.children);return i.filter((function(t){return t.matches(e)}))},parents:function(t,e){for(var n=[],i=t.parentNode;i&&i.nodeType===Node.ELEMENT_NODE&&3!==i.nodeType;)this.matches(i,e)&&n.push(i),i=i.parentNode;return n},prev:function(t,e){for(var n=t.previousElementSibling;n;){if(n.matches(e))return[n];n=n.previousElementSibling}return[]},next:function(t,e){for(var n=t.nextElementSibling;n;){if(this.matches(n,e))return[n];n=n.nextElementSibling}return[]}},$="carousel",G=".bs.carousel",Z={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},J={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},tt={TOUCH:"touch",PEN:"pen"},et=function(t){function e(e,n){var i;return(i=t.call(this,e)||this)._items=null,i._interval=null,i._activeElement=null,i._isPaused=!1,i._isSliding=!1,i.touchTimeout=null,i.touchStartX=0,i.touchDeltaX=0,i._config=i._getConfig(n),i._indicatorsElement=V.findOne(".carousel-indicators",i._element),i._touchSupported="ontouchstart"in document.documentElement||navigator.maxTouchPoints>0,i._pointerEvent=Boolean(window.PointerEvent),i._addEventListeners(),i}r(e,t);var n=e.prototype;return n.next=function(){this._isSliding||this._slide("next")},n.nextWhenVisible=function(){!document.hidden&&v(this._element)&&this.next()},n.prev=function(){this._isSliding||this._slide("prev")},n.pause=function(t){t||(this._isPaused=!0),V.findOne(".carousel-item-next, .carousel-item-prev",this._element)&&(g(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},n.cycle=function(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config&&this._config.interval&&!this._isPaused&&(this._updateInterval(),this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},n.to=function(t){var e=this;this._activeElement=V.findOne(".active.carousel-item",this._element);var n=this._getItemIndex(this._activeElement);if(!(t>this._items.length-1||t<0))if(this._isSliding)Q.one(this._element,"slid.bs.carousel",(function(){return e.to(t)}));else{if(n===t)return this.pause(),void this.cycle();var i=t>n?"next":"prev";this._slide(i,this._items[t])}},n.dispose=function(){t.prototype.dispose.call(this),Q.off(this._element,G),this._items=null,this._config=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},n._getConfig=function(t){return t=s({},Z,t),_($,t,J),t},n._handleSwipe=function(){var t=Math.abs(this.touchDeltaX);if(!(t<=40)){var e=t/this.touchDeltaX;this.touchDeltaX=0,e>0&&this.prev(),e<0&&this.next()}},n._addEventListeners=function(){var t=this;this._config.keyboard&&Q.on(this._element,"keydown.bs.carousel",(function(e){return t._keydown(e)})),"hover"===this._config.pause&&(Q.on(this._element,"mouseenter.bs.carousel",(function(e){return t.pause(e)})),Q.on(this._element,"mouseleave.bs.carousel",(function(e){return t.cycle(e)}))),this._config.touch&&this._touchSupported&&this._addTouchEventListeners()},n._addTouchEventListeners=function(){var t=this,e=function(e){t._pointerEvent&&tt[e.pointerType.toUpperCase()]?t.touchStartX=e.clientX:t._pointerEvent||(t.touchStartX=e.touches[0].clientX)},n=function(e){t._pointerEvent&&tt[e.pointerType.toUpperCase()]&&(t.touchDeltaX=e.clientX-t.touchStartX),t._handleSwipe(),"hover"===t._config.pause&&(t.pause(),t.touchTimeout&&clearTimeout(t.touchTimeout),t.touchTimeout=setTimeout((function(e){return t.cycle(e)}),500+t._config.interval))};V.find(".carousel-item img",this._element).forEach((function(t){Q.on(t,"dragstart.bs.carousel",(function(t){return t.preventDefault()}))})),this._pointerEvent?(Q.on(this._element,"pointerdown.bs.carousel",(function(t){return e(t)})),Q.on(this._element,"pointerup.bs.carousel",(function(t){return n(t)})),this._element.classList.add("pointer-event")):(Q.on(this._element,"touchstart.bs.carousel",(function(t){return e(t)})),Q.on(this._element,"touchmove.bs.carousel",(function(e){return function(e){e.touches&&e.touches.length>1?t.touchDeltaX=0:t.touchDeltaX=e.touches[0].clientX-t.touchStartX}(e)})),Q.on(this._element,"touchend.bs.carousel",(function(t){return n(t)})))},n._keydown=function(t){if(!/input|textarea/i.test(t.target.tagName))switch(t.key){case"ArrowLeft":t.preventDefault(),this.prev();break;case"ArrowRight":t.preventDefault(),this.next()}},n._getItemIndex=function(t){return this._items=t&&t.parentNode?V.find(".carousel-item",t.parentNode):[],this._items.indexOf(t)},n._getItemByDirection=function(t,e){var n="next"===t,i="prev"===t,o=this._getItemIndex(e),s=this._items.length-1;if((i&&0===o||n&&o===s)&&!this._config.wrap)return e;var r=(o+("prev"===t?-1:1))%this._items.length;return-1===r?this._items[this._items.length-1]:this._items[r]},n._triggerSlideEvent=function(t,e){var n=this._getItemIndex(t),i=this._getItemIndex(V.findOne(".active.carousel-item",this._element));return Q.trigger(this._element,"slide.bs.carousel",{relatedTarget:t,direction:e,from:i,to:n})},n._setActiveIndicatorElement=function(t){if(this._indicatorsElement){for(var e=V.find(".active",this._indicatorsElement),n=0;n<e.length;n++)e[n].classList.remove("active");var i=this._indicatorsElement.children[this._getItemIndex(t)];i&&i.classList.add("active")}},n._updateInterval=function(){var t=this._activeElement||V.findOne(".active.carousel-item",this._element);if(t){var e=Number.parseInt(t.getAttribute("data-bs-interval"),10);e?(this._config.defaultInterval=this._config.defaultInterval||this._config.interval,this._config.interval=e):this._config.interval=this._config.defaultInterval||this._config.interval}},n._slide=function(t,e){var n,i,o,s=this,r=V.findOne(".active.carousel-item",this._element),a=this._getItemIndex(r),l=e||r&&this._getItemByDirection(t,r),c=this._getItemIndex(l),u=Boolean(this._interval);if("next"===t?(n="carousel-item-start",i="carousel-item-next",o="left"):(n="carousel-item-end",i="carousel-item-prev",o="right"),l&&l.classList.contains("active"))this._isSliding=!1;else if(!this._triggerSlideEvent(l,o).defaultPrevented&&r&&l){if(this._isSliding=!0,u&&this.pause(),this._setActiveIndicatorElement(l),this._activeElement=l,this._element.classList.contains("slide")){l.classList.add(i),y(l),r.classList.add(n),l.classList.add(n);var f=h(r);Q.one(r,"transitionend",(function(){l.classList.remove(n,i),l.classList.add("active"),r.classList.remove("active",i,n),s._isSliding=!1,setTimeout((function(){Q.trigger(s._element,"slid.bs.carousel",{relatedTarget:l,direction:o,from:a,to:c})}),0)})),m(r,f)}else r.classList.remove("active"),l.classList.add("active"),this._isSliding=!1,Q.trigger(this._element,"slid.bs.carousel",{relatedTarget:l,direction:o,from:a,to:c});u&&this.cycle()}},e.carouselInterface=function(t,n){var i=A(t,"bs.carousel"),o=s({},Z,q.getDataAttributes(t));"object"==typeof n&&(o=s({},o,n));var r="string"==typeof n?n:o.slide;if(i||(i=new e(t,o)),"number"==typeof n)i.to(n);else if("string"==typeof r){if(void 0===i[r])throw new TypeError('No method named "'+r+'"');i[r]()}else o.interval&&o.ride&&(i.pause(),i.cycle())},e.jQueryInterface=function(t){return this.each((function(){e.carouselInterface(this,t)}))},e.dataApiClickHandler=function(t){var n=d(this);if(n&&n.classList.contains("carousel")){var i=s({},q.getDataAttributes(n),q.getDataAttributes(this)),o=this.getAttribute("data-bs-slide-to");o&&(i.interval=!1),e.carouselInterface(n,i),o&&A(n,"bs.carousel").to(o),t.preventDefault()}},o(e,null,[{key:"Default",get:function(){return Z}},{key:"DATA_KEY",get:function(){return"bs.carousel"}}]),e}(U);Q.on(document,"click.bs.carousel.data-api","[data-bs-slide], [data-bs-slide-to]",et.dataApiClickHandler),Q.on(window,"load.bs.carousel.data-api",(function(){for(var t=V.find('[data-bs-ride="carousel"]'),e=0,n=t.length;e<n;e++)et.carouselInterface(t[e],A(t[e],"bs.carousel"))})),E((function(){var t=w();if(t){var e=t.fn[$];t.fn[$]=et.jQueryInterface,t.fn[$].Constructor=et,t.fn[$].noConflict=function(){return t.fn[$]=e,et.jQueryInterface}}}));var nt="collapse",it={toggle:!0,parent:""},ot={toggle:"boolean",parent:"(string|element)"},st=function(t){function e(e,n){var i;(i=t.call(this,e)||this)._isTransitioning=!1,i._config=i._getConfig(n),i._triggerArray=V.find('[data-bs-toggle="collapse"][href="#'+e.id+'"],[data-bs-toggle="collapse"][data-bs-target="#'+e.id+'"]');for(var o=V.find('[data-bs-toggle="collapse"]'),s=0,r=o.length;s<r;s++){var a=o[s],l=f(a),c=V.find(l).filter((function(t){return t===e}));null!==l&&c.length&&(i._selector=l,i._triggerArray.push(a))}return i._parent=i._config.parent?i._getParent():null,i._config.parent||i._addAriaAndCollapsedClass(i._element,i._triggerArray),i._config.toggle&&i.toggle(),i}r(e,t);var n=e.prototype;return n.toggle=function(){this._element.classList.contains("show")?this.hide():this.show()},n.show=function(){var t=this;if(!this._isTransitioning&&!this._element.classList.contains("show")){var n,i;this._parent&&0===(n=V.find(".show, .collapsing",this._parent).filter((function(e){return"string"==typeof t._config.parent?e.getAttribute("data-bs-parent")===t._config.parent:e.classList.contains("collapse")}))).length&&(n=null);var o=V.findOne(this._selector);if(n){var s=n.find((function(t){return o!==t}));if((i=s?A(s,"bs.collapse"):null)&&i._isTransitioning)return}if(!Q.trigger(this._element,"show.bs.collapse").defaultPrevented){n&&n.forEach((function(t){o!==t&&e.collapseInterface(t,"hide"),i||k(t,"bs.collapse",null)}));var r=this._getDimension();this._element.classList.remove("collapse"),this._element.classList.add("collapsing"),this._element.style[r]=0,this._triggerArray.length&&this._triggerArray.forEach((function(t){t.classList.remove("collapsed"),t.setAttribute("aria-expanded",!0)})),this.setTransitioning(!0);var a="scroll"+(r[0].toUpperCase()+r.slice(1)),l=h(this._element);Q.one(this._element,"transitionend",(function(){t._element.classList.remove("collapsing"),t._element.classList.add("collapse","show"),t._element.style[r]="",t.setTransitioning(!1),Q.trigger(t._element,"shown.bs.collapse")})),m(this._element,l),this._element.style[r]=this._element[a]+"px"}}},n.hide=function(){var t=this;if(!this._isTransitioning&&this._element.classList.contains("show")&&!Q.trigger(this._element,"hide.bs.collapse").defaultPrevented){var e=this._getDimension();this._element.style[e]=this._element.getBoundingClientRect()[e]+"px",y(this._element),this._element.classList.add("collapsing"),this._element.classList.remove("collapse","show");var n=this._triggerArray.length;if(n>0)for(var i=0;i<n;i++){var o=this._triggerArray[i],s=d(o);s&&!s.classList.contains("show")&&(o.classList.add("collapsed"),o.setAttribute("aria-expanded",!1))}this.setTransitioning(!0);this._element.style[e]="";var r=h(this._element);Q.one(this._element,"transitionend",(function(){t.setTransitioning(!1),t._element.classList.remove("collapsing"),t._element.classList.add("collapse"),Q.trigger(t._element,"hidden.bs.collapse")})),m(this._element,r)}},n.setTransitioning=function(t){this._isTransitioning=t},n.dispose=function(){t.prototype.dispose.call(this),this._config=null,this._parent=null,this._triggerArray=null,this._isTransitioning=null},n._getConfig=function(t){return(t=s({},it,t)).toggle=Boolean(t.toggle),_(nt,t,ot),t},n._getDimension=function(){return this._element.classList.contains("width")?"width":"height"},n._getParent=function(){var t=this,e=this._config.parent;p(e)?void 0===e.jquery&&void 0===e[0]||(e=e[0]):e=V.findOne(e);var n='[data-bs-toggle="collapse"][data-bs-parent="'+e+'"]';return V.find(n,e).forEach((function(e){var n=d(e);t._addAriaAndCollapsedClass(n,[e])})),e},n._addAriaAndCollapsedClass=function(t,e){if(t&&e.length){var n=t.classList.contains("show");e.forEach((function(t){n?t.classList.remove("collapsed"):t.classList.add("collapsed"),t.setAttribute("aria-expanded",n)}))}},e.collapseInterface=function(t,n){var i=A(t,"bs.collapse"),o=s({},it,q.getDataAttributes(t),"object"==typeof n&&n?n:{});if(!i&&o.toggle&&"string"==typeof n&&/show|hide/.test(n)&&(o.toggle=!1),i||(i=new e(t,o)),"string"==typeof n){if(void 0===i[n])throw new TypeError('No method named "'+n+'"');i[n]()}},e.jQueryInterface=function(t){return this.each((function(){e.collapseInterface(this,t)}))},o(e,null,[{key:"Default",get:function(){return it}},{key:"DATA_KEY",get:function(){return"bs.collapse"}}]),e}(U);Q.on(document,"click.bs.collapse.data-api",'[data-bs-toggle="collapse"]',(function(t){"A"===t.target.tagName&&t.preventDefault();var e=q.getDataAttributes(this),n=f(this);V.find(n).forEach((function(t){var n,i=A(t,"bs.collapse");i?(null===i._parent&&"string"==typeof e.parent&&(i._config.parent=e.parent,i._parent=i._getParent()),n="toggle"):n=e,st.collapseInterface(t,n)}))})),E((function(){var t=w();if(t){var e=t.fn[nt];t.fn[nt]=st.jQueryInterface,t.fn[nt].Constructor=st,t.fn[nt].noConflict=function(){return t.fn[nt]=e,st.jQueryInterface}}}));var rt="dropdown",at=new RegExp("ArrowUp|ArrowDown|Escape"),lt=T?"top-end":"top-start",ct=T?"top-start":"top-end",ut=T?"bottom-end":"bottom-start",ft=T?"bottom-start":"bottom-end",dt=T?"left-start":"right-start",ht=T?"right-start":"left-start",gt={offset:0,flip:!0,boundary:"scrollParent",reference:"toggle",display:"dynamic",popperConfig:null},pt={offset:"(number|string|function)",flip:"boolean",boundary:"(string|element)",reference:"(string|element)",display:"string",popperConfig:"(null|object)"},mt=function(t){function e(e,n){var i;return(i=t.call(this,e)||this)._popper=null,i._config=i._getConfig(n),i._menu=i._getMenuElement(),i._inNavbar=i._detectNavbar(),i._addEventListeners(),i}r(e,t);var i=e.prototype;return i.toggle=function(){if(!this._element.disabled&&!this._element.classList.contains("disabled")){var t=this._element.classList.contains("show");e.clearMenus(),t||this.show()}},i.show=function(){if(!(this._element.disabled||this._element.classList.contains("disabled")||this._menu.classList.contains("show"))){var t=e.getParentFromElement(this._element),i={relatedTarget:this._element};if(!Q.trigger(this._element,"show.bs.dropdown",i).defaultPrevented){if(!this._inNavbar){if(void 0===n.default)throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");var o=this._element;"parent"===this._config.reference?o=t:p(this._config.reference)&&(o=this._config.reference,void 0!==this._config.reference.jquery&&(o=this._config.reference[0])),"scrollParent"!==this._config.boundary&&t.classList.add("position-static"),this._popper=new n.default(o,this._menu,this._getPopperConfig())}var s;if("ontouchstart"in document.documentElement&&!t.closest(".navbar-nav"))(s=[]).concat.apply(s,document.body.children).forEach((function(t){return Q.on(t,"mouseover",null,(function(){}))}));this._element.focus(),this._element.setAttribute("aria-expanded",!0),this._menu.classList.toggle("show"),this._element.classList.toggle("show"),Q.trigger(t,"shown.bs.dropdown",i)}}},i.hide=function(){if(!this._element.disabled&&!this._element.classList.contains("disabled")&&this._menu.classList.contains("show")){var t=e.getParentFromElement(this._element),n={relatedTarget:this._element};Q.trigger(t,"hide.bs.dropdown",n).defaultPrevented||(this._popper&&this._popper.destroy(),this._menu.classList.toggle("show"),this._element.classList.toggle("show"),Q.trigger(t,"hidden.bs.dropdown",n))}},i.dispose=function(){t.prototype.dispose.call(this),Q.off(this._element,".bs.dropdown"),this._menu=null,this._popper&&(this._popper.destroy(),this._popper=null)},i.update=function(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.scheduleUpdate()},i._addEventListeners=function(){var t=this;Q.on(this._element,"click.bs.dropdown",(function(e){e.preventDefault(),e.stopPropagation(),t.toggle()}))},i._getConfig=function(t){return t=s({},this.constructor.Default,q.getDataAttributes(this._element),t),_(rt,t,this.constructor.DefaultType),t},i._getMenuElement=function(){return V.next(this._element,".dropdown-menu")[0]},i._getPlacement=function(){var t=this._element.parentNode,e=ut;return t.classList.contains("dropup")?e=this._menu.classList.contains("dropdown-menu-end")?ct:lt:t.classList.contains("dropend")?e=dt:t.classList.contains("dropstart")?e=ht:this._menu.classList.contains("dropdown-menu-end")&&(e=ft),e},i._detectNavbar=function(){return Boolean(this._element.closest(".navbar"))},i._getOffset=function(){var t=this,e={};return"function"==typeof this._config.offset?e.fn=function(e){return e.offsets=s({},e.offsets,t._config.offset(e.offsets,t._element)||{}),e}:e.offset=this._config.offset,e},i._getPopperConfig=function(){var t={placement:this._getPlacement(),modifiers:{offset:this._getOffset(),flip:{enabled:this._config.flip},preventOverflow:{boundariesElement:this._config.boundary}}};return"static"===this._config.display&&(t.modifiers.applyStyle={enabled:!1}),s({},t,this._config.popperConfig)},e.dropdownInterface=function(t,n){var i=A(t,"bs.dropdown");if(i||(i=new e(t,"object"==typeof n?n:null)),"string"==typeof n){if(void 0===i[n])throw new TypeError('No method named "'+n+'"');i[n]()}},e.jQueryInterface=function(t){return this.each((function(){e.dropdownInterface(this,t)}))},e.clearMenus=function(t){if(!t||2!==t.button&&("keyup"!==t.type||"Tab"===t.key))for(var n=V.find('[data-bs-toggle="dropdown"]'),i=0,o=n.length;i<o;i++){var s=e.getParentFromElement(n[i]),r=A(n[i],"bs.dropdown"),a={relatedTarget:n[i]};if(t&&"click"===t.type&&(a.clickEvent=t),r){var l=r._menu;if(n[i].classList.contains("show"))if(!(t&&("click"===t.type&&/input|textarea/i.test(t.target.tagName)||"keyup"===t.type&&"Tab"===t.key)&&l.contains(t.target)))if(!Q.trigger(s,"hide.bs.dropdown",a).defaultPrevented){var c;if("ontouchstart"in document.documentElement)(c=[]).concat.apply(c,document.body.children).forEach((function(t){return Q.off(t,"mouseover",null,(function(){}))}));n[i].setAttribute("aria-expanded","false"),r._popper&&r._popper.destroy(),l.classList.remove("show"),n[i].classList.remove("show"),Q.trigger(s,"hidden.bs.dropdown",a)}}}},e.getParentFromElement=function(t){return d(t)||t.parentNode},e.dataApiKeydownHandler=function(t){if(!(/input|textarea/i.test(t.target.tagName)?"Space"===t.key||"Escape"!==t.key&&("ArrowDown"!==t.key&&"ArrowUp"!==t.key||t.target.closest(".dropdown-menu")):!at.test(t.key))&&(t.preventDefault(),t.stopPropagation(),!this.disabled&&!this.classList.contains("disabled"))){var n=e.getParentFromElement(this),i=this.classList.contains("show");if("Escape"===t.key)return(this.matches('[data-bs-toggle="dropdown"]')?this:V.prev(this,'[data-bs-toggle="dropdown"]')[0]).focus(),void e.clearMenus();if(i&&"Space"!==t.key){var o=V.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",n).filter(v);if(o.length){var s=o.indexOf(t.target);"ArrowUp"===t.key&&s>0&&s--,"ArrowDown"===t.key&&s<o.length-1&&s++,o[s=-1===s?0:s].focus()}}else e.clearMenus()}},o(e,null,[{key:"Default",get:function(){return gt}},{key:"DefaultType",get:function(){return pt}},{key:"DATA_KEY",get:function(){return"bs.dropdown"}}]),e}(U);Q.on(document,"keydown.bs.dropdown.data-api",'[data-bs-toggle="dropdown"]',mt.dataApiKeydownHandler),Q.on(document,"keydown.bs.dropdown.data-api",".dropdown-menu",mt.dataApiKeydownHandler),Q.on(document,"click.bs.dropdown.data-api",mt.clearMenus),Q.on(document,"keyup.bs.dropdown.data-api",mt.clearMenus),Q.on(document,"click.bs.dropdown.data-api",'[data-bs-toggle="dropdown"]',(function(t){t.preventDefault(),t.stopPropagation(),mt.dropdownInterface(this,"toggle")})),Q.on(document,"click.bs.dropdown.data-api",".dropdown form",(function(t){return t.stopPropagation()})),E((function(){var t=w();if(t){var e=t.fn[rt];t.fn[rt]=mt.jQueryInterface,t.fn[rt].Constructor=mt,t.fn[rt].noConflict=function(){return t.fn[rt]=e,mt.jQueryInterface}}}));var _t={backdrop:!0,keyboard:!0,focus:!0},vt={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean"},bt=function(t){function e(e,n){var i;return(i=t.call(this,e)||this)._config=i._getConfig(n),i._dialog=V.findOne(".modal-dialog",e),i._backdrop=null,i._isShown=!1,i._isBodyOverflowing=!1,i._ignoreBackdropClick=!1,i._isTransitioning=!1,i._scrollbarWidth=0,i}r(e,t);var n=e.prototype;return n.toggle=function(t){return this._isShown?this.hide():this.show(t)},n.show=function(t){var e=this;if(!this._isShown&&!this._isTransitioning){this._element.classList.contains("fade")&&(this._isTransitioning=!0);var n=Q.trigger(this._element,"show.bs.modal",{relatedTarget:t});this._isShown||n.defaultPrevented||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),this._adjustDialog(),this._setEscapeEvent(),this._setResizeEvent(),Q.on(this._element,"click.dismiss.bs.modal",'[data-bs-dismiss="modal"]',(function(t){return e.hide(t)})),Q.on(this._dialog,"mousedown.dismiss.bs.modal",(function(){Q.one(e._element,"mouseup.dismiss.bs.modal",(function(t){t.target===e._element&&(e._ignoreBackdropClick=!0)}))})),this._showBackdrop((function(){return e._showElement(t)})))}},n.hide=function(t){var e=this;if((t&&t.preventDefault(),this._isShown&&!this._isTransitioning)&&!Q.trigger(this._element,"hide.bs.modal").defaultPrevented){this._isShown=!1;var n=this._element.classList.contains("fade");if(n&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),Q.off(document,"focusin.bs.modal"),this._element.classList.remove("show"),Q.off(this._element,"click.dismiss.bs.modal"),Q.off(this._dialog,"mousedown.dismiss.bs.modal"),n){var i=h(this._element);Q.one(this._element,"transitionend",(function(t){return e._hideModal(t)})),m(this._element,i)}else this._hideModal()}},n.dispose=function(){[window,this._element,this._dialog].forEach((function(t){return Q.off(t,".bs.modal")})),t.prototype.dispose.call(this),Q.off(document,"focusin.bs.modal"),this._config=null,this._dialog=null,this._backdrop=null,this._isShown=null,this._isBodyOverflowing=null,this._ignoreBackdropClick=null,this._isTransitioning=null,this._scrollbarWidth=null},n.handleUpdate=function(){this._adjustDialog()},n._getConfig=function(t){return t=s({},_t,t),_("modal",t,vt),t},n._showElement=function(t){var e=this,n=this._element.classList.contains("fade"),i=V.findOne(".modal-body",this._dialog);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0,i&&(i.scrollTop=0),n&&y(this._element),this._element.classList.add("show"),this._config.focus&&this._enforceFocus();var o=function(){e._config.focus&&e._element.focus(),e._isTransitioning=!1,Q.trigger(e._element,"shown.bs.modal",{relatedTarget:t})};if(n){var s=h(this._dialog);Q.one(this._dialog,"transitionend",o),m(this._dialog,s)}else o()},n._enforceFocus=function(){var t=this;Q.off(document,"focusin.bs.modal"),Q.on(document,"focusin.bs.modal",(function(e){document===e.target||t._element===e.target||t._element.contains(e.target)||t._element.focus()}))},n._setEscapeEvent=function(){var t=this;this._isShown?Q.on(this._element,"keydown.dismiss.bs.modal",(function(e){t._config.keyboard&&"Escape"===e.key?(e.preventDefault(),t.hide()):t._config.keyboard||"Escape"!==e.key||t._triggerBackdropTransition()})):Q.off(this._element,"keydown.dismiss.bs.modal")},n._setResizeEvent=function(){var t=this;this._isShown?Q.on(window,"resize.bs.modal",(function(){return t._adjustDialog()})):Q.off(window,"resize.bs.modal")},n._hideModal=function(){var t=this;this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._showBackdrop((function(){document.body.classList.remove("modal-open"),t._resetAdjustments(),t._resetScrollbar(),Q.trigger(t._element,"hidden.bs.modal")}))},n._removeBackdrop=function(){this._backdrop.parentNode.removeChild(this._backdrop),this._backdrop=null},n._showBackdrop=function(t){var e=this,n=this._element.classList.contains("fade")?"fade":"";if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className="modal-backdrop",n&&this._backdrop.classList.add(n),document.body.appendChild(this._backdrop),Q.on(this._element,"click.dismiss.bs.modal",(function(t){e._ignoreBackdropClick?e._ignoreBackdropClick=!1:t.target===t.currentTarget&&("static"===e._config.backdrop?e._triggerBackdropTransition():e.hide())})),n&&y(this._backdrop),this._backdrop.classList.add("show"),!n)return void t();var i=h(this._backdrop);Q.one(this._backdrop,"transitionend",t),m(this._backdrop,i)}else if(!this._isShown&&this._backdrop){this._backdrop.classList.remove("show");var o=function(){e._removeBackdrop(),t()};if(this._element.classList.contains("fade")){var s=h(this._backdrop);Q.one(this._backdrop,"transitionend",o),m(this._backdrop,s)}else o()}else t()},n._triggerBackdropTransition=function(){var t=this;if(!Q.trigger(this._element,"hidePrevented.bs.modal").defaultPrevented){var e=this._element.scrollHeight>document.documentElement.clientHeight;e||(this._element.style.overflowY="hidden"),this._element.classList.add("modal-static");var n=h(this._dialog);Q.off(this._element,"transitionend"),Q.one(this._element,"transitionend",(function(){t._element.classList.remove("modal-static"),e||(Q.one(t._element,"transitionend",(function(){t._element.style.overflowY=""})),m(t._element,n))})),m(this._element,n),this._element.focus()}},n._adjustDialog=function(){var t=this._element.scrollHeight>document.documentElement.clientHeight;(!this._isBodyOverflowing&&t&&!T||this._isBodyOverflowing&&!t&&T)&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),(this._isBodyOverflowing&&!t&&!T||!this._isBodyOverflowing&&t&&T)&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},n._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},n._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=Math.round(t.left+t.right)<window.innerWidth,this._scrollbarWidth=this._getScrollbarWidth()},n._setScrollbar=function(){var t=this;if(this._isBodyOverflowing){V.find(".fixed-top, .fixed-bottom, .is-fixed, .sticky-top").forEach((function(e){var n=e.style.paddingRight,i=window.getComputedStyle(e)["padding-right"];q.setDataAttribute(e,"padding-right",n),e.style.paddingRight=Number.parseFloat(i)+t._scrollbarWidth+"px"})),V.find(".sticky-top").forEach((function(e){var n=e.style.marginRight,i=window.getComputedStyle(e)["margin-right"];q.setDataAttribute(e,"margin-right",n),e.style.marginRight=Number.parseFloat(i)-t._scrollbarWidth+"px"}));var e=document.body.style.paddingRight,n=window.getComputedStyle(document.body)["padding-right"];q.setDataAttribute(document.body,"padding-right",e),document.body.style.paddingRight=Number.parseFloat(n)+this._scrollbarWidth+"px"}document.body.classList.add("modal-open")},n._resetScrollbar=function(){V.find(".fixed-top, .fixed-bottom, .is-fixed, .sticky-top").forEach((function(t){var e=q.getDataAttribute(t,"padding-right");void 0!==e&&(q.removeDataAttribute(t,"padding-right"),t.style.paddingRight=e)})),V.find(".sticky-top").forEach((function(t){var e=q.getDataAttribute(t,"margin-right");void 0!==e&&(q.removeDataAttribute(t,"margin-right"),t.style.marginRight=e)}));var t=q.getDataAttribute(document.body,"padding-right");void 0===t?document.body.style.paddingRight="":(q.removeDataAttribute(document.body,"padding-right"),document.body.style.paddingRight=t)},n._getScrollbarWidth=function(){var t=document.createElement("div");t.className="modal-scrollbar-measure",document.body.appendChild(t);var e=t.getBoundingClientRect().width-t.clientWidth;return document.body.removeChild(t),e},e.jQueryInterface=function(t,n){return this.each((function(){var i=A(this,"bs.modal"),o=s({},_t,q.getDataAttributes(this),"object"==typeof t&&t?t:{});if(i||(i=new e(this,o)),"string"==typeof t){if(void 0===i[t])throw new TypeError('No method named "'+t+'"');i[t](n)}}))},o(e,null,[{key:"Default",get:function(){return _t}},{key:"DATA_KEY",get:function(){return"bs.modal"}}]),e}(U);Q.on(document,"click.bs.modal.data-api",'[data-bs-toggle="modal"]',(function(t){var e=this,n=d(this);"A"!==this.tagName&&"AREA"!==this.tagName||t.preventDefault(),Q.one(n,"show.bs.modal",(function(t){t.defaultPrevented||Q.one(n,"hidden.bs.modal",(function(){v(e)&&e.focus()}))}));var i=A(n,"bs.modal");if(!i){var o=s({},q.getDataAttributes(n),q.getDataAttributes(this));i=new bt(n,o)}i.show(this)})),E((function(){var t=w();if(t){var e=t.fn.modal;t.fn.modal=bt.jQueryInterface,t.fn.modal.Constructor=bt,t.fn.modal.noConflict=function(){return t.fn.modal=e,bt.jQueryInterface}}}));var yt=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),wt=/^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi,Et=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i,Tt={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]};function Lt(t,e,n){var i;if(!t.length)return t;if(n&&"function"==typeof n)return n(t);for(var o=(new window.DOMParser).parseFromString(t,"text/html"),s=Object.keys(e),r=(i=[]).concat.apply(i,o.body.querySelectorAll("*")),a=function(t,n){var i,o=r[t],a=o.nodeName.toLowerCase();if(!s.includes(a))return o.parentNode.removeChild(o),"continue";var l=(i=[]).concat.apply(i,o.attributes),c=[].concat(e["*"]||[],e[a]||[]);l.forEach((function(t){(function(t,e){var n=t.nodeName.toLowerCase();if(e.includes(n))return!yt.has(n)||Boolean(t.nodeValue.match(wt)||t.nodeValue.match(Et));for(var i=e.filter((function(t){return t instanceof RegExp})),o=0,s=i.length;o<s;o++)if(n.match(i[o]))return!0;return!1})(t,c)||o.removeAttribute(t.nodeName)}))},l=0,c=r.length;l<c;l++)a(l);return o.body.innerHTML}var kt="tooltip",At=new RegExp("(^|\\s)bs-tooltip\\S+","g"),Ct=new Set(["sanitize","allowList","sanitizeFn"]),Dt={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(number|string|function)",container:"(string|element|boolean)",fallbackPlacement:"(string|array)",boundary:"(string|element)",customClass:"(string|function)",sanitize:"boolean",sanitizeFn:"(null|function)",allowList:"object",popperConfig:"(null|object)"},St={AUTO:"auto",TOP:"top",RIGHT:T?"left":"right",BOTTOM:"bottom",LEFT:T?"right":"left"},Nt={animation:!0,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent",customClass:"",sanitize:!0,sanitizeFn:null,allowList:Tt,popperConfig:null},Ot={HIDE:"hide.bs.tooltip",HIDDEN:"hidden.bs.tooltip",SHOW:"show.bs.tooltip",SHOWN:"shown.bs.tooltip",INSERTED:"inserted.bs.tooltip",CLICK:"click.bs.tooltip",FOCUSIN:"focusin.bs.tooltip",FOCUSOUT:"focusout.bs.tooltip",MOUSEENTER:"mouseenter.bs.tooltip",MOUSELEAVE:"mouseleave.bs.tooltip"},It=function(t){function e(e,i){var o;if(void 0===n.default)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");return(o=t.call(this,e)||this)._isEnabled=!0,o._timeout=0,o._hoverState="",o._activeTrigger={},o._popper=null,o.config=o._getConfig(i),o.tip=null,o._setListeners(),o}r(e,t);var i=e.prototype;return i.enable=function(){this._isEnabled=!0},i.disable=function(){this._isEnabled=!1},i.toggleEnabled=function(){this._isEnabled=!this._isEnabled},i.toggle=function(t){if(this._isEnabled)if(t){var e=this.constructor.DATA_KEY,n=A(t.delegateTarget,e);n||(n=new this.constructor(t.delegateTarget,this._getDelegateConfig()),k(t.delegateTarget,e,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(this.getTipElement().classList.contains("show"))return void this._leave(null,this);this._enter(null,this)}},i.dispose=function(){clearTimeout(this._timeout),Q.off(this._element,this.constructor.EVENT_KEY),Q.off(this._element.closest(".modal"),"hide.bs.modal",this._hideModalHandler),this.tip&&this.tip.parentNode.removeChild(this.tip),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,this._popper&&this._popper.destroy(),this._popper=null,this.config=null,this.tip=null,t.prototype.dispose.call(this)},i.show=function(){var t=this;if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(this.isWithContent()&&this._isEnabled){var e=Q.trigger(this._element,this.constructor.Event.SHOW),i=function t(e){if(!document.documentElement.attachShadow)return null;if("function"==typeof e.getRootNode){var n=e.getRootNode();return n instanceof ShadowRoot?n:null}return e instanceof ShadowRoot?e:e.parentNode?t(e.parentNode):null}(this._element),o=null===i?this._element.ownerDocument.documentElement.contains(this._element):i.contains(this._element);if(e.defaultPrevented||!o)return;var s=this.getTipElement(),r=c(this.constructor.NAME);s.setAttribute("id",r),this._element.setAttribute("aria-describedby",r),this.setContent(),this.config.animation&&s.classList.add("fade");var a="function"==typeof this.config.placement?this.config.placement.call(this,s,this._element):this.config.placement,l=this._getAttachment(a);this._addAttachmentClass(l);var u=this._getContainer();k(s,this.constructor.DATA_KEY,this),this._element.ownerDocument.documentElement.contains(this.tip)||u.appendChild(s),Q.trigger(this._element,this.constructor.Event.INSERTED),this._popper=new n.default(this._element,s,this._getPopperConfig(l)),s.classList.add("show");var f,d,g="function"==typeof this.config.customClass?this.config.customClass():this.config.customClass;if(g)(f=s.classList).add.apply(f,g.split(" "));if("ontouchstart"in document.documentElement)(d=[]).concat.apply(d,document.body.children).forEach((function(t){Q.on(t,"mouseover",(function(){}))}));var p=function(){t.config.animation&&t._fixTransition();var e=t._hoverState;t._hoverState=null,Q.trigger(t._element,t.constructor.Event.SHOWN),"out"===e&&t._leave(null,t)};if(this.tip.classList.contains("fade")){var _=h(this.tip);Q.one(this.tip,"transitionend",p),m(this.tip,_)}else p()}},i.hide=function(){var t=this;if(this._popper){var e=this.getTipElement(),n=function(){"show"!==t._hoverState&&e.parentNode&&e.parentNode.removeChild(e),t._cleanTipClass(),t._element.removeAttribute("aria-describedby"),Q.trigger(t._element,t.constructor.Event.HIDDEN),t._popper.destroy()};if(!Q.trigger(this._element,this.constructor.Event.HIDE).defaultPrevented){var i;if(e.classList.remove("show"),"ontouchstart"in document.documentElement)(i=[]).concat.apply(i,document.body.children).forEach((function(t){return Q.off(t,"mouseover",b)}));if(this._activeTrigger.click=!1,this._activeTrigger.focus=!1,this._activeTrigger.hover=!1,this.tip.classList.contains("fade")){var o=h(e);Q.one(e,"transitionend",n),m(e,o)}else n();this._hoverState=""}}},i.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},i.isWithContent=function(){return Boolean(this.getTitle())},i.getTipElement=function(){if(this.tip)return this.tip;var t=document.createElement("div");return t.innerHTML=this.config.template,this.tip=t.children[0],this.tip},i.setContent=function(){var t=this.getTipElement();this.setElementContent(V.findOne(".tooltip-inner",t),this.getTitle()),t.classList.remove("fade","show")},i.setElementContent=function(t,e){if(null!==t)return"object"==typeof e&&p(e)?(e.jquery&&(e=e[0]),void(this.config.html?e.parentNode!==t&&(t.innerHTML="",t.appendChild(e)):t.textContent=e.textContent)):void(this.config.html?(this.config.sanitize&&(e=Lt(e,this.config.allowList,this.config.sanitizeFn)),t.innerHTML=e):t.textContent=e)},i.getTitle=function(){var t=this._element.getAttribute("data-bs-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this._element):this.config.title),t},i.updateAttachment=function(t){return"right"===t?"end":"left"===t?"start":t},i._getPopperConfig=function(t){var e=this;return s({},{placement:t,modifiers:{offset:this._getOffset(),flip:{behavior:this.config.fallbackPlacement},arrow:{element:"."+this.constructor.NAME+"-arrow"},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(t){t.originalPlacement!==t.placement&&e._handlePopperPlacementChange(t)},onUpdate:function(t){return e._handlePopperPlacementChange(t)}},this.config.popperConfig)},i._addAttachmentClass=function(t){this.getTipElement().classList.add("bs-tooltip-"+this.updateAttachment(t))},i._getOffset=function(){var t=this,e={};return"function"==typeof this.config.offset?e.fn=function(e){return e.offsets=s({},e.offsets,t.config.offset(e.offsets,t._element)||{}),e}:e.offset=this.config.offset,e},i._getContainer=function(){return!1===this.config.container?document.body:p(this.config.container)?this.config.container:V.findOne(this.config.container)},i._getAttachment=function(t){return St[t.toUpperCase()]},i._setListeners=function(){var t=this;this.config.trigger.split(" ").forEach((function(e){if("click"===e)Q.on(t._element,t.constructor.Event.CLICK,t.config.selector,(function(e){return t.toggle(e)}));else if("manual"!==e){var n="hover"===e?t.constructor.Event.MOUSEENTER:t.constructor.Event.FOCUSIN,i="hover"===e?t.constructor.Event.MOUSELEAVE:t.constructor.Event.FOCUSOUT;Q.on(t._element,n,t.config.selector,(function(e){return t._enter(e)})),Q.on(t._element,i,t.config.selector,(function(e){return t._leave(e)}))}})),this._hideModalHandler=function(){t._element&&t.hide()},Q.on(this._element.closest(".modal"),"hide.bs.modal",this._hideModalHandler),this.config.selector?this.config=s({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},i._fixTitle=function(){var t=this._element.getAttribute("title"),e=typeof this._element.getAttribute("data-bs-original-title");(t||"string"!==e)&&(this._element.setAttribute("data-bs-original-title",t||""),!t||this._element.getAttribute("aria-label")||this._element.textContent||this._element.setAttribute("aria-label",t),this._element.setAttribute("title",""))},i._enter=function(t,e){var n=this.constructor.DATA_KEY;(e=e||A(t.delegateTarget,n))||(e=new this.constructor(t.delegateTarget,this._getDelegateConfig()),k(t.delegateTarget,n,e)),t&&(e._activeTrigger["focusin"===t.type?"focus":"hover"]=!0),e.getTipElement().classList.contains("show")||"show"===e._hoverState?e._hoverState="show":(clearTimeout(e._timeout),e._hoverState="show",e.config.delay&&e.config.delay.show?e._timeout=setTimeout((function(){"show"===e._hoverState&&e.show()}),e.config.delay.show):e.show())},i._leave=function(t,e){var n=this.constructor.DATA_KEY;(e=e||A(t.delegateTarget,n))||(e=new this.constructor(t.delegateTarget,this._getDelegateConfig()),k(t.delegateTarget,n,e)),t&&(e._activeTrigger["focusout"===t.type?"focus":"hover"]=!1),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState="out",e.config.delay&&e.config.delay.hide?e._timeout=setTimeout((function(){"out"===e._hoverState&&e.hide()}),e.config.delay.hide):e.hide())},i._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},i._getConfig=function(t){var e=q.getDataAttributes(this._element);return Object.keys(e).forEach((function(t){Ct.has(t)&&delete e[t]})),t&&"object"==typeof t.container&&t.container.jquery&&(t.container=t.container[0]),"number"==typeof(t=s({},this.constructor.Default,e,"object"==typeof t&&t?t:{})).delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),_(kt,t,this.constructor.DefaultType),t.sanitize&&(t.template=Lt(t.template,t.allowList,t.sanitizeFn)),t},i._getDelegateConfig=function(){var t={};if(this.config)for(var e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t},i._cleanTipClass=function(){var t=this.getTipElement(),e=t.getAttribute("class").match(At);null!==e&&e.length>0&&e.map((function(t){return t.trim()})).forEach((function(e){return t.classList.remove(e)}))},i._handlePopperPlacementChange=function(t){this.tip=t.instance.popper,this._cleanTipClass(),this._addAttachmentClass(this._getAttachment(t.placement))},i._fixTransition=function(){var t=this.getTipElement(),e=this.config.animation;null===t.getAttribute("x-placement")&&(t.classList.remove("fade"),this.config.animation=!1,this.hide(),this.show(),this.config.animation=e)},e.jQueryInterface=function(t){return this.each((function(){var n=A(this,"bs.tooltip"),i="object"==typeof t&&t;if((n||!/dispose|hide/.test(t))&&(n||(n=new e(this,i)),"string"==typeof t)){if(void 0===n[t])throw new TypeError('No method named "'+t+'"');n[t]()}}))},o(e,null,[{key:"Default",get:function(){return Nt}},{key:"NAME",get:function(){return kt}},{key:"DATA_KEY",get:function(){return"bs.tooltip"}},{key:"Event",get:function(){return Ot}},{key:"EVENT_KEY",get:function(){return".bs.tooltip"}},{key:"DefaultType",get:function(){return Dt}}]),e}(U);E((function(){var t=w();if(t){var e=t.fn[kt];t.fn[kt]=It.jQueryInterface,t.fn[kt].Constructor=It,t.fn[kt].noConflict=function(){return t.fn[kt]=e,It.jQueryInterface}}}));var jt="popover",xt=new RegExp("(^|\\s)bs-popover\\S+","g"),Pt=s({},It.Default,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="popover-arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'}),Ht=s({},It.DefaultType,{content:"(string|element|function)"}),Mt={HIDE:"hide.bs.popover",HIDDEN:"hidden.bs.popover",SHOW:"show.bs.popover",SHOWN:"shown.bs.popover",INSERTED:"inserted.bs.popover",CLICK:"click.bs.popover",FOCUSIN:"focusin.bs.popover",FOCUSOUT:"focusout.bs.popover",MOUSEENTER:"mouseenter.bs.popover",MOUSELEAVE:"mouseleave.bs.popover"},Bt=function(t){function e(){return t.apply(this,arguments)||this}r(e,t);var n=e.prototype;return n.isWithContent=function(){return this.getTitle()||this._getContent()},n.setContent=function(){var t=this.getTipElement();this.setElementContent(V.findOne(".popover-header",t),this.getTitle());var e=this._getContent();"function"==typeof e&&(e=e.call(this._element)),this.setElementContent(V.findOne(".popover-body",t),e),t.classList.remove("fade","show")},n._addAttachmentClass=function(t){this.getTipElement().classList.add("bs-popover-"+this.updateAttachment(t))},n._getContent=function(){return this._element.getAttribute("data-bs-content")||this.config.content},n._cleanTipClass=function(){var t=this.getTipElement(),e=t.getAttribute("class").match(xt);null!==e&&e.length>0&&e.map((function(t){return t.trim()})).forEach((function(e){return t.classList.remove(e)}))},e.jQueryInterface=function(t){return this.each((function(){var n=A(this,"bs.popover"),i="object"==typeof t?t:null;if((n||!/dispose|hide/.test(t))&&(n||(n=new e(this,i),k(this,"bs.popover",n)),"string"==typeof t)){if(void 0===n[t])throw new TypeError('No method named "'+t+'"');n[t]()}}))},o(e,null,[{key:"Default",get:function(){return Pt}},{key:"NAME",get:function(){return jt}},{key:"DATA_KEY",get:function(){return"bs.popover"}},{key:"Event",get:function(){return Mt}},{key:"EVENT_KEY",get:function(){return".bs.popover"}},{key:"DefaultType",get:function(){return Ht}}]),e}(It);E((function(){var t=w();if(t){var e=t.fn[jt];t.fn[jt]=Bt.jQueryInterface,t.fn[jt].Constructor=Bt,t.fn[jt].noConflict=function(){return t.fn[jt]=e,Bt.jQueryInterface}}}));var Rt="scrollspy",Kt={offset:10,method:"auto",target:""},Qt={offset:"number",method:"string",target:"(string|element)"},Ut=function(t){function e(e,n){var i;return(i=t.call(this,e)||this)._scrollElement="BODY"===e.tagName?window:e,i._config=i._getConfig(n),i._selector=i._config.target+" .nav-link, "+i._config.target+" .list-group-item, "+i._config.target+" .dropdown-item",i._offsets=[],i._targets=[],i._activeTarget=null,i._scrollHeight=0,Q.on(i._scrollElement,"scroll.bs.scrollspy",(function(t){return i._process(t)})),i.refresh(),i._process(),i}r(e,t);var n=e.prototype;return n.refresh=function(){var t=this,e=this._scrollElement===this._scrollElement.window?"offset":"position",n="auto"===this._config.method?e:this._config.method,i="position"===n?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),V.find(this._selector).map((function(t){var e=f(t),o=e?V.findOne(e):null;if(o){var s=o.getBoundingClientRect();if(s.width||s.height)return[q[n](o).top+i,e]}return null})).filter((function(t){return t})).sort((function(t,e){return t[0]-e[0]})).forEach((function(e){t._offsets.push(e[0]),t._targets.push(e[1])}))},n.dispose=function(){t.prototype.dispose.call(this),Q.off(this._scrollElement,".bs.scrollspy"),this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},n._getConfig=function(t){if("string"!=typeof(t=s({},Kt,"object"==typeof t&&t?t:{})).target&&p(t.target)){var e=t.target.id;e||(e=c(Rt),t.target.id=e),t.target="#"+e}return _(Rt,t,Qt),t},n._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},n._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},n._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},n._process=function(){var t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),n=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),t>=n){var i=this._targets[this._targets.length-1];this._activeTarget!==i&&this._activate(i)}else{if(this._activeTarget&&t<this._offsets[0]&&this._offsets[0]>0)return this._activeTarget=null,void this._clear();for(var o=this._offsets.length;o--;){this._activeTarget!==this._targets[o]&&t>=this._offsets[o]&&(void 0===this._offsets[o+1]||t<this._offsets[o+1])&&this._activate(this._targets[o])}}},n._activate=function(t){this._activeTarget=t,this._clear();var e=this._selector.split(",").map((function(e){return e+'[data-bs-target="'+t+'"],'+e+'[href="'+t+'"]'})),n=V.findOne(e.join(","));n.classList.contains("dropdown-item")?(V.findOne(".dropdown-toggle",n.closest(".dropdown")).classList.add("active"),n.classList.add("active")):(n.classList.add("active"),V.parents(n,".nav, .list-group").forEach((function(t){V.prev(t,".nav-link, .list-group-item").forEach((function(t){return t.classList.add("active")})),V.prev(t,".nav-item").forEach((function(t){V.children(t,".nav-link").forEach((function(t){return t.classList.add("active")}))}))}))),Q.trigger(this._scrollElement,"activate.bs.scrollspy",{relatedTarget:t})},n._clear=function(){V.find(this._selector).filter((function(t){return t.classList.contains("active")})).forEach((function(t){return t.classList.remove("active")}))},e.jQueryInterface=function(t){return this.each((function(){var n=A(this,"bs.scrollspy");if(n||(n=new e(this,"object"==typeof t&&t)),"string"==typeof t){if(void 0===n[t])throw new TypeError('No method named "'+t+'"');n[t]()}}))},o(e,null,[{key:"Default",get:function(){return Kt}},{key:"DATA_KEY",get:function(){return"bs.scrollspy"}}]),e}(U);Q.on(window,"load.bs.scrollspy.data-api",(function(){V.find('[data-bs-spy="scroll"]').forEach((function(t){return new Ut(t,q.getDataAttributes(t))}))})),E((function(){var t=w();if(t){var e=t.fn[Rt];t.fn[Rt]=Ut.jQueryInterface,t.fn[Rt].Constructor=Ut,t.fn[Rt].noConflict=function(){return t.fn[Rt]=e,Ut.jQueryInterface}}}));var Wt=function(t){function e(){return t.apply(this,arguments)||this}r(e,t);var n=e.prototype;return n.show=function(){var t=this;if(!(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&this._element.classList.contains("active")||this._element.classList.contains("disabled"))){var e,n=d(this._element),i=this._element.closest(".nav, .list-group");if(i){var o="UL"===i.nodeName||"OL"===i.nodeName?":scope > li > .active":".active";e=(e=V.find(o,i))[e.length-1]}var s=null;if(e&&(s=Q.trigger(e,"hide.bs.tab",{relatedTarget:this._element})),!(Q.trigger(this._element,"show.bs.tab",{relatedTarget:e}).defaultPrevented||null!==s&&s.defaultPrevented)){this._activate(this._element,i);var r=function(){Q.trigger(e,"hidden.bs.tab",{relatedTarget:t._element}),Q.trigger(t._element,"shown.bs.tab",{relatedTarget:e})};n?this._activate(n,n.parentNode,r):r()}}},n._activate=function(t,e,n){var i=this,o=(!e||"UL"!==e.nodeName&&"OL"!==e.nodeName?V.children(e,".active"):V.find(":scope > li > .active",e))[0],s=n&&o&&o.classList.contains("fade"),r=function(){return i._transitionComplete(t,o,n)};if(o&&s){var a=h(o);o.classList.remove("show"),Q.one(o,"transitionend",r),m(o,a)}else r()},n._transitionComplete=function(t,e,n){if(e){e.classList.remove("active");var i=V.findOne(":scope > .dropdown-menu .active",e.parentNode);i&&i.classList.remove("active"),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!1)}(t.classList.add("active"),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),y(t),t.classList.contains("fade")&&t.classList.add("show"),t.parentNode&&t.parentNode.classList.contains("dropdown-menu"))&&(t.closest(".dropdown")&&V.find(".dropdown-toggle").forEach((function(t){return t.classList.add("active")})),t.setAttribute("aria-expanded",!0));n&&n()},e.jQueryInterface=function(t){return this.each((function(){var n=A(this,"bs.tab")||new e(this);if("string"==typeof t){if(void 0===n[t])throw new TypeError('No method named "'+t+'"');n[t]()}}))},o(e,null,[{key:"DATA_KEY",get:function(){return"bs.tab"}}]),e}(U);Q.on(document,"click.bs.tab.data-api",'[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',(function(t){t.preventDefault(),(A(this,"bs.tab")||new Wt(this)).show()})),E((function(){var t=w();if(t){var e=t.fn.tab;t.fn.tab=Wt.jQueryInterface,t.fn.tab.Constructor=Wt,t.fn.tab.noConflict=function(){return t.fn.tab=e,Wt.jQueryInterface}}}));var Ft={animation:"boolean",autohide:"boolean",delay:"number"},Yt={animation:!0,autohide:!0,delay:5e3},zt=function(t){function e(e,n){var i;return(i=t.call(this,e)||this)._config=i._getConfig(n),i._timeout=null,i._setListeners(),i}r(e,t);var n=e.prototype;return n.show=function(){var t=this;if(!Q.trigger(this._element,"show.bs.toast").defaultPrevented){this._clearTimeout(),this._config.animation&&this._element.classList.add("fade");var e=function(){t._element.classList.remove("showing"),t._element.classList.add("show"),Q.trigger(t._element,"shown.bs.toast"),t._config.autohide&&(t._timeout=setTimeout((function(){t.hide()}),t._config.delay))};if(this._element.classList.remove("hide"),y(this._element),this._element.classList.add("showing"),this._config.animation){var n=h(this._element);Q.one(this._element,"transitionend",e),m(this._element,n)}else e()}},n.hide=function(){var t=this;if(this._element.classList.contains("show")&&!Q.trigger(this._element,"hide.bs.toast").defaultPrevented){var e=function(){t._element.classList.add("hide"),Q.trigger(t._element,"hidden.bs.toast")};if(this._element.classList.remove("show"),this._config.animation){var n=h(this._element);Q.one(this._element,"transitionend",e),m(this._element,n)}else e()}},n.dispose=function(){this._clearTimeout(),this._element.classList.contains("show")&&this._element.classList.remove("show"),Q.off(this._element,"click.dismiss.bs.toast"),t.prototype.dispose.call(this),this._config=null},n._getConfig=function(t){return t=s({},Yt,q.getDataAttributes(this._element),"object"==typeof t&&t?t:{}),_("toast",t,this.constructor.DefaultType),t},n._setListeners=function(){var t=this;Q.on(this._element,"click.dismiss.bs.toast",'[data-bs-dismiss="toast"]',(function(){return t.hide()}))},n._clearTimeout=function(){clearTimeout(this._timeout),this._timeout=null},e.jQueryInterface=function(t){return this.each((function(){var n=A(this,"bs.toast");if(n||(n=new e(this,"object"==typeof t&&t)),"string"==typeof t){if(void 0===n[t])throw new TypeError('No method named "'+t+'"');n[t](this)}}))},o(e,null,[{key:"DefaultType",get:function(){return Ft}},{key:"Default",get:function(){return Yt}},{key:"DATA_KEY",get:function(){return"bs.toast"}}]),e}(U);return E((function(){var t=w();if(t){var e=t.fn.toast;t.fn.toast=zt.jQueryInterface,t.fn.toast.Constructor=zt,t.fn.toast.noConflict=function(){return t.fn.toast=e,zt.jQueryInterface}}})),{Alert:F,Button:Y,Carousel:et,Collapse:st,Dropdown:mt,Modal:bt,Popover:Bt,ScrollSpy:Ut,Tab:Wt,Toast:zt,Tooltip:It}})); +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("@popperjs/core")):"function"==typeof define&&define.amd?define(["@popperjs/core"],e):(t="undefined"!=typeof globalThis?globalThis:t||self).bootstrap=e(t.Popper)}(this,(function(t){"use strict";function e(t){if(t&&t.__esModule)return t;var e=Object.create(null);return t&&Object.keys(t).forEach((function(s){if("default"!==s){var i=Object.getOwnPropertyDescriptor(t,s);Object.defineProperty(e,s,i.get?i:{enumerable:!0,get:function(){return t[s]}})}})),e.default=t,Object.freeze(e)}var s=e(t);const i=t=>{do{t+=Math.floor(1e6*Math.random())}while(document.getElementById(t));return t},n=t=>{let e=t.getAttribute("data-bs-target");if(!e||"#"===e){let s=t.getAttribute("href");if(!s||!s.includes("#")&&!s.startsWith("."))return null;s.includes("#")&&!s.startsWith("#")&&(s="#"+s.split("#")[1]),e=s&&"#"!==s?s.trim():null}return e},o=t=>{const e=n(t);return e&&document.querySelector(e)?e:null},r=t=>{const e=n(t);return e?document.querySelector(e):null},a=t=>{if(!t)return 0;let{transitionDuration:e,transitionDelay:s}=window.getComputedStyle(t);const i=Number.parseFloat(e),n=Number.parseFloat(s);return i||n?(e=e.split(",")[0],s=s.split(",")[0],1e3*(Number.parseFloat(e)+Number.parseFloat(s))):0},l=t=>{t.dispatchEvent(new Event("transitionend"))},c=t=>(t[0]||t).nodeType,h=(t,e)=>{let s=!1;const i=e+5;t.addEventListener("transitionend",(function e(){s=!0,t.removeEventListener("transitionend",e)})),setTimeout(()=>{s||l(t)},i)},d=(t,e,s)=>{Object.keys(s).forEach(i=>{const n=s[i],o=e[i],r=o&&c(o)?"element":null==(a=o)?""+a:{}.toString.call(a).match(/\s([a-z]+)/i)[1].toLowerCase();var a;if(!new RegExp(n).test(r))throw new TypeError(t.toUpperCase()+": "+`Option "${i}" provided type "${r}" `+`but expected type "${n}".`)})},u=t=>{if(!t)return!1;if(t.style&&t.parentNode&&t.parentNode.style){const e=getComputedStyle(t),s=getComputedStyle(t.parentNode);return"none"!==e.display&&"none"!==s.display&&"hidden"!==e.visibility}return!1},g=t=>!t||t.nodeType!==Node.ELEMENT_NODE||!!t.classList.contains("disabled")||(void 0!==t.disabled?t.disabled:t.hasAttribute("disabled")&&"false"!==t.getAttribute("disabled")),f=t=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof t.getRootNode){const e=t.getRootNode();return e instanceof ShadowRoot?e:null}return t instanceof ShadowRoot?t:t.parentNode?f(t.parentNode):null},p=()=>function(){},m=t=>t.offsetHeight,_=()=>{const{jQuery:t}=window;return t&&!document.body.hasAttribute("data-bs-no-jquery")?t:null},b=()=>"rtl"===document.documentElement.dir,v=(t,e)=>{var s;s=()=>{const s=_();if(s){const i=s.fn[t];s.fn[t]=e.jQueryInterface,s.fn[t].Constructor=e,s.fn[t].noConflict=()=>(s.fn[t]=i,e.jQueryInterface)}},"loading"===document.readyState?document.addEventListener("DOMContentLoaded",s):s()},y=new Map;var w={set(t,e,s){y.has(t)||y.set(t,new Map);const i=y.get(t);i.has(e)||0===i.size?i.set(e,s):console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(i.keys())[0]}.`)},get:(t,e)=>y.has(t)&&y.get(t).get(e)||null,remove(t,e){if(!y.has(t))return;const s=y.get(t);s.delete(e),0===s.size&&y.delete(t)}};const E=/[^.]*(?=\..*)\.|.*/,T=/\..*/,A=/::\d+$/,L={};let k=1;const C={mouseenter:"mouseover",mouseleave:"mouseout"},D=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function S(t,e){return e&&`${e}::${k++}`||t.uidEvent||k++}function N(t){const e=S(t);return t.uidEvent=e,L[e]=L[e]||{},L[e]}function O(t,e,s=null){const i=Object.keys(t);for(let n=0,o=i.length;n<o;n++){const o=t[i[n]];if(o.originalHandler===e&&o.delegationSelector===s)return o}return null}function x(t,e,s){const i="string"==typeof e,n=i?s:e;let o=t.replace(T,"");const r=C[o];return r&&(o=r),D.has(o)||(o=t),[i,n,o]}function I(t,e,s,i,n){if("string"!=typeof e||!t)return;s||(s=i,i=null);const[o,r,a]=x(e,s,i),l=N(t),c=l[a]||(l[a]={}),h=O(c,r,o?s:null);if(h)return void(h.oneOff=h.oneOff&&n);const d=S(r,e.replace(E,"")),u=o?function(t,e,s){return function i(n){const o=t.querySelectorAll(e);for(let{target:e}=n;e&&e!==this;e=e.parentNode)for(let r=o.length;r--;)if(o[r]===e)return n.delegateTarget=e,i.oneOff&&P.off(t,n.type,s),s.apply(e,[n]);return null}}(t,s,i):function(t,e){return function s(i){return i.delegateTarget=t,s.oneOff&&P.off(t,i.type,e),e.apply(t,[i])}}(t,s);u.delegationSelector=o?s:null,u.originalHandler=r,u.oneOff=n,u.uidEvent=d,c[d]=u,t.addEventListener(a,u,o)}function j(t,e,s,i,n){const o=O(e[s],i,n);o&&(t.removeEventListener(s,o,Boolean(n)),delete e[s][o.uidEvent])}const P={on(t,e,s,i){I(t,e,s,i,!1)},one(t,e,s,i){I(t,e,s,i,!0)},off(t,e,s,i){if("string"!=typeof e||!t)return;const[n,o,r]=x(e,s,i),a=r!==e,l=N(t),c=e.startsWith(".");if(void 0!==o){if(!l||!l[r])return;return void j(t,l,r,o,n?s:null)}c&&Object.keys(l).forEach(s=>{!function(t,e,s,i){const n=e[s]||{};Object.keys(n).forEach(o=>{if(o.includes(i)){const i=n[o];j(t,e,s,i.originalHandler,i.delegationSelector)}})}(t,l,s,e.slice(1))});const h=l[r]||{};Object.keys(h).forEach(s=>{const i=s.replace(A,"");if(!a||e.includes(i)){const e=h[s];j(t,l,r,e.originalHandler,e.delegationSelector)}})},trigger(t,e,s){if("string"!=typeof e||!t)return null;const i=_(),n=e.replace(T,""),o=e!==n,r=D.has(n);let a,l=!0,c=!0,h=!1,d=null;return o&&i&&(a=i.Event(e,s),i(t).trigger(a),l=!a.isPropagationStopped(),c=!a.isImmediatePropagationStopped(),h=a.isDefaultPrevented()),r?(d=document.createEvent("HTMLEvents"),d.initEvent(n,l,!0)):d=new CustomEvent(e,{bubbles:l,cancelable:!0}),void 0!==s&&Object.keys(s).forEach(t=>{Object.defineProperty(d,t,{get:()=>s[t]})}),h&&d.preventDefault(),c&&t.dispatchEvent(d),d.defaultPrevented&&void 0!==a&&a.preventDefault(),d}};class M{constructor(t){(t="string"==typeof t?document.querySelector(t):t)&&(this._element=t,w.set(this._element,this.constructor.DATA_KEY,this))}dispose(){w.remove(this._element,this.constructor.DATA_KEY),this._element=null}static getInstance(t){return w.get(t,this.DATA_KEY)}static get VERSION(){return"5.0.0-beta3"}}class H extends M{static get DATA_KEY(){return"bs.alert"}close(t){const e=t?this._getRootElement(t):this._element,s=this._triggerCloseEvent(e);null===s||s.defaultPrevented||this._removeElement(e)}_getRootElement(t){return r(t)||t.closest(".alert")}_triggerCloseEvent(t){return P.trigger(t,"close.bs.alert")}_removeElement(t){if(t.classList.remove("show"),!t.classList.contains("fade"))return void this._destroyElement(t);const e=a(t);P.one(t,"transitionend",()=>this._destroyElement(t)),h(t,e)}_destroyElement(t){t.parentNode&&t.parentNode.removeChild(t),P.trigger(t,"closed.bs.alert")}static jQueryInterface(t){return this.each((function(){let e=w.get(this,"bs.alert");e||(e=new H(this)),"close"===t&&e[t](this)}))}static handleDismiss(t){return function(e){e&&e.preventDefault(),t.close(this)}}}P.on(document,"click.bs.alert.data-api",'[data-bs-dismiss="alert"]',H.handleDismiss(new H)),v("alert",H);class R extends M{static get DATA_KEY(){return"bs.button"}toggle(){this._element.setAttribute("aria-pressed",this._element.classList.toggle("active"))}static jQueryInterface(t){return this.each((function(){let e=w.get(this,"bs.button");e||(e=new R(this)),"toggle"===t&&e[t]()}))}}function B(t){return"true"===t||"false"!==t&&(t===Number(t).toString()?Number(t):""===t||"null"===t?null:t)}function W(t){return t.replace(/[A-Z]/g,t=>"-"+t.toLowerCase())}P.on(document,"click.bs.button.data-api",'[data-bs-toggle="button"]',t=>{t.preventDefault();const e=t.target.closest('[data-bs-toggle="button"]');let s=w.get(e,"bs.button");s||(s=new R(e)),s.toggle()}),v("button",R);const $={setDataAttribute(t,e,s){t.setAttribute("data-bs-"+W(e),s)},removeDataAttribute(t,e){t.removeAttribute("data-bs-"+W(e))},getDataAttributes(t){if(!t)return{};const e={};return Object.keys(t.dataset).filter(t=>t.startsWith("bs")).forEach(s=>{let i=s.replace(/^bs/,"");i=i.charAt(0).toLowerCase()+i.slice(1,i.length),e[i]=B(t.dataset[s])}),e},getDataAttribute:(t,e)=>B(t.getAttribute("data-bs-"+W(e))),offset(t){const e=t.getBoundingClientRect();return{top:e.top+document.body.scrollTop,left:e.left+document.body.scrollLeft}},position:t=>({top:t.offsetTop,left:t.offsetLeft})},U={find:(t,e=document.documentElement)=>[].concat(...Element.prototype.querySelectorAll.call(e,t)),findOne:(t,e=document.documentElement)=>Element.prototype.querySelector.call(e,t),children:(t,e)=>[].concat(...t.children).filter(t=>t.matches(e)),parents(t,e){const s=[];let i=t.parentNode;for(;i&&i.nodeType===Node.ELEMENT_NODE&&3!==i.nodeType;)i.matches(e)&&s.push(i),i=i.parentNode;return s},prev(t,e){let s=t.previousElementSibling;for(;s;){if(s.matches(e))return[s];s=s.previousElementSibling}return[]},next(t,e){let s=t.nextElementSibling;for(;s;){if(s.matches(e))return[s];s=s.nextElementSibling}return[]}},F={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},K={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},z="next",Y="prev",q="left",Q="right";class X extends M{constructor(t,e){super(t),this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this.touchStartX=0,this.touchDeltaX=0,this._config=this._getConfig(e),this._indicatorsElement=U.findOne(".carousel-indicators",this._element),this._touchSupported="ontouchstart"in document.documentElement||navigator.maxTouchPoints>0,this._pointerEvent=Boolean(window.PointerEvent),this._addEventListeners()}static get Default(){return F}static get DATA_KEY(){return"bs.carousel"}next(){this._isSliding||this._slide(z)}nextWhenVisible(){!document.hidden&&u(this._element)&&this.next()}prev(){this._isSliding||this._slide(Y)}pause(t){t||(this._isPaused=!0),U.findOne(".carousel-item-next, .carousel-item-prev",this._element)&&(l(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null}cycle(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config&&this._config.interval&&!this._isPaused&&(this._updateInterval(),this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))}to(t){this._activeElement=U.findOne(".active.carousel-item",this._element);const e=this._getItemIndex(this._activeElement);if(t>this._items.length-1||t<0)return;if(this._isSliding)return void P.one(this._element,"slid.bs.carousel",()=>this.to(t));if(e===t)return this.pause(),void this.cycle();const s=t>e?z:Y;this._slide(s,this._items[t])}dispose(){P.off(this._element,".bs.carousel"),this._items=null,this._config=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null,super.dispose()}_getConfig(t){return t={...F,...t},d("carousel",t,K),t}_handleSwipe(){const t=Math.abs(this.touchDeltaX);if(t<=40)return;const e=t/this.touchDeltaX;this.touchDeltaX=0,e&&this._slide(e>0?Q:q)}_addEventListeners(){this._config.keyboard&&P.on(this._element,"keydown.bs.carousel",t=>this._keydown(t)),"hover"===this._config.pause&&(P.on(this._element,"mouseenter.bs.carousel",t=>this.pause(t)),P.on(this._element,"mouseleave.bs.carousel",t=>this.cycle(t))),this._config.touch&&this._touchSupported&&this._addTouchEventListeners()}_addTouchEventListeners(){const t=t=>{!this._pointerEvent||"pen"!==t.pointerType&&"touch"!==t.pointerType?this._pointerEvent||(this.touchStartX=t.touches[0].clientX):this.touchStartX=t.clientX},e=t=>{this.touchDeltaX=t.touches&&t.touches.length>1?0:t.touches[0].clientX-this.touchStartX},s=t=>{!this._pointerEvent||"pen"!==t.pointerType&&"touch"!==t.pointerType||(this.touchDeltaX=t.clientX-this.touchStartX),this._handleSwipe(),"hover"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout(t=>this.cycle(t),500+this._config.interval))};U.find(".carousel-item img",this._element).forEach(t=>{P.on(t,"dragstart.bs.carousel",t=>t.preventDefault())}),this._pointerEvent?(P.on(this._element,"pointerdown.bs.carousel",e=>t(e)),P.on(this._element,"pointerup.bs.carousel",t=>s(t)),this._element.classList.add("pointer-event")):(P.on(this._element,"touchstart.bs.carousel",e=>t(e)),P.on(this._element,"touchmove.bs.carousel",t=>e(t)),P.on(this._element,"touchend.bs.carousel",t=>s(t)))}_keydown(t){/input|textarea/i.test(t.target.tagName)||("ArrowLeft"===t.key?(t.preventDefault(),this._slide(q)):"ArrowRight"===t.key&&(t.preventDefault(),this._slide(Q)))}_getItemIndex(t){return this._items=t&&t.parentNode?U.find(".carousel-item",t.parentNode):[],this._items.indexOf(t)}_getItemByOrder(t,e){const s=t===z,i=t===Y,n=this._getItemIndex(e),o=this._items.length-1;if((i&&0===n||s&&n===o)&&!this._config.wrap)return e;const r=(n+(i?-1:1))%this._items.length;return-1===r?this._items[this._items.length-1]:this._items[r]}_triggerSlideEvent(t,e){const s=this._getItemIndex(t),i=this._getItemIndex(U.findOne(".active.carousel-item",this._element));return P.trigger(this._element,"slide.bs.carousel",{relatedTarget:t,direction:e,from:i,to:s})}_setActiveIndicatorElement(t){if(this._indicatorsElement){const e=U.findOne(".active",this._indicatorsElement);e.classList.remove("active"),e.removeAttribute("aria-current");const s=U.find("[data-bs-target]",this._indicatorsElement);for(let e=0;e<s.length;e++)if(Number.parseInt(s[e].getAttribute("data-bs-slide-to"),10)===this._getItemIndex(t)){s[e].classList.add("active"),s[e].setAttribute("aria-current","true");break}}}_updateInterval(){const t=this._activeElement||U.findOne(".active.carousel-item",this._element);if(!t)return;const e=Number.parseInt(t.getAttribute("data-bs-interval"),10);e?(this._config.defaultInterval=this._config.defaultInterval||this._config.interval,this._config.interval=e):this._config.interval=this._config.defaultInterval||this._config.interval}_slide(t,e){const s=this._directionToOrder(t),i=U.findOne(".active.carousel-item",this._element),n=this._getItemIndex(i),o=e||this._getItemByOrder(s,i),r=this._getItemIndex(o),l=Boolean(this._interval),c=s===z,d=c?"carousel-item-start":"carousel-item-end",u=c?"carousel-item-next":"carousel-item-prev",g=this._orderToDirection(s);if(o&&o.classList.contains("active"))this._isSliding=!1;else if(!this._triggerSlideEvent(o,g).defaultPrevented&&i&&o){if(this._isSliding=!0,l&&this.pause(),this._setActiveIndicatorElement(o),this._activeElement=o,this._element.classList.contains("slide")){o.classList.add(u),m(o),i.classList.add(d),o.classList.add(d);const t=a(i);P.one(i,"transitionend",()=>{o.classList.remove(d,u),o.classList.add("active"),i.classList.remove("active",u,d),this._isSliding=!1,setTimeout(()=>{P.trigger(this._element,"slid.bs.carousel",{relatedTarget:o,direction:g,from:n,to:r})},0)}),h(i,t)}else i.classList.remove("active"),o.classList.add("active"),this._isSliding=!1,P.trigger(this._element,"slid.bs.carousel",{relatedTarget:o,direction:g,from:n,to:r});l&&this.cycle()}}_directionToOrder(t){return[Q,q].includes(t)?b()?t===Q?Y:z:t===Q?z:Y:t}_orderToDirection(t){return[z,Y].includes(t)?b()?t===z?q:Q:t===z?Q:q:t}static carouselInterface(t,e){let s=w.get(t,"bs.carousel"),i={...F,...$.getDataAttributes(t)};"object"==typeof e&&(i={...i,...e});const n="string"==typeof e?e:i.slide;if(s||(s=new X(t,i)),"number"==typeof e)s.to(e);else if("string"==typeof n){if(void 0===s[n])throw new TypeError(`No method named "${n}"`);s[n]()}else i.interval&&i.ride&&(s.pause(),s.cycle())}static jQueryInterface(t){return this.each((function(){X.carouselInterface(this,t)}))}static dataApiClickHandler(t){const e=r(this);if(!e||!e.classList.contains("carousel"))return;const s={...$.getDataAttributes(e),...$.getDataAttributes(this)},i=this.getAttribute("data-bs-slide-to");i&&(s.interval=!1),X.carouselInterface(e,s),i&&w.get(e,"bs.carousel").to(i),t.preventDefault()}}P.on(document,"click.bs.carousel.data-api","[data-bs-slide], [data-bs-slide-to]",X.dataApiClickHandler),P.on(window,"load.bs.carousel.data-api",()=>{const t=U.find('[data-bs-ride="carousel"]');for(let e=0,s=t.length;e<s;e++)X.carouselInterface(t[e],w.get(t[e],"bs.carousel"))}),v("carousel",X);const V={toggle:!0,parent:""},G={toggle:"boolean",parent:"(string|element)"};class Z extends M{constructor(t,e){super(t),this._isTransitioning=!1,this._config=this._getConfig(e),this._triggerArray=U.find(`[data-bs-toggle="collapse"][href="#${this._element.id}"],[data-bs-toggle="collapse"][data-bs-target="#${this._element.id}"]`);const s=U.find('[data-bs-toggle="collapse"]');for(let t=0,e=s.length;t<e;t++){const e=s[t],i=o(e),n=U.find(i).filter(t=>t===this._element);null!==i&&n.length&&(this._selector=i,this._triggerArray.push(e))}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle()}static get Default(){return V}static get DATA_KEY(){return"bs.collapse"}toggle(){this._element.classList.contains("show")?this.hide():this.show()}show(){if(this._isTransitioning||this._element.classList.contains("show"))return;let t,e;this._parent&&(t=U.find(".show, .collapsing",this._parent).filter(t=>"string"==typeof this._config.parent?t.getAttribute("data-bs-parent")===this._config.parent:t.classList.contains("collapse")),0===t.length&&(t=null));const s=U.findOne(this._selector);if(t){const i=t.find(t=>s!==t);if(e=i?w.get(i,"bs.collapse"):null,e&&e._isTransitioning)return}if(P.trigger(this._element,"show.bs.collapse").defaultPrevented)return;t&&t.forEach(t=>{s!==t&&Z.collapseInterface(t,"hide"),e||w.set(t,"bs.collapse",null)});const i=this._getDimension();this._element.classList.remove("collapse"),this._element.classList.add("collapsing"),this._element.style[i]=0,this._triggerArray.length&&this._triggerArray.forEach(t=>{t.classList.remove("collapsed"),t.setAttribute("aria-expanded",!0)}),this.setTransitioning(!0);const n="scroll"+(i[0].toUpperCase()+i.slice(1)),o=a(this._element);P.one(this._element,"transitionend",()=>{this._element.classList.remove("collapsing"),this._element.classList.add("collapse","show"),this._element.style[i]="",this.setTransitioning(!1),P.trigger(this._element,"shown.bs.collapse")}),h(this._element,o),this._element.style[i]=this._element[n]+"px"}hide(){if(this._isTransitioning||!this._element.classList.contains("show"))return;if(P.trigger(this._element,"hide.bs.collapse").defaultPrevented)return;const t=this._getDimension();this._element.style[t]=this._element.getBoundingClientRect()[t]+"px",m(this._element),this._element.classList.add("collapsing"),this._element.classList.remove("collapse","show");const e=this._triggerArray.length;if(e>0)for(let t=0;t<e;t++){const e=this._triggerArray[t],s=r(e);s&&!s.classList.contains("show")&&(e.classList.add("collapsed"),e.setAttribute("aria-expanded",!1))}this.setTransitioning(!0),this._element.style[t]="";const s=a(this._element);P.one(this._element,"transitionend",()=>{this.setTransitioning(!1),this._element.classList.remove("collapsing"),this._element.classList.add("collapse"),P.trigger(this._element,"hidden.bs.collapse")}),h(this._element,s)}setTransitioning(t){this._isTransitioning=t}dispose(){super.dispose(),this._config=null,this._parent=null,this._triggerArray=null,this._isTransitioning=null}_getConfig(t){return(t={...V,...t}).toggle=Boolean(t.toggle),d("collapse",t,G),t}_getDimension(){return this._element.classList.contains("width")?"width":"height"}_getParent(){let{parent:t}=this._config;c(t)?void 0===t.jquery&&void 0===t[0]||(t=t[0]):t=U.findOne(t);const e=`[data-bs-toggle="collapse"][data-bs-parent="${t}"]`;return U.find(e,t).forEach(t=>{const e=r(t);this._addAriaAndCollapsedClass(e,[t])}),t}_addAriaAndCollapsedClass(t,e){if(!t||!e.length)return;const s=t.classList.contains("show");e.forEach(t=>{s?t.classList.remove("collapsed"):t.classList.add("collapsed"),t.setAttribute("aria-expanded",s)})}static collapseInterface(t,e){let s=w.get(t,"bs.collapse");const i={...V,...$.getDataAttributes(t),..."object"==typeof e&&e?e:{}};if(!s&&i.toggle&&"string"==typeof e&&/show|hide/.test(e)&&(i.toggle=!1),s||(s=new Z(t,i)),"string"==typeof e){if(void 0===s[e])throw new TypeError(`No method named "${e}"`);s[e]()}}static jQueryInterface(t){return this.each((function(){Z.collapseInterface(this,t)}))}}P.on(document,"click.bs.collapse.data-api",'[data-bs-toggle="collapse"]',(function(t){("A"===t.target.tagName||t.delegateTarget&&"A"===t.delegateTarget.tagName)&&t.preventDefault();const e=$.getDataAttributes(this),s=o(this);U.find(s).forEach(t=>{const s=w.get(t,"bs.collapse");let i;s?(null===s._parent&&"string"==typeof e.parent&&(s._config.parent=e.parent,s._parent=s._getParent()),i="toggle"):i=e,Z.collapseInterface(t,i)})})),v("collapse",Z);const J=new RegExp("ArrowUp|ArrowDown|Escape"),tt=b()?"top-end":"top-start",et=b()?"top-start":"top-end",st=b()?"bottom-end":"bottom-start",it=b()?"bottom-start":"bottom-end",nt=b()?"left-start":"right-start",ot=b()?"right-start":"left-start",rt={offset:[0,2],boundary:"clippingParents",reference:"toggle",display:"dynamic",popperConfig:null},at={offset:"(array|string|function)",boundary:"(string|element)",reference:"(string|element|object)",display:"string",popperConfig:"(null|object|function)"};class lt extends M{constructor(t,e){super(t),this._popper=null,this._config=this._getConfig(e),this._menu=this._getMenuElement(),this._inNavbar=this._detectNavbar(),this._addEventListeners()}static get Default(){return rt}static get DefaultType(){return at}static get DATA_KEY(){return"bs.dropdown"}toggle(){if(this._element.disabled||this._element.classList.contains("disabled"))return;const t=this._element.classList.contains("show");lt.clearMenus(),t||this.show()}show(){if(this._element.disabled||this._element.classList.contains("disabled")||this._menu.classList.contains("show"))return;const t=lt.getParentFromElement(this._element),e={relatedTarget:this._element};if(!P.trigger(this._element,"show.bs.dropdown",e).defaultPrevented){if(this._inNavbar)$.setDataAttribute(this._menu,"popper","none");else{if(void 0===s)throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");let e=this._element;"parent"===this._config.reference?e=t:c(this._config.reference)?(e=this._config.reference,void 0!==this._config.reference.jquery&&(e=this._config.reference[0])):"object"==typeof this._config.reference&&(e=this._config.reference);const i=this._getPopperConfig(),n=i.modifiers.find(t=>"applyStyles"===t.name&&!1===t.enabled);this._popper=s.createPopper(e,this._menu,i),n&&$.setDataAttribute(this._menu,"popper","static")}"ontouchstart"in document.documentElement&&!t.closest(".navbar-nav")&&[].concat(...document.body.children).forEach(t=>P.on(t,"mouseover",null,(function(){}))),this._element.focus(),this._element.setAttribute("aria-expanded",!0),this._menu.classList.toggle("show"),this._element.classList.toggle("show"),P.trigger(this._element,"shown.bs.dropdown",e)}}hide(){if(this._element.disabled||this._element.classList.contains("disabled")||!this._menu.classList.contains("show"))return;const t={relatedTarget:this._element};P.trigger(this._element,"hide.bs.dropdown",t).defaultPrevented||(this._popper&&this._popper.destroy(),this._menu.classList.toggle("show"),this._element.classList.toggle("show"),$.removeDataAttribute(this._menu,"popper"),P.trigger(this._element,"hidden.bs.dropdown",t))}dispose(){P.off(this._element,".bs.dropdown"),this._menu=null,this._popper&&(this._popper.destroy(),this._popper=null),super.dispose()}update(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.update()}_addEventListeners(){P.on(this._element,"click.bs.dropdown",t=>{t.preventDefault(),this.toggle()})}_getConfig(t){if(t={...this.constructor.Default,...$.getDataAttributes(this._element),...t},d("dropdown",t,this.constructor.DefaultType),"object"==typeof t.reference&&!c(t.reference)&&"function"!=typeof t.reference.getBoundingClientRect)throw new TypeError("dropdown".toUpperCase()+': Option "reference" provided type "object" without a required "getBoundingClientRect" method.');return t}_getMenuElement(){return U.next(this._element,".dropdown-menu")[0]}_getPlacement(){const t=this._element.parentNode;if(t.classList.contains("dropend"))return nt;if(t.classList.contains("dropstart"))return ot;const e="end"===getComputedStyle(this._menu).getPropertyValue("--bs-position").trim();return t.classList.contains("dropup")?e?et:tt:e?it:st}_detectNavbar(){return null!==this._element.closest(".navbar")}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map(t=>Number.parseInt(t,10)):"function"==typeof t?e=>t(e,this._element):t}_getPopperConfig(){const t={placement:this._getPlacement(),modifiers:[{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"offset",options:{offset:this._getOffset()}}]};return"static"===this._config.display&&(t.modifiers=[{name:"applyStyles",enabled:!1}]),{...t,..."function"==typeof this._config.popperConfig?this._config.popperConfig(t):this._config.popperConfig}}static dropdownInterface(t,e){let s=w.get(t,"bs.dropdown");if(s||(s=new lt(t,"object"==typeof e?e:null)),"string"==typeof e){if(void 0===s[e])throw new TypeError(`No method named "${e}"`);s[e]()}}static jQueryInterface(t){return this.each((function(){lt.dropdownInterface(this,t)}))}static clearMenus(t){if(t){if(2===t.button||"keyup"===t.type&&"Tab"!==t.key)return;if(/input|select|textarea|form/i.test(t.target.tagName))return}const e=U.find('[data-bs-toggle="dropdown"]');for(let s=0,i=e.length;s<i;s++){const i=w.get(e[s],"bs.dropdown"),n={relatedTarget:e[s]};if(t&&"click"===t.type&&(n.clickEvent=t),!i)continue;const o=i._menu;if(e[s].classList.contains("show")){if(t){if([i._element].some(e=>t.composedPath().includes(e)))continue;if("keyup"===t.type&&"Tab"===t.key&&o.contains(t.target))continue}P.trigger(e[s],"hide.bs.dropdown",n).defaultPrevented||("ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach(t=>P.off(t,"mouseover",null,(function(){}))),e[s].setAttribute("aria-expanded","false"),i._popper&&i._popper.destroy(),o.classList.remove("show"),e[s].classList.remove("show"),$.removeDataAttribute(o,"popper"),P.trigger(e[s],"hidden.bs.dropdown",n))}}}static getParentFromElement(t){return r(t)||t.parentNode}static dataApiKeydownHandler(t){if(/input|textarea/i.test(t.target.tagName)?"Space"===t.key||"Escape"!==t.key&&("ArrowDown"!==t.key&&"ArrowUp"!==t.key||t.target.closest(".dropdown-menu")):!J.test(t.key))return;if(t.preventDefault(),t.stopPropagation(),this.disabled||this.classList.contains("disabled"))return;const e=lt.getParentFromElement(this),s=this.classList.contains("show");if("Escape"===t.key)return(this.matches('[data-bs-toggle="dropdown"]')?this:U.prev(this,'[data-bs-toggle="dropdown"]')[0]).focus(),void lt.clearMenus();if(!s&&("ArrowUp"===t.key||"ArrowDown"===t.key))return void(this.matches('[data-bs-toggle="dropdown"]')?this:U.prev(this,'[data-bs-toggle="dropdown"]')[0]).click();if(!s||"Space"===t.key)return void lt.clearMenus();const i=U.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",e).filter(u);if(!i.length)return;let n=i.indexOf(t.target);"ArrowUp"===t.key&&n>0&&n--,"ArrowDown"===t.key&&n<i.length-1&&n++,n=-1===n?0:n,i[n].focus()}}P.on(document,"keydown.bs.dropdown.data-api",'[data-bs-toggle="dropdown"]',lt.dataApiKeydownHandler),P.on(document,"keydown.bs.dropdown.data-api",".dropdown-menu",lt.dataApiKeydownHandler),P.on(document,"click.bs.dropdown.data-api",lt.clearMenus),P.on(document,"keyup.bs.dropdown.data-api",lt.clearMenus),P.on(document,"click.bs.dropdown.data-api",'[data-bs-toggle="dropdown"]',(function(t){t.preventDefault(),lt.dropdownInterface(this)})),v("dropdown",lt);const ct={backdrop:!0,keyboard:!0,focus:!0},ht={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean"};class dt extends M{constructor(t,e){super(t),this._config=this._getConfig(e),this._dialog=U.findOne(".modal-dialog",this._element),this._backdrop=null,this._isShown=!1,this._isBodyOverflowing=!1,this._ignoreBackdropClick=!1,this._isTransitioning=!1,this._scrollbarWidth=0}static get Default(){return ct}static get DATA_KEY(){return"bs.modal"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){if(this._isShown||this._isTransitioning)return;this._isAnimated()&&(this._isTransitioning=!0);const e=P.trigger(this._element,"show.bs.modal",{relatedTarget:t});this._isShown||e.defaultPrevented||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),this._adjustDialog(),this._setEscapeEvent(),this._setResizeEvent(),P.on(this._element,"click.dismiss.bs.modal",'[data-bs-dismiss="modal"]',t=>this.hide(t)),P.on(this._dialog,"mousedown.dismiss.bs.modal",()=>{P.one(this._element,"mouseup.dismiss.bs.modal",t=>{t.target===this._element&&(this._ignoreBackdropClick=!0)})}),this._showBackdrop(()=>this._showElement(t)))}hide(t){if(t&&t.preventDefault(),!this._isShown||this._isTransitioning)return;if(P.trigger(this._element,"hide.bs.modal").defaultPrevented)return;this._isShown=!1;const e=this._isAnimated();if(e&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),P.off(document,"focusin.bs.modal"),this._element.classList.remove("show"),P.off(this._element,"click.dismiss.bs.modal"),P.off(this._dialog,"mousedown.dismiss.bs.modal"),e){const t=a(this._element);P.one(this._element,"transitionend",t=>this._hideModal(t)),h(this._element,t)}else this._hideModal()}dispose(){[window,this._element,this._dialog].forEach(t=>P.off(t,".bs.modal")),super.dispose(),P.off(document,"focusin.bs.modal"),this._config=null,this._dialog=null,this._backdrop=null,this._isShown=null,this._isBodyOverflowing=null,this._ignoreBackdropClick=null,this._isTransitioning=null,this._scrollbarWidth=null}handleUpdate(){this._adjustDialog()}_getConfig(t){return t={...ct,...t},d("modal",t,ht),t}_showElement(t){const e=this._isAnimated(),s=U.findOne(".modal-body",this._dialog);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0,s&&(s.scrollTop=0),e&&m(this._element),this._element.classList.add("show"),this._config.focus&&this._enforceFocus();const i=()=>{this._config.focus&&this._element.focus(),this._isTransitioning=!1,P.trigger(this._element,"shown.bs.modal",{relatedTarget:t})};if(e){const t=a(this._dialog);P.one(this._dialog,"transitionend",i),h(this._dialog,t)}else i()}_enforceFocus(){P.off(document,"focusin.bs.modal"),P.on(document,"focusin.bs.modal",t=>{document===t.target||this._element===t.target||this._element.contains(t.target)||this._element.focus()})}_setEscapeEvent(){this._isShown?P.on(this._element,"keydown.dismiss.bs.modal",t=>{this._config.keyboard&&"Escape"===t.key?(t.preventDefault(),this.hide()):this._config.keyboard||"Escape"!==t.key||this._triggerBackdropTransition()}):P.off(this._element,"keydown.dismiss.bs.modal")}_setResizeEvent(){this._isShown?P.on(window,"resize.bs.modal",()=>this._adjustDialog()):P.off(window,"resize.bs.modal")}_hideModal(){this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._showBackdrop(()=>{document.body.classList.remove("modal-open"),this._resetAdjustments(),this._resetScrollbar(),P.trigger(this._element,"hidden.bs.modal")})}_removeBackdrop(){this._backdrop.parentNode.removeChild(this._backdrop),this._backdrop=null}_showBackdrop(t){const e=this._isAnimated();if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className="modal-backdrop",e&&this._backdrop.classList.add("fade"),document.body.appendChild(this._backdrop),P.on(this._element,"click.dismiss.bs.modal",t=>{this._ignoreBackdropClick?this._ignoreBackdropClick=!1:t.target===t.currentTarget&&("static"===this._config.backdrop?this._triggerBackdropTransition():this.hide())}),e&&m(this._backdrop),this._backdrop.classList.add("show"),!e)return void t();const s=a(this._backdrop);P.one(this._backdrop,"transitionend",t),h(this._backdrop,s)}else if(!this._isShown&&this._backdrop){this._backdrop.classList.remove("show");const s=()=>{this._removeBackdrop(),t()};if(e){const t=a(this._backdrop);P.one(this._backdrop,"transitionend",s),h(this._backdrop,t)}else s()}else t()}_isAnimated(){return this._element.classList.contains("fade")}_triggerBackdropTransition(){if(P.trigger(this._element,"hidePrevented.bs.modal").defaultPrevented)return;const t=this._element.scrollHeight>document.documentElement.clientHeight;t||(this._element.style.overflowY="hidden"),this._element.classList.add("modal-static");const e=a(this._dialog);P.off(this._element,"transitionend"),P.one(this._element,"transitionend",()=>{this._element.classList.remove("modal-static"),t||(P.one(this._element,"transitionend",()=>{this._element.style.overflowY=""}),h(this._element,e))}),h(this._element,e),this._element.focus()}_adjustDialog(){const t=this._element.scrollHeight>document.documentElement.clientHeight;(!this._isBodyOverflowing&&t&&!b()||this._isBodyOverflowing&&!t&&b())&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),(this._isBodyOverflowing&&!t&&!b()||!this._isBodyOverflowing&&t&&b())&&(this._element.style.paddingRight=this._scrollbarWidth+"px")}_resetAdjustments(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}_checkScrollbar(){const t=document.body.getBoundingClientRect();this._isBodyOverflowing=Math.round(t.left+t.right)<window.innerWidth,this._scrollbarWidth=this._getScrollbarWidth()}_setScrollbar(){this._isBodyOverflowing&&(this._setElementAttributes(".fixed-top, .fixed-bottom, .is-fixed, .sticky-top","paddingRight",t=>t+this._scrollbarWidth),this._setElementAttributes(".sticky-top","marginRight",t=>t-this._scrollbarWidth),this._setElementAttributes("body","paddingRight",t=>t+this._scrollbarWidth)),document.body.classList.add("modal-open")}_setElementAttributes(t,e,s){U.find(t).forEach(t=>{if(t!==document.body&&window.innerWidth>t.clientWidth+this._scrollbarWidth)return;const i=t.style[e],n=window.getComputedStyle(t)[e];$.setDataAttribute(t,e,i),t.style[e]=s(Number.parseFloat(n))+"px"})}_resetScrollbar(){this._resetElementAttributes(".fixed-top, .fixed-bottom, .is-fixed, .sticky-top","paddingRight"),this._resetElementAttributes(".sticky-top","marginRight"),this._resetElementAttributes("body","paddingRight")}_resetElementAttributes(t,e){U.find(t).forEach(t=>{const s=$.getDataAttribute(t,e);void 0===s&&t===document.body?t.style[e]="":($.removeDataAttribute(t,e),t.style[e]=s)})}_getScrollbarWidth(){const t=document.createElement("div");t.className="modal-scrollbar-measure",document.body.appendChild(t);const e=t.getBoundingClientRect().width-t.clientWidth;return document.body.removeChild(t),e}static jQueryInterface(t,e){return this.each((function(){let s=w.get(this,"bs.modal");const i={...ct,...$.getDataAttributes(this),..."object"==typeof t&&t?t:{}};if(s||(s=new dt(this,i)),"string"==typeof t){if(void 0===s[t])throw new TypeError(`No method named "${t}"`);s[t](e)}}))}}P.on(document,"click.bs.modal.data-api",'[data-bs-toggle="modal"]',(function(t){const e=r(this);"A"!==this.tagName&&"AREA"!==this.tagName||t.preventDefault(),P.one(e,"show.bs.modal",t=>{t.defaultPrevented||P.one(e,"hidden.bs.modal",()=>{u(this)&&this.focus()})});let s=w.get(e,"bs.modal");if(!s){const t={...$.getDataAttributes(e),...$.getDataAttributes(this)};s=new dt(e,t)}s.toggle(this)})),v("modal",dt);const ut=()=>{const t=document.documentElement.clientWidth;return Math.abs(window.innerWidth-t)},gt=(t,e,s)=>{const i=ut();U.find(t).forEach(t=>{if(t!==document.body&&window.innerWidth>t.clientWidth+i)return;const n=t.style[e],o=window.getComputedStyle(t)[e];$.setDataAttribute(t,e,n),t.style[e]=s(Number.parseFloat(o))+"px"})},ft=(t,e)=>{U.find(t).forEach(t=>{const s=$.getDataAttribute(t,e);void 0===s&&t===document.body?t.style.removeProperty(e):($.removeDataAttribute(t,e),t.style[e]=s)})},pt={backdrop:!0,keyboard:!0,scroll:!1},mt={backdrop:"boolean",keyboard:"boolean",scroll:"boolean"};class _t extends M{constructor(t,e){super(t),this._config=this._getConfig(e),this._isShown=!1,this._addEventListeners()}static get Default(){return pt}static get DATA_KEY(){return"bs.offcanvas"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||P.trigger(this._element,"show.bs.offcanvas",{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._element.style.visibility="visible",this._config.backdrop&&document.body.classList.add("offcanvas-backdrop"),this._config.scroll||((t=ut())=>{document.body.style.overflow="hidden",gt(".fixed-top, .fixed-bottom, .is-fixed","paddingRight",e=>e+t),gt(".sticky-top","marginRight",e=>e-t),gt("body","paddingRight",e=>e+t)})(),this._element.classList.add("offcanvas-toggling"),this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.classList.add("show"),setTimeout(()=>{this._element.classList.remove("offcanvas-toggling"),P.trigger(this._element,"shown.bs.offcanvas",{relatedTarget:t}),this._enforceFocusOnElement(this._element)},a(this._element)))}hide(){this._isShown&&(P.trigger(this._element,"hide.bs.offcanvas").defaultPrevented||(this._element.classList.add("offcanvas-toggling"),P.off(document,"focusin.bs.offcanvas"),this._element.blur(),this._isShown=!1,this._element.classList.remove("show"),setTimeout(()=>{this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._element.style.visibility="hidden",this._config.backdrop&&document.body.classList.remove("offcanvas-backdrop"),this._config.scroll||(document.body.style.overflow="auto",ft(".fixed-top, .fixed-bottom, .is-fixed","paddingRight"),ft(".sticky-top","marginRight"),ft("body","paddingRight")),P.trigger(this._element,"hidden.bs.offcanvas"),this._element.classList.remove("offcanvas-toggling")},a(this._element))))}_getConfig(t){return t={...pt,...$.getDataAttributes(this._element),..."object"==typeof t?t:{}},d("offcanvas",t,mt),t}_enforceFocusOnElement(t){P.off(document,"focusin.bs.offcanvas"),P.on(document,"focusin.bs.offcanvas",e=>{document===e.target||t===e.target||t.contains(e.target)||t.focus()}),t.focus()}_addEventListeners(){P.on(this._element,"click.dismiss.bs.offcanvas",'[data-bs-dismiss="offcanvas"]',()=>this.hide()),P.on(document,"keydown",t=>{this._config.keyboard&&"Escape"===t.key&&this.hide()}),P.on(document,"click.bs.offcanvas.data-api",t=>{const e=U.findOne(o(t.target));this._element.contains(t.target)||e===this._element||this.hide()})}static jQueryInterface(t){return this.each((function(){const e=w.get(this,"bs.offcanvas")||new _t(this,"object"==typeof t?t:{});if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}P.on(document,"click.bs.offcanvas.data-api",'[data-bs-toggle="offcanvas"]',(function(t){const e=r(this);if(["A","AREA"].includes(this.tagName)&&t.preventDefault(),g(this))return;P.one(e,"hidden.bs.offcanvas",()=>{u(this)&&this.focus()});const s=U.findOne(".offcanvas.show, .offcanvas-toggling");s&&s!==e||(w.get(e,"bs.offcanvas")||new _t(e)).toggle(this)})),P.on(window,"load.bs.offcanvas.data-api",()=>{U.find(".offcanvas.show").forEach(t=>(w.get(t,"bs.offcanvas")||new _t(t)).show())}),v("offcanvas",_t);const bt=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),vt=/^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/i,yt=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i,wt=(t,e)=>{const s=t.nodeName.toLowerCase();if(e.includes(s))return!bt.has(s)||Boolean(vt.test(t.nodeValue)||yt.test(t.nodeValue));const i=e.filter(t=>t instanceof RegExp);for(let t=0,e=i.length;t<e;t++)if(i[t].test(s))return!0;return!1};function Et(t,e,s){if(!t.length)return t;if(s&&"function"==typeof s)return s(t);const i=(new window.DOMParser).parseFromString(t,"text/html"),n=Object.keys(e),o=[].concat(...i.body.querySelectorAll("*"));for(let t=0,s=o.length;t<s;t++){const s=o[t],i=s.nodeName.toLowerCase();if(!n.includes(i)){s.parentNode.removeChild(s);continue}const r=[].concat(...s.attributes),a=[].concat(e["*"]||[],e[i]||[]);r.forEach(t=>{wt(t,a)||s.removeAttribute(t.nodeName)})}return i.body.innerHTML}const Tt=new RegExp("(^|\\s)bs-tooltip\\S+","g"),At=new Set(["sanitize","allowList","sanitizeFn"]),Lt={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(array|string|function)",container:"(string|element|boolean)",fallbackPlacements:"array",boundary:"(string|element)",customClass:"(string|function)",sanitize:"boolean",sanitizeFn:"(null|function)",allowList:"object",popperConfig:"(null|object|function)"},kt={AUTO:"auto",TOP:"top",RIGHT:b()?"left":"right",BOTTOM:"bottom",LEFT:b()?"right":"left"},Ct={animation:!0,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:[0,0],container:!1,fallbackPlacements:["top","right","bottom","left"],boundary:"clippingParents",customClass:"",sanitize:!0,sanitizeFn:null,allowList:{"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},popperConfig:null},Dt={HIDE:"hide.bs.tooltip",HIDDEN:"hidden.bs.tooltip",SHOW:"show.bs.tooltip",SHOWN:"shown.bs.tooltip",INSERTED:"inserted.bs.tooltip",CLICK:"click.bs.tooltip",FOCUSIN:"focusin.bs.tooltip",FOCUSOUT:"focusout.bs.tooltip",MOUSEENTER:"mouseenter.bs.tooltip",MOUSELEAVE:"mouseleave.bs.tooltip"};class St extends M{constructor(t,e){if(void 0===s)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(t),this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.config=this._getConfig(e),this.tip=null,this._setListeners()}static get Default(){return Ct}static get NAME(){return"tooltip"}static get DATA_KEY(){return"bs.tooltip"}static get Event(){return Dt}static get EVENT_KEY(){return".bs.tooltip"}static get DefaultType(){return Lt}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(t){if(this._isEnabled)if(t){const e=this._initializeOnDelegatedTarget(t);e._activeTrigger.click=!e._activeTrigger.click,e._isWithActiveTrigger()?e._enter(null,e):e._leave(null,e)}else{if(this.getTipElement().classList.contains("show"))return void this._leave(null,this);this._enter(null,this)}}dispose(){clearTimeout(this._timeout),P.off(this._element,this.constructor.EVENT_KEY),P.off(this._element.closest(".modal"),"hide.bs.modal",this._hideModalHandler),this.tip&&this.tip.parentNode&&this.tip.parentNode.removeChild(this.tip),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,this._popper&&this._popper.destroy(),this._popper=null,this.config=null,this.tip=null,super.dispose()}show(){if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(!this.isWithContent()||!this._isEnabled)return;const t=P.trigger(this._element,this.constructor.Event.SHOW),e=f(this._element),n=null===e?this._element.ownerDocument.documentElement.contains(this._element):e.contains(this._element);if(t.defaultPrevented||!n)return;const o=this.getTipElement(),r=i(this.constructor.NAME);o.setAttribute("id",r),this._element.setAttribute("aria-describedby",r),this.setContent(),this.config.animation&&o.classList.add("fade");const l="function"==typeof this.config.placement?this.config.placement.call(this,o,this._element):this.config.placement,c=this._getAttachment(l);this._addAttachmentClass(c);const d=this._getContainer();w.set(o,this.constructor.DATA_KEY,this),this._element.ownerDocument.documentElement.contains(this.tip)||(d.appendChild(o),P.trigger(this._element,this.constructor.Event.INSERTED)),this._popper?this._popper.update():this._popper=s.createPopper(this._element,o,this._getPopperConfig(c)),o.classList.add("show");const u="function"==typeof this.config.customClass?this.config.customClass():this.config.customClass;u&&o.classList.add(...u.split(" ")),"ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach(t=>{P.on(t,"mouseover",(function(){}))});const g=()=>{const t=this._hoverState;this._hoverState=null,P.trigger(this._element,this.constructor.Event.SHOWN),"out"===t&&this._leave(null,this)};if(this.tip.classList.contains("fade")){const t=a(this.tip);P.one(this.tip,"transitionend",g),h(this.tip,t)}else g()}hide(){if(!this._popper)return;const t=this.getTipElement(),e=()=>{this._isWithActiveTrigger()||("show"!==this._hoverState&&t.parentNode&&t.parentNode.removeChild(t),this._cleanTipClass(),this._element.removeAttribute("aria-describedby"),P.trigger(this._element,this.constructor.Event.HIDDEN),this._popper&&(this._popper.destroy(),this._popper=null))};if(!P.trigger(this._element,this.constructor.Event.HIDE).defaultPrevented){if(t.classList.remove("show"),"ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach(t=>P.off(t,"mouseover",p)),this._activeTrigger.click=!1,this._activeTrigger.focus=!1,this._activeTrigger.hover=!1,this.tip.classList.contains("fade")){const s=a(t);P.one(t,"transitionend",e),h(t,s)}else e();this._hoverState=""}}update(){null!==this._popper&&this._popper.update()}isWithContent(){return Boolean(this.getTitle())}getTipElement(){if(this.tip)return this.tip;const t=document.createElement("div");return t.innerHTML=this.config.template,this.tip=t.children[0],this.tip}setContent(){const t=this.getTipElement();this.setElementContent(U.findOne(".tooltip-inner",t),this.getTitle()),t.classList.remove("fade","show")}setElementContent(t,e){if(null!==t)return"object"==typeof e&&c(e)?(e.jquery&&(e=e[0]),void(this.config.html?e.parentNode!==t&&(t.innerHTML="",t.appendChild(e)):t.textContent=e.textContent)):void(this.config.html?(this.config.sanitize&&(e=Et(e,this.config.allowList,this.config.sanitizeFn)),t.innerHTML=e):t.textContent=e)}getTitle(){let t=this._element.getAttribute("data-bs-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this._element):this.config.title),t}updateAttachment(t){return"right"===t?"end":"left"===t?"start":t}_initializeOnDelegatedTarget(t,e){const s=this.constructor.DATA_KEY;return(e=e||w.get(t.delegateTarget,s))||(e=new this.constructor(t.delegateTarget,this._getDelegateConfig()),w.set(t.delegateTarget,s,e)),e}_getOffset(){const{offset:t}=this.config;return"string"==typeof t?t.split(",").map(t=>Number.parseInt(t,10)):"function"==typeof t?e=>t(e,this._element):t}_getPopperConfig(t){const e={placement:t,modifiers:[{name:"flip",options:{altBoundary:!0,fallbackPlacements:this.config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this.config.boundary}},{name:"arrow",options:{element:`.${this.constructor.NAME}-arrow`}},{name:"onChange",enabled:!0,phase:"afterWrite",fn:t=>this._handlePopperPlacementChange(t)}],onFirstUpdate:t=>{t.options.placement!==t.placement&&this._handlePopperPlacementChange(t)}};return{...e,..."function"==typeof this.config.popperConfig?this.config.popperConfig(e):this.config.popperConfig}}_addAttachmentClass(t){this.getTipElement().classList.add("bs-tooltip-"+this.updateAttachment(t))}_getContainer(){return!1===this.config.container?document.body:c(this.config.container)?this.config.container:U.findOne(this.config.container)}_getAttachment(t){return kt[t.toUpperCase()]}_setListeners(){this.config.trigger.split(" ").forEach(t=>{if("click"===t)P.on(this._element,this.constructor.Event.CLICK,this.config.selector,t=>this.toggle(t));else if("manual"!==t){const e="hover"===t?this.constructor.Event.MOUSEENTER:this.constructor.Event.FOCUSIN,s="hover"===t?this.constructor.Event.MOUSELEAVE:this.constructor.Event.FOCUSOUT;P.on(this._element,e,this.config.selector,t=>this._enter(t)),P.on(this._element,s,this.config.selector,t=>this._leave(t))}}),this._hideModalHandler=()=>{this._element&&this.hide()},P.on(this._element.closest(".modal"),"hide.bs.modal",this._hideModalHandler),this.config.selector?this.config={...this.config,trigger:"manual",selector:""}:this._fixTitle()}_fixTitle(){const t=this._element.getAttribute("title"),e=typeof this._element.getAttribute("data-bs-original-title");(t||"string"!==e)&&(this._element.setAttribute("data-bs-original-title",t||""),!t||this._element.getAttribute("aria-label")||this._element.textContent||this._element.setAttribute("aria-label",t),this._element.setAttribute("title",""))}_enter(t,e){e=this._initializeOnDelegatedTarget(t,e),t&&(e._activeTrigger["focusin"===t.type?"focus":"hover"]=!0),e.getTipElement().classList.contains("show")||"show"===e._hoverState?e._hoverState="show":(clearTimeout(e._timeout),e._hoverState="show",e.config.delay&&e.config.delay.show?e._timeout=setTimeout(()=>{"show"===e._hoverState&&e.show()},e.config.delay.show):e.show())}_leave(t,e){e=this._initializeOnDelegatedTarget(t,e),t&&(e._activeTrigger["focusout"===t.type?"focus":"hover"]=e._element.contains(t.relatedTarget)),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState="out",e.config.delay&&e.config.delay.hide?e._timeout=setTimeout(()=>{"out"===e._hoverState&&e.hide()},e.config.delay.hide):e.hide())}_isWithActiveTrigger(){for(const t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1}_getConfig(t){const e=$.getDataAttributes(this._element);return Object.keys(e).forEach(t=>{At.has(t)&&delete e[t]}),t&&"object"==typeof t.container&&t.container.jquery&&(t.container=t.container[0]),"number"==typeof(t={...this.constructor.Default,...e,..."object"==typeof t&&t?t:{}}).delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),d("tooltip",t,this.constructor.DefaultType),t.sanitize&&(t.template=Et(t.template,t.allowList,t.sanitizeFn)),t}_getDelegateConfig(){const t={};if(this.config)for(const e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t}_cleanTipClass(){const t=this.getTipElement(),e=t.getAttribute("class").match(Tt);null!==e&&e.length>0&&e.map(t=>t.trim()).forEach(e=>t.classList.remove(e))}_handlePopperPlacementChange(t){const{state:e}=t;e&&(this.tip=e.elements.popper,this._cleanTipClass(),this._addAttachmentClass(this._getAttachment(e.placement)))}static jQueryInterface(t){return this.each((function(){let e=w.get(this,"bs.tooltip");const s="object"==typeof t&&t;if((e||!/dispose|hide/.test(t))&&(e||(e=new St(this,s)),"string"==typeof t)){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}v("tooltip",St);const Nt=new RegExp("(^|\\s)bs-popover\\S+","g"),Ot={...St.Default,placement:"right",offset:[0,8],trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="popover-arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'},xt={...St.DefaultType,content:"(string|element|function)"},It={HIDE:"hide.bs.popover",HIDDEN:"hidden.bs.popover",SHOW:"show.bs.popover",SHOWN:"shown.bs.popover",INSERTED:"inserted.bs.popover",CLICK:"click.bs.popover",FOCUSIN:"focusin.bs.popover",FOCUSOUT:"focusout.bs.popover",MOUSEENTER:"mouseenter.bs.popover",MOUSELEAVE:"mouseleave.bs.popover"};class jt extends St{static get Default(){return Ot}static get NAME(){return"popover"}static get DATA_KEY(){return"bs.popover"}static get Event(){return It}static get EVENT_KEY(){return".bs.popover"}static get DefaultType(){return xt}isWithContent(){return this.getTitle()||this._getContent()}setContent(){const t=this.getTipElement();this.setElementContent(U.findOne(".popover-header",t),this.getTitle());let e=this._getContent();"function"==typeof e&&(e=e.call(this._element)),this.setElementContent(U.findOne(".popover-body",t),e),t.classList.remove("fade","show")}_addAttachmentClass(t){this.getTipElement().classList.add("bs-popover-"+this.updateAttachment(t))}_getContent(){return this._element.getAttribute("data-bs-content")||this.config.content}_cleanTipClass(){const t=this.getTipElement(),e=t.getAttribute("class").match(Nt);null!==e&&e.length>0&&e.map(t=>t.trim()).forEach(e=>t.classList.remove(e))}static jQueryInterface(t){return this.each((function(){let e=w.get(this,"bs.popover");const s="object"==typeof t?t:null;if((e||!/dispose|hide/.test(t))&&(e||(e=new jt(this,s),w.set(this,"bs.popover",e)),"string"==typeof t)){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}v("popover",jt);const Pt={offset:10,method:"auto",target:""},Mt={offset:"number",method:"string",target:"(string|element)"};class Ht extends M{constructor(t,e){super(t),this._scrollElement="BODY"===this._element.tagName?window:this._element,this._config=this._getConfig(e),this._selector=`${this._config.target} .nav-link, ${this._config.target} .list-group-item, ${this._config.target} .dropdown-item`,this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,P.on(this._scrollElement,"scroll.bs.scrollspy",()=>this._process()),this.refresh(),this._process()}static get Default(){return Pt}static get DATA_KEY(){return"bs.scrollspy"}refresh(){const t=this._scrollElement===this._scrollElement.window?"offset":"position",e="auto"===this._config.method?t:this._config.method,s="position"===e?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),U.find(this._selector).map(t=>{const i=o(t),n=i?U.findOne(i):null;if(n){const t=n.getBoundingClientRect();if(t.width||t.height)return[$[e](n).top+s,i]}return null}).filter(t=>t).sort((t,e)=>t[0]-e[0]).forEach(t=>{this._offsets.push(t[0]),this._targets.push(t[1])})}dispose(){super.dispose(),P.off(this._scrollElement,".bs.scrollspy"),this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null}_getConfig(t){if("string"!=typeof(t={...Pt,..."object"==typeof t&&t?t:{}}).target&&c(t.target)){let{id:e}=t.target;e||(e=i("scrollspy"),t.target.id=e),t.target="#"+e}return d("scrollspy",t,Mt),t}_getScrollTop(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop}_getScrollHeight(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)}_getOffsetHeight(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height}_process(){const t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),s=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),t>=s){const t=this._targets[this._targets.length-1];this._activeTarget!==t&&this._activate(t)}else{if(this._activeTarget&&t<this._offsets[0]&&this._offsets[0]>0)return this._activeTarget=null,void this._clear();for(let e=this._offsets.length;e--;)this._activeTarget!==this._targets[e]&&t>=this._offsets[e]&&(void 0===this._offsets[e+1]||t<this._offsets[e+1])&&this._activate(this._targets[e])}}_activate(t){this._activeTarget=t,this._clear();const e=this._selector.split(",").map(e=>`${e}[data-bs-target="${t}"],${e}[href="${t}"]`),s=U.findOne(e.join(","));s.classList.contains("dropdown-item")?(U.findOne(".dropdown-toggle",s.closest(".dropdown")).classList.add("active"),s.classList.add("active")):(s.classList.add("active"),U.parents(s,".nav, .list-group").forEach(t=>{U.prev(t,".nav-link, .list-group-item").forEach(t=>t.classList.add("active")),U.prev(t,".nav-item").forEach(t=>{U.children(t,".nav-link").forEach(t=>t.classList.add("active"))})})),P.trigger(this._scrollElement,"activate.bs.scrollspy",{relatedTarget:t})}_clear(){U.find(this._selector).filter(t=>t.classList.contains("active")).forEach(t=>t.classList.remove("active"))}static jQueryInterface(t){return this.each((function(){let e=w.get(this,"bs.scrollspy");if(e||(e=new Ht(this,"object"==typeof t&&t)),"string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}P.on(window,"load.bs.scrollspy.data-api",()=>{U.find('[data-bs-spy="scroll"]').forEach(t=>new Ht(t,$.getDataAttributes(t)))}),v("scrollspy",Ht);class Rt extends M{static get DATA_KEY(){return"bs.tab"}show(){if(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&this._element.classList.contains("active")||g(this._element))return;let t;const e=r(this._element),s=this._element.closest(".nav, .list-group");if(s){const e="UL"===s.nodeName||"OL"===s.nodeName?":scope > li > .active":".active";t=U.find(e,s),t=t[t.length-1]}const i=t?P.trigger(t,"hide.bs.tab",{relatedTarget:this._element}):null;if(P.trigger(this._element,"show.bs.tab",{relatedTarget:t}).defaultPrevented||null!==i&&i.defaultPrevented)return;this._activate(this._element,s);const n=()=>{P.trigger(t,"hidden.bs.tab",{relatedTarget:this._element}),P.trigger(this._element,"shown.bs.tab",{relatedTarget:t})};e?this._activate(e,e.parentNode,n):n()}_activate(t,e,s){const i=(!e||"UL"!==e.nodeName&&"OL"!==e.nodeName?U.children(e,".active"):U.find(":scope > li > .active",e))[0],n=s&&i&&i.classList.contains("fade"),o=()=>this._transitionComplete(t,i,s);if(i&&n){const t=a(i);i.classList.remove("show"),P.one(i,"transitionend",o),h(i,t)}else o()}_transitionComplete(t,e,s){if(e){e.classList.remove("active");const t=U.findOne(":scope > .dropdown-menu .active",e.parentNode);t&&t.classList.remove("active"),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!1)}t.classList.add("active"),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),m(t),t.classList.contains("fade")&&t.classList.add("show"),t.parentNode&&t.parentNode.classList.contains("dropdown-menu")&&(t.closest(".dropdown")&&U.find(".dropdown-toggle").forEach(t=>t.classList.add("active")),t.setAttribute("aria-expanded",!0)),s&&s()}static jQueryInterface(t){return this.each((function(){const e=w.get(this,"bs.tab")||new Rt(this);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}P.on(document,"click.bs.tab.data-api",'[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',(function(t){t.preventDefault(),(w.get(this,"bs.tab")||new Rt(this)).show()})),v("tab",Rt);const Bt={animation:"boolean",autohide:"boolean",delay:"number"},Wt={animation:!0,autohide:!0,delay:5e3};class $t extends M{constructor(t,e){super(t),this._config=this._getConfig(e),this._timeout=null,this._setListeners()}static get DefaultType(){return Bt}static get Default(){return Wt}static get DATA_KEY(){return"bs.toast"}show(){if(P.trigger(this._element,"show.bs.toast").defaultPrevented)return;this._clearTimeout(),this._config.animation&&this._element.classList.add("fade");const t=()=>{this._element.classList.remove("showing"),this._element.classList.add("show"),P.trigger(this._element,"shown.bs.toast"),this._config.autohide&&(this._timeout=setTimeout(()=>{this.hide()},this._config.delay))};if(this._element.classList.remove("hide"),m(this._element),this._element.classList.add("showing"),this._config.animation){const e=a(this._element);P.one(this._element,"transitionend",t),h(this._element,e)}else t()}hide(){if(!this._element.classList.contains("show"))return;if(P.trigger(this._element,"hide.bs.toast").defaultPrevented)return;const t=()=>{this._element.classList.add("hide"),P.trigger(this._element,"hidden.bs.toast")};if(this._element.classList.remove("show"),this._config.animation){const e=a(this._element);P.one(this._element,"transitionend",t),h(this._element,e)}else t()}dispose(){this._clearTimeout(),this._element.classList.contains("show")&&this._element.classList.remove("show"),P.off(this._element,"click.dismiss.bs.toast"),super.dispose(),this._config=null}_getConfig(t){return t={...Wt,...$.getDataAttributes(this._element),..."object"==typeof t&&t?t:{}},d("toast",t,this.constructor.DefaultType),t}_setListeners(){P.on(this._element,"click.dismiss.bs.toast",'[data-bs-dismiss="toast"]',()=>this.hide())}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static jQueryInterface(t){return this.each((function(){let e=w.get(this,"bs.toast");if(e||(e=new $t(this,"object"==typeof t&&t)),"string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}return v("toast",$t),{Alert:H,Button:R,Carousel:X,Collapse:Z,Dropdown:lt,Modal:dt,Offcanvas:_t,Popover:jt,ScrollSpy:Ht,Tab:Rt,Toast:$t,Tooltip:St}})); //# sourceMappingURL=bootstrap.min.js.map
\ No newline at end of file diff --git a/dist/js/bootstrap.min.js.map b/dist/js/bootstrap.min.js.map index 568c71c36..2a317b1c9 100644 --- a/dist/js/bootstrap.min.js.map +++ b/dist/js/bootstrap.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["../../js/src/util/index.js","../../js/src/dom/data.js","../../js/src/dom/event-handler.js","../../js/src/base-component.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/dom/manipulator.js","../../js/src/dom/selector-engine.js","../../js/src/carousel.js","../../js/src/collapse.js","../../js/src/dropdown.js","../../js/src/modal.js","../../js/src/util/sanitizer.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/toast.js","../../js/index.umd.js"],"names":["storeData","id","getUID","prefix","Math","floor","random","document","getElementById","getSelector","element","selector","getAttribute","hrefAttr","trim","getSelectorFromElement","querySelector","getElementFromSelector","getTransitionDurationFromElement","_window$getComputedSt","window","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","Number","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","dispatchEvent","Event","isElement","obj","nodeType","emulateTransitionEnd","duration","called","emulatedDuration","addEventListener","listener","removeEventListener","setTimeout","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","toString","call","match","toLowerCase","RegExp","test","Error","toUpperCase","isVisible","style","parentNode","elementStyle","parentNodeStyle","display","visibility","noop","reflow","offsetHeight","getjQuery","jQuery","body","hasAttribute","onDOMContentLoaded","callback","readyState","isRTL","documentElement","dir","mapData","set","key","data","bsKey","get","keyProperties","delete","Data","instance","namespaceRegex","stripNameRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","nativeEvents","Set","getUidEvent","uid","getEvent","findHandler","events","handler","delegationSelector","uidEventList","i","len","length","event","originalHandler","normalizeParams","originalTypeEvent","delegationFn","delegation","typeEvent","replace","custom","has","addHandler","oneOff","_normalizeParams","handlers","previousFn","fn","domElements","querySelectorAll","target","this","delegateTarget","EventHandler","off","type","apply","bootstrapDelegationHandler","bootstrapHandler","removeHandler","Boolean","on","one","_normalizeParams2","inNamespace","isNamespace","startsWith","elementEvent","namespace","storeElementEvent","handlerKey","includes","removeNamespacedHandlers","slice","keyHandlers","trigger","args","jQueryEvent","$","isNative","bubbles","nativeDispatch","defaultPrevented","evt","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","createEvent","initEvent","CustomEvent","cancelable","defineProperty","preventDefault","BaseComponent","_element","constructor","DATA_KEY","dispose","getInstance","NAME","Alert","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","_removeElement","closest","_this","classList","remove","contains","_destroyElement","removeChild","jQueryInterface","each","handleDismiss","alertInstance","JQUERY_NO_CONFLICT","Constructor","noConflict","Button","toggle","setAttribute","normalizeData","val","normalizeDataKey","chr","button","Manipulator","setDataAttribute","removeDataAttribute","removeAttribute","getDataAttributes","attributes","dataset","filter","pureKey","charAt","getDataAttribute","offset","rect","getBoundingClientRect","top","scrollTop","left","scrollLeft","position","offsetTop","offsetLeft","SelectorEngine","matches","find","_ref","concat","Element","prototype","findOne","children","_ref2","child","parents","ancestor","Node","ELEMENT_NODE","push","prev","previous","previousElementSibling","next","nextElementSibling","EVENT_KEY","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","PointerType","TOUCH","PEN","Carousel","_BaseComponent","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","_addEventListeners","_slide","nextWhenVisible","hidden","cycle","clearInterval","_updateInterval","setInterval","visibilityState","bind","to","index","_this2","activeIndex","_getItemIndex","direction","_extends","_handleSwipe","absDeltax","abs","_this3","_keydown","_addTouchEventListeners","_this4","start","pointerType","clientX","touches","end","clearTimeout","itemImg","e","add","move","tagName","indexOf","_getItemByDirection","activeElement","isNextDirection","isPrevDirection","lastItemIndex","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","from","_setActiveIndicatorElement","indicators","nextIndicator","elementInterval","parseInt","defaultInterval","directionalClassName","orderClassName","_this5","activeElementIndex","nextElement","nextElementIndex","isCycling","carouselInterface","action","TypeError","ride","dataApiClickHandler","slideIndex","carousels","parent","Collapse","_isTransitioning","_triggerArray","SELECTOR_DATA_TOGGLE","toggleList","elem","filterElement","foundElem","_selector","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","container","tempActiveData","elemActive","collapseInterface","dimension","_getDimension","setTransitioning","scrollSize","triggerArrayLength","isTransitioning","jquery","selected","triggerArray","isOpen","triggerData","REGEXP_KEYDOWN","ARROW_UP_KEY","PLACEMENT_TOP","PLACEMENT_TOPEND","PLACEMENT_BOTTOM","PLACEMENT_BOTTOMEND","PLACEMENT_RIGHT","PLACEMENT_LEFT","flip","boundary","reference","popperConfig","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","isActive","clearMenus","getParentFromElement","Popper","referenceElement","_getPopperConfig","focus","destroy","update","scheduleUpdate","stopPropagation","_getPlacement","parentDropdown","placement","_getOffset","offsets","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","dropdownInterface","toggles","context","clickEvent","dropdownMenu","dataApiKeydownHandler","items","backdrop","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","showEvent","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","htmlElement","handleUpdate","modalBody","appendChild","_enforceFocus","transitionComplete","_this6","_triggerBackdropTransition","_this7","_this8","_resetAdjustments","_resetScrollbar","_removeBackdrop","_this9","animate","createElement","className","currentTarget","backdropTransitionDuration","callbackRemove","_this10","isModalOverflowing","scrollHeight","clientHeight","overflowY","modalTransitionDuration","paddingLeft","paddingRight","round","right","innerWidth","_getScrollbarWidth","_this11","actualPadding","calculatedPadding","actualMargin","marginRight","calculatedMargin","padding","margin","scrollDiv","scrollbarWidth","width","clientWidth","_this12","uriAttrs","SAFE_URL_PATTERN","DATA_URL_PATTERN","DefaultAllowlist","*","a","area","b","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","sanitizeHtml","unsafeHtml","allowList","sanitizeFn","createdDocument","DOMParser","parseFromString","allowlistKeys","elements","_loop","el","elName","nodeName","attributeList","allowedAttributes","attr","allowedAttributeList","attrName","nodeValue","regExp","attrRegex","allowedAttribute","innerHTML","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","html","fallbackPlacement","customClass","sanitize","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","_hideModalHandler","isWithContent","shadowRoot","findShadowRoot","attachShadow","getRootNode","root","ShadowRoot","isInTheDom","ownerDocument","tipId","setContent","attachment","_getAttachment","_addAttachmentClass","_getContainer","_tip$classList","complete","_fixTransition","prevHoverState","_cleanTipClass","getTitle","setElementContent","content","textContent","updateAttachment","behavior","arrow","onCreate","originalPlacement","_handlePopperPlacementChange","onUpdate","CLASS_PREFIX","eventIn","eventOut","_fixTitle","originalTitleType","dataAttributes","dataAttr","tabClass","map","token","tClass","popperData","popper","initConfigAnimation","Popover","_getContent","method","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targetSelector","targetBCR","height","item","sort","pageYOffset","max","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","queries","link","join","listGroup","SELECTOR_NAV_LINKS","navItem","node","spy","Tab","listElement","itemSelector","hideEvent","active","_transitionComplete","dropdownChild","dropdown","autohide","Toast","_clearTimeout"],"mappings":"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","sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => {\n if (obj === null || obj === undefined) {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n prefix += Math.floor(Math.random() * MAX_UID)\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelector = element => {\n let selector = element.getAttribute('data-bs-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null\n }\n\n return selector\n}\n\nconst getSelectorFromElement = element => {\n const selector = getSelector(element)\n\n if (selector) {\n return document.querySelector(selector) ? selector : null\n }\n\n return null\n}\n\nconst getElementFromSelector = element => {\n const selector = getSelector(element)\n\n return selector ? document.querySelector(selector) : null\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 = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes).forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n const elementStyle = getComputedStyle(element)\n const parentNodeStyle = getComputedStyle(element.parentNode)\n\n return elementStyle.display !== 'none' &&\n parentNodeStyle.display !== 'none' &&\n elementStyle.visibility !== 'hidden'\n }\n\n return 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 = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nconst getjQuery = () => {\n const { jQuery } = window\n\n if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n return jQuery\n }\n\n return null\n}\n\nconst onDOMContentLoaded = callback => {\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', callback)\n } else {\n callback()\n }\n}\n\nconst isRTL = document.documentElement.dir === 'rtl'\n\nexport {\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n isVisible,\n findShadowRoot,\n noop,\n reflow,\n getjQuery,\n onDOMContentLoaded,\n isRTL\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst mapData = (() => {\n const storeData = {}\n let id = 1\n return {\n set(element, key, data) {\n if (typeof element.bsKey === 'undefined') {\n element.bsKey = {\n key,\n id\n }\n id++\n }\n\n storeData[element.bsKey.id] = data\n },\n get(element, key) {\n if (!element || typeof element.bsKey === 'undefined') {\n return null\n }\n\n const keyProperties = element.bsKey\n if (keyProperties.key === key) {\n return storeData[keyProperties.id]\n }\n\n return null\n },\n delete(element, key) {\n if (typeof element.bsKey === 'undefined') {\n return\n }\n\n const keyProperties = element.bsKey\n if (keyProperties.key === key) {\n delete storeData[keyProperties.id]\n delete element.bsKey\n }\n }\n }\n})()\n\nconst Data = {\n setData(instance, key, data) {\n mapData.set(instance, key, data)\n },\n getData(instance, key) {\n return mapData.get(instance, key)\n },\n removeData(instance, key) {\n mapData.delete(instance, key)\n }\n}\n\nexport default Data\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getjQuery } from '../util/index'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\nconst nativeEvents = new Set([\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 * ------------------------------------------------------------------------\n * Private methods\n * ------------------------------------------------------------------------\n */\n\nfunction getUidEvent(element, uid) {\n return (uid && `${uid}::${uidEvent++}`) || element.uidEvent || uidEvent++\n}\n\nfunction getEvent(element) {\n const uid = getUidEvent(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 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 (let i = domElements.length; i--;) {\n if (domElements[i] === target) {\n event.delegateTarget = target\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(target, [event])\n }\n }\n }\n\n // To please ESLint\n return null\n }\n}\n\nfunction findHandler(events, handler, delegationSelector = null) {\n const uidEventList = Object.keys(events)\n\n for (let i = 0, len = uidEventList.length; i < len; i++) {\n const event = events[uidEventList[i]]\n\n if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {\n return event\n }\n }\n\n return null\n}\n\nfunction normalizeParams(originalTypeEvent, handler, delegationFn) {\n const delegation = typeof handler === 'string'\n const originalHandler = delegation ? delegationFn : handler\n\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n let typeEvent = originalTypeEvent.replace(stripNameRegex, '')\n const custom = customEvents[typeEvent]\n\n if (custom) {\n typeEvent = custom\n }\n\n const isNative = nativeEvents.has(typeEvent)\n\n if (!isNative) {\n typeEvent = originalTypeEvent\n }\n\n return [delegation, originalHandler, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n if (!handler) {\n handler = delegationFn\n delegationFn = null\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const events = getEvent(element)\n const handlers = events[typeEvent] || (events[typeEvent] = {})\n const previousFn = findHandler(handlers, originalHandler, delegation ? handler : null)\n\n if (previousFn) {\n previousFn.oneOff = previousFn.oneOff && oneOff\n\n return\n }\n\n const uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, ''))\n const fn = delegation ?\n bootstrapDelegationHandler(element, handler, delegationFn) :\n bootstrapHandler(element, handler)\n\n fn.delegationSelector = delegation ? handler : null\n fn.originalHandler = originalHandler\n fn.oneOff = oneOff\n fn.uidEvent = uid\n handlers[uid] = fn\n\n element.addEventListener(typeEvent, fn, delegation)\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 Object.keys(storeElementEvent).forEach(handlerKey => {\n if (handlerKey.includes(namespace)) {\n const event = storeElementEvent[handlerKey]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, false)\n },\n\n one(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFn) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getEvent(element)\n const isNamespace = originalTypeEvent.startsWith('.')\n\n if (typeof originalHandler !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!events || !events[typeEvent]) {\n return\n }\n\n removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null)\n return\n }\n\n if (isNamespace) {\n Object.keys(events).forEach(elementEvent => {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1))\n })\n }\n\n const storeElementEvent = events[typeEvent] || {}\n Object.keys(storeElementEvent).forEach(keyHandlers => {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.includes(handlerKey)) {\n const event = storeElementEvent[keyHandlers]\n\n removeHandler(element, events, typeEvent, event.originalHandler, 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 = event.replace(stripNameRegex, '')\n const inNamespace = event !== typeEvent\n const isNative = nativeEvents.has(typeEvent)\n\n let jQueryEvent\n let bubbles = true\n let nativeDispatch = true\n let defaultPrevented = false\n let evt = null\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 if (isNative) {\n evt = document.createEvent('HTMLEvents')\n evt.initEvent(typeEvent, bubbles, true)\n } else {\n evt = new CustomEvent(event, {\n bubbles,\n cancelable: true\n })\n }\n\n // merge custom information in our event\n if (typeof args !== 'undefined') {\n Object.keys(args).forEach(key => {\n Object.defineProperty(evt, key, {\n get() {\n return args[key]\n }\n })\n })\n }\n\n if (defaultPrevented) {\n evt.preventDefault()\n }\n\n if (nativeDispatch) {\n element.dispatchEvent(evt)\n }\n\n if (evt.defaultPrevented && typeof jQueryEvent !== 'undefined') {\n jQueryEvent.preventDefault()\n }\n\n return evt\n }\n}\n\nexport default EventHandler\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): base-component.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Data from './dom/data'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst VERSION = '5.0.0-alpha3'\n\nclass BaseComponent {\n constructor(element) {\n if (!element) {\n return\n }\n\n this._element = element\n Data.setData(element, this.constructor.DATA_KEY, this)\n }\n\n dispose() {\n Data.removeData(this._element, this.constructor.DATA_KEY)\n this._element = null\n }\n\n /** Static */\n\n static getInstance(element) {\n return Data.getData(element, this.DATA_KEY)\n }\n\n static get VERSION() {\n return VERSION\n }\n}\n\nexport default BaseComponent\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n onDOMContentLoaded,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'alert'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst SELECTOR_DISMISS = '[data-bs-dismiss=\"alert\"]'\n\nconst EVENT_CLOSE = `close${EVENT_KEY}`\nconst EVENT_CLOSED = `closed${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASSNAME_ALERT = 'alert'\nconst CLASSNAME_FADE = 'fade'\nconst CLASSNAME_SHOW = 'show'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Alert extends BaseComponent {\n // Getters\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n close(element) {\n const rootElement = element ? this._getRootElement(element) : this._element\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent === null || customEvent.defaultPrevented) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n // Private\n\n _getRootElement(element) {\n return getElementFromSelector(element) || element.closest(`.${CLASSNAME_ALERT}`)\n }\n\n _triggerCloseEvent(element) {\n return EventHandler.trigger(element, EVENT_CLOSE)\n }\n\n _removeElement(element) {\n element.classList.remove(CLASSNAME_SHOW)\n\n if (!element.classList.contains(CLASSNAME_FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = getTransitionDurationFromElement(element)\n\n EventHandler.one(element, TRANSITION_END, () => this._destroyElement(element))\n emulateTransitionEnd(element, transitionDuration)\n }\n\n _destroyElement(element) {\n if (element.parentNode) {\n element.parentNode.removeChild(element)\n }\n\n EventHandler.trigger(element, EVENT_CLOSED)\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DISMISS, Alert.handleDismiss(new Alert()))\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Alert to jQuery only if jQuery is present\n */\n\nonDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Alert.jQueryInterface\n $.fn[NAME].Constructor = Alert\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert.jQueryInterface\n }\n }\n})\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getjQuery, onDOMContentLoaded } from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\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'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"button\"]'\n\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Button extends BaseComponent {\n // Getters\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n toggle() {\n // Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method\n this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE))\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\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\n let data = Data.getData(button, DATA_KEY)\n if (!data) {\n data = new Button(button)\n }\n\n data.toggle()\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Button to jQuery only if jQuery is present\n */\n\nonDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Button.jQueryInterface\n $.fn[NAME].Constructor = Button\n\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button.jQueryInterface\n }\n }\n})\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(val) {\n if (val === 'true') {\n return true\n }\n\n if (val === 'false') {\n return false\n }\n\n if (val === Number(val).toString()) {\n return Number(val)\n }\n\n if (val === '' || val === 'null') {\n return null\n }\n\n return val\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\n Object.keys(element.dataset)\n .filter(key => key.startsWith('bs'))\n .forEach(key => {\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 offset(element) {\n const rect = element.getBoundingClientRect()\n\n return {\n top: rect.top + document.body.scrollTop,\n left: rect.left + document.body.scrollLeft\n }\n },\n\n position(element) {\n return {\n top: element.offsetTop,\n left: element.offsetLeft\n }\n }\n}\n\nexport default Manipulator\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NODE_TEXT = 3\n\nconst SelectorEngine = {\n matches(element, selector) {\n return element.matches(selector)\n },\n\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 const children = [].concat(...element.children)\n\n return children.filter(child => child.matches(selector))\n },\n\n parents(element, selector) {\n const parents = []\n\n let ancestor = element.parentNode\n\n while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {\n if (this.matches(ancestor, selector)) {\n parents.push(ancestor)\n }\n\n ancestor = ancestor.parentNode\n }\n\n return parents\n },\n\n prev(element, selector) {\n let previous = element.previousElementSibling\n\n while (previous) {\n if (previous.matches(selector)) {\n return [previous]\n }\n\n previous = previous.previousElementSibling\n }\n\n return []\n },\n\n next(element, selector) {\n let next = element.nextElementSibling\n\n while (next) {\n if (this.matches(next, selector)) {\n return [next]\n }\n\n next = next.nextElementSibling\n }\n\n return []\n }\n}\n\nexport default SelectorEngine\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n onDOMContentLoaded,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isVisible,\n reflow,\n triggerTransitionEnd,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\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\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\n\nconst DIRECTION_NEXT = 'next'\nconst DIRECTION_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_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 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'\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event'\n\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_ITEM = '.active.carousel-item'\nconst SELECTOR_ITEM = '.carousel-item'\nconst SELECTOR_ITEM_IMG = '.carousel-item img'\nconst SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev'\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 PointerType = {\n TOUCH: 'touch',\n PEN: 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent)\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(DIRECTION_NEXT)\n }\n }\n\n nextWhenVisible() {\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 if (!this._isSliding) {\n this._slide(DIRECTION_PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (SelectorEngine.findOne(SELECTOR_NEXT_PREV, this._element)) {\n triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config && this._config.interval && !this._isPaused) {\n this._updateInterval()\n\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._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 if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex ?\n DIRECTION_NEXT :\n DIRECTION_PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n super.dispose()\n EventHandler.off(this._element, EVENT_KEY)\n\n this._items = null\n this._config = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n this.touchDeltaX = 0\n\n // swipe left\n if (direction > 0) {\n this.prev()\n }\n\n // swipe right\n if (direction < 0) {\n this.next()\n }\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, event => this.pause(event))\n EventHandler.on(this._element, EVENT_MOUSELEAVE, event => this.cycle(event))\n }\n\n if (this._config.touch && this._touchSupported) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n const start = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchStartX = event.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.touches[0].clientX\n }\n }\n\n const move = event => {\n // ensure swiping with one touch and not pinching\n if (event.touches && event.touches.length > 1) {\n this.touchDeltaX = 0\n } else {\n this.touchDeltaX = event.touches[0].clientX - this.touchStartX\n }\n }\n\n const end = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchDeltaX = event.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\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(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n SelectorEngine.find(SELECTOR_ITEM_IMG, this._element).forEach(itemImg => {\n EventHandler.on(itemImg, EVENT_DRAG_START, e => e.preventDefault())\n })\n\n if (this._pointerEvent) {\n EventHandler.on(this._element, EVENT_POINTERDOWN, event => start(event))\n EventHandler.on(this._element, EVENT_POINTERUP, event => end(event))\n\n this._element.classList.add(CLASS_NAME_POINTER_EVENT)\n } else {\n EventHandler.on(this._element, EVENT_TOUCHSTART, event => start(event))\n EventHandler.on(this._element, EVENT_TOUCHMOVE, event => move(event))\n EventHandler.on(this._element, EVENT_TOUCHEND, event => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.key) {\n case ARROW_LEFT_KEY:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEY:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode ?\n SelectorEngine.find(SELECTOR_ITEM, element.parentNode) :\n []\n\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === DIRECTION_NEXT\n const isPrevDirection = direction === DIRECTION_PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = (isPrevDirection && activeIndex === 0) ||\n (isNextDirection && activeIndex === lastItemIndex)\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === DIRECTION_PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1 ?\n this._items[this._items.length - 1] :\n this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element))\n\n return EventHandler.trigger(this._element, EVENT_SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n const indicators = SelectorEngine.find(SELECTOR_ACTIVE, this._indicatorsElement)\n\n for (let i = 0; i < indicators.length; i++) {\n indicators[i].classList.remove(CLASS_NAME_ACTIVE)\n }\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n nextIndicator.classList.add(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n _updateInterval() {\n const element = this._activeElement || SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n\n if (!element) {\n return\n }\n\n const elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10)\n\n if (elementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval\n this._config.interval = elementInterval\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval\n }\n }\n\n _slide(direction, element) {\n const activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || (activeElement && this._getItemByDirection(direction, activeElement))\n\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === DIRECTION_NEXT) {\n directionalClassName = CLASS_NAME_START\n orderClassName = CLASS_NAME_NEXT\n eventDirectionName = DIRECTION_LEFT\n } else {\n directionalClassName = CLASS_NAME_END\n orderClassName = CLASS_NAME_PREV\n eventDirectionName = DIRECTION_RIGHT\n }\n\n if (nextElement && nextElement.classList.contains(CLASS_NAME_ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.defaultPrevented) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n this._activeElement = nextElement\n\n if (this._element.classList.contains(CLASS_NAME_SLIDE)) {\n nextElement.classList.add(orderClassName)\n\n reflow(nextElement)\n\n activeElement.classList.add(directionalClassName)\n nextElement.classList.add(directionalClassName)\n\n const transitionDuration = getTransitionDurationFromElement(activeElement)\n\n EventHandler.one(activeElement, TRANSITION_END, () => {\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 setTimeout(() => {\n EventHandler.trigger(this._element, EVENT_SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }, 0)\n })\n\n emulateTransitionEnd(activeElement, transitionDuration)\n } else {\n activeElement.classList.remove(CLASS_NAME_ACTIVE)\n nextElement.classList.add(CLASS_NAME_ACTIVE)\n\n this._isSliding = false\n EventHandler.trigger(this._element, EVENT_SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static carouselInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n let _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element)\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(element, _config)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n\n data[action]()\n } else if (_config.interval && _config.ride) {\n data.pause()\n data.cycle()\n }\n }\n\n static jQueryInterface(config) {\n return this.each(function () {\n Carousel.carouselInterface(this, config)\n })\n }\n\n static dataApiClickHandler(event) {\n const target = getElementFromSelector(this)\n\n if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {\n return\n }\n\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n const slideIndex = this.getAttribute('data-bs-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel.carouselInterface(target, config)\n\n if (slideIndex) {\n Data.getData(target, DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, Carousel.dataApiClickHandler)\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE)\n\n for (let i = 0, len = carousels.length; i < len; i++) {\n Carousel.carouselInterface(carousels[i], Data.getData(carousels[i], DATA_KEY))\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Carousel to jQuery only if jQuery is present\n */\n\nonDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Carousel.jQueryInterface\n $.fn[NAME].Constructor = Carousel\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel.jQueryInterface\n }\n }\n})\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n onDOMContentLoaded,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isElement,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'collapse'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n toggle: true,\n parent: ''\n}\n\nconst DefaultType = {\n toggle: 'boolean',\n parent: '(string|element)'\n}\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'\n\nconst WIDTH = 'width'\nconst HEIGHT = 'height'\n\nconst SELECTOR_ACTIVES = '.show, .collapsing'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"collapse\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._isTransitioning = false\n this._config = this._getConfig(config)\n this._triggerArray = SelectorEngine.find(\n `${SELECTOR_DATA_TOGGLE}[href=\"#${element.id}\"],` +\n `${SELECTOR_DATA_TOGGLE}[data-bs-target=\"#${element.id}\"]`\n )\n\n const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\n\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = getSelectorFromElement(elem)\n const filterElement = SelectorEngine.find(selector)\n .filter(foundElem => foundElem === element)\n\n if (selector !== null && filterElement.length) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n toggle() {\n if (this._element.classList.contains(CLASS_NAME_SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning || this._element.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = SelectorEngine.find(SELECTOR_ACTIVES, this._parent)\n .filter(elem => {\n if (typeof this._config.parent === 'string') {\n return elem.getAttribute('data-bs-parent') === this._config.parent\n }\n\n return elem.classList.contains(CLASS_NAME_COLLAPSE)\n })\n\n if (actives.length === 0) {\n actives = null\n }\n }\n\n const container = SelectorEngine.findOne(this._selector)\n if (actives) {\n const tempActiveData = actives.find(elem => container !== elem)\n activesData = tempActiveData ? Data.getData(tempActiveData, DATA_KEY) : null\n\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = EventHandler.trigger(this._element, EVENT_SHOW)\n if (startEvent.defaultPrevented) {\n return\n }\n\n if (actives) {\n actives.forEach(elemActive => {\n if (container !== elemActive) {\n Collapse.collapseInterface(elemActive, 'hide')\n }\n\n if (!activesData) {\n Data.setData(elemActive, DATA_KEY, null)\n }\n })\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 if (this._triggerArray.length) {\n this._triggerArray.forEach(element => {\n element.classList.remove(CLASS_NAME_COLLAPSED)\n element.setAttribute('aria-expanded', true)\n })\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\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 this.setTransitioning(false)\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 const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n\n emulateTransitionEnd(this._element, transitionDuration)\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning || !this._element.classList.contains(CLASS_NAME_SHOW)) {\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 const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const elem = getElementFromSelector(trigger)\n\n if (elem && !elem.classList.contains(CLASS_NAME_SHOW)) {\n trigger.classList.add(CLASS_NAME_COLLAPSED)\n trigger.setAttribute('aria-expanded', false)\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(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 const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n super.dispose()\n this._config = null\n this._parent = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n return this._element.classList.contains(WIDTH) ? WIDTH : HEIGHT\n }\n\n _getParent() {\n let { parent } = this._config\n\n if (isElement(parent)) {\n // it's a jQuery object\n if (typeof parent.jquery !== 'undefined' || typeof parent[0] !== 'undefined') {\n parent = parent[0]\n }\n } else {\n parent = SelectorEngine.findOne(parent)\n }\n\n const selector = `${SELECTOR_DATA_TOGGLE}[data-bs-parent=\"${parent}\"]`\n\n SelectorEngine.find(selector, parent)\n .forEach(element => {\n const selected = getElementFromSelector(element)\n\n this._addAriaAndCollapsedClass(\n selected,\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n if (!element || !triggerArray.length) {\n return\n }\n\n const isOpen = element.classList.contains(CLASS_NAME_SHOW)\n\n triggerArray.forEach(elem => {\n if (isOpen) {\n elem.classList.remove(CLASS_NAME_COLLAPSED)\n } else {\n elem.classList.add(CLASS_NAME_COLLAPSED)\n }\n\n elem.setAttribute('aria-expanded', isOpen)\n })\n }\n\n // Static\n\n static collapseInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element),\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(element, _config)\n }\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 static jQueryInterface(config) {\n return this.each(function () {\n Collapse.collapseInterface(this, config)\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\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') {\n event.preventDefault()\n }\n\n const triggerData = Manipulator.getDataAttributes(this)\n const selector = getSelectorFromElement(this)\n const selectorElements = SelectorEngine.find(selector)\n\n selectorElements.forEach(element => {\n const data = Data.getData(element, DATA_KEY)\n let config\n if (data) {\n // update parent attribute\n if (data._parent === null && typeof triggerData.parent === 'string') {\n data._config.parent = triggerData.parent\n data._parent = data._getParent()\n }\n\n config = 'toggle'\n } else {\n config = triggerData\n }\n\n Collapse.collapseInterface(element, config)\n })\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Collapse to jQuery only if jQuery is present\n */\n\nonDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Collapse.jQueryInterface\n $.fn[NAME].Constructor = Collapse\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse.jQueryInterface\n }\n }\n})\n\nexport default Collapse\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n onDOMContentLoaded,\n getElementFromSelector,\n isElement,\n isVisible,\n isRTL,\n noop,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\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 SPACE_KEY = 'Space'\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 REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEY}|${ARROW_DOWN_KEY}|${ESCAPE_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 = `click${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_DISABLED = 'disabled'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_DROPUP = 'dropup'\nconst CLASS_NAME_DROPEND = 'dropend'\nconst CLASS_NAME_DROPSTART = 'dropstart'\nconst CLASS_NAME_MENUEND = 'dropdown-menu-end'\nconst CLASS_NAME_NAVBAR = 'navbar'\nconst CLASS_NAME_POSITION_STATIC = 'position-static'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"dropdown\"]'\nconst SELECTOR_FORM_CHILD = '.dropdown form'\nconst SELECTOR_MENU = '.dropdown-menu'\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'\n\nconst Default = {\n offset: 0,\n flip: true,\n boundary: 'scrollParent',\n reference: 'toggle',\n display: 'dynamic',\n popperConfig: null\n}\n\nconst DefaultType = {\n offset: '(number|string|function)',\n flip: 'boolean',\n boundary: '(string|element)',\n reference: '(string|element)',\n display: 'string',\n popperConfig: '(null|object)'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED)) {\n return\n }\n\n const isActive = this._element.classList.contains(CLASS_NAME_SHOW)\n\n Dropdown.clearMenus()\n\n if (isActive) {\n return\n }\n\n this.show()\n }\n\n show() {\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || this._menu.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n const parent = Dropdown.getParentFromElement(this._element)\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 // Totally disable Popper for Dropdowns in Navbar\n if (!this._inNavbar) {\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 = parent\n } else if (isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n parent.classList.add(CLASS_NAME_POSITION_STATIC)\n }\n\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\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 !parent.closest(SELECTOR_NAVBAR_NAV)) {\n [].concat(...document.body.children)\n .forEach(elem => EventHandler.on(elem, 'mouseover', null, noop()))\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n this._menu.classList.toggle(CLASS_NAME_SHOW)\n this._element.classList.toggle(CLASS_NAME_SHOW)\n EventHandler.trigger(parent, EVENT_SHOWN, relatedTarget)\n }\n\n hide() {\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || !this._menu.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n const parent = Dropdown.getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const hideEvent = EventHandler.trigger(parent, EVENT_HIDE, relatedTarget)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n if (this._popper) {\n this._popper.destroy()\n }\n\n this._menu.classList.toggle(CLASS_NAME_SHOW)\n this._element.classList.toggle(CLASS_NAME_SHOW)\n EventHandler.trigger(parent, EVENT_HIDDEN, relatedTarget)\n }\n\n dispose() {\n super.dispose()\n EventHandler.off(this._element, EVENT_KEY)\n this._menu = null\n if (this._popper) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n EventHandler.on(this._element, EVENT_CLICK, event => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...Manipulator.getDataAttributes(this._element),\n ...config\n }\n\n typeCheckConfig(NAME, config, this.constructor.DefaultType)\n\n return config\n }\n\n _getMenuElement() {\n return SelectorEngine.next(this._element, SELECTOR_MENU)[0]\n }\n\n _getPlacement() {\n const parentDropdown = this._element.parentNode\n let placement = PLACEMENT_BOTTOM\n\n // Handle dropup\n if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) {\n placement = this._menu.classList.contains(CLASS_NAME_MENUEND) ?\n PLACEMENT_TOPEND :\n PLACEMENT_TOP\n } else if (parentDropdown.classList.contains(CLASS_NAME_DROPEND)) {\n placement = PLACEMENT_RIGHT\n } else if (parentDropdown.classList.contains(CLASS_NAME_DROPSTART)) {\n placement = PLACEMENT_LEFT\n } else if (this._menu.classList.contains(CLASS_NAME_MENUEND)) {\n placement = PLACEMENT_BOTTOMEND\n }\n\n return placement\n }\n\n _detectNavbar() {\n return Boolean(this._element.closest(`.${CLASS_NAME_NAVBAR}`))\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this._config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...(this._config.offset(data.offsets, this._element) || {})\n }\n\n return data\n }\n } else {\n offset.offset = this._config.offset\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: this._getOffset(),\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n\n return {\n ...popperConfig,\n ...this._config.popperConfig\n }\n }\n\n // Static\n\n static dropdownInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(element, _config)\n }\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 static jQueryInterface(config) {\n return this.each(function () {\n Dropdown.dropdownInterface(this, config)\n })\n }\n\n static clearMenus(event) {\n if (event && (event.button === RIGHT_MOUSE_BUTTON || (event.type === 'keyup' && event.key !== TAB_KEY))) {\n return\n }\n\n const toggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\n\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown.getParentFromElement(toggles[i])\n const context = Data.getData(toggles[i], DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!toggles[i].classList.contains(CLASS_NAME_SHOW)) {\n continue\n }\n\n if (event && ((event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName)) ||\n (event.type === 'keyup' && event.key === TAB_KEY)) &&\n dropdownMenu.contains(event.target)) {\n continue\n }\n\n const hideEvent = EventHandler.trigger(parent, EVENT_HIDE, relatedTarget)\n if (hideEvent.defaultPrevented) {\n continue\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 [].concat(...document.body.children)\n .forEach(elem => EventHandler.off(elem, 'mouseover', null, noop()))\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n if (context._popper) {\n context._popper.destroy()\n }\n\n dropdownMenu.classList.remove(CLASS_NAME_SHOW)\n toggles[i].classList.remove(CLASS_NAME_SHOW)\n EventHandler.trigger(parent, EVENT_HIDDEN, relatedTarget)\n }\n }\n\n static getParentFromElement(element) {\n return getElementFromSelector(element) || element.parentNode\n }\n\n static dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ?\n event.key === SPACE_KEY || (event.key !== ESCAPE_KEY &&\n ((event.key !== ARROW_DOWN_KEY && event.key !== ARROW_UP_KEY) ||\n event.target.closest(SELECTOR_MENU))) :\n !REGEXP_KEYDOWN.test(event.key)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || this.classList.contains(CLASS_NAME_DISABLED)) {\n return\n }\n\n const parent = Dropdown.getParentFromElement(this)\n const isActive = this.classList.contains(CLASS_NAME_SHOW)\n\n if (event.key === ESCAPE_KEY) {\n const button = this.matches(SELECTOR_DATA_TOGGLE) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE)[0]\n button.focus()\n Dropdown.clearMenus()\n return\n }\n\n if (!isActive || event.key === SPACE_KEY) {\n Dropdown.clearMenus()\n return\n }\n\n const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, parent).filter(isVisible)\n\n if (!items.length) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n // Up\n if (event.key === ARROW_UP_KEY && index > 0) {\n index--\n }\n\n // Down\n if (event.key === ARROW_DOWN_KEY && index < items.length - 1) {\n index++\n }\n\n // index is -1 if the first keydown is an ArrowUp\n index = index === -1 ? 0 : index\n\n items[index].focus()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\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 event.stopPropagation()\n Dropdown.dropdownInterface(this, 'toggle')\n})\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_FORM_CHILD, e => e.stopPropagation())\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Dropdown to jQuery only if jQuery is present\n */\n\nonDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Dropdown.jQueryInterface\n $.fn[NAME].Constructor = Dropdown\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown.jQueryInterface\n }\n }\n})\n\nexport default Dropdown\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n onDOMContentLoaded,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isVisible,\n isRTL,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\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 Default = {\n backdrop: true,\n keyboard: true,\n focus: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean'\n}\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_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${EVENT_KEY}`\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEUP_DISMISS = `mouseup.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure'\nconst CLASS_NAME_BACKDROP = 'modal-backdrop'\nconst CLASS_NAME_OPEN = 'modal-open'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_STATIC = 'modal-static'\n\nconst SELECTOR_DIALOG = '.modal-dialog'\nconst SELECTOR_MODAL_BODY = '.modal-body'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"modal\"]'\nconst SELECTOR_DATA_DISMISS = '[data-bs-dismiss=\"modal\"]'\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'\nconst SELECTOR_STICKY_CONTENT = '.sticky-top'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._config = this._getConfig(config)\n this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, element)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollbarWidth = 0\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n if (this._element.classList.contains(CLASS_NAME_FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, {\n relatedTarget\n })\n\n if (this._isShown || showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, event => this.hide(event))\n\n EventHandler.on(this._dialog, EVENT_MOUSEDOWN_DISMISS, () => {\n EventHandler.one(this._element, EVENT_MOUSEUP_DISMISS, event => {\n if (event.target === this._element) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\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 const transition = this._element.classList.contains(CLASS_NAME_FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.off(document, EVENT_FOCUSIN)\n\n this._element.classList.remove(CLASS_NAME_SHOW)\n\n EventHandler.off(this._element, EVENT_CLICK_DISMISS)\n EventHandler.off(this._dialog, EVENT_MOUSEDOWN_DISMISS)\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, event => this._hideModal(event))\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach(htmlElement => EventHandler.off(htmlElement, EVENT_KEY))\n\n super.dispose()\n\n /**\n * `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `EVENT_CLICK_DATA_API` event that should remain\n */\n EventHandler.off(document, EVENT_FOCUSIN)\n\n this._config = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._isTransitioning = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const transition = this._element.classList.contains(CLASS_NAME_FADE)\n const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog)\n\n if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(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 if (modalBody) {\n modalBody.scrollTop = 0\n }\n\n if (transition) {\n reflow(this._element)\n }\n\n this._element.classList.add(CLASS_NAME_SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n\n this._isTransitioning = false\n EventHandler.trigger(this._element, EVENT_SHOWN, {\n relatedTarget\n })\n }\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._dialog)\n\n EventHandler.one(this._dialog, TRANSITION_END, transitionComplete)\n emulateTransitionEnd(this._dialog, transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n EventHandler.off(document, EVENT_FOCUSIN) // guard against infinite focus loop\n EventHandler.on(document, EVENT_FOCUSIN, event => {\n if (document !== event.target &&\n this._element !== event.target &&\n !this._element.contains(event.target)) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown) {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {\n if (this._config.keyboard && event.key === ESCAPE_KEY) {\n event.preventDefault()\n this.hide()\n } else if (!this._config.keyboard && event.key === ESCAPE_KEY) {\n this._triggerBackdropTransition()\n }\n })\n } else {\n EventHandler.off(this._element, EVENT_KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n EventHandler.on(window, EVENT_RESIZE, () => this._adjustDialog())\n } else {\n EventHandler.off(window, EVENT_RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._element.removeAttribute('role')\n this._isTransitioning = false\n this._showBackdrop(() => {\n document.body.classList.remove(CLASS_NAME_OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n })\n }\n\n _removeBackdrop() {\n this._backdrop.parentNode.removeChild(this._backdrop)\n this._backdrop = null\n }\n\n _showBackdrop(callback) {\n const animate = this._element.classList.contains(CLASS_NAME_FADE) ?\n CLASS_NAME_FADE :\n ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = CLASS_NAME_BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n document.body.appendChild(this._backdrop)\n\n EventHandler.on(this._element, EVENT_CLICK_DISMISS, event => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n\n if (event.target !== event.currentTarget) {\n return\n }\n\n if (this._config.backdrop === 'static') {\n this._triggerBackdropTransition()\n } else {\n this.hide()\n }\n })\n\n if (animate) {\n reflow(this._backdrop)\n }\n\n this._backdrop.classList.add(CLASS_NAME_SHOW)\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n\n EventHandler.one(this._backdrop, TRANSITION_END, callback)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n this._backdrop.classList.remove(CLASS_NAME_SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n callback()\n }\n\n if (this._element.classList.contains(CLASS_NAME_FADE)) {\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n EventHandler.one(this._backdrop, TRANSITION_END, callbackRemove)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else {\n callback()\n }\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\n if (!isModalOverflowing) {\n this._element.style.overflowY = 'hidden'\n }\n\n this._element.classList.add(CLASS_NAME_STATIC)\n const modalTransitionDuration = getTransitionDurationFromElement(this._dialog)\n EventHandler.off(this._element, TRANSITION_END)\n EventHandler.one(this._element, TRANSITION_END, () => {\n this._element.classList.remove(CLASS_NAME_STATIC)\n if (!isModalOverflowing) {\n EventHandler.one(this._element, TRANSITION_END, () => {\n this._element.style.overflowY = ''\n })\n emulateTransitionEnd(this._element, modalTransitionDuration)\n }\n })\n emulateTransitionEnd(this._element, modalTransitionDuration)\n this._element.focus()\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing =\n this._element.scrollHeight > document.documentElement.clientHeight\n\n if ((!this._isBodyOverflowing && isModalOverflowing && !isRTL) || (this._isBodyOverflowing && !isModalOverflowing && isRTL)) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if ((this._isBodyOverflowing && !isModalOverflowing && !isRTL) || (!this._isBodyOverflowing && isModalOverflowing && isRTL)) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n // Adjust fixed content padding\n SelectorEngine.find(SELECTOR_FIXED_CONTENT)\n .forEach(element => {\n const actualPadding = element.style.paddingRight\n const calculatedPadding = window.getComputedStyle(element)['padding-right']\n Manipulator.setDataAttribute(element, 'padding-right', actualPadding)\n element.style.paddingRight = `${Number.parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n })\n\n // Adjust sticky content margin\n SelectorEngine.find(SELECTOR_STICKY_CONTENT)\n .forEach(element => {\n const actualMargin = element.style.marginRight\n const calculatedMargin = window.getComputedStyle(element)['margin-right']\n Manipulator.setDataAttribute(element, 'margin-right', actualMargin)\n element.style.marginRight = `${Number.parseFloat(calculatedMargin) - this._scrollbarWidth}px`\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = window.getComputedStyle(document.body)['padding-right']\n\n Manipulator.setDataAttribute(document.body, 'padding-right', actualPadding)\n document.body.style.paddingRight = `${Number.parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n }\n\n document.body.classList.add(CLASS_NAME_OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n SelectorEngine.find(SELECTOR_FIXED_CONTENT)\n .forEach(element => {\n const padding = Manipulator.getDataAttribute(element, 'padding-right')\n if (typeof padding !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'padding-right')\n element.style.paddingRight = padding\n }\n })\n\n // Restore sticky content and navbar-toggler margin\n SelectorEngine.find(`${SELECTOR_STICKY_CONTENT}`)\n .forEach(element => {\n const margin = Manipulator.getDataAttribute(element, 'margin-right')\n if (typeof margin !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'margin-right')\n element.style.marginRight = margin\n }\n })\n\n // Restore body padding\n const padding = Manipulator.getDataAttribute(document.body, 'padding-right')\n if (typeof padding === 'undefined') {\n document.body.style.paddingRight = ''\n } else {\n Manipulator.removeDataAttribute(document.body, 'padding-right')\n document.body.style.paddingRight = padding\n }\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = CLASS_NAME_SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(this),\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (!data) {\n data = new Modal(this, _config)\n }\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](relatedTarget)\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n const target = getElementFromSelector(this)\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\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 let data = Data.getData(target, DATA_KEY)\n if (!data) {\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n\n data = new Modal(target, config)\n }\n\n data.show(this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Modal to jQuery only if jQuery is present\n */\n\nonDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Modal.jQueryInterface\n $.fn[NAME].Constructor = Modal\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal.jQueryInterface\n }\n }\n})\n\nexport default Modal\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst uriAttrs = new Set([\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n])\n\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[\\d+/a-z]+=*$/i\n\nconst allowedAttribute = (attr, allowedAttributeList) => {\n const attrName = attr.nodeName.toLowerCase()\n\n if (allowedAttributeList.includes(attrName)) {\n if (uriAttrs.has(attrName)) {\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, len = regExp.length; i < len; i++) {\n if (attrName.match(regExp[i])) {\n return true\n }\n }\n\n return false\n}\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\nexport function sanitizeHtml(unsafeHtml, allowList, sanitizeFn) {\n if (!unsafeHtml.length) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const allowlistKeys = Object.keys(allowList)\n const elements = [].concat(...createdDocument.body.querySelectorAll('*'))\n\n for (let i = 0, len = elements.length; i < len; i++) {\n const el = elements[i]\n const elName = el.nodeName.toLowerCase()\n\n if (!allowlistKeys.includes(elName)) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n const attributeList = [].concat(...el.attributes)\n const allowedAttributes = [].concat(allowList['*'] || [], allowList[elName] || [])\n\n attributeList.forEach(attr => {\n if (!allowedAttribute(attr, allowedAttributes)) {\n el.removeAttribute(attr.nodeName)\n }\n })\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n onDOMContentLoaded,\n TRANSITION_END,\n emulateTransitionEnd,\n findShadowRoot,\n getTransitionDurationFromElement,\n getUID,\n isElement,\n isRTL,\n noop,\n typeCheckConfig\n} from './util/index'\nimport {\n DefaultAllowlist,\n sanitizeHtml\n} from './util/sanitizer'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tooltip'\nconst DATA_KEY = 'bs.tooltip'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-tooltip'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\nconst DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn'])\n\nconst DefaultType = {\n animation: 'boolean',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string',\n delay: '(number|object)',\n html: 'boolean',\n selector: '(string|boolean)',\n placement: '(string|function)',\n offset: '(number|string|function)',\n container: '(string|element|boolean)',\n fallbackPlacement: '(string|array)',\n boundary: '(string|element)',\n customClass: '(string|function)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n allowList: 'object',\n popperConfig: '(null|object)'\n}\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 animation: true,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"tooltip-arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div>' +\n '</div>',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n selector: false,\n placement: 'top',\n offset: 0,\n container: false,\n fallbackPlacement: 'flip',\n boundary: 'scrollParent',\n customClass: '',\n sanitize: true,\n sanitizeFn: null,\n allowList: DefaultAllowlist,\n popperConfig: null\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_MODAL = 'modal'\nconst CLASS_NAME_SHOW = 'show'\n\nconst HOVER_STATE_SHOW = 'show'\nconst HOVER_STATE_OUT = 'out'\n\nconst SELECTOR_TOOLTIP_INNER = '.tooltip-inner'\n\nconst TRIGGER_HOVER = 'hover'\nconst TRIGGER_FOCUS = 'focus'\nconst TRIGGER_CLICK = 'click'\nconst TRIGGER_MANUAL = 'manual'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\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)\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(event.delegateTarget, this._getDelegateConfig())\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if (this.getTipElement().classList.contains(CLASS_NAME_SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n EventHandler.off(this._element, this.constructor.EVENT_KEY)\n EventHandler.off(this._element.closest(`.${CLASS_NAME_MODAL}`), 'hide.bs.modal', this._hideModalHandler)\n\n if (this.tip) {\n this.tip.parentNode.removeChild(this.tip)\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.config = null\n this.tip = null\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 const showEvent = EventHandler.trigger(this._element, this.constructor.Event.SHOW)\n const shadowRoot = findShadowRoot(this._element)\n const isInTheDom = shadowRoot === null ?\n this._element.ownerDocument.documentElement.contains(this._element) :\n shadowRoot.contains(this._element)\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this._element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n tip.classList.add(CLASS_NAME_FADE)\n }\n\n const placement = typeof this.config.placement === 'function' ?\n this.config.placement.call(this, tip, this._element) :\n this.config.placement\n\n const attachment = this._getAttachment(placement)\n this._addAttachmentClass(attachment)\n\n const container = this._getContainer()\n Data.setData(tip, this.constructor.DATA_KEY, this)\n\n if (!this._element.ownerDocument.documentElement.contains(this.tip)) {\n container.appendChild(tip)\n }\n\n EventHandler.trigger(this._element, this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this._element, tip, this._getPopperConfig(attachment))\n\n tip.classList.add(CLASS_NAME_SHOW)\n\n const customClass = typeof this.config.customClass === 'function' ? this.config.customClass() : this.config.customClass\n if (customClass) {\n tip.classList.add(...customClass.split(' '))\n }\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 [].concat(...document.body.children).forEach(element => {\n EventHandler.on(element, 'mouseover', noop())\n })\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n EventHandler.trigger(this._element, this.constructor.Event.SHOWN)\n\n if (prevHoverState === HOVER_STATE_OUT) {\n this._leave(null, this)\n }\n }\n\n if (this.tip.classList.contains(CLASS_NAME_FADE)) {\n const transitionDuration = getTransitionDurationFromElement(this.tip)\n EventHandler.one(this.tip, TRANSITION_END, complete)\n emulateTransitionEnd(this.tip, transitionDuration)\n } else {\n complete()\n }\n }\n }\n\n hide() {\n if (!this._popper) {\n return\n }\n\n const tip = this.getTipElement()\n const complete = () => {\n if (this._hoverState !== HOVER_STATE_SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this._element.removeAttribute('aria-describedby')\n EventHandler.trigger(this._element, this.constructor.Event.HIDDEN)\n this._popper.destroy()\n }\n\n const hideEvent = EventHandler.trigger(this._element, this.constructor.Event.HIDE)\n if (hideEvent.defaultPrevented) {\n return\n }\n\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 [].concat(...document.body.children)\n .forEach(element => EventHandler.off(element, 'mouseover', noop))\n }\n\n this._activeTrigger[TRIGGER_CLICK] = false\n this._activeTrigger[TRIGGER_FOCUS] = false\n this._activeTrigger[TRIGGER_HOVER] = false\n\n if (this.tip.classList.contains(CLASS_NAME_FADE)) {\n const transitionDuration = getTransitionDurationFromElement(tip)\n\n EventHandler.one(tip, TRANSITION_END, complete)\n emulateTransitionEnd(tip, transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n getTipElement() {\n if (this.tip) {\n return this.tip\n }\n\n const element = document.createElement('div')\n element.innerHTML = this.config.template\n\n this.tip = element.children[0]\n return this.tip\n }\n\n setContent() {\n const tip = this.getTipElement()\n this.setElementContent(SelectorEngine.findOne(SELECTOR_TOOLTIP_INNER, tip), this.getTitle())\n tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW)\n }\n\n setElementContent(element, content) {\n if (element === null) {\n return\n }\n\n if (typeof content === 'object' && isElement(content)) {\n if (content.jquery) {\n content = content[0]\n }\n\n // content is a DOM node or a jQuery\n if (this.config.html) {\n if (content.parentNode !== element) {\n element.innerHTML = ''\n element.appendChild(content)\n }\n } else {\n element.textContent = content.textContent\n }\n\n return\n }\n\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.allowList, this.config.sanitizeFn)\n }\n\n element.innerHTML = content\n } else {\n element.textContent = content\n }\n }\n\n getTitle() {\n let title = this._element.getAttribute('data-bs-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function' ?\n this.config.title.call(this._element) :\n this.config.title\n }\n\n return title\n }\n\n updateAttachment(attachment) {\n if (attachment === 'right') {\n return 'end'\n }\n\n if (attachment === 'left') {\n return 'start'\n }\n\n return attachment\n }\n\n // Private\n\n _getPopperConfig(attachment) {\n const defaultBsConfig = {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: `.${this.constructor.NAME}-arrow`\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: data => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: data => this._handlePopperPlacementChange(data)\n }\n\n return {\n ...defaultBsConfig,\n ...this.config.popperConfig\n }\n }\n\n _addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${this.updateAttachment(attachment)}`)\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this.config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...(this.config.offset(data.offsets, this._element) || {})\n }\n\n return data\n }\n } else {\n offset.offset = this.config.offset\n }\n\n return offset\n }\n\n _getContainer() {\n if (this.config.container === false) {\n return document.body\n }\n\n if (isElement(this.config.container)) {\n return this.config.container\n }\n\n return SelectorEngine.findOne(this.config.container)\n }\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach(trigger => {\n if (trigger === 'click') {\n EventHandler.on(this._element, this.constructor.Event.CLICK, this.config.selector, event => this.toggle(event)\n )\n } else if (trigger !== TRIGGER_MANUAL) {\n const eventIn = trigger === TRIGGER_HOVER ?\n this.constructor.Event.MOUSEENTER :\n this.constructor.Event.FOCUSIN\n const eventOut = trigger === TRIGGER_HOVER ?\n this.constructor.Event.MOUSELEAVE :\n this.constructor.Event.FOCUSOUT\n\n EventHandler.on(this._element, eventIn, this.config.selector, event => this._enter(event))\n EventHandler.on(this._element, eventOut, this.config.selector, event => this._leave(event))\n }\n })\n\n this._hideModalHandler = () => {\n if (this._element) {\n this.hide()\n }\n }\n\n EventHandler.on(this._element.closest(`.${CLASS_NAME_MODAL}`), 'hide.bs.modal', this._hideModalHandler)\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const title = this._element.getAttribute('title')\n const originalTitleType = typeof this._element.getAttribute('data-bs-original-title')\n\n if (title || originalTitleType !== 'string') {\n this._element.setAttribute('data-bs-original-title', title || '')\n if (title && !this._element.getAttribute('aria-label') && !this._element.textContent) {\n this._element.setAttribute('aria-label', title)\n }\n\n this._element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER\n ] = true\n }\n\n if (context.getTipElement().classList.contains(CLASS_NAME_SHOW) || context._hoverState === HOVER_STATE_SHOW) {\n context._hoverState = HOVER_STATE_SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this._element)\n\n Object.keys(dataAttributes).forEach(dataAttr => {\n if (DISALLOWED_ATTRIBUTES.has(dataAttr)) {\n delete dataAttributes[dataAttr]\n }\n })\n\n if (config && typeof config.container === 'object' && config.container.jquery) {\n config.container = config.container[0]\n }\n\n config = {\n ...this.constructor.Default,\n ...dataAttributes,\n ...(typeof config === 'object' && config ? config : {})\n }\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 typeCheckConfig(NAME, config, this.constructor.DefaultType)\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.allowList, config.sanitizeFn)\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n _handlePopperPlacementChange(popperData) {\n this.tip = popperData.instance.popper\n this._cleanTipClass()\n this._addAttachmentClass(this._getAttachment(popperData.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n\n tip.classList.remove(CLASS_NAME_FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n }\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 * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Tooltip to jQuery only if jQuery is present\n */\n\nonDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tooltip.jQueryInterface\n $.fn[NAME].Constructor = Tooltip\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip.jQueryInterface\n }\n }\n})\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getjQuery, onDOMContentLoaded } from './util/index'\nimport Data from './dom/data'\nimport SelectorEngine from './dom/selector-engine'\nimport Tooltip from './tooltip'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'popover'\nconst DATA_KEY = 'bs.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-popover'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst Default = {\n ...Tooltip.Default,\n placement: 'right',\n trigger: 'click',\n content: '',\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}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content: '(string|element|function)'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_TITLE = '.popover-header'\nconst SELECTOR_CONTENT = '.popover-body'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Popover extends Tooltip {\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n setContent() {\n const tip = this.getTipElement()\n\n // we use append for html objects to maintain js events\n this.setElementContent(SelectorEngine.findOne(SELECTOR_TITLE, tip), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this._element)\n }\n\n this.setElementContent(SelectorEngine.findOne(SELECTOR_CONTENT, tip), content)\n\n tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW)\n }\n\n // Private\n\n _addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${this.updateAttachment(attachment)}`)\n }\n\n _getContent() {\n return this._element.getAttribute('data-bs-content') || this.config.content\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n Data.setData(this, DATA_KEY, data)\n }\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 * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Popover to jQuery only if jQuery is present\n */\n\nonDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Popover.jQueryInterface\n $.fn[NAME].Constructor = Popover\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover.jQueryInterface\n }\n }\n})\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n onDOMContentLoaded,\n getSelectorFromElement,\n getUID,\n isElement,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollspy'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n offset: 10,\n method: 'auto',\n target: ''\n}\n\nconst DefaultType = {\n offset: 'number',\n method: 'string',\n target: '(string|element)'\n}\n\nconst EVENT_ACTIVATE = `activate${EVENT_KEY}`\nconst EVENT_SCROLL = `scroll${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_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_DROPDOWN = '.dropdown'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\n\nconst METHOD_OFFSET = 'offset'\nconst METHOD_POSITION = 'position'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy extends BaseComponent {\n constructor(element, config) {\n super(element)\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${SELECTOR_NAV_LINKS}, ${this._config.target} ${SELECTOR_LIST_ITEMS}, ${this._config.target} .${CLASS_NAME_DROPDOWN_ITEM}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n EventHandler.on(this._scrollElement, EVENT_SCROLL, event => this._process(event))\n\n this.refresh()\n this._process()\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window ?\n METHOD_OFFSET :\n METHOD_POSITION\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod :\n this._config.method\n\n const offsetBase = offsetMethod === METHOD_POSITION ?\n this._getScrollTop() :\n 0\n\n this._offsets = []\n this._targets = []\n this._scrollHeight = this._getScrollHeight()\n\n const targets = SelectorEngine.find(this._selector)\n\n targets.map(element => {\n const targetSelector = getSelectorFromElement(element)\n const target = targetSelector ? SelectorEngine.findOne(targetSelector) : null\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n return [\n Manipulator[offsetMethod](target).top + offsetBase,\n targetSelector\n ]\n }\n }\n\n return null\n })\n .filter(item => item)\n .sort((a, b) => a[0] - b[0])\n .forEach(item => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n super.dispose()\n EventHandler.off(this._scrollElement, EVENT_KEY)\n\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (typeof config.target !== 'string' && isElement(config.target)) {\n let { id } = config.target\n if (!id) {\n id = getUID(NAME)\n config.target.id = id\n }\n\n config.target = `#${id}`\n }\n\n typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window ?\n this._scrollElement.pageYOffset :\n this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window ?\n window.innerHeight :\n this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n for (let i = this._offsets.length; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector.split(',')\n .map(selector => `${selector}[data-bs-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const link = SelectorEngine.findOne(queries.join(','))\n\n if (link.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) {\n SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE, link.closest(SELECTOR_DROPDOWN))\n .classList.add(CLASS_NAME_ACTIVE)\n\n link.classList.add(CLASS_NAME_ACTIVE)\n } else {\n // Set triggered link as active\n link.classList.add(CLASS_NAME_ACTIVE)\n\n SelectorEngine.parents(link, SELECTOR_NAV_LIST_GROUP)\n .forEach(listGroup => {\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 SelectorEngine.prev(listGroup, `${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`)\n .forEach(item => item.classList.add(CLASS_NAME_ACTIVE))\n\n // Handle special case when .nav-link is inside .nav-item\n SelectorEngine.prev(listGroup, SELECTOR_NAV_ITEMS)\n .forEach(navItem => {\n SelectorEngine.children(navItem, SELECTOR_NAV_LINKS)\n .forEach(item => item.classList.add(CLASS_NAME_ACTIVE))\n })\n })\n }\n\n EventHandler.trigger(this._scrollElement, EVENT_ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n SelectorEngine.find(this._selector)\n .filter(node => node.classList.contains(CLASS_NAME_ACTIVE))\n .forEach(node => node.classList.remove(CLASS_NAME_ACTIVE))\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n }\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 * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n SelectorEngine.find(SELECTOR_DATA_SPY)\n .forEach(spy => new ScrollSpy(spy, Manipulator.getDataAttributes(spy)))\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .ScrollSpy to jQuery only if jQuery is present\n */\n\nonDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = ScrollSpy.jQueryInterface\n $.fn[NAME].Constructor = ScrollSpy\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy.jQueryInterface\n }\n }\n})\n\nexport default ScrollSpy\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n onDOMContentLoaded,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\n reflow\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tab'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\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}`\n\nconst CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_UL = ':scope > li > .active'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"tab\"], [data-bs-toggle=\"pill\"], [data-bs-toggle=\"list\"]'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\nconst SELECTOR_DROPDOWN_ACTIVE_CHILD = ':scope > .dropdown-menu .active'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tab extends BaseComponent {\n // Getters\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n show() {\n if ((this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n this._element.classList.contains(CLASS_NAME_ACTIVE)) ||\n this._element.classList.contains(CLASS_NAME_DISABLED)) {\n return\n }\n\n let previous\n const target = getElementFromSelector(this._element)\n const listElement = this._element.closest(SELECTOR_NAV_LIST_GROUP)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE\n previous = SelectorEngine.find(itemSelector, listElement)\n previous = previous[previous.length - 1]\n }\n\n let hideEvent = null\n\n if (previous) {\n hideEvent = EventHandler.trigger(previous, EVENT_HIDE, {\n relatedTarget: this._element\n })\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, {\n relatedTarget: previous\n })\n\n if (showEvent.defaultPrevented || (hideEvent !== null && hideEvent.defaultPrevented)) {\n return\n }\n\n this._activate(this._element, listElement)\n\n const complete = () => {\n EventHandler.trigger(previous, EVENT_HIDDEN, {\n relatedTarget: this._element\n })\n EventHandler.trigger(this._element, EVENT_SHOWN, {\n relatedTarget: previous\n })\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n // Private\n\n _activate(element, container, callback) {\n const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ?\n SelectorEngine.find(SELECTOR_ACTIVE_UL, container) :\n SelectorEngine.children(container, SELECTOR_ACTIVE)\n\n const active = activeElements[0]\n const isTransitioning = callback && (active && active.classList.contains(CLASS_NAME_FADE))\n\n const complete = () => this._transitionComplete(element, active, callback)\n\n if (active && isTransitioning) {\n const transitionDuration = getTransitionDurationFromElement(active)\n active.classList.remove(CLASS_NAME_SHOW)\n\n EventHandler.one(active, TRANSITION_END, complete)\n emulateTransitionEnd(active, transitionDuration)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n active.classList.remove(CLASS_NAME_ACTIVE)\n\n const dropdownChild = SelectorEngine.findOne(SELECTOR_DROPDOWN_ACTIVE_CHILD, active.parentNode)\n\n if (dropdownChild) {\n dropdownChild.classList.remove(CLASS_NAME_ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n element.classList.add(CLASS_NAME_ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n reflow(element)\n\n if (element.classList.contains(CLASS_NAME_FADE)) {\n element.classList.add(CLASS_NAME_SHOW)\n }\n\n if (element.parentNode && element.parentNode.classList.contains(CLASS_NAME_DROPDOWN_MENU)) {\n const dropdownElement = element.closest(SELECTOR_DROPDOWN)\n\n if (dropdownElement) {\n SelectorEngine.find(SELECTOR_DROPDOWN_TOGGLE)\n .forEach(dropdown => dropdown.classList.add(CLASS_NAME_ACTIVE))\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\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 * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault()\n\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n data.show()\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Tab to jQuery only if jQuery is present\n */\n\nonDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tab.jQueryInterface\n $.fn[NAME].Constructor = Tab\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab.jQueryInterface\n }\n }\n})\n\nexport default Tab\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n onDOMContentLoaded,\n TRANSITION_END,\n emulateTransitionEnd,\n getTransitionDurationFromElement,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'toast'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_CLICK_DISMISS = `click.dismiss${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'\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\nconst SELECTOR_DATA_DISMISS = '[data-bs-dismiss=\"toast\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n }\n\n // Getters\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get Default() {\n return Default\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\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 this._element.classList.add(CLASS_NAME_SHOW)\n\n EventHandler.trigger(this._element, EVENT_SHOWN)\n\n if (this._config.autohide) {\n this._timeout = setTimeout(() => {\n this.hide()\n }, this._config.delay)\n }\n }\n\n this._element.classList.remove(CLASS_NAME_HIDE)\n reflow(this._element)\n this._element.classList.add(CLASS_NAME_SHOWING)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n hide() {\n if (!this._element.classList.contains(CLASS_NAME_SHOW)) {\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)\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n }\n\n this._element.classList.remove(CLASS_NAME_SHOW)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n dispose() {\n this._clearTimeout()\n\n if (this._element.classList.contains(CLASS_NAME_SHOW)) {\n this._element.classList.remove(CLASS_NAME_SHOW)\n }\n\n EventHandler.off(this._element, EVENT_CLICK_DISMISS)\n\n super.dispose()\n this._config = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...(typeof config === 'object' && config ? config : {})\n }\n\n typeCheckConfig(NAME, config, this.constructor.DefaultType)\n\n return config\n }\n\n _setListeners() {\n EventHandler.on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, () => this.hide())\n }\n\n _clearTimeout() {\n clearTimeout(this._timeout)\n this._timeout = null\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new Toast(this, _config)\n }\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 * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Toast to jQuery only if jQuery is present\n */\n\nonDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Toast.jQueryInterface\n $.fn[NAME].Constructor = Toast\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Toast.jQueryInterface\n }\n }\n})\n\nexport default Toast\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): index.umd.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Alert from './src/alert'\nimport Button from './src/button'\nimport Carousel from './src/carousel'\nimport Collapse from './src/collapse'\nimport Dropdown from './src/dropdown'\nimport Modal from './src/modal'\nimport Popover from './src/popover'\nimport ScrollSpy from './src/scrollspy'\nimport Tab from './src/tab'\nimport Toast from './src/toast'\nimport Tooltip from './src/tooltip'\n\nexport default {\n Alert,\n Button,\n Carousel,\n Collapse,\n Dropdown,\n Modal,\n Popover,\n ScrollSpy,\n Tab,\n Toast,\n Tooltip\n}\n"]}
\ No newline at end of file +{"version":3,"sources":["../../js/src/util/index.js","../../js/src/dom/data.js","../../js/src/dom/event-handler.js","../../js/src/base-component.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/dom/manipulator.js","../../js/src/dom/selector-engine.js","../../js/src/carousel.js","../../js/src/collapse.js","../../js/src/dropdown.js","../../js/src/modal.js","../../js/src/util/scrollbar.js","../../js/src/offcanvas.js","../../js/src/util/sanitizer.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/toast.js","../../js/index.umd.js"],"names":["getUID","prefix","Math","floor","random","document","getElementById","getSelector","element","selector","getAttribute","hrefAttr","includes","startsWith","split","trim","getSelectorFromElement","querySelector","getElementFromSelector","getTransitionDurationFromElement","transitionDuration","transitionDelay","window","getComputedStyle","floatTransitionDuration","Number","parseFloat","floatTransitionDelay","triggerTransitionEnd","dispatchEvent","Event","isElement","obj","nodeType","emulateTransitionEnd","duration","called","emulatedDuration","addEventListener","listener","removeEventListener","setTimeout","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","toString","call","match","toLowerCase","RegExp","test","TypeError","toUpperCase","isVisible","style","parentNode","elementStyle","parentNodeStyle","display","visibility","isDisabled","Node","ELEMENT_NODE","classList","contains","disabled","hasAttribute","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","noop","reflow","offsetHeight","getjQuery","jQuery","body","isRTL","dir","defineJQueryPlugin","name","plugin","callback","$","JQUERY_NO_CONFLICT","fn","jQueryInterface","Constructor","noConflict","readyState","elementMap","Map","Data","set","key","instance","has","instanceMap","get","size","console","error","Array","from","remove","delete","namespaceRegex","stripNameRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","nativeEvents","Set","getUidEvent","uid","getEvent","findHandler","events","handler","delegationSelector","uidEventList","i","len","length","event","originalHandler","normalizeParams","originalTypeEvent","delegationFn","delegation","typeEvent","replace","custom","addHandler","oneOff","handlers","previousFn","domElements","querySelectorAll","target","this","delegateTarget","EventHandler","off","type","apply","bootstrapDelegationHandler","bootstrapHandler","removeHandler","Boolean","on","one","inNamespace","isNamespace","elementEvent","namespace","storeElementEvent","handlerKey","removeNamespacedHandlers","slice","keyHandlers","trigger","args","isNative","jQueryEvent","bubbles","nativeDispatch","defaultPrevented","evt","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","createEvent","initEvent","CustomEvent","cancelable","defineProperty","preventDefault","BaseComponent","constructor","_element","DATA_KEY","dispose","[object Object]","VERSION","Alert","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","_removeElement","closest","_destroyElement","removeChild","each","data","alertInstance","handleDismiss","Button","toggle","setAttribute","normalizeData","val","normalizeDataKey","chr","button","Manipulator","setDataAttribute","removeDataAttribute","removeAttribute","getDataAttributes","attributes","dataset","filter","pureKey","charAt","getDataAttribute","offset","rect","getBoundingClientRect","top","scrollTop","left","scrollLeft","position","offsetTop","offsetLeft","SelectorEngine","find","concat","Element","prototype","findOne","children","child","matches","parents","ancestor","push","prev","previous","previousElementSibling","next","nextElementSibling","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","ORDER_NEXT","ORDER_PREV","DIRECTION_LEFT","DIRECTION_RIGHT","Carousel","super","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","_addEventListeners","_slide","nextWhenVisible","hidden","cycle","clearInterval","_updateInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","order","_handleSwipe","absDeltax","abs","direction","_keydown","_addTouchEventListeners","start","pointerType","touches","clientX","move","end","clearTimeout","itemImg","e","add","tagName","indexOf","_getItemByOrder","activeElement","isNext","isPrev","lastItemIndex","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","_setActiveIndicatorElement","activeIndicator","indicators","parseInt","elementInterval","defaultInterval","directionOrOrder","_directionToOrder","activeElementIndex","nextElement","nextElementIndex","isCycling","directionalClassName","orderClassName","_orderToDirection","action","ride","carouselInterface","slideIndex","dataApiClickHandler","carousels","parent","Collapse","_isTransitioning","_triggerArray","id","toggleList","elem","filterElement","foundElem","_selector","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","container","tempActiveData","elemActive","collapseInterface","dimension","_getDimension","setTransitioning","scrollSize","triggerArrayLength","isTransitioning","jquery","selected","triggerArray","isOpen","triggerData","REGEXP_KEYDOWN","PLACEMENT_TOP","PLACEMENT_TOPEND","PLACEMENT_BOTTOM","PLACEMENT_BOTTOMEND","PLACEMENT_RIGHT","PLACEMENT_LEFT","boundary","reference","popperConfig","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","isActive","clearMenus","getParentFromElement","Popper","referenceElement","_getPopperConfig","isDisplayStatic","modifiers","modifier","enabled","createPopper","focus","destroy","update","_getPlacement","parentDropdown","isEnd","getPropertyValue","_getOffset","map","popperData","defaultBsPopperConfig","placement","options","dropdownInterface","toggles","context","clickEvent","dropdownMenu","some","composedPath","stopPropagation","click","items","dataApiKeydownHandler","backdrop","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_isAnimated","showEvent","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","isAnimated","_hideModal","htmlElement","handleUpdate","modalBody","appendChild","_enforceFocus","transitionComplete","_triggerBackdropTransition","_resetAdjustments","_resetScrollbar","_removeBackdrop","createElement","className","currentTarget","backdropTransitionDuration","callbackRemove","isModalOverflowing","scrollHeight","clientHeight","overflowY","modalTransitionDuration","paddingLeft","paddingRight","round","right","innerWidth","_getScrollbarWidth","_setElementAttributes","calculatedValue","styleProp","clientWidth","actualValue","_resetElementAttributes","scrollDiv","scrollbarWidth","width","getWidth","documentWidth","removeProperty","scroll","Offcanvas","overflow","scrollBarHide","_enforceFocusOnElement","blur","undefined","allReadyOpen","el","uriAttrs","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","attr","allowedAttributeList","attrName","nodeName","nodeValue","regExp","attrRegex","sanitizeHtml","unsafeHtml","allowList","sanitizeFn","createdDocument","DOMParser","parseFromString","allowlistKeys","elements","elName","attributeList","allowedAttributes","innerHTML","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","html","fallbackPlacements","customClass","sanitize","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","*","a","area","b","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","NAME","EVENT_KEY","enable","disable","toggleEnabled","_initializeOnDelegatedTarget","_isWithActiveTrigger","_enter","_leave","getTipElement","_hideModalHandler","Error","isWithContent","shadowRoot","isInTheDom","ownerDocument","tipId","setContent","attachment","_getAttachment","_addAttachmentClass","_getContainer","complete","prevHoverState","_cleanTipClass","getTitle","setElementContent","content","textContent","updateAttachment","dataKey","_getDelegateConfig","altBoundary","phase","_handlePopperPlacementChange","onFirstUpdate","eventIn","eventOut","_fixTitle","originalTitleType","dataAttributes","dataAttr","tabClass","token","tClass","state","popper","Popover","_getContent","method","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targetSelector","targetBCR","height","item","sort","pageYOffset","max","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","queries","link","join","listGroup","navItem","node","spy","Tab","listElement","itemSelector","hideEvent","active","_transitionComplete","dropdownChild","dropdown","autohide","Toast","_clearTimeout"],"mappings":"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","sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => {\n if (obj === null || obj === undefined) {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n prefix += Math.floor(Math.random() * MAX_UID)\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelector = element => {\n let selector = element.getAttribute('data-bs-target')\n\n if (!selector || selector === '#') {\n let hrefAttr = 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 (!hrefAttr || (!hrefAttr.includes('#') && !hrefAttr.startsWith('.'))) {\n return null\n }\n\n // Just in case some CMS puts out a full URL with the anchor appended\n if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {\n hrefAttr = '#' + hrefAttr.split('#')[1]\n }\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null\n }\n\n return selector\n}\n\nconst getSelectorFromElement = element => {\n const selector = getSelector(element)\n\n if (selector) {\n return document.querySelector(selector) ? selector : null\n }\n\n return null\n}\n\nconst getElementFromSelector = element => {\n const selector = getSelector(element)\n\n return selector ? document.querySelector(selector) : null\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 = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes).forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ? 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`\n )\n }\n })\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n const elementStyle = getComputedStyle(element)\n const parentNodeStyle = getComputedStyle(element.parentNode)\n\n return elementStyle.display !== 'none' &&\n parentNodeStyle.display !== 'none' &&\n elementStyle.visibility !== 'hidden'\n }\n\n return false\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 = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nconst getjQuery = () => {\n const { jQuery } = window\n\n if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n return jQuery\n }\n\n return null\n}\n\nconst onDOMContentLoaded = callback => {\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', callback)\n } else {\n callback()\n }\n}\n\nconst isRTL = () => document.documentElement.dir === 'rtl'\n\nconst defineJQueryPlugin = (name, plugin) => {\n onDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\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\nexport {\n getUID,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n isVisible,\n isDisabled,\n findShadowRoot,\n noop,\n reflow,\n getjQuery,\n onDOMContentLoaded,\n isRTL,\n defineJQueryPlugin\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\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 (v5.0.0-beta3): dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getjQuery } from '../util/index'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\nconst nativeEvents = new Set([\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 * ------------------------------------------------------------------------\n * Private methods\n * ------------------------------------------------------------------------\n */\n\nfunction getUidEvent(element, uid) {\n return (uid && `${uid}::${uidEvent++}`) || element.uidEvent || uidEvent++\n}\n\nfunction getEvent(element) {\n const uid = getUidEvent(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 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 (let i = domElements.length; i--;) {\n if (domElements[i] === target) {\n event.delegateTarget = target\n\n if (handler.oneOff) {\n // eslint-disable-next-line unicorn/consistent-destructuring\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(target, [event])\n }\n }\n }\n\n // To please ESLint\n return null\n }\n}\n\nfunction findHandler(events, handler, delegationSelector = null) {\n const uidEventList = Object.keys(events)\n\n for (let i = 0, len = uidEventList.length; i < len; i++) {\n const event = events[uidEventList[i]]\n\n if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {\n return event\n }\n }\n\n return null\n}\n\nfunction normalizeParams(originalTypeEvent, handler, delegationFn) {\n const delegation = typeof handler === 'string'\n const originalHandler = delegation ? delegationFn : handler\n\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n let typeEvent = originalTypeEvent.replace(stripNameRegex, '')\n const custom = customEvents[typeEvent]\n\n if (custom) {\n typeEvent = custom\n }\n\n const isNative = nativeEvents.has(typeEvent)\n\n if (!isNative) {\n typeEvent = originalTypeEvent\n }\n\n return [delegation, originalHandler, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n if (!handler) {\n handler = delegationFn\n delegationFn = null\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const events = getEvent(element)\n const handlers = events[typeEvent] || (events[typeEvent] = {})\n const previousFn = findHandler(handlers, originalHandler, delegation ? handler : null)\n\n if (previousFn) {\n previousFn.oneOff = previousFn.oneOff && oneOff\n\n return\n }\n\n const uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, ''))\n const fn = delegation ?\n bootstrapDelegationHandler(element, handler, delegationFn) :\n bootstrapHandler(element, handler)\n\n fn.delegationSelector = delegation ? handler : null\n fn.originalHandler = originalHandler\n fn.oneOff = oneOff\n fn.uidEvent = uid\n handlers[uid] = fn\n\n element.addEventListener(typeEvent, fn, delegation)\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 Object.keys(storeElementEvent).forEach(handlerKey => {\n if (handlerKey.includes(namespace)) {\n const event = storeElementEvent[handlerKey]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, false)\n },\n\n one(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFn) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getEvent(element)\n const isNamespace = originalTypeEvent.startsWith('.')\n\n if (typeof originalHandler !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!events || !events[typeEvent]) {\n return\n }\n\n removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null)\n return\n }\n\n if (isNamespace) {\n Object.keys(events).forEach(elementEvent => {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1))\n })\n }\n\n const storeElementEvent = events[typeEvent] || {}\n Object.keys(storeElementEvent).forEach(keyHandlers => {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.includes(handlerKey)) {\n const event = storeElementEvent[keyHandlers]\n\n removeHandler(element, events, typeEvent, event.originalHandler, 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 = event.replace(stripNameRegex, '')\n const inNamespace = event !== typeEvent\n const isNative = nativeEvents.has(typeEvent)\n\n let jQueryEvent\n let bubbles = true\n let nativeDispatch = true\n let defaultPrevented = false\n let evt = null\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 if (isNative) {\n evt = document.createEvent('HTMLEvents')\n evt.initEvent(typeEvent, bubbles, true)\n } else {\n evt = new CustomEvent(event, {\n bubbles,\n cancelable: true\n })\n }\n\n // merge custom information in our event\n if (typeof args !== 'undefined') {\n Object.keys(args).forEach(key => {\n Object.defineProperty(evt, key, {\n get() {\n return args[key]\n }\n })\n })\n }\n\n if (defaultPrevented) {\n evt.preventDefault()\n }\n\n if (nativeDispatch) {\n element.dispatchEvent(evt)\n }\n\n if (evt.defaultPrevented && typeof jQueryEvent !== 'undefined') {\n jQueryEvent.preventDefault()\n }\n\n return evt\n }\n}\n\nexport default EventHandler\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): base-component.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Data from './dom/data'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst VERSION = '5.0.0-beta3'\n\nclass BaseComponent {\n constructor(element) {\n element = typeof element === 'string' ? document.querySelector(element) : element\n\n if (!element) {\n return\n }\n\n this._element = element\n Data.set(this._element, this.constructor.DATA_KEY, this)\n }\n\n dispose() {\n Data.remove(this._element, this.constructor.DATA_KEY)\n this._element = null\n }\n\n /** Static */\n\n static getInstance(element) {\n return Data.get(element, this.DATA_KEY)\n }\n\n static get VERSION() {\n return VERSION\n }\n}\n\nexport default BaseComponent\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n defineJQueryPlugin,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'alert'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst SELECTOR_DISMISS = '[data-bs-dismiss=\"alert\"]'\n\nconst EVENT_CLOSE = `close${EVENT_KEY}`\nconst EVENT_CLOSED = `closed${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_ALERT = 'alert'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Alert extends BaseComponent {\n // Getters\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n close(element) {\n const rootElement = element ? this._getRootElement(element) : this._element\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent === null || customEvent.defaultPrevented) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n // Private\n\n _getRootElement(element) {\n return getElementFromSelector(element) || element.closest(`.${CLASS_NAME_ALERT}`)\n }\n\n _triggerCloseEvent(element) {\n return EventHandler.trigger(element, EVENT_CLOSE)\n }\n\n _removeElement(element) {\n element.classList.remove(CLASS_NAME_SHOW)\n\n if (!element.classList.contains(CLASS_NAME_FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = getTransitionDurationFromElement(element)\n\n EventHandler.one(element, 'transitionend', () => this._destroyElement(element))\n emulateTransitionEnd(element, transitionDuration)\n }\n\n _destroyElement(element) {\n if (element.parentNode) {\n element.parentNode.removeChild(element)\n }\n\n EventHandler.trigger(element, EVENT_CLOSED)\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.get(this, DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DISMISS, Alert.handleDismiss(new Alert()))\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Alert to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(NAME, Alert)\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { defineJQueryPlugin } from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\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'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"button\"]'\n\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Button extends BaseComponent {\n // Getters\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n toggle() {\n // Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method\n this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE))\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.get(this, DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\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\n let data = Data.get(button, DATA_KEY)\n if (!data) {\n data = new Button(button)\n }\n\n data.toggle()\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Button to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(NAME, Button)\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(val) {\n if (val === 'true') {\n return true\n }\n\n if (val === 'false') {\n return false\n }\n\n if (val === Number(val).toString()) {\n return Number(val)\n }\n\n if (val === '' || val === 'null') {\n return null\n }\n\n return val\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\n Object.keys(element.dataset)\n .filter(key => key.startsWith('bs'))\n .forEach(key => {\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 offset(element) {\n const rect = element.getBoundingClientRect()\n\n return {\n top: rect.top + document.body.scrollTop,\n left: rect.left + document.body.scrollLeft\n }\n },\n\n position(element) {\n return {\n top: element.offsetTop,\n left: element.offsetLeft\n }\n }\n}\n\nexport default Manipulator\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NODE_TEXT = 3\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)\n .filter(child => child.matches(selector))\n },\n\n parents(element, selector) {\n const parents = []\n\n let ancestor = element.parentNode\n\n while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {\n if (ancestor.matches(selector)) {\n parents.push(ancestor)\n }\n\n ancestor = ancestor.parentNode\n }\n\n return parents\n },\n\n prev(element, selector) {\n let previous = element.previousElementSibling\n\n while (previous) {\n if (previous.matches(selector)) {\n return [previous]\n }\n\n previous = previous.previousElementSibling\n }\n\n return []\n },\n\n 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\nexport default SelectorEngine\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n defineJQueryPlugin,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isRTL,\n isVisible,\n reflow,\n triggerTransitionEnd,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\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\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\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_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 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'\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event'\n\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_ITEM = '.active.carousel-item'\nconst SELECTOR_ITEM = '.carousel-item'\nconst SELECTOR_ITEM_IMG = '.carousel-item img'\nconst SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev'\nconst SELECTOR_INDICATORS = '.carousel-indicators'\nconst SELECTOR_INDICATOR = '[data-bs-target]'\nconst SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]'\nconst SELECTOR_DATA_RIDE = '[data-bs-ride=\"carousel\"]'\n\nconst POINTER_TYPE_TOUCH = 'touch'\nconst POINTER_TYPE_PEN = 'pen'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent)\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(ORDER_NEXT)\n }\n }\n\n nextWhenVisible() {\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 if (!this._isSliding) {\n this._slide(ORDER_PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (SelectorEngine.findOne(SELECTOR_NEXT_PREV, this._element)) {\n triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config && this._config.interval && !this._isPaused) {\n this._updateInterval()\n\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._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 if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const order = index > activeIndex ?\n ORDER_NEXT :\n ORDER_PREV\n\n this._slide(order, this._items[index])\n }\n\n dispose() {\n EventHandler.off(this._element, EVENT_KEY)\n\n this._items = null\n this._config = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n\n super.dispose()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n this.touchDeltaX = 0\n\n if (!direction) {\n return\n }\n\n this._slide(direction > 0 ? DIRECTION_RIGHT : DIRECTION_LEFT)\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, event => this.pause(event))\n EventHandler.on(this._element, EVENT_MOUSELEAVE, event => this.cycle(event))\n }\n\n if (this._config.touch && this._touchSupported) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n const start = event => {\n if (this._pointerEvent && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH)) {\n this.touchStartX = event.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.touches[0].clientX\n }\n }\n\n const move = event => {\n // ensure swiping with one touch and not pinching\n this.touchDeltaX = event.touches && event.touches.length > 1 ?\n 0 :\n event.touches[0].clientX - this.touchStartX\n }\n\n const end = event => {\n if (this._pointerEvent && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH)) {\n this.touchDeltaX = event.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\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(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n SelectorEngine.find(SELECTOR_ITEM_IMG, this._element).forEach(itemImg => {\n EventHandler.on(itemImg, EVENT_DRAG_START, e => e.preventDefault())\n })\n\n if (this._pointerEvent) {\n EventHandler.on(this._element, EVENT_POINTERDOWN, event => start(event))\n EventHandler.on(this._element, EVENT_POINTERUP, event => end(event))\n\n this._element.classList.add(CLASS_NAME_POINTER_EVENT)\n } else {\n EventHandler.on(this._element, EVENT_TOUCHSTART, event => start(event))\n EventHandler.on(this._element, EVENT_TOUCHMOVE, event => move(event))\n EventHandler.on(this._element, EVENT_TOUCHEND, event => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n if (event.key === ARROW_LEFT_KEY) {\n event.preventDefault()\n this._slide(DIRECTION_LEFT)\n } else if (event.key === ARROW_RIGHT_KEY) {\n event.preventDefault()\n this._slide(DIRECTION_RIGHT)\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode ?\n SelectorEngine.find(SELECTOR_ITEM, element.parentNode) :\n []\n\n return this._items.indexOf(element)\n }\n\n _getItemByOrder(order, activeElement) {\n const isNext = order === ORDER_NEXT\n const isPrev = order === ORDER_PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = (isPrev && activeIndex === 0) || (isNext && activeIndex === lastItemIndex)\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = isPrev ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1 ?\n this._items[this._items.length - 1] :\n this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element))\n\n return EventHandler.trigger(this._element, EVENT_SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\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 indicators = SelectorEngine.find(SELECTOR_INDICATOR, this._indicatorsElement)\n\n for (let i = 0; i < indicators.length; i++) {\n if (Number.parseInt(indicators[i].getAttribute('data-bs-slide-to'), 10) === this._getItemIndex(element)) {\n indicators[i].classList.add(CLASS_NAME_ACTIVE)\n indicators[i].setAttribute('aria-current', 'true')\n break\n }\n }\n }\n }\n\n _updateInterval() {\n const element = this._activeElement || SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n\n if (!element) {\n return\n }\n\n const elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10)\n\n if (elementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval\n this._config.interval = elementInterval\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval\n }\n }\n\n _slide(directionOrOrder, element) {\n const order = this._directionToOrder(directionOrOrder)\n const activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || this._getItemByOrder(order, activeElement)\n\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n const isNext = order === ORDER_NEXT\n const directionalClassName = isNext ? CLASS_NAME_START : CLASS_NAME_END\n const orderClassName = isNext ? CLASS_NAME_NEXT : CLASS_NAME_PREV\n const eventDirectionName = this._orderToDirection(order)\n\n if (nextElement && nextElement.classList.contains(CLASS_NAME_ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.defaultPrevented) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n this._activeElement = nextElement\n\n if (this._element.classList.contains(CLASS_NAME_SLIDE)) {\n nextElement.classList.add(orderClassName)\n\n reflow(nextElement)\n\n activeElement.classList.add(directionalClassName)\n nextElement.classList.add(directionalClassName)\n\n const transitionDuration = getTransitionDurationFromElement(activeElement)\n\n EventHandler.one(activeElement, 'transitionend', () => {\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 setTimeout(() => {\n EventHandler.trigger(this._element, EVENT_SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }, 0)\n })\n\n emulateTransitionEnd(activeElement, transitionDuration)\n } else {\n activeElement.classList.remove(CLASS_NAME_ACTIVE)\n nextElement.classList.add(CLASS_NAME_ACTIVE)\n\n this._isSliding = false\n EventHandler.trigger(this._element, EVENT_SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n _directionToOrder(direction) {\n if (![DIRECTION_RIGHT, DIRECTION_LEFT].includes(direction)) {\n return direction\n }\n\n if (isRTL()) {\n return direction === DIRECTION_RIGHT ? ORDER_PREV : ORDER_NEXT\n }\n\n return direction === DIRECTION_RIGHT ? ORDER_NEXT : ORDER_PREV\n }\n\n _orderToDirection(order) {\n if (![ORDER_NEXT, ORDER_PREV].includes(order)) {\n return order\n }\n\n if (isRTL()) {\n return order === ORDER_NEXT ? DIRECTION_LEFT : DIRECTION_RIGHT\n }\n\n return order === ORDER_NEXT ? DIRECTION_RIGHT : DIRECTION_LEFT\n }\n\n // Static\n\n static carouselInterface(element, config) {\n let data = Data.get(element, DATA_KEY)\n let _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element)\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(element, _config)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n\n data[action]()\n } else if (_config.interval && _config.ride) {\n data.pause()\n data.cycle()\n }\n }\n\n static jQueryInterface(config) {\n return this.each(function () {\n Carousel.carouselInterface(this, config)\n })\n }\n\n static dataApiClickHandler(event) {\n const target = getElementFromSelector(this)\n\n if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {\n return\n }\n\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n const slideIndex = this.getAttribute('data-bs-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel.carouselInterface(target, config)\n\n if (slideIndex) {\n Data.get(target, DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, Carousel.dataApiClickHandler)\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE)\n\n for (let i = 0, len = carousels.length; i < len; i++) {\n Carousel.carouselInterface(carousels[i], Data.get(carousels[i], DATA_KEY))\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Carousel to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(NAME, Carousel)\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n defineJQueryPlugin,\n emulateTransitionEnd,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isElement,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'collapse'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n toggle: true,\n parent: ''\n}\n\nconst DefaultType = {\n toggle: 'boolean',\n parent: '(string|element)'\n}\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'\n\nconst WIDTH = 'width'\nconst HEIGHT = 'height'\n\nconst SELECTOR_ACTIVES = '.show, .collapsing'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"collapse\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._isTransitioning = false\n this._config = this._getConfig(config)\n this._triggerArray = SelectorEngine.find(\n `${SELECTOR_DATA_TOGGLE}[href=\"#${this._element.id}\"],` +\n `${SELECTOR_DATA_TOGGLE}[data-bs-target=\"#${this._element.id}\"]`\n )\n\n const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\n\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = getSelectorFromElement(elem)\n const filterElement = SelectorEngine.find(selector)\n .filter(foundElem => foundElem === this._element)\n\n if (selector !== null && filterElement.length) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n toggle() {\n if (this._element.classList.contains(CLASS_NAME_SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning || this._element.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = SelectorEngine.find(SELECTOR_ACTIVES, this._parent)\n .filter(elem => {\n if (typeof this._config.parent === 'string') {\n return elem.getAttribute('data-bs-parent') === this._config.parent\n }\n\n return elem.classList.contains(CLASS_NAME_COLLAPSE)\n })\n\n if (actives.length === 0) {\n actives = null\n }\n }\n\n const container = SelectorEngine.findOne(this._selector)\n if (actives) {\n const tempActiveData = actives.find(elem => container !== elem)\n activesData = tempActiveData ? Data.get(tempActiveData, DATA_KEY) : null\n\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = EventHandler.trigger(this._element, EVENT_SHOW)\n if (startEvent.defaultPrevented) {\n return\n }\n\n if (actives) {\n actives.forEach(elemActive => {\n if (container !== elemActive) {\n Collapse.collapseInterface(elemActive, 'hide')\n }\n\n if (!activesData) {\n Data.set(elemActive, DATA_KEY, null)\n }\n })\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 if (this._triggerArray.length) {\n this._triggerArray.forEach(element => {\n element.classList.remove(CLASS_NAME_COLLAPSED)\n element.setAttribute('aria-expanded', true)\n })\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\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 this.setTransitioning(false)\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 const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, 'transitionend', complete)\n\n emulateTransitionEnd(this._element, transitionDuration)\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning || !this._element.classList.contains(CLASS_NAME_SHOW)) {\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 const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const elem = getElementFromSelector(trigger)\n\n if (elem && !elem.classList.contains(CLASS_NAME_SHOW)) {\n trigger.classList.add(CLASS_NAME_COLLAPSED)\n trigger.setAttribute('aria-expanded', false)\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(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 const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, 'transitionend', complete)\n emulateTransitionEnd(this._element, transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n super.dispose()\n this._config = null\n this._parent = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n return this._element.classList.contains(WIDTH) ? WIDTH : HEIGHT\n }\n\n _getParent() {\n let { parent } = this._config\n\n if (isElement(parent)) {\n // it's a jQuery object\n if (typeof parent.jquery !== 'undefined' || typeof parent[0] !== 'undefined') {\n parent = parent[0]\n }\n } else {\n parent = SelectorEngine.findOne(parent)\n }\n\n const selector = `${SELECTOR_DATA_TOGGLE}[data-bs-parent=\"${parent}\"]`\n\n SelectorEngine.find(selector, parent)\n .forEach(element => {\n const selected = getElementFromSelector(element)\n\n this._addAriaAndCollapsedClass(\n selected,\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n if (!element || !triggerArray.length) {\n return\n }\n\n const isOpen = element.classList.contains(CLASS_NAME_SHOW)\n\n triggerArray.forEach(elem => {\n if (isOpen) {\n elem.classList.remove(CLASS_NAME_COLLAPSED)\n } else {\n elem.classList.add(CLASS_NAME_COLLAPSED)\n }\n\n elem.setAttribute('aria-expanded', isOpen)\n })\n }\n\n // Static\n\n static collapseInterface(element, config) {\n let data = Data.get(element, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element),\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(element, _config)\n }\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 static jQueryInterface(config) {\n return this.each(function () {\n Collapse.collapseInterface(this, config)\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\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 const triggerData = Manipulator.getDataAttributes(this)\n const selector = getSelectorFromElement(this)\n const selectorElements = SelectorEngine.find(selector)\n\n selectorElements.forEach(element => {\n const data = Data.get(element, DATA_KEY)\n let config\n if (data) {\n // update parent attribute\n if (data._parent === null && typeof triggerData.parent === 'string') {\n data._config.parent = triggerData.parent\n data._parent = data._getParent()\n }\n\n config = 'toggle'\n } else {\n config = triggerData\n }\n\n Collapse.collapseInterface(element, config)\n })\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Collapse to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(NAME, Collapse)\n\nexport default Collapse\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport * as Popper from '@popperjs/core'\n\nimport {\n defineJQueryPlugin,\n getElementFromSelector,\n isElement,\n isVisible,\n isRTL,\n noop,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\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 SPACE_KEY = 'Space'\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 REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEY}|${ARROW_DOWN_KEY}|${ESCAPE_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 = `click${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_DISABLED = 'disabled'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_DROPUP = 'dropup'\nconst CLASS_NAME_DROPEND = 'dropend'\nconst CLASS_NAME_DROPSTART = 'dropstart'\nconst CLASS_NAME_NAVBAR = 'navbar'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"dropdown\"]'\nconst SELECTOR_MENU = '.dropdown-menu'\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'\n\nconst Default = {\n offset: [0, 2],\n boundary: 'clippingParents',\n reference: 'toggle',\n display: 'dynamic',\n popperConfig: null\n}\n\nconst DefaultType = {\n offset: '(array|string|function)',\n boundary: '(string|element)',\n reference: '(string|element|object)',\n display: 'string',\n popperConfig: '(null|object|function)'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED)) {\n return\n }\n\n const isActive = this._element.classList.contains(CLASS_NAME_SHOW)\n\n Dropdown.clearMenus()\n\n if (isActive) {\n return\n }\n\n this.show()\n }\n\n show() {\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || this._menu.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n const parent = Dropdown.getParentFromElement(this._element)\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 // Totally disable Popper for Dropdowns in Navbar\n if (this._inNavbar) {\n Manipulator.setDataAttribute(this._menu, 'popper', 'none')\n } else {\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 = parent\n } else if (isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n } else if (typeof this._config.reference === 'object') {\n referenceElement = this._config.reference\n }\n\n const popperConfig = this._getPopperConfig()\n const isDisplayStatic = popperConfig.modifiers.find(modifier => modifier.name === 'applyStyles' && modifier.enabled === false)\n\n this._popper = Popper.createPopper(referenceElement, this._menu, popperConfig)\n\n if (isDisplayStatic) {\n Manipulator.setDataAttribute(this._menu, 'popper', 'static')\n }\n }\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 !parent.closest(SELECTOR_NAVBAR_NAV)) {\n [].concat(...document.body.children)\n .forEach(elem => EventHandler.on(elem, 'mouseover', null, noop()))\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n this._menu.classList.toggle(CLASS_NAME_SHOW)\n this._element.classList.toggle(CLASS_NAME_SHOW)\n EventHandler.trigger(this._element, EVENT_SHOWN, relatedTarget)\n }\n\n hide() {\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || !this._menu.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE, relatedTarget)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n if (this._popper) {\n this._popper.destroy()\n }\n\n this._menu.classList.toggle(CLASS_NAME_SHOW)\n this._element.classList.toggle(CLASS_NAME_SHOW)\n Manipulator.removeDataAttribute(this._menu, 'popper')\n EventHandler.trigger(this._element, EVENT_HIDDEN, relatedTarget)\n }\n\n dispose() {\n EventHandler.off(this._element, EVENT_KEY)\n this._menu = null\n\n if (this._popper) {\n this._popper.destroy()\n this._popper = null\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\n _addEventListeners() {\n EventHandler.on(this._element, EVENT_CLICK, event => {\n event.preventDefault()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...Manipulator.getDataAttributes(this._element),\n ...config\n }\n\n typeCheckConfig(NAME, config, this.constructor.DefaultType)\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 _getMenuElement() {\n return SelectorEngine.next(this._element, SELECTOR_MENU)[0]\n }\n\n _getPlacement() {\n const parentDropdown = this._element.parentNode\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 // 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(`.${CLASS_NAME_NAVBAR}`) !== null\n }\n\n _getOffset() {\n const { offset } = this._config\n\n if (typeof offset === 'string') {\n return offset.split(',').map(val => Number.parseInt(val, 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\n if (this._config.display === 'static') {\n defaultBsPopperConfig.modifiers = [{\n name: 'applyStyles',\n enabled: false\n }]\n }\n\n return {\n ...defaultBsPopperConfig,\n ...(typeof this._config.popperConfig === 'function' ? this._config.popperConfig(defaultBsPopperConfig) : this._config.popperConfig)\n }\n }\n\n // Static\n\n static dropdownInterface(element, config) {\n let data = Data.get(element, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(element, _config)\n }\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 static jQueryInterface(config) {\n return this.each(function () {\n Dropdown.dropdownInterface(this, config)\n })\n }\n\n static clearMenus(event) {\n if (event) {\n if (event.button === RIGHT_MOUSE_BUTTON || (event.type === 'keyup' && event.key !== TAB_KEY)) {\n return\n }\n\n if (/input|select|textarea|form/i.test(event.target.tagName)) {\n return\n }\n }\n\n const toggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\n\n for (let i = 0, len = toggles.length; i < len; i++) {\n const context = Data.get(toggles[i], DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!toggles[i].classList.contains(CLASS_NAME_SHOW)) {\n continue\n }\n\n if (event) {\n // Don't close the menu if the clicked element or one of its parents is the dropdown button\n if ([context._element].some(element => event.composedPath().includes(element))) {\n continue\n }\n\n // Tab navigation through the dropdown menu shouldn't close the menu\n if (event.type === 'keyup' && event.key === TAB_KEY && dropdownMenu.contains(event.target)) {\n continue\n }\n }\n\n const hideEvent = EventHandler.trigger(toggles[i], EVENT_HIDE, relatedTarget)\n if (hideEvent.defaultPrevented) {\n continue\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 [].concat(...document.body.children)\n .forEach(elem => EventHandler.off(elem, 'mouseover', null, noop()))\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n if (context._popper) {\n context._popper.destroy()\n }\n\n dropdownMenu.classList.remove(CLASS_NAME_SHOW)\n toggles[i].classList.remove(CLASS_NAME_SHOW)\n Manipulator.removeDataAttribute(dropdownMenu, 'popper')\n EventHandler.trigger(toggles[i], EVENT_HIDDEN, relatedTarget)\n }\n }\n\n static getParentFromElement(element) {\n return getElementFromSelector(element) || element.parentNode\n }\n\n static dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ?\n event.key === SPACE_KEY || (event.key !== ESCAPE_KEY &&\n ((event.key !== ARROW_DOWN_KEY && event.key !== ARROW_UP_KEY) ||\n event.target.closest(SELECTOR_MENU))) :\n !REGEXP_KEYDOWN.test(event.key)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || this.classList.contains(CLASS_NAME_DISABLED)) {\n return\n }\n\n const parent = Dropdown.getParentFromElement(this)\n const isActive = this.classList.contains(CLASS_NAME_SHOW)\n\n if (event.key === ESCAPE_KEY) {\n const button = this.matches(SELECTOR_DATA_TOGGLE) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE)[0]\n button.focus()\n Dropdown.clearMenus()\n return\n }\n\n if (!isActive && (event.key === ARROW_UP_KEY || event.key === ARROW_DOWN_KEY)) {\n const button = this.matches(SELECTOR_DATA_TOGGLE) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE)[0]\n button.click()\n return\n }\n\n if (!isActive || event.key === SPACE_KEY) {\n Dropdown.clearMenus()\n return\n }\n\n const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, parent).filter(isVisible)\n\n if (!items.length) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n // Up\n if (event.key === ARROW_UP_KEY && index > 0) {\n index--\n }\n\n // Down\n if (event.key === ARROW_DOWN_KEY && index < items.length - 1) {\n index++\n }\n\n // index is -1 if the first keydown is an ArrowUp\n index = index === -1 ? 0 : index\n\n items[index].focus()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\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.dropdownInterface(this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Dropdown to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(NAME, Dropdown)\n\nexport default Dropdown\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n defineJQueryPlugin,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isVisible,\n isRTL,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\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 Default = {\n backdrop: true,\n keyboard: true,\n focus: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean'\n}\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_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${EVENT_KEY}`\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEUP_DISMISS = `mouseup.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure'\nconst CLASS_NAME_BACKDROP = 'modal-backdrop'\nconst CLASS_NAME_OPEN = 'modal-open'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_STATIC = 'modal-static'\n\nconst SELECTOR_DIALOG = '.modal-dialog'\nconst SELECTOR_MODAL_BODY = '.modal-body'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"modal\"]'\nconst SELECTOR_DATA_DISMISS = '[data-bs-dismiss=\"modal\"]'\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'\nconst SELECTOR_STICKY_CONTENT = '.sticky-top'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._config = this._getConfig(config)\n this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, this._element)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollbarWidth = 0\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n if (this._isAnimated()) {\n this._isTransitioning = true\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, {\n relatedTarget\n })\n\n if (this._isShown || showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, event => this.hide(event))\n\n EventHandler.on(this._dialog, EVENT_MOUSEDOWN_DISMISS, () => {\n EventHandler.one(this._element, EVENT_MOUSEUP_DISMISS, event => {\n if (event.target === this._element) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\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 const isAnimated = this._isAnimated()\n\n if (isAnimated) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.off(document, EVENT_FOCUSIN)\n\n this._element.classList.remove(CLASS_NAME_SHOW)\n\n EventHandler.off(this._element, EVENT_CLICK_DISMISS)\n EventHandler.off(this._dialog, EVENT_MOUSEDOWN_DISMISS)\n\n if (isAnimated) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, 'transitionend', event => this._hideModal(event))\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach(htmlElement => EventHandler.off(htmlElement, EVENT_KEY))\n\n super.dispose()\n\n /**\n * `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `EVENT_CLICK_DATA_API` event that should remain\n */\n EventHandler.off(document, EVENT_FOCUSIN)\n\n this._config = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._isTransitioning = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const isAnimated = this._isAnimated()\n const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog)\n\n if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(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 if (modalBody) {\n modalBody.scrollTop = 0\n }\n\n if (isAnimated) {\n reflow(this._element)\n }\n\n this._element.classList.add(CLASS_NAME_SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n\n this._isTransitioning = false\n EventHandler.trigger(this._element, EVENT_SHOWN, {\n relatedTarget\n })\n }\n\n if (isAnimated) {\n const transitionDuration = getTransitionDurationFromElement(this._dialog)\n\n EventHandler.one(this._dialog, 'transitionend', transitionComplete)\n emulateTransitionEnd(this._dialog, transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n EventHandler.off(document, EVENT_FOCUSIN) // guard against infinite focus loop\n EventHandler.on(document, EVENT_FOCUSIN, event => {\n if (document !== event.target &&\n this._element !== event.target &&\n !this._element.contains(event.target)) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown) {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {\n if (this._config.keyboard && event.key === ESCAPE_KEY) {\n event.preventDefault()\n this.hide()\n } else if (!this._config.keyboard && event.key === ESCAPE_KEY) {\n this._triggerBackdropTransition()\n }\n })\n } else {\n EventHandler.off(this._element, EVENT_KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n EventHandler.on(window, EVENT_RESIZE, () => this._adjustDialog())\n } else {\n EventHandler.off(window, EVENT_RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._element.removeAttribute('role')\n this._isTransitioning = false\n this._showBackdrop(() => {\n document.body.classList.remove(CLASS_NAME_OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n })\n }\n\n _removeBackdrop() {\n this._backdrop.parentNode.removeChild(this._backdrop)\n this._backdrop = null\n }\n\n _showBackdrop(callback) {\n const isAnimated = this._isAnimated()\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = CLASS_NAME_BACKDROP\n\n if (isAnimated) {\n this._backdrop.classList.add(CLASS_NAME_FADE)\n }\n\n document.body.appendChild(this._backdrop)\n\n EventHandler.on(this._element, EVENT_CLICK_DISMISS, event => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n\n if (event.target !== event.currentTarget) {\n return\n }\n\n if (this._config.backdrop === 'static') {\n this._triggerBackdropTransition()\n } else {\n this.hide()\n }\n })\n\n if (isAnimated) {\n reflow(this._backdrop)\n }\n\n this._backdrop.classList.add(CLASS_NAME_SHOW)\n\n if (!isAnimated) {\n callback()\n return\n }\n\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n\n EventHandler.one(this._backdrop, 'transitionend', callback)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n this._backdrop.classList.remove(CLASS_NAME_SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n callback()\n }\n\n if (isAnimated) {\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n EventHandler.one(this._backdrop, 'transitionend', callbackRemove)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else {\n callback()\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\n if (!isModalOverflowing) {\n this._element.style.overflowY = 'hidden'\n }\n\n this._element.classList.add(CLASS_NAME_STATIC)\n const modalTransitionDuration = getTransitionDurationFromElement(this._dialog)\n EventHandler.off(this._element, 'transitionend')\n EventHandler.one(this._element, 'transitionend', () => {\n this._element.classList.remove(CLASS_NAME_STATIC)\n if (!isModalOverflowing) {\n EventHandler.one(this._element, 'transitionend', () => {\n this._element.style.overflowY = ''\n })\n emulateTransitionEnd(this._element, modalTransitionDuration)\n }\n })\n emulateTransitionEnd(this._element, modalTransitionDuration)\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\n if ((!this._isBodyOverflowing && isModalOverflowing && !isRTL()) || (this._isBodyOverflowing && !isModalOverflowing && isRTL())) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if ((this._isBodyOverflowing && !isModalOverflowing && !isRTL()) || (!this._isBodyOverflowing && isModalOverflowing && isRTL())) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n this._setElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight', calculatedValue => calculatedValue + this._scrollbarWidth)\n this._setElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight', calculatedValue => calculatedValue - this._scrollbarWidth)\n this._setElementAttributes('body', 'paddingRight', calculatedValue => calculatedValue + this._scrollbarWidth)\n }\n\n document.body.classList.add(CLASS_NAME_OPEN)\n }\n\n _setElementAttributes(selector, styleProp, callback) {\n SelectorEngine.find(selector)\n .forEach(element => {\n if (element !== document.body && window.innerWidth > element.clientWidth + this._scrollbarWidth) {\n return\n }\n\n const actualValue = element.style[styleProp]\n const calculatedValue = window.getComputedStyle(element)[styleProp]\n Manipulator.setDataAttribute(element, styleProp, actualValue)\n element.style[styleProp] = callback(Number.parseFloat(calculatedValue)) + 'px'\n })\n }\n\n _resetScrollbar() {\n this._resetElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight')\n this._resetElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight')\n this._resetElementAttributes('body', 'paddingRight')\n }\n\n _resetElementAttributes(selector, styleProp) {\n SelectorEngine.find(selector).forEach(element => {\n const value = Manipulator.getDataAttribute(element, styleProp)\n if (typeof value === 'undefined' && element === document.body) {\n element.style[styleProp] = ''\n } else {\n Manipulator.removeDataAttribute(element, styleProp)\n element.style[styleProp] = value\n }\n })\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = CLASS_NAME_SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = Data.get(this, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(this),\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (!data) {\n data = new Modal(this, _config)\n }\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](relatedTarget)\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n const target = getElementFromSelector(this)\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\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 let data = Data.get(target, DATA_KEY)\n if (!data) {\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n\n data = new Modal(target, config)\n }\n\n data.toggle(this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Modal to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(NAME, Modal)\n\nexport default Modal\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): util/scrollBar.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport SelectorEngine from '../dom/selector-engine'\nimport Manipulator from '../dom/manipulator'\n\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed'\nconst SELECTOR_STICKY_CONTENT = '.sticky-top'\n\nconst 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\nconst hide = (width = getWidth()) => {\n document.body.style.overflow = 'hidden'\n _setElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight', calculatedValue => calculatedValue + width)\n _setElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight', calculatedValue => calculatedValue - width)\n _setElementAttributes('body', 'paddingRight', calculatedValue => calculatedValue + width)\n}\n\nconst _setElementAttributes = (selector, styleProp, callback) => {\n const scrollbarWidth = getWidth()\n SelectorEngine.find(selector)\n .forEach(element => {\n if (element !== document.body && window.innerWidth > element.clientWidth + scrollbarWidth) {\n return\n }\n\n const actualValue = element.style[styleProp]\n const calculatedValue = window.getComputedStyle(element)[styleProp]\n Manipulator.setDataAttribute(element, styleProp, actualValue)\n element.style[styleProp] = callback(Number.parseFloat(calculatedValue)) + 'px'\n })\n}\n\nconst reset = () => {\n document.body.style.overflow = 'auto'\n _resetElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight')\n _resetElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight')\n _resetElementAttributes('body', 'paddingRight')\n}\n\nconst _resetElementAttributes = (selector, styleProp) => {\n SelectorEngine.find(selector).forEach(element => {\n const value = Manipulator.getDataAttribute(element, styleProp)\n if (typeof value === 'undefined' && element === document.body) {\n element.style.removeProperty(styleProp)\n } else {\n Manipulator.removeDataAttribute(element, styleProp)\n element.style[styleProp] = value\n }\n })\n}\n\nconst isBodyOverflowing = () => {\n return getWidth() > 0\n}\n\nexport {\n getWidth,\n hide,\n isBodyOverflowing,\n reset\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): offcanvas.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n defineJQueryPlugin,\n getElementFromSelector,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isDisabled,\n isVisible,\n typeCheckConfig\n} from './util/index'\nimport { hide as scrollBarHide, reset as scrollBarReset } from './util/scrollbar'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport BaseComponent from './base-component'\nimport SelectorEngine from './dom/selector-engine'\nimport Manipulator from './dom/manipulator'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\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 Default = {\n backdrop: true,\n keyboard: true,\n scroll: false\n}\n\nconst DefaultType = {\n backdrop: 'boolean',\n keyboard: 'boolean',\n scroll: 'boolean'\n}\n\nconst CLASS_NAME_BACKDROP_BODY = 'offcanvas-backdrop'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_TOGGLING = 'offcanvas-toggling'\nconst OPEN_SELECTOR = '.offcanvas.show'\nconst ACTIVE_SELECTOR = `${OPEN_SELECTOR}, .${CLASS_NAME_TOGGLING}`\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_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\n\nconst SELECTOR_DATA_DISMISS = '[data-bs-dismiss=\"offcanvas\"]'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"offcanvas\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Offcanvas extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._config = this._getConfig(config)\n this._isShown = false\n this._addEventListeners()\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown) {\n return\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, { relatedTarget })\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n this._element.style.visibility = 'visible'\n\n if (this._config.backdrop) {\n document.body.classList.add(CLASS_NAME_BACKDROP_BODY)\n }\n\n if (!this._config.scroll) {\n scrollBarHide()\n }\n\n this._element.classList.add(CLASS_NAME_TOGGLING)\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n this._element.setAttribute('role', 'dialog')\n this._element.classList.add(CLASS_NAME_SHOW)\n\n const completeCallBack = () => {\n this._element.classList.remove(CLASS_NAME_TOGGLING)\n EventHandler.trigger(this._element, EVENT_SHOWN, { relatedTarget })\n this._enforceFocusOnElement(this._element)\n }\n\n setTimeout(completeCallBack, getTransitionDurationFromElement(this._element))\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._element.classList.add(CLASS_NAME_TOGGLING)\n EventHandler.off(document, EVENT_FOCUSIN)\n this._element.blur()\n this._isShown = false\n this._element.classList.remove(CLASS_NAME_SHOW)\n\n const completeCallback = () => {\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._element.removeAttribute('role')\n this._element.style.visibility = 'hidden'\n\n if (this._config.backdrop) {\n document.body.classList.remove(CLASS_NAME_BACKDROP_BODY)\n }\n\n if (!this._config.scroll) {\n scrollBarReset()\n }\n\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n this._element.classList.remove(CLASS_NAME_TOGGLING)\n }\n\n setTimeout(completeCallback, getTransitionDurationFromElement(this._element))\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...(typeof config === 'object' ? config : {})\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _enforceFocusOnElement(element) {\n EventHandler.off(document, EVENT_FOCUSIN) // guard against infinite focus loop\n EventHandler.on(document, EVENT_FOCUSIN, event => {\n if (document !== event.target &&\n element !== event.target &&\n !element.contains(event.target)) {\n element.focus()\n }\n })\n element.focus()\n }\n\n _addEventListeners() {\n EventHandler.on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, () => this.hide())\n\n EventHandler.on(document, 'keydown', event => {\n if (this._config.keyboard && event.key === ESCAPE_KEY) {\n this.hide()\n }\n })\n\n EventHandler.on(document, EVENT_CLICK_DATA_API, event => {\n const target = SelectorEngine.findOne(getSelectorFromElement(event.target))\n if (!this._element.contains(event.target) && target !== this._element) {\n this.hide()\n }\n })\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Data.get(this, DATA_KEY) || new Offcanvas(this, typeof config === 'object' ? 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 * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n const target = getElementFromSelector(this)\n\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n if (isDisabled(this)) {\n return\n }\n\n EventHandler.one(target, EVENT_HIDDEN, () => {\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 allReadyOpen = SelectorEngine.findOne(ACTIVE_SELECTOR)\n if (allReadyOpen && allReadyOpen !== target) {\n return\n }\n\n const data = Data.get(target, DATA_KEY) || new Offcanvas(target)\n\n data.toggle(this)\n})\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n SelectorEngine.find(OPEN_SELECTOR).forEach(el => (Data.get(el, DATA_KEY) || new Offcanvas(el)).show())\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\ndefineJQueryPlugin(NAME, Offcanvas)\n\nexport default Offcanvas\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst uriAttrs = new Set([\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n])\n\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/i\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[\\d+/a-z]+=*$/i\n\nconst allowedAttribute = (attr, allowedAttributeList) => {\n const attrName = attr.nodeName.toLowerCase()\n\n if (allowedAttributeList.includes(attrName)) {\n if (uriAttrs.has(attrName)) {\n return Boolean(SAFE_URL_PATTERN.test(attr.nodeValue) || DATA_URL_PATTERN.test(attr.nodeValue))\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, len = regExp.length; i < len; i++) {\n if (regExp[i].test(attrName)) {\n return true\n }\n }\n\n return false\n}\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\nexport function sanitizeHtml(unsafeHtml, allowList, sanitizeFn) {\n if (!unsafeHtml.length) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const allowlistKeys = Object.keys(allowList)\n const elements = [].concat(...createdDocument.body.querySelectorAll('*'))\n\n for (let i = 0, len = elements.length; i < len; i++) {\n const el = elements[i]\n const elName = el.nodeName.toLowerCase()\n\n if (!allowlistKeys.includes(elName)) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n const attributeList = [].concat(...el.attributes)\n const allowedAttributes = [].concat(allowList['*'] || [], allowList[elName] || [])\n\n attributeList.forEach(attr => {\n if (!allowedAttribute(attr, allowedAttributes)) {\n el.removeAttribute(attr.nodeName)\n }\n })\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport * as Popper from '@popperjs/core'\n\nimport {\n defineJQueryPlugin,\n emulateTransitionEnd,\n findShadowRoot,\n getTransitionDurationFromElement,\n getUID,\n isElement,\n isRTL,\n noop,\n typeCheckConfig\n} from './util/index'\nimport {\n DefaultAllowlist,\n sanitizeHtml\n} from './util/sanitizer'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tooltip'\nconst DATA_KEY = 'bs.tooltip'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-tooltip'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\nconst DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn'])\n\nconst DefaultType = {\n animation: 'boolean',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string',\n delay: '(number|object)',\n html: 'boolean',\n selector: '(string|boolean)',\n placement: '(string|function)',\n offset: '(array|string|function)',\n container: '(string|element|boolean)',\n fallbackPlacements: 'array',\n boundary: '(string|element)',\n customClass: '(string|function)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n allowList: 'object',\n popperConfig: '(null|object|function)'\n}\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 animation: true,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"tooltip-arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div>' +\n '</div>',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n selector: false,\n placement: 'top',\n offset: [0, 0],\n container: false,\n fallbackPlacements: ['top', 'right', 'bottom', 'left'],\n boundary: 'clippingParents',\n customClass: '',\n sanitize: true,\n sanitizeFn: null,\n allowList: DefaultAllowlist,\n popperConfig: null\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_MODAL = 'modal'\nconst CLASS_NAME_SHOW = 'show'\n\nconst HOVER_STATE_SHOW = 'show'\nconst HOVER_STATE_OUT = 'out'\n\nconst SELECTOR_TOOLTIP_INNER = '.tooltip-inner'\n\nconst TRIGGER_HOVER = 'hover'\nconst TRIGGER_FOCUS = 'focus'\nconst TRIGGER_CLICK = 'click'\nconst TRIGGER_MANUAL = 'manual'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\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)\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const context = this._initializeOnDelegatedTarget(event)\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if (this.getTipElement().classList.contains(CLASS_NAME_SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n EventHandler.off(this._element, this.constructor.EVENT_KEY)\n EventHandler.off(this._element.closest(`.${CLASS_NAME_MODAL}`), 'hide.bs.modal', this._hideModalHandler)\n\n if (this.tip && this.tip.parentNode) {\n this.tip.parentNode.removeChild(this.tip)\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.config = null\n this.tip = null\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.Event.SHOW)\n const shadowRoot = findShadowRoot(this._element)\n const isInTheDom = shadowRoot === null ?\n this._element.ownerDocument.documentElement.contains(this._element) :\n shadowRoot.contains(this._element)\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this._element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n tip.classList.add(CLASS_NAME_FADE)\n }\n\n const placement = typeof this.config.placement === 'function' ?\n this.config.placement.call(this, tip, this._element) :\n this.config.placement\n\n const attachment = this._getAttachment(placement)\n this._addAttachmentClass(attachment)\n\n const container = this._getContainer()\n Data.set(tip, this.constructor.DATA_KEY, this)\n\n if (!this._element.ownerDocument.documentElement.contains(this.tip)) {\n container.appendChild(tip)\n EventHandler.trigger(this._element, this.constructor.Event.INSERTED)\n }\n\n if (this._popper) {\n this._popper.update()\n } else {\n this._popper = Popper.createPopper(this._element, tip, this._getPopperConfig(attachment))\n }\n\n tip.classList.add(CLASS_NAME_SHOW)\n\n const customClass = typeof this.config.customClass === 'function' ? this.config.customClass() : this.config.customClass\n if (customClass) {\n tip.classList.add(...customClass.split(' '))\n }\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 [].concat(...document.body.children).forEach(element => {\n EventHandler.on(element, 'mouseover', noop())\n })\n }\n\n const complete = () => {\n const prevHoverState = this._hoverState\n\n this._hoverState = null\n EventHandler.trigger(this._element, this.constructor.Event.SHOWN)\n\n if (prevHoverState === HOVER_STATE_OUT) {\n this._leave(null, this)\n }\n }\n\n if (this.tip.classList.contains(CLASS_NAME_FADE)) {\n const transitionDuration = getTransitionDurationFromElement(this.tip)\n EventHandler.one(this.tip, 'transitionend', complete)\n emulateTransitionEnd(this.tip, transitionDuration)\n } else {\n complete()\n }\n }\n\n hide() {\n if (!this._popper) {\n return\n }\n\n const tip = this.getTipElement()\n const complete = () => {\n if (this._isWithActiveTrigger()) {\n return\n }\n\n if (this._hoverState !== HOVER_STATE_SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this._element.removeAttribute('aria-describedby')\n EventHandler.trigger(this._element, this.constructor.Event.HIDDEN)\n\n if (this._popper) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n const hideEvent = EventHandler.trigger(this._element, this.constructor.Event.HIDE)\n if (hideEvent.defaultPrevented) {\n return\n }\n\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 [].concat(...document.body.children)\n .forEach(element => EventHandler.off(element, 'mouseover', noop))\n }\n\n this._activeTrigger[TRIGGER_CLICK] = false\n this._activeTrigger[TRIGGER_FOCUS] = false\n this._activeTrigger[TRIGGER_HOVER] = false\n\n if (this.tip.classList.contains(CLASS_NAME_FADE)) {\n const transitionDuration = getTransitionDurationFromElement(tip)\n\n EventHandler.one(tip, 'transitionend', complete)\n emulateTransitionEnd(tip, transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.update()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n getTipElement() {\n if (this.tip) {\n return this.tip\n }\n\n const element = document.createElement('div')\n element.innerHTML = this.config.template\n\n this.tip = element.children[0]\n return this.tip\n }\n\n setContent() {\n const tip = this.getTipElement()\n this.setElementContent(SelectorEngine.findOne(SELECTOR_TOOLTIP_INNER, tip), this.getTitle())\n tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW)\n }\n\n setElementContent(element, content) {\n if (element === null) {\n return\n }\n\n if (typeof content === 'object' && isElement(content)) {\n if (content.jquery) {\n content = content[0]\n }\n\n // content is a DOM node or a jQuery\n if (this.config.html) {\n if (content.parentNode !== element) {\n element.innerHTML = ''\n element.appendChild(content)\n }\n } else {\n element.textContent = content.textContent\n }\n\n return\n }\n\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.allowList, this.config.sanitizeFn)\n }\n\n element.innerHTML = content\n } else {\n element.textContent = content\n }\n }\n\n getTitle() {\n let title = this._element.getAttribute('data-bs-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function' ?\n this.config.title.call(this._element) :\n this.config.title\n }\n\n return title\n }\n\n updateAttachment(attachment) {\n if (attachment === 'right') {\n return 'end'\n }\n\n if (attachment === 'left') {\n return 'start'\n }\n\n return attachment\n }\n\n // Private\n\n _initializeOnDelegatedTarget(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.get(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(event.delegateTarget, this._getDelegateConfig())\n Data.set(event.delegateTarget, dataKey, context)\n }\n\n return context\n }\n\n _getOffset() {\n const { offset } = this.config\n\n if (typeof offset === 'string') {\n return offset.split(',').map(val => Number.parseInt(val, 10))\n }\n\n if (typeof offset === 'function') {\n return popperData => offset(popperData, this._element)\n }\n\n return offset\n }\n\n _getPopperConfig(attachment) {\n const defaultBsPopperConfig = {\n placement: attachment,\n modifiers: [\n {\n name: 'flip',\n options: {\n altBoundary: true,\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: 'onChange',\n enabled: true,\n phase: 'afterWrite',\n fn: data => this._handlePopperPlacementChange(data)\n }\n ],\n onFirstUpdate: data => {\n if (data.options.placement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n }\n }\n\n return {\n ...defaultBsPopperConfig,\n ...(typeof this.config.popperConfig === 'function' ? this.config.popperConfig(defaultBsPopperConfig) : this.config.popperConfig)\n }\n }\n\n _addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${this.updateAttachment(attachment)}`)\n }\n\n _getContainer() {\n if (this.config.container === false) {\n return document.body\n }\n\n if (isElement(this.config.container)) {\n return this.config.container\n }\n\n return SelectorEngine.findOne(this.config.container)\n }\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach(trigger => {\n if (trigger === 'click') {\n EventHandler.on(this._element, this.constructor.Event.CLICK, this.config.selector, event => this.toggle(event))\n } else if (trigger !== TRIGGER_MANUAL) {\n const eventIn = trigger === TRIGGER_HOVER ?\n this.constructor.Event.MOUSEENTER :\n this.constructor.Event.FOCUSIN\n const eventOut = trigger === TRIGGER_HOVER ?\n this.constructor.Event.MOUSELEAVE :\n this.constructor.Event.FOCUSOUT\n\n EventHandler.on(this._element, eventIn, this.config.selector, event => this._enter(event))\n EventHandler.on(this._element, eventOut, this.config.selector, event => this._leave(event))\n }\n })\n\n this._hideModalHandler = () => {\n if (this._element) {\n this.hide()\n }\n }\n\n EventHandler.on(this._element.closest(`.${CLASS_NAME_MODAL}`), 'hide.bs.modal', this._hideModalHandler)\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const title = this._element.getAttribute('title')\n const originalTitleType = typeof this._element.getAttribute('data-bs-original-title')\n\n if (title || originalTitleType !== 'string') {\n this._element.setAttribute('data-bs-original-title', title || '')\n if (title && !this._element.getAttribute('aria-label') && !this._element.textContent) {\n this._element.setAttribute('aria-label', title)\n }\n\n this._element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n context = this._initializeOnDelegatedTarget(event, context)\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER\n ] = true\n }\n\n if (context.getTipElement().classList.contains(CLASS_NAME_SHOW) || context._hoverState === HOVER_STATE_SHOW) {\n context._hoverState = HOVER_STATE_SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n context = this._initializeOnDelegatedTarget(event, context)\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER\n ] = context._element.contains(event.relatedTarget)\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this._element)\n\n Object.keys(dataAttributes).forEach(dataAttr => {\n if (DISALLOWED_ATTRIBUTES.has(dataAttr)) {\n delete dataAttributes[dataAttr]\n }\n })\n\n if (config && typeof config.container === 'object' && config.container.jquery) {\n config.container = config.container[0]\n }\n\n config = {\n ...this.constructor.Default,\n ...dataAttributes,\n ...(typeof config === 'object' && config ? config : {})\n }\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 typeCheckConfig(NAME, config, this.constructor.DefaultType)\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.allowList, config.sanitizeFn)\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n _handlePopperPlacementChange(popperData) {\n const { state } = popperData\n\n if (!state) {\n return\n }\n\n this.tip = state.elements.popper\n this._cleanTipClass()\n this._addAttachmentClass(this._getAttachment(state.placement))\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.get(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n }\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 * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Tooltip to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(NAME, Tooltip)\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { defineJQueryPlugin } from './util/index'\nimport Data from './dom/data'\nimport SelectorEngine from './dom/selector-engine'\nimport Tooltip from './tooltip'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'popover'\nconst DATA_KEY = 'bs.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-popover'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst Default = {\n ...Tooltip.Default,\n placement: 'right',\n offset: [0, 8],\n trigger: 'click',\n content: '',\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}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content: '(string|element|function)'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_TITLE = '.popover-header'\nconst SELECTOR_CONTENT = '.popover-body'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Popover extends Tooltip {\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n setContent() {\n const tip = this.getTipElement()\n\n // we use append for html objects to maintain js events\n this.setElementContent(SelectorEngine.findOne(SELECTOR_TITLE, tip), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this._element)\n }\n\n this.setElementContent(SelectorEngine.findOne(SELECTOR_CONTENT, tip), content)\n\n tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW)\n }\n\n // Private\n\n _addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${this.updateAttachment(attachment)}`)\n }\n\n _getContent() {\n return this._element.getAttribute('data-bs-content') || this.config.content\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.get(this, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n Data.set(this, DATA_KEY, data)\n }\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 * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Popover to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(NAME, Popover)\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n defineJQueryPlugin,\n getSelectorFromElement,\n getUID,\n isElement,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollspy'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n offset: 10,\n method: 'auto',\n target: ''\n}\n\nconst DefaultType = {\n offset: 'number',\n method: 'string',\n target: '(string|element)'\n}\n\nconst EVENT_ACTIVATE = `activate${EVENT_KEY}`\nconst EVENT_SCROLL = `scroll${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_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_DROPDOWN = '.dropdown'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\n\nconst METHOD_OFFSET = 'offset'\nconst METHOD_POSITION = 'position'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy extends BaseComponent {\n constructor(element, config) {\n super(element)\n this._scrollElement = this._element.tagName === 'BODY' ? window : this._element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${SELECTOR_NAV_LINKS}, ${this._config.target} ${SELECTOR_LIST_ITEMS}, ${this._config.target} .${CLASS_NAME_DROPDOWN_ITEM}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n EventHandler.on(this._scrollElement, EVENT_SCROLL, () => this._process())\n\n this.refresh()\n this._process()\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window ?\n METHOD_OFFSET :\n METHOD_POSITION\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod :\n this._config.method\n\n const offsetBase = offsetMethod === METHOD_POSITION ?\n this._getScrollTop() :\n 0\n\n this._offsets = []\n this._targets = []\n this._scrollHeight = this._getScrollHeight()\n\n const targets = SelectorEngine.find(this._selector)\n\n targets.map(element => {\n const targetSelector = getSelectorFromElement(element)\n const target = targetSelector ? SelectorEngine.findOne(targetSelector) : null\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n return [\n Manipulator[offsetMethod](target).top + offsetBase,\n targetSelector\n ]\n }\n }\n\n return null\n })\n .filter(item => item)\n .sort((a, b) => a[0] - b[0])\n .forEach(item => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n super.dispose()\n EventHandler.off(this._scrollElement, EVENT_KEY)\n\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (typeof config.target !== 'string' && isElement(config.target)) {\n let { id } = config.target\n if (!id) {\n id = getUID(NAME)\n config.target.id = id\n }\n\n config.target = `#${id}`\n }\n\n typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window ?\n this._scrollElement.pageYOffset :\n this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window ?\n window.innerHeight :\n this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n for (let i = this._offsets.length; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector.split(',')\n .map(selector => `${selector}[data-bs-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const link = SelectorEngine.findOne(queries.join(','))\n\n if (link.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) {\n SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE, link.closest(SELECTOR_DROPDOWN))\n .classList.add(CLASS_NAME_ACTIVE)\n\n link.classList.add(CLASS_NAME_ACTIVE)\n } else {\n // Set triggered link as active\n link.classList.add(CLASS_NAME_ACTIVE)\n\n SelectorEngine.parents(link, SELECTOR_NAV_LIST_GROUP)\n .forEach(listGroup => {\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 SelectorEngine.prev(listGroup, `${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`)\n .forEach(item => item.classList.add(CLASS_NAME_ACTIVE))\n\n // Handle special case when .nav-link is inside .nav-item\n SelectorEngine.prev(listGroup, SELECTOR_NAV_ITEMS)\n .forEach(navItem => {\n SelectorEngine.children(navItem, SELECTOR_NAV_LINKS)\n .forEach(item => item.classList.add(CLASS_NAME_ACTIVE))\n })\n })\n }\n\n EventHandler.trigger(this._scrollElement, EVENT_ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n SelectorEngine.find(this._selector)\n .filter(node => node.classList.contains(CLASS_NAME_ACTIVE))\n .forEach(node => node.classList.remove(CLASS_NAME_ACTIVE))\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.get(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n }\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 * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n SelectorEngine.find(SELECTOR_DATA_SPY)\n .forEach(spy => new ScrollSpy(spy, Manipulator.getDataAttributes(spy)))\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .ScrollSpy to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(NAME, ScrollSpy)\n\nexport default ScrollSpy\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n defineJQueryPlugin,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isDisabled,\n reflow\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tab'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\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}`\n\nconst CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_UL = ':scope > li > .active'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"tab\"], [data-bs-toggle=\"pill\"], [data-bs-toggle=\"list\"]'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\nconst SELECTOR_DROPDOWN_ACTIVE_CHILD = ':scope > .dropdown-menu .active'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tab extends BaseComponent {\n // Getters\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n show() {\n if ((this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n this._element.classList.contains(CLASS_NAME_ACTIVE)) ||\n isDisabled(this._element)) {\n return\n }\n\n let previous\n const target = getElementFromSelector(this._element)\n const listElement = this._element.closest(SELECTOR_NAV_LIST_GROUP)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE\n previous = SelectorEngine.find(itemSelector, listElement)\n previous = previous[previous.length - 1]\n }\n\n const hideEvent = previous ?\n EventHandler.trigger(previous, EVENT_HIDE, {\n relatedTarget: this._element\n }) :\n null\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, {\n relatedTarget: previous\n })\n\n if (showEvent.defaultPrevented || (hideEvent !== null && hideEvent.defaultPrevented)) {\n return\n }\n\n this._activate(this._element, listElement)\n\n const complete = () => {\n EventHandler.trigger(previous, EVENT_HIDDEN, {\n relatedTarget: this._element\n })\n EventHandler.trigger(this._element, EVENT_SHOWN, {\n relatedTarget: previous\n })\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n // Private\n\n _activate(element, container, callback) {\n const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ?\n SelectorEngine.find(SELECTOR_ACTIVE_UL, container) :\n SelectorEngine.children(container, SELECTOR_ACTIVE)\n\n const active = activeElements[0]\n const isTransitioning = callback && (active && active.classList.contains(CLASS_NAME_FADE))\n\n const complete = () => this._transitionComplete(element, active, callback)\n\n if (active && isTransitioning) {\n const transitionDuration = getTransitionDurationFromElement(active)\n active.classList.remove(CLASS_NAME_SHOW)\n\n EventHandler.one(active, 'transitionend', complete)\n emulateTransitionEnd(active, transitionDuration)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n active.classList.remove(CLASS_NAME_ACTIVE)\n\n const dropdownChild = SelectorEngine.findOne(SELECTOR_DROPDOWN_ACTIVE_CHILD, active.parentNode)\n\n if (dropdownChild) {\n dropdownChild.classList.remove(CLASS_NAME_ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n element.classList.add(CLASS_NAME_ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n reflow(element)\n\n if (element.classList.contains(CLASS_NAME_FADE)) {\n element.classList.add(CLASS_NAME_SHOW)\n }\n\n if (element.parentNode && element.parentNode.classList.contains(CLASS_NAME_DROPDOWN_MENU)) {\n const dropdownElement = element.closest(SELECTOR_DROPDOWN)\n\n if (dropdownElement) {\n SelectorEngine.find(SELECTOR_DROPDOWN_TOGGLE)\n .forEach(dropdown => dropdown.classList.add(CLASS_NAME_ACTIVE))\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Data.get(this, DATA_KEY) || new Tab(this)\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 * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault()\n\n const data = Data.get(this, DATA_KEY) || new Tab(this)\n data.show()\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Tab to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(NAME, Tab)\n\nexport default Tab\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n defineJQueryPlugin,\n emulateTransitionEnd,\n getTransitionDurationFromElement,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'toast'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_CLICK_DISMISS = `click.dismiss${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'\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\nconst SELECTOR_DATA_DISMISS = '[data-bs-dismiss=\"toast\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n }\n\n // Getters\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get Default() {\n return Default\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\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 this._element.classList.add(CLASS_NAME_SHOW)\n\n EventHandler.trigger(this._element, EVENT_SHOWN)\n\n if (this._config.autohide) {\n this._timeout = setTimeout(() => {\n this.hide()\n }, this._config.delay)\n }\n }\n\n this._element.classList.remove(CLASS_NAME_HIDE)\n reflow(this._element)\n this._element.classList.add(CLASS_NAME_SHOWING)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, 'transitionend', complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n hide() {\n if (!this._element.classList.contains(CLASS_NAME_SHOW)) {\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)\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n }\n\n this._element.classList.remove(CLASS_NAME_SHOW)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, 'transitionend', complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n dispose() {\n this._clearTimeout()\n\n if (this._element.classList.contains(CLASS_NAME_SHOW)) {\n this._element.classList.remove(CLASS_NAME_SHOW)\n }\n\n EventHandler.off(this._element, EVENT_CLICK_DISMISS)\n\n super.dispose()\n this._config = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...(typeof config === 'object' && config ? config : {})\n }\n\n typeCheckConfig(NAME, config, this.constructor.DefaultType)\n\n return config\n }\n\n _setListeners() {\n EventHandler.on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, () => this.hide())\n }\n\n _clearTimeout() {\n clearTimeout(this._timeout)\n this._timeout = null\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.get(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new Toast(this, _config)\n }\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 * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Toast to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(NAME, Toast)\n\nexport default Toast\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): index.umd.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Alert from './src/alert'\nimport Button from './src/button'\nimport Carousel from './src/carousel'\nimport Collapse from './src/collapse'\nimport Dropdown from './src/dropdown'\nimport Modal from './src/modal'\nimport Offcanvas from './src/offcanvas'\nimport Popover from './src/popover'\nimport ScrollSpy from './src/scrollspy'\nimport Tab from './src/tab'\nimport Toast from './src/toast'\nimport Tooltip from './src/tooltip'\n\nexport default {\n Alert,\n Button,\n Carousel,\n Collapse,\n Dropdown,\n Modal,\n Offcanvas,\n Popover,\n ScrollSpy,\n Tab,\n Toast,\n Tooltip\n}\n"]}
\ No newline at end of file |
