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 59d50a40ec..e9b08947e9 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
@@ -17,7 +17,7 @@
*ngTemplateOutlet="actionsTemplate || gridActions; context: { $implicit: row, index: i }"
>
- @if (hasAvailableActions(i, row)) {
+ @if (hasAvailableActions(row)) {
}
diff --git a/npm/ng-packs/packages/components/extensible/src/lib/components/extensible-table/extensible-table.component.ts b/npm/ng-packs/packages/components/extensible/src/lib/components/extensible-table/extensible-table.component.ts
index 8ed24133f2..80321d4ef0 100644
--- a/npm/ng-packs/packages/components/extensible/src/lib/components/extensible-table/extensible-table.component.ts
+++ b/npm/ng-packs/packages/components/extensible/src/lib/components/extensible-table/extensible-table.component.ts
@@ -206,8 +206,20 @@ export class ExtensibleTableComponent implements OnChanges {
});
}
- hasAvailableActions(index, row): boolean {
- const { permission, visible } = this.actionList.get(index).value;
- return this.permissionService.getGrantedPolicy(permission) && visible(row);
+ hasAvailableActions(rowData): boolean {
+ let isActionAvailable = true;
+ this.actionList.toArray().map(action => {
+ const { visible, permission } = action;
+ if (rowData && action) {
+ const visibilityCheck = visible({
+ record: rowData,
+ getInjected: this.getInjected,
+ });
+ const permissionCheck = this.permissionService.getGrantedPolicy(permission);
+
+ isActionAvailable = visibilityCheck && permissionCheck;
+ }
+ });
+ return isActionAvailable;
}
}