{"version":3,"file":"ZepterWorld_Tabs.min.js","names":["Zepter_V2_ZepterWorld_Tabs","constructor","this","container","document","getElementById","firstRun","disabled","bpMobile","tabsCount","currentTabIndex","autoOpen","isFirstTab","isLastTab","TabsController","elTabsList","getElementsByClassName","length","window","addEventListener","GoToTab","querySelectorAll","forEach","elTab","tabIndex","linkElements","link","onclick","url","getAttribute","fetchAndRenderDetail","console","error","nodeType","ArrowsController","_a","_b","_c","_d","_e","elTabsWrapper","style","left","offsetWidth","classList","add","remove","hrefUrl","item","arrowPrev","arrowNext","Disable","pointerEvents","Enable","selectedTabLinkClassName","$","removeClass","ajax","success","data","html","addClass","history","pushState"],"sources":["V2/ZepterWorld_Tabs.js"],"mappings":"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","ignoreList":[],"sourcesContent":["class Zepter_V2_ZepterWorld_Tabs {\n    constructor() {\n        this.container = document.getElementById(\"V2_ZepterWorld_Tabs_Container\");\n        this.firstRun = true;\n        this.disabled = false;\n        this.bpMobile = 992; // (md)\n        this.tabsCount = 0;\n        this.currentTabIndex = 0;\n        this.autoOpen = true;\n        this.isFirstTab = true;\n        this.isLastTab = false;\n        // Jeśli brakuje kontenera\n        if (!this.container) {\n            // Przerwij działanie tej klasy\n            return;\n        }\n        // Obsługa ikonki koszyka\n        this.TabsController();\n        // Usuń przebieg prierwszego wywołania klasy\n        this.firstRun = false;\n    }\n    TabsController() {\n        // Ustal element zawierający taby\n        const elTabsList = document.getElementById(\"V2_ZepterWorld_Tabs_List\");\n        // Jesli element z tabami istnieje\n        if (elTabsList) {\n            // Ustal ilość tabów\n            this.tabsCount = elTabsList.getElementsByClassName(\"V2_ZepterWorld_Tabs_Tab_Wrapper\").length;\n            // Zawsze ustaw ponownie pasek zakładek po zmianie rozmiaru okienka\n            window.addEventListener(\"resize\", () => { this.GoToTab(this.currentTabIndex); });\n            // Przetwarzaj taby\n            elTabsList.querySelectorAll(\"li\").forEach((elTab, tabIndex) => {\n                const linkElements = elTab.getElementsByClassName(\"V2_ZepterWorld_Tabs_Tab_Link\");\n                if (!linkElements || linkElements.length !== 1) {\n                    console.error(`Expected one link. Found: ${linkElements.length}`);\n                }\n                else {\n                    const link = linkElements[0];\n                    link.onclick = () => {\n                        // get href from attribute value, not from link.href as they are different. \n                        // Wwe use this value later on as $ selector.\n                        const url = link.getAttribute(\"href\");\n                        this.fetchAndRenderDetail(url);\n                        return false;\n                    };\n                }\n                if (elTab.nodeType === 1) {\n                    // Jeśli ten tab jest aktualnie wybrany\n                    if (elTab.getElementsByClassName(\"V2_ZepterWorld_Tabs_Tab_Link_Selected\").length === 1) {\n                        // Przesuń slider do tego taba\n                        this.GoToTab(tabIndex);\n                    }\n                }\n            });\n            // Uruchom działanie strzałek zmieniających taby\n            this.ArrowsController();\n        }\n    }\n    GoToTab(tabIndex) {\n        // Debug\n        //console.log(`Go to tab ${tabIndex} of ${this.tabsCount}`)\n        var _a, _b, _c, _d, _e;\n        // Ustal element z wrapperem zawierający taby\n        const elTabsWrapper = document.getElementById(\"V2_ZepterWorld_Tabs_Wrapper\");\n        const elTabsList = document.getElementById(\"V2_ZepterWorld_Tabs_List\");\n        // Jeśli element zawierający taby istnieje\n        if (elTabsWrapper && elTabsList) {\n            // Nie pozwalaj na zmianę zakładki jeśli osiągnięta pierwszą/ostatnią zakładkę\n            if (tabIndex < 0 || tabIndex >= this.tabsCount) {\n                return;\n            }\n            // Zaktualizuj indeks wybranej zakładki\n            this.currentTabIndex = tabIndex;\n            // Ustaw pozycję zakładek we wrapperze (scrolluj do wybranej)\n            elTabsList.style.left = `-${elTabsWrapper.offsetWidth * tabIndex}px`;\n            // Ustal czy to jest pierwsza zakładka\n            this.isFirstTab = tabIndex == 0 ? true : false;\n            this.isLastTab = tabIndex == this.tabsCount - 1 ? true : false;\n            // Zablokuj/odblokuj strzałkę [prev]\n            if (this.isFirstTab) {\n                (_a = document.getElementById(\"V2_ZepterWorld_Tabs_Arrow_Prev_Wrapper\")) === null || _a === void 0 ? void 0 : _a.classList.add(\"V2_ZepterWorld_Tabs_Arrow_Prev_Wrapper_Disabled\");\n            }\n            else {\n                (_b = document.getElementById(\"V2_ZepterWorld_Tabs_Arrow_Prev_Wrapper\")) === null || _b === void 0 ? void 0 : _b.classList.remove(\"V2_ZepterWorld_Tabs_Arrow_Prev_Wrapper_Disabled\");\n            }\n            // Zablokuj/odblokuj strzałkę [next]\n            if (this.isLastTab) {\n                (_c = document.getElementById(\"V2_ZepterWorld_Tabs_Arrow_Next_Wrapper\")) === null || _c === void 0 ? void 0 : _c.classList.add(\"V2_ZepterWorld_Tabs_Arrow_Next_Wrapper_Disabled\");\n            }\n            else {\n                (_d = document.getElementById(\"V2_ZepterWorld_Tabs_Arrow_Next_Wrapper\")) === null || _d === void 0 ? void 0 : _d.classList.remove(\"V2_ZepterWorld_Tabs_Arrow_Next_Wrapper_Disabled\");\n            }\n            // Jeśli aktywna jest funkcja autoOpen\n            if (this.autoOpen && !this.firstRun) {\n                const link = (_e = elTabsList.getElementsByClassName(\"V2_ZepterWorld_Tabs_Tab_Link\")) === null || _e === void 0 ? void 0 : _e.item(tabIndex);\n                const hrefUrl = link.getAttribute(\"href\");\n                // Jeśli link istnieje\n                if (typeof hrefUrl == 'string' && hrefUrl.length > 0) {\n                    this.fetchAndRenderDetail(hrefUrl);\n                }\n            }\n        }\n    }\n    ArrowsController() {\n        // Ustal obiekty ze strzałkami\n        const arrowPrev = document.getElementById(\"V2_ZepterWorld_Tabs_Arrow_Prev_Wrapper\");\n        const arrowNext = document.getElementById(\"V2_ZepterWorld_Tabs_Arrow_Next_Wrapper\");\n        // Ustaw akcję dla strzałki [previous]\n        arrowPrev === null || arrowPrev === void 0 ? void 0 : arrowPrev.addEventListener(\"click\", () => {\n            this.GoToTab(this.currentTabIndex - 1);\n        });\n        // Ustaw akcję dla strzałki [next]\n        arrowNext === null || arrowNext === void 0 ? void 0 : arrowNext.addEventListener(\"click\", () => {\n            this.GoToTab(this.currentTabIndex + 1);\n        });\n    }\n    Disable() {\n        // Zablokuj działanie paska z zakładkami\n        this.disabled = true;\n        this.container.style.pointerEvents = \"none\";\n    }\n    Enable() {\n        // Odblokuj działanie paska z zakładkami\n        this.disabled = true;\n        this.container.style.pointerEvents = \"\";\n    }\n    fetchAndRenderDetail(url) {\n        const selectedTabLinkClassName = \"V2_ZepterWorld_Tabs_Tab_Link_Selected\";\n        $(`a.${selectedTabLinkClassName}`).removeClass(selectedTabLinkClassName);\n        $.ajax({\n            url: `${url}?partial=true`,\n            success: function (data) {\n                $('div[data-V2_ZepterWorld_Tabs_Detail]').html(data);\n                $(`a[href=\"${url}\"]`).addClass(selectedTabLinkClassName);\n                history.pushState(\"\", \"\", url);\n            }\n        });\n    }\n}\nnew Zepter_V2_ZepterWorld_Tabs();\n//# sourceMappingURL=ZepterWorld_Tabs.js.map"]}