{"version":3,"file":"tab-hGGzzxOB.js","sources":["../../../app/frontend/entrypoints/marketing/bootstrap/mdb-prefix/tab.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { defineJQueryPlugin, getElementFromSelector, isDisabled, reflow } from './util/index';\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 =\n '[data-mdb-toggle=\"tab\"], [data-mdb-toggle=\"pill\"], [data-mdb-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 NAME() {\n return NAME;\n }\n\n // Public\n\n show() {\n if (\n this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n this._element.classList.contains(CLASS_NAME_ACTIVE)\n ) {\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 =\n listElement.nodeName === 'UL' || listElement.nodeName === 'OL'\n ? SELECTOR_ACTIVE_UL\n : 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 =\n 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 active.classList.remove(CLASS_NAME_SHOW);\n this._queueCallback(complete, element, true);\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(\n SELECTOR_DROPDOWN_ACTIVE_CHILD,\n active.parentNode\n );\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 let parent = element.parentNode;\n if (parent && parent.nodeName === 'LI') {\n parent = parent.parentNode;\n }\n\n if (parent && parent.classList.contains(CLASS_NAME_DROPDOWN_MENU)) {\n const dropdownElement = element.closest(SELECTOR_DROPDOWN);\n\n if (dropdownElement) {\n SelectorEngine.find(SELECTOR_DROPDOWN_TOGGLE, dropdownElement).forEach((dropdown) =>\n dropdown.classList.add(CLASS_NAME_ACTIVE)\n );\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 = Tab.getOrCreateInstance(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 if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault();\n }\n\n if (isDisabled(this)) {\n return;\n }\n\n const data = Tab.getOrCreateInstance(this);\n data.show();\n});\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Tab to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(Tab);\n\nexport default Tab;\n"],"names":["NAME","DATA_KEY","EVENT_KEY","DATA_API_KEY","EVENT_HIDE","EVENT_HIDDEN","EVENT_SHOW","EVENT_SHOWN","EVENT_CLICK_DATA_API","CLASS_NAME_DROPDOWN_MENU","CLASS_NAME_ACTIVE","CLASS_NAME_FADE","CLASS_NAME_SHOW","SELECTOR_DROPDOWN","SELECTOR_NAV_LIST_GROUP","SELECTOR_ACTIVE","SELECTOR_ACTIVE_UL","SELECTOR_DATA_TOGGLE","SELECTOR_DROPDOWN_TOGGLE","SELECTOR_DROPDOWN_ACTIVE_CHILD","Tab","BaseComponent","previous","target","getElementFromSelector","listElement","itemSelector","SelectorEngine","hideEvent","EventHandler","complete","element","container","callback","active","isTransitioning","dropdownChild","reflow","parent","dropdownElement","dropdown","config","data","event","isDisabled","defineJQueryPlugin"],"mappings":"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"}