/* eslint-disable @typescript-eslint/no-explicit-any */ import { CSSResultGroup, LitElement, PropertyValues, TemplateResult, html, unsafeCSS, } from 'lit'; import { customElement, property, query, state } from 'lit/decorators'; import { classMap } from 'lit/directives/class-map.js'; import { styleMap } from 'lit/directives/style-map.js'; import { until } from 'lit/directives/until'; import { HomeAssistant, LovelaceCardEditor, getLovelace, handleAction, } from 'custom-card-helpers'; import screenfull from 'screenfull'; import { z } from 'zod'; import { entitySchema, frigateCardConfigSchema } from './types'; import type { BrowseMediaQueryParameters, Entity, ExtendedHomeAssistant, FrigateCardConfig, MediaLoadInfo, MenuButton, Message, } from './types'; import { CARD_VERSION, REPO_URL } from './const'; import { FrigateCardElements } from './components/elements'; import { FrigateCardMenu, MENU_HEIGHT } from './components/menu'; import { View } from './view'; import { homeAssistantWSRequest, shouldUpdateBasedOnHass } from './common'; import { localize } from './localize/localize'; import { renderMessage, renderProgressIndicator } from './components/message'; import './editor'; import './components/elements'; import './components/gallery'; import './components/image'; import './components/live'; import './components/menu'; import './components/message'; import './components/viewer'; import './patches/ha-camera-stream'; import './patches/ha-hls-player'; import cardStyle from './scss/card.scss'; const MEDIA_HEIGHT_CUTOFF = 50; const MEDIA_WIDTH_CUTOFF = MEDIA_HEIGHT_CUTOFF; /** A note on media callbacks: * * We need media elements (e.g.