import { CSSResultGroup, LitElement, PropertyValues, TemplateResult, html, unsafeCSS, } from 'lit'; import { HomeAssistant, LovelaceCardEditor, getLovelace } from 'custom-card-helpers'; import { StyleInfo, styleMap } from 'lit/directives/style-map.js'; import { customElement, property, state } from 'lit/decorators.js'; import { classMap } from 'lit/directives/class-map.js'; import { createRef, ref, Ref } from 'lit/directives/ref.js'; import screenfull from 'screenfull'; import { throttle } from 'lodash-es'; import { until } from 'lit/directives/until.js'; import { z } from 'zod'; import { Actions, ActionType, CameraConfig, FrigateCardView, RawFrigateCardConfig, entitySchema, frigateCardConfigSchema, FrigateCardCustomAction, } from './types.js'; import type { Entity, ExtendedHomeAssistant, FrigateCardConfig, MediaShowInfo, MenuButton, Message, } from './types.js'; import { CARD_VERSION, REPO_URL } from './const.js'; import { FrigateCardElements } from './components/elements.js'; import { FrigateCardImage } from './components/image.js'; import { FRIGATE_BUTTON_MENU_ICON, FrigateCardMenu } from './components/menu.js'; import { View } from './view.js'; import { contentsChanged, convertActionToFrigateCardCustomAction, createFrigateCardCustomAction, frigateCardHandleAction, frigateCardHasAction, getActionConfigGivenAction, getCameraIcon, getCameraID, getCameraTitle, homeAssistantSignPath, homeAssistantWSRequest, isValidMediaShowInfo, shouldUpdateBasedOnHass, } from './common.js'; import { localize } from './localize/localize.js'; import { renderMessage, renderProgressIndicator } from './components/message.js'; import './editor.js'; import './components/elements.js'; import './components/gallery.js'; import './components/image.js'; import './components/live.js'; import './components/menu.js'; import './components/message.js'; import './components/viewer.js'; import './components/thumbnail-carousel.js'; import './components/timeline.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 { ResolvedMediaCache } from './resolved-media.js'; import { BrowseMediaUtil } from './browse-media-util.js'; import { isConfigUpgradeable } from './config-mgmt.js'; import { actionHandler } from './action-handler-directive.js'; import { ConditionState, conditionStateRequestHandler, getOverriddenConfig, getOverridesByKey, } from './card-condition.js'; /** A note on media callbacks: * * Media elements (e.g.