{"version":3,"file":"chunks/87f25631e0275a.js","mappings":"qhBAIqBA,EAAAA,WACnB,WAAYC,EAASC,I,4FAAQ,SAC3BC,KAAKF,QAAUA,EACfE,KAAKD,OAASA,EAEdC,KAAKC,eAAiBF,EAAOG,aAC7BF,KAAKG,KAAOH,KAAKF,QAAQM,iBAAiB,mCAC1CJ,KAAKK,SAAWL,KAAKF,QAAQM,iBAAiB,uCAC9CJ,KAAKM,QAAUN,KAAKF,QAAQM,iBAAiB,2CAC7CJ,KAAKO,UAAYP,KAAKF,QAAQM,iBAAiB,mBAC/CJ,KAAKQ,gBAAkBR,KAAKF,QAAQM,iBAAiB,yBACrDJ,KAAKS,iBAAmB,SACxBT,KAAKU,mBAAqBX,EAAOY,mBAAqB,SAAWZ,EAAOa,aAAe,iBAAmBb,EAAOc,eACjHb,KAAKc,iBAAmB,UAAYf,EAAOgB,yBAA2B,SAAWhB,EAAOiB,mBAAqB,iBAAmBjB,EAAOc,eACvIb,KAAKiB,cAAgBnB,EACrBE,KAAKkB,SAAWC,SAASC,eAAepB,KAAKD,OAAOsB,UACpDrB,KAAKsB,kBAAoBtB,KAAKiB,cAAcM,cAAc,mCAC1DvB,KAAKwB,MACN,C,yCAED,WACExB,KAAKyB,aACLzB,KAAK0B,kBACLC,QAAQC,IAAI5B,KAAKD,OAAO8B,WACzB,G,6BAED,WACE,IAAIC,EAAYC,EAAAA,EAAAA,eAChB/B,KAAKgC,YACa,OAAdF,QAAwCG,IAAlBH,EAAUI,KAClClC,KAAKmC,cAAcL,EAAUI,KAIzBE,OAAOC,SAASC,MAAQnB,SAASI,cAAca,OAAOC,SAASC,QACjEF,OAAOC,SAAWD,OAAOC,SAASC,OAGpCtC,KAAKmC,cAAcnC,KAAKD,OAAO8B,WAElC,G,wBAED,WAAa,WACPU,EAAOvC,KAoBX,GAnBIuC,EAAKxC,OAAOyC,oBACdrB,SAASsB,KAAKC,iBAAiB,cAAc,WAC3CH,EAAKb,iBACN,IAAE,GAELiB,MAAMC,KAAK5C,KAAKK,UAAUwC,SAAQ,SAAAC,GAChCA,EAAQJ,iBAAiB,SAAS,SAACK,GAGjC,GAFAA,EAAEC,iBACF,EAAKC,QAAQF,GACTR,EAAKxC,OAAOyC,mBAAoB,CAElC,IAAIU,EAAQ/B,SAASgC,YAAY,SACjCD,EAAME,UAAU,cAAc,GAAM,GACpCjC,SAASsB,KAAKY,cAAcH,EAC7B,CACDH,EAAEC,gBACH,GACF,IAEGhD,KAAKkB,UAAYlB,KAAKsB,kBAAmB,CAC3C,IACIgC,EADctD,KAAKkB,SAASK,cAAc,yBACpBnB,iBAAiB,wBACvCmD,EAAW,KACXC,EAAc,KAElBxD,KAAKsB,kBAAkBoB,iBAAiB,SAAS,WAC/C,EAAKxB,SAASuC,UAAUC,OAAO,EAAKjD,iBACrC,IAEDT,KAAKkB,SAASwB,iBAAiB,WAAW,SAACK,GAMzC,GALc,QAAVA,EAAEY,KACJZ,EAAEC,iBAGiB,CAAC,YAAa,UAAW,QAAS,SAAU,OAAQ,OACtDY,SAASb,EAAEY,KAAM,CAClC,IAAK,IAAIE,EAAI,EAAGA,EAAIP,EAAQQ,OAAQD,GAAK,EACvCP,EAAQO,GAAGJ,UAAUM,OAAO,EAAKtD,kBAsBnC,GApBc,cAAVsC,EAAEY,MACJJ,EAAyB,OAAbA,GAAqBA,EAAWD,EAAQQ,OAAS,EAAKP,EAAW,EAAI,EACjFD,EAAQC,GAAUE,UAAUO,IAAI,EAAKvD,kBACrC+C,EAAcF,EAAQC,IAEV,YAAVR,EAAEY,MACJJ,EAAWA,EAAWA,EAAW,EAAID,EAAQQ,OAAS,EACtDR,EAAQC,GAAUE,UAAUO,IAAI,EAAKvD,kBACrC+C,EAAcF,EAAQC,IAEV,SAAVR,EAAEY,MAEJL,EADAC,EAAW,GACOE,UAAUO,IAAI,EAAKvD,kBACrC+C,EAAcF,EAAQC,IAEV,QAAVR,EAAEY,MACJJ,EAAWD,EAAQQ,OAAS,EAC5BR,EAAQC,GAAUE,UAAUO,IAAI,EAAKvD,kBACrC+C,EAAcF,EAAQC,IAEV,UAAVR,EAAEY,MACJ,EAAKzC,SAASuC,UAAUC,OAAO,EAAKjD,kBAChC+C,GAAa,CACf,IAAItB,EAAMsB,EAAYjC,cAAc,KACpC,EAAKY,cAAcD,EAAI+B,QAAQC,SAC/B,EAAKC,cAAcjC,EAAI+B,QAAQC,SAC/BV,EAAc,IACf,CAEW,WAAVT,EAAEY,MACJ,EAAKzC,SAASuC,UAAUM,OAAO,EAAKtD,kBACpC+C,EAAc,KAEjB,CACF,IAEDpB,OAAOM,iBAAiB,SAAS,SAACK,GAC5BA,EAAEqB,SAAW,EAAK9C,mBACpB,EAAKJ,SAASuC,UAAUM,OAAO,EAAKtD,iBAEvC,GACF,CAEF,G,qBAED,SAAQ4D,GACNrE,KAAKgC,YACLhC,KAAKmE,cAAcE,EAAQD,OAAOH,QAAQC,SAC1CG,EAAQD,OAAOE,UAAYtE,KAAKc,iBAC5Bd,KAAKF,QAAQyB,cAAc8C,EAAQD,OAAO9B,OAC5CtC,KAAKF,QAAQyB,cAAc8C,EAAQD,OAAO9B,MAAMmB,UAAUO,IAAIhE,KAAKS,kBAEjET,KAAKF,QAAQyB,cAAc8C,EAAQD,OAAO9B,KAAO,iBACnDtC,KAAKF,QAAQyB,cAAc8C,EAAQD,OAAO9B,KAAO,gBAAgBmB,UAAUO,IAAIhE,KAAKS,kBAEtFT,KAAKuE,gBAAgBF,GAErBjC,OAAOiB,cAAc,IAAImB,MAAM,UAChC,G,6BAED,SAAgBH,GACd,GAAIrE,KAAKkB,SAAU,CACjB,IAAIsC,EAAcxD,KAAKiB,cAAcb,iBAAiB,mBAAqBiE,EAAQD,OAAOH,QAAQC,QAAU,MACxGO,EAAiBzE,KAAKkB,SAASK,cAAc,mBAAqB8C,EAAQD,OAAOH,QAAQC,QAAU,MACvGV,EAAYc,UAAYtE,KAAKc,iBAC7Bd,KAAKsB,kBAAkBoD,YAAcD,EAAeC,WACrD,CACF,G,2BAED,SAAcR,GACZ,IAAIhC,EAAMlC,KAAKF,QAAQyB,cAAc,+BAAiC2C,EAAU,MAC3EhC,IACHA,EAAMlC,KAAKF,QAAQyB,cAAc,+BAAiCvB,KAAKD,OAAO8B,WAAa,OAE7F,IAAI8C,EAAW3E,KAAKF,QAAQyB,cAAcW,EAAI0C,aAAa,SACvDC,EAAiB7E,KAAKF,QAAQyB,cAAcW,EAAI0C,aAAa,QAAU,gBAE3E5E,KAAKgC,YACLE,EAAIoC,UAAY,GAChBpC,EAAIoC,UAAYtE,KAAKc,iBACrB6D,EAASlB,UAAUO,IAAIhE,KAAKS,kBACxBoE,GACFA,EAAepB,UAAUO,IAAIhE,KAAKS,kBAGpCT,KAAK8E,sBAAsBZ,EAC5B,G,mCAED,SAAsBA,GACpB,GAAIlE,KAAKkB,SAAU,CACjB,IAAIuD,EAAiBzE,KAAKkB,SAASK,cAAc,mBAAqB2C,EAAU,MAC5EO,IACFA,EAAehB,UAAUO,IAAIhE,KAAKS,kBAClCT,KAAKsB,kBAAkBoD,YAAcD,EAAeC,YAEvD,CACF,G,uBAED,WAAY,WACV/B,MAAMC,KAAK5C,KAAKO,WAAWsC,SAAQ,SAAA8B,GACjCA,EAASlB,UAAUM,OAAO,EAAKtD,iBAChC,IACDkC,MAAMC,KAAK5C,KAAKQ,iBAAiBqC,SAAQ,SAAA8B,GACvCA,EAASlB,UAAUM,OAAO,EAAKtD,iBAChC,IACDkC,MAAMC,KAAK5C,KAAKK,UAAUwC,SAAQ,SAAAC,GAChCA,EAAQwB,UAAY,EAAK5D,kBAC1B,GACF,G,2BAED,SAAcwD,GACZ,GAAIa,EAAAA,EAAAA,KAAAA,SAAAA,WAEE,gBAAOb,KAA4C,IAAZA,EAAmB,CAC5D,IAAIc,EAAa5C,OAAOC,SAAS4C,KAC7BnD,EAAYC,EAAAA,EAAAA,aAAiBiD,GAC7B1C,EAAOF,OAAOC,SAASC,KAEvBR,EACFA,EAAS,IAAUoC,EAEnBpC,EAAY,CAAEI,IAAKgC,GAErB9B,OAAO8C,QAAQC,aAAajB,EAAS/C,SAASiE,MAAO,IAAM,IAAIC,gBAAgBC,OAAOC,QAAQzD,IAAY0D,WAAalD,EACxH,CAEJ,M,sEAjNkBzC,E","sources":["webpack:///./resources/js/components/navigation/tabs.ts"],"sourcesContent":["// tabs section component\nimport imkt from '../../imkt';\nimport url from '../../utils/url';\n\nexport default class Tabs {\n constructor(domRoot, params) {\n this.domRoot = domRoot;\n this.params = params;\n // component elements\n this.defaultTabName = params.firstTabName;\n this.tabs = this.domRoot.querySelectorAll('.imkt-tab, .tab-dropdown-option');\n this.tabLinks = this.domRoot.querySelectorAll('.imkt-tab a, .tab-dropdown-option a');\n this.tabIcon = this.domRoot.querySelectorAll('.imkt-tab img, .tab-dropdown-option img');\n this.tabBlocks = this.domRoot.querySelectorAll('.imkt-tab-block');\n this.tabDescriptions = this.domRoot.querySelectorAll('.imkt-tab-description');\n this.activeBlockClass = \"active\";\n this.inactiveTabClasses = params.tabBackgroundColor + \" text-\" + params.tabTextColor + \" border-color-\" + params.tabBorderColor;\n this.activeTabClasses = \"active \" + params.tabBackgroundColorActive + \" text-\" + params.tabTextColorActive + \" border-color-\" + params.tabBorderColor;\n this.componentRoot = domRoot;\n this.dropdown = document.getElementById(this.params.selectId);\n this.dropdownSelection = this.componentRoot.querySelector('.mobile-tab-navigation > button');\n this.init();\n }\n\n init() {\n this.bindEvents();\n this.setInitialState();\n console.log(this.params.defaultTab)\n }\n\n setInitialState() {\n var urlParams = url.getUrlParams();\n this.closeTabs();\n if (urlParams !== null && urlParams.tab !== undefined) {\n this.openTabByName(urlParams.tab);\n\n // if URL contains an anchor tag that is not on the\n // default tab jump to it after opening the tab\n if (window.location.hash && document.querySelector(window.location.hash)) {\n window.location = window.location.hash;\n }\n } else {\n this.openTabByName(this.params.defaultTab);\n }\n }\n\n bindEvents() {\n var self = this;\n if (self.params.linkedContainerTab) {\n document.body.addEventListener('tabClicked', () => {\n self.setInitialState();\n }, false);\n }\n Array.from(this.tabLinks).forEach(tabLink => {\n tabLink.addEventListener('click', (e) => {\n e.preventDefault();\n this.openTab(e);\n if (self.params.linkedContainerTab) {\n\n var event = document.createEvent('Event');\n event.initEvent('tabClicked', true, true);\n document.body.dispatchEvent(event);\n }\n e.preventDefault();\n })\n });\n\n if (this.dropdown && this.dropdownSelection) {\n let optionsList = this.dropdown.querySelector('.tab-dropdown-options');\n let options = optionsList.querySelectorAll('.tab-dropdown-option');\n let tabIndex = null;\n let selectedTab = null;\n\n this.dropdownSelection.addEventListener('click', () => {\n this.dropdown.classList.toggle(this.activeBlockClass);\n });\n\n this.dropdown.addEventListener('keydown', (e) => {\n if (e.key !== 'Tab') {\n e.preventDefault();\n }\n\n let acceptableKeys = ['ArrowDown', 'ArrowUp', 'Enter', 'Escape', 'Home', 'End'];\n if (acceptableKeys.includes(e.key)) {\n for (var i = 0; i < options.length; i += 1) {\n options[i].classList.remove(this.activeBlockClass);\n }\n if (e.key === 'ArrowDown') {\n tabIndex = (tabIndex !== null && tabIndex < options.length - 1) ? tabIndex + 1 : 0;\n options[tabIndex].classList.add(this.activeBlockClass);\n selectedTab = options[tabIndex];\n }\n if (e.key === 'ArrowUp') {\n tabIndex = tabIndex ? tabIndex - 1 : options.length - 1;\n options[tabIndex].classList.add(this.activeBlockClass);\n selectedTab = options[tabIndex];\n }\n if (e.key === 'Home') {\n tabIndex = 0;\n options[tabIndex].classList.add(this.activeBlockClass);\n selectedTab = options[tabIndex];\n }\n if (e.key === 'End') {\n tabIndex = options.length - 1;\n options[tabIndex].classList.add(this.activeBlockClass);\n selectedTab = options[tabIndex];\n }\n if (e.key === 'Enter') {\n this.dropdown.classList.toggle(this.activeBlockClass);\n if (selectedTab) {\n let tab = selectedTab.querySelector('a');\n this.openTabByName(tab.dataset.tabName);\n this.updateHistory(tab.dataset.tabName);\n selectedTab = null;\n }\n }\n if (e.key === 'Escape') {\n this.dropdown.classList.remove(this.activeBlockClass);\n selectedTab = null;\n }\n }\n });\n\n window.addEventListener('click', (e) => {\n if (e.target !== this.dropdownSelection) {\n this.dropdown.classList.remove(this.activeBlockClass);\n }\n });\n }\n\n }\n\n openTab(clicked) {\n this.closeTabs();\n this.updateHistory(clicked.target.dataset.tabName);\n clicked.target.className = this.activeTabClasses;\n if (this.domRoot.querySelector(clicked.target.hash)) {\n this.domRoot.querySelector(clicked.target.hash).classList.add(this.activeBlockClass);\n }\n if (this.domRoot.querySelector(clicked.target.hash + '-description')) {\n this.domRoot.querySelector(clicked.target.hash + '-description').classList.add(this.activeBlockClass);\n }\n this.openDropdownTab(clicked);\n\n window.dispatchEvent(new Event('resize'));\n }\n\n openDropdownTab(clicked) {\n if (this.dropdown) {\n let selectedTab = this.componentRoot.querySelectorAll('[data-tab-name=\"' + clicked.target.dataset.tabName + '\"]');\n let dropdownOption = this.dropdown.querySelector('[data-tab-name=\"' + clicked.target.dataset.tabName + '\"]');\n selectedTab.className = this.activeTabClasses;\n this.dropdownSelection.textContent = dropdownOption.textContent;\n }\n }\n\n openTabByName(tabName) {\n var tab = this.domRoot.querySelector('.imkt-tab > [data-tab-name=\"' + tabName + '\"]');\n if (!tab) {\n tab = this.domRoot.querySelector('.imkt-tab > [data-tab-name=\"' + this.params.defaultTab + '\"]');\n }\n var tabBlock = this.domRoot.querySelector(tab.getAttribute('href'));\n var tabDescription = this.domRoot.querySelector(tab.getAttribute('href') + '-description');\n\n this.closeTabs();\n tab.className = '';\n tab.className = this.activeTabClasses;\n tabBlock.classList.add(this.activeBlockClass);\n if (tabDescription) {\n tabDescription.classList.add(this.activeBlockClass);\n }\n\n this.openDropdownTabByName(tabName);\n }\n\n openDropdownTabByName(tabName) {\n if (this.dropdown) {\n let dropdownOption = this.dropdown.querySelector('[data-tab-name=\"' + tabName + '\"]');\n if (dropdownOption) {\n dropdownOption.classList.add(this.activeBlockClass);\n this.dropdownSelection.textContent = dropdownOption.textContent;\n }\n }\n }\n\n closeTabs() {\n Array.from(this.tabBlocks).forEach(tabBlock => {\n tabBlock.classList.remove(this.activeBlockClass);\n });\n Array.from(this.tabDescriptions).forEach(tabBlock => {\n tabBlock.classList.remove(this.activeBlockClass);\n });\n Array.from(this.tabLinks).forEach(tabLink => {\n tabLink.className = this.inactiveTabClasses;\n });\n }\n\n updateHistory(tabName) {\n if (imkt.core.supports.history()) {\n // Append url params from incoming URL on history state\n if (typeof tabName !== typeof undefined && tabName !== false) {\n var currentUrl = window.location.href;\n var urlParams = url.getUrlParams(currentUrl);\n var hash = window.location.hash;\n\n if (urlParams) {\n urlParams['tab'] = tabName;\n } else {\n urlParams = { tab: tabName };\n }\n window.history.replaceState(tabName, document.title, \"?\" + new URLSearchParams(Object.entries(urlParams)).toString() + hash);\n }\n }\n }\n}\n\n"],"names":["Tabs","domRoot","params","this","defaultTabName","firstTabName","tabs","querySelectorAll","tabLinks","tabIcon","tabBlocks","tabDescriptions","activeBlockClass","inactiveTabClasses","tabBackgroundColor","tabTextColor","tabBorderColor","activeTabClasses","tabBackgroundColorActive","tabTextColorActive","componentRoot","dropdown","document","getElementById","selectId","dropdownSelection","querySelector","init","bindEvents","setInitialState","console","log","defaultTab","urlParams","url","closeTabs","undefined","tab","openTabByName","window","location","hash","self","linkedContainerTab","body","addEventListener","Array","from","forEach","tabLink","e","preventDefault","openTab","event","createEvent","initEvent","dispatchEvent","options","tabIndex","selectedTab","classList","toggle","key","includes","i","length","remove","add","dataset","tabName","updateHistory","target","clicked","className","openDropdownTab","Event","dropdownOption","textContent","tabBlock","getAttribute","tabDescription","openDropdownTabByName","imkt","currentUrl","href","history","replaceState","title","URLSearchParams","Object","entries","toString"],"sourceRoot":""}