diff --git a/src/editor.ts b/src/editor.ts index 99be0a36..0c19c472 100644 --- a/src/editor.ts +++ b/src/editor.ts @@ -162,6 +162,77 @@ export class FrigateCardEditor extends LitElement implements LovelaceCardEditor @property({ attribute: false }) protected _expandedCameraIndex: number | null = null; + protected _viewModes = new Map([ + ['', ''], + ['live', localize('config.view.views.live')], + ['clips', localize('config.view.views.clips')], + ['snapshots', localize('config.view.views.snapshots')], + ['clip', localize('config.view.views.clip')], + ['snapshot', localize('config.view.views.snapshot')], + ['image', localize('config.view.views.image')], + ]); + + protected _cameraSelectViewModes = new Map([ + ...this._viewModes, + ['current', localize('config.view.views.current')], + ]); + + protected _menuModes = new Map([ + ['', ''], + ['none', localize('config.menu.modes.none')], + ['hidden-top', localize('config.menu.modes.hidden-top')], + ['hidden-left', localize('config.menu.modes.hidden-left')], + ['hidden-bottom', localize('config.menu.modes.hidden-bottom')], + ['hidden-right', localize('config.menu.modes.hidden-right')], + ['overlay-top', localize('config.menu.modes.overlay-top')], + ['overlay-left', localize('config.menu.modes.overlay-left')], + ['overlay-bottom', localize('config.menu.modes.overlay-bottom')], + ['overlay-right', localize('config.menu.modes.overlay-right')], + ['hover-top', localize('config.menu.modes.hover-top')], + ['hover-left', localize('config.menu.modes.hover-left')], + ['hover-bottom', localize('config.menu.modes.hover-bottom')], + ['hover-right', localize('config.menu.modes.hover-right')], + ['above', localize('config.menu.modes.above')], + ['below', localize('config.menu.modes.below')], + ]); + + protected _eventViewerNextPreviousControlStyles = new Map([ + ['', ''], + [ + 'thumbnails', + localize('config.event_viewer.controls.next_previous.styles.thumbnails'), + ], + ['chevrons', localize('config.event_viewer.controls.next_previous.styles.chevrons')], + ['none', localize('config.event_viewer.controls.next_previous.styles.none')], + ]); + + protected _liveNextPreviousControlStyles = new Map([ + ['', ''], + ['chevrons', localize('config.live.controls.next_previous.styles.chevrons')], + ['icons', localize('config.live.controls.next_previous.styles.icons')], + ['none', localize('config.live.controls.next_previous.styles.none')], + ]); + + protected _aspectRatioModes = new Map([ + ['', ''], + ['dynamic', localize('config.dimensions.aspect_ratio_modes.dynamic')], + ['static', localize('config.dimensions.aspect_ratio_modes.static')], + ['unconstrained', localize('config.dimensions.aspect_ratio_modes.unconstrained')], + ]); + + protected _thumbnailModes = new Map([ + ['', ''], + ['none', localize('config.event_viewer.controls.thumbnails.modes.none')], + ['above', localize('config.event_viewer.controls.thumbnails.modes.above')], + ['below', localize('config.event_viewer.controls.thumbnails.modes.below')], + ]); + + protected _thumbnailMedias = new Map([ + ['', ''], + ['clips', localize('config.live.controls.thumbnails.medias.clips')], + ['snapshots', localize('config.live.controls.thumbnails.medias.snapshots')], + ]); + public setConfig(config: RawFrigateCardConfig): void { // Note: This does not use Zod to parse the configuration, so it may be // partially or completely invalid. It's more useful to have a partially @@ -552,79 +623,6 @@ export class FrigateCardEditor extends LitElement implements LovelaceCardEditor this._helpers.importMoreInfoControl('light'); const cameraEntities = this._getEntities('camera'); - - const viewModes = new Map([ - ['', ''], - ['live', localize('config.view.views.live')], - ['clips', localize('config.view.views.clips')], - ['snapshots', localize('config.view.views.snapshots')], - ['clip', localize('config.view.views.clip')], - ['snapshot', localize('config.view.views.snapshot')], - ['image', localize('config.view.views.image')], - ]); - - const cameraSelectViewModes = new Map(viewModes); - cameraSelectViewModes.set('current', localize('config.view.views.current')); - - const menuModes = new Map([ - ['', ''], - ['none', localize('config.menu.modes.none')], - ['hidden-top', localize('config.menu.modes.hidden-top')], - ['hidden-left', localize('config.menu.modes.hidden-left')], - ['hidden-bottom', localize('config.menu.modes.hidden-bottom')], - ['hidden-right', localize('config.menu.modes.hidden-right')], - ['overlay-top', localize('config.menu.modes.overlay-top')], - ['overlay-left', localize('config.menu.modes.overlay-left')], - ['overlay-bottom', localize('config.menu.modes.overlay-bottom')], - ['overlay-right', localize('config.menu.modes.overlay-right')], - ['hover-top', localize('config.menu.modes.hover-top')], - ['hover-left', localize('config.menu.modes.hover-left')], - ['hover-bottom', localize('config.menu.modes.hover-bottom')], - ['hover-right', localize('config.menu.modes.hover-right')], - ['above', localize('config.menu.modes.above')], - ['below', localize('config.menu.modes.below')], - ]); - - const eventViewerNextPreviousControlStyles = new Map([ - ['', ''], - [ - 'thumbnails', - localize('config.event_viewer.controls.next_previous.styles.thumbnails'), - ], - [ - 'chevrons', - localize('config.event_viewer.controls.next_previous.styles.chevrons'), - ], - ['none', localize('config.event_viewer.controls.next_previous.styles.none')], - ]); - - const liveNextPreviousControlStyles = new Map([ - ['', ''], - ['chevrons', localize('config.live.controls.next_previous.styles.chevrons')], - ['icons', localize('config.live.controls.next_previous.styles.icons')], - ['none', localize('config.live.controls.next_previous.styles.none')], - ]); - - const aspectRatioModes = new Map([ - ['', ''], - ['dynamic', localize('config.dimensions.aspect_ratio_modes.dynamic')], - ['static', localize('config.dimensions.aspect_ratio_modes.static')], - ['unconstrained', localize('config.dimensions.aspect_ratio_modes.unconstrained')], - ]); - - const thumbnailModes = new Map([ - ['', ''], - ['none', localize('config.event_viewer.controls.thumbnails.modes.none')], - ['above', localize('config.event_viewer.controls.thumbnails.modes.above')], - ['below', localize('config.event_viewer.controls.thumbnails.modes.below')], - ]); - - const thumbnailMedias = new Map([ - ['', ''], - ['clips', localize('config.live.controls.thumbnails.medias.clips')], - ['snapshots', localize('config.live.controls.thumbnails.medias.snapshots')], - ]); - const defaults = frigateCardConfigDefaults; const getShowButtonLabel = (configPath: string) => @@ -668,8 +666,11 @@ export class FrigateCardEditor extends LitElement implements LovelaceCardEditor ${options.view.show ? html`