{"version":3,"sources":["webpack://ftfa/./node_modules/bootstrap/js/src/collapse.js"],"names":["NAME","DATA_KEY","Default","toggle","parent","DefaultType","CLASS_NAME_SHOW","CLASS_NAME_COLLAPSE","CLASS_NAME_COLLAPSING","CLASS_NAME_COLLAPSED","WIDTH","SELECTOR_DATA_TOGGLE","Collapse","constructor","element","config","super","this","_isTransitioning","_config","_getConfig","_triggerArray","_element","id","toggleList","i","len","length","elem","selector","filterElement","filter","foundElem","_selector","push","_parent","_getParent","_addAriaAndCollapsedClass","classList","contains","hide","show","actives","activesData","getAttribute","container","tempActiveData","find","defaultPrevented","forEach","elemActive","collapseInterface","dimension","_getDimension","remove","add","style","setAttribute","setTransitioning","scrollSize","toUpperCase","slice","transitionDuration","getBoundingClientRect","triggerArrayLength","trigger","isTransitioning","dispose","Boolean","jquery","selected","triggerArray","isOpen","static","data","test","TypeError","each","document","event","target","tagName","delegateTarget","preventDefault","triggerData"],"mappings":"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","file":"29.f495336e63fd7f052410.js","sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0): 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 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"],"sourceRoot":""}