20230831.0 (#17756)

This commit is contained in:
Bram Kragten 2023-08-31 14:38:24 +02:00 committed by GitHub
commit d187aa0ac6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
23 changed files with 108 additions and 242 deletions

View File

@ -82,7 +82,6 @@
"@material/web": "=1.0.0-pre.16", "@material/web": "=1.0.0-pre.16",
"@mdi/js": "7.2.96", "@mdi/js": "7.2.96",
"@mdi/svg": "7.2.96", "@mdi/svg": "7.2.96",
"@polymer/app-layout": "3.1.0",
"@polymer/iron-flex-layout": "3.0.1", "@polymer/iron-flex-layout": "3.0.1",
"@polymer/iron-input": "3.0.1", "@polymer/iron-input": "3.0.1",
"@polymer/iron-resizable-behavior": "3.0.1", "@polymer/iron-resizable-behavior": "3.0.1",

View File

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

View File

@ -137,12 +137,16 @@ export class StateHistoryChartLine extends LitElement {
`${context.dataset.label}: ${formatNumber( `${context.dataset.label}: ${formatNumber(
context.parsed.y, context.parsed.y,
this.hass.locale, this.hass.locale,
getNumberFormatOptions( this.data[context.datasetIndex]?.entity_id
this.hass.states[this.data[context.datasetIndex].entity_id], ? getNumberFormatOptions(
this.hass.entities[ this.hass.states[
this.data[context.datasetIndex].entity_id this.data[context.datasetIndex].entity_id
] ],
) this.hass.entities[
this.data[context.datasetIndex].entity_id
]
)
: undefined
)} ${this.unit}`, )} ${this.unit}`,
}, },
}, },

View File

@ -84,8 +84,8 @@ export class StateHistoryCharts extends LitElement {
// @ts-ignore // @ts-ignore
@restoreScroll(".container") private _savedScrollPos?: number; @restoreScroll(".container") private _savedScrollPos?: number;
@queryAll("state-history-chart-line, state-history-chart-timeline") @queryAll("state-history-chart-line")
private _charts?: StateHistoryChartLine[] | StateHistoryChartTimeline[]; private _charts?: StateHistoryChartLine[];
public resize = (options?: ChartResizeOptions): void => { public resize = (options?: ChartResizeOptions): void => {
this._charts?.forEach( this._charts?.forEach(

View File

@ -1,12 +1,19 @@
import { HassEntity } from "home-assistant-js-websocket"; import { HassEntity } from "home-assistant-js-websocket";
import { css, CSSResultGroup, html, LitElement, nothing } from "lit"; import {
css,
CSSResultGroup,
html,
LitElement,
nothing,
PropertyValues,
} from "lit";
import { customElement, property, state } from "lit/decorators"; import { customElement, property, state } from "lit/decorators";
import { computeAttributeNameDisplay } from "../common/entity/compute_attribute_display"; import { computeAttributeNameDisplay } from "../common/entity/compute_attribute_display";
import { STATE_ATTRIBUTES } from "../data/entity_attributes"; import { STATE_ATTRIBUTES } from "../data/entity_attributes";
import { haStyle } from "../resources/styles"; import { haStyle } from "../resources/styles";
import { HomeAssistant } from "../types"; import { HomeAssistant } from "../types";
import "./ha-expansion-panel";
import "./ha-attribute-value"; import "./ha-attribute-value";
import "./ha-expansion-panel";
@customElement("ha-attributes") @customElement("ha-attributes")
class HaAttributes extends LitElement { class HaAttributes extends LitElement {
@ -18,16 +25,30 @@ class HaAttributes extends LitElement {
@state() private _expanded = false; @state() private _expanded = false;
private get _filteredAttributes() {
return this.computeDisplayAttributes(
STATE_ATTRIBUTES.concat(
this.extraFilters ? this.extraFilters.split(",") : []
)
);
}
protected willUpdate(changedProperties: PropertyValues): void {
if (
changedProperties.has("extraFilters") ||
changedProperties.has("stateObj")
) {
this.toggleAttribute("empty", this._filteredAttributes.length === 0);
}
}
protected render() { protected render() {
if (!this.stateObj) { if (!this.stateObj) {
return nothing; return nothing;
} }
const attributes = this.computeDisplayAttributes( const attributes = this._filteredAttributes;
STATE_ATTRIBUTES.concat(
this.extraFilters ? this.extraFilters.split(",") : []
)
);
if (attributes.length === 0) { if (attributes.length === 0) {
return nothing; return nothing;
} }

View File

@ -649,11 +649,11 @@ export const getDefaultForecastType = (stateObj: HassEntityBase) => {
if (supportsFeature(stateObj, WeatherEntityFeature.FORECAST_DAILY)) { if (supportsFeature(stateObj, WeatherEntityFeature.FORECAST_DAILY)) {
return "daily"; return "daily";
} }
if (supportsFeature(stateObj, WeatherEntityFeature.FORECAST_HOURLY)) {
return "hourly";
}
if (supportsFeature(stateObj, WeatherEntityFeature.FORECAST_TWICE_DAILY)) { if (supportsFeature(stateObj, WeatherEntityFeature.FORECAST_TWICE_DAILY)) {
return "twice_daily"; return "twice_daily";
} }
if (supportsFeature(stateObj, WeatherEntityFeature.FORECAST_HOURLY)) {
return "hourly";
}
return undefined; return undefined;
}; };

View File

@ -404,8 +404,6 @@ export interface RequestedGrant {
clientSideAuth: boolean; clientSideAuth: boolean;
} }
export const nodeStatus = ["unknown", "asleep", "awake", "dead", "alive"];
export const fetchZwaveNetworkStatus = ( export const fetchZwaveNetworkStatus = (
hass: HomeAssistant, hass: HomeAssistant,
device_or_entry_id: { device_or_entry_id: {

View File

@ -280,15 +280,21 @@ export class HaMoreInfoClimateTemperature extends LitElement {
); );
} }
const activeModes = this.stateObj.attributes.hvac_modes.filter(
(m) => m !== "off"
);
if ( if (
supportsTargetTemperature && supportsTargetTemperature &&
this._targetTemperature.value != null && this._targetTemperature.value != null &&
this.stateObj.state !== UNAVAILABLE this.stateObj.state !== UNAVAILABLE
) { ) {
const heatCoolModes = this.stateObj.attributes.hvac_modes.filter((m) =>
["heat", "cool", "heat_cool"].includes(m)
);
const sliderMode =
SLIDER_MODES[
heatCoolModes.length === 1 && ["off", "auto"].includes(mode)
? heatCoolModes[0]
: mode
];
return html` return html`
<div <div
class="container" class="container"
@ -299,9 +305,7 @@ export class HaMoreInfoClimateTemperature extends LitElement {
> >
<ha-control-circular-slider <ha-control-circular-slider
.inactive=${!active} .inactive=${!active}
.mode=${mode === "off" && activeModes.length === 1 .mode=${sliderMode}
? SLIDER_MODES[activeModes[0]]
: SLIDER_MODES[mode]}
.value=${this._targetTemperature.value} .value=${this._targetTemperature.value}
.min=${this._min} .min=${this._min}
.max=${this._max} .max=${this._max}

View File

@ -34,6 +34,10 @@ export const moreInfoControlStyle = css`
} }
ha-attributes { ha-attributes {
display: block;
width: 100%; width: 100%;
} }
ha-more-info-control-select-container + ha-attributes:not([empty]) {
margin-top: 16px;
}
`; `;

View File

@ -142,7 +142,7 @@ class MoreInfoClimate extends LitElement {
.selected=${this._mainControl === "temperature"} .selected=${this._mainControl === "temperature"}
.disabled=${this.stateObj!.state === UNAVAILABLE} .disabled=${this.stateObj!.state === UNAVAILABLE}
.label=${this.hass.localize( .label=${this.hass.localize(
"ui.dialogs.more_info_control.light.color" "ui.dialogs.more_info_control.climate.temperature"
)} )}
.control=${"temperature"} .control=${"temperature"}
@click=${this._setMainControl} @click=${this._setMainControl}
@ -153,7 +153,7 @@ class MoreInfoClimate extends LitElement {
.selected=${this._mainControl === "humidity"} .selected=${this._mainControl === "humidity"}
.disabled=${this.stateObj!.state === UNAVAILABLE} .disabled=${this.stateObj!.state === UNAVAILABLE}
.label=${this.hass.localize( .label=${this.hass.localize(
"ui.dialogs.more_info_control.light.color_temp" "ui.dialogs.more_info_control.climate.humidity"
)} )}
.control=${"humidity"} .control=${"humidity"}
@click=${this._setMainControl} @click=${this._setMainControl}
@ -166,10 +166,7 @@ class MoreInfoClimate extends LitElement {
</div> </div>
<ha-more-info-control-select-container> <ha-more-info-control-select-container>
<ha-control-select-menu <ha-control-select-menu
.label=${this.hass.formatEntityAttributeName( .label=${this.hass.localize("ui.card.climate.mode")}
this.stateObj,
"hvac_mode"
)}
.value=${stateObj.state} .value=${stateObj.state}
.disabled=${this.stateObj.state === UNAVAILABLE} .disabled=${this.stateObj.state === UNAVAILABLE}
fixedMenuPosition fixedMenuPosition

View File

@ -86,7 +86,7 @@ class MoreInfoFan extends LitElement {
} }
_handleOscillating(ev) { _handleOscillating(ev) {
const newVal = ev.target.value === "on"; const newVal = ev.target.value === "true";
this.hass.callService("fan", "oscillate", { this.hass.callService("fan", "oscillate", {
entity_id: this.stateObj!.entity_id, entity_id: this.stateObj!.entity_id,
@ -269,7 +269,9 @@ class MoreInfoFan extends LitElement {
this.stateObj, this.stateObj,
"oscillating" "oscillating"
)} )}
.value=${this.stateObj.attributes.oscillating ? "on" : "off"} .value=${this.stateObj.attributes.oscillating
? "true"
: "false"}
.disabled=${this.stateObj.state === UNAVAILABLE} .disabled=${this.stateObj.state === UNAVAILABLE}
fixedMenuPosition fixedMenuPosition
naturalMenuWidth naturalMenuWidth
@ -280,19 +282,27 @@ class MoreInfoFan extends LitElement {
slot="icon" slot="icon"
.path=${haOscillatingOff} .path=${haOscillatingOff}
></ha-svg-icon> ></ha-svg-icon>
<ha-list-item value="on" graphic="icon"> <ha-list-item value="true" graphic="icon">
<ha-svg-icon <ha-svg-icon
slot="graphic" slot="graphic"
.path=${haOscillating} .path=${haOscillating}
></ha-svg-icon> ></ha-svg-icon>
${this.hass.localize("state.default.on")} ${this.hass.formatEntityAttributeValue(
this.stateObj,
"oscillating",
true
)}
</ha-list-item> </ha-list-item>
<ha-list-item value="off" graphic="icon"> <ha-list-item value="false" graphic="icon">
<ha-svg-icon <ha-svg-icon
slot="graphic" slot="graphic"
.path=${haOscillatingOff} .path=${haOscillatingOff}
></ha-svg-icon> ></ha-svg-icon>
${this.hass.localize("state.default.off")} ${this.hass.formatEntityAttributeValue(
this.stateObj,
"oscillating",
false
)}
</ha-list-item> </ha-list-item>
</ha-control-select-menu> </ha-control-select-menu>
` `

View File

@ -73,10 +73,7 @@ class MoreInfoWaterHeater extends LitElement {
${supportOperationMode && stateObj.attributes.operation_list ${supportOperationMode && stateObj.attributes.operation_list
? html` ? html`
<ha-control-select-menu <ha-control-select-menu
.label=${this.hass.formatEntityAttributeName( .label=${this.hass.localize("ui.card.water_heater.mode")}
stateObj,
"operation"
)}
.value=${stateObj.state} .value=${stateObj.state}
.disabled=${stateObj.state === UNAVAILABLE} .disabled=${stateObj.state === UNAVAILABLE}
fixedMenuPosition fixedMenuPosition
@ -122,11 +119,19 @@ class MoreInfoWaterHeater extends LitElement {
slot="graphic" slot="graphic"
.path=${mdiAccountArrowRight} .path=${mdiAccountArrowRight}
></ha-svg-icon> ></ha-svg-icon>
${this.hass.localize("state.default.on")} ${this.hass.formatEntityAttributeValue(
stateObj,
"away_mode",
"on"
)}
</ha-list-item> </ha-list-item>
<ha-list-item value="off" graphic="icon"> <ha-list-item value="off" graphic="icon">
<ha-svg-icon slot="graphic" .path=${mdiAccount}></ha-svg-icon> <ha-svg-icon slot="graphic" .path=${mdiAccount}></ha-svg-icon>
${this.hass.localize("state.default.off")} ${this.hass.formatEntityAttributeValue(
stateObj,
"away_mode",
"off"
)}
</ha-list-item> </ha-list-item>
</ha-control-select-menu> </ha-control-select-menu>
` `

View File

@ -252,7 +252,8 @@ class MoreInfoWeather extends LitElement {
${this._showValue(item.templow) ${this._showValue(item.templow)
? this.hass.formatEntityAttributeValue( ? this.hass.formatEntityAttributeValue(
this.stateObj!, this.stateObj!,
"templow" "templow",
item.templow
) )
: hourly : hourly
? "" ? ""
@ -262,7 +263,8 @@ class MoreInfoWeather extends LitElement {
${this._showValue(item.temperature) ${this._showValue(item.temperature)
? this.hass.formatEntityAttributeValue( ? this.hass.formatEntityAttributeValue(
this.stateObj!, this.stateObj!,
"temperature" "temperature",
item.temperature
) )
: "—"} : "—"}
</div> </div>

View File

@ -1,103 +0,0 @@
/* eslint-plugin-disable lit */
/**
@license
Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
Code distributed by Google as part of the polymer project is also
subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
*/
/*
This code is copied from app-header-layout.
'fullbleed' support is removed as Home Assisstant doesn't use it.
transform: translate(0) is added.
*/
/*
FIXME(polymer-modulizer): the above comments were extracted
from HTML and may be out of place here. Review them and
then delete this comment!
*/
import "@polymer/app-layout/app-header-layout/app-header-layout";
import { html } from "@polymer/polymer/lib/utils/html-tag";
import "@polymer/polymer/polymer-element";
class HaAppLayout extends customElements.get("app-header-layout") {
static get template() {
return html`
<style>
:host {
display: block;
/**
* Force app-header-layout to have its own stacking context so that its parent can
* control the stacking of it relative to other elements (e.g. app-drawer-layout).
* This could be done using \`isolation: isolate\`, but that's not well supported
* across browsers.
*/
position: relative;
z-index: 0;
}
#wrapper ::slotted([slot="header"]) {
@apply --layout-fixed-top;
z-index: 1;
}
#wrapper.initializing ::slotted([slot="header"]) {
position: relative;
}
:host([has-scrolling-region]) {
height: 100%;
}
:host([has-scrolling-region]) #wrapper ::slotted([slot="header"]) {
position: absolute;
}
:host([has-scrolling-region])
#wrapper.initializing
::slotted([slot="header"]) {
position: relative;
}
:host([has-scrolling-region]) #wrapper #contentContainer {
@apply --layout-fit;
overflow-y: auto;
-webkit-overflow-scrolling: touch;
}
:host([has-scrolling-region]) #wrapper.initializing #contentContainer {
position: relative;
}
#contentContainer {
/* Create a stacking context here so that all children appear below the header. */
position: relative;
z-index: 0;
/* Using 'transform' will cause 'position: fixed' elements to behave like
'position: absolute' relative to this element. */
transform: translate(0);
margin-left: env(safe-area-inset-left);
margin-right: env(safe-area-inset-right);
padding-top: env(safe-area-inset-top);
padding-bottom: env(safe-area-inset-bottom);
}
@media print {
:host([has-scrolling-region]) #wrapper #contentContainer {
overflow-y: visible;
}
}
</style>
<div id="wrapper" class="initializing">
<slot id="headerSlot" name="header"></slot>
<div id="contentContainer"><slot></slot></div>
<slot id="fab" name="fab"></slot>
</div>
`;
}
}
customElements.define("ha-app-layout", HaAppLayout);

View File

@ -32,10 +32,6 @@ class OnboardingCoreConfig extends LitElement {
private _elevation = "0"; private _elevation = "0";
private _unitSystem: ConfigUpdateValues["unit_system"] = "metric";
private _currency: ConfigUpdateValues["currency"] = "EUR";
private _timeZone: ConfigUpdateValues["time_zone"] = private _timeZone: ConfigUpdateValues["time_zone"] =
Intl.DateTimeFormat?.().resolvedOptions?.().timeZone; Intl.DateTimeFormat?.().resolvedOptions?.().timeZone;
@ -43,6 +39,10 @@ class OnboardingCoreConfig extends LitElement {
@state() private _country?: ConfigUpdateValues["country"]; @state() private _country?: ConfigUpdateValues["country"];
private _unitSystem?: ConfigUpdateValues["unit_system"];
private _currency?: ConfigUpdateValues["currency"];
@state() private _error?: string; @state() private _error?: string;
@state() private _skipCore = false; @state() private _skipCore = false;

View File

@ -336,7 +336,7 @@ class OnboardingLocation extends LitElement {
); );
try { try {
this._places = await searchPlaces(address, this.hass, true, 3); this._places = await searchPlaces(address, this.hass, true, 3);
if (this._places?.length === 1) { if (this._places?.length) {
this._highlightedMarker = this._places[0].place_id; this._highlightedMarker = this._places[0].place_id;
this._location = [ this._location = [
Number(this._places[0].lat), Number(this._places[0].lat),

View File

@ -1,4 +1,3 @@
import { UnsubscribeFunc } from "home-assistant-js-websocket";
import { import {
css, css,
CSSResultGroup, CSSResultGroup,
@ -16,9 +15,7 @@ import {
import { DeviceRegistryEntry } from "../../../../../../data/device_registry"; import { DeviceRegistryEntry } from "../../../../../../data/device_registry";
import { import {
fetchZwaveNodeStatus, fetchZwaveNodeStatus,
nodeStatus,
SecurityClass, SecurityClass,
subscribeZwaveNodeStatus,
ZWaveJSNodeStatus, ZWaveJSNodeStatus,
} from "../../../../../../data/zwave_js"; } from "../../../../../../data/zwave_js";
import { SubscribeMixin } from "../../../../../../mixins/subscribe-mixin"; import { SubscribeMixin } from "../../../../../../mixins/subscribe-mixin";
@ -44,21 +41,6 @@ export class HaDeviceInfoZWaveJS extends SubscribeMixin(LitElement) {
} }
} }
public hassSubscribe(): Array<UnsubscribeFunc | Promise<UnsubscribeFunc>> {
return [
subscribeZwaveNodeStatus(this.hass, this.device!.id, (message) => {
if (!this._node) {
return;
}
this._node = {
...this._node,
status: message.status,
ready: message.ready,
};
}),
];
}
protected async _fetchNodeDetails() { protected async _fetchNodeDetails() {
if (!this.device) { if (!this.device) {
return; return;
@ -112,16 +94,6 @@ export class HaDeviceInfoZWaveJS extends SubscribeMixin(LitElement) {
</div> </div>
${!this._node.is_controller_node ${!this._node.is_controller_node
? html` ? html`
<div>
${this.hass.localize(
"ui.panel.config.zwave_js.device_info.node_status"
)}:
${this.hass.localize(
`ui.panel.config.zwave_js.node_status.${
nodeStatus[this._node.status]
}`
)}
</div>
<div> <div>
${this.hass.localize( ${this.hass.localize(
"ui.panel.config.zwave_js.device_info.node_ready" "ui.panel.config.zwave_js.device_info.node_ready"

View File

@ -130,7 +130,7 @@ export class HuiEnergyDevicesGraphCard
}, },
}, },
}, },
elements: { bar: { borderWidth: 1.5, borderRadius: 4 } }, elements: { bar: { borderWidth: 1, borderRadius: 4 } },
plugins: { plugins: {
tooltip: { tooltip: {
mode: "nearest", mode: "nearest",
@ -292,6 +292,7 @@ export class HuiEnergyDevicesGraphCard
}); });
this._chartData = { this._chartData = {
labels: chartData.map((d) => d.y),
datasets, datasets,
}; };
await this.updateComplete; await this.updateComplete;

View File

@ -121,10 +121,7 @@ class HuiClimateHvacModeTileFeature
.value=${this._currentHvacMode} .value=${this._currentHvacMode}
@value-changed=${this._valueChanged} @value-changed=${this._valueChanged}
hide-label hide-label
.ariaLabel=${this.hass.formatEntityAttributeName( .ariaLabel=${this.hass.localize("ui.card.climate.mode")}
this.stateObj,
"hvac_mode"
)}
style=${styleMap({ style=${styleMap({
"--control-select-color": color, "--control-select-color": color,
})} })}

View File

@ -125,10 +125,7 @@ class HuiWaterHeaterOperationModeTileFeature
.value=${this._currentOperationMode} .value=${this._currentOperationMode}
@value-changed=${this._valueChanged} @value-changed=${this._valueChanged}
hide-label hide-label
.ariaLabel=${this.hass.formatEntityAttributeName( .ariaLabel=${this.hass.localize("ui.card.water_heater.mode")}
this.stateObj,
"hvac_mode"
)}
style=${styleMap({ style=${styleMap({
"--control-select-color": color, "--control-select-color": color,
})} })}

View File

@ -12,7 +12,6 @@ import { formatDateTime } from "../../common/datetime/format_date_time";
import "../../components/ha-card"; import "../../components/ha-card";
import "../../components/ha-menu-button"; import "../../components/ha-menu-button";
import "../../components/ha-tabs"; import "../../components/ha-tabs";
import "../../layouts/ha-app-layout";
import "@polymer/paper-item/paper-item"; import "@polymer/paper-item/paper-item";
import "@polymer/paper-item/paper-item-body"; import "@polymer/paper-item/paper-item-body";
import "@polymer/paper-tabs/paper-tab"; import "@polymer/paper-tabs/paper-tab";

View File

@ -15,8 +15,6 @@
}, },
"state": { "state": {
"default": { "default": {
"on": "On",
"off": "Off",
"unknown": "Unknown", "unknown": "Unknown",
"unavailable": "Unavailable" "unavailable": "Unavailable"
} }
@ -107,8 +105,7 @@
"cooling": "{name} cooling", "cooling": "{name} cooling",
"high": "high", "high": "high",
"low": "low", "low": "low",
"operation": "Operation", "mode": "Mode"
"away_mode": "Away mode"
}, },
"counter": { "counter": {
"actions": { "actions": {
@ -228,8 +225,8 @@
"currently": "Currently", "currently": "Currently",
"on_off": "On / off", "on_off": "On / off",
"target_temperature": "Target temperature", "target_temperature": "Target temperature",
"operation": "Operation", "away_mode": "Away mode",
"away_mode": "Away mode" "mode": "Mode"
}, },
"weather": { "weather": {
"attributes": { "attributes": {
@ -1021,7 +1018,9 @@
"climate": { "climate": {
"target_label": "{action} to target", "target_label": "{action} to target",
"target": "Target", "target": "Target",
"humidity_target": "Humidity target" "humidity_target": "Humidity target",
"temperature": "Temperature",
"humidity": "Humidity"
}, },
"humidifier": { "humidifier": {
"target_label": "[%key:ui::dialogs::more_info_control::climate::target_label%]", "target_label": "[%key:ui::dialogs::more_info_control::climate::target_label%]",
@ -3960,7 +3959,6 @@
"device_info": { "device_info": {
"zwave_info": "Z-Wave info", "zwave_info": "Z-Wave info",
"node_id": "ID", "node_id": "ID",
"node_status": "Status",
"node_ready": "Ready", "node_ready": "Ready",
"device_config": "Configure", "device_config": "Configure",
"reinterview_device": "Re-interview", "reinterview_device": "Re-interview",
@ -4067,13 +4065,6 @@
"parameter": "Parameter", "parameter": "Parameter",
"bitmask": "Bitmask" "bitmask": "Bitmask"
}, },
"node_status": {
"unknown": "Unknown",
"asleep": "Asleep",
"awake": "Awake",
"dead": "Dead",
"alive": "Alive"
},
"network_status": { "network_status": {
"connected": "Connected", "connected": "Connected",
"connecting": "Connecting", "connecting": "Connecting",

View File

@ -3418,19 +3418,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@polymer/app-layout@npm:3.1.0":
version: 3.1.0
resolution: "@polymer/app-layout@npm:3.1.0"
dependencies:
"@polymer/iron-flex-layout": ^3.0.0-pre.26
"@polymer/iron-media-query": ^3.0.0-pre.26
"@polymer/iron-resizable-behavior": ^3.0.0-pre.26
"@polymer/iron-scroll-target-behavior": ^3.0.0-pre.26
"@polymer/polymer": ^3.0.0
checksum: 0da7158de7a44db6f25482ef28a75a4a9372706b0d6a0d08f7b45eb4f75d60dd2e769275bf926f986588bc8273545b55f90a68429c6081cb5cb3f16b1e1f9746
languageName: node
linkType: hard
"@polymer/font-roboto@npm:^3.0.1": "@polymer/font-roboto@npm:^3.0.1":
version: 3.0.2 version: 3.0.2
resolution: "@polymer/font-roboto@npm:3.0.2" resolution: "@polymer/font-roboto@npm:3.0.2"
@ -3548,15 +3535,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@polymer/iron-media-query@npm:^3.0.0-pre.26":
version: 3.0.1
resolution: "@polymer/iron-media-query@npm:3.0.1"
dependencies:
"@polymer/polymer": ^3.0.0
checksum: 15d7c77608925adea02bf12af1f1eb7dd70abc3349bdff88906a3f0fa5bdfe41171bda1b346f9b7ccfd6de9550ac2a34278a74182ce1407097d3972c23984c5e
languageName: node
linkType: hard
"@polymer/iron-menu-behavior@npm:^3.0.0-pre.26": "@polymer/iron-menu-behavior@npm:^3.0.0-pre.26":
version: 3.0.2 version: 3.0.2
resolution: "@polymer/iron-menu-behavior@npm:3.0.2" resolution: "@polymer/iron-menu-behavior@npm:3.0.2"
@ -3608,15 +3586,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@polymer/iron-scroll-target-behavior@npm:^3.0.0-pre.26":
version: 3.0.1
resolution: "@polymer/iron-scroll-target-behavior@npm:3.0.1"
dependencies:
"@polymer/polymer": ^3.0.0
checksum: abf2864aee6049b336aa303110a65cd51cda75247b89edc4f21a6b5290062eb19cd8d2d125198354497df53368bbd305b30d9d31475fd327833cd549d83eb7b9
languageName: node
linkType: hard
"@polymer/iron-selector@npm:^3.0.0-pre.26": "@polymer/iron-selector@npm:^3.0.0-pre.26":
version: 3.0.1 version: 3.0.1
resolution: "@polymer/iron-selector@npm:3.0.1" resolution: "@polymer/iron-selector@npm:3.0.1"
@ -9679,7 +9648,6 @@ __metadata:
"@octokit/plugin-retry": 6.0.0 "@octokit/plugin-retry": 6.0.0
"@octokit/rest": 20.0.1 "@octokit/rest": 20.0.1
"@open-wc/dev-server-hmr": 0.1.4 "@open-wc/dev-server-hmr": 0.1.4
"@polymer/app-layout": 3.1.0
"@polymer/iron-flex-layout": 3.0.1 "@polymer/iron-flex-layout": 3.0.1
"@polymer/iron-input": 3.0.1 "@polymer/iron-input": 3.0.1
"@polymer/iron-resizable-behavior": 3.0.1 "@polymer/iron-resizable-behavior": 3.0.1