{"version":3,"sources":["webpack:///./assets/javascripts/modules/components/mixins/AccordionMixinComponent.js","webpack:///./assets/javascripts/modules/components/SeoTextComponent.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","SeoTextComponent","accordion","body","cta","iconOpen","iconClose","dom","querySelector","SELECTORS","_this2","addEventListener","readDOM","bindEvents"],"mappings":"4WAEqBA,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,cAUjB,SAAAA,EAAYzB,gGAAMC,CAAAC,KAAAuB,GAAA,IAAAtB,mKAAAC,CAAAF,MAAAuB,EAAApB,WAAAC,OAAAC,eAAAkB,IAAAjB,KAAAN,KACVF,IADU,OAEhBG,EAAKuB,UAAY,IAAI3B,UAAwBC,GAF7BG,qUAVwBW,6CAExC,OACEa,KAAM,cACNC,IAAK,aACLC,SAAU,yBACVC,UAAW,oEAUb5B,KAAK6B,KACHJ,KAAMzB,KAAKc,WAAWgB,cAAc9B,KAAK+B,UAAUN,MACnDC,IAAK1B,KAAKc,WAAWgB,cAAc9B,KAAK+B,UAAUL,KAClDC,SAAU3B,KAAKc,WAAWgB,cAAc9B,KAAK+B,UAAUJ,UACvDC,UAAW5B,KAAKc,WAAWgB,cAAc9B,KAAK+B,UAAUH,iDAI/C,IAAAI,EAAAhC,KACXA,KAAK6B,IAAIH,IAAIO,iBAAiB,QAAS,WACrCD,EAAKR,UAAUd,4CAKjBV,KAAKkC,UACLlC,KAAKmC,sBAhCUZ","file":"component-SeoTextComponent.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 SeoTextComponent extends Component {\n    get SELECTORS() {\n      return {\n        body: '[data-body]',\n        cta: '[data-cta]',\n        iconOpen: '[data-cta-icon=\"open\"]',\n        iconClose: '[data-cta-icon=\"close\"]',\n      }\n    }\n\n    constructor(elem) {\n      super(elem);\n      this.accordion = new AccordionMixinComponent(elem);\n    }\n\n    readDOM() {\n      this.dom = {\n        body: this.$component.querySelector(this.SELECTORS.body),\n        cta: this.$component.querySelector(this.SELECTORS.cta),\n        iconOpen: this.$component.querySelector(this.SELECTORS.iconOpen),\n        iconClose: this.$component.querySelector(this.SELECTORS.iconClose),\n      }\n    }\n\n    bindEvents() {\n      this.dom.cta.addEventListener('click', () => {\n        this.accordion.toggle();\n      });\n    }\n\n    render() {\n      this.readDOM();\n      this.bindEvents();\n    }\n}\n\n"],"sourceRoot":""}