fix: Add missing capabilities to editor (#2366)

This commit is contained in:
Dermot Duffy
2026-02-21 19:58:15 -08:00
committed by GitHub
parent 5e867a8334
commit 87a85ce8d9
2 changed files with 35 additions and 44 deletions
+31 -43
View File
@@ -269,6 +269,7 @@ import { sideLoadHomeAssistantElements } from './ha/side-load-ha-elements.js';
import { HomeAssistant, LovelaceCardEditor } from './ha/types.js'; import { HomeAssistant, LovelaceCardEditor } from './ha/types.js';
import { localize } from './localize/localize.js'; import { localize } from './localize/localize.js';
import editorStyle from './scss/editor.scss'; import editorStyle from './scss/editor.scss';
import type { CapabilityKey } from './types.js';
import { arrayMove, prettifyTitle } from './utils/basic.js'; import { arrayMove, prettifyTitle } from './utils/basic.js';
import { getCameraID } from './utils/camera.js'; import { getCameraID } from './utils/camera.js';
import { fireAdvancedCameraCardEvent } from './utils/fire-advanced-camera-card-event.js'; import { fireAdvancedCameraCardEvent } from './utils/fire-advanced-camera-card-event.js';
@@ -978,49 +979,36 @@ export class AdvancedCameraCardEditor extends LitElement implements LovelaceCard
}, },
]; ];
private _capabilities: EditorSelectOption[] = [ private _capabilities: EditorSelectOption[] = (() => {
{ value: '', label: '' }, // 'satisfies' enforces all CapabilityKey values are present at compile time.
{ const labels = {
value: 'live', '2-way-audio': localize('config.cameras.capabilities.capabilities.2-way-audio'),
label: localize('config.cameras.capabilities.capabilities.live'), clips: localize('config.cameras.capabilities.capabilities.clips'),
}, 'favorite-events': localize(
{ 'config.cameras.capabilities.capabilities.favorite-events',
value: 'substream', ),
label: localize('config.cameras.capabilities.capabilities.substream'), 'favorite-recordings': localize(
}, 'config.cameras.capabilities.capabilities.favorite-recordings',
{ ),
value: 'clips', live: localize('config.cameras.capabilities.capabilities.live'),
label: localize('config.cameras.capabilities.capabilities.clips'), menu: localize('config.cameras.capabilities.capabilities.menu'),
}, ptz: localize('config.cameras.capabilities.capabilities.ptz'),
{ recordings: localize('config.cameras.capabilities.capabilities.recordings'),
value: 'recordings', 'remote-control-entity': localize(
label: localize('config.cameras.capabilities.capabilities.recordings'), 'config.cameras.capabilities.capabilities.remote-control-entity',
}, ),
{ reviews: localize('config.cameras.capabilities.capabilities.reviews'),
value: 'snapshots', seek: localize('config.cameras.capabilities.capabilities.seek'),
label: localize('config.cameras.capabilities.capabilities.snapshots'), snapshots: localize('config.cameras.capabilities.capabilities.snapshots'),
}, substream: localize('config.cameras.capabilities.capabilities.substream'),
{ trigger: localize('config.cameras.capabilities.capabilities.trigger'),
value: 'favorite-events', } satisfies Record<CapabilityKey, string>;
label: localize('config.cameras.capabilities.capabilities.favorite-events'),
}, return [
{ { value: '', label: '' },
value: 'favorite-recordings', ...Object.entries(labels).map(([value, label]) => ({ value, label })),
label: localize('config.cameras.capabilities.capabilities.favorite-recordings'), ];
}, })();
{
value: 'seek',
label: localize('config.cameras.capabilities.capabilities.seek'),
},
{
value: 'ptz',
label: localize('config.cameras.capabilities.capabilities.ptz'),
},
{
value: 'menu',
label: localize('config.cameras.capabilities.capabilities.menu'),
},
];
private _forceableCapabilities: EditorSelectOption[] = [ private _forceableCapabilities: EditorSelectOption[] = [
{ value: '', label: '' }, { value: '', label: '' },
+4 -1
View File
@@ -38,9 +38,12 @@
"menu": "Menu", "menu": "Menu",
"ptz": "PTZ", "ptz": "PTZ",
"recordings": "Recordings", "recordings": "Recordings",
"remote-control-entity": "Remote Control Entity",
"reviews": "Reviews",
"seek": "Seeking", "seek": "Seeking",
"snapshots": "Snapshots", "snapshots": "Snapshots",
"substream": "Substream" "substream": "Substream",
"trigger": "Trigger"
}, },
"disable": "Disable", "disable": "Disable",
"disable_except": "Disable except", "disable_except": "Disable except",