{"version":3,"sources":["webpack:///./src/js/constants.js","webpack:///./src/js/modules/statistic-carousel.js"],"names":["KEYS","END","HOME","LEFT","UP","RIGHT","DOWN","ENTER","ESC","TAB","SPACE","KEYS_DIRECTION","37","38","39","40","Module","Component","this","timer","dom","$statisticCards","el","_$$","cardClass","activeCardClass","length","classList","add","forEach","card","idx","_$","innerText","_on","handleUserInput","bind","handleFocusIn","e","target","closest","addActiveClass","clearTimeout","setTimeout","contains","type","keyCode","removeActiveClasses","document","activeElement","focus","remove"],"mappings":"2FAAO,0EAAMA,EAAO,CAClBC,IAAK,GACLC,KAAM,GACNC,KAAM,GACNC,GAAI,GACJC,MAAO,GACPC,KAAM,GACNC,MAAO,GACPC,IAAK,GACLC,IAAK,EACLC,MAAO,IAGIC,EAAiB,CAC5BC,IAAK,EACLC,IAAK,EACLC,GAAI,EACJC,GAAI,I,iCCjBN,4BAGA,MAAMC,UAAeC,YACnB,gBACEC,KAAKC,MAAQ,KACbD,KAAKE,IAAM,CACTC,gBAAiBH,KAAKI,GAAGC,IAAI,0BAG/BL,KAAKM,UAAY,wBACjBN,KAAKO,gBAAkB,+BAEnBP,KAAKE,IAAIC,gBAAgBK,OAAS,IACpCR,KAAKE,IAAIC,gBAAgB,GAAGM,UAAUC,IAAIV,KAAKO,iBAC/CP,KAAKE,IAAIC,gBAAgBQ,QAAQ,CAACC,EAAMC,KACtCD,EAAKE,GAAG,2BAA2BC,UAAY,KAAIF,EAAM,MAK/D,eACEb,KAAKI,GAAGY,IAAI,QAAShB,KAAKiB,gBAAgBC,KAAKlB,OAC/CA,KAAKI,GAAGY,IAAI,YAAahB,KAAKiB,gBAAgBC,KAAKlB,OACnDA,KAAKI,GAAGY,IAAI,UAAWhB,KAAKiB,gBAAgBC,KAAKlB,OACjDA,KAAKI,GAAGY,IAAI,UAAWhB,KAAKmB,cAAcD,KAAKlB,OAGjD,cAAcoB,IACPA,EAAEC,OAAOC,QAAQtB,KAAKM,YAC3BN,KAAKuB,eAAeH,EAAEC,QAGxB,gBAAgBD,GACdI,aAAaxB,KAAKC,OAClBD,KAAKC,MAAQwB,WAAW,KACtB,IAAKL,EAAEC,OAAOC,QAAQtB,KAAKM,YAAcc,EAAEC,OAAOZ,UAAUiB,SAAS1B,KAAKO,iBAAkB,OAE5F,MAAMK,EAAOQ,EAAEC,OAAOC,QAAQtB,KAAKM,YACD,cAAXc,EAAEO,MAAmC,UAAXP,EAAEO,MAAqBP,EAAEQ,UAAY9C,IAAKO,OAAS+B,EAAEQ,UAAY9C,IAAKU,QAEnGQ,KAAKuB,eAAeX,IACvC,KAGL,eAAeA,GACbZ,KAAK6B,sBACLjB,EAAKH,UAAUC,IAAIV,KAAKO,iBACpBK,IAASkB,SAASC,eAAenB,EAAKoB,QAG5C,sBACEhC,KAAKE,IAAIC,gBAAgBQ,QAAQC,GAAQA,EAAKH,UAAUwB,OAAOjC,KAAKO,mBAIzDT","file":"44.0b300cd5184b97fdd84e.js?v=9e9f63b54c983f01df59","sourcesContent":["export const KEYS = {\n  END: 35,\n  HOME: 36,\n  LEFT: 37,\n  UP: 38,\n  RIGHT: 39,\n  DOWN: 40,\n  ENTER: 13,\n  ESC: 27,\n  TAB: 9,\n  SPACE: 32\n};\n\nexport const KEYS_DIRECTION = {\n  37: -1,\n  38: -1,\n  39: 1,\n  40: 1\n};\n","import { Component } from '@verndale/core';\nimport { KEYS } from '../constants';\n\nclass Module extends Component {\n  setupDefaults() {\n    this.timer = null;\n    this.dom = {\n      $statisticCards: this.el._$$('.statistic-card__item')\n    };\n\n    this.cardClass = '.statistic-card__item';\n    this.activeCardClass = 'statistic-card__item--active';\n\n    if (this.dom.$statisticCards.length > 0) {\n      this.dom.$statisticCards[0].classList.add(this.activeCardClass);\n      this.dom.$statisticCards.forEach((card, idx) => {\n        card._$('.statistic-card__number').innerText = `0${idx + 1}`;\n      });\n    }\n  }\n\n  addListeners() {\n    this.el._on('click', this.handleUserInput.bind(this));\n    this.el._on('mousemove', this.handleUserInput.bind(this));\n    this.el._on('keydown', this.handleUserInput.bind(this));\n    this.el._on('focusin', this.handleFocusIn.bind(this));\n  }\n\n  handleFocusIn(e) {\n    if (!e.target.closest(this.cardClass)) return;\n    this.addActiveClass(e.target);\n  }\n\n  handleUserInput(e) {\n    clearTimeout(this.timer);\n    this.timer = setTimeout(() => {\n      if (!e.target.closest(this.cardClass) || e.target.classList.contains(this.activeCardClass)) return;\n\n      const card = e.target.closest(this.cardClass);\n      const addActiveClass = e.type === 'mousemove' || e.type === 'click' || (e.keyCode === KEYS.ENTER || e.keyCode === KEYS.SPACE);\n\n      if (addActiveClass) this.addActiveClass(card);\n    }, 250);\n  }\n\n  addActiveClass(card) {\n    this.removeActiveClasses();\n    card.classList.add(this.activeCardClass);\n    if (card !== document.activeElement) card.focus();\n  }\n\n  removeActiveClasses() {\n    this.dom.$statisticCards.forEach(card => card.classList.remove(this.activeCardClass));\n  }\n}\n\nexport default Module;\n"],"sourceRoot":""}