{"version":3,"sources":["webpack://[name]/./src/js/components/TabsComponent.js"],"names":["TabsComponent","_BaseComponent","props","_this","_classCallCheck","_callSuper","timeout","handleClick","selectTabByUrl","_inherits","_createClass","key","get","triggers","panels","active","visible","value","hash","window","location","currentTarget","document","querySelector","concat","split","this","$el","querySelectorAll","SELECTORS","handleTabs","_this2","clearTimeout","target","getAttribute","forEach","el","classList","remove","CLASSES","setAttribute","add","setTimeout","_this3","trigger","$on","e","preventDefault","BaseComponent"],"mappings":"keAAuD,IAElCA,EAAa,SAAAC,GAehC,SAAAD,EAAYE,GAAO,IAAAC,EAIK,OAJLC,IAAA,KAAAJ,IACjBG,EAAAE,EAAA,KAAAL,EAAA,CAAME,KACDI,QAAU,KACfH,EAAKI,cACLJ,EAAKK,iBAAiBL,EACvB,OAAAM,IAAAT,EAAAC,GAAAS,IAAAV,EAAA,EAAAW,IAAA,YAAAC,IAnBD,WACE,MAAO,CACLC,SAAU,oBACVC,OAAQ,mBAEX,CAAAH,IAAA,UAAAC,IAED,WACE,MAAO,CACLG,OAAQ,SACRC,QAAS,aAEZ,CAAAL,IAAA,iBAAAM,MASD,WACE,IAAQC,EAASC,OAAOC,SAAhBF,KACR,GAAIA,EAAM,CACR,IAAMG,EAAgBC,SAASC,cAAc,UAADC,OAAWN,EAAKO,MAAM,KAAK,GAAE,OACzE,GAAIJ,EAAe,CACjB,IAAMR,EAAWa,KAAKC,IAAIC,iBAAiBF,KAAKG,UAAUhB,UACpDC,EAASY,KAAKC,IAAIC,iBAAiBF,KAAKG,UAAUf,QACxDY,KAAKI,WAAWT,EAAeR,EAAUC,OAG9C,CAAAH,IAAA,aAAAM,MAED,SAAWI,EAAeR,EAAUC,GAAQ,IAAAiB,EAAA,KAC1CC,aAAaN,KAAKpB,SAClB,IACM2B,EADoBP,KAAKC,IAAIJ,cAAc,mBAADC,OAAoBH,EAAca,aAAa,QAAO,QAClER,KAAKC,IAAIJ,cAAcF,EAAca,aAAa,SAGjFD,IAILpB,EAASsB,SAAQ,SAAAC,GAAE,OAAIA,EAAGC,UAAUC,OAAOP,EAAKQ,QAAQxB,WACxDF,EAASsB,SAAQ,SAAAC,GAAE,OAAIA,EAAGI,aAAa,gBAAiB,YACxD1B,EAAOqB,SAAQ,SAAAC,GAAE,OAAIA,EAAGC,UAAUC,OAAOP,EAAKQ,QAAQxB,WACtDD,EAAOqB,SAAQ,SAAAC,GAAE,OAAIA,EAAGI,aAAa,cAAe,WAEpDnB,EAAcgB,UAAUI,IAAIf,KAAKa,QAAQxB,QACzCM,EAAcmB,aAAa,gBAAiB,QACxCP,IACFA,EAAOI,UAAUI,IAAIf,KAAKa,QAAQxB,QAClCkB,EAAOO,aAAa,cAAe,SAEnCd,KAAKpB,QAAUoC,YAAW,WACxBT,EAAOI,UAAUI,IAAIV,EAAKQ,QAAQvB,WACjC,SAGN,CAAAL,IAAA,cAAAM,MAED,WAAc,IAAA0B,EAAA,KACN9B,EAAWa,KAAKC,IAAIC,iBAAiBF,KAAKG,UAAUhB,UACpDC,EAASY,KAAKC,IAAIC,iBAAiBF,KAAKG,UAAUf,QACxDD,EAASsB,SAAQ,SAACS,GAChBD,EAAKE,IAAI,cAAc,SAACC,GACtBA,EAAEC,iBACFJ,EAAKb,WAAWgB,EAAEzB,cAAeR,EAAUC,KAC1C8B,UArEyB,C,OAASI","file":"js/component-TabsComponent-js.chunks.js","sourcesContent":["import BaseComponent from '../abstracts/BaseComponent';\n\nexport default class TabsComponent extends BaseComponent {\n  get SELECTORS() {\n    return {\n      triggers: '.js-panel-trigger',\n      panels: '.js-tab-panel'\n    };\n  }\n\n  get CLASSES() {\n    return {\n      active: 'active',\n      visible: 'visible'\n    };\n  }\n\n  constructor(props) {\n    super(props);\n    this.timeout = null;\n    this.handleClick();\n    this.selectTabByUrl();\n  }\n\n  selectTabByUrl() {\n    const { hash } = window.location;\n    if (hash) {\n      const currentTarget = document.querySelector(`[href=\"${hash.split('?')[0]}\"]`);\n      if (currentTarget) {\n        const triggers = this.$el.querySelectorAll(this.SELECTORS.triggers);\n        const panels = this.$el.querySelectorAll(this.SELECTORS.panels);\n        this.handleTabs(currentTarget, triggers, panels);\n      }\n    }\n  }\n\n  handleTabs(currentTarget, triggers, panels) {\n    clearTimeout(this.timeout);\n    const targetByAttribute = this.$el.querySelector(`[data-panel-id=\"${currentTarget.getAttribute('href')}\"]`);\n    const target = targetByAttribute || this.$el.querySelector(currentTarget.getAttribute('href'));\n\n    // PITTI20-609\n    if (!target) {\n      return;\n    }\n\n    triggers.forEach(el => el.classList.remove(this.CLASSES.active));\n    triggers.forEach(el => el.setAttribute('aria-selected', 'false'));\n    panels.forEach(el => el.classList.remove(this.CLASSES.active));\n    panels.forEach(el => el.setAttribute('aria-hidden', 'true'));\n\n    currentTarget.classList.add(this.CLASSES.active);\n    currentTarget.setAttribute('aria-selected', 'true');\n    if (target) {\n      target.classList.add(this.CLASSES.active);\n      target.setAttribute('aria-hidden', 'false');\n\n      this.timeout = setTimeout(() => {\n        target.classList.add(this.CLASSES.visible);\n      }, 100);\n    }\n\n  }\n\n  handleClick() {\n    const triggers = this.$el.querySelectorAll(this.SELECTORS.triggers);\n    const panels = this.$el.querySelectorAll(this.SELECTORS.panels);\n    triggers.forEach((trigger) => {\n      this.$on('click.tabs', (e) => {\n        e.preventDefault();\n        this.handleTabs(e.currentTarget, triggers, panels);\n      }, trigger);\n    });\n  }\n}\n"],"sourceRoot":""}