Add kiosk settings
This commit is contained in:
		
							parent
							
								
									c7ce90883b
								
							
						
					
					
						commit
						5f2e7d7bfa
					
				@ -242,6 +242,42 @@ __decorate([
 | 
				
			|||||||
        customElements.define("browser-player", BrowserPlayer);
 | 
					        customElements.define("browser-player", BrowserPlayer);
 | 
				
			||||||
})();
 | 
					})();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const TIMEOUT_ERROR = "SELECTTREE-TIMEOUT";
 | 
				
			||||||
 | 
					async function _await_el(el) {
 | 
				
			||||||
 | 
					    var _a;
 | 
				
			||||||
 | 
					    if ((_a = el.localName) === null || _a === void 0 ? void 0 : _a.includes("-"))
 | 
				
			||||||
 | 
					        await customElements.whenDefined(el.localName);
 | 
				
			||||||
 | 
					    if (el.updateComplete)
 | 
				
			||||||
 | 
					        await el.updateComplete;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					async function _selectTree(root, path, all = false) {
 | 
				
			||||||
 | 
					    let el = [root];
 | 
				
			||||||
 | 
					    if (typeof path === "string") {
 | 
				
			||||||
 | 
					        path = path.split(/(\$| )/);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    while (path[path.length - 1] === "")
 | 
				
			||||||
 | 
					        path.pop();
 | 
				
			||||||
 | 
					    for (const [i, p] of path.entries()) {
 | 
				
			||||||
 | 
					        const e = el[0];
 | 
				
			||||||
 | 
					        if (!e)
 | 
				
			||||||
 | 
					            return null;
 | 
				
			||||||
 | 
					        if (!p.trim().length)
 | 
				
			||||||
 | 
					            continue;
 | 
				
			||||||
 | 
					        _await_el(e);
 | 
				
			||||||
 | 
					        el = p === "$" ? [e.shadowRoot] : e.querySelectorAll(p);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    return all ? el : el[0];
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					async function selectTree(root, path, all = false, timeout = 10000) {
 | 
				
			||||||
 | 
					    return Promise.race([
 | 
				
			||||||
 | 
					        _selectTree(root, path, all),
 | 
				
			||||||
 | 
					        new Promise((_, reject) => setTimeout(() => reject(new Error(TIMEOUT_ERROR)), timeout)),
 | 
				
			||||||
 | 
					    ]).catch((err) => {
 | 
				
			||||||
 | 
					        if (!err.message || err.message !== TIMEOUT_ERROR)
 | 
				
			||||||
 | 
					            throw err;
 | 
				
			||||||
 | 
					        return null;
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
async function hass_base_el() {
 | 
					async function hass_base_el() {
 | 
				
			||||||
    await Promise.race([
 | 
					    await Promise.race([
 | 
				
			||||||
        customElements.whenDefined("home-assistant"),
 | 
					        customElements.whenDefined("home-assistant"),
 | 
				
			||||||
@ -1838,6 +1874,20 @@ const AutoSettingsMixin = (SuperClass) => {
 | 
				
			|||||||
            if (settings.sidebarHiddenPanels) {
 | 
					            if (settings.sidebarHiddenPanels) {
 | 
				
			||||||
                localStorage.setItem("sidebarHiddenPanels", settings.sidebarHiddenPanels);
 | 
					                localStorage.setItem("sidebarHiddenPanels", settings.sidebarHiddenPanels);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					            if (settings.hideSidebar === true) {
 | 
				
			||||||
 | 
					                selectTree(document.body, "home-assistant$home-assistant-main$app-drawer-layout").then((el) => el.style.setProperty("--app-drawer-width", "0px"));
 | 
				
			||||||
 | 
					                selectTree(document.body, "home-assistant$home-assistant-main$app-drawer-layout app-drawer").then((el) => el.remove());
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            if (settings.hideHeader === true) {
 | 
				
			||||||
 | 
					                customElements.whenDefined("app-header-layout").then(() => {
 | 
				
			||||||
 | 
					                    const appHeader = customElements.get("app-header").prototype;
 | 
				
			||||||
 | 
					                    const _attached = appHeader.attached;
 | 
				
			||||||
 | 
					                    appHeader.attached = function () {
 | 
				
			||||||
 | 
					                        _attached.bind(this)();
 | 
				
			||||||
 | 
					                        this.style.setProperty("display", "none");
 | 
				
			||||||
 | 
					                    };
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
@ -1878,7 +1928,7 @@ const AutoSettingsMixin = (SuperClass) => {
 | 
				
			|||||||
  - Saved frontend settings
 | 
					  - Saved frontend settings
 | 
				
			||||||
    X Framework
 | 
					    X Framework
 | 
				
			||||||
    x Save sidebar
 | 
					    x Save sidebar
 | 
				
			||||||
    - Kiosk mode
 | 
					    x Kiosk mode
 | 
				
			||||||
    - Default panel?
 | 
					    - Default panel?
 | 
				
			||||||
    - Screensaver?
 | 
					    - Screensaver?
 | 
				
			||||||
  - Tweaks
 | 
					  - Tweaks
 | 
				
			||||||
 | 
				
			|||||||
@ -69,8 +69,6 @@ const i=(i,e)=>"method"===e.kind&&e.descriptor&&!("value"in e.descriptor)?{...e,
 | 
				
			|||||||
// Also provides ha-settings-row
 | 
					// Also provides ha-settings-row
 | 
				
			||||||
const loadDevTools = async () => {
 | 
					const loadDevTools = async () => {
 | 
				
			||||||
    var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
 | 
					    var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
 | 
				
			||||||
    if (customElements.get("ha-config-dashboard"))
 | 
					 | 
				
			||||||
        return;
 | 
					 | 
				
			||||||
    await customElements.whenDefined("partial-panel-resolver");
 | 
					    await customElements.whenDefined("partial-panel-resolver");
 | 
				
			||||||
    const ppResolver = document.createElement("partial-panel-resolver");
 | 
					    const ppResolver = document.createElement("partial-panel-resolver");
 | 
				
			||||||
    const routes = ppResolver.getRoutes([
 | 
					    const routes = ppResolver.getRoutes([
 | 
				
			||||||
@ -101,7 +99,7 @@ class BrowserModSettingsCard extends s {
 | 
				
			|||||||
    render() {
 | 
					    render() {
 | 
				
			||||||
        const level = ["browser", "user", "global"][this._selectedTab];
 | 
					        const level = ["browser", "user", "global"][this._selectedTab];
 | 
				
			||||||
        return $ `
 | 
					        return $ `
 | 
				
			||||||
      <ha-card header="Auto settings" outlined>
 | 
					      <ha-card header="Frontend settings" outlined>
 | 
				
			||||||
        <div class="card-content">
 | 
					        <div class="card-content">
 | 
				
			||||||
          <mwc-tab-bar
 | 
					          <mwc-tab-bar
 | 
				
			||||||
            .activeIndex=${this._selectedTab}
 | 
					            .activeIndex=${this._selectedTab}
 | 
				
			||||||
@ -132,23 +130,48 @@ class BrowserModSettingsCard extends s {
 | 
				
			|||||||
        };
 | 
					        };
 | 
				
			||||||
        return $ `
 | 
					        return $ `
 | 
				
			||||||
      <ha-settings-row>
 | 
					      <ha-settings-row>
 | 
				
			||||||
        <span slot="heading">Kiosk mode</span>
 | 
					        <span slot="heading">Hide Sidebar</span>
 | 
				
			||||||
        <span slot="description"> Hide sidebar and header </span>
 | 
					        <span slot="description">Hide the sidebar and hamburger menu</span>
 | 
				
			||||||
        Currenty: ${DESC_BOOLEAN(current.kiosk)} ${OVERRIDDEN("kiosk")}
 | 
					        Currenty: ${DESC_BOOLEAN(current.hideSidebar)}
 | 
				
			||||||
 | 
					        ${OVERRIDDEN("hideSidebar")}
 | 
				
			||||||
      </ha-settings-row>
 | 
					      </ha-settings-row>
 | 
				
			||||||
      <ha-settings-row>
 | 
					      <ha-settings-row>
 | 
				
			||||||
        <mwc-button
 | 
					        <mwc-button
 | 
				
			||||||
          @click=${() => window.browser_mod.set_setting("kiosk", true, level)}
 | 
					          @click=${() => window.browser_mod.set_setting("hideSidebar", true, level)}
 | 
				
			||||||
        >
 | 
					        >
 | 
				
			||||||
          Enable
 | 
					          Enable
 | 
				
			||||||
        </mwc-button>
 | 
					        </mwc-button>
 | 
				
			||||||
        <mwc-button
 | 
					        <mwc-button
 | 
				
			||||||
          @click=${() => window.browser_mod.set_setting("kiosk", false, level)}
 | 
					          @click=${() => window.browser_mod.set_setting("hideSidebar", false, level)}
 | 
				
			||||||
        >
 | 
					        >
 | 
				
			||||||
          Disable
 | 
					          Disable
 | 
				
			||||||
        </mwc-button>
 | 
					        </mwc-button>
 | 
				
			||||||
        <mwc-button
 | 
					        <mwc-button
 | 
				
			||||||
          @click=${() => window.browser_mod.set_setting("kiosk", undefined, level)}
 | 
					          @click=${() => window.browser_mod.set_setting("hideSidebar", undefined, level)}
 | 
				
			||||||
 | 
					        >
 | 
				
			||||||
 | 
					          Clear
 | 
				
			||||||
 | 
					        </mwc-button>
 | 
				
			||||||
 | 
					      </ha-settings-row>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      <ha-settings-row>
 | 
				
			||||||
 | 
					        <span slot="heading">Hide Header</span>
 | 
				
			||||||
 | 
					        <span slot="description">Hide the header on all pages</span>
 | 
				
			||||||
 | 
					        Currenty: ${DESC_BOOLEAN(current.hideHeader)}
 | 
				
			||||||
 | 
					        ${OVERRIDDEN("hideHeader")}
 | 
				
			||||||
 | 
					      </ha-settings-row>
 | 
				
			||||||
 | 
					      <ha-settings-row>
 | 
				
			||||||
 | 
					        <mwc-button
 | 
				
			||||||
 | 
					          @click=${() => window.browser_mod.set_setting("hideHeader", true, level)}
 | 
				
			||||||
 | 
					        >
 | 
				
			||||||
 | 
					          Enable
 | 
				
			||||||
 | 
					        </mwc-button>
 | 
				
			||||||
 | 
					        <mwc-button
 | 
				
			||||||
 | 
					          @click=${() => window.browser_mod.set_setting("hideHeader", false, level)}
 | 
				
			||||||
 | 
					        >
 | 
				
			||||||
 | 
					          Disable
 | 
				
			||||||
 | 
					        </mwc-button>
 | 
				
			||||||
 | 
					        <mwc-button
 | 
				
			||||||
 | 
					          @click=${() => window.browser_mod.set_setting("hideHeader", undefined, level)}
 | 
				
			||||||
        >
 | 
					        >
 | 
				
			||||||
          Clear
 | 
					          Clear
 | 
				
			||||||
        </mwc-button>
 | 
					        </mwc-button>
 | 
				
			||||||
@ -508,34 +531,18 @@ loadDevTools().then(() => {
 | 
				
			|||||||
            --app-header-border-bottom: 1px solid var(--divider-color);
 | 
					            --app-header-border-bottom: 1px solid var(--divider-color);
 | 
				
			||||||
            --ha-card-border-radius: var(--ha-config-card-border-radius, 8px);
 | 
					            --ha-card-border-radius: var(--ha-config-card-border-radius, 8px);
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
 | 
					          ha-config-section {
 | 
				
			||||||
 | 
					            padding: 16px 0;
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
          .card-header {
 | 
					          .card-header {
 | 
				
			||||||
            display: flex;
 | 
					            display: flex;
 | 
				
			||||||
            justify-content: space-between;
 | 
					            justify-content: space-between;
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
          .card-actions {
 | 
					 | 
				
			||||||
            display: flex;
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
          .spacer {
 | 
					 | 
				
			||||||
            flex-grow: 1;
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
          ha-textfield {
 | 
					          ha-textfield {
 | 
				
			||||||
            width: 250px;
 | 
					            width: 250px;
 | 
				
			||||||
            display: block;
 | 
					            display: block;
 | 
				
			||||||
            margin-top: 8px;
 | 
					            margin-top: 8px;
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
          .option {
 | 
					 | 
				
			||||||
            display: flex;
 | 
					 | 
				
			||||||
            margin-top: 16px;
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
          .option h3 {
 | 
					 | 
				
			||||||
            flex-grow: 1;
 | 
					 | 
				
			||||||
            margin: 0;
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
          .option ha-switch {
 | 
					 | 
				
			||||||
            margin-top: 0.25em;
 | 
					 | 
				
			||||||
            margin-right: 7px;
 | 
					 | 
				
			||||||
            margin-left: 0.5em;
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
          ha-icon-button > * {
 | 
					          ha-icon-button > * {
 | 
				
			||||||
            display: flex;
 | 
					            display: flex;
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
 | 
				
			|||||||
@ -1,5 +1,4 @@
 | 
				
			|||||||
import logging
 | 
					import logging
 | 
				
			||||||
from typing import Any
 | 
					 | 
				
			||||||
import voluptuous as vol
 | 
					import voluptuous as vol
 | 
				
			||||||
from datetime import datetime, timezone
 | 
					from datetime import datetime, timezone
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -11,7 +11,8 @@ _LOGGER = logging.getLogger(__name__)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
@attr.s
 | 
					@attr.s
 | 
				
			||||||
class Settings:
 | 
					class Settings:
 | 
				
			||||||
    kiosk = attr.ib(type=bool, default=None)
 | 
					    hideSidebar = attr.ib(type=bool, default=None)
 | 
				
			||||||
 | 
					    hideHeader = attr.ib(type=bool, default=None)
 | 
				
			||||||
    defaultPanel = attr.ib(type=str, default=None)
 | 
					    defaultPanel = attr.ib(type=str, default=None)
 | 
				
			||||||
    sidebarPanelOrder = attr.ib(type=list, default=None)
 | 
					    sidebarPanelOrder = attr.ib(type=list, default=None)
 | 
				
			||||||
    sidebarHiddenPanels = attr.ib(type=list, default=None)
 | 
					    sidebarHiddenPanels = attr.ib(type=list, default=None)
 | 
				
			||||||
 | 
				
			|||||||
@ -313,34 +313,18 @@ loadDevTools().then(() => {
 | 
				
			|||||||
            --app-header-border-bottom: 1px solid var(--divider-color);
 | 
					            --app-header-border-bottom: 1px solid var(--divider-color);
 | 
				
			||||||
            --ha-card-border-radius: var(--ha-config-card-border-radius, 8px);
 | 
					            --ha-card-border-radius: var(--ha-config-card-border-radius, 8px);
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
 | 
					          ha-config-section {
 | 
				
			||||||
 | 
					            padding: 16px 0;
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
          .card-header {
 | 
					          .card-header {
 | 
				
			||||||
            display: flex;
 | 
					            display: flex;
 | 
				
			||||||
            justify-content: space-between;
 | 
					            justify-content: space-between;
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
          .card-actions {
 | 
					 | 
				
			||||||
            display: flex;
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
          .spacer {
 | 
					 | 
				
			||||||
            flex-grow: 1;
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
          ha-textfield {
 | 
					          ha-textfield {
 | 
				
			||||||
            width: 250px;
 | 
					            width: 250px;
 | 
				
			||||||
            display: block;
 | 
					            display: block;
 | 
				
			||||||
            margin-top: 8px;
 | 
					            margin-top: 8px;
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
          .option {
 | 
					 | 
				
			||||||
            display: flex;
 | 
					 | 
				
			||||||
            margin-top: 16px;
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
          .option h3 {
 | 
					 | 
				
			||||||
            flex-grow: 1;
 | 
					 | 
				
			||||||
            margin: 0;
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
          .option ha-switch {
 | 
					 | 
				
			||||||
            margin-top: 0.25em;
 | 
					 | 
				
			||||||
            margin-right: 7px;
 | 
					 | 
				
			||||||
            margin-left: 0.5em;
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
          ha-icon-button > * {
 | 
					          ha-icon-button > * {
 | 
				
			||||||
            display: flex;
 | 
					            display: flex;
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
 | 
				
			|||||||
@ -19,7 +19,7 @@ class BrowserModSettingsCard extends LitElement {
 | 
				
			|||||||
  render() {
 | 
					  render() {
 | 
				
			||||||
    const level = ["browser", "user", "global"][this._selectedTab];
 | 
					    const level = ["browser", "user", "global"][this._selectedTab];
 | 
				
			||||||
    return html`
 | 
					    return html`
 | 
				
			||||||
      <ha-card header="Auto settings" outlined>
 | 
					      <ha-card header="Frontend settings" outlined>
 | 
				
			||||||
        <div class="card-content">
 | 
					        <div class="card-content">
 | 
				
			||||||
          <mwc-tab-bar
 | 
					          <mwc-tab-bar
 | 
				
			||||||
            .activeIndex=${this._selectedTab}
 | 
					            .activeIndex=${this._selectedTab}
 | 
				
			||||||
@ -54,24 +54,54 @@ class BrowserModSettingsCard extends LitElement {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    return html`
 | 
					    return html`
 | 
				
			||||||
      <ha-settings-row>
 | 
					      <ha-settings-row>
 | 
				
			||||||
        <span slot="heading">Kiosk mode</span>
 | 
					        <span slot="heading">Hide Sidebar</span>
 | 
				
			||||||
        <span slot="description"> Hide sidebar and header </span>
 | 
					        <span slot="description">Hide the sidebar and hamburger menu</span>
 | 
				
			||||||
        Currenty: ${DESC_BOOLEAN(current.kiosk)} ${OVERRIDDEN("kiosk")}
 | 
					        Currenty: ${DESC_BOOLEAN(current.hideSidebar)}
 | 
				
			||||||
 | 
					        ${OVERRIDDEN("hideSidebar")}
 | 
				
			||||||
      </ha-settings-row>
 | 
					      </ha-settings-row>
 | 
				
			||||||
      <ha-settings-row>
 | 
					      <ha-settings-row>
 | 
				
			||||||
        <mwc-button
 | 
					        <mwc-button
 | 
				
			||||||
          @click=${() => window.browser_mod.set_setting("kiosk", true, level)}
 | 
					          @click=${() =>
 | 
				
			||||||
 | 
					            window.browser_mod.set_setting("hideSidebar", true, level)}
 | 
				
			||||||
        >
 | 
					        >
 | 
				
			||||||
          Enable
 | 
					          Enable
 | 
				
			||||||
        </mwc-button>
 | 
					        </mwc-button>
 | 
				
			||||||
        <mwc-button
 | 
					        <mwc-button
 | 
				
			||||||
          @click=${() => window.browser_mod.set_setting("kiosk", false, level)}
 | 
					          @click=${() =>
 | 
				
			||||||
 | 
					            window.browser_mod.set_setting("hideSidebar", false, level)}
 | 
				
			||||||
        >
 | 
					        >
 | 
				
			||||||
          Disable
 | 
					          Disable
 | 
				
			||||||
        </mwc-button>
 | 
					        </mwc-button>
 | 
				
			||||||
        <mwc-button
 | 
					        <mwc-button
 | 
				
			||||||
          @click=${() =>
 | 
					          @click=${() =>
 | 
				
			||||||
            window.browser_mod.set_setting("kiosk", undefined, level)}
 | 
					            window.browser_mod.set_setting("hideSidebar", undefined, level)}
 | 
				
			||||||
 | 
					        >
 | 
				
			||||||
 | 
					          Clear
 | 
				
			||||||
 | 
					        </mwc-button>
 | 
				
			||||||
 | 
					      </ha-settings-row>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      <ha-settings-row>
 | 
				
			||||||
 | 
					        <span slot="heading">Hide Header</span>
 | 
				
			||||||
 | 
					        <span slot="description">Hide the header on all pages</span>
 | 
				
			||||||
 | 
					        Currenty: ${DESC_BOOLEAN(current.hideHeader)}
 | 
				
			||||||
 | 
					        ${OVERRIDDEN("hideHeader")}
 | 
				
			||||||
 | 
					      </ha-settings-row>
 | 
				
			||||||
 | 
					      <ha-settings-row>
 | 
				
			||||||
 | 
					        <mwc-button
 | 
				
			||||||
 | 
					          @click=${() =>
 | 
				
			||||||
 | 
					            window.browser_mod.set_setting("hideHeader", true, level)}
 | 
				
			||||||
 | 
					        >
 | 
				
			||||||
 | 
					          Enable
 | 
				
			||||||
 | 
					        </mwc-button>
 | 
				
			||||||
 | 
					        <mwc-button
 | 
				
			||||||
 | 
					          @click=${() =>
 | 
				
			||||||
 | 
					            window.browser_mod.set_setting("hideHeader", false, level)}
 | 
				
			||||||
 | 
					        >
 | 
				
			||||||
 | 
					          Disable
 | 
				
			||||||
 | 
					        </mwc-button>
 | 
				
			||||||
 | 
					        <mwc-button
 | 
				
			||||||
 | 
					          @click=${() =>
 | 
				
			||||||
 | 
					            window.browser_mod.set_setting("hideHeader", undefined, level)}
 | 
				
			||||||
        >
 | 
					        >
 | 
				
			||||||
          Clear
 | 
					          Clear
 | 
				
			||||||
        </mwc-button>
 | 
					        </mwc-button>
 | 
				
			||||||
 | 
				
			|||||||
@ -89,8 +89,6 @@ export const loadHaForm = async () => {
 | 
				
			|||||||
// Loads in ha-config-dashboard which is used to copy styling
 | 
					// Loads in ha-config-dashboard which is used to copy styling
 | 
				
			||||||
// Also provides ha-settings-row
 | 
					// Also provides ha-settings-row
 | 
				
			||||||
export const loadDevTools = async () => {
 | 
					export const loadDevTools = async () => {
 | 
				
			||||||
  if (customElements.get("ha-config-dashboard")) return;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  await customElements.whenDefined("partial-panel-resolver");
 | 
					  await customElements.whenDefined("partial-panel-resolver");
 | 
				
			||||||
  const ppResolver = document.createElement("partial-panel-resolver");
 | 
					  const ppResolver = document.createElement("partial-panel-resolver");
 | 
				
			||||||
  const routes = (ppResolver as any).getRoutes([
 | 
					  const routes = (ppResolver as any).getRoutes([
 | 
				
			||||||
 | 
				
			|||||||
@ -1,3 +1,5 @@
 | 
				
			|||||||
 | 
					import { selectTree } from "../helpers";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export const AutoSettingsMixin = (SuperClass) => {
 | 
					export const AutoSettingsMixin = (SuperClass) => {
 | 
				
			||||||
  return class AutoSettingsMixinClass extends SuperClass {
 | 
					  return class AutoSettingsMixinClass extends SuperClass {
 | 
				
			||||||
    constructor() {
 | 
					    constructor() {
 | 
				
			||||||
@ -20,6 +22,27 @@ export const AutoSettingsMixin = (SuperClass) => {
 | 
				
			|||||||
          settings.sidebarHiddenPanels
 | 
					          settings.sidebarHiddenPanels
 | 
				
			||||||
        );
 | 
					        );
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      if (settings.hideSidebar === true) {
 | 
				
			||||||
 | 
					        selectTree(
 | 
				
			||||||
 | 
					          document.body,
 | 
				
			||||||
 | 
					          "home-assistant$home-assistant-main$app-drawer-layout"
 | 
				
			||||||
 | 
					        ).then((el) => el.style.setProperty("--app-drawer-width", "0px"));
 | 
				
			||||||
 | 
					        selectTree(
 | 
				
			||||||
 | 
					          document.body,
 | 
				
			||||||
 | 
					          "home-assistant$home-assistant-main$app-drawer-layout app-drawer"
 | 
				
			||||||
 | 
					        ).then((el) => el.remove());
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      if (settings.hideHeader === true) {
 | 
				
			||||||
 | 
					        customElements.whenDefined("app-header-layout").then(() => {
 | 
				
			||||||
 | 
					          const appHeader = customElements.get("app-header").prototype;
 | 
				
			||||||
 | 
					          const _attached = appHeader.attached;
 | 
				
			||||||
 | 
					          appHeader.attached = function () {
 | 
				
			||||||
 | 
					            _attached.bind(this)();
 | 
				
			||||||
 | 
					            this.style.setProperty("display", "none");
 | 
				
			||||||
 | 
					          };
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
				
			|||||||
@ -52,7 +52,7 @@ import { AutoSettingsMixin } from "./auto-settings";
 | 
				
			|||||||
  - Saved frontend settings
 | 
					  - Saved frontend settings
 | 
				
			||||||
    X Framework
 | 
					    X Framework
 | 
				
			||||||
    x Save sidebar
 | 
					    x Save sidebar
 | 
				
			||||||
    - Kiosk mode
 | 
					    x Kiosk mode
 | 
				
			||||||
    - Default panel?
 | 
					    - Default panel?
 | 
				
			||||||
    - Screensaver?
 | 
					    - Screensaver?
 | 
				
			||||||
  - Tweaks
 | 
					  - Tweaks
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user