viewy 2.0.6

A web UI toolkit that combine the advantages of a design system and an ui library.
window.addEventListener("startViewy", ({detail}) => {
    detail.root.querySelectorAll(".tab-view")
        .forEach(tabView => {
            const tabs = tabView.querySelectorAll(".tab-view__tab-container__tab");

            async function desactivateAllTabs(except) {
                return tabs.forEach(tab => {
                    if (tab !== except) {
                        let tabId = tab.getAttribute("data-tabId");
                        detail.root.querySelector(`.tab-view__content-container__content[data-tabId="${tabId}"]`)
                            .style.display = "none";

                        tab.classList.remove("tab-view__tab-container__tab--active");

                    }
                })
            }

            tabs.forEach(tab => {
                tab.addEventListener("click", e => {
                    desactivateAllTabs(tab).then(() => {
                        let tabId = tab.getAttribute("data-tabId");
                        tab.classList.add("tab-view__tab-container__tab--active");
                        detail.root.querySelector(`.tab-view__content-container__content[data-tabId="${tabId}"]`)
                            .style.display = "block";
                    })
                });
            });
            let explicitely_open = tabView.querySelector(".tab-view__tab-container__tab[data-is-open]");
            if (explicitely_open) {
                explicitely_open.click()
            } else {
                tabView.querySelector(".tab-view__tab-container__tab").click();
            }

        });
});