ui_suite_dsfr_ft-1.0.0-rc3/js/scheme.js

js/scheme.js
const applyTheme = (mode) => {
    if (mode === "system") {
        console.log("Set theme if set in prefers-color-scheme");
        window.matchMedia("(prefers-color-scheme: dark)").matches && applyTheme('dark');
        window.matchMedia("(prefers-color-scheme: light)").matches && applyTheme('light');
    } else {
        document.documentElement.setAttribute("data-fr-theme", mode), (document.documentElement.style.colorScheme = mode);
        console.log(`Set ${mode} theme`);
    }
};
(() => {
    if (document.documentElement.matches(`:root[data-fr-theme], :root[data-fr-scheme]`)) {
        const schemeLocStorage = (() => {
                try {
                    return "localStorage" in window && null !== window.localStorage;
                } catch (e) {
                    return !1;
                }
            })()
                ? localStorage.getItem("scheme")
                : "",
            schemeFromMarkup = document.documentElement.getAttribute('data-fr-scheme');
        console.log("scheme from localstorage=", schemeLocStorage);
        console.log("scheme from html markup=", schemeFromMarkup);
        switch (!0) {
            case schemeLocStorage !== "":
                console.log(`local storage explicit ${schemeLocStorage}`);
                applyTheme(schemeLocStorage);
                break;
            case schemeFromMarkup !== "":
                console.log(`html markup explicit ${schemeFromMarkup}`);
                applyTheme(schemeFromMarkup);
                break;
        }
    }
})();

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc