{"version":3,"sources":["webpack:///./assets/javascripts/modules/components/mixins/AccordionMixinComponent.js","webpack:///./assets/javascripts/modules/components/SizeTableComponent.js"],"names":["AccordionMixinComponent","elem","_classCallCheck","this","_this","_possibleConstructorReturn","__proto__","Object","getPrototypeOf","call","collapse","bind","expand","toggle","isExpanded","Component","expanded","$component","classList","remove","CSS","emit","$customEvents","ACCORDION","add","contains","SizeTableComponent","accordion","table","moreCta","shown","querySelector","SELECTORS","_this2","dom","dataset","openDefault","addEventListener","evt","SIZE_GUIDE","scrollToEndTable","mq","window","matchMedia","toggleMoreCta","matches","isOverflow","scrollWidth","clientWidth","scrollTo","top","left","behavior","_get","prototype","render","readDOM","bindEvents"],"mappings":"6WAEqBA,cAOnB,SAAAA,EAAYC,gGAAMC,CAAAC,KAAAH,GAAA,IAAAI,mKAAAC,CAAAF,MAAAH,EAAAM,WAAAC,OAAAC,eAAAR,IAAAS,KAAAN,KACVF,IADU,OAEhBG,EAAKM,SAAWN,EAAKM,SAASC,KAAdP,GAChBA,EAAKQ,OAASR,EAAKQ,OAAOD,KAAZP,GACdA,EAAKS,OAAST,EAAKS,OAAOF,KAAZP,GACdA,EAAKU,WAAaV,EAAKU,WAAWH,KAAhBP,GALFA,qUAPiCW,uCAEjD,OACEC,SAAU,0FAiBZb,KAAKc,WAAWC,UAAUC,OAAOhB,KAAKiB,IAAIJ,UAC1Cb,KAAKkB,KAAKlB,KAAKmB,cAAcC,UAAUb,2CAIvCP,KAAKc,WAAWC,UAAUM,IAAIrB,KAAKiB,IAAIJ,UACvCb,KAAKkB,KAAKlB,KAAKmB,cAAcC,UAAUX,6CAIvC,OAAOT,KAAKc,WAAWC,UAAUO,SAAStB,KAAKiB,IAAIJ,2CAI/Cb,KAAKW,aACPX,KAAKO,WAELP,KAAKS,kBArCUZ,oUCCA0B,cAkBnB,SAAAA,EAAYzB,gGAAMC,CAAAC,KAAAuB,GAAA,IAAAtB,mKAAAC,CAAAF,MAAAuB,EAAApB,WAAAC,OAAAC,eAAAkB,IAAAjB,KAAAN,KACVF,IADU,OAEhBG,EAAKuB,UAAY,IAAI3B,UAAwBI,EAAKa,YAFlCb,qUAlB4BW,iDAE5C,MAAO,uDAGP,OACEF,OAAQ,gBACRe,MAAO,oBACPC,QAAS,+CAKX,OACEC,MAAO,oDAUT,OACEjB,OAAQV,KAAKc,WAAWc,cAAc5B,KAAK6B,UAAUnB,QACrDe,MAAOzB,KAAKc,WAAWc,cAAc5B,KAAK6B,UAAUJ,OACpDC,QAAS1B,KAAKc,WAAWc,cAAc5B,KAAK6B,UAAUH,+CAI7C,IAAAI,EAAA9B,KAC+B,QAAvCA,KAAK+B,IAAIrB,OAAOsB,QAAQC,aACzBjC,KAAKS,SAGPT,KAAK+B,IAAIrB,OAAOwB,iBAAiB,QAAS,SAAAC,GACxCL,EAAKZ,KAAKY,EAAKX,cAAciB,WAAW1B,UAG1CV,KAAK+B,IAAIL,QAAQQ,iBAAiB,QAAS,WACzCJ,EAAKO,qBAGP,IAAMC,EAAKC,OAAOC,WAAP,iCACXF,EAAGJ,iBAAiB,SAAU,kBAAMJ,EAAKW,cAAcH,KACnDA,EAAGI,SAAS1C,KAAKyC,cAAcH,2CAInC,IAAMA,EAAKC,OAAOC,WAAP,iCACLG,EAAa3C,KAAK+B,IAAIN,MAAMmB,YAAc5C,KAAK+B,IAAIN,MAAMoB,YAC/D7C,KAAK+B,IAAIL,QAAQX,UAAUL,OAAOV,KAAKiB,IAAIU,MACzCW,EAAGI,SAAW1C,KAAKW,cAAgBgC,8CAKrC3C,KAAK+B,IAAIN,MAAMqB,UACbC,IAAK,EAAGC,KAAMhD,KAAK+B,IAAIN,MAAMmB,YAAaK,SAAU,uSAKtDC,CAAA3B,EAAA4B,UAAAhD,WAAAC,OAAAC,eAAAkB,EAAA4B,WAAA,SAAAnD,MAAAM,KAAAN,MACAA,KAAKwB,UAAU4B,SAEfpD,KAAK+B,IAAM/B,KAAKqD,UAChBrD,KAAKsD,8CAKLtD,KAAKwB,UAAUf,SACfT,KAAKyC,mDAILzC,KAAKwB,UAAUjB,WACfP,KAAKyC,qDAIL,OAAOzC,KAAKwB,UAAUb,sBAnFLY","file":"component-SizeTableComponent.chunks.js","sourcesContent":["import Component from '../../abstracts/Component';\n\nexport default class AccordionMixinComponent extends Component {\n  get CSS() {\n    return {\n      expanded: '--expanded'\n    };\n  }\n\n  constructor(elem) {\n    super(elem);\n    this.collapse = this.collapse.bind(this);\n    this.expand = this.expand.bind(this);\n    this.toggle = this.toggle.bind(this);\n    this.isExpanded = this.isExpanded.bind(this);\n  }\n\n  render() {\n  }\n\n  // API\n  collapse() {\n    this.$component.classList.remove(this.CSS.expanded);\n    this.emit(this.$customEvents.ACCORDION.collapse);\n  }\n\n  expand() {\n    this.$component.classList.add(this.CSS.expanded);\n    this.emit(this.$customEvents.ACCORDION.expand);\n  }\n\n  isExpanded() {\n    return this.$component.classList.contains(this.CSS.expanded);\n  }\n\n  toggle() {\n    if (this.isExpanded()) {\n      this.collapse();\n    } else {\n      this.expand();\n    }\n  }\n}\n","import Component from \"../abstracts/Component\";\nimport AccordionMixinComponent from \"./mixins/AccordionMixinComponent\";\n\nexport default class SizeTableComponent extends Component {\n  get COMPONENTNAME() {\n    return 'SizeTableComponent';\n  }\n  get SELECTORS() {\n    return {\n      toggle: '[data-toggle]',\n      table: '[data-size-table]',\n      moreCta: '[data-more-cta]',\n    };\n  }\n\n  get CSS() {\n    return {\n      shown: '--shown',\n    }\n  }\n\n  constructor(elem) {\n    super(elem);\n    this.accordion = new AccordionMixinComponent(this.$component);\n  }\n\n  readDOM() {\n    return {\n      toggle: this.$component.querySelector(this.SELECTORS.toggle),\n      table: this.$component.querySelector(this.SELECTORS.table),\n      moreCta: this.$component.querySelector(this.SELECTORS.moreCta),\n    }\n  }\n\n  bindEvents() {\n    if(this.dom.toggle.dataset.openDefault == \"open\") {\n      this.expand();\n    }\n\n    this.dom.toggle.addEventListener('click', evt => {\n      this.emit(this.$customEvents.SIZE_GUIDE.toggle);\n    });\n\n    this.dom.moreCta.addEventListener('click', () => {\n      this.scrollToEndTable();\n    });\n\n    const mq = window.matchMedia(`screen and (max-width: 375px)`)\n    mq.addEventListener('change', () => this.toggleMoreCta(mq));\n    if (mq.matches) this.toggleMoreCta(mq);\n  }\n\n  toggleMoreCta() {\n    const mq = window.matchMedia(`screen and (max-width: 375px)`)\n    const isOverflow = this.dom.table.scrollWidth > this.dom.table.clientWidth;\n    this.dom.moreCta.classList.toggle(this.CSS.shown,\n      mq.matches && this.isExpanded() && isOverflow\n    );\n  }\n\n  scrollToEndTable() {\n    this.dom.table.scrollTo({\n      top: 0, left: this.dom.table.scrollWidth, behavior: 'smooth',\n    });\n  }\n\n  render() {\n    super.render();\n    this.accordion.render();\n\n    this.dom = this.readDOM();\n    this.bindEvents();\n  }\n\n  // API\n  expand() {\n    this.accordion.expand();\n    this.toggleMoreCta();\n  }\n\n  collapse() {\n    this.accordion.collapse();\n    this.toggleMoreCta();\n  }\n\n  isExpanded() {\n    return this.accordion.isExpanded();\n  }\n}\n"],"sourceRoot":""}