{"version":3,"file":"collapse-IaEV7Ehv.js","sources":["../../../app/frontend/entrypoints/marketing/bootstrap/mdb-prefix/collapse.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n defineJQueryPlugin,\n getElement,\n getSelectorFromElement,\n getElementFromSelector,\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: null,\n};\n\nconst DefaultType = {\n toggle: 'boolean',\n parent: '(null|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';\nconst CLASS_NAME_DEEPER_CHILDREN = `:scope .${CLASS_NAME_COLLAPSE} .${CLASS_NAME_COLLAPSE}`;\nconst CLASS_NAME_HORIZONTAL = 'collapse-horizontal';\n\nconst WIDTH = 'width';\nconst HEIGHT = 'height';\n\nconst SELECTOR_ACTIVES = '.collapse.show, .collapse.collapsing';\nconst SELECTOR_DATA_TOGGLE = '[data-mdb-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 = [];\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).filter(\n (foundElem) => foundElem === this._element\n );\n\n if (selector !== null && filterElement.length) {\n this._selector = selector;\n this._triggerArray.push(elem);\n }\n }\n\n this._initializeChildren();\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._triggerArray, this._isShown());\n }\n\n if (this._config.toggle) {\n this.toggle();\n }\n }\n\n // Getters\n\n static get Default() {\n return Default;\n }\n\n static get NAME() {\n return NAME;\n }\n\n // Public\n\n toggle() {\n if (this._isShown()) {\n this.hide();\n } else {\n this.show();\n }\n }\n\n show() {\n if (this._isTransitioning || this._isShown()) {\n return;\n }\n\n let actives = [];\n let activesData;\n\n if (this._config.parent) {\n const children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent);\n actives = SelectorEngine.find(SELECTOR_ACTIVES, this._config.parent).filter(\n (elem) => !children.includes(elem)\n ); // remove children if greater depth\n }\n\n const container = SelectorEngine.findOne(this._selector);\n if (actives.length) {\n const tempActiveData = actives.find((elem) => container !== elem);\n activesData = tempActiveData ? Collapse.getInstance(tempActiveData) : 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 actives.forEach((elemActive) => {\n if (container !== elemActive) {\n Collapse.getOrCreateInstance(elemActive, { toggle: false }).hide();\n }\n\n if (!activesData) {\n Data.set(elemActive, DATA_KEY, null);\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 this._addAriaAndCollapsedClass(this._triggerArray, true);\n this._isTransitioning = true;\n\n const complete = () => {\n this._isTransitioning = false;\n\n this._element.classList.remove(CLASS_NAME_COLLAPSING);\n this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW);\n\n this._element.style[dimension] = '';\n\n EventHandler.trigger(this._element, EVENT_SHOWN);\n };\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);\n const scrollSize = `scroll${capitalizedDimension}`;\n\n this._queueCallback(complete, this._element, true);\n this._element.style[dimension] = `${this._element[scrollSize]}px`;\n }\n\n hide() {\n if (this._isTransitioning || !this._isShown()) {\n return;\n }\n\n const startEvent = EventHandler.trigger(this._element, EVENT_HIDE);\n if (startEvent.defaultPrevented) {\n return;\n }\n\n const dimension = this._getDimension();\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`;\n\n reflow(this._element);\n\n this._element.classList.add(CLASS_NAME_COLLAPSING);\n this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW);\n\n const triggerArrayLength = this._triggerArray.length;\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i];\n const elem = getElementFromSelector(trigger);\n\n if (elem && !this._isShown(elem)) {\n this._addAriaAndCollapsedClass([trigger], false);\n }\n }\n\n this._isTransitioning = true;\n\n const complete = () => {\n this._isTransitioning = false;\n this._element.classList.remove(CLASS_NAME_COLLAPSING);\n this._element.classList.add(CLASS_NAME_COLLAPSE);\n EventHandler.trigger(this._element, EVENT_HIDDEN);\n };\n\n this._element.style[dimension] = '';\n\n this._queueCallback(complete, this._element, true);\n }\n\n _isShown(element = this._element) {\n return element.classList.contains(CLASS_NAME_SHOW);\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...config,\n };\n config.toggle = Boolean(config.toggle); // Coerce string values\n config.parent = getElement(config.parent);\n typeCheckConfig(NAME, config, DefaultType);\n return config;\n }\n\n _getDimension() {\n return this._element.classList.contains(CLASS_NAME_HORIZONTAL) ? WIDTH : HEIGHT;\n }\n\n _initializeChildren() {\n if (!this._config.parent) {\n return;\n }\n\n const children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent);\n SelectorEngine.find(SELECTOR_DATA_TOGGLE, this._config.parent)\n .filter((elem) => !children.includes(elem))\n .forEach((element) => {\n const selected = getElementFromSelector(element);\n\n if (selected) {\n this._addAriaAndCollapsedClass([element], this._isShown(selected));\n }\n });\n }\n\n _addAriaAndCollapsedClass(triggerArray, isOpen) {\n if (!triggerArray.length) {\n return;\n }\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 jQueryInterface(config) {\n return this.each(function () {\n const _config = {};\n if (typeof config === 'string' && /show|hide/.test(config)) {\n _config.toggle = false;\n }\n\n const data = Collapse.getOrCreateInstance(this, _config);\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n\n data[config]();\n }\n });\n }\n}\n\n/**\n * ------------------------------------------------------------------------\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 (\n event.target.tagName === 'A' ||\n (event.delegateTarget && event.delegateTarget.tagName === 'A')\n ) {\n event.preventDefault();\n }\n\n const selector = getSelectorFromElement(this);\n const selectorElements = SelectorEngine.find(selector);\n\n selectorElements.forEach((element) => {\n Collapse.getOrCreateInstance(element, { toggle: false }).toggle();\n });\n});\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Collapse to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(Collapse);\n\nexport default Collapse;\n"],"names":["NAME","DATA_KEY","EVENT_KEY","DATA_API_KEY","Default","DefaultType","EVENT_SHOW","EVENT_SHOWN","EVENT_HIDE","EVENT_HIDDEN","EVENT_CLICK_DATA_API","CLASS_NAME_SHOW","CLASS_NAME_COLLAPSE","CLASS_NAME_COLLAPSING","CLASS_NAME_COLLAPSED","CLASS_NAME_DEEPER_CHILDREN","CLASS_NAME_HORIZONTAL","WIDTH","HEIGHT","SELECTOR_ACTIVES","SELECTOR_DATA_TOGGLE","Collapse","BaseComponent","element","config","toggleList","SelectorEngine","i","len","elem","selector","getSelectorFromElement","filterElement","foundElem","actives","activesData","children","container","tempActiveData","EventHandler","elemActive","Data","dimension","complete","scrollSize","reflow","triggerArrayLength","trigger","getElementFromSelector","Manipulator","getElement","typeCheckConfig","selected","triggerArray","isOpen","_config","data","event","defineJQueryPlugin"],"mappings":"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"}