* zha add device page add device join dialog stub update dialog stub fix spinner add messages and devices to dialog dialog updates update dialog update dialog add debug info fix reference add header update dialog test zha gateway message subscription add device join dialog stub add messages and devices to dialog dialog updates update dialog add debug info update dialog start transitioning to a page instead of a dialog fix import subpage update router remove old dialog handle remove dialog parts make add button call navigate change extract page add devices page cleanup * update device join page * auto scroll log * update css and add device page layout * fix padding * fix missing imports * fix imports * add -> permit * left justify device cards to prevent jumping * conditionally display entity ids * cleanup * fix vertical alignment * review comments * fix manufacturer overrides
71 lines
1.8 KiB
TypeScript
71 lines
1.8 KiB
TypeScript
import "../../../layouts/hass-loading-screen";
|
|
|
|
import { customElement, property } from "lit-element";
|
|
|
|
import { listenMediaQuery } from "../../../common/dom/media_query";
|
|
import {
|
|
HassRouterPage,
|
|
RouterOptions,
|
|
} from "../../../layouts/hass-router-page";
|
|
import { HomeAssistant } from "../../../types";
|
|
|
|
@customElement("zha-config-panel")
|
|
class ZHAConfigPanel extends HassRouterPage {
|
|
@property() public hass!: HomeAssistant;
|
|
@property() public _wideSidebar: boolean = false;
|
|
@property() public _wide: boolean = false;
|
|
|
|
protected routerOptions: RouterOptions = {
|
|
defaultPage: "configuration",
|
|
cacheAll: true,
|
|
preloadAll: true,
|
|
routes: {
|
|
configuration: {
|
|
tag: "ha-config-zha",
|
|
load: () =>
|
|
import(/* webpackChunkName: "zha-configuration-page" */ "./ha-config-zha"),
|
|
},
|
|
add: {
|
|
tag: "zha-add-devices-page",
|
|
load: () =>
|
|
import(/* webpackChunkName: "zha-add-devices-page" */ "./zha-add-devices-page"),
|
|
},
|
|
},
|
|
};
|
|
|
|
private _listeners: Array<() => void> = [];
|
|
|
|
public connectedCallback(): void {
|
|
super.connectedCallback();
|
|
this._listeners.push(
|
|
listenMediaQuery("(min-width: 1040px)", (matches) => {
|
|
this._wide = matches;
|
|
})
|
|
);
|
|
this._listeners.push(
|
|
listenMediaQuery("(min-width: 1296px)", (matches) => {
|
|
this._wideSidebar = matches;
|
|
})
|
|
);
|
|
}
|
|
|
|
public disconnectedCallback(): void {
|
|
super.disconnectedCallback();
|
|
while (this._listeners.length) {
|
|
this._listeners.pop()!();
|
|
}
|
|
}
|
|
|
|
protected updatePageEl(el): void {
|
|
el.route = this.routeTail;
|
|
el.hass = this.hass;
|
|
el.isWide = this.hass.dockedSidebar ? this._wideSidebar : this._wide;
|
|
}
|
|
}
|
|
|
|
declare global {
|
|
interface HTMLElementTagNameMap {
|
|
"zha-config-panel": ZHAConfigPanel;
|
|
}
|
|
}
|