{"version":3,"file":"dropdown-xFjespPz.js","sources":["../../../app/frontend/entrypoints/marketing/bootstrap/mdb-prefix/dropdown.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): 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 getElement,\n getElementFromSelector,\n getNextActiveElement,\n isDisabled,\n isElement,\n isRTL,\n isVisible,\n noop,\n typeCheckConfig,\n} from './util/index';\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_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_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-mdb-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 autoClose: true,\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 autoClose: '(boolean|string)',\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\n // Getters\n\n static get Default() {\n return Default;\n }\n\n static get DefaultType() {\n return DefaultType;\n }\n\n static get NAME() {\n return NAME;\n }\n\n // Public\n\n toggle() {\n return this._isShown() ? this.hide() : this.show();\n }\n\n show() {\n if (isDisabled(this._element) || this._isShown(this._menu)) {\n return;\n }\n\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 const parent = Dropdown.getParentFromElement(this._element);\n // Totally disable Popper for Dropdowns in Navbar\n if (this._inNavbar) {\n Manipulator.setDataAttribute(this._menu, 'popper', 'none');\n } else {\n this._createPopper(parent);\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 && !parent.closest(SELECTOR_NAVBAR_NAV)) {\n []\n .concat(...document.body.children)\n .forEach((elem) => EventHandler.on(elem, 'mouseover', noop));\n }\n\n this._element.focus();\n this._element.setAttribute('aria-expanded', true);\n\n this._menu.classList.add(CLASS_NAME_SHOW);\n this._element.classList.add(CLASS_NAME_SHOW);\n EventHandler.trigger(this._element, EVENT_SHOWN, relatedTarget);\n }\n\n hide() {\n if (isDisabled(this._element) || !this._isShown(this._menu)) {\n return;\n }\n\n const relatedTarget = {\n relatedTarget: this._element,\n };\n\n this._completeHide(relatedTarget);\n }\n\n dispose() {\n if (this._popper) {\n this._popper.destroy();\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 _completeHide(relatedTarget) {\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE, relatedTarget);\n if (hideEvent.defaultPrevented) {\n return;\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 []\n .concat(...document.body.children)\n .forEach((elem) => EventHandler.off(elem, 'mouseover', noop));\n }\n\n if (this._popper) {\n this._popper.destroy();\n }\n\n this._menu.classList.remove(CLASS_NAME_SHOW);\n this._element.classList.remove(CLASS_NAME_SHOW);\n this._element.setAttribute('aria-expanded', 'false');\n Manipulator.removeDataAttribute(this._menu, 'popper');\n EventHandler.trigger(this._element, EVENT_HIDDEN, relatedTarget);\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 (\n typeof config.reference === 'object' &&\n !isElement(config.reference) &&\n typeof config.reference.getBoundingClientRect !== 'function'\n ) {\n // Popper virtual elements require a getBoundingClientRect method\n throw new TypeError(\n `${NAME.toUpperCase()}: Option \"reference\" provided type \"object\" without a required \"getBoundingClientRect\" method.`\n );\n }\n\n return config;\n }\n\n _createPopper(parent) {\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 = getElement(this._config.reference);\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(\n (modifier) => modifier.name === 'applyStyles' && modifier.enabled === false\n );\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 _isShown(element = this._element) {\n return element.classList.contains(CLASS_NAME_SHOW);\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 {\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\n // Disable Popper if we have a static display\n if (this._config.display === 'static') {\n defaultBsPopperConfig.modifiers = [\n {\n name: 'applyStyles',\n enabled: false,\n },\n ];\n }\n\n return {\n ...defaultBsPopperConfig,\n ...(typeof this._config.popperConfig === 'function'\n ? this._config.popperConfig(defaultBsPopperConfig)\n : this._config.popperConfig),\n };\n }\n\n _selectMenuItem({ key, target }) {\n const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, this._menu).filter(isVisible);\n\n if (!items.length) {\n return;\n }\n\n // if target isn't included in items (e.g. when expanding the dropdown)\n // allow cycling to get the last item in case key equals ARROW_UP_KEY\n getNextActiveElement(items, target, key === ARROW_DOWN_KEY, !items.includes(target)).focus();\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Dropdown.getOrCreateInstance(this, config);\n\n if (typeof config !== 'string') {\n return;\n }\n\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n\n data[config]();\n });\n }\n\n static clearMenus(event) {\n if (\n event &&\n (event.button === RIGHT_MOUSE_BUTTON || (event.type === 'keyup' && event.key !== TAB_KEY))\n ) {\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 context = Dropdown.getInstance(toggles[i]);\n if (!context || context._config.autoClose === false) {\n continue;\n }\n\n if (!context._isShown()) {\n continue;\n }\n\n const relatedTarget = {\n relatedTarget: context._element,\n };\n\n if (event) {\n const composedPath = event.composedPath();\n const isMenuTarget = composedPath.includes(context._menu);\n if (\n composedPath.includes(context._element) ||\n (context._config.autoClose === 'inside' && !isMenuTarget) ||\n (context._config.autoClose === 'outside' && isMenuTarget)\n ) {\n continue;\n }\n\n // Tab navigation through the dropdown menu or events from contained inputs shouldn't close the menu\n if (\n context._menu.contains(event.target) &&\n ((event.type === 'keyup' && event.key === TAB_KEY) ||\n /input|select|option|textarea|form/i.test(event.target.tagName))\n ) {\n continue;\n }\n\n if (event.type === 'click') {\n relatedTarget.clickEvent = event;\n }\n }\n\n context._completeHide(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 (\n /input|textarea/i.test(event.target.tagName)\n ? event.key === SPACE_KEY ||\n (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 ) {\n return;\n }\n\n const isActive = this.classList.contains(CLASS_NAME_SHOW);\n\n if (!isActive && event.key === ESCAPE_KEY) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n if (isDisabled(this)) {\n return;\n }\n\n const getToggleButton = this.matches(SELECTOR_DATA_TOGGLE)\n ? this\n : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE)[0];\n const instance = Dropdown.getOrCreateInstance(getToggleButton);\n\n if (event.key === ESCAPE_KEY) {\n instance.hide();\n return;\n }\n\n if (event.key === ARROW_UP_KEY || event.key === ARROW_DOWN_KEY) {\n if (!isActive) {\n instance.show();\n }\n\n instance._selectMenuItem(event);\n return;\n }\n\n if (!isActive || event.key === SPACE_KEY) {\n Dropdown.clearMenus();\n }\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(\n document,\n EVENT_KEYDOWN_DATA_API,\n SELECTOR_DATA_TOGGLE,\n Dropdown.dataApiKeydownHandler\n);\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.getOrCreateInstance(this).toggle();\n});\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Dropdown to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(Dropdown);\n\nexport default Dropdown;\n"],"names":["NAME","DATA_KEY","EVENT_KEY","DATA_API_KEY","ESCAPE_KEY","SPACE_KEY","TAB_KEY","ARROW_UP_KEY","ARROW_DOWN_KEY","RIGHT_MOUSE_BUTTON","REGEXP_KEYDOWN","EVENT_HIDE","EVENT_HIDDEN","EVENT_SHOW","EVENT_SHOWN","EVENT_CLICK_DATA_API","EVENT_KEYDOWN_DATA_API","EVENT_KEYUP_DATA_API","CLASS_NAME_SHOW","CLASS_NAME_DROPUP","CLASS_NAME_DROPEND","CLASS_NAME_DROPSTART","CLASS_NAME_NAVBAR","SELECTOR_DATA_TOGGLE","SELECTOR_MENU","SELECTOR_NAVBAR_NAV","SELECTOR_VISIBLE_ITEMS","PLACEMENT_TOP","isRTL","PLACEMENT_TOPEND","PLACEMENT_BOTTOM","PLACEMENT_BOTTOMEND","PLACEMENT_RIGHT","PLACEMENT_LEFT","Default","DefaultType","Dropdown","BaseComponent","element","config","isDisabled","relatedTarget","EventHandler","parent","Manipulator","elem","noop","typeCheckConfig","isElement","Popper","referenceElement","getElement","popperConfig","isDisplayStatic","modifier","Popper.createPopper","SelectorEngine","parentDropdown","isEnd","offset","val","popperData","defaultBsPopperConfig","key","target","items","isVisible","getNextActiveElement","data","event","toggles","i","len","context","composedPath","isMenuTarget","getElementFromSelector","isActive","getToggleButton","instance","defineJQueryPlugin"],"mappings":"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"}