import { CSSResultGroup, LitElement, PropertyValues, TemplateResult, html, unsafeCSS, } from 'lit'; import { customElement, property } from 'lit/decorators.js'; import { classMap } from 'lit/directives/class-map.js'; import { actionHandler } from '../action-handler-directive.js'; import { StatusBarController } from '../components-lib/status-bar-controller'; import { StatusBarConfig, StatusBarItem } from '../config/types'; import statusStyle from '../scss/status.scss'; import { frigateCardHasAction } from '../utils/action'; import { getCustomIconURL } from '../utils/custom-icons.js'; @customElement('frigate-card-status-bar') export class FrigateCardStatusBar extends LitElement { protected _controller = new StatusBarController(this); @property({ attribute: false }) public items?: StatusBarItem[]; @property({ attribute: false }) public config?: StatusBarConfig; protected willUpdate(changedProperties: PropertyValues): void { // Always set config before items. if (changedProperties.has('config') && this.config) { this._controller.setConfig(this.config); } if (changedProperties.has('items')) { this._controller.setItems(this.items ?? []); } } protected render(): TemplateResult | void { if (!this._controller.shouldRender()) { return; } return html`