mirror of
https://github.com/home-assistant/frontend.git
synced 2025-07-23 17:26:42 +00:00
Merge pull request #6250 from home-assistant/dev
This commit is contained in:
commit
ff7731d063
@ -87,7 +87,7 @@
|
|||||||
"fuse.js": "^6.0.0",
|
"fuse.js": "^6.0.0",
|
||||||
"google-timezones-json": "^1.0.2",
|
"google-timezones-json": "^1.0.2",
|
||||||
"hls.js": "^0.12.4",
|
"hls.js": "^0.12.4",
|
||||||
"home-assistant-js-websocket": "^5.4.0",
|
"home-assistant-js-websocket": "^5.4.1",
|
||||||
"idb-keyval": "^3.2.0",
|
"idb-keyval": "^3.2.0",
|
||||||
"intl-messageformat": "^8.3.9",
|
"intl-messageformat": "^8.3.9",
|
||||||
"js-yaml": "^3.13.1",
|
"js-yaml": "^3.13.1",
|
||||||
|
@ -16,14 +16,31 @@ function today() {
|
|||||||
)}${String(now.getDate()).padStart(2, "0")}.0`;
|
)}${String(now.getDate()).padStart(2, "0")}.0`;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function auto(version) {
|
||||||
|
const todayVersion = today();
|
||||||
|
if (todayVersion !== version) {
|
||||||
|
return todayVersion;
|
||||||
|
}
|
||||||
|
return patch(version);
|
||||||
|
}
|
||||||
|
|
||||||
const methods = {
|
const methods = {
|
||||||
patch,
|
patch,
|
||||||
today,
|
today,
|
||||||
|
auto,
|
||||||
};
|
};
|
||||||
|
|
||||||
async function main(args) {
|
async function main(args) {
|
||||||
const method = args.length > 0 && methods[args[0]];
|
let method;
|
||||||
const commit = args.length > 1 && args[1] == "--commit";
|
let commit;
|
||||||
|
|
||||||
|
if (args.length === 0) {
|
||||||
|
method = methods.auto;
|
||||||
|
commit = true;
|
||||||
|
} else {
|
||||||
|
method = args.length > 0 && methods[args[0]];
|
||||||
|
commit = args.length > 1 && args[1] == "--commit";
|
||||||
|
}
|
||||||
|
|
||||||
if (!method) {
|
if (!method) {
|
||||||
console.error(
|
console.error(
|
||||||
|
2
setup.py
2
setup.py
@ -2,7 +2,7 @@ from setuptools import setup, find_packages
|
|||||||
|
|
||||||
setup(
|
setup(
|
||||||
name="home-assistant-frontend",
|
name="home-assistant-frontend",
|
||||||
version="20200626.0",
|
version="20200626.1",
|
||||||
description="The Home Assistant frontend",
|
description="The Home Assistant frontend",
|
||||||
url="https://github.com/home-assistant/home-assistant-polymer",
|
url="https://github.com/home-assistant/home-assistant-polymer",
|
||||||
author="The Home Assistant Authors",
|
author="The Home Assistant Authors",
|
||||||
|
@ -13,6 +13,7 @@ import {
|
|||||||
STATE_NOT_RUNNING,
|
STATE_NOT_RUNNING,
|
||||||
STATE_RUNNING,
|
STATE_RUNNING,
|
||||||
} from "home-assistant-js-websocket";
|
} from "home-assistant-js-websocket";
|
||||||
|
import { CustomPanelInfo } from "../data/panel_custom";
|
||||||
|
|
||||||
const CACHE_URL_PATHS = ["lovelace", "developer-tools"];
|
const CACHE_URL_PATHS = ["lovelace", "developer-tools"];
|
||||||
const COMPONENTS = {
|
const COMPONENTS = {
|
||||||
@ -159,7 +160,17 @@ class PartialPanelResolver extends HassRouterPage {
|
|||||||
if (document.hidden) {
|
if (document.hidden) {
|
||||||
this._hiddenTimeout = window.setTimeout(() => {
|
this._hiddenTimeout = window.setTimeout(() => {
|
||||||
this._hiddenTimeout = undefined;
|
this._hiddenTimeout = undefined;
|
||||||
if (this.lastChild) {
|
const curPanel = this.hass.panels[this._currentPage];
|
||||||
|
if (
|
||||||
|
this.lastChild &&
|
||||||
|
// iFrames will lose their state when disconnected
|
||||||
|
// Do not disconnect any iframe panel
|
||||||
|
curPanel.component_name !== "iframe" &&
|
||||||
|
// Do not disconnect any custom panel that embeds into iframe (ie hassio)
|
||||||
|
(curPanel.component_name !== "custom" ||
|
||||||
|
!(curPanel.config as CustomPanelInfo).config._panel_custom
|
||||||
|
.embed_iframe)
|
||||||
|
) {
|
||||||
this._disconnectedPanel = this.lastChild;
|
this._disconnectedPanel = this.lastChild;
|
||||||
this.removeChild(this.lastChild);
|
this.removeChild(this.lastChild);
|
||||||
}
|
}
|
||||||
|
@ -143,15 +143,17 @@ class CloudGoogleAssistant extends LitElement {
|
|||||||
</ha-formfield>
|
</ha-formfield>
|
||||||
${entity.might_2fa
|
${entity.might_2fa
|
||||||
? html`
|
? html`
|
||||||
<ha-switch
|
<ha-formfield
|
||||||
.entityId=${entity.entity_id}
|
.label=${this.hass!.localize(
|
||||||
.checked=${Boolean(config.disable_2fa)}
|
|
||||||
@change=${this._disable2FAChanged}
|
|
||||||
>
|
|
||||||
${this.hass!.localize(
|
|
||||||
"ui.panel.config.cloud.google.disable_2FA"
|
"ui.panel.config.cloud.google.disable_2FA"
|
||||||
)}
|
)}
|
||||||
</ha-switch>
|
>
|
||||||
|
<ha-switch
|
||||||
|
.entityId=${entity.entity_id}
|
||||||
|
.checked=${Boolean(config.disable_2fa)}
|
||||||
|
@change=${this._disable2FAChanged}
|
||||||
|
></ha-switch>
|
||||||
|
</ha-formfield>
|
||||||
`
|
`
|
||||||
: ""}
|
: ""}
|
||||||
</div>
|
</div>
|
||||||
@ -375,6 +377,9 @@ class CloudGoogleAssistant extends LitElement {
|
|||||||
state-info {
|
state-info {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
ha-formfield {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
ha-switch {
|
ha-switch {
|
||||||
padding: 8px 0;
|
padding: 8px 0;
|
||||||
}
|
}
|
||||||
|
@ -26,7 +26,8 @@ import { mdiCloudLock } from "@mdi/js";
|
|||||||
class HaConfigDashboard extends LitElement {
|
class HaConfigDashboard extends LitElement {
|
||||||
@property() public hass!: HomeAssistant;
|
@property() public hass!: HomeAssistant;
|
||||||
|
|
||||||
@property() public narrow!: boolean;
|
@property({ type: Boolean, reflect: true })
|
||||||
|
public narrow!: boolean;
|
||||||
|
|
||||||
@property() public isWide!: boolean;
|
@property() public isWide!: boolean;
|
||||||
|
|
||||||
@ -35,6 +36,96 @@ class HaConfigDashboard extends LitElement {
|
|||||||
@property() public showAdvanced!: boolean;
|
@property() public showAdvanced!: boolean;
|
||||||
|
|
||||||
protected render(): TemplateResult {
|
protected render(): TemplateResult {
|
||||||
|
const content = html` <ha-config-section
|
||||||
|
.narrow=${this.narrow}
|
||||||
|
.isWide=${this.isWide}
|
||||||
|
>
|
||||||
|
<div slot="header">
|
||||||
|
${this.hass.localize("ui.panel.config.header")}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div slot="introduction">
|
||||||
|
${this.hass.localize("ui.panel.config.introduction")}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
${this.cloudStatus && isComponentLoaded(this.hass, "cloud")
|
||||||
|
? html`
|
||||||
|
<ha-card>
|
||||||
|
<ha-config-navigation
|
||||||
|
.hass=${this.hass}
|
||||||
|
.showAdvanced=${this.showAdvanced}
|
||||||
|
.pages=${[
|
||||||
|
{
|
||||||
|
component: "cloud",
|
||||||
|
path: "/config/cloud",
|
||||||
|
translationKey: "ui.panel.config.cloud.caption",
|
||||||
|
info: this.cloudStatus,
|
||||||
|
iconPath: mdiCloudLock,
|
||||||
|
},
|
||||||
|
]}
|
||||||
|
></ha-config-navigation>
|
||||||
|
</ha-card>
|
||||||
|
`
|
||||||
|
: ""}
|
||||||
|
${Object.values(configSections).map(
|
||||||
|
(section) => html`
|
||||||
|
<ha-card>
|
||||||
|
<ha-config-navigation
|
||||||
|
.hass=${this.hass}
|
||||||
|
.showAdvanced=${this.showAdvanced}
|
||||||
|
.pages=${section}
|
||||||
|
></ha-config-navigation>
|
||||||
|
</ha-card>
|
||||||
|
`
|
||||||
|
)}
|
||||||
|
${isComponentLoaded(this.hass, "zha")
|
||||||
|
? html`
|
||||||
|
<div class="promo-advanced">
|
||||||
|
${this.hass.localize(
|
||||||
|
"ui.panel.config.integration_panel_move.missing_zha",
|
||||||
|
"integrations_page",
|
||||||
|
html`<a href="/config/integrations">
|
||||||
|
${this.hass.localize(
|
||||||
|
"ui.panel.config.integration_panel_move.link_integration_page"
|
||||||
|
)}
|
||||||
|
</a>`
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
|
`
|
||||||
|
: ""}
|
||||||
|
${isComponentLoaded(this.hass, "zwave")
|
||||||
|
? html`
|
||||||
|
<div class="promo-advanced">
|
||||||
|
${this.hass.localize(
|
||||||
|
"ui.panel.config.integration_panel_move.missing_zwave",
|
||||||
|
"integrations_page",
|
||||||
|
html`<a href="/config/integrations">
|
||||||
|
${this.hass.localize(
|
||||||
|
"ui.panel.config.integration_panel_move.link_integration_page"
|
||||||
|
)}
|
||||||
|
</a>`
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
|
`
|
||||||
|
: ""}
|
||||||
|
${!this.showAdvanced
|
||||||
|
? html`
|
||||||
|
<div class="promo-advanced">
|
||||||
|
${this.hass.localize("ui.panel.config.advanced_mode.hint_enable")}
|
||||||
|
<a href="/profile"
|
||||||
|
>${this.hass.localize(
|
||||||
|
"ui.panel.config.advanced_mode.link_profile_page"
|
||||||
|
)}</a
|
||||||
|
>.
|
||||||
|
</div>
|
||||||
|
`
|
||||||
|
: ""}
|
||||||
|
</ha-config-section>`;
|
||||||
|
|
||||||
|
if (!this.narrow) {
|
||||||
|
return content;
|
||||||
|
}
|
||||||
|
|
||||||
return html`
|
return html`
|
||||||
<app-header-layout has-scrolling-region>
|
<app-header-layout has-scrolling-region>
|
||||||
<app-header fixed slot="header">
|
<app-header fixed slot="header">
|
||||||
@ -46,90 +137,7 @@ class HaConfigDashboard extends LitElement {
|
|||||||
</app-toolbar>
|
</app-toolbar>
|
||||||
</app-header>
|
</app-header>
|
||||||
|
|
||||||
<ha-config-section .narrow=${this.narrow} .isWide=${this.isWide}>
|
${content}
|
||||||
<div slot="header">
|
|
||||||
${this.hass.localize("ui.panel.config.header")}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div slot="introduction">
|
|
||||||
${this.hass.localize("ui.panel.config.introduction")}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
${this.cloudStatus && isComponentLoaded(this.hass, "cloud")
|
|
||||||
? html`
|
|
||||||
<ha-card>
|
|
||||||
<ha-config-navigation
|
|
||||||
.hass=${this.hass}
|
|
||||||
.showAdvanced=${this.showAdvanced}
|
|
||||||
.pages=${[
|
|
||||||
{
|
|
||||||
component: "cloud",
|
|
||||||
path: "/config/cloud",
|
|
||||||
translationKey: "ui.panel.config.cloud.caption",
|
|
||||||
info: this.cloudStatus,
|
|
||||||
iconPath: mdiCloudLock,
|
|
||||||
},
|
|
||||||
]}
|
|
||||||
></ha-config-navigation>
|
|
||||||
</ha-card>
|
|
||||||
`
|
|
||||||
: ""}
|
|
||||||
${Object.values(configSections).map(
|
|
||||||
(section) => html`
|
|
||||||
<ha-card>
|
|
||||||
<ha-config-navigation
|
|
||||||
.hass=${this.hass}
|
|
||||||
.showAdvanced=${this.showAdvanced}
|
|
||||||
.pages=${section}
|
|
||||||
></ha-config-navigation>
|
|
||||||
</ha-card>
|
|
||||||
`
|
|
||||||
)}
|
|
||||||
${isComponentLoaded(this.hass, "zha")
|
|
||||||
? html`
|
|
||||||
<div class="promo-advanced">
|
|
||||||
${this.hass.localize(
|
|
||||||
"ui.panel.config.integration_panel_move.missing_zha",
|
|
||||||
"integrations_page",
|
|
||||||
html`<a href="/config/integrations">
|
|
||||||
${this.hass.localize(
|
|
||||||
"ui.panel.config.integration_panel_move.link_integration_page"
|
|
||||||
)}
|
|
||||||
</a>`
|
|
||||||
)}
|
|
||||||
</div>
|
|
||||||
`
|
|
||||||
: ""}
|
|
||||||
${isComponentLoaded(this.hass, "zwave")
|
|
||||||
? html`
|
|
||||||
<div class="promo-advanced">
|
|
||||||
${this.hass.localize(
|
|
||||||
"ui.panel.config.integration_panel_move.missing_zwave",
|
|
||||||
"integrations_page",
|
|
||||||
html`<a href="/config/integrations">
|
|
||||||
${this.hass.localize(
|
|
||||||
"ui.panel.config.integration_panel_move.link_integration_page"
|
|
||||||
)}
|
|
||||||
</a>`
|
|
||||||
)}
|
|
||||||
</div>
|
|
||||||
`
|
|
||||||
: ""}
|
|
||||||
${!this.showAdvanced
|
|
||||||
? html`
|
|
||||||
<div class="promo-advanced">
|
|
||||||
${this.hass.localize(
|
|
||||||
"ui.panel.config.advanced_mode.hint_enable"
|
|
||||||
)}
|
|
||||||
<a href="/profile"
|
|
||||||
>${this.hass.localize(
|
|
||||||
"ui.panel.config.advanced_mode.link_profile_page"
|
|
||||||
)}</a
|
|
||||||
>.
|
|
||||||
</div>
|
|
||||||
`
|
|
||||||
: ""}
|
|
||||||
</ha-config-section>
|
|
||||||
</app-header-layout>
|
</app-header-layout>
|
||||||
`;
|
`;
|
||||||
}
|
}
|
||||||
@ -145,6 +153,9 @@ class HaConfigDashboard extends LitElement {
|
|||||||
margin-bottom: 24px;
|
margin-bottom: 24px;
|
||||||
}
|
}
|
||||||
ha-config-section {
|
ha-config-section {
|
||||||
|
margin-top: -12px;
|
||||||
|
}
|
||||||
|
:host([narrow]) ha-config-section {
|
||||||
margin-top: -20px;
|
margin-top: -20px;
|
||||||
}
|
}
|
||||||
ha-card {
|
ha-card {
|
||||||
|
@ -232,6 +232,9 @@ class DialogMQTTDeviceDebugInfo extends LitElement {
|
|||||||
.triggerlistitem {
|
.triggerlistitem {
|
||||||
margin-bottom: 12px;
|
margin-bottom: 12px;
|
||||||
}
|
}
|
||||||
|
ha-formfield {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
`,
|
`,
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
@ -318,6 +318,9 @@ export class DialogLovelaceDashboardDetail extends LitElement {
|
|||||||
ha-switch {
|
ha-switch {
|
||||||
padding: 16px 0;
|
padding: 16px 0;
|
||||||
}
|
}
|
||||||
|
ha-formfield {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
`,
|
`,
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
@ -59,12 +59,14 @@ export class HaPanelLogbook extends LitElement {
|
|||||||
start.setHours(start.getHours() - 2);
|
start.setHours(start.getHours() - 2);
|
||||||
start.setMinutes(0);
|
start.setMinutes(0);
|
||||||
start.setSeconds(0);
|
start.setSeconds(0);
|
||||||
|
start.setMilliseconds(0);
|
||||||
this._startDate = start;
|
this._startDate = start;
|
||||||
|
|
||||||
const end = new Date();
|
const end = new Date();
|
||||||
end.setHours(end.getHours() + 1);
|
end.setHours(end.getHours() + 1);
|
||||||
end.setMinutes(0);
|
end.setMinutes(0);
|
||||||
end.setSeconds(0);
|
end.setSeconds(0);
|
||||||
|
end.setMilliseconds(0);
|
||||||
this._endDate = end;
|
this._endDate = end;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -136,19 +136,12 @@ export class HuiCardOptions extends LitElement {
|
|||||||
color: var(--disabled-text-color);
|
color: var(--disabled-text-color);
|
||||||
}
|
}
|
||||||
|
|
||||||
paper-item.header {
|
mwc-list-item {
|
||||||
color: var(--primary-text-color);
|
|
||||||
text-transform: uppercase;
|
|
||||||
font-weight: 500;
|
|
||||||
font-size: 14px;
|
|
||||||
}
|
|
||||||
|
|
||||||
paper-item {
|
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
}
|
}
|
||||||
|
|
||||||
paper-item.delete-item {
|
mwc-list-item.delete-item {
|
||||||
color: var(--error-color);
|
color: var(--error-color);
|
||||||
}
|
}
|
||||||
`;
|
`;
|
||||||
|
@ -209,6 +209,7 @@ export class HuiDialogEditCard extends LitElement {
|
|||||||
<ha-circular-progress
|
<ha-circular-progress
|
||||||
active
|
active
|
||||||
alt="Saving"
|
alt="Saving"
|
||||||
|
size="small"
|
||||||
></ha-circular-progress>
|
></ha-circular-progress>
|
||||||
`
|
`
|
||||||
: this.hass!.localize("ui.common.save")}
|
: this.hass!.localize("ui.common.save")}
|
||||||
@ -291,8 +292,6 @@ export class HuiDialogEditCard extends LitElement {
|
|||||||
}
|
}
|
||||||
|
|
||||||
mwc-button ha-circular-progress {
|
mwc-button ha-circular-progress {
|
||||||
width: 14px;
|
|
||||||
height: 14px;
|
|
||||||
margin-right: 20px;
|
margin-right: 20px;
|
||||||
}
|
}
|
||||||
.hidden {
|
.hidden {
|
||||||
|
@ -107,11 +107,11 @@ export class HuiButtonCardEditor extends LitElement
|
|||||||
${configElementStyle}
|
${configElementStyle}
|
||||||
<div class="card-config">
|
<div class="card-config">
|
||||||
<ha-entity-picker
|
<ha-entity-picker
|
||||||
.label="${this.hass.localize(
|
.label="${this.hass.localize(
|
||||||
"ui.panel.lovelace.editor.card.generic.entity"
|
"ui.panel.lovelace.editor.card.generic.entity"
|
||||||
)} (${this.hass.localize(
|
)} (${this.hass.localize(
|
||||||
"ui.panel.lovelace.editor.card.config.optional"
|
"ui.panel.lovelace.editor.card.config.optional"
|
||||||
)})"
|
)})"
|
||||||
.hass=${this.hass}
|
.hass=${this.hass}
|
||||||
.value="${this._entity}"
|
.value="${this._entity}"
|
||||||
.configValue=${"entity"}
|
.configValue=${"entity"}
|
||||||
@ -120,11 +120,11 @@ export class HuiButtonCardEditor extends LitElement
|
|||||||
></ha-entity-picker>
|
></ha-entity-picker>
|
||||||
<div class="side-by-side">
|
<div class="side-by-side">
|
||||||
<paper-input
|
<paper-input
|
||||||
.label="${this.hass.localize(
|
.label="${this.hass.localize(
|
||||||
"ui.panel.lovelace.editor.card.generic.name"
|
"ui.panel.lovelace.editor.card.generic.name"
|
||||||
)} (${this.hass.localize(
|
)} (${this.hass.localize(
|
||||||
"ui.panel.lovelace.editor.card.config.optional"
|
"ui.panel.lovelace.editor.card.config.optional"
|
||||||
)})"
|
)})"
|
||||||
.value="${this._name}"
|
.value="${this._name}"
|
||||||
.configValue="${"name"}"
|
.configValue="${"name"}"
|
||||||
@value-changed="${this._valueChanged}"
|
@value-changed="${this._valueChanged}"
|
||||||
@ -133,49 +133,51 @@ export class HuiButtonCardEditor extends LitElement
|
|||||||
.label="${this.hass.localize(
|
.label="${this.hass.localize(
|
||||||
"ui.panel.lovelace.editor.card.generic.icon"
|
"ui.panel.lovelace.editor.card.generic.icon"
|
||||||
)} (${this.hass.localize(
|
)} (${this.hass.localize(
|
||||||
"ui.panel.lovelace.editor.card.config.optional"
|
"ui.panel.lovelace.editor.card.config.optional"
|
||||||
)})"
|
)})"
|
||||||
.value=${this._icon}
|
.value=${this._icon}
|
||||||
.placeholder=${
|
.placeholder=${this._icon ||
|
||||||
this._icon || stateIcon(this.hass.states[this._entity])
|
stateIcon(this.hass.states[this._entity])}
|
||||||
}
|
|
||||||
.configValue=${"icon"}
|
.configValue=${"icon"}
|
||||||
@value-changed=${this._valueChanged}
|
@value-changed=${this._valueChanged}
|
||||||
></ha-icon-input>
|
></ha-icon-input>
|
||||||
</div>
|
</div>
|
||||||
<div class="side-by-side">
|
<div class="side-by-side">
|
||||||
<ha-formfield .label=${this.hass.localize(
|
<ha-formfield
|
||||||
"ui.panel.lovelace.editor.card.generic.show_name"
|
.label=${this.hass.localize(
|
||||||
)}>
|
"ui.panel.lovelace.editor.card.generic.show_name"
|
||||||
<ha-switch
|
)}
|
||||||
.checked="${this._config!.show_name !== false}"
|
|
||||||
.configValue="${"show_name"}"
|
|
||||||
@change="${this._valueChanged}"
|
|
||||||
></ha-switch
|
|
||||||
>
|
>
|
||||||
</ha-formfield>
|
<ha-switch
|
||||||
<ha-formfield .label=${this.hass.localize(
|
.checked="${this._config!.show_name !== false}"
|
||||||
"ui.panel.lovelace.editor.card.generic.show_icon"
|
.configValue="${"show_name"}"
|
||||||
)}>
|
@change="${this._valueChanged}"
|
||||||
<ha-switch
|
></ha-switch>
|
||||||
.checked="${this._config!.show_icon !== false}"
|
</ha-formfield>
|
||||||
.configValue="${"show_icon"}"
|
<ha-formfield
|
||||||
@change="${this._valueChanged}"
|
.label=${this.hass.localize(
|
||||||
></ha-switch
|
"ui.panel.lovelace.editor.card.generic.show_icon"
|
||||||
></ha-formfield>
|
)}
|
||||||
|
>
|
||||||
|
<ha-switch
|
||||||
|
.checked="${this._config!.show_icon !== false}"
|
||||||
|
.configValue="${"show_icon"}"
|
||||||
|
@change="${this._valueChanged}"
|
||||||
|
></ha-switch>
|
||||||
|
</ha-formfield>
|
||||||
</div>
|
</div>
|
||||||
<div class="side-by-side">
|
<div class="side-by-side">
|
||||||
<paper-input
|
<paper-input
|
||||||
.label="${this.hass.localize(
|
.label="${this.hass.localize(
|
||||||
"ui.panel.lovelace.editor.card.generic.icon_height"
|
"ui.panel.lovelace.editor.card.generic.icon_height"
|
||||||
)} (${this.hass.localize(
|
)} (${this.hass.localize(
|
||||||
"ui.panel.lovelace.editor.card.config.optional"
|
"ui.panel.lovelace.editor.card.config.optional"
|
||||||
)})"
|
)})"
|
||||||
.value="${this._icon_height}"
|
.value="${this._icon_height}"
|
||||||
.configValue="${"icon_height"}"
|
.configValue="${"icon_height"}"
|
||||||
@value-changed="${this._valueChanged}"
|
@value-changed="${this._valueChanged}"
|
||||||
type="number"
|
type="number"
|
||||||
><div class="suffix" slot="suffix">px</div>
|
><div class="suffix" slot="suffix">px</div>
|
||||||
</paper-input>
|
</paper-input>
|
||||||
<hui-theme-select-editor
|
<hui-theme-select-editor
|
||||||
.hass=${this.hass}
|
.hass=${this.hass}
|
||||||
@ -183,16 +185,14 @@ export class HuiButtonCardEditor extends LitElement
|
|||||||
.configValue="${"theme"}"
|
.configValue="${"theme"}"
|
||||||
@value-changed="${this._valueChanged}"
|
@value-changed="${this._valueChanged}"
|
||||||
></hui-theme-select-editor>
|
></hui-theme-select-editor>
|
||||||
</paper-input>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="side-by-side">
|
<div class="side-by-side">
|
||||||
<hui-action-editor
|
<hui-action-editor
|
||||||
.label="${this.hass.localize(
|
.label="${this.hass.localize(
|
||||||
"ui.panel.lovelace.editor.card.generic.tap_action"
|
"ui.panel.lovelace.editor.card.generic.tap_action"
|
||||||
)} (${this.hass.localize(
|
)} (${this.hass.localize(
|
||||||
"ui.panel.lovelace.editor.card.config.optional"
|
"ui.panel.lovelace.editor.card.config.optional"
|
||||||
)})"
|
)})"
|
||||||
.hass=${this.hass}
|
.hass=${this.hass}
|
||||||
.config="${this._tap_action}"
|
.config="${this._tap_action}"
|
||||||
.actions="${actions}"
|
.actions="${actions}"
|
||||||
@ -200,11 +200,11 @@ export class HuiButtonCardEditor extends LitElement
|
|||||||
@action-changed="${this._valueChanged}"
|
@action-changed="${this._valueChanged}"
|
||||||
></hui-action-editor>
|
></hui-action-editor>
|
||||||
<hui-action-editor
|
<hui-action-editor
|
||||||
.label="${this.hass.localize(
|
.label="${this.hass.localize(
|
||||||
"ui.panel.lovelace.editor.card.generic.hold_action"
|
"ui.panel.lovelace.editor.card.generic.hold_action"
|
||||||
)} (${this.hass.localize(
|
)} (${this.hass.localize(
|
||||||
"ui.panel.lovelace.editor.card.config.optional"
|
"ui.panel.lovelace.editor.card.config.optional"
|
||||||
)})"
|
)})"
|
||||||
.hass=${this.hass}
|
.hass=${this.hass}
|
||||||
.config="${this._hold_action}"
|
.config="${this._hold_action}"
|
||||||
.actions="${actions}"
|
.actions="${actions}"
|
||||||
|
@ -133,11 +133,11 @@ export class HuiViewEditor extends LitElement {
|
|||||||
@change=${this._valueChanged}
|
@change=${this._valueChanged}
|
||||||
></ha-switch
|
></ha-switch
|
||||||
></ha-formfield>
|
></ha-formfield>
|
||||||
<span class="panel"
|
<span class="panel">
|
||||||
>${this.hass.localize(
|
${this.hass.localize(
|
||||||
"ui.panel.lovelace.editor.view.panel_mode.description"
|
"ui.panel.lovelace.editor.view.panel_mode.description"
|
||||||
)}</span
|
)}
|
||||||
>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
`;
|
`;
|
||||||
}
|
}
|
||||||
@ -181,6 +181,9 @@ export class HuiViewEditor extends LitElement {
|
|||||||
.panel {
|
.panel {
|
||||||
color: var(--secondary-text-color);
|
color: var(--secondary-text-color);
|
||||||
}
|
}
|
||||||
|
ha-formfield {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
`;
|
`;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -527,7 +527,7 @@
|
|||||||
},
|
},
|
||||||
"date-range-picker": {
|
"date-range-picker": {
|
||||||
"end_date": "Fecha de finalización",
|
"end_date": "Fecha de finalización",
|
||||||
"select": "Seleccione",
|
"select": "Seleccionar",
|
||||||
"start_date": "Fecha de inicio"
|
"start_date": "Fecha de inicio"
|
||||||
},
|
},
|
||||||
"device-picker": {
|
"device-picker": {
|
||||||
|
@ -2198,6 +2198,10 @@
|
|||||||
"description": "La scheda Pila Orizzontale consente di raggruppare insieme più schede, in modo che siano sempre l'una accanto all'altra nello spazio di una colonna.",
|
"description": "La scheda Pila Orizzontale consente di raggruppare insieme più schede, in modo che siano sempre l'una accanto all'altra nello spazio di una colonna.",
|
||||||
"name": "Pila orizzontale"
|
"name": "Pila orizzontale"
|
||||||
},
|
},
|
||||||
|
"humidifier": {
|
||||||
|
"description": "La scheda Umidificatore fornisce il controllo della tua entità umidificatore, consentendo di modificare l'umidità e la modalità dell'entità.",
|
||||||
|
"name": "Umidificatore"
|
||||||
|
},
|
||||||
"iframe": {
|
"iframe": {
|
||||||
"description": "La scheda Pagina Web consente di incorporare la pagina Web preferita direttamente in Home Assistant.",
|
"description": "La scheda Pagina Web consente di incorporare la pagina Web preferita direttamente in Home Assistant.",
|
||||||
"name": "Pagina web"
|
"name": "Pagina web"
|
||||||
|
@ -48,6 +48,19 @@
|
|||||||
"none": "Geen",
|
"none": "Geen",
|
||||||
"sleep": "Slapen"
|
"sleep": "Slapen"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"humidifier": {
|
||||||
|
"mode": {
|
||||||
|
"auto": "Auto",
|
||||||
|
"away": "Afwezig",
|
||||||
|
"baby": "Baby",
|
||||||
|
"boost": "Boost",
|
||||||
|
"comfort": "Comfort",
|
||||||
|
"eco": "Eco",
|
||||||
|
"home": "Thuis",
|
||||||
|
"normal": "Normaal",
|
||||||
|
"sleep": "Slapen"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"state_badge": {
|
"state_badge": {
|
||||||
@ -388,6 +401,12 @@
|
|||||||
"reverse": "Omkeren",
|
"reverse": "Omkeren",
|
||||||
"speed": "Snelheid"
|
"speed": "Snelheid"
|
||||||
},
|
},
|
||||||
|
"humidifier": {
|
||||||
|
"humidity": "Doel luchtvochtigheid",
|
||||||
|
"mode": "Modus",
|
||||||
|
"on_entity": "{name} aan",
|
||||||
|
"target_humidity_entity": "{name} doel luchtvochtigheid"
|
||||||
|
},
|
||||||
"light": {
|
"light": {
|
||||||
"brightness": "Helderheid",
|
"brightness": "Helderheid",
|
||||||
"color_temperature": "Kleurtemperatuur",
|
"color_temperature": "Kleurtemperatuur",
|
||||||
@ -506,6 +525,11 @@
|
|||||||
"clear": "Wis",
|
"clear": "Wis",
|
||||||
"show_areas": "Toon gebieden"
|
"show_areas": "Toon gebieden"
|
||||||
},
|
},
|
||||||
|
"date-range-picker": {
|
||||||
|
"end_date": "Einddatum",
|
||||||
|
"select": "Selecteer",
|
||||||
|
"start_date": "Startdatum"
|
||||||
|
},
|
||||||
"device-picker": {
|
"device-picker": {
|
||||||
"clear": "Wis",
|
"clear": "Wis",
|
||||||
"device": "Apparaat",
|
"device": "Apparaat",
|
||||||
@ -695,6 +719,7 @@
|
|||||||
"zha_device_info": {
|
"zha_device_info": {
|
||||||
"buttons": {
|
"buttons": {
|
||||||
"add": "Apparaten toevoegen via dit apparaat",
|
"add": "Apparaten toevoegen via dit apparaat",
|
||||||
|
"clusters": "Clusters beheren",
|
||||||
"reconfigure": "Apparaat opnieuw configureren",
|
"reconfigure": "Apparaat opnieuw configureren",
|
||||||
"remove": "Verwijder apparaat",
|
"remove": "Verwijder apparaat",
|
||||||
"zigbee_information": "Zigbee-apparaathandtekening"
|
"zigbee_information": "Zigbee-apparaathandtekening"
|
||||||
@ -744,7 +769,7 @@
|
|||||||
"connection_lost": "Verbinding verbroken. Opnieuw verbinden...",
|
"connection_lost": "Verbinding verbroken. Opnieuw verbinden...",
|
||||||
"service_call_failed": "Kan service {service} niet aanroepen",
|
"service_call_failed": "Kan service {service} niet aanroepen",
|
||||||
"started": "Home Assistant is gestart!",
|
"started": "Home Assistant is gestart!",
|
||||||
"starting": "Home Assistant is aan het opstarten, nog niet alles is beschikbaar tot dit is voltooid.",
|
"starting": "Home Assistant is aan het opstarten. Gedurende het opstarten zal niet alles beschikbaar zijn.",
|
||||||
"triggered": "Geactiveerd {name}"
|
"triggered": "Geactiveerd {name}"
|
||||||
},
|
},
|
||||||
"panel": {
|
"panel": {
|
||||||
@ -1391,6 +1416,11 @@
|
|||||||
"system_health_error": "De systeemstatus component is niet geladen. Voeg ' system_health: ' toe aan het configuratiebestand.",
|
"system_health_error": "De systeemstatus component is niet geladen. Voeg ' system_health: ' toe aan het configuratiebestand.",
|
||||||
"title": "Info"
|
"title": "Info"
|
||||||
},
|
},
|
||||||
|
"integration_panel_move": {
|
||||||
|
"link_integration_page": "integraties pagina",
|
||||||
|
"missing_zha": "Mis je de ZHA configuratie? Dit is verplaatst naar de ZHA integratie op de {integrations_page}.",
|
||||||
|
"missing_zwave": "Mis je de Z-Wave configuratie? Dit is verplaatst naar de Z-Wave integratie op de {integrations_page}."
|
||||||
|
},
|
||||||
"integrations": {
|
"integrations": {
|
||||||
"add_integration": "Integratie toevoegen",
|
"add_integration": "Integratie toevoegen",
|
||||||
"caption": "Integraties",
|
"caption": "Integraties",
|
||||||
@ -1553,6 +1583,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"mqtt": {
|
"mqtt": {
|
||||||
|
"button": "Configureer",
|
||||||
"description_listen": "Luisteren naar onderwerp",
|
"description_listen": "Luisteren naar onderwerp",
|
||||||
"description_publish": "Publiceer een pakket",
|
"description_publish": "Publiceer een pakket",
|
||||||
"listening_to": "Luisteren naar",
|
"listening_to": "Luisteren naar",
|
||||||
@ -1673,6 +1704,11 @@
|
|||||||
"core": "Herlaad locatie en aanpassingen",
|
"core": "Herlaad locatie en aanpassingen",
|
||||||
"group": "Herlaad groepen",
|
"group": "Herlaad groepen",
|
||||||
"heading": "Configuratie herladen",
|
"heading": "Configuratie herladen",
|
||||||
|
"input_boolean": "Herlaad input booleans",
|
||||||
|
"input_datetime": "Herlaad input date times",
|
||||||
|
"input_number": "Herlaad input numbers",
|
||||||
|
"input_select": "Herlaad input selects",
|
||||||
|
"input_text": "Herlaad input texts",
|
||||||
"introduction": "Sommige delen van Home Assistant kunnen opnieuw worden geladen zonder dat een herstart vereist is. Als je herladen gebruikt, wordt de huidige configuratie leeggemaakt en wordt de nieuwe geladen.",
|
"introduction": "Sommige delen van Home Assistant kunnen opnieuw worden geladen zonder dat een herstart vereist is. Als je herladen gebruikt, wordt de huidige configuratie leeggemaakt en wordt de nieuwe geladen.",
|
||||||
"person": "Herlaad personen",
|
"person": "Herlaad personen",
|
||||||
"scene": "Herlaad scenes",
|
"scene": "Herlaad scenes",
|
||||||
@ -1732,13 +1768,15 @@
|
|||||||
"system": "Systeem"
|
"system": "Systeem"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"users_privileges_note": "Gebruikersgroepen zijn nog werk in uitvoering. De gebruiker kan de instantie niet beheren via de interface. We zijn bezig met het uitvoeren van een audit om verzekerd te zijn dat de management API-eindpunten toegang voor beheerders correct beperken."
|
"users_privileges_note": "Gebruikersgroepen zijn nog in ontwikkeling. De gebruiker kan de instantie niet beheren via de interface. We zijn bezig met het controleren van de API-eindpunten toegang voor beheerders."
|
||||||
},
|
},
|
||||||
"zha": {
|
"zha": {
|
||||||
"add_device_page": {
|
"add_device_page": {
|
||||||
"discovered_text": "Apparaten zullen hier verschijnen zodra ze zijn ontdekt.",
|
"discovered_text": "Apparaten zullen hier verschijnen zodra ze zijn ontdekt.",
|
||||||
"discovery_text": "Gevonden apparaten worden hier weergegeven. Volg de instructies voor je apparaat of apparaten en plaats het apparaat of de apparaten in de koppelingsmodus.",
|
"discovery_text": "Gevonden apparaten worden hier weergegeven. Volg de instructies voor je apparaat of apparaten en plaats het apparaat of de apparaten in de koppelingsmodus.",
|
||||||
"header": "Zigbee Home Automation - Apparaten toevoegen",
|
"header": "Zigbee Home Automation - Apparaten toevoegen",
|
||||||
|
"no_devices_found": "Geen apparaten gevonden, zorg ervoor dat ze in de koppelingsmodus staan en dat gedurende het ontdekken ze actief zijn.",
|
||||||
|
"pairing_mode": "Zorg ervoor dat de apparaten in de koppelingsmodus staan. Kijk in de instructies van het apparaat hoe dit moet.",
|
||||||
"search_again": "Opnieuw zoeken",
|
"search_again": "Opnieuw zoeken",
|
||||||
"spinner": "Zoeken naar ZHA Zigbee-apparaten ..."
|
"spinner": "Zoeken naar ZHA Zigbee-apparaten ..."
|
||||||
},
|
},
|
||||||
@ -2001,11 +2039,23 @@
|
|||||||
},
|
},
|
||||||
"history": {
|
"history": {
|
||||||
"period": "Periode",
|
"period": "Periode",
|
||||||
|
"ranges": {
|
||||||
|
"last_week": "Vorige week",
|
||||||
|
"this_week": "Deze week",
|
||||||
|
"today": "Vandaag",
|
||||||
|
"yesterday": "Gisteren"
|
||||||
|
},
|
||||||
"showing_entries": "Toon items voor"
|
"showing_entries": "Toon items voor"
|
||||||
},
|
},
|
||||||
"logbook": {
|
"logbook": {
|
||||||
"entries_not_found": "Geen logboekvermeldingen gevonden.",
|
"entries_not_found": "Geen logboekvermeldingen gevonden.",
|
||||||
"period": "Periode",
|
"period": "Periode",
|
||||||
|
"ranges": {
|
||||||
|
"last_week": "Vorige week",
|
||||||
|
"this_week": "Deze week",
|
||||||
|
"today": "Vandaag",
|
||||||
|
"yesterday": "Gisteren"
|
||||||
|
},
|
||||||
"showing_entries": "Toont gegevens van"
|
"showing_entries": "Toont gegevens van"
|
||||||
},
|
},
|
||||||
"lovelace": {
|
"lovelace": {
|
||||||
@ -2145,6 +2195,10 @@
|
|||||||
"description": "Met de Horizontal Stack-kaart kun je meerdere kaarten op elkaar stapelen, zodat ze altijd naast elkaar in de ruimte van één kolom zitten.",
|
"description": "Met de Horizontal Stack-kaart kun je meerdere kaarten op elkaar stapelen, zodat ze altijd naast elkaar in de ruimte van één kolom zitten.",
|
||||||
"name": "Horizontale stapel"
|
"name": "Horizontale stapel"
|
||||||
},
|
},
|
||||||
|
"humidifier": {
|
||||||
|
"description": "De luchtbevochtiger-kaart geeft controle over de entiteit van de luchtbevochtiger. Hiermee kun je de vochtigheid en de modus van de entiteit wijzigen.",
|
||||||
|
"name": "Bevochtiger"
|
||||||
|
},
|
||||||
"iframe": {
|
"iframe": {
|
||||||
"description": "Met de Webpage-kaart kunt u uw favoriete webpagina rechtstreeks in de Home Assistant insluiten.",
|
"description": "Met de Webpage-kaart kunt u uw favoriete webpagina rechtstreeks in de Home Assistant insluiten.",
|
||||||
"name": "Webpagina"
|
"name": "Webpagina"
|
||||||
|
@ -48,6 +48,19 @@
|
|||||||
"none": "無",
|
"none": "無",
|
||||||
"sleep": "睡眠"
|
"sleep": "睡眠"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"humidifier": {
|
||||||
|
"mode": {
|
||||||
|
"auto": "自動模式",
|
||||||
|
"away": "離家模式",
|
||||||
|
"baby": "孩童模式",
|
||||||
|
"boost": "全速模式",
|
||||||
|
"comfort": "舒適模式",
|
||||||
|
"eco": "節能模式",
|
||||||
|
"home": "居家模式",
|
||||||
|
"normal": "一般模式",
|
||||||
|
"sleep": "睡眠模式"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"state_badge": {
|
"state_badge": {
|
||||||
@ -388,6 +401,12 @@
|
|||||||
"reverse": "反向",
|
"reverse": "反向",
|
||||||
"speed": "風速"
|
"speed": "風速"
|
||||||
},
|
},
|
||||||
|
"humidifier": {
|
||||||
|
"humidity": "設定濕度",
|
||||||
|
"mode": "模式",
|
||||||
|
"on_entity": "{name} 已開啟",
|
||||||
|
"target_humidity_entity": "{name} 設定濕度"
|
||||||
|
},
|
||||||
"light": {
|
"light": {
|
||||||
"brightness": "亮度",
|
"brightness": "亮度",
|
||||||
"color_temperature": "色溫",
|
"color_temperature": "色溫",
|
||||||
@ -2198,6 +2217,10 @@
|
|||||||
"description": "水平排列面板可供將多個面板排列、同時顯示。",
|
"description": "水平排列面板可供將多個面板排列、同時顯示。",
|
||||||
"name": "水平排列面板"
|
"name": "水平排列面板"
|
||||||
},
|
},
|
||||||
|
"humidifier": {
|
||||||
|
"description": "加濕器面板可供控制加濕物件、可允許變更濕度與模式。",
|
||||||
|
"name": "加濕器"
|
||||||
|
},
|
||||||
"iframe": {
|
"iframe": {
|
||||||
"description": "網頁面板可供於 Home Assistant 嵌入喜愛的網頁。",
|
"description": "網頁面板可供於 Home Assistant 嵌入喜愛的網頁。",
|
||||||
"name": "網頁面板"
|
"name": "網頁面板"
|
||||||
|
@ -6683,10 +6683,10 @@ hmac-drbg@^1.0.0:
|
|||||||
minimalistic-assert "^1.0.0"
|
minimalistic-assert "^1.0.0"
|
||||||
minimalistic-crypto-utils "^1.0.1"
|
minimalistic-crypto-utils "^1.0.1"
|
||||||
|
|
||||||
home-assistant-js-websocket@^5.4.0:
|
home-assistant-js-websocket@^5.4.1:
|
||||||
version "5.4.0"
|
version "5.4.1"
|
||||||
resolved "https://registry.yarnpkg.com/home-assistant-js-websocket/-/home-assistant-js-websocket-5.4.0.tgz#637321ba47138562716290404adfa921d8d525dc"
|
resolved "https://registry.yarnpkg.com/home-assistant-js-websocket/-/home-assistant-js-websocket-5.4.1.tgz#3f677391b38e4feb24f1670e3a9b695767332a51"
|
||||||
integrity sha512-/sMJZwKTkoDvCljBTwGRiZy67ODZua/xYNH61n4zmX3Lcgb1D/zRDiJtwvW+g//BO/RAsNR5GulbUOdDrqmQlA==
|
integrity sha512-FTVoO5yMSa2dy1ffZDvJy/r79VTjwFOzyP/bPld5lDHKbNyXC8wgqpn8Kdf5ZQISYJf1T1dfH+v2NYEngn5NgQ==
|
||||||
|
|
||||||
homedir-polyfill@^1.0.1:
|
homedir-polyfill@^1.0.1:
|
||||||
version "1.0.3"
|
version "1.0.3"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user