{"version":3,"file":"dropdown-m_5z-HbN.js","sources":["../../../app/frontend/entrypoints/marketing/free/dropdown.js"],"sourcesContent":["import { getjQuery, typeCheckConfig, onDOMContentLoaded } from '../mdb/util/index';\nimport EventHandler from '../mdb/dom/event-handler';\nimport SelectorEngine from '../mdb/dom/selector-engine';\nimport Manipulator from '../mdb/dom/manipulator';\nimport BSDropdown from '../bootstrap/mdb-prefix/dropdown';\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'dropdown';\nconst DATA_KEY = `mdb.${NAME}`;\nconst EVENT_KEY = `.${DATA_KEY}`;\n\nconst SELECTOR_EXPAND = '[data-mdb-toggle=\"dropdown\"]';\n\nconst Default = {\n offset: [0, 2],\n flip: true,\n boundary: 'clippingParents',\n reference: 'toggle',\n display: 'dynamic',\n popperConfig: null,\n dropdownAnimation: 'on',\n};\n\nconst DefaultType = {\n offset: '(array|string|function)',\n flip: 'boolean',\n boundary: '(string|element)',\n reference: '(string|element|object)',\n display: 'string',\n popperConfig: '(null|object|function)',\n dropdownAnimation: 'string',\n};\n\nconst EVENT_HIDE = 'hide.bs.dropdown';\nconst EVENT_HIDDEN = 'hidden.bs.dropdown';\nconst EVENT_SHOW = 'show.bs.dropdown';\nconst EVENT_SHOWN = 'shown.bs.dropdown';\n\nconst EVENT_HIDE_MDB = `hide${EVENT_KEY}`;\nconst EVENT_HIDDEN_MDB = `hidden${EVENT_KEY}`;\nconst EVENT_SHOW_MDB = `show${EVENT_KEY}`;\nconst EVENT_SHOWN_MDB = `shown${EVENT_KEY}`;\n\nconst ANIMATION_CLASS = 'animation';\nconst ANIMATION_SHOW_CLASS = 'fade-in';\nconst ANIMATION_HIDE_CLASS = 'fade-out';\n\nclass Dropdown extends BSDropdown {\n constructor(element, data) {\n super(element, data);\n this._config = this._getConfig(data);\n this._parent = Dropdown.getParentFromElement(this._element);\n this._menuStyle = '';\n this._popperPlacement = '';\n this._mdbPopperConfig = '';\n\n //* prevents dropdown close issue when system animation is turned off\n const isPrefersReducedMotionSet = window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n\n if (this._config.dropdownAnimation === 'on' && !isPrefersReducedMotionSet) {\n this._init();\n }\n }\n\n dispose() {\n EventHandler.off(this._element, EVENT_SHOW);\n EventHandler.off(this._parent, EVENT_SHOWN);\n EventHandler.off(this._parent, EVENT_HIDE);\n EventHandler.off(this._parent, EVENT_HIDDEN);\n super.dispose();\n }\n\n // Getters\n static get NAME() {\n return NAME;\n }\n\n // Private\n _init() {\n this._bindShowEvent();\n this._bindShownEvent();\n this._bindHideEvent();\n this._bindHiddenEvent();\n }\n\n _getConfig(options) {\n const config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...options,\n };\n typeCheckConfig(NAME, config, DefaultType);\n return config;\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 popperConfig = {\n placement: this._getPlacement(),\n modifiers: [\n {\n name: 'preventOverflow',\n options: {\n altBoundary: this._config.flip,\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 popperConfig.modifiers = [\n {\n name: 'applyStyles',\n enabled: false,\n },\n ];\n }\n\n return {\n ...popperConfig,\n /* eslint no-extra-parens: \"off\" */\n ...(typeof this._config.popperConfig === 'function'\n ? this._config.popperConfig(popperConfig)\n : this._config.popperConfig),\n };\n }\n\n _bindShowEvent() {\n EventHandler.on(this._element, EVENT_SHOW, (e) => {\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW_MDB, {\n relatedTarget: e.relatedTarget,\n });\n\n if (showEvent.defaultPrevented) {\n e.preventDefault();\n return;\n }\n\n this._dropdownAnimationStart('show');\n });\n }\n\n _bindShownEvent() {\n EventHandler.on(this._parent, EVENT_SHOWN, (e) => {\n const shownEvent = EventHandler.trigger(this._parent, EVENT_SHOWN_MDB, {\n relatedTarget: e.relatedTarget,\n });\n\n if (shownEvent.defaultPrevented) {\n e.preventDefault();\n return;\n }\n });\n }\n\n _bindHideEvent() {\n EventHandler.on(this._parent, EVENT_HIDE, (e) => {\n const hideEvent = EventHandler.trigger(this._parent, EVENT_HIDE_MDB, {\n relatedTarget: e.relatedTarget,\n });\n\n if (hideEvent.defaultPrevented) {\n e.preventDefault();\n return;\n }\n\n this._menuStyle = this._menu.style.cssText;\n this._popperPlacement = this._menu.getAttribute('data-popper-placement');\n this._mdbPopperConfig = this._menu.getAttribute('data-mdb-popper');\n });\n }\n\n _bindHiddenEvent() {\n EventHandler.on(this._parent, EVENT_HIDDEN, (e) => {\n const hiddenEvent = EventHandler.trigger(this._parent, EVENT_HIDDEN_MDB, {\n relatedTarget: e.relatedTarget,\n });\n\n if (hiddenEvent.defaultPrevented) {\n e.preventDefault();\n return;\n }\n\n if (this._config.display !== 'static' && this._menuStyle !== '') {\n this._menu.style.cssText = this._menuStyle;\n }\n\n this._menu.setAttribute('data-popper-placement', this._popperPlacement);\n this._menu.setAttribute('data-mdb-popper', this._mdbPopperConfig);\n\n this._dropdownAnimationStart('hide');\n });\n }\n\n _dropdownAnimationStart(action) {\n switch (action) {\n case 'show':\n this._menu.classList.add(ANIMATION_CLASS, ANIMATION_SHOW_CLASS);\n this._menu.classList.remove(ANIMATION_HIDE_CLASS);\n break;\n default:\n // hide\n this._menu.classList.add(ANIMATION_CLASS, ANIMATION_HIDE_CLASS);\n this._menu.classList.remove(ANIMATION_SHOW_CLASS);\n break;\n }\n\n this._bindAnimationEnd();\n }\n\n _bindAnimationEnd() {\n EventHandler.one(this._menu, 'animationend', () => {\n this._menu.classList.remove(ANIMATION_CLASS, ANIMATION_HIDE_CLASS, ANIMATION_SHOW_CLASS);\n });\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation - auto initialization\n * ------------------------------------------------------------------------\n */\n\nSelectorEngine.find(SELECTOR_EXPAND).forEach((el) => {\n let instance = Dropdown.getInstance(el);\n if (!instance) {\n instance = new Dropdown(el);\n }\n});\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .rating to jQuery only if jQuery is present\n */\n\nonDOMContentLoaded(() => {\n const $ = getjQuery();\n\n if ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME];\n $.fn[NAME] = Dropdown.jQueryInterface;\n $.fn[NAME].Constructor = Dropdown;\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT;\n return Dropdown.jQueryInterface;\n };\n }\n});\n\nexport default Dropdown;\n"],"names":["NAME","DATA_KEY","EVENT_KEY","SELECTOR_EXPAND","Default","DefaultType","EVENT_HIDE","EVENT_HIDDEN","EVENT_SHOW","EVENT_SHOWN","EVENT_HIDE_MDB","EVENT_HIDDEN_MDB","EVENT_SHOW_MDB","EVENT_SHOWN_MDB","ANIMATION_CLASS","ANIMATION_SHOW_CLASS","ANIMATION_HIDE_CLASS","Dropdown","BSDropdown","element","data","isPrefersReducedMotionSet","EventHandler","options","config","Manipulator","typeCheckConfig","offset","val","popperData","popperConfig","e","action","SelectorEngine","el","instance","onDOMContentLoaded","$","getjQuery","JQUERY_NO_CONFLICT"],"mappings":"6eAYA,MAAMA,EAAO,WACPC,EAAW,OAAOD,CAAI,GACtBE,EAAY,IAAID,CAAQ,GAExBE,EAAkB,+BAElBC,EAAU,CACd,OAAQ,CAAC,EAAG,CAAC,EACb,KAAM,GACN,SAAU,kBACV,UAAW,SACX,QAAS,UACT,aAAc,KACd,kBAAmB,IACrB,EAEMC,EAAc,CAClB,OAAQ,0BACR,KAAM,UACN,SAAU,mBACV,UAAW,0BACX,QAAS,SACT,aAAc,yBACd,kBAAmB,QACrB,EAEMC,EAAa,mBACbC,EAAe,qBACfC,EAAa,mBACbC,EAAc,oBAEdC,EAAiB,OAAOR,CAAS,GACjCS,EAAmB,SAAST,CAAS,GACrCU,EAAiB,OAAOV,CAAS,GACjCW,EAAkB,QAAQX,CAAS,GAEnCY,EAAkB,YAClBC,EAAuB,UACvBC,EAAuB,WAE7B,MAAMC,UAAiBC,CAAW,CAChC,YAAYC,EAASC,EAAM,CACzB,MAAMD,EAASC,CAAI,EACnB,KAAK,QAAU,KAAK,WAAWA,CAAI,EACnC,KAAK,QAAUH,EAAS,qBAAqB,KAAK,QAAQ,EAC1D,KAAK,WAAa,GAClB,KAAK,iBAAmB,GACxB,KAAK,iBAAmB,GAGxB,MAAMI,EAA4B,OAAO,WAAW,kCAAkC,EAAE,QAEpF,KAAK,QAAQ,oBAAsB,MAAQ,CAACA,GAC9C,KAAK,MAAK,CAEb,CAED,SAAU,CACRC,EAAa,IAAI,KAAK,SAAUd,CAAU,EAC1Cc,EAAa,IAAI,KAAK,QAASb,CAAW,EAC1Ca,EAAa,IAAI,KAAK,QAAShB,CAAU,EACzCgB,EAAa,IAAI,KAAK,QAASf,CAAY,EAC3C,MAAM,QAAO,CACd,CAGD,WAAW,MAAO,CAChB,OAAOP,CACR,CAGD,OAAQ,CACN,KAAK,eAAc,EACnB,KAAK,gBAAe,EACpB,KAAK,eAAc,EACnB,KAAK,iBAAgB,CACtB,CAED,WAAWuB,EAAS,CAClB,MAAMC,EAAS,CACb,GAAGpB,EACH,GAAGqB,EAAY,kBAAkB,KAAK,QAAQ,EAC9C,GAAGF,CACT,EACI,OAAAG,EAAgB1B,EAAMwB,EAAQnB,CAAW,EAClCmB,CACR,CAED,YAAa,CACX,KAAM,CAAE,OAAAG,CAAM,EAAK,KAAK,QAExB,OAAI,OAAOA,GAAW,SACbA,EAAO,MAAM,GAAG,EAAE,IAAKC,GAAQ,OAAO,SAASA,EAAK,EAAE,CAAC,EAG5D,OAAOD,GAAW,WACZE,GAAeF,EAAOE,EAAY,KAAK,QAAQ,EAGlDF,CACR,CAED,kBAAmB,CACjB,MAAMG,EAAe,CACnB,UAAW,KAAK,cAAe,EAC/B,UAAW,CACT,CACE,KAAM,kBACN,QAAS,CACP,YAAa,KAAK,QAAQ,KAC1B,SAAU,KAAK,QAAQ,QACxB,CACF,EACD,CACE,KAAM,SACN,QAAS,CACP,OAAQ,KAAK,WAAY,CAC1B,CACF,CACF,CACP,EAGI,OAAI,KAAK,QAAQ,UAAY,WAC3BA,EAAa,UAAY,CACvB,CACE,KAAM,cACN,QAAS,EACV,CACT,GAGW,CACL,GAAGA,EAEH,GAAI,OAAO,KAAK,QAAQ,cAAiB,WACrC,KAAK,QAAQ,aAAaA,CAAY,EACtC,KAAK,QAAQ,YACvB,CACG,CAED,gBAAiB,CACfR,EAAa,GAAG,KAAK,SAAUd,EAAauB,GAAM,CAKhD,GAJkBT,EAAa,QAAQ,KAAK,SAAUV,EAAgB,CACpE,cAAemB,EAAE,aACzB,CAAO,EAEa,iBAAkB,CAC9BA,EAAE,eAAc,EAChB,MACD,CAED,KAAK,wBAAwB,MAAM,CACzC,CAAK,CACF,CAED,iBAAkB,CAChBT,EAAa,GAAG,KAAK,QAASb,EAAcsB,GAAM,CAKhD,GAJmBT,EAAa,QAAQ,KAAK,QAAST,EAAiB,CACrE,cAAekB,EAAE,aACzB,CAAO,EAEc,iBAAkB,CAC/BA,EAAE,eAAc,EAChB,MACD,CACP,CAAK,CACF,CAED,gBAAiB,CACfT,EAAa,GAAG,KAAK,QAAShB,EAAayB,GAAM,CAK/C,GAJkBT,EAAa,QAAQ,KAAK,QAASZ,EAAgB,CACnE,cAAeqB,EAAE,aACzB,CAAO,EAEa,iBAAkB,CAC9BA,EAAE,eAAc,EAChB,MACD,CAED,KAAK,WAAa,KAAK,MAAM,MAAM,QACnC,KAAK,iBAAmB,KAAK,MAAM,aAAa,uBAAuB,EACvE,KAAK,iBAAmB,KAAK,MAAM,aAAa,iBAAiB,CACvE,CAAK,CACF,CAED,kBAAmB,CACjBT,EAAa,GAAG,KAAK,QAASf,EAAewB,GAAM,CAKjD,GAJoBT,EAAa,QAAQ,KAAK,QAASX,EAAkB,CACvE,cAAeoB,EAAE,aACzB,CAAO,EAEe,iBAAkB,CAChCA,EAAE,eAAc,EAChB,MACD,CAEG,KAAK,QAAQ,UAAY,UAAY,KAAK,aAAe,KAC3D,KAAK,MAAM,MAAM,QAAU,KAAK,YAGlC,KAAK,MAAM,aAAa,wBAAyB,KAAK,gBAAgB,EACtE,KAAK,MAAM,aAAa,kBAAmB,KAAK,gBAAgB,EAEhE,KAAK,wBAAwB,MAAM,CACzC,CAAK,CACF,CAED,wBAAwBC,EAAQ,CAC9B,OAAQA,EAAM,CACZ,IAAK,OACH,KAAK,MAAM,UAAU,IAAIlB,EAAiBC,CAAoB,EAC9D,KAAK,MAAM,UAAU,OAAOC,CAAoB,EAChD,MACF,QAEE,KAAK,MAAM,UAAU,IAAIF,EAAiBE,CAAoB,EAC9D,KAAK,MAAM,UAAU,OAAOD,CAAoB,EAChD,KACH,CAED,KAAK,kBAAiB,CACvB,CAED,mBAAoB,CAClBO,EAAa,IAAI,KAAK,MAAO,eAAgB,IAAM,CACjD,KAAK,MAAM,UAAU,OAAOR,EAAiBE,EAAsBD,CAAoB,CAC7F,CAAK,CACF,CACH,CAQAkB,EAAe,KAAK9B,CAAe,EAAE,QAAS+B,GAAO,CACnD,IAAIC,EAAWlB,EAAS,YAAYiB,CAAE,EACjCC,IACHA,EAAW,IAAIlB,EAASiB,CAAE,EAE9B,CAAC,EASDE,EAAmB,IAAM,CACvB,MAAMC,EAAIC,IAEV,GAAID,EAAG,CACL,MAAME,EAAqBF,EAAE,GAAGrC,CAAI,EACpCqC,EAAE,GAAGrC,CAAI,EAAIiB,EAAS,gBACtBoB,EAAE,GAAGrC,CAAI,EAAE,YAAciB,EACzBoB,EAAE,GAAGrC,CAAI,EAAE,WAAa,KACtBqC,EAAE,GAAGrC,CAAI,EAAIuC,EACNtB,EAAS,gBAEnB,CACH,CAAC"}