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