chore: Enforce consistent type imports via @typescript-eslint/consistent-type-imports (#2545)

This commit is contained in:
Dermot Duffy
2026-06-30 17:45:13 -07:00
committed by dermotduffy
parent 8f4ebcc0de
commit 7dc29865b8
589 changed files with 2419 additions and 2103 deletions
+2 -2
View File
@@ -1,5 +1,5 @@
import { TemplateRenderer } from '../../card-controller/templates';
import { ConditionState } from '../conditions/types';
import type { TemplateRenderer } from '../../card-controller/templates';
import type { ConditionState } from '../conditions/types';
// The shared `enabled` gate for triggers and conditions (equivalent to HA's
// `vol.Any(boolean, template)`): a boolean, or a template rendered against the
@@ -1,6 +1,6 @@
import { TemplateRenderer } from '../../card-controller/templates';
import { NumericStateBase } from '../../config/schema/condition-trigger/common/numeric-state';
import { ConditionState } from '../conditions/types';
import type { TemplateRenderer } from '../../card-controller/templates';
import type { NumericStateBase } from '../../config/schema/condition-trigger/common/numeric-state';
import type { ConditionState } from '../conditions/types';
// The numeric value of `entityID` to compare: the rendered `value_template`,
// else the `attribute`, else the state. Returns null when the entity is absent
+3 -3
View File
@@ -1,7 +1,7 @@
import { TemplateRenderer } from '../../card-controller/templates';
import { TimePeriod } from '../../config/schema/common/time-period';
import type { TemplateRenderer } from '../../card-controller/templates';
import type { TimePeriod } from '../../config/schema/common/time-period';
import { isRecord } from '../../utils/basic';
import { ConditionState } from '../conditions/types';
import type { ConditionState } from '../conditions/types';
// Parses a Home Assistant time-period value (a condition/trigger `for:`) to
// seconds, matching HA's `cv.time_period`:
@@ -1,12 +1,12 @@
import { TemplateRenderer } from '../../card-controller/templates';
import { Condition } from '../../config/schema/condition-trigger/conditions/types';
import type { Condition } from '../../config/schema/condition-trigger/conditions/types';
import { isEnabled } from '../common/is-enabled';
import {
import type {
ConditionEvaluator,
ExternalInvalidationUnsubscribeCallback,
} from './conditions/types';
import { createConditionEvaluator } from './factory';
import {
import type {
ConditionsEvaluationResult,
ConditionsListener,
ConditionsManagerReadonlyInterface,
@@ -1,4 +1,4 @@
import { ConditionsEvaluationResult, ConditionState } from '../types';
import type { ConditionsEvaluationResult, ConditionState } from '../types';
import { CompositeConditionEvaluator } from './composite';
export class AndConditionEvaluator extends CompositeConditionEvaluator {
@@ -1,6 +1,6 @@
import { CallBase } from '../../../config/schema/condition-trigger/common/call';
import { ConditionsEvaluationResult, ConditionState } from '../types';
import { ConditionEvaluator } from './types';
import type { CallBase } from '../../../config/schema/condition-trigger/common/call';
import type { ConditionsEvaluationResult, ConditionState } from '../types';
import type { ConditionEvaluator } from './types';
export class CallConditionEvaluator implements ConditionEvaluator {
private _condition: CallBase;
@@ -1,6 +1,6 @@
import { CameraBase } from '../../../config/schema/condition-trigger/common/camera';
import { ConditionsEvaluationResult, ConditionState } from '../types';
import { ConditionEvaluator } from './types';
import type { CameraBase } from '../../../config/schema/condition-trigger/common/camera';
import type { ConditionsEvaluationResult, ConditionState } from '../types';
import type { ConditionEvaluator } from './types';
export class CameraConditionEvaluator implements ConditionEvaluator {
private _condition: CameraBase;
@@ -1,5 +1,5 @@
import { ConditionsEvaluationResult, ConditionState } from '../types';
import { ConditionEvaluator, ExternalInvalidationSource } from './types';
import type { ConditionsEvaluationResult, ConditionState } from '../types';
import type { ConditionEvaluator, ExternalInvalidationSource } from './types';
/**
* Base class for the `or`/`and`/`not` composites: each holds child evaluators
@@ -1,6 +1,6 @@
import { DisplayModeBase } from '../../../config/schema/condition-trigger/common/display-mode';
import { ConditionsEvaluationResult, ConditionState } from '../types';
import { ConditionEvaluator } from './types';
import type { DisplayModeBase } from '../../../config/schema/condition-trigger/common/display-mode';
import type { ConditionsEvaluationResult, ConditionState } from '../types';
import type { ConditionEvaluator } from './types';
export class DisplayModeConditionEvaluator implements ConditionEvaluator {
private _condition: DisplayModeBase;
@@ -1,6 +1,6 @@
import { ExpandBase } from '../../../config/schema/condition-trigger/common/expand';
import { ConditionsEvaluationResult, ConditionState } from '../types';
import { ConditionEvaluator } from './types';
import type { ExpandBase } from '../../../config/schema/condition-trigger/common/expand';
import type { ConditionsEvaluationResult, ConditionState } from '../types';
import type { ConditionEvaluator } from './types';
export class ExpandConditionEvaluator implements ConditionEvaluator {
private _condition: ExpandBase;
@@ -1,6 +1,6 @@
import { FullscreenBase } from '../../../config/schema/condition-trigger/common/fullscreen';
import { ConditionsEvaluationResult, ConditionState } from '../types';
import { ConditionEvaluator } from './types';
import type { FullscreenBase } from '../../../config/schema/condition-trigger/common/fullscreen';
import type { ConditionsEvaluationResult, ConditionState } from '../types';
import type { ConditionEvaluator } from './types';
export class FullscreenConditionEvaluator implements ConditionEvaluator {
private _condition: FullscreenBase;
@@ -1,5 +1,5 @@
import { ConditionsEvaluationResult, ConditionState } from '../types';
import { ConditionEvaluator } from './types';
import type { ConditionsEvaluationResult, ConditionState } from '../types';
import type { ConditionEvaluator } from './types';
export class InitializedConditionEvaluator implements ConditionEvaluator {
public evaluate(newState?: ConditionState): ConditionsEvaluationResult {
@@ -1,6 +1,6 @@
import { InteractionBase } from '../../../config/schema/condition-trigger/common/interaction';
import { ConditionsEvaluationResult, ConditionState } from '../types';
import { ConditionEvaluator } from './types';
import type { InteractionBase } from '../../../config/schema/condition-trigger/common/interaction';
import type { ConditionsEvaluationResult, ConditionState } from '../types';
import type { ConditionEvaluator } from './types';
export class InteractionConditionEvaluator implements ConditionEvaluator {
private _condition: InteractionBase;
@@ -1,6 +1,6 @@
import { KeyBase } from '../../../config/schema/condition-trigger/common/key';
import { ConditionsEvaluationResult, ConditionState } from '../types';
import { ConditionEvaluator } from './types';
import type { KeyBase } from '../../../config/schema/condition-trigger/common/key';
import type { ConditionsEvaluationResult, ConditionState } from '../types';
import type { ConditionEvaluator } from './types';
export class KeyConditionEvaluator implements ConditionEvaluator {
private _condition: KeyBase;
@@ -1,6 +1,6 @@
import { MediaLoadedBase } from '../../../config/schema/condition-trigger/common/media-loaded';
import { ConditionsEvaluationResult, ConditionState } from '../types';
import { ConditionEvaluator } from './types';
import type { MediaLoadedBase } from '../../../config/schema/condition-trigger/common/media-loaded';
import type { ConditionsEvaluationResult, ConditionState } from '../types';
import type { ConditionEvaluator } from './types';
export class MediaLoadedConditionEvaluator implements ConditionEvaluator {
private _condition: MediaLoadedBase;
@@ -1,6 +1,6 @@
import { MicrophoneBase } from '../../../config/schema/condition-trigger/common/microphone';
import { ConditionsEvaluationResult, ConditionState } from '../types';
import { ConditionEvaluator } from './types';
import type { MicrophoneBase } from '../../../config/schema/condition-trigger/common/microphone';
import type { ConditionsEvaluationResult, ConditionState } from '../types';
import type { ConditionEvaluator } from './types';
export class MicrophoneConditionEvaluator implements ConditionEvaluator {
private _condition: MicrophoneBase;
@@ -1,4 +1,4 @@
import { ConditionsEvaluationResult, ConditionState } from '../types';
import type { ConditionsEvaluationResult, ConditionState } from '../types';
import { CompositeConditionEvaluator } from './composite';
export class NotConditionEvaluator extends CompositeConditionEvaluator {
@@ -1,7 +1,7 @@
import { arrayify } from '../../../utils/basic';
import { matchesNumericState } from '../../common/numeric-state';
import { ConditionsEvaluationResult, ConditionState } from '../types';
import { ConditionEvaluator, ConditionOfType, EvaluatorContext } from './types';
import type { ConditionsEvaluationResult, ConditionState } from '../types';
import type { ConditionEvaluator, ConditionOfType, EvaluatorContext } from './types';
export class NumericStateConditionEvaluator implements ConditionEvaluator {
private _condition: ConditionOfType<'numeric_state'>;
@@ -1,4 +1,4 @@
import { ConditionsEvaluationResult, ConditionState } from '../types';
import type { ConditionsEvaluationResult, ConditionState } from '../types';
import { CompositeConditionEvaluator } from './composite';
export class OrConditionEvaluator extends CompositeConditionEvaluator {
@@ -1,7 +1,7 @@
import { ScreenBase } from '../../../config/schema/condition-trigger/common/screen';
import type { ScreenBase } from '../../../config/schema/condition-trigger/common/screen';
import { MediaQueryWatcher } from '../../common/media-query-watcher';
import { ConditionsEvaluationResult } from '../types';
import { ConditionEvaluator, ExternalInvalidationSource } from './types';
import type { ConditionsEvaluationResult } from '../types';
import type { ConditionEvaluator, ExternalInvalidationSource } from './types';
export class ScreenConditionEvaluator implements ConditionEvaluator {
private _watcher: MediaQueryWatcher | null;
@@ -1,7 +1,7 @@
import { arrayify } from '../../../utils/basic';
import { renderTimePeriodToSeconds } from '../../common/time-period';
import { ConditionsEvaluationResult, ConditionState } from '../types';
import { ConditionEvaluator, ConditionOfType, EvaluatorContext } from './types';
import type { ConditionsEvaluationResult, ConditionState } from '../types';
import type { ConditionEvaluator, ConditionOfType, EvaluatorContext } from './types';
// Resolve each expected value that names an entity present in `hass` to that
// entity's current state, accepting either the literal or the resolved value
@@ -1,6 +1,6 @@
import { ConditionsEvaluationResult, ConditionState } from '../types';
import type { ConditionsEvaluationResult, ConditionState } from '../types';
import { isTemplateTrue } from './is-template-true';
import { ConditionEvaluator, ConditionOfType, EvaluatorContext } from './types';
import type { ConditionEvaluator, ConditionOfType, EvaluatorContext } from './types';
export class TemplateConditionEvaluator implements ConditionEvaluator {
private _condition: ConditionOfType<'template'>;
@@ -1,6 +1,6 @@
import { TriggeredBase } from '../../../config/schema/condition-trigger/common/triggered';
import { ConditionsEvaluationResult, ConditionState } from '../types';
import { ConditionEvaluator } from './types';
import type { TriggeredBase } from '../../../config/schema/condition-trigger/common/triggered';
import type { ConditionsEvaluationResult, ConditionState } from '../types';
import type { ConditionEvaluator } from './types';
export class TriggeredConditionEvaluator implements ConditionEvaluator {
private _condition: TriggeredBase;
@@ -1,6 +1,6 @@
import { TemplateRenderer } from '../../../card-controller/templates';
import { Condition } from '../../../config/schema/condition-trigger/conditions/types';
import { ConditionsEvaluationResult, ConditionState } from '../types';
import type { TemplateRenderer } from '../../../card-controller/templates';
import type { Condition } from '../../../config/schema/condition-trigger/conditions/types';
import type { ConditionsEvaluationResult, ConditionState } from '../types';
export type ExternalInvalidationUnsubscribeCallback = () => void;
@@ -1,7 +1,7 @@
import { isBeingCasted } from '../../../utils/casting';
import { isCompanionApp } from '../../../utils/companion';
import { ConditionsEvaluationResult, ConditionState } from '../types';
import { ConditionEvaluator, ConditionOfType } from './types';
import type { ConditionsEvaluationResult, ConditionState } from '../types';
import type { ConditionEvaluator, ConditionOfType } from './types';
export class UserAgentConditionEvaluator implements ConditionEvaluator {
private _condition: ConditionOfType<'user_agent'>;
@@ -1,5 +1,5 @@
import { ConditionsEvaluationResult, ConditionState } from '../types';
import { ConditionEvaluator, ConditionOfType } from './types';
import type { ConditionsEvaluationResult, ConditionState } from '../types';
import type { ConditionEvaluator, ConditionOfType } from './types';
export class UserConditionEvaluator implements ConditionEvaluator {
private _condition: ConditionOfType<'user'>;
@@ -1,6 +1,6 @@
import { ViewBase } from '../../../config/schema/condition-trigger/common/view';
import { ConditionsEvaluationResult, ConditionState } from '../types';
import { ConditionEvaluator } from './types';
import type { ViewBase } from '../../../config/schema/condition-trigger/common/view';
import type { ConditionsEvaluationResult, ConditionState } from '../types';
import type { ConditionEvaluator } from './types';
export class ViewConditionEvaluator implements ConditionEvaluator {
private _condition: ViewBase;
+3 -3
View File
@@ -1,5 +1,5 @@
import { Condition } from '../../config/schema/condition-trigger/conditions/types';
import { Trigger } from '../../config/schema/condition-trigger/triggers/types';
import type { Condition } from '../../config/schema/condition-trigger/conditions/types';
import type { Trigger } from '../../config/schema/condition-trigger/triggers/types';
import { AndConditionEvaluator } from './conditions/and';
import { CallConditionEvaluator } from './conditions/call';
import { CameraConditionEvaluator } from './conditions/camera';
@@ -18,7 +18,7 @@ import { ScreenConditionEvaluator } from './conditions/screen';
import { StateConditionEvaluator } from './conditions/state';
import { TemplateConditionEvaluator } from './conditions/template';
import { TriggeredConditionEvaluator } from './conditions/triggered';
import { ConditionEvaluator, EvaluatorContext } from './conditions/types';
import type { ConditionEvaluator, EvaluatorContext } from './conditions/types';
import { UserConditionEvaluator } from './conditions/user';
import { UserAgentConditionEvaluator } from './conditions/user-agent';
import { ViewConditionEvaluator } from './conditions/view';
@@ -1,4 +1,4 @@
import { ConditionStateManager } from './state-manager';
import type { ConditionStateManager } from './state-manager';
export class ConditionStateManagerGetEvent extends Event {
public conditionStateManager?: ConditionStateManager;
@@ -1,7 +1,7 @@
import { isEqual } from 'lodash-es';
import { SerialRunner } from '../../utils/concurrency/serial-runner';
import {
import type {
ConditionState,
ConditionStateChange,
ConditionStateListener,
+7 -7
View File
@@ -1,10 +1,10 @@
import { IssuePresence } from '../../card-controller/issues/types';
import { KeysState, MicrophoneState } from '../../card-controller/types';
import { AdvancedCameraCardView } from '../../config/schema/common/const';
import { ViewDisplayMode } from '../../config/schema/common/display';
import { AdvancedCameraCardConfig } from '../../config/schema/types';
import { HomeAssistant } from '../../ha/types';
import { MediaLoadedInfo } from '../../types';
import type { IssuePresence } from '../../card-controller/issues/types';
import type { KeysState, MicrophoneState } from '../../card-controller/types';
import type { AdvancedCameraCardView } from '../../config/schema/common/const';
import type { ViewDisplayMode } from '../../config/schema/common/display';
import type { AdvancedCameraCardConfig } from '../../config/schema/types';
import type { HomeAssistant } from '../../ha/types';
import type { MediaLoadedInfo } from '../../types';
export interface ConditionState {
call?: boolean;
@@ -1,6 +1,6 @@
import { TemplateAdvancedCameraCardState } from '../../card-controller/templates/types';
import { ConditionState, ConditionStateChange } from '../conditions/types';
import { TriggerData } from './types';
import type { TemplateAdvancedCameraCardState } from '../../card-controller/templates/types';
import type { ConditionState, ConditionStateChange } from '../conditions/types';
import type { TriggerData } from './types';
// The card-state snapshot (`from_acc`/`to_acc`) surfaced by card triggers: the
// card's own camera/view/config at a point in time.
+2 -2
View File
@@ -1,4 +1,4 @@
import { Trigger } from '../../config/schema/condition-trigger/triggers/types';
import type { Trigger } from '../../config/schema/condition-trigger/triggers/types';
import { CallTrigger } from './triggers/call';
import { CameraTrigger } from './triggers/camera';
import { ConfigTrigger } from './triggers/config';
@@ -16,7 +16,7 @@ import { ScreenTrigger } from './triggers/screen';
import { StateTrigger } from './triggers/state';
import { TemplateTrigger } from './triggers/template';
import { TriggeredTrigger } from './triggers/triggered';
import { TriggerEvaluator, TriggerEvaluatorContext } from './triggers/types';
import type { TriggerEvaluator, TriggerEvaluatorContext } from './triggers/types';
import { ViewTrigger } from './triggers/view';
export const createTriggerEvaluator = (
+5 -5
View File
@@ -1,15 +1,15 @@
import { HASSManagerReadonlyInterface } from '../../card-controller/hass/types';
import type { HASSManagerReadonlyInterface } from '../../card-controller/hass/types';
import { TemplateRenderer } from '../../card-controller/templates';
import { Trigger } from '../../config/schema/condition-trigger/triggers/types';
import type { Trigger } from '../../config/schema/condition-trigger/triggers/types';
import { isEnabled } from '../common/is-enabled';
import { ConditionStateManagerReadonlyInterface } from '../conditions/types';
import type { ConditionStateManagerReadonlyInterface } from '../conditions/types';
import { createTriggerEvaluator } from './factory';
import {
import type {
TriggerCallback,
TriggerEvaluator,
TriggerEvaluatorContext,
} from './triggers/types';
import { TriggerData } from './types';
import type { TriggerData } from './types';
// A trigger evaluator paired with its config, so `enabled` can be re-checked
// against the config each time the evaluator triggers.
@@ -1,6 +1,6 @@
import { ConditionState } from '../../conditions/types';
import type { ConditionState } from '../../conditions/types';
import { ConditionStateTriggerBase } from './condition-state-base';
import { TriggerOfType } from './types';
import type { TriggerOfType } from './types';
export class CallTrigger extends ConditionStateTriggerBase<TriggerOfType<'call'>> {
protected _getValue(state: ConditionState): unknown {
@@ -1,6 +1,6 @@
import { ConditionState } from '../../conditions/types';
import type { ConditionState } from '../../conditions/types';
import { ConditionStateTriggerBase } from './condition-state-base';
import { TriggerOfType } from './types';
import type { TriggerOfType } from './types';
// Triggers when the selected camera changes: to one of `cameras` if listed, to
// no camera if `cameras` is `[]`, or on any change if `cameras` is omitted.
@@ -1,11 +1,15 @@
import { isEqual } from 'lodash-es';
import { Trigger } from '../../../config/schema/condition-trigger/triggers/types';
import { ConditionEvaluator } from '../../conditions/conditions/types';
import type { Trigger } from '../../../config/schema/condition-trigger/triggers/types';
import type { ConditionEvaluator } from '../../conditions/conditions/types';
import { createConditionEvaluatorForTrigger } from '../../conditions/factory';
import { ConditionState, ConditionStateChange } from '../../conditions/types';
import type { ConditionState, ConditionStateChange } from '../../conditions/types';
import { buildCardTriggerData } from '../build-trigger-data';
import { TriggerCallback, TriggerEvaluator, TriggerEvaluatorContext } from './types';
import type {
TriggerCallback,
TriggerEvaluator,
TriggerEvaluatorContext,
} from './types';
// A trigger driven by `ConditionState` changes: subscribe to the state manager,
// fire when the watched value (`_getValue`) changes and the new state passes
@@ -1,7 +1,7 @@
import { getConfigValue } from '../../../config/management';
import { ConditionState } from '../../conditions/types';
import type { ConditionState } from '../../conditions/types';
import { ConditionStateTriggerBase } from './condition-state-base';
import { TriggerOfType } from './types';
import type { TriggerOfType } from './types';
// Triggers when the card configuration changes. With `paths`, only a change to
// one of those config paths triggers; without `paths`, any config change does.
@@ -1,6 +1,6 @@
import { ConditionState } from '../../conditions/types';
import type { ConditionState } from '../../conditions/types';
import { ConditionStateTriggerBase } from './condition-state-base';
import { TriggerOfType } from './types';
import type { TriggerOfType } from './types';
export class DisplayModeTrigger extends ConditionStateTriggerBase<
TriggerOfType<'display_mode'>
@@ -1,11 +1,11 @@
import { HassEntity } from 'home-assistant-js-websocket';
import type { HassEntity } from 'home-assistant-js-websocket';
import { isEqual } from 'lodash-es';
import { arrayify } from '../../../utils/basic';
import { Timer } from '../../../utils/timer';
import { renderTimePeriodToSeconds } from '../../common/time-period';
import { ConditionStateChange } from '../../conditions/types';
import {
import type { ConditionStateChange } from '../../conditions/types';
import type {
TriggerCallback,
TriggerEvaluator,
TriggerEvaluatorContext,
@@ -1,12 +1,12 @@
import { uniq } from 'lodash-es';
import {
import type {
EventSubscriptionRequest,
EventWatcherSubscriptionInterface,
} from '../../../card-controller/hass/event-watcher';
import { matchesEventContext, matchesEventData } from '../../../ha/event-match';
import { arrayify } from '../../../utils/basic';
import {
import type {
TriggerCallback,
TriggerEvaluator,
TriggerEvaluatorContext,
@@ -1,6 +1,6 @@
import { ConditionState } from '../../conditions/types';
import type { ConditionState } from '../../conditions/types';
import { ConditionStateTriggerBase } from './condition-state-base';
import { TriggerOfType } from './types';
import type { TriggerOfType } from './types';
export class ExpandTrigger extends ConditionStateTriggerBase<TriggerOfType<'expand'>> {
protected _getValue(state: ConditionState): unknown {
@@ -1,6 +1,6 @@
import { ConditionState } from '../../conditions/types';
import type { ConditionState } from '../../conditions/types';
import { ConditionStateTriggerBase } from './condition-state-base';
import { TriggerOfType } from './types';
import type { TriggerOfType } from './types';
export class FullscreenTrigger extends ConditionStateTriggerBase<
TriggerOfType<'fullscreen'>
@@ -1,6 +1,6 @@
import { ConditionState } from '../../conditions/types';
import type { ConditionState } from '../../conditions/types';
import { ConditionStateTriggerBase } from './condition-state-base';
import { TriggerOfType } from './types';
import type { TriggerOfType } from './types';
export class InitializedTrigger extends ConditionStateTriggerBase<
TriggerOfType<'initialized'>
@@ -1,6 +1,6 @@
import { ConditionState } from '../../conditions/types';
import type { ConditionState } from '../../conditions/types';
import { ConditionStateTriggerBase } from './condition-state-base';
import { TriggerOfType } from './types';
import type { TriggerOfType } from './types';
export class InteractionTrigger extends ConditionStateTriggerBase<
TriggerOfType<'interaction'>
@@ -1,6 +1,6 @@
import { ConditionState } from '../../conditions/types';
import type { ConditionState } from '../../conditions/types';
import { ConditionStateTriggerBase } from './condition-state-base';
import { TriggerOfType } from './types';
import type { TriggerOfType } from './types';
export class KeyTrigger extends ConditionStateTriggerBase<TriggerOfType<'key'>> {
protected _getValue(state: ConditionState): unknown {
@@ -1,6 +1,6 @@
import { ConditionState } from '../../conditions/types';
import type { ConditionState } from '../../conditions/types';
import { ConditionStateTriggerBase } from './condition-state-base';
import { TriggerOfType } from './types';
import type { TriggerOfType } from './types';
export class MediaLoadedTrigger extends ConditionStateTriggerBase<
TriggerOfType<'media_loaded'>
@@ -1,6 +1,6 @@
import { ConditionState } from '../../conditions/types';
import type { ConditionState } from '../../conditions/types';
import { ConditionStateTriggerBase } from './condition-state-base';
import { TriggerOfType } from './types';
import type { TriggerOfType } from './types';
// Triggers when the microphone mute state changes: to the given value if `muted`
// is set, or on any change if it is omitted.
@@ -1,9 +1,9 @@
import { HassEntity } from 'home-assistant-js-websocket';
import type { HassEntity } from 'home-assistant-js-websocket';
import { matchesNumericState, readNumericStateValue } from '../../common/numeric-state';
import { ConditionState } from '../../conditions/types';
import type { ConditionState } from '../../conditions/types';
import { EntityStateTriggerBase } from './entity-state-base';
import { TriggerOfType } from './types';
import type { TriggerOfType } from './types';
// https://www.home-assistant.io/docs/automation/trigger/#numeric-state-trigger
// Faithful to HA's numeric_state trigger
@@ -1,9 +1,9 @@
import {
MediaQueryWatcher,
MediaQueryWatcherUnsubscribeCallback,
type MediaQueryWatcherUnsubscribeCallback,
} from '../../common/media-query-watcher';
import { buildCardTriggerData } from '../build-trigger-data';
import { TriggerCallback, TriggerEvaluator, TriggerOfType } from './types';
import type { TriggerCallback, TriggerEvaluator, TriggerOfType } from './types';
// `screen` watches a matchMedia query, whose state lives outside the card's
// `ConditionState`, so it owns a `MediaQueryWatcher` (the same watcher the
@@ -1,8 +1,8 @@
import { HassEntity } from 'home-assistant-js-websocket';
import type { HassEntity } from 'home-assistant-js-websocket';
import { arrayify } from '../../../utils/basic';
import { EntityStateTriggerBase } from './entity-state-base';
import { TriggerOfType } from './types';
import type { TriggerOfType } from './types';
// https://www.home-assistant.io/docs/automation/trigger/#state-trigger Faithful
// to HA's state trigger
@@ -1,8 +1,8 @@
import { Timer } from '../../../utils/timer';
import { renderTimePeriodToSeconds } from '../../common/time-period';
import { ConditionState, ConditionStateChange } from '../../conditions/types';
import type { ConditionState, ConditionStateChange } from '../../conditions/types';
import { isTemplateTrue } from './is-template-true';
import {
import type {
TriggerCallback,
TriggerEvaluator,
TriggerEvaluatorContext,
@@ -1,6 +1,6 @@
import { ConditionState } from '../../conditions/types';
import type { ConditionState } from '../../conditions/types';
import { ConditionStateTriggerBase } from './condition-state-base';
import { TriggerOfType } from './types';
import type { TriggerOfType } from './types';
export class TriggeredTrigger extends ConditionStateTriggerBase<
TriggerOfType<'triggered'>
@@ -1,8 +1,8 @@
import { HASSManagerReadonlyInterface } from '../../../card-controller/hass/types';
import { TemplateRenderer } from '../../../card-controller/templates';
import { Trigger } from '../../../config/schema/condition-trigger/triggers/types';
import { ConditionStateManagerReadonlyInterface } from '../../conditions/types';
import { TriggerData } from '../types';
import type { HASSManagerReadonlyInterface } from '../../../card-controller/hass/types';
import type { TemplateRenderer } from '../../../card-controller/templates';
import type { Trigger } from '../../../config/schema/condition-trigger/triggers/types';
import type { ConditionStateManagerReadonlyInterface } from '../../conditions/types';
import type { TriggerData } from '../types';
export type TriggerCallback = (data: TriggerData) => void;
@@ -1,6 +1,6 @@
import { ConditionState } from '../../conditions/types';
import type { ConditionState } from '../../conditions/types';
import { ConditionStateTriggerBase } from './condition-state-base';
import { TriggerOfType } from './types';
import type { TriggerOfType } from './types';
// Triggers when the selected view changes: to one of `views` if listed, or on
// any change if `views` is omitted.
+2 -2
View File
@@ -1,6 +1,6 @@
import { HassEntity, HassEvent } from 'home-assistant-js-websocket';
import type { HassEntity, HassEvent } from 'home-assistant-js-websocket';
import { TemplateAdvancedCameraCardState } from '../../card-controller/templates/types';
import type { TemplateAdvancedCameraCardState } from '../../card-controller/templates/types';
// The top-level `trigger` template variable produced each time an evaluator
// triggers. `platform` is the provider -- a real HA platform for stock