77 lines
2.5 KiB
TypeScript
77 lines
2.5 KiB
TypeScript
import { CSSResultGroup, html, LitElement, TemplateResult, unsafeCSS } from 'lit';
|
|
import { customElement, property } from 'lit/decorators.js';
|
|
|
|
import { CameraManager } from '../camera-manager/manager';
|
|
import { FoldersManager } from '../card-controller/folders/manager';
|
|
import { ViewItemManager } from '../card-controller/view/item-manager';
|
|
import { ViewManagerEpoch } from '../card-controller/view/types';
|
|
import { ConditionStateManagerReadonlyInterface } from '../condition-trigger/conditions/types';
|
|
import { TimelineConfig } from '../config/schema/timeline';
|
|
import { CardWideConfig } from '../config/schema/types';
|
|
import { HomeAssistant } from '../ha/types';
|
|
import basicBlockStyle from '../scss/basic-block.scss';
|
|
|
|
import './surround.js';
|
|
import './timeline-core.js';
|
|
|
|
@customElement('advanced-camera-card-timeline')
|
|
export class AdvancedCameraCardTimeline extends LitElement {
|
|
@property({ attribute: false })
|
|
public hass?: HomeAssistant;
|
|
|
|
@property({ attribute: false })
|
|
public viewManagerEpoch?: ViewManagerEpoch;
|
|
|
|
@property({ attribute: false })
|
|
public timelineConfig?: TimelineConfig;
|
|
|
|
@property({ attribute: false })
|
|
public cameraManager?: CameraManager;
|
|
|
|
@property({ attribute: false })
|
|
public foldersManager?: FoldersManager;
|
|
|
|
@property({ attribute: false })
|
|
public conditionStateManager?: ConditionStateManagerReadonlyInterface;
|
|
|
|
@property({ attribute: false })
|
|
public viewItemManager?: ViewItemManager;
|
|
|
|
@property({ attribute: false })
|
|
public cardWideConfig?: CardWideConfig;
|
|
|
|
protected render(): TemplateResult | void {
|
|
if (!this.timelineConfig) {
|
|
return html``;
|
|
}
|
|
|
|
return html`
|
|
<advanced-camera-card-timeline-core
|
|
.hass=${this.hass}
|
|
.viewManagerEpoch=${this.viewManagerEpoch}
|
|
.timelineConfig=${this.timelineConfig}
|
|
.thumbnailConfig=${this.timelineConfig.controls.thumbnails}
|
|
.cameraManager=${this.cameraManager}
|
|
.foldersManager=${this.foldersManager}
|
|
.conditionStateManager=${this.conditionStateManager}
|
|
.viewItemManager=${this.viewItemManager}
|
|
.cardWideConfig=${this.cardWideConfig}
|
|
.itemClickAction=${this.timelineConfig.controls.thumbnails.mode === 'none'
|
|
? 'play'
|
|
: 'select'}
|
|
>
|
|
</advanced-camera-card-timeline-core>
|
|
`;
|
|
}
|
|
|
|
static get styles(): CSSResultGroup {
|
|
return unsafeCSS(basicBlockStyle);
|
|
}
|
|
}
|
|
|
|
declare global {
|
|
interface HTMLElementTagNameMap {
|
|
'advanced-camera-card-timeline': AdvancedCameraCardTimeline;
|
|
}
|
|
}
|