{"version":3,"file":"./modules/LayerAdvance.xxxxxxxx.js","mappings":"oKAcA,MAAMA,EAAiB,CAAC,eAAgB,wBASzB,MAAMC,UAAqB,UAGtC,WAAAC,CAAYC,EAAsBC,EAAyC,CAAC,GACxEC,MAAMF,EAASC,GAEfE,KAAKF,SAAU,QAAWE,KAAKH,QAASG,KAAKF,SAE7CE,KAAKC,MACT,CAEU,iBAAAC,GACN,MAAMC,EAAaJ,MAAMG,oBAEzB,OAAO,OAAP,wBACOC,GAAU,CACbC,qBAAsB,GAAGD,EAAWE,uBACpCC,2BAA4B,GAAGH,EAAWE,kCAC1CE,oBAAqB,GAAGJ,EAAWI,0CACnCC,WAAYC,gBAAoBC,OAAOC,OAAOC,eAC9CC,UAAWJ,YACXK,YAAaL,YACbM,WAAYN,aAEpB,CAEA,UAAcO,GACV,OAAOC,SAASC,KAAKC,SAASnB,KAAKoB,MACvC,CAEA,WAAAC,GAMI,OALA,QAAWrB,KAAKoB,MAAME,cAAc,yBAA0B5B,GAEzDM,KAAKgB,QAAQ,KAAUO,SAAQ,GACpCxB,MAAMyB,OAECxB,IACX,CAGA,UAAMwB,CAAKC,EAAqB,QAC5B,MAAM,eACFpB,EAAc,WACdG,EAAU,UACVK,GACAb,KAAKF,cAEHU,IAENR,KAAK0B,aAEA1B,KAAKgB,QAAQ,KAAUO,SAAQ,IAEpC,QAAcvB,KAAKoB,MAAME,cAAc,yBAA0B5B,GAEjEK,MAAMyB,QAEN,QAA0B,IAAMxB,KAAKoB,MAAMO,UAAUC,IAAI,GAAGvB,YAE5DK,OAAOC,OAAOkB,uBAERhB,IAENY,GACJ,CAEA,WAAMK,CAAML,EAAqB,QAC7B,MAAM,eACFpB,EAAc,YACdS,EAAW,WACXC,GACAf,KAAKF,cAEHgB,IAENiB,eAAeC,WAAW,WAE1B,QAAShC,KAAKoB,MAAO,GAAGf,eAExB,QAA2B,MACvB,QAAcL,KAAKoB,MAAO,GAAGf,UAAwB,GAAGA,cACxDN,MAAM+B,SACP,MAECb,SAASC,KAAKS,UAAUR,SAAS,qBAAuBF,SAASC,KAAKS,UAAUR,SAAS,yBACzF,KAAUc,cAERlB,IAENU,GACJ,CAEA,UAAAC,GACI,IAAIQ,EACAC,EACAC,EAAYL,eAAeM,QAAQ,UAEvC,GAAID,EAGA,GAFAF,EAAcI,KAAKC,MAAMH,GAErBF,EAAYM,SAASC,SAASC,MAAO,CACrC,IAAIC,EAAQT,EAAYU,UAAUC,GAAKA,GAAKJ,SAASC,MAAQ,EAC7DR,EAAcA,EAAYY,MAAM,EAAGH,GACnCR,EAAS,IAAID,EACjB,MACIC,EAAS,IAAID,EAAaO,SAASC,WAGvCP,EAAS,CAACM,SAASC,MAGvBX,eAAegB,QAAQ,SAAU,GAAGT,KAAKU,UAAUb,MAE/CA,EAAOc,OAAS,EAChBjD,KAAKoB,MAAMO,UAAUC,IAAI,2BAEzB5B,KAAKoB,MAAMO,UAAUuB,OAAO,0BAEpC,E","sources":["webpack:///./modules/LayerAdvance.ts"],"sourcesContent":["import LayerBasic, { BasicLayerOptions } from './LayerBasic';\r\nimport { Optional } from '../typings/mapped-types';\r\nimport {\r\n getOptions,\r\n requestAnimationFrameTimer,\r\n requestNextAnimationFrame,\r\n IOSScroll,\r\n} from '../helpers/helperFunctions';\r\nimport {\r\n addClass,\r\n addClasses,\r\n removeClasses,\r\n} from '../helpers/DOMHelpers';\r\n\r\nconst spinnerClasses = ['nx-u-spinner', 'nx-u-spinner--medium'];\r\n\r\nexport interface LayerAdvanceOptions extends BasicLayerOptions {\r\n beforeOpen: AsyncCallback;\r\n afterOpen: AsyncCallback;\r\n beforeClose: AsyncCallback;\r\n afterClose: AsyncCallback;\r\n}\r\n\r\nexport default class LayerAdvance extends LayerBasic {\r\n protected options: LayerAdvanceOptions;\r\n\r\n constructor(element: HTMLElement, options: Optional = {}) {\r\n super(element, options);\r\n\r\n this.options = getOptions(this.element, this.options);\r\n\r\n this.init();\r\n }\r\n\r\n protected getDefaultOptions(): Optional {\r\n const defOptions = super.getDefaultOptions();\r\n\r\n return {\r\n ...defOptions,\r\n layerModifierClasses: `${defOptions.layerMainClass}--page`,\r\n layerCloseBtnModifierClass: `${defOptions.layerMainClass}__close-btn--page`,\r\n layerCloseIconClass: `${defOptions.layerCloseIconClass} nx-close-icon--thin`,\r\n beforeOpen: async () => { await window.NiveaX.initModules(); },\r\n afterOpen: async () => { },\r\n beforeClose: async () => { },\r\n afterClose: async () => { },\r\n };\r\n }\r\n\r\n protected get isOpen(): boolean {\r\n return document.body.contains(this.layer);\r\n }\r\n\r\n showSpinner(): LayerAdvance {\r\n addClasses(this.layer.querySelector('.nx-layer__wrapper'), ...spinnerClasses);\r\n\r\n if (!this.isOpen) IOSScroll.prevent(true);\r\n super.open();\r\n\r\n return this;\r\n }\r\n\r\n\r\n async open(callback: Callback = () => { }): Promise {\r\n const {\r\n layerMainClass,\r\n beforeOpen,\r\n afterOpen,\r\n } = this.options;\r\n\r\n await beforeOpen();\r\n\r\n this.backButton();\r\n\r\n if (!this.isOpen) IOSScroll.prevent(true);\r\n\r\n removeClasses(this.layer.querySelector('.nx-layer__wrapper'), ...spinnerClasses);\r\n\r\n super.open();\r\n\r\n requestNextAnimationFrame(() => this.layer.classList.add(`${layerMainClass}--open`));\r\n\r\n window.NiveaX.loadShopPrices();\r\n\r\n await afterOpen();\r\n\r\n callback();\r\n }\r\n\r\n async close(callback: Callback = () => { }): Promise {\r\n const {\r\n layerMainClass,\r\n beforeClose,\r\n afterClose,\r\n } = this.options;\r\n\r\n await beforeClose();\r\n\r\n sessionStorage.removeItem('layers');\r\n\r\n addClass(this.layer, `${layerMainClass}--closing`);\r\n\r\n requestAnimationFrameTimer(() => {\r\n removeClasses(this.layer, `${layerMainClass}--open`, `${layerMainClass}--closing`);\r\n super.close();\r\n }, 400);\r\n\r\n if (document.body.classList.contains('nx-u-lock-screen') || document.body.classList.contains('nx-u-prevent-scroll'))\r\n IOSScroll.allow();\r\n\r\n await afterClose();\r\n\r\n callback();\r\n }\r\n\r\n backButton(){\r\n let layersArray;\r\n let layers;\r\n let getLayers = sessionStorage.getItem('layers');\r\n\r\n if (getLayers) {\r\n layersArray = JSON.parse(getLayers);\r\n\r\n if (layersArray.includes(location.hash)) {\r\n let index = layersArray.findIndex(i => i == location.hash) + 1;\r\n layersArray = layersArray.slice(0, index);\r\n layers = [...layersArray]\r\n } else {\r\n layers = [...layersArray, location.hash]\r\n }\r\n } else {\r\n layers = [location.hash]\r\n }\r\n\r\n sessionStorage.setItem('layers', `${JSON.stringify(layers)}`);\r\n\r\n if (layers.length > 1) {\r\n this.layer.classList.add('nx-layer--show-back-tbn');\r\n } else {\r\n this.layer.classList.remove('nx-layer--show-back-tbn');\r\n }\r\n }\r\n}\r\n"],"names":["spinnerClasses","LayerAdvance","constructor","element","options","super","this","init","getDefaultOptions","defOptions","layerModifierClasses","layerMainClass","layerCloseBtnModifierClass","layerCloseIconClass","beforeOpen","async","window","NiveaX","initModules","afterOpen","beforeClose","afterClose","isOpen","document","body","contains","layer","showSpinner","querySelector","prevent","open","callback","backButton","classList","add","loadShopPrices","close","sessionStorage","removeItem","allow","layersArray","layers","getLayers","getItem","JSON","parse","includes","location","hash","index","findIndex","i","slice","setItem","stringify","length","remove"],"sourceRoot":""}