{"version":3,"file":"backdrop-Qv2nMgaC.js","sources":["../../../app/frontend/entrypoints/marketing/bootstrap/mdb-prefix/util/backdrop.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): util/backdrop.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport EventHandler from '../dom/event-handler';\nimport { execute, executeAfterTransition, getElement, reflow, typeCheckConfig } from './index';\n\nconst Default = {\n className: 'modal-backdrop',\n isVisible: true, // if false, we use the backdrop helper without adding any element to the dom\n isAnimated: false,\n rootElement: 'body', // give the choice to place backdrop under different elements\n clickCallback: null,\n};\n\nconst DefaultType = {\n className: 'string',\n isVisible: 'boolean',\n isAnimated: 'boolean',\n rootElement: '(element|string)',\n clickCallback: '(function|null)',\n};\nconst NAME = 'backdrop';\nconst CLASS_NAME_FADE = 'fade';\nconst CLASS_NAME_SHOW = 'show';\n\nconst EVENT_MOUSEDOWN = `mousedown.bs.${NAME}`;\n\nclass Backdrop {\n constructor(config) {\n this._config = this._getConfig(config);\n this._isAppended = false;\n this._element = null;\n }\n\n show(callback) {\n if (!this._config.isVisible) {\n execute(callback);\n return;\n }\n\n this._append();\n\n if (this._config.isAnimated) {\n reflow(this._getElement());\n }\n\n this._getElement().classList.add(CLASS_NAME_SHOW);\n\n this._emulateAnimation(() => {\n execute(callback);\n });\n }\n\n hide(callback) {\n if (!this._config.isVisible) {\n execute(callback);\n return;\n }\n\n this._getElement().classList.remove(CLASS_NAME_SHOW);\n\n this._emulateAnimation(() => {\n this.dispose();\n execute(callback);\n });\n }\n\n // Private\n\n _getElement() {\n if (!this._element) {\n const backdrop = document.createElement('div');\n backdrop.className = this._config.className;\n if (this._config.isAnimated) {\n backdrop.classList.add(CLASS_NAME_FADE);\n }\n\n this._element = backdrop;\n }\n\n return this._element;\n }\n\n _getConfig(config) {\n config = {\n ...Default,\n ...(typeof config === 'object' ? config : {}),\n };\n\n // use getElement() with the default \"body\" to get a fresh Element on each instantiation\n config.rootElement = getElement(config.rootElement);\n typeCheckConfig(NAME, config, DefaultType);\n return config;\n }\n\n _append() {\n if (this._isAppended) {\n return;\n }\n\n this._config.rootElement.append(this._getElement());\n\n EventHandler.on(this._getElement(), EVENT_MOUSEDOWN, () => {\n execute(this._config.clickCallback);\n });\n\n this._isAppended = true;\n }\n\n dispose() {\n if (!this._isAppended) {\n return;\n }\n\n EventHandler.off(this._element, EVENT_MOUSEDOWN);\n\n this._element.remove();\n this._isAppended = false;\n }\n\n _emulateAnimation(callback) {\n executeAfterTransition(callback, this._getElement(), this._config.isAnimated);\n }\n}\n\nexport default Backdrop;\n"],"names":["Default","DefaultType","NAME","CLASS_NAME_FADE","CLASS_NAME_SHOW","EVENT_MOUSEDOWN","Backdrop","config","callback","execute","reflow","backdrop","getElement","typeCheckConfig","EventHandler","executeAfterTransition"],"mappings":"oHAUA,MAAMA,EAAU,CACd,UAAW,iBACX,UAAW,GACX,WAAY,GACZ,YAAa,OACb,cAAe,IACjB,EAEMC,EAAc,CAClB,UAAW,SACX,UAAW,UACX,WAAY,UACZ,YAAa,mBACb,cAAe,iBACjB,EACMC,EAAO,WACPC,EAAkB,OAClBC,EAAkB,OAElBC,EAAkB,gBAAgBH,CAAI,GAE5C,MAAMI,CAAS,CACb,YAAYC,EAAQ,CAClB,KAAK,QAAU,KAAK,WAAWA,CAAM,EACrC,KAAK,YAAc,GACnB,KAAK,SAAW,IACjB,CAED,KAAKC,EAAU,CACb,GAAI,CAAC,KAAK,QAAQ,UAAW,CAC3BC,EAAQD,CAAQ,EAChB,MACD,CAED,KAAK,QAAO,EAER,KAAK,QAAQ,YACfE,EAAO,KAAK,YAAW,CAAE,EAG3B,KAAK,YAAa,EAAC,UAAU,IAAIN,CAAe,EAEhD,KAAK,kBAAkB,IAAM,CAC3BK,EAAQD,CAAQ,CACtB,CAAK,CACF,CAED,KAAKA,EAAU,CACb,GAAI,CAAC,KAAK,QAAQ,UAAW,CAC3BC,EAAQD,CAAQ,EAChB,MACD,CAED,KAAK,YAAa,EAAC,UAAU,OAAOJ,CAAe,EAEnD,KAAK,kBAAkB,IAAM,CAC3B,KAAK,QAAO,EACZK,EAAQD,CAAQ,CACtB,CAAK,CACF,CAID,aAAc,CACZ,GAAI,CAAC,KAAK,SAAU,CAClB,MAAMG,EAAW,SAAS,cAAc,KAAK,EAC7CA,EAAS,UAAY,KAAK,QAAQ,UAC9B,KAAK,QAAQ,YACfA,EAAS,UAAU,IAAIR,CAAe,EAGxC,KAAK,SAAWQ,CACjB,CAED,OAAO,KAAK,QACb,CAED,WAAWJ,EAAQ,CACjB,OAAAA,EAAS,CACP,GAAGP,EACH,GAAI,OAAOO,GAAW,SAAWA,EAAS,CAAE,CAClD,EAGIA,EAAO,YAAcK,EAAWL,EAAO,WAAW,EAClDM,EAAgBX,EAAMK,EAAQN,CAAW,EAClCM,CACR,CAED,SAAU,CACJ,KAAK,cAIT,KAAK,QAAQ,YAAY,OAAO,KAAK,YAAW,CAAE,EAElDO,EAAa,GAAG,KAAK,YAAa,EAAET,EAAiB,IAAM,CACzDI,EAAQ,KAAK,QAAQ,aAAa,CACxC,CAAK,EAED,KAAK,YAAc,GACpB,CAED,SAAU,CACH,KAAK,cAIVK,EAAa,IAAI,KAAK,SAAUT,CAAe,EAE/C,KAAK,SAAS,SACd,KAAK,YAAc,GACpB,CAED,kBAAkBG,EAAU,CAC1BO,EAAuBP,EAAU,KAAK,YAAa,EAAE,KAAK,QAAQ,UAAU,CAC7E,CACH"}