diff --git a/npm/ng-packs/packages/components/extensible/src/lib/components/extensible-table/extensible-table.component.html b/npm/ng-packs/packages/components/extensible/src/lib/components/extensible-table/extensible-table.component.html index 471aad0f15..4a8f44b324 100644 --- a/npm/ng-packs/packages/components/extensible/src/lib/components/extensible-table/extensible-table.component.html +++ b/npm/ng-packs/packages/components/extensible/src/lib/components/extensible-table/extensible-table.component.html @@ -3,8 +3,33 @@ [rows]="data" [count]="recordsTotal" [list]="list" + [selectionType]="selectable ? _selectionType : undefined" (activate)="tableActivate.emit($event)" + (select)="onSelect($event)" + [selected]="selected" > + @if(selectable) { + + +
+ +
+
+ + +
+ +
+
+ +
+
+ +
+ } @if (actionsTemplate || (actionList.length && hasAtLeastOnePermittedAction)) { implements OnChanges, AfterViewIn @Output() tableActivate = new EventEmitter(); + @Input() selectable = false; + + @Input() set selectionType(value: SelectionType | string) { + this._selectionType = typeof value === 'string' ? SelectionType[value] : value; + } + _selectionType: SelectionType = SelectionType.multiClick; + + + @Input() selected: any[] = []; + @Output() selectionChange = new EventEmitter(); + hasAtLeastOnePermittedAction: boolean; readonly columnWidths!: number[]; @@ -229,6 +240,12 @@ export class ExtensibleTableComponent implements OnChanges, AfterViewIn return visibleActions.length > 0; } + onSelect({ selected }) { + this.selected.splice(0, this.selected.length); + this.selected.push(...selected); + this.selectionChange.emit(selected); + } + ngAfterViewInit(): void { this.list?.requestStatus$?.pipe(filter(status => status === 'loading')).subscribe(() => { this.data = [];