import * as plugins from '../../../plugins.js'; import * as appstate from '../../../appstate.js'; import { viewHostCss } from '../../shared/index.js'; import { DeesElement, customElement, html, state, css, cssManager, type TemplateResult, } from '@design.estate/dees-element'; @customElement('gitops-view-actionlog') export class GitopsViewActionlog extends DeesElement { @state() accessor actionLogState: appstate.IActionLogState = { entries: [], total: 0, }; @state() accessor selectedEntityType: string = 'all'; private _autoRefreshHandler: () => void; constructor() { super(); const sub = appstate.actionLogStatePart .select((s) => s) .subscribe((s) => { this.actionLogState = s; }); this.rxSubscriptions.push(sub); this._autoRefreshHandler = () => this.refresh(); document.addEventListener('gitops-auto-refresh', this._autoRefreshHandler); } public override disconnectedCallback() { super.disconnectedCallback(); document.removeEventListener('gitops-auto-refresh', this._autoRefreshHandler); } public static styles = [ cssManager.defaultStyles, viewHostCss, ]; public render(): TemplateResult { const entityOptions = [ { option: 'All', key: 'all' }, { option: 'Connection', key: 'connection' }, { option: 'Secret', key: 'secret' }, { option: 'Pipeline', key: 'pipeline' }, ]; return html`