Update lint rules (#9563)
Updated deps Added `unused-imports`, prefer arrow, and import order
This commit is contained in:
parent
12f7366968
commit
e797c01761
@ -35,55 +35,51 @@
|
||||
"es6": true
|
||||
},
|
||||
"rules": {
|
||||
"class-methods-use-this": 0,
|
||||
"new-cap": 0,
|
||||
"prefer-template": 0,
|
||||
"object-shorthand": 0,
|
||||
"func-names": 0,
|
||||
"prefer-arrow-callback": 0,
|
||||
"no-underscore-dangle": 0,
|
||||
"strict": 0,
|
||||
"prefer-spread": 0,
|
||||
"no-plusplus": 0,
|
||||
"no-bitwise": 2,
|
||||
"comma-dangle": 0,
|
||||
"vars-on-top": 0,
|
||||
"no-continue": 0,
|
||||
"no-param-reassign": 0,
|
||||
"no-multi-assign": 0,
|
||||
"no-console": 2,
|
||||
"radix": 0,
|
||||
"no-alert": 0,
|
||||
"no-return-await": 0,
|
||||
"no-nested-ternary": 0,
|
||||
"prefer-destructuring": 0,
|
||||
"class-methods-use-this": "off",
|
||||
"new-cap": "off",
|
||||
"prefer-template": "off",
|
||||
"object-shorthand": "off",
|
||||
"func-names": "off",
|
||||
"no-underscore-dangle": "off",
|
||||
"strict": "off",
|
||||
"no-plusplus": "off",
|
||||
"no-bitwise": "error",
|
||||
"comma-dangle": "off",
|
||||
"vars-on-top": "off",
|
||||
"no-continue": "off",
|
||||
"no-param-reassign": "off",
|
||||
"no-multi-assign": "off",
|
||||
"no-console": "error",
|
||||
"radix": "off",
|
||||
"no-alert": "off",
|
||||
"no-nested-ternary": "off",
|
||||
"prefer-destructuring": "off",
|
||||
"no-restricted-globals": [2, "event"],
|
||||
"prefer-promise-reject-errors": 0,
|
||||
"import/order": 0,
|
||||
"import/prefer-default-export": 0,
|
||||
"import/no-unresolved": 0,
|
||||
"import/no-cycle": 0,
|
||||
"prefer-promise-reject-errors": "off",
|
||||
"import/prefer-default-export": "off",
|
||||
"import/no-default-export": "off",
|
||||
"import/no-unresolved": "off",
|
||||
"import/no-cycle": "off",
|
||||
"import/extensions": [
|
||||
2,
|
||||
"error",
|
||||
"ignorePackages",
|
||||
{ "ts": "never", "js": "never" }
|
||||
],
|
||||
"no-restricted-syntax": ["error", "LabeledStatement", "WithStatement"],
|
||||
"object-curly-newline": 0,
|
||||
"default-case": 0,
|
||||
"wc/no-self-class": 0,
|
||||
"no-shadow": 0,
|
||||
"@typescript-eslint/camelcase": 0,
|
||||
"@typescript-eslint/ban-ts-comment": 0,
|
||||
"@typescript-eslint/no-use-before-define": 0,
|
||||
"@typescript-eslint/no-non-null-assertion": 0,
|
||||
"@typescript-eslint/no-explicit-any": 0,
|
||||
"@typescript-eslint/no-unused-vars": 0,
|
||||
"@typescript-eslint/explicit-function-return-type": 0,
|
||||
"@typescript-eslint/explicit-module-boundary-types": 0,
|
||||
"object-curly-newline": "off",
|
||||
"default-case": "off",
|
||||
"wc/no-self-class": "off",
|
||||
"no-shadow": "off",
|
||||
"@typescript-eslint/camelcase": "off",
|
||||
"@typescript-eslint/ban-ts-comment": "off",
|
||||
"@typescript-eslint/no-use-before-define": "off",
|
||||
"@typescript-eslint/no-non-null-assertion": "off",
|
||||
"@typescript-eslint/no-explicit-any": "off",
|
||||
"@typescript-eslint/explicit-function-return-type": "off",
|
||||
"@typescript-eslint/explicit-module-boundary-types": "off",
|
||||
"@typescript-eslint/no-shadow": ["error"],
|
||||
"@typescript-eslint/naming-convention": [
|
||||
0,
|
||||
"off",
|
||||
{
|
||||
"selector": "default",
|
||||
"format": ["camelCase", "snake_case"],
|
||||
@ -101,9 +97,21 @@
|
||||
"format": ["PascalCase"]
|
||||
}
|
||||
],
|
||||
"lit/attribute-value-entities": 0
|
||||
"@typescript-eslint/no-unused-vars": "off",
|
||||
"unused-imports/no-unused-vars": [
|
||||
"error",
|
||||
{
|
||||
"vars": "all",
|
||||
"varsIgnorePattern": "^_",
|
||||
"args": "after-used",
|
||||
"argsIgnorePattern": "^_",
|
||||
"ignoreRestSiblings": true
|
||||
}
|
||||
],
|
||||
"unused-imports/no-unused-imports": "error",
|
||||
"lit/attribute-value-entities": "off"
|
||||
},
|
||||
"plugins": ["disable", "import", "lit", "prettier", "@typescript-eslint"],
|
||||
"plugins": ["disable", "unused-imports"],
|
||||
"processor": "disable/disable",
|
||||
"ignorePatterns": ["src/resources/lit-virtualizer/*"]
|
||||
}
|
||||
|
||||
@ -5,8 +5,8 @@ import {
|
||||
import { castContext } from "../cast_context";
|
||||
|
||||
export const castDemoLovelace: () => LovelaceConfig = () => {
|
||||
const touchSupported = castContext.getDeviceCapabilities()
|
||||
.touch_input_supported;
|
||||
const touchSupported =
|
||||
castContext.getDeviceCapabilities().touch_input_supported;
|
||||
return {
|
||||
views: [
|
||||
{
|
||||
|
||||
@ -113,8 +113,7 @@ export const demoLovelaceArsaboo: DemoConfig["lovelace"] = (localize) => ({
|
||||
on: "/assets/arsaboo/icons/light_bulb_on.png",
|
||||
},
|
||||
state_filter: {
|
||||
on:
|
||||
"brightness(130%) saturate(1.5) drop-shadow(0px 0px 10px gold)",
|
||||
on: "brightness(130%) saturate(1.5) drop-shadow(0px 0px 10px gold)",
|
||||
off: "brightness(80%) saturate(0.8)",
|
||||
},
|
||||
style: {
|
||||
@ -196,8 +195,7 @@ export const demoLovelaceArsaboo: DemoConfig["lovelace"] = (localize) => ({
|
||||
on: "/assets/arsaboo/icons/light_bulb_on.png",
|
||||
},
|
||||
state_filter: {
|
||||
on:
|
||||
"brightness(130%) saturate(1.5) drop-shadow(0px 0px 10px gold)",
|
||||
on: "brightness(130%) saturate(1.5) drop-shadow(0px 0px 10px gold)",
|
||||
off: "brightness(80%) saturate(0.8)",
|
||||
},
|
||||
style: {
|
||||
@ -277,8 +275,7 @@ export const demoLovelaceArsaboo: DemoConfig["lovelace"] = (localize) => ({
|
||||
on: "/assets/arsaboo/icons/light_bulb_on.png",
|
||||
},
|
||||
state_filter: {
|
||||
on:
|
||||
"brightness(130%) saturate(1.5) drop-shadow(0px 0px 10px gold)",
|
||||
on: "brightness(130%) saturate(1.5) drop-shadow(0px 0px 10px gold)",
|
||||
off: "brightness(80%) saturate(0.8)",
|
||||
},
|
||||
style: {
|
||||
@ -315,8 +312,7 @@ export const demoLovelaceArsaboo: DemoConfig["lovelace"] = (localize) => ({
|
||||
on: "/assets/arsaboo/icons/light_bulb_on.png",
|
||||
},
|
||||
state_filter: {
|
||||
on:
|
||||
"brightness(130%) saturate(1.5) drop-shadow(0px 0px 10px gold)",
|
||||
on: "brightness(130%) saturate(1.5) drop-shadow(0px 0px 10px gold)",
|
||||
off: "brightness(80%) saturate(0.8)",
|
||||
},
|
||||
style: {
|
||||
|
||||
@ -12,9 +12,8 @@ export const demoConfigs: Array<() => Promise<DemoConfig>> = [
|
||||
// eslint-disable-next-line import/no-mutable-exports
|
||||
export let selectedDemoConfigIndex = 0;
|
||||
// eslint-disable-next-line import/no-mutable-exports
|
||||
export let selectedDemoConfig: Promise<DemoConfig> = demoConfigs[
|
||||
selectedDemoConfigIndex
|
||||
]();
|
||||
export let selectedDemoConfig: Promise<DemoConfig> =
|
||||
demoConfigs[selectedDemoConfigIndex]();
|
||||
|
||||
export const setDemoConfig = async (
|
||||
hass: MockHomeAssistant,
|
||||
|
||||
@ -980,8 +980,7 @@ export const demoEntitiesTeachingbirds: DemoConfig["entities"] = () =>
|
||||
icon: "mdi:account-off",
|
||||
custom_ui_state_card: "state-card-custom-ui",
|
||||
templates: {
|
||||
icon:
|
||||
"if (state === 'on') return 'mdi:account'; else if (state === 'off') return 'mdi:account-off';\n",
|
||||
icon: "if (state === 'on') return 'mdi:account'; else if (state === 'off') return 'mdi:account-off';\n",
|
||||
icon_color:
|
||||
"if (state === 'on') return 'rgb(56, 150, 56)'; else if (state === 'off') return 'rgb(249, 251, 255)';\n",
|
||||
},
|
||||
@ -1005,8 +1004,7 @@ export const demoEntitiesTeachingbirds: DemoConfig["entities"] = () =>
|
||||
icon: "mdi:account-multiple-minus",
|
||||
custom_ui_state_card: "state-card-custom-ui",
|
||||
templates: {
|
||||
icon:
|
||||
"if (state === 'on') return 'mdi:account-group'; else if (state === 'off') return 'mdi:account-multiple-minus';\n",
|
||||
icon: "if (state === 'on') return 'mdi:account-group'; else if (state === 'off') return 'mdi:account-multiple-minus';\n",
|
||||
icon_color:
|
||||
"if (state === 'on') return 'rgb(56, 150, 56)'; else if (state === 'off') return 'rgb(249, 251, 255)';\n",
|
||||
},
|
||||
|
||||
@ -19,7 +19,7 @@ export class HADemoCard extends LitElement implements LovelaceCard {
|
||||
|
||||
@property({ attribute: false }) public hass!: MockHomeAssistant;
|
||||
|
||||
@state() private _switching?: boolean;
|
||||
@state() private _switching = false;
|
||||
|
||||
private _hidden = localStorage.hide_demo_card;
|
||||
|
||||
@ -27,12 +27,7 @@ export class HADemoCard extends LitElement implements LovelaceCard {
|
||||
return this._hidden ? 0 : 2;
|
||||
}
|
||||
|
||||
public setConfig(
|
||||
// @ts-ignore
|
||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
||||
config: LovelaceCardConfig
|
||||
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
||||
) {}
|
||||
public setConfig(_config: LovelaceCardConfig) {}
|
||||
|
||||
protected render(): TemplateResult {
|
||||
if (this._hidden) {
|
||||
|
||||
@ -67,14 +67,7 @@ const incrementalUnits = ["clients", "queries", "ads"];
|
||||
export const mockHistory = (mockHass: MockHomeAssistant) => {
|
||||
mockHass.mockAPI(
|
||||
new RegExp("history/period/.+"),
|
||||
(
|
||||
hass,
|
||||
// @ts-ignore
|
||||
method,
|
||||
path,
|
||||
// @ts-ignore
|
||||
parameters
|
||||
) => {
|
||||
(hass, _method, path, _parameters) => {
|
||||
const params = parseQuery<HistoryQueryParams>(path.split("?")[1]);
|
||||
const entities = params.filter_entity_id.split(",");
|
||||
|
||||
@ -95,7 +88,7 @@ export const mockHistory = (mockHass: MockHomeAssistant) => {
|
||||
const numberState = Number(state.state);
|
||||
|
||||
if (isNaN(numberState)) {
|
||||
// eslint-disable-next-line
|
||||
// eslint-disable-next-line no-console
|
||||
console.log(
|
||||
"Ignoring state with unparsable state but with a unit",
|
||||
entityId,
|
||||
|
||||
@ -10,10 +10,9 @@ export const mockLovelace = (
|
||||
localizePromise: Promise<LocalizeFunc>
|
||||
) => {
|
||||
hass.mockWS("lovelace/config", () =>
|
||||
Promise.all([
|
||||
selectedDemoConfig,
|
||||
localizePromise,
|
||||
]).then(([config, localize]) => config.lovelace(localize))
|
||||
Promise.all([selectedDemoConfig, localizePromise]).then(
|
||||
([config, localize]) => config.lovelace(localize)
|
||||
)
|
||||
);
|
||||
|
||||
hass.mockWS("lovelace/config/save", () => Promise.resolve());
|
||||
|
||||
@ -2,12 +2,12 @@ import { html, css, LitElement, TemplateResult } from "lit";
|
||||
import "../../../src/components/ha-card";
|
||||
import "../../../src/components/trace/hat-script-graph";
|
||||
import "../../../src/components/trace/hat-trace-timeline";
|
||||
import { customElement, property, state } from "lit/decorators";
|
||||
import { provideHass } from "../../../src/fake_data/provide_hass";
|
||||
import { HomeAssistant } from "../../../src/types";
|
||||
import { DemoTrace } from "../data/traces/types";
|
||||
import { basicTrace } from "../data/traces/basic_trace";
|
||||
import { motionLightTrace } from "../data/traces/motion-light-trace";
|
||||
import { customElement, property, state } from "lit/decorators";
|
||||
|
||||
const traces: DemoTrace[] = [basicTrace, motionLightTrace];
|
||||
|
||||
|
||||
@ -2,6 +2,8 @@ import { html, css, LitElement, TemplateResult } from "lit";
|
||||
import "../../../src/components/ha-formfield";
|
||||
import "../../../src/components/ha-switch";
|
||||
|
||||
import { classMap } from "lit/directives/class-map";
|
||||
import { customElement, property, state } from "lit/decorators";
|
||||
import { IntegrationManifest } from "../../../src/data/integration";
|
||||
|
||||
import { provideHass } from "../../../src/fake_data/provide_hass";
|
||||
@ -15,8 +17,6 @@ import type {
|
||||
} from "../../../src/panels/config/integrations/ha-config-integrations";
|
||||
import { DeviceRegistryEntry } from "../../../src/data/device_registry";
|
||||
import { EntityRegistryEntry } from "../../../src/data/entity_registry";
|
||||
import { classMap } from "lit/directives/class-map";
|
||||
import { customElement, property, state } from "lit/decorators";
|
||||
|
||||
const createConfigEntry = (
|
||||
title: string,
|
||||
|
||||
@ -2,6 +2,7 @@ import "../../../../src/components/ha-card";
|
||||
import { css, CSSResultGroup, html, LitElement, TemplateResult } from "lit";
|
||||
import "../../../../src/components/ha-circular-progress";
|
||||
import "../../../../src/components/ha-markdown";
|
||||
import { customElement, property, state } from "lit/decorators";
|
||||
import {
|
||||
fetchHassioAddonDocumentation,
|
||||
HassioAddonDetails,
|
||||
@ -12,7 +13,6 @@ import { haStyle } from "../../../../src/resources/styles";
|
||||
import { HomeAssistant } from "../../../../src/types";
|
||||
import { hassioStyle } from "../../resources/hassio-style";
|
||||
import { Supervisor } from "../../../../src/data/supervisor/supervisor";
|
||||
import { customElement, property, state } from "lit/decorators";
|
||||
|
||||
@customElement("hassio-addon-documentation-tab")
|
||||
class HassioAddonDocumentationDashboard extends LitElement {
|
||||
|
||||
@ -41,7 +41,8 @@ const IP_VERSIONS = ["ipv4", "ipv6"];
|
||||
@customElement("dialog-hassio-network")
|
||||
export class DialogHassioNetwork
|
||||
extends LitElement
|
||||
implements HassDialog<HassioNetworkDialogParams> {
|
||||
implements HassDialog<HassioNetworkDialogParams>
|
||||
{
|
||||
@property({ attribute: false }) public hass!: HomeAssistant;
|
||||
|
||||
@property({ attribute: false }) public supervisor!: Supervisor;
|
||||
@ -492,7 +493,7 @@ export class DialogHassioNetwork
|
||||
}
|
||||
|
||||
private _handleRadioValueChangedAp(ev: CustomEvent): void {
|
||||
const value = ((ev.target as any).value as string) as
|
||||
const value = (ev.target as any).value as string as
|
||||
| "open"
|
||||
| "wep"
|
||||
| "wpa-psk";
|
||||
|
||||
@ -161,9 +161,9 @@ class HassioRegistriesDialog extends LitElement {
|
||||
|
||||
public focus(): void {
|
||||
this.updateComplete.then(() =>
|
||||
(this.shadowRoot?.querySelector(
|
||||
"[dialogInitialFocus]"
|
||||
) as HTMLElement)?.focus()
|
||||
(
|
||||
this.shadowRoot?.querySelector("[dialogInitialFocus]") as HTMLElement
|
||||
)?.focus()
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@ -161,9 +161,9 @@ class HassioRepositoriesDialog extends LitElement {
|
||||
|
||||
public focus() {
|
||||
this.updateComplete.then(() =>
|
||||
(this.shadowRoot?.querySelector(
|
||||
"[dialogInitialFocus]"
|
||||
) as HTMLElement)?.focus()
|
||||
(
|
||||
this.shadowRoot?.querySelector("[dialogInitialFocus]") as HTMLElement
|
||||
)?.focus()
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@ -12,7 +12,8 @@ import { HassioSnapshotUploadDialogParams } from "./show-dialog-snapshot-upload"
|
||||
@customElement("dialog-hassio-snapshot-upload")
|
||||
export class DialogHassioSnapshotUpload
|
||||
extends LitElement
|
||||
implements HassDialog<HassioSnapshotUploadDialogParams> {
|
||||
implements HassDialog<HassioSnapshotUploadDialogParams>
|
||||
{
|
||||
@property({ attribute: false }) public hass!: HomeAssistant;
|
||||
|
||||
@state() private _params?: HassioSnapshotUploadDialogParams;
|
||||
|
||||
@ -30,7 +30,8 @@ import { HassioSnapshotDialogParams } from "./show-dialog-hassio-snapshot";
|
||||
@customElement("dialog-hassio-snapshot")
|
||||
class HassioSnapshotDialog
|
||||
extends LitElement
|
||||
implements HassDialog<HassioSnapshotDialogParams> {
|
||||
implements HassDialog<HassioSnapshotDialogParams>
|
||||
{
|
||||
@property({ attribute: false }) public hass!: HomeAssistant;
|
||||
|
||||
@state() private _error?: string;
|
||||
@ -297,8 +298,7 @@ class HassioSnapshotDialog
|
||||
if (window.location.href.includes("ui.nabu.casa")) {
|
||||
const confirm = await showConfirmationDialog(this, {
|
||||
title: "Potential slow download",
|
||||
text:
|
||||
"Downloading snapshots over the Nabu Casa URL will take some time, it is recomended to use your local URL instead, do you want to continue?",
|
||||
text: "Downloading snapshots over the Nabu Casa URL will take some time, it is recomended to use your local URL instead, do you want to continue?",
|
||||
confirmText: "continue",
|
||||
dismissText: "cancel",
|
||||
});
|
||||
|
||||
@ -49,9 +49,9 @@ class DialogSupervisorUpdate extends LitElement {
|
||||
|
||||
public focus(): void {
|
||||
this.updateComplete.then(() =>
|
||||
(this.shadowRoot?.querySelector(
|
||||
"[dialogInitialFocus]"
|
||||
) as HTMLElement)?.focus()
|
||||
(
|
||||
this.shadowRoot?.querySelector("[dialogInitialFocus]") as HTMLElement
|
||||
)?.focus()
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@ -121,7 +121,7 @@ export class HassioMain extends SupervisorBaseElement {
|
||||
}
|
||||
} else {
|
||||
themeName =
|
||||
((this.hass.selectedTheme as unknown) as string) ||
|
||||
(this.hass.selectedTheme as unknown as string) ||
|
||||
this.hass.themes.default_theme;
|
||||
}
|
||||
|
||||
|
||||
@ -1,19 +1,19 @@
|
||||
import { html, LitElement, TemplateResult } from "lit";
|
||||
import { sanitizeUrl } from "@braintree/sanitize-url";
|
||||
import { html, LitElement, TemplateResult } from "lit";
|
||||
import { customElement, property, state } from "lit/decorators";
|
||||
import { navigate } from "../../src/common/navigate";
|
||||
import {
|
||||
createSearchParam,
|
||||
extractSearchParamsObject,
|
||||
} from "../../src/common/url/search-params";
|
||||
import { Supervisor } from "../../src/data/supervisor/supervisor";
|
||||
import "../../src/layouts/hass-error-screen";
|
||||
import {
|
||||
ParamType,
|
||||
Redirect,
|
||||
Redirects,
|
||||
} from "../../src/panels/my/ha-panel-my";
|
||||
import { navigate } from "../../src/common/navigate";
|
||||
import { HomeAssistant, Route } from "../../src/types";
|
||||
import { Supervisor } from "../../src/data/supervisor/supervisor";
|
||||
import { customElement, property, state } from "lit/decorators";
|
||||
|
||||
const REDIRECTS: Redirects = {
|
||||
supervisor: {
|
||||
|
||||
@ -86,10 +86,8 @@ export class SupervisorBaseElement extends urlSyncMixin(
|
||||
const unsubs = Object.keys(this._unsubs);
|
||||
for (const collection of Object.keys(this._collections)) {
|
||||
if (!unsubs.includes(collection)) {
|
||||
this._unsubs[collection] = this._collections[
|
||||
collection
|
||||
].subscribe((data) =>
|
||||
this._updateSupervisor({ [collection]: data })
|
||||
this._unsubs[collection] = this._collections[collection].subscribe(
|
||||
(data) => this._updateSupervisor({ [collection]: data })
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
17
package.json
17
package.json
@ -172,21 +172,22 @@
|
||||
"@types/mocha": "^8.2.2",
|
||||
"@types/sortablejs": "^1.10.6",
|
||||
"@types/webspeechapi": "^0.0.29",
|
||||
"@typescript-eslint/eslint-plugin": "^4.22.0",
|
||||
"@typescript-eslint/parser": "^4.22.0",
|
||||
"@typescript-eslint/eslint-plugin": "^4.28.3",
|
||||
"@typescript-eslint/parser": "^4.28.3",
|
||||
"@web/dev-server": "^0.0.24",
|
||||
"@web/dev-server-rollup": "^0.2.11",
|
||||
"babel-loader": "^8.2.2",
|
||||
"chai": "^4.3.4",
|
||||
"del": "^4.0.0",
|
||||
"eslint": "^7.25.0",
|
||||
"eslint": "^7.30.0",
|
||||
"eslint-config-airbnb-typescript": "^12.3.1",
|
||||
"eslint-config-prettier": "^8.3.0",
|
||||
"eslint-import-resolver-webpack": "^0.13.1",
|
||||
"eslint-plugin-disable": "^2.0.1",
|
||||
"eslint-plugin-import": "^2.22.1",
|
||||
"eslint-plugin-lit": "^1.3.0",
|
||||
"eslint-plugin-import": "^2.23.4",
|
||||
"eslint-plugin-lit": "^1.5.1",
|
||||
"eslint-plugin-prettier": "^3.4.0",
|
||||
"eslint-plugin-unused-imports": "^1.1.2",
|
||||
"eslint-plugin-wc": "^1.3.0",
|
||||
"fancy-log": "^1.3.3",
|
||||
"fs-extra": "^7.0.1",
|
||||
@ -198,7 +199,7 @@
|
||||
"gulp-zopfli-green": "^3.0.1",
|
||||
"html-minifier": "^4.0.0",
|
||||
"husky": "^1.3.1",
|
||||
"lint-staged": "^10.5.4",
|
||||
"lint-staged": "^11.0.1",
|
||||
"lit-analyzer": "^1.2.1",
|
||||
"lodash.template": "^4.5.0",
|
||||
"magic-string": "^0.25.7",
|
||||
@ -207,7 +208,7 @@
|
||||
"mocha": "^8.4.0",
|
||||
"object-hash": "^2.0.3",
|
||||
"open": "^7.0.4",
|
||||
"prettier": "^2.0.4",
|
||||
"prettier": "^2.3.2",
|
||||
"require-dir": "^1.2.0",
|
||||
"rollup": "^2.8.2",
|
||||
"rollup-plugin-string": "^3.0.0",
|
||||
@ -220,7 +221,7 @@
|
||||
"terser-webpack-plugin": "^5.1.4",
|
||||
"ts-lit-plugin": "^1.2.1",
|
||||
"ts-mocha": "^8.0.0",
|
||||
"typescript": "^4.2.4",
|
||||
"typescript": "^4.3.5",
|
||||
"vinyl-buffer": "^1.0.1",
|
||||
"vinyl-source-stream": "^2.0.0",
|
||||
"webpack": "^5.43.0",
|
||||
|
||||
@ -26,6 +26,9 @@ function checkToLocaleStringSupportsOptions() {
|
||||
return false;
|
||||
}
|
||||
|
||||
export const toLocaleDateStringSupportsOptions = checkToLocaleDateStringSupportsOptions();
|
||||
export const toLocaleTimeStringSupportsOptions = checkToLocaleTimeStringSupportsOptions();
|
||||
export const toLocaleStringSupportsOptions = checkToLocaleStringSupportsOptions();
|
||||
export const toLocaleDateStringSupportsOptions =
|
||||
checkToLocaleDateStringSupportsOptions();
|
||||
export const toLocaleTimeStringSupportsOptions =
|
||||
checkToLocaleTimeStringSupportsOptions();
|
||||
export const toLocaleStringSupportsOptions =
|
||||
checkToLocaleStringSupportsOptions();
|
||||
|
||||
@ -82,67 +82,71 @@ class Storage {
|
||||
|
||||
const storage = new Storage();
|
||||
|
||||
export const LocalStorage = (
|
||||
storageKey?: string,
|
||||
property?: boolean,
|
||||
propertyOptions?: PropertyDeclaration
|
||||
): any => (clsElement: ClassElement) => {
|
||||
const key = String(clsElement.key);
|
||||
storageKey = storageKey || String(clsElement.key);
|
||||
const initVal = clsElement.initializer ? clsElement.initializer() : undefined;
|
||||
export const LocalStorage =
|
||||
(
|
||||
storageKey?: string,
|
||||
property?: boolean,
|
||||
propertyOptions?: PropertyDeclaration
|
||||
): any =>
|
||||
(clsElement: ClassElement) => {
|
||||
const key = String(clsElement.key);
|
||||
storageKey = storageKey || String(clsElement.key);
|
||||
const initVal = clsElement.initializer
|
||||
? clsElement.initializer()
|
||||
: undefined;
|
||||
|
||||
storage.addFromStorage(storageKey);
|
||||
storage.addFromStorage(storageKey);
|
||||
|
||||
const subscribe = (el: ReactiveElement): UnsubscribeFunc =>
|
||||
storage.subscribeChanges(storageKey!, (oldValue) => {
|
||||
el.requestUpdate(clsElement.key, oldValue);
|
||||
});
|
||||
const subscribe = (el: ReactiveElement): UnsubscribeFunc =>
|
||||
storage.subscribeChanges(storageKey!, (oldValue) => {
|
||||
el.requestUpdate(clsElement.key, oldValue);
|
||||
});
|
||||
|
||||
const getValue = (): any =>
|
||||
storage.hasKey(storageKey!) ? storage.getValue(storageKey!) : initVal;
|
||||
const getValue = (): any =>
|
||||
storage.hasKey(storageKey!) ? storage.getValue(storageKey!) : initVal;
|
||||
|
||||
const setValue = (el: ReactiveElement, value: any) => {
|
||||
let oldValue: unknown | undefined;
|
||||
if (property) {
|
||||
oldValue = getValue();
|
||||
}
|
||||
storage.setValue(storageKey!, value);
|
||||
if (property) {
|
||||
el.requestUpdate(clsElement.key, oldValue);
|
||||
}
|
||||
};
|
||||
|
||||
return {
|
||||
kind: "method",
|
||||
placement: "prototype",
|
||||
key: clsElement.key,
|
||||
descriptor: {
|
||||
set(this: ReactiveElement, value: unknown) {
|
||||
setValue(this, value);
|
||||
},
|
||||
get() {
|
||||
return getValue();
|
||||
},
|
||||
enumerable: true,
|
||||
configurable: true,
|
||||
},
|
||||
finisher(cls: typeof ReactiveElement) {
|
||||
const setValue = (el: ReactiveElement, value: any) => {
|
||||
let oldValue: unknown | undefined;
|
||||
if (property) {
|
||||
const connectedCallback = cls.prototype.connectedCallback;
|
||||
const disconnectedCallback = cls.prototype.disconnectedCallback;
|
||||
cls.prototype.connectedCallback = function () {
|
||||
connectedCallback.call(this);
|
||||
this[`__unbsubLocalStorage${key}`] = subscribe(this);
|
||||
};
|
||||
cls.prototype.disconnectedCallback = function () {
|
||||
disconnectedCallback.call(this);
|
||||
this[`__unbsubLocalStorage${key}`]();
|
||||
};
|
||||
cls.createProperty(clsElement.key, {
|
||||
noAccessor: true,
|
||||
...propertyOptions,
|
||||
});
|
||||
oldValue = getValue();
|
||||
}
|
||||
},
|
||||
storage.setValue(storageKey!, value);
|
||||
if (property) {
|
||||
el.requestUpdate(clsElement.key, oldValue);
|
||||
}
|
||||
};
|
||||
|
||||
return {
|
||||
kind: "method",
|
||||
placement: "prototype",
|
||||
key: clsElement.key,
|
||||
descriptor: {
|
||||
set(this: ReactiveElement, value: unknown) {
|
||||
setValue(this, value);
|
||||
},
|
||||
get() {
|
||||
return getValue();
|
||||
},
|
||||
enumerable: true,
|
||||
configurable: true,
|
||||
},
|
||||
finisher(cls: typeof ReactiveElement) {
|
||||
if (property) {
|
||||
const connectedCallback = cls.prototype.connectedCallback;
|
||||
const disconnectedCallback = cls.prototype.disconnectedCallback;
|
||||
cls.prototype.connectedCallback = function () {
|
||||
connectedCallback.call(this);
|
||||
this[`__unbsubLocalStorage${key}`] = subscribe(this);
|
||||
};
|
||||
cls.prototype.disconnectedCallback = function () {
|
||||
disconnectedCallback.call(this);
|
||||
this[`__unbsubLocalStorage${key}`]();
|
||||
};
|
||||
cls.createProperty(clsElement.key, {
|
||||
noAccessor: true,
|
||||
...propertyOptions,
|
||||
});
|
||||
}
|
||||
},
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@ -1,33 +1,33 @@
|
||||
import type { LitElement } from "lit";
|
||||
import type { ClassElement } from "../../types";
|
||||
|
||||
export const restoreScroll = (selector: string): any => (
|
||||
element: ClassElement
|
||||
) => ({
|
||||
kind: "method",
|
||||
placement: "prototype",
|
||||
key: element.key,
|
||||
descriptor: {
|
||||
set(this: LitElement, value: number) {
|
||||
this[`__${String(element.key)}`] = value;
|
||||
export const restoreScroll =
|
||||
(selector: string): any =>
|
||||
(element: ClassElement) => ({
|
||||
kind: "method",
|
||||
placement: "prototype",
|
||||
key: element.key,
|
||||
descriptor: {
|
||||
set(this: LitElement, value: number) {
|
||||
this[`__${String(element.key)}`] = value;
|
||||
},
|
||||
get(this: LitElement) {
|
||||
return this[`__${String(element.key)}`];
|
||||
},
|
||||
enumerable: true,
|
||||
configurable: true,
|
||||
},
|
||||
get(this: LitElement) {
|
||||
return this[`__${String(element.key)}`];
|
||||
},
|
||||
enumerable: true,
|
||||
configurable: true,
|
||||
},
|
||||
finisher(cls: typeof LitElement) {
|
||||
const connectedCallback = cls.prototype.connectedCallback;
|
||||
cls.prototype.connectedCallback = function () {
|
||||
connectedCallback.call(this);
|
||||
if (this[element.key]) {
|
||||
const target = this.renderRoot.querySelector(selector);
|
||||
if (!target) {
|
||||
return;
|
||||
finisher(cls: typeof LitElement) {
|
||||
const connectedCallback = cls.prototype.connectedCallback;
|
||||
cls.prototype.connectedCallback = function () {
|
||||
connectedCallback.call(this);
|
||||
if (this[element.key]) {
|
||||
const target = this.renderRoot.querySelector(selector);
|
||||
if (!target) {
|
||||
return;
|
||||
}
|
||||
target.scrollTop = this[element.key];
|
||||
}
|
||||
target.scrollTop = this[element.key];
|
||||
}
|
||||
};
|
||||
},
|
||||
});
|
||||
};
|
||||
},
|
||||
});
|
||||
|
||||
@ -67,9 +67,11 @@ class SearchInput extends LitElement {
|
||||
changedProps.has("noUnderline") &&
|
||||
(this.noUnderline || changedProps.get("noUnderline") !== undefined)
|
||||
) {
|
||||
(this._input.inputElement!.parentElement!.shadowRoot!.querySelector(
|
||||
"div.unfocused-line"
|
||||
) as HTMLElement).style.display = this.noUnderline ? "none" : "block";
|
||||
(
|
||||
this._input.inputElement!.parentElement!.shadowRoot!.querySelector(
|
||||
"div.unfocused-line"
|
||||
) as HTMLElement
|
||||
).style.display = this.noUnderline ? "none" : "block";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -6,6 +6,7 @@
|
||||
// 3. Disallow dates based on week number.
|
||||
// 4. Disallow dates only consisting of a year.
|
||||
// https://regex101.com/r/kc5C14/3
|
||||
const regexp = /^\d{4}-(0[1-9]|1[0-2])-([12]\d|0[1-9]|3[01])[T| ](((([01]\d|2[0-3])((:?)[0-5]\d)?|24:?00)([.,]\d+(?!:))?)(\8[0-5]\d([.,]\d+)?)?([zZ]|([+-])([01]\d|2[0-3]):?([0-5]\d)?)?)$/;
|
||||
const regexp =
|
||||
/^\d{4}-(0[1-9]|1[0-2])-([12]\d|0[1-9]|3[01])[T| ](((([01]\d|2[0-3])((:?)[0-5]\d)?|24:?00)([.,]\d+(?!:))?)(\8[0-5]\d([.,]\d+)?)?([zZ]|([+-])([01]\d|2[0-3]):?([0-5]\d)?)?)$/;
|
||||
|
||||
export const isTimestamp = (input: string): boolean => regexp.test(input);
|
||||
|
||||
@ -64,18 +64,18 @@ class HaCallServiceButton extends EventsMixin(PolymerElement) {
|
||||
this.hass
|
||||
.callService(this.domain, this.service, this.serviceData)
|
||||
.then(
|
||||
function () {
|
||||
() => {
|
||||
el.progress = false;
|
||||
el.$.progress.actionSuccess();
|
||||
eventData.success = true;
|
||||
},
|
||||
function () {
|
||||
() => {
|
||||
el.progress = false;
|
||||
el.$.progress.actionError();
|
||||
eventData.success = false;
|
||||
}
|
||||
)
|
||||
.then(function () {
|
||||
.then(() => {
|
||||
el.fire("hass-service-called", eventData);
|
||||
});
|
||||
}
|
||||
|
||||
@ -176,9 +176,9 @@ export class StateHistoryChartTimeline extends LitElement {
|
||||
labelColor: (item) => ({
|
||||
borderColor: (item.dataset.data[item.dataIndex] as TimeLineData)
|
||||
.color!,
|
||||
backgroundColor: (item.dataset.data[
|
||||
item.dataIndex
|
||||
] as TimeLineData).color!,
|
||||
backgroundColor: (
|
||||
item.dataset.data[item.dataIndex] as TimeLineData
|
||||
).color!,
|
||||
}),
|
||||
},
|
||||
},
|
||||
|
||||
@ -19,10 +19,9 @@ export class TextBarElement extends BarElement {
|
||||
draw(ctx) {
|
||||
super.draw(ctx);
|
||||
const options = this.options as TextBaroptions;
|
||||
const { x, y, base, width, text } = (this as BarElement<
|
||||
TextBarProps,
|
||||
TextBaroptions
|
||||
>).getProps(["x", "y", "base", "width", "text"]);
|
||||
const { x, y, base, width, text } = (
|
||||
this as BarElement<TextBarProps, TextBaroptions>
|
||||
).getProps(["x", "y", "base", "width", "text"]);
|
||||
|
||||
if (!text) {
|
||||
return;
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
import { Layout1d, scroll } from "../../resources/lit-virtualizer";
|
||||
import deepClone from "deep-clone-simple";
|
||||
import {
|
||||
css,
|
||||
@ -19,6 +18,7 @@ import { classMap } from "lit/directives/class-map";
|
||||
import { ifDefined } from "lit/directives/if-defined";
|
||||
import { styleMap } from "lit/directives/style-map";
|
||||
import memoizeOne from "memoize-one";
|
||||
import { Layout1d, scroll } from "../../resources/lit-virtualizer";
|
||||
import { restoreScroll } from "../../common/decorators/restore-scroll";
|
||||
import { fireEvent } from "../../common/dom/fire_event";
|
||||
import "../../common/search/search-input";
|
||||
@ -360,9 +360,8 @@ export class HaDataTable extends LitElement {
|
||||
.rowId=${row[this.id]}
|
||||
@click=${this._handleRowClick}
|
||||
class="mdc-data-table__row ${classMap({
|
||||
"mdc-data-table__row--selected": this._checkedRows.includes(
|
||||
String(row[this.id])
|
||||
),
|
||||
"mdc-data-table__row--selected":
|
||||
this._checkedRows.includes(String(row[this.id])),
|
||||
clickable: this.clickable,
|
||||
})}"
|
||||
aria-selected=${ifDefined(
|
||||
@ -406,17 +405,15 @@ export class HaDataTable extends LitElement {
|
||||
"mdc-data-table__cell--icon": Boolean(
|
||||
column.type === "icon"
|
||||
),
|
||||
"mdc-data-table__cell--icon-button": Boolean(
|
||||
column.type === "icon-button"
|
||||
),
|
||||
"mdc-data-table__cell--icon-button":
|
||||
Boolean(column.type === "icon-button"),
|
||||
grows: Boolean(column.grows),
|
||||
forceLTR: Boolean(column.forceLTR),
|
||||
})}"
|
||||
style=${column.width
|
||||
? styleMap({
|
||||
[column.grows
|
||||
? "minWidth"
|
||||
: "width"]: column.width,
|
||||
[column.grows ? "minWidth" : "width"]:
|
||||
column.width,
|
||||
maxWidth: column.maxWidth
|
||||
? column.maxWidth
|
||||
: "",
|
||||
|
||||
@ -15,6 +15,7 @@ import {
|
||||
PropertyValues,
|
||||
TemplateResult,
|
||||
} from "lit";
|
||||
import { ComboBoxLitRenderer, comboBoxRenderer } from "lit-vaadin-helpers";
|
||||
import { customElement, property, state } from "lit/decorators";
|
||||
import memoizeOne from "memoize-one";
|
||||
import { fireEvent } from "../../common/dom/fire_event";
|
||||
@ -38,7 +39,6 @@ import { PolymerChangedEvent } from "../../polymer-types";
|
||||
import { HomeAssistant } from "../../types";
|
||||
import "../ha-svg-icon";
|
||||
import "./ha-devices-picker";
|
||||
import { ComboBoxLitRenderer, comboBoxRenderer } from "lit-vaadin-helpers";
|
||||
|
||||
interface DevicesByArea {
|
||||
[areaId: string]: AreaDevices;
|
||||
|
||||
@ -11,6 +11,7 @@ import {
|
||||
} from "lit";
|
||||
import { customElement, property, state, query } from "lit/decorators";
|
||||
import memoizeOne from "memoize-one";
|
||||
import { ComboBoxLitRenderer } from "lit-vaadin-helpers";
|
||||
import { fireEvent } from "../../common/dom/fire_event";
|
||||
import { computeDomain } from "../../common/entity/compute_domain";
|
||||
import { compare } from "../../common/string/compare";
|
||||
@ -33,7 +34,6 @@ import { PolymerChangedEvent } from "../../polymer-types";
|
||||
import { HomeAssistant } from "../../types";
|
||||
import "../ha-combo-box";
|
||||
import type { HaComboBox } from "../ha-combo-box";
|
||||
import { ComboBoxLitRenderer } from "lit-vaadin-helpers";
|
||||
|
||||
interface Device {
|
||||
name: string;
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
import { html, LitElement, TemplateResult } from "lit";
|
||||
import { customElement, property, state, query } from "lit/decorators";
|
||||
import { ComboBoxLitRenderer } from "lit-vaadin-helpers";
|
||||
import { isComponentLoaded } from "../common/config/is_component_loaded";
|
||||
import { fireEvent } from "../common/dom/fire_event";
|
||||
import { compare } from "../common/string/compare";
|
||||
@ -9,7 +10,6 @@ import { showAlertDialog } from "../dialogs/generic/show-dialog-box";
|
||||
import { PolymerChangedEvent } from "../polymer-types";
|
||||
import { HomeAssistant } from "../types";
|
||||
import { HaComboBox } from "./ha-combo-box";
|
||||
import { ComboBoxLitRenderer } from "lit-vaadin-helpers";
|
||||
|
||||
const rowRenderer: ComboBoxLitRenderer<HassioAddonInfo> = (item) => html`<style>
|
||||
paper-item {
|
||||
|
||||
@ -2,6 +2,7 @@ import "@material/mwc-menu";
|
||||
import type { Corner, Menu } from "@material/mwc-menu";
|
||||
import { css, CSSResultGroup, html, LitElement, TemplateResult } from "lit";
|
||||
import { customElement, property, query } from "lit/decorators";
|
||||
|
||||
@customElement("ha-button-menu")
|
||||
export class HaButtonMenu extends LitElement {
|
||||
@property() public corner: Corner = "TOP_START";
|
||||
|
||||
@ -43,9 +43,9 @@ export class HaFileUpload extends LitElement {
|
||||
|
||||
protected updated(changedProperties: PropertyValues) {
|
||||
if (changedProperties.has("_drag") && !this.uploading) {
|
||||
(this.shadowRoot!.querySelector(
|
||||
"paper-input-container"
|
||||
) as any)._setFocused(this._drag);
|
||||
(
|
||||
this.shadowRoot!.querySelector("paper-input-container") as any
|
||||
)._setFocused(this._drag);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -94,8 +94,9 @@ export class HaFormMultiSelect extends LitElement implements HaFormElement {
|
||||
|
||||
protected firstUpdated() {
|
||||
this.updateComplete.then(() => {
|
||||
const input = (this.shadowRoot?.querySelector("paper-input")
|
||||
?.inputElement as any)?.inputElement;
|
||||
const input = (
|
||||
this.shadowRoot?.querySelector("paper-input")?.inputElement as any
|
||||
)?.inputElement;
|
||||
if (input) {
|
||||
input.style.textOverflow = "ellipsis";
|
||||
}
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
import { Formfield } from "@material/mwc-formfield";
|
||||
import { css, CSSResultGroup } from "lit";
|
||||
import { customElement } from "lit/decorators";
|
||||
|
||||
@customElement("ha-formfield")
|
||||
// @ts-expect-error
|
||||
export class HaFormfield extends Formfield {
|
||||
|
||||
@ -96,7 +96,7 @@ class HaHLSPlayer extends LitElement {
|
||||
const useExoPlayerPromise = this._getUseExoPlayer();
|
||||
const masterPlaylistPromise = fetch(this.url);
|
||||
|
||||
const Hls: typeof HlsType = (await import("hls.js/dist/hls.light.min.js"))
|
||||
const Hls: typeof HlsType = (await import("hls.js/dist/hls.light.min"))
|
||||
.default;
|
||||
let hlsSupported = Hls.isSupported();
|
||||
|
||||
@ -117,7 +117,8 @@ class HaHLSPlayer extends LitElement {
|
||||
|
||||
// Parse playlist assuming it is a master playlist. Match group 1 is whether hevc, match group 2 is regular playlist url
|
||||
// See https://tools.ietf.org/html/rfc8216 for HLS spec details
|
||||
const playlistRegexp = /#EXT-X-STREAM-INF:.*?(?:CODECS=".*?(hev1|hvc1)?\..*?".*?)?(?:\n|\r\n)(.+)/g;
|
||||
const playlistRegexp =
|
||||
/#EXT-X-STREAM-INF:.*?(?:CODECS=".*?(hev1|hvc1)?\..*?".*?)?(?:\n|\r\n)(.+)/g;
|
||||
const match = playlistRegexp.exec(masterPlaylist);
|
||||
const matchTwice = playlistRegexp.exec(masterPlaylist);
|
||||
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
import { Radio } from "@material/mwc-radio";
|
||||
import { customElement } from "lit/decorators";
|
||||
|
||||
@customElement("ha-radio")
|
||||
export class HaRadio extends Radio {
|
||||
public firstUpdated() {
|
||||
|
||||
@ -153,9 +153,8 @@ export class HaRelatedItems extends SubscribeMixin(LitElement) {
|
||||
</h3>
|
||||
<ul>
|
||||
${this._related.entity.map((entityId) => {
|
||||
const entity: HassEntity | undefined = this.hass.states[
|
||||
entityId
|
||||
];
|
||||
const entity: HassEntity | undefined =
|
||||
this.hass.states[entityId];
|
||||
if (!entity) {
|
||||
return "";
|
||||
}
|
||||
@ -203,9 +202,8 @@ export class HaRelatedItems extends SubscribeMixin(LitElement) {
|
||||
<h3>${this.hass.localize("ui.components.related-items.scene")}:</h3>
|
||||
<ul>
|
||||
${this._related.scene.map((sceneId) => {
|
||||
const scene: SceneEntity | undefined = this.hass.states[
|
||||
sceneId
|
||||
];
|
||||
const scene: SceneEntity | undefined =
|
||||
this.hass.states[sceneId];
|
||||
if (!scene) {
|
||||
return "";
|
||||
}
|
||||
@ -231,9 +229,8 @@ export class HaRelatedItems extends SubscribeMixin(LitElement) {
|
||||
</h3>
|
||||
<ul>
|
||||
${this._related.automation.map((automationId) => {
|
||||
const automation: HassEntity | undefined = this.hass.states[
|
||||
automationId
|
||||
];
|
||||
const automation: HassEntity | undefined =
|
||||
this.hass.states[automationId];
|
||||
if (!automation) {
|
||||
return "";
|
||||
}
|
||||
@ -260,9 +257,8 @@ export class HaRelatedItems extends SubscribeMixin(LitElement) {
|
||||
</h3>
|
||||
<ul>
|
||||
${this._related.script.map((scriptId) => {
|
||||
const script: HassEntity | undefined = this.hass.states[
|
||||
scriptId
|
||||
];
|
||||
const script: HassEntity | undefined =
|
||||
this.hass.states[scriptId];
|
||||
if (!script) {
|
||||
return "";
|
||||
}
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
import { html, LitElement } from "lit";
|
||||
import { ComboBoxLitRenderer } from "lit-vaadin-helpers";
|
||||
import { property, state } from "lit/decorators";
|
||||
import memoizeOne from "memoize-one";
|
||||
import { fireEvent } from "../common/dom/fire_event";
|
||||
@ -6,7 +7,6 @@ import { LocalizeFunc } from "../common/translations/localize";
|
||||
import { domainToName } from "../data/integration";
|
||||
import { HomeAssistant } from "../types";
|
||||
import "./ha-combo-box";
|
||||
import { ComboBoxLitRenderer } from "lit-vaadin-helpers";
|
||||
|
||||
const rowRenderer: ComboBoxLitRenderer<{ service: string; name: string }> = (
|
||||
item
|
||||
|
||||
@ -2,6 +2,7 @@ import { Switch } from "@material/mwc-switch";
|
||||
import { css, CSSResultGroup } from "lit";
|
||||
import { customElement, property } from "lit/decorators";
|
||||
import { forwardHaptic } from "../data/haptics";
|
||||
|
||||
@customElement("ha-switch")
|
||||
// @ts-expect-error
|
||||
export class HaSwitch extends Switch {
|
||||
|
||||
@ -180,9 +180,8 @@ export class HaLocationsEditor extends LitElement {
|
||||
const locationMarkers = {};
|
||||
const circles = {};
|
||||
|
||||
const defaultZoneRadiusColor = getComputedStyle(this).getPropertyValue(
|
||||
"--accent-color"
|
||||
);
|
||||
const defaultZoneRadiusColor =
|
||||
getComputedStyle(this).getPropertyValue("--accent-color");
|
||||
|
||||
this.locations.forEach((location: MarkerLocation) => {
|
||||
let icon: DivIcon | undefined;
|
||||
|
||||
@ -132,9 +132,8 @@ export class HaMediaPlayerBrowse extends LitElement {
|
||||
return html``;
|
||||
}
|
||||
|
||||
const currentItem = this._mediaPlayerItems[
|
||||
this._mediaPlayerItems.length - 1
|
||||
];
|
||||
const currentItem =
|
||||
this._mediaPlayerItems[this._mediaPlayerItems.length - 1];
|
||||
|
||||
const previousItem: MediaPlayerItem | undefined =
|
||||
this._mediaPlayerItems.length > 1
|
||||
|
||||
@ -111,14 +111,8 @@ export class HaTracePathDetails extends LitElement {
|
||||
|
||||
parts.push(
|
||||
data.map((trace, idx) => {
|
||||
const {
|
||||
path,
|
||||
timestamp,
|
||||
result,
|
||||
error,
|
||||
changed_variables,
|
||||
...rest
|
||||
} = trace as any;
|
||||
const { path, timestamp, result, error, changed_variables, ...rest } =
|
||||
trace as any;
|
||||
|
||||
return html`
|
||||
${curPath === this.selected.path
|
||||
|
||||
@ -178,9 +178,8 @@ class HatScriptGraph extends LitElement {
|
||||
trace !== undefined && trace[0].result?.choice === i;
|
||||
this.renderedNodes[branch_path] = { config, path: branch_path };
|
||||
if (track_this) {
|
||||
this.trackedNodes[branch_path] = this.renderedNodes[
|
||||
branch_path
|
||||
];
|
||||
this.trackedNodes[branch_path] =
|
||||
this.renderedNodes[branch_path];
|
||||
}
|
||||
return html`
|
||||
<hat-graph>
|
||||
@ -489,9 +488,9 @@ class HatScriptGraph extends LitElement {
|
||||
: ""}
|
||||
${"condition" in this.trace.config
|
||||
? html`<hat-graph id="condition">
|
||||
${ensureArray(
|
||||
this.trace.config.condition
|
||||
)?.map((condition, i) => this.render_condition(condition!, i))}
|
||||
${ensureArray(this.trace.config.condition)?.map(
|
||||
(condition, i) => this.render_condition(condition!, i)
|
||||
)}
|
||||
</hat-graph>`
|
||||
: ""}
|
||||
${"action" in this.trace.config
|
||||
@ -535,12 +534,12 @@ class HatScriptGraph extends LitElement {
|
||||
}
|
||||
}
|
||||
|
||||
protected update(changedProps: PropertyValues<this>) {
|
||||
public willUpdate(changedProps: PropertyValues<this>) {
|
||||
super.willUpdate(changedProps);
|
||||
if (changedProps.has("trace")) {
|
||||
this.renderedNodes = {};
|
||||
this.trackedNodes = {};
|
||||
}
|
||||
super.update(changedProps);
|
||||
}
|
||||
|
||||
protected updated(changedProps: PropertyValues<this>) {
|
||||
|
||||
@ -121,9 +121,8 @@ class LogbookRenderer {
|
||||
return;
|
||||
}
|
||||
|
||||
const previousEntryDate = this.pendingItems[
|
||||
this.pendingItems.length - 1
|
||||
][0];
|
||||
const previousEntryDate =
|
||||
this.pendingItems[this.pendingItems.length - 1][0];
|
||||
|
||||
// If logbook entry is too long after the last one,
|
||||
// add a time passed label
|
||||
|
||||
@ -6,12 +6,13 @@ export const subscribeBootstrapIntegrations = (
|
||||
hass: HomeAssistant,
|
||||
callback: (message: BootstrapIntegrationsTimings) => void
|
||||
) => {
|
||||
const unsubProm = hass.connection.subscribeMessage<BootstrapIntegrationsTimings>(
|
||||
(message) => callback(message),
|
||||
{
|
||||
type: "subscribe_bootstrap_integrations",
|
||||
}
|
||||
);
|
||||
const unsubProm =
|
||||
hass.connection.subscribeMessage<BootstrapIntegrationsTimings>(
|
||||
(message) => callback(message),
|
||||
{
|
||||
type: "subscribe_bootstrap_integrations",
|
||||
}
|
||||
);
|
||||
|
||||
return unsubProm;
|
||||
};
|
||||
|
||||
@ -9,7 +9,8 @@ export interface DiscoveryInformation {
|
||||
version: string;
|
||||
}
|
||||
|
||||
export const fetchDiscoveryInformation = async (): Promise<DiscoveryInformation> => {
|
||||
const response = await fetch("/api/discovery_info", { method: "GET" });
|
||||
return response.json();
|
||||
};
|
||||
export const fetchDiscoveryInformation =
|
||||
async (): Promise<DiscoveryInformation> => {
|
||||
const response = await fetch("/api/discovery_info", { method: "GET" });
|
||||
return response.json();
|
||||
};
|
||||
|
||||
@ -14,7 +14,8 @@ import { HaDomainTogglerDialogParams } from "./show-dialog-domain-toggler";
|
||||
@customElement("dialog-domain-toggler")
|
||||
class DomainTogglerDialog
|
||||
extends LitElement
|
||||
implements HassDialog<HaDomainTogglerDialogParams> {
|
||||
implements HassDialog<HaDomainTogglerDialogParams>
|
||||
{
|
||||
public hass!: HomeAssistant;
|
||||
|
||||
@state() private _params?: HaDomainTogglerDialogParams;
|
||||
|
||||
@ -136,12 +136,12 @@ class MoreInfoConfigurator extends PolymerElement {
|
||||
this.isConfiguring = true;
|
||||
|
||||
this.hass.callService("configurator", "configure", data).then(
|
||||
function () {
|
||||
() => {
|
||||
this.isConfiguring = false;
|
||||
}.bind(this),
|
||||
function () {
|
||||
},
|
||||
() => {
|
||||
this.isConfiguring = false;
|
||||
}.bind(this)
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@ -444,9 +444,7 @@ class MoreInfoLight extends LitElement {
|
||||
value = (value * 255) / 100;
|
||||
|
||||
const rgb = (getLightCurrentModeRgbColor(this.stateObj!)?.slice(0, 3) || [
|
||||
255,
|
||||
255,
|
||||
255,
|
||||
255, 255, 255,
|
||||
]) as [number, number, number];
|
||||
|
||||
this._setRgbWColor(
|
||||
|
||||
@ -181,7 +181,7 @@ export class HuiNotificationDrawer extends EventsMixin(
|
||||
|
||||
const notifications = notificationsBackend.concat(configuratorEntities);
|
||||
|
||||
notifications.sort(function (n1, n2) {
|
||||
notifications.sort((n1, n2) => {
|
||||
const d1 = new Date(n1.created_at);
|
||||
const d2 = new Date(n2.created_at);
|
||||
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
import { Layout1d, scroll } from "../../resources/lit-virtualizer";
|
||||
import "@material/mwc-list/mwc-list";
|
||||
import type { List } from "@material/mwc-list/mwc-list";
|
||||
import { SingleSelectedEvent } from "@material/mwc-list/mwc-list-foundation";
|
||||
@ -39,6 +38,7 @@ import { domainToName } from "../../data/integration";
|
||||
import { getPanelNameTranslationKey } from "../../data/panel";
|
||||
import { PageNavigation } from "../../layouts/hass-tabs-subpage";
|
||||
import { configSections } from "../../panels/config/ha-panel-config";
|
||||
import { Layout1d, scroll } from "../../resources/lit-virtualizer";
|
||||
import { haStyleDialog } from "../../resources/styles";
|
||||
import { HomeAssistant } from "../../types";
|
||||
import {
|
||||
|
||||
@ -344,7 +344,8 @@ export class HaVoiceCommandDialog extends LitElement {
|
||||
}
|
||||
|
||||
private _scrollMessagesBottom() {
|
||||
this.messages.scrollTarget.scrollTop = this.messages.scrollTarget.scrollHeight;
|
||||
this.messages.scrollTarget.scrollTop =
|
||||
this.messages.scrollTarget.scrollHeight;
|
||||
if (this.messages.scrollTarget.scrollTop === 0) {
|
||||
fireEvent(this.messages, "iron-resize");
|
||||
}
|
||||
|
||||
@ -107,7 +107,7 @@ function initPushNotifications() {
|
||||
);
|
||||
}
|
||||
|
||||
self.addEventListener("push", function (event) {
|
||||
self.addEventListener("push", (event) => {
|
||||
let data;
|
||||
if (event.data) {
|
||||
data = event.data.json();
|
||||
@ -122,7 +122,7 @@ function initPushNotifications() {
|
||||
event.waitUntil(
|
||||
self.registration
|
||||
.showNotification(data.title, data)
|
||||
.then(function (/* notification */) {
|
||||
.then((/* notification */) => {
|
||||
firePushCallback(
|
||||
{
|
||||
type: "received",
|
||||
@ -136,7 +136,7 @@ function initPushNotifications() {
|
||||
}
|
||||
});
|
||||
|
||||
self.addEventListener("notificationclick", function (event) {
|
||||
self.addEventListener("notificationclick", (event) => {
|
||||
notificationEventCallback("clicked", event);
|
||||
|
||||
event.notification.close();
|
||||
@ -158,7 +158,7 @@ function initPushNotifications() {
|
||||
.matchAll({
|
||||
type: "window",
|
||||
})
|
||||
.then(function (windowClients) {
|
||||
.then((windowClients) => {
|
||||
let i;
|
||||
let client;
|
||||
for (i = 0; i < windowClients.length; i++) {
|
||||
@ -175,7 +175,7 @@ function initPushNotifications() {
|
||||
);
|
||||
});
|
||||
|
||||
self.addEventListener("notificationclose", function (event) {
|
||||
self.addEventListener("notificationclose", (event) => {
|
||||
notificationEventCallback("closed", event);
|
||||
});
|
||||
}
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
import { isNavigationClick } from "../common/dom/is-navigation-click";
|
||||
import { html, PropertyValues } from "lit";
|
||||
import { customElement, state } from "lit/decorators";
|
||||
import { isNavigationClick } from "../common/dom/is-navigation-click";
|
||||
import { navigate } from "../common/navigate";
|
||||
import { getStorageDefaultPanelUrlPath } from "../data/panel";
|
||||
import "../resources/custom-card-support";
|
||||
|
||||
@ -99,7 +99,7 @@ class SupervisorErrorScreen extends LitElement {
|
||||
}
|
||||
} else {
|
||||
themeName =
|
||||
((this.hass.selectedTheme as unknown) as string) ||
|
||||
(this.hass.selectedTheme as unknown as string) ||
|
||||
this.hass.themes.default_theme;
|
||||
}
|
||||
|
||||
|
||||
@ -51,7 +51,7 @@ export const SubscribeMixin = <T extends Constructor<ReactiveElement>>(
|
||||
private __checkSubscribed(): void {
|
||||
if (
|
||||
this.__unsubs !== undefined ||
|
||||
!((this as unknown) as Element).isConnected ||
|
||||
!(this as unknown as Element).isConnected ||
|
||||
this.hass === undefined
|
||||
) {
|
||||
return;
|
||||
|
||||
@ -254,7 +254,8 @@ class HaOnboarding extends litLocalizeLiteMixin(HassElement) {
|
||||
this._loading = true;
|
||||
|
||||
// Determine if oauth redirect has been provided
|
||||
const externalAuthParams = extractSearchParamsObject() as AuthUrlSearchParams;
|
||||
const externalAuthParams =
|
||||
extractSearchParamsObject() as AuthUrlSearchParams;
|
||||
const authParams =
|
||||
externalAuthParams.client_id && externalAuthParams.redirect_uri
|
||||
? externalAuthParams
|
||||
|
||||
@ -52,9 +52,13 @@ class HaConfigAreaPage extends LitElement {
|
||||
|
||||
@state() private _related?: RelatedResult;
|
||||
|
||||
private _area = memoizeOne((areaId: string, areas: AreaRegistryEntry[]):
|
||||
| AreaRegistryEntry
|
||||
| undefined => areas.find((area) => area.area_id === areaId));
|
||||
private _area = memoizeOne(
|
||||
(
|
||||
areaId: string,
|
||||
areas: AreaRegistryEntry[]
|
||||
): AreaRegistryEntry | undefined =>
|
||||
areas.find((area) => area.area_id === areaId)
|
||||
);
|
||||
|
||||
private _memberships = memoizeOne(
|
||||
(
|
||||
|
||||
@ -12,7 +12,8 @@ import { ActionElement, handleChangeEvent } from "../ha-automation-action-row";
|
||||
@customElement("ha-automation-action-wait_for_trigger")
|
||||
export class HaWaitForTriggerAction
|
||||
extends LitElement
|
||||
implements ActionElement {
|
||||
implements ActionElement
|
||||
{
|
||||
@property({ attribute: false }) public hass!: HomeAssistant;
|
||||
|
||||
@property() public action!: WaitForTriggerAction;
|
||||
|
||||
@ -20,13 +20,8 @@ export default class HaNumericStateCondition extends LitElement {
|
||||
}
|
||||
|
||||
public render() {
|
||||
const {
|
||||
value_template,
|
||||
entity_id,
|
||||
attribute,
|
||||
below,
|
||||
above,
|
||||
} = this.condition;
|
||||
const { value_template, entity_id, attribute, below, above } =
|
||||
this.condition;
|
||||
|
||||
return html`
|
||||
<ha-entity-picker
|
||||
|
||||
@ -1,15 +1,15 @@
|
||||
import "@polymer/paper-dropdown-menu/paper-dropdown-menu-light";
|
||||
import { UnsubscribeFunc } from "home-assistant-js-websocket";
|
||||
import { html, LitElement } from "lit";
|
||||
import { customElement, property, state } from "lit/decorators";
|
||||
import { fireEvent } from "../../../../../common/dom/fire_event";
|
||||
import { ensureArray } from "../../../../../common/ensure-array";
|
||||
import {
|
||||
AutomationConfig,
|
||||
Trigger,
|
||||
TriggerCondition,
|
||||
} from "../../../../../data/automation";
|
||||
import { HomeAssistant } from "../../../../../types";
|
||||
import "@polymer/paper-dropdown-menu/paper-dropdown-menu-light";
|
||||
import { ensureArray } from "../../../../../common/ensure-array";
|
||||
import { UnsubscribeFunc } from "home-assistant-js-websocket";
|
||||
|
||||
@customElement("ha-automation-condition-trigger")
|
||||
export class HaTriggerCondition extends LitElement {
|
||||
|
||||
@ -61,11 +61,12 @@ class HaAutomationPicker extends LitElement {
|
||||
if (filteredAutomations === null) {
|
||||
return [];
|
||||
}
|
||||
return (filteredAutomations
|
||||
? automations.filter((automation) =>
|
||||
filteredAutomations!.includes(automation.entity_id)
|
||||
)
|
||||
: automations
|
||||
return (
|
||||
filteredAutomations
|
||||
? automations.filter((automation) =>
|
||||
filteredAutomations!.includes(automation.entity_id)
|
||||
)
|
||||
: automations
|
||||
).map((automation) => ({
|
||||
...automation,
|
||||
name: computeStateName(automation),
|
||||
|
||||
@ -433,8 +433,8 @@ export class HaAutomationTrace extends LitElement {
|
||||
|
||||
private _timelinePathPicked(ev) {
|
||||
const path = ev.detail.value;
|
||||
const nodes = this.shadowRoot!.querySelector("hat-script-graph")!
|
||||
.trackedNodes;
|
||||
const nodes =
|
||||
this.shadowRoot!.querySelector("hat-script-graph")!.trackedNodes;
|
||||
if (nodes[path]) {
|
||||
this._selected = nodes[path];
|
||||
}
|
||||
|
||||
@ -197,9 +197,10 @@ export class ThingTalkPlaceholders extends SubscribeMixin(LitElement) {
|
||||
])
|
||||
)}`}
|
||||
.entityFilter=${(entityState: HassEntity) => {
|
||||
const devId = this._placeholderValues[type][
|
||||
placeholder.index
|
||||
][idx].device_id;
|
||||
const devId =
|
||||
this._placeholderValues[type][
|
||||
placeholder.index
|
||||
][idx].device_id;
|
||||
return this._deviceEntityLookup[
|
||||
devId
|
||||
].includes(entityState.entity_id);
|
||||
|
||||
@ -7,6 +7,7 @@ import { fetchTags, Tag } from "../../../../../data/tag";
|
||||
import { HomeAssistant } from "../../../../../types";
|
||||
import { TriggerElement } from "../ha-automation-trigger-row";
|
||||
import "../../../../../components/ha-paper-dropdown-menu";
|
||||
|
||||
@customElement("ha-automation-trigger-tag")
|
||||
export class HaTagTrigger extends LitElement implements TriggerElement {
|
||||
@property({ attribute: false }) public hass!: HomeAssistant;
|
||||
|
||||
@ -22,11 +22,8 @@ export class CloudGooglePref extends LitElement {
|
||||
return html``;
|
||||
}
|
||||
|
||||
const {
|
||||
google_enabled,
|
||||
google_report_state,
|
||||
google_secure_devices_pin,
|
||||
} = this.cloudStatus.prefs;
|
||||
const { google_enabled, google_report_state, google_secure_devices_pin } =
|
||||
this.cloudStatus.prefs;
|
||||
|
||||
return html`
|
||||
<ha-card
|
||||
|
||||
@ -28,11 +28,8 @@ export class CloudRemotePref extends LitElement {
|
||||
|
||||
const { remote_enabled } = this.cloudStatus.prefs;
|
||||
|
||||
const {
|
||||
remote_connected,
|
||||
remote_domain,
|
||||
remote_certificate,
|
||||
} = this.cloudStatus;
|
||||
const { remote_connected, remote_domain, remote_certificate } =
|
||||
this.cloudStatus;
|
||||
|
||||
if (!remote_certificate) {
|
||||
return html`
|
||||
|
||||
@ -32,9 +32,8 @@ export class HaDeviceActionsOzw extends LitElement {
|
||||
|
||||
protected updated(changedProperties: PropertyValues) {
|
||||
if (changedProperties.has("device")) {
|
||||
const identifiers:
|
||||
| OZWNodeIdentifiers
|
||||
| undefined = getIdentifiersFromDevice(this.device);
|
||||
const identifiers: OZWNodeIdentifiers | undefined =
|
||||
getIdentifiersFromDevice(this.device);
|
||||
if (!identifiers) {
|
||||
return;
|
||||
}
|
||||
|
||||
@ -33,9 +33,8 @@ export class HaDeviceInfoOzw extends LitElement {
|
||||
|
||||
protected updated(changedProperties: PropertyValues) {
|
||||
if (changedProperties.has("device")) {
|
||||
const identifiers:
|
||||
| OZWNodeIdentifiers
|
||||
| undefined = getIdentifiersFromDevice(this.device);
|
||||
const identifiers: OZWNodeIdentifiers | undefined =
|
||||
getIdentifiersFromDevice(this.device);
|
||||
if (!identifiers) {
|
||||
return;
|
||||
}
|
||||
|
||||
@ -31,9 +31,8 @@ export class HaDeviceActionsZWaveJS extends LitElement {
|
||||
if (changedProperties.has("device")) {
|
||||
this._entryId = this.device.config_entries[0];
|
||||
|
||||
const identifiers:
|
||||
| ZWaveJSNodeIdentifiers
|
||||
| undefined = getIdentifiersFromDevice(this.device);
|
||||
const identifiers: ZWaveJSNodeIdentifiers | undefined =
|
||||
getIdentifiersFromDevice(this.device);
|
||||
if (!identifiers) {
|
||||
return;
|
||||
}
|
||||
|
||||
@ -40,9 +40,8 @@ export class HaDeviceInfoZWaveJS extends LitElement {
|
||||
|
||||
protected updated(changedProperties: PropertyValues) {
|
||||
if (changedProperties.has("device")) {
|
||||
const identifiers:
|
||||
| ZWaveJSNodeIdentifiers
|
||||
| undefined = getIdentifiersFromDevice(this.device);
|
||||
const identifiers: ZWaveJSNodeIdentifiers | undefined =
|
||||
getIdentifiersFromDevice(this.device);
|
||||
if (!identifiers) {
|
||||
return;
|
||||
}
|
||||
|
||||
@ -110,18 +110,19 @@ export class HaConfigDevicePage extends LitElement {
|
||||
)
|
||||
);
|
||||
|
||||
private _computeArea = memoizeOne((areas, device):
|
||||
| AreaRegistryEntry
|
||||
| undefined => {
|
||||
if (!areas || !device || !device.area_id) {
|
||||
return undefined;
|
||||
private _computeArea = memoizeOne(
|
||||
(areas, device): AreaRegistryEntry | undefined => {
|
||||
if (!areas || !device || !device.area_id) {
|
||||
return undefined;
|
||||
}
|
||||
return areas.find((area) => area.area_id === device.area_id);
|
||||
}
|
||||
return areas.find((area) => area.area_id === device.area_id);
|
||||
});
|
||||
);
|
||||
|
||||
private _batteryEntity = memoizeOne((entities: EntityRegistryEntry[]):
|
||||
| EntityRegistryEntry
|
||||
| undefined => findBatteryEntity(this.hass, entities));
|
||||
private _batteryEntity = memoizeOne(
|
||||
(entities: EntityRegistryEntry[]): EntityRegistryEntry | undefined =>
|
||||
findBatteryEntity(this.hass, entities)
|
||||
);
|
||||
|
||||
private _batteryChargingEntity = memoizeOne(
|
||||
(entities: EntityRegistryEntry[]): EntityRegistryEntry | undefined =>
|
||||
|
||||
@ -100,9 +100,8 @@ export class EntityRegistrySettings extends SubscribeMixin(LitElement) {
|
||||
if (this.entry.entity_id !== this._origEntityId) {
|
||||
return html``;
|
||||
}
|
||||
const stateObj: HassEntity | undefined = this.hass.states[
|
||||
this.entry.entity_id
|
||||
];
|
||||
const stateObj: HassEntity | undefined =
|
||||
this.hass.states[this.entry.entity_id];
|
||||
const invalidDomainUpdate =
|
||||
computeDomain(this._entityId.trim()) !==
|
||||
computeDomain(this.entry.entity_id);
|
||||
|
||||
@ -442,20 +442,18 @@ export class HaConfigEntities extends SubscribeMixin(LitElement) {
|
||||
this._entries
|
||||
);
|
||||
|
||||
const {
|
||||
filteredEntities,
|
||||
filteredDomains,
|
||||
} = this._filteredEntitiesAndDomains(
|
||||
this._entities,
|
||||
this._devices,
|
||||
this._areas,
|
||||
this._stateEntities,
|
||||
this._searchParms,
|
||||
this._showDisabled,
|
||||
this._showUnavailable,
|
||||
this._showReadOnly,
|
||||
this._entries
|
||||
);
|
||||
const { filteredEntities, filteredDomains } =
|
||||
this._filteredEntitiesAndDomains(
|
||||
this._entities,
|
||||
this._devices,
|
||||
this._areas,
|
||||
this._stateEntities,
|
||||
this._searchParms,
|
||||
this._showDisabled,
|
||||
this._showUnavailable,
|
||||
this._showReadOnly,
|
||||
this._entries
|
||||
);
|
||||
|
||||
const includeZHAFab = filteredDomains.includes("zha");
|
||||
|
||||
|
||||
@ -54,9 +54,9 @@ class HaCounterForm extends LitElement {
|
||||
|
||||
public focus() {
|
||||
this.updateComplete.then(() =>
|
||||
(this.shadowRoot?.querySelector(
|
||||
"[dialogInitialFocus]"
|
||||
) as HTMLElement)?.focus()
|
||||
(
|
||||
this.shadowRoot?.querySelector("[dialogInitialFocus]") as HTMLElement
|
||||
)?.focus()
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@ -32,9 +32,9 @@ class HaInputBooleanForm extends LitElement {
|
||||
|
||||
public focus() {
|
||||
this.updateComplete.then(() =>
|
||||
(this.shadowRoot?.querySelector(
|
||||
"[dialogInitialFocus]"
|
||||
) as HTMLElement)?.focus()
|
||||
(
|
||||
this.shadowRoot?.querySelector("[dialogInitialFocus]") as HTMLElement
|
||||
)?.focus()
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@ -43,9 +43,9 @@ class HaInputDateTimeForm extends LitElement {
|
||||
|
||||
public focus() {
|
||||
this.updateComplete.then(() =>
|
||||
(this.shadowRoot?.querySelector(
|
||||
"[dialogInitialFocus]"
|
||||
) as HTMLElement)?.focus()
|
||||
(
|
||||
this.shadowRoot?.querySelector("[dialogInitialFocus]") as HTMLElement
|
||||
)?.focus()
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@ -58,9 +58,9 @@ class HaInputNumberForm extends LitElement {
|
||||
|
||||
public focus() {
|
||||
this.updateComplete.then(() =>
|
||||
(this.shadowRoot?.querySelector(
|
||||
"[dialogInitialFocus]"
|
||||
) as HTMLElement)?.focus()
|
||||
(
|
||||
this.shadowRoot?.querySelector("[dialogInitialFocus]") as HTMLElement
|
||||
)?.focus()
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@ -44,9 +44,9 @@ class HaInputSelectForm extends LitElement {
|
||||
|
||||
public focus() {
|
||||
this.updateComplete.then(() =>
|
||||
(this.shadowRoot?.querySelector(
|
||||
"[dialogInitialFocus]"
|
||||
) as HTMLElement)?.focus()
|
||||
(
|
||||
this.shadowRoot?.querySelector("[dialogInitialFocus]") as HTMLElement
|
||||
)?.focus()
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@ -49,9 +49,9 @@ class HaInputTextForm extends LitElement {
|
||||
|
||||
public focus() {
|
||||
this.updateComplete.then(() =>
|
||||
(this.shadowRoot?.querySelector(
|
||||
"[dialogInitialFocus]"
|
||||
) as HTMLElement)?.focus()
|
||||
(
|
||||
this.shadowRoot?.querySelector("[dialogInitialFocus]") as HTMLElement
|
||||
)?.focus()
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@ -35,9 +35,9 @@ class HaTimerForm extends LitElement {
|
||||
|
||||
public focus() {
|
||||
this.updateComplete.then(() =>
|
||||
(this.shadowRoot?.querySelector(
|
||||
"[dialogInitialFocus]"
|
||||
) as HTMLElement)?.focus()
|
||||
(
|
||||
this.shadowRoot?.querySelector("[dialogInitialFocus]") as HTMLElement
|
||||
)?.focus()
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@ -38,80 +38,75 @@ export class HaConfigHelpers extends LitElement {
|
||||
|
||||
@state() private _stateItems: HassEntity[] = [];
|
||||
|
||||
private _columns = memoize(
|
||||
(narrow, _language): DataTableColumnContainer => {
|
||||
const columns: DataTableColumnContainer = {
|
||||
icon: {
|
||||
title: "",
|
||||
type: "icon",
|
||||
template: (icon, helper: any) => html`
|
||||
<ha-icon .icon=${icon || domainIcon(helper.type)}></ha-icon>
|
||||
`,
|
||||
},
|
||||
name: {
|
||||
title: this.hass.localize(
|
||||
"ui.panel.config.helpers.picker.headers.name"
|
||||
),
|
||||
sortable: true,
|
||||
filterable: true,
|
||||
grows: true,
|
||||
direction: "asc",
|
||||
template: (name, item: any) =>
|
||||
html`
|
||||
${name}
|
||||
${narrow
|
||||
? html` <div class="secondary">${item.entity_id}</div> `
|
||||
: ""}
|
||||
`,
|
||||
},
|
||||
};
|
||||
if (!narrow) {
|
||||
columns.entity_id = {
|
||||
title: this.hass.localize(
|
||||
"ui.panel.config.helpers.picker.headers.entity_id"
|
||||
),
|
||||
sortable: true,
|
||||
filterable: true,
|
||||
width: "25%",
|
||||
};
|
||||
}
|
||||
columns.type = {
|
||||
title: this.hass.localize(
|
||||
"ui.panel.config.helpers.picker.headers.type"
|
||||
),
|
||||
sortable: true,
|
||||
width: "25%",
|
||||
filterable: true,
|
||||
template: (type) =>
|
||||
html`
|
||||
${this.hass.localize(`ui.panel.config.helpers.types.${type}`) ||
|
||||
type}
|
||||
`,
|
||||
};
|
||||
columns.editable = {
|
||||
private _columns = memoize((narrow, _language): DataTableColumnContainer => {
|
||||
const columns: DataTableColumnContainer = {
|
||||
icon: {
|
||||
title: "",
|
||||
type: "icon",
|
||||
template: (editable) => html`
|
||||
${!editable
|
||||
? html`
|
||||
<div
|
||||
tabindex="0"
|
||||
style="display:inline-block; position: relative;"
|
||||
>
|
||||
<ha-icon icon="hass:pencil-off"></ha-icon>
|
||||
<paper-tooltip animation-delay="0" position="left">
|
||||
${this.hass.localize(
|
||||
"ui.panel.config.entities.picker.status.readonly"
|
||||
)}
|
||||
</paper-tooltip>
|
||||
</div>
|
||||
`
|
||||
: ""}
|
||||
template: (icon, helper: any) => html`
|
||||
<ha-icon .icon=${icon || domainIcon(helper.type)}></ha-icon>
|
||||
`,
|
||||
},
|
||||
name: {
|
||||
title: this.hass.localize(
|
||||
"ui.panel.config.helpers.picker.headers.name"
|
||||
),
|
||||
sortable: true,
|
||||
filterable: true,
|
||||
grows: true,
|
||||
direction: "asc",
|
||||
template: (name, item: any) =>
|
||||
html`
|
||||
${name}
|
||||
${narrow
|
||||
? html` <div class="secondary">${item.entity_id}</div> `
|
||||
: ""}
|
||||
`,
|
||||
},
|
||||
};
|
||||
if (!narrow) {
|
||||
columns.entity_id = {
|
||||
title: this.hass.localize(
|
||||
"ui.panel.config.helpers.picker.headers.entity_id"
|
||||
),
|
||||
sortable: true,
|
||||
filterable: true,
|
||||
width: "25%",
|
||||
};
|
||||
return columns;
|
||||
}
|
||||
);
|
||||
columns.type = {
|
||||
title: this.hass.localize("ui.panel.config.helpers.picker.headers.type"),
|
||||
sortable: true,
|
||||
width: "25%",
|
||||
filterable: true,
|
||||
template: (type) =>
|
||||
html`
|
||||
${this.hass.localize(`ui.panel.config.helpers.types.${type}`) || type}
|
||||
`,
|
||||
};
|
||||
columns.editable = {
|
||||
title: "",
|
||||
type: "icon",
|
||||
template: (editable) => html`
|
||||
${!editable
|
||||
? html`
|
||||
<div
|
||||
tabindex="0"
|
||||
style="display:inline-block; position: relative;"
|
||||
>
|
||||
<ha-icon icon="hass:pencil-off"></ha-icon>
|
||||
<paper-tooltip animation-delay="0" position="left">
|
||||
${this.hass.localize(
|
||||
"ui.panel.config.entities.picker.status.readonly"
|
||||
)}
|
||||
</paper-tooltip>
|
||||
</div>
|
||||
`
|
||||
: ""}
|
||||
`,
|
||||
};
|
||||
return columns;
|
||||
});
|
||||
|
||||
private _getItems = memoize((stateItems: HassEntity[]) =>
|
||||
stateItems.map((entityState) => ({
|
||||
|
||||
@ -87,9 +87,8 @@ class IntegrationsCard extends LitElement {
|
||||
>
|
||||
`
|
||||
: "";
|
||||
const setupSeconds = this._setups?.[domain]?.seconds?.toFixed(
|
||||
2
|
||||
);
|
||||
const setupSeconds =
|
||||
this._setups?.[domain]?.seconds?.toFixed(2);
|
||||
return html`
|
||||
<tr>
|
||||
<td>
|
||||
@ -100,7 +99,11 @@ class IntegrationsCard extends LitElement {
|
||||
/>
|
||||
</td>
|
||||
<td class="name">
|
||||
${domainToName(this.hass.localize, domain, manifest)}<br />
|
||||
${domainToName(
|
||||
this.hass.localize,
|
||||
domain,
|
||||
manifest
|
||||
)}<br />
|
||||
<span class="domain">${domain}</span>
|
||||
${this.narrow
|
||||
? html`<div class="mobile-row">
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
import { CSSResultGroup, html, LitElement, TemplateResult } from "lit";
|
||||
import memoizeOne from "memoize-one";
|
||||
import { customElement, property, state } from "lit/decorators";
|
||||
import { computeRTLDirection } from "../../../../../common/util/compute_rtl";
|
||||
import "../../../../../components/ha-code-editor";
|
||||
import { createCloseHeading } from "../../../../../components/ha-dialog";
|
||||
@ -14,7 +15,6 @@ import type {
|
||||
import "../../../../../components/ha-circular-progress";
|
||||
import { fetchDevices, ZHADevice } from "../../../../../data/zha";
|
||||
import { fireEvent } from "../../../../../common/dom/fire_event";
|
||||
import { customElement, property, state } from "lit/decorators";
|
||||
|
||||
export interface DeviceRowData extends DataTableRowData {
|
||||
id: string;
|
||||
|
||||
@ -35,9 +35,8 @@ class DialogZHAReconfigureDevice extends LitElement {
|
||||
ClusterConfigurationStatus
|
||||
> = new Map();
|
||||
|
||||
@state() private _params:
|
||||
| ZHAReconfigureDeviceDialogParams
|
||||
| undefined = undefined;
|
||||
@state() private _params: ZHAReconfigureDeviceDialogParams | undefined =
|
||||
undefined;
|
||||
|
||||
@state() private _allSuccessful = true;
|
||||
|
||||
@ -341,9 +340,10 @@ class DialogZHAReconfigureDevice extends LitElement {
|
||||
this._unsubscribe();
|
||||
this._status = this._allSuccessful ? "finished" : "failed";
|
||||
} else {
|
||||
const clusterConfigurationStatus = this._clusterConfigurationStatuses!.get(
|
||||
message.zha_channel_msg_data.cluster_id
|
||||
);
|
||||
const clusterConfigurationStatus =
|
||||
this._clusterConfigurationStatuses!.get(
|
||||
message.zha_channel_msg_data.cluster_id
|
||||
);
|
||||
if (message.type === ZHA_CHANNEL_MSG_BIND) {
|
||||
if (!this._stages) {
|
||||
this._stages = ["binding"];
|
||||
|
||||
@ -171,8 +171,9 @@ class ZHAAddDevicesPage extends LitElement {
|
||||
if (this.shadowRoot) {
|
||||
const paperTextArea = this.shadowRoot.querySelector("paper-textarea");
|
||||
if (paperTextArea) {
|
||||
const textArea = (paperTextArea.inputElement as IronAutogrowTextareaElement)
|
||||
.textarea;
|
||||
const textArea = (
|
||||
paperTextArea.inputElement as IronAutogrowTextareaElement
|
||||
).textarea;
|
||||
textArea.scrollTop = textArea.scrollHeight;
|
||||
}
|
||||
}
|
||||
|
||||
@ -192,7 +192,8 @@ export class ZHAClusterCommands extends LitElement {
|
||||
|
||||
private _onManufacturerCodeOverrideChanged(value: ChangeEvent): void {
|
||||
this._manufacturerCodeOverride = value.detail!.value;
|
||||
this._issueClusterCommandServiceData = this._computeIssueClusterCommandServiceData();
|
||||
this._issueClusterCommandServiceData =
|
||||
this._computeIssueClusterCommandServiceData();
|
||||
}
|
||||
|
||||
private _onHelpTap(): void {
|
||||
@ -201,7 +202,8 @@ export class ZHAClusterCommands extends LitElement {
|
||||
|
||||
private _selectedCommandChanged(event: ItemSelectedEvent): void {
|
||||
this._selectedCommandIndex = event.target!.selected;
|
||||
this._issueClusterCommandServiceData = this._computeIssueClusterCommandServiceData();
|
||||
this._issueClusterCommandServiceData =
|
||||
this._computeIssueClusterCommandServiceData();
|
||||
}
|
||||
|
||||
static get styles(): CSSResultGroup {
|
||||
|
||||
@ -10,6 +10,7 @@ import {
|
||||
PropertyValues,
|
||||
TemplateResult,
|
||||
} from "lit";
|
||||
import { customElement, property } from "lit/decorators";
|
||||
import { computeRTL } from "../../../../../common/util/compute_rtl";
|
||||
import "../../../../../components/ha-card";
|
||||
import "../../../../../components/ha-fab";
|
||||
@ -25,7 +26,6 @@ import {
|
||||
updateZHAConfiguration,
|
||||
ZHAConfiguration,
|
||||
} from "../../../../../data/zha";
|
||||
import { customElement, property } from "lit/decorators";
|
||||
|
||||
export const zhaTabs: PageNavigation[] = [
|
||||
{
|
||||
|
||||
@ -2,6 +2,8 @@ import "@polymer/paper-input/paper-input";
|
||||
import "@polymer/paper-listbox/paper-listbox";
|
||||
import { UnsubscribeFunc } from "home-assistant-js-websocket";
|
||||
import { css, CSSResultGroup, html, LitElement, TemplateResult } from "lit";
|
||||
import memoizeOne from "memoize-one";
|
||||
import { customElement, property, state } from "lit/decorators";
|
||||
import { fireEvent } from "../../../../../common/dom/fire_event";
|
||||
import { computeStateName } from "../../../../../common/entity/compute_state_name";
|
||||
import "../../../../../components/buttons/ha-call-service-button";
|
||||
@ -20,12 +22,10 @@ import {
|
||||
EntityRegistryEntry,
|
||||
updateEntityRegistryEntry,
|
||||
} from "../../../../../data/entity_registry";
|
||||
import memoizeOne from "memoize-one";
|
||||
import { EntityRegistryStateEntry } from "../../../devices/ha-config-device-page";
|
||||
import { compare } from "../../../../../common/string/compare";
|
||||
import { getIeeeTail } from "./functions";
|
||||
import { slugify } from "../../../../../common/string/slugify";
|
||||
import { customElement, property, state } from "lit/decorators";
|
||||
|
||||
@customElement("zha-device-card")
|
||||
class ZHADeviceCard extends SubscribeMixin(LitElement) {
|
||||
|
||||
@ -1,32 +1,31 @@
|
||||
import { css, CSSResultGroup, html, LitElement, PropertyValues } from "lit";
|
||||
|
||||
import "@material/mwc-button";
|
||||
import { css, CSSResultGroup, html, LitElement, PropertyValues } from "lit";
|
||||
import { customElement, property, query, state } from "lit/decorators";
|
||||
import {
|
||||
Edge,
|
||||
EdgeOptions,
|
||||
Network,
|
||||
Node,
|
||||
} from "vis-network/peer/esm/vis-network";
|
||||
import { navigate } from "../../../../../common/navigate";
|
||||
import "../../../../../common/search/search-input";
|
||||
import "../../../../../components/device/ha-device-picker";
|
||||
import "../../../../../components/ha-button-menu";
|
||||
import "../../../../../components/ha-checkbox";
|
||||
import type { HaCheckbox } from "../../../../../components/ha-checkbox";
|
||||
import "../../../../../components/ha-formfield";
|
||||
import "../../../../../components/ha-svg-icon";
|
||||
import { DeviceRegistryEntry } from "../../../../../data/device_registry";
|
||||
import {
|
||||
fetchDevices,
|
||||
refreshTopology,
|
||||
ZHADevice,
|
||||
} from "../../../../../data/zha";
|
||||
import "../../../../../layouts/hass-tabs-subpage";
|
||||
import type { HomeAssistant, Route } from "../../../../../types";
|
||||
import {
|
||||
Network,
|
||||
Edge,
|
||||
Node,
|
||||
EdgeOptions,
|
||||
} from "vis-network/peer/esm/vis-network";
|
||||
import "../../../../../common/search/search-input";
|
||||
import "../../../../../components/device/ha-device-picker";
|
||||
import "../../../../../components/ha-button-menu";
|
||||
import "../../../../../components/ha-svg-icon";
|
||||
import { PolymerChangedEvent } from "../../../../../polymer-types";
|
||||
import type { HomeAssistant, Route } from "../../../../../types";
|
||||
import { formatAsPaddedHex } from "./functions";
|
||||
import { DeviceRegistryEntry } from "../../../../../data/device_registry";
|
||||
import "../../../../../components/ha-checkbox";
|
||||
import type { HaCheckbox } from "../../../../../components/ha-checkbox";
|
||||
import { zhaTabs } from "./zha-config-dashboard";
|
||||
import { customElement, property, query, state } from "lit/decorators";
|
||||
import "../../../../../components/ha-formfield";
|
||||
|
||||
@customElement("zha-network-visualization-page")
|
||||
export class ZHANetworkVisualizationPage extends LitElement {
|
||||
@ -225,9 +224,9 @@ export class ZHANetworkVisualizationPage extends LitElement {
|
||||
});
|
||||
if (device.neighbors && device.neighbors.length > 0) {
|
||||
device.neighbors.forEach((neighbor) => {
|
||||
const idx = edges.findIndex(function (e) {
|
||||
return device.ieee === e.to && neighbor.ieee === e.from;
|
||||
});
|
||||
const idx = edges.findIndex(
|
||||
(e) => device.ieee === e.to && neighbor.ieee === e.from
|
||||
);
|
||||
if (idx === -1) {
|
||||
edges.push({
|
||||
from: device.ieee,
|
||||
|
||||
@ -131,7 +131,7 @@ class ZwaveNodeProtection extends LocalizeMixin(PolymerElement) {
|
||||
let options = [];
|
||||
let value_id = -1;
|
||||
let selected = -1;
|
||||
this.protection.forEach(function (item) {
|
||||
this.protection.forEach((item) => {
|
||||
if (item.key === "options") options = item.value;
|
||||
else if (item.key === "value_id") value_id = item.value;
|
||||
else if (item.key === "selected") selected = item.value;
|
||||
|
||||
@ -4,12 +4,12 @@ import "../../../../../components/ha-switch";
|
||||
import "../../../../../components/ha-formfield";
|
||||
import { CSSResultGroup, html, LitElement, TemplateResult, css } from "lit";
|
||||
import "../../../../../components/ha-circular-progress";
|
||||
import { customElement, property, state } from "lit/decorators";
|
||||
import { createCloseHeading } from "../../../../../components/ha-dialog";
|
||||
import { haStyleDialog } from "../../../../../resources/styles";
|
||||
import { HomeAssistant } from "../../../../../types";
|
||||
import { ZWaveJSAddNodeDialogParams } from "./show-dialog-zwave_js-add-node";
|
||||
import { fireEvent } from "../../../../../common/dom/fire_event";
|
||||
import { customElement, property, state } from "lit/decorators";
|
||||
|
||||
export interface ZWaveJSAddNodeDevice {
|
||||
id: string;
|
||||
|
||||
@ -1,3 +1,5 @@
|
||||
import { mdiServerNetwork, mdiMathLog } from "@mdi/js";
|
||||
import { customElement, property } from "lit/decorators";
|
||||
import {
|
||||
HassRouterPage,
|
||||
RouterOptions,
|
||||
@ -6,9 +8,6 @@ import { HomeAssistant } from "../../../../../types";
|
||||
import { navigate } from "../../../../../common/navigate";
|
||||
import { PageNavigation } from "../../../../../layouts/hass-tabs-subpage";
|
||||
|
||||
import { mdiServerNetwork, mdiMathLog } from "@mdi/js";
|
||||
import { customElement, property } from "lit/decorators";
|
||||
|
||||
export const configTabs: PageNavigation[] = [
|
||||
{
|
||||
translationKey: "ui.panel.config.zwave_js.navigation.network",
|
||||
|
||||
@ -59,18 +59,18 @@ const getDevice = memoizeOne(
|
||||
entries?.find((device) => device.id === deviceId)
|
||||
);
|
||||
|
||||
const getNodeId = memoizeOne((device: DeviceRegistryEntry):
|
||||
| number
|
||||
| undefined => {
|
||||
const identifier = device.identifiers.find(
|
||||
(ident) => ident[0] === "zwave_js"
|
||||
);
|
||||
if (!identifier) {
|
||||
return undefined;
|
||||
}
|
||||
const getNodeId = memoizeOne(
|
||||
(device: DeviceRegistryEntry): number | undefined => {
|
||||
const identifier = device.identifiers.find(
|
||||
(ident) => ident[0] === "zwave_js"
|
||||
);
|
||||
if (!identifier) {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
return parseInt(identifier[1].split("-")[1]);
|
||||
});
|
||||
return parseInt(identifier[1].split("-")[1]);
|
||||
}
|
||||
);
|
||||
|
||||
@customElement("zwave_js-node-config")
|
||||
class ZWaveJSNodeConfig extends SubscribeMixin(LitElement) {
|
||||
|
||||
@ -285,7 +285,8 @@ export class DialogLovelaceDashboardDetail extends LitElement {
|
||||
if (this._params!.dashboard) {
|
||||
await this._params!.updateDashboard(values);
|
||||
} else {
|
||||
(values as LovelaceDashboardCreateParams).url_path = this._urlPath.trim();
|
||||
(values as LovelaceDashboardCreateParams).url_path =
|
||||
this._urlPath.trim();
|
||||
(values as LovelaceDashboardCreateParams).mode = "storage";
|
||||
await this._params!.createDashboard(
|
||||
values as LovelaceDashboardCreateParams
|
||||
|
||||
@ -168,8 +168,9 @@ export class HaConfigLovelaceDashboards extends LitElement {
|
||||
);
|
||||
|
||||
private _getItems = memoize((dashboards: LovelaceDashboard[]) => {
|
||||
const defaultMode = (this.hass.panels?.lovelace
|
||||
?.config as LovelacePanelConfig).mode;
|
||||
const defaultMode = (
|
||||
this.hass.panels?.lovelace?.config as LovelacePanelConfig
|
||||
).mode;
|
||||
const defaultUrlPath = this.hass.defaultPanel;
|
||||
const isDefault = defaultUrlPath === "lovelace";
|
||||
return [
|
||||
@ -261,9 +262,9 @@ export class HaConfigLovelaceDashboards extends LitElement {
|
||||
urlPath,
|
||||
createDashboard: async (values: LovelaceDashboardCreateParams) => {
|
||||
const created = await createDashboard(this.hass!, values);
|
||||
this._dashboards = this._dashboards!.concat(
|
||||
created
|
||||
).sort((res1, res2) => compare(res1.url_path, res2.url_path));
|
||||
this._dashboards = this._dashboards!.concat(created).sort(
|
||||
(res1, res2) => compare(res1.url_path, res2.url_path)
|
||||
);
|
||||
},
|
||||
updateDashboard: async (values) => {
|
||||
const updated = await updateDashboard(
|
||||
|
||||
@ -220,9 +220,9 @@ class HaConfigPerson extends LitElement {
|
||||
users: this._allowedUsers(users, entry),
|
||||
createEntry: async (values) => {
|
||||
const created = await createPerson(this.hass!, values);
|
||||
this._storageItems = this._storageItems!.concat(
|
||||
created
|
||||
).sort((ent1, ent2) => compare(ent1.name, ent2.name));
|
||||
this._storageItems = this._storageItems!.concat(created).sort(
|
||||
(ent1, ent2) => compare(ent1.name, ent2.name)
|
||||
);
|
||||
},
|
||||
updateEntry: async (values) => {
|
||||
const updated = await updatePerson(this.hass!, entry!.id, values);
|
||||
|
||||
@ -53,9 +53,10 @@ class HaSceneDashboard extends LitElement {
|
||||
if (filteredScenes === null) {
|
||||
return [];
|
||||
}
|
||||
return (filteredScenes
|
||||
? scenes.filter((scene) => filteredScenes!.includes(scene.entity_id))
|
||||
: scenes
|
||||
return (
|
||||
filteredScenes
|
||||
? scenes.filter((scene) => filteredScenes!.includes(scene.entity_id))
|
||||
: scenes
|
||||
).map((scene) => ({
|
||||
...scene,
|
||||
name: computeStateName(scene),
|
||||
|
||||
@ -383,9 +383,8 @@ export class HaSceneEditor extends SubscribeMixin(
|
||||
)}
|
||||
>
|
||||
${entities.map((entityId) => {
|
||||
const entityStateObj = this.hass.states[
|
||||
entityId
|
||||
];
|
||||
const entityStateObj =
|
||||
this.hass.states[entityId];
|
||||
if (!entityStateObj) {
|
||||
return html``;
|
||||
}
|
||||
@ -539,10 +538,11 @@ export class HaSceneEditor extends SubscribeMixin(
|
||||
this._scene = scene;
|
||||
const { context } = await activateScene(this.hass, this._scene.entity_id);
|
||||
this._activateContextId = context.id;
|
||||
this._unsubscribeEvents = await this.hass!.connection.subscribeEvents<HassEvent>(
|
||||
(event) => this._stateChanged(event),
|
||||
"state_changed"
|
||||
);
|
||||
this._unsubscribeEvents =
|
||||
await this.hass!.connection.subscribeEvents<HassEvent>(
|
||||
(event) => this._stateChanged(event),
|
||||
"state_changed"
|
||||
);
|
||||
}
|
||||
|
||||
private _showMoreInfo(ev: Event) {
|
||||
|
||||
@ -52,11 +52,12 @@ class HaScriptPicker extends LitElement {
|
||||
if (filteredScripts === null) {
|
||||
return [];
|
||||
}
|
||||
return (filteredScripts
|
||||
? scripts.filter((script) =>
|
||||
filteredScripts!.includes(script.entity_id)
|
||||
)
|
||||
: scripts
|
||||
return (
|
||||
filteredScripts
|
||||
? scripts.filter((script) =>
|
||||
filteredScripts!.includes(script.entity_id)
|
||||
)
|
||||
: scripts
|
||||
).map((script) => ({
|
||||
...script,
|
||||
name: computeStateName(script),
|
||||
@ -66,114 +67,110 @@ class HaScriptPicker extends LitElement {
|
||||
}
|
||||
);
|
||||
|
||||
private _columns = memoizeOne(
|
||||
(narrow, _locale): DataTableColumnContainer => {
|
||||
const columns: DataTableColumnContainer = {
|
||||
activate: {
|
||||
title: "",
|
||||
type: "icon-button",
|
||||
template: (_toggle, script) =>
|
||||
html`
|
||||
<mwc-icon-button
|
||||
.script=${script}
|
||||
title="${this.hass.localize(
|
||||
"ui.panel.config.script.picker.run_script"
|
||||
)}"
|
||||
@click=${(ev: Event) => this._runScript(ev)}
|
||||
>
|
||||
<ha-svg-icon .path=${mdiPlay}></ha-svg-icon>
|
||||
</mwc-icon-button>
|
||||
`,
|
||||
},
|
||||
icon: {
|
||||
title: "",
|
||||
type: "icon",
|
||||
template: (icon) => html` <ha-icon .icon=${icon}></ha-icon> `,
|
||||
},
|
||||
name: {
|
||||
title: this.hass.localize(
|
||||
"ui.panel.config.script.picker.headers.name"
|
||||
),
|
||||
sortable: true,
|
||||
filterable: true,
|
||||
direction: "asc",
|
||||
grows: true,
|
||||
template: narrow
|
||||
? (name, script: any) => html`
|
||||
${name}
|
||||
<div class="secondary">
|
||||
${this.hass.localize("ui.card.automation.last_triggered")}:
|
||||
${script.attributes.last_triggered
|
||||
? formatDateTime(
|
||||
new Date(script.attributes.last_triggered),
|
||||
this.hass.locale
|
||||
)
|
||||
: this.hass.localize("ui.components.relative_time.never")}
|
||||
</div>
|
||||
`
|
||||
: undefined,
|
||||
},
|
||||
};
|
||||
if (!narrow) {
|
||||
columns.last_triggered = {
|
||||
sortable: true,
|
||||
width: "20%",
|
||||
title: this.hass.localize("ui.card.automation.last_triggered"),
|
||||
template: (last_triggered) => html`
|
||||
${last_triggered
|
||||
? formatDateTime(new Date(last_triggered), this.hass.locale)
|
||||
: this.hass.localize("ui.components.relative_time.never")}
|
||||
`,
|
||||
};
|
||||
}
|
||||
columns.info = {
|
||||
private _columns = memoizeOne((narrow, _locale): DataTableColumnContainer => {
|
||||
const columns: DataTableColumnContainer = {
|
||||
activate: {
|
||||
title: "",
|
||||
type: "icon-button",
|
||||
template: (_info, script) => html`
|
||||
template: (_toggle, script) =>
|
||||
html`
|
||||
<mwc-icon-button
|
||||
.script=${script}
|
||||
title="${this.hass.localize(
|
||||
"ui.panel.config.script.picker.run_script"
|
||||
)}"
|
||||
@click=${(ev: Event) => this._runScript(ev)}
|
||||
>
|
||||
<ha-svg-icon .path=${mdiPlay}></ha-svg-icon>
|
||||
</mwc-icon-button>
|
||||
`,
|
||||
},
|
||||
icon: {
|
||||
title: "",
|
||||
type: "icon",
|
||||
template: (icon) => html` <ha-icon .icon=${icon}></ha-icon> `,
|
||||
},
|
||||
name: {
|
||||
title: this.hass.localize("ui.panel.config.script.picker.headers.name"),
|
||||
sortable: true,
|
||||
filterable: true,
|
||||
direction: "asc",
|
||||
grows: true,
|
||||
template: narrow
|
||||
? (name, script: any) => html`
|
||||
${name}
|
||||
<div class="secondary">
|
||||
${this.hass.localize("ui.card.automation.last_triggered")}:
|
||||
${script.attributes.last_triggered
|
||||
? formatDateTime(
|
||||
new Date(script.attributes.last_triggered),
|
||||
this.hass.locale
|
||||
)
|
||||
: this.hass.localize("ui.components.relative_time.never")}
|
||||
</div>
|
||||
`
|
||||
: undefined,
|
||||
},
|
||||
};
|
||||
if (!narrow) {
|
||||
columns.last_triggered = {
|
||||
sortable: true,
|
||||
width: "20%",
|
||||
title: this.hass.localize("ui.card.automation.last_triggered"),
|
||||
template: (last_triggered) => html`
|
||||
${last_triggered
|
||||
? formatDateTime(new Date(last_triggered), this.hass.locale)
|
||||
: this.hass.localize("ui.components.relative_time.never")}
|
||||
`,
|
||||
};
|
||||
}
|
||||
columns.info = {
|
||||
title: "",
|
||||
type: "icon-button",
|
||||
template: (_info, script) => html`
|
||||
<mwc-icon-button
|
||||
.script=${script}
|
||||
@click=${this._showInfo}
|
||||
title="${this.hass.localize(
|
||||
"ui.panel.config.script.picker.show_info"
|
||||
)}"
|
||||
>
|
||||
<ha-svg-icon .path=${mdiInformationOutline}></ha-svg-icon>
|
||||
</mwc-icon-button>
|
||||
`,
|
||||
};
|
||||
columns.trace = {
|
||||
title: "",
|
||||
type: "icon-button",
|
||||
template: (_info, script: any) => html`
|
||||
<a href="/config/script/trace/${script.entity_id}">
|
||||
<mwc-icon-button
|
||||
.label=${this.hass.localize(
|
||||
"ui.panel.config.script.picker.dev_script"
|
||||
)}
|
||||
>
|
||||
<ha-svg-icon .path=${mdiHistory}></ha-svg-icon>
|
||||
</mwc-icon-button>
|
||||
</a>
|
||||
`,
|
||||
};
|
||||
columns.edit = {
|
||||
title: "",
|
||||
type: "icon-button",
|
||||
template: (_info, script: any) => html`
|
||||
<a href="/config/script/edit/${script.entity_id}">
|
||||
<mwc-icon-button
|
||||
.script=${script}
|
||||
@click=${this._showInfo}
|
||||
title="${this.hass.localize(
|
||||
"ui.panel.config.script.picker.show_info"
|
||||
"ui.panel.config.script.picker.edit_script"
|
||||
)}"
|
||||
>
|
||||
<ha-svg-icon .path=${mdiInformationOutline}></ha-svg-icon>
|
||||
<ha-svg-icon .path=${mdiPencil}></ha-svg-icon>
|
||||
</mwc-icon-button>
|
||||
`,
|
||||
};
|
||||
columns.trace = {
|
||||
title: "",
|
||||
type: "icon-button",
|
||||
template: (_info, script: any) => html`
|
||||
<a href="/config/script/trace/${script.entity_id}">
|
||||
<mwc-icon-button
|
||||
.label=${this.hass.localize(
|
||||
"ui.panel.config.script.picker.dev_script"
|
||||
)}
|
||||
>
|
||||
<ha-svg-icon .path=${mdiHistory}></ha-svg-icon>
|
||||
</mwc-icon-button>
|
||||
</a>
|
||||
`,
|
||||
};
|
||||
columns.edit = {
|
||||
title: "",
|
||||
type: "icon-button",
|
||||
template: (_info, script: any) => html`
|
||||
<a href="/config/script/edit/${script.entity_id}">
|
||||
<mwc-icon-button
|
||||
title="${this.hass.localize(
|
||||
"ui.panel.config.script.picker.edit_script"
|
||||
)}"
|
||||
>
|
||||
<ha-svg-icon .path=${mdiPencil}></ha-svg-icon>
|
||||
</mwc-icon-button>
|
||||
</a>
|
||||
`,
|
||||
};
|
||||
return columns;
|
||||
}
|
||||
);
|
||||
</a>
|
||||
`,
|
||||
};
|
||||
return columns;
|
||||
});
|
||||
|
||||
protected render(): TemplateResult {
|
||||
return html`
|
||||
|
||||
@ -423,8 +423,8 @@ export class HaScriptTrace extends LitElement {
|
||||
|
||||
private _timelinePathPicked(ev) {
|
||||
const path = ev.detail.value;
|
||||
const nodes = this.shadowRoot!.querySelector("hat-script-graph")!
|
||||
.trackedNodes;
|
||||
const nodes =
|
||||
this.shadowRoot!.querySelector("hat-script-graph")!.trackedNodes;
|
||||
if (nodes[path]) {
|
||||
this._selected = nodes[path];
|
||||
}
|
||||
|
||||
@ -17,7 +17,8 @@ const QR_LOGO_URL = "/static/icons/favicon-192x192.png";
|
||||
@customElement("dialog-tag-detail")
|
||||
class DialogTagDetail
|
||||
extends LitElement
|
||||
implements HassDialog<TagDetailDialogParams> {
|
||||
implements HassDialog<TagDetailDialogParams>
|
||||
{
|
||||
@property({ attribute: false }) public hass!: HomeAssistant;
|
||||
|
||||
@state() private _id?: string;
|
||||
|
||||
@ -142,7 +142,7 @@ export class HaConfigUsers extends LitElement {
|
||||
private async _fetchUsers() {
|
||||
this._users = await fetchUsers(this.hass);
|
||||
|
||||
this._users.forEach(function (user) {
|
||||
this._users.forEach((user) => {
|
||||
if (user.is_owner) {
|
||||
user.group_ids.unshift("owner");
|
||||
}
|
||||
|
||||
@ -75,9 +75,8 @@ export class HaConfigZone extends SubscribeMixin(LitElement) {
|
||||
const passiveRadiusColor = computedStyles.getPropertyValue(
|
||||
"--secondary-text-color"
|
||||
);
|
||||
const homeRadiusColor = computedStyles.getPropertyValue(
|
||||
"--primary-color"
|
||||
);
|
||||
const homeRadiusColor =
|
||||
computedStyles.getPropertyValue("--primary-color");
|
||||
|
||||
const stateLocations: MarkerLocation[] = stateItems.map(
|
||||
(entityState) => ({
|
||||
@ -410,9 +409,9 @@ export class HaConfigZone extends SubscribeMixin(LitElement) {
|
||||
|
||||
private async _createEntry(values: ZoneMutableParams) {
|
||||
const created = await createZone(this.hass!, values);
|
||||
this._storageItems = this._storageItems!.concat(
|
||||
created
|
||||
).sort((ent1, ent2) => compare(ent1.name, ent2.name));
|
||||
this._storageItems = this._storageItems!.concat(created).sort(
|
||||
(ent1, ent2) => compare(ent1.name, ent2.name)
|
||||
);
|
||||
if (this.narrow) {
|
||||
return;
|
||||
}
|
||||
|
||||
@ -178,8 +178,9 @@ class HaPanelDevEvent extends EventsMixin(LocalizeMixin(PolymerElement)) {
|
||||
});
|
||||
return;
|
||||
}
|
||||
this.hass.callApi("POST", "events/" + this.eventType, this.parsedJSON).then(
|
||||
function () {
|
||||
this.hass
|
||||
.callApi("POST", "events/" + this.eventType, this.parsedJSON)
|
||||
.then(() => {
|
||||
this.fire("hass-notification", {
|
||||
message: this.hass.localize(
|
||||
"ui.panel.developer-tools.tabs.events.notification_event_fired",
|
||||
@ -187,8 +188,7 @@ class HaPanelDevEvent extends EventsMixin(LocalizeMixin(PolymerElement)) {
|
||||
this.eventType
|
||||
),
|
||||
});
|
||||
}.bind(this)
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
computeFormClasses(narrow) {
|
||||
|
||||
@ -57,11 +57,9 @@ class EventsList extends EventsMixin(LocalizeMixin(PolymerElement)) {
|
||||
|
||||
connectedCallback() {
|
||||
super.connectedCallback();
|
||||
this.hass.callApi("GET", "events").then(
|
||||
function (events) {
|
||||
this.events = events.sort((e1, e2) => compare(e1.event, e2.event));
|
||||
}.bind(this)
|
||||
);
|
||||
this.hass.callApi("GET", "events").then((events) => {
|
||||
this.events = events.sort((e1, e2) => compare(e1.event, e2.event));
|
||||
});
|
||||
}
|
||||
|
||||
eventSelected(ev) {
|
||||
|
||||
@ -485,7 +485,7 @@ class HaPanelDevState extends EventsMixin(LocalizeMixin(PolymerElement)) {
|
||||
|
||||
return true;
|
||||
})
|
||||
.sort(function (entityA, entityB) {
|
||||
.sort((entityA, entityB) => {
|
||||
if (entityA.entity_id < entityB.entity_id) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
import { Layout1d, scroll } from "../../resources/lit-virtualizer";
|
||||
import {
|
||||
css,
|
||||
CSSResultGroup,
|
||||
@ -9,6 +8,7 @@ import {
|
||||
} from "lit";
|
||||
import { customElement, eventOptions, property } from "lit/decorators";
|
||||
import { classMap } from "lit/directives/class-map";
|
||||
import { Layout1d, scroll } from "../../resources/lit-virtualizer";
|
||||
import { DOMAINS_WITH_DYNAMIC_PICTURE } from "../../common/const";
|
||||
import { formatDate } from "../../common/datetime/format_date";
|
||||
import { formatTimeWithSeconds } from "../../common/datetime/format_time";
|
||||
|
||||
@ -202,9 +202,11 @@ class HuiEntitiesCard extends LitElement implements LovelaceCard {
|
||||
: html`
|
||||
<hui-entities-toggle
|
||||
.hass=${this._hass}
|
||||
.entities=${(this._configEntities!.filter(
|
||||
(conf) => "entity" in conf
|
||||
) as EntityConfig[]).map((conf) => conf.entity)}
|
||||
.entities=${(
|
||||
this._configEntities!.filter(
|
||||
(conf) => "entity" in conf
|
||||
) as EntityConfig[]
|
||||
).map((conf) => conf.entity)}
|
||||
></hui-entities-toggle>
|
||||
`}
|
||||
</h1>
|
||||
|
||||
@ -242,9 +242,9 @@ export class HuiHumidifierCard extends LitElement implements LovelaceCard {
|
||||
// This is not done to the SVG containing the current humidity, because
|
||||
// it should not be centered on the text, but only on the value
|
||||
if (this.shadowRoot && this.shadowRoot.querySelector("ha-card")) {
|
||||
(this.shadowRoot.querySelector(
|
||||
"ha-card"
|
||||
) as LitElement).updateComplete.then(() => {
|
||||
(
|
||||
this.shadowRoot.querySelector("ha-card") as LitElement
|
||||
).updateComplete.then(() => {
|
||||
const svgRoot = this.shadowRoot!.querySelector("#set-values");
|
||||
const box = svgRoot!.querySelector("g")!.getBBox();
|
||||
svgRoot!.setAttribute(
|
||||
|
||||
@ -9,6 +9,8 @@ import {
|
||||
TemplateResult,
|
||||
} from "lit";
|
||||
import { customElement, property, query, state } from "lit/decorators";
|
||||
import { mdiImageFilterCenterFocus } from "@mdi/js";
|
||||
import memoizeOne from "memoize-one";
|
||||
import { computeDomain } from "../../../common/entity/compute_domain";
|
||||
import parseAspectRatio from "../../../common/util/parse-aspect-ratio";
|
||||
import "../../../components/ha-card";
|
||||
@ -22,9 +24,7 @@ import { EntityConfig } from "../entity-rows/types";
|
||||
import { LovelaceCard } from "../types";
|
||||
import { MapCardConfig } from "./types";
|
||||
import "../../../components/map/ha-map";
|
||||
import { mdiImageFilterCenterFocus } from "@mdi/js";
|
||||
import type { HaMap, HaMapPaths } from "../../../components/map/ha-map";
|
||||
import memoizeOne from "memoize-one";
|
||||
import { getColorByIndex } from "../../../common/color/colors";
|
||||
|
||||
const MINUTE = 60000;
|
||||
@ -74,9 +74,10 @@ class HuiMapCard extends LitElement implements LovelaceCard {
|
||||
}
|
||||
|
||||
this._config = config;
|
||||
this._configEntities = (config.entities
|
||||
? processConfigEntities<EntityConfig>(config.entities)
|
||||
: []
|
||||
this._configEntities = (
|
||||
config.entities
|
||||
? processConfigEntities<EntityConfig>(config.entities)
|
||||
: []
|
||||
).map((entity) => entity.entity);
|
||||
|
||||
this._cleanupHistory();
|
||||
|
||||
@ -528,9 +528,9 @@ export class HuiMediaControlCard extends LitElement implements LovelaceCard {
|
||||
return;
|
||||
}
|
||||
|
||||
const progressWidth = (this.shadowRoot!.querySelector(
|
||||
"paper-progress"
|
||||
) as HTMLElement).offsetWidth;
|
||||
const progressWidth = (
|
||||
this.shadowRoot!.querySelector("paper-progress") as HTMLElement
|
||||
).offsetWidth;
|
||||
|
||||
const percent = e.offsetX / progressWidth;
|
||||
const position = (e.currentTarget! as any).max * percent;
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
import { HassEntity } from "home-assistant-js-websocket/dist/types";
|
||||
import { computeDomain } from "../../../common/entity/compute_domain";
|
||||
import { customElement } from "lit/decorators";
|
||||
import { computeDomain } from "../../../common/entity/compute_domain";
|
||||
import { HomeAssistant } from "../../../types";
|
||||
import { findEntities } from "../common/find-entities";
|
||||
import { GraphHeaderFooterConfig } from "../header-footer/types";
|
||||
|
||||
@ -35,7 +35,8 @@ let Sortable;
|
||||
@customElement("hui-shopping-list-card")
|
||||
class HuiShoppingListCard
|
||||
extends SubscribeMixin(LitElement)
|
||||
implements LovelaceCard {
|
||||
implements LovelaceCard
|
||||
{
|
||||
public static async getConfigElement(): Promise<LovelaceCardEditor> {
|
||||
await import("../editor/config-elements/hui-shopping-list-editor");
|
||||
return document.createElement("hui-shopping-list-card-editor");
|
||||
|
||||
@ -15,7 +15,8 @@ import { StackCardConfig } from "./types";
|
||||
|
||||
export abstract class HuiStackCard<T extends StackCardConfig = StackCardConfig>
|
||||
extends LitElement
|
||||
implements LovelaceCard {
|
||||
implements LovelaceCard
|
||||
{
|
||||
public static async getConfigElement(): Promise<LovelaceCardEditor> {
|
||||
await import("../editor/config-elements/hui-stack-card-editor");
|
||||
return document.createElement("hui-stack-card-editor");
|
||||
|
||||
@ -240,10 +240,9 @@ export const generateViewConfig = (
|
||||
splitted.groups.forEach((groupEntity) => {
|
||||
cards = cards.concat(
|
||||
computeCards(
|
||||
groupEntity.attributes.entity_id.map((entityId): [
|
||||
string,
|
||||
HassEntity
|
||||
] => [entityId, entities[entityId]]),
|
||||
groupEntity.attributes.entity_id.map(
|
||||
(entityId): [string, HassEntity] => [entityId, entities[entityId]]
|
||||
),
|
||||
{
|
||||
title: computeStateName(groupEntity),
|
||||
show_header_toggle: groupEntity.attributes.control !== "hidden",
|
||||
|
||||
@ -11,40 +11,38 @@ export const processConfigEntities = <
|
||||
throw new Error("Entities need to be an array");
|
||||
}
|
||||
|
||||
return entities.map(
|
||||
(entityConf, index): T => {
|
||||
if (
|
||||
typeof entityConf === "object" &&
|
||||
!Array.isArray(entityConf) &&
|
||||
entityConf.type
|
||||
) {
|
||||
return entityConf;
|
||||
}
|
||||
return entities.map((entityConf, index): T => {
|
||||
if (
|
||||
typeof entityConf === "object" &&
|
||||
!Array.isArray(entityConf) &&
|
||||
entityConf.type
|
||||
) {
|
||||
return entityConf;
|
||||
}
|
||||
|
||||
let config: T;
|
||||
let config: T;
|
||||
|
||||
if (typeof entityConf === "string") {
|
||||
config = { entity: entityConf } as T;
|
||||
} else if (typeof entityConf === "object" && !Array.isArray(entityConf)) {
|
||||
if (!("entity" in entityConf)) {
|
||||
throw new Error(
|
||||
`Entity object at position ${index} is missing entity field.`
|
||||
);
|
||||
}
|
||||
config = entityConf as T;
|
||||
} else {
|
||||
throw new Error(`Invalid entity specified at position ${index}.`);
|
||||
}
|
||||
|
||||
if (!isValidEntityId((config as EntityConfig).entity!)) {
|
||||
if (typeof entityConf === "string") {
|
||||
config = { entity: entityConf } as T;
|
||||
} else if (typeof entityConf === "object" && !Array.isArray(entityConf)) {
|
||||
if (!("entity" in entityConf)) {
|
||||
throw new Error(
|
||||
`Invalid entity ID at position ${index}: ${
|
||||
(config as EntityConfig).entity
|
||||
}`
|
||||
`Entity object at position ${index} is missing entity field.`
|
||||
);
|
||||
}
|
||||
|
||||
return config;
|
||||
config = entityConf as T;
|
||||
} else {
|
||||
throw new Error(`Invalid entity specified at position ${index}.`);
|
||||
}
|
||||
);
|
||||
|
||||
if (!isValidEntityId((config as EntityConfig).entity!)) {
|
||||
throw new Error(
|
||||
`Invalid entity ID at position ${index}: ${
|
||||
(config as EntityConfig).entity
|
||||
}`
|
||||
);
|
||||
}
|
||||
|
||||
return config;
|
||||
});
|
||||
};
|
||||
|
||||
@ -22,6 +22,6 @@ export function checkConditionsMet(
|
||||
|
||||
export function validateConditionalConfig(conditions: Condition[]): boolean {
|
||||
return conditions.every(
|
||||
(c) => ((c.entity && (c.state || c.state_not)) as unknown) as boolean
|
||||
(c) => (c.entity && (c.state || c.state_not)) as unknown as boolean
|
||||
);
|
||||
}
|
||||
|
||||
@ -145,9 +145,9 @@ export class HuiActionEditor extends LitElement {
|
||||
if (value === "default") {
|
||||
fireEvent(this, "value-changed", { value: undefined });
|
||||
if (this.config?.action) {
|
||||
(this.shadowRoot!.querySelector(
|
||||
"paper-listbox"
|
||||
) as PaperListboxElement).select(this.config.action);
|
||||
(
|
||||
this.shadowRoot!.querySelector("paper-listbox") as PaperListboxElement
|
||||
).select(this.config.action);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
@ -21,8 +21,9 @@ export const addEntitiesToLovelaceView = async (
|
||||
(dashboard) => dashboard.mode === "storage"
|
||||
);
|
||||
|
||||
const mainLovelaceMode = (hass!.panels.lovelace
|
||||
?.config as LovelacePanelConfig)?.mode;
|
||||
const mainLovelaceMode = (
|
||||
hass!.panels.lovelace?.config as LovelacePanelConfig
|
||||
)?.mode;
|
||||
|
||||
if (mainLovelaceMode !== "storage" && !storageDashs.length) {
|
||||
// no storage dashboards, just show the YAML config
|
||||
@ -71,8 +72,7 @@ export const addEntitiesToLovelaceView = async (
|
||||
} else {
|
||||
// all storage dashboards are generated
|
||||
showAlertDialog(element, {
|
||||
text:
|
||||
"You don't seem to be in control of any dashboard, please take control first.",
|
||||
text: "You don't seem to be in control of any dashboard, please take control first.",
|
||||
});
|
||||
}
|
||||
return;
|
||||
@ -80,8 +80,7 @@ export const addEntitiesToLovelaceView = async (
|
||||
|
||||
if (!storageDashs.length && !lovelaceConfig.views?.length) {
|
||||
showAlertDialog(element, {
|
||||
text:
|
||||
"You don't have any Lovelace views, first create a view in Lovelace.",
|
||||
text: "You don't have any Lovelace views, first create a view in Lovelace.",
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
@ -34,7 +34,8 @@ interface SelectedChangedEvent {
|
||||
@customElement("hui-dialog-create-card")
|
||||
export class HuiCreateDialogCard
|
||||
extends LitElement
|
||||
implements HassDialog<CreateCardDialogParams> {
|
||||
implements HassDialog<CreateCardDialogParams>
|
||||
{
|
||||
@property({ attribute: false }) protected hass!: HomeAssistant;
|
||||
|
||||
@state() private _params?: CreateCardDialogParams;
|
||||
|
||||
@ -47,7 +47,8 @@ declare global {
|
||||
@customElement("hui-dialog-edit-card")
|
||||
export class HuiDialogEditCard
|
||||
extends LitElement
|
||||
implements HassDialog<EditCardDialogParams> {
|
||||
implements HassDialog<EditCardDialogParams>
|
||||
{
|
||||
@property({ attribute: false }) public hass!: HomeAssistant;
|
||||
|
||||
@property({ type: Boolean, reflect: true }) public large = false;
|
||||
|
||||
@ -121,9 +121,9 @@ export class HuiEntityPickerTable extends LitElement {
|
||||
}
|
||||
|
||||
private _handleEntityClicked(ev: Event) {
|
||||
const entityId = ((ev.target as HTMLElement).closest(
|
||||
".mdc-data-table__row"
|
||||
) as any).rowId;
|
||||
const entityId = (
|
||||
(ev.target as HTMLElement).closest(".mdc-data-table__row") as any
|
||||
).rowId;
|
||||
fireEvent(this, "hass-more-info", {
|
||||
entityId,
|
||||
});
|
||||
|
||||
@ -27,7 +27,8 @@ const includeDomains = ["alarm_control_panel"];
|
||||
@customElement("hui-alarm-panel-card-editor")
|
||||
export class HuiAlarmPanelCardEditor
|
||||
extends LitElement
|
||||
implements LovelaceCardEditor {
|
||||
implements LovelaceCardEditor
|
||||
{
|
||||
@property({ attribute: false }) public hass?: HomeAssistant;
|
||||
|
||||
@state() private _config?: AlarmPanelCardConfig;
|
||||
|
||||
@ -45,7 +45,8 @@ const actions = [
|
||||
@customElement("hui-button-card-editor")
|
||||
export class HuiButtonCardEditor
|
||||
extends LitElement
|
||||
implements LovelaceCardEditor {
|
||||
implements LovelaceCardEditor
|
||||
{
|
||||
@property({ attribute: false }) public hass?: HomeAssistant;
|
||||
|
||||
@state() private _config?: ButtonCardConfig;
|
||||
|
||||
@ -32,7 +32,8 @@ const views = ["dayGridMonth", "dayGridDay", "listWeek"];
|
||||
@customElement("hui-calendar-card-editor")
|
||||
export class HuiCalendarCardEditor
|
||||
extends LitElement
|
||||
implements LovelaceCardEditor {
|
||||
implements LovelaceCardEditor
|
||||
{
|
||||
@property({ attribute: false }) public hass?: HomeAssistant;
|
||||
|
||||
@property({ attribute: false }) private _config?: CalendarCardConfig;
|
||||
|
||||
@ -32,7 +32,8 @@ const cardConfigStruct = object({
|
||||
@customElement("hui-conditional-card-editor")
|
||||
export class HuiConditionalCardEditor
|
||||
extends LitElement
|
||||
implements LovelaceCardEditor {
|
||||
implements LovelaceCardEditor
|
||||
{
|
||||
@property({ attribute: false }) public hass?: HomeAssistant;
|
||||
|
||||
@property({ attribute: false }) public lovelace?: LovelaceConfig;
|
||||
|
||||
@ -167,7 +167,8 @@ const cardConfigStruct = object({
|
||||
@customElement("hui-entities-card-editor")
|
||||
export class HuiEntitiesCardEditor
|
||||
extends LitElement
|
||||
implements LovelaceCardEditor {
|
||||
implements LovelaceCardEditor
|
||||
{
|
||||
@property({ attribute: false }) public hass?: HomeAssistant;
|
||||
|
||||
@state() private _config?: EntitiesCardConfig;
|
||||
|
||||
@ -30,7 +30,8 @@ const cardConfigStruct = object({
|
||||
@customElement("hui-entity-card-editor")
|
||||
export class HuiEntityCardEditor
|
||||
extends LitElement
|
||||
implements LovelaceCardEditor {
|
||||
implements LovelaceCardEditor
|
||||
{
|
||||
@property({ attribute: false }) public hass?: HomeAssistant;
|
||||
|
||||
@state() private _config?: EntityCardConfig;
|
||||
|
||||
@ -30,7 +30,8 @@ const includeDomains = ["counter", "input_number", "number", "sensor"];
|
||||
@customElement("hui-gauge-card-editor")
|
||||
export class HuiGaugeCardEditor
|
||||
extends LitElement
|
||||
implements LovelaceCardEditor {
|
||||
implements LovelaceCardEditor
|
||||
{
|
||||
@property({ attribute: false }) public hass?: HomeAssistant;
|
||||
|
||||
@state() private _config?: GaugeCardConfig;
|
||||
|
||||
@ -31,7 +31,8 @@ const SecondaryInfoValues: { [key: string]: { domains?: string[] } } = {
|
||||
@customElement("hui-generic-entity-row-editor")
|
||||
export class HuiGenericEntityRowEditor
|
||||
extends LitElement
|
||||
implements LovelaceRowEditor {
|
||||
implements LovelaceRowEditor
|
||||
{
|
||||
@property({ attribute: false }) public hass?: HomeAssistant;
|
||||
|
||||
@state() private _config?: EntitiesCardEntityConfig;
|
||||
|
||||
@ -45,7 +45,8 @@ const cardConfigStruct = object({
|
||||
@customElement("hui-glance-card-editor")
|
||||
export class HuiGlanceCardEditor
|
||||
extends LitElement
|
||||
implements LovelaceCardEditor {
|
||||
implements LovelaceCardEditor
|
||||
{
|
||||
@property({ attribute: false }) public hass?: HomeAssistant;
|
||||
|
||||
@state() private _config?: GlanceCardConfig;
|
||||
|
||||
@ -19,7 +19,8 @@ const includeDomains = ["sensor"];
|
||||
@customElement("hui-graph-footer-editor")
|
||||
export class HuiGraphFooterEditor
|
||||
extends LitElement
|
||||
implements LovelaceCardEditor {
|
||||
implements LovelaceCardEditor
|
||||
{
|
||||
@property({ attribute: false }) public hass?: HomeAssistant;
|
||||
|
||||
@state() private _config?: GraphHeaderFooterConfig;
|
||||
|
||||
@ -24,7 +24,8 @@ const cardConfigStruct = object({
|
||||
@customElement("hui-history-graph-card-editor")
|
||||
export class HuiHistoryGraphCardEditor
|
||||
extends LitElement
|
||||
implements LovelaceCardEditor {
|
||||
implements LovelaceCardEditor
|
||||
{
|
||||
@property({ attribute: false }) public hass?: HomeAssistant;
|
||||
|
||||
@state() private _config?: HistoryGraphCardConfig;
|
||||
|
||||
@ -23,7 +23,8 @@ const includeDomains = ["humidifier"];
|
||||
@customElement("hui-humidifier-card-editor")
|
||||
export class HuiHumidifierCardEditor
|
||||
extends LitElement
|
||||
implements LovelaceCardEditor {
|
||||
implements LovelaceCardEditor
|
||||
{
|
||||
@property({ attribute: false }) public hass?: HomeAssistant;
|
||||
|
||||
@state() private _config?: HumidifierCardConfig;
|
||||
|
||||
@ -19,7 +19,8 @@ const cardConfigStruct = object({
|
||||
@customElement("hui-iframe-card-editor")
|
||||
export class HuiIframeCardEditor
|
||||
extends LitElement
|
||||
implements LovelaceCardEditor {
|
||||
implements LovelaceCardEditor
|
||||
{
|
||||
@property({ attribute: false }) public hass?: HomeAssistant;
|
||||
|
||||
@state() private _config?: IframeCardConfig;
|
||||
|
||||
@ -31,7 +31,8 @@ const includeDomains = ["light"];
|
||||
@customElement("hui-light-card-editor")
|
||||
export class HuiLightCardEditor
|
||||
extends LitElement
|
||||
implements LovelaceCardEditor {
|
||||
implements LovelaceCardEditor
|
||||
{
|
||||
@property({ attribute: false }) public hass?: HomeAssistant;
|
||||
|
||||
@state() private _config?: LightCardConfig;
|
||||
|
||||
@ -24,7 +24,8 @@ const cardConfigStruct = object({
|
||||
@customElement("hui-logbook-card-editor")
|
||||
export class HuiLogbookCardEditor
|
||||
extends LitElement
|
||||
implements LovelaceCardEditor {
|
||||
implements LovelaceCardEditor
|
||||
{
|
||||
@property({ attribute: false }) public hass?: HomeAssistant;
|
||||
|
||||
@state() private _config?: LogbookCardConfig;
|
||||
|
||||
@ -21,7 +21,8 @@ const cardConfigStruct = object({
|
||||
@customElement("hui-markdown-card-editor")
|
||||
export class HuiMarkdownCardEditor
|
||||
extends LitElement
|
||||
implements LovelaceCardEditor {
|
||||
implements LovelaceCardEditor
|
||||
{
|
||||
@property({ attribute: false }) public hass?: HomeAssistant;
|
||||
|
||||
@state() private _config?: MarkdownCardConfig;
|
||||
|
||||
@ -20,7 +20,8 @@ const includeDomains = ["media_player"];
|
||||
@customElement("hui-media-control-card-editor")
|
||||
export class HuiMediaControlCardEditor
|
||||
extends LitElement
|
||||
implements LovelaceCardEditor {
|
||||
implements LovelaceCardEditor
|
||||
{
|
||||
@property({ attribute: false }) public hass?: HomeAssistant;
|
||||
|
||||
@state() private _config?: MediaControlCardConfig;
|
||||
|
||||
@ -24,7 +24,8 @@ const cardConfigStruct = object({
|
||||
@customElement("hui-picture-card-editor")
|
||||
export class HuiPictureCardEditor
|
||||
extends LitElement
|
||||
implements LovelaceCardEditor {
|
||||
implements LovelaceCardEditor
|
||||
{
|
||||
@property({ attribute: false }) public hass?: HomeAssistant;
|
||||
|
||||
@state() private _config?: PictureCardConfig;
|
||||
|
||||
@ -40,7 +40,8 @@ const includeDomains = ["camera"];
|
||||
@customElement("hui-picture-entity-card-editor")
|
||||
export class HuiPictureEntityCardEditor
|
||||
extends LitElement
|
||||
implements LovelaceCardEditor {
|
||||
implements LovelaceCardEditor
|
||||
{
|
||||
@property({ attribute: false }) public hass?: HomeAssistant;
|
||||
|
||||
@state() private _config?: PictureEntityCardConfig;
|
||||
|
||||
@ -40,7 +40,8 @@ const includeDomains = ["camera"];
|
||||
@customElement("hui-picture-glance-card-editor")
|
||||
export class HuiPictureGlanceCardEditor
|
||||
extends LitElement
|
||||
implements LovelaceCardEditor {
|
||||
implements LovelaceCardEditor
|
||||
{
|
||||
@property({ attribute: false }) public hass?: HomeAssistant;
|
||||
|
||||
@state() private _config?: PictureGlanceCardConfig;
|
||||
|
||||
@ -24,7 +24,8 @@ const includeDomains = ["plant"];
|
||||
@customElement("hui-plant-status-card-editor")
|
||||
export class HuiPlantStatusCardEditor
|
||||
extends LitElement
|
||||
implements LovelaceCardEditor {
|
||||
implements LovelaceCardEditor
|
||||
{
|
||||
@property({ attribute: false }) public hass?: HomeAssistant;
|
||||
|
||||
@state() private _config?: PlantStatusCardConfig;
|
||||
|
||||
@ -35,7 +35,8 @@ const includeDomains = ["counter", "input_number", "number", "sensor"];
|
||||
@customElement("hui-sensor-card-editor")
|
||||
export class HuiSensorCardEditor
|
||||
extends LitElement
|
||||
implements LovelaceCardEditor {
|
||||
implements LovelaceCardEditor
|
||||
{
|
||||
@property({ attribute: false }) public hass?: HomeAssistant;
|
||||
|
||||
@state() private _config?: SensorCardConfig;
|
||||
|
||||
@ -19,7 +19,8 @@ const cardConfigStruct = object({
|
||||
@customElement("hui-shopping-list-card-editor")
|
||||
export class HuiShoppingListEditor
|
||||
extends LitElement
|
||||
implements LovelaceCardEditor {
|
||||
implements LovelaceCardEditor
|
||||
{
|
||||
@property({ attribute: false }) public hass?: HomeAssistant;
|
||||
|
||||
@state() private _config?: ShoppingListCardConfig;
|
||||
|
||||
@ -25,7 +25,8 @@ const cardConfigStruct = object({
|
||||
@customElement("hui-stack-card-editor")
|
||||
export class HuiStackCardEditor
|
||||
extends LitElement
|
||||
implements LovelaceCardEditor {
|
||||
implements LovelaceCardEditor
|
||||
{
|
||||
@property({ attribute: false }) public hass?: HomeAssistant;
|
||||
|
||||
@property({ attribute: false }) public lovelace?: LovelaceConfig;
|
||||
|
||||
@ -23,7 +23,8 @@ const includeDomains = ["climate"];
|
||||
@customElement("hui-thermostat-card-editor")
|
||||
export class HuiThermostatCardEditor
|
||||
extends LitElement
|
||||
implements LovelaceCardEditor {
|
||||
implements LovelaceCardEditor
|
||||
{
|
||||
@property({ attribute: false }) public hass?: HomeAssistant;
|
||||
|
||||
@state() private _config?: ThermostatCardConfig;
|
||||
|
||||
@ -32,7 +32,8 @@ const includeDomains = ["weather"];
|
||||
@customElement("hui-weather-forecast-card-editor")
|
||||
export class HuiWeatherForecastCardEditor
|
||||
extends LitElement
|
||||
implements LovelaceCardEditor {
|
||||
implements LovelaceCardEditor
|
||||
{
|
||||
@property({ attribute: false }) public hass?: HomeAssistant;
|
||||
|
||||
@state() private _config?: WeatherForecastCardConfig;
|
||||
|
||||
@ -14,7 +14,8 @@ import type { CreateHeaderFooterDialogParams } from "./show-create-headerfooter-
|
||||
@customElement("hui-dialog-create-headerfooter")
|
||||
export class HuiCreateDialogHeaderFooter
|
||||
extends LitElement
|
||||
implements HassDialog<CreateHeaderFooterDialogParams> {
|
||||
implements HassDialog<CreateHeaderFooterDialogParams>
|
||||
{
|
||||
@property({ attribute: false }) protected hass!: HomeAssistant;
|
||||
|
||||
@state() private _params?: CreateHeaderFooterDialogParams;
|
||||
|
||||
@ -265,7 +265,7 @@ export abstract class HuiElementEditor<T> extends LitElement {
|
||||
private _handleUIConfigChanged(ev: UIConfigChangedEvent) {
|
||||
ev.stopPropagation();
|
||||
const config = ev.detail.config;
|
||||
this.value = (config as unknown) as T;
|
||||
this.value = config as unknown as T;
|
||||
}
|
||||
|
||||
private _handleYAMLChanged(ev: CustomEvent) {
|
||||
|
||||
@ -58,11 +58,8 @@ export class HuiDialogEditView extends LitElement {
|
||||
this._badges = [];
|
||||
this._cards = [];
|
||||
} else {
|
||||
const {
|
||||
cards,
|
||||
badges,
|
||||
...viewConfig
|
||||
} = this._params.lovelace!.config.views[this._params.viewIndex];
|
||||
const { cards, badges, ...viewConfig } =
|
||||
this._params.lovelace!.config.views[this._params.viewIndex];
|
||||
this._config = viewConfig;
|
||||
this._badges = badges ? processEditorEntities(badges) : [];
|
||||
this._cards = cards;
|
||||
|
||||
@ -7,7 +7,8 @@ import { LovelaceElement, ServiceButtonElementConfig } from "./types";
|
||||
@customElement("hui-service-button-element")
|
||||
export class HuiServiceButtonElement
|
||||
extends LitElement
|
||||
implements LovelaceElement {
|
||||
implements LovelaceElement
|
||||
{
|
||||
public hass?: HomeAssistant;
|
||||
|
||||
@state() private _config?: ServiceButtonElementConfig;
|
||||
|
||||
@ -16,7 +16,8 @@ import { LovelaceElement, StateBadgeElementConfig } from "./types";
|
||||
@customElement("hui-state-badge-element")
|
||||
export class HuiStateBadgeElement
|
||||
extends LitElement
|
||||
implements LovelaceElement {
|
||||
implements LovelaceElement
|
||||
{
|
||||
@property({ attribute: false }) public hass?: HomeAssistant;
|
||||
|
||||
@state() private _config?: StateBadgeElementConfig;
|
||||
|
||||
@ -157,7 +157,7 @@ class HuiInputNumberEntityRow extends LitElement implements LovelaceRow {
|
||||
|
||||
private get _inputElement(): { value: string } {
|
||||
// linter recommended the following syntax
|
||||
return (this.shadowRoot!.getElementById("input") as unknown) as {
|
||||
return this.shadowRoot!.getElementById("input") as unknown as {
|
||||
value: string;
|
||||
};
|
||||
}
|
||||
|
||||
@ -124,9 +124,8 @@ class HuiInputSelectEntityRow extends LitElement implements LovelaceRow {
|
||||
|
||||
// Update selected after rendering the items or else it won't work in Firefox
|
||||
if (stateObj.attributes.options) {
|
||||
this.shadowRoot!.querySelector(
|
||||
"paper-listbox"
|
||||
)!.selected = stateObj.attributes.options.indexOf(stateObj.state);
|
||||
this.shadowRoot!.querySelector("paper-listbox")!.selected =
|
||||
stateObj.attributes.options.indexOf(stateObj.state);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -288,8 +288,8 @@ class HuiMediaPlayerEntityRow extends LitElement implements LovelaceRow {
|
||||
private _toggleMute() {
|
||||
this.hass!.callService("media_player", "volume_mute", {
|
||||
entity_id: this._config!.entity,
|
||||
is_volume_muted: !this.hass!.states[this._config!.entity].attributes
|
||||
.is_volume_muted,
|
||||
is_volume_muted:
|
||||
!this.hass!.states[this._config!.entity].attributes.is_volume_muted,
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@ -157,7 +157,7 @@ class HuiNumberEntityRow extends LitElement implements LovelaceRow {
|
||||
|
||||
private get _inputElement(): { value: string } {
|
||||
// linter recommended the following syntax
|
||||
return (this.shadowRoot!.getElementById("input") as unknown) as {
|
||||
return this.shadowRoot!.getElementById("input") as unknown as {
|
||||
value: string;
|
||||
};
|
||||
}
|
||||
|
||||
@ -131,9 +131,8 @@ class HuiSelectEntityRow extends LitElement implements LovelaceRow {
|
||||
|
||||
// Update selected after rendering the items or else it won't work in Firefox
|
||||
if (stateObj.attributes.options) {
|
||||
this.shadowRoot!.querySelector(
|
||||
"paper-listbox"
|
||||
)!.selected = stateObj.attributes.options.indexOf(stateObj.state);
|
||||
this.shadowRoot!.querySelector("paper-listbox")!.selected =
|
||||
stateObj.attributes.options.indexOf(stateObj.state);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -229,10 +229,9 @@ class LovelacePanel extends LitElement {
|
||||
}
|
||||
if (!resourcesLoaded) {
|
||||
resourcesLoaded = true;
|
||||
(
|
||||
llWindow.llConfProm || fetchResources(this.hass!.connection)
|
||||
).then((resources) =>
|
||||
loadLovelaceResources(resources, this.hass!.auth.data.hassUrl)
|
||||
(llWindow.llConfProm || fetchResources(this.hass!.connection)).then(
|
||||
(resources) =>
|
||||
loadLovelaceResources(resources, this.hass!.auth.data.hassUrl)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@ -10,7 +10,8 @@ import { ButtonsHeaderFooterConfig } from "./types";
|
||||
@customElement("hui-buttons-header-footer")
|
||||
export class HuiButtonsHeaderFooter
|
||||
extends LitElement
|
||||
implements LovelaceHeaderFooter {
|
||||
implements LovelaceHeaderFooter
|
||||
{
|
||||
public static getStubConfig(): Record<string, unknown> {
|
||||
return { entities: [] };
|
||||
}
|
||||
|
||||
@ -26,7 +26,8 @@ const includeDomains = ["counter", "input_number", "number", "sensor"];
|
||||
@customElement("hui-graph-header-footer")
|
||||
export class HuiGraphHeaderFooter
|
||||
extends LitElement
|
||||
implements LovelaceHeaderFooter {
|
||||
implements LovelaceHeaderFooter
|
||||
{
|
||||
public static async getConfigElement(): Promise<LovelaceHeaderFooterEditor> {
|
||||
await import("../editor/config-elements/hui-graph-footer-editor");
|
||||
return document.createElement("hui-graph-footer-editor");
|
||||
|
||||
@ -21,7 +21,8 @@ import { PictureHeaderFooterConfig } from "./types";
|
||||
@customElement("hui-picture-header-footer")
|
||||
export class HuiPictureHeaderFooter
|
||||
extends LitElement
|
||||
implements LovelaceHeaderFooter {
|
||||
implements LovelaceHeaderFooter
|
||||
{
|
||||
public static getStubConfig(): Record<string, unknown> {
|
||||
return {
|
||||
image:
|
||||
|
||||
@ -37,17 +37,13 @@ export class OriginalStatesStrategy {
|
||||
subscribeEntityRegistry(hass.connection, () => undefined);
|
||||
}
|
||||
|
||||
const [
|
||||
areaEntries,
|
||||
deviceEntries,
|
||||
entityEntries,
|
||||
localize,
|
||||
] = await Promise.all([
|
||||
subscribeOne(hass.connection, subscribeAreaRegistry),
|
||||
subscribeOne(hass.connection, subscribeDeviceRegistry),
|
||||
subscribeOne(hass.connection, subscribeEntityRegistry),
|
||||
hass.loadBackendTranslation("title"),
|
||||
]);
|
||||
const [areaEntries, deviceEntries, entityEntries, localize] =
|
||||
await Promise.all([
|
||||
subscribeOne(hass.connection, subscribeAreaRegistry),
|
||||
subscribeOne(hass.connection, subscribeDeviceRegistry),
|
||||
subscribeOne(hass.connection, subscribeEntityRegistry),
|
||||
hass.loadBackendTranslation("title"),
|
||||
]);
|
||||
|
||||
// User can override default view. If they didn't, we will add one
|
||||
// that contains all entities.
|
||||
|
||||
@ -168,17 +168,13 @@ class HaPanelMailbox extends EventsMixin(LocalizeMixin(PolymerElement)) {
|
||||
this.hassChanged = this.hassChanged.bind(this);
|
||||
this.hass.connection
|
||||
.subscribeEvents(this.hassChanged, "mailbox_updated")
|
||||
.then(
|
||||
function (unsub) {
|
||||
this._unsubEvents = unsub;
|
||||
}.bind(this)
|
||||
);
|
||||
this.computePlatforms().then(
|
||||
function (platforms) {
|
||||
this.platforms = platforms;
|
||||
this.hassChanged();
|
||||
}.bind(this)
|
||||
);
|
||||
.then((unsub) => {
|
||||
this._unsubEvents = unsub;
|
||||
});
|
||||
this.computePlatforms().then((platforms) => {
|
||||
this.platforms = platforms;
|
||||
this.hassChanged();
|
||||
});
|
||||
}
|
||||
|
||||
disconnectedCallback() {
|
||||
@ -190,11 +186,9 @@ class HaPanelMailbox extends EventsMixin(LocalizeMixin(PolymerElement)) {
|
||||
if (!this._messages) {
|
||||
this._messages = [];
|
||||
}
|
||||
this.getMessages().then(
|
||||
function (items) {
|
||||
this._messages = items;
|
||||
}.bind(this)
|
||||
);
|
||||
this.getMessages().then((items) => {
|
||||
this._messages = items;
|
||||
});
|
||||
}
|
||||
|
||||
openMP3Dialog(event) {
|
||||
@ -225,9 +219,9 @@ class HaPanelMailbox extends EventsMixin(LocalizeMixin(PolymerElement)) {
|
||||
platform: platform,
|
||||
});
|
||||
}
|
||||
return platformItems.sort(function (a, b) {
|
||||
return new Date(b.timestamp) - new Date(a.timestamp);
|
||||
});
|
||||
return platformItems.sort(
|
||||
(a, b) => new Date(b.timestamp) - new Date(a.timestamp)
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@ -8,6 +8,7 @@ async function init() {
|
||||
// eslint-disable-next-line no-new
|
||||
new ET();
|
||||
} catch (_a) {
|
||||
// eslint-disable-next-line import/no-extraneous-dependencies
|
||||
ET = (await import("event-target-shim")).default.EventTarget;
|
||||
}
|
||||
return ET;
|
||||
|
||||
@ -9,7 +9,7 @@ import "unfetch/polyfill";
|
||||
|
||||
// Source: https://github.com/jserz/js_piece/blob/master/DOM/ParentNode/append()/append().md
|
||||
(function (arr) {
|
||||
arr.forEach(function (item) {
|
||||
arr.forEach((item) => {
|
||||
if (Object.prototype.hasOwnProperty.call(item, "append")) {
|
||||
return;
|
||||
}
|
||||
@ -20,7 +20,7 @@ import "unfetch/polyfill";
|
||||
value: function append(...argArr) {
|
||||
const docFrag = document.createDocumentFragment();
|
||||
|
||||
argArr.forEach(function (argItem) {
|
||||
argArr.forEach((argItem) => {
|
||||
const isNode = argItem instanceof Node;
|
||||
docFrag.appendChild(
|
||||
isNode ? argItem : document.createTextNode(String(argItem))
|
||||
|
||||
@ -14,7 +14,8 @@ export interface Layout1dBaseConfig {
|
||||
totalItems?: number;
|
||||
}
|
||||
export declare abstract class Layout1dBase<C extends Layout1dBaseConfig>
|
||||
implements Layout {
|
||||
implements Layout
|
||||
{
|
||||
/**
|
||||
* The last set viewport scroll position.
|
||||
*/
|
||||
|
||||
@ -9,9 +9,7 @@ export declare abstract class Layout1dGrid<
|
||||
_viewDim2Changed(): void;
|
||||
_itemDim2Changed(): void;
|
||||
_getActiveItems(): void;
|
||||
_getItemPosition(
|
||||
idx: number
|
||||
): {
|
||||
_getItemPosition(idx: number): {
|
||||
top: number;
|
||||
left: number;
|
||||
};
|
||||
|
||||
@ -45,9 +45,8 @@ class StateCardInputSelect extends LitElement {
|
||||
protected updated(changedProps: PropertyValues) {
|
||||
super.updated(changedProps);
|
||||
// Update selected after rendering the items or else it won't work in Firefox
|
||||
this.shadowRoot!.querySelector(
|
||||
"paper-listbox"
|
||||
)!.selected = this.stateObj.attributes.options.indexOf(this.stateObj.state);
|
||||
this.shadowRoot!.querySelector("paper-listbox")!.selected =
|
||||
this.stateObj.attributes.options.indexOf(this.stateObj.state);
|
||||
}
|
||||
|
||||
private async _selectedOptionChanged(
|
||||
|
||||
@ -55,9 +55,8 @@ class StateCardSelect extends LitElement {
|
||||
return;
|
||||
}
|
||||
// Update selected after rendering the items or else it won't work in Firefox
|
||||
this.shadowRoot!.querySelector(
|
||||
"paper-listbox"
|
||||
)!.selected = this.stateObj.attributes.options.indexOf(this.stateObj.state);
|
||||
this.shadowRoot!.querySelector("paper-listbox")!.selected =
|
||||
this.stateObj.attributes.options.indexOf(this.stateObj.state);
|
||||
}
|
||||
|
||||
private _selectedOptionChanged(ev) {
|
||||
|
||||
@ -68,8 +68,8 @@ export default <T extends Constructor<HassBaseEl>>(superClass: T) =>
|
||||
return;
|
||||
}
|
||||
|
||||
let themeSettings: Partial<HomeAssistant["selectedTheme"]> = this.hass!
|
||||
.selectedTheme;
|
||||
let themeSettings: Partial<HomeAssistant["selectedTheme"]> =
|
||||
this.hass!.selectedTheme;
|
||||
|
||||
const themeName =
|
||||
themeSettings?.theme ||
|
||||
@ -121,9 +121,8 @@ export default <T extends Constructor<HassBaseEl>>(superClass: T) =>
|
||||
"--app-header-background-color"
|
||||
);
|
||||
|
||||
document.documentElement.style.backgroundColor = computedStyles.getPropertyValue(
|
||||
"--primary-background-color"
|
||||
);
|
||||
document.documentElement.style.backgroundColor =
|
||||
computedStyles.getPropertyValue("--primary-background-color");
|
||||
|
||||
if (themeMeta) {
|
||||
if (!themeMeta.hasAttribute("default-content")) {
|
||||
|
||||
@ -45,7 +45,7 @@ export const handleFetchPromise = async <T>(
|
||||
};
|
||||
}
|
||||
|
||||
return (body as unknown) as T;
|
||||
return body as unknown as T;
|
||||
};
|
||||
|
||||
export default async function hassCallApi<T>(
|
||||
|
||||
602
yarn.lock
602
yarn.lock
@ -1492,20 +1492,20 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@eslint/eslintrc@npm:^0.4.0":
|
||||
version: 0.4.0
|
||||
resolution: "@eslint/eslintrc@npm:0.4.0"
|
||||
"@eslint/eslintrc@npm:^0.4.2":
|
||||
version: 0.4.2
|
||||
resolution: "@eslint/eslintrc@npm:0.4.2"
|
||||
dependencies:
|
||||
ajv: ^6.12.4
|
||||
debug: ^4.1.1
|
||||
espree: ^7.3.0
|
||||
globals: ^12.1.0
|
||||
globals: ^13.9.0
|
||||
ignore: ^4.0.6
|
||||
import-fresh: ^3.2.1
|
||||
js-yaml: ^3.13.1
|
||||
minimatch: ^3.0.4
|
||||
strip-json-comments: ^3.1.1
|
||||
checksum: d3f51b741997cbf36662d8b5a52985bfa5d2873e48cadccd95c67fcce1706327ec98ebb6f0be79c6ecbc31bdeca32c2b1c4f66fd1cf3934c434d1ac269cbceac
|
||||
checksum: 60b66ce4257bf5c36a920dea83a056102fef746e7afd7100a6fe245a126ff455f67f4948e75d28ed73090bff8f8556b6a996e74a124911ca703440bc245dbc23
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@ -1687,6 +1687,24 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@humanwhocodes/config-array@npm:^0.5.0":
|
||||
version: 0.5.0
|
||||
resolution: "@humanwhocodes/config-array@npm:0.5.0"
|
||||
dependencies:
|
||||
"@humanwhocodes/object-schema": ^1.2.0
|
||||
debug: ^4.1.1
|
||||
minimatch: ^3.0.4
|
||||
checksum: 71e3c1fef40166ecaacbe29b681499dc6bab3fe45df5bfb3e137baf6e50f22813cf14f24ff759a4da43b6743d7f5a776298ae1e0e266c9602bab62da2ee3b302
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@humanwhocodes/object-schema@npm:^1.2.0":
|
||||
version: 1.2.0
|
||||
resolution: "@humanwhocodes/object-schema@npm:1.2.0"
|
||||
checksum: ef533ee0d227b8036e4220013575fedc3d0346e2e40bc5f5536ba5761825f23577eb4b71e52f18a2d3b827c9d83cfa60c821a71e30d5f6537918a94bc1990963
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@jimp/bmp@npm:^0.16.1":
|
||||
version: 0.16.1
|
||||
resolution: "@jimp/bmp@npm:0.16.1"
|
||||
@ -3545,10 +3563,10 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/json-schema@npm:*, @types/json-schema@npm:^7.0.3, @types/json-schema@npm:^7.0.6":
|
||||
version: 7.0.6
|
||||
resolution: "@types/json-schema@npm:7.0.6"
|
||||
checksum: 820cabe35ac915b93e38b0c01957e5c49d7d9f69251dddfbf39af0ff4fe24f6e08b39e55603e0d212dea7bcaa383b1218b58a738d1c02013dc22df06547ff238
|
||||
"@types/json-schema@npm:*, @types/json-schema@npm:^7.0.6, @types/json-schema@npm:^7.0.7":
|
||||
version: 7.0.8
|
||||
resolution: "@types/json-schema@npm:7.0.8"
|
||||
checksum: 435a3d18a88aeac7bc88c2cdd2c19466c62ce79303493edd72380cd4af9775c05f35d424d5e76ffe3f94575ebb535305c6cae928c5bfb9c39eafbfb6932520a1
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@ -3737,103 +3755,102 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@typescript-eslint/eslint-plugin@npm:^4.22.0":
|
||||
version: 4.22.0
|
||||
resolution: "@typescript-eslint/eslint-plugin@npm:4.22.0"
|
||||
"@typescript-eslint/eslint-plugin@npm:^4.28.3":
|
||||
version: 4.28.3
|
||||
resolution: "@typescript-eslint/eslint-plugin@npm:4.28.3"
|
||||
dependencies:
|
||||
"@typescript-eslint/experimental-utils": 4.22.0
|
||||
"@typescript-eslint/scope-manager": 4.22.0
|
||||
debug: ^4.1.1
|
||||
"@typescript-eslint/experimental-utils": 4.28.3
|
||||
"@typescript-eslint/scope-manager": 4.28.3
|
||||
debug: ^4.3.1
|
||||
functional-red-black-tree: ^1.0.1
|
||||
lodash: ^4.17.15
|
||||
regexpp: ^3.0.0
|
||||
semver: ^7.3.2
|
||||
tsutils: ^3.17.1
|
||||
regexpp: ^3.1.0
|
||||
semver: ^7.3.5
|
||||
tsutils: ^3.21.0
|
||||
peerDependencies:
|
||||
"@typescript-eslint/parser": ^4.0.0
|
||||
eslint: ^5.0.0 || ^6.0.0 || ^7.0.0
|
||||
peerDependenciesMeta:
|
||||
typescript:
|
||||
optional: true
|
||||
checksum: 40485bbf51283616b5098b33fa5285104a80419c4dcf75659442ae780352289bc238a64591939012ebc47823485497ae6ba8a35e653b0e33ff7f58743b46c34e
|
||||
checksum: 791adc8261d43d2556f367fc917a64b7fde4f735735120f0132f5007f1fe05b141314d18aa2e64bfdbbd04d33240d660216e7c8dde1b246f58f6ad2e17d0ca2c
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@typescript-eslint/experimental-utils@npm:4.22.0":
|
||||
version: 4.22.0
|
||||
resolution: "@typescript-eslint/experimental-utils@npm:4.22.0"
|
||||
"@typescript-eslint/experimental-utils@npm:4.28.3":
|
||||
version: 4.28.3
|
||||
resolution: "@typescript-eslint/experimental-utils@npm:4.28.3"
|
||||
dependencies:
|
||||
"@types/json-schema": ^7.0.3
|
||||
"@typescript-eslint/scope-manager": 4.22.0
|
||||
"@typescript-eslint/types": 4.22.0
|
||||
"@typescript-eslint/typescript-estree": 4.22.0
|
||||
eslint-scope: ^5.0.0
|
||||
eslint-utils: ^2.0.0
|
||||
"@types/json-schema": ^7.0.7
|
||||
"@typescript-eslint/scope-manager": 4.28.3
|
||||
"@typescript-eslint/types": 4.28.3
|
||||
"@typescript-eslint/typescript-estree": 4.28.3
|
||||
eslint-scope: ^5.1.1
|
||||
eslint-utils: ^3.0.0
|
||||
peerDependencies:
|
||||
eslint: "*"
|
||||
checksum: afabf0d6f9e70b910575d8bc2e8ccd3416e8d05ed968296fc56379f71f8cf3a27107598b98f7c76a91e6b0be796dc102c866381a3af5bf24799a333532d1e997
|
||||
checksum: 3b2a8ede773ed6929f1c2a680608a11003bfd44cf5c8f8cc7409d167374c543d876f97e67533566ec91eaf17ad514d7eee20e611e5f78b0b3ac18b5bc99af865
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@typescript-eslint/parser@npm:^4.22.0, @typescript-eslint/parser@npm:^4.4.1":
|
||||
version: 4.22.0
|
||||
resolution: "@typescript-eslint/parser@npm:4.22.0"
|
||||
"@typescript-eslint/parser@npm:^4.28.3, @typescript-eslint/parser@npm:^4.4.1":
|
||||
version: 4.28.3
|
||||
resolution: "@typescript-eslint/parser@npm:4.28.3"
|
||||
dependencies:
|
||||
"@typescript-eslint/scope-manager": 4.22.0
|
||||
"@typescript-eslint/types": 4.22.0
|
||||
"@typescript-eslint/typescript-estree": 4.22.0
|
||||
debug: ^4.1.1
|
||||
"@typescript-eslint/scope-manager": 4.28.3
|
||||
"@typescript-eslint/types": 4.28.3
|
||||
"@typescript-eslint/typescript-estree": 4.28.3
|
||||
debug: ^4.3.1
|
||||
peerDependencies:
|
||||
eslint: ^5.0.0 || ^6.0.0 || ^7.0.0
|
||||
peerDependenciesMeta:
|
||||
typescript:
|
||||
optional: true
|
||||
checksum: 679e14a5cec5bae3b392b1736f5d919897fd1a269a9d25366babfd12c1d275b320ae36a0b8be215ba14780cb1feec2b386001b4e0225ef82bd0040bf5dbaf99f
|
||||
checksum: 107c6b6176343dc2e82a372bd240a762c1d254b7b30f91560012b68857d25fd18cc4517e4f691c67ff3bdffd4150d89bd8318e4741ca7aa70b50a3ca74e36ad6
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@typescript-eslint/scope-manager@npm:4.22.0":
|
||||
version: 4.22.0
|
||||
resolution: "@typescript-eslint/scope-manager@npm:4.22.0"
|
||||
"@typescript-eslint/scope-manager@npm:4.28.3":
|
||||
version: 4.28.3
|
||||
resolution: "@typescript-eslint/scope-manager@npm:4.28.3"
|
||||
dependencies:
|
||||
"@typescript-eslint/types": 4.22.0
|
||||
"@typescript-eslint/visitor-keys": 4.22.0
|
||||
checksum: c6f5565f517373cba61d29be919c69ad0e178f2a007eed6f1d8f80518853c3c4e6a3a059e492920b71675f0828e093eb36ec9eef318b9e2b4e9e65b0e93f03b6
|
||||
"@typescript-eslint/types": 4.28.3
|
||||
"@typescript-eslint/visitor-keys": 4.28.3
|
||||
checksum: 6f6a821e595c1cb8045a6820e9553d52f1588e9c512fd74ae7b2529d2337e4e57884c77039195d51d3a62443ef940f955e13c7e15a41822ecc20b210ebe604fd
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@typescript-eslint/types@npm:4.22.0":
|
||||
version: 4.22.0
|
||||
resolution: "@typescript-eslint/types@npm:4.22.0"
|
||||
checksum: db2717132540feba39b002cdb2483aa822e0b50c17f9deff918a52609178df071444188a1e76c07c51018c353b01509dd741272b6d482edf7d9e7d60adc6c70e
|
||||
"@typescript-eslint/types@npm:4.28.3":
|
||||
version: 4.28.3
|
||||
resolution: "@typescript-eslint/types@npm:4.28.3"
|
||||
checksum: b5b394c68b44962a8c58406e0f4c90bad9be480e725a6c5eb7dd692ad01b1ed65eb0b69fd4f77b4b9c9221967c72e93f5a4e6ff962824d3a1faea2a32256c5af
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@typescript-eslint/typescript-estree@npm:4.22.0":
|
||||
version: 4.22.0
|
||||
resolution: "@typescript-eslint/typescript-estree@npm:4.22.0"
|
||||
"@typescript-eslint/typescript-estree@npm:4.28.3":
|
||||
version: 4.28.3
|
||||
resolution: "@typescript-eslint/typescript-estree@npm:4.28.3"
|
||||
dependencies:
|
||||
"@typescript-eslint/types": 4.22.0
|
||||
"@typescript-eslint/visitor-keys": 4.22.0
|
||||
debug: ^4.1.1
|
||||
globby: ^11.0.1
|
||||
"@typescript-eslint/types": 4.28.3
|
||||
"@typescript-eslint/visitor-keys": 4.28.3
|
||||
debug: ^4.3.1
|
||||
globby: ^11.0.3
|
||||
is-glob: ^4.0.1
|
||||
semver: ^7.3.2
|
||||
tsutils: ^3.17.1
|
||||
semver: ^7.3.5
|
||||
tsutils: ^3.21.0
|
||||
peerDependenciesMeta:
|
||||
typescript:
|
||||
optional: true
|
||||
checksum: 538d932361d1463c9450c155fc5696f4cc1a07db2bfd4ca9079e1f919e5062fd95d8dc128fc2fa8368c9582787cfc97ee6284083b94fe8d580cd1a9fca688efa
|
||||
checksum: ec3b3abecef54d608921e29499f6c9cd1af45fafded47b5b5a6d32b93870ab048cb0636efb10936219b47945a17772c935df0acf1c8ff5188417cdcbf775b70c
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@typescript-eslint/visitor-keys@npm:4.22.0":
|
||||
version: 4.22.0
|
||||
resolution: "@typescript-eslint/visitor-keys@npm:4.22.0"
|
||||
"@typescript-eslint/visitor-keys@npm:4.28.3":
|
||||
version: 4.28.3
|
||||
resolution: "@typescript-eslint/visitor-keys@npm:4.28.3"
|
||||
dependencies:
|
||||
"@typescript-eslint/types": 4.22.0
|
||||
"@typescript-eslint/types": 4.28.3
|
||||
eslint-visitor-keys: ^2.0.0
|
||||
checksum: 645896d05aa757fac02d952574ecda0eecd0be120162e28533c4528bb70d2162e9df62c3547217c69f18a72ceecaf212ea585afd20f976db64b59ac6de0d1ec8
|
||||
checksum: 37410d60074f255ac78b5af5d189c61ff219d0ff096f0d4984d7bc9ed9b42932d338b1efa97a99e0144820ef9a0fb2801c3ee6106dbc577901cc09ce02b75c9e
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@ -4877,7 +4894,7 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"array-includes@npm:^3.1.1":
|
||||
"array-includes@npm:^3.1.3":
|
||||
version: 3.1.3
|
||||
resolution: "array-includes@npm:3.1.3"
|
||||
dependencies:
|
||||
@ -4957,7 +4974,7 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"array.prototype.flat@npm:^1.2.3":
|
||||
"array.prototype.flat@npm:^1.2.4":
|
||||
version: 1.2.4
|
||||
resolution: "array.prototype.flat@npm:1.2.4"
|
||||
dependencies:
|
||||
@ -6024,17 +6041,10 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"commander@npm:^6.2.0":
|
||||
version: 6.2.1
|
||||
resolution: "commander@npm:6.2.1"
|
||||
checksum: 47856aae6f194404122e359d8463e5e1a18f7cbab26722ce69f1379be8514bd49a160ef81a983d3d2091e3240022643354101d1276c797dcdd0b5bfc3c3f04a3
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"commander@npm:^7.0.0":
|
||||
version: 7.1.0
|
||||
resolution: "commander@npm:7.1.0"
|
||||
checksum: 2b6dacb11f17cd9b702ae18b586b060327590dd57e2702edefbff701ec7c63b55338e70544210893bad280fc9579ffb839dd8ae0a6bc652fceffe3f9ad1c2c44
|
||||
"commander@npm:^7.0.0, commander@npm:^7.2.0":
|
||||
version: 7.2.0
|
||||
resolution: "commander@npm:7.2.0"
|
||||
checksum: bdc0eca5e25cd24af8440163d3c9a996785bbac4b49a590365699cdc1ed08cefbac8f268153208ab2bc5dc3cb1d3fb573fd1590c681e36e371342186bd331a4c
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@ -6138,13 +6148,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"contains-path@npm:^0.1.0":
|
||||
version: 0.1.0
|
||||
resolution: "contains-path@npm:0.1.0"
|
||||
checksum: 59920a59a0c7d1244235d76b8cfd2b2e7a8dcc463fa578ef9d4d5a5a73eeb14d75dada6b21188e0b35f2474ae9efd10c3698372e674db9c6a904b281998b97d6
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"content-disposition@npm:0.5.2":
|
||||
version: 0.5.2
|
||||
resolution: "content-disposition@npm:0.5.2"
|
||||
@ -6305,7 +6308,7 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.3":
|
||||
"cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.3":
|
||||
version: 7.0.3
|
||||
resolution: "cross-spawn@npm:7.0.3"
|
||||
dependencies:
|
||||
@ -6383,7 +6386,7 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"debug@npm:4, debug@npm:^4.0.1, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.2.0":
|
||||
"debug@npm:4, debug@npm:^4.0.1, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1":
|
||||
version: 4.3.2
|
||||
resolution: "debug@npm:4.3.2"
|
||||
dependencies:
|
||||
@ -6716,13 +6719,12 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"doctrine@npm:1.5.0":
|
||||
version: 1.5.0
|
||||
resolution: "doctrine@npm:1.5.0"
|
||||
"doctrine@npm:^2.1.0":
|
||||
version: 2.1.0
|
||||
resolution: "doctrine@npm:2.1.0"
|
||||
dependencies:
|
||||
esutils: ^2.0.2
|
||||
isarray: ^1.0.0
|
||||
checksum: aaffea02f963b8b07a78b1e27d7cef29be65d31be2c6681cb2872c2fb3781e14615bd05d4dff6036f75dcf3f191216058409fbfec805d3a7277a8647cd5bdee1
|
||||
checksum: 4aa55e46757cc11bff8efa67cdb679dd89e87c954ea9d88fad5a9198cfe0a73748085503d29bebcb143487d720a759a6bbe81d6848c94da46a55c7a366b9834e
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@ -6913,9 +6915,9 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"es-abstract@npm:^1.18.0-next.1, es-abstract@npm:^1.18.0-next.2":
|
||||
version: 1.18.0
|
||||
resolution: "es-abstract@npm:1.18.0"
|
||||
"es-abstract@npm:^1.18.0-next.1, es-abstract@npm:^1.18.0-next.2, es-abstract@npm:^1.18.2":
|
||||
version: 1.18.3
|
||||
resolution: "es-abstract@npm:1.18.3"
|
||||
dependencies:
|
||||
call-bind: ^1.0.2
|
||||
es-to-primitive: ^1.2.1
|
||||
@ -6925,15 +6927,15 @@ __metadata:
|
||||
has-symbols: ^1.0.2
|
||||
is-callable: ^1.2.3
|
||||
is-negative-zero: ^2.0.1
|
||||
is-regex: ^1.1.2
|
||||
is-string: ^1.0.5
|
||||
object-inspect: ^1.9.0
|
||||
is-regex: ^1.1.3
|
||||
is-string: ^1.0.6
|
||||
object-inspect: ^1.10.3
|
||||
object-keys: ^1.1.1
|
||||
object.assign: ^4.1.2
|
||||
string.prototype.trimend: ^1.0.4
|
||||
string.prototype.trimstart: ^1.0.4
|
||||
unbox-primitive: ^1.0.0
|
||||
checksum: 019fa7c51e10532cd07ca3aa9b76e4c6ad6f421e15064205d144da08da54f8fc057edc262f6f95775e0b249ecbb753b497050dd75ab69a3c1c89cb9b734e42ca
|
||||
unbox-primitive: ^1.0.1
|
||||
checksum: 85cd62cabad4714e945e1ed8ed1c5086237daa544448b1562765857dbe33f3415f56e53b03552ea4599f8e836f7e6ecd4ce70560b23a534f78f77780565d6985
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@ -7027,7 +7029,7 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"escape-string-regexp@npm:4.0.0":
|
||||
"escape-string-regexp@npm:4.0.0, escape-string-regexp@npm:^4.0.0":
|
||||
version: 4.0.0
|
||||
resolution: "escape-string-regexp@npm:4.0.0"
|
||||
checksum: c747be8d5ff7873127e3e0cffe7d2206a37208077fa9c30a3c1bb4f26bebd081c8c24d5fba7a99449f9d20670bea3dc5e1b6098b0f074b099bd38766271a272f
|
||||
@ -7126,13 +7128,13 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"eslint-module-utils@npm:^2.6.0":
|
||||
version: 2.6.0
|
||||
resolution: "eslint-module-utils@npm:2.6.0"
|
||||
"eslint-module-utils@npm:^2.6.1":
|
||||
version: 2.6.1
|
||||
resolution: "eslint-module-utils@npm:2.6.1"
|
||||
dependencies:
|
||||
debug: ^2.6.9
|
||||
debug: ^3.2.7
|
||||
pkg-dir: ^2.0.0
|
||||
checksum: f584af176480a702eedcdb3f610797f8b8d1293c3835ed71fadb579ec28400b91ded5283729418f63d48dc27c6358bd66f2bd839614d565a1b78d3c3440ee8f7
|
||||
checksum: 3de93ecfd7a0b803a2cd91afd5cbb32dca559f58c22e92f95ec4700ff75e008035587ee032b9196d6565fbd73f799992122a8dc8ea0b979c07229b51735a8bed
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@ -7148,39 +7150,41 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"eslint-plugin-import@npm:^2.22.1":
|
||||
version: 2.22.1
|
||||
resolution: "eslint-plugin-import@npm:2.22.1"
|
||||
"eslint-plugin-import@npm:^2.23.4":
|
||||
version: 2.23.4
|
||||
resolution: "eslint-plugin-import@npm:2.23.4"
|
||||
dependencies:
|
||||
array-includes: ^3.1.1
|
||||
array.prototype.flat: ^1.2.3
|
||||
contains-path: ^0.1.0
|
||||
array-includes: ^3.1.3
|
||||
array.prototype.flat: ^1.2.4
|
||||
debug: ^2.6.9
|
||||
doctrine: 1.5.0
|
||||
doctrine: ^2.1.0
|
||||
eslint-import-resolver-node: ^0.3.4
|
||||
eslint-module-utils: ^2.6.0
|
||||
eslint-module-utils: ^2.6.1
|
||||
find-up: ^2.0.0
|
||||
has: ^1.0.3
|
||||
is-core-module: ^2.4.0
|
||||
minimatch: ^3.0.4
|
||||
object.values: ^1.1.1
|
||||
read-pkg-up: ^2.0.0
|
||||
resolve: ^1.17.0
|
||||
object.values: ^1.1.3
|
||||
pkg-up: ^2.0.0
|
||||
read-pkg-up: ^3.0.0
|
||||
resolve: ^1.20.0
|
||||
tsconfig-paths: ^3.9.0
|
||||
peerDependencies:
|
||||
eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0
|
||||
checksum: 35ae09ceae6f0fe239f6b72e134d58d74762ad1ed0f57aa989affb856354e46bc082bb6df9399b624989107efb9ab9af2c91c08f03c0c70c5cb46a37676591ec
|
||||
checksum: d15a470088381cb14821480f35fe23258f6365d704ea9fc724b87e1ccf9eb45f4bb048ff033784af0cacff368ae1542c2b1dfbe6cd4dbec7138f8f6dca090a57
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"eslint-plugin-lit@npm:^1.3.0":
|
||||
version: 1.3.0
|
||||
resolution: "eslint-plugin-lit@npm:1.3.0"
|
||||
"eslint-plugin-lit@npm:^1.5.1":
|
||||
version: 1.5.1
|
||||
resolution: "eslint-plugin-lit@npm:1.5.1"
|
||||
dependencies:
|
||||
parse5: ^6.0.1
|
||||
parse5-htmlparser2-tree-adapter: ^6.0.1
|
||||
requireindex: ^1.2.0
|
||||
peerDependencies:
|
||||
eslint: ">= 5"
|
||||
checksum: 5e56f34ce69ffbd5e8427d26aa8528ac54f8c27ee8a0f03fac4b7caa8eac3ab9f6090ae6fdfe2c910cffd572f1184fef7d0406682c4ac36265dc67ac20e9fbd7
|
||||
checksum: 3c51a275c681e108448a4280ad73cd3b70f3c0867a989a960fe1fb7dd985a716965e820006bf7851cc2531503494a67100ab0934b7237fb1b0d214738871c17f
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@ -7199,6 +7203,15 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"eslint-plugin-unused-imports@npm:^1.1.2":
|
||||
version: 1.1.2
|
||||
resolution: "eslint-plugin-unused-imports@npm:1.1.2"
|
||||
dependencies:
|
||||
eslint-rule-composer: ^0.3.0
|
||||
checksum: a897ea0b3227d02b03a14fc727df56af7f026e8eb4e106f1a3dc2ed6b23ec1dc0b776e0cec1da196ce3c8dd6fddf8330d8cee724254ad916a961b0fb12119a21
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"eslint-plugin-wc@npm:^1.3.0":
|
||||
version: 1.3.0
|
||||
resolution: "eslint-plugin-wc@npm:1.3.0"
|
||||
@ -7211,7 +7224,14 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"eslint-scope@npm:5.1.1, eslint-scope@npm:^5.0.0, eslint-scope@npm:^5.1.1":
|
||||
"eslint-rule-composer@npm:^0.3.0":
|
||||
version: 0.3.0
|
||||
resolution: "eslint-rule-composer@npm:0.3.0"
|
||||
checksum: eb96fffa4eb2cc40061bf082bb4cc48df746e9c556e4b20c653e1b84b34cabd66462bafad124d44ea2b89a750a2aec26c21507bd7b8b23f355136a8901e09d00
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"eslint-scope@npm:5.1.1, eslint-scope@npm:^5.1.1":
|
||||
version: 5.1.1
|
||||
resolution: "eslint-scope@npm:5.1.1"
|
||||
dependencies:
|
||||
@ -7221,7 +7241,7 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"eslint-utils@npm:^2.0.0, eslint-utils@npm:^2.1.0":
|
||||
"eslint-utils@npm:^2.1.0":
|
||||
version: 2.1.0
|
||||
resolution: "eslint-utils@npm:2.1.0"
|
||||
dependencies:
|
||||
@ -7230,6 +7250,17 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"eslint-utils@npm:^3.0.0":
|
||||
version: 3.0.0
|
||||
resolution: "eslint-utils@npm:3.0.0"
|
||||
dependencies:
|
||||
eslint-visitor-keys: ^2.0.0
|
||||
peerDependencies:
|
||||
eslint: ">=5"
|
||||
checksum: 035451529f016e28edd26e8951f15e28a6a4e58adff67bd0cb494879f360080750b9c779e46561369aec0657ac2b89dd8b0aa38476e8cdf50e635aa872fa27b6
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"eslint-visitor-keys@npm:^1.1.0, eslint-visitor-keys@npm:^1.3.0":
|
||||
version: 1.3.0
|
||||
resolution: "eslint-visitor-keys@npm:1.3.0"
|
||||
@ -7244,27 +7275,30 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"eslint@npm:>=0.16.0, eslint@npm:^7.25.0":
|
||||
version: 7.25.0
|
||||
resolution: "eslint@npm:7.25.0"
|
||||
"eslint@npm:>=0.16.0, eslint@npm:^7.30.0":
|
||||
version: 7.30.0
|
||||
resolution: "eslint@npm:7.30.0"
|
||||
dependencies:
|
||||
"@babel/code-frame": 7.12.11
|
||||
"@eslint/eslintrc": ^0.4.0
|
||||
"@eslint/eslintrc": ^0.4.2
|
||||
"@humanwhocodes/config-array": ^0.5.0
|
||||
ajv: ^6.10.0
|
||||
chalk: ^4.0.0
|
||||
cross-spawn: ^7.0.2
|
||||
debug: ^4.0.1
|
||||
doctrine: ^3.0.0
|
||||
enquirer: ^2.3.5
|
||||
escape-string-regexp: ^4.0.0
|
||||
eslint-scope: ^5.1.1
|
||||
eslint-utils: ^2.1.0
|
||||
eslint-visitor-keys: ^2.0.0
|
||||
espree: ^7.3.1
|
||||
esquery: ^1.4.0
|
||||
esutils: ^2.0.2
|
||||
fast-deep-equal: ^3.1.3
|
||||
file-entry-cache: ^6.0.1
|
||||
functional-red-black-tree: ^1.0.1
|
||||
glob-parent: ^5.0.0
|
||||
glob-parent: ^5.1.2
|
||||
globals: ^13.6.0
|
||||
ignore: ^4.0.6
|
||||
import-fresh: ^3.0.0
|
||||
@ -7273,7 +7307,7 @@ __metadata:
|
||||
js-yaml: ^3.13.1
|
||||
json-stable-stringify-without-jsonify: ^1.0.1
|
||||
levn: ^0.4.1
|
||||
lodash: ^4.17.21
|
||||
lodash.merge: ^4.6.2
|
||||
minimatch: ^3.0.4
|
||||
natural-compare: ^1.4.0
|
||||
optionator: ^0.9.1
|
||||
@ -7282,12 +7316,12 @@ __metadata:
|
||||
semver: ^7.2.1
|
||||
strip-ansi: ^6.0.0
|
||||
strip-json-comments: ^3.1.0
|
||||
table: ^6.0.4
|
||||
table: ^6.0.9
|
||||
text-table: ^0.2.0
|
||||
v8-compile-cache: ^2.0.3
|
||||
bin:
|
||||
eslint: bin/eslint.js
|
||||
checksum: 6e1782e2264ebf987504746ee82e996bf0ef2c29a2eaea869b54cb8aa1eaf10945b1d563618515e65ac934ca626f3609282127773f45868ad4a98744458a3c62
|
||||
checksum: 028048847e0252d6c972ac612fe37be55822ae2255d10d1bf68255749f7ae1364b2aa538cd95f3bc4d951fc7d36195e46b62fe8d215297ef9a6a8aeb8ca28a90
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@ -7447,23 +7481,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"execa@npm:^4.1.0":
|
||||
version: 4.1.0
|
||||
resolution: "execa@npm:4.1.0"
|
||||
dependencies:
|
||||
cross-spawn: ^7.0.0
|
||||
get-stream: ^5.0.0
|
||||
human-signals: ^1.1.1
|
||||
is-stream: ^2.0.0
|
||||
merge-stream: ^2.0.0
|
||||
npm-run-path: ^4.0.0
|
||||
onetime: ^5.1.0
|
||||
signal-exit: ^3.0.2
|
||||
strip-final-newline: ^2.0.0
|
||||
checksum: 79bd736acd63aa7c0afb32cc99af21cfd70db696580686c7cd56c177857b93b78bc0b9bb2b4410f377f46c71c566c8e723987e71ef0bc9b23791bfbced02f75c
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"execa@npm:^5.0.0":
|
||||
version: 5.0.0
|
||||
resolution: "execa@npm:5.0.0"
|
||||
@ -7611,10 +7628,10 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"fast-deep-equal@npm:^3.1.1":
|
||||
version: 3.1.1
|
||||
resolution: "fast-deep-equal@npm:3.1.1"
|
||||
checksum: 38fe57c5ea7dbb42cf84f5d94166358b930beb49345619205ff16c4a0c896f8679a444f0fbd0f352a633f2ea800673173e2a150d81d3d85933d714d24498c688
|
||||
"fast-deep-equal@npm:^3.1.1, fast-deep-equal@npm:^3.1.3":
|
||||
version: 3.1.3
|
||||
resolution: "fast-deep-equal@npm:3.1.3"
|
||||
checksum: 451526766b219503131d11e823eaadd1533080b0be4860e316670b039dcaf31cd1007c2fe036a9b922abba7c040dfad5e942ed79d21f2ff849e50049f36e0fb7
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@ -7715,15 +7732,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"figures@npm:^3.2.0":
|
||||
version: 3.2.0
|
||||
resolution: "figures@npm:3.2.0"
|
||||
dependencies:
|
||||
escape-string-regexp: ^1.0.5
|
||||
checksum: 6c8acb1c17c4d27eeb6ff06801b5ae39a999c4794ec50eacf858a1e32746d92af77a9a907c3e1865e2e6ac7d9f1aa765f0f8a01a16a4676b79b6e90a7cc23f44
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"file-entry-cache@npm:^6.0.1":
|
||||
version: 6.0.1
|
||||
resolution: "file-entry-cache@npm:6.0.1"
|
||||
@ -8196,15 +8204,6 @@ fsevents@~2.3.1:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"get-stream@npm:^5.0.0":
|
||||
version: 5.2.0
|
||||
resolution: "get-stream@npm:5.2.0"
|
||||
dependencies:
|
||||
pump: ^3.0.0
|
||||
checksum: c71c5625f4573a33823371da253b4183df6bdb28cb678d03bab9b5f91626d92d6f3f5ae2404c5efdc1248fbb82204e4dae4283c7ff3cc14e505754f9f748f217
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"get-stream@npm:^6.0.0":
|
||||
version: 6.0.0
|
||||
resolution: "get-stream@npm:6.0.0"
|
||||
@ -8239,12 +8238,12 @@ fsevents@~2.3.1:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"glob-parent@npm:^5.0.0, glob-parent@npm:^5.1.0, glob-parent@npm:~5.1.0":
|
||||
version: 5.1.1
|
||||
resolution: "glob-parent@npm:5.1.1"
|
||||
"glob-parent@npm:^5.1.0, glob-parent@npm:^5.1.2, glob-parent@npm:~5.1.0":
|
||||
version: 5.1.2
|
||||
resolution: "glob-parent@npm:5.1.2"
|
||||
dependencies:
|
||||
is-glob: ^4.0.1
|
||||
checksum: 2af6e196fba4071fb07ba261366e446ba2b320e6db0a2069cf8e12117c5811abc6721f08546148048882d01120df47e56aa5a965517a6e5ba19bfeb792655119
|
||||
checksum: 82fcaa4ce102a0ae01370ed8fd5299ca32184af0418e1c1b613ed851240160558c0cc9712868eb9ca1924f687b07cd9c70c25f303f39f9f376d9a32f94f28e76
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@ -8364,27 +8363,18 @@ fsevents@~2.3.1:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"globals@npm:^12.1.0":
|
||||
version: 12.4.0
|
||||
resolution: "globals@npm:12.4.0"
|
||||
dependencies:
|
||||
type-fest: ^0.8.1
|
||||
checksum: 0b9764bdeab0bc9762dea8954a0d4c5db029420bd8bf693df9098ce7e045ccaf9b2d259185396fd048b051d42fdc8dc7ab02af62e3dbeb2324a78a05aac8d33c
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"globals@npm:^13.6.0":
|
||||
version: 13.8.0
|
||||
resolution: "globals@npm:13.8.0"
|
||||
"globals@npm:^13.6.0, globals@npm:^13.9.0":
|
||||
version: 13.10.0
|
||||
resolution: "globals@npm:13.10.0"
|
||||
dependencies:
|
||||
type-fest: ^0.20.2
|
||||
checksum: de85e5dc899ebd77414cc026e806d0bfd2c102ba23d08a2516c960a5e324433d3f1c124465a35b5b1d948448a7008bad85f823a9bcd8d54664d8a0cbcaab0091
|
||||
checksum: ae5f8d4ef26b845a3d2a370a0dd0b7cc8bce09d11bf75dbde8dce8a0855e8ad4f34613090eaad8e71d24fb01fe00d8b2708533b32da08f104c0ddd19b70219f1
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"globby@npm:^11.0.1":
|
||||
version: 11.0.1
|
||||
resolution: "globby@npm:11.0.1"
|
||||
"globby@npm:^11.0.3":
|
||||
version: 11.0.4
|
||||
resolution: "globby@npm:11.0.4"
|
||||
dependencies:
|
||||
array-union: ^2.1.0
|
||||
dir-glob: ^3.0.1
|
||||
@ -8392,7 +8382,7 @@ fsevents@~2.3.1:
|
||||
ignore: ^5.1.4
|
||||
merge2: ^1.3.0
|
||||
slash: ^3.0.0
|
||||
checksum: e7239e9e468c3692aec31dc97b5efc13dd21edf38820baeda98118ade39f475c4ff9e7610859eb4a3c75277ca2616e371265fec3c626aba5db4335bc41c59ac7
|
||||
checksum: 9f365b35b835c0235880e272fa2a2f5d9d78428e09af8dfc67536f1047953e7b0c66aab9bb6d41e6c0f4c3ec75a22840d9acb892f102daecaadd338b2c763219
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@ -8792,8 +8782,8 @@ fsevents@~2.3.1:
|
||||
"@types/mocha": ^8.2.2
|
||||
"@types/sortablejs": ^1.10.6
|
||||
"@types/webspeechapi": ^0.0.29
|
||||
"@typescript-eslint/eslint-plugin": ^4.22.0
|
||||
"@typescript-eslint/parser": ^4.22.0
|
||||
"@typescript-eslint/eslint-plugin": ^4.28.3
|
||||
"@typescript-eslint/parser": ^4.28.3
|
||||
"@vaadin/vaadin-combo-box": ^5.0.10
|
||||
"@vaadin/vaadin-date-picker": ^4.0.7
|
||||
"@vibrant/color": ^3.2.1-alpha.1
|
||||
@ -8813,14 +8803,15 @@ fsevents@~2.3.1:
|
||||
deep-clone-simple: ^1.1.1
|
||||
deep-freeze: ^0.0.1
|
||||
del: ^4.0.0
|
||||
eslint: ^7.25.0
|
||||
eslint: ^7.30.0
|
||||
eslint-config-airbnb-typescript: ^12.3.1
|
||||
eslint-config-prettier: ^8.3.0
|
||||
eslint-import-resolver-webpack: ^0.13.1
|
||||
eslint-plugin-disable: ^2.0.1
|
||||
eslint-plugin-import: ^2.22.1
|
||||
eslint-plugin-lit: ^1.3.0
|
||||
eslint-plugin-import: ^2.23.4
|
||||
eslint-plugin-lit: ^1.5.1
|
||||
eslint-plugin-prettier: ^3.4.0
|
||||
eslint-plugin-unused-imports: ^1.1.2
|
||||
eslint-plugin-wc: ^1.3.0
|
||||
fancy-log: ^1.3.3
|
||||
fecha: ^4.2.0
|
||||
@ -8842,7 +8833,7 @@ fsevents@~2.3.1:
|
||||
js-yaml: ^4.1.0
|
||||
leaflet: ^1.7.1
|
||||
leaflet-draw: ^1.0.4
|
||||
lint-staged: ^10.5.4
|
||||
lint-staged: ^11.0.1
|
||||
lit: ^2.0.0-rc.2
|
||||
lit-analyzer: ^1.2.1
|
||||
lit-vaadin-helpers: ^0.1.3
|
||||
@ -8857,7 +8848,7 @@ fsevents@~2.3.1:
|
||||
node-vibrant: 3.2.1-alpha.1
|
||||
object-hash: ^2.0.3
|
||||
open: ^7.0.4
|
||||
prettier: ^2.0.4
|
||||
prettier: ^2.3.2
|
||||
proxy-polyfill: ^0.3.1
|
||||
punycode: ^2.1.1
|
||||
qrcode: ^1.4.4
|
||||
@ -8880,7 +8871,7 @@ fsevents@~2.3.1:
|
||||
ts-lit-plugin: ^1.2.1
|
||||
ts-mocha: ^8.0.0
|
||||
tsparticles: ^1.19.2
|
||||
typescript: ^4.2.4
|
||||
typescript: ^4.3.5
|
||||
unfetch: ^4.1.0
|
||||
vinyl-buffer: ^1.0.1
|
||||
vinyl-source-stream: ^2.0.0
|
||||
@ -9089,13 +9080,6 @@ fsevents@~2.3.1:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"human-signals@npm:^1.1.1":
|
||||
version: 1.1.1
|
||||
resolution: "human-signals@npm:1.1.1"
|
||||
checksum: cac115f635090055427bbd9d066781b17de3a2d8bbf839d920ae2fa52c3eab4efc63b4c8abc10e9a8b979233fa932c43a83a48864003a8c684ed9fb78135dd45
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"human-signals@npm:^2.1.0":
|
||||
version: 2.1.0
|
||||
resolution: "human-signals@npm:2.1.0"
|
||||
@ -9752,7 +9736,7 @@ fsevents@~2.3.1:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"is-regex@npm:^1.1.2, is-regex@npm:^1.1.3":
|
||||
"is-regex@npm:^1.1.3":
|
||||
version: 1.1.3
|
||||
resolution: "is-regex@npm:1.1.3"
|
||||
dependencies:
|
||||
@ -9792,10 +9776,10 @@ fsevents@~2.3.1:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"is-string@npm:^1.0.5":
|
||||
version: 1.0.5
|
||||
resolution: "is-string@npm:1.0.5"
|
||||
checksum: c64c791eb75935db9055291bc598edc22f03d3879b8a050b2955ba8087642d006338a1dedf7ac414c95f985c77c2d6fce655498d33c0df248fa92228a9945720
|
||||
"is-string@npm:^1.0.5, is-string@npm:^1.0.6":
|
||||
version: 1.0.6
|
||||
resolution: "is-string@npm:1.0.6"
|
||||
checksum: 5eb4860eafb9bfd4d9adf56bd530ca0e0cabade776df1e9394e5ca9376bdd6fa0a99879c2b0c3a517076fa31ac739821c2956be6d30ee1458f50ca24a4962478
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@ -9868,7 +9852,7 @@ fsevents@~2.3.1:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"isarray@npm:1.0.0, isarray@npm:^1.0.0, isarray@npm:~1.0.0":
|
||||
"isarray@npm:1.0.0, isarray@npm:~1.0.0":
|
||||
version: 1.0.0
|
||||
resolution: "isarray@npm:1.0.0"
|
||||
checksum: b0ff31a290e783f7b3fb73f2951ee7fc2946dc197b05f73577dc77f87dc3be2e0f66007bedf069123d4e5c4b691e7c89a241f6ca06f0c0f4765cdac5aa4b4047
|
||||
@ -10363,39 +10347,37 @@ fsevents@~2.3.1:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"lint-staged@npm:^10.5.4":
|
||||
version: 10.5.4
|
||||
resolution: "lint-staged@npm:10.5.4"
|
||||
"lint-staged@npm:^11.0.1":
|
||||
version: 11.0.1
|
||||
resolution: "lint-staged@npm:11.0.1"
|
||||
dependencies:
|
||||
chalk: ^4.1.0
|
||||
chalk: ^4.1.1
|
||||
cli-truncate: ^2.1.0
|
||||
commander: ^6.2.0
|
||||
commander: ^7.2.0
|
||||
cosmiconfig: ^7.0.0
|
||||
debug: ^4.2.0
|
||||
debug: ^4.3.1
|
||||
dedent: ^0.7.0
|
||||
enquirer: ^2.3.6
|
||||
execa: ^4.1.0
|
||||
listr2: ^3.2.2
|
||||
log-symbols: ^4.0.0
|
||||
micromatch: ^4.0.2
|
||||
execa: ^5.0.0
|
||||
listr2: ^3.8.2
|
||||
log-symbols: ^4.1.0
|
||||
micromatch: ^4.0.4
|
||||
normalize-path: ^3.0.0
|
||||
please-upgrade-node: ^3.2.0
|
||||
string-argv: 0.3.1
|
||||
stringify-object: ^3.3.0
|
||||
bin:
|
||||
lint-staged: bin/lint-staged.js
|
||||
checksum: dbcafe3679668379fc03f3aef481c3f710794ec03dd5c3915f26a0de110977fbcb44b55ab6dfcff9e8e5789c568ea5629e92f55944fc43f6f6fa1890ee5b07ba
|
||||
checksum: 2b90d18a40acb26c61df224844040843f4533b874cf5a5b6be9d7641d60c2799b4acf7e1f73cea4ab1c3630f26ab3c4553a42935850b6a7683e0500e5af7b3ec
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"listr2@npm:^3.2.2":
|
||||
version: 3.8.2
|
||||
resolution: "listr2@npm:3.8.2"
|
||||
"listr2@npm:^3.8.2":
|
||||
version: 3.10.0
|
||||
resolution: "listr2@npm:3.10.0"
|
||||
dependencies:
|
||||
chalk: ^4.1.1
|
||||
cli-truncate: ^2.1.0
|
||||
figures: ^3.2.0
|
||||
indent-string: ^4.0.0
|
||||
colorette: ^1.2.2
|
||||
log-update: ^4.0.0
|
||||
p-map: ^4.0.0
|
||||
rxjs: ^6.6.7
|
||||
@ -10403,7 +10385,7 @@ fsevents@~2.3.1:
|
||||
wrap-ansi: ^7.0.0
|
||||
peerDependencies:
|
||||
enquirer: ">= 2.3.0 < 3"
|
||||
checksum: ecc039103c8d1065782d327b87045431b609105bcdada16cd209daf1b2f971605ba5c083fbe74e4d17a0002d7f8ab038c94c4feaaf48a0601dba628cd6f0b6e3
|
||||
checksum: 943a47f7fec0050a56bc47c5a55a723bb8633aa5092b344ea65c117b0a4fec8cd6aa76b92323a4bd70b14b3fdfd78ea1e4a16f91efe63d1f0addd2b069323933
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@ -10493,15 +10475,15 @@ fsevents@~2.3.1:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"load-json-file@npm:^2.0.0":
|
||||
version: 2.0.0
|
||||
resolution: "load-json-file@npm:2.0.0"
|
||||
"load-json-file@npm:^4.0.0":
|
||||
version: 4.0.0
|
||||
resolution: "load-json-file@npm:4.0.0"
|
||||
dependencies:
|
||||
graceful-fs: ^4.1.2
|
||||
parse-json: ^2.2.0
|
||||
pify: ^2.0.0
|
||||
parse-json: ^4.0.0
|
||||
pify: ^3.0.0
|
||||
strip-bom: ^3.0.0
|
||||
checksum: c6ea93d36099dd6e778c6c018c9e184ad65d278a9538c2280f959b040b1a9a756d8856bdaf8a38c8f1454eca19bf4798ea59f79ccd8bb1c33aa8b7ecbe157f0c
|
||||
checksum: 692f33387be2439e920e394a70754499c22eabe567f55fee7c0a8994c050e27360c1b39c5375d214539ebb7d609d28e69f6bd6e3c070d30bc202c99289e27f96
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@ -10680,13 +10662,6 @@ fsevents@~2.3.1:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"lodash.flatten@npm:^4.4.0":
|
||||
version: 4.4.0
|
||||
resolution: "lodash.flatten@npm:4.4.0"
|
||||
checksum: f22a7f6f163256d87345b07c76122e03d03abbf943b6c3aa5e5fafb7d5bce765013aedfc2aae7e649af0907287a2cf85de24237dbdd3ecd485a77d56e070b54c
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"lodash.get@npm:^4.4.2":
|
||||
version: 4.4.2
|
||||
resolution: "lodash.get@npm:4.4.2"
|
||||
@ -10714,6 +10689,13 @@ fsevents@~2.3.1:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"lodash.merge@npm:^4.6.2":
|
||||
version: 4.6.2
|
||||
resolution: "lodash.merge@npm:4.6.2"
|
||||
checksum: 4e2bb42a87a148991458d7c384bc197e96f7115e9536fc8e2c86ae9e99ce1c1f693ff15eb85761952535f48d72253aed8e673d9f32dde3e671cd91e3fde220a7
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"lodash.mergewith@npm:^4.6.1":
|
||||
version: 4.6.2
|
||||
resolution: "lodash.mergewith@npm:4.6.2"
|
||||
@ -10788,7 +10770,7 @@ fsevents@~2.3.1:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"lodash@npm:^4.17.11, lodash@npm:^4.17.15, lodash@npm:^4.17.20, lodash@npm:^4.17.21":
|
||||
"lodash@npm:^4.17.11, lodash@npm:^4.17.20, lodash@npm:^4.17.21":
|
||||
version: 4.17.21
|
||||
resolution: "lodash@npm:4.17.21"
|
||||
checksum: 4983720b9abca930a4a46f18db163d7dad8dd00dbed6db0cc7b499b33b717cce69f80928b27bbb1ff2cbd3b19d251ee90669a8b5ea466072ca81c2ebe91e7468
|
||||
@ -10813,7 +10795,7 @@ fsevents@~2.3.1:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"log-symbols@npm:^4.0.0":
|
||||
"log-symbols@npm:^4.1.0":
|
||||
version: 4.1.0
|
||||
resolution: "log-symbols@npm:4.1.0"
|
||||
dependencies:
|
||||
@ -11109,13 +11091,13 @@ fsevents@~2.3.1:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"micromatch@npm:^4.0.2":
|
||||
version: 4.0.2
|
||||
resolution: "micromatch@npm:4.0.2"
|
||||
"micromatch@npm:^4.0.2, micromatch@npm:^4.0.4":
|
||||
version: 4.0.4
|
||||
resolution: "micromatch@npm:4.0.4"
|
||||
dependencies:
|
||||
braces: ^3.0.1
|
||||
picomatch: ^2.0.5
|
||||
checksum: 0cb0e11d647cbb65e398a0a8a1340a7fb751ae2722346219c435704cfac8b3275a94a6464236fe867f52ad46a24046d3bc4ac11b3d21ddb73bc44e27cf1e4904
|
||||
picomatch: ^2.2.3
|
||||
checksum: bc522ad93c086aa176f50fea2dc8060a8f7d7a621c811cf9ba02a1912577cc100190508166d721231465f10a575a40ec8a1bffc23bbc2c0108fcbf02e4be04ed
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@ -11706,7 +11688,7 @@ fsevents@~2.3.1:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"npm-run-path@npm:^4.0.0, npm-run-path@npm:^4.0.1":
|
||||
"npm-run-path@npm:^4.0.1":
|
||||
version: 4.0.1
|
||||
resolution: "npm-run-path@npm:4.0.1"
|
||||
dependencies:
|
||||
@ -11759,10 +11741,10 @@ fsevents@~2.3.1:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"object-inspect@npm:^1.9.0":
|
||||
version: 1.10.2
|
||||
resolution: "object-inspect@npm:1.10.2"
|
||||
checksum: 2bb89d63fde8e5dc8ee255aa783308477c614204a12b5568e4646a3032fd75600ead57769f3e0557c7fed51ab4fe4f54f6998b77a0832c3e5b61974d67f3f705
|
||||
"object-inspect@npm:^1.10.3":
|
||||
version: 1.11.0
|
||||
resolution: "object-inspect@npm:1.11.0"
|
||||
checksum: 7890688465619b0947d4370c82d7454cbca855012facb0e1083eb9c44f35718a3479f06887a0acf72b1f181930151a465e899bc16127f7d8c5fb2eee0c61c093
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@ -11847,15 +11829,14 @@ fsevents@~2.3.1:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"object.values@npm:^1.1.1":
|
||||
version: 1.1.3
|
||||
resolution: "object.values@npm:1.1.3"
|
||||
"object.values@npm:^1.1.3":
|
||||
version: 1.1.4
|
||||
resolution: "object.values@npm:1.1.4"
|
||||
dependencies:
|
||||
call-bind: ^1.0.2
|
||||
define-properties: ^1.1.3
|
||||
es-abstract: ^1.18.0-next.2
|
||||
has: ^1.0.3
|
||||
checksum: 31111fe8b8dfe7c3326ae8729eae542dc32d5705339b9b63d89d4a2f766641bfe8989744bd4771c65a7ca0dff281800e99640262c2e82daa97079143a86b3e0b
|
||||
es-abstract: ^1.18.2
|
||||
checksum: c7d8435611d566616e2dd4b85a71072715b7b049c637b9253313517754baef3d9fd1d0df0a8bd7980f2800efbdcb89832ca4af8aa4b949ca0fe369d0d773d48c
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@ -12378,12 +12359,12 @@ fsevents@~2.3.1:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"path-type@npm:^2.0.0":
|
||||
version: 2.0.0
|
||||
resolution: "path-type@npm:2.0.0"
|
||||
"path-type@npm:^3.0.0":
|
||||
version: 3.0.0
|
||||
resolution: "path-type@npm:3.0.0"
|
||||
dependencies:
|
||||
pify: ^2.0.0
|
||||
checksum: d028f828dffe48a0062dc4370d5118a0c45f5fb075b013a1dfb13eadd1426eba0c8c2a13fa78f19fc4fd8771ef2012e9d062f8f970c8e56df36d4fbbe5073b26
|
||||
pify: ^3.0.0
|
||||
checksum: db700bfc22254b38d0c8378440ec8b7b869f5d0b946d02abd281bcc6ea456a573167a8a80dd8280848998bb9739c2009f80bcf0dbf5c9d75ab18650e07fb893f
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@ -12415,10 +12396,10 @@ fsevents@~2.3.1:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"picomatch@npm:^2.0.4, picomatch@npm:^2.0.5, picomatch@npm:^2.2.1, picomatch@npm:^2.2.2":
|
||||
version: 2.2.3
|
||||
resolution: "picomatch@npm:2.2.3"
|
||||
checksum: f8c9323bc3b21ff448e81dd32277135d781abae5d53a1415d69a4ce6317a2c11404d449c550110b8fa402c07d5e80ff0e2657f263a312517cc809e9010d25791
|
||||
"picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.2.2, picomatch@npm:^2.2.3":
|
||||
version: 2.3.0
|
||||
resolution: "picomatch@npm:2.3.0"
|
||||
checksum: 80113a0fb70cfa62730d5aa3fd3d45b76bf3985f8494080ab2de1cc1fa3ba96d77990c7553a81401e16c51c0eb19c27cf5bc94f2196155090f26c8a167968001
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@ -12497,6 +12478,15 @@ fsevents@~2.3.1:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"pkg-up@npm:^2.0.0":
|
||||
version: 2.0.0
|
||||
resolution: "pkg-up@npm:2.0.0"
|
||||
dependencies:
|
||||
find-up: ^2.1.0
|
||||
checksum: 0a8fcbebf0f1aadc7a52c576352a698abef6c389cb00a0847db2d370d05d4c005f855e196d29618b088062f1394711ca6dadd232692ed225511d7e75a198d246
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"please-upgrade-node@npm:^3.1.1, please-upgrade-node@npm:^3.2.0":
|
||||
version: 3.2.0
|
||||
resolution: "please-upgrade-node@npm:3.2.0"
|
||||
@ -12566,12 +12556,12 @@ fsevents@~2.3.1:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"prettier@npm:^2.0.4":
|
||||
version: 2.2.1
|
||||
resolution: "prettier@npm:2.2.1"
|
||||
"prettier@npm:^2.3.2":
|
||||
version: 2.3.2
|
||||
resolution: "prettier@npm:2.3.2"
|
||||
bin:
|
||||
prettier: bin-prettier.js
|
||||
checksum: 92c6c9f4b87eba1f28466edee57dd18c80d00b858edda77d46d1950d20e6e302b68ee255fc91133ba931e63c4577b5ae30da194d9626a8f3c0177778b91bf056
|
||||
checksum: 4fd89a7f6a12b13456d359fba2b1dd0fc0a17cf33f8f15953ab9f43b21ea9b09b5a2861d63b558ca0577274ce606d390e70628cf93e26d19d6cb7f19c9eebc31
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@ -12832,13 +12822,13 @@ fsevents@~2.3.1:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"read-pkg-up@npm:^2.0.0":
|
||||
version: 2.0.0
|
||||
resolution: "read-pkg-up@npm:2.0.0"
|
||||
"read-pkg-up@npm:^3.0.0":
|
||||
version: 3.0.0
|
||||
resolution: "read-pkg-up@npm:3.0.0"
|
||||
dependencies:
|
||||
find-up: ^2.0.0
|
||||
read-pkg: ^2.0.0
|
||||
checksum: f35e4cb4577b994fc9497886672c748de766ab034e24f029111b6bbbfe757b2e27b6d2b82a28a38f45d9d89ea8a9b1d3c04854e5f991d5deed48f4c9ff7baeb9
|
||||
read-pkg: ^3.0.0
|
||||
checksum: 3ef50bea6df7ee0153b41f2bd2dda66ccd1fd06117a312b940b4158801c5b3cd2e4d9e9e2a81486f3197412385d7b52f17f70012e35ddb1e30acd7b425e00e38
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@ -12853,14 +12843,14 @@ fsevents@~2.3.1:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"read-pkg@npm:^2.0.0":
|
||||
version: 2.0.0
|
||||
resolution: "read-pkg@npm:2.0.0"
|
||||
"read-pkg@npm:^3.0.0":
|
||||
version: 3.0.0
|
||||
resolution: "read-pkg@npm:3.0.0"
|
||||
dependencies:
|
||||
load-json-file: ^2.0.0
|
||||
load-json-file: ^4.0.0
|
||||
normalize-package-data: ^2.3.2
|
||||
path-type: ^2.0.0
|
||||
checksum: ddf911317fba54abb447b1d76dd1785c37e1360f7b1e39d83201f6f3807572391ab7392f11727a9c4d90600ebc6616d22e72514d2291688c89ebd440148840b4
|
||||
path-type: ^3.0.0
|
||||
checksum: 8cc577b41ddd70a0037d6c0414acfab8db3a25a30c7854decf3d613f1f4240c8a47e20fddbd82724e02d4eb5a0c489e2621b4a5bb3558e09ce81f53306d1b850
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@ -13022,7 +13012,7 @@ fsevents@~2.3.1:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"regexpp@npm:^3.0.0, regexpp@npm:^3.1.0":
|
||||
"regexpp@npm:^3.1.0":
|
||||
version: 3.1.0
|
||||
resolution: "regexpp@npm:3.1.0"
|
||||
checksum: 69d0ce6b449cf35d3732d6341a1e70850360ffc619f8eef10629871c462e614853fffb80d3f00fc17cd0bb5b8f34b0cde5be4b434e72c0eb3fbba2360c8b5ac4
|
||||
@ -14484,18 +14474,17 @@ fsevents@~2.3.1:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"table@npm:^6.0.4":
|
||||
version: 6.6.0
|
||||
resolution: "table@npm:6.6.0"
|
||||
"table@npm:^6.0.9":
|
||||
version: 6.7.1
|
||||
resolution: "table@npm:6.7.1"
|
||||
dependencies:
|
||||
ajv: ^8.0.1
|
||||
lodash.clonedeep: ^4.5.0
|
||||
lodash.flatten: ^4.4.0
|
||||
lodash.truncate: ^4.4.2
|
||||
slice-ansi: ^4.0.0
|
||||
string-width: ^4.2.0
|
||||
strip-ansi: ^6.0.0
|
||||
checksum: 78186283603545e6c182e00a37a775d677d1a0737bfff0a5948b1083104adfcc140be9aff53552d45a3912d85ee19f6745c4dfb97b9f9a27b309c4fcf3f48c79
|
||||
checksum: 66107046b7226051552d53c1260facfed03f4050373d3888620af7b1353f6a5429d9a4a5fb796c56c29b9dd5ffca7b661a815f42ec392cb5956432585578772a
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@ -14922,14 +14911,14 @@ fsevents@~2.3.1:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"tsutils@npm:^3.17.1":
|
||||
version: 3.17.1
|
||||
resolution: "tsutils@npm:3.17.1"
|
||||
"tsutils@npm:^3.21.0":
|
||||
version: 3.21.0
|
||||
resolution: "tsutils@npm:3.21.0"
|
||||
dependencies:
|
||||
tslib: ^1.8.1
|
||||
peerDependencies:
|
||||
typescript: ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta"
|
||||
checksum: bed8ff7998d90a7ab9f3bdb26d36dae0edfcdb3e4f07994fb59df8d42e62ee07d591d3a435fb65cb50b6ca9af6b76c9bc9423a216186e5085d91793fa169c248
|
||||
checksum: a10e746258ca9c8e5cdd5e363259b4e353a6729b432f1b30455b9d84ff3fd2f12a44fedafd13872518b0e951fa8cdf56a5b35908bc91d5bf5e7d342548427f2e
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@ -14970,13 +14959,6 @@ fsevents@~2.3.1:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"type-fest@npm:^0.8.1":
|
||||
version: 0.8.1
|
||||
resolution: "type-fest@npm:0.8.1"
|
||||
checksum: f8c4b4249f52e8bea7a4fc55b3653c96c2d547240e4c772e001d02b7cc38b8c3eb493ab9fbe985a76a203cd1aa7044776b728a71ba12bf36e7131f989597885b
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"type-is@npm:^1.6.16, type-is@npm:~1.6.17, type-is@npm:~1.6.18":
|
||||
version: 1.6.18
|
||||
resolution: "type-is@npm:1.6.18"
|
||||
@ -15004,13 +14986,13 @@ typescript@^3.8.3:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
typescript@^4.2.4:
|
||||
version: 4.2.4
|
||||
resolution: "typescript@npm:4.2.4"
|
||||
typescript@^4.3.5:
|
||||
version: 4.3.5
|
||||
resolution: "typescript@npm:4.3.5"
|
||||
bin:
|
||||
tsc: bin/tsc
|
||||
tsserver: bin/tsserver
|
||||
checksum: edaede2fa77f56b7fba80ee624a2368ab1216e75b0434d968ccb47ab0a5e2f6d94f848b3b111c1237dd71e988cd376af26370dcdad3b94355c76e759f0dd0a1e
|
||||
checksum: d9a8e78d72dd19896e6bfa73ab2a0fcea6eca2700d1d6e7c33f67a970af54a3e0fed8f715a8c4e6a0ff7fc0995067b394b2003518ab0aa84cd396377e54b760c
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@ -15024,13 +15006,13 @@ typescript@^4.2.4:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"typescript@patch:typescript@^4.2.4#builtin<compat/typescript>":
|
||||
version: 4.2.4
|
||||
resolution: "typescript@patch:typescript@npm%3A4.2.4#builtin<compat/typescript>::version=4.2.4&hash=ddfc1b"
|
||||
"typescript@patch:typescript@^4.3.5#builtin<compat/typescript>":
|
||||
version: 4.3.5
|
||||
resolution: "typescript@patch:typescript@npm%3A4.3.5#builtin<compat/typescript>::version=4.3.5&hash=ddfc1b"
|
||||
bin:
|
||||
tsc: bin/tsc
|
||||
tsserver: bin/tsserver
|
||||
checksum: 64658fdf27872904641dcaacf925e6b5a52fb4aa4881a5a726fc78a11b76748423ce9e996dac42313729321061c4dd38a06108014f8d07b222dcff2687037186
|
||||
checksum: 7f0b8343f71ecac18095be1476b398aca420ab60dc207cc1efe078f381eef5527b80a518297720257114cdbda65612f8839e4b63e85dc95e67ac5cbbade8bdf0
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@ -15059,7 +15041,7 @@ typescript@^4.2.4:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"unbox-primitive@npm:^1.0.0":
|
||||
"unbox-primitive@npm:^1.0.1":
|
||||
version: 1.0.1
|
||||
resolution: "unbox-primitive@npm:1.0.1"
|
||||
dependencies:
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user