{"version":3,"sources":["components/tabs/_icon/tabs.js"],"names":["TabsIcon","Component","constructor","el","switchesHolder","$find","switches","querySelectorAll","tabs","$findAll","_init","resetTabs","forEach","switchEl","classList","remove","tab","activeTab","hash","scrollIntoView","find","item","id","substr","add","activeSwitch","behavior","onSwitchClicked","e","preventDefault","history","pushState","willSwitchesFit","sumWidht","offsetWidth","parseInt","getComputedStyle","getPropertyValue","clientWidth","resetSwitchers","appendChild","moveSwitchers","currentTab","Array","from","insertAdjacentElement","location","addEventListeners","addEventListener","window"],"mappings":"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","sourcesContent":["class TabsIcon extends Component {\r\n\tconstructor(el) {\r\n\t\tsuper(el);\r\n\t\tthis.switchesHolder = this.$find('[data-icon-tabs-switchers]');\r\n\t\tthis.switches = this.switchesHolder.querySelectorAll('[data-icon-tabs-switch]');\r\n\t\tthis.tabs = this.$findAll('[data-icon-tabs-tab]');\r\n\t\tthis._init();\r\n\t}\r\n\r\n\tresetTabs() {\r\n\t\tthis.switches.forEach(switchEl => switchEl.classList.remove('is-active'));\r\n\t\tthis.tabs.forEach(tab => tab.classList.remove('is-active'));\r\n\t}\r\n\r\n\tactiveTab(hash, scrollIntoView = false) {\r\n\t\tconst activeTab = [...this.tabs].find(item => item.id === hash.substr(1));\r\n\t\tif (!activeTab) return;\r\n\t\tthis.resetTabs();\r\n\t\tactiveTab.classList.add('is-active');\r\n\t\tconst activeSwitch = [...this.switches].find(item => item.hash === hash)\r\n\t\tactiveSwitch && activeSwitch.classList.add('is-active');\r\n\t\tscrollIntoView && activeTab.scrollIntoView({behavior: 'smooth'});\r\n\t}\r\n\r\n\tonSwitchClicked(e, switchEl) {\r\n\t\te.preventDefault();\r\n\t\thistory.pushState({}, '', switchEl.hash);\r\n\t\tthis.activeTab(switchEl.hash);\r\n\t}\r\n\r\n\twillSwitchesFit() {\r\n\t\tlet sumWidht = 0;\r\n\t\tthis.switches.forEach(switchEl => {\r\n\t\t\tsumWidht += switchEl.offsetWidth + parseInt(getComputedStyle(switchEl).getPropertyValue('margin-right'));\r\n\t\t});\r\n\t\treturn sumWidht < this.switchesHolder.clientWidth;\r\n\t}\r\n\r\n\tresetSwitchers() {\r\n\t\tthis.switches.forEach(switchEl => {\r\n\t\t\tswitchEl.classList.remove('is-responsive');\r\n\t\t\tthis.switchesHolder.appendChild(switchEl);\r\n\t\t});\r\n\t}\r\n\r\n\tmoveSwitchers() {\r\n\t\tthis.resetSwitchers();\r\n\t\tif (!this.willSwitchesFit()) {\r\n\t\t\tthis.switches.forEach(switchEl => {\r\n\t\t\t\tconst currentTab = Array.from(this.tabs).find(item => item.id === switchEl.hash.substr(1))\r\n\t\t\t\tswitchEl.classList.add('is-responsive');\r\n\t\t\t\tcurrentTab.insertAdjacentElement('beforebegin', switchEl);\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\t_init() {\r\n\t\tlocation.hash && this.activeTab(location.hash);\r\n\t\tthis.addEventListeners();\r\n\t\tthis.moveSwitchers();\r\n\t}\r\n\r\n\taddEventListeners() {\r\n\t\tthis.switches.forEach(switchEl => switchEl.addEventListener('click', (e) => this.onSwitchClicked(e, switchEl)));\r\n\t\twindow.addEventListener('resize', () => this.moveSwitchers());\r\n\t\twindow.addEventListener('hashchange', () => {\r\n\t\t\tthis.activeTab(location.hash, true);\r\n\t\t}, false);\r\n\t}\r\n}\r\n"],"file":"tabs.min.js"}