import { getLovelace, HomeAssistant, LovelaceCardEditor } from 'custom-card-helpers'; import { CSSResultGroup, html, LitElement, PropertyValues, TemplateResult, unsafeCSS, } from 'lit'; import { customElement, state } from 'lit/decorators.js'; import { classMap } from 'lit/directives/class-map.js'; import { createRef, ref, Ref } from 'lit/directives/ref.js'; import { StyleInfo, styleMap } from 'lit/directives/style-map.js'; import { until } from 'lit/directives/until.js'; import { throttle } from 'lodash-es'; import screenfull from 'screenfull'; import { z } from 'zod'; import { actionHandler } from './action-handler-directive.js'; import { ConditionState, conditionStateRequestHandler, getOverriddenConfig, getOverridesByKey, } from './card-condition.js'; import './components/elements.js'; import { FrigateCardElements } from './components/elements.js'; import './components/gallery.js'; import './components/image.js'; import { FrigateCardImage } from './components/image.js'; import './components/live.js'; import { FrigateCardLive } from './components/live.js'; import './components/menu.js'; import { FrigateCardMenu, FRIGATE_BUTTON_MENU_ICON } from './components/menu.js'; import './components/message.js'; import { renderMessage, renderProgressIndicator } from './components/message.js'; import './components/thumbnail-carousel.js'; import './components/timeline.js'; import './components/viewer.js'; import { isConfigUpgradeable } from './config-mgmt.js'; import { CAMERA_BIRDSEYE, MEDIA_PLAYER_SUPPORT_BROWSE_MEDIA, REPO_URL, } from './const.js'; import './editor.js'; import { getLanguage, localize } from './localize/localize.js'; import './patches/ha-camera-stream.js'; import './patches/ha-hls-player.js'; import './patches/ha-web-rtc-player.ts'; import cardStyle from './scss/card.scss'; import { Actions, ActionType, CameraConfig, EntityList, ExtendedEntity, ExtendedHomeAssistant, FrigateCardConfig, frigateCardConfigSchema, FrigateCardCustomAction, FrigateCardView, FRIGATE_CARD_VIEWS_USER_SPECIFIED, MediaShowInfo, MEDIA_TYPE_IMAGE, MEDIA_TYPE_VIDEO, MESSAGE_TYPE_PRIORITIES, MenuButton, Message, RawFrigateCardConfig, } from './types.js'; import { convertActionToFrigateCardCustomAction, createFrigateCardCustomAction, frigateCardHandleAction, frigateCardHasAction, getActionConfigGivenAction, } from './utils/action.js'; import { contentsChanged, errorToConsole } from './utils/basic.js'; import { getCameraIcon, getCameraID, getCameraTitle } from './utils/camera.js'; import { getEntityIcon, getEntityTitle, getHassDifferences, homeAssistantSignPath, isHassDifferent, isTriggeredState, sideLoadHomeAssistantElements, } from './utils/ha'; import { getEventID } from './utils/ha/browse-media.js'; import { DeviceList, getAllDevices } from './utils/ha/device-registry.js'; import { ExtendedEntityCache, getAllEntities, getExtendedEntities, getExtendedEntity, } from './utils/ha/entity-registry.js'; import { ResolvedMediaCache } from './utils/ha/resolved-media.js'; import { supportsFeature } from './utils/ha/update.js'; import { isValidMediaShowInfo } from './utils/media-info.js'; import { View } from './view.js'; import pkg from '../package.json'; /** A note on media callbacks: * * Media elements (e.g.