{"version":3,"file":"chunk.691.js","mappings":"yIAAA,IAAIA,EAA4B,WAC5B,SAASA,EAAWC,GAChBC,KAAKC,UAAOC,EACZF,KAAKG,YAASD,EACdF,KAAKI,mBAAgBF,EACrB,IAAID,EAAOF,EAAME,KAAME,EAASJ,EAAMI,OACtCH,KAAKC,KAAOA,EACZD,KAAKG,OAASA,EACdH,KAAKI,cAAgBJ,KAAKK,WAAWJ,EAAK,IAC1CD,KAAKM,MACT,CAsFA,OArFAR,EAAWS,UAAUD,KAAO,WACxB,IAAIE,EAAQR,KACZA,KAAKC,KAAKQ,SAAQ,SAAUC,GACxB,IAAIC,EAAUH,EAAMH,WAAWK,GAC3BE,EAAQF,EAAIG,aAAa,MAEzBC,EAAQN,EAAML,OAAOY,MAAK,SAAUD,GAAS,OAAOA,EAAMD,aAAa,OAASF,CAAS,IAC7FG,SAA8CA,EAAME,aAAa,OAAQ,YACzEF,SAA8CA,EAAME,aAAa,kBAAmBJ,GACpFF,EAAIM,aAAa,gBAAiB,GAAGC,OAAOT,EAAMU,SAASR,KAC3DA,EAAIM,aAAa,gBAAiBL,GAClCD,EAAIS,iBAAiB,SAAS,SAAUC,GACpC,OAAOZ,EAAMa,WAAWD,EAAOV,EACnC,IAEAA,EAAIS,iBAAiB,WAAW,SAAUC,GACtC,OAAOZ,EAAMc,aAAaF,EAAOV,EACrC,GACJ,GACJ,EACAZ,EAAWS,UAAUc,WAAa,SAAUD,EAAOV,GAC3CV,KAAKkB,SAASR,KAGlBV,KAAKuB,2BACLvB,KAAKwB,qBAAqBd,GAC9B,EACAZ,EAAWS,UAAUe,aAAe,SAAUF,EAAOV,GACjD,IAEIe,EACAC,EAHAlB,EAAQR,KACR2B,EAAW3B,KAAKC,KAAK2B,WAAU,SAAUC,GAAW,OAAOrB,EAAMH,WAAWwB,IAAYrB,EAAMH,WAAWK,EAAM,IAGnG,GAAZiB,EACAD,EAAU1B,KAAKC,KAAK,GAEf0B,EAAW,GAAKA,EAAW3B,KAAKC,KAAK6B,QAC1CL,EAAczB,KAAKC,KAAK0B,EAAW,GACnCD,EAAU1B,KAAKC,KAAK0B,EAAW,IAE1BA,GAAY3B,KAAKC,KAAK6B,SAC3BL,EAAczB,KAAKC,KAAKD,KAAKC,KAAK6B,OAAS,IAE5B,cAAfV,EAAMW,MAAwBN,IAC9BzB,KAAKuB,2BACLvB,KAAKwB,qBAAqBC,IAEV,eAAfL,EAAMW,MAAwC,cAAfX,EAAMW,OACtCL,IACA1B,KAAKuB,2BACLvB,KAAKwB,qBAAqBE,GAElC,EACA5B,EAAWS,UAAUW,SAAW,SAAUR,GAEtC,OADcV,KAAKK,WAAWK,IACZV,KAAKI,aAC3B,EACAN,EAAWS,UAAUF,WAAa,SAAUK,GACxC,OAAOA,aAAiC,EAASA,EAAIsB,QAAe,KACxE,EACAlC,EAAWS,UAAU0B,eAAiB,WAClC,IAAIzB,EAAQR,KACZ,OAAOA,KAAKG,OAAOY,MAAK,SAAUD,GAC9B,OAAOA,EAAMD,aAAa,OAASL,EAAMJ,aAC7C,GACJ,EACAN,EAAWS,UAAU2B,aAAe,WAChC,IAAI1B,EAAQR,KACZ,OAAOA,KAAKC,KAAKc,MAAK,SAAUL,GAC5B,OAAOF,EAAMU,SAASR,EAC1B,GACJ,EACAZ,EAAWS,UAAUgB,yBAA2B,WAC5C,IAAIb,EAAMV,KAAKkC,eACHlC,KAAKiC,iBACjBvB,SAA0CA,EAAIM,aAAa,gBAAiB,SAC5EN,SAA0CA,EAAIM,aAAa,WAAY,KAC3E,EACAlB,EAAWS,UAAUiB,qBAAuB,SAAUd,GAClD,IAAIC,EAAUX,KAAKK,WAAWK,GAClBV,KAAKG,OAAOY,MAAK,SAAUD,GAAS,OAAOA,EAAMD,aAAa,OAASF,CAAS,IAC5FD,SAA0CA,EAAIM,aAAa,gBAAiB,QAC5EN,EAAIM,aAAa,WAAY,KAC7BN,SAA0CA,EAAIyB,QAC9CnC,KAAKI,cAAgBO,CACzB,EACOb,CACX,CAjG+B,GAmG/B,W","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":""}