{"version":3,"file":"offcanvas-36WvHYIE.js","sources":["../../../app/frontend/entrypoints/marketing/bootstrap/mdb-prefix/offcanvas.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): offcanvas.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n defineJQueryPlugin,\n getElementFromSelector,\n isDisabled,\n isVisible,\n typeCheckConfig,\n} from './util/index';\nimport ScrollBarHelper from './util/scrollbar';\nimport EventHandler from './dom/event-handler';\nimport BaseComponent from './base-component';\nimport SelectorEngine from './dom/selector-engine';\nimport Manipulator from './dom/manipulator';\nimport Backdrop from './util/backdrop';\nimport FocusTrap from './util/focustrap';\nimport { enableDismissTrigger } from './util/component-functions';\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'offcanvas';\nconst DATA_KEY = 'bs.offcanvas';\nconst EVENT_KEY = `.${DATA_KEY}`;\nconst DATA_API_KEY = '.data-api';\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`;\nconst ESCAPE_KEY = 'Escape';\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n scroll: false,\n};\n\nconst DefaultType = {\n backdrop: 'boolean',\n keyboard: 'boolean',\n scroll: 'boolean',\n};\n\nconst CLASS_NAME_SHOW = 'show';\nconst CLASS_NAME_BACKDROP = 'offcanvas-backdrop';\nconst OPEN_SELECTOR = '.offcanvas.show';\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}`;\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`;\n\nconst SELECTOR_DATA_TOGGLE = '[data-mdb-toggle=\"offcanvas\"]';\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Offcanvas extends BaseComponent {\n constructor(element, config) {\n super(element);\n\n this._config = this._getConfig(config);\n this._isShown = false;\n this._backdrop = this._initializeBackDrop();\n this._focustrap = this._initializeFocusTrap();\n this._addEventListeners();\n }\n\n // Getters\n\n static get NAME() {\n return NAME;\n }\n\n static get Default() {\n return Default;\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget);\n }\n\n show(relatedTarget) {\n if (this._isShown) {\n return;\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, { relatedTarget });\n\n if (showEvent.defaultPrevented) {\n return;\n }\n\n this._isShown = true;\n this._element.style.visibility = 'visible';\n\n this._backdrop.show();\n\n if (!this._config.scroll) {\n new ScrollBarHelper().hide();\n }\n\n this._element.removeAttribute('aria-hidden');\n this._element.setAttribute('aria-modal', true);\n this._element.setAttribute('role', 'dialog');\n this._element.classList.add(CLASS_NAME_SHOW);\n\n const completeCallBack = () => {\n if (!this._config.scroll) {\n this._focustrap.activate();\n }\n\n EventHandler.trigger(this._element, EVENT_SHOWN, { relatedTarget });\n };\n\n this._queueCallback(completeCallBack, this._element, true);\n }\n\n hide() {\n if (!this._isShown) {\n return;\n }\n\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE);\n\n if (hideEvent.defaultPrevented) {\n return;\n }\n\n this._focustrap.deactivate();\n this._element.blur();\n this._isShown = false;\n this._element.classList.remove(CLASS_NAME_SHOW);\n this._backdrop.hide();\n\n const completeCallback = () => {\n this._element.setAttribute('aria-hidden', true);\n this._element.removeAttribute('aria-modal');\n this._element.removeAttribute('role');\n this._element.style.visibility = 'hidden';\n\n if (!this._config.scroll) {\n new ScrollBarHelper().reset();\n }\n\n EventHandler.trigger(this._element, EVENT_HIDDEN);\n };\n\n this._queueCallback(completeCallback, this._element, true);\n }\n\n dispose() {\n this._backdrop.dispose();\n this._focustrap.deactivate();\n super.dispose();\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...(typeof config === 'object' ? config : {}),\n };\n typeCheckConfig(NAME, config, DefaultType);\n return config;\n }\n\n _initializeBackDrop() {\n return new Backdrop({\n className: CLASS_NAME_BACKDROP,\n isVisible: this._config.backdrop,\n isAnimated: true,\n rootElement: this._element.parentNode,\n clickCallback: () => this.hide(),\n });\n }\n\n _initializeFocusTrap() {\n return new FocusTrap({\n trapElement: this._element,\n });\n }\n\n _addEventListeners() {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, (event) => {\n if (this._config.keyboard && event.key === ESCAPE_KEY) {\n this.hide();\n }\n });\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Offcanvas.getOrCreateInstance(this, config);\n\n if (typeof config !== 'string') {\n return;\n }\n\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n\n data[config](this);\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 const target = getElementFromSelector(this);\n\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault();\n }\n\n if (isDisabled(this)) {\n return;\n }\n\n EventHandler.one(target, EVENT_HIDDEN, () => {\n // focus on trigger when it is closed\n if (isVisible(this)) {\n this.focus();\n }\n });\n\n // avoid conflict when clicking a toggler of an offcanvas, while another is open\n const allReadyOpen = SelectorEngine.findOne(OPEN_SELECTOR);\n if (allReadyOpen && allReadyOpen !== target) {\n Offcanvas.getInstance(allReadyOpen).hide();\n }\n\n const data = Offcanvas.getOrCreateInstance(target);\n data.toggle(this);\n});\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () =>\n SelectorEngine.find(OPEN_SELECTOR).forEach((el) => Offcanvas.getOrCreateInstance(el).show())\n);\n\nenableDismissTrigger(Offcanvas);\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\ndefineJQueryPlugin(Offcanvas);\n\nexport default Offcanvas;\n"],"names":["NAME","DATA_KEY","EVENT_KEY","DATA_API_KEY","EVENT_LOAD_DATA_API","ESCAPE_KEY","Default","DefaultType","CLASS_NAME_SHOW","CLASS_NAME_BACKDROP","OPEN_SELECTOR","EVENT_SHOW","EVENT_SHOWN","EVENT_HIDE","EVENT_HIDDEN","EVENT_CLICK_DATA_API","EVENT_KEYDOWN_DISMISS","SELECTOR_DATA_TOGGLE","Offcanvas","BaseComponent","element","config","relatedTarget","EventHandler","ScrollBarHelper","completeCallBack","completeCallback","Manipulator","typeCheckConfig","Backdrop","FocusTrap","event","data","target","getElementFromSelector","isDisabled","isVisible","allReadyOpen","SelectorEngine","el","enableDismissTrigger","defineJQueryPlugin"],"mappings":"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"}