components/table-data-panel/table-data-panel.component.ts
Expansion panel with data table and export.
| changeDetection | ChangeDetectionStrategy.OnPush |
| host | { |
| selector | app-table-data-panel |
| imports |
LowerCasePipe
MatExpansionPanel
MatExpansionPanelHeader
MatExpansionPanelTitle
NshmpDataTableComponent
NshmpExportDataTableComponent
|
| templateUrl | ./table-data-panel.component.html |
| styleUrl | ./table-data-panel.component.scss |
Properties |
|
| Readonly buttonText |
Default value : input('Export as CSV')
|
|
Text for export button |
| Readonly filename |
Default value : input<string>('hazard.csv')
|
|
Filename for export |
| Readonly panelTitle |
Default value : input<string>('')
|
|
Expansion panel title |
| Readonly tableData |
Default value : input<TableData[]>([])
|
|
Table data |
import {LowerCasePipe} from '@angular/common';
import {ChangeDetectionStrategy, Component, input} from '@angular/core';
import {
MatExpansionPanel,
MatExpansionPanelHeader,
MatExpansionPanelTitle,
} from '@angular/material/expansion';
import {
NshmpDataTableComponent,
NshmpExportDataTableComponent,
TableData,
} from '@ghsc/nshmp-lib-ng/nshmp';
/**
* Expansion panel with data table and export.
*/
@Component({
changeDetection: ChangeDetectionStrategy.OnPush,
host: {id: 'dev-hazard-dynamic-compare-table-data-panel'},
imports: [
LowerCasePipe,
MatExpansionPanel,
MatExpansionPanelHeader,
MatExpansionPanelTitle,
NshmpDataTableComponent,
NshmpExportDataTableComponent,
],
selector: 'app-table-data-panel',
styleUrl: './table-data-panel.component.scss',
templateUrl: './table-data-panel.component.html',
})
export class TableDataPanelComponent {
/** Text for export button */
readonly buttonText = input('Export as CSV');
/** Filename for export */
readonly filename = input<string>('hazard.csv');
/** Expansion panel title */
readonly panelTitle = input<string>('');
/** Table data */
readonly tableData = input<TableData[]>([]);
}
<mat-expansion-panel expanded>
<mat-expansion-panel-header>
<mat-panel-title>{{ panelTitle() }}</mat-panel-title>
</mat-expansion-panel-header>
<nshmp-export-data-table
[table]="tableData()"
[filename]="filename() | lowercase"
[buttonText]="buttonText()"
/>
<nshmp-data-table [table]="tableData()" />
</mat-expansion-panel>