import { css, CSSResult, customElement, html, LitElement, property, TemplateResult } from "lit-element"; import PFPage from "@patternfly/patternfly/components/Page/page.css"; import PFContent from "@patternfly/patternfly/components/Content/content.css"; import AKGlobal from "../authentik.css"; import PFBase from "@patternfly/patternfly/patternfly-base.css"; import PFButton from "@patternfly/patternfly/components/Button/button.css"; import { EVENT_SIDEBAR_TOGGLE, TITLE_DEFAULT } from "../constants"; import { tenant } from "../api/Config"; @customElement("ak-page-header") export class PageHeader extends LitElement { @property() icon?: string; @property({type: Boolean}) iconImage = false @property() set header(value: string) { tenant().then(tenant => { if (value !== "") { document.title = `${value} - ${tenant.brandingTitle}`; } else { document.title = tenant.brandingTitle || TITLE_DEFAULT; } }); this._header = value; } get header(): string { return this._header; } @property() description?: string; _header = ""; static get styles(): CSSResult[] { return [PFBase, PFButton, PFPage, PFContent, AKGlobal, css` :host { display: flex; flex-direction: row; min-height: 114px; } button.pf-c-button.pf-m-plain.sidebar-trigger { background-color: var(--pf-c-page__main-section--m-light--BackgroundColor); border-radius: 0px; } .pf-c-page__main-section { width: 100%; display: flex; flex-direction: column; justify-content: center; } img.pf-icon { max-height: 24px; } `]; } renderIcon(): TemplateResult { if (this.icon) { if (this.iconImage) { return html` `; } return html` `; } return html``; } render(): TemplateResult { return html` { this.dispatchEvent( new CustomEvent(EVENT_SIDEBAR_TOGGLE, { bubbles: true, composed: true, }) ); }}> ${this.renderIcon()} ${this.header} ${this.description ? html`${this.description}` : html``} `; } }
${this.description}