@codedoc/core
Version:
Create beautiful modern documentation websites.
62 lines • 2.92 kB
JavaScript
;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.DarkModeSwitch$ = exports.DarkModeSwitch = void 0;
var transport_1 = require("@connectv/sdh/transport");
var core_1 = require("@connectv/core");
var style_1 = require("./style");
var mode_1 = require("./mode");
var system_1 = require("./system");
function DarkModeSwitch(_, renderer) {
var classes = this.theme.classes(style_1.DarkModeSwitchStyle);
var sysMode = system_1.systemMode();
var runningMode = core_1.state();
var storageLoaded = false;
sysMode.to(runningMode);
this.track(runningMode.to(core_1.sink(function (mode) {
if (mode === mode_1.Mode.Light)
document.body.classList.remove('dark');
else
document.body.classList.add('dark');
if (storageLoaded) {
if (mode !== sysMode.value)
localStorage.setItem('dark-mode', (mode === mode_1.Mode.Light) ? 'false' : 'true');
else
localStorage.removeItem('dark-mode');
}
})));
this.track({
bind: function () {
if (localStorage.getItem('dark-mode'))
runningMode.value = localStorage.getItem('dark-mode') === 'true' ? mode_1.Mode.Dark : mode_1.Mode.Light;
document.body.classList.add('dark-mode-animate');
storageLoaded = true;
}
});
return renderer.create("div", { class: classes.dmSwitch, onclick: function () { return runningMode.value = mode_1.switchMode(runningMode.value); } },
renderer.create("div", { class: "arc" }),
renderer.create("div", { class: "darc" }),
renderer.create("div", { class: "ray one" }),
renderer.create("div", { class: "ray two" }),
renderer.create("div", { class: "ray three" }),
renderer.create("div", { class: "ray four" }),
renderer.create("div", { class: "ray five" }),
renderer.create("div", { class: "ray six" }),
renderer.create("div", { class: "ray seven" }),
renderer.create("div", { class: "ray eight" }));
}
exports.DarkModeSwitch = DarkModeSwitch;
exports.DarkModeSwitch$ = transport_1.transport(DarkModeSwitch);
__exportStar(require("./darklight"), exports);
var style_2 = require("./style");
Object.defineProperty(exports, "DarkModeSwitchStyle", { enumerable: true, get: function () { return style_2.DarkModeSwitchStyle; } });
//# sourceMappingURL=index.js.map