{"version":3,"file":"chunk.691.js","mappings":"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","sources":["webpack:///./modules/tabs/index.ts"],"sourcesContent":["var TabHandler = /** @class */ (function () {\n    function TabHandler(props) {\n        this.tabs = undefined;\n        this.panels = undefined;\n        this.activePanelId = undefined;\n        var tabs = props.tabs, panels = props.panels;\n        this.tabs = tabs;\n        this.panels = panels;\n        this.activePanelId = this.getPanelId(tabs[0]);\n        this.init();\n    }\n    TabHandler.prototype.init = function () {\n        var _this = this;\n        this.tabs.forEach(function (tab) {\n            var panelId = _this.getPanelId(tab);\n            var tabId = tab.getAttribute(\"id\");\n            //set aria attributes\n            var panel = _this.panels.find(function (panel) { return panel.getAttribute(\"id\") == panelId; });\n            panel === null || panel === void 0 ? void 0 : panel.setAttribute(\"role\", \"tabpanel\");\n            panel === null || panel === void 0 ? void 0 : panel.setAttribute(\"aria-labelledby\", tabId);\n            tab.setAttribute(\"aria-selected\", \"\".concat(_this.isActive(tab)));\n            tab.setAttribute(\"aria-controls\", panelId);\n            tab.addEventListener(\"click\", function (event) {\n                return _this.onTabClick(event, tab);\n            });\n            //keyboard navigation\n            tab.addEventListener(\"keydown\", function (event) {\n                return _this.onTabKeyDown(event, tab);\n            });\n        });\n    };\n    TabHandler.prototype.onTabClick = function (event, tab) {\n        if (this.isActive(tab)) {\n            return;\n        }\n        this.resetPreviousTabAndPanel();\n        this.setActiveTabAndPanel(tab);\n    };\n    TabHandler.prototype.onTabKeyDown = function (event, tab) {\n        var _this = this;\n        var tabIndex = this.tabs.findIndex(function (tabItem) { return _this.getPanelId(tabItem) == _this.getPanelId(tab); });\n        var previousTab;\n        var nextTab;\n        if (tabIndex == 0) {\n            nextTab = this.tabs[1];\n        }\n        else if (tabIndex > 0 && tabIndex < this.tabs.length) {\n            previousTab = this.tabs[tabIndex - 1];\n            nextTab = this.tabs[tabIndex + 1];\n        }\n        else if (tabIndex == this.tabs.length) {\n            previousTab = this.tabs[this.tabs.length - 1];\n        }\n        if (event.code === \"ArrowLeft\" && previousTab) {\n            this.resetPreviousTabAndPanel();\n            this.setActiveTabAndPanel(previousTab);\n        }\n        if ((event.code === \"ArrowRight\" || event.code === \"ArrowDown\") &&\n            nextTab) {\n            this.resetPreviousTabAndPanel();\n            this.setActiveTabAndPanel(nextTab);\n        }\n    };\n    TabHandler.prototype.isActive = function (tab) {\n        var panelId = this.getPanelId(tab);\n        return panelId == this.activePanelId;\n    };\n    TabHandler.prototype.getPanelId = function (tab) {\n        return tab === null || tab === void 0 ? void 0 : tab.dataset[\"panel\"];\n    };\n    TabHandler.prototype.getActivePanel = function () {\n        var _this = this;\n        return this.panels.find(function (panel) {\n            return panel.getAttribute(\"id\") == _this.activePanelId;\n        });\n    };\n    TabHandler.prototype.getActiveTab = function () {\n        var _this = this;\n        return this.tabs.find(function (tab) {\n            return _this.isActive(tab);\n        });\n    };\n    TabHandler.prototype.resetPreviousTabAndPanel = function () {\n        var tab = this.getActiveTab();\n        var panel = this.getActivePanel();\n        tab === null || tab === void 0 ? void 0 : tab.setAttribute(\"aria-selected\", \"false\");\n        tab === null || tab === void 0 ? void 0 : tab.setAttribute(\"tabIndex\", \"-1\");\n    };\n    TabHandler.prototype.setActiveTabAndPanel = function (tab) {\n        var panelId = this.getPanelId(tab);\n        var panel = this.panels.find(function (panel) { return panel.getAttribute(\"id\") == panelId; });\n        tab === null || tab === void 0 ? void 0 : tab.setAttribute(\"aria-selected\", \"true\");\n        tab.setAttribute(\"tabIndex\", \"0\");\n        tab === null || tab === void 0 ? void 0 : tab.focus();\n        this.activePanelId = panelId;\n    };\n    return TabHandler;\n}());\nexport { TabHandler };\nexport default TabHandler;\n"],"names":["TabHandler","props","this","tabs","undefined","panels","activePanelId","getPanelId","init","prototype","_this","forEach","tab","panelId","tabId","getAttribute","panel","find","setAttribute","concat","isActive","addEventListener","event","onTabClick","onTabKeyDown","resetPreviousTabAndPanel","setActiveTabAndPanel","previousTab","nextTab","tabIndex","findIndex","tabItem","length","code","dataset","getActivePanel","getActiveTab","focus"],"sourceRoot":""}