refactor: Break apart monolithic configuration schema (#1977)

[skip ci]
This commit is contained in:
Dermot Duffy
2025-03-22 15:06:11 -07:00
committed by GitHub
parent 92fc8dd844
commit d6225fefda
266 changed files with 2789 additions and 2562 deletions
+26 -21
View File
@@ -1,29 +1,34 @@
import { CardActionsAPI } from '../card-controller/types.js';
import { ZoomSettingsBase } from '../components-lib/zoom/types.js';
import { PTZAction } from '../config/ptz.js';
import { CameraSelectActionConfig } from '../config/schema/actions/custom/camera-select.js';
import { DisplayModeActionConfig } from '../config/schema/actions/custom/display-mode.js';
import {
ActionConfig,
ActionPhase,
ActionsConfig,
AdvancedCameraCardCustomActionConfig,
AdvancedCameraCardGeneralAction,
AdvancedCameraCardUserSpecifiedView,
CameraSelectActionConfig,
DisplayModeActionConfig,
GeneralActionConfig,
} from '../config/schema/actions/custom/general.js';
import {
INTERNAL_CALLBACK_ACTION,
InternalCallbackActionConfig,
LogActionConfig,
LogActionLevel,
MediaPlayerActionConfig,
PerformActionActionConfig,
} from '../config/schema/actions/custom/internal.js';
import { LogActionConfig, LogActionLevel } from '../config/schema/actions/custom/log.js';
import { MediaPlayerActionConfig } from '../config/schema/actions/custom/media-player.js';
import { PTZControlsActionConfig } from '../config/schema/actions/custom/ptz-controls.js';
import { PTZDigitialActionConfig } from '../config/schema/actions/custom/ptz-digital.js';
import { PTZMultiActionConfig } from '../config/schema/actions/custom/ptz-multi.js';
import {
PTZAction,
PTZActionConfig,
PTZControlsActionConfig,
PTZDigitialActionConfig,
PTZMultiActionConfig,
SubstreamSelectActionConfig,
ViewActionConfig,
} from '../config/types.js';
PTZActionPhase,
} from '../config/schema/actions/custom/ptz.js';
import { SubstreamSelectActionConfig } from '../config/schema/actions/custom/substream-select.js';
import { ViewActionConfig } from '../config/schema/actions/custom/view.js';
import { PerformActionActionConfig } from '../config/schema/actions/stock/perform-action.js';
import {
ActionConfig,
ActionsConfig,
AdvancedCameraCardCustomActionConfig,
} from '../config/schema/actions/types.js';
import { AdvancedCameraCardUserSpecifiedView } from '../config/schema/common/const.js';
import { ServiceCallRequest } from '../ha/types.js';
import { arrayify } from './basic.js';
@@ -115,7 +120,7 @@ export function createPTZControlsAction(
export function createPTZAction(options?: {
cardID?: string;
ptzAction?: PTZAction;
ptzPhase?: ActionPhase;
ptzPhase?: PTZActionPhase;
ptzPreset?: string;
cameraID?: string;
}): PTZActionConfig {
@@ -132,7 +137,7 @@ export function createPTZAction(options?: {
export function createPTZDigitalAction(options?: {
cardID?: string;
ptzPhase?: ActionPhase;
ptzPhase?: PTZActionPhase;
ptzAction?: PTZAction;
absolute?: ZoomSettingsBase;
targetID?: string;
@@ -151,7 +156,7 @@ export function createPTZDigitalAction(options?: {
export function createPTZMultiAction(options?: {
cardID?: string;
ptzAction?: PTZAction;
ptzPhase?: ActionPhase;
ptzPhase?: PTZActionPhase;
ptzPreset?: string;
targetID?: string;
}): PTZMultiActionConfig {
+2 -1
View File
@@ -1,4 +1,5 @@
import { CameraConfig, RawAdvancedCameraCardConfig } from '../config/types.js';
import { CameraConfig } from '../config/schema/cameras';
import { RawAdvancedCameraCardConfig } from '../config/types';
/**
* Get a camera id.
+1 -1
View File
@@ -1,4 +1,4 @@
import { CardWideConfig } from '../config/types';
import { CardWideConfig } from '../config/schema/types';
export const log = (cardWideConfig?: CardWideConfig | null, ...args: unknown[]) => {
if (cardWideConfig?.debug?.logging) {
+1 -1
View File
@@ -2,7 +2,7 @@ import EmblaCarousel, { EmblaCarouselType } from 'embla-carousel';
import { WheelGesturesPlugin } from 'embla-carousel-wheel-gestures';
import { CreatePluginType, LoosePluginType } from 'embla-carousel/components/Plugins';
import isEqual from 'lodash-es/isEqual';
import { TransitionEffect } from '../../config/types';
import { TransitionEffect } from '../../config/schema/common/transition-effect.js';
import { getChildrenFromElement } from '../basic.js';
import { fireAdvancedCameraCardEvent } from '../fire-advanced-camera-card-event';
import { TextDirection } from '../text-direction';
@@ -2,7 +2,7 @@ import { EmblaCarouselType, EmblaEventType } from 'embla-carousel';
import { CreateOptionsType } from 'embla-carousel/components/Options';
import { OptionsHandlerType } from 'embla-carousel/components/OptionsHandler';
import { CreatePluginType, LoosePluginType } from 'embla-carousel/components/Plugins';
import { LazyUnloadCondition } from '../../../../config/types';
import { LazyUnloadCondition } from '../../../../config/schema/common/media-actions';
declare module 'embla-carousel/components/Plugins' {
interface EmblaPluginsType {
+1 -1
View File
@@ -1,4 +1,4 @@
import { InteractionMode } from '../config/types';
import { InteractionMode } from '../config/schema/view';
export const isActionAllowedBasedOnInteractionState = (
interactionMode: InteractionMode,
+1 -1
View File
@@ -1,4 +1,4 @@
import { MediaLayoutConfig } from '../config/types';
import { MediaLayoutConfig } from '../config/schema/camera/media-layout';
/**
* Update element style from a media configuration.
+1 -1
View File
@@ -1,5 +1,5 @@
import { CameraManager } from '../camera-manager/manager';
import { PTZAction } from '../config/ptz';
import { PTZAction } from '../config/schema/actions/custom/ptz';
import { IMAGE_VIEW_ZOOM_TARGET_SENTINEL } from '../const';
import { PTZCapabilities } from '../types';
import { View } from '../view/view';
+1 -1
View File
@@ -1,7 +1,7 @@
import { Task } from '@lit-labs/task';
import { html, TemplateResult } from 'lit';
import { renderProgressIndicator } from '../components/progress-indicator';
import { CardWideConfig } from '../config/types';
import { CardWideConfig } from '../config/schema/types';
import { errorToConsole } from './basic';
/**