{"version":3,"sources":["index.js"],"names":["MAX_UID","MILLISECONDS_MULTIPLIER","TRANSITION_END","parseSelector","selector","window","CSS","escape","replace","match","id","concat","toType","object","Object","prototype","toString","call","toLowerCase","getUID","prefix","Math","floor","random","document","getElementById","getTransitionDurationFromElement","element","transitionDuration","floatTransitionDuration","floatTransitionDelay","_window$getComputedSt","getComputedStyle","transitionDelay","Number","parseFloat","split","triggerTransitionEnd","dispatchEvent","Event","isElement","_typeof","jquery","nodeType","getElement","length","querySelector","isVisible","getClientRects","elementIsVisible","getPropertyValue","closedDetails","closest","summary","parentNode","isDisabled","Node","ELEMENT_NODE","classList","contains","disabled","hasAttribute","getAttribute","findShadowRoot","root","documentElement","attachShadow","getRootNode","ShadowRoot","noop","reflow","offsetHeight","getjQuery","jQuery","body","DOMContentLoadedCallbacks","onDOMContentLoaded","callback","readyState","addEventListener","_i","_DOMContentLoadedCall","push","isRTL","dir","defineJQueryPlugin","plugin","name","JQUERY_NO_CONFLICT","$","NAME","fn","jQueryInterface","Constructor","noConflict","execute","possibleCallback","args","arguments","undefined","defaultValue","apply","_toConsumableArray","executeAfterTransition","transitionElement","emulatedDuration","called","handler","_ref","target","removeEventListener","setTimeout","getNextActiveElement","list","activeElement","shouldGetNext","isCycleAllowed","listLength","index","indexOf","max","min"],"mappings":"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","file":"index.js","sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1_000_000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\n\n/**\n * Properly escape IDs selectors to handle weird IDs\n * @param {string} selector\n * @returns {string}\n */\nconst parseSelector = selector => {\n if (selector && window.CSS && window.CSS.escape) {\n // document.querySelector needs escaping to handle IDs (html5+) containing for instance /\n selector = selector.replace(/#([^\\s\"#']+)/g, (match, id) => `#${CSS.escape(id)}`)\n }\n\n return selector\n}\n\n// Shout-out Angus Croll (https://goo.gl/pxwQGp)\nconst toType = object => {\n if (object === null || object === undefined) {\n return `${object}`\n }\n\n return Object.prototype.toString.call(object).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * Public Util API\n */\n\nconst getUID = prefix => {\n do {\n prefix += Math.floor(Math.random() * MAX_UID)\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let { transitionDuration, transitionDelay } = window.getComputedStyle(element)\n\n const floatTransitionDuration = Number.parseFloat(transitionDuration)\n const floatTransitionDelay = Number.parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = object => {\n if (!object || typeof object !== 'object') {\n return false\n }\n\n if (typeof object.jquery !== 'undefined') {\n object = object[0]\n }\n\n return typeof object.nodeType !== 'undefined'\n}\n\nconst getElement = object => {\n // it's a jQuery object or a node element\n if (isElement(object)) {\n return object.jquery ? object[0] : object\n }\n\n if (typeof object === 'string' && object.length > 0) {\n return document.querySelector(parseSelector(object))\n }\n\n return null\n}\n\nconst isVisible = element => {\n if (!isElement(element) || element.getClientRects().length === 0) {\n return false\n }\n\n const elementIsVisible = getComputedStyle(element).getPropertyValue('visibility') === 'visible'\n // Handle `details` element as its content may falsie appear visible when it is closed\n const closedDetails = element.closest('details:not([open])')\n\n if (!closedDetails) {\n return elementIsVisible\n }\n\n if (closedDetails !== element) {\n const summary = element.closest('summary')\n if (summary && summary.parentNode !== closedDetails) {\n return false\n }\n\n if (summary === null) {\n return false\n }\n }\n\n return elementIsVisible\n}\n\nconst isDisabled = element => {\n if (!element || element.nodeType !== Node.ELEMENT_NODE) {\n return true\n }\n\n if (element.classList.contains('disabled')) {\n return true\n }\n\n if (typeof element.disabled !== 'undefined') {\n return element.disabled\n }\n\n return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false'\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\nconst noop = () => {}\n\n/**\n * Trick to restart an element's animation\n *\n * @param {HTMLElement} element\n * @return void\n *\n * @see https://www.charistheo.io/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation\n */\nconst reflow = element => {\n element.offsetHeight // eslint-disable-line no-unused-expressions\n}\n\nconst getjQuery = () => {\n if (window.jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n return window.jQuery\n }\n\n return null\n}\n\nconst DOMContentLoadedCallbacks = []\n\nconst onDOMContentLoaded = callback => {\n if (document.readyState === 'loading') {\n // add listener on the first call when the document is in loading state\n if (!DOMContentLoadedCallbacks.length) {\n document.addEventListener('DOMContentLoaded', () => {\n for (const callback of DOMContentLoadedCallbacks) {\n callback()\n }\n })\n }\n\n DOMContentLoadedCallbacks.push(callback)\n } else {\n callback()\n }\n}\n\nconst isRTL = () => document.documentElement.dir === 'rtl'\n\nconst defineJQueryPlugin = plugin => {\n onDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const name = plugin.NAME\n const JQUERY_NO_CONFLICT = $.fn[name]\n $.fn[name] = plugin.jQueryInterface\n $.fn[name].Constructor = plugin\n $.fn[name].noConflict = () => {\n $.fn[name] = JQUERY_NO_CONFLICT\n return plugin.jQueryInterface\n }\n }\n })\n}\n\nconst execute = (possibleCallback, args = [], defaultValue = possibleCallback) => {\n return typeof possibleCallback === 'function' ? possibleCallback(...args) : defaultValue\n}\n\nconst executeAfterTransition = (callback, transitionElement, waitForTransition = true) => {\n if (!waitForTransition) {\n execute(callback)\n return\n }\n\n const durationPadding = 5\n const emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding\n\n let called = false\n\n const handler = ({ target }) => {\n if (target !== transitionElement) {\n return\n }\n\n called = true\n transitionElement.removeEventListener(TRANSITION_END, handler)\n execute(callback)\n }\n\n transitionElement.addEventListener(TRANSITION_END, handler)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(transitionElement)\n }\n }, emulatedDuration)\n}\n\n/**\n * Return the previous/next element of a list.\n *\n * @param {array} list The list of elements\n * @param activeElement The active element\n * @param shouldGetNext Choose to get next or previous element\n * @param isCycleAllowed\n * @return {Element|elem} The proper element\n */\nconst getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed) => {\n const listLength = list.length\n let index = list.indexOf(activeElement)\n\n // if the element does not exist in the list return an element\n // depending on the direction and if cycle is allowed\n if (index === -1) {\n return !shouldGetNext && isCycleAllowed ? list[listLength - 1] : list[0]\n }\n\n index += shouldGetNext ? 1 : -1\n\n if (isCycleAllowed) {\n index = (index + listLength) % listLength\n }\n\n return list[Math.max(0, Math.min(index, listLength - 1))]\n}\n\nexport {\n defineJQueryPlugin,\n execute,\n executeAfterTransition,\n findShadowRoot,\n getElement,\n getjQuery,\n getNextActiveElement,\n getTransitionDurationFromElement,\n getUID,\n isDisabled,\n isElement,\n isRTL,\n isVisible,\n noop,\n onDOMContentLoaded,\n parseSelector,\n reflow,\n triggerTransitionEnd,\n toType\n}\n"]}