@Component({
imports: [
Datagrid,
NgbCellTemplate,
NgbDatagridLayoutToolbarComponent,
NgbDatagridFilterToolComponent,
NgbDatagridSortToolComponent,
NgbDatagridColumnChooserToolComponent,
],
template: `
<ngb-datagrid
#productGrid
[columns]="columns"
[data]="rows"
[enableSorting]="true"
[enableFiltering]="true"
[filterable]="'menu'"
[tableOptions]="tableOptions"
>
<ngb-datagrid-layout-toolbar [grid]="productGrid">
<ngb-datagrid-filter-tool></ngb-datagrid-filter-tool>
<ngb-datagrid-sort-tool></ngb-datagrid-sort-tool>
<ngb-datagrid-column-chooser-tool></ngb-datagrid-column-chooser-tool>
</ngb-datagrid-layout-toolbar>
<ng-template ngbCell="productName" let-row>
{{ row.productName }}
</ng-template>
</ngb-datagrid>
`,
})
export class ProductStackedGrid {
readonly tableOptions: NgbTableOptions = {
stacked: true,
stackedLayout: 'cards',
hoverRows: true,
density: 'comfortable',
};
readonly columns: ColumnDef<ProductRow>[] = [
{ field: 'productName', header: 'Product', stackedGroup: 'start', sortable: true, filterable: true },
{ field: 'unitPrice', header: 'Price', type: 'number', stackedGroup: 'center', sortable: true, filterable: true },
{ field: 'inStock', header: 'In stock', type: 'boolean', stackedGroup: 'end', sortable: true, filterable: true },
];
}