{"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":""}