20230403.0 (#16046)

This commit is contained in:
Bram Kragten 2023-04-03 21:01:15 +02:00 committed by GitHub
commit 322cc26ecc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
26 changed files with 466 additions and 278 deletions

View File

@ -8,6 +8,7 @@ const gulp = require("gulp");
const jszip = require("jszip");
const tar = require("tar");
const { Octokit } = require("@octokit/rest");
const { retry } = require("@octokit/plugin-retry");
const { createOAuthDeviceAuth } = require("@octokit/auth-oauth-device");
const MAX_AGE = 24; // hours
@ -95,7 +96,7 @@ gulp.task("fetch-nightly-translations", async function () {
// Authenticate with token and request workflow runs from GitHub
console.log("Fetching new translations...");
const octokit = new Octokit({
const octokit = new (Octokit.plugin(retry))({
userAgent: "Fetch Nightly Translations",
auth: tokenAuth.token,
});

View File

@ -148,7 +148,7 @@
"xss": "1.0.14"
},
"devDependencies": {
"@babel/core": "7.21.3",
"@babel/core": "7.21.4",
"@babel/plugin-external-helpers": "7.18.6",
"@babel/plugin-proposal-class-properties": "7.18.6",
"@babel/plugin-proposal-decorators": "7.21.0",
@ -158,10 +158,11 @@
"@babel/plugin-syntax-dynamic-import": "7.8.3",
"@babel/plugin-syntax-import-meta": "7.10.4",
"@babel/plugin-syntax-top-level-await": "7.14.5",
"@babel/preset-env": "7.20.2",
"@babel/preset-typescript": "7.21.0",
"@babel/preset-env": "7.21.4",
"@babel/preset-typescript": "7.21.4",
"@koa/cors": "4.0.0",
"@octokit/auth-oauth-device": "4.0.4",
"@octokit/plugin-retry": "4.1.3",
"@octokit/rest": "19.0.7",
"@open-wc/dev-server-hmr": "0.1.4",
"@rollup/plugin-babel": "6.0.3",

View File

@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
[project]
name = "home-assistant-frontend"
version = "20230401.0"
version = "20230403.0"
license = {text = "Apache-2.0"}
description = "The Home Assistant frontend"
readme = "README.md"

View File

@ -310,6 +310,8 @@ export class HaControlSelect extends LitElement {
.option .content span {
display: block;
width: 100%;
-webkit-hyphens: auto;
-moz-hyphens: auto;
hyphens: auto;
}
:host([vertical]) {

View File

@ -1,16 +1,75 @@
import {
DIRECTION_LEFT,
DIRECTION_RIGHT,
Manager,
Swipe,
} from "@egjs/hammerjs";
import { DrawerBase } from "@material/mwc-drawer/mwc-drawer-base";
import { styles } from "@material/mwc-drawer/mwc-drawer.css";
import { css } from "lit";
import { customElement } from "lit/decorators";
import { css, PropertyValues } from "lit";
import { customElement, property } from "lit/decorators";
import { fireEvent } from "../common/dom/fire_event";
const blockingElements = (document as any).$blockingElements;
@customElement("ha-drawer")
export class HaDrawer extends DrawerBase {
@property() public direction: "ltr" | "rtl" = "ltr";
private _mc?: HammerManager;
protected createAdapter() {
return {
...super.createAdapter(),
trapFocus: () => {
blockingElements.push(this);
this.appContent.inert = true;
document.body.style.overflow = "hidden";
},
releaseFocus: () => {
blockingElements.remove(this);
this.appContent.inert = false;
document.body.style.overflow = "";
},
};
}
protected updated(changedProps: PropertyValues) {
super.updated(changedProps);
if (changedProps.has("direction")) {
this.mdcRoot.dir = this.direction;
}
if (changedProps.has("open") && this.open && this.type === "modal") {
this._mc = new Manager(document, {
touchAction: "pan-y",
});
this._mc.add(
new Swipe({
direction:
this.direction === "rtl" ? DIRECTION_RIGHT : DIRECTION_LEFT,
})
);
this._mc.on("swipeleft swiperight", () => {
fireEvent(this, "hass-toggle-menu", { open: false });
});
} else if (this._mc) {
this._mc.destroy();
this._mc = undefined;
}
}
static override styles = [
styles,
css`
.mdc-drawer {
top: 0;
}
.mdc-drawer.mdc-drawer--modal.mdc-drawer--open {
z-index: 200;
}
.mdc-drawer-app-content {
transform: translateZ(0);
}
`,
];
}

View File

@ -28,8 +28,8 @@ import {
CSSResultGroup,
html,
LitElement,
PropertyValues,
nothing,
PropertyValues,
} from "lit";
import { customElement, eventOptions, property, state } from "lit/decorators";
import { classMap } from "lit/directives/class-map";

View File

@ -1,19 +1,43 @@
import { TopAppBarFixedBase } from "@material/mwc-top-app-bar-fixed/mwc-top-app-bar-fixed-base";
import { styles } from "@material/mwc-top-app-bar/mwc-top-app-bar.css";
import { css } from "lit";
import { customElement } from "lit/decorators";
import { customElement, property } from "lit/decorators";
let drawerContent: HTMLElement | undefined;
@customElement("ha-top-app-bar-fixed")
export class HaTopAppBarFixed extends TopAppBarFixedBase {
private get _drawerContent() {
if (!drawerContent) {
drawerContent = document
.querySelector("home-assistant")!
.renderRoot.querySelector("home-assistant-main")!
.renderRoot.querySelector("ha-drawer")!
.renderRoot.querySelector(".mdc-drawer-app-content") as HTMLElement;
}
return drawerContent;
}
@property({ type: Object })
get scrollTarget() {
return this._scrollTarget || this._drawerContent || window;
}
protected updateRootPosition() {}
static override styles = [
styles,
css`
.mdc-top-app-bar {
position: sticky;
top: 0;
}
.mdc-top-app-bar__row {
height: var(--header-height);
border-bottom: var(--app-header-border-bottom);
}
.mdc-top-app-bar--fixed-adjust {
padding-top: var(--header-height);
padding-top: 0;
}
.mdc-top-app-bar {
--mdc-typography-headline6-font-weight: 400;

View File

@ -53,53 +53,46 @@ export const callAlarmAction = (
};
export type AlarmMode =
| "away"
| "home"
| "night"
| "vacation"
| "custom_bypass"
| "armed_home"
| "armed_away"
| "armed_night"
| "armed_vacation"
| "armed_custom_bypass"
| "disarmed";
type AlarmConfig = {
service: string;
feature?: AlarmControlPanelEntityFeature;
state: string;
path: string;
};
export const ALARM_MODES: Record<AlarmMode, AlarmConfig> = {
away: {
feature: AlarmControlPanelEntityFeature.ARM_AWAY,
service: "alarm_arm_away",
state: "armed_away",
path: mdiLock,
},
home: {
armed_home: {
feature: AlarmControlPanelEntityFeature.ARM_HOME,
service: "alarm_arm_home",
state: "armed_home",
path: mdiHome,
},
custom_bypass: {
feature: AlarmControlPanelEntityFeature.ARM_CUSTOM_BYPASS,
service: "alarm_arm_custom_bypass",
state: "armed_custom_bypass",
path: mdiShield,
armed_away: {
feature: AlarmControlPanelEntityFeature.ARM_AWAY,
service: "alarm_arm_away",
path: mdiLock,
},
night: {
armed_night: {
feature: AlarmControlPanelEntityFeature.ARM_NIGHT,
service: "alarm_arm_night",
state: "armed_night",
path: mdiMoonWaningCrescent,
},
vacation: {
armed_vacation: {
feature: AlarmControlPanelEntityFeature.ARM_VACATION,
service: "alarm_arm_vacation",
state: "armed_vacation",
path: mdiAirplane,
},
armed_custom_bypass: {
feature: AlarmControlPanelEntityFeature.ARM_CUSTOM_BYPASS,
service: "alarm_arm_custom_bypass",
path: mdiShield,
},
disarmed: {
service: "alarm_disarm",
state: "disarmed",
path: mdiShieldOff,
},
};

View File

@ -28,8 +28,19 @@ export interface HassioHassOSInfo {
data_disk: string;
}
export interface Datadisk {
name: string;
vendor: string;
model: string;
serial: string;
size: number;
id: string;
dev_path: string;
}
export interface DatadiskList {
devices: string[];
disks: Datadisk[];
}
export const fetchHassioHostInfo = async (

View File

@ -389,8 +389,8 @@ export const filterSelectorEntities = (
if (filterSupportedFeature) {
if (
ensureArray(filterSupportedFeature).some(
(feature) => !supportsFeature(entity, feature)
!ensureArray(filterSupportedFeature).some((feature) =>
supportsFeature(entity, feature)
)
) {
return false;

View File

@ -18,6 +18,7 @@ export interface ThreadDataSet {
network_name: string;
extended_pan_id?: string;
pan_id?: string;
channel?: number;
}
export interface ThreadRouterDiscoveryEvent {

View File

@ -62,7 +62,7 @@ export const showDialog = async (
dialogParams: unknown,
dialogImport?: () => Promise<unknown>,
addHistory = true
) => {
): Promise<boolean> => {
if (!(dialogTag in LOADED)) {
if (!dialogImport) {
if (__DEV__) {
@ -71,7 +71,7 @@ export const showDialog = async (
"Asked to show dialog that's not loaded and can't be imported"
);
}
return;
return false;
}
LOADED[dialogTag] = {
element: dialogImport().then(() => {
@ -128,6 +128,8 @@ export const showDialog = async (
// so it's guaranteed to be on top of the other elements
root.appendChild(dialogElement);
dialogElement.showDialog(dialogParams);
return true;
};
export const replaceDialog = (dialogElement: HassDialog) => {

View File

@ -40,9 +40,7 @@ export class HaMoreInfoAlarmControlPanelModes extends LitElement {
}
private _getCurrentMode(stateObj: AlarmControlPanelEntity) {
return this._modes(stateObj).find(
(mode) => ALARM_MODES[mode].state === stateObj.state
);
return this._modes(stateObj).find((mode) => mode === stateObj.state);
}
private async _setMode(mode: AlarmMode) {
@ -86,7 +84,7 @@ export class HaMoreInfoAlarmControlPanelModes extends LitElement {
private async _valueChanged(ev: CustomEvent) {
const mode = (ev.detail as any).value as AlarmMode;
if (ALARM_MODES[mode].state === this.stateObj!.state) return;
if (mode === this.stateObj!.state) return;
const oldMode = this._getCurrentMode(this.stateObj!);
this._currentMode = mode;

View File

@ -6,6 +6,7 @@ This is the entry point for providing external app stuff from app entrypoint.
*/
import { fireEvent } from "../common/dom/fire_event";
import { mainWindow } from "../common/dom/get_main_window";
import { HomeAssistantMain } from "../layouts/home-assistant-main";
import type { EMIncomingMessageCommands } from "./external_messaging";
@ -45,6 +46,15 @@ const handleExternalMessage = (
result: null,
});
} else if (msg.command === "sidebar/toggle") {
if (mainWindow.history.state?.open) {
bus.fireMessage({
id: msg.id,
type: "result",
success: false,
error: { code: "not_allowed", message: "dialog open" },
});
return true;
}
fireEvent(hassMainEl, "hass-toggle-menu");
bus.fireMessage({
id: msg.id,
@ -53,6 +63,15 @@ const handleExternalMessage = (
result: null,
});
} else if (msg.command === "sidebar/show") {
if (mainWindow.history.state?.open) {
bus.fireMessage({
id: msg.id,
type: "result",
success: false,
error: { code: "not_allowed", message: "dialog open" },
});
return true;
}
fireEvent(hassMainEl, "hass-toggle-menu", { open: true });
bus.fireMessage({
id: msg.id,

View File

@ -11,6 +11,7 @@ import { customElement, property, state } from "lit/decorators";
import { fireEvent, HASSDomEvent } from "../common/dom/fire_event";
import { listenMediaQuery } from "../common/dom/media_query";
import { toggleAttribute } from "../common/dom/toggle_attribute";
import { computeRTLDirection } from "../common/util/compute_rtl";
import "../components/ha-drawer";
import { showNotificationDrawer } from "../dialogs/notifications/show-notification-drawer";
import type { HomeAssistant, Route } from "../types";
@ -61,6 +62,7 @@ export class HomeAssistantMain extends LitElement {
<ha-drawer
.type=${sidebarNarrow ? "modal" : ""}
.open=${sidebarNarrow ? this._drawerOpen : undefined}
.direction=${computeRTLDirection(this.hass)}
@MDCDrawer:closed=${this._drawerClosed}
>
<ha-sidebar
@ -174,7 +176,6 @@ export class HomeAssistantMain extends LitElement {
/* remove the grey tap highlights in iOS on the fullscreen touch targets */
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
--mdc-drawer-width: 56px;
--mdc-top-app-bar-width: calc(100% - var(--mdc-drawer-width));
}
:host([expanded]) {
--mdc-drawer-width: calc(256px + env(safe-area-inset-left));

View File

@ -251,6 +251,7 @@ export class ThreadConfigPanel extends SubscribeMixin(LitElement) {
showAlertDialog(this, {
title: dataset.network_name,
text: html`Network name: ${dataset.network_name}<br />
Channel: ${dataset.channel}<br />
Dataset id: ${dataset.dataset_id}<br />
Pan id: ${dataset.pan_id}<br />
Extended Pan id: ${dataset.extended_pan_id}<br />
@ -263,6 +264,7 @@ export class ThreadConfigPanel extends SubscribeMixin(LitElement) {
showAlertDialog(this, {
title: dataset.network_name,
text: html`Network name: ${dataset.network_name}<br />
Channel: ${dataset.channel}<br />
Dataset id: ${dataset.dataset_id}<br />
Pan id: ${dataset.pan_id}<br />
Extended Pan id: ${dataset.extended_pan_id}`,

View File

@ -22,6 +22,7 @@ import {
import { showAlertDialog } from "../../../dialogs/generic/show-dialog-box";
import { haStyle, haStyleDialog } from "../../../resources/styles";
import { HomeAssistant } from "../../../types";
import { bytesToString } from "../../../util/bytes-to-string";
import { MoveDatadiskDialogParams } from "./show-dialog-move-datadisk";
const calculateMoveTime = memoizeOne((hostInfo: HassioHostInfo): number => {
@ -39,7 +40,7 @@ class MoveDatadiskDialog extends LitElement {
@state() private _selectedDevice?: string;
@state() private _devices?: DatadiskList["devices"];
@state() private _disks?: DatadiskList["disks"];
@state() private _osInfo?: HassioHassOSInfo;
@ -55,7 +56,7 @@ class MoveDatadiskDialog extends LitElement {
const data = await listDatadisks(this.hass);
if (data.devices.length > 0) {
this._devices = data.devices;
this._disks = data.disks;
} else {
this.closeDialog();
await showAlertDialog(this, {
@ -80,7 +81,7 @@ class MoveDatadiskDialog extends LitElement {
public closeDialog(): void {
this._selectedDevice = undefined;
this._devices = undefined;
this._disks = undefined;
this._moving = false;
this._hostInfo = undefined;
this._osInfo = undefined;
@ -88,7 +89,7 @@ class MoveDatadiskDialog extends LitElement {
}
protected render() {
if (!this._hostInfo || !this._osInfo || !this._devices) {
if (!this._hostInfo || !this._osInfo || !this._disks) {
return nothing;
}
@ -132,10 +133,19 @@ class MoveDatadiskDialog extends LitElement {
dialogInitialFocus
fixedMenuPosition
>
${this._devices.map(
(device) =>
html`<mwc-list-item .value=${device}>
${device}
${this._disks.map(
(disk) =>
html`<mwc-list-item twoline .value=${disk.id}>
<span>${disk.vendor} ${disk.model}</span>
<span slot="secondary">
${this.hass.localize(
"ui.panel.config.storage.datadisk.extra_information",
{
size: bytesToString(disk.size),
serial: disk.serial,
}
)}
</span>
</mwc-list-item>`
)}
</ha-select>

View File

@ -515,22 +515,11 @@ class HaPanelHistory extends SubscribeMixin(LitElement) {
css`
.content {
padding: 0 16px 16px;
padding-bottom: max(env(safe-area-inset-bottom), 16px);
}
state-history-charts {
height: calc(100vh - 136px);
}
:host([narrow]) state-history-charts {
height: calc(100vh - 198px);
}
.progress-wrapper {
height: calc(100vh - 136px);
}
:host([narrow]) .progress-wrapper {
height: calc(100vh - 198px);
overflow-x: hidden;
}
:host([virtualize]) {
@ -539,6 +528,10 @@ class HaPanelHistory extends SubscribeMixin(LitElement) {
.progress-wrapper {
position: relative;
display: flex;
align-items: center;
flex-direction: column;
padding: 16px;
}
.filters {
@ -566,13 +559,6 @@ class HaPanelHistory extends SubscribeMixin(LitElement) {
}
}
ha-circular-progress {
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
}
.start-search {
padding-top: 16px;
text-align: center;

View File

@ -961,11 +961,17 @@ class HUIRoot extends LitElement {
position: fixed;
top: 0;
width: var(--mdc-top-app-bar-width, 100%);
z-index: 2;
transition: box-shadow 0.3s ease-out;
padding-top: env(safe-area-inset-top);
z-index: 4;
transition: box-shadow 200ms linear;
}
:host([scrolled]) .header {
box-shadow: 0px 0px 8px 0px rgba(0, 0, 0, 0.75);
box-shadow: var(
--mdc-top-app-bar-fixed-box-shadow,
0px 2px 4px -1px rgba(0, 0, 0, 0.2),
0px 4px 5px 0px rgba(0, 0, 0, 0.14),
0px 1px 10px 0px rgba(0, 0, 0, 0.12)
);
}
.edit-mode .header {
background-color: var(--app-header-edit-background-color, #455a64);
@ -1044,27 +1050,27 @@ class HUIRoot extends LitElement {
color: var(--error-color);
}
#view {
margin-top: var(--header-height);
height: calc(
100vh - var(--header-height) - env(safe-area-inset-top) -
env(safe-area-inset-bottom)
);
margin-top: calc(var(--header-height) + env(safe-area-inset-top));
height: calc(100vh - var(--header-height) - env(safe-area-inset-top));
padding-left: env(safe-area-inset-left);
padding-right: env(safe-area-inset-right);
background: var(
--lovelace-background,
var(--primary-background-color)
);
display: flex;
overflow: auto;
transform: translateZ(0);
}
/**
* In edit mode we have the tab bar on a new line *
*/
.edit-mode #view {
height: calc(
100vh - var(--header-height) - 48px - env(safe-area-inset-top) -
env(safe-area-inset-bottom)
100vh - var(--header-height) - 48px - env(safe-area-inset-top)
);
margin-top: calc(
var(--header-height) + 48px + env(safe-area-inset-top)
);
margin-top: calc(var(--header-height) + 48px);
}
#view > * {
/**
@ -1077,6 +1083,8 @@ class HUIRoot extends LitElement {
*/
flex: 1 1 100%;
max-width: 100%;
padding-bottom: env(safe-area-inset-bottom);
display: block;
}
.hide-tab {
display: none;

View File

@ -95,14 +95,14 @@ class HuiAlarmModeTileFeature
private _getCurrentMode(stateObj: AlarmControlPanelEntity) {
return this._modes(stateObj, this._config?.modes).find(
(mode) => ALARM_MODES[mode].state === stateObj.state
(mode) => mode === stateObj.state
);
}
private async _valueChanged(ev: CustomEvent) {
const mode = (ev.detail as any).value as AlarmMode;
if (ALARM_MODES[mode].state === this.stateObj!.state) return;
if (mode === this.stateObj!.state) return;
const oldMode = this._getCurrentMode(this.stateObj!);
this._currentMode = mode;

View File

@ -33,78 +33,72 @@ class HaChangePasswordCard extends LitElement {
protected render(): TemplateResult {
return html`
<div>
<ha-card
.header=${this.hass.localize(
"ui.panel.profile.change_password.header"
)}
>
<div class="card-content">
${this._errorMsg
? html`<ha-alert alert-type="error">${this._errorMsg}</ha-alert>`
: ""}
${this._statusMsg
? html`<ha-alert alert-type="success"
>${this._statusMsg}</ha-alert
>`
: ""}
<ha-card
.header=${this.hass.localize("ui.panel.profile.change_password.header")}
>
<div class="card-content">
${this._errorMsg
? html`<ha-alert alert-type="error">${this._errorMsg}</ha-alert>`
: ""}
${this._statusMsg
? html`<ha-alert alert-type="success">${this._statusMsg}</ha-alert>`
: ""}
<ha-textfield
id="currentPassword"
name="currentPassword"
.label=${this.hass.localize(
"ui.panel.profile.change_password.current_password"
)}
type="password"
autocomplete="current-password"
.value=${this._currentPassword}
@input=${this._currentPasswordChanged}
required
></ha-textfield>
<ha-textfield
id="currentPassword"
name="currentPassword"
.label=${this.hass.localize(
"ui.panel.profile.change_password.current_password"
)}
type="password"
autocomplete="current-password"
.value=${this._currentPassword}
@input=${this._currentPasswordChanged}
required
></ha-textfield>
${this._currentPassword
? html`<ha-textfield
.label=${this.hass.localize(
"ui.panel.profile.change_password.new_password"
)}
name="password"
type="password"
autocomplete="new-password"
.value=${this._password}
@change=${this._newPasswordChanged}
required
auto-validate
></ha-textfield>
<ha-textfield
.label=${this.hass.localize(
"ui.panel.profile.change_password.confirm_new_password"
)}
name="passwordConfirm"
type="password"
autocomplete="new-password"
.value=${this._passwordConfirm}
@input=${this._newPasswordConfirmChanged}
required
auto-validate
></ha-textfield>`
: ""}
</div>
${this._currentPassword
? html`<ha-textfield
.label=${this.hass.localize(
"ui.panel.profile.change_password.new_password"
)}
name="password"
type="password"
autocomplete="new-password"
.value=${this._password}
@change=${this._newPasswordChanged}
required
auto-validate
></ha-textfield>
<ha-textfield
.label=${this.hass.localize(
"ui.panel.profile.change_password.confirm_new_password"
)}
name="passwordConfirm"
type="password"
autocomplete="new-password"
.value=${this._passwordConfirm}
@input=${this._newPasswordConfirmChanged}
required
auto-validate
></ha-textfield>`
: ""}
</div>
<div class="card-actions">
${this._loading
? html`<div>
<ha-circular-progress active></ha-circular-progress>
</div>`
: html`<mwc-button
@click=${this._changePassword}
.disabled=${!this._passwordConfirm}
>${this.hass.localize(
"ui.panel.profile.change_password.submit"
)}</mwc-button
>`}
</div>
</ha-card>
</div>
<div class="card-actions">
${this._loading
? html`<div>
<ha-circular-progress active></ha-circular-progress>
</div>`
: html`<mwc-button
@click=${this._changePassword}
.disabled=${!this._passwordConfirm}
>${this.hass.localize(
"ui.panel.profile.change_password.submit"
)}</mwc-button
>`}
</div>
</ha-card>
`;
}

View File

@ -5,6 +5,7 @@ import { customElement, property, state } from "lit/decorators";
import { fireEvent } from "../../common/dom/fire_event";
import "../../components/ha-card";
import "../../components/ha-menu-button";
import "../../components/ha-top-app-bar-fixed";
import { isExternal } from "../../data/external";
import {
CoreFrontendUserData,
@ -30,7 +31,6 @@ import "./ha-push-notifications-row";
import "./ha-refresh-tokens-card";
import "./ha-set-suspend-row";
import "./ha-set-vibrate-row";
import "../../components/ha-top-app-bar-fixed";
@customElement("ha-panel-profile")
class HaPanelProfile extends LitElement {

View File

@ -1,5 +1,5 @@
/* eslint-disable no-console */
import { ReactiveElement } from "lit";
import { PropertyValueMap, ReactiveElement } from "lit";
import { HASSDomEvent } from "../common/dom/fire_event";
import { mainWindow } from "../common/dom/get_main_window";
import {
@ -31,8 +31,11 @@ export const urlSyncMixin = <
public connectedCallback(): void {
super.connectedCallback();
if (history.length === 1) {
history.replaceState({ ...history.state, root: true }, "");
if (mainWindow.history.length === 1) {
mainWindow.history.replaceState(
{ ...mainWindow.history.state, root: true },
""
);
}
mainWindow.addEventListener("popstate", this._popstateChangeListener);
this.addEventListener("dialog-closed", this._dialogClosedListener);
@ -47,6 +50,15 @@ export const urlSyncMixin = <
this.removeEventListener("dialog-closed", this._dialogClosedListener);
}
protected firstUpdated(
changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>
): void {
super.firstUpdated(changedProperties);
if (mainWindow.history.state?.dialog) {
this._handleDialogStateChange(mainWindow.history.state);
}
}
private _dialogClosedListener = (
ev: HASSDomEvent<DialogClosedParams>
) => {
@ -67,7 +79,7 @@ export const urlSyncMixin = <
if (DEBUG) {
console.log("remove state", ev.detail.dialog);
}
if (history.length) {
if (mainWindow.history.length) {
this._ignoreNextPopState = true;
historyPromise = new Promise((resolve) => {
historyResolve = () => {
@ -145,13 +157,21 @@ export const urlSyncMixin = <
}
return;
}
if (state.dialogParams !== null) {
showDialog(
let shown = false;
if (state.open && state.dialogParams !== null) {
shown = await showDialog(
this,
this.shadowRoot!,
state.dialog,
state.dialogParams
);
}
if (!shown) {
// can't open dialog, update state
mainWindow.history.replaceState(
{ ...mainWindow.history.state, open: false },
""
);
}
}
};

View File

@ -931,11 +931,11 @@
"alarm_control_panel": {
"modes_label": "Modes",
"modes": {
"away": "Away",
"home": "Home",
"night": "Night",
"vacation": "Vacation",
"custom_bypass": "Custom",
"armed_away": "Away",
"armed_home": "Home",
"armed_night": "Night",
"armed_vacation": "Vacation",
"armed_custom_bypass": "Custom",
"disarmed": "Disarmed"
},
"disarm_title": "Disarm",
@ -3861,6 +3861,7 @@
"datadisk": {
"title": "Move datadisk",
"description": "You are currently using ''{current_path}'' as datadisk. Moving data disks will reboot your device and it's estimated to take {time} minutes. Your Home Assistant installation will not be accessible during this period. Do not disconnect the power during the move!",
"extra_information": "Size: {size}, S/N: {serial}",
"select_device": "Select new datadisk",
"no_devices_title": "No suitable storage found",
"no_devices_text": "There is no suitable external device found. The storage capacity of the external data disk must be larger than the storage capacity of the existing disk",
@ -4466,11 +4467,11 @@
"label": "Alarm modes",
"modes": "[%key:ui::dialogs::more_info_control::alarm_control_panel::modes_label%]",
"modes_list": {
"away": "[%key:ui::dialogs::more_info_control::alarm_control_panel::modes::away%]",
"home": "[%key:ui::dialogs::more_info_control::alarm_control_panel::modes::home%]",
"night": "[%key:ui::dialogs::more_info_control::alarm_control_panel::modes::night%]",
"vacation": "[%key:ui::dialogs::more_info_control::alarm_control_panel::modes::vacation%]",
"custom_bypass": "[%key:ui::dialogs::more_info_control::alarm_control_panel::modes::custom_bypass%]",
"armed_away": "[%key:ui::dialogs::more_info_control::alarm_control_panel::modes::armed_away%]",
"armed_home": "[%key:ui::dialogs::more_info_control::alarm_control_panel::modes::armed_home%]",
"armed_night": "[%key:ui::dialogs::more_info_control::alarm_control_panel::modes::armed_night%]",
"armed_vacation": "[%key:ui::dialogs::more_info_control::alarm_control_panel::modes::armed_vacation%]",
"armed_custom_bypass": "[%key:ui::dialogs::more_info_control::alarm_control_panel::modes::armed_custom_bypass%]",
"disarmed": "[%key:ui::dialogs::more_info_control::alarm_control_panel::modes::disarmed%]"
}
},
@ -4541,7 +4542,6 @@
"white": "White"
}
},
"cardpicker": {
"no_description": "No description available.",
"custom_card": "Custom",

View File

@ -7,6 +7,29 @@ import { html } from "@polymer/polymer/lib/utils/html-tag";
import { PolymerElement } from "@polymer/polymer/polymer-element";
import { Polymer } from "@polymer/polymer/polymer-legacy";
const message =
"WARNING: Polymer will be removed from window in Home Assistant 2023.5. More info: https://developers.home-assistant.io/blog/2023/04/04/deprecating_polymer";
const handler = {
get(target, prop, receiver) {
// eslint-disable-next-line no-console
console.warn(message);
document
.querySelector("home-assistant")
.dispatchEvent(new CustomEvent("write_log", { detail: { message } }));
return Reflect.get(target, prop, receiver);
},
apply: function (target, thisArg, argumentsList) {
// eslint-disable-next-line no-console
console.warn(message);
document
.querySelector("home-assistant")
.dispatchEvent(new CustomEvent("write_log", { detail: { message } }));
return Reflect.apply(target, thisArg, argumentsList);
},
};
Polymer.Element = PolymerElement;
Polymer.html = html;
window.Polymer = Polymer;
window.Polymer = new Proxy(Polymer, handler);

243
yarn.lock
View File

@ -28,54 +28,54 @@ __metadata:
languageName: node
linkType: hard
"@babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.12.11, @babel/code-frame@npm:^7.18.6":
version: 7.18.6
resolution: "@babel/code-frame@npm:7.18.6"
"@babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.12.11, @babel/code-frame@npm:^7.18.6, @babel/code-frame@npm:^7.21.4":
version: 7.21.4
resolution: "@babel/code-frame@npm:7.21.4"
dependencies:
"@babel/highlight": ^7.18.6
checksum: 195e2be3172d7684bf95cff69ae3b7a15a9841ea9d27d3c843662d50cdd7d6470fd9c8e64be84d031117e4a4083486effba39f9aef6bbb2c89f7f21bcfba33ba
checksum: e5390e6ec1ac58dcef01d4f18eaf1fd2f1325528661ff6d4a5de8979588b9f5a8e852a54a91b923846f7a5c681b217f0a45c2524eb9560553160cd963b7d592c
languageName: node
linkType: hard
"@babel/compat-data@npm:^7.17.7, @babel/compat-data@npm:^7.20.1, @babel/compat-data@npm:^7.20.5":
version: 7.21.0
resolution: "@babel/compat-data@npm:7.21.0"
checksum: dbf632c532f9c75ba0be7d1dc9f6cd3582501af52f10a6b90415d634ec5878735bd46064c91673b10317af94d4cc99c4da5bd9d955978cdccb7905fc33291e4d
"@babel/compat-data@npm:^7.17.7, @babel/compat-data@npm:^7.20.5, @babel/compat-data@npm:^7.21.4":
version: 7.21.4
resolution: "@babel/compat-data@npm:7.21.4"
checksum: 5f8b98c66f2ffba9f3c3a82c0cf354c52a0ec5ad4797b370dc32bdcd6e136ac4febe5e93d76ce76e175632e2dbf6ce9f46319aa689fcfafa41b6e49834fa4b66
languageName: node
linkType: hard
"@babel/core@npm:7.21.3, @babel/core@npm:^7.11.1, @babel/core@npm:^7.12.3":
version: 7.21.3
resolution: "@babel/core@npm:7.21.3"
"@babel/core@npm:7.21.4, @babel/core@npm:^7.11.1, @babel/core@npm:^7.12.3":
version: 7.21.4
resolution: "@babel/core@npm:7.21.4"
dependencies:
"@ampproject/remapping": ^2.2.0
"@babel/code-frame": ^7.18.6
"@babel/generator": ^7.21.3
"@babel/helper-compilation-targets": ^7.20.7
"@babel/code-frame": ^7.21.4
"@babel/generator": ^7.21.4
"@babel/helper-compilation-targets": ^7.21.4
"@babel/helper-module-transforms": ^7.21.2
"@babel/helpers": ^7.21.0
"@babel/parser": ^7.21.3
"@babel/parser": ^7.21.4
"@babel/template": ^7.20.7
"@babel/traverse": ^7.21.3
"@babel/types": ^7.21.3
"@babel/traverse": ^7.21.4
"@babel/types": ^7.21.4
convert-source-map: ^1.7.0
debug: ^4.1.0
gensync: ^1.0.0-beta.2
json5: ^2.2.2
semver: ^6.3.0
checksum: bef25fbea96f461bf79bd1d0e4f0cdce679fd5ada464a89c1141ddba59ae1adfdbb23e04440c266ed525712d33d5ffd818cd8b0c25b1dee0e648d5559516153a
checksum: a3beebb2cc79908a02f27a07dc381bcb34e8ecc58fa99f568ad0934c49e12111fc977ee9c5b51eb7ea2da66f63155d37c4dd96b6472eaeecfc35843ccb56bf3d
languageName: node
linkType: hard
"@babel/generator@npm:^7.21.3":
version: 7.21.3
resolution: "@babel/generator@npm:7.21.3"
"@babel/generator@npm:^7.21.4":
version: 7.21.4
resolution: "@babel/generator@npm:7.21.4"
dependencies:
"@babel/types": ^7.21.3
"@babel/types": ^7.21.4
"@jridgewell/gen-mapping": ^0.3.2
"@jridgewell/trace-mapping": ^0.3.17
jsesc: ^2.5.1
checksum: be6bb5a32a0273260b91210d4137b7b5da148a2db8dd324654275cb0af865ae59de5e1536e93ac83423b2586415059e1c24cf94293026755cf995757238da749
checksum: 9ffbb526a53bb8469b5402f7b5feac93809b09b2a9f82fcbfcdc5916268a65dae746a1f2479e03ba4fb0776facd7c892191f63baa61ab69b2cfdb24f7b92424d
languageName: node
linkType: hard
@ -98,18 +98,18 @@ __metadata:
languageName: node
linkType: hard
"@babel/helper-compilation-targets@npm:^7.17.7, @babel/helper-compilation-targets@npm:^7.18.9, @babel/helper-compilation-targets@npm:^7.20.0, @babel/helper-compilation-targets@npm:^7.20.7":
version: 7.20.7
resolution: "@babel/helper-compilation-targets@npm:7.20.7"
"@babel/helper-compilation-targets@npm:^7.17.7, @babel/helper-compilation-targets@npm:^7.18.9, @babel/helper-compilation-targets@npm:^7.20.7, @babel/helper-compilation-targets@npm:^7.21.4":
version: 7.21.4
resolution: "@babel/helper-compilation-targets@npm:7.21.4"
dependencies:
"@babel/compat-data": ^7.20.5
"@babel/helper-validator-option": ^7.18.6
"@babel/compat-data": ^7.21.4
"@babel/helper-validator-option": ^7.21.0
browserslist: ^4.21.3
lru-cache: ^5.1.1
semver: ^6.3.0
peerDependencies:
"@babel/core": ^7.0.0
checksum: 8c32c873ba86e2e1805b30e0807abd07188acbe00ebb97576f0b09061cc65007f1312b589eccb4349c5a8c7f8bb9f2ab199d41da7030bf103d9f347dcd3a3cf4
checksum: bf9c7d3e7e6adff9222c05d898724cd4ee91d7eb9d52222c7ad2a22955620c2872cc2d9bdf0e047df8efdb79f4e3af2a06b53f509286145feccc4d10ddc318be
languageName: node
linkType: hard
@ -313,7 +313,7 @@ __metadata:
languageName: node
linkType: hard
"@babel/helper-validator-option@npm:^7.18.6, @babel/helper-validator-option@npm:^7.21.0":
"@babel/helper-validator-option@npm:^7.21.0":
version: 7.21.0
resolution: "@babel/helper-validator-option@npm:7.21.0"
checksum: 8ece4c78ffa5461fd8ab6b6e57cc51afad59df08192ed5d84b475af4a7193fc1cb794b59e3e7be64f3cdc4df7ac78bf3dbb20c129d7757ae078e6279ff8c2f07
@ -354,12 +354,12 @@ __metadata:
languageName: node
linkType: hard
"@babel/parser@npm:^7.18.4, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.21.3":
version: 7.21.3
resolution: "@babel/parser@npm:7.21.3"
"@babel/parser@npm:^7.18.4, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.21.4":
version: 7.21.4
resolution: "@babel/parser@npm:7.21.4"
bin:
parser: ./bin/babel-parser.js
checksum: a71e6456a1260c2a943736b56cc0acdf5f2a53c6c79e545f56618967e51f9b710d1d3359264e7c979313a7153741b1d95ad8860834cc2ab4ce4f428b13cc07be
checksum: de610ecd1bff331766d0c058023ca11a4f242bfafefc42caf926becccfb6756637d167c001987ca830dd4b34b93c629a4cef63f8c8c864a8564cdfde1989ac77
languageName: node
linkType: hard
@ -374,7 +374,7 @@ __metadata:
languageName: node
linkType: hard
"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.18.9":
"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.20.7":
version: 7.20.7
resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.20.7"
dependencies:
@ -398,7 +398,7 @@ __metadata:
languageName: node
linkType: hard
"@babel/plugin-proposal-async-generator-functions@npm:^7.20.1":
"@babel/plugin-proposal-async-generator-functions@npm:^7.20.7":
version: 7.20.7
resolution: "@babel/plugin-proposal-async-generator-functions@npm:7.20.7"
dependencies:
@ -424,7 +424,7 @@ __metadata:
languageName: node
linkType: hard
"@babel/plugin-proposal-class-static-block@npm:^7.18.6":
"@babel/plugin-proposal-class-static-block@npm:^7.21.0":
version: 7.21.0
resolution: "@babel/plugin-proposal-class-static-block@npm:7.21.0"
dependencies:
@ -488,7 +488,7 @@ __metadata:
languageName: node
linkType: hard
"@babel/plugin-proposal-logical-assignment-operators@npm:^7.18.9":
"@babel/plugin-proposal-logical-assignment-operators@npm:^7.20.7":
version: 7.20.7
resolution: "@babel/plugin-proposal-logical-assignment-operators@npm:7.20.7"
dependencies:
@ -524,7 +524,7 @@ __metadata:
languageName: node
linkType: hard
"@babel/plugin-proposal-object-rest-spread@npm:7.20.7, @babel/plugin-proposal-object-rest-spread@npm:^7.20.2":
"@babel/plugin-proposal-object-rest-spread@npm:7.20.7, @babel/plugin-proposal-object-rest-spread@npm:^7.20.7":
version: 7.20.7
resolution: "@babel/plugin-proposal-object-rest-spread@npm:7.20.7"
dependencies:
@ -551,7 +551,7 @@ __metadata:
languageName: node
linkType: hard
"@babel/plugin-proposal-optional-chaining@npm:7.21.0, @babel/plugin-proposal-optional-chaining@npm:^7.18.9, @babel/plugin-proposal-optional-chaining@npm:^7.20.7":
"@babel/plugin-proposal-optional-chaining@npm:7.21.0, @babel/plugin-proposal-optional-chaining@npm:^7.20.7, @babel/plugin-proposal-optional-chaining@npm:^7.21.0":
version: 7.21.0
resolution: "@babel/plugin-proposal-optional-chaining@npm:7.21.0"
dependencies:
@ -576,7 +576,7 @@ __metadata:
languageName: node
linkType: hard
"@babel/plugin-proposal-private-property-in-object@npm:^7.18.6":
"@babel/plugin-proposal-private-property-in-object@npm:^7.21.0":
version: 7.21.0
resolution: "@babel/plugin-proposal-private-property-in-object@npm:7.21.0"
dependencies:
@ -701,6 +701,17 @@ __metadata:
languageName: node
linkType: hard
"@babel/plugin-syntax-jsx@npm:^7.21.4":
version: 7.21.4
resolution: "@babel/plugin-syntax-jsx@npm:7.21.4"
dependencies:
"@babel/helper-plugin-utils": ^7.20.2
peerDependencies:
"@babel/core": ^7.0.0-0
checksum: bb7309402a1d4e155f32aa0cf216e1fa8324d6c4cfd248b03280028a015a10e46b6efd6565f515f8913918a3602b39255999c06046f7d4b8a5106be2165d724a
languageName: node
linkType: hard
"@babel/plugin-syntax-logical-assignment-operators@npm:^7.10.4":
version: 7.10.4
resolution: "@babel/plugin-syntax-logical-assignment-operators@npm:7.10.4"
@ -800,7 +811,7 @@ __metadata:
languageName: node
linkType: hard
"@babel/plugin-transform-arrow-functions@npm:^7.18.6":
"@babel/plugin-transform-arrow-functions@npm:^7.20.7":
version: 7.20.7
resolution: "@babel/plugin-transform-arrow-functions@npm:7.20.7"
dependencies:
@ -811,7 +822,7 @@ __metadata:
languageName: node
linkType: hard
"@babel/plugin-transform-async-to-generator@npm:^7.18.6":
"@babel/plugin-transform-async-to-generator@npm:^7.20.7":
version: 7.20.7
resolution: "@babel/plugin-transform-async-to-generator@npm:7.20.7"
dependencies:
@ -835,7 +846,7 @@ __metadata:
languageName: node
linkType: hard
"@babel/plugin-transform-block-scoping@npm:^7.20.2":
"@babel/plugin-transform-block-scoping@npm:^7.21.0":
version: 7.21.0
resolution: "@babel/plugin-transform-block-scoping@npm:7.21.0"
dependencies:
@ -846,7 +857,7 @@ __metadata:
languageName: node
linkType: hard
"@babel/plugin-transform-classes@npm:^7.20.2":
"@babel/plugin-transform-classes@npm:^7.21.0":
version: 7.21.0
resolution: "@babel/plugin-transform-classes@npm:7.21.0"
dependencies:
@ -865,7 +876,7 @@ __metadata:
languageName: node
linkType: hard
"@babel/plugin-transform-computed-properties@npm:^7.18.9":
"@babel/plugin-transform-computed-properties@npm:^7.20.7":
version: 7.20.7
resolution: "@babel/plugin-transform-computed-properties@npm:7.20.7"
dependencies:
@ -877,7 +888,7 @@ __metadata:
languageName: node
linkType: hard
"@babel/plugin-transform-destructuring@npm:^7.20.2":
"@babel/plugin-transform-destructuring@npm:^7.21.3":
version: 7.21.3
resolution: "@babel/plugin-transform-destructuring@npm:7.21.3"
dependencies:
@ -923,7 +934,7 @@ __metadata:
languageName: node
linkType: hard
"@babel/plugin-transform-for-of@npm:^7.18.8":
"@babel/plugin-transform-for-of@npm:^7.21.0":
version: 7.21.0
resolution: "@babel/plugin-transform-for-of@npm:7.21.0"
dependencies:
@ -969,7 +980,7 @@ __metadata:
languageName: node
linkType: hard
"@babel/plugin-transform-modules-amd@npm:^7.19.6":
"@babel/plugin-transform-modules-amd@npm:^7.20.11":
version: 7.20.11
resolution: "@babel/plugin-transform-modules-amd@npm:7.20.11"
dependencies:
@ -981,7 +992,7 @@ __metadata:
languageName: node
linkType: hard
"@babel/plugin-transform-modules-commonjs@npm:^7.19.6":
"@babel/plugin-transform-modules-commonjs@npm:^7.21.2":
version: 7.21.2
resolution: "@babel/plugin-transform-modules-commonjs@npm:7.21.2"
dependencies:
@ -994,7 +1005,7 @@ __metadata:
languageName: node
linkType: hard
"@babel/plugin-transform-modules-systemjs@npm:^7.19.6":
"@babel/plugin-transform-modules-systemjs@npm:^7.20.11":
version: 7.20.11
resolution: "@babel/plugin-transform-modules-systemjs@npm:7.20.11"
dependencies:
@ -1020,7 +1031,7 @@ __metadata:
languageName: node
linkType: hard
"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.19.1":
"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.20.5":
version: 7.20.5
resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.20.5"
dependencies:
@ -1055,7 +1066,7 @@ __metadata:
languageName: node
linkType: hard
"@babel/plugin-transform-parameters@npm:^7.20.1, @babel/plugin-transform-parameters@npm:^7.20.7":
"@babel/plugin-transform-parameters@npm:^7.20.7, @babel/plugin-transform-parameters@npm:^7.21.3":
version: 7.21.3
resolution: "@babel/plugin-transform-parameters@npm:7.21.3"
dependencies:
@ -1077,7 +1088,7 @@ __metadata:
languageName: node
linkType: hard
"@babel/plugin-transform-regenerator@npm:^7.18.6":
"@babel/plugin-transform-regenerator@npm:^7.20.5":
version: 7.20.5
resolution: "@babel/plugin-transform-regenerator@npm:7.20.5"
dependencies:
@ -1111,7 +1122,7 @@ __metadata:
languageName: node
linkType: hard
"@babel/plugin-transform-spread@npm:^7.19.0":
"@babel/plugin-transform-spread@npm:^7.20.7":
version: 7.20.7
resolution: "@babel/plugin-transform-spread@npm:7.20.7"
dependencies:
@ -1156,7 +1167,7 @@ __metadata:
languageName: node
linkType: hard
"@babel/plugin-transform-typescript@npm:^7.21.0":
"@babel/plugin-transform-typescript@npm:^7.21.3":
version: 7.21.3
resolution: "@babel/plugin-transform-typescript@npm:7.21.3"
dependencies:
@ -1193,30 +1204,30 @@ __metadata:
languageName: node
linkType: hard
"@babel/preset-env@npm:7.20.2, @babel/preset-env@npm:^7.11.0":
version: 7.20.2
resolution: "@babel/preset-env@npm:7.20.2"
"@babel/preset-env@npm:7.21.4, @babel/preset-env@npm:^7.11.0":
version: 7.21.4
resolution: "@babel/preset-env@npm:7.21.4"
dependencies:
"@babel/compat-data": ^7.20.1
"@babel/helper-compilation-targets": ^7.20.0
"@babel/compat-data": ^7.21.4
"@babel/helper-compilation-targets": ^7.21.4
"@babel/helper-plugin-utils": ^7.20.2
"@babel/helper-validator-option": ^7.18.6
"@babel/helper-validator-option": ^7.21.0
"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": ^7.18.6
"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": ^7.18.9
"@babel/plugin-proposal-async-generator-functions": ^7.20.1
"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": ^7.20.7
"@babel/plugin-proposal-async-generator-functions": ^7.20.7
"@babel/plugin-proposal-class-properties": ^7.18.6
"@babel/plugin-proposal-class-static-block": ^7.18.6
"@babel/plugin-proposal-class-static-block": ^7.21.0
"@babel/plugin-proposal-dynamic-import": ^7.18.6
"@babel/plugin-proposal-export-namespace-from": ^7.18.9
"@babel/plugin-proposal-json-strings": ^7.18.6
"@babel/plugin-proposal-logical-assignment-operators": ^7.18.9
"@babel/plugin-proposal-logical-assignment-operators": ^7.20.7
"@babel/plugin-proposal-nullish-coalescing-operator": ^7.18.6
"@babel/plugin-proposal-numeric-separator": ^7.18.6
"@babel/plugin-proposal-object-rest-spread": ^7.20.2
"@babel/plugin-proposal-object-rest-spread": ^7.20.7
"@babel/plugin-proposal-optional-catch-binding": ^7.18.6
"@babel/plugin-proposal-optional-chaining": ^7.18.9
"@babel/plugin-proposal-optional-chaining": ^7.21.0
"@babel/plugin-proposal-private-methods": ^7.18.6
"@babel/plugin-proposal-private-property-in-object": ^7.18.6
"@babel/plugin-proposal-private-property-in-object": ^7.21.0
"@babel/plugin-proposal-unicode-property-regex": ^7.18.6
"@babel/plugin-syntax-async-generators": ^7.8.4
"@babel/plugin-syntax-class-properties": ^7.12.13
@ -1233,40 +1244,40 @@ __metadata:
"@babel/plugin-syntax-optional-chaining": ^7.8.3
"@babel/plugin-syntax-private-property-in-object": ^7.14.5
"@babel/plugin-syntax-top-level-await": ^7.14.5
"@babel/plugin-transform-arrow-functions": ^7.18.6
"@babel/plugin-transform-async-to-generator": ^7.18.6
"@babel/plugin-transform-arrow-functions": ^7.20.7
"@babel/plugin-transform-async-to-generator": ^7.20.7
"@babel/plugin-transform-block-scoped-functions": ^7.18.6
"@babel/plugin-transform-block-scoping": ^7.20.2
"@babel/plugin-transform-classes": ^7.20.2
"@babel/plugin-transform-computed-properties": ^7.18.9
"@babel/plugin-transform-destructuring": ^7.20.2
"@babel/plugin-transform-block-scoping": ^7.21.0
"@babel/plugin-transform-classes": ^7.21.0
"@babel/plugin-transform-computed-properties": ^7.20.7
"@babel/plugin-transform-destructuring": ^7.21.3
"@babel/plugin-transform-dotall-regex": ^7.18.6
"@babel/plugin-transform-duplicate-keys": ^7.18.9
"@babel/plugin-transform-exponentiation-operator": ^7.18.6
"@babel/plugin-transform-for-of": ^7.18.8
"@babel/plugin-transform-for-of": ^7.21.0
"@babel/plugin-transform-function-name": ^7.18.9
"@babel/plugin-transform-literals": ^7.18.9
"@babel/plugin-transform-member-expression-literals": ^7.18.6
"@babel/plugin-transform-modules-amd": ^7.19.6
"@babel/plugin-transform-modules-commonjs": ^7.19.6
"@babel/plugin-transform-modules-systemjs": ^7.19.6
"@babel/plugin-transform-modules-amd": ^7.20.11
"@babel/plugin-transform-modules-commonjs": ^7.21.2
"@babel/plugin-transform-modules-systemjs": ^7.20.11
"@babel/plugin-transform-modules-umd": ^7.18.6
"@babel/plugin-transform-named-capturing-groups-regex": ^7.19.1
"@babel/plugin-transform-named-capturing-groups-regex": ^7.20.5
"@babel/plugin-transform-new-target": ^7.18.6
"@babel/plugin-transform-object-super": ^7.18.6
"@babel/plugin-transform-parameters": ^7.20.1
"@babel/plugin-transform-parameters": ^7.21.3
"@babel/plugin-transform-property-literals": ^7.18.6
"@babel/plugin-transform-regenerator": ^7.18.6
"@babel/plugin-transform-regenerator": ^7.20.5
"@babel/plugin-transform-reserved-words": ^7.18.6
"@babel/plugin-transform-shorthand-properties": ^7.18.6
"@babel/plugin-transform-spread": ^7.19.0
"@babel/plugin-transform-spread": ^7.20.7
"@babel/plugin-transform-sticky-regex": ^7.18.6
"@babel/plugin-transform-template-literals": ^7.18.9
"@babel/plugin-transform-typeof-symbol": ^7.18.9
"@babel/plugin-transform-unicode-escapes": ^7.18.10
"@babel/plugin-transform-unicode-regex": ^7.18.6
"@babel/preset-modules": ^0.1.5
"@babel/types": ^7.20.2
"@babel/types": ^7.21.4
babel-plugin-polyfill-corejs2: ^0.3.3
babel-plugin-polyfill-corejs3: ^0.6.0
babel-plugin-polyfill-regenerator: ^0.4.1
@ -1274,7 +1285,7 @@ __metadata:
semver: ^6.3.0
peerDependencies:
"@babel/core": ^7.0.0-0
checksum: ece2d7e9c7789db6116e962b8e1a55eb55c110c44c217f0c8f6ffea4ca234954e66557f7bd019b7affadf7fbb3a53ccc807e93fc935aacd48146234b73b6947e
checksum: 1e328674c4b39e985fa81e5a8eee9aaab353dea4ff1f28f454c5e27a6498c762e25d42e827f5bfc9d7acf6c9b8bc317b5283aa7c83d9fd03c1a89e5c08f334f9
languageName: node
linkType: hard
@ -1293,16 +1304,18 @@ __metadata:
languageName: node
linkType: hard
"@babel/preset-typescript@npm:7.21.0":
version: 7.21.0
resolution: "@babel/preset-typescript@npm:7.21.0"
"@babel/preset-typescript@npm:7.21.4":
version: 7.21.4
resolution: "@babel/preset-typescript@npm:7.21.4"
dependencies:
"@babel/helper-plugin-utils": ^7.20.2
"@babel/helper-validator-option": ^7.21.0
"@babel/plugin-transform-typescript": ^7.21.0
"@babel/plugin-syntax-jsx": ^7.21.4
"@babel/plugin-transform-modules-commonjs": ^7.21.2
"@babel/plugin-transform-typescript": ^7.21.3
peerDependencies:
"@babel/core": ^7.0.0-0
checksum: 6e1f4d7294de2678fbaf36035e98847b2be432f40fe7a1204e5e45b8b05bcbe22902fe0d726e16af14de5bc08987fae28a7899871503fd661050d85f58755af6
checksum: 83b2f2bf7be3a970acd212177525f58bbb1f2e042b675a47d021a675ae27cf00b6b6babfaf3ae5c980592c9ed1b0712e5197796b691905d25c99f9006478ea06
languageName: node
linkType: hard
@ -1333,32 +1346,32 @@ __metadata:
languageName: node
linkType: hard
"@babel/traverse@npm:^7.20.5, @babel/traverse@npm:^7.20.7, @babel/traverse@npm:^7.21.0, @babel/traverse@npm:^7.21.2, @babel/traverse@npm:^7.21.3":
version: 7.21.3
resolution: "@babel/traverse@npm:7.21.3"
"@babel/traverse@npm:^7.20.5, @babel/traverse@npm:^7.20.7, @babel/traverse@npm:^7.21.0, @babel/traverse@npm:^7.21.2, @babel/traverse@npm:^7.21.4":
version: 7.21.4
resolution: "@babel/traverse@npm:7.21.4"
dependencies:
"@babel/code-frame": ^7.18.6
"@babel/generator": ^7.21.3
"@babel/code-frame": ^7.21.4
"@babel/generator": ^7.21.4
"@babel/helper-environment-visitor": ^7.18.9
"@babel/helper-function-name": ^7.21.0
"@babel/helper-hoist-variables": ^7.18.6
"@babel/helper-split-export-declaration": ^7.18.6
"@babel/parser": ^7.21.3
"@babel/types": ^7.21.3
"@babel/parser": ^7.21.4
"@babel/types": ^7.21.4
debug: ^4.1.0
globals: ^11.1.0
checksum: 0af5bcd47a2fc501592b90ac1feae9d449afb9ab0772a4f6e68230f4cd3a475795d538c1de3f880fe3414b6c2820bac84d02c6549eea796f39d74a603717447b
checksum: f22f067c2d9b6497abf3d4e53ea71f3aa82a21f2ed434dd69b8c5767f11f2a4c24c8d2f517d2312c9e5248e5c69395fdca1c95a2b3286122c75f5783ddb6f53c
languageName: node
linkType: hard
"@babel/types@npm:^7.18.6, @babel/types@npm:^7.18.9, @babel/types@npm:^7.20.0, @babel/types@npm:^7.20.2, @babel/types@npm:^7.20.5, @babel/types@npm:^7.20.7, @babel/types@npm:^7.21.0, @babel/types@npm:^7.21.2, @babel/types@npm:^7.21.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3":
version: 7.21.3
resolution: "@babel/types@npm:7.21.3"
"@babel/types@npm:^7.18.6, @babel/types@npm:^7.18.9, @babel/types@npm:^7.20.0, @babel/types@npm:^7.20.2, @babel/types@npm:^7.20.5, @babel/types@npm:^7.20.7, @babel/types@npm:^7.21.0, @babel/types@npm:^7.21.2, @babel/types@npm:^7.21.4, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3":
version: 7.21.4
resolution: "@babel/types@npm:7.21.4"
dependencies:
"@babel/helper-string-parser": ^7.19.4
"@babel/helper-validator-identifier": ^7.19.1
to-fast-properties: ^2.0.0
checksum: b750274718ba9cefd0b81836c464009bb6ba339fccce51b9baff497a0a2d96c044c61dc90cf203cec0adc770454b53a9681c3f7716883c802b85ab84c365ba35
checksum: 587bc55a91ce003b0f8aa10d70070f8006560d7dc0360dc0406d306a2cb2a10154e2f9080b9c37abec76907a90b330a536406cb75e6bdc905484f37b75c73219
languageName: node
linkType: hard
@ -3240,6 +3253,18 @@ __metadata:
languageName: node
linkType: hard
"@octokit/plugin-retry@npm:4.1.3":
version: 4.1.3
resolution: "@octokit/plugin-retry@npm:4.1.3"
dependencies:
"@octokit/types": ^9.0.0
bottleneck: ^2.15.3
peerDependencies:
"@octokit/core": ">=3"
checksum: f9ed5869be23dddcf1ee896ce996e46a412a586259b55612ba44c82cdeed91436102e6e3ec57db879bd91a4446dcafbaa94632e4e059c6af56d9cca9b163eacb
languageName: node
linkType: hard
"@octokit/request-error@npm:^3.0.0, @octokit/request-error@npm:^3.0.3":
version: 3.0.3
resolution: "@octokit/request-error@npm:3.0.3"
@ -6084,6 +6109,13 @@ __metadata:
languageName: node
linkType: hard
"bottleneck@npm:^2.15.3":
version: 2.19.5
resolution: "bottleneck@npm:2.19.5"
checksum: c5eef1bbea12cef1f1405e7306e7d24860568b0f7ac5eeab706a86762b3fc65ef6d1c641c8a166e4db90f412fc5c948fc5ce8008a8cd3d28c7212ef9c3482bda
languageName: node
linkType: hard
"brace-expansion@npm:^1.1.7":
version: 1.1.11
resolution: "brace-expansion@npm:1.1.11"
@ -9391,7 +9423,7 @@ __metadata:
version: 0.0.0-use.local
resolution: "home-assistant-frontend@workspace:."
dependencies:
"@babel/core": 7.21.3
"@babel/core": 7.21.4
"@babel/plugin-external-helpers": 7.18.6
"@babel/plugin-proposal-class-properties": 7.18.6
"@babel/plugin-proposal-decorators": 7.21.0
@ -9401,8 +9433,8 @@ __metadata:
"@babel/plugin-syntax-dynamic-import": 7.8.3
"@babel/plugin-syntax-import-meta": 7.10.4
"@babel/plugin-syntax-top-level-await": 7.14.5
"@babel/preset-env": 7.20.2
"@babel/preset-typescript": 7.21.0
"@babel/preset-env": 7.21.4
"@babel/preset-typescript": 7.21.4
"@braintree/sanitize-url": 6.0.2
"@codemirror/autocomplete": 6.4.2
"@codemirror/commands": 6.2.2
@ -9458,6 +9490,7 @@ __metadata:
"@mdi/js": 7.2.96
"@mdi/svg": 7.2.96
"@octokit/auth-oauth-device": 4.0.4
"@octokit/plugin-retry": 4.1.3
"@octokit/rest": 19.0.7
"@open-wc/dev-server-hmr": 0.1.4
"@polymer/app-layout": 3.1.0