{"version":3,"sources":["webpack:///./src/components/pmicom/components/pages-nav/controller.js"],"names":["DELAY_DEBOUNCE","CLASS_NO_DISPLAY","require","default","breakSmall","breakXtraSmall","mediaQueryMin","initControllerLink","trackGtm","asyncImport","CLASS_CURRENT","CLASS_HIDDEN","CLASS_DOTS_AFTER","module","exports","init","isDynamic","root","dataset","dynamic","firstButton","querySelector","lastButton","numbersContainer","numbers","getElementsByClassName","count","length","halfSize","current","getCurrent","update","window","addEventListener","debounce","bind","initPreviousNext","widgetName","widget","e","eventCategory","eventAction","target","innerText","eventLabel","Array","from","forEach","element","setDynamicPagination","clickCallback","setActivePage","page","dynamicRender","limit","getDisplayableNumbersLimit","innerHTML","list","getPagesList","ellipsisList","getEllipsisIndexes","i","isCurrent","hasEllipsis","includes","document","createElement","classList","add","push","appendChild","updatePreviousNext","disabled","lowLimit","highLimit","getRange","pages","isHidden","toggle","render","findIndex","number","margin","beforeLastNumber","firstNumber","indexes","max","remove"],"mappings":"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","file":"components--pages-navd91775db6ac0caf70696.js","sourcesContent":["const { DELAY_DEBOUNCE, CLASS_NO_DISPLAY } = require('../../../../js/consts');\n\nconst {\n\tdefault: { breakSmall, breakXtraSmall },\n} = require('../../../../js/sass-variables');\nconst {\n\tmediaQueryMin,\n\tinitControllerLink,\n\ttrackGtm,\n} = require('../../../../js/functions');\nconst asyncImport = require('util/asyncImport').default;\n\nconst CLASS_CURRENT = 'active';\nconst CLASS_HIDDEN = 'hidden';\nconst CLASS_DOTS_AFTER = 'dots-after';\n\nmodule.exports = {\n\tasync init() {\n\t\tthis.isDynamic = this.root.dataset.dynamic;\n\n\t\tthis.firstButton = this.root.querySelector('.pages-nav--first');\n\t\tthis.lastButton = this.root.querySelector('.pages-nav--last');\n\t\tthis.numbersContainer = this.root.querySelector('.pages-nav--numbers');\n\t\tthis.numbers =\n\t\t\tthis.numbersContainer.getElementsByClassName('pages-nav--number');\n\t\tthis.count = this.numbers.length;\n\t\tthis.halfSize = this.root.dataset.halfSize;\n\t\tthis.current = this.getCurrent();\n\t\tthis.update();\n\t\tawait asyncImport(this, 'debounce');\n\t\twindow.addEventListener(\n\t\t\t'resize',\n\t\t\tthis.debounce(this.update.bind(this), DELAY_DEBOUNCE),\n\t\t);\n\t\tif (this.isDynamic) this.initPreviousNext();\n\t\tinitControllerLink(this);\n\n\t\t//Gtm Tracking\n\t\tthis.widgetName = this.root.dataset.widget;\n\n\t\tif (this.widgetName) {\n\t\t\tthis.firstButton.addEventListener('click', e => {\n\t\t\t\ttrackGtm({\n\t\t\t\t\teventCategory: 'content-navigation',\n\t\t\t\t\teventAction: e.target.innerText + ' page',\n\t\t\t\t\teventLabel: this.widgetName,\n\t\t\t\t});\n\t\t\t});\n\t\t\tthis.lastButton.addEventListener('click', e => {\n\t\t\t\ttrackGtm({\n\t\t\t\t\teventCategory: 'content-navigation',\n\t\t\t\t\teventAction: e.target.innerText + ' page',\n\t\t\t\t\teventLabel: this.widgetName,\n\t\t\t\t});\n\t\t\t});\n\t\t\tArray.from(this.numbers).forEach(element => {\n\t\t\t\telement.addEventListener('click', () => {\n\t\t\t\t\ttrackGtm({\n\t\t\t\t\t\teventCategory: 'content-navigation',\n\t\t\t\t\t\teventAction: 'page ' + element.innerText,\n\t\t\t\t\t\teventLabel: this.widgetName,\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t},\n\tsetDynamicPagination(current, count, clickCallback) {\n\t\tthis.count = count;\n\t\tthis.current = current;\n\t\tthis.clickCallback = clickCallback;\n\t\tthis.update();\n\t},\n\tsetActivePage(page) {\n\t\tthis.current = page;\n\t\tthis.update();\n\t},\n\tdynamicRender() {\n\t\tthis.limit = this.getDisplayableNumbersLimit();\n\t\tthis.numbers = [];\n\t\tthis.numbersContainer.innerHTML = '';\n\t\tconst list = this.getPagesList();\n\t\tconst ellipsisList = this.getEllipsisIndexes(list);\n\n\t\tlist.forEach((page, i) => {\n\t\t\tconst isCurrent = page === this.current;\n\t\t\tconst hasEllipsis = ellipsisList.includes(i);\n\t\t\tconst element = document.createElement(isCurrent ? 'p' : 'button');\n\t\t\telement.classList.add('pages-nav--number');\n\t\t\tif (isCurrent) element.classList.add(CLASS_CURRENT);\n\t\t\tif (hasEllipsis) element.classList.add(CLASS_DOTS_AFTER);\n\t\t\telement.innerHTML = page + 1;\n\t\t\tif (this.clickCallback)\n\t\t\t\telement.addEventListener('click', () => this.clickCallback(page));\n\t\t\tthis.numbers.push(element);\n\t\t\tthis.numbersContainer.appendChild(element);\n\t\t});\n\t\tthis.updatePreviousNext();\n\t},\n\tinitPreviousNext() {\n\t\tthis.firstButton.addEventListener('click', () => {\n\t\t\tthis.clickCallback(0);\n\t\t});\n\t\tthis.lastButton.addEventListener('click', () => {\n\t\t\tthis.clickCallback(this.count);\n\t\t});\n\t},\n\tupdatePreviousNext() {\n\t\tthis.firstButton.disabled = this.current === 0;\n\t\tthis.lastButton.disabled = this.current === this.count;\n\t},\n\tgetPagesList() {\n\t\tconst { lowLimit, highLimit } = this.getRange();\n\t\tconst pages = [0];\n\t\tfor (let page = lowLimit; page <= highLimit; page++) {\n\t\t\tif (page > 0) pages.push(page);\n\t\t}\n\t\tif (this.count > 0) pages.push(this.count);\n\t\treturn pages;\n\t},\n\tupdate() {\n\t\tconst isHidden = this.count < 1;\n\t\tthis.root.classList.toggle(CLASS_NO_DISPLAY, isHidden);\n\t\tif (isHidden) return;\n\t\tthis.limit = this.getDisplayableNumbersLimit();\n\t\tif (this.isDynamic) this.dynamicRender();\n\t\telse this.render();\n\t},\n\tgetCurrent() {\n\t\tconst current = Array.from(this.numbers).findIndex(number => {\n\t\t\treturn number.dataset.current;\n\t\t});\n\t\treturn current;\n\t},\n\tgetDisplayableNumbersLimit() {\n\t\tif (this.halfSize) {\n\t\t\tif (mediaQueryMin(breakXtraSmall)) return 8;\n\t\t\treturn 6;\n\t\t} else {\n\t\t\tif (mediaQueryMin(breakSmall)) return 10;\n\t\t\tif (mediaQueryMin(breakXtraSmall)) return 8;\n\t\t\treturn 6;\n\t\t}\n\t},\n\tgetRange() {\n\t\tconst margin = (this.limit - 4) / 2;\n\t\tlet lowLimit = this.current - margin;\n\t\tlet highLimit = this.current + margin;\n\t\tif (lowLimit < 2) {\n\t\t\thighLimit -= lowLimit - 1;\n\t\t\tlowLimit = 1;\n\t\t}\n\t\tif (highLimit > this.count - 2) {\n\t\t\tlowLimit -= highLimit - this.count + 1;\n\t\t\thighLimit = this.count - 1;\n\t\t}\n\t\tconst beforeLastNumber = this.numbers[highLimit];\n\t\tconst firstNumber = this.numbers[0];\n\t\treturn {\n\t\t\tmargin,\n\t\t\tlowLimit,\n\t\t\thighLimit,\n\t\t\tbeforeLastNumber,\n\t\t\tfirstNumber,\n\t\t};\n\t},\n\tgetEllipsisIndexes(list) {\n\t\tconst indexes = [];\n\t\tconst max = list.length - 1;\n\t\tif (max > 2) {\n\t\t\tif (list[1] !== list[0] + 1) indexes.push(0);\n\t\t\tif (list[max] !== list[max - 1] + 1) indexes.push(max - 1);\n\t\t}\n\t\treturn indexes;\n\t},\n\trender() {\n\t\tconst { lowLimit, highLimit, beforeLastNumber, firstNumber } =\n\t\t\tthis.getRange();\n\t\tArray.from(this.numbers).forEach((number, i) => {\n\t\t\tif (i !== this.current && i !== 0 && i < this.count - 1) {\n\t\t\t\tif (i < lowLimit || i > highLimit) {\n\t\t\t\t\tnumber.classList.add(CLASS_HIDDEN);\n\t\t\t\t} else {\n\t\t\t\t\tnumber.classList.remove(CLASS_HIDDEN);\n\t\t\t\t}\n\t\t\t}\n\t\t\tnumber.classList.remove(CLASS_DOTS_AFTER);\n\t\t});\n\t\tif (lowLimit > 1) {\n\t\t\tfirstNumber.classList.add(CLASS_DOTS_AFTER);\n\t\t}\n\t\tif (highLimit < this.count - 2) {\n\t\t\tbeforeLastNumber.classList.add(CLASS_DOTS_AFTER);\n\t\t}\n\t},\n};\n"],"sourceRoot":""}