import '@material/web/icon/icon.js' import '@material/web/fab/fab.js' import gql from 'graphql-tag' import { css, html, LitElement, nothing } from 'lit' import { customElement, property, query } from 'lit/decorators.js' import { subscribe } from '@operato/graphql' import { i18next } from '@operato/i18n' import { ScrollbarStyles } from '@operato/styles' @customElement('scenario-instance-log-view') export class ScenarioInstanceLogView extends LitElement { static styles = [ ScrollbarStyles, css` :host { display: flex; flex-direction: column; background-color: var(--md-sys-color-surface); padding: var(--spacing-large); } :host([active]) { padding: 0; } [content] { flex: 1; display: flex; flex-direction: column; overflow: auto; font-size: var(--fontsize-small); } div.error { color: #8b0000; } div.warn { color: #ff6b6b; } span { color: var(--md-sys-color-primary); } #start { position: absolute; bottom: 15px; right: 16px; text-decoration: auto; display: flex; flex-direction: column-reverse; gap: 10px; align-items: center; } #start [draft] { --md-fab-container-color: var(--md-sys-color-secondary-container); --md-fab-icon-color: var(--md-sys-color-on-secondary-container); } ` ] @property({ type: String }) scenarioName?: string @property({ type: String }) instanceName?: string @property({ type: Array }) logs: any @property({ type: Boolean }) startable: boolean = false subscription: any firstUpdated() { this.logs = [] this.startSubscribe() } disconnectedCallback() { super.disconnectedCallback() this.stopSubscribe() } render() { const logs = this.logs || [] return html`