mirror of
https://github.com/home-assistant/frontend.git
synced 2026-01-11 09:47:27 +00:00
Compare commits
39 Commits
copilot/fi
...
rc
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
905435db3e | ||
|
|
ea73fd3f01 | ||
|
|
e519a0203e | ||
|
|
d98ee7e0b5 | ||
|
|
6fc8c17909 | ||
|
|
201169c3d8 | ||
|
|
303538ac21 | ||
|
|
3c5a6193d0 | ||
|
|
5ee4bd63f8 | ||
|
|
b193929bd9 | ||
|
|
3bee5c8cd4 | ||
|
|
976c74b8da | ||
|
|
3a4a13db21 | ||
|
|
a2f033dd88 | ||
|
|
a44b94c8df | ||
|
|
8796830ff9 | ||
|
|
bdff13d5e1 | ||
|
|
4346484afc | ||
|
|
533694391e | ||
|
|
3adba7aa1f | ||
|
|
b60552c025 | ||
|
|
3011d56101 | ||
|
|
c903c0d734 | ||
|
|
14be390994 | ||
|
|
d48019a48e | ||
|
|
7b5cbb76ef | ||
|
|
c75fab025f | ||
|
|
c007206fa0 | ||
|
|
ab5b5a4276 | ||
|
|
9eb40f8470 | ||
|
|
bc827d9bf1 | ||
|
|
24f5d58691 | ||
|
|
13505a9104 | ||
|
|
c1d135aa16 | ||
|
|
16d13c3202 | ||
|
|
46b3c34ba1 | ||
|
|
57a81b9de4 | ||
|
|
69f4f1dbed | ||
|
|
355a1aff3f |
4
.github/copilot-instructions.md
vendored
4
.github/copilot-instructions.md
vendored
@@ -22,13 +22,11 @@ You are an assistant helping with development of the Home Assistant frontend. Th
|
||||
```bash
|
||||
yarn lint # ESLint + Prettier + TypeScript + Lit
|
||||
yarn format # Auto-fix ESLint + Prettier
|
||||
yarn lint:types # TypeScript compiler (run WITHOUT file arguments)
|
||||
yarn lint:types # TypeScript compiler
|
||||
yarn test # Vitest
|
||||
script/develop # Development server
|
||||
```
|
||||
|
||||
> **WARNING:** Never run `tsc` or `yarn lint:types` with file arguments (e.g., `yarn lint:types src/file.ts`). When `tsc` receives file arguments, it ignores `tsconfig.json` and emits `.js` files into `src/`, polluting the codebase. Always run `yarn lint:types` without arguments. For individual file type checking, rely on IDE diagnostics. If `.js` files are accidentally generated, clean up with `git clean -fd src/`.
|
||||
|
||||
### Component Prefixes
|
||||
|
||||
- `ha-` - Home Assistant components
|
||||
|
||||
2
.github/workflows/relative-ci.yaml
vendored
2
.github/workflows/relative-ci.yaml
vendored
@@ -17,7 +17,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Send bundle stats and build information to RelativeCI
|
||||
uses: relative-ci/agent-action@3c681926017930047fc03acaa35cd6a44efcbfc3 # v3.2.2
|
||||
uses: relative-ci/agent-action@c45aaa919ef85620af54242a241ac17a8fa35983 # v3.2.1
|
||||
with:
|
||||
key: ${{ secrets[format('RELATIVE_CI_KEY_{0}_{1}', matrix.bundle, matrix.build)] }}
|
||||
token: ${{ github.token }}
|
||||
|
||||
@@ -187,11 +187,5 @@ export default tseslint.config(
|
||||
],
|
||||
"no-use-before-define": "off",
|
||||
},
|
||||
},
|
||||
{
|
||||
files: ["src/util/recorder-worklet.js"],
|
||||
languageOptions: {
|
||||
globals: globals.audioWorklet,
|
||||
},
|
||||
}
|
||||
);
|
||||
|
||||
32
package.json
32
package.json
@@ -34,18 +34,18 @@
|
||||
"@codemirror/legacy-modes": "6.5.2",
|
||||
"@codemirror/search": "6.5.11",
|
||||
"@codemirror/state": "6.5.3",
|
||||
"@codemirror/view": "6.39.8",
|
||||
"@codemirror/view": "6.39.7",
|
||||
"@date-fns/tz": "1.4.1",
|
||||
"@egjs/hammerjs": "2.0.17",
|
||||
"@formatjs/intl-datetimeformat": "7.1.1",
|
||||
"@formatjs/intl-displaynames": "7.1.1",
|
||||
"@formatjs/intl-durationformat": "0.9.1",
|
||||
"@formatjs/intl-getcanonicallocales": "3.1.1",
|
||||
"@formatjs/intl-listformat": "8.1.1",
|
||||
"@formatjs/intl-locale": "5.1.1",
|
||||
"@formatjs/intl-numberformat": "9.1.1",
|
||||
"@formatjs/intl-pluralrules": "6.1.1",
|
||||
"@formatjs/intl-relativetimeformat": "12.1.1",
|
||||
"@formatjs/intl-datetimeformat": "7.1.0",
|
||||
"@formatjs/intl-displaynames": "7.1.0",
|
||||
"@formatjs/intl-durationformat": "0.9.0",
|
||||
"@formatjs/intl-getcanonicallocales": "3.1.0",
|
||||
"@formatjs/intl-listformat": "8.1.0",
|
||||
"@formatjs/intl-locale": "5.1.0",
|
||||
"@formatjs/intl-numberformat": "9.1.0",
|
||||
"@formatjs/intl-pluralrules": "6.1.0",
|
||||
"@formatjs/intl-relativetimeformat": "12.1.0",
|
||||
"@fullcalendar/core": "6.1.20",
|
||||
"@fullcalendar/daygrid": "6.1.20",
|
||||
"@fullcalendar/interaction": "6.1.20",
|
||||
@@ -112,7 +112,7 @@
|
||||
"hls.js": "1.6.15",
|
||||
"home-assistant-js-websocket": "9.6.0",
|
||||
"idb-keyval": "6.2.2",
|
||||
"intl-messageformat": "11.0.8",
|
||||
"intl-messageformat": "11.0.7",
|
||||
"js-yaml": "4.1.1",
|
||||
"leaflet": "1.9.4",
|
||||
"leaflet-draw": "patch:leaflet-draw@npm%3A1.0.4#./.yarn/patches/leaflet-draw-npm-1.0.4-0ca0ebcf65.patch",
|
||||
@@ -156,8 +156,8 @@
|
||||
"@octokit/plugin-retry": "8.0.3",
|
||||
"@octokit/rest": "22.0.1",
|
||||
"@rsdoctor/rspack-plugin": "1.4.0",
|
||||
"@rspack/core": "1.7.0",
|
||||
"@rspack/dev-server": "1.1.5",
|
||||
"@rspack/core": "1.6.8",
|
||||
"@rspack/dev-server": "1.1.4",
|
||||
"@types/babel__plugin-transform-runtime": "7.9.5",
|
||||
"@types/chromecast-caf-receiver": "6.0.25",
|
||||
"@types/chromecast-caf-sender": "1.0.11",
|
||||
@@ -199,7 +199,7 @@
|
||||
"gulp-rename": "2.1.0",
|
||||
"html-minifier-terser": "7.2.0",
|
||||
"husky": "9.1.7",
|
||||
"jsdom": "27.4.0",
|
||||
"jsdom": "27.3.0",
|
||||
"jszip": "3.10.1",
|
||||
"lint-staged": "16.2.7",
|
||||
"lit-analyzer": "2.0.3",
|
||||
@@ -215,7 +215,7 @@
|
||||
"terser-webpack-plugin": "5.3.16",
|
||||
"ts-lit-plugin": "2.0.2",
|
||||
"typescript": "5.9.3",
|
||||
"typescript-eslint": "8.51.0",
|
||||
"typescript-eslint": "8.50.1",
|
||||
"vite-tsconfig-paths": "6.0.3",
|
||||
"vitest": "4.0.16",
|
||||
"webpack-stats-plugin": "1.1.3",
|
||||
@@ -229,7 +229,7 @@
|
||||
"clean-css": "5.3.3",
|
||||
"@lit/reactive-element": "2.1.2",
|
||||
"@fullcalendar/daygrid": "6.1.20",
|
||||
"globals": "17.0.0",
|
||||
"globals": "16.5.0",
|
||||
"tslib": "2.8.1",
|
||||
"@material/mwc-list@^0.27.0": "patch:@material/mwc-list@npm%3A0.27.0#~/.yarn/patches/@material-mwc-list-npm-0.27.0-5344fc9de4.patch",
|
||||
"glob@^10.2.2": "^10.5.0"
|
||||
|
||||
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
||||
|
||||
[project]
|
||||
name = "home-assistant-frontend"
|
||||
version = "20251229.0"
|
||||
version = "20260107.1"
|
||||
license = "Apache-2.0"
|
||||
license-files = ["LICENSE*"]
|
||||
description = "The Home Assistant frontend"
|
||||
|
||||
@@ -79,7 +79,7 @@ export const generateColorPalette = (
|
||||
}
|
||||
|
||||
return steps.map((step) => {
|
||||
const name = `color-${label}-${step}`;
|
||||
const name = `ha-color-${label}-${step}`;
|
||||
|
||||
// Base color at 50%
|
||||
if (step === 50) {
|
||||
|
||||
@@ -275,6 +275,11 @@ export class HaEntityNamePicker extends LitElement {
|
||||
this._editIndex = idx;
|
||||
await this.updateComplete;
|
||||
await this._picker?.open();
|
||||
const value = this._items[idx];
|
||||
// Pre-fill the field value when editing a text item
|
||||
if (value.type === "text" && value.text) {
|
||||
this._picker?.setFieldValue(value.text);
|
||||
}
|
||||
}
|
||||
|
||||
private get _items(): EntityNameItem[] {
|
||||
|
||||
@@ -1,5 +1,21 @@
|
||||
import type { Selector } from "../../data/selector";
|
||||
import type { HaFormSchema } from "./types";
|
||||
import type { HaFormData, HaFormSchema } from "./types";
|
||||
|
||||
const setDefaultValue = (
|
||||
field: HaFormSchema,
|
||||
value: HaFormData | undefined
|
||||
) => {
|
||||
if ("selector" in field && "choose" in field.selector) {
|
||||
const firstChoice = Object.keys(field.selector.choose.choices)[0];
|
||||
if (firstChoice) {
|
||||
return {
|
||||
active_choice: firstChoice,
|
||||
[firstChoice]: value,
|
||||
};
|
||||
}
|
||||
}
|
||||
return value;
|
||||
};
|
||||
|
||||
export const computeInitialHaFormData = (
|
||||
schema: HaFormSchema[] | readonly HaFormSchema[]
|
||||
@@ -10,9 +26,12 @@ export const computeInitialHaFormData = (
|
||||
field.description?.suggested_value !== undefined &&
|
||||
field.description?.suggested_value !== null
|
||||
) {
|
||||
data[field.name] = field.description.suggested_value;
|
||||
data[field.name] = setDefaultValue(
|
||||
field,
|
||||
field.description.suggested_value
|
||||
);
|
||||
} else if ("default" in field) {
|
||||
data[field.name] = field.default;
|
||||
data[field.name] = setDefaultValue(field, field.default);
|
||||
} else if (field.type === "expandable") {
|
||||
const expandableData = computeInitialHaFormData(field.schema);
|
||||
if (field.required || Object.keys(expandableData).length) {
|
||||
@@ -108,6 +127,21 @@ export const computeInitialHaFormData = (
|
||||
data[field.name] = {};
|
||||
} else if ("state" in selector) {
|
||||
data[field.name] = selector.state?.multiple ? [] : "";
|
||||
} else if ("choose" in selector) {
|
||||
const firstChoice = Object.keys(selector.choose.choices)[0];
|
||||
if (!firstChoice) {
|
||||
data[field.name] = {};
|
||||
} else {
|
||||
data[field.name] = {
|
||||
active_choice: firstChoice,
|
||||
[firstChoice]: computeInitialHaFormData([
|
||||
{
|
||||
name: firstChoice,
|
||||
selector: selector.choose.choices[firstChoice].selector,
|
||||
},
|
||||
])[firstChoice],
|
||||
};
|
||||
}
|
||||
} else {
|
||||
throw new Error(
|
||||
`Selector ${Object.keys(selector)[0]} not supported in initial form data`
|
||||
|
||||
@@ -1,12 +1,19 @@
|
||||
import "@home-assistant/webawesome/dist/components/popover/popover";
|
||||
import type { RenderItemFunction } from "@lit-labs/virtualizer/virtualize";
|
||||
import { mdiPlaylistPlus } from "@mdi/js";
|
||||
import { css, html, LitElement, nothing, type CSSResultGroup } from "lit";
|
||||
import {
|
||||
css,
|
||||
html,
|
||||
LitElement,
|
||||
nothing,
|
||||
type CSSResultGroup,
|
||||
type PropertyValues,
|
||||
} from "lit";
|
||||
import { customElement, property, query, state } from "lit/decorators";
|
||||
import { ifDefined } from "lit/directives/if-defined";
|
||||
import memoizeOne from "memoize-one";
|
||||
import { tinykeys } from "tinykeys";
|
||||
import { fireEvent } from "../common/dom/fire_event";
|
||||
import { throttle } from "../common/util/throttle";
|
||||
import { PickerMixin } from "../mixins/picker-mixin";
|
||||
import type { FuseWeightedKey } from "../resources/fuseMultiTerm";
|
||||
import type { HomeAssistant } from "../types";
|
||||
@@ -114,6 +121,8 @@ export class HaGenericPicker extends PickerMixin(LitElement) {
|
||||
|
||||
@state() private _openedNarrow = false;
|
||||
|
||||
@state() private _unknownValue = false;
|
||||
|
||||
static shadowRootOptions = {
|
||||
...LitElement.shadowRootOptions,
|
||||
delegatesFocus: true,
|
||||
@@ -130,6 +139,25 @@ export class HaGenericPicker extends PickerMixin(LitElement) {
|
||||
|
||||
private _unsubscribeTinyKeys?: () => void;
|
||||
|
||||
protected willUpdate(changedProperties: PropertyValues) {
|
||||
if (changedProperties.has("value")) {
|
||||
this._setUnknownValue();
|
||||
return;
|
||||
}
|
||||
if (changedProperties.has("hass")) {
|
||||
this._throttleUnknownValue();
|
||||
}
|
||||
}
|
||||
|
||||
public setFieldValue(value: string) {
|
||||
if (this._comboBox) {
|
||||
this._comboBox.setFieldValue(value);
|
||||
return;
|
||||
}
|
||||
// Store initial value to set when opened
|
||||
this._initialFieldValue = value;
|
||||
}
|
||||
|
||||
protected render() {
|
||||
// Only show label if it's not a top label and there is a value.
|
||||
const label = this.useTopLabel && this.value ? undefined : this.label;
|
||||
@@ -157,11 +185,7 @@ export class HaGenericPicker extends PickerMixin(LitElement) {
|
||||
type="button"
|
||||
class=${this._opened ? "opened" : ""}
|
||||
compact
|
||||
.unknown=${this._unknownValue(
|
||||
this.allowCustomValue,
|
||||
this.value,
|
||||
this.getItems()
|
||||
)}
|
||||
.unknown=${this._unknownValue}
|
||||
.unknownItemText=${this.unknownItemText}
|
||||
aria-label=${ifDefined(this.label)}
|
||||
@click=${this.open}
|
||||
@@ -182,40 +206,42 @@ export class HaGenericPicker extends PickerMixin(LitElement) {
|
||||
</ha-picker-field>`}
|
||||
</slot>
|
||||
</div>
|
||||
${!this._openedNarrow && (this._pickerWrapperOpen || this._opened)
|
||||
? html`
|
||||
<wa-popover
|
||||
.open=${this._pickerWrapperOpen}
|
||||
style="--body-width: ${this._popoverWidth}px;"
|
||||
without-arrow
|
||||
distance="-4"
|
||||
.placement=${this.popoverPlacement}
|
||||
for="picker"
|
||||
auto-size="vertical"
|
||||
auto-size-padding="16"
|
||||
@wa-after-show=${this._dialogOpened}
|
||||
@wa-after-hide=${this._hidePicker}
|
||||
trap-focus
|
||||
role="dialog"
|
||||
aria-modal="true"
|
||||
aria-label=${this.label || "Select option"}
|
||||
>
|
||||
${this._renderComboBox()}
|
||||
</wa-popover>
|
||||
`
|
||||
: this._pickerWrapperOpen || this._opened
|
||||
? html`<ha-bottom-sheet
|
||||
flexcontent
|
||||
.open=${this._pickerWrapperOpen}
|
||||
@wa-after-show=${this._dialogOpened}
|
||||
@closed=${this._hidePicker}
|
||||
role="dialog"
|
||||
aria-modal="true"
|
||||
aria-label=${this.label || "Select option"}
|
||||
>
|
||||
${this._renderComboBox(true)}
|
||||
</ha-bottom-sheet>`
|
||||
: nothing}
|
||||
${this._pickerWrapperOpen || this._opened
|
||||
? this._openedNarrow
|
||||
? html`
|
||||
<ha-bottom-sheet
|
||||
flexcontent
|
||||
.open=${this._pickerWrapperOpen}
|
||||
@wa-after-show=${this._dialogOpened}
|
||||
@closed=${this._hidePicker}
|
||||
role="dialog"
|
||||
aria-modal="true"
|
||||
aria-label=${this.label || "Select option"}
|
||||
>
|
||||
${this._renderComboBox(true)}
|
||||
</ha-bottom-sheet>
|
||||
`
|
||||
: html`
|
||||
<wa-popover
|
||||
.open=${this._pickerWrapperOpen}
|
||||
style="--body-width: ${this._popoverWidth}px;"
|
||||
without-arrow
|
||||
distance="-4"
|
||||
.placement=${this.popoverPlacement}
|
||||
for="picker"
|
||||
auto-size="vertical"
|
||||
auto-size-padding="16"
|
||||
@wa-after-show=${this._dialogOpened}
|
||||
@wa-after-hide=${this._hidePicker}
|
||||
trap-focus
|
||||
role="dialog"
|
||||
aria-modal="true"
|
||||
aria-label=${this.label || "Select option"}
|
||||
>
|
||||
${this._renderComboBox()}
|
||||
</wa-popover>
|
||||
`
|
||||
: nothing}
|
||||
</div>
|
||||
${this._renderHelper()}`;
|
||||
}
|
||||
@@ -248,26 +274,29 @@ export class HaGenericPicker extends PickerMixin(LitElement) {
|
||||
`;
|
||||
}
|
||||
|
||||
private _unknownValue = memoizeOne(
|
||||
(
|
||||
allowCustomValue: boolean,
|
||||
value?: string,
|
||||
items?: (PickerComboBoxItem | string)[]
|
||||
) => {
|
||||
if (
|
||||
allowCustomValue ||
|
||||
value === undefined ||
|
||||
value === null ||
|
||||
value === "" ||
|
||||
!items
|
||||
) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return !items.some(
|
||||
(item) => typeof item !== "string" && item.id === value
|
||||
);
|
||||
private _setUnknownValue = () => {
|
||||
const items = this.getItems();
|
||||
if (
|
||||
this.allowCustomValue ||
|
||||
this.value === undefined ||
|
||||
this.value === null ||
|
||||
this.value === "" ||
|
||||
!items
|
||||
) {
|
||||
this._unknownValue = false;
|
||||
return;
|
||||
}
|
||||
|
||||
this._unknownValue = !items.some(
|
||||
(item) => typeof item !== "string" && item.id === this.value
|
||||
);
|
||||
};
|
||||
|
||||
private _throttleUnknownValue = throttle(
|
||||
this._setUnknownValue,
|
||||
1000,
|
||||
true,
|
||||
false
|
||||
);
|
||||
|
||||
private _renderHelper() {
|
||||
@@ -283,9 +312,16 @@ export class HaGenericPicker extends PickerMixin(LitElement) {
|
||||
</ha-input-helper-text>`;
|
||||
}
|
||||
|
||||
private _initialFieldValue?: string;
|
||||
|
||||
private _dialogOpened = () => {
|
||||
this._opened = true;
|
||||
requestAnimationFrame(() => {
|
||||
// Set initial field value if needed
|
||||
if (this._initialFieldValue) {
|
||||
this._comboBox?.setFieldValue(this._initialFieldValue);
|
||||
this._initialFieldValue = undefined;
|
||||
}
|
||||
if (this.hass && isIosApp(this.hass)) {
|
||||
this.hass.auth.external!.fireMessage({
|
||||
type: "focus_element",
|
||||
@@ -295,6 +331,7 @@ export class HaGenericPicker extends PickerMixin(LitElement) {
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
this._comboBox?.focus();
|
||||
});
|
||||
};
|
||||
@@ -376,6 +413,7 @@ export class HaGenericPicker extends PickerMixin(LitElement) {
|
||||
.container {
|
||||
position: relative;
|
||||
display: block;
|
||||
max-width: 100%;
|
||||
}
|
||||
label[disabled] {
|
||||
color: var(--mdc-text-field-disabled-ink-color, rgba(0, 0, 0, 0.6));
|
||||
|
||||
@@ -153,6 +153,12 @@ export class HaPickerComboBox extends ScrollableFadeMixin(LitElement) {
|
||||
|
||||
@state() private _items: PickerComboBoxItem[] = [];
|
||||
|
||||
public setFieldValue(value: string) {
|
||||
if (this._searchFieldElement) {
|
||||
this._searchFieldElement.value = value;
|
||||
}
|
||||
}
|
||||
|
||||
protected get scrollableElement(): HTMLElement | null {
|
||||
return this._virtualizerElement as HTMLElement | null;
|
||||
}
|
||||
@@ -787,7 +793,7 @@ export class HaPickerComboBox extends ScrollableFadeMixin(LitElement) {
|
||||
.section-title,
|
||||
.title {
|
||||
background-color: var(--ha-color-fill-neutral-quiet-resting);
|
||||
padding: var(--ha-space-2) var(--ha-space-3);
|
||||
padding: var(--ha-space-1) var(--ha-space-2);
|
||||
font-weight: var(--ha-font-weight-bold);
|
||||
color: var(--secondary-text-color);
|
||||
min-height: var(--ha-space-6);
|
||||
|
||||
@@ -10,7 +10,7 @@ class HaSectionTitle extends LitElement {
|
||||
static styles = css`
|
||||
:host {
|
||||
background-color: var(--ha-color-fill-neutral-quiet-resting);
|
||||
padding: var(--ha-space-2) var(--ha-space-3);
|
||||
padding: var(--ha-space-1) var(--ha-space-2);
|
||||
font-weight: var(--ha-font-weight-bold);
|
||||
color: var(--secondary-text-color);
|
||||
min-height: var(--ha-space-6);
|
||||
|
||||
@@ -38,6 +38,13 @@ export class HaChooseSelector extends LitElement {
|
||||
) {
|
||||
this._setActiveChoice();
|
||||
}
|
||||
if (
|
||||
changedProperties.has("value") &&
|
||||
changedProperties.get("value")?.active_choice &&
|
||||
changedProperties.get("value")?.active_choice !== this._activeChoice
|
||||
) {
|
||||
this._setActiveChoice();
|
||||
}
|
||||
}
|
||||
|
||||
protected render() {
|
||||
|
||||
@@ -57,6 +57,7 @@ export class HaSlider extends Slider {
|
||||
#thumb {
|
||||
border: none;
|
||||
background-color: var(--ha-slider-thumb-color, var(--primary-color));
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
#thumb:after {
|
||||
|
||||
@@ -271,7 +271,6 @@ export class HaWaDialog extends ScrollableFadeMixin(LitElement) {
|
||||
}
|
||||
|
||||
wa-dialog::part(dialog) {
|
||||
color: var(--primary-text-color);
|
||||
min-width: var(--width, var(--full-width));
|
||||
max-width: var(--width, var(--full-width));
|
||||
max-height: var(
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
import type { ActionDetail } from "@material/mwc-list";
|
||||
import {
|
||||
mdiAlphaABoxOutline,
|
||||
mdiArrowLeft,
|
||||
mdiClose,
|
||||
mdiDotsVertical,
|
||||
mdiGrid,
|
||||
@@ -24,6 +23,7 @@ import type { HomeAssistant } from "../../types";
|
||||
import "../ha-dialog";
|
||||
import "../ha-dialog-header";
|
||||
import "../ha-list-item";
|
||||
import "../ha-icon-button-arrow-prev";
|
||||
import "./ha-media-manage-button";
|
||||
import "./ha-media-player-browse";
|
||||
import type {
|
||||
@@ -88,11 +88,10 @@ class DialogMediaPlayerBrowse extends LitElement {
|
||||
<ha-dialog-header show-border slot="heading">
|
||||
${this._navigateIds.length > (this._params.minimumNavigateLevel ?? 1)
|
||||
? html`
|
||||
<ha-icon-button
|
||||
<ha-icon-button-arrow-prev
|
||||
slot="navigationIcon"
|
||||
.path=${mdiArrowLeft}
|
||||
@click=${this._goBack}
|
||||
></ha-icon-button>
|
||||
></ha-icon-button-arrow-prev>
|
||||
`
|
||||
: nothing}
|
||||
<span slot="title">
|
||||
|
||||
@@ -449,9 +449,16 @@ const getEnergyData = async (
|
||||
const allStatIDs = [...energyStatIds, ...waterStatIds, ...powerStatIds];
|
||||
|
||||
const dayDifference = differenceInDays(end || new Date(), start);
|
||||
|
||||
const period = getSuggestedPeriod(start, end);
|
||||
const finePeriod = getSuggestedPeriod(start, end, true);
|
||||
const period =
|
||||
isFirstDayOfMonth(start) &&
|
||||
(!end || isLastDayOfMonth(end)) &&
|
||||
dayDifference > 35
|
||||
? "month"
|
||||
: dayDifference > 2
|
||||
? "day"
|
||||
: "hour";
|
||||
const finePeriod =
|
||||
dayDifference > 64 ? "day" : dayDifference > 8 ? "hour" : "5minute";
|
||||
|
||||
const statsMetadata: Record<string, StatisticsMetaData> = {};
|
||||
const statsMetadataArray = allStatIDs.length
|
||||
@@ -582,7 +589,7 @@ const getEnergyData = async (
|
||||
consumptionStatIDs,
|
||||
co2SignalEntity,
|
||||
end,
|
||||
period
|
||||
dayDifference > 35 ? "month" : dayDifference > 2 ? "day" : "hour"
|
||||
);
|
||||
if (compare) {
|
||||
_fossilEnergyConsumptionCompare = getFossilEnergyConsumption(
|
||||
@@ -591,7 +598,7 @@ const getEnergyData = async (
|
||||
consumptionStatIDs,
|
||||
co2SignalEntity,
|
||||
endCompare,
|
||||
period
|
||||
dayDifference > 35 ? "month" : dayDifference > 2 ? "day" : "hour"
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -1420,22 +1427,3 @@ export const formatPowerShort = (
|
||||
units[unitIndex]
|
||||
);
|
||||
};
|
||||
|
||||
export function getSuggestedPeriod(
|
||||
start: Date,
|
||||
end?: Date,
|
||||
fine = false
|
||||
): "5minute" | "hour" | "day" | "month" {
|
||||
const dayDifference = differenceInDays(end || new Date(), start);
|
||||
|
||||
if (fine) {
|
||||
return dayDifference > 64 ? "day" : dayDifference > 8 ? "hour" : "5minute";
|
||||
}
|
||||
return isFirstDayOfMonth(start) &&
|
||||
(!end || isLastDayOfMonth(end)) &&
|
||||
dayDifference > 35
|
||||
? "month"
|
||||
: dayDifference > 2
|
||||
? "day"
|
||||
: "hour";
|
||||
}
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
import type { HomeAssistant } from "../types";
|
||||
import type { EntityRegistryEntry } from "./entity/entity_registry";
|
||||
import { entityRegistryByEntityId } from "./entity/entity_registry";
|
||||
|
||||
export const voiceAssistants = {
|
||||
conversation: { domain: "assist_pipeline", name: "Assist" },
|
||||
@@ -54,13 +52,3 @@ export const listExposedEntities = (hass: HomeAssistant) =>
|
||||
hass.callWS<{ exposed_entities: Record<string, ExposeEntitySettings> }>({
|
||||
type: "homeassistant/expose_entity/list",
|
||||
});
|
||||
|
||||
export const getEntityVoiceAssistantsKeys = (
|
||||
entityRegistry: EntityRegistryEntry[],
|
||||
entityId: string
|
||||
) => {
|
||||
const entity = entityRegistryByEntityId(entityRegistry)[entityId];
|
||||
return Object.keys(voiceAssistants).filter(
|
||||
(vaKey) => entity?.options?.[vaKey]?.should_expose
|
||||
);
|
||||
};
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import { mdiAppleKeyboardCommand } from "@mdi/js";
|
||||
import { css, html, LitElement, nothing } from "lit";
|
||||
import { customElement, property, state } from "lit/decorators";
|
||||
import { fireEvent } from "../../common/dom/fire_event";
|
||||
@@ -153,10 +154,6 @@ const _SHORTCUTS: Section[] = [
|
||||
shortcut: ["M"],
|
||||
descriptionTranslationKey: "ui.dialogs.shortcuts.other.my_link",
|
||||
},
|
||||
{
|
||||
shortcut: ["Shift", "/"],
|
||||
descriptionTranslationKey: "ui.dialogs.shortcuts.other.show_shortcuts",
|
||||
},
|
||||
],
|
||||
},
|
||||
];
|
||||
@@ -187,7 +184,9 @@ class DialogShortcuts extends LitElement {
|
||||
html`<span
|
||||
>${shortcutKey === CTRL_CMD
|
||||
? isMac
|
||||
? "⌘"
|
||||
? html`<ha-svg-icon
|
||||
.path=${mdiAppleKeyboardCommand}
|
||||
></ha-svg-icon>`
|
||||
: this.hass.localize("ui.panel.config.automation.editor.ctrl")
|
||||
: typeof shortcutKey === "string"
|
||||
? shortcutKey
|
||||
|
||||
@@ -28,7 +28,6 @@ window.loadES5Adapter = () => {
|
||||
};
|
||||
|
||||
let panelEl: HTMLElement | undefined;
|
||||
let initialized = false;
|
||||
|
||||
function setProperties(properties) {
|
||||
if (!panelEl) {
|
||||
@@ -129,23 +128,13 @@ function initialize(
|
||||
});
|
||||
}
|
||||
|
||||
function handleReady() {
|
||||
if (initialized) return;
|
||||
initialized = true;
|
||||
window.parent.customPanel!.registerIframe(initialize, setProperties);
|
||||
}
|
||||
document.addEventListener(
|
||||
"DOMContentLoaded",
|
||||
() => window.parent.customPanel!.registerIframe(initialize, setProperties),
|
||||
{ once: true }
|
||||
);
|
||||
|
||||
// Initial load
|
||||
if (document.readyState === "loading") {
|
||||
document.addEventListener("DOMContentLoaded", handleReady, { once: true });
|
||||
} else {
|
||||
handleReady();
|
||||
}
|
||||
|
||||
window.addEventListener("pageshow", handleReady);
|
||||
|
||||
window.addEventListener("pagehide", () => {
|
||||
initialized = false;
|
||||
window.addEventListener("unload", () => {
|
||||
// allow disconnected callback to fire
|
||||
while (document.body.lastChild) {
|
||||
document.body.removeChild(document.body.lastChild);
|
||||
|
||||
@@ -2062,7 +2062,6 @@ class DialogAddAutomationElement
|
||||
|
||||
.content.column {
|
||||
flex-direction: column;
|
||||
gap: var(--ha-space-3);
|
||||
}
|
||||
|
||||
ha-md-list {
|
||||
|
||||
@@ -285,8 +285,6 @@ export class HaAutomationAddItems extends LitElement {
|
||||
border-radius: var(--ha-border-radius-md);
|
||||
background: var(--ha-color-fill-neutral-normal-resting);
|
||||
padding: 0 var(--ha-space-2) 0 var(--ha-space-1);
|
||||
border: var(--ha-border-width-sm) solid
|
||||
var(--ha-color-border-neutral-quiet);
|
||||
color: var(--ha-color-on-neutral-normal);
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
@@ -115,8 +115,6 @@ import { showCategoryRegistryDetailDialog } from "../category/show-dialog-catego
|
||||
import { configSections } from "../ha-panel-config";
|
||||
import { showLabelDetailDialog } from "../labels/show-dialog-label-detail";
|
||||
import { showNewAutomationDialog } from "./show-dialog-new-automation";
|
||||
import { getEntityVoiceAssistantsKeys } from "../../../data/expose";
|
||||
import "../voice-assistants/expose/expose-assistant-icon";
|
||||
|
||||
type AutomationItem = AutomationEntity & {
|
||||
name: string;
|
||||
@@ -378,31 +376,6 @@ class HaAutomationPicker extends SubscribeMixin(LitElement) {
|
||||
></ha-icon-button>
|
||||
`,
|
||||
},
|
||||
voice_assistants: {
|
||||
title: localize(
|
||||
"ui.panel.config.automation.picker.headers.voice_assistants"
|
||||
),
|
||||
type: "icon",
|
||||
defaultHidden: true,
|
||||
minWidth: "100px",
|
||||
maxWidth: "100px",
|
||||
template: (automation) => {
|
||||
const exposedToVoiceAssistantKeys = getEntityVoiceAssistantsKeys(
|
||||
this._entityReg,
|
||||
automation.entity_id
|
||||
);
|
||||
return html` ${exposedToVoiceAssistantKeys.length !== 0
|
||||
? exposedToVoiceAssistantKeys.map(
|
||||
(vaKey) =>
|
||||
html` <voice-assistants-expose-assistant-icon
|
||||
.assistant=${vaKey}
|
||||
.hass=${this.hass}
|
||||
>
|
||||
</voice-assistants-expose-assistant-icon>`
|
||||
)
|
||||
: "—"}`;
|
||||
},
|
||||
},
|
||||
};
|
||||
return columns;
|
||||
}
|
||||
|
||||
@@ -223,8 +223,6 @@ export class HaAutomationRowTargets extends LitElement {
|
||||
background: var(--ha-color-fill-neutral-normal-resting);
|
||||
padding: 0 var(--ha-space-2) 0 var(--ha-space-1);
|
||||
color: var(--ha-color-on-neutral-normal);
|
||||
border: var(--ha-border-width-sm) solid
|
||||
var(--ha-color-border-neutral-quiet);
|
||||
overflow: hidden;
|
||||
height: 32px;
|
||||
}
|
||||
|
||||
@@ -5,9 +5,8 @@ import { fireEvent } from "../../../../common/dom/fire_event";
|
||||
import { computeDeviceNameDisplay } from "../../../../common/entity/compute_device_name";
|
||||
import "../../../../components/ha-alert";
|
||||
import "../../../../components/ha-area-picker";
|
||||
import "../../../../components/ha-wa-dialog";
|
||||
import "../../../../components/ha-dialog-footer";
|
||||
import "../../../../components/ha-button";
|
||||
import "../../../../components/ha-dialog";
|
||||
import "../../../../components/ha-labels-picker";
|
||||
import type { HaSwitch } from "../../../../components/ha-switch";
|
||||
import "../../../../components/ha-textfield";
|
||||
@@ -20,8 +19,6 @@ import type { DeviceRegistryDetailDialogParams } from "./show-dialog-device-regi
|
||||
class DialogDeviceRegistryDetail extends LitElement {
|
||||
@property({ attribute: false }) public hass!: HomeAssistant;
|
||||
|
||||
@state() private _open = false;
|
||||
|
||||
@state() private _nameByUser!: string;
|
||||
|
||||
@state() private _error?: string;
|
||||
@@ -45,15 +42,10 @@ class DialogDeviceRegistryDetail extends LitElement {
|
||||
this._areaId = this._params.device.area_id || "";
|
||||
this._labels = this._params.device.labels || [];
|
||||
this._disabledBy = this._params.device.disabled_by;
|
||||
this._open = true;
|
||||
await this.updateComplete;
|
||||
}
|
||||
|
||||
public closeDialog(): void {
|
||||
this._open = false;
|
||||
}
|
||||
|
||||
private _dialogClosed(): void {
|
||||
this._error = "";
|
||||
this._params = undefined;
|
||||
fireEvent(this, "dialog-closed", { dialog: this.localName });
|
||||
@@ -65,12 +57,10 @@ class DialogDeviceRegistryDetail extends LitElement {
|
||||
}
|
||||
const device = this._params.device;
|
||||
return html`
|
||||
<ha-wa-dialog
|
||||
.hass=${this.hass}
|
||||
.open=${this._open}
|
||||
header-title=${computeDeviceNameDisplay(device, this.hass)}
|
||||
prevent-scrim-close
|
||||
@closed=${this._dialogClosed}
|
||||
<ha-dialog
|
||||
open
|
||||
@closed=${this.closeDialog}
|
||||
.heading=${computeDeviceNameDisplay(device, this.hass)}
|
||||
>
|
||||
<div>
|
||||
${this._error
|
||||
@@ -78,7 +68,6 @@ class DialogDeviceRegistryDetail extends LitElement {
|
||||
: ""}
|
||||
<div class="form">
|
||||
<ha-textfield
|
||||
autofocus
|
||||
.value=${this._nameByUser}
|
||||
@input=${this._nameChanged}
|
||||
.label=${this.hass.localize(
|
||||
@@ -86,6 +75,7 @@ class DialogDeviceRegistryDetail extends LitElement {
|
||||
)}
|
||||
.placeholder=${device.name || ""}
|
||||
.disabled=${this._submitting}
|
||||
dialogInitialFocus
|
||||
></ha-textfield>
|
||||
<ha-area-picker
|
||||
.hass=${this.hass}
|
||||
@@ -141,25 +131,22 @@ class DialogDeviceRegistryDetail extends LitElement {
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<ha-dialog-footer slot="footer">
|
||||
<ha-button
|
||||
slot="secondaryAction"
|
||||
@click=${this.closeDialog}
|
||||
.disabled=${this._submitting}
|
||||
appearance="plain"
|
||||
>
|
||||
${this.hass.localize("ui.common.cancel")}
|
||||
</ha-button>
|
||||
<ha-button
|
||||
slot="primaryAction"
|
||||
@click=${this._updateEntry}
|
||||
.disabled=${this._submitting}
|
||||
>
|
||||
${this.hass.localize("ui.dialogs.device-registry-detail.update")}
|
||||
</ha-button>
|
||||
</ha-dialog-footer>
|
||||
</ha-wa-dialog>
|
||||
<ha-button
|
||||
slot="secondaryAction"
|
||||
@click=${this.closeDialog}
|
||||
.disabled=${this._submitting}
|
||||
appearance="plain"
|
||||
>
|
||||
${this.hass.localize("ui.common.cancel")}
|
||||
</ha-button>
|
||||
<ha-button
|
||||
slot="primaryAction"
|
||||
@click=${this._updateEntry}
|
||||
.disabled=${this._submitting}
|
||||
>
|
||||
${this.hass.localize("ui.dialogs.device-registry-detail.update")}
|
||||
</ha-button>
|
||||
</ha-dialog>
|
||||
`;
|
||||
}
|
||||
|
||||
|
||||
@@ -115,8 +115,6 @@ import { isHelperDomain } from "../helpers/const";
|
||||
import "../integrations/ha-integration-overflow-menu";
|
||||
import { showAddIntegrationDialog } from "../integrations/show-add-integration-dialog";
|
||||
import { showLabelDetailDialog } from "../labels/show-dialog-label-detail";
|
||||
import { getEntityVoiceAssistantsKeys } from "../../../data/expose";
|
||||
import "../voice-assistants/expose/expose-assistant-icon";
|
||||
|
||||
export interface StateEntity extends Omit<
|
||||
EntityRegistryEntry,
|
||||
@@ -495,31 +493,6 @@ export class HaConfigEntities extends SubscribeMixin(LitElement) {
|
||||
template: (entry) =>
|
||||
entry.label_entries.map((lbl) => lbl.name).join(" "),
|
||||
},
|
||||
voice_assistants: {
|
||||
title: localize(
|
||||
"ui.panel.config.entities.picker.headers.voice_assistants"
|
||||
),
|
||||
type: "icon",
|
||||
defaultHidden: true,
|
||||
minWidth: "100px",
|
||||
maxWidth: "100px",
|
||||
template: (entry) => {
|
||||
const exposedToVoiceAssistantKeys = getEntityVoiceAssistantsKeys(
|
||||
this._entities,
|
||||
entry.entity_id
|
||||
);
|
||||
return html` ${exposedToVoiceAssistantKeys.length !== 0
|
||||
? exposedToVoiceAssistantKeys.map(
|
||||
(vaKey) =>
|
||||
html` <voice-assistants-expose-assistant-icon
|
||||
.assistant=${vaKey}
|
||||
.hass=${this.hass}
|
||||
>
|
||||
</voice-assistants-expose-assistant-icon>`
|
||||
)
|
||||
: "—"}`;
|
||||
},
|
||||
},
|
||||
})
|
||||
);
|
||||
|
||||
|
||||
@@ -122,8 +122,6 @@ import "../integrations/ha-integration-overflow-menu";
|
||||
import { showLabelDetailDialog } from "../labels/show-dialog-label-detail";
|
||||
import { isHelperDomain, type HelperDomain } from "./const";
|
||||
import { showHelperDetailDialog } from "./show-dialog-helper-detail";
|
||||
import { getEntityVoiceAssistantsKeys } from "../../../data/expose";
|
||||
import "../voice-assistants/expose/expose-assistant-icon";
|
||||
|
||||
interface HelperItem {
|
||||
id: string;
|
||||
@@ -482,32 +480,6 @@ export class HaConfigHelpers extends SubscribeMixin(LitElement) {
|
||||
</ha-icon-overflow-menu>
|
||||
`,
|
||||
},
|
||||
voice_assistants: {
|
||||
title: localize(
|
||||
"ui.panel.config.helpers.picker.headers.voice_assistants"
|
||||
),
|
||||
type: "icon",
|
||||
defaultHidden: true,
|
||||
minWidth: "100px",
|
||||
maxWidth: "100px",
|
||||
template: (helper) => {
|
||||
const exposedToVoiceAssistantKeys = getEntityVoiceAssistantsKeys(
|
||||
this._entityReg,
|
||||
helper.entity_id
|
||||
);
|
||||
return html` ${exposedToVoiceAssistantKeys.length !== 0
|
||||
? exposedToVoiceAssistantKeys.map(
|
||||
(vaKey) => html`
|
||||
<voice-assistants-expose-assistant-icon
|
||||
.assistant=${vaKey}
|
||||
.hass=${this.hass}
|
||||
>
|
||||
</voice-assistants-expose-assistant-icon>
|
||||
`
|
||||
)
|
||||
: "—"}`;
|
||||
},
|
||||
},
|
||||
})
|
||||
);
|
||||
|
||||
|
||||
@@ -372,7 +372,7 @@ export class HaConfigLogs extends LitElement {
|
||||
|
||||
@media all and (max-width: 870px) {
|
||||
ha-generic-picker {
|
||||
max-width: 50%;
|
||||
max-width: max(30%, 160px);
|
||||
}
|
||||
ha-button {
|
||||
max-width: 100%;
|
||||
|
||||
@@ -107,8 +107,6 @@ import { showAssignCategoryDialog } from "../category/show-dialog-assign-categor
|
||||
import { showCategoryRegistryDetailDialog } from "../category/show-dialog-category-registry-detail";
|
||||
import { configSections } from "../ha-panel-config";
|
||||
import { showLabelDetailDialog } from "../labels/show-dialog-label-detail";
|
||||
import { getEntityVoiceAssistantsKeys } from "../../../data/expose";
|
||||
import "../voice-assistants/expose/expose-assistant-icon";
|
||||
|
||||
type SceneItem = SceneEntity & {
|
||||
name: string;
|
||||
@@ -412,31 +410,6 @@ class HaSceneDashboard extends SubscribeMixin(LitElement) {
|
||||
</ha-icon-overflow-menu>
|
||||
`,
|
||||
},
|
||||
voice_assistants: {
|
||||
title: localize(
|
||||
"ui.panel.config.scene.picker.headers.voice_assistants"
|
||||
),
|
||||
type: "icon",
|
||||
defaultHidden: true,
|
||||
minWidth: "100px",
|
||||
maxWidth: "100px",
|
||||
template: (scene) => {
|
||||
const exposedToVoiceAssistantKeys = getEntityVoiceAssistantsKeys(
|
||||
this._entityReg,
|
||||
scene.entity_id
|
||||
);
|
||||
return html` ${exposedToVoiceAssistantKeys.length !== 0
|
||||
? exposedToVoiceAssistantKeys.map(
|
||||
(vaKey) =>
|
||||
html` <voice-assistants-expose-assistant-icon
|
||||
.assistant=${vaKey}
|
||||
.hass=${this.hass}
|
||||
>
|
||||
</voice-assistants-expose-assistant-icon>`
|
||||
)
|
||||
: "—"}`;
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
return columns;
|
||||
|
||||
@@ -111,8 +111,6 @@ import { showAssignCategoryDialog } from "../category/show-dialog-assign-categor
|
||||
import { showCategoryRegistryDetailDialog } from "../category/show-dialog-category-registry-detail";
|
||||
import { configSections } from "../ha-panel-config";
|
||||
import { showLabelDetailDialog } from "../labels/show-dialog-label-detail";
|
||||
import { getEntityVoiceAssistantsKeys } from "../../../data/expose";
|
||||
import "../voice-assistants/expose/expose-assistant-icon";
|
||||
|
||||
type ScriptItem = ScriptEntity & {
|
||||
name: string;
|
||||
@@ -400,32 +398,8 @@ class HaScriptPicker extends SubscribeMixin(LitElement) {
|
||||
</ha-icon-overflow-menu>
|
||||
`,
|
||||
},
|
||||
voice_assistants: {
|
||||
title: localize(
|
||||
"ui.panel.config.script.picker.headers.voice_assistants"
|
||||
),
|
||||
type: "icon",
|
||||
defaultHidden: true,
|
||||
minWidth: "100px",
|
||||
maxWidth: "100px",
|
||||
template: (script) => {
|
||||
const exposedToVoiceAssistantKeys = getEntityVoiceAssistantsKeys(
|
||||
this._entityReg,
|
||||
script.entity_id
|
||||
);
|
||||
return html` ${exposedToVoiceAssistantKeys.length !== 0
|
||||
? exposedToVoiceAssistantKeys.map(
|
||||
(vaKey) =>
|
||||
html` <voice-assistants-expose-assistant-icon
|
||||
.assistant=${vaKey}
|
||||
.hass=${this.hass}
|
||||
>
|
||||
</voice-assistants-expose-assistant-icon>`
|
||||
)
|
||||
: "—"}`;
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
return columns;
|
||||
}
|
||||
);
|
||||
|
||||
@@ -23,6 +23,7 @@ export class VoiceAssistantExposeAssistantIcon extends LitElement {
|
||||
|
||||
render() {
|
||||
if (!this.assistant || !voiceAssistants[this.assistant]) return nothing;
|
||||
|
||||
return html`
|
||||
<div class="container" id="container">
|
||||
<img
|
||||
|
||||
@@ -3,5 +3,5 @@ export const filterModes = <T extends string = string>(
|
||||
selectedModes: T[] | undefined
|
||||
): T[] =>
|
||||
selectedModes
|
||||
? (supportedModes || []).filter((mode) => selectedModes.includes(mode))
|
||||
? selectedModes.filter((mode) => (supportedModes || []).includes(mode))
|
||||
: supportedModes || [];
|
||||
|
||||
@@ -31,7 +31,6 @@ import { formatTime } from "../../../../../common/datetime/format_time";
|
||||
import type { ECOption } from "../../../../../resources/echarts/echarts";
|
||||
import { filterXSS } from "../../../../../common/util/xss";
|
||||
import type { StatisticPeriod } from "../../../../../data/recorder";
|
||||
import { getSuggestedPeriod } from "../../../../../data/energy";
|
||||
|
||||
export function getSuggestedMax(period: StatisticPeriod, end: Date): number {
|
||||
let suggestedMax = new Date(end);
|
||||
@@ -57,6 +56,10 @@ export function getSuggestedMax(period: StatisticPeriod, end: Date): number {
|
||||
return suggestedMax.getTime();
|
||||
}
|
||||
|
||||
export function getSuggestedPeriod(dayDifference: number): StatisticPeriod {
|
||||
return dayDifference > 35 ? "month" : dayDifference > 2 ? "day" : "hour";
|
||||
}
|
||||
|
||||
function createYAxisLabelFormatter(locale: FrontendLocaleData) {
|
||||
let previousValue: number | undefined;
|
||||
|
||||
@@ -92,7 +95,7 @@ export function getCommonOptions(
|
||||
type: "time",
|
||||
min: start,
|
||||
max: getSuggestedMax(
|
||||
getSuggestedPeriod(start, end, detailedDailyData),
|
||||
detailedDailyData ? "5minute" : getSuggestedPeriod(dayDifference),
|
||||
end
|
||||
),
|
||||
},
|
||||
|
||||
@@ -186,7 +186,7 @@ export class HuiEnergyDevicesGraphCard
|
||||
params.value[0] as number,
|
||||
this.hass.locale,
|
||||
params.value < 0.1 ? { maximumFractionDigits: 3 } : undefined
|
||||
)} kWh ${params.percent ? `(${params.percent} %)` : ""}`;
|
||||
)} kWh`;
|
||||
return `${title}${params.marker} ${params.seriesName}: <div style="direction:ltr; display: inline;">${value}</div>`;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { endOfToday, isToday, startOfToday } from "date-fns";
|
||||
import { differenceInDays, endOfToday, isToday, startOfToday } from "date-fns";
|
||||
import type { HassConfig, UnsubscribeFunc } from "home-assistant-js-websocket";
|
||||
import type { PropertyValues } from "lit";
|
||||
import { css, html, LitElement, nothing } from "lit";
|
||||
@@ -18,7 +18,6 @@ import type {
|
||||
import {
|
||||
getEnergyDataCollection,
|
||||
getEnergySolarForecasts,
|
||||
getSuggestedPeriod,
|
||||
} from "../../../../data/energy";
|
||||
import type { Statistics, StatisticsMetaData } from "../../../../data/recorder";
|
||||
import { getStatisticLabel } from "../../../../data/recorder";
|
||||
@@ -355,7 +354,7 @@ export class HuiEnergySolarGraphCard
|
||||
) {
|
||||
const data: LineSeriesOption[] = [];
|
||||
|
||||
const period = getSuggestedPeriod(start, end);
|
||||
const dayDifference = differenceInDays(end || new Date(), start);
|
||||
|
||||
// Process solar forecast data.
|
||||
solarSources.forEach((source) => {
|
||||
@@ -371,10 +370,10 @@ export class HuiEnergySolarGraphCard
|
||||
if (dateObj < start || (end && dateObj > end)) {
|
||||
return;
|
||||
}
|
||||
if (period === "month") {
|
||||
if (dayDifference > 35) {
|
||||
dateObj.setDate(1);
|
||||
}
|
||||
if (period === "month" || period === "day") {
|
||||
if (dayDifference > 2) {
|
||||
dateObj.setHours(0, 0, 0, 0);
|
||||
} else {
|
||||
dateObj.setMinutes(0, 0, 0);
|
||||
|
||||
@@ -8,10 +8,7 @@ import { createSearchParam } from "../../../common/url/search-params";
|
||||
import "../../../components/ha-card";
|
||||
import "../../../components/ha-icon-next";
|
||||
import "../../../components/ha-tooltip";
|
||||
import {
|
||||
getEnergyDataCollection,
|
||||
getSuggestedPeriod,
|
||||
} from "../../../data/energy";
|
||||
import { getEnergyDataCollection } from "../../../data/energy";
|
||||
import type {
|
||||
Statistics,
|
||||
StatisticsMetaData,
|
||||
@@ -29,7 +26,10 @@ import { hasConfigOrEntitiesChanged } from "../common/has-changed";
|
||||
import { processConfigEntities } from "../common/process-config-entities";
|
||||
import type { EntityConfig } from "../entity-rows/types";
|
||||
import type { LovelaceCard, LovelaceGridOptions } from "../types";
|
||||
import { getSuggestedMax } from "./energy/common/energy-chart-options";
|
||||
import {
|
||||
getSuggestedMax,
|
||||
getSuggestedPeriod,
|
||||
} from "./energy/common/energy-chart-options";
|
||||
import type { StatisticsGraphCardConfig } from "./types";
|
||||
|
||||
export const DEFAULT_DAYS_TO_SHOW = 30;
|
||||
@@ -268,7 +268,9 @@ export class HuiStatisticsGraphCard extends LitElement implements LovelaceCard {
|
||||
return (
|
||||
this._config?.period ??
|
||||
(this._energyStart && this._energyEnd
|
||||
? getSuggestedPeriod(this._energyStart, this._energyEnd)
|
||||
? getSuggestedPeriod(
|
||||
differenceInDays(this._energyEnd, this._energyStart)
|
||||
)
|
||||
: undefined)
|
||||
);
|
||||
}
|
||||
|
||||
@@ -7,6 +7,11 @@ const calcPoints = (
|
||||
height: number,
|
||||
limits?: { minX?: number; maxX?: number; minY?: number; maxY?: number }
|
||||
) => {
|
||||
// handling empty history (for example unavailable for long time)
|
||||
if (history.length === 0) {
|
||||
return { points: [], yAxisOrigin: height };
|
||||
}
|
||||
|
||||
let yAxisOrigin = height;
|
||||
let minY = limits?.minY ?? history[0][1];
|
||||
let maxY = limits?.maxY ?? history[0][1];
|
||||
|
||||
@@ -28,16 +28,11 @@ import type { HomeAssistant, ValueChangedEvent } from "../../../../types";
|
||||
import { DEFAULT_HOURS_TO_SHOW, DEFAULT_ZOOM } from "../../cards/hui-map-card";
|
||||
import type { MapCardConfig, MapEntityConfig } from "../../cards/types";
|
||||
import "../../components/hui-entity-editor";
|
||||
import "../hui-sub-element-editor";
|
||||
import type {
|
||||
EditDetailElementEvent,
|
||||
SubElementEditorConfig,
|
||||
EntitiesEditorEvent,
|
||||
} from "../types";
|
||||
import type { HASSDomEvent } from "../../../../common/dom/fire_event";
|
||||
import type { EntityConfig } from "../../entity-rows/types";
|
||||
import type { LovelaceCardEditor } from "../../types";
|
||||
import { processEditorEntities } from "../process-editor-entities";
|
||||
import { baseLovelaceCardConfig } from "../structs/base-card-struct";
|
||||
import type { EntitiesEditorEvent } from "../types";
|
||||
import { configElementStyle } from "./config-elements-style";
|
||||
|
||||
export const mapEntitiesConfigStruct = union([
|
||||
@@ -81,20 +76,13 @@ const cardConfigStruct = assign(
|
||||
|
||||
const themeModes = ["auto", "light", "dark"] as const;
|
||||
|
||||
const SUB_SCHEMA = [
|
||||
{ name: "entity", selector: { entity: {} }, required: true },
|
||||
{ name: "name", selector: { text: {} } },
|
||||
] as const;
|
||||
|
||||
@customElement("hui-map-card-editor")
|
||||
export class HuiMapCardEditor extends LitElement implements LovelaceCardEditor {
|
||||
@property({ attribute: false }) public hass?: HomeAssistant;
|
||||
|
||||
@state() private _config?: MapCardConfig;
|
||||
|
||||
@state() private _subElementEditorConfig?: SubElementEditorConfig;
|
||||
|
||||
@state() private _configEntities?: MapEntityConfig[];
|
||||
@state() private _configEntities?: EntityConfig[];
|
||||
|
||||
@state() private _possibleGeoSources?: { value: string; label?: string }[];
|
||||
|
||||
@@ -162,7 +150,7 @@ export class HuiMapCardEditor extends LitElement implements LovelaceCardEditor {
|
||||
|
||||
this._config = config;
|
||||
this._configEntities = config.entities
|
||||
? (processEditorEntities(config.entities) as MapEntityConfig[])
|
||||
? processEditorEntities(config.entities)
|
||||
: [];
|
||||
}
|
||||
|
||||
@@ -179,19 +167,6 @@ export class HuiMapCardEditor extends LitElement implements LovelaceCardEditor {
|
||||
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>
|
||||
`;
|
||||
}
|
||||
|
||||
return html`
|
||||
<ha-form
|
||||
.hass=${this.hass}
|
||||
@@ -205,9 +180,7 @@ export class HuiMapCardEditor extends LitElement implements LovelaceCardEditor {
|
||||
.hass=${this.hass}
|
||||
.entities=${this._configEntities}
|
||||
.entityFilter=${hasLocation}
|
||||
can-edit
|
||||
@entities-changed=${this._entitiesValueChanged}
|
||||
@edit-detail-element=${this._editDetailElement}
|
||||
></hui-entity-editor>
|
||||
|
||||
<h3>
|
||||
@@ -230,36 +203,6 @@ export class HuiMapCardEditor extends LitElement implements LovelaceCardEditor {
|
||||
`;
|
||||
}
|
||||
|
||||
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 MapEntityConfig;
|
||||
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 as any[]
|
||||
) as MapEntityConfig[];
|
||||
|
||||
fireEvent(this, "config-changed", { config });
|
||||
}
|
||||
|
||||
private _selectSchema = memoizeOne(
|
||||
(options, localize: LocalizeFunc): SelectSelector => ({
|
||||
select: {
|
||||
@@ -286,9 +229,7 @@ export class HuiMapCardEditor extends LitElement implements LovelaceCardEditor {
|
||||
if (ev.detail && ev.detail.entities) {
|
||||
this._config = { ...this._config!, entities: ev.detail.entities };
|
||||
|
||||
this._configEntities = processEditorEntities(
|
||||
this._config.entities || []
|
||||
) as MapEntityConfig[];
|
||||
this._configEntities = processEditorEntities(this._config.entities || []);
|
||||
fireEvent(this, "config-changed", { config: this._config! });
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
import type { ActionDetail } from "@material/mwc-list";
|
||||
import {
|
||||
mdiAlphaABoxOutline,
|
||||
mdiArrowLeft,
|
||||
mdiDotsVertical,
|
||||
mdiGrid,
|
||||
mdiListBoxOutline,
|
||||
@@ -97,7 +96,6 @@ class PanelMediaBrowser extends LitElement {
|
||||
? html`
|
||||
<ha-icon-button-arrow-prev
|
||||
slot="navigationIcon"
|
||||
.path=${mdiArrowLeft}
|
||||
@click=${this._goBack}
|
||||
></ha-icon-button-arrow-prev>
|
||||
`
|
||||
|
||||
@@ -137,9 +137,9 @@
|
||||
},
|
||||
"counter": {
|
||||
"actions": {
|
||||
"increment": "Increment",
|
||||
"decrement": "Decrement",
|
||||
"reset": "Reset"
|
||||
"increment": "increment",
|
||||
"decrement": "decrement",
|
||||
"reset": "reset"
|
||||
}
|
||||
},
|
||||
"cover": {
|
||||
@@ -2172,8 +2172,7 @@
|
||||
},
|
||||
"other": {
|
||||
"title": "Other",
|
||||
"my_link": "get My Home Assistant link",
|
||||
"show_shortcuts": "show keyboard shortcuts"
|
||||
"my_link": "get My Home Assistant link"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -3340,8 +3339,7 @@
|
||||
"type": "Type",
|
||||
"editable": "Editable",
|
||||
"category": "Category",
|
||||
"area": "Area",
|
||||
"voice_assistants": "Voice assistants"
|
||||
"area": "Area"
|
||||
},
|
||||
"create_helper": "Create helper",
|
||||
"no_helpers": "Looks like you don't have any helpers yet!",
|
||||
@@ -3982,8 +3980,7 @@
|
||||
"state": "State",
|
||||
"category": "Category",
|
||||
"area": "Area",
|
||||
"icon": "Icon",
|
||||
"voice_assistants": "Voice assistants"
|
||||
"icon": "Icon"
|
||||
},
|
||||
"bulk_action": "Action",
|
||||
"bulk_actions": {
|
||||
@@ -5000,8 +4997,7 @@
|
||||
"state": "State",
|
||||
"category": "Category",
|
||||
"area": "Area",
|
||||
"icon": "Icon",
|
||||
"voice_assistants": "Voice assistants"
|
||||
"icon": "Icon"
|
||||
},
|
||||
"edit_category": "[%key:ui::panel::config::automation::picker::edit_category%]",
|
||||
"assign_category": "[%key:ui::panel::config::automation::picker::assign_category%]",
|
||||
@@ -5129,8 +5125,7 @@
|
||||
"category": "Category",
|
||||
"editable": "[%key:ui::panel::config::helpers::picker::headers::editable%]",
|
||||
"area": "Area",
|
||||
"icon": "Icon",
|
||||
"voice_assistants": "Voice assistants"
|
||||
"icon": "Icon"
|
||||
},
|
||||
"edit_category": "[%key:ui::panel::config::automation::picker::edit_category%]",
|
||||
"assign_category": "[%key:ui::panel::config::automation::picker::assign_category%]",
|
||||
@@ -5583,8 +5578,7 @@
|
||||
"domain": "Domain",
|
||||
"availability": "Availability",
|
||||
"visibility": "Visibility",
|
||||
"enabled": "Enabled",
|
||||
"voice_assistants": "Voice assistants"
|
||||
"enabled": "Enabled"
|
||||
},
|
||||
"selected": "{number} selected",
|
||||
"enable_selected": {
|
||||
@@ -7354,7 +7348,7 @@
|
||||
"energy_usage_graph": {
|
||||
"total_consumed": "Total consumed {num} kWh",
|
||||
"total_returned": "Total returned {num} kWh",
|
||||
"total_usage": "+{num} kWh",
|
||||
"total_usage": "{num} kWh used",
|
||||
"combined_from_grid": "Combined from grid",
|
||||
"consumed_solar": "Consumed solar",
|
||||
"consumed_battery": "Consumed battery"
|
||||
|
||||
@@ -1,68 +0,0 @@
|
||||
import { assert, describe, it } from "vitest";
|
||||
import { filterModes } from "../../../../../src/panels/lovelace/card-features/common/filter-modes";
|
||||
|
||||
describe("filterModes", () => {
|
||||
it("returns all supportedModes when selectedModes is undefined", () => {
|
||||
const supportedModes = ["mode1", "mode2", "mode3"];
|
||||
const result = filterModes(supportedModes, undefined);
|
||||
assert.deepEqual(result, ["mode1", "mode2", "mode3"]);
|
||||
});
|
||||
|
||||
it("returns empty array when supportedModes is undefined and selectedModes is undefined", () => {
|
||||
const result = filterModes(undefined, undefined);
|
||||
assert.deepEqual(result, []);
|
||||
});
|
||||
|
||||
it("preserves supportedModes order when filtering with selectedModes", () => {
|
||||
const supportedModes = ["heat", "cool", "auto", "off", "dry"];
|
||||
const selectedModes = ["off", "heat", "cool"]; // Different order
|
||||
const result = filterModes(supportedModes, selectedModes);
|
||||
// Result should be in supportedModes order, not selectedModes order
|
||||
assert.deepEqual(result, ["heat", "cool", "off"]);
|
||||
});
|
||||
|
||||
it("filters out modes not in supportedModes", () => {
|
||||
const supportedModes = ["mode1", "mode2", "mode3"];
|
||||
const selectedModes = ["mode2", "mode4", "mode1"]; // mode4 not supported
|
||||
const result = filterModes(supportedModes, selectedModes);
|
||||
assert.deepEqual(result, ["mode1", "mode2"]);
|
||||
});
|
||||
|
||||
it("returns empty array when no selectedModes are in supportedModes", () => {
|
||||
const supportedModes = ["mode1", "mode2", "mode3"];
|
||||
const selectedModes = ["mode4", "mode5"];
|
||||
const result = filterModes(supportedModes, selectedModes);
|
||||
assert.deepEqual(result, []);
|
||||
});
|
||||
|
||||
it("handles empty supportedModes with selectedModes", () => {
|
||||
const supportedModes: string[] = [];
|
||||
const selectedModes = ["mode1", "mode2"];
|
||||
const result = filterModes(supportedModes, selectedModes);
|
||||
assert.deepEqual(result, []);
|
||||
});
|
||||
|
||||
it("handles empty selectedModes array", () => {
|
||||
const supportedModes = ["mode1", "mode2", "mode3"];
|
||||
const selectedModes: string[] = [];
|
||||
const result = filterModes(supportedModes, selectedModes);
|
||||
assert.deepEqual(result, []);
|
||||
});
|
||||
|
||||
it("preserves order with climate HVAC modes example", () => {
|
||||
// This simulates the real-world use case from hui-climate-hvac-modes-card-feature
|
||||
// where modes are ordered by compareClimateHvacModes
|
||||
const orderedHvacModes = [
|
||||
"heat_cool",
|
||||
"heat",
|
||||
"cool",
|
||||
"dry",
|
||||
"fan_only",
|
||||
"off",
|
||||
];
|
||||
const configHvacModes = ["off", "heat", "cool"]; // User config in different order
|
||||
const result = filterModes(orderedHvacModes, configHvacModes);
|
||||
// Result should maintain the ordered sequence, not the config order
|
||||
assert.deepEqual(result, ["heat", "cool", "off"]);
|
||||
});
|
||||
});
|
||||
605
yarn.lock
605
yarn.lock
@@ -1282,15 +1282,15 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@codemirror/view@npm:6.39.8, @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.39.8
|
||||
resolution: "@codemirror/view@npm:6.39.8"
|
||||
"@codemirror/view@npm:6.39.7, @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.39.7
|
||||
resolution: "@codemirror/view@npm:6.39.7"
|
||||
dependencies:
|
||||
"@codemirror/state": "npm:^6.5.0"
|
||||
crelt: "npm:^1.0.6"
|
||||
style-mod: "npm:^4.1.0"
|
||||
w3c-keyname: "npm:^2.2.4"
|
||||
checksum: 10/a15941940fabc9b595da00a7760947cf7ce83f3f819be31250a73d2a1de5d1b5528a5803aa19c74656d2d7cbc39f47daec4962190ffc0849f4f359e45b4f1c3a
|
||||
checksum: 10/46057d484ece18e01a5d6423063a151b7ac646bf122f19cba8ddc4cdff6e99b1ac5d7fe923ffe829e3c34b669382251c0a130cdbcb8e681edebbe920e9ee11d5
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -1670,18 +1670,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@exodus/bytes@npm:^1.6.0":
|
||||
version: 1.6.0
|
||||
resolution: "@exodus/bytes@npm:1.6.0"
|
||||
peerDependencies:
|
||||
"@exodus/crypto": ^1.0.0-rc.4
|
||||
peerDependenciesMeta:
|
||||
"@exodus/crypto":
|
||||
optional: true
|
||||
checksum: 10/4066bc5f2b7782fabdad4cac707031cbe7c3491bcd38f28e3b5144d687f858e834aaa9b0bcbe9685f1ccfaf4dc747172e82f28cf361e9623448ec80ab755b198
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@floating-ui/core@npm:^1.7.3":
|
||||
version: 1.7.3
|
||||
resolution: "@floating-ui/core@npm:1.7.3"
|
||||
@@ -1708,166 +1696,166 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@formatjs/ecma402-abstract@npm:3.0.7":
|
||||
version: 3.0.7
|
||||
resolution: "@formatjs/ecma402-abstract@npm:3.0.7"
|
||||
"@formatjs/ecma402-abstract@npm:3.0.6":
|
||||
version: 3.0.6
|
||||
resolution: "@formatjs/ecma402-abstract@npm:3.0.6"
|
||||
dependencies:
|
||||
"@formatjs/fast-memoize": "npm:3.0.2"
|
||||
"@formatjs/intl-localematcher": "npm:0.7.4"
|
||||
"@formatjs/fast-memoize": "npm:3.0.1"
|
||||
"@formatjs/intl-localematcher": "npm:0.7.3"
|
||||
decimal.js: "npm:^10.4.3"
|
||||
tslib: "npm:^2.8.0"
|
||||
checksum: 10/a79f43d3c3e5301722d3288806e6910d8598e2f0c849775398f6e20bac78b568db9c03b6605c9db8eb3aa80dff4fc260cb153e67b167924a547e0d29a1b2d8c3
|
||||
checksum: 10/d1747a4a1f1b3b749727f226c94f9f698e1761a9c486fe9091ada3010886a85410a5230772bc19cd468fc8af55809e90d2cbb3e045460d3488ae5d9bc391e5a5
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@formatjs/fast-memoize@npm:3.0.2":
|
||||
version: 3.0.2
|
||||
resolution: "@formatjs/fast-memoize@npm:3.0.2"
|
||||
"@formatjs/fast-memoize@npm:3.0.1":
|
||||
version: 3.0.1
|
||||
resolution: "@formatjs/fast-memoize@npm:3.0.1"
|
||||
dependencies:
|
||||
tslib: "npm:^2.8.0"
|
||||
checksum: 10/381afd816ca67d7e3e333247f1115ede11420226d72f109c54e8300741212b9bb08a6bacec17d0f0f2172789e39d0cef61fcae0a484e1dff2e9c33eee930694e
|
||||
checksum: 10/9c152fbb3725a0ba759f75658107504b33cd7d232380cdce5afeea320be3c71762de0af9b1dc3b8f03c652c6db9b7453ad57ab1e82762dd9a1713990988f84b8
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@formatjs/icu-messageformat-parser@npm:3.2.1":
|
||||
version: 3.2.1
|
||||
resolution: "@formatjs/icu-messageformat-parser@npm:3.2.1"
|
||||
"@formatjs/icu-messageformat-parser@npm:3.2.0":
|
||||
version: 3.2.0
|
||||
resolution: "@formatjs/icu-messageformat-parser@npm:3.2.0"
|
||||
dependencies:
|
||||
"@formatjs/ecma402-abstract": "npm:3.0.7"
|
||||
"@formatjs/icu-skeleton-parser": "npm:2.0.7"
|
||||
"@formatjs/ecma402-abstract": "npm:3.0.6"
|
||||
"@formatjs/icu-skeleton-parser": "npm:2.0.6"
|
||||
tslib: "npm:^2.8.0"
|
||||
checksum: 10/4e853881ad10472547e893648474841f7943b16c0262c9db7e92fd29d49214da0b5723e48f53872ad3673b3f4a9d11c6683e102f6a864efc78d3a4203a451dff
|
||||
checksum: 10/0b381dfa74b1a31490b18ec1325155d308d229c3dc1105496c4b0f7e501ea14ff3780a6e437fd47d2b57cd2591a8341823a83c95a4b1c92f0a12cedfafcceeb9
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@formatjs/icu-skeleton-parser@npm:2.0.7":
|
||||
version: 2.0.7
|
||||
resolution: "@formatjs/icu-skeleton-parser@npm:2.0.7"
|
||||
"@formatjs/icu-skeleton-parser@npm:2.0.6":
|
||||
version: 2.0.6
|
||||
resolution: "@formatjs/icu-skeleton-parser@npm:2.0.6"
|
||||
dependencies:
|
||||
"@formatjs/ecma402-abstract": "npm:3.0.7"
|
||||
"@formatjs/ecma402-abstract": "npm:3.0.6"
|
||||
tslib: "npm:^2.8.0"
|
||||
checksum: 10/4a496854f877af04f87ac9bcf36593bfe4ec949a58a695c40c87dcbfff4a15473941448d6812644ab6fc832fc96408d6374015de74d3842cb03654f136b783d1
|
||||
checksum: 10/f1504406691eacfaab95eb88a4360f9dbddb991a919f8f9fe8d7cbf0cae85072c159b7198e159c5eaf8c4797d1e97f1c6a27300bd19f35241b5ee9aa089418af
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@formatjs/intl-datetimeformat@npm:7.1.1":
|
||||
version: 7.1.1
|
||||
resolution: "@formatjs/intl-datetimeformat@npm:7.1.1"
|
||||
"@formatjs/intl-datetimeformat@npm:7.1.0":
|
||||
version: 7.1.0
|
||||
resolution: "@formatjs/intl-datetimeformat@npm:7.1.0"
|
||||
dependencies:
|
||||
"@formatjs/ecma402-abstract": "npm:3.0.7"
|
||||
"@formatjs/intl-localematcher": "npm:0.7.4"
|
||||
"@formatjs/ecma402-abstract": "npm:3.0.6"
|
||||
"@formatjs/intl-localematcher": "npm:0.7.3"
|
||||
decimal.js: "npm:^10.4.3"
|
||||
tslib: "npm:^2.8.0"
|
||||
checksum: 10/cda6fd9d6244ad11f9ed2d780971388643eba514397417d63de48a8aaac2ccc43ecc2a4331e4458f0ccc16d29516ae1d1addd5b790edbea49432d58ccdf4e10e
|
||||
checksum: 10/0230f22155dbfdc246bd668135134bc612808d88c46450b7f0a57959f7cb7945f5333051e95f101979411e5658380c511b8047642e7befde7a36efa32a6d5dfa
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@formatjs/intl-displaynames@npm:7.1.1":
|
||||
version: 7.1.1
|
||||
resolution: "@formatjs/intl-displaynames@npm:7.1.1"
|
||||
"@formatjs/intl-displaynames@npm:7.1.0":
|
||||
version: 7.1.0
|
||||
resolution: "@formatjs/intl-displaynames@npm:7.1.0"
|
||||
dependencies:
|
||||
"@formatjs/ecma402-abstract": "npm:3.0.7"
|
||||
"@formatjs/intl-localematcher": "npm:0.7.4"
|
||||
"@formatjs/ecma402-abstract": "npm:3.0.6"
|
||||
"@formatjs/intl-localematcher": "npm:0.7.3"
|
||||
tslib: "npm:^2.8.0"
|
||||
checksum: 10/f7b44c546b26cdd50b60983f5a8cfa672ac5b0a03f9f3c85caac98bc20b6768721e67fde62b977cfa98c3720f9cb1dadfa5448be88a3ee5616f48b1f84b1474f
|
||||
checksum: 10/6069ab76045c3ae765c888f636ddacf2617effc8826cc33589339b0e512629db66dd24c6f8bf2c3723fa5aa64a9d66b8e82acd0cb3327134e77abf400619c25a
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@formatjs/intl-durationformat@npm:0.9.1":
|
||||
version: 0.9.1
|
||||
resolution: "@formatjs/intl-durationformat@npm:0.9.1"
|
||||
"@formatjs/intl-durationformat@npm:0.9.0":
|
||||
version: 0.9.0
|
||||
resolution: "@formatjs/intl-durationformat@npm:0.9.0"
|
||||
dependencies:
|
||||
"@formatjs/ecma402-abstract": "npm:3.0.7"
|
||||
"@formatjs/intl-localematcher": "npm:0.7.4"
|
||||
"@formatjs/ecma402-abstract": "npm:3.0.6"
|
||||
"@formatjs/intl-localematcher": "npm:0.7.3"
|
||||
tslib: "npm:^2.8.0"
|
||||
checksum: 10/b9fae713b39238c4658102b0edbb684e786007e2c95b8135435009b5c7c64c4a5d8cd50b92326f9d2c4e2b1fbbb61f49ee0709daad82dbf90636cd79713596d5
|
||||
checksum: 10/f656e634d1b33fd9cf810c60187e34655c3c6cfd119dc1c6d00b9fdf46ab9edf550179effd49f5bee908ad7a20943cac463e426fa3bb557ee1a43f8301d12b55
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@formatjs/intl-enumerator@npm:2.1.1":
|
||||
version: 2.1.1
|
||||
resolution: "@formatjs/intl-enumerator@npm:2.1.1"
|
||||
"@formatjs/intl-enumerator@npm:2.1.0":
|
||||
version: 2.1.0
|
||||
resolution: "@formatjs/intl-enumerator@npm:2.1.0"
|
||||
dependencies:
|
||||
"@formatjs/ecma402-abstract": "npm:3.0.7"
|
||||
"@formatjs/ecma402-abstract": "npm:3.0.6"
|
||||
tslib: "npm:^2.8.0"
|
||||
checksum: 10/cabc2387bead8498c32e3068b98557a3e217777bbccf46ee2eb4918decab15ae750cf20f4b6186deecb3e0242873c0aba40e2294665683dabe1f1f67333b5195
|
||||
checksum: 10/5a3392d14fd010d2aa400e08870d50a3099dc20e96fb827bb1e9391aec51319a5c6a06ea8ea516c164f1e3a552202b52cd67ec0b61af15eef64f7ca6bf4b965b
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@formatjs/intl-getcanonicallocales@npm:3.1.1":
|
||||
version: 3.1.1
|
||||
resolution: "@formatjs/intl-getcanonicallocales@npm:3.1.1"
|
||||
"@formatjs/intl-getcanonicallocales@npm:3.1.0":
|
||||
version: 3.1.0
|
||||
resolution: "@formatjs/intl-getcanonicallocales@npm:3.1.0"
|
||||
dependencies:
|
||||
tslib: "npm:^2.8.0"
|
||||
checksum: 10/23e6a3c1cf42257f130fd6b1cc080ecaf7b267743e3990ea7eb9f6cc981c649f2c18c935d1f581593ec241095a982c248441ac10d0e871575463dbfebf942f5c
|
||||
checksum: 10/4a99a8153b12b526a3115b614c8d7c0126c161d48dabb1a4938dd03c2aafb36db056a9ea5c2e160ee5449bce0a11b1e50a86bd5f548f93c73377c6b184b8bc4d
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@formatjs/intl-listformat@npm:8.1.1":
|
||||
version: 8.1.1
|
||||
resolution: "@formatjs/intl-listformat@npm:8.1.1"
|
||||
"@formatjs/intl-listformat@npm:8.1.0":
|
||||
version: 8.1.0
|
||||
resolution: "@formatjs/intl-listformat@npm:8.1.0"
|
||||
dependencies:
|
||||
"@formatjs/ecma402-abstract": "npm:3.0.7"
|
||||
"@formatjs/intl-localematcher": "npm:0.7.4"
|
||||
"@formatjs/ecma402-abstract": "npm:3.0.6"
|
||||
"@formatjs/intl-localematcher": "npm:0.7.3"
|
||||
tslib: "npm:^2.8.0"
|
||||
checksum: 10/29daf29492f396a6266324196af764123b9bbd19fcd25ed02dfccbc4f31dcc592be47e02c39d8b5c1f8b8411f22ca961f82b4c66a98e7e44dd8cfa3459ec42f3
|
||||
checksum: 10/b63bf22c79cb7108a32da10737bd11f00e61ed6a37ec9f16656578d51ce8411005e95d5eaba243e90670259b2ab067a654e8f9c7739e07eff980eb7433618e94
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@formatjs/intl-locale@npm:5.1.1":
|
||||
version: 5.1.1
|
||||
resolution: "@formatjs/intl-locale@npm:5.1.1"
|
||||
"@formatjs/intl-locale@npm:5.1.0":
|
||||
version: 5.1.0
|
||||
resolution: "@formatjs/intl-locale@npm:5.1.0"
|
||||
dependencies:
|
||||
"@formatjs/ecma402-abstract": "npm:3.0.7"
|
||||
"@formatjs/intl-enumerator": "npm:2.1.1"
|
||||
"@formatjs/intl-getcanonicallocales": "npm:3.1.1"
|
||||
"@formatjs/ecma402-abstract": "npm:3.0.6"
|
||||
"@formatjs/intl-enumerator": "npm:2.1.0"
|
||||
"@formatjs/intl-getcanonicallocales": "npm:3.1.0"
|
||||
tslib: "npm:^2.8.0"
|
||||
checksum: 10/02be5269e4ef1d058d5be8a0fe580f775e6a760ed4417ebf43a651bc6f0234833528ab76d64df276857d53d90ca7fcd022d0f5d667df3be485c85ae7a9bee617
|
||||
checksum: 10/833b2624d64801078704df577a94c7326d68bc77f838faec68c7db66313a525bf46604472263ef6554a10aa076148253c29ddc161e9dffc9773218b2b20e4673
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@formatjs/intl-localematcher@npm:0.7.4":
|
||||
version: 0.7.4
|
||||
resolution: "@formatjs/intl-localematcher@npm:0.7.4"
|
||||
"@formatjs/intl-localematcher@npm:0.7.3":
|
||||
version: 0.7.3
|
||||
resolution: "@formatjs/intl-localematcher@npm:0.7.3"
|
||||
dependencies:
|
||||
"@formatjs/fast-memoize": "npm:3.0.2"
|
||||
"@formatjs/fast-memoize": "npm:3.0.1"
|
||||
tslib: "npm:^2.8.0"
|
||||
checksum: 10/e2eb759628b35b45d95bddfc33bc8e985afd5d17c3d22bd243ea537fcb3b22eba2bbd8ce9e0f5cd6e29c3b514fe077ba99f5e7e5a1730983c9bfad649dc76985
|
||||
checksum: 10/31386f8ca3a190a457a5969a3da76f2cb66b6c0b07ad98e9b6f42cc0ca2cd0242639a3efd2148c7e6d06f3b5e25267931c53a35ed2cb3c326cd2a34a5edda4e0
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@formatjs/intl-numberformat@npm:9.1.1":
|
||||
version: 9.1.1
|
||||
resolution: "@formatjs/intl-numberformat@npm:9.1.1"
|
||||
"@formatjs/intl-numberformat@npm:9.1.0":
|
||||
version: 9.1.0
|
||||
resolution: "@formatjs/intl-numberformat@npm:9.1.0"
|
||||
dependencies:
|
||||
"@formatjs/ecma402-abstract": "npm:3.0.7"
|
||||
"@formatjs/intl-localematcher": "npm:0.7.4"
|
||||
"@formatjs/ecma402-abstract": "npm:3.0.6"
|
||||
"@formatjs/intl-localematcher": "npm:0.7.3"
|
||||
decimal.js: "npm:^10.4.3"
|
||||
tslib: "npm:^2.8.0"
|
||||
checksum: 10/dd2e0e331162f7d4253dcaebbfcead2e5a13669348890b042fe80d109088e930d08f09a6c74969ccd5e3fd3a3190a5d0c6013645e2cde289d8dc425ae1b3ea3a
|
||||
checksum: 10/85e78885cc8d7324fd2cfe6aba50d88fb2eee9058692faa304aaa2fe742d304a7ed02b0f4b4503004335bfb0d1d0110e42f18341225fac59ba6416b8efd654c1
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@formatjs/intl-pluralrules@npm:6.1.1":
|
||||
version: 6.1.1
|
||||
resolution: "@formatjs/intl-pluralrules@npm:6.1.1"
|
||||
"@formatjs/intl-pluralrules@npm:6.1.0":
|
||||
version: 6.1.0
|
||||
resolution: "@formatjs/intl-pluralrules@npm:6.1.0"
|
||||
dependencies:
|
||||
"@formatjs/ecma402-abstract": "npm:3.0.7"
|
||||
"@formatjs/intl-localematcher": "npm:0.7.4"
|
||||
"@formatjs/ecma402-abstract": "npm:3.0.6"
|
||||
"@formatjs/intl-localematcher": "npm:0.7.3"
|
||||
decimal.js: "npm:^10.4.3"
|
||||
tslib: "npm:^2.8.0"
|
||||
checksum: 10/94b900a5396bb066e61fc76af01e4634b60935a66ae27e57d148210dacc5ba7d95ee1dd2158ece1b240da50a9f88d44929af9bae95db6839f025f6ed03625dc9
|
||||
checksum: 10/c6e66e1e1236d09518208805392b834a35708fe15e45269f9ab2af916c7c43da9e5046e55f908f3531b3ced9ad293b9ca8151d91e648d318f438d542077e3c6b
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@formatjs/intl-relativetimeformat@npm:12.1.1":
|
||||
version: 12.1.1
|
||||
resolution: "@formatjs/intl-relativetimeformat@npm:12.1.1"
|
||||
"@formatjs/intl-relativetimeformat@npm:12.1.0":
|
||||
version: 12.1.0
|
||||
resolution: "@formatjs/intl-relativetimeformat@npm:12.1.0"
|
||||
dependencies:
|
||||
"@formatjs/ecma402-abstract": "npm:3.0.7"
|
||||
"@formatjs/intl-localematcher": "npm:0.7.4"
|
||||
"@formatjs/ecma402-abstract": "npm:3.0.6"
|
||||
"@formatjs/intl-localematcher": "npm:0.7.3"
|
||||
tslib: "npm:^2.8.0"
|
||||
checksum: 10/102a694f7b9764aa3e43702af4a2e47e6c9df7116815810a3210d80919ffe4b60e8a2098ebd424d3074df052b5fc3b5846ff6691a09f53103186253a006e5354
|
||||
checksum: 10/0ef13a7544d01bf2aaffd91ab766f11c98516128ff6eaec718471599ab482a068b82be96c06770ac4b34ddddccc1f7631662eef9999744468c0cedec229b267e
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -3312,58 +3300,58 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@module-federation/error-codes@npm:0.22.0":
|
||||
version: 0.22.0
|
||||
resolution: "@module-federation/error-codes@npm:0.22.0"
|
||||
checksum: 10/4edb269e9f3039899f879788c84d2bfecff94ca8e87ffcd80dbf8589d8543ec32558b3fa05c8549a8abd3ac33e856ff2aacf458dea5c0d7bea608bf12bb13359
|
||||
"@module-federation/error-codes@npm:0.21.6":
|
||||
version: 0.21.6
|
||||
resolution: "@module-federation/error-codes@npm:0.21.6"
|
||||
checksum: 10/6ded1ecab780f1f9ec46a59adb200e75cdf11580d70aa79dd75d71fbbf276615690da277ea67aa1ceb5bc88386f5708cc1d2ba5526be5c9ff02397a6123e36bf
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@module-federation/runtime-core@npm:0.22.0":
|
||||
version: 0.22.0
|
||||
resolution: "@module-federation/runtime-core@npm:0.22.0"
|
||||
"@module-federation/runtime-core@npm:0.21.6":
|
||||
version: 0.21.6
|
||||
resolution: "@module-federation/runtime-core@npm:0.21.6"
|
||||
dependencies:
|
||||
"@module-federation/error-codes": "npm:0.22.0"
|
||||
"@module-federation/sdk": "npm:0.22.0"
|
||||
checksum: 10/d21969198322b6f79e0513b702d0af5097613d47819724c849b6c677c163cd10fb8c89e3ff62b798bec498ee4d8e95dec71861071bc4ed74bd86a7e43193bc05
|
||||
"@module-federation/error-codes": "npm:0.21.6"
|
||||
"@module-federation/sdk": "npm:0.21.6"
|
||||
checksum: 10/85efa2042d6f3a7cf0e4971b991472d4339d88f6f15684afb6d451f19ed934e225b2510c86b7bb4d2c5f64253ed7b0175f08c17f95bfc2b9929930a8a03fff1e
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@module-federation/runtime-tools@npm:0.22.0":
|
||||
version: 0.22.0
|
||||
resolution: "@module-federation/runtime-tools@npm:0.22.0"
|
||||
"@module-federation/runtime-tools@npm:0.21.6":
|
||||
version: 0.21.6
|
||||
resolution: "@module-federation/runtime-tools@npm:0.21.6"
|
||||
dependencies:
|
||||
"@module-federation/runtime": "npm:0.22.0"
|
||||
"@module-federation/webpack-bundler-runtime": "npm:0.22.0"
|
||||
checksum: 10/0e7693c1ec02fc5bef770b478c8757cad9cfefb2310d1943151d0ad079b72472d9b2c8a087299e9124dfcd6b649c83290c7fdfa333865baab4ba193f39e7b6bd
|
||||
"@module-federation/runtime": "npm:0.21.6"
|
||||
"@module-federation/webpack-bundler-runtime": "npm:0.21.6"
|
||||
checksum: 10/36e7ccab948e11f310e87397a1a2185b56064e5691e553b34173686e2bc7372ec710e5ad48c026eb28c85b168765788b743aa2111513f3b57118b47636312dd1
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@module-federation/runtime@npm:0.22.0":
|
||||
version: 0.22.0
|
||||
resolution: "@module-federation/runtime@npm:0.22.0"
|
||||
"@module-federation/runtime@npm:0.21.6":
|
||||
version: 0.21.6
|
||||
resolution: "@module-federation/runtime@npm:0.21.6"
|
||||
dependencies:
|
||||
"@module-federation/error-codes": "npm:0.22.0"
|
||||
"@module-federation/runtime-core": "npm:0.22.0"
|
||||
"@module-federation/sdk": "npm:0.22.0"
|
||||
checksum: 10/eca608be999d7d2e83abc1169643c2f795a5ed950f9e2bdf7000400a30b3e1e0ca4bdaa5daa09f55e44868383d444707e40236cec1aaa7b40432b0cce800b7f3
|
||||
"@module-federation/error-codes": "npm:0.21.6"
|
||||
"@module-federation/runtime-core": "npm:0.21.6"
|
||||
"@module-federation/sdk": "npm:0.21.6"
|
||||
checksum: 10/93fd9bb284630933cab7e4bc070d648b56272f3636038c05eec7d1e3eeb189be3ccebe5f8ecc450197ee992d2616ed282d54e673ec0acd63adee4faddf80b144
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@module-federation/sdk@npm:0.22.0":
|
||||
version: 0.22.0
|
||||
resolution: "@module-federation/sdk@npm:0.22.0"
|
||||
checksum: 10/d7085d883730a33145052520787a7e59cf9c54b51b2946bebc7c63a6bb668bcc6cbdc27fa0b7354a62f5a7ee4e8829a66b84e644607498f2e37cfd5eb4ded0da
|
||||
"@module-federation/sdk@npm:0.21.6":
|
||||
version: 0.21.6
|
||||
resolution: "@module-federation/sdk@npm:0.21.6"
|
||||
checksum: 10/effc4aa932e2f06742bda8f02aaec84e138f5512b50f18c38b051490020b20d3d8edf7ece853fccffc1f78a0b43dec78e69bf02150e7e2801d5ce03c3ee367b9
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@module-federation/webpack-bundler-runtime@npm:0.22.0":
|
||||
version: 0.22.0
|
||||
resolution: "@module-federation/webpack-bundler-runtime@npm:0.22.0"
|
||||
"@module-federation/webpack-bundler-runtime@npm:0.21.6":
|
||||
version: 0.21.6
|
||||
resolution: "@module-federation/webpack-bundler-runtime@npm:0.21.6"
|
||||
dependencies:
|
||||
"@module-federation/runtime": "npm:0.22.0"
|
||||
"@module-federation/sdk": "npm:0.22.0"
|
||||
checksum: 10/afd24406817dfc6474ebcf5be714ccf26690eb3f6f5172bda711c8f23dba149fe47293f7aa2d0733dfed0334c98d4d3d9e7c2da2be78750cae5a72d72f32ce93
|
||||
"@module-federation/runtime": "npm:0.21.6"
|
||||
"@module-federation/sdk": "npm:0.21.6"
|
||||
checksum: 10/a5ceb72ee3867acad5d7d3c654eb568068b1d5288f60ce9301bdc9f56effa5a4c26a732a2cec7176a81b87139566cd51dd8dfbc6112da05d47b870fa3ad3ba1f
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -3993,92 +3981,92 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@rspack/binding-darwin-arm64@npm:1.7.0":
|
||||
version: 1.7.0
|
||||
resolution: "@rspack/binding-darwin-arm64@npm:1.7.0"
|
||||
"@rspack/binding-darwin-arm64@npm:1.6.8":
|
||||
version: 1.6.8
|
||||
resolution: "@rspack/binding-darwin-arm64@npm:1.6.8"
|
||||
conditions: os=darwin & cpu=arm64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@rspack/binding-darwin-x64@npm:1.7.0":
|
||||
version: 1.7.0
|
||||
resolution: "@rspack/binding-darwin-x64@npm:1.7.0"
|
||||
"@rspack/binding-darwin-x64@npm:1.6.8":
|
||||
version: 1.6.8
|
||||
resolution: "@rspack/binding-darwin-x64@npm:1.6.8"
|
||||
conditions: os=darwin & cpu=x64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@rspack/binding-linux-arm64-gnu@npm:1.7.0":
|
||||
version: 1.7.0
|
||||
resolution: "@rspack/binding-linux-arm64-gnu@npm:1.7.0"
|
||||
"@rspack/binding-linux-arm64-gnu@npm:1.6.8":
|
||||
version: 1.6.8
|
||||
resolution: "@rspack/binding-linux-arm64-gnu@npm:1.6.8"
|
||||
conditions: os=linux & cpu=arm64 & libc=glibc
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@rspack/binding-linux-arm64-musl@npm:1.7.0":
|
||||
version: 1.7.0
|
||||
resolution: "@rspack/binding-linux-arm64-musl@npm:1.7.0"
|
||||
"@rspack/binding-linux-arm64-musl@npm:1.6.8":
|
||||
version: 1.6.8
|
||||
resolution: "@rspack/binding-linux-arm64-musl@npm:1.6.8"
|
||||
conditions: os=linux & cpu=arm64 & libc=musl
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@rspack/binding-linux-x64-gnu@npm:1.7.0":
|
||||
version: 1.7.0
|
||||
resolution: "@rspack/binding-linux-x64-gnu@npm:1.7.0"
|
||||
"@rspack/binding-linux-x64-gnu@npm:1.6.8":
|
||||
version: 1.6.8
|
||||
resolution: "@rspack/binding-linux-x64-gnu@npm:1.6.8"
|
||||
conditions: os=linux & cpu=x64 & libc=glibc
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@rspack/binding-linux-x64-musl@npm:1.7.0":
|
||||
version: 1.7.0
|
||||
resolution: "@rspack/binding-linux-x64-musl@npm:1.7.0"
|
||||
"@rspack/binding-linux-x64-musl@npm:1.6.8":
|
||||
version: 1.6.8
|
||||
resolution: "@rspack/binding-linux-x64-musl@npm:1.6.8"
|
||||
conditions: os=linux & cpu=x64 & libc=musl
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@rspack/binding-wasm32-wasi@npm:1.7.0":
|
||||
version: 1.7.0
|
||||
resolution: "@rspack/binding-wasm32-wasi@npm:1.7.0"
|
||||
"@rspack/binding-wasm32-wasi@npm:1.6.8":
|
||||
version: 1.6.8
|
||||
resolution: "@rspack/binding-wasm32-wasi@npm:1.6.8"
|
||||
dependencies:
|
||||
"@napi-rs/wasm-runtime": "npm:1.0.7"
|
||||
conditions: cpu=wasm32
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@rspack/binding-win32-arm64-msvc@npm:1.7.0":
|
||||
version: 1.7.0
|
||||
resolution: "@rspack/binding-win32-arm64-msvc@npm:1.7.0"
|
||||
"@rspack/binding-win32-arm64-msvc@npm:1.6.8":
|
||||
version: 1.6.8
|
||||
resolution: "@rspack/binding-win32-arm64-msvc@npm:1.6.8"
|
||||
conditions: os=win32 & cpu=arm64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@rspack/binding-win32-ia32-msvc@npm:1.7.0":
|
||||
version: 1.7.0
|
||||
resolution: "@rspack/binding-win32-ia32-msvc@npm:1.7.0"
|
||||
"@rspack/binding-win32-ia32-msvc@npm:1.6.8":
|
||||
version: 1.6.8
|
||||
resolution: "@rspack/binding-win32-ia32-msvc@npm:1.6.8"
|
||||
conditions: os=win32 & cpu=ia32
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@rspack/binding-win32-x64-msvc@npm:1.7.0":
|
||||
version: 1.7.0
|
||||
resolution: "@rspack/binding-win32-x64-msvc@npm:1.7.0"
|
||||
"@rspack/binding-win32-x64-msvc@npm:1.6.8":
|
||||
version: 1.6.8
|
||||
resolution: "@rspack/binding-win32-x64-msvc@npm:1.6.8"
|
||||
conditions: os=win32 & cpu=x64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@rspack/binding@npm:1.7.0":
|
||||
version: 1.7.0
|
||||
resolution: "@rspack/binding@npm:1.7.0"
|
||||
"@rspack/binding@npm:1.6.8":
|
||||
version: 1.6.8
|
||||
resolution: "@rspack/binding@npm:1.6.8"
|
||||
dependencies:
|
||||
"@rspack/binding-darwin-arm64": "npm:1.7.0"
|
||||
"@rspack/binding-darwin-x64": "npm:1.7.0"
|
||||
"@rspack/binding-linux-arm64-gnu": "npm:1.7.0"
|
||||
"@rspack/binding-linux-arm64-musl": "npm:1.7.0"
|
||||
"@rspack/binding-linux-x64-gnu": "npm:1.7.0"
|
||||
"@rspack/binding-linux-x64-musl": "npm:1.7.0"
|
||||
"@rspack/binding-wasm32-wasi": "npm:1.7.0"
|
||||
"@rspack/binding-win32-arm64-msvc": "npm:1.7.0"
|
||||
"@rspack/binding-win32-ia32-msvc": "npm:1.7.0"
|
||||
"@rspack/binding-win32-x64-msvc": "npm:1.7.0"
|
||||
"@rspack/binding-darwin-arm64": "npm:1.6.8"
|
||||
"@rspack/binding-darwin-x64": "npm:1.6.8"
|
||||
"@rspack/binding-linux-arm64-gnu": "npm:1.6.8"
|
||||
"@rspack/binding-linux-arm64-musl": "npm:1.6.8"
|
||||
"@rspack/binding-linux-x64-gnu": "npm:1.6.8"
|
||||
"@rspack/binding-linux-x64-musl": "npm:1.6.8"
|
||||
"@rspack/binding-wasm32-wasi": "npm:1.6.8"
|
||||
"@rspack/binding-win32-arm64-msvc": "npm:1.6.8"
|
||||
"@rspack/binding-win32-ia32-msvc": "npm:1.6.8"
|
||||
"@rspack/binding-win32-x64-msvc": "npm:1.6.8"
|
||||
dependenciesMeta:
|
||||
"@rspack/binding-darwin-arm64":
|
||||
optional: true
|
||||
@@ -4100,29 +4088,29 @@ __metadata:
|
||||
optional: true
|
||||
"@rspack/binding-win32-x64-msvc":
|
||||
optional: true
|
||||
checksum: 10/152155585fe2b31c68efc1ddaa3272bcff04f483220d6b5c1ac4e35d69622261233657d66e3e0d73f28c08ccfe31742e4c284a9e35da82ee2cf32f896a6bd87b
|
||||
checksum: 10/ca8b64987f05b970c08ad6bd4068bebe843824468535cc523c543f234eab8d728bbe1da2482b32675a472208639a3fd89d14013724fa612c285dfa33cc0c0c90
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@rspack/core@npm:1.7.0":
|
||||
version: 1.7.0
|
||||
resolution: "@rspack/core@npm:1.7.0"
|
||||
"@rspack/core@npm:1.6.8":
|
||||
version: 1.6.8
|
||||
resolution: "@rspack/core@npm:1.6.8"
|
||||
dependencies:
|
||||
"@module-federation/runtime-tools": "npm:0.22.0"
|
||||
"@rspack/binding": "npm:1.7.0"
|
||||
"@module-federation/runtime-tools": "npm:0.21.6"
|
||||
"@rspack/binding": "npm:1.6.8"
|
||||
"@rspack/lite-tapable": "npm:1.1.0"
|
||||
peerDependencies:
|
||||
"@swc/helpers": ">=0.5.1"
|
||||
peerDependenciesMeta:
|
||||
"@swc/helpers":
|
||||
optional: true
|
||||
checksum: 10/79786219475e74ef2e8bb418b33e6fa39eb152639e64a83ee3887427c536d3eac4a09fda1b589f5806d62fda96b4b0350ae1bc8b26e93049be97eaae21dd6a02
|
||||
checksum: 10/3c10608dd1e07d340bedd9ed8e520f5e8ad4401475f12ae204ac4cd1d5ad1d57250b0ea8ffc8595bbf8d7d211a4c5408c7c2ee161b0402b7ba7a3e6f692d4423
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@rspack/dev-server@npm:1.1.5":
|
||||
version: 1.1.5
|
||||
resolution: "@rspack/dev-server@npm:1.1.5"
|
||||
"@rspack/dev-server@npm:1.1.4":
|
||||
version: 1.1.4
|
||||
resolution: "@rspack/dev-server@npm:1.1.4"
|
||||
dependencies:
|
||||
chokidar: "npm:^3.6.0"
|
||||
http-proxy-middleware: "npm:^2.0.9"
|
||||
@@ -4131,7 +4119,7 @@ __metadata:
|
||||
ws: "npm:^8.18.0"
|
||||
peerDependencies:
|
||||
"@rspack/core": "*"
|
||||
checksum: 10/67a747d998f9a2449cb1c6c5791ffc812c9d99a7219595359ce960063f344fde9f8f2000bbc9633dc490082f69b74a20b8f319697bd19beca65bd108f5dff5e5
|
||||
checksum: 10/9409af5b9cd6f3de70caea7f82595a5e99e39ec203ef93fc9973fefdcacf6b7d264d07e927a2331d73d7d606f211865d82386bdde410f6be506ff91a1af89d99
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -4949,138 +4937,138 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@typescript-eslint/eslint-plugin@npm:8.51.0":
|
||||
version: 8.51.0
|
||||
resolution: "@typescript-eslint/eslint-plugin@npm:8.51.0"
|
||||
"@typescript-eslint/eslint-plugin@npm:8.50.1":
|
||||
version: 8.50.1
|
||||
resolution: "@typescript-eslint/eslint-plugin@npm:8.50.1"
|
||||
dependencies:
|
||||
"@eslint-community/regexpp": "npm:^4.10.0"
|
||||
"@typescript-eslint/scope-manager": "npm:8.51.0"
|
||||
"@typescript-eslint/type-utils": "npm:8.51.0"
|
||||
"@typescript-eslint/utils": "npm:8.51.0"
|
||||
"@typescript-eslint/visitor-keys": "npm:8.51.0"
|
||||
"@typescript-eslint/scope-manager": "npm:8.50.1"
|
||||
"@typescript-eslint/type-utils": "npm:8.50.1"
|
||||
"@typescript-eslint/utils": "npm:8.50.1"
|
||||
"@typescript-eslint/visitor-keys": "npm:8.50.1"
|
||||
ignore: "npm:^7.0.0"
|
||||
natural-compare: "npm:^1.4.0"
|
||||
ts-api-utils: "npm:^2.2.0"
|
||||
ts-api-utils: "npm:^2.1.0"
|
||||
peerDependencies:
|
||||
"@typescript-eslint/parser": ^8.51.0
|
||||
"@typescript-eslint/parser": ^8.50.1
|
||||
eslint: ^8.57.0 || ^9.0.0
|
||||
typescript: ">=4.8.4 <6.0.0"
|
||||
checksum: 10/cb6c129a9f7e723218458ec86acb86176f7cddc1b41924416478a31fd633c2991849be56e21dca8df0ce535ea2014b361073b043085e39795816de528747c80b
|
||||
checksum: 10/d4351575f8a2a7ac509681e22ef6773f13085b8c01a549e5316311c5757571d65692d60c1cd1a8d6872005adcc2ecfc4a605770a4dce2cc438da02e5bda505bd
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@typescript-eslint/parser@npm:8.51.0":
|
||||
version: 8.51.0
|
||||
resolution: "@typescript-eslint/parser@npm:8.51.0"
|
||||
"@typescript-eslint/parser@npm:8.50.1":
|
||||
version: 8.50.1
|
||||
resolution: "@typescript-eslint/parser@npm:8.50.1"
|
||||
dependencies:
|
||||
"@typescript-eslint/scope-manager": "npm:8.51.0"
|
||||
"@typescript-eslint/types": "npm:8.51.0"
|
||||
"@typescript-eslint/typescript-estree": "npm:8.51.0"
|
||||
"@typescript-eslint/visitor-keys": "npm:8.51.0"
|
||||
"@typescript-eslint/scope-manager": "npm:8.50.1"
|
||||
"@typescript-eslint/types": "npm:8.50.1"
|
||||
"@typescript-eslint/typescript-estree": "npm:8.50.1"
|
||||
"@typescript-eslint/visitor-keys": "npm:8.50.1"
|
||||
debug: "npm:^4.3.4"
|
||||
peerDependencies:
|
||||
eslint: ^8.57.0 || ^9.0.0
|
||||
typescript: ">=4.8.4 <6.0.0"
|
||||
checksum: 10/ad2cb5d9cea5749fca712699ef971d68506f6170766d465ecc5864b5b5a15401c85d4042231df9edcc200f14b2579e6d4b2fbe66db824d925193004cde02ba79
|
||||
checksum: 10/444c799c34edc5bc3cb7178d3b3bb3c5526d8b4662f575a687c9fc65868c6f965bed3df07507769284cb0f20822a656d192049d77e717c3f34b8154f13ce481a
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@typescript-eslint/project-service@npm:8.51.0":
|
||||
version: 8.51.0
|
||||
resolution: "@typescript-eslint/project-service@npm:8.51.0"
|
||||
"@typescript-eslint/project-service@npm:8.50.1":
|
||||
version: 8.50.1
|
||||
resolution: "@typescript-eslint/project-service@npm:8.50.1"
|
||||
dependencies:
|
||||
"@typescript-eslint/tsconfig-utils": "npm:^8.51.0"
|
||||
"@typescript-eslint/types": "npm:^8.51.0"
|
||||
"@typescript-eslint/tsconfig-utils": "npm:^8.50.1"
|
||||
"@typescript-eslint/types": "npm:^8.50.1"
|
||||
debug: "npm:^4.3.4"
|
||||
peerDependencies:
|
||||
typescript: ">=4.8.4 <6.0.0"
|
||||
checksum: 10/f8b38bf1c92c3a5d33ae0304fc920b8ac20b24c308c056ea70fb5b257f9447be62fe54e9595260fd8611b36c8a66229e4ca7ef859edad42e1321434986132aac
|
||||
checksum: 10/9e97bdb3485215a4ada558f4c02d39b0b629a649a1b21dd22e56712dc8cdafe827ab664f6168367a3c4461e6787b8d8a2c7dc2b2e83c5a5634bd2ef2ac286931
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@typescript-eslint/scope-manager@npm:8.51.0":
|
||||
version: 8.51.0
|
||||
resolution: "@typescript-eslint/scope-manager@npm:8.51.0"
|
||||
"@typescript-eslint/scope-manager@npm:8.50.1":
|
||||
version: 8.50.1
|
||||
resolution: "@typescript-eslint/scope-manager@npm:8.50.1"
|
||||
dependencies:
|
||||
"@typescript-eslint/types": "npm:8.51.0"
|
||||
"@typescript-eslint/visitor-keys": "npm:8.51.0"
|
||||
checksum: 10/3d873589cd5b39f2bdc1e5b4f0052095f2cc5b2d59115ceea99533346839539ad7123ab0ba43ff4dd28c6afd4e8ae77798beb3618c93f24010104d38dedad6ad
|
||||
"@typescript-eslint/types": "npm:8.50.1"
|
||||
"@typescript-eslint/visitor-keys": "npm:8.50.1"
|
||||
checksum: 10/fae4ccf2c474fe44b6c5b729dc957f547755e537748bf912135bd0b57cdcea31e27f2aa722fb9a2b3e01e01208c5f1c992c4ccbe63415c9c568ef51f1ab28835
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@typescript-eslint/tsconfig-utils@npm:8.51.0, @typescript-eslint/tsconfig-utils@npm:^8.51.0":
|
||||
version: 8.51.0
|
||||
resolution: "@typescript-eslint/tsconfig-utils@npm:8.51.0"
|
||||
"@typescript-eslint/tsconfig-utils@npm:8.50.1, @typescript-eslint/tsconfig-utils@npm:^8.50.1":
|
||||
version: 8.50.1
|
||||
resolution: "@typescript-eslint/tsconfig-utils@npm:8.50.1"
|
||||
peerDependencies:
|
||||
typescript: ">=4.8.4 <6.0.0"
|
||||
checksum: 10/1a423e2b8bb6900e86f54ef78e967f17e6f51a528c64d78460338b916fda4e44bb8c73a7aba6b129295c59c3f364edbf27b34580f525df700674afbf0fc034df
|
||||
checksum: 10/e05f27ef76d0b69c4bb563e5fc5432f884fc2fbc9d7035f7350d67e5fc32a1dad9a07310755c52d9fce5cba2b509a42ffbf899fb11e6fd8469c1d6ca6c3cd423
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@typescript-eslint/type-utils@npm:8.51.0":
|
||||
version: 8.51.0
|
||||
resolution: "@typescript-eslint/type-utils@npm:8.51.0"
|
||||
"@typescript-eslint/type-utils@npm:8.50.1":
|
||||
version: 8.50.1
|
||||
resolution: "@typescript-eslint/type-utils@npm:8.50.1"
|
||||
dependencies:
|
||||
"@typescript-eslint/types": "npm:8.51.0"
|
||||
"@typescript-eslint/typescript-estree": "npm:8.51.0"
|
||||
"@typescript-eslint/utils": "npm:8.51.0"
|
||||
"@typescript-eslint/types": "npm:8.50.1"
|
||||
"@typescript-eslint/typescript-estree": "npm:8.50.1"
|
||||
"@typescript-eslint/utils": "npm:8.50.1"
|
||||
debug: "npm:^4.3.4"
|
||||
ts-api-utils: "npm:^2.2.0"
|
||||
ts-api-utils: "npm:^2.1.0"
|
||||
peerDependencies:
|
||||
eslint: ^8.57.0 || ^9.0.0
|
||||
typescript: ">=4.8.4 <6.0.0"
|
||||
checksum: 10/1dd5b72e4c7d6ffeafff1c24f745c335dc4073ec2a5c7e40f1a05be3be91097246c96be8d927389d8e4ccfa15db946a45ac85dbfd0c788d6cf003dced1830c7d
|
||||
checksum: 10/0985a4594c523cf6040e8244fa59e0c28837e29cf8a68a74cec76c411506ae3637621135f9517a2e67abef15231708ece89ab7bdfa08b8c7d8ea59d2c103d1cc
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@typescript-eslint/types@npm:8.51.0, @typescript-eslint/types@npm:^8.51.0":
|
||||
version: 8.51.0
|
||||
resolution: "@typescript-eslint/types@npm:8.51.0"
|
||||
checksum: 10/34c4b602d2f07edb72879e8af5359b0d54d3787030ae0a8325691972b07f2c6429bef9586938d18ff7df03a2be858064c7890a42136514ff0f2b7847c1432193
|
||||
"@typescript-eslint/types@npm:8.50.1, @typescript-eslint/types@npm:^8.50.1":
|
||||
version: 8.50.1
|
||||
resolution: "@typescript-eslint/types@npm:8.50.1"
|
||||
checksum: 10/fb5f89790bfaae8af09c835d2735c3162821d5e1e37b643cd317684f412bcf67282625b29f62b59619abd07ee36158c96cc958c2c5ce75f268cf13cb154b3125
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@typescript-eslint/typescript-estree@npm:8.51.0":
|
||||
version: 8.51.0
|
||||
resolution: "@typescript-eslint/typescript-estree@npm:8.51.0"
|
||||
"@typescript-eslint/typescript-estree@npm:8.50.1":
|
||||
version: 8.50.1
|
||||
resolution: "@typescript-eslint/typescript-estree@npm:8.50.1"
|
||||
dependencies:
|
||||
"@typescript-eslint/project-service": "npm:8.51.0"
|
||||
"@typescript-eslint/tsconfig-utils": "npm:8.51.0"
|
||||
"@typescript-eslint/types": "npm:8.51.0"
|
||||
"@typescript-eslint/visitor-keys": "npm:8.51.0"
|
||||
"@typescript-eslint/project-service": "npm:8.50.1"
|
||||
"@typescript-eslint/tsconfig-utils": "npm:8.50.1"
|
||||
"@typescript-eslint/types": "npm:8.50.1"
|
||||
"@typescript-eslint/visitor-keys": "npm:8.50.1"
|
||||
debug: "npm:^4.3.4"
|
||||
minimatch: "npm:^9.0.4"
|
||||
semver: "npm:^7.6.0"
|
||||
tinyglobby: "npm:^0.2.15"
|
||||
ts-api-utils: "npm:^2.2.0"
|
||||
ts-api-utils: "npm:^2.1.0"
|
||||
peerDependencies:
|
||||
typescript: ">=4.8.4 <6.0.0"
|
||||
checksum: 10/4f9f82b18b9a62e3ffe1253e7914a396ec1c550fec36f862eff9d3d49be4bf01349eb2540be68ecc35b245aab7f72843d2b5cd1e73c8e820db5cf6f3c6542916
|
||||
checksum: 10/3da56bb297c2e7e237f99dc853138075dd01839c695f392bf8395b4013e1236e588925a0fe347a011cfcc3bfa5377bf0d69a2b03ca2b03926bfa9f303c36d030
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@typescript-eslint/utils@npm:8.51.0":
|
||||
version: 8.51.0
|
||||
resolution: "@typescript-eslint/utils@npm:8.51.0"
|
||||
"@typescript-eslint/utils@npm:8.50.1":
|
||||
version: 8.50.1
|
||||
resolution: "@typescript-eslint/utils@npm:8.50.1"
|
||||
dependencies:
|
||||
"@eslint-community/eslint-utils": "npm:^4.7.0"
|
||||
"@typescript-eslint/scope-manager": "npm:8.51.0"
|
||||
"@typescript-eslint/types": "npm:8.51.0"
|
||||
"@typescript-eslint/typescript-estree": "npm:8.51.0"
|
||||
"@typescript-eslint/scope-manager": "npm:8.50.1"
|
||||
"@typescript-eslint/types": "npm:8.50.1"
|
||||
"@typescript-eslint/typescript-estree": "npm:8.50.1"
|
||||
peerDependencies:
|
||||
eslint: ^8.57.0 || ^9.0.0
|
||||
typescript: ">=4.8.4 <6.0.0"
|
||||
checksum: 10/e5ced67d08129e62fd6866a72b94fa685cd33aa7f5d1fc3bb9a34187d0fc0b469062ec8dfd44cd8c06494af070a050a314a6db672dda392fbc907b64b1ecc57f
|
||||
checksum: 10/71fe0bc1c9f0676b67842275d611b90f5874164a275663e026673df3cb4dba0c8d27c27b2e6f556d37e19a31e3462e35a80d6f37eb6fe5ffd28aae0bdcb0beca
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@typescript-eslint/visitor-keys@npm:8.51.0":
|
||||
version: 8.51.0
|
||||
resolution: "@typescript-eslint/visitor-keys@npm:8.51.0"
|
||||
"@typescript-eslint/visitor-keys@npm:8.50.1":
|
||||
version: 8.50.1
|
||||
resolution: "@typescript-eslint/visitor-keys@npm:8.50.1"
|
||||
dependencies:
|
||||
"@typescript-eslint/types": "npm:8.51.0"
|
||||
"@typescript-eslint/types": "npm:8.50.1"
|
||||
eslint-visitor-keys: "npm:^4.2.1"
|
||||
checksum: 10/922fb3d2e59f6e8a9583a1bc7b13e66d4ec7bd7df3256602810465a7017549b890cd1a7897efc71ed64cc287c718be5dddbc8071b74e8ee41fe441f6d5251d3d
|
||||
checksum: 10/59616dd2d5fc1a5b722c6812d23ed95bb896523daacfa58a15095aefb7ee393749765709b2fbdfe0a2968636f21879b9e847246eb00aa05281df084014698ced
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -8748,10 +8736,10 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"globals@npm:17.0.0":
|
||||
version: 17.0.0
|
||||
resolution: "globals@npm:17.0.0"
|
||||
checksum: 10/af6213db9bf5f599b8a609061984c4d5fedb23db336228b866eba70819fe13ea3d11ca507b4799e8afc888331d0f7e5760d01507e38cb988fff9ad3a9635b312
|
||||
"globals@npm:16.5.0":
|
||||
version: 16.5.0
|
||||
resolution: "globals@npm:16.5.0"
|
||||
checksum: 10/f9e8a2a13f50222c127030a619e283e7bbfe32966316bdde0715af1d15a7e40cb9c24ff52cad59671f97762ed8b515353c2f8674f560c63d9385f19ee26735a6
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -9010,18 +8998,18 @@ __metadata:
|
||||
"@codemirror/legacy-modes": "npm:6.5.2"
|
||||
"@codemirror/search": "npm:6.5.11"
|
||||
"@codemirror/state": "npm:6.5.3"
|
||||
"@codemirror/view": "npm:6.39.8"
|
||||
"@codemirror/view": "npm:6.39.7"
|
||||
"@date-fns/tz": "npm:1.4.1"
|
||||
"@egjs/hammerjs": "npm:2.0.17"
|
||||
"@formatjs/intl-datetimeformat": "npm:7.1.1"
|
||||
"@formatjs/intl-displaynames": "npm:7.1.1"
|
||||
"@formatjs/intl-durationformat": "npm:0.9.1"
|
||||
"@formatjs/intl-getcanonicallocales": "npm:3.1.1"
|
||||
"@formatjs/intl-listformat": "npm:8.1.1"
|
||||
"@formatjs/intl-locale": "npm:5.1.1"
|
||||
"@formatjs/intl-numberformat": "npm:9.1.1"
|
||||
"@formatjs/intl-pluralrules": "npm:6.1.1"
|
||||
"@formatjs/intl-relativetimeformat": "npm:12.1.1"
|
||||
"@formatjs/intl-datetimeformat": "npm:7.1.0"
|
||||
"@formatjs/intl-displaynames": "npm:7.1.0"
|
||||
"@formatjs/intl-durationformat": "npm:0.9.0"
|
||||
"@formatjs/intl-getcanonicallocales": "npm:3.1.0"
|
||||
"@formatjs/intl-listformat": "npm:8.1.0"
|
||||
"@formatjs/intl-locale": "npm:5.1.0"
|
||||
"@formatjs/intl-numberformat": "npm:9.1.0"
|
||||
"@formatjs/intl-pluralrules": "npm:6.1.0"
|
||||
"@formatjs/intl-relativetimeformat": "npm:12.1.0"
|
||||
"@fullcalendar/core": "npm:6.1.20"
|
||||
"@fullcalendar/daygrid": "npm:6.1.20"
|
||||
"@fullcalendar/interaction": "npm:6.1.20"
|
||||
@@ -9066,8 +9054,8 @@ __metadata:
|
||||
"@octokit/rest": "npm:22.0.1"
|
||||
"@replit/codemirror-indentation-markers": "npm:6.5.3"
|
||||
"@rsdoctor/rspack-plugin": "npm:1.4.0"
|
||||
"@rspack/core": "npm:1.7.0"
|
||||
"@rspack/dev-server": "npm:1.1.5"
|
||||
"@rspack/core": "npm:1.6.8"
|
||||
"@rspack/dev-server": "npm:1.1.4"
|
||||
"@swc/helpers": "npm:0.5.18"
|
||||
"@thomasloven/round-slider": "npm:0.6.0"
|
||||
"@tsparticles/engine": "npm:3.9.1"
|
||||
@@ -9136,9 +9124,9 @@ __metadata:
|
||||
html-minifier-terser: "npm:7.2.0"
|
||||
husky: "npm:9.1.7"
|
||||
idb-keyval: "npm:6.2.2"
|
||||
intl-messageformat: "npm:11.0.8"
|
||||
intl-messageformat: "npm:11.0.7"
|
||||
js-yaml: "npm:4.1.1"
|
||||
jsdom: "npm:27.4.0"
|
||||
jsdom: "npm:27.3.0"
|
||||
jszip: "npm:3.10.1"
|
||||
leaflet: "npm:1.9.4"
|
||||
leaflet-draw: "patch:leaflet-draw@npm%3A1.0.4#./.yarn/patches/leaflet-draw-npm-1.0.4-0ca0ebcf65.patch"
|
||||
@@ -9173,7 +9161,7 @@ __metadata:
|
||||
tinykeys: "npm:3.0.0"
|
||||
ts-lit-plugin: "npm:2.0.2"
|
||||
typescript: "npm:5.9.3"
|
||||
typescript-eslint: "npm:8.51.0"
|
||||
typescript-eslint: "npm:8.50.1"
|
||||
ua-parser-js: "npm:2.0.7"
|
||||
vite-tsconfig-paths: "npm:6.0.3"
|
||||
vitest: "npm:4.0.16"
|
||||
@@ -9221,12 +9209,12 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"html-encoding-sniffer@npm:^6.0.0":
|
||||
version: 6.0.0
|
||||
resolution: "html-encoding-sniffer@npm:6.0.0"
|
||||
"html-encoding-sniffer@npm:^4.0.0":
|
||||
version: 4.0.0
|
||||
resolution: "html-encoding-sniffer@npm:4.0.0"
|
||||
dependencies:
|
||||
"@exodus/bytes": "npm:^1.6.0"
|
||||
checksum: 10/97392e45d8aff57f180f62a1b12e62201c8451af68424b8bc3196f78e273891f2df285e5be43a3f28c7ba4badf9524ef305db65c4e4935a9e796afc86d9654b8
|
||||
whatwg-encoding: "npm:^3.1.1"
|
||||
checksum: 10/e86efd493293a5671b8239bd099d42128433bb3c7b0fdc7819282ef8e118a21f5dead0ad6f358e024a4e5c84f17ebb7a9b36075220fac0a6222b207248bede6f
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -9401,7 +9389,7 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"iconv-lite@npm:^0.6.2, iconv-lite@npm:^0.6.3":
|
||||
"iconv-lite@npm:0.6.3, iconv-lite@npm:^0.6.2, iconv-lite@npm:^0.6.3":
|
||||
version: 0.6.3
|
||||
resolution: "iconv-lite@npm:0.6.3"
|
||||
dependencies:
|
||||
@@ -9543,15 +9531,15 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"intl-messageformat@npm:11.0.8":
|
||||
version: 11.0.8
|
||||
resolution: "intl-messageformat@npm:11.0.8"
|
||||
"intl-messageformat@npm:11.0.7":
|
||||
version: 11.0.7
|
||||
resolution: "intl-messageformat@npm:11.0.7"
|
||||
dependencies:
|
||||
"@formatjs/ecma402-abstract": "npm:3.0.7"
|
||||
"@formatjs/fast-memoize": "npm:3.0.2"
|
||||
"@formatjs/icu-messageformat-parser": "npm:3.2.1"
|
||||
"@formatjs/ecma402-abstract": "npm:3.0.6"
|
||||
"@formatjs/fast-memoize": "npm:3.0.1"
|
||||
"@formatjs/icu-messageformat-parser": "npm:3.2.0"
|
||||
tslib: "npm:^2.8.0"
|
||||
checksum: 10/e6b1317c683732c5c9677d897e049669b89569422f96edd8160d11ae252a5795ba62f27812b3ec2be57ca88e49ac336be6608642edbd2c2b36515f55b13385e9
|
||||
checksum: 10/e0f7c93db02a24aaa66c56cea8838abbbc20aa0dc08a0db784d9f575c6440a7b05bf40294678d4216b0d6dad1264b037096308d1a06f11e2052b4455d6cb8ea5
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -10197,17 +10185,16 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"jsdom@npm:27.4.0":
|
||||
version: 27.4.0
|
||||
resolution: "jsdom@npm:27.4.0"
|
||||
"jsdom@npm:27.3.0":
|
||||
version: 27.3.0
|
||||
resolution: "jsdom@npm:27.3.0"
|
||||
dependencies:
|
||||
"@acemir/cssom": "npm:^0.9.28"
|
||||
"@asamuzakjp/dom-selector": "npm:^6.7.6"
|
||||
"@exodus/bytes": "npm:^1.6.0"
|
||||
cssstyle: "npm:^5.3.4"
|
||||
data-urls: "npm:^6.0.0"
|
||||
decimal.js: "npm:^10.6.0"
|
||||
html-encoding-sniffer: "npm:^6.0.0"
|
||||
html-encoding-sniffer: "npm:^4.0.0"
|
||||
http-proxy-agent: "npm:^7.0.2"
|
||||
https-proxy-agent: "npm:^7.0.6"
|
||||
is-potential-custom-element-name: "npm:^1.0.1"
|
||||
@@ -10217,6 +10204,7 @@ __metadata:
|
||||
tough-cookie: "npm:^6.0.0"
|
||||
w3c-xmlserializer: "npm:^5.0.0"
|
||||
webidl-conversions: "npm:^8.0.0"
|
||||
whatwg-encoding: "npm:^3.1.1"
|
||||
whatwg-mimetype: "npm:^4.0.0"
|
||||
whatwg-url: "npm:^15.1.0"
|
||||
ws: "npm:^8.18.3"
|
||||
@@ -10226,7 +10214,7 @@ __metadata:
|
||||
peerDependenciesMeta:
|
||||
canvas:
|
||||
optional: true
|
||||
checksum: 10/7c6db85ab91183b95204648e086cfc09ecee36d9e8fee0bb5d68e27543eca632de0af6d43de461176a7823820543d5c53561778af5f712b1a1cd28bfac084d51
|
||||
checksum: 10/c650e954df04a80e7309984450ce764ae2a840810b9575b20204194dee3c5cff42e65526519cb58b946ffe66a058b7b763bad4814b3903a9c86a2c1651b8b74b
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -13873,12 +13861,12 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"ts-api-utils@npm:^2.2.0":
|
||||
version: 2.3.0
|
||||
resolution: "ts-api-utils@npm:2.3.0"
|
||||
"ts-api-utils@npm:^2.1.0":
|
||||
version: 2.1.0
|
||||
resolution: "ts-api-utils@npm:2.1.0"
|
||||
peerDependencies:
|
||||
typescript: ">=4.8.4"
|
||||
checksum: 10/33472e0aa22222947512bcbdad37f078a6a4fb8f79e5ce271267f3520e7303ab204067cc7eaa508b2e4f91539b0bb9ecb9254f5f62397d27cf52dc5e73540a8f
|
||||
checksum: 10/02e55b49d9617c6eebf8aadfa08d3ca03ca0cd2f0586ad34117fdfc7aa3cd25d95051843fde9df86665ad907f99baed179e7a117b11021417f379e4d2614eacd
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -14041,18 +14029,18 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"typescript-eslint@npm:8.51.0":
|
||||
version: 8.51.0
|
||||
resolution: "typescript-eslint@npm:8.51.0"
|
||||
"typescript-eslint@npm:8.50.1":
|
||||
version: 8.50.1
|
||||
resolution: "typescript-eslint@npm:8.50.1"
|
||||
dependencies:
|
||||
"@typescript-eslint/eslint-plugin": "npm:8.51.0"
|
||||
"@typescript-eslint/parser": "npm:8.51.0"
|
||||
"@typescript-eslint/typescript-estree": "npm:8.51.0"
|
||||
"@typescript-eslint/utils": "npm:8.51.0"
|
||||
"@typescript-eslint/eslint-plugin": "npm:8.50.1"
|
||||
"@typescript-eslint/parser": "npm:8.50.1"
|
||||
"@typescript-eslint/typescript-estree": "npm:8.50.1"
|
||||
"@typescript-eslint/utils": "npm:8.50.1"
|
||||
peerDependencies:
|
||||
eslint: ^8.57.0 || ^9.0.0
|
||||
typescript: ">=4.8.4 <6.0.0"
|
||||
checksum: 10/491dc8b6fb56f69c94515c31f6ff1db961d79c06e647f5db55647cca34dacedff4bab879a211559fc46e925a7a85ff60a1a68b7eac1e8a5db37828c57a65c718
|
||||
checksum: 10/4cd6d67fcea16c5b766b4d60492618825f1e8ca92dcdb036b40e86fa7cebd1b0549e8d6de74215516b719edb326fd26763aa5750d2b39ec52c45b4a08e1ef78d
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -14813,6 +14801,15 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"whatwg-encoding@npm:^3.1.1":
|
||||
version: 3.1.1
|
||||
resolution: "whatwg-encoding@npm:3.1.1"
|
||||
dependencies:
|
||||
iconv-lite: "npm:0.6.3"
|
||||
checksum: 10/bbef815eb67f91487c7f2ef96329743f5fd8357d7d62b1119237d25d41c7e452dff8197235b2d3c031365a17f61d3bb73ca49d0ed1582475aa4a670815e79534
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"whatwg-fetch@npm:^3.4.1":
|
||||
version: 3.6.20
|
||||
resolution: "whatwg-fetch@npm:3.6.20"
|
||||
|
||||
Reference in New Issue
Block a user