| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233 |
- ---
- title: "DataTableComponent"
- generated: true
- ---
- <GenerationInfo sourceFile="packages/admin-ui/src/lib/core/src/shared/components/data-table/data-table.component.ts" sourceLine="86" packageName="@vendure/admin-ui" />
- A table for displaying PaginatedList results. It is designed to be used inside components which
- extend the <DocsLink href="/reference/admin-ui-api/list-detail-views/base-list-component#baselistcomponent">BaseListComponent</DocsLink> class.
- **Deprecated** This component is deprecated. Use the <DocsLink href="/reference/admin-ui-api/components/data-table2component#datatable2component">DataTable2Component</DocsLink> instead.
- *Example*
- ```HTML
- <vdr-data-table
- [items]="items$ | async"
- [itemsPerPage]="itemsPerPage$ | async"
- [totalItems]="totalItems$ | async"
- [currentPage]="currentPage$ | async"
- (pageChange)="setPageNumber($event)"
- (itemsPerPageChange)="setItemsPerPage($event)"
- >
- <!-- The header columns are defined first -->
- <vdr-dt-column>{{ 'common.name' | translate }}</vdr-dt-column>
- <vdr-dt-column></vdr-dt-column>
- <vdr-dt-column></vdr-dt-column>
- <!-- Then we define how a row is rendered -->
- <ng-template let-taxRate="item">
- <td class="left align-middle">{{ taxRate.name }}</td>
- <td class="left align-middle">{{ taxRate.category.name }}</td>
- <td class="left align-middle">{{ taxRate.zone.name }}</td>
- <td class="left align-middle">{{ taxRate.value }}%</td>
- <td class="right align-middle">
- <vdr-table-row-action
- iconShape="edit"
- [label]="'common.edit' | translate"
- [linkTo]="['./', taxRate.id]"
- ></vdr-table-row-action>
- </td>
- <td class="right align-middle">
- <vdr-dropdown>
- <button type="button" class="btn btn-link btn-sm" vdrDropdownTrigger>
- {{ 'common.actions' | translate }}
- <clr-icon shape="caret down"></clr-icon>
- </button>
- <vdr-dropdown-menu vdrPosition="bottom-right">
- <button
- type="button"
- class="delete-button"
- (click)="deleteTaxRate(taxRate)"
- [disabled]="!(['DeleteSettings', 'DeleteTaxRate'] | hasPermission)"
- vdrDropdownItem
- >
- <clr-icon shape="trash" class="is-danger"></clr-icon>
- {{ 'common.delete' | translate }}
- </button>
- </vdr-dropdown-menu>
- </vdr-dropdown>
- </td>
- </ng-template>
- </vdr-data-table>
- ```
- ```ts title="Signature"
- class DataTableComponent<T> implements AfterContentInit, OnChanges, OnInit, OnDestroy {
- @Input() items: T[];
- @Input() itemsPerPage: number;
- @Input() currentPage: number;
- @Input() totalItems: number;
- @Input() emptyStateLabel: string;
- @Input() selectionManager?: SelectionManager<T>;
- @Output() pageChange = new EventEmitter<number>();
- @Output() itemsPerPageChange = new EventEmitter<number>();
- @Input() allSelected: boolean;
- @Input() isRowSelectedFn: ((item: T) => boolean) | undefined;
- @Output() allSelectChange = new EventEmitter<void>();
- @Output() rowSelectChange = new EventEmitter<{ event: MouseEvent; item: T }>();
- @ContentChildren(DataTableColumnComponent) columns: QueryList<DataTableColumnComponent>;
- @ContentChildren(TemplateRef) templateRefs: QueryList<TemplateRef<any>>;
- rowTemplate: TemplateRef<any>;
- currentStart: number;
- currentEnd: number;
- disableSelect = false;
- constructor(changeDetectorRef: ChangeDetectorRef)
- ngOnInit() => ;
- ngOnChanges(changes: SimpleChanges) => ;
- ngOnDestroy() => ;
- ngAfterContentInit() => void;
- trackByFn(index: number, item: any) => ;
- onToggleAllClick() => ;
- onRowClick(item: T, event: MouseEvent) => ;
- }
- ```
- * Implements: <code>AfterContentInit</code>, <code>OnChanges</code>, <code>OnInit</code>, <code>OnDestroy</code>
- <div className="members-wrapper">
- ### items
- <MemberInfo kind="property" type={`T[]`} />
- ### itemsPerPage
- <MemberInfo kind="property" type={`number`} />
- ### currentPage
- <MemberInfo kind="property" type={`number`} />
- ### totalItems
- <MemberInfo kind="property" type={`number`} />
- ### emptyStateLabel
- <MemberInfo kind="property" type={`string`} />
- ### selectionManager
- <MemberInfo kind="property" type={`SelectionManager<T>`} />
- ### pageChange
- <MemberInfo kind="property" type={``} />
- ### itemsPerPageChange
- <MemberInfo kind="property" type={``} />
- ### allSelected
- <MemberInfo kind="property" type={`boolean`} />
- ### isRowSelectedFn
- <MemberInfo kind="property" type={`((item: T) => boolean) | undefined`} />
- ### allSelectChange
- <MemberInfo kind="property" type={``} />
- ### rowSelectChange
- <MemberInfo kind="property" type={``} />
- ### columns
- <MemberInfo kind="property" type={`QueryList<DataTableColumnComponent>`} />
- ### templateRefs
- <MemberInfo kind="property" type={`QueryList<TemplateRef<any>>`} />
- ### rowTemplate
- <MemberInfo kind="property" type={`TemplateRef<any>`} />
- ### currentStart
- <MemberInfo kind="property" type={`number`} />
- ### currentEnd
- <MemberInfo kind="property" type={`number`} />
- ### disableSelect
- <MemberInfo kind="property" type={``} />
- ### constructor
- <MemberInfo kind="method" type={`(changeDetectorRef: ChangeDetectorRef) => DataTableComponent`} />
- ### ngOnInit
- <MemberInfo kind="method" type={`() => `} />
- ### ngOnChanges
- <MemberInfo kind="method" type={`(changes: SimpleChanges) => `} />
- ### ngOnDestroy
- <MemberInfo kind="method" type={`() => `} />
- ### ngAfterContentInit
- <MemberInfo kind="method" type={`() => void`} />
- ### trackByFn
- <MemberInfo kind="method" type={`(index: number, item: any) => `} />
- ### onToggleAllClick
- <MemberInfo kind="method" type={`() => `} />
- ### onRowClick
- <MemberInfo kind="method" type={`(item: T, event: MouseEvent) => `} />
- </div>
|