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 = [];