{"version":3,"sources":["webpack:///./assets/javascripts/modules/components/mixins/ModalMixinComponent.js","webpack:///./assets/javascripts/modules/components/SizeGuidePdpComponent.js"],"names":["ModalMixinComponent","elem","_classCallCheck","this","_this","_possibleConstructorReturn","__proto__","Object","getPrototypeOf","call","hide","bind","show","Component","hideCta","shown","hideCtas","$component","querySelectorAll","SELECTORS","dom","readDOM","bindEvents","_this2","forEach","e","addEventListener","classList","remove","CSS","emit","$customEvents","MODAL","add","contains","SizeGuidePdpComponent","cta","querySelector","modal","document","body","style","overflow","_get","prototype","render"],"mappings":"6WAEqBA,cAanB,SAAAA,EAAYC,gGAAMC,CAAAC,KAAAH,GAAA,IAAAI,mKAAAC,CAAAF,MAAAH,EAAAM,WAAAC,OAAAC,eAAAR,IAAAS,KAAAN,KACVF,IADU,OAEhBG,EAAKM,KAAON,EAAKM,KAAKC,KAAVP,GACZA,EAAKQ,KAAOR,EAAKQ,KAAKD,KAAVP,GAHIA,qUAb6BS,6CAE7C,OACIC,QAAS,qDAKb,OACIC,MAAO,oDAWX,OACIC,SAAUb,KAAKc,WAAWC,iBAAiBf,KAAKgB,UAAUL,2CAK9DX,KAAKiB,IAAMjB,KAAKkB,UAChBlB,KAAKmB,kDAGM,IAAAC,EAAApB,KACXA,KAAKiB,IAAIJ,SAASQ,QAAQ,SAAAC,GACtBA,EAAEC,iBAAiB,QAAS,WACxBH,EAAKb,0CAObP,KAAKc,WAAWU,UAAUC,OAAOzB,KAAK0B,IAAId,OAC1CZ,KAAK2B,KAAK3B,KAAK4B,cAAcC,MAAMtB,qCAInCP,KAAKc,WAAWU,UAAUM,IAAI9B,KAAK0B,IAAId,OACvCZ,KAAK2B,KAAK3B,KAAK4B,cAAcC,MAAMpB,wCAInC,OAAOT,KAAKc,WAAWU,UAAUO,SAAS/B,KAAK0B,IAAId,gBAlDlCf,oUCCAmC,grBAA8BtB,6CAY/C,OACEuB,IAAKjC,KAAKc,WAAWoB,cAAclC,KAAKgB,UAAUiB,KAClDE,MAAOnC,KAAKc,WAAWoB,cAAclC,KAAKgB,UAAUmB,6CAI3C,IAAAf,EAAApB,KACXA,KAAKiB,IAAIgB,IAAIV,iBAAiB,QAAS,WACrCa,SAASC,KAAKC,MAAMC,SAAW,SAC/BnB,EAAKe,MAAM1B,SAGbT,KAAKiB,IAAIkB,MAAMZ,iBAAiBvB,KAAK4B,cAAcC,MAAMtB,KAAM,WAC7D6B,SAASC,KAAKC,MAAMC,SAAW,mSAKjCC,CAAAR,EAAAS,UAAAtC,WAAAC,OAAAC,eAAA2B,EAAAS,WAAA,SAAAzC,MAAAM,KAAAN,MAEAA,KAAKiB,IAAMjB,KAAKkB,UAEhBlB,KAAKmC,MAAQ,IAAItC,UAAoBG,KAAKiB,IAAIkB,OAC9CnC,KAAKmC,MAAMO,SAEX1C,KAAKmB,mDAnCL,MAAO,0DAGP,OACEc,IAAK,wBACLE,MAAO,oCAPQH","file":"component-SizeGuidePdpComponent.chunks.js","sourcesContent":["import Component from '../../abstracts/Component';\n\nexport default class ModalMixinComponent extends Component {\n get SELECTORS() {\n return {\n hideCta: '[data-modal-hide-cta]',\n };\n }\n\n get CSS() {\n return {\n shown: '--shown'\n };\n }\n\n constructor(elem) {\n super(elem);\n this.hide = this.hide.bind(this);\n this.show = this.show.bind(this);\n }\n\n readDOM() {\n return {\n hideCtas: this.$component.querySelectorAll(this.SELECTORS.hideCta),\n }\n }\n\n render() {\n this.dom = this.readDOM();\n this.bindEvents();\n }\n\n bindEvents() {\n this.dom.hideCtas.forEach(e => {\n e.addEventListener('click', () => {\n this.hide();\n });\n });\n }\n\n // API\n hide() {\n this.$component.classList.remove(this.CSS.shown);\n this.emit(this.$customEvents.MODAL.hide);\n }\n\n show() {\n this.$component.classList.add(this.CSS.shown);\n this.emit(this.$customEvents.MODAL.show);\n }\n\n isShown() {\n return this.$component.classList.contains(this.CSS.shown);\n }\n}\n","import Component from \"../abstracts/Component\";\nimport ModalMixinComponent from './mixins/ModalMixinComponent'\n\nexport default class SizeGuidePdpComponent extends Component {\n get COMPONENTNAME() {\n return 'SizeGuidePdpComponent';\n }\n get SELECTORS() {\n return {\n cta: '[data-size-guide-cta]',\n modal: '[data-size-guide-modal]',\n };\n }\n\n readDOM() {\n return {\n cta: this.$component.querySelector(this.SELECTORS.cta),\n modal: this.$component.querySelector(this.SELECTORS.modal),\n }\n }\n\n bindEvents() {\n this.dom.cta.addEventListener('click', () => {\n document.body.style.overflow = 'hidden';\n this.modal.show();\n });\n\n this.dom.modal.addEventListener(this.$customEvents.MODAL.hide, () => {\n document.body.style.overflow = null;\n })\n }\n\n render() {\n super.render();\n\n this.dom = this.readDOM();\n\n this.modal = new ModalMixinComponent(this.dom.modal);\n this.modal.render();\n\n this.bindEvents();\n }\n}\n"],"sourceRoot":""}