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 a99ba37907..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,12 +206,20 @@ export class ExtensibleTableComponent implements OnChanges {
});
}
- hasAvailableActions(index, data): boolean {
- const { permission, visible } = this.actionList.get(index)?.value || {};
- let isActionAvailable = this.permissionService.getGrantedPolicy(permission);
- if (data && data.record) {
- isActionAvailable &&= visible(data);
- }
+ 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;
}
}