mirror of
https://github.com/home-assistant/frontend.git
synced 2025-10-03 08:49:40 +00:00
Compare commits
3 Commits
dev
...
energy-tot
Author | SHA1 | Date | |
---|---|---|---|
![]() |
cb8934cb40 | ||
![]() |
509b238565 | ||
![]() |
999d449f7a |
@@ -183,6 +183,7 @@ module.exports.babelOptions = ({
|
|||||||
include: /\/node_modules\//,
|
include: /\/node_modules\//,
|
||||||
exclude: [
|
exclude: [
|
||||||
"element-internals-polyfill",
|
"element-internals-polyfill",
|
||||||
|
"@shoelace-style",
|
||||||
"@?lit(?:-labs|-element|-html)?",
|
"@?lit(?:-labs|-element|-html)?",
|
||||||
].map((p) => new RegExp(`/node_modules/${p}/`)),
|
].map((p) => new RegExp(`/node_modules/${p}/`)),
|
||||||
},
|
},
|
||||||
|
14
package.json
14
package.json
@@ -34,7 +34,7 @@
|
|||||||
"@codemirror/legacy-modes": "6.5.1",
|
"@codemirror/legacy-modes": "6.5.1",
|
||||||
"@codemirror/search": "6.5.11",
|
"@codemirror/search": "6.5.11",
|
||||||
"@codemirror/state": "6.5.2",
|
"@codemirror/state": "6.5.2",
|
||||||
"@codemirror/view": "6.38.4",
|
"@codemirror/view": "6.38.3",
|
||||||
"@date-fns/tz": "1.4.1",
|
"@date-fns/tz": "1.4.1",
|
||||||
"@egjs/hammerjs": "2.0.17",
|
"@egjs/hammerjs": "2.0.17",
|
||||||
"@formatjs/intl-datetimeformat": "6.18.0",
|
"@formatjs/intl-datetimeformat": "6.18.0",
|
||||||
@@ -154,11 +154,11 @@
|
|||||||
"@babel/preset-env": "7.28.3",
|
"@babel/preset-env": "7.28.3",
|
||||||
"@bundle-stats/plugin-webpack-filter": "4.21.3",
|
"@bundle-stats/plugin-webpack-filter": "4.21.3",
|
||||||
"@lokalise/node-api": "15.2.1",
|
"@lokalise/node-api": "15.2.1",
|
||||||
"@octokit/auth-oauth-device": "8.0.2",
|
"@octokit/auth-oauth-device": "8.0.1",
|
||||||
"@octokit/plugin-retry": "8.0.2",
|
"@octokit/plugin-retry": "8.0.1",
|
||||||
"@octokit/rest": "22.0.0",
|
"@octokit/rest": "22.0.0",
|
||||||
"@rsdoctor/rspack-plugin": "1.3.1",
|
"@rsdoctor/rspack-plugin": "1.3.0",
|
||||||
"@rspack/core": "1.5.8",
|
"@rspack/core": "1.5.7",
|
||||||
"@rspack/dev-server": "1.1.4",
|
"@rspack/dev-server": "1.1.4",
|
||||||
"@types/babel__plugin-transform-runtime": "7.9.5",
|
"@types/babel__plugin-transform-runtime": "7.9.5",
|
||||||
"@types/chromecast-caf-receiver": "6.0.22",
|
"@types/chromecast-caf-receiver": "6.0.22",
|
||||||
@@ -203,7 +203,7 @@
|
|||||||
"husky": "9.1.7",
|
"husky": "9.1.7",
|
||||||
"jsdom": "27.0.0",
|
"jsdom": "27.0.0",
|
||||||
"jszip": "3.10.1",
|
"jszip": "3.10.1",
|
||||||
"lint-staged": "16.2.3",
|
"lint-staged": "16.2.1",
|
||||||
"lit-analyzer": "2.0.3",
|
"lit-analyzer": "2.0.3",
|
||||||
"lodash.merge": "4.6.2",
|
"lodash.merge": "4.6.2",
|
||||||
"lodash.template": "4.5.0",
|
"lodash.template": "4.5.0",
|
||||||
@@ -217,7 +217,7 @@
|
|||||||
"terser-webpack-plugin": "5.3.14",
|
"terser-webpack-plugin": "5.3.14",
|
||||||
"ts-lit-plugin": "2.0.2",
|
"ts-lit-plugin": "2.0.2",
|
||||||
"typescript": "5.9.2",
|
"typescript": "5.9.2",
|
||||||
"typescript-eslint": "8.45.0",
|
"typescript-eslint": "8.44.1",
|
||||||
"vite-tsconfig-paths": "5.1.4",
|
"vite-tsconfig-paths": "5.1.4",
|
||||||
"vitest": "3.2.4",
|
"vitest": "3.2.4",
|
||||||
"webpack-stats-plugin": "1.1.3",
|
"webpack-stats-plugin": "1.1.3",
|
||||||
|
@@ -18,7 +18,6 @@ export const FIXED_DOMAIN_STATES = {
|
|||||||
"pending",
|
"pending",
|
||||||
"triggered",
|
"triggered",
|
||||||
],
|
],
|
||||||
alert: ["on", "off", "idle"],
|
|
||||||
assist_satellite: ["idle", "listening", "responding", "processing"],
|
assist_satellite: ["idle", "listening", "responding", "processing"],
|
||||||
automation: ["on", "off"],
|
automation: ["on", "off"],
|
||||||
binary_sensor: ["on", "off"],
|
binary_sensor: ["on", "off"],
|
||||||
|
@@ -40,7 +40,6 @@ const STATE_COLORED_DOMAIN = new Set([
|
|||||||
"vacuum",
|
"vacuum",
|
||||||
"valve",
|
"valve",
|
||||||
"water_heater",
|
"water_heater",
|
||||||
"weather",
|
|
||||||
]);
|
]);
|
||||||
|
|
||||||
export const stateColorCss = (stateObj: HassEntity, state?: string) => {
|
export const stateColorCss = (stateObj: HassEntity, state?: string) => {
|
||||||
|
@@ -32,8 +32,6 @@ export const numberFormatToLocale = (
|
|||||||
return ["de", "es", "it"]; // Use German with fallback to Spanish then Italian formatting 1.234.567,89
|
return ["de", "es", "it"]; // Use German with fallback to Spanish then Italian formatting 1.234.567,89
|
||||||
case NumberFormat.space_comma:
|
case NumberFormat.space_comma:
|
||||||
return ["fr", "sv", "cs"]; // Use French with fallback to Swedish and Czech formatting 1 234 567,89
|
return ["fr", "sv", "cs"]; // Use French with fallback to Swedish and Czech formatting 1 234 567,89
|
||||||
case NumberFormat.quote_decimal:
|
|
||||||
return ["de-CH"]; // Use German (Switzerland) formatting 1'234'567.89
|
|
||||||
case NumberFormat.system:
|
case NumberFormat.system:
|
||||||
return undefined;
|
return undefined;
|
||||||
default:
|
default:
|
||||||
|
@@ -6,8 +6,6 @@ import { computeDomain } from "../../common/entity/compute_domain";
|
|||||||
import { stateColorProperties } from "../../common/entity/state_color";
|
import { stateColorProperties } from "../../common/entity/state_color";
|
||||||
import { UNAVAILABLE, UNKNOWN } from "../../data/entity";
|
import { UNAVAILABLE, UNKNOWN } from "../../data/entity";
|
||||||
import { computeCssValue } from "../../resources/css-variables";
|
import { computeCssValue } from "../../resources/css-variables";
|
||||||
import { computeStateDomain } from "../../common/entity/compute_state_domain";
|
|
||||||
import { FIXED_DOMAIN_STATES } from "../../common/entity/get_states";
|
|
||||||
|
|
||||||
const DOMAIN_STATE_SHADES: Record<string, Record<string, number>> = {
|
const DOMAIN_STATE_SHADES: Record<string, Record<string, number>> = {
|
||||||
media_player: {
|
media_player: {
|
||||||
@@ -53,28 +51,6 @@ function computeTimelineStateColor(
|
|||||||
let colorIndex = 0;
|
let colorIndex = 0;
|
||||||
const stateColorMap = new Map<string, string>();
|
const stateColorMap = new Map<string, string>();
|
||||||
|
|
||||||
function computeTimelineEnumColor(
|
|
||||||
state: string,
|
|
||||||
computedStyles: CSSStyleDeclaration,
|
|
||||||
stateObj?: HassEntity
|
|
||||||
): string | undefined {
|
|
||||||
if (!stateObj) {
|
|
||||||
return undefined;
|
|
||||||
}
|
|
||||||
const domain = computeStateDomain(stateObj);
|
|
||||||
const states =
|
|
||||||
FIXED_DOMAIN_STATES[domain] ||
|
|
||||||
(domain === "sensor" &&
|
|
||||||
stateObj.attributes.device_class === "enum" &&
|
|
||||||
stateObj.attributes.options) ||
|
|
||||||
[];
|
|
||||||
const idx = states.indexOf(state);
|
|
||||||
if (idx === -1) {
|
|
||||||
return undefined;
|
|
||||||
}
|
|
||||||
return getGraphColorByIndex(idx, computedStyles);
|
|
||||||
}
|
|
||||||
|
|
||||||
function computeTimeLineGenericColor(
|
function computeTimeLineGenericColor(
|
||||||
state: string,
|
state: string,
|
||||||
computedStyles: CSSStyleDeclaration
|
computedStyles: CSSStyleDeclaration
|
||||||
@@ -95,7 +71,6 @@ export function computeTimelineColor(
|
|||||||
): string {
|
): string {
|
||||||
return (
|
return (
|
||||||
computeTimelineStateColor(state, computedStyles, stateObj) ||
|
computeTimelineStateColor(state, computedStyles, stateObj) ||
|
||||||
computeTimelineEnumColor(state, computedStyles, stateObj) ||
|
|
||||||
computeTimeLineGenericColor(state, computedStyles)
|
computeTimeLineGenericColor(state, computedStyles)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@@ -42,8 +42,8 @@ export class HaBottomSheet extends LitElement {
|
|||||||
static styles = css`
|
static styles = css`
|
||||||
wa-drawer {
|
wa-drawer {
|
||||||
--wa-color-surface-raised: var(
|
--wa-color-surface-raised: var(
|
||||||
--ha-bottom-sheet-surface-background,
|
--ha-dialog-surface-background,
|
||||||
var(--ha-dialog-surface-background, var(--mdc-theme-surface, #fff)),
|
var(--mdc-theme-surface, #fff)
|
||||||
);
|
);
|
||||||
--spacing: 0;
|
--spacing: 0;
|
||||||
--size: auto;
|
--size: auto;
|
||||||
@@ -51,14 +51,8 @@ export class HaBottomSheet extends LitElement {
|
|||||||
--hide-duration: ${BOTTOM_SHEET_ANIMATION_DURATION_MS}ms;
|
--hide-duration: ${BOTTOM_SHEET_ANIMATION_DURATION_MS}ms;
|
||||||
}
|
}
|
||||||
wa-drawer::part(dialog) {
|
wa-drawer::part(dialog) {
|
||||||
border-top-left-radius: var(
|
border-top-left-radius: var(--ha-border-radius-lg);
|
||||||
--ha-bottom-sheet-border-radius,
|
border-top-right-radius: var(--ha-border-radius-lg);
|
||||||
var(--ha-dialog-border-radius, var(--ha-border-radius-2xl))
|
|
||||||
);
|
|
||||||
border-top-right-radius: var(
|
|
||||||
--ha-bottom-sheet-border-radius,
|
|
||||||
var(--ha-dialog-border-radius, var(--ha-border-radius-2xl))
|
|
||||||
);
|
|
||||||
max-height: 90vh;
|
max-height: 90vh;
|
||||||
padding-bottom: var(--safe-area-inset-bottom);
|
padding-bottom: var(--safe-area-inset-bottom);
|
||||||
padding-left: var(--safe-area-inset-left);
|
padding-left: var(--safe-area-inset-left);
|
||||||
|
@@ -8,7 +8,6 @@ import type {
|
|||||||
import { undo, undoDepth, redo, redoDepth } from "@codemirror/commands";
|
import { undo, undoDepth, redo, redoDepth } from "@codemirror/commands";
|
||||||
import type { Extension, TransactionSpec } from "@codemirror/state";
|
import type { Extension, TransactionSpec } from "@codemirror/state";
|
||||||
import type { EditorView, KeyBinding, ViewUpdate } from "@codemirror/view";
|
import type { EditorView, KeyBinding, ViewUpdate } from "@codemirror/view";
|
||||||
import { placeholder } from "@codemirror/view";
|
|
||||||
import {
|
import {
|
||||||
mdiArrowExpand,
|
mdiArrowExpand,
|
||||||
mdiArrowCollapse,
|
mdiArrowCollapse,
|
||||||
@@ -82,8 +81,6 @@ export class HaCodeEditor extends ReactiveElement {
|
|||||||
@property({ type: Boolean, attribute: "has-toolbar" })
|
@property({ type: Boolean, attribute: "has-toolbar" })
|
||||||
public hasToolbar = true;
|
public hasToolbar = true;
|
||||||
|
|
||||||
@property({ type: String }) public placeholder?: string;
|
|
||||||
|
|
||||||
@state() private _value = "";
|
@state() private _value = "";
|
||||||
|
|
||||||
@state() private _isFullscreen = false;
|
@state() private _isFullscreen = false;
|
||||||
@@ -267,7 +264,6 @@ export class HaCodeEditor extends ReactiveElement {
|
|||||||
this._loadedCodeMirror.foldingCompartment.of(
|
this._loadedCodeMirror.foldingCompartment.of(
|
||||||
this._getFoldingExtensions()
|
this._getFoldingExtensions()
|
||||||
),
|
),
|
||||||
...(this.placeholder ? [placeholder(this.placeholder)] : []),
|
|
||||||
];
|
];
|
||||||
|
|
||||||
if (!this.readOnly) {
|
if (!this.readOnly) {
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
import { css, html, LitElement } from "lit";
|
import { css, html, LitElement } from "lit";
|
||||||
import { customElement, query, state } from "lit/decorators";
|
import { customElement, query, state } from "lit/decorators";
|
||||||
|
import { styleMap } from "lit/directives/style-map";
|
||||||
import { fireEvent } from "../common/dom/fire_event";
|
import { fireEvent } from "../common/dom/fire_event";
|
||||||
import { BOTTOM_SHEET_ANIMATION_DURATION_MS } from "./ha-bottom-sheet";
|
import { BOTTOM_SHEET_ANIMATION_DURATION_MS } from "./ha-bottom-sheet";
|
||||||
|
|
||||||
@@ -36,14 +37,13 @@ export class HaResizableBottomSheet extends LitElement {
|
|||||||
return html`<dialog
|
return html`<dialog
|
||||||
open
|
open
|
||||||
@transitionend=${this._handleTransitionEnd}
|
@transitionend=${this._handleTransitionEnd}
|
||||||
style=${`
|
style=${styleMap({
|
||||||
--height: ${this._dialogViewportHeight}vh;
|
height: this._dialogViewportHeight
|
||||||
--height: ${this._dialogViewportHeight}dvh;
|
? `${this._dialogViewportHeight}vh`
|
||||||
--max-height: ${this._dialogMaxViewpointHeight}vh;
|
: "auto",
|
||||||
--max-height: ${this._dialogMaxViewpointHeight}dvh;
|
maxHeight: `${this._dialogMaxViewpointHeight}vh`,
|
||||||
--min-height: ${this._dialogMinViewpointHeight}vh;
|
minHeight: `${this._dialogMinViewpointHeight}vh`,
|
||||||
--min-height: ${this._dialogMinViewpointHeight}dvh;
|
})}
|
||||||
`}
|
|
||||||
>
|
>
|
||||||
<div class="handle-wrapper">
|
<div class="handle-wrapper">
|
||||||
<div
|
<div
|
||||||
@@ -213,14 +213,12 @@ export class HaResizableBottomSheet extends LitElement {
|
|||||||
cursor: grabbing;
|
cursor: grabbing;
|
||||||
}
|
}
|
||||||
dialog {
|
dialog {
|
||||||
height: var(--height, auto);
|
height: auto;
|
||||||
max-height: var(--max-height, 70vh);
|
max-height: 70vh;
|
||||||
max-height: var(--max-height, 70dvh);
|
min-height: 30vh;
|
||||||
min-height: var(--min-height, 30vh);
|
|
||||||
min-height: var(--min-height, 30dvh);
|
|
||||||
background-color: var(
|
background-color: var(
|
||||||
--ha-bottom-sheet-surface-background,
|
--ha-dialog-surface-background,
|
||||||
var(--ha-dialog-surface-background, var(--mdc-theme-surface, #fff)),
|
var(--mdc-theme-surface, #fff)
|
||||||
);
|
);
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
@@ -241,12 +239,12 @@ export class HaResizableBottomSheet extends LitElement {
|
|||||||
inset-inline-start: 0;
|
inset-inline-start: 0;
|
||||||
box-shadow: 0px -8px 16px rgba(0, 0, 0, 0.2);
|
box-shadow: 0px -8px 16px rgba(0, 0, 0, 0.2);
|
||||||
border-top-left-radius: var(
|
border-top-left-radius: var(
|
||||||
--ha-bottom-sheet-border-radius,
|
--ha-dialog-border-radius,
|
||||||
var(--ha-dialog-border-radius, var(--ha-border-radius-2xl))
|
var(--ha-border-radius-2xl)
|
||||||
);
|
);
|
||||||
border-top-right-radius: var(
|
border-top-right-radius: var(
|
||||||
--ha-bottom-sheet-border-radius,
|
--ha-dialog-border-radius,
|
||||||
var(--ha-dialog-border-radius, var(--ha-border-radius-2xl))
|
var(--ha-border-radius-2xl)
|
||||||
);
|
);
|
||||||
transform: translateY(100%);
|
transform: translateY(100%);
|
||||||
transition: transform ${BOTTOM_SHEET_ANIMATION_DURATION_MS}ms ease;
|
transition: transform ${BOTTOM_SHEET_ANIMATION_DURATION_MS}ms ease;
|
||||||
@@ -256,6 +254,7 @@ export class HaResizableBottomSheet extends LitElement {
|
|||||||
border-bottom-width: 0;
|
border-bottom-width: 0;
|
||||||
border-style: var(--ha-bottom-sheet-border-style);
|
border-style: var(--ha-bottom-sheet-border-style);
|
||||||
border-color: var(--ha-bottom-sheet-border-color);
|
border-color: var(--ha-bottom-sheet-border-color);
|
||||||
|
margin-bottom: var(--safe-area-inset-bottom);
|
||||||
margin-left: var(--safe-area-inset-left);
|
margin-left: var(--safe-area-inset-left);
|
||||||
margin-right: var(--safe-area-inset-right);
|
margin-right: var(--safe-area-inset-right);
|
||||||
}
|
}
|
||||||
|
@@ -19,8 +19,6 @@ export class HaTemplateSelector extends LitElement {
|
|||||||
|
|
||||||
@property() public helper?: string;
|
@property() public helper?: string;
|
||||||
|
|
||||||
@property() public placeholder?: any;
|
|
||||||
|
|
||||||
@property({ type: Boolean }) public disabled = false;
|
@property({ type: Boolean }) public disabled = false;
|
||||||
|
|
||||||
@property({ type: Boolean }) public required = true;
|
@property({ type: Boolean }) public required = true;
|
||||||
@@ -57,7 +55,6 @@ export class HaTemplateSelector extends LitElement {
|
|||||||
.hass=${this.hass}
|
.hass=${this.hass}
|
||||||
.value=${this.value}
|
.value=${this.value}
|
||||||
.readOnly=${this.disabled}
|
.readOnly=${this.disabled}
|
||||||
.placeholder=${this.placeholder || "{{ ... }}"}
|
|
||||||
autofocus
|
autofocus
|
||||||
autocomplete-entities
|
autocomplete-entities
|
||||||
autocomplete-icons
|
autocomplete-icons
|
||||||
|
@@ -9,7 +9,6 @@ import {
|
|||||||
startOfDay,
|
startOfDay,
|
||||||
isFirstDayOfMonth,
|
isFirstDayOfMonth,
|
||||||
isLastDayOfMonth,
|
isLastDayOfMonth,
|
||||||
addYears,
|
|
||||||
} from "date-fns";
|
} from "date-fns";
|
||||||
import type { Collection } from "home-assistant-js-websocket";
|
import type { Collection } from "home-assistant-js-websocket";
|
||||||
import { getCollection } from "home-assistant-js-websocket";
|
import { getCollection } from "home-assistant-js-websocket";
|
||||||
@@ -273,7 +272,6 @@ export interface EnergyData {
|
|||||||
end?: Date;
|
end?: Date;
|
||||||
startCompare?: Date;
|
startCompare?: Date;
|
||||||
endCompare?: Date;
|
endCompare?: Date;
|
||||||
compareMode?: CompareMode;
|
|
||||||
prefs: EnergyPreferences;
|
prefs: EnergyPreferences;
|
||||||
info: EnergyInfo;
|
info: EnergyInfo;
|
||||||
stats: Statistics;
|
stats: Statistics;
|
||||||
@@ -351,18 +349,12 @@ export const getReferencedStatisticIds = (
|
|||||||
return statIDs;
|
return statIDs;
|
||||||
};
|
};
|
||||||
|
|
||||||
export const enum CompareMode {
|
|
||||||
NONE = "",
|
|
||||||
PREVIOUS = "previous",
|
|
||||||
YOY = "yoy",
|
|
||||||
}
|
|
||||||
|
|
||||||
const getEnergyData = async (
|
const getEnergyData = async (
|
||||||
hass: HomeAssistant,
|
hass: HomeAssistant,
|
||||||
prefs: EnergyPreferences,
|
prefs: EnergyPreferences,
|
||||||
start: Date,
|
start: Date,
|
||||||
end?: Date,
|
end?: Date,
|
||||||
compare?: CompareMode
|
compare?: boolean
|
||||||
): Promise<EnergyData> => {
|
): Promise<EnergyData> => {
|
||||||
const info = await getEnergyInfo(hass);
|
const info = await getEnergyInfo(hass);
|
||||||
|
|
||||||
@@ -453,50 +445,46 @@ const getEnergyData = async (
|
|||||||
let endCompare;
|
let endCompare;
|
||||||
let _energyStatsCompare: Statistics | Promise<Statistics> = {};
|
let _energyStatsCompare: Statistics | Promise<Statistics> = {};
|
||||||
let _waterStatsCompare: Statistics | Promise<Statistics> = {};
|
let _waterStatsCompare: Statistics | Promise<Statistics> = {};
|
||||||
|
|
||||||
if (compare) {
|
if (compare) {
|
||||||
if (compare === CompareMode.PREVIOUS) {
|
if (
|
||||||
if (
|
(calcDateProperty(
|
||||||
(calcDateProperty(
|
start,
|
||||||
start,
|
isFirstDayOfMonth,
|
||||||
isFirstDayOfMonth,
|
hass.locale,
|
||||||
hass.locale,
|
hass.config
|
||||||
hass.config
|
) as boolean) &&
|
||||||
) as boolean) &&
|
(calcDateProperty(
|
||||||
(calcDateProperty(
|
end || new Date(),
|
||||||
|
isLastDayOfMonth,
|
||||||
|
hass.locale,
|
||||||
|
hass.config
|
||||||
|
) as boolean)
|
||||||
|
) {
|
||||||
|
// When comparing a month (or multiple), we want to start at the beginning of the month
|
||||||
|
startCompare = calcDate(
|
||||||
|
start,
|
||||||
|
addMonths,
|
||||||
|
hass.locale,
|
||||||
|
hass.config,
|
||||||
|
-(calcDateDifferenceProperty(
|
||||||
end || new Date(),
|
end || new Date(),
|
||||||
isLastDayOfMonth,
|
start,
|
||||||
|
differenceInMonths,
|
||||||
hass.locale,
|
hass.locale,
|
||||||
hass.config
|
hass.config
|
||||||
) as boolean)
|
) as number) - 1
|
||||||
) {
|
);
|
||||||
// When comparing a month (or multiple), we want to start at the beginning of the month
|
} else {
|
||||||
startCompare = calcDate(
|
startCompare = calcDate(
|
||||||
start,
|
start,
|
||||||
addMonths,
|
addDays,
|
||||||
hass.locale,
|
hass.locale,
|
||||||
hass.config,
|
hass.config,
|
||||||
-(calcDateDifferenceProperty(
|
(dayDifference + 1) * -1
|
||||||
end || new Date(),
|
);
|
||||||
start,
|
|
||||||
differenceInMonths,
|
|
||||||
hass.locale,
|
|
||||||
hass.config
|
|
||||||
) as number) - 1
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
startCompare = calcDate(
|
|
||||||
start,
|
|
||||||
addDays,
|
|
||||||
hass.locale,
|
|
||||||
hass.config,
|
|
||||||
(dayDifference + 1) * -1
|
|
||||||
);
|
|
||||||
}
|
|
||||||
endCompare = addMilliseconds(start, -1);
|
|
||||||
} else if (compare === CompareMode.YOY) {
|
|
||||||
startCompare = calcDate(start, addYears, hass.locale, hass.config, -1);
|
|
||||||
endCompare = calcDate(end!, addYears, hass.locale, hass.config, -1);
|
|
||||||
}
|
}
|
||||||
|
endCompare = addMilliseconds(start, -1);
|
||||||
if (energyStatIds.length) {
|
if (energyStatIds.length) {
|
||||||
_energyStatsCompare = fetchStatistics(
|
_energyStatsCompare = fetchStatistics(
|
||||||
hass!,
|
hass!,
|
||||||
@@ -571,7 +559,6 @@ const getEnergyData = async (
|
|||||||
end,
|
end,
|
||||||
startCompare,
|
startCompare,
|
||||||
endCompare,
|
endCompare,
|
||||||
compareMode: compare,
|
|
||||||
info,
|
info,
|
||||||
prefs,
|
prefs,
|
||||||
stats,
|
stats,
|
||||||
@@ -590,11 +577,11 @@ const getEnergyData = async (
|
|||||||
export interface EnergyCollection extends Collection<EnergyData> {
|
export interface EnergyCollection extends Collection<EnergyData> {
|
||||||
start: Date;
|
start: Date;
|
||||||
end?: Date;
|
end?: Date;
|
||||||
compare?: CompareMode;
|
compare?: boolean;
|
||||||
prefs?: EnergyPreferences;
|
prefs?: EnergyPreferences;
|
||||||
clearPrefs(): void;
|
clearPrefs(): void;
|
||||||
setPeriod(newStart: Date, newEnd?: Date): void;
|
setPeriod(newStart: Date, newEnd?: Date): void;
|
||||||
setCompare(compare: CompareMode): void;
|
setCompare(compare: boolean): void;
|
||||||
_refreshTimeout?: number;
|
_refreshTimeout?: number;
|
||||||
_updatePeriodTimeout?: number;
|
_updatePeriodTimeout?: number;
|
||||||
_active: number;
|
_active: number;
|
||||||
@@ -752,7 +739,7 @@ export const getEnergyDataCollection = (
|
|||||||
scheduleUpdatePeriod();
|
scheduleUpdatePeriod();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
collection.setCompare = (compare: CompareMode) => {
|
collection.setCompare = (compare: boolean) => {
|
||||||
collection.compare = compare;
|
collection.compare = compare;
|
||||||
};
|
};
|
||||||
return collection;
|
return collection;
|
||||||
|
@@ -6,7 +6,6 @@ export enum NumberFormat {
|
|||||||
system = "system",
|
system = "system",
|
||||||
comma_decimal = "comma_decimal",
|
comma_decimal = "comma_decimal",
|
||||||
decimal_comma = "decimal_comma",
|
decimal_comma = "decimal_comma",
|
||||||
quote_decimal = "quote_decimal",
|
|
||||||
space_comma = "space_comma",
|
space_comma = "space_comma",
|
||||||
none = "none",
|
none = "none",
|
||||||
}
|
}
|
||||||
|
@@ -5,8 +5,8 @@ import { restoreScroll } from "../common/decorators/restore-scroll";
|
|||||||
import { goBack } from "../common/navigate";
|
import { goBack } from "../common/navigate";
|
||||||
import "../components/ha-icon-button-arrow-prev";
|
import "../components/ha-icon-button-arrow-prev";
|
||||||
import "../components/ha-menu-button";
|
import "../components/ha-menu-button";
|
||||||
import { haStyleScrollbar } from "../resources/styles";
|
|
||||||
import type { HomeAssistant } from "../types";
|
import type { HomeAssistant } from "../types";
|
||||||
|
import { haStyleScrollbar } from "../resources/styles";
|
||||||
|
|
||||||
@customElement("hass-subpage")
|
@customElement("hass-subpage")
|
||||||
class HassSubpage extends LitElement {
|
class HassSubpage extends LitElement {
|
||||||
@@ -154,15 +154,9 @@ class HassSubpage extends LitElement {
|
|||||||
1px - var(--header-height, 0px) - var(
|
1px - var(--header-height, 0px) - var(
|
||||||
--safe-area-inset-top,
|
--safe-area-inset-top,
|
||||||
0px
|
0px
|
||||||
) - var(
|
) - var(--safe-area-inset-bottom, 0px)
|
||||||
--hass-subpage-bottom-inset,
|
|
||||||
var(--safe-area-inset-bottom, 0px)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
margin-bottom: var(
|
|
||||||
--hass-subpage-bottom-inset,
|
|
||||||
var(--safe-area-inset-bottom)
|
|
||||||
);
|
);
|
||||||
|
margin-bottom: var(--safe-area-inset-bottom);
|
||||||
margin-right: var(--safe-area-inset-right);
|
margin-right: var(--safe-area-inset-right);
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
|
@@ -12,11 +12,11 @@ export const KeyboardShortcutMixin = <T extends Constructor<LitElement>>(
|
|||||||
class extends superClass {
|
class extends superClass {
|
||||||
private _keydownEvent = (event: KeyboardEvent) => {
|
private _keydownEvent = (event: KeyboardEvent) => {
|
||||||
const supportedShortcuts = this.supportedShortcuts();
|
const supportedShortcuts = this.supportedShortcuts();
|
||||||
const key = event.shiftKey ? event.key.toUpperCase() : event.key;
|
|
||||||
if (
|
if (
|
||||||
(event.ctrlKey || event.metaKey) &&
|
(event.ctrlKey || event.metaKey) &&
|
||||||
|
!event.shiftKey &&
|
||||||
!event.altKey &&
|
!event.altKey &&
|
||||||
key in supportedShortcuts
|
event.key in supportedShortcuts
|
||||||
) {
|
) {
|
||||||
// Only capture the event if the user is not focused on an input
|
// Only capture the event if the user is not focused on an input
|
||||||
if (!canOverrideAlphanumericInput(event.composedPath())) {
|
if (!canOverrideAlphanumericInput(event.composedPath())) {
|
||||||
@@ -27,14 +27,14 @@ export const KeyboardShortcutMixin = <T extends Constructor<LitElement>>(
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
supportedShortcuts[key]();
|
supportedShortcuts[event.key]();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const supportedSingleKeyShortcuts = this.supportedSingleKeyShortcuts();
|
const supportedSingleKeyShortcuts = this.supportedSingleKeyShortcuts();
|
||||||
if (key in supportedSingleKeyShortcuts) {
|
if (event.key in supportedSingleKeyShortcuts) {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
supportedSingleKeyShortcuts[key]();
|
supportedSingleKeyShortcuts[event.key]();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -74,10 +74,8 @@ import { showMoreInfoDialog } from "../../../dialogs/more-info/show-ha-more-info
|
|||||||
import "../../../layouts/hass-subpage";
|
import "../../../layouts/hass-subpage";
|
||||||
import { KeyboardShortcutMixin } from "../../../mixins/keyboard-shortcut-mixin";
|
import { KeyboardShortcutMixin } from "../../../mixins/keyboard-shortcut-mixin";
|
||||||
import { PreventUnsavedMixin } from "../../../mixins/prevent-unsaved-mixin";
|
import { PreventUnsavedMixin } from "../../../mixins/prevent-unsaved-mixin";
|
||||||
import { UndoRedoMixin } from "../../../mixins/undo-redo-mixin";
|
|
||||||
import { haStyle } from "../../../resources/styles";
|
import { haStyle } from "../../../resources/styles";
|
||||||
import type { Entries, HomeAssistant, Route } from "../../../types";
|
import type { Entries, HomeAssistant, Route } from "../../../types";
|
||||||
import { isMac } from "../../../util/is_mac";
|
|
||||||
import { showToast } from "../../../util/toast";
|
import { showToast } from "../../../util/toast";
|
||||||
import { showAssignCategoryDialog } from "../category/show-dialog-assign-category";
|
import { showAssignCategoryDialog } from "../category/show-dialog-assign-category";
|
||||||
import "../ha-config-section";
|
import "../ha-config-section";
|
||||||
@@ -89,6 +87,8 @@ import {
|
|||||||
import "./blueprint-automation-editor";
|
import "./blueprint-automation-editor";
|
||||||
import "./manual-automation-editor";
|
import "./manual-automation-editor";
|
||||||
import type { HaManualAutomationEditor } from "./manual-automation-editor";
|
import type { HaManualAutomationEditor } from "./manual-automation-editor";
|
||||||
|
import { UndoRedoMixin } from "../../../mixins/undo-redo-mixin";
|
||||||
|
import { isMac } from "../../../util/is_mac";
|
||||||
|
|
||||||
declare global {
|
declare global {
|
||||||
interface HTMLElementTagNameMap {
|
interface HTMLElementTagNameMap {
|
||||||
@@ -261,16 +261,9 @@ export class HaAutomationEditor extends UndoRedoMixin<
|
|||||||
<ha-tooltip placement="bottom" for="button-redo">
|
<ha-tooltip placement="bottom" for="button-redo">
|
||||||
${this.hass.localize("ui.common.redo")}
|
${this.hass.localize("ui.common.redo")}
|
||||||
<span class="shortcut">
|
<span class="shortcut">
|
||||||
(
|
(<span>${shortcutIcon}</span>
|
||||||
${isMac
|
<span>+</span>
|
||||||
? html`<span>${shortcutIcon}</span>
|
<span>Y</span>)
|
||||||
<span>+</span>
|
|
||||||
<span>Shift</span>
|
|
||||||
<span>+</span>
|
|
||||||
<span>Z</span>`
|
|
||||||
: html`<span>${shortcutIcon}</span>
|
|
||||||
<span>+</span>
|
|
||||||
<span>Y</span>`})
|
|
||||||
</span>
|
</span>
|
||||||
</ha-tooltip>`
|
</ha-tooltip>`
|
||||||
: nothing}
|
: nothing}
|
||||||
@@ -1203,7 +1196,6 @@ export class HaAutomationEditor extends UndoRedoMixin<
|
|||||||
Delete: () => this._deleteSelectedRow(),
|
Delete: () => this._deleteSelectedRow(),
|
||||||
Backspace: () => this._deleteSelectedRow(),
|
Backspace: () => this._deleteSelectedRow(),
|
||||||
z: () => this.undo(),
|
z: () => this.undo(),
|
||||||
Z: () => this.redo(),
|
|
||||||
y: () => this.redo(),
|
y: () => this.redo(),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@@ -1257,7 +1249,6 @@ export class HaAutomationEditor extends UndoRedoMixin<
|
|||||||
--ha-automation-editor-width,
|
--ha-automation-editor-width,
|
||||||
1540px
|
1540px
|
||||||
);
|
);
|
||||||
--hass-subpage-bottom-inset: 0px;
|
|
||||||
}
|
}
|
||||||
ha-fade-in {
|
ha-fade-in {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
@@ -292,7 +292,9 @@ export default class HaAutomationSidebar extends LitElement {
|
|||||||
:host {
|
:host {
|
||||||
z-index: 6;
|
z-index: 6;
|
||||||
outline: none;
|
outline: none;
|
||||||
height: calc(100% - var(--safe-area-inset-top, 0px));
|
height: calc(
|
||||||
|
100% - var(--safe-area-inset-top) - var(--safe-area-inset-bottom)
|
||||||
|
);
|
||||||
--ha-card-border-radius: var(
|
--ha-card-border-radius: var(
|
||||||
--ha-dialog-border-radius,
|
--ha-dialog-border-radius,
|
||||||
var(--ha-border-radius-2xl)
|
var(--ha-border-radius-2xl)
|
||||||
@@ -302,6 +304,7 @@ export default class HaAutomationSidebar extends LitElement {
|
|||||||
--ha-bottom-sheet-border-style: solid;
|
--ha-bottom-sheet-border-style: solid;
|
||||||
--ha-bottom-sheet-border-color: var(--primary-color);
|
--ha-bottom-sheet-border-color: var(--primary-color);
|
||||||
margin-top: var(--safe-area-inset-top);
|
margin-top: var(--safe-area-inset-top);
|
||||||
|
margin-bottom: var(--safe-area-inset-bottom);
|
||||||
}
|
}
|
||||||
|
|
||||||
@media all and (max-width: 870px) {
|
@media all and (max-width: 870px) {
|
||||||
|
@@ -145,19 +145,24 @@ export const manualEditorStyles = css`
|
|||||||
|
|
||||||
.content {
|
.content {
|
||||||
padding-top: 24px;
|
padding-top: 24px;
|
||||||
padding-bottom: max(var(--safe-area-inset-bottom), 32px);
|
padding-bottom: 72px;
|
||||||
transition: padding-bottom 180ms ease-in-out;
|
transition: padding-bottom 180ms ease-in-out;
|
||||||
}
|
}
|
||||||
|
|
||||||
.content.has-bottom-sheet {
|
.content.has-bottom-sheet {
|
||||||
padding-bottom: calc(90vh - max(var(--safe-area-inset-bottom), 32px));
|
padding-bottom: calc(90vh - 72px);
|
||||||
}
|
}
|
||||||
|
|
||||||
ha-automation-sidebar {
|
ha-automation-sidebar {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
top: calc(var(--header-height) + 16px);
|
top: calc(var(--header-height) + 16px);
|
||||||
height: calc(-81px + 100vh - var(--safe-area-inset-top, 0px));
|
height: calc(
|
||||||
height: calc(-81px + 100dvh - var(--safe-area-inset-top, 0px));
|
-81px +
|
||||||
|
100dvh - var(--safe-area-inset-top, 0px) - var(
|
||||||
|
--safe-area-inset-bottom,
|
||||||
|
0px
|
||||||
|
)
|
||||||
|
);
|
||||||
width: var(--sidebar-width);
|
width: var(--sidebar-width);
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
|
@@ -65,10 +65,8 @@ import "../../../layouts/hass-subpage";
|
|||||||
import { KeyboardShortcutMixin } from "../../../mixins/keyboard-shortcut-mixin";
|
import { KeyboardShortcutMixin } from "../../../mixins/keyboard-shortcut-mixin";
|
||||||
import { PreventUnsavedMixin } from "../../../mixins/prevent-unsaved-mixin";
|
import { PreventUnsavedMixin } from "../../../mixins/prevent-unsaved-mixin";
|
||||||
import { SubscribeMixin } from "../../../mixins/subscribe-mixin";
|
import { SubscribeMixin } from "../../../mixins/subscribe-mixin";
|
||||||
import { UndoRedoMixin } from "../../../mixins/undo-redo-mixin";
|
|
||||||
import { haStyle } from "../../../resources/styles";
|
import { haStyle } from "../../../resources/styles";
|
||||||
import type { Entries, HomeAssistant, Route } from "../../../types";
|
import type { Entries, HomeAssistant, Route } from "../../../types";
|
||||||
import { isMac } from "../../../util/is_mac";
|
|
||||||
import { showToast } from "../../../util/toast";
|
import { showToast } from "../../../util/toast";
|
||||||
import { showAutomationModeDialog } from "../automation/automation-mode-dialog/show-dialog-automation-mode";
|
import { showAutomationModeDialog } from "../automation/automation-mode-dialog/show-dialog-automation-mode";
|
||||||
import type { EntityRegistryUpdate } from "../automation/automation-save-dialog/show-dialog-automation-save";
|
import type { EntityRegistryUpdate } from "../automation/automation-save-dialog/show-dialog-automation-save";
|
||||||
@@ -77,6 +75,8 @@ import { showAssignCategoryDialog } from "../category/show-dialog-assign-categor
|
|||||||
import "./blueprint-script-editor";
|
import "./blueprint-script-editor";
|
||||||
import "./manual-script-editor";
|
import "./manual-script-editor";
|
||||||
import type { HaManualScriptEditor } from "./manual-script-editor";
|
import type { HaManualScriptEditor } from "./manual-script-editor";
|
||||||
|
import { UndoRedoMixin } from "../../../mixins/undo-redo-mixin";
|
||||||
|
import { isMac } from "../../../util/is_mac";
|
||||||
|
|
||||||
const baseEditorMixins = SubscribeMixin(
|
const baseEditorMixins = SubscribeMixin(
|
||||||
PreventUnsavedMixin(KeyboardShortcutMixin(LitElement))
|
PreventUnsavedMixin(KeyboardShortcutMixin(LitElement))
|
||||||
@@ -212,17 +212,10 @@ export class HaScriptEditor extends UndoRedoMixin<
|
|||||||
</ha-icon-button>
|
</ha-icon-button>
|
||||||
<ha-tooltip placement="bottom" for="button-redo">
|
<ha-tooltip placement="bottom" for="button-redo">
|
||||||
${this.hass.localize("ui.common.redo")}
|
${this.hass.localize("ui.common.redo")}
|
||||||
<span class="shortcut"
|
<span class="shortcut">
|
||||||
>(
|
(<span>${shortcutIcon}</span>
|
||||||
${isMac
|
<span>+</span>
|
||||||
? html`<span>${shortcutIcon}</span>
|
<span>Y</span>)
|
||||||
<span>+</span>
|
|
||||||
<span>Shift</span>
|
|
||||||
<span>+</span>
|
|
||||||
<span>Z</span>`
|
|
||||||
: html`<span>${shortcutIcon}</span>
|
|
||||||
<span>+</span>
|
|
||||||
<span>Y</span>`})
|
|
||||||
</span>
|
</span>
|
||||||
</ha-tooltip>`
|
</ha-tooltip>`
|
||||||
: nothing}
|
: nothing}
|
||||||
@@ -1111,7 +1104,6 @@ export class HaScriptEditor extends UndoRedoMixin<
|
|||||||
Delete: () => this._deleteSelectedRow(),
|
Delete: () => this._deleteSelectedRow(),
|
||||||
Backspace: () => this._deleteSelectedRow(),
|
Backspace: () => this._deleteSelectedRow(),
|
||||||
z: () => this.undo(),
|
z: () => this.undo(),
|
||||||
Z: () => this.redo(),
|
|
||||||
y: () => this.redo(),
|
y: () => this.redo(),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@@ -1165,7 +1157,6 @@ export class HaScriptEditor extends UndoRedoMixin<
|
|||||||
--ha-automation-editor-width,
|
--ha-automation-editor-width,
|
||||||
1540px
|
1540px
|
||||||
);
|
);
|
||||||
--hass-subpage-bottom-inset: 0px;
|
|
||||||
}
|
}
|
||||||
.yaml-mode {
|
.yaml-mode {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
@@ -22,7 +22,6 @@ import type { FrontendLocaleData } from "../../../../../data/translation";
|
|||||||
import { formatNumber } from "../../../../../common/number/format_number";
|
import { formatNumber } from "../../../../../common/number/format_number";
|
||||||
import {
|
import {
|
||||||
formatDateMonthYear,
|
formatDateMonthYear,
|
||||||
formatDateShort,
|
|
||||||
formatDateVeryShort,
|
formatDateVeryShort,
|
||||||
} from "../../../../../common/datetime/format_date";
|
} from "../../../../../common/datetime/format_date";
|
||||||
import { formatTime } from "../../../../../common/datetime/format_time";
|
import { formatTime } from "../../../../../common/datetime/format_time";
|
||||||
@@ -64,10 +63,7 @@ export function getCommonOptions(
|
|||||||
formatTotal?: (total: number) => string
|
formatTotal?: (total: number) => string
|
||||||
): ECOption {
|
): ECOption {
|
||||||
const dayDifference = differenceInDays(end, start);
|
const dayDifference = differenceInDays(end, start);
|
||||||
|
|
||||||
const compare = compareStart !== undefined && compareEnd !== undefined;
|
const compare = compareStart !== undefined && compareEnd !== undefined;
|
||||||
const showCompareYear =
|
|
||||||
compare && start.getFullYear() !== compareStart.getFullYear();
|
|
||||||
|
|
||||||
const options: ECOption = {
|
const options: ECOption = {
|
||||||
xAxis: {
|
xAxis: {
|
||||||
@@ -118,7 +114,6 @@ export function getCommonOptions(
|
|||||||
config,
|
config,
|
||||||
dayDifference,
|
dayDifference,
|
||||||
compare,
|
compare,
|
||||||
showCompareYear,
|
|
||||||
unit,
|
unit,
|
||||||
formatTotal
|
formatTotal
|
||||||
)
|
)
|
||||||
@@ -132,7 +127,6 @@ export function getCommonOptions(
|
|||||||
config,
|
config,
|
||||||
dayDifference,
|
dayDifference,
|
||||||
compare,
|
compare,
|
||||||
showCompareYear,
|
|
||||||
unit,
|
unit,
|
||||||
formatTotal
|
formatTotal
|
||||||
);
|
);
|
||||||
@@ -148,7 +142,6 @@ function formatTooltip(
|
|||||||
config: HassConfig,
|
config: HassConfig,
|
||||||
dayDifference: number,
|
dayDifference: number,
|
||||||
compare: boolean | null,
|
compare: boolean | null,
|
||||||
showCompareYear: boolean,
|
|
||||||
unit?: string,
|
unit?: string,
|
||||||
formatTotal?: (total: number) => string
|
formatTotal?: (total: number) => string
|
||||||
) {
|
) {
|
||||||
@@ -159,16 +152,13 @@ function formatTooltip(
|
|||||||
// and the real date is in the third value
|
// and the real date is in the third value
|
||||||
const date = new Date(params[0].value?.[2] ?? params[0].value?.[0]);
|
const date = new Date(params[0].value?.[2] ?? params[0].value?.[0]);
|
||||||
let period: string;
|
let period: string;
|
||||||
|
if (dayDifference > 89) {
|
||||||
if (dayDifference >= 89) {
|
|
||||||
period = `${formatDateMonthYear(date, locale, config)}`;
|
period = `${formatDateMonthYear(date, locale, config)}`;
|
||||||
} else if (dayDifference > 0) {
|
} else if (dayDifference > 0) {
|
||||||
period = `${(showCompareYear ? formatDateShort : formatDateVeryShort)(date, locale, config)}`;
|
period = `${formatDateVeryShort(date, locale, config)}`;
|
||||||
} else {
|
} else {
|
||||||
period = `${
|
period = `${
|
||||||
compare
|
compare ? `${formatDateVeryShort(date, locale, config)}: ` : ""
|
||||||
? `${(showCompareYear ? formatDateShort : formatDateVeryShort)(date, locale, config)}: `
|
|
||||||
: ""
|
|
||||||
}${formatTime(date, locale, config)} – ${formatTime(
|
}${formatTime(date, locale, config)} – ${formatTime(
|
||||||
addHours(date, 1),
|
addHours(date, 1),
|
||||||
locale,
|
locale,
|
||||||
|
@@ -0,0 +1,34 @@
|
|||||||
|
import { css, html, LitElement } from "lit";
|
||||||
|
import { customElement, property } from "lit/decorators";
|
||||||
|
import "../../../../../components/ha-tooltip";
|
||||||
|
|
||||||
|
@customElement("hui-energy-graph-chip")
|
||||||
|
export class HuiEnergyGraphChip extends LitElement {
|
||||||
|
@property({ type: String }) public tooltip?: string;
|
||||||
|
|
||||||
|
protected render() {
|
||||||
|
const id = `energy-graph-chip-${Date.now()}`;
|
||||||
|
return html`
|
||||||
|
<div class="chip" id=${id}>
|
||||||
|
<slot></slot>
|
||||||
|
</div>
|
||||||
|
<ha-tooltip for=${id} placement="top">${this.tooltip}</ha-tooltip>
|
||||||
|
`;
|
||||||
|
}
|
||||||
|
|
||||||
|
static styles = css`
|
||||||
|
.chip {
|
||||||
|
font-size: var(--ha-font-size-m);
|
||||||
|
font-weight: var(--ha-font-weight-medium);
|
||||||
|
padding: var(--ha-space-1) var(--ha-space-2);
|
||||||
|
border-radius: var(--ha-border-radius-md);
|
||||||
|
border: 1px solid var(--divider-color);
|
||||||
|
}
|
||||||
|
`;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare global {
|
||||||
|
interface HTMLElementTagNameMap {
|
||||||
|
"hui-energy-graph-chip": HuiEnergyGraphChip;
|
||||||
|
}
|
||||||
|
}
|
@@ -5,7 +5,7 @@ import { html, LitElement, nothing } from "lit";
|
|||||||
import { customElement, property, state } from "lit/decorators";
|
import { customElement, property, state } from "lit/decorators";
|
||||||
import { formatDate } from "../../../../common/datetime/format_date";
|
import { formatDate } from "../../../../common/datetime/format_date";
|
||||||
import type { EnergyData } from "../../../../data/energy";
|
import type { EnergyData } from "../../../../data/energy";
|
||||||
import { CompareMode, getEnergyDataCollection } from "../../../../data/energy";
|
import { getEnergyDataCollection } from "../../../../data/energy";
|
||||||
import { SubscribeMixin } from "../../../../mixins/subscribe-mixin";
|
import { SubscribeMixin } from "../../../../mixins/subscribe-mixin";
|
||||||
import type { HomeAssistant } from "../../../../types";
|
import type { HomeAssistant } from "../../../../types";
|
||||||
import type { LovelaceCard } from "../../types";
|
import type { LovelaceCard } from "../../types";
|
||||||
@@ -13,7 +13,6 @@ import type { EnergyCardBaseConfig } from "../types";
|
|||||||
import { hasConfigChanged } from "../../common/has-changed";
|
import { hasConfigChanged } from "../../common/has-changed";
|
||||||
import "../../../../components/ha-alert";
|
import "../../../../components/ha-alert";
|
||||||
import { fireEvent } from "../../../../common/dom/fire_event";
|
import { fireEvent } from "../../../../common/dom/fire_event";
|
||||||
import { buttonLinkStyle } from "../../../../resources/styles";
|
|
||||||
|
|
||||||
@customElement("hui-energy-compare-card")
|
@customElement("hui-energy-compare-card")
|
||||||
export class HuiEnergyCompareCard
|
export class HuiEnergyCompareCard
|
||||||
@@ -32,8 +31,6 @@ export class HuiEnergyCompareCard
|
|||||||
|
|
||||||
@state() private _endCompare?: Date;
|
@state() private _endCompare?: Date;
|
||||||
|
|
||||||
@state() private _compareMode?: CompareMode;
|
|
||||||
|
|
||||||
// eslint-disable-next-line lit/no-native-attributes
|
// eslint-disable-next-line lit/no-native-attributes
|
||||||
@property({ type: Boolean, reflect: true }) hidden = true;
|
@property({ type: Boolean, reflect: true }) hidden = true;
|
||||||
|
|
||||||
@@ -96,47 +93,25 @@ export class HuiEnergyCompareCard
|
|||||||
: ""}</b
|
: ""}</b
|
||||||
>`,
|
>`,
|
||||||
end: html`<b
|
end: html`<b
|
||||||
>${formatDate(
|
>${formatDate(
|
||||||
this._startCompare,
|
this._startCompare,
|
||||||
this.hass.locale,
|
this.hass.locale,
|
||||||
this.hass.config
|
this.hass.config
|
||||||
)}${dayDifference > 0
|
)}${dayDifference > 0
|
||||||
? ` -
|
? ` -
|
||||||
${formatDate(this._endCompare, this.hass.locale, this.hass.config)}`
|
${formatDate(this._endCompare, this.hass.locale, this.hass.config)}`
|
||||||
: ""}</b
|
: ""}</b
|
||||||
>
|
>`,
|
||||||
<button class="link" @click=${this._changeCompareMode}>
|
|
||||||
(${this._compareMode === CompareMode.PREVIOUS
|
|
||||||
? this.hass.localize(
|
|
||||||
"ui.panel.energy.compare.compare_previous_year"
|
|
||||||
)
|
|
||||||
: this.hass.localize(
|
|
||||||
"ui.panel.energy.compare.compare_previous_period"
|
|
||||||
)})
|
|
||||||
</button>`,
|
|
||||||
})}
|
})}
|
||||||
</ha-alert>
|
</ha-alert>
|
||||||
`;
|
`;
|
||||||
}
|
}
|
||||||
|
|
||||||
private _changeCompareMode() {
|
|
||||||
const collection = getEnergyDataCollection(this.hass, {
|
|
||||||
key: this._config!.collection_key,
|
|
||||||
});
|
|
||||||
collection.setCompare(
|
|
||||||
this._compareMode === CompareMode.PREVIOUS
|
|
||||||
? CompareMode.YOY
|
|
||||||
: CompareMode.PREVIOUS
|
|
||||||
);
|
|
||||||
collection.refresh();
|
|
||||||
}
|
|
||||||
|
|
||||||
private _update(data: EnergyData): void {
|
private _update(data: EnergyData): void {
|
||||||
this._start = data.start;
|
this._start = data.start;
|
||||||
this._end = data.end;
|
this._end = data.end;
|
||||||
this._startCompare = data.startCompare;
|
this._startCompare = data.startCompare;
|
||||||
this._endCompare = data.endCompare;
|
this._endCompare = data.endCompare;
|
||||||
this._compareMode = data.compareMode;
|
|
||||||
const oldHidden = this.hidden;
|
const oldHidden = this.hidden;
|
||||||
this.hidden = !this._startCompare;
|
this.hidden = !this._startCompare;
|
||||||
if (oldHidden !== this.hidden) {
|
if (oldHidden !== this.hidden) {
|
||||||
@@ -148,11 +123,9 @@ export class HuiEnergyCompareCard
|
|||||||
const energyCollection = getEnergyDataCollection(this.hass, {
|
const energyCollection = getEnergyDataCollection(this.hass, {
|
||||||
key: this._config!.collection_key,
|
key: this._config!.collection_key,
|
||||||
});
|
});
|
||||||
energyCollection.setCompare(CompareMode.NONE);
|
energyCollection.setCompare(false);
|
||||||
energyCollection.refresh();
|
energyCollection.refresh();
|
||||||
}
|
}
|
||||||
|
|
||||||
static styles = [buttonLinkStyle];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
declare global {
|
declare global {
|
||||||
|
@@ -204,16 +204,7 @@ export class HuiEnergyDevicesGraphCard
|
|||||||
|
|
||||||
const computedStyle = getComputedStyle(this);
|
const computedStyle = getComputedStyle(this);
|
||||||
|
|
||||||
const exclude = this._config?.hide_compound_stats
|
|
||||||
? energyData.prefs.device_consumption
|
|
||||||
.map((d) => d.included_in_stat)
|
|
||||||
.filter(Boolean)
|
|
||||||
: [];
|
|
||||||
|
|
||||||
energyData.prefs.device_consumption.forEach((device, id) => {
|
energyData.prefs.device_consumption.forEach((device, id) => {
|
||||||
if (exclude.includes(device.stat_consumption)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
const value =
|
const value =
|
||||||
device.stat_consumption in data
|
device.stat_consumption in data
|
||||||
? calculateStatisticSumGrowth(data[device.stat_consumption]) || 0
|
? calculateStatisticSumGrowth(data[device.stat_consumption]) || 0
|
||||||
|
@@ -29,6 +29,8 @@ import {
|
|||||||
getCompareTransform,
|
getCompareTransform,
|
||||||
} from "./common/energy-chart-options";
|
} from "./common/energy-chart-options";
|
||||||
import type { ECOption } from "../../../../resources/echarts";
|
import type { ECOption } from "../../../../resources/echarts";
|
||||||
|
import "./common/hui-energy-graph-chip";
|
||||||
|
import "../../../../components/ha-tooltip";
|
||||||
|
|
||||||
@customElement("hui-energy-gas-graph-card")
|
@customElement("hui-energy-gas-graph-card")
|
||||||
export class HuiEnergyGasGraphCard
|
export class HuiEnergyGasGraphCard
|
||||||
@@ -51,6 +53,8 @@ export class HuiEnergyGasGraphCard
|
|||||||
|
|
||||||
@state() private _unit?: string;
|
@state() private _unit?: string;
|
||||||
|
|
||||||
|
@state() private _total?: number;
|
||||||
|
|
||||||
protected hassSubscribeRequiredHostProps = ["_config"];
|
protected hassSubscribeRequiredHostProps = ["_config"];
|
||||||
|
|
||||||
public hassSubscribe(): UnsubscribeFunc[] {
|
public hassSubscribe(): UnsubscribeFunc[] {
|
||||||
@@ -84,9 +88,16 @@ export class HuiEnergyGasGraphCard
|
|||||||
|
|
||||||
return html`
|
return html`
|
||||||
<ha-card>
|
<ha-card>
|
||||||
${this._config.title
|
<div class="card-header">
|
||||||
? html`<h1 class="card-header">${this._config.title}</h1>`
|
<span>${this._config.title ? this._config.title : nothing}</span>
|
||||||
: ""}
|
${this._total
|
||||||
|
? html`<hui-energy-graph-chip
|
||||||
|
.tooltip=${this._formatTotal(this._total)}
|
||||||
|
>
|
||||||
|
${formatNumber(this._total, this.hass.locale)} ${this._unit}
|
||||||
|
</hui-energy-graph-chip>`
|
||||||
|
: nothing}
|
||||||
|
</div>
|
||||||
<div
|
<div
|
||||||
class="content ${classMap({
|
class="content ${classMap({
|
||||||
"has-header": !!this._config.title,
|
"has-header": !!this._config.title,
|
||||||
@@ -199,6 +210,24 @@ export class HuiEnergyGasGraphCard
|
|||||||
|
|
||||||
fillDataGapsAndRoundCaps(datasets);
|
fillDataGapsAndRoundCaps(datasets);
|
||||||
this._chartData = datasets;
|
this._chartData = datasets;
|
||||||
|
this._total = this._processTotal(energyData.stats, gasSources);
|
||||||
|
}
|
||||||
|
|
||||||
|
private _processTotal(
|
||||||
|
statistics: Statistics,
|
||||||
|
gasSources: GasSourceTypeEnergyPreference[]
|
||||||
|
) {
|
||||||
|
return gasSources.reduce(
|
||||||
|
(sum, source) =>
|
||||||
|
sum +
|
||||||
|
(source.stat_energy_from in statistics
|
||||||
|
? statistics[source.stat_energy_from].reduce(
|
||||||
|
(acc, curr) => acc + (curr.change || 0),
|
||||||
|
0
|
||||||
|
)
|
||||||
|
: 0),
|
||||||
|
0
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
private _processDataSet(
|
private _processDataSet(
|
||||||
@@ -288,6 +317,9 @@ export class HuiEnergyGasGraphCard
|
|||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
.card-header {
|
.card-header {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
padding-bottom: 0;
|
padding-bottom: 0;
|
||||||
}
|
}
|
||||||
.content {
|
.content {
|
||||||
|
@@ -32,6 +32,8 @@ import {
|
|||||||
getCommonOptions,
|
getCommonOptions,
|
||||||
getCompareTransform,
|
getCompareTransform,
|
||||||
} from "./common/energy-chart-options";
|
} from "./common/energy-chart-options";
|
||||||
|
import "./common/hui-energy-graph-chip";
|
||||||
|
import "../../../../components/ha-tooltip";
|
||||||
import type { ECOption } from "../../../../resources/echarts";
|
import type { ECOption } from "../../../../resources/echarts";
|
||||||
|
|
||||||
@customElement("hui-energy-solar-graph-card")
|
@customElement("hui-energy-solar-graph-card")
|
||||||
@@ -53,6 +55,8 @@ export class HuiEnergySolarGraphCard
|
|||||||
|
|
||||||
@state() private _compareEnd?: Date;
|
@state() private _compareEnd?: Date;
|
||||||
|
|
||||||
|
@state() private _total?: number;
|
||||||
|
|
||||||
protected hassSubscribeRequiredHostProps = ["_config"];
|
protected hassSubscribeRequiredHostProps = ["_config"];
|
||||||
|
|
||||||
public hassSubscribe(): UnsubscribeFunc[] {
|
public hassSubscribe(): UnsubscribeFunc[] {
|
||||||
@@ -86,9 +90,16 @@ export class HuiEnergySolarGraphCard
|
|||||||
|
|
||||||
return html`
|
return html`
|
||||||
<ha-card>
|
<ha-card>
|
||||||
${this._config.title
|
<div class="card-header">
|
||||||
? html`<h1 class="card-header">${this._config.title}</h1>`
|
<span>${this._config.title ? this._config.title : nothing}</span>
|
||||||
: ""}
|
${this._total
|
||||||
|
? html`<hui-energy-graph-chip
|
||||||
|
.tooltip=${this._formatTotal(this._total)}
|
||||||
|
>
|
||||||
|
${formatNumber(this._total, this.hass.locale)} kWh
|
||||||
|
</hui-energy-graph-chip>`
|
||||||
|
: nothing}
|
||||||
|
</div>
|
||||||
<div
|
<div
|
||||||
class="content ${classMap({
|
class="content ${classMap({
|
||||||
"has-header": !!this._config.title,
|
"has-header": !!this._config.title,
|
||||||
@@ -222,6 +233,24 @@ export class HuiEnergySolarGraphCard
|
|||||||
}
|
}
|
||||||
|
|
||||||
this._chartData = datasets;
|
this._chartData = datasets;
|
||||||
|
this._total = this._processTotal(energyData.stats, solarSources);
|
||||||
|
}
|
||||||
|
|
||||||
|
private _processTotal(
|
||||||
|
statistics: Statistics,
|
||||||
|
solarSources: SolarSourceTypeEnergyPreference[]
|
||||||
|
) {
|
||||||
|
return solarSources.reduce(
|
||||||
|
(sum, source) =>
|
||||||
|
sum +
|
||||||
|
(source.stat_energy_from in statistics
|
||||||
|
? statistics[source.stat_energy_from].reduce(
|
||||||
|
(acc, curr) => acc + (curr.change || 0),
|
||||||
|
0
|
||||||
|
)
|
||||||
|
: 0),
|
||||||
|
0
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
private _processDataSet(
|
private _processDataSet(
|
||||||
@@ -400,6 +429,9 @@ export class HuiEnergySolarGraphCard
|
|||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
.card-header {
|
.card-header {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
padding-bottom: 0;
|
padding-bottom: 0;
|
||||||
}
|
}
|
||||||
.content {
|
.content {
|
||||||
|
@@ -29,6 +29,8 @@ import {
|
|||||||
} from "./common/energy-chart-options";
|
} from "./common/energy-chart-options";
|
||||||
import type { ECOption } from "../../../../resources/echarts";
|
import type { ECOption } from "../../../../resources/echarts";
|
||||||
import { formatNumber } from "../../../../common/number/format_number";
|
import { formatNumber } from "../../../../common/number/format_number";
|
||||||
|
import "./common/hui-energy-graph-chip";
|
||||||
|
import "../../../../components/ha-tooltip";
|
||||||
|
|
||||||
@customElement("hui-energy-water-graph-card")
|
@customElement("hui-energy-water-graph-card")
|
||||||
export class HuiEnergyWaterGraphCard
|
export class HuiEnergyWaterGraphCard
|
||||||
@@ -51,6 +53,8 @@ export class HuiEnergyWaterGraphCard
|
|||||||
|
|
||||||
@state() private _unit?: string;
|
@state() private _unit?: string;
|
||||||
|
|
||||||
|
@state() private _total?: number;
|
||||||
|
|
||||||
protected hassSubscribeRequiredHostProps = ["_config"];
|
protected hassSubscribeRequiredHostProps = ["_config"];
|
||||||
|
|
||||||
public hassSubscribe(): UnsubscribeFunc[] {
|
public hassSubscribe(): UnsubscribeFunc[] {
|
||||||
@@ -84,9 +88,16 @@ export class HuiEnergyWaterGraphCard
|
|||||||
|
|
||||||
return html`
|
return html`
|
||||||
<ha-card>
|
<ha-card>
|
||||||
${this._config.title
|
<div class="card-header">
|
||||||
? html`<h1 class="card-header">${this._config.title}</h1>`
|
<span>${this._config.title ? this._config.title : nothing}</span>
|
||||||
: ""}
|
${this._total
|
||||||
|
? html`<hui-energy-graph-chip
|
||||||
|
.tooltip=${this._formatTotal(this._total)}
|
||||||
|
>
|
||||||
|
${formatNumber(this._total, this.hass.locale)} ${this._unit}
|
||||||
|
</hui-energy-graph-chip>`
|
||||||
|
: nothing}
|
||||||
|
</div>
|
||||||
<div
|
<div
|
||||||
class="content ${classMap({
|
class="content ${classMap({
|
||||||
"has-header": !!this._config.title,
|
"has-header": !!this._config.title,
|
||||||
@@ -199,6 +210,24 @@ export class HuiEnergyWaterGraphCard
|
|||||||
|
|
||||||
fillDataGapsAndRoundCaps(datasets);
|
fillDataGapsAndRoundCaps(datasets);
|
||||||
this._chartData = datasets;
|
this._chartData = datasets;
|
||||||
|
this._total = this._processTotal(energyData.stats, waterSources);
|
||||||
|
}
|
||||||
|
|
||||||
|
private _processTotal(
|
||||||
|
statistics: Statistics,
|
||||||
|
waterSources: WaterSourceTypeEnergyPreference[]
|
||||||
|
) {
|
||||||
|
return waterSources.reduce(
|
||||||
|
(sum, source) =>
|
||||||
|
sum +
|
||||||
|
(source.stat_energy_from in statistics
|
||||||
|
? statistics[source.stat_energy_from].reduce(
|
||||||
|
(acc, curr) => acc + (curr.change || 0),
|
||||||
|
0
|
||||||
|
)
|
||||||
|
: 0),
|
||||||
|
0
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
private _processDataSet(
|
private _processDataSet(
|
||||||
@@ -288,6 +317,9 @@ export class HuiEnergyWaterGraphCard
|
|||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
.card-header {
|
.card-header {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
padding-bottom: 0;
|
padding-bottom: 0;
|
||||||
}
|
}
|
||||||
.content {
|
.content {
|
||||||
|
@@ -176,7 +176,6 @@ export interface EnergyDevicesGraphCardConfig extends EnergyCardBaseConfig {
|
|||||||
type: "energy-devices-graph";
|
type: "energy-devices-graph";
|
||||||
title?: string;
|
title?: string;
|
||||||
max_devices?: number;
|
max_devices?: number;
|
||||||
hide_compound_stats?: boolean;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface EnergyDevicesDetailGraphCardConfig
|
export interface EnergyDevicesDetailGraphCardConfig
|
||||||
@@ -283,7 +282,7 @@ export interface GlanceConfigEntity extends ConfigEntity {
|
|||||||
image?: string;
|
image?: string;
|
||||||
show_state?: boolean;
|
show_state?: boolean;
|
||||||
state_color?: boolean;
|
state_color?: boolean;
|
||||||
format?: TimestampRenderingFormat;
|
format: TimestampRenderingFormat;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface GlanceCardConfig extends LovelaceCardConfig {
|
export interface GlanceCardConfig extends LovelaceCardConfig {
|
||||||
|
@@ -40,7 +40,7 @@ import type { DateRangePickerRanges } from "../../../components/ha-date-range-pi
|
|||||||
import "../../../components/ha-icon-button-next";
|
import "../../../components/ha-icon-button-next";
|
||||||
import "../../../components/ha-icon-button-prev";
|
import "../../../components/ha-icon-button-prev";
|
||||||
import type { EnergyData } from "../../../data/energy";
|
import type { EnergyData } from "../../../data/energy";
|
||||||
import { CompareMode, getEnergyDataCollection } from "../../../data/energy";
|
import { getEnergyDataCollection } from "../../../data/energy";
|
||||||
import { SubscribeMixin } from "../../../mixins/subscribe-mixin";
|
import { SubscribeMixin } from "../../../mixins/subscribe-mixin";
|
||||||
import type { HomeAssistant } from "../../../types";
|
import type { HomeAssistant } from "../../../types";
|
||||||
import { calcDateRange } from "../../../common/datetime/calc_date_range";
|
import { calcDateRange } from "../../../common/datetime/calc_date_range";
|
||||||
@@ -449,9 +449,7 @@ export class HuiEnergyPeriodSelector extends SubscribeMixin(LitElement) {
|
|||||||
const energyCollection = getEnergyDataCollection(this.hass, {
|
const energyCollection = getEnergyDataCollection(this.hass, {
|
||||||
key: this.collectionKey,
|
key: this.collectionKey,
|
||||||
});
|
});
|
||||||
energyCollection.setCompare(
|
energyCollection.setCompare(this._compare);
|
||||||
this._compare ? CompareMode.PREVIOUS : CompareMode.NONE
|
|
||||||
);
|
|
||||||
energyCollection.refresh();
|
energyCollection.refresh();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
import { mdiClose, mdiDrag, mdiPencil } from "@mdi/js";
|
import { mdiDrag } from "@mdi/js";
|
||||||
import { css, html, LitElement, nothing } from "lit";
|
import { css, html, LitElement, nothing } from "lit";
|
||||||
import { customElement, property } from "lit/decorators";
|
import { customElement, property } from "lit/decorators";
|
||||||
import { repeat } from "lit/directives/repeat";
|
import { repeat } from "lit/directives/repeat";
|
||||||
@@ -12,7 +12,6 @@ import "../../../components/ha-icon-button";
|
|||||||
import "../../../components/ha-sortable";
|
import "../../../components/ha-sortable";
|
||||||
import type { HomeAssistant } from "../../../types";
|
import type { HomeAssistant } from "../../../types";
|
||||||
import type { EntityConfig } from "../entity-rows/types";
|
import type { EntityConfig } from "../entity-rows/types";
|
||||||
import { computeRTL } from "../../../common/util/compute_rtl";
|
|
||||||
|
|
||||||
@customElement("hui-entity-editor")
|
@customElement("hui-entity-editor")
|
||||||
export class HuiEntityEditor extends LitElement {
|
export class HuiEntityEditor extends LitElement {
|
||||||
@@ -25,8 +24,6 @@ export class HuiEntityEditor extends LitElement {
|
|||||||
|
|
||||||
@property() public label?: string;
|
@property() public label?: string;
|
||||||
|
|
||||||
@property({ attribute: "can-edit", type: Boolean }) public canEdit?;
|
|
||||||
|
|
||||||
private _entityKeys = new WeakMap<EntityConfig, string>();
|
private _entityKeys = new WeakMap<EntityConfig, string>();
|
||||||
|
|
||||||
private _getKey(action: EntityConfig) {
|
private _getKey(action: EntityConfig) {
|
||||||
@@ -37,70 +34,6 @@ export class HuiEntityEditor extends LitElement {
|
|||||||
return this._entityKeys.get(action)!;
|
return this._entityKeys.get(action)!;
|
||||||
}
|
}
|
||||||
|
|
||||||
private _renderItem(item: EntityConfig, index: number) {
|
|
||||||
const stateObj = this.hass!.states[item.entity];
|
|
||||||
|
|
||||||
const entityName =
|
|
||||||
stateObj && this.hass!.formatEntityName(stateObj, "entity");
|
|
||||||
const deviceName =
|
|
||||||
stateObj && this.hass!.formatEntityName(stateObj, "device");
|
|
||||||
const areaName = stateObj && this.hass!.formatEntityName(stateObj, "area");
|
|
||||||
|
|
||||||
const isRTL = computeRTL(this.hass!);
|
|
||||||
|
|
||||||
const primary = item.name || entityName || deviceName || item.entity;
|
|
||||||
const secondary = [areaName, entityName ? deviceName : undefined]
|
|
||||||
.filter(Boolean)
|
|
||||||
.join(isRTL ? " ◂ " : " ▸ ");
|
|
||||||
|
|
||||||
return html`
|
|
||||||
<ha-md-list-item class="item">
|
|
||||||
<ha-svg-icon class="handle" .path=${mdiDrag} slot="start"></ha-svg-icon>
|
|
||||||
|
|
||||||
<div slot="headline" class="label">${primary}</div>
|
|
||||||
${secondary
|
|
||||||
? html`<div slot="supporting-text" class="description">
|
|
||||||
${secondary}
|
|
||||||
</div>`
|
|
||||||
: nothing}
|
|
||||||
<ha-icon-button
|
|
||||||
slot="end"
|
|
||||||
.item=${item}
|
|
||||||
.index=${index}
|
|
||||||
.label=${this.hass!.localize("ui.common.edit")}
|
|
||||||
.path=${mdiPencil}
|
|
||||||
@click=${this._editItem}
|
|
||||||
></ha-icon-button>
|
|
||||||
<ha-icon-button
|
|
||||||
slot="end"
|
|
||||||
.index=${index}
|
|
||||||
.label=${this.hass!.localize("ui.common.delete")}
|
|
||||||
.path=${mdiClose}
|
|
||||||
@click=${this._deleteItem}
|
|
||||||
></ha-icon-button>
|
|
||||||
</ha-md-list-item>
|
|
||||||
`;
|
|
||||||
}
|
|
||||||
|
|
||||||
private _editItem(ev) {
|
|
||||||
const index = (ev.currentTarget as any).index;
|
|
||||||
fireEvent(this, "edit-detail-element", {
|
|
||||||
subElementConfig: {
|
|
||||||
index,
|
|
||||||
type: "row",
|
|
||||||
elementConfig: this.entities![index],
|
|
||||||
},
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
private _deleteItem(ev) {
|
|
||||||
const index = ev.target.index;
|
|
||||||
const newConfigEntities = this.entities!.slice(0, index).concat(
|
|
||||||
this.entities!.slice(index + 1)
|
|
||||||
);
|
|
||||||
fireEvent(this, "entities-changed", { entities: newConfigEntities });
|
|
||||||
}
|
|
||||||
|
|
||||||
protected render() {
|
protected render() {
|
||||||
if (!this.entities) {
|
if (!this.entities) {
|
||||||
return nothing;
|
return nothing;
|
||||||
@@ -114,48 +47,29 @@ export class HuiEntityEditor extends LitElement {
|
|||||||
this.hass!.localize("ui.panel.lovelace.editor.card.config.required") +
|
this.hass!.localize("ui.panel.lovelace.editor.card.config.required") +
|
||||||
")"}
|
")"}
|
||||||
</h3>
|
</h3>
|
||||||
${this.canEdit
|
<ha-sortable handle-selector=".handle" @item-moved=${this._entityMoved}>
|
||||||
? html`
|
<div class="entities">
|
||||||
<div class="items-container">
|
${repeat(
|
||||||
<ha-sortable
|
this.entities,
|
||||||
handle-selector=".handle"
|
(entityConf) => this._getKey(entityConf),
|
||||||
draggable-selector=".item"
|
(entityConf, index) => html`
|
||||||
@item-moved=${this._entityMoved}
|
<div class="entity" data-entity-id=${entityConf.entity}>
|
||||||
>
|
<div class="handle">
|
||||||
<ha-md-list>
|
<ha-svg-icon .path=${mdiDrag}></ha-svg-icon>
|
||||||
${this.entities.map((item, index) =>
|
</div>
|
||||||
this._renderItem(item, index)
|
<ha-entity-picker
|
||||||
)}
|
.hass=${this.hass}
|
||||||
</ha-md-list>
|
.value=${entityConf.entity}
|
||||||
</ha-sortable>
|
.index=${index}
|
||||||
</div>
|
.entityFilter=${this.entityFilter}
|
||||||
`
|
@value-changed=${this._valueChanged}
|
||||||
: html` <ha-sortable
|
allow-custom-entity
|
||||||
handle-selector=".handle"
|
></ha-entity-picker>
|
||||||
@item-moved=${this._entityMoved}
|
</div>
|
||||||
>
|
`
|
||||||
<div class="entities">
|
)}
|
||||||
${repeat(
|
</div>
|
||||||
this.entities,
|
</ha-sortable>
|
||||||
(entityConf) => this._getKey(entityConf),
|
|
||||||
(entityConf, index) => html`
|
|
||||||
<div class="entity" data-entity-id=${entityConf.entity}>
|
|
||||||
<div class="handle">
|
|
||||||
<ha-svg-icon .path=${mdiDrag}></ha-svg-icon>
|
|
||||||
</div>
|
|
||||||
<ha-entity-picker
|
|
||||||
.hass=${this.hass}
|
|
||||||
.value=${entityConf.entity}
|
|
||||||
.index=${index}
|
|
||||||
.entityFilter=${this.entityFilter}
|
|
||||||
@value-changed=${this._valueChanged}
|
|
||||||
allow-custom-entity
|
|
||||||
></ha-entity-picker>
|
|
||||||
</div>
|
|
||||||
`
|
|
||||||
)}
|
|
||||||
</div>
|
|
||||||
</ha-sortable>`}
|
|
||||||
<ha-entity-picker
|
<ha-entity-picker
|
||||||
class="add-entity"
|
class="add-entity"
|
||||||
.hass=${this.hass}
|
.hass=${this.hass}
|
||||||
@@ -234,35 +148,6 @@ export class HuiEntityEditor extends LitElement {
|
|||||||
.entity ha-entity-picker {
|
.entity ha-entity-picker {
|
||||||
flex-grow: 1;
|
flex-grow: 1;
|
||||||
}
|
}
|
||||||
ha-md-list {
|
|
||||||
gap: 8px;
|
|
||||||
}
|
|
||||||
ha-md-list-item {
|
|
||||||
border: 1px solid var(--divider-color);
|
|
||||||
border-radius: 8px;
|
|
||||||
--ha-md-list-item-gap: 0;
|
|
||||||
--md-list-item-top-space: 0;
|
|
||||||
--md-list-item-bottom-space: 0;
|
|
||||||
--md-list-item-leading-space: 12px;
|
|
||||||
--md-list-item-trailing-space: 4px;
|
|
||||||
--md-list-item-two-line-container-height: 48px;
|
|
||||||
--md-list-item-one-line-container-height: 48px;
|
|
||||||
}
|
|
||||||
.handle {
|
|
||||||
cursor: move;
|
|
||||||
padding: 8px;
|
|
||||||
margin-inline-start: -8px;
|
|
||||||
}
|
|
||||||
label {
|
|
||||||
margin-bottom: 8px;
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
ha-md-list-item .label,
|
|
||||||
ha-md-list-item .description {
|
|
||||||
text-overflow: ellipsis;
|
|
||||||
overflow: hidden;
|
|
||||||
white-space: nowrap;
|
|
||||||
}
|
|
||||||
`;
|
`;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -31,8 +31,6 @@ export class HuiGenericEntityRowEditor
|
|||||||
{
|
{
|
||||||
@property({ attribute: false }) public hass?: HomeAssistant;
|
@property({ attribute: false }) public hass?: HomeAssistant;
|
||||||
|
|
||||||
@property({ attribute: false }) public schema?;
|
|
||||||
|
|
||||||
@state() private _config?: EntitiesCardEntityConfig;
|
@state() private _config?: EntitiesCardEntityConfig;
|
||||||
|
|
||||||
public setConfig(config: EntitiesCardEntityConfig): void {
|
public setConfig(config: EntitiesCardEntityConfig): void {
|
||||||
@@ -89,8 +87,7 @@ export class HuiGenericEntityRowEditor
|
|||||||
return nothing;
|
return nothing;
|
||||||
}
|
}
|
||||||
|
|
||||||
const schema =
|
const schema = this._schema(this._config.entity, this.hass.localize);
|
||||||
this.schema || this._schema(this._config.entity, this.hass.localize);
|
|
||||||
|
|
||||||
return html`
|
return html`
|
||||||
<ha-form
|
<ha-form
|
||||||
|
@@ -13,9 +13,6 @@ import {
|
|||||||
} from "superstruct";
|
} from "superstruct";
|
||||||
import { fireEvent } from "../../../../common/dom/fire_event";
|
import { fireEvent } from "../../../../common/dom/fire_event";
|
||||||
import "../../../../components/ha-form/ha-form";
|
import "../../../../components/ha-form/ha-form";
|
||||||
import "../hui-sub-element-editor";
|
|
||||||
import type { EditDetailElementEvent, SubElementEditorConfig } from "../types";
|
|
||||||
import type { HASSDomEvent } from "../../../../common/dom/fire_event";
|
|
||||||
import type { SchemaUnion } from "../../../../components/ha-form/types";
|
import type { SchemaUnion } from "../../../../components/ha-form/types";
|
||||||
import type { HomeAssistant } from "../../../../types";
|
import type { HomeAssistant } from "../../../../types";
|
||||||
import type { ConfigEntity, GlanceCardConfig } from "../../cards/types";
|
import type { ConfigEntity, GlanceCardConfig } from "../../cards/types";
|
||||||
@@ -24,7 +21,6 @@ import type { LovelaceCardEditor } from "../../types";
|
|||||||
import { processEditorEntities } from "../process-editor-entities";
|
import { processEditorEntities } from "../process-editor-entities";
|
||||||
import { baseLovelaceCardConfig } from "../structs/base-card-struct";
|
import { baseLovelaceCardConfig } from "../structs/base-card-struct";
|
||||||
import { entitiesConfigStruct } from "../structs/entities-struct";
|
import { entitiesConfigStruct } from "../structs/entities-struct";
|
||||||
import type { EntityConfig } from "../../entity-rows/types";
|
|
||||||
|
|
||||||
const cardConfigStruct = assign(
|
const cardConfigStruct = assign(
|
||||||
baseLovelaceCardConfig,
|
baseLovelaceCardConfig,
|
||||||
@@ -40,49 +36,6 @@ const cardConfigStruct = assign(
|
|||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
|
||||||
const SUB_SCHEMA = [
|
|
||||||
{ name: "entity", selector: { entity: {} }, required: true },
|
|
||||||
{
|
|
||||||
type: "grid",
|
|
||||||
name: "",
|
|
||||||
schema: [
|
|
||||||
{ name: "name", selector: { text: {} } },
|
|
||||||
{
|
|
||||||
name: "icon",
|
|
||||||
selector: {
|
|
||||||
icon: {},
|
|
||||||
},
|
|
||||||
context: {
|
|
||||||
icon_entity: "entity",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{ name: "show_last_changed", selector: { boolean: {} } },
|
|
||||||
{ name: "show_state", selector: { boolean: {} }, default: true },
|
|
||||||
],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "tap_action",
|
|
||||||
selector: {
|
|
||||||
ui_action: {
|
|
||||||
default_action: "more-info",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "",
|
|
||||||
type: "optional_actions",
|
|
||||||
flatten: true,
|
|
||||||
schema: (["hold_action", "double_tap_action"] as const).map((action) => ({
|
|
||||||
name: action,
|
|
||||||
selector: {
|
|
||||||
ui_action: {
|
|
||||||
default_action: "none" as const,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
})),
|
|
||||||
},
|
|
||||||
] as const;
|
|
||||||
|
|
||||||
const SCHEMA = [
|
const SCHEMA = [
|
||||||
{ name: "title", selector: { text: {} } },
|
{ name: "title", selector: { text: {} } },
|
||||||
{
|
{
|
||||||
@@ -115,8 +68,6 @@ export class HuiGlanceCardEditor
|
|||||||
|
|
||||||
@state() private _config?: GlanceCardConfig;
|
@state() private _config?: GlanceCardConfig;
|
||||||
|
|
||||||
@state() private _subElementEditorConfig?: SubElementEditorConfig;
|
|
||||||
|
|
||||||
@state() private _configEntities?: ConfigEntity[];
|
@state() private _configEntities?: ConfigEntity[];
|
||||||
|
|
||||||
public setConfig(config: GlanceCardConfig): void {
|
public setConfig(config: GlanceCardConfig): void {
|
||||||
@@ -130,19 +81,6 @@ export class HuiGlanceCardEditor
|
|||||||
return nothing;
|
return nothing;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this._subElementEditorConfig) {
|
|
||||||
return html`
|
|
||||||
<hui-sub-element-editor
|
|
||||||
.hass=${this.hass}
|
|
||||||
.config=${this._subElementEditorConfig}
|
|
||||||
.schema=${SUB_SCHEMA}
|
|
||||||
@go-back=${this._goBack}
|
|
||||||
@config-changed=${this._handleSubEntityChanged}
|
|
||||||
>
|
|
||||||
</hui-sub-element-editor>
|
|
||||||
`;
|
|
||||||
}
|
|
||||||
|
|
||||||
const data = {
|
const data = {
|
||||||
show_name: true,
|
show_name: true,
|
||||||
show_icon: true,
|
show_icon: true,
|
||||||
@@ -160,42 +98,12 @@ export class HuiGlanceCardEditor
|
|||||||
></ha-form>
|
></ha-form>
|
||||||
<hui-entity-editor
|
<hui-entity-editor
|
||||||
.hass=${this.hass}
|
.hass=${this.hass}
|
||||||
can-edit
|
|
||||||
.entities=${this._configEntities}
|
.entities=${this._configEntities}
|
||||||
@entities-changed=${this._entitiesChanged}
|
@entities-changed=${this._entitiesChanged}
|
||||||
@edit-detail-element=${this._editDetailElement}
|
|
||||||
></hui-entity-editor>
|
></hui-entity-editor>
|
||||||
`;
|
`;
|
||||||
}
|
}
|
||||||
|
|
||||||
private _goBack(): void {
|
|
||||||
this._subElementEditorConfig = undefined;
|
|
||||||
}
|
|
||||||
|
|
||||||
private _editDetailElement(ev: HASSDomEvent<EditDetailElementEvent>): void {
|
|
||||||
this._subElementEditorConfig = ev.detail.subElementConfig;
|
|
||||||
}
|
|
||||||
|
|
||||||
private _handleSubEntityChanged(ev: CustomEvent): void {
|
|
||||||
ev.stopPropagation();
|
|
||||||
|
|
||||||
const index = this._subElementEditorConfig!.index!;
|
|
||||||
|
|
||||||
const newEntities = this._configEntities!.concat();
|
|
||||||
const newConfig = ev.detail.config as EntityConfig;
|
|
||||||
this._subElementEditorConfig = {
|
|
||||||
...this._subElementEditorConfig!,
|
|
||||||
elementConfig: newConfig,
|
|
||||||
};
|
|
||||||
newEntities[index] = newConfig;
|
|
||||||
let config = this._config!;
|
|
||||||
config = { ...config, entities: newEntities };
|
|
||||||
this._config = config;
|
|
||||||
this._configEntities = processEditorEntities(config.entities);
|
|
||||||
|
|
||||||
fireEvent(this, "config-changed", { config });
|
|
||||||
}
|
|
||||||
|
|
||||||
private _valueChanged(ev: CustomEvent): void {
|
private _valueChanged(ev: CustomEvent): void {
|
||||||
const config = ev.detail.value;
|
const config = ev.detail.value;
|
||||||
fireEvent(this, "config-changed", { config });
|
fireEvent(this, "config-changed", { config });
|
||||||
|
@@ -18,9 +18,6 @@ import type { SchemaUnion } from "../../../../components/ha-form/types";
|
|||||||
import type { HomeAssistant } from "../../../../types";
|
import type { HomeAssistant } from "../../../../types";
|
||||||
import type { HistoryGraphCardConfig } from "../../cards/types";
|
import type { HistoryGraphCardConfig } from "../../cards/types";
|
||||||
import "../../components/hui-entity-editor";
|
import "../../components/hui-entity-editor";
|
||||||
import "../hui-sub-element-editor";
|
|
||||||
import type { EditDetailElementEvent, SubElementEditorConfig } from "../types";
|
|
||||||
import type { HASSDomEvent } from "../../../../common/dom/fire_event";
|
|
||||||
import type { EntityConfig } from "../../entity-rows/types";
|
import type { EntityConfig } from "../../entity-rows/types";
|
||||||
import type { LovelaceCardEditor } from "../../types";
|
import type { LovelaceCardEditor } from "../../types";
|
||||||
import { processEditorEntities } from "../process-editor-entities";
|
import { processEditorEntities } from "../process-editor-entities";
|
||||||
@@ -43,11 +40,6 @@ const cardConfigStruct = assign(
|
|||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
|
||||||
const SUB_SCHEMA = [
|
|
||||||
{ name: "entity", selector: { entity: {} }, required: true },
|
|
||||||
{ name: "name", selector: { text: {} } },
|
|
||||||
] as const;
|
|
||||||
|
|
||||||
@customElement("hui-history-graph-card-editor")
|
@customElement("hui-history-graph-card-editor")
|
||||||
export class HuiHistoryGraphCardEditor
|
export class HuiHistoryGraphCardEditor
|
||||||
extends LitElement
|
extends LitElement
|
||||||
@@ -57,8 +49,6 @@ export class HuiHistoryGraphCardEditor
|
|||||||
|
|
||||||
@state() private _config?: HistoryGraphCardConfig;
|
@state() private _config?: HistoryGraphCardConfig;
|
||||||
|
|
||||||
@state() private _subElementEditorConfig?: SubElementEditorConfig;
|
|
||||||
|
|
||||||
@state() private _configEntities?: EntityConfig[];
|
@state() private _configEntities?: EntityConfig[];
|
||||||
|
|
||||||
public setConfig(config: HistoryGraphCardConfig): void {
|
public setConfig(config: HistoryGraphCardConfig): void {
|
||||||
@@ -120,19 +110,6 @@ export class HuiHistoryGraphCardEditor
|
|||||||
return nothing;
|
return nothing;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this._subElementEditorConfig) {
|
|
||||||
return html`
|
|
||||||
<hui-sub-element-editor
|
|
||||||
.hass=${this.hass}
|
|
||||||
.config=${this._subElementEditorConfig}
|
|
||||||
.schema=${SUB_SCHEMA}
|
|
||||||
@go-back=${this._goBack}
|
|
||||||
@config-changed=${this._handleSubEntityChanged}
|
|
||||||
>
|
|
||||||
</hui-sub-element-editor>
|
|
||||||
`;
|
|
||||||
}
|
|
||||||
|
|
||||||
const schema = this._schema(
|
const schema = this._schema(
|
||||||
this._config!.min_y_axis !== undefined ||
|
this._config!.min_y_axis !== undefined ||
|
||||||
this._config!.max_y_axis !== undefined
|
this._config!.max_y_axis !== undefined
|
||||||
@@ -149,41 +126,11 @@ export class HuiHistoryGraphCardEditor
|
|||||||
<hui-entity-editor
|
<hui-entity-editor
|
||||||
.hass=${this.hass}
|
.hass=${this.hass}
|
||||||
.entities=${this._configEntities}
|
.entities=${this._configEntities}
|
||||||
can-edit
|
|
||||||
@entities-changed=${this._entitiesChanged}
|
@entities-changed=${this._entitiesChanged}
|
||||||
@edit-detail-element=${this._editDetailElement}
|
|
||||||
></hui-entity-editor>
|
></hui-entity-editor>
|
||||||
`;
|
`;
|
||||||
}
|
}
|
||||||
|
|
||||||
private _goBack(): void {
|
|
||||||
this._subElementEditorConfig = undefined;
|
|
||||||
}
|
|
||||||
|
|
||||||
private _editDetailElement(ev: HASSDomEvent<EditDetailElementEvent>): void {
|
|
||||||
this._subElementEditorConfig = ev.detail.subElementConfig;
|
|
||||||
}
|
|
||||||
|
|
||||||
private _handleSubEntityChanged(ev: CustomEvent): void {
|
|
||||||
ev.stopPropagation();
|
|
||||||
|
|
||||||
const index = this._subElementEditorConfig!.index!;
|
|
||||||
|
|
||||||
const newEntities = this._configEntities!.concat();
|
|
||||||
const newConfig = ev.detail.config as EntityConfig;
|
|
||||||
this._subElementEditorConfig = {
|
|
||||||
...this._subElementEditorConfig!,
|
|
||||||
elementConfig: newConfig,
|
|
||||||
};
|
|
||||||
newEntities[index] = newConfig;
|
|
||||||
let config = this._config!;
|
|
||||||
config = { ...config, entities: newEntities };
|
|
||||||
this._config = config;
|
|
||||||
this._configEntities = processEditorEntities(config.entities);
|
|
||||||
|
|
||||||
fireEvent(this, "config-changed", { config });
|
|
||||||
}
|
|
||||||
|
|
||||||
private _valueChanged(ev: CustomEvent): void {
|
private _valueChanged(ev: CustomEvent): void {
|
||||||
fireEvent(this, "config-changed", { config: ev.detail.value });
|
fireEvent(this, "config-changed", { config: ev.detail.value });
|
||||||
}
|
}
|
||||||
|
@@ -15,9 +15,6 @@ import {
|
|||||||
import { fireEvent } from "../../../../common/dom/fire_event";
|
import { fireEvent } from "../../../../common/dom/fire_event";
|
||||||
import type { LocalizeFunc } from "../../../../common/translations/localize";
|
import type { LocalizeFunc } from "../../../../common/translations/localize";
|
||||||
import "../../../../components/ha-form/ha-form";
|
import "../../../../components/ha-form/ha-form";
|
||||||
import "../hui-sub-element-editor";
|
|
||||||
import type { EditDetailElementEvent, SubElementEditorConfig } from "../types";
|
|
||||||
import type { HASSDomEvent } from "../../../../common/dom/fire_event";
|
|
||||||
import type {
|
import type {
|
||||||
HaFormSchema,
|
HaFormSchema,
|
||||||
SchemaUnion,
|
SchemaUnion,
|
||||||
@@ -32,8 +29,6 @@ import { actionConfigStruct } from "../structs/action-struct";
|
|||||||
import { baseLovelaceCardConfig } from "../structs/base-card-struct";
|
import { baseLovelaceCardConfig } from "../structs/base-card-struct";
|
||||||
import { entitiesConfigStruct } from "../structs/entities-struct";
|
import { entitiesConfigStruct } from "../structs/entities-struct";
|
||||||
import { configElementStyle } from "./config-elements-style";
|
import { configElementStyle } from "./config-elements-style";
|
||||||
import { DOMAINS_TOGGLE } from "../../../../common/const";
|
|
||||||
import { computeDomain } from "../../../../common/entity/compute_domain";
|
|
||||||
|
|
||||||
const cardConfigStruct = assign(
|
const cardConfigStruct = assign(
|
||||||
baseLovelaceCardConfig,
|
baseLovelaceCardConfig,
|
||||||
@@ -63,8 +58,6 @@ export class HuiPictureGlanceCardEditor
|
|||||||
|
|
||||||
@state() private _config?: PictureGlanceCardConfig;
|
@state() private _config?: PictureGlanceCardConfig;
|
||||||
|
|
||||||
@state() private _subElementEditorConfig?: SubElementEditorConfig;
|
|
||||||
|
|
||||||
@state() private _configEntities?: EntityConfig[];
|
@state() private _configEntities?: EntityConfig[];
|
||||||
|
|
||||||
private _schema = memoizeOne(
|
private _schema = memoizeOne(
|
||||||
@@ -158,54 +151,6 @@ export class HuiPictureGlanceCardEditor
|
|||||||
] as const satisfies HaFormSchema[]
|
] as const satisfies HaFormSchema[]
|
||||||
);
|
);
|
||||||
|
|
||||||
private _subSchema = memoizeOne(
|
|
||||||
(entityId: string) =>
|
|
||||||
[
|
|
||||||
{ name: "entity", selector: { entity: {} }, required: true },
|
|
||||||
{
|
|
||||||
type: "grid",
|
|
||||||
name: "",
|
|
||||||
schema: [
|
|
||||||
{
|
|
||||||
name: "icon",
|
|
||||||
selector: {
|
|
||||||
icon: {},
|
|
||||||
},
|
|
||||||
context: {
|
|
||||||
icon_entity: "entity",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{ name: "show_state", selector: { boolean: {} } },
|
|
||||||
],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "tap_action",
|
|
||||||
selector: {
|
|
||||||
ui_action: {
|
|
||||||
default_action: DOMAINS_TOGGLE.has(computeDomain(entityId))
|
|
||||||
? "toggle"
|
|
||||||
: "more-info",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "",
|
|
||||||
type: "optional_actions",
|
|
||||||
flatten: true,
|
|
||||||
schema: (["hold_action", "double_tap_action"] as const).map(
|
|
||||||
(action) => ({
|
|
||||||
name: action,
|
|
||||||
selector: {
|
|
||||||
ui_action: {
|
|
||||||
default_action: "none" as const,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
})
|
|
||||||
),
|
|
||||||
},
|
|
||||||
] as const
|
|
||||||
);
|
|
||||||
|
|
||||||
public setConfig(config: PictureGlanceCardConfig): void {
|
public setConfig(config: PictureGlanceCardConfig): void {
|
||||||
assert(config, cardConfigStruct);
|
assert(config, cardConfigStruct);
|
||||||
this._config = config;
|
this._config = config;
|
||||||
@@ -217,21 +162,6 @@ export class HuiPictureGlanceCardEditor
|
|||||||
return nothing;
|
return nothing;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this._subElementEditorConfig) {
|
|
||||||
return html`
|
|
||||||
<hui-sub-element-editor
|
|
||||||
.hass=${this.hass}
|
|
||||||
.config=${this._subElementEditorConfig}
|
|
||||||
.schema=${this._subSchema(
|
|
||||||
(this._subElementEditorConfig.elementConfig! as EntityConfig).entity
|
|
||||||
)}
|
|
||||||
@go-back=${this._goBack}
|
|
||||||
@config-changed=${this._handleSubEntityChanged}
|
|
||||||
>
|
|
||||||
</hui-sub-element-editor>
|
|
||||||
`;
|
|
||||||
}
|
|
||||||
|
|
||||||
const data = { camera_view: "auto", fit_mode: "cover", ...this._config };
|
const data = { camera_view: "auto", fit_mode: "cover", ...this._config };
|
||||||
|
|
||||||
return html`
|
return html`
|
||||||
@@ -246,43 +176,13 @@ export class HuiPictureGlanceCardEditor
|
|||||||
<div class="card-config">
|
<div class="card-config">
|
||||||
<hui-entity-editor
|
<hui-entity-editor
|
||||||
.hass=${this.hass}
|
.hass=${this.hass}
|
||||||
can-edit
|
|
||||||
.entities=${this._configEntities}
|
.entities=${this._configEntities}
|
||||||
@entities-changed=${this._changed}
|
@entities-changed=${this._changed}
|
||||||
@edit-detail-element=${this._editDetailElement}
|
|
||||||
></hui-entity-editor>
|
></hui-entity-editor>
|
||||||
</div>
|
</div>
|
||||||
`;
|
`;
|
||||||
}
|
}
|
||||||
|
|
||||||
private _goBack(): void {
|
|
||||||
this._subElementEditorConfig = undefined;
|
|
||||||
}
|
|
||||||
|
|
||||||
private _editDetailElement(ev: HASSDomEvent<EditDetailElementEvent>): void {
|
|
||||||
this._subElementEditorConfig = ev.detail.subElementConfig;
|
|
||||||
}
|
|
||||||
|
|
||||||
private _handleSubEntityChanged(ev: CustomEvent): void {
|
|
||||||
ev.stopPropagation();
|
|
||||||
|
|
||||||
const index = this._subElementEditorConfig!.index!;
|
|
||||||
|
|
||||||
const newEntities = this._configEntities!.concat();
|
|
||||||
const newConfig = ev.detail.config as EntityConfig;
|
|
||||||
this._subElementEditorConfig = {
|
|
||||||
...this._subElementEditorConfig!,
|
|
||||||
elementConfig: newConfig,
|
|
||||||
};
|
|
||||||
newEntities[index] = newConfig;
|
|
||||||
let config = this._config!;
|
|
||||||
config = { ...config, entities: newEntities };
|
|
||||||
this._config = config;
|
|
||||||
this._configEntities = processEditorEntities(config.entities);
|
|
||||||
|
|
||||||
fireEvent(this, "config-changed", { config });
|
|
||||||
}
|
|
||||||
|
|
||||||
private _valueChanged(ev: CustomEvent): void {
|
private _valueChanged(ev: CustomEvent): void {
|
||||||
fireEvent(this, "config-changed", { config: ev.detail.value });
|
fireEvent(this, "config-changed", { config: ev.detail.value });
|
||||||
}
|
}
|
||||||
|
@@ -57,8 +57,6 @@ export abstract class HuiElementEditor<
|
|||||||
|
|
||||||
@property({ attribute: false }) public context?: C;
|
@property({ attribute: false }) public context?: C;
|
||||||
|
|
||||||
@property({ attribute: false }) public schema?;
|
|
||||||
|
|
||||||
@state() private _config?: T;
|
@state() private _config?: T;
|
||||||
|
|
||||||
@state() private _configElement?: LovelaceGenericElementEditor;
|
@state() private _configElement?: LovelaceGenericElementEditor;
|
||||||
@@ -314,9 +312,6 @@ export abstract class HuiElementEditor<
|
|||||||
if (this._configElement && changedProperties.has("context")) {
|
if (this._configElement && changedProperties.has("context")) {
|
||||||
this._configElement.context = this.context;
|
this._configElement.context = this.context;
|
||||||
}
|
}
|
||||||
if (this._configElement && changedProperties.has("schema")) {
|
|
||||||
this._configElement.schema = this.schema;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private _handleUIConfigChanged(ev: UIConfigChangedEvent<T>) {
|
private _handleUIConfigChanged(ev: UIConfigChangedEvent<T>) {
|
||||||
@@ -404,7 +399,6 @@ export abstract class HuiElementEditor<
|
|||||||
configElement.lovelace = this.lovelace;
|
configElement.lovelace = this.lovelace;
|
||||||
}
|
}
|
||||||
configElement.context = this.context;
|
configElement.context = this.context;
|
||||||
configElement.schema = this.schema;
|
|
||||||
configElement.addEventListener("config-changed", (ev) =>
|
configElement.addEventListener("config-changed", (ev) =>
|
||||||
this._handleUIConfigChanged(ev as UIConfigChangedEvent<T>)
|
this._handleUIConfigChanged(ev as UIConfigChangedEvent<T>)
|
||||||
);
|
);
|
||||||
|
@@ -27,8 +27,6 @@ export class HuiSubElementEditor extends LitElement {
|
|||||||
|
|
||||||
@property({ attribute: false }) public config!: SubElementEditorConfig;
|
@property({ attribute: false }) public config!: SubElementEditorConfig;
|
||||||
|
|
||||||
@property({ attribute: false }) public schema?;
|
|
||||||
|
|
||||||
@state() private _guiModeAvailable = true;
|
@state() private _guiModeAvailable = true;
|
||||||
|
|
||||||
@state() private _guiMode = true;
|
@state() private _guiMode = true;
|
||||||
@@ -91,7 +89,6 @@ export class HuiSubElementEditor extends LitElement {
|
|||||||
.hass=${this.hass}
|
.hass=${this.hass}
|
||||||
.value=${this.config.elementConfig}
|
.value=${this.config.elementConfig}
|
||||||
.context=${this.config.context}
|
.context=${this.config.context}
|
||||||
.schema=${this.schema}
|
|
||||||
@config-changed=${this._handleConfigChanged}
|
@config-changed=${this._handleConfigChanged}
|
||||||
@GUImode-changed=${this._handleGUIModeChanged}
|
@GUImode-changed=${this._handleGUIModeChanged}
|
||||||
></hui-row-element-editor>
|
></hui-row-element-editor>
|
||||||
|
@@ -18,8 +18,6 @@ export const entitiesConfigStruct = union([
|
|||||||
hold_action: optional(actionConfigStruct),
|
hold_action: optional(actionConfigStruct),
|
||||||
double_tap_action: optional(actionConfigStruct),
|
double_tap_action: optional(actionConfigStruct),
|
||||||
confirmation: optional(actionConfigStructConfirmation),
|
confirmation: optional(actionConfigStructConfirmation),
|
||||||
show_last_changed: optional(boolean()),
|
|
||||||
show_state: optional(boolean()),
|
|
||||||
}),
|
}),
|
||||||
string(),
|
string(),
|
||||||
]);
|
]);
|
||||||
|
@@ -169,7 +169,6 @@ export interface LovelaceGenericElementEditor<C = any> extends HTMLElement {
|
|||||||
hass?: HomeAssistant;
|
hass?: HomeAssistant;
|
||||||
lovelace?: LovelaceConfig;
|
lovelace?: LovelaceConfig;
|
||||||
context?: C;
|
context?: C;
|
||||||
schema?: any;
|
|
||||||
setConfig(config: any): void;
|
setConfig(config: any): void;
|
||||||
focusYamlEditor?: () => void;
|
focusYamlEditor?: () => void;
|
||||||
}
|
}
|
||||||
|
@@ -328,13 +328,9 @@ export class BarMediaPlayer extends SubscribeMixin(LitElement) {
|
|||||||
</span>
|
</span>
|
||||||
${this.narrow
|
${this.narrow
|
||||||
? nothing
|
? nothing
|
||||||
: isBrowser
|
: stateObj
|
||||||
? this.hass.localize(
|
? computeStateName(stateObj)
|
||||||
"ui.components.media-browser.web-browser"
|
: this.entityId}
|
||||||
)
|
|
||||||
: stateObj
|
|
||||||
? computeStateName(stateObj)
|
|
||||||
: this.entityId}
|
|
||||||
<ha-svg-icon
|
<ha-svg-icon
|
||||||
slot="end"
|
slot="end"
|
||||||
.path=${mdiChevronDown}
|
.path=${mdiChevronDown}
|
||||||
|
@@ -1,3 +1,4 @@
|
|||||||
|
import type { ActionDetail } from "@material/mwc-list";
|
||||||
import {
|
import {
|
||||||
mdiAndroid,
|
mdiAndroid,
|
||||||
mdiApple,
|
mdiApple,
|
||||||
@@ -14,8 +15,7 @@ import memoizeOne from "memoize-one";
|
|||||||
import { relativeTime } from "../../common/datetime/relative_time";
|
import { relativeTime } from "../../common/datetime/relative_time";
|
||||||
import { fireEvent } from "../../common/dom/fire_event";
|
import { fireEvent } from "../../common/dom/fire_event";
|
||||||
import "../../components/ha-button";
|
import "../../components/ha-button";
|
||||||
import "../../components/ha-md-button-menu";
|
import "../../components/ha-button-menu";
|
||||||
import "../../components/ha-md-menu-item";
|
|
||||||
import "../../components/ha-card";
|
import "../../components/ha-card";
|
||||||
import "../../components/ha-icon-button";
|
import "../../components/ha-icon-button";
|
||||||
import "../../components/ha-label";
|
import "../../components/ha-label";
|
||||||
@@ -146,19 +146,20 @@ class HaRefreshTokens extends LitElement {
|
|||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<ha-md-button-menu positioning="popover">
|
<ha-button-menu
|
||||||
|
corner="BOTTOM_END"
|
||||||
|
menu-corner="END"
|
||||||
|
@action=${this._handleAction}
|
||||||
|
.token=${token}
|
||||||
|
>
|
||||||
<ha-icon-button
|
<ha-icon-button
|
||||||
slot="trigger"
|
slot="trigger"
|
||||||
.label=${this.hass.localize("ui.common.menu")}
|
.label=${this.hass.localize("ui.common.menu")}
|
||||||
.path=${mdiDotsVertical}
|
.path=${mdiDotsVertical}
|
||||||
></ha-icon-button>
|
></ha-icon-button>
|
||||||
<ha-md-menu-item
|
<ha-list-item graphic="icon">
|
||||||
graphic="icon"
|
|
||||||
@click=${this._toggleTokenExpiration}
|
|
||||||
.token=${token}
|
|
||||||
>
|
|
||||||
<ha-svg-icon
|
<ha-svg-icon
|
||||||
slot="start"
|
slot="graphic"
|
||||||
.path=${token.expire_at
|
.path=${token.expire_at
|
||||||
? mdiClockRemoveOutline
|
? mdiClockRemoveOutline
|
||||||
: mdiClockCheckOutline}
|
: mdiClockCheckOutline}
|
||||||
@@ -170,24 +171,20 @@ class HaRefreshTokens extends LitElement {
|
|||||||
: this.hass.localize(
|
: this.hass.localize(
|
||||||
"ui.panel.profile.refresh_tokens.enable_token_expiration"
|
"ui.panel.profile.refresh_tokens.enable_token_expiration"
|
||||||
)}
|
)}
|
||||||
</ha-md-menu-item>
|
</ha-list-item>
|
||||||
<ha-md-menu-item
|
<ha-list-item
|
||||||
graphic="icon"
|
graphic="icon"
|
||||||
class="warning"
|
class="warning"
|
||||||
.disabled=${token.is_current}
|
.disabled=${token.is_current}
|
||||||
@click=${this._deleteToken}
|
|
||||||
.token=${token}
|
|
||||||
>
|
>
|
||||||
<ha-svg-icon
|
<ha-svg-icon
|
||||||
class="warning"
|
class="warning"
|
||||||
slot="start"
|
slot="graphic"
|
||||||
.path=${mdiDelete}
|
.path=${mdiDelete}
|
||||||
></ha-svg-icon>
|
></ha-svg-icon>
|
||||||
<div slot="headline">
|
${this.hass.localize("ui.common.delete")}
|
||||||
${this.hass.localize("ui.common.delete")}
|
</ha-list-item>
|
||||||
</div>
|
</ha-button-menu>
|
||||||
</ha-md-menu-item>
|
|
||||||
</ha-md-button-menu>
|
|
||||||
</div>
|
</div>
|
||||||
</ha-settings-row>
|
</ha-settings-row>
|
||||||
`
|
`
|
||||||
@@ -210,8 +207,19 @@ class HaRefreshTokens extends LitElement {
|
|||||||
`;
|
`;
|
||||||
}
|
}
|
||||||
|
|
||||||
private async _toggleTokenExpiration(ev): Promise<void> {
|
private async _handleAction(ev: CustomEvent<ActionDetail>) {
|
||||||
const token = (ev.currentTarget as any).token as RefreshToken;
|
const token = (ev.currentTarget as any).token;
|
||||||
|
switch (ev.detail.index) {
|
||||||
|
case 0:
|
||||||
|
this._toggleTokenExpiration(token);
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
this._deleteToken(token);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private async _toggleTokenExpiration(token: RefreshToken): Promise<void> {
|
||||||
const enable = !token.expire_at;
|
const enable = !token.expire_at;
|
||||||
if (!enable) {
|
if (!enable) {
|
||||||
if (
|
if (
|
||||||
@@ -252,8 +260,7 @@ class HaRefreshTokens extends LitElement {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private async _deleteToken(ev): Promise<void> {
|
private async _deleteToken(token: RefreshToken): Promise<void> {
|
||||||
const token = (ev.currentTarget as any).token as RefreshToken;
|
|
||||||
if (
|
if (
|
||||||
!(await showConfirmationDialog(this, {
|
!(await showConfirmationDialog(this, {
|
||||||
title: this.hass.localize(
|
title: this.hass.localize(
|
||||||
@@ -325,8 +332,8 @@ class HaRefreshTokens extends LitElement {
|
|||||||
ha-icon-button {
|
ha-icon-button {
|
||||||
color: var(--primary-text-color);
|
color: var(--primary-text-color);
|
||||||
}
|
}
|
||||||
ha-md-list-item[disabled],
|
ha-list-item[disabled],
|
||||||
ha-md-list-item[disabled] ha-svg-icon {
|
ha-list-item[disabled] ha-svg-icon {
|
||||||
color: var(--disabled-text-color) !important;
|
color: var(--disabled-text-color) !important;
|
||||||
}
|
}
|
||||||
ha-settings-row .current-session {
|
ha-settings-row .current-session {
|
||||||
|
@@ -14,15 +14,7 @@ import {
|
|||||||
polyfillTimeZoneData,
|
polyfillTimeZoneData,
|
||||||
} from "./locale-data-polyfill";
|
} from "./locale-data-polyfill";
|
||||||
|
|
||||||
let polyfilled = false;
|
|
||||||
|
|
||||||
const _polyfillTimeZoneData = polyfillTimeZoneData;
|
|
||||||
|
|
||||||
const polyfillIntl = async () => {
|
const polyfillIntl = async () => {
|
||||||
if (polyfilled) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
polyfilled = true;
|
|
||||||
const locale = getLocalLanguage();
|
const locale = getLocalLanguage();
|
||||||
const polyfills: Promise<unknown>[] = [];
|
const polyfills: Promise<unknown>[] = [];
|
||||||
if (shouldPolyfillGetCanonicalLocales()) {
|
if (shouldPolyfillGetCanonicalLocales()) {
|
||||||
@@ -34,7 +26,7 @@ const polyfillIntl = async () => {
|
|||||||
if (shouldPolyfillDateTimeFormat(locale)) {
|
if (shouldPolyfillDateTimeFormat(locale)) {
|
||||||
polyfills.push(
|
polyfills.push(
|
||||||
import("@formatjs/intl-datetimeformat/polyfill-force").then(() =>
|
import("@formatjs/intl-datetimeformat/polyfill-force").then(() =>
|
||||||
_polyfillTimeZoneData()
|
polyfillTimeZoneData()
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -66,7 +58,7 @@ const polyfillIntl = async () => {
|
|||||||
if (polyfills.length === 0) {
|
if (polyfills.length === 0) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
await Promise.allSettled(polyfills).then(() =>
|
await Promise.all(polyfills).then(() =>
|
||||||
// Load the default language
|
// Load the default language
|
||||||
polyfillLocaleData(locale)
|
polyfillLocaleData(locale)
|
||||||
);
|
);
|
||||||
|
@@ -184,21 +184,6 @@ export const colorStyles = css`
|
|||||||
--state-water_heater-heat_pump-color: var(--orange-color);
|
--state-water_heater-heat_pump-color: var(--orange-color);
|
||||||
--state-water_heater-high_demand-color: var(--deep-orange-color);
|
--state-water_heater-high_demand-color: var(--deep-orange-color);
|
||||||
--state-water_heater-performance-color: var(--deep-orange-color);
|
--state-water_heater-performance-color: var(--deep-orange-color);
|
||||||
--state-weather-clear_night-color: var(--deep-purple-color);
|
|
||||||
--state-weather-cloudy-color: var(--light-grey-color);
|
|
||||||
--state-weather-exceptional-color: var(--red-color);
|
|
||||||
--state-weather-fog-color: var(--grey-color);
|
|
||||||
--state-weather-hail-color: var(--cyan-color);
|
|
||||||
--state-weather-lightning_rainy-color: var(--lime-color);
|
|
||||||
--state-weather-lightning-color: var(--yellow-color);
|
|
||||||
--state-weather-partlycloudy-color: var(--blue-grey-color);
|
|
||||||
--state-weather-pouring-color: var(--indigo-color);
|
|
||||||
--state-weather-rainy-color: var(--blue-color);
|
|
||||||
--state-weather-snowy_rainy-color: var(--light-blue-color);
|
|
||||||
--state-weather-snowy-color: #c0e0ff;
|
|
||||||
--state-weather-sunny-color: var(--amber-color);
|
|
||||||
--state-weather-windy_variant-color: var(--green-color);
|
|
||||||
--state-weather-windy-color: var(--green-color);
|
|
||||||
|
|
||||||
/* history colors */
|
/* history colors */
|
||||||
--history-unknown-color: var(--dark-grey-color);
|
--history-unknown-color: var(--dark-grey-color);
|
||||||
|
@@ -19,8 +19,8 @@ export const coreStyles = css`
|
|||||||
--ha-border-radius-pill: 9999px;
|
--ha-border-radius-pill: 9999px;
|
||||||
--ha-border-radius-circle: 50%;
|
--ha-border-radius-circle: 50%;
|
||||||
--ha-border-radius-square: 0;
|
--ha-border-radius-square: 0;
|
||||||
|
|
||||||
/* Spacing */
|
# Spacing
|
||||||
--ha-space-0: 0px;
|
--ha-space-0: 0px;
|
||||||
--ha-space-1: 4px;
|
--ha-space-1: 4px;
|
||||||
--ha-space-2: 8px;
|
--ha-space-2: 8px;
|
||||||
|
@@ -7720,7 +7720,6 @@
|
|||||||
"show_icon": "Show icon",
|
"show_icon": "Show icon",
|
||||||
"show_name": "Show name",
|
"show_name": "Show name",
|
||||||
"show_state": "Show state",
|
"show_state": "Show state",
|
||||||
"show_last_changed": "Show last changed",
|
|
||||||
"tap_action": "Tap behavior",
|
"tap_action": "Tap behavior",
|
||||||
"interactions": "Interactions",
|
"interactions": "Interactions",
|
||||||
"title": "Title",
|
"title": "Title",
|
||||||
@@ -8441,7 +8440,6 @@
|
|||||||
"system": "Use system locale",
|
"system": "Use system locale",
|
||||||
"comma_decimal": "1,234,567.89",
|
"comma_decimal": "1,234,567.89",
|
||||||
"decimal_comma": "1.234.567,89",
|
"decimal_comma": "1.234.567,89",
|
||||||
"quote_decimal": "1'234'567.89",
|
|
||||||
"space_comma": "1 234 567,89",
|
"space_comma": "1 234 567,89",
|
||||||
"none": "None"
|
"none": "None"
|
||||||
}
|
}
|
||||||
@@ -9276,9 +9274,7 @@
|
|||||||
"download_data": "[%key:ui::panel::history::download_data%]",
|
"download_data": "[%key:ui::panel::history::download_data%]",
|
||||||
"configure": "[%key:ui::dialogs::quick-bar::commands::navigation::energy%]",
|
"configure": "[%key:ui::dialogs::quick-bar::commands::navigation::energy%]",
|
||||||
"compare": {
|
"compare": {
|
||||||
"info": "You are comparing the period {start} with the period {end}",
|
"info": "You are comparing the period {start} with the period {end}"
|
||||||
"compare_previous_year": "Compare previous year",
|
|
||||||
"compare_previous_period": "Compare previous period"
|
|
||||||
},
|
},
|
||||||
"setup": {
|
"setup": {
|
||||||
"next": "Next",
|
"next": "Next",
|
||||||
|
447
yarn.lock
447
yarn.lock
@@ -1284,15 +1284,15 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@codemirror/view@npm:6.38.4, @codemirror/view@npm:^6.0.0, @codemirror/view@npm:^6.17.0, @codemirror/view@npm:^6.23.0, @codemirror/view@npm:^6.27.0":
|
"@codemirror/view@npm:6.38.3, @codemirror/view@npm:^6.0.0, @codemirror/view@npm:^6.17.0, @codemirror/view@npm:^6.23.0, @codemirror/view@npm:^6.27.0":
|
||||||
version: 6.38.4
|
version: 6.38.3
|
||||||
resolution: "@codemirror/view@npm:6.38.4"
|
resolution: "@codemirror/view@npm:6.38.3"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@codemirror/state": "npm:^6.5.0"
|
"@codemirror/state": "npm:^6.5.0"
|
||||||
crelt: "npm:^1.0.6"
|
crelt: "npm:^1.0.6"
|
||||||
style-mod: "npm:^4.1.0"
|
style-mod: "npm:^4.1.0"
|
||||||
w3c-keyname: "npm:^2.2.4"
|
w3c-keyname: "npm:^2.2.4"
|
||||||
checksum: 10/86b3894e9e7c2113aabb1db8684d0520378339c194fa56a688fc26cd7d40336bb9df1f5f19f68309d95f14b80ecf0b70c0ffe5e43f2ec11c4bab18f2d5ee4494
|
checksum: 10/2df41450399cbac0eaf06dba822418dd6926e48344b9255902248075ef040c957dfe97fe842a755e284a2fd4a66dc17b9638385f46ad74e926baac2e797335a2
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
@@ -3434,15 +3434,15 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@octokit/auth-oauth-device@npm:8.0.2":
|
"@octokit/auth-oauth-device@npm:8.0.1":
|
||||||
version: 8.0.2
|
version: 8.0.1
|
||||||
resolution: "@octokit/auth-oauth-device@npm:8.0.2"
|
resolution: "@octokit/auth-oauth-device@npm:8.0.1"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@octokit/oauth-methods": "npm:^6.0.1"
|
"@octokit/oauth-methods": "npm:^6.0.0"
|
||||||
"@octokit/request": "npm:^10.0.5"
|
"@octokit/request": "npm:^10.0.2"
|
||||||
"@octokit/types": "npm:^15.0.0"
|
"@octokit/types": "npm:^14.0.0"
|
||||||
universal-user-agent: "npm:^7.0.0"
|
universal-user-agent: "npm:^7.0.0"
|
||||||
checksum: 10/d296f00d19e499118724a1c3ecc435325fea9d396971e08e6fdf00f2223534ad06fb51f45d6166c340a7e909bfd6fce02e208b0f498a85db094585adeba7a1f7
|
checksum: 10/b5922932f11b3ec72ebb007028748a9ad2810dfea7a3f0bd40abadbc5c72a51dd3ca2c69aa27f4762526bd5fb64fcbddd002fb35d6f768228cd161099b7c29f2
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
@@ -3468,13 +3468,13 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@octokit/endpoint@npm:^11.0.1":
|
"@octokit/endpoint@npm:^11.0.0":
|
||||||
version: 11.0.1
|
version: 11.0.0
|
||||||
resolution: "@octokit/endpoint@npm:11.0.1"
|
resolution: "@octokit/endpoint@npm:11.0.0"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@octokit/types": "npm:^15.0.0"
|
"@octokit/types": "npm:^14.0.0"
|
||||||
universal-user-agent: "npm:^7.0.2"
|
universal-user-agent: "npm:^7.0.2"
|
||||||
checksum: 10/7b702e1f4f85892a1228efe555774a6e002097f2960a7f1a0d57e1210ad4c9e7dad3116b6ae71fbac8bc93b4d1a506b741836746de4e4826c635b63f4f9c1589
|
checksum: 10/d7583a44f8560343b0fbd191aa9d2653e563cdd78f550c83cf7440a66edbe47bab6d0d6c52ae271bcbd35703356154ed590b22881aa8ee690f0d8f249ce6bde0
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
@@ -3496,15 +3496,15 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@octokit/oauth-methods@npm:^6.0.1":
|
"@octokit/oauth-methods@npm:^6.0.0":
|
||||||
version: 6.0.1
|
version: 6.0.0
|
||||||
resolution: "@octokit/oauth-methods@npm:6.0.1"
|
resolution: "@octokit/oauth-methods@npm:6.0.0"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@octokit/oauth-authorization-url": "npm:^8.0.0"
|
"@octokit/oauth-authorization-url": "npm:^8.0.0"
|
||||||
"@octokit/request": "npm:^10.0.5"
|
"@octokit/request": "npm:^10.0.2"
|
||||||
"@octokit/request-error": "npm:^7.0.1"
|
"@octokit/request-error": "npm:^7.0.0"
|
||||||
"@octokit/types": "npm:^15.0.0"
|
"@octokit/types": "npm:^14.0.0"
|
||||||
checksum: 10/0a57e23cc1e88aafda233ee4013ffb5ee909775671c52bbd3856997cac88b8fa00cc2b240041068fee04978063f9f788a61291d28ff70cd43ade162d2abd0b11
|
checksum: 10/4c7d8229fe7b9f527f69d93b7c2b9551aa922a435df2bf5134513a99ac23a85287d81177fb8e19c6fadd3410598e9c66d69e0aa83ce67d35f60df3a5a3aaf36b
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
@@ -3553,38 +3553,38 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@octokit/plugin-retry@npm:8.0.2":
|
"@octokit/plugin-retry@npm:8.0.1":
|
||||||
version: 8.0.2
|
version: 8.0.1
|
||||||
resolution: "@octokit/plugin-retry@npm:8.0.2"
|
resolution: "@octokit/plugin-retry@npm:8.0.1"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@octokit/request-error": "npm:^7.0.1"
|
"@octokit/request-error": "npm:^7.0.0"
|
||||||
"@octokit/types": "npm:^15.0.0"
|
"@octokit/types": "npm:^14.0.0"
|
||||||
bottleneck: "npm:^2.15.3"
|
bottleneck: "npm:^2.15.3"
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
"@octokit/core": ">=7"
|
"@octokit/core": ">=7"
|
||||||
checksum: 10/ba3c1d54c6702ff7a07bc544db30c157d4376655014041ebf2a4c471f5862c1af1243b16c3061b780da891166100f1685545426e7826b7c78d60aef85829d378
|
checksum: 10/ef26a0d01f285124ca4b0cc4a5881ce8205becfcd2b5707bc2bb2d9ec07e9bf331923afef81ade234ace52d6d373e18e57b6d0839d48486abee5d0531fe974b7
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@octokit/request-error@npm:^7.0.0, @octokit/request-error@npm:^7.0.1":
|
"@octokit/request-error@npm:^7.0.0":
|
||||||
version: 7.0.1
|
version: 7.0.0
|
||||||
resolution: "@octokit/request-error@npm:7.0.1"
|
resolution: "@octokit/request-error@npm:7.0.0"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@octokit/types": "npm:^15.0.0"
|
"@octokit/types": "npm:^14.0.0"
|
||||||
checksum: 10/f99dffa4e257a4cb3724c633c26e5334af881c54669ee0013de96b846bb327ac77e68b36459be183817b84f6f7518e6b70c9e7926b5547a9665b2607b1afddd6
|
checksum: 10/c4370d2c31f599c1f366c480d5a02bc93442e5a0e151ec5caf0d5a5b0f0f91b50ecedc945aa6ea61b4c9ed1e89153dc7727daf4317680d33e916f829da7d141b
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@octokit/request@npm:^10.0.2, @octokit/request@npm:^10.0.5":
|
"@octokit/request@npm:^10.0.2":
|
||||||
version: 10.0.5
|
version: 10.0.3
|
||||||
resolution: "@octokit/request@npm:10.0.5"
|
resolution: "@octokit/request@npm:10.0.3"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@octokit/endpoint": "npm:^11.0.1"
|
"@octokit/endpoint": "npm:^11.0.0"
|
||||||
"@octokit/request-error": "npm:^7.0.1"
|
"@octokit/request-error": "npm:^7.0.0"
|
||||||
"@octokit/types": "npm:^15.0.0"
|
"@octokit/types": "npm:^14.0.0"
|
||||||
fast-content-type-parse: "npm:^3.0.0"
|
fast-content-type-parse: "npm:^3.0.0"
|
||||||
universal-user-agent: "npm:^7.0.2"
|
universal-user-agent: "npm:^7.0.2"
|
||||||
checksum: 10/0281e0f0c47f77a6431408d6b5137fbe23390c776738721a5e9ee550aa3da19b36046ad12d920cb81c78b28831cdbd37aaa8bc805014e23f31e04b3780a16acc
|
checksum: 10/f32a2c3fe97e0354390c0748a443e2f600a4e169b1014deb0b668ac3c52aa25cab523e87508751a1247806e3998c41f8849ad41ee3da531936975f5d32ab4c02
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
@@ -3898,82 +3898,81 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@rsdoctor/client@npm:1.3.1":
|
"@rsdoctor/client@npm:1.3.0":
|
||||||
version: 1.3.1
|
version: 1.3.0
|
||||||
resolution: "@rsdoctor/client@npm:1.3.1"
|
resolution: "@rsdoctor/client@npm:1.3.0"
|
||||||
checksum: 10/6885dd7e16f2172ddf5d4c901275af77640402f1b5cfd41b0eab6e695cad423bda2909a5b13dc68e864e9d9df4440587b8a3403138437c20b6e3bb15d0c83b04
|
checksum: 10/dca67aa80613ddd36b7bc43456e15633b632df91c7aca6ab05653b3fbb1d57887ffe9fa3a792a3812efc2e0d2c6f50cec9b5567ed182fd125c675cc9a4fa8ceb
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@rsdoctor/core@npm:1.3.1":
|
"@rsdoctor/core@npm:1.3.0":
|
||||||
version: 1.3.1
|
version: 1.3.0
|
||||||
resolution: "@rsdoctor/core@npm:1.3.1"
|
resolution: "@rsdoctor/core@npm:1.3.0"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@rsdoctor/graph": "npm:1.3.1"
|
"@rsdoctor/graph": "npm:1.3.0"
|
||||||
"@rsdoctor/sdk": "npm:1.3.1"
|
"@rsdoctor/sdk": "npm:1.3.0"
|
||||||
"@rsdoctor/types": "npm:1.3.1"
|
"@rsdoctor/types": "npm:1.3.0"
|
||||||
"@rsdoctor/utils": "npm:1.3.1"
|
"@rsdoctor/utils": "npm:1.3.0"
|
||||||
browserslist-load-config: "npm:^1.0.1"
|
browserslist-load-config: "npm:^1.0.1"
|
||||||
enhanced-resolve: "npm:5.12.0"
|
|
||||||
filesize: "npm:^10.1.6"
|
filesize: "npm:^10.1.6"
|
||||||
fs-extra: "npm:^11.1.1"
|
fs-extra: "npm:^11.1.1"
|
||||||
lodash-es: "npm:^4.17.21"
|
lodash-es: "npm:^4.17.21"
|
||||||
semver: "npm:^7.7.2"
|
semver: "npm:^7.7.2"
|
||||||
source-map: "npm:^0.7.6"
|
source-map: "npm:^0.7.6"
|
||||||
checksum: 10/40f4de3680202487ff094cd97664035c19c8bd802ff9adbd4c3947c53b08e738eac65e22b45514ca1cd2640305451c53d1efd23a0097674d4af0391698eff9a7
|
checksum: 10/e990358b82a260242a27af9d93fa6f673c68fb0896b74888aa121b4060069e8b47079f929403a237a532da65f4566d6bfb1d824dae2266735e44294d2521b1e6
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@rsdoctor/graph@npm:1.3.1":
|
"@rsdoctor/graph@npm:1.3.0":
|
||||||
version: 1.3.1
|
version: 1.3.0
|
||||||
resolution: "@rsdoctor/graph@npm:1.3.1"
|
resolution: "@rsdoctor/graph@npm:1.3.0"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@rsdoctor/types": "npm:1.3.1"
|
"@rsdoctor/types": "npm:1.3.0"
|
||||||
"@rsdoctor/utils": "npm:1.3.1"
|
"@rsdoctor/utils": "npm:1.3.0"
|
||||||
lodash.unionby: "npm:^4.8.0"
|
lodash.unionby: "npm:^4.8.0"
|
||||||
path-browserify: "npm:1.0.1"
|
path-browserify: "npm:1.0.1"
|
||||||
source-map: "npm:^0.7.6"
|
source-map: "npm:^0.7.6"
|
||||||
checksum: 10/7ae4abd2bd630e2589975df3e34d029921c2ff34c9f62961aff73c384dbb7e94d24faf2bf3f5118860f56b9bab2a5cd4b5185c178ce91f8a0852a258a854602c
|
checksum: 10/64dd610819fd38beb0bb96cf7f2b85c47d2b40134150a8f07e71bc94ae1ad38b7be23a453b42d3692303f1c7b07c3f7ec78bca6b7e8b7f41c961e8b7dc479495
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@rsdoctor/rspack-plugin@npm:1.3.1":
|
"@rsdoctor/rspack-plugin@npm:1.3.0":
|
||||||
version: 1.3.1
|
version: 1.3.0
|
||||||
resolution: "@rsdoctor/rspack-plugin@npm:1.3.1"
|
resolution: "@rsdoctor/rspack-plugin@npm:1.3.0"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@rsdoctor/core": "npm:1.3.1"
|
"@rsdoctor/core": "npm:1.3.0"
|
||||||
"@rsdoctor/graph": "npm:1.3.1"
|
"@rsdoctor/graph": "npm:1.3.0"
|
||||||
"@rsdoctor/sdk": "npm:1.3.1"
|
"@rsdoctor/sdk": "npm:1.3.0"
|
||||||
"@rsdoctor/types": "npm:1.3.1"
|
"@rsdoctor/types": "npm:1.3.0"
|
||||||
"@rsdoctor/utils": "npm:1.3.1"
|
"@rsdoctor/utils": "npm:1.3.0"
|
||||||
lodash-es: "npm:^4.17.21"
|
lodash-es: "npm:^4.17.21"
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
"@rspack/core": "*"
|
"@rspack/core": "*"
|
||||||
peerDependenciesMeta:
|
peerDependenciesMeta:
|
||||||
"@rspack/core":
|
"@rspack/core":
|
||||||
optional: true
|
optional: true
|
||||||
checksum: 10/94759bf214102e8acffeaaeb89d8274301f0b420274bf6f26afa736ac915f029e02e33cbc4f9f977d208e20a5e38bf3d812a1147be830dcd25a49755ff111d6d
|
checksum: 10/8f9126f6ed8c0bc350e899da5a9104cbf74808ac51a98a0f6a95fddf6dfdcbfb9b338c696095c9b7960bbc378947e90895bdf531da959426f47f3d00e5402409
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@rsdoctor/sdk@npm:1.3.1":
|
"@rsdoctor/sdk@npm:1.3.0":
|
||||||
version: 1.3.1
|
version: 1.3.0
|
||||||
resolution: "@rsdoctor/sdk@npm:1.3.1"
|
resolution: "@rsdoctor/sdk@npm:1.3.0"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@rsdoctor/client": "npm:1.3.1"
|
"@rsdoctor/client": "npm:1.3.0"
|
||||||
"@rsdoctor/graph": "npm:1.3.1"
|
"@rsdoctor/graph": "npm:1.3.0"
|
||||||
"@rsdoctor/types": "npm:1.3.1"
|
"@rsdoctor/types": "npm:1.3.0"
|
||||||
"@rsdoctor/utils": "npm:1.3.1"
|
"@rsdoctor/utils": "npm:1.3.0"
|
||||||
safer-buffer: "npm:2.1.2"
|
safer-buffer: "npm:2.1.2"
|
||||||
socket.io: "npm:4.8.1"
|
socket.io: "npm:4.8.1"
|
||||||
tapable: "npm:2.2.3"
|
tapable: "npm:2.2.3"
|
||||||
checksum: 10/194efba86d15e86d81de3b1a747c3e82874f69c4e3f1f96e9f36f8a83cabbcc6371729498e2ab82724550f376dd2630849c435841031a0c139406aeb4b472d06
|
checksum: 10/c6183047ce5e7db1240b89c3d3890def9fc7ae2c1dcab8621ee3c0652b174e3facae6358cbd706317ae103af748d41e9c3187a519b082e1d249dcc18a9938a58
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@rsdoctor/types@npm:1.3.1":
|
"@rsdoctor/types@npm:1.3.0":
|
||||||
version: 1.3.1
|
version: 1.3.0
|
||||||
resolution: "@rsdoctor/types@npm:1.3.1"
|
resolution: "@rsdoctor/types@npm:1.3.0"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@types/connect": "npm:3.4.38"
|
"@types/connect": "npm:3.4.38"
|
||||||
"@types/estree": "npm:1.0.5"
|
"@types/estree": "npm:1.0.5"
|
||||||
@@ -3987,16 +3986,16 @@ __metadata:
|
|||||||
optional: true
|
optional: true
|
||||||
webpack:
|
webpack:
|
||||||
optional: true
|
optional: true
|
||||||
checksum: 10/e058017b77b4b58c22c39a0f1177e6cabdedbdebc355f936bbc6be3ace51279d0cd078e2cab19543a5fe2d4cff3e9980f076c4d18bd70ab3d393d5ce0dd1eb89
|
checksum: 10/bc077915aa616844ee1d58b17ac34250f2174a0f5d2b8c83e2983a4c435855c85ec8317e7d2800ce62dcba225c2b493bca95c6cfa51c4f232a019e3390dd0ca4
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@rsdoctor/utils@npm:1.3.1":
|
"@rsdoctor/utils@npm:1.3.0":
|
||||||
version: 1.3.1
|
version: 1.3.0
|
||||||
resolution: "@rsdoctor/utils@npm:1.3.1"
|
resolution: "@rsdoctor/utils@npm:1.3.0"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/code-frame": "npm:7.26.2"
|
"@babel/code-frame": "npm:7.26.2"
|
||||||
"@rsdoctor/types": "npm:1.3.1"
|
"@rsdoctor/types": "npm:1.3.0"
|
||||||
"@types/estree": "npm:1.0.5"
|
"@types/estree": "npm:1.0.5"
|
||||||
acorn: "npm:^8.10.0"
|
acorn: "npm:^8.10.0"
|
||||||
acorn-import-attributes: "npm:^1.9.5"
|
acorn-import-attributes: "npm:^1.9.5"
|
||||||
@@ -4010,96 +4009,96 @@ __metadata:
|
|||||||
picocolors: "npm:^1.1.1"
|
picocolors: "npm:^1.1.1"
|
||||||
rslog: "npm:^1.2.11"
|
rslog: "npm:^1.2.11"
|
||||||
strip-ansi: "npm:^6.0.1"
|
strip-ansi: "npm:^6.0.1"
|
||||||
checksum: 10/ebe1a7233179bf9be0272959c16fc2fc89c37c2cc2553973002889ab8432697f2bee6308dc1c82208ddb1d13d875be6341b9a985d9fe18536af381989200dc48
|
checksum: 10/d11ab54328d719542965af87fb843627850e26a48e49378ab4b0b02553cbf37b2ec185caa622f745bc27735738112f29b1d1f00656e8d0a8b4bd23103a320a9a
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@rspack/binding-darwin-arm64@npm:1.5.8":
|
"@rspack/binding-darwin-arm64@npm:1.5.7":
|
||||||
version: 1.5.8
|
version: 1.5.7
|
||||||
resolution: "@rspack/binding-darwin-arm64@npm:1.5.8"
|
resolution: "@rspack/binding-darwin-arm64@npm:1.5.7"
|
||||||
conditions: os=darwin & cpu=arm64
|
conditions: os=darwin & cpu=arm64
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@rspack/binding-darwin-x64@npm:1.5.8":
|
"@rspack/binding-darwin-x64@npm:1.5.7":
|
||||||
version: 1.5.8
|
version: 1.5.7
|
||||||
resolution: "@rspack/binding-darwin-x64@npm:1.5.8"
|
resolution: "@rspack/binding-darwin-x64@npm:1.5.7"
|
||||||
conditions: os=darwin & cpu=x64
|
conditions: os=darwin & cpu=x64
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@rspack/binding-linux-arm64-gnu@npm:1.5.8":
|
"@rspack/binding-linux-arm64-gnu@npm:1.5.7":
|
||||||
version: 1.5.8
|
version: 1.5.7
|
||||||
resolution: "@rspack/binding-linux-arm64-gnu@npm:1.5.8"
|
resolution: "@rspack/binding-linux-arm64-gnu@npm:1.5.7"
|
||||||
conditions: os=linux & cpu=arm64 & libc=glibc
|
conditions: os=linux & cpu=arm64 & libc=glibc
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@rspack/binding-linux-arm64-musl@npm:1.5.8":
|
"@rspack/binding-linux-arm64-musl@npm:1.5.7":
|
||||||
version: 1.5.8
|
version: 1.5.7
|
||||||
resolution: "@rspack/binding-linux-arm64-musl@npm:1.5.8"
|
resolution: "@rspack/binding-linux-arm64-musl@npm:1.5.7"
|
||||||
conditions: os=linux & cpu=arm64 & libc=musl
|
conditions: os=linux & cpu=arm64 & libc=musl
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@rspack/binding-linux-x64-gnu@npm:1.5.8":
|
"@rspack/binding-linux-x64-gnu@npm:1.5.7":
|
||||||
version: 1.5.8
|
version: 1.5.7
|
||||||
resolution: "@rspack/binding-linux-x64-gnu@npm:1.5.8"
|
resolution: "@rspack/binding-linux-x64-gnu@npm:1.5.7"
|
||||||
conditions: os=linux & cpu=x64 & libc=glibc
|
conditions: os=linux & cpu=x64 & libc=glibc
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@rspack/binding-linux-x64-musl@npm:1.5.8":
|
"@rspack/binding-linux-x64-musl@npm:1.5.7":
|
||||||
version: 1.5.8
|
version: 1.5.7
|
||||||
resolution: "@rspack/binding-linux-x64-musl@npm:1.5.8"
|
resolution: "@rspack/binding-linux-x64-musl@npm:1.5.7"
|
||||||
conditions: os=linux & cpu=x64 & libc=musl
|
conditions: os=linux & cpu=x64 & libc=musl
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@rspack/binding-wasm32-wasi@npm:1.5.8":
|
"@rspack/binding-wasm32-wasi@npm:1.5.7":
|
||||||
version: 1.5.8
|
version: 1.5.7
|
||||||
resolution: "@rspack/binding-wasm32-wasi@npm:1.5.8"
|
resolution: "@rspack/binding-wasm32-wasi@npm:1.5.7"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@napi-rs/wasm-runtime": "npm:^1.0.5"
|
"@napi-rs/wasm-runtime": "npm:^1.0.5"
|
||||||
conditions: cpu=wasm32
|
conditions: cpu=wasm32
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@rspack/binding-win32-arm64-msvc@npm:1.5.8":
|
"@rspack/binding-win32-arm64-msvc@npm:1.5.7":
|
||||||
version: 1.5.8
|
version: 1.5.7
|
||||||
resolution: "@rspack/binding-win32-arm64-msvc@npm:1.5.8"
|
resolution: "@rspack/binding-win32-arm64-msvc@npm:1.5.7"
|
||||||
conditions: os=win32 & cpu=arm64
|
conditions: os=win32 & cpu=arm64
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@rspack/binding-win32-ia32-msvc@npm:1.5.8":
|
"@rspack/binding-win32-ia32-msvc@npm:1.5.7":
|
||||||
version: 1.5.8
|
version: 1.5.7
|
||||||
resolution: "@rspack/binding-win32-ia32-msvc@npm:1.5.8"
|
resolution: "@rspack/binding-win32-ia32-msvc@npm:1.5.7"
|
||||||
conditions: os=win32 & cpu=ia32
|
conditions: os=win32 & cpu=ia32
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@rspack/binding-win32-x64-msvc@npm:1.5.8":
|
"@rspack/binding-win32-x64-msvc@npm:1.5.7":
|
||||||
version: 1.5.8
|
version: 1.5.7
|
||||||
resolution: "@rspack/binding-win32-x64-msvc@npm:1.5.8"
|
resolution: "@rspack/binding-win32-x64-msvc@npm:1.5.7"
|
||||||
conditions: os=win32 & cpu=x64
|
conditions: os=win32 & cpu=x64
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@rspack/binding@npm:1.5.8":
|
"@rspack/binding@npm:1.5.7":
|
||||||
version: 1.5.8
|
version: 1.5.7
|
||||||
resolution: "@rspack/binding@npm:1.5.8"
|
resolution: "@rspack/binding@npm:1.5.7"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@rspack/binding-darwin-arm64": "npm:1.5.8"
|
"@rspack/binding-darwin-arm64": "npm:1.5.7"
|
||||||
"@rspack/binding-darwin-x64": "npm:1.5.8"
|
"@rspack/binding-darwin-x64": "npm:1.5.7"
|
||||||
"@rspack/binding-linux-arm64-gnu": "npm:1.5.8"
|
"@rspack/binding-linux-arm64-gnu": "npm:1.5.7"
|
||||||
"@rspack/binding-linux-arm64-musl": "npm:1.5.8"
|
"@rspack/binding-linux-arm64-musl": "npm:1.5.7"
|
||||||
"@rspack/binding-linux-x64-gnu": "npm:1.5.8"
|
"@rspack/binding-linux-x64-gnu": "npm:1.5.7"
|
||||||
"@rspack/binding-linux-x64-musl": "npm:1.5.8"
|
"@rspack/binding-linux-x64-musl": "npm:1.5.7"
|
||||||
"@rspack/binding-wasm32-wasi": "npm:1.5.8"
|
"@rspack/binding-wasm32-wasi": "npm:1.5.7"
|
||||||
"@rspack/binding-win32-arm64-msvc": "npm:1.5.8"
|
"@rspack/binding-win32-arm64-msvc": "npm:1.5.7"
|
||||||
"@rspack/binding-win32-ia32-msvc": "npm:1.5.8"
|
"@rspack/binding-win32-ia32-msvc": "npm:1.5.7"
|
||||||
"@rspack/binding-win32-x64-msvc": "npm:1.5.8"
|
"@rspack/binding-win32-x64-msvc": "npm:1.5.7"
|
||||||
dependenciesMeta:
|
dependenciesMeta:
|
||||||
"@rspack/binding-darwin-arm64":
|
"@rspack/binding-darwin-arm64":
|
||||||
optional: true
|
optional: true
|
||||||
@@ -4121,23 +4120,23 @@ __metadata:
|
|||||||
optional: true
|
optional: true
|
||||||
"@rspack/binding-win32-x64-msvc":
|
"@rspack/binding-win32-x64-msvc":
|
||||||
optional: true
|
optional: true
|
||||||
checksum: 10/8185f3d77f71f210f182799fd41edead264aa8819c354aa13744635869734722b056a958fd94f770c05cab2a501cb8f0c217626098f9b4ec82afed3c6c3b53f4
|
checksum: 10/38e104f67f5c7299d1452b85728675525684685e4b13f8a9091b46b53de3decf5caabf73d0408ad5167d3b2800ab4068aa5fc83275cfa259bc1814aede1a3684
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@rspack/core@npm:1.5.8":
|
"@rspack/core@npm:1.5.7":
|
||||||
version: 1.5.8
|
version: 1.5.7
|
||||||
resolution: "@rspack/core@npm:1.5.8"
|
resolution: "@rspack/core@npm:1.5.7"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@module-federation/runtime-tools": "npm:0.18.0"
|
"@module-federation/runtime-tools": "npm:0.18.0"
|
||||||
"@rspack/binding": "npm:1.5.8"
|
"@rspack/binding": "npm:1.5.7"
|
||||||
"@rspack/lite-tapable": "npm:1.0.1"
|
"@rspack/lite-tapable": "npm:1.0.1"
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
"@swc/helpers": ">=0.5.1"
|
"@swc/helpers": ">=0.5.1"
|
||||||
peerDependenciesMeta:
|
peerDependenciesMeta:
|
||||||
"@swc/helpers":
|
"@swc/helpers":
|
||||||
optional: true
|
optional: true
|
||||||
checksum: 10/269e691dbb83430179b89d9f10e115c5fb97cf54eb13c49ae6f6070468f3fcbee17ebe0968d8ab82dfdb7b5474e339f3fd9c945d5d20eb89333b53d8c1ad32cc
|
checksum: 10/a8a95e18f1f0c5f40f2727b3180f06175e26252a6a31d4fe7dafd8b08f0648beca2457ec7d4c1698ce1f061dacabf734bece843e1dea0fd165acc2048eab29ac
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
@@ -4943,106 +4942,106 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@typescript-eslint/eslint-plugin@npm:8.45.0":
|
"@typescript-eslint/eslint-plugin@npm:8.44.1":
|
||||||
version: 8.45.0
|
version: 8.44.1
|
||||||
resolution: "@typescript-eslint/eslint-plugin@npm:8.45.0"
|
resolution: "@typescript-eslint/eslint-plugin@npm:8.44.1"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@eslint-community/regexpp": "npm:^4.10.0"
|
"@eslint-community/regexpp": "npm:^4.10.0"
|
||||||
"@typescript-eslint/scope-manager": "npm:8.45.0"
|
"@typescript-eslint/scope-manager": "npm:8.44.1"
|
||||||
"@typescript-eslint/type-utils": "npm:8.45.0"
|
"@typescript-eslint/type-utils": "npm:8.44.1"
|
||||||
"@typescript-eslint/utils": "npm:8.45.0"
|
"@typescript-eslint/utils": "npm:8.44.1"
|
||||||
"@typescript-eslint/visitor-keys": "npm:8.45.0"
|
"@typescript-eslint/visitor-keys": "npm:8.44.1"
|
||||||
graphemer: "npm:^1.4.0"
|
graphemer: "npm:^1.4.0"
|
||||||
ignore: "npm:^7.0.0"
|
ignore: "npm:^7.0.0"
|
||||||
natural-compare: "npm:^1.4.0"
|
natural-compare: "npm:^1.4.0"
|
||||||
ts-api-utils: "npm:^2.1.0"
|
ts-api-utils: "npm:^2.1.0"
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
"@typescript-eslint/parser": ^8.45.0
|
"@typescript-eslint/parser": ^8.44.1
|
||||||
eslint: ^8.57.0 || ^9.0.0
|
eslint: ^8.57.0 || ^9.0.0
|
||||||
typescript: ">=4.8.4 <6.0.0"
|
typescript: ">=4.8.4 <6.0.0"
|
||||||
checksum: 10/6d31dbd3354028b4a010af0ea2614a171b11616e6f20d36d74529b8888681ae8d15e1269122b8a8d5fae117bdd66dac4a38cfc99dc2a0ee33bd22c10075f63e4
|
checksum: 10/e0f69d1d24bbf63c3f2937f85b49994eae907656b01bc9d3563f096750add1085c4b15953b82b750b0da2b8444850558a8bf0d5bcfb8f0410dfd628f4245dc11
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@typescript-eslint/parser@npm:8.45.0":
|
"@typescript-eslint/parser@npm:8.44.1":
|
||||||
version: 8.45.0
|
version: 8.44.1
|
||||||
resolution: "@typescript-eslint/parser@npm:8.45.0"
|
resolution: "@typescript-eslint/parser@npm:8.44.1"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@typescript-eslint/scope-manager": "npm:8.45.0"
|
"@typescript-eslint/scope-manager": "npm:8.44.1"
|
||||||
"@typescript-eslint/types": "npm:8.45.0"
|
"@typescript-eslint/types": "npm:8.44.1"
|
||||||
"@typescript-eslint/typescript-estree": "npm:8.45.0"
|
"@typescript-eslint/typescript-estree": "npm:8.44.1"
|
||||||
"@typescript-eslint/visitor-keys": "npm:8.45.0"
|
"@typescript-eslint/visitor-keys": "npm:8.44.1"
|
||||||
debug: "npm:^4.3.4"
|
debug: "npm:^4.3.4"
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
eslint: ^8.57.0 || ^9.0.0
|
eslint: ^8.57.0 || ^9.0.0
|
||||||
typescript: ">=4.8.4 <6.0.0"
|
typescript: ">=4.8.4 <6.0.0"
|
||||||
checksum: 10/4f8b7c73ae3b53c2adc4e981ac2ca90839a118947635481b45d29423d39b7b73cde2b185ad1084c9e19c3239444bf1be81f40b861176eec4540cb46848731991
|
checksum: 10/ff5048c36d9fde27a03f64f3c4ad4739370fde1d744fa7bd1e08280601bd9adfe64c740789fd2adede54dd212a005c59bf1c06c68d05f57b7028332838ed28f8
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@typescript-eslint/project-service@npm:8.45.0":
|
"@typescript-eslint/project-service@npm:8.44.1":
|
||||||
version: 8.45.0
|
version: 8.44.1
|
||||||
resolution: "@typescript-eslint/project-service@npm:8.45.0"
|
resolution: "@typescript-eslint/project-service@npm:8.44.1"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@typescript-eslint/tsconfig-utils": "npm:^8.45.0"
|
"@typescript-eslint/tsconfig-utils": "npm:^8.44.1"
|
||||||
"@typescript-eslint/types": "npm:^8.45.0"
|
"@typescript-eslint/types": "npm:^8.44.1"
|
||||||
debug: "npm:^4.3.4"
|
debug: "npm:^4.3.4"
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
typescript: ">=4.8.4 <6.0.0"
|
typescript: ">=4.8.4 <6.0.0"
|
||||||
checksum: 10/919c8260dae79eaec79de84a5ae66fbb09c2ab7aca8c3b7785cb011582a2864c8091e64c84013b05bce812e522fbc4a5ae1c68f86404e078fc84da0fe80247ce
|
checksum: 10/4b74d9d1c113b2637b6d65c790bfd2fa15ab1061fe77e68519c3b1939f4b0ee9e15d621ffc946ae2ef457289e830ddea879553868d5c7ff1af4904d7842792e0
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@typescript-eslint/scope-manager@npm:8.45.0":
|
"@typescript-eslint/scope-manager@npm:8.44.1":
|
||||||
version: 8.45.0
|
version: 8.44.1
|
||||||
resolution: "@typescript-eslint/scope-manager@npm:8.45.0"
|
resolution: "@typescript-eslint/scope-manager@npm:8.44.1"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@typescript-eslint/types": "npm:8.45.0"
|
"@typescript-eslint/types": "npm:8.44.1"
|
||||||
"@typescript-eslint/visitor-keys": "npm:8.45.0"
|
"@typescript-eslint/visitor-keys": "npm:8.44.1"
|
||||||
checksum: 10/e45d63a0109eca00f6b431d87e73eacfa03b1795905f123e9144bcacb5abb83888167d1849317c6f90ba1f3553196b2eab13e5e7cdd1050d7a84eaadb65ba801
|
checksum: 10/f731becce1f79b3add939417e31c7ae38c9150d73de5dec4141376cc64e1bb69f8d6b9f2072f8f442995a1e30eab57fd73c1a4b87220e19abb0f210e2c123096
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@typescript-eslint/tsconfig-utils@npm:8.45.0, @typescript-eslint/tsconfig-utils@npm:^8.45.0":
|
"@typescript-eslint/tsconfig-utils@npm:8.44.1, @typescript-eslint/tsconfig-utils@npm:^8.44.1":
|
||||||
version: 8.45.0
|
version: 8.44.1
|
||||||
resolution: "@typescript-eslint/tsconfig-utils@npm:8.45.0"
|
resolution: "@typescript-eslint/tsconfig-utils@npm:8.44.1"
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
typescript: ">=4.8.4 <6.0.0"
|
typescript: ">=4.8.4 <6.0.0"
|
||||||
checksum: 10/91696bbc34758749d3647236986bf418bacdc0de0e27c2d39cd7c2408c404c35ed18c47c2a55aea0bb9525cc7eb656586359c4e651144603f3438ce93fe80081
|
checksum: 10/942d4bb9ec3d0f1f6c7fe0dc0fef2ae83a12b43ff3537fbd74007d0c9b80f166db2e5fa2f422f0b10ade348e330204dc70fc50e235ee66dc13ba488ac1490778
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@typescript-eslint/type-utils@npm:8.45.0":
|
"@typescript-eslint/type-utils@npm:8.44.1":
|
||||||
version: 8.45.0
|
version: 8.44.1
|
||||||
resolution: "@typescript-eslint/type-utils@npm:8.45.0"
|
resolution: "@typescript-eslint/type-utils@npm:8.44.1"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@typescript-eslint/types": "npm:8.45.0"
|
"@typescript-eslint/types": "npm:8.44.1"
|
||||||
"@typescript-eslint/typescript-estree": "npm:8.45.0"
|
"@typescript-eslint/typescript-estree": "npm:8.44.1"
|
||||||
"@typescript-eslint/utils": "npm:8.45.0"
|
"@typescript-eslint/utils": "npm:8.44.1"
|
||||||
debug: "npm:^4.3.4"
|
debug: "npm:^4.3.4"
|
||||||
ts-api-utils: "npm:^2.1.0"
|
ts-api-utils: "npm:^2.1.0"
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
eslint: ^8.57.0 || ^9.0.0
|
eslint: ^8.57.0 || ^9.0.0
|
||||||
typescript: ">=4.8.4 <6.0.0"
|
typescript: ">=4.8.4 <6.0.0"
|
||||||
checksum: 10/81017b3f4780a65a4e4268ab208f1cb8891c1ced9ade23d8eb4575b18aeb99fe59a0d0ddbb4eea9c086567a1b4515d3466e850d4c81ec0d2d88658c43877a6cf
|
checksum: 10/696747b2a048c281d8cfe74b3f61b7af2e7fa371e9afa58de6d6b49ad7cfa2577d52ddd66fe8b243d2d039b489b6db07bf18a746b14004456c8405842276aa92
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@typescript-eslint/types@npm:8.45.0, @typescript-eslint/types@npm:^8.45.0":
|
"@typescript-eslint/types@npm:8.44.1, @typescript-eslint/types@npm:^8.44.1":
|
||||||
version: 8.45.0
|
version: 8.44.1
|
||||||
resolution: "@typescript-eslint/types@npm:8.45.0"
|
resolution: "@typescript-eslint/types@npm:8.44.1"
|
||||||
checksum: 10/889ded2b9bf376c876611b2a37f89051fdc8ec501314a4b97832caefa4305bffc4b752548941ce2e7f9659a81336d096d439d4c2ed236c99fefdf60b715593dd
|
checksum: 10/acebff929b2c64254c430fff54d8d135c9f47bcc20062fd3e52f64952b0ef973db9582812025f5314940889ae4c4a8798726a477b94fbda31881109687567528
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@typescript-eslint/typescript-estree@npm:8.45.0":
|
"@typescript-eslint/typescript-estree@npm:8.44.1":
|
||||||
version: 8.45.0
|
version: 8.44.1
|
||||||
resolution: "@typescript-eslint/typescript-estree@npm:8.45.0"
|
resolution: "@typescript-eslint/typescript-estree@npm:8.44.1"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@typescript-eslint/project-service": "npm:8.45.0"
|
"@typescript-eslint/project-service": "npm:8.44.1"
|
||||||
"@typescript-eslint/tsconfig-utils": "npm:8.45.0"
|
"@typescript-eslint/tsconfig-utils": "npm:8.44.1"
|
||||||
"@typescript-eslint/types": "npm:8.45.0"
|
"@typescript-eslint/types": "npm:8.44.1"
|
||||||
"@typescript-eslint/visitor-keys": "npm:8.45.0"
|
"@typescript-eslint/visitor-keys": "npm:8.44.1"
|
||||||
debug: "npm:^4.3.4"
|
debug: "npm:^4.3.4"
|
||||||
fast-glob: "npm:^3.3.2"
|
fast-glob: "npm:^3.3.2"
|
||||||
is-glob: "npm:^4.0.3"
|
is-glob: "npm:^4.0.3"
|
||||||
@@ -5051,32 +5050,32 @@ __metadata:
|
|||||||
ts-api-utils: "npm:^2.1.0"
|
ts-api-utils: "npm:^2.1.0"
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
typescript: ">=4.8.4 <6.0.0"
|
typescript: ">=4.8.4 <6.0.0"
|
||||||
checksum: 10/2fb4e63ad6128afbada8eabaabfe7d5a8f1a1f387bb13d7d3209103493ba974b518bf47b17e9a853beba10ec81efd5582ebf628c2eb77a924cf67d4d85466e5e
|
checksum: 10/b7b4d177e9339c978a090f1ec23c3f58316845b1cfc4f80a59f481d748b19078ab2cf4fe2d3aa063ad3dc556ea678289e2a9f61e12d7beaeb2bb681599b7481b
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@typescript-eslint/utils@npm:8.45.0":
|
"@typescript-eslint/utils@npm:8.44.1":
|
||||||
version: 8.45.0
|
version: 8.44.1
|
||||||
resolution: "@typescript-eslint/utils@npm:8.45.0"
|
resolution: "@typescript-eslint/utils@npm:8.44.1"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@eslint-community/eslint-utils": "npm:^4.7.0"
|
"@eslint-community/eslint-utils": "npm:^4.7.0"
|
||||||
"@typescript-eslint/scope-manager": "npm:8.45.0"
|
"@typescript-eslint/scope-manager": "npm:8.44.1"
|
||||||
"@typescript-eslint/types": "npm:8.45.0"
|
"@typescript-eslint/types": "npm:8.44.1"
|
||||||
"@typescript-eslint/typescript-estree": "npm:8.45.0"
|
"@typescript-eslint/typescript-estree": "npm:8.44.1"
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
eslint: ^8.57.0 || ^9.0.0
|
eslint: ^8.57.0 || ^9.0.0
|
||||||
typescript: ">=4.8.4 <6.0.0"
|
typescript: ">=4.8.4 <6.0.0"
|
||||||
checksum: 10/9e675a0da4434bd434901f9ba3e1e91d4d7ad542d7fcf8c23534a67f2f9039a569da20929e67a6562e3a263be226ad424cd0c1ac80f7828f4285f7f34e361926
|
checksum: 10/d7757d400a14bd69272da5e32dc61893ec958a9776b2436e2980d7e638164c88edb4b56c5faff6cf8ea61b1fd8a3f6c78ad4f7fc5c4e7d217d960e08039f7c40
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@typescript-eslint/visitor-keys@npm:8.45.0":
|
"@typescript-eslint/visitor-keys@npm:8.44.1":
|
||||||
version: 8.45.0
|
version: 8.44.1
|
||||||
resolution: "@typescript-eslint/visitor-keys@npm:8.45.0"
|
resolution: "@typescript-eslint/visitor-keys@npm:8.44.1"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@typescript-eslint/types": "npm:8.45.0"
|
"@typescript-eslint/types": "npm:8.44.1"
|
||||||
eslint-visitor-keys: "npm:^4.2.1"
|
eslint-visitor-keys: "npm:^4.2.1"
|
||||||
checksum: 10/8ae7e19c69c1f67fa8f952c18a09ad42a8cba492545d6e1dca6750e760893773f69ec6b1a96d0997e833c82aecc5ff7fb9546c5abd6c4427d91206670cf8ff37
|
checksum: 10/040f57906265d9ba5ec2230e728eea87bf6af9e0d345017de9e5b05211469457d838435f8b776354b403dad7b2c4527b68863c4ab6750f2668731dd2a3b8f9e8
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
@@ -7528,16 +7527,6 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"enhanced-resolve@npm:5.12.0":
|
|
||||||
version: 5.12.0
|
|
||||||
resolution: "enhanced-resolve@npm:5.12.0"
|
|
||||||
dependencies:
|
|
||||||
graceful-fs: "npm:^4.2.4"
|
|
||||||
tapable: "npm:^2.2.0"
|
|
||||||
checksum: 10/ea5b49a0641827c6a083eaa3a625f953f4bd4e8f015bf70b9fb8cf60a35aaeb44e567df2da91ed28efaea3882845016e1d22a3152c2fdf773ea14f39cbe3d8a9
|
|
||||||
languageName: node
|
|
||||||
linkType: hard
|
|
||||||
|
|
||||||
"enhanced-resolve@npm:^0.9.1":
|
"enhanced-resolve@npm:^0.9.1":
|
||||||
version: 0.9.1
|
version: 0.9.1
|
||||||
resolution: "enhanced-resolve@npm:0.9.1"
|
resolution: "enhanced-resolve@npm:0.9.1"
|
||||||
@@ -8979,7 +8968,7 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.10, graceful-fs@npm:^4.2.11, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.8":
|
"graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.10, graceful-fs@npm:^4.2.11, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.8":
|
||||||
version: 4.2.11
|
version: 4.2.11
|
||||||
resolution: "graceful-fs@npm:4.2.11"
|
resolution: "graceful-fs@npm:4.2.11"
|
||||||
checksum: 10/bf152d0ed1dc159239db1ba1f74fdbc40cb02f626770dcd5815c427ce0688c2635a06ed69af364396da4636d0408fcf7d4afdf7881724c3307e46aff30ca49e2
|
checksum: 10/bf152d0ed1dc159239db1ba1f74fdbc40cb02f626770dcd5815c427ce0688c2635a06ed69af364396da4636d0408fcf7d4afdf7881724c3307e46aff30ca49e2
|
||||||
@@ -9187,7 +9176,7 @@ __metadata:
|
|||||||
"@codemirror/legacy-modes": "npm:6.5.1"
|
"@codemirror/legacy-modes": "npm:6.5.1"
|
||||||
"@codemirror/search": "npm:6.5.11"
|
"@codemirror/search": "npm:6.5.11"
|
||||||
"@codemirror/state": "npm:6.5.2"
|
"@codemirror/state": "npm:6.5.2"
|
||||||
"@codemirror/view": "npm:6.38.4"
|
"@codemirror/view": "npm:6.38.3"
|
||||||
"@date-fns/tz": "npm:1.4.1"
|
"@date-fns/tz": "npm:1.4.1"
|
||||||
"@egjs/hammerjs": "npm:2.0.17"
|
"@egjs/hammerjs": "npm:2.0.17"
|
||||||
"@formatjs/intl-datetimeformat": "npm:6.18.0"
|
"@formatjs/intl-datetimeformat": "npm:6.18.0"
|
||||||
@@ -9238,12 +9227,12 @@ __metadata:
|
|||||||
"@material/web": "npm:2.4.0"
|
"@material/web": "npm:2.4.0"
|
||||||
"@mdi/js": "npm:7.4.47"
|
"@mdi/js": "npm:7.4.47"
|
||||||
"@mdi/svg": "npm:7.4.47"
|
"@mdi/svg": "npm:7.4.47"
|
||||||
"@octokit/auth-oauth-device": "npm:8.0.2"
|
"@octokit/auth-oauth-device": "npm:8.0.1"
|
||||||
"@octokit/plugin-retry": "npm:8.0.2"
|
"@octokit/plugin-retry": "npm:8.0.1"
|
||||||
"@octokit/rest": "npm:22.0.0"
|
"@octokit/rest": "npm:22.0.0"
|
||||||
"@replit/codemirror-indentation-markers": "npm:6.5.3"
|
"@replit/codemirror-indentation-markers": "npm:6.5.3"
|
||||||
"@rsdoctor/rspack-plugin": "npm:1.3.1"
|
"@rsdoctor/rspack-plugin": "npm:1.3.0"
|
||||||
"@rspack/core": "npm:1.5.8"
|
"@rspack/core": "npm:1.5.7"
|
||||||
"@rspack/dev-server": "npm:1.1.4"
|
"@rspack/dev-server": "npm:1.1.4"
|
||||||
"@swc/helpers": "npm:0.5.17"
|
"@swc/helpers": "npm:0.5.17"
|
||||||
"@thomasloven/round-slider": "npm:0.6.0"
|
"@thomasloven/round-slider": "npm:0.6.0"
|
||||||
@@ -9322,7 +9311,7 @@ __metadata:
|
|||||||
leaflet: "npm:1.9.4"
|
leaflet: "npm:1.9.4"
|
||||||
leaflet-draw: "patch:leaflet-draw@npm%3A1.0.4#./.yarn/patches/leaflet-draw-npm-1.0.4-0ca0ebcf65.patch"
|
leaflet-draw: "patch:leaflet-draw@npm%3A1.0.4#./.yarn/patches/leaflet-draw-npm-1.0.4-0ca0ebcf65.patch"
|
||||||
leaflet.markercluster: "npm:1.5.3"
|
leaflet.markercluster: "npm:1.5.3"
|
||||||
lint-staged: "npm:16.2.3"
|
lint-staged: "npm:16.2.1"
|
||||||
lit: "npm:3.3.1"
|
lit: "npm:3.3.1"
|
||||||
lit-analyzer: "npm:2.0.3"
|
lit-analyzer: "npm:2.0.3"
|
||||||
lit-html: "npm:3.3.1"
|
lit-html: "npm:3.3.1"
|
||||||
@@ -9352,7 +9341,7 @@ __metadata:
|
|||||||
tinykeys: "npm:3.0.0"
|
tinykeys: "npm:3.0.0"
|
||||||
ts-lit-plugin: "npm:2.0.2"
|
ts-lit-plugin: "npm:2.0.2"
|
||||||
typescript: "npm:5.9.2"
|
typescript: "npm:5.9.2"
|
||||||
typescript-eslint: "npm:8.45.0"
|
typescript-eslint: "npm:8.44.1"
|
||||||
ua-parser-js: "npm:2.0.5"
|
ua-parser-js: "npm:2.0.5"
|
||||||
vite-tsconfig-paths: "npm:5.1.4"
|
vite-tsconfig-paths: "npm:5.1.4"
|
||||||
vitest: "npm:3.2.4"
|
vitest: "npm:3.2.4"
|
||||||
@@ -10657,9 +10646,9 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"lint-staged@npm:16.2.3":
|
"lint-staged@npm:16.2.1":
|
||||||
version: 16.2.3
|
version: 16.2.1
|
||||||
resolution: "lint-staged@npm:16.2.3"
|
resolution: "lint-staged@npm:16.2.1"
|
||||||
dependencies:
|
dependencies:
|
||||||
commander: "npm:^14.0.1"
|
commander: "npm:^14.0.1"
|
||||||
listr2: "npm:^9.0.4"
|
listr2: "npm:^9.0.4"
|
||||||
@@ -10670,7 +10659,7 @@ __metadata:
|
|||||||
yaml: "npm:^2.8.1"
|
yaml: "npm:^2.8.1"
|
||||||
bin:
|
bin:
|
||||||
lint-staged: bin/lint-staged.js
|
lint-staged: bin/lint-staged.js
|
||||||
checksum: 10/7c83cb478aa8004eecc8c91d633abe2865ffc037957ae9ee2669e49b76b76fe3512ba431277efc29cec7a38641e7d8a62f3378a41b624c88bde6fbef5524e2cb
|
checksum: 10/b604de3ca27a067e45c5f0e0780ca46f5617e9f6ac3895297dee087d62742bbcd9f9e910300c15c599e1f06900666469b73e036e3fe3153ccedef314ce791dd5
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
@@ -14306,18 +14295,18 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"typescript-eslint@npm:8.45.0":
|
"typescript-eslint@npm:8.44.1":
|
||||||
version: 8.45.0
|
version: 8.44.1
|
||||||
resolution: "typescript-eslint@npm:8.45.0"
|
resolution: "typescript-eslint@npm:8.44.1"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@typescript-eslint/eslint-plugin": "npm:8.45.0"
|
"@typescript-eslint/eslint-plugin": "npm:8.44.1"
|
||||||
"@typescript-eslint/parser": "npm:8.45.0"
|
"@typescript-eslint/parser": "npm:8.44.1"
|
||||||
"@typescript-eslint/typescript-estree": "npm:8.45.0"
|
"@typescript-eslint/typescript-estree": "npm:8.44.1"
|
||||||
"@typescript-eslint/utils": "npm:8.45.0"
|
"@typescript-eslint/utils": "npm:8.44.1"
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
eslint: ^8.57.0 || ^9.0.0
|
eslint: ^8.57.0 || ^9.0.0
|
||||||
typescript: ">=4.8.4 <6.0.0"
|
typescript: ">=4.8.4 <6.0.0"
|
||||||
checksum: 10/1c17ebb5bcbea418c8f372d71b5c2df8c9b8c6897d1bda8196ea17bac8fabeffe1814bc4f7a28d40f404fb811c97fcda0d69c4375b4f010d9bf44d19d8401706
|
checksum: 10/9bd0601ef67d0fb20b095a722f4286b3b5d27905ff926a9375fc0934746626d72339d74ba40eb9d361af7fda1987294b0533dbed5dddbac79814daf196a301ac
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user