{"version":3,"sources":["tab-content.js"],"names":["document","addEventListener","tabsContainer","querySelector","tabsList","tabButtons","querySelectorAll","tabPanels","switchTab","newTab","activePanelId","getAttribute","activePanel","forEach","button","setAttribute","panel","removeAttribute","focus","listitem","tab","index","e","clickedTab","target","closest","preventDefault","key","currentTab","activeElement","previousTab","_currentTab$parentEle","parentElement","previousElementSibling","length","_currentTab$parentEle2","nextTab","nextElementSibling","moveRight","link","targetId","targetPanel","concat","contains","targetButton","Array","from","find","setTimeout","offsetPosition","getBoundingClientRect","top","window","scrollY","scrollTo","behavior"],"mappings":"AAIAA,SAASC,iBAAiB,oBAAoB,WAC1C,IAAMC,EAAgBF,SAASG,cAAc,wBAEvCC,EAAWF,EAAcC,cAAc,sBACvCE,EAAaD,EAASE,iBAAiB,qBACvCC,EAAYL,EAAcI,iBAAiB,oBA0HjD,SAASE,EAAUC,GACf,IAAMC,EAAgBD,EAAOE,aAAa,QACpCC,EAAcV,EAAcC,cAAcO,GAEhDL,EAAWQ,SAAQ,SAACC,GAChBA,EAAOC,aAAa,gBAAiB,SACrCD,EAAOC,aAAa,WAAY,KACpC,IAEAR,EAAUM,SAAQ,SAACG,GACfA,EAAMD,aAAa,SAAU,OACjC,IAEAH,EAAYK,gBAAgB,UAC5BR,EAAOM,aAAa,gBAAiB,QACrCN,EAAOM,aAAa,WAAY,KAChCN,EAAOS,OACX,CAzIAd,EAASW,aAAa,OAAQ,WAE9BX,EAASE,iBAAiB,MAAMO,SAAQ,SAACM,GACrCA,EAASJ,aAAa,OAAQ,eAClC,IAEAV,EAAWQ,SAAQ,SAACO,EAAKC,GACrBD,EAAIL,aAAa,OAAQ,OAEX,IAAVM,EACAD,EAAIL,aAAa,gBAAiB,SAElCK,EAAIL,aAAa,WAAY,MAC7BR,EAAUc,GAAON,aAAa,SAAU,IAEhD,IAEAR,EAAUM,SAAQ,SAACG,GACfA,EAAMD,aAAa,OAAQ,YAC3BC,EAAMD,aAAa,WAAY,IACnC,IAEAb,EAAcD,iBAAiB,SAAS,SAACqB,GACrC,IAAMC,EAAaD,EAAEE,OAAOC,QAAQ,sBAE/BF,IAILD,EAAEI,iBACFlB,EAAUe,GACd,IAEArB,EAAcD,iBAAiB,WAAW,SAACqB,GACvC,OAAQA,EAAEK,KACN,IAAK,YAgEHC,EAAa5B,SAAS6B,cAG5BrB,EAAUsB,OAFJA,EAC6C,QADlCC,EACbH,EAAWI,cAAcC,8BAAsB,IAAAF,OAAA,EAA/CA,EAAiD5B,cAAc,MACzD2B,EAAezB,EAAWA,EAAW6B,OAAS,IAjEhD,MACJ,IAAK,cAuEb,WAAqB,IAAAC,EACXP,EAAa5B,SAAS6B,cACtBO,EACyC,QADlCD,EACTP,EAAWI,cAAcK,0BAAkB,IAAAF,OAAA,EAA3CA,EAA6ChC,cAAc,KAC/DK,EAAU4B,QAAAA,EAAW/B,EAAW,GACpC,CA3EYiC,GACA,MACJ,IAAK,OACDhB,EAAEI,iBACFlB,EAAUH,EAAW,IACrB,MACJ,IAAK,MACDiB,EAAEI,iBACFlB,EAAUH,EAAWA,EAAW6B,OAAS,IAmDrD,IAAoBH,EACVH,EACAE,CAlDV,IAKA9B,SAASC,iBAAiB,SAAS,SAACqB,GAChC,IAAMiB,EAAOjB,EAAEE,OAAOC,QAAQ,2CAE9B,GAAKc,EAAL,CAIA,IAAMC,EAAWD,EAAK5B,aAAa,QAC7B8B,EAAczC,SAASG,cAAa,mBAAAuC,OAAoBF,IAE9D,GAAKC,GAAgBvC,EAAcyC,SAASF,GAA5C,CAIAnB,EAAEI,iBAGF,IAAMkB,EAAeC,MAAMC,KAAKzC,GAAY0C,MACxC,SAAAjC,GAAM,OAAIA,EAAOH,aAAa,UAAY6B,CAAQ,IAGlDI,IACApC,EAAUoC,GAGVI,YAAW,WACP,IAEMC,EADkBR,EAAYS,wBAAwBC,IAAMC,OAAOC,QADpD,IAIrBD,OAAOE,SAAS,CACZH,IAAKF,EACLM,SAAU,UAElB,GAAG,IAtBP,CAPA,CAgCJ,GA8CJ","file":"../../javascript/tab-content.js","sourcesContent":["/**\n * Initializes tabbed navigation functionality on the document.\n * Sets up event listeners for click and keyboard navigation.\n */\ndocument.addEventListener('DOMContentLoaded', () => {\n    const tabsContainer = document.querySelector('[data-tab-container]');\n\n    const tabsList = tabsContainer.querySelector('[data-tab-headers]');\n    const tabButtons = tabsList.querySelectorAll('[data-tab-button]');\n    const tabPanels = tabsContainer.querySelectorAll('[data-tab-panel]');\n\n    tabsList.setAttribute('role', 'tablist');\n\n    tabsList.querySelectorAll('li').forEach((listitem) => {\n        listitem.setAttribute('role', 'presentation');\n    });\n\n    tabButtons.forEach((tab, index) => {\n        tab.setAttribute('role', 'tab');\n\n        if (index === 0) {\n            tab.setAttribute('aria-selected', 'true');\n        } else {\n            tab.setAttribute('tabindex', '-1');\n            tabPanels[index].setAttribute('hidden', '');\n        }\n    });\n\n    tabPanels.forEach((panel) => {\n        panel.setAttribute('role', 'tabpanel');\n        panel.setAttribute('tabindex', '0');\n    });\n\n    tabsContainer.addEventListener('click', (e) => {\n        const clickedTab = e.target.closest('a[data-tab-button]');\n\n        if (!clickedTab) {\n            return;\n        }\n\n        e.preventDefault();\n        switchTab(clickedTab);\n    });\n\n    tabsContainer.addEventListener('keydown', (e) => {\n        switch (e.key) {\n            case 'ArrowLeft':\n                moveLeft();\n                break;\n            case 'ArrowRight':\n                moveRight();\n                break;\n            case 'Home':\n                e.preventDefault();\n                switchTab(tabButtons[0]);\n                break;\n            case 'End':\n                e.preventDefault();\n                switchTab(tabButtons[tabButtons.length - 1]);\n                break;\n        }\n    });\n\n    /**\n     * Handle links that point to tab panels (e.g., from other parts of the page)\n     */\n    document.addEventListener('click', (e) => {\n        const link = e.target.closest('a[href^=\"#delivery-returns\"][data-jump]');\n        \n        if (!link) {\n            return;\n        }\n\n        const targetId = link.getAttribute('href');\n        const targetPanel = document.querySelector(`[data-tab-panel]${targetId}`);\n        \n        if (!targetPanel || !tabsContainer.contains(targetPanel)) {\n            return;\n        }\n\n        e.preventDefault();\n        \n        // Find the corresponding tab button\n        const targetButton = Array.from(tabButtons).find(\n            button => button.getAttribute('href') === targetId\n        );\n        \n        if (targetButton) {\n            switchTab(targetButton);\n            \n            // scroll to panel\n            setTimeout(() => {\n                const headerOffset = 300;\n                const elementPosition = targetPanel.getBoundingClientRect().top + window.scrollY;\n                const offsetPosition = elementPosition - headerOffset;\n\n                window.scrollTo({\n                    top: offsetPosition,\n                    behavior: 'smooth'\n                });\n            }, 50);\n\n        }\n    });\n\n    /**\n     * Moves focus to the left tab.\n     * If at the first tab, loops to the last tab.\n     */\n    function moveLeft() {\n        const currentTab = document.activeElement;\n        const previousTab =\n            currentTab.parentElement.previousElementSibling?.querySelector('a');\n        switchTab(previousTab ?? tabButtons[tabButtons.length - 1]);\n    }\n\n    /**\n     * Moves focus to the right tab.\n     * If at the last tab, loops to the first tab.\n     */\n    function moveRight() {\n        const currentTab = document.activeElement;\n        const nextTab =\n            currentTab.parentElement.nextElementSibling?.querySelector('a');\n        switchTab(nextTab ?? tabButtons[0]);\n    }\n\n    /**\n     * Switches to the specified tab and updates ARIA attributes accordingly.\n     * @param {Element} newTab - The new tab element to switch to.\n     */\n    function switchTab(newTab) {\n        const activePanelId = newTab.getAttribute('href');\n        const activePanel = tabsContainer.querySelector(activePanelId);\n\n        tabButtons.forEach((button) => {\n            button.setAttribute('aria-selected', 'false');\n            button.setAttribute('tabindex', '-1');\n        });\n\n        tabPanels.forEach((panel) => {\n            panel.setAttribute('hidden', 'true');\n        });\n\n        activePanel.removeAttribute('hidden');\n        newTab.setAttribute('aria-selected', 'true');\n        newTab.setAttribute('tabindex', '0');\n        newTab.focus();\n    }\n});\n"],"sourceRoot":"../../../../resources/javascript"}