diff --git a/demo/src/stubs/config_entries.ts b/demo/src/stubs/config_entries.ts index ddcdc1e43a..01a6da133e 100644 --- a/demo/src/stubs/config_entries.ts +++ b/demo/src/stubs/config_entries.ts @@ -1,20 +1,18 @@ import { MockHomeAssistant } from "../../../src/fake_data/provide_hass"; export const mockConfigEntries = (hass: MockHomeAssistant) => { - hass.mockWS("config_entries/get_matching", () => [ - { - entry_id: "co2signal", - domain: "co2signal", - title: "CO2 Signal", - source: "user", - state: "loaded", - supports_options: false, - supports_remove_device: false, - supports_unload: true, - pref_disable_new_entities: false, - pref_disable_polling: false, - disabled_by: null, - reason: null, - }, - ]); + hass.mockWS("config_entries/get", () => ({ + entry_id: "co2signal", + domain: "co2signal", + title: "Electricity Maps", + source: "user", + state: "loaded", + supports_options: false, + supports_remove_device: false, + supports_unload: true, + pref_disable_new_entities: false, + pref_disable_polling: false, + disabled_by: null, + reason: null, + })); }; diff --git a/demo/src/stubs/persistent_notification.ts b/demo/src/stubs/persistent_notification.ts index b5a2d7223d..04b46e5f97 100644 --- a/demo/src/stubs/persistent_notification.ts +++ b/demo/src/stubs/persistent_notification.ts @@ -1,16 +1,20 @@ -import { PersistentNotification } from "../../../src/data/persistent_notification"; +import { PersistentNotificationMessage } from "../../../src/data/persistent_notification"; import { MockHomeAssistant } from "../../../src/fake_data/provide_hass"; export const mockPersistentNotification = (hass: MockHomeAssistant) => { - hass.mockWS("persistent_notification/get", () => - Promise.resolve([ - { - created_at: new Date().toISOString(), - message: "There was motion detected in the backyard.", - notification_id: "demo-1", - title: "Motion Detected!", - status: "unread", + hass.mockWS("persistent_notification/subscribe", (_msg, _hass, onChange) => { + onChange!({ + type: "added", + notifications: { + "demo-1": { + created_at: new Date().toISOString(), + message: "There was motion detected in the backyard.", + notification_id: "demo-1", + title: "Motion Detected!", + status: "unread", + }, }, - ] as PersistentNotification[]) - ); + } as PersistentNotificationMessage); + return () => {}; + }); }; diff --git a/demo/src/stubs/recorder.ts b/demo/src/stubs/recorder.ts index 7ba78a805b..7cc9439ab0 100644 --- a/demo/src/stubs/recorder.ts +++ b/demo/src/stubs/recorder.ts @@ -72,6 +72,7 @@ const generateSumStatistics = ( min: null, max: null, last_reset: 0, + change: add, state: initValue + sum, sum, }); @@ -103,8 +104,8 @@ const generateCurvedStatistics = ( let half = false; const now = new Date(); while (end > currentDate && currentDate < now) { - const add = Math.random() * maxDiff; - sum += i * add; + const add = i * (Math.random() * maxDiff); + sum += add; statistics.push({ start: currentDate.getTime(), end: currentDate.getTime(), @@ -112,6 +113,7 @@ const generateCurvedStatistics = ( min: null, max: null, last_reset: 0, + change: add, state: initValue + sum, sum: metered ? sum : null, }); diff --git a/package.json b/package.json index 4689fad4b6..45b4f45a36 100644 --- a/package.json +++ b/package.json @@ -184,21 +184,21 @@ "@types/sortablejs": "1.15.1", "@types/tar": "6.1.5", "@types/webspeechapi": "0.0.29", - "@typescript-eslint/eslint-plugin": "6.1.0", - "@typescript-eslint/parser": "6.1.0", + "@typescript-eslint/eslint-plugin": "6.2.0", + "@typescript-eslint/parser": "6.2.0", "@web/dev-server": "0.1.38", "@web/dev-server-rollup": "0.4.1", "babel-loader": "9.1.3", "babel-plugin-template-html-minifier": "4.1.0", "chai": "4.3.7", "del": "7.0.0", - "eslint": "8.45.0", + "eslint": "8.46.0", "eslint-config-airbnb-base": "15.0.0", "eslint-config-airbnb-typescript": "17.1.0", - "eslint-config-prettier": "8.8.0", + "eslint-config-prettier": "8.9.0", "eslint-import-resolver-webpack": "0.13.2", "eslint-plugin-disable": "2.0.3", - "eslint-plugin-import": "2.27.5", + "eslint-plugin-import": "2.28.0", "eslint-plugin-lit": "1.8.3", "eslint-plugin-lit-a11y": "3.0.0", "eslint-plugin-unused-imports": "3.0.0", diff --git a/pyproject.toml b/pyproject.toml index e3972f0f8b..3461519203 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "home-assistant-frontend" -version = "20230725.0" +version = "20230801.0" license = {text = "Apache-2.0"} description = "The Home Assistant frontend" readme = "README.md" diff --git a/src/common/const.ts b/src/common/const.ts index 56b632d4be..e5c36f1eee 100644 --- a/src/common/const.ts +++ b/src/common/const.ts @@ -261,7 +261,11 @@ export const DOMAINS_TOGGLE = new Set([ ]); /** Domains that have a dynamic entity image / picture. */ -export const DOMAINS_WITH_DYNAMIC_PICTURE = new Set(["camera", "media_player"]); +export const DOMAINS_WITH_DYNAMIC_PICTURE = new Set([ + "camera", + "image", + "media_player", +]); /** Temperature units. */ export const UNIT_C = "°C"; diff --git a/src/common/entity/compute_attribute_display.ts b/src/common/entity/compute_attribute_display.ts index 1d5d8af8a4..0a6d16e55c 100644 --- a/src/common/entity/compute_attribute_display.ts +++ b/src/common/entity/compute_attribute_display.ts @@ -46,7 +46,10 @@ export const computeAttributeValueDisplay = ( // If invalid URL, exception will be raised const url = new URL(attributeValue); if (url.protocol === "http:" || url.protocol === "https:") - return html`${attributeValue}`; } catch (_) { diff --git a/src/common/entity/get_states.ts b/src/common/entity/get_states.ts index 17140b2166..9ac8bcfbaa 100644 --- a/src/common/entity/get_states.ts +++ b/src/common/entity/get_states.ts @@ -28,7 +28,15 @@ export const FIXED_DOMAIN_STATES = { input_button: [], light: ["on", "off"], lock: ["jammed", "locked", "locking", "unlocked", "unlocking"], - media_player: ["idle", "off", "paused", "playing", "standby"], + media_player: [ + "off", + "on", + "idle", + "playing", + "paused", + "standby", + "buffering", + ], person: ["home", "not_home"], plant: ["ok", "problem"], remote: ["on", "off"], diff --git a/src/components/ha-selector/ha-selector-number.ts b/src/components/ha-selector/ha-selector-number.ts index fd66d3efe7..8c569e4d07 100644 --- a/src/components/ha-selector/ha-selector-number.ts +++ b/src/components/ha-selector/ha-selector-number.ts @@ -34,7 +34,7 @@ export class HaNumberSelector extends LitElement { ${!isBox ? html` ${this.label - ? html`${this.label}${this.required ? " *" : ""}` + ? html`${this.label}${this.required ? "*" : ""}` : ""} ${this.label}${this.required ? " *" : ""}

` - : ""} + ${this.label ? html`

${this.label}${this.required ? "*" : ""}

` : ""} ` : ""} - ${hourly - ? html` -
- ${formatTimeWeekday( - new Date(item.datetime), - this.hass.locale, - this.hass.config - )} -
- ` - : html` -
+
+ ${dayNight + ? html` ${formatDateWeekdayDay( new Date(item.datetime), - this.hass.locale, - this.hass.config + this.hass!.locale, + this.hass!.config )} - ${item.is_daytime !== false + (${item.is_daytime !== false ? this.hass!.localize("ui.card.weather.day") - : this.hass!.localize("ui.card.weather.night")} -
- `} + : this.hass!.localize("ui.card.weather.night")}) + ` + : hourly + ? html` + ${formatTimeWeekday( + new Date(item.datetime), + this.hass!.locale, + this.hass!.config + )} + ` + : html` + ${formatDateWeekdayDay( + new Date(item.datetime), + this.hass!.locale, + this.hass!.config + )} + `} +
${this._showValue(item.templow) ? `${formatNumber(item.templow!, this.hass.locale)} diff --git a/src/panels/config/automation/action/types/ha-automation-action-choose.ts b/src/panels/config/automation/action/types/ha-automation-action-choose.ts index 3d6349657a..a34bb036e2 100644 --- a/src/panels/config/automation/action/types/ha-automation-action-choose.ts +++ b/src/panels/config/automation/action/types/ha-automation-action-choose.ts @@ -76,6 +76,9 @@ export class HaChooseAction extends LitElement implements ActionElement { } private _getDescription(option, idx: number) { + if (option.alias) { + return option.alias; + } if (this.isExpanded(idx)) { return ""; } diff --git a/src/panels/lovelace/cards/hui-weather-forecast-card.ts b/src/panels/lovelace/cards/hui-weather-forecast-card.ts index b5ee99fc86..a1528588bb 100644 --- a/src/panels/lovelace/cards/hui-weather-forecast-card.ts +++ b/src/panels/lovelace/cards/hui-weather-forecast-card.ts @@ -352,9 +352,10 @@ class HuiWeatherForecastCard extends LitElement implements LovelaceCard {
${dayNight ? html` - ${new Date(item.datetime).toLocaleDateString( - this.hass!.language, - { weekday: "short" } + ${formatDateWeekdayShort( + new Date(item.datetime), + this.hass!.locale, + this.hass!.config )}
${item.is_daytime !== false diff --git a/src/panels/lovelace/entity-rows/hui-event-entity-row.ts b/src/panels/lovelace/entity-rows/hui-event-entity-row.ts index 35c98d1a0d..cb6e097a50 100644 --- a/src/panels/lovelace/entity-rows/hui-event-entity-row.ts +++ b/src/panels/lovelace/entity-rows/hui-event-entity-row.ts @@ -69,14 +69,17 @@ class HuiEventEntityRow extends LitElement implements LovelaceRow { })} >
+ ${computeStateDisplay( + this.hass!.localize, + stateObj, + this.hass.locale, + this.hass.config, + this.hass.entities + )} +
+
${isUnavailableState(stateObj.state) - ? computeStateDisplay( - this.hass!.localize, - stateObj, - this.hass.locale, - this.hass.config, - this.hass.entities - ) + ? `` : computeAttributeValueDisplay( this.hass!.localize, stateObj, @@ -86,18 +89,6 @@ class HuiEventEntityRow extends LitElement implements LovelaceRow { "event_type" )}
-
- ${isUnavailableState(stateObj.state) - ? `` - : html` - - `} -
`; diff --git a/src/state-summary/state-card-event.ts b/src/state-summary/state-card-event.ts index 20d590fb22..325bc88d69 100644 --- a/src/state-summary/state-card-event.ts +++ b/src/state-summary/state-card-event.ts @@ -1,10 +1,9 @@ import { HassEntity } from "home-assistant-js-websocket"; -import { CSSResultGroup, html, LitElement } from "lit"; +import { css, CSSResultGroup, html, LitElement } from "lit"; import { customElement, property } from "lit/decorators"; import "../components/entity/ha-entity-toggle"; import "../components/entity/state-info"; import { HomeAssistant } from "../types"; -import { isUnavailableState } from "../data/entity"; import { computeAttributeValueDisplay } from "../common/entity/compute_attribute_display"; import { computeStateDisplay } from "../common/entity/compute_state_display"; import { haStyle } from "../resources/styles"; @@ -25,30 +24,45 @@ export class StateCardEvent extends LitElement { .stateObj=${this.stateObj} .inDialog=${this.inDialog} > -
- ${isUnavailableState(this.stateObj.state) - ? computeStateDisplay( - this.hass!.localize, - this.stateObj, - this.hass.locale, - this.hass.config, - this.hass.entities - ) - : computeAttributeValueDisplay( - this.hass!.localize, - this.stateObj, - this.hass.locale, - this.hass.config, - this.hass.entities, - "event_type" - )} +
+
+ ${computeStateDisplay( + this.hass!.localize, + this.stateObj, + this.hass.locale, + this.hass.config, + this.hass.entities + )} +
+
+ ${computeAttributeValueDisplay( + this.hass!.localize, + this.stateObj, + this.hass.locale, + this.hass.config, + this.hass.entities, + "event_type" + )} +
`; } static get styles(): CSSResultGroup { - return haStyle; + return [ + haStyle, + css` + .container { + display: flex; + flex-direction: column; + align-items: flex-end; + } + .event_data { + color: var(--secondary-text-color); + } + `, + ]; } } diff --git a/src/translations/en.json b/src/translations/en.json index 8834f0583e..e330d356bd 100644 --- a/src/translations/en.json +++ b/src/translations/en.json @@ -362,6 +362,7 @@ "detected_tampering": "detected tampering", "cleared_tampering": "cleared tampering", "detected_event": "{event_type} event detected", + "detected_event_no_type": "detected an event", "detected_unknown_event": "detected an unknown event" } }, diff --git a/yarn.lock b/yarn.lock index 8ade02b4c4..b1cc8ea2a8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1560,16 +1560,16 @@ __metadata: languageName: node linkType: hard -"@eslint-community/regexpp@npm:^4.4.0, @eslint-community/regexpp@npm:^4.5.1": - version: 4.5.1 - resolution: "@eslint-community/regexpp@npm:4.5.1" - checksum: 6d901166d64998d591fab4db1c2f872981ccd5f6fe066a1ad0a93d4e11855ecae6bfb76660869a469563e8882d4307228cebd41142adb409d182f2966771e57e +"@eslint-community/regexpp@npm:^4.5.1, @eslint-community/regexpp@npm:^4.6.1": + version: 4.6.2 + resolution: "@eslint-community/regexpp@npm:4.6.2" + checksum: a3c341377b46b54fa228f455771b901d1a2717f95d47dcdf40199df30abc000ba020f747f114f08560d119e979d882a94cf46cfc51744544d54b00319c0f2724 languageName: node linkType: hard -"@eslint/eslintrc@npm:^2.1.0": - version: 2.1.0 - resolution: "@eslint/eslintrc@npm:2.1.0" +"@eslint/eslintrc@npm:^2.1.1": + version: 2.1.1 + resolution: "@eslint/eslintrc@npm:2.1.1" dependencies: ajv: ^6.12.4 debug: ^4.3.2 @@ -1580,14 +1580,14 @@ __metadata: js-yaml: ^4.1.0 minimatch: ^3.1.2 strip-json-comments: ^3.1.1 - checksum: d5ed0adbe23f6571d8c9bb0ca6edf7618dc6aed4046aa56df7139f65ae7b578874e0d9c796df784c25bda648ceb754b6320277d828c8b004876d7443b8dc018c + checksum: bf909ea183d27238c257a82d4ffdec38ca94b906b4b8dfae02ecbe7ecc9e5a8182ef5e469c808bb8cb4fea4750f43ac4ca7c4b4a167b6cd7e3aaacd386b2bd25 languageName: node linkType: hard -"@eslint/js@npm:8.44.0": - version: 8.44.0 - resolution: "@eslint/js@npm:8.44.0" - checksum: fc539583226a28f5677356e9f00d2789c34253f076643d2e32888250e509a4e13aafe0880cb2425139051de0f3a48d25bfc5afa96b7304f203b706c17340e3cf +"@eslint/js@npm:^8.46.0": + version: 8.46.0 + resolution: "@eslint/js@npm:8.46.0" + checksum: 7aed479832302882faf5bec37e9d068f270f84c19b3fb529646a7c1b031e73a312f730569c78806492bc09cfce3d7651dfab4ce09a56cbb06bc6469449e56377 languageName: node linkType: hard @@ -4647,15 +4647,15 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:6.1.0": - version: 6.1.0 - resolution: "@typescript-eslint/eslint-plugin@npm:6.1.0" +"@typescript-eslint/eslint-plugin@npm:6.2.0": + version: 6.2.0 + resolution: "@typescript-eslint/eslint-plugin@npm:6.2.0" dependencies: "@eslint-community/regexpp": ^4.5.1 - "@typescript-eslint/scope-manager": 6.1.0 - "@typescript-eslint/type-utils": 6.1.0 - "@typescript-eslint/utils": 6.1.0 - "@typescript-eslint/visitor-keys": 6.1.0 + "@typescript-eslint/scope-manager": 6.2.0 + "@typescript-eslint/type-utils": 6.2.0 + "@typescript-eslint/utils": 6.2.0 + "@typescript-eslint/visitor-keys": 6.2.0 debug: ^4.3.4 graphemer: ^1.4.0 ignore: ^5.2.4 @@ -4669,44 +4669,44 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: e1f05d8d49041b47cdbea8fc80f87f03dc0f7273deb2f34f73661831572fe62976ab3780972496428ce6fa31d3f53236a4c90cd9948d45f5004631edbfa3d42a + checksum: 1ef46b1c2e3e2013f66b4982dcfb9e198a3824cc1503b843e553201a108a3cb6e4adfb2c486158c89d993e5e4b9d99aeb2af28297e43da98c4750dae8f5131b5 languageName: node linkType: hard -"@typescript-eslint/parser@npm:6.1.0": - version: 6.1.0 - resolution: "@typescript-eslint/parser@npm:6.1.0" +"@typescript-eslint/parser@npm:6.2.0": + version: 6.2.0 + resolution: "@typescript-eslint/parser@npm:6.2.0" dependencies: - "@typescript-eslint/scope-manager": 6.1.0 - "@typescript-eslint/types": 6.1.0 - "@typescript-eslint/typescript-estree": 6.1.0 - "@typescript-eslint/visitor-keys": 6.1.0 + "@typescript-eslint/scope-manager": 6.2.0 + "@typescript-eslint/types": 6.2.0 + "@typescript-eslint/typescript-estree": 6.2.0 + "@typescript-eslint/visitor-keys": 6.2.0 debug: ^4.3.4 peerDependencies: eslint: ^7.0.0 || ^8.0.0 peerDependenciesMeta: typescript: optional: true - checksum: dc59cda4396ca09e3aa2bd5b99d8ef9526df56567d4a9b953668102116db975dfb2426c3369560a2b02e083d49e43b4cebb252144d175e900096eb0b17f7ae3c + checksum: ba79674f2d4599a24c7afa8f18ec28243b80df39f82a4a6b7a4ce7c584ec37d4ade40a3aa058d597a5cbf71647a40d0995866748d14cf4b52d8ad4420d10f669 languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:6.1.0": - version: 6.1.0 - resolution: "@typescript-eslint/scope-manager@npm:6.1.0" +"@typescript-eslint/scope-manager@npm:6.2.0": + version: 6.2.0 + resolution: "@typescript-eslint/scope-manager@npm:6.2.0" dependencies: - "@typescript-eslint/types": 6.1.0 - "@typescript-eslint/visitor-keys": 6.1.0 - checksum: 57c73b8713be79abebbcfef1d58f78a820ea88a5c37a44d2c9a76130216d9ee824134fae215dde794121cfaf1284370da77e1e5184ba71812aebb1a8cf39f325 + "@typescript-eslint/types": 6.2.0 + "@typescript-eslint/visitor-keys": 6.2.0 + checksum: 75a650a3ede78bf841a3bf3f4880b94a06aa4c420f399a6fb9faee19a2e5998f7e330a13f78e07c4958413345bab58b0593f09fa163a77e8f6353012e795660c languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:6.1.0": - version: 6.1.0 - resolution: "@typescript-eslint/type-utils@npm:6.1.0" +"@typescript-eslint/type-utils@npm:6.2.0": + version: 6.2.0 + resolution: "@typescript-eslint/type-utils@npm:6.2.0" dependencies: - "@typescript-eslint/typescript-estree": 6.1.0 - "@typescript-eslint/utils": 6.1.0 + "@typescript-eslint/typescript-estree": 6.2.0 + "@typescript-eslint/utils": 6.2.0 debug: ^4.3.4 ts-api-utils: ^1.0.1 peerDependencies: @@ -4714,23 +4714,23 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 83b2ffcf3aa297b60deb2e9ddd946b9c15cc55d0727dfc8a3447e8e5402428f6ee3fc67fb9d5d8ade25da4069ca77e23777caf02bcacd2a1e75b66cfc4d76579 + checksum: 9adb542fb3c49bf5c1fecca98549bee3fcfd28a0ceee5227817a1ceb0841b912e322f58ba1b3ca98a47fc998cbec0a3d69cacb9cf9ac4be1d133b11bb9d53aae languageName: node linkType: hard -"@typescript-eslint/types@npm:6.1.0": - version: 6.1.0 - resolution: "@typescript-eslint/types@npm:6.1.0" - checksum: c1f55ebfda7af5e63077beb65fe5a82de7ae7afb913a4ebfb023f2889d5ec06f75b6ebca6ee45d6d205508a52fa5a6bf5821182c3e7e4400ac9304083b88f139 +"@typescript-eslint/types@npm:6.2.0": + version: 6.2.0 + resolution: "@typescript-eslint/types@npm:6.2.0" + checksum: 81878866cf7f49dbc335cce05adfbd994f348e2ebe9538fd6e934fa82e44186c16b2112b8d5f9f4c528ea127be157185be5e35e4913db4880d20ac495785baaf languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:6.1.0": - version: 6.1.0 - resolution: "@typescript-eslint/typescript-estree@npm:6.1.0" +"@typescript-eslint/typescript-estree@npm:6.2.0": + version: 6.2.0 + resolution: "@typescript-eslint/typescript-estree@npm:6.2.0" dependencies: - "@typescript-eslint/types": 6.1.0 - "@typescript-eslint/visitor-keys": 6.1.0 + "@typescript-eslint/types": 6.2.0 + "@typescript-eslint/visitor-keys": 6.2.0 debug: ^4.3.4 globby: ^11.1.0 is-glob: ^4.0.3 @@ -4739,34 +4739,34 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 42729b8952a78ff9fc7d3833e16de25f1a3502461ebe5d09a28fb4375c8e5978dde0dd1f8a7973bf7470ff9023cce84de82e968b02a09f54a0f753d21d9127e8 + checksum: 5bfd5bf09feff6c4807cfa65cf407dd0249f7d487d6820941dd05999ee35cacdabaacadf23c92b90b57920025e93088e93924bc8df41f393ac0366538eb2902f languageName: node linkType: hard -"@typescript-eslint/utils@npm:6.1.0": - version: 6.1.0 - resolution: "@typescript-eslint/utils@npm:6.1.0" +"@typescript-eslint/utils@npm:6.2.0": + version: 6.2.0 + resolution: "@typescript-eslint/utils@npm:6.2.0" dependencies: "@eslint-community/eslint-utils": ^4.4.0 "@types/json-schema": ^7.0.12 "@types/semver": ^7.5.0 - "@typescript-eslint/scope-manager": 6.1.0 - "@typescript-eslint/types": 6.1.0 - "@typescript-eslint/typescript-estree": 6.1.0 + "@typescript-eslint/scope-manager": 6.2.0 + "@typescript-eslint/types": 6.2.0 + "@typescript-eslint/typescript-estree": 6.2.0 semver: ^7.5.4 peerDependencies: eslint: ^7.0.0 || ^8.0.0 - checksum: eb47a6b56e142ca68231f0f43af68d4cf5161235943aaf19c268156e3e751e10dd8ea3e0e297a7c0796b9eb3c5268b3c659821b909799949b55a524707c82e13 + checksum: 54f062412a8ce23554ca4063d275327981640426b1ecd1073d30dd8b9464ff7af68b8f9f6272033bad9307815d56f2f922faa8a995421efdccd6165dd62557e1 languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:6.1.0": - version: 6.1.0 - resolution: "@typescript-eslint/visitor-keys@npm:6.1.0" +"@typescript-eslint/visitor-keys@npm:6.2.0": + version: 6.2.0 + resolution: "@typescript-eslint/visitor-keys@npm:6.2.0" dependencies: - "@typescript-eslint/types": 6.1.0 + "@typescript-eslint/types": 6.2.0 eslint-visitor-keys: ^3.4.1 - checksum: 21c7c9b9a52325e3b67c0015deb99a1603b19703af7c002e87f32e2d8f9910813985877ee7b589dc9938d308e3d082cf97c8ca43c2c95b86a919c426d8913439 + checksum: b400c657c7e5c65b289304f6f5cee6536f23b3441306f82aff2d2e047e13770330715d4f7b29e734b0b2dab6030e41028894d5cd441696115bfea43ad18b2c54 languageName: node linkType: hard @@ -5505,7 +5505,7 @@ __metadata: languageName: node linkType: hard -"ajv@npm:^6.10.0, ajv@npm:^6.12.4, ajv@npm:^6.12.5": +"ajv@npm:^6.12.4, ajv@npm:^6.12.5": version: 6.12.6 resolution: "ajv@npm:6.12.6" dependencies: @@ -5917,6 +5917,19 @@ __metadata: languageName: node linkType: hard +"array.prototype.findlastindex@npm:^1.2.2": + version: 1.2.2 + resolution: "array.prototype.findlastindex@npm:1.2.2" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.4 + es-abstract: ^1.20.4 + es-shim-unscopables: ^1.0.0 + get-intrinsic: ^1.1.3 + checksum: 8a166359f69a2a751c843f26b9c8cd03d0dc396a92cdcb85f4126b5f1cecdae5b2c0c616a71ea8aff026bde68165b44950b3664404bb73db0673e288495ba264 + languageName: node + linkType: hard + "array.prototype.flat@npm:^1.3.1": version: 1.3.1 resolution: "array.prototype.flat@npm:1.3.1" @@ -7768,7 +7781,7 @@ __metadata: languageName: node linkType: hard -"es-abstract@npm:^1.19.0, es-abstract@npm:^1.20.4": +"es-abstract@npm:^1.19.0, es-abstract@npm:^1.20.4, es-abstract@npm:^1.21.2": version: 1.22.1 resolution: "es-abstract@npm:1.22.1" dependencies: @@ -7961,14 +7974,14 @@ __metadata: languageName: node linkType: hard -"eslint-config-prettier@npm:8.8.0": - version: 8.8.0 - resolution: "eslint-config-prettier@npm:8.8.0" +"eslint-config-prettier@npm:8.9.0": + version: 8.9.0 + resolution: "eslint-config-prettier@npm:8.9.0" peerDependencies: eslint: ">=7.0.0" bin: eslint-config-prettier: bin/cli.js - checksum: 1e94c3882c4d5e41e1dcfa2c368dbccbfe3134f6ac7d40101644d3bfbe3eb2f2ffac757f3145910b5eacf20c0e85e02b91293d3126d770cbf3dc390b3564681c + checksum: a675d0dabd76b700ef2d062b5ec6a634e105a8e8c070f95281fd2ccb614527fac60b4c758132058c50f0521fd19313f1f5be45ce9ebf081f2e5f77ae6eb7d8db languageName: node linkType: hard @@ -8005,7 +8018,7 @@ __metadata: languageName: node linkType: hard -"eslint-module-utils@npm:^2.7.4": +"eslint-module-utils@npm:^2.8.0": version: 2.8.0 resolution: "eslint-module-utils@npm:2.8.0" dependencies: @@ -8028,28 +8041,31 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-import@npm:2.27.5": - version: 2.27.5 - resolution: "eslint-plugin-import@npm:2.27.5" +"eslint-plugin-import@npm:2.28.0": + version: 2.28.0 + resolution: "eslint-plugin-import@npm:2.28.0" dependencies: array-includes: ^3.1.6 + array.prototype.findlastindex: ^1.2.2 array.prototype.flat: ^1.3.1 array.prototype.flatmap: ^1.3.1 debug: ^3.2.7 doctrine: ^2.1.0 eslint-import-resolver-node: ^0.3.7 - eslint-module-utils: ^2.7.4 + eslint-module-utils: ^2.8.0 has: ^1.0.3 - is-core-module: ^2.11.0 + is-core-module: ^2.12.1 is-glob: ^4.0.3 minimatch: ^3.1.2 + object.fromentries: ^2.0.6 + object.groupby: ^1.0.0 object.values: ^1.1.6 - resolve: ^1.22.1 - semver: ^6.3.0 - tsconfig-paths: ^3.14.1 + resolve: ^1.22.3 + semver: ^6.3.1 + tsconfig-paths: ^3.14.2 peerDependencies: eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 - checksum: f500571a380167e25d72a4d925ef9a7aae8899eada57653e5f3051ec3d3c16d08271fcefe41a30a9a2f4fefc232f066253673ee4ea77b30dba65ae173dade85d + checksum: f9eba311b93ca1bb89311856b1f7285bd79e0181d7eb70fe115053ff77e2235fea749b30f538b78927dc65769340b5be61f4c9581d1c82bcdcccb2061f440ad1 languageName: node linkType: hard @@ -8138,43 +8154,43 @@ __metadata: languageName: node linkType: hard -"eslint-scope@npm:^7.2.0": - version: 7.2.1 - resolution: "eslint-scope@npm:7.2.1" +"eslint-scope@npm:^7.2.2": + version: 7.2.2 + resolution: "eslint-scope@npm:7.2.2" dependencies: esrecurse: ^4.3.0 estraverse: ^5.2.0 - checksum: dccda5c8909216f6261969b72c77b95e385f9086bed4bc09d8a6276df8439d8f986810fd9ac3bd02c94c0572cefc7fdbeae392c69df2e60712ab8263986522c5 + checksum: ec97dbf5fb04b94e8f4c5a91a7f0a6dd3c55e46bfc7bbcd0e3138c3a76977570e02ed89a1810c778dcd72072ff0e9621ba1379b4babe53921d71e2e4486fda3e languageName: node linkType: hard -"eslint-visitor-keys@npm:^3.3.0, eslint-visitor-keys@npm:^3.4.1": - version: 3.4.1 - resolution: "eslint-visitor-keys@npm:3.4.1" - checksum: f05121d868202736b97de7d750847a328fcfa8593b031c95ea89425333db59676ac087fa905eba438d0a3c5769632f828187e0c1a0d271832a2153c1d3661c2c +"eslint-visitor-keys@npm:^3.3.0, eslint-visitor-keys@npm:^3.4.1, eslint-visitor-keys@npm:^3.4.2": + version: 3.4.2 + resolution: "eslint-visitor-keys@npm:3.4.2" + checksum: 9e0e7e4aaea705c097ae37c97410e5f167d4d2193be2edcb1f0760762ede3df01545e4820ae314f42dcec687745f2c6dcaf6d83575c4a2a241eb0c8517d724f2 languageName: node linkType: hard -"eslint@npm:8.45.0": - version: 8.45.0 - resolution: "eslint@npm:8.45.0" +"eslint@npm:8.46.0": + version: 8.46.0 + resolution: "eslint@npm:8.46.0" dependencies: "@eslint-community/eslint-utils": ^4.2.0 - "@eslint-community/regexpp": ^4.4.0 - "@eslint/eslintrc": ^2.1.0 - "@eslint/js": 8.44.0 + "@eslint-community/regexpp": ^4.6.1 + "@eslint/eslintrc": ^2.1.1 + "@eslint/js": ^8.46.0 "@humanwhocodes/config-array": ^0.11.10 "@humanwhocodes/module-importer": ^1.0.1 "@nodelib/fs.walk": ^1.2.8 - ajv: ^6.10.0 + ajv: ^6.12.4 chalk: ^4.0.0 cross-spawn: ^7.0.2 debug: ^4.3.2 doctrine: ^3.0.0 escape-string-regexp: ^4.0.0 - eslint-scope: ^7.2.0 - eslint-visitor-keys: ^3.4.1 - espree: ^9.6.0 + eslint-scope: ^7.2.2 + eslint-visitor-keys: ^3.4.2 + espree: ^9.6.1 esquery: ^1.4.2 esutils: ^2.0.2 fast-deep-equal: ^3.1.3 @@ -8198,11 +8214,11 @@ __metadata: text-table: ^0.2.0 bin: eslint: bin/eslint.js - checksum: 3e6dcce5cc43c5e301662db88ee26d1d188b22c177b9f104d7eefd1191236980bd953b3670fe2fac287114b26d7c5420ab48407d7ea1c3a446d6313c000009da + checksum: 7a7d36b1a3bbc12e08fbb5bc36fd482a7a5a1797e62e762499dd45601b9e45aaa53a129f31ce0b4444551a9639b8b681ad535f379893dd1e3ae37b31dccd82aa languageName: node linkType: hard -"espree@npm:^9.6.0": +"espree@npm:^9.6.0, espree@npm:^9.6.1": version: 9.6.1 resolution: "espree@npm:9.6.1" dependencies: @@ -9694,8 +9710,8 @@ __metadata: "@types/sortablejs": 1.15.1 "@types/tar": 6.1.5 "@types/webspeechapi": 0.0.29 - "@typescript-eslint/eslint-plugin": 6.1.0 - "@typescript-eslint/parser": 6.1.0 + "@typescript-eslint/eslint-plugin": 6.2.0 + "@typescript-eslint/parser": 6.2.0 "@vaadin/combo-box": 24.1.4 "@vaadin/vaadin-themable-mixin": 24.1.4 "@vibrant/color": 3.2.1-alpha.1 @@ -9719,13 +9735,13 @@ __metadata: deep-clone-simple: 1.1.1 deep-freeze: 0.0.1 del: 7.0.0 - eslint: 8.45.0 + eslint: 8.46.0 eslint-config-airbnb-base: 15.0.0 eslint-config-airbnb-typescript: 17.1.0 - eslint-config-prettier: 8.8.0 + eslint-config-prettier: 8.9.0 eslint-import-resolver-webpack: 0.13.2 eslint-plugin-disable: 2.0.3 - eslint-plugin-import: 2.27.5 + eslint-plugin-import: 2.28.0 eslint-plugin-lit: 1.8.3 eslint-plugin-lit-a11y: 3.0.0 eslint-plugin-unused-imports: 3.0.0 @@ -10375,7 +10391,7 @@ __metadata: languageName: node linkType: hard -"is-core-module@npm:^2.11.0, is-core-module@npm:^2.12.0, is-core-module@npm:^2.7.0": +"is-core-module@npm:^2.11.0, is-core-module@npm:^2.12.0, is-core-module@npm:^2.12.1, is-core-module@npm:^2.7.0": version: 2.12.1 resolution: "is-core-module@npm:2.12.1" dependencies: @@ -12506,6 +12522,29 @@ __metadata: languageName: node linkType: hard +"object.fromentries@npm:^2.0.6": + version: 2.0.6 + resolution: "object.fromentries@npm:2.0.6" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.4 + es-abstract: ^1.20.4 + checksum: 453c6d694180c0c30df451b60eaf27a5b9bca3fb43c37908fd2b78af895803dc631242bcf05582173afa40d8d0e9c96e16e8874b39471aa53f3ac1f98a085d85 + languageName: node + linkType: hard + +"object.groupby@npm:^1.0.0": + version: 1.0.0 + resolution: "object.groupby@npm:1.0.0" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.2.0 + es-abstract: ^1.21.2 + get-intrinsic: ^1.2.1 + checksum: 64b00b287d57580111c958e7ff375c9b61811fa356f2cf0d35372d43cab61965701f00fac66c19fd8f49c4dfa28744bee6822379c69a73648ad03e09fcdeae70 + languageName: node + linkType: hard + "object.map@npm:^1.0.0": version: 1.0.1 resolution: "object.map@npm:1.0.1" @@ -13772,7 +13811,7 @@ __metadata: languageName: node linkType: hard -"resolve@npm:^1.1.6, resolve@npm:^1.1.7, resolve@npm:^1.10.0, resolve@npm:^1.14.2, resolve@npm:^1.19.0, resolve@npm:^1.20.0, resolve@npm:^1.22.1, resolve@npm:^1.4.0": +"resolve@npm:^1.1.6, resolve@npm:^1.1.7, resolve@npm:^1.10.0, resolve@npm:^1.14.2, resolve@npm:^1.19.0, resolve@npm:^1.20.0, resolve@npm:^1.22.1, resolve@npm:^1.22.3, resolve@npm:^1.4.0": version: 1.22.3 resolution: "resolve@npm:1.22.3" dependencies: @@ -13785,7 +13824,7 @@ __metadata: languageName: node linkType: hard -"resolve@patch:resolve@^1.1.6#~builtin, resolve@patch:resolve@^1.1.7#~builtin, resolve@patch:resolve@^1.10.0#~builtin, resolve@patch:resolve@^1.14.2#~builtin, resolve@patch:resolve@^1.19.0#~builtin, resolve@patch:resolve@^1.20.0#~builtin, resolve@patch:resolve@^1.22.1#~builtin, resolve@patch:resolve@^1.4.0#~builtin": +"resolve@patch:resolve@^1.1.6#~builtin, resolve@patch:resolve@^1.1.7#~builtin, resolve@patch:resolve@^1.10.0#~builtin, resolve@patch:resolve@^1.14.2#~builtin, resolve@patch:resolve@^1.19.0#~builtin, resolve@patch:resolve@^1.20.0#~builtin, resolve@patch:resolve@^1.22.1#~builtin, resolve@patch:resolve@^1.22.3#~builtin, resolve@patch:resolve@^1.4.0#~builtin": version: 1.22.3 resolution: "resolve@patch:resolve@npm%3A1.22.3#~builtin::version=1.22.3&hash=c3c19d" dependencies: @@ -15277,7 +15316,7 @@ __metadata: languageName: node linkType: hard -"tsconfig-paths@npm:^3.14.1": +"tsconfig-paths@npm:^3.14.2": version: 3.14.2 resolution: "tsconfig-paths@npm:3.14.2" dependencies: