30 lines
1.1 KiB
TypeScript
30 lines
1.1 KiB
TypeScript
import { CSSResult } from "lit-element";
|
|
import { html, TemplateResult } from "lit-html";
|
|
import { ifDefined } from "lit-html/directives/if-defined";
|
|
import { Table } from "./Table";
|
|
import "../../elements/PageHeader";
|
|
import PFPage from "@patternfly/patternfly/components/Page/page.css";
|
|
import PFContent from "@patternfly/patternfly/components/Content/content.css";
|
|
|
|
export abstract class TablePage<T> extends Table<T> {
|
|
abstract pageTitle(): string;
|
|
abstract pageDescription(): string | undefined;
|
|
abstract pageIcon(): string;
|
|
|
|
static get styles(): CSSResult[] {
|
|
return super.styles.concat(PFPage, PFContent);
|
|
}
|
|
|
|
render(): TemplateResult {
|
|
return html`<ak-page-header
|
|
icon=${this.pageIcon()}
|
|
header=${this.pageTitle()}
|
|
description=${ifDefined(this.pageDescription())}
|
|
>
|
|
</ak-page-header>
|
|
<section class="pf-c-page__main-section pf-m-no-padding-mobile">
|
|
<div class="pf-c-card">${this.renderTable()}</div>
|
|
</section>`;
|
|
}
|
|
}
|