import { LitElement, html, css } from "lit"; import { property, state } from "lit/decorators.js"; class BrowserModSettingsCard extends LitElement { @property() hass; @state() _selectedTab = 0; firstUpdated() { window.browser_mod.addEventListener("browser-mod-config-update", () => this.requestUpdate() ); } _handleSwitchTab(ev: CustomEvent) { this._selectedTab = parseInt(ev.detail.index, 10); } render() { const level = ["browser", "user", "global"][this._selectedTab]; return html`
${this._render_settings(level)}
`; } _render_settings(level) { const global = window.browser_mod.global_settings; const user = window.browser_mod.user_settings; const browser = window.browser_mod.browser_settings; const current = { global, user, browser }[level]; const DESC_BOOLEAN = (val) => ({ true: "Enabled", false: "Disabled", undefined: "unset" }[String(val)]); const DESC_SET_UNSET = (val) => (val === undefined ? "Unset" : "Set"); const OVERRIDDEN = (key) => { if (level !== "browser" && browser[key] !== undefined) return html`
Overridden by browser setting`; if (level === "global" && user[key] !== undefined) return html`
Overridden by user setting`; }; return html` Kiosk mode Hide sidebar and header Currenty: ${DESC_BOOLEAN(current.kiosk)} ${OVERRIDDEN("kiosk")} window.browser_mod.set_setting("kiosk", true, level)} > Enable window.browser_mod.set_setting("kiosk", false, level)} > Disable window.browser_mod.set_setting("kiosk", undefined, level)} > Clear Sidebar order Order and visibility of sidebar buttons Currenty: ${DESC_SET_UNSET(current.sidebarPanelOrder)} ${OVERRIDDEN("sidebarPanelOrder")} { window.browser_mod.set_setting( "sidebarPanelOrder", localStorage.getItem("sidebarPanelOrder"), level ); window.browser_mod.set_setting( "sidebarHiddenPanels", localStorage.getItem("sidebarHiddenPanels"), level ); }} > Set { window.browser_mod.set_setting( "sidebarPanelOrder", undefined, level ); window.browser_mod.set_setting( "sidebarHiddenPanels", undefined, level ); }} > Clear `; } _render_user() { return html` User Kiosk mode Hide sidebar and header Currenty: Overridden Set screensaver Set screensaver card Enable Disable Clear `; } _render_browser() { return html` Browser Kiosk mode Hide sidebar and header Currenty: Overridden Set screensaver Set screensaver card Enable Disable Clear `; } } customElements.define("browser-mod-settings-card", BrowserModSettingsCard);