DataTable2Component
DataTable2Component
A table for displaying PaginatedList results. It is designed to be used inside components which extend the BaseListComponent or TypedBaseListComponent class.
Example
<vdr-data-table-2
id="product-review-list"
[items]="items$ | async"
[itemsPerPage]="itemsPerPage$ | async"
[totalItems]="totalItems$ | async"
[currentPage]="currentPage$ | async"
[filters]="filters"
(pageChange)="setPageNumber($event)"
(itemsPerPageChange)="setItemsPerPage($event)"
>
<vdr-bulk-action-menu
locationId="product-review-list"
[hostComponent]="this"
[selectionManager]="selectionManager"
/>
<vdr-dt2-search
[searchTermControl]="searchTermControl"
searchTermPlaceholder="Filter by title"
/>
<vdr-dt2-column [heading]="'common.id' | translate" [hiddenByDefault]="true">
<ng-template let-review="item">
{{ review.id }}
</ng-template>
</vdr-dt2-column>
<vdr-dt2-column
[heading]="'common.created-at' | translate"
[hiddenByDefault]="true"
[sort]="sorts.get('createdAt')"
>
<ng-template let-review="item">
{{ review.createdAt | localeDate : 'short' }}
</ng-template>
</vdr-dt2-column>
<vdr-dt2-column
[heading]="'common.updated-at' | translate"
[hiddenByDefault]="true"
[sort]="sorts.get('updatedAt')"
>
<ng-template let-review="item">
{{ review.updatedAt | localeDate : 'short' }}
</ng-template>
</vdr-dt2-column>
<vdr-dt2-column [heading]="'common.name' | translate" [optional]="false" [sort]="sorts.get('name')">
<ng-template let-review="item">
<a class="button-ghost" [routerLink]="['./', review.id]"
><span>{{ review.name }}</span>
<clr-icon shape="arrow right"></clr-icon>
</a>
</ng-template>
</vdr-dt2-column>
</vdr-data-table-2>
Signature
class DataTable2Component<T> implements AfterContentInit, OnChanges, OnDestroy {
@Input() @Input() id: string;
@Input() @Input() items: T[];
@Input() @Input() itemsPerPage: number;
@Input() @Input() currentPage: number;
@Input() @Input() totalItems: number;
@Input() @Input() emptyStateLabel: string;
@Input() @Input() filters: DataTableFilterCollection;
@Input() @Input() activeIndex = -1;
@Output() @Output() pageChange = new EventEmitter<number>();
@Output() @Output() itemsPerPageChange = new EventEmitter<number>();
@ContentChildren(DataTable2ColumnComponent) @ContentChildren(DataTable2ColumnComponent) columns: QueryList<DataTable2ColumnComponent<T>>;
@ContentChildren(DataTableCustomFieldColumnComponent) @ContentChildren(DataTableCustomFieldColumnComponent)
customFieldColumns: QueryList<DataTableCustomFieldColumnComponent<T>>;
@ContentChild(DataTable2SearchComponent) @ContentChild(DataTable2SearchComponent) searchComponent: DataTable2SearchComponent;
@ContentChild(BulkActionMenuComponent) @ContentChild(BulkActionMenuComponent) bulkActionMenuComponent: BulkActionMenuComponent;
@ContentChild('vdrDt2CustomSearch') @ContentChild('vdrDt2CustomSearch') customSearchTemplate: TemplateRef<any>;
@ContentChildren(TemplateRef) @ContentChildren(TemplateRef) templateRefs: QueryList<TemplateRef<any>>;
rowTemplate: TemplateRef<any>;
currentStart: number;
currentEnd: number;
disableSelect = false;
showSearchFilterRow = false;
protected protected uiLanguage$: Observable<LanguageCode>;
constructor(changeDetectorRef: ChangeDetectorRef, localStorageService: LocalStorageService, dataService: DataService)
selectionManager: void
allColumns: void
visibleSortedColumns: void
sortedColumns: void
ngOnChanges(changes: SimpleChanges) => ;
ngOnDestroy() => ;
ngAfterContentInit() => void;
onColumnReorder(event: { column: DataTable2ColumnComponent<any>; newIndex: number }) => ;
onColumnsReset() => ;
toggleSearchFilterRow() => ;
trackByFn(index: number, item: any) => ;
onToggleAllClick() => ;
onRowClick(item: T, event: MouseEvent) => ;
protected getDataTableConfig() => DataTableConfig;
}
Implements
- AfterContentInit
- OnChanges
- OnDestroy
Members
id
property
type:
string
items
property
type:
T[]
itemsPerPage
property
type:
number
currentPage
property
type:
number
totalItems
property
type:
number
emptyStateLabel
property
type:
string
filters
property
type:
DataTableFilterCollection
activeIndex
property
type:
pageChange
property
type:
itemsPerPageChange
property
type:
columns
property
type:
QueryList<DataTable2ColumnComponent<T>>
customFieldColumns
property
type:
QueryList<DataTableCustomFieldColumnComponent<T>>
searchComponent
property
type:
DataTable2SearchComponent
bulkActionMenuComponent
property
type:
BulkActionMenuComponent
customSearchTemplate
property
type:
TemplateRef<any>
templateRefs
property
type:
QueryList<TemplateRef<any>>
rowTemplate
property
type:
TemplateRef<any>
currentStart
property
type:
number
currentEnd
property
type:
number
disableSelect
property
type:
showSearchFilterRow
property
type:
uiLanguage$
property
type:
Observable<LanguageCode>
constructor
method
type:
(changeDetectorRef: ChangeDetectorRef, localStorageService: LocalStorageService, dataService: DataService) => DataTable2Component
selectionManager
property
type:
allColumns
property
type:
visibleSortedColumns
property
type:
sortedColumns
property
type:
ngOnChanges
method
type:
(changes: SimpleChanges) =>
ngOnDestroy
method
type:
() =>
ngAfterContentInit
method
type:
() => void
onColumnReorder
method
type:
(event: { column: DataTable2ColumnComponent<any>; newIndex: number }) =>
onColumnsReset
method
type:
() =>
toggleSearchFilterRow
method
type:
() =>
trackByFn
method
type:
(index: number, item: any) =>
onToggleAllClick
method
type:
() =>
onRowClick
method
type:
(item: T, event: MouseEvent) =>
getDataTableConfig
method
type:
() => DataTableConfig