/* eslint-disable @typescript-eslint/no-explicit-any */ import { CSSResultGroup, LitElement, PropertyValues, TemplateResult, html, unsafeCSS, } from 'lit'; import { customElement, property, query, state } from 'lit/decorators.js'; import { classMap } from 'lit/directives/class-map.js'; import { styleMap } from 'lit/directives/style-map.js'; import { until } from 'lit/directives/until.js'; import { HomeAssistant, LovelaceCardEditor, getLovelace, handleAction, } from 'custom-card-helpers'; import screenfull from 'screenfull'; import { z } from 'zod'; import { entitySchema, frigateCardConfigSchema, MenuInteraction } from './types.js'; import type { BrowseMediaQueryParameters, Entity, ExtendedHomeAssistant, FrigateCardConfig, MediaShowInfo, MenuButton, Message, } from './types.js'; import { CARD_VERSION, REPO_URL } from './const.js'; import { FrigateCardElements } from './components/elements.js'; import { FrigateCardMenu, MENU_HEIGHT } from './components/menu.js'; import { View } from './view.js'; import { 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 './patches/ha-camera-stream.js'; import './patches/ha-hls-player.js'; import cardStyle from './scss/card.scss'; import { ResolvedMediaCache } from './resolved-media.js'; import { BrowseMediaUtil } from './browse-media-util.js'; /** A note on media callbacks: * * We need media elements (e.g.