{"version":3,"sources":["webpack:///./src/js/modules/tabbed-fund-containers.js"],"names":["KEYS","KEYS_DIRECTION","37","38","39","40","Module","Component","setupDefaults","identifier","this","el","dataset","dom","$tabs","querySelectorAll","$panels","$dropdown","querySelector","isVertical","addListeners","forEach","tab","addEventListener","onClick","bind","onKeyDown","onKeyUp","onChange","onActivatetab","onReset","e","target","value","click","activateTab","keyCode","preventDefault","length","don","switchTabOnArrowPress","document","getElementById","detail","id","setFocus","deactivateTabs","setAttribute","removeAttribute","controls","getAttribute","focus","event","CustomEvent","dispatchEvent","panel","index","parseInt"],"mappings":"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","file":"34.38adc01d013e01bd4ac6.js","sourcesContent":["import { Component } from '@verndale/core';\n// import { keyCode as KEYS } from '../helpers';\n\nconst KEYS = {\n TAB: 9,\n RETURN: 13,\n ESC: 27,\n SPACE: 32,\n PAGEUP: 33,\n PAGEDOWN: 34,\n END: 35,\n HOME: 36,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40\n};\nconst KEYS_DIRECTION = {\n 37: -1,\n 38: -1,\n 39: 1,\n 40: 1\n};\n\nclass Module extends Component {\n setupDefaults() {\n const identifier = this.el.dataset.identifier;\n\n this.dom = {\n $tabs: this.el.querySelectorAll(`[data-identifier=\"${identifier}\"][role=\"tab\"]`),\n $panels: this.el.querySelectorAll(`[data-identifier=\"${identifier}\"][role=\"tabpanel\"]`),\n $dropdown: this.el.querySelector('.tabbed-content__dropdown')\n };\n\n this.isVertical = this.el.dataset.isVertical === 'true';\n }\n\n addListeners() {\n this.dom.$tabs.forEach((tab) => tab.addEventListener('click', this.onClick.bind(this)));\n this.dom.$tabs.forEach((tab) => tab.addEventListener('keydown', this.onKeyDown.bind(this)));\n this.dom.$tabs.forEach((tab) => tab.addEventListener('keyup', this.onKeyUp.bind(this)));\n this.dom.$dropdown.addEventListener('change', this.onChange.bind(this));\n this.el.addEventListener('activatetab', this.onActivatetab.bind(this));\n this.el.addEventListener('reset', this.onReset.bind(this));\n }\n\n onChange(e) {\n this.el.querySelector(`#${e.target.value}`).click();\n }\n\n onClick(e) {\n this.activateTab(e.target, false);\n }\n\n onKeyDown(e) {\n switch (e.keyCode) {\n case KEYS.END:\n e.preventDefault();\n this.activateTab(this.dom.$tabs[this.dom.$tabs.length - 1]);\n break;\n case KEYS.HOME:\n e.preventDefault();\n this.activateTab(this.don.$tabs[0]);\n break;\n case KEYS.UP:\n case KEYS.DOWN:\n if (this.isVertical) e.preventDefault();\n break;\n }\n }\n\n onKeyUp(e) {\n switch (e.keyCode) {\n case KEYS.LEFT:\n case KEYS.RIGHT:\n if (!this.isVertical) this.switchTabOnArrowPress(e);\n break;\n case KEYS.UP:\n case KEYS.DOWN:\n if (this.isVertical) this.switchTabOnArrowPress(e);\n break;\n }\n }\n\n onActivatetab(e) {\n const tab = document.getElementById(e.detail.id);\n this.activateTab(tab, !!e.detail.setFocus);\n }\n\n onReset() {\n this.deactivateTabs();\n this.dom.$tabs[0].setAttribute('tabindex', '0');\n }\n\n activateTab(tab, setFocus = true) {\n this.deactivateTabs();\n tab.removeAttribute('tabindex');\n tab.setAttribute('aria-selected', 'true');\n const controls = tab.getAttribute('aria-controls');\n document.getElementById(controls).removeAttribute('aria-hidden');\n if (setFocus) {\n tab.focus();\n }\n const event = new CustomEvent('tabchange', { detail: { id: tab.id } });\n this.el.dispatchEvent(event);\n }\n\n deactivateTabs() {\n this.dom.$tabs.forEach((tab) => {\n tab.setAttribute('tabindex', '-1');\n tab.setAttribute('aria-selected', 'false');\n });\n\n this.dom.$panels.forEach((panel) => {\n panel.setAttribute('aria-hidden', 'true');\n });\n }\n\n switchTabOnArrowPress(e) {\n if (!KEYS_DIRECTION[e.keyCode]) return;\n if (typeof e.target.dataset.index === 'undefined') return;\n const index = parseInt(e.target.dataset.index, 10);\n\n if (this.dom.$tabs[index + KEYS_DIRECTION[e.keyCode]]) {\n this.activateTab(this.dom.$tabs[index + KEYS_DIRECTION[e.keyCode]], true);\n return;\n }\n\n if (this.isVertical) {\n if (e.keyCode === KEYS.UP) {\n this.activateTab(this.dom.$tabs[this.dom.$tabs.length - 1], true);\n } else if (e.keyCode === KEYS.DOWN) {\n this.activateTab(this.dom.$tabs[0], true);\n }\n } else {\n if (e.keyCode === KEYS.LEFT) {\n this.activateTab(this.dom.$tabs[this.dom.$tabs.length - 1], true);\n } else if (e.keyCode === KEYS.RIGHT) {\n this.activateTab(this.dom.$tabs[0], true);\n }\n }\n }\n}\n\nexport default Module;\n"],"sourceRoot":""}