chore: remove dependency with custom-card-helpers
This commit is contained in:
parent
9ea1b515a3
commit
331ed6ad53
|
@ -68,7 +68,6 @@
|
|||
"dependencies": {
|
||||
"@ctrl/tinycolor": "^3.1.6",
|
||||
"@material/mwc-ripple": "^0.19.1",
|
||||
"custom-card-helpers": "^1.9.0",
|
||||
"fast-copy": "^2.1.0",
|
||||
"home-assistant-js-websocket": "^8.2.0",
|
||||
"lit": "^2.7.6",
|
||||
|
|
|
@ -2,7 +2,7 @@ import { noChange } from 'lit-html';
|
|||
// import '@material/mwc-ripple';
|
||||
// tslint:disable-next-line
|
||||
import { Ripple } from '@material/mwc-ripple';
|
||||
import { myFireEvent } from './my-fire-event';
|
||||
import { fireEvent } from './common/fire-event';
|
||||
import { deepEqual } from './deep-equal';
|
||||
import { AttributePart, Directive, DirectiveParameters, directive } from 'lit-html/directive';
|
||||
|
||||
|
@ -154,7 +154,7 @@ class ActionHandler extends HTMLElement implements ActionHandler {
|
|||
if (options.repeat && !this.isRepeating) {
|
||||
this.isRepeating = true;
|
||||
this.repeatTimeout = setInterval(() => {
|
||||
myFireEvent(element, 'action', { action: 'hold' });
|
||||
fireEvent(element, 'action', { action: 'hold' });
|
||||
}, options.repeat);
|
||||
}
|
||||
}, this.holdTime);
|
||||
|
@ -186,21 +186,21 @@ class ActionHandler extends HTMLElement implements ActionHandler {
|
|||
}
|
||||
if (options.hasHold && this.held) {
|
||||
if (!options.repeat) {
|
||||
myFireEvent(target, 'action', { action: 'hold' });
|
||||
fireEvent(target, 'action', { action: 'hold' });
|
||||
}
|
||||
} else if (options.hasDoubleClick) {
|
||||
if ((ev.type === 'click' && (ev as MouseEvent).detail < 2) || !this.dblClickTimeout) {
|
||||
this.dblClickTimeout = window.setTimeout(() => {
|
||||
this.dblClickTimeout = undefined;
|
||||
myFireEvent(target, 'action', { action: 'tap' });
|
||||
fireEvent(target, 'action', { action: 'tap' });
|
||||
}, 250);
|
||||
} else {
|
||||
clearTimeout(this.dblClickTimeout);
|
||||
this.dblClickTimeout = undefined;
|
||||
myFireEvent(target, 'action', { action: 'double_tap' });
|
||||
fireEvent(target, 'action', { action: 'double_tap' });
|
||||
}
|
||||
} else {
|
||||
myFireEvent(target, 'action', { action: 'tap' });
|
||||
fireEvent(target, 'action', { action: 'tap' });
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
export const atLeastVersion = (version: string, major: number, minor: number): boolean => {
|
||||
const [haMajor, haMinor] = version.split('.', 2);
|
||||
return Number(haMajor) > major || (Number(haMajor) === major && Number(haMinor) >= minor);
|
||||
};
|
|
@ -9,7 +9,6 @@ import { styleMap, StyleInfo } from 'lit-html/directives/style-map';
|
|||
import { unsafeHTML } from 'lit-html/directives/unsafe-html';
|
||||
import { classMap, ClassInfo } from 'lit-html/directives/class-map';
|
||||
import { HassEntity } from 'home-assistant-js-websocket';
|
||||
import { timerTimeRemaining, createThing, DOMAINS_TOGGLE, computeStateDomain } from 'custom-card-helpers';
|
||||
import { LovelaceCard } from './types/lovelace';
|
||||
import {
|
||||
ButtonCardConfig,
|
||||
|
@ -36,17 +35,20 @@ import {
|
|||
getLovelaceCast,
|
||||
secondsToDuration,
|
||||
durationToSeconds,
|
||||
computeStateDomain,
|
||||
} from './helpers';
|
||||
import { createThing } from './common/create-thing';
|
||||
import { styles } from './styles';
|
||||
import { computeStateDisplay } from './compute_state_display';
|
||||
import { computeStateDisplay } from './common/compute_state_display';
|
||||
import copy from 'fast-copy';
|
||||
import * as pjson from '../package.json';
|
||||
import { deepEqual } from './deep-equal';
|
||||
import { stateColorCss } from './state_color';
|
||||
import { ON } from './common/const';
|
||||
import { stateColorCss } from './common/state_color';
|
||||
import { ON, DOMAINS_TOGGLE } from './common/const';
|
||||
import { handleAction } from './handle-action';
|
||||
import { myFireEvent } from './my-fire-event';
|
||||
import { fireEvent } from './common/fire-event';
|
||||
import { HomeAssistant } from './types/homeassistant';
|
||||
import { timerTimeRemaining } from './common/timer';
|
||||
|
||||
let helpers = (window as any).cardHelpers;
|
||||
const helperPromise = new Promise<void>(async (resolve) => {
|
||||
|
@ -145,7 +147,7 @@ class ButtonCard extends LitElement {
|
|||
else {
|
||||
const element = createThing(config);
|
||||
helperPromise.then(() => {
|
||||
myFireEvent(element, 'll-rebuild', {});
|
||||
fireEvent(element, 'll-rebuild', {});
|
||||
});
|
||||
return element;
|
||||
}
|
||||
|
|
|
@ -1,14 +1,19 @@
|
|||
import { HassConfig, HassEntity } from 'home-assistant-js-websocket';
|
||||
import { LocalizeFunc } from 'custom-card-helpers';
|
||||
import { computeDomain, isNumericFromAttributes } from './helpers';
|
||||
import { formatNumber, getNumberFormatOptions, blankBeforePercent } from './common/format_number';
|
||||
import { EntityRegistryDisplayEntry, FrontendLocaleData, HomeAssistant, TimeZone } from './types/homeassistant';
|
||||
import { UNIT_TO_MILLISECOND_CONVERT, formatDuration } from './common/duration';
|
||||
import { formatDateTime } from './common/format_date_time';
|
||||
import { formatDate } from './common/format_date';
|
||||
import { formatTime } from './common/format_time';
|
||||
import { UPDATE_SUPPORT_PROGRESS, updateIsInstallingFromAttributes } from './common/update';
|
||||
import { supportsFeatureFromAttributes } from './common/supports-features';
|
||||
import { computeDomain, isNumericFromAttributes } from '../helpers';
|
||||
import { formatNumber, getNumberFormatOptions, blankBeforePercent } from './format_number';
|
||||
import {
|
||||
LocalizeFunc,
|
||||
EntityRegistryDisplayEntry,
|
||||
FrontendLocaleData,
|
||||
HomeAssistant,
|
||||
TimeZone,
|
||||
} from '../types/homeassistant';
|
||||
import { UNIT_TO_MILLISECOND_CONVERT, formatDuration } from './duration';
|
||||
import { formatDateTime } from './format_date_time';
|
||||
import { formatDate } from './format_date';
|
||||
import { formatTime } from './format_time';
|
||||
import { UPDATE_SUPPORT_PROGRESS, updateIsInstallingFromAttributes } from './update';
|
||||
import { supportsFeatureFromAttributes } from './supports-features';
|
||||
|
||||
const UNAVAILABLE = 'unavailable';
|
||||
const UNKNOWN = 'unknown';
|
|
@ -1,10 +1,10 @@
|
|||
export const UNAVAILABLE = 'unavailable';
|
||||
export const BINARY_STATE_ON = 'on';
|
||||
export const BINARY_STATE_OFF = 'off';
|
||||
const arrayLiteralIncludes = <T extends readonly unknown[]>(array: T) => (
|
||||
searchElement: unknown,
|
||||
fromIndex?: number,
|
||||
): searchElement is T[number] => array.includes(searchElement as T[number], fromIndex);
|
||||
const arrayLiteralIncludes =
|
||||
<T extends readonly unknown[]>(array: T) =>
|
||||
(searchElement: unknown, fromIndex?: number): searchElement is T[number] =>
|
||||
array.includes(searchElement as T[number], fromIndex);
|
||||
|
||||
export const UNKNOWN = 'unknown';
|
||||
export const ON = 'on';
|
||||
|
@ -15,3 +15,5 @@ export const OFF_STATES = [UNAVAILABLE, UNKNOWN, OFF] as const;
|
|||
|
||||
export const isUnavailableState = arrayLiteralIncludes(UNAVAILABLE_STATES);
|
||||
export const isOffState = arrayLiteralIncludes(OFF_STATES);
|
||||
|
||||
export const DOMAINS_TOGGLE = new Set(['fan', 'input_boolean', 'light', 'switch', 'group', 'automation', 'humidifier']);
|
||||
|
|
|
@ -0,0 +1,96 @@
|
|||
import { fireEvent } from './fire-event';
|
||||
|
||||
const SPECIAL_TYPES = new Set(['call-service', 'divider', 'section', 'weblink', 'cast', 'select']);
|
||||
const DOMAIN_TO_ELEMENT_TYPE = {
|
||||
alert: 'toggle',
|
||||
automation: 'toggle',
|
||||
climate: 'climate',
|
||||
cover: 'cover',
|
||||
fan: 'toggle',
|
||||
group: 'group',
|
||||
input_boolean: 'toggle',
|
||||
input_number: 'input-number',
|
||||
input_select: 'input-select',
|
||||
input_text: 'input-text',
|
||||
light: 'toggle',
|
||||
lock: 'lock',
|
||||
media_player: 'media-player',
|
||||
remote: 'toggle',
|
||||
scene: 'scene',
|
||||
script: 'script',
|
||||
sensor: 'sensor',
|
||||
timer: 'timer',
|
||||
switch: 'toggle',
|
||||
vacuum: 'toggle',
|
||||
// Temporary. Once climate is rewritten,
|
||||
// water heater should get it's own row.
|
||||
water_heater: 'climate',
|
||||
input_datetime: 'input-datetime',
|
||||
};
|
||||
|
||||
declare global {
|
||||
// eslint-disable-next-line
|
||||
interface HASSDomEvents {
|
||||
'll-rebuild': Record<string, unknown>;
|
||||
'll-badge-rebuild': Record<string, unknown>;
|
||||
}
|
||||
}
|
||||
|
||||
export const createThing = (cardConfig, isRow = false) => {
|
||||
const _createError = (error, config) => {
|
||||
return _createThing('hui-error-card', {
|
||||
type: 'error',
|
||||
error,
|
||||
config,
|
||||
});
|
||||
};
|
||||
|
||||
const _createThing = (tag, config) => {
|
||||
const element = window.document.createElement(tag);
|
||||
try {
|
||||
// Preventing an error-card infinity loop: https://github.com/custom-cards/custom-card-helpers/issues/54
|
||||
if (!element.setConfig) return;
|
||||
element.setConfig(config);
|
||||
} catch (err) {
|
||||
console.error(tag, err);
|
||||
return _createError((err as Error).message, config);
|
||||
}
|
||||
return element;
|
||||
};
|
||||
|
||||
if (!cardConfig || typeof cardConfig !== 'object' || (!isRow && !cardConfig.type))
|
||||
return _createError('No type defined', cardConfig);
|
||||
let tag = cardConfig.type;
|
||||
if (tag && tag.startsWith('custom:')) {
|
||||
tag = tag.substr('custom:'.length);
|
||||
} else if (isRow) {
|
||||
if (SPECIAL_TYPES.has(tag)) {
|
||||
tag = `hui-${tag}-row`;
|
||||
} else {
|
||||
if (!cardConfig.entity) {
|
||||
return _createError('Invalid config given.', cardConfig);
|
||||
}
|
||||
|
||||
const domain = cardConfig.entity.split('.', 1)[0];
|
||||
tag = `hui-${DOMAIN_TO_ELEMENT_TYPE[domain] || 'text'}-entity-row`;
|
||||
}
|
||||
} else {
|
||||
tag = `hui-${tag}-card`;
|
||||
}
|
||||
|
||||
if (customElements.get(tag)) return _createThing(tag, cardConfig);
|
||||
|
||||
// If element doesn't exist (yet) create an error
|
||||
const element = _createError(`Custom element doesn't exist: ${cardConfig.type}.`, cardConfig);
|
||||
element.style.display = 'None';
|
||||
const timer = setTimeout(() => {
|
||||
element.style.display = '';
|
||||
}, 2000);
|
||||
// Remove error if element is defined later
|
||||
customElements.whenDefined(cardConfig.type).then(() => {
|
||||
clearTimeout(timer);
|
||||
fireEvent(element, 'll-rebuild', {}, element);
|
||||
});
|
||||
|
||||
return element;
|
||||
};
|
|
@ -55,7 +55,7 @@ export interface HASSDomEvent<T> extends Event {
|
|||
* @return {Event} The new event that was fired.
|
||||
*/
|
||||
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
|
||||
export const myFireEvent = <HassEvent extends ValidHassDomEvent>(
|
||||
export const fireEvent = <HassEvent extends ValidHassDomEvent>(
|
||||
node: HTMLElement | Window,
|
||||
type: HassEvent,
|
||||
detail?: HASSDomEvents[HassEvent],
|
|
@ -1,11 +1,11 @@
|
|||
/** Return an color representing a state. */
|
||||
import { HassEntity } from 'home-assistant-js-websocket';
|
||||
import { UNAVAILABLE } from './common/const';
|
||||
import { computeGroupDomain, GroupEntity } from './helpers';
|
||||
import { computeCssVariable } from './helpers';
|
||||
import { computeDomain, slugify } from './helpers';
|
||||
import { batteryStateColorProperty } from './helpers';
|
||||
import { stateActive } from './helpers';
|
||||
import { UNAVAILABLE } from './const';
|
||||
import { computeGroupDomain, GroupEntity } from '../helpers';
|
||||
import { computeCssVariable } from '../helpers';
|
||||
import { computeDomain, slugify } from '../helpers';
|
||||
import { batteryStateColorProperty } from '../helpers';
|
||||
import { stateActive } from '../helpers';
|
||||
|
||||
const STATE_COLORED_DOMAIN = new Set([
|
||||
'alarm_control_panel',
|
|
@ -0,0 +1,17 @@
|
|||
import { HassEntity } from 'home-assistant-js-websocket';
|
||||
import { durationToSeconds } from '../helpers';
|
||||
|
||||
export const timerTimeRemaining = (stateObj: HassEntity): undefined | number => {
|
||||
if (!stateObj.attributes.remaining) {
|
||||
return undefined;
|
||||
}
|
||||
let timeRemaining = durationToSeconds(stateObj.attributes.remaining);
|
||||
|
||||
if (stateObj.state === 'active') {
|
||||
const now = new Date().getTime();
|
||||
const madeActive = new Date(stateObj.last_changed).getTime();
|
||||
timeRemaining = Math.max(timeRemaining - (now - madeActive) / 1000, 0);
|
||||
}
|
||||
|
||||
return timeRemaining;
|
||||
};
|
|
@ -1,4 +1,4 @@
|
|||
import { myFireEvent } from './my-fire-event';
|
||||
import { fireEvent } from './common/fire-event';
|
||||
import { ActionConfig } from './types/types';
|
||||
import { HomeAssistant } from './types/homeassistant';
|
||||
|
||||
|
@ -16,7 +16,7 @@ export const handleAction = async (
|
|||
config: ActionConfigParams,
|
||||
action: string,
|
||||
): Promise<void> => {
|
||||
myFireEvent(node, 'hass-action', { config, action });
|
||||
fireEvent(node, 'hass-action', { config, action });
|
||||
};
|
||||
|
||||
type ActionParams = { config: ActionConfigParams; action: string };
|
||||
|
|
|
@ -1,10 +1,16 @@
|
|||
import { PropertyValues } from 'lit';
|
||||
import tinycolor, { TinyColor } from '@ctrl/tinycolor';
|
||||
import { HomeAssistant, LovelaceConfig } from 'custom-card-helpers';
|
||||
import { HomeAssistant } from './types/homeassistant';
|
||||
import { LovelaceConfig } from './types/lovelace';
|
||||
import { StateConfig } from './types/types';
|
||||
import { HassEntity, HassEntityAttributeBase, HassEntityBase } from 'home-assistant-js-websocket';
|
||||
import { OFF, UNAVAILABLE, isUnavailableState } from './common/const';
|
||||
|
||||
export const atLeastVersion = (version: string, major: number, minor: number): boolean => {
|
||||
const [haMajor, haMinor] = version.split('.', 2);
|
||||
return Number(haMajor) > major || (Number(haMajor) === major && Number(haMinor) >= minor);
|
||||
};
|
||||
|
||||
export function computeDomain(entityId: string): string {
|
||||
return entityId.substr(0, entityId.indexOf('.'));
|
||||
}
|
||||
|
@ -13,6 +19,8 @@ export function computeEntity(entityId: string): string {
|
|||
return entityId.substr(entityId.indexOf('.') + 1);
|
||||
}
|
||||
|
||||
export const computeStateDomain = (stateObj: HassEntity) => computeDomain(stateObj.entity_id);
|
||||
|
||||
export function getColorFromVariable(elt: Element, color: string): string {
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
const colorArray: string[] = [];
|
||||
|
|
92
yarn.lock
92
yarn.lock
|
@ -326,52 +326,6 @@
|
|||
minimatch "^3.0.4"
|
||||
strip-json-comments "^3.1.1"
|
||||
|
||||
"@formatjs/ecma402-abstract@1.11.4":
|
||||
version "1.11.4"
|
||||
resolved "https://registry.yarnpkg.com/@formatjs/ecma402-abstract/-/ecma402-abstract-1.11.4.tgz#b962dfc4ae84361f9f08fbce411b4e4340930eda"
|
||||
integrity sha512-EBikYFp2JCdIfGEb5G9dyCkTGDmC57KSHhRQOC3aYxoPWVZvfWCDjZwkGYHN7Lis/fmuWl906bnNTJifDQ3sXw==
|
||||
dependencies:
|
||||
"@formatjs/intl-localematcher" "0.2.25"
|
||||
tslib "^2.1.0"
|
||||
|
||||
"@formatjs/fast-memoize@1.2.1":
|
||||
version "1.2.1"
|
||||
resolved "https://registry.yarnpkg.com/@formatjs/fast-memoize/-/fast-memoize-1.2.1.tgz#e6f5aee2e4fd0ca5edba6eba7668e2d855e0fc21"
|
||||
integrity sha512-Rg0e76nomkz3vF9IPlKeV+Qynok0r7YZjL6syLz4/urSg0IbjPZCB/iYUMNsYA643gh4mgrX3T7KEIFIxJBQeg==
|
||||
dependencies:
|
||||
tslib "^2.1.0"
|
||||
|
||||
"@formatjs/icu-messageformat-parser@2.1.0":
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.1.0.tgz#a54293dd7f098d6a6f6a084ab08b6d54a3e8c12d"
|
||||
integrity sha512-Qxv/lmCN6hKpBSss2uQ8IROVnta2r9jd3ymUEIjm2UyIkUCHVcbUVRGL/KS/wv7876edvsPe+hjHVJ4z8YuVaw==
|
||||
dependencies:
|
||||
"@formatjs/ecma402-abstract" "1.11.4"
|
||||
"@formatjs/icu-skeleton-parser" "1.3.6"
|
||||
tslib "^2.1.0"
|
||||
|
||||
"@formatjs/icu-skeleton-parser@1.3.6":
|
||||
version "1.3.6"
|
||||
resolved "https://registry.yarnpkg.com/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.3.6.tgz#4ce8c0737d6f07b735288177049e97acbf2e8964"
|
||||
integrity sha512-I96mOxvml/YLrwU2Txnd4klA7V8fRhb6JG/4hm3VMNmeJo1F03IpV2L3wWt7EweqNLES59SZ4d6hVOPCSf80Bg==
|
||||
dependencies:
|
||||
"@formatjs/ecma402-abstract" "1.11.4"
|
||||
tslib "^2.1.0"
|
||||
|
||||
"@formatjs/intl-localematcher@0.2.25":
|
||||
version "0.2.25"
|
||||
resolved "https://registry.yarnpkg.com/@formatjs/intl-localematcher/-/intl-localematcher-0.2.25.tgz#60892fe1b271ec35ba07a2eb018a2dd7bca6ea3a"
|
||||
integrity sha512-YmLcX70BxoSopLFdLr1Ds99NdlTI2oWoLbaUW2M406lxOIPzE1KQhRz2fPUkq34xVZQaihCoU29h0KK7An3bhA==
|
||||
dependencies:
|
||||
tslib "^2.1.0"
|
||||
|
||||
"@formatjs/intl-utils@^3.8.4":
|
||||
version "3.8.4"
|
||||
resolved "https://registry.yarnpkg.com/@formatjs/intl-utils/-/intl-utils-3.8.4.tgz#291baac91001db428fc3275c515a3e40fbe95945"
|
||||
integrity sha512-j5C6NyfKevIxsfLK8KwO1C0vvP7k1+h4A9cFpc+cr6mEwCc1sPkr17dzh0Ke6k9U5pQccAQoXdcNBl3IYa4+ZQ==
|
||||
dependencies:
|
||||
emojis-list "^3.0.0"
|
||||
|
||||
"@gar/promisify@^1.0.1":
|
||||
version "1.1.3"
|
||||
resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6"
|
||||
|
@ -2332,19 +2286,6 @@ crypto-random-string@^2.0.0:
|
|||
resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5"
|
||||
integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==
|
||||
|
||||
custom-card-helpers@^1.9.0:
|
||||
version "1.9.0"
|
||||
resolved "https://registry.yarnpkg.com/custom-card-helpers/-/custom-card-helpers-1.9.0.tgz#dac7bb7a531101f4c83096b26a8be8ccad70d8c0"
|
||||
integrity sha512-5IW4OXq3MiiCqDvqeu+MYsM1NmntKW1WfJhyJFsdP2tbzqEI4BOnqRz2qzdp08lE4QLVhYfRLwe0WAqgQVNeFg==
|
||||
dependencies:
|
||||
"@formatjs/intl-utils" "^3.8.4"
|
||||
home-assistant-js-websocket "^6.0.1"
|
||||
intl-messageformat "^9.11.1"
|
||||
lit "^2.1.1"
|
||||
rollup "^2.63.0"
|
||||
superstruct "^0.15.3"
|
||||
typescript "^4.5.4"
|
||||
|
||||
cyclist@^1.0.1:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.2.tgz#673b5f233bf34d8e602b949429f8171d9121bea3"
|
||||
|
@ -2631,11 +2572,6 @@ emoji-regex@^8.0.0:
|
|||
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
|
||||
integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
|
||||
|
||||
emojis-list@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78"
|
||||
integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==
|
||||
|
||||
encoding@^0.1.11, encoding@^0.1.12:
|
||||
version "0.1.13"
|
||||
resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9"
|
||||
|
@ -3870,11 +3806,6 @@ has@^1.0.3:
|
|||
dependencies:
|
||||
function-bind "^1.1.1"
|
||||
|
||||
home-assistant-js-websocket@^6.0.1:
|
||||
version "6.1.1"
|
||||
resolved "https://registry.yarnpkg.com/home-assistant-js-websocket/-/home-assistant-js-websocket-6.1.1.tgz#87ba846753c4fb58a2e5ace6bb15a82689fd0735"
|
||||
integrity sha512-TnZFzF4mn5F/v0XKUTK2GMQXrn/+eQpgaSDSELl6U0HSwSbFwRhGWLz330YT+hiKMspDflamsye//RPL+zwhDw==
|
||||
|
||||
home-assistant-js-websocket@^8.2.0:
|
||||
version "8.2.0"
|
||||
resolved "https://registry.yarnpkg.com/home-assistant-js-websocket/-/home-assistant-js-websocket-8.2.0.tgz#3505bf004cc3026c5d0cfdae5c031a44b0fcb01b"
|
||||
|
@ -4120,16 +4051,6 @@ internal-slot@^1.0.5:
|
|||
has "^1.0.3"
|
||||
side-channel "^1.0.4"
|
||||
|
||||
intl-messageformat@^9.11.1:
|
||||
version "9.13.0"
|
||||
resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-9.13.0.tgz#97360b73bd82212e4f6005c712a4a16053165468"
|
||||
integrity sha512-7sGC7QnSQGa5LZP7bXLDhVDtQOeKGeBFGHF2Y8LVBwYZoQZCgWeKoPGTa5GMG8g/TzDgeXuYJQis7Ggiw2xTOw==
|
||||
dependencies:
|
||||
"@formatjs/ecma402-abstract" "1.11.4"
|
||||
"@formatjs/fast-memoize" "1.2.1"
|
||||
"@formatjs/icu-messageformat-parser" "2.1.0"
|
||||
tslib "^2.1.0"
|
||||
|
||||
into-stream@^6.0.0:
|
||||
version "6.0.0"
|
||||
resolved "https://registry.yarnpkg.com/into-stream/-/into-stream-6.0.0.tgz#4bfc1244c0128224e18b8870e85b2de8e66c6702"
|
||||
|
@ -5046,7 +4967,7 @@ lit-html@^2.7.0, lit-html@^2.7.5:
|
|||
dependencies:
|
||||
"@types/trusted-types" "^2.0.2"
|
||||
|
||||
lit@^2.1.1, lit@^2.7.6:
|
||||
lit@^2.7.6:
|
||||
version "2.7.6"
|
||||
resolved "https://registry.yarnpkg.com/lit/-/lit-2.7.6.tgz#810007b876ed43e0c70124de91831921598b1665"
|
||||
integrity sha512-1amFHA7t4VaaDe+vdQejSVBklwtH9svGoG6/dZi9JhxtJBBlqY5D1RV7iLUYY0trCqQc4NfhYYZilZiVHt7Hxg==
|
||||
|
@ -7253,7 +7174,7 @@ rollup-pluginutils@^2.8.2:
|
|||
dependencies:
|
||||
estree-walker "^0.6.1"
|
||||
|
||||
rollup@^2.33.1, rollup@^2.63.0:
|
||||
rollup@^2.33.1:
|
||||
version "2.79.1"
|
||||
resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.79.1.tgz#bedee8faef7c9f93a2647ac0108748f497f081c7"
|
||||
integrity sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==
|
||||
|
@ -7913,11 +7834,6 @@ strip-json-comments@~2.0.1:
|
|||
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
|
||||
integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==
|
||||
|
||||
superstruct@^0.15.3:
|
||||
version "0.15.5"
|
||||
resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-0.15.5.tgz#0f0a8d3ce31313f0d84c6096cd4fa1bfdedc9dab"
|
||||
integrity sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ==
|
||||
|
||||
supports-color@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
|
||||
|
@ -8182,7 +8098,7 @@ tslib@^1.10.0, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3:
|
|||
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
|
||||
integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
|
||||
|
||||
tslib@^2.1.0, tslib@^2.5.3:
|
||||
tslib@^2.5.3:
|
||||
version "2.6.0"
|
||||
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.0.tgz#b295854684dbda164e181d259a22cd779dcd7bc3"
|
||||
integrity sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA==
|
||||
|
@ -8316,7 +8232,7 @@ typescript@^3.8.3, typescript@^3.9.3:
|
|||
resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.10.tgz#70f3910ac7a51ed6bef79da7800690b19bf778b8"
|
||||
integrity sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==
|
||||
|
||||
typescript@^4.0.5, typescript@^4.5.4:
|
||||
typescript@^4.0.5:
|
||||
version "4.9.5"
|
||||
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a"
|
||||
integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==
|
||||
|
|
Loading…
Reference in New Issue