@memberjunction/ng-explorer-settings 6.2.0-edge.0 → 6.2.0-edge.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/account-info/account-info.component.d.ts +1 -1
- package/dist/lib/account-info/account-info.component.js +2 -2
- package/dist/lib/account-info/account-info.component.js.map +1 -1
- package/dist/lib/application-management/application-dialog/application-dialog.component.d.ts +92 -10
- package/dist/lib/application-management/application-dialog/application-dialog.component.d.ts.map +1 -1
- package/dist/lib/application-management/application-dialog/application-dialog.component.js +222 -76
- package/dist/lib/application-management/application-dialog/application-dialog.component.js.map +1 -1
- package/dist/lib/application-management/application-management.component.d.ts +92 -10
- package/dist/lib/application-management/application-management.component.d.ts.map +1 -1
- package/dist/lib/application-management/application-management.component.js +229 -65
- package/dist/lib/application-management/application-management.component.js.map +1 -1
- package/dist/lib/application-settings/application-settings.component.d.ts +4 -4
- package/dist/lib/application-settings/application-settings.component.js +10 -10
- package/dist/lib/application-settings/application-settings.component.js.map +1 -1
- package/dist/lib/entity-permissions/entity-permissions.component.d.ts +88 -10
- package/dist/lib/entity-permissions/entity-permissions.component.d.ts.map +1 -1
- package/dist/lib/entity-permissions/entity-permissions.component.js +219 -63
- package/dist/lib/entity-permissions/entity-permissions.component.js.map +1 -1
- package/dist/lib/entity-permissions/permission-dialog/permission-dialog.component.d.ts +44 -6
- package/dist/lib/entity-permissions/permission-dialog/permission-dialog.component.d.ts.map +1 -1
- package/dist/lib/entity-permissions/permission-dialog/permission-dialog.component.js +117 -43
- package/dist/lib/entity-permissions/permission-dialog/permission-dialog.component.js.map +1 -1
- package/dist/lib/notification-preferences/notification-preferences.component.d.ts +25 -3
- package/dist/lib/notification-preferences/notification-preferences.component.d.ts.map +1 -1
- package/dist/lib/notification-preferences/notification-preferences.component.js +62 -18
- package/dist/lib/notification-preferences/notification-preferences.component.js.map +1 -1
- package/dist/lib/role-management/role-dialog/role-dialog.component.d.ts +32 -4
- package/dist/lib/role-management/role-dialog/role-dialog.component.d.ts.map +1 -1
- package/dist/lib/role-management/role-dialog/role-dialog.component.js +84 -30
- package/dist/lib/role-management/role-dialog/role-dialog.component.js.map +1 -1
- package/dist/lib/role-management/role-management-agent-context.d.ts +12 -4
- package/dist/lib/role-management/role-management-agent-context.d.ts.map +1 -1
- package/dist/lib/role-management/role-management-agent-context.js +26 -10
- package/dist/lib/role-management/role-management-agent-context.js.map +1 -1
- package/dist/lib/role-management/role-management.component.d.ts +95 -11
- package/dist/lib/role-management/role-management.component.d.ts.map +1 -1
- package/dist/lib/role-management/role-management.component.js +259 -91
- package/dist/lib/role-management/role-management.component.js.map +1 -1
- package/dist/lib/settings/settings.component.d.ts +87 -11
- package/dist/lib/settings/settings.component.d.ts.map +1 -1
- package/dist/lib/settings/settings.component.js +211 -65
- package/dist/lib/settings/settings.component.js.map +1 -1
- package/dist/lib/shared/settings-card.component.d.ts +24 -4
- package/dist/lib/shared/settings-card.component.d.ts.map +1 -1
- package/dist/lib/shared/settings-card.component.js +46 -6
- package/dist/lib/shared/settings-card.component.js.map +1 -1
- package/dist/lib/sql-logging/sql-logging.component.d.ts +172 -18
- package/dist/lib/sql-logging/sql-logging.component.d.ts.map +1 -1
- package/dist/lib/sql-logging/sql-logging.component.js +320 -108
- package/dist/lib/sql-logging/sql-logging.component.js.map +1 -1
- package/dist/lib/user-app-config/user-app-config-content.component.js +3 -3
- package/dist/lib/user-app-config/user-app-config-content.component.js.map +1 -1
- package/dist/lib/user-app-config/user-app-config-reorder.d.ts +4 -0
- package/dist/lib/user-app-config/user-app-config-reorder.d.ts.map +1 -1
- package/dist/lib/user-app-config/user-app-config-reorder.js +11 -3
- package/dist/lib/user-app-config/user-app-config-reorder.js.map +1 -1
- package/dist/lib/user-management/transaction-group-refusals.d.ts +4 -2
- package/dist/lib/user-management/transaction-group-refusals.d.ts.map +1 -1
- package/dist/lib/user-management/transaction-group-refusals.js +7 -3
- package/dist/lib/user-management/transaction-group-refusals.js.map +1 -1
- package/dist/lib/user-management/user-dialog/user-dialog.component.d.ts +44 -6
- package/dist/lib/user-management/user-dialog/user-dialog.component.d.ts.map +1 -1
- package/dist/lib/user-management/user-dialog/user-dialog.component.js +121 -47
- package/dist/lib/user-management/user-dialog/user-dialog.component.js.map +1 -1
- package/dist/lib/user-management/user-management-agent-context.d.ts +10 -0
- package/dist/lib/user-management/user-management-agent-context.d.ts.map +1 -1
- package/dist/lib/user-management/user-management-agent-context.js +26 -6
- package/dist/lib/user-management/user-management-agent-context.js.map +1 -1
- package/dist/lib/user-management/user-management.component.d.ts +174 -16
- package/dist/lib/user-management/user-management.component.d.ts.map +1 -1
- package/dist/lib/user-management/user-management.component.js +480 -171
- package/dist/lib/user-management/user-management.component.js.map +1 -1
- package/dist/lib/user-profile-settings/user-profile-settings.component.d.ts +97 -15
- package/dist/lib/user-profile-settings/user-profile-settings.component.d.ts.map +1 -1
- package/dist/lib/user-profile-settings/user-profile-settings.component.js +280 -116
- package/dist/lib/user-profile-settings/user-profile-settings.component.js.map +1 -1
- package/package.json +20 -20
|
@@ -31,20 +31,58 @@ interface PermissionLevel {
|
|
|
31
31
|
export declare class EntityPermissionsComponent extends BaseDashboard implements OnDestroy {
|
|
32
32
|
private cdr;
|
|
33
33
|
private ngZone;
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
34
|
+
EntityAccess: EntityAccess[];
|
|
35
|
+
/** @deprecated Use {@link EntityAccess}. */
|
|
36
|
+
get entityAccess(): EntityAccess[];
|
|
37
|
+
/** @deprecated Use {@link EntityAccess}. */
|
|
38
|
+
set entityAccess(value: EntityAccess[]);
|
|
39
|
+
FilteredEntityAccess: EntityAccess[];
|
|
40
|
+
/** @deprecated Use {@link FilteredEntityAccess}. */
|
|
41
|
+
get filteredEntityAccess(): EntityAccess[];
|
|
42
|
+
/** @deprecated Use {@link FilteredEntityAccess}. */
|
|
43
|
+
set filteredEntityAccess(value: EntityAccess[]);
|
|
44
|
+
Roles: MJRoleEntity[];
|
|
45
|
+
/** @deprecated Use {@link Roles}. */
|
|
46
|
+
get roles(): MJRoleEntity[];
|
|
47
|
+
/** @deprecated Use {@link Roles}. */
|
|
48
|
+
set roles(value: MJRoleEntity[]);
|
|
37
49
|
isLoading: boolean;
|
|
38
50
|
error: string | null;
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
51
|
+
ShowPermissionDialog: boolean;
|
|
52
|
+
/** @deprecated Use {@link ShowPermissionDialog}. */
|
|
53
|
+
get showPermissionDialog(): boolean;
|
|
54
|
+
/** @deprecated Use {@link ShowPermissionDialog}. */
|
|
55
|
+
set showPermissionDialog(value: boolean);
|
|
56
|
+
PermissionDialogData: PermissionDialogData | null;
|
|
57
|
+
/** @deprecated Use {@link PermissionDialogData}. */
|
|
58
|
+
get permissionDialogData(): PermissionDialogData | null;
|
|
59
|
+
/** @deprecated Use {@link PermissionDialogData}. */
|
|
60
|
+
set permissionDialogData(value: PermissionDialogData | null);
|
|
61
|
+
Stats: PermissionsStats;
|
|
62
|
+
/** @deprecated Use {@link Stats}. */
|
|
63
|
+
get stats(): PermissionsStats;
|
|
64
|
+
/** @deprecated Use {@link Stats}. */
|
|
65
|
+
set stats(value: PermissionsStats);
|
|
66
|
+
Filters$: BehaviorSubject<FilterOptions>;
|
|
67
|
+
/** @deprecated Use {@link Filters$}. */
|
|
68
|
+
get filters$(): BehaviorSubject<FilterOptions>;
|
|
69
|
+
/** @deprecated Use {@link Filters$}. */
|
|
70
|
+
set filters$(value: BehaviorSubject<FilterOptions>);
|
|
71
|
+
ExpandedEntityId: string | null;
|
|
72
|
+
/** @deprecated Use {@link ExpandedEntityId}. */
|
|
73
|
+
get expandedEntityId(): string | null;
|
|
74
|
+
/** @deprecated Use {@link ExpandedEntityId}. */
|
|
75
|
+
set expandedEntityId(value: string | null);
|
|
76
|
+
ViewMode: 'grid' | 'list';
|
|
77
|
+
/** @deprecated Use {@link ViewMode}. */
|
|
78
|
+
get viewMode(): 'grid' | 'list';
|
|
79
|
+
/** @deprecated Use {@link ViewMode}. */
|
|
80
|
+
set viewMode(value: 'grid' | 'list');
|
|
45
81
|
/** Options for the <mj-view-toggle> in the interior chrome. Icon-only;
|
|
46
82
|
title drives the tooltip + aria-label. */
|
|
47
|
-
readonly
|
|
83
|
+
readonly ViewToggleOptions: ViewToggleOption[];
|
|
84
|
+
/** @deprecated Use {@link ViewToggleOptions}. */
|
|
85
|
+
get viewToggleOptions(): ViewToggleOption[];
|
|
48
86
|
protected destroy$: Subject<void>;
|
|
49
87
|
private get metadata();
|
|
50
88
|
constructor(cdr: ChangeDetectorRef, ngZone: NgZone);
|
|
@@ -52,6 +90,8 @@ export declare class EntityPermissionsComponent extends BaseDashboard implements
|
|
|
52
90
|
protected initDashboard(): void;
|
|
53
91
|
protected loadData(): void;
|
|
54
92
|
ngOnDestroy(): void;
|
|
93
|
+
LoadInitialData(): Promise<void>;
|
|
94
|
+
/** @deprecated Use {@link LoadInitialData}. */
|
|
55
95
|
loadInitialData(): Promise<void>;
|
|
56
96
|
private loadEntities;
|
|
57
97
|
private loadEntityPermissions;
|
|
@@ -60,14 +100,26 @@ export declare class EntityPermissionsComponent extends BaseDashboard implements
|
|
|
60
100
|
private setupFilterSubscription;
|
|
61
101
|
private applyFilters;
|
|
62
102
|
private calculateStats;
|
|
103
|
+
OnAccessLevelChange(level: 'all' | 'public' | 'restricted' | 'custom'): void;
|
|
104
|
+
/** @deprecated Use {@link OnAccessLevelChange}. */
|
|
63
105
|
onAccessLevelChange(level: 'all' | 'public' | 'restricted' | 'custom'): void;
|
|
106
|
+
UpdateFilter(partial: Partial<FilterOptions>): void;
|
|
107
|
+
/** @deprecated Use {@link UpdateFilter}. */
|
|
64
108
|
updateFilter(partial: Partial<FilterOptions>): void;
|
|
109
|
+
get FilterFields(): FilterFieldConfig[];
|
|
110
|
+
/** @deprecated Use {@link FilterFields}. */
|
|
65
111
|
get filterFields(): FilterFieldConfig[];
|
|
112
|
+
get FilterValues(): Record<string, unknown>;
|
|
113
|
+
/** @deprecated Use {@link FilterValues}. */
|
|
66
114
|
get filterValues(): Record<string, unknown>;
|
|
67
115
|
/** Total active filters (Access level + Role) — drives the Filter button badge. */
|
|
68
116
|
get TotalActiveFilterCount(): number;
|
|
117
|
+
OnFilterPanelChange(values: Record<string, unknown>): void;
|
|
118
|
+
/** @deprecated Use {@link OnFilterPanelChange}. */
|
|
69
119
|
onFilterPanelChange(values: Record<string, unknown>): void;
|
|
70
120
|
/** Clear all filters (Access level + Role); search persists. */
|
|
121
|
+
ClearAllAppliedFilters(): void;
|
|
122
|
+
/** @deprecated Use {@link ClearAllAppliedFilters}. */
|
|
71
123
|
clearAllAppliedFilters(): void;
|
|
72
124
|
/** True when search and/or panel filters are narrowing the list — gates the
|
|
73
125
|
* no-results empty-state "Reset filters" CTA. */
|
|
@@ -75,20 +127,46 @@ export declare class EntityPermissionsComponent extends BaseDashboard implements
|
|
|
75
127
|
/** Reset everything narrowing the list (search + Access level + Role) and
|
|
76
128
|
* refresh immediately. Wired to the no-results empty-state CTA. Unlike
|
|
77
129
|
* clearAllAppliedFilters(), this also clears the search box. */
|
|
130
|
+
ResetAllFiltersAndSearch(): void;
|
|
131
|
+
/** @deprecated Use {@link ResetAllFiltersAndSearch}. */
|
|
78
132
|
resetAllFiltersAndSearch(): void;
|
|
79
133
|
/** Empty-state CTA handler: reset filters when the list is narrowed,
|
|
80
134
|
* otherwise reload the data (the original "Refresh" affordance). */
|
|
135
|
+
OnEmptyStateAction(): void;
|
|
136
|
+
/** @deprecated Use {@link OnEmptyStateAction}. */
|
|
81
137
|
onEmptyStateAction(): void;
|
|
138
|
+
ToggleEntityExpansion(entityId: string): void;
|
|
139
|
+
/** @deprecated Use {@link ToggleEntityExpansion}. */
|
|
82
140
|
toggleEntityExpansion(entityId: string): void;
|
|
141
|
+
IsEntityExpanded(entityId: string): boolean;
|
|
142
|
+
/** @deprecated Use {@link IsEntityExpanded}. */
|
|
83
143
|
isEntityExpanded(entityId: string): boolean;
|
|
144
|
+
EditEntityPermissions(entityAccess: EntityAccess): void;
|
|
145
|
+
/** @deprecated Use {@link EditEntityPermissions}. */
|
|
84
146
|
editEntityPermissions(entityAccess: EntityAccess): void;
|
|
147
|
+
OnPermissionDialogResult(result: PermissionDialogResult): void;
|
|
148
|
+
/** @deprecated Use {@link OnPermissionDialogResult}. */
|
|
85
149
|
onPermissionDialogResult(result: PermissionDialogResult): void;
|
|
150
|
+
SavePermissions(): Promise<void>;
|
|
151
|
+
/** @deprecated Use {@link SavePermissions}. */
|
|
86
152
|
savePermissions(): Promise<void>;
|
|
153
|
+
GetAccessLevelClass(entityAccess: EntityAccess): string;
|
|
154
|
+
/** @deprecated Use {@link GetAccessLevelClass}. */
|
|
87
155
|
getAccessLevelClass(entityAccess: EntityAccess): string;
|
|
156
|
+
GetAccessLevelLabel(entityAccess: EntityAccess): string;
|
|
157
|
+
/** @deprecated Use {@link GetAccessLevelLabel}. */
|
|
88
158
|
getAccessLevelLabel(entityAccess: EntityAccess): string;
|
|
159
|
+
GetRoleName(roleId: string): string;
|
|
160
|
+
/** @deprecated Use {@link GetRoleName}. */
|
|
89
161
|
getRoleName(roleId: string): string;
|
|
162
|
+
HasPermission(entityAccess: EntityAccess, roleId: string, permission: keyof PermissionLevel): boolean;
|
|
163
|
+
/** @deprecated Use {@link HasPermission}. */
|
|
90
164
|
hasPermission(entityAccess: EntityAccess, roleId: string, permission: keyof PermissionLevel): boolean;
|
|
165
|
+
RefreshData(): void;
|
|
166
|
+
/** @deprecated Use {@link RefreshData}. */
|
|
91
167
|
refreshData(): void;
|
|
168
|
+
SetViewMode(mode: 'grid' | 'list'): void;
|
|
169
|
+
/** @deprecated Use {@link SetViewMode}. */
|
|
92
170
|
setViewMode(mode: 'grid' | 'list'): void;
|
|
93
171
|
static ɵfac: i0.ɵɵFactoryDeclaration<EntityPermissionsComponent, never>;
|
|
94
172
|
static ɵcmp: i0.ɵɵComponentDeclaration<EntityPermissionsComponent, "mj-entity-permissions", never, {}, {}, never, never, false, never>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity-permissions.component.d.ts","sourceRoot":"","sources":["../../../src/lib/entity-permissions/entity-permissions.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,SAAS,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAChF,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AAGhD,OAAO,EACL,wBAAwB,EACxB,cAAc,EACd,YAAY,EACZ,YAAY,EACb,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACvF,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,iDAAiD,CAAC;;AAE/G,UAAU,gBAAgB;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,UAAU,aAAa;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,KAAK,GAAG,QAAQ,GAAG,YAAY,GAAG,QAAQ,CAAC;IACxD,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,UAAU,YAAY;IACpB,MAAM,EAAE,cAAc,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,wBAAwB,EAAE,CAAC;IACxC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;CAC/C;AAED,UAAU,eAAe;IACvB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,qBAOa,0BAA2B,SAAQ,aAAc,YAAW,SAAS;
|
|
1
|
+
{"version":3,"file":"entity-permissions.component.d.ts","sourceRoot":"","sources":["../../../src/lib/entity-permissions/entity-permissions.component.ts"],"names":[],"mappings":"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"}
|
|
@@ -293,36 +293,112 @@ let EntityPermissionsComponent = class EntityPermissionsComponent extends BaseDa
|
|
|
293
293
|
cdr;
|
|
294
294
|
ngZone;
|
|
295
295
|
// State management
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
296
|
+
EntityAccess = [];
|
|
297
|
+
/** @deprecated Use {@link EntityAccess}. */
|
|
298
|
+
get entityAccess() {
|
|
299
|
+
return this.EntityAccess;
|
|
300
|
+
}
|
|
301
|
+
/** @deprecated Use {@link EntityAccess}. */
|
|
302
|
+
set entityAccess(value) {
|
|
303
|
+
this.EntityAccess = value;
|
|
304
|
+
}
|
|
305
|
+
FilteredEntityAccess = [];
|
|
306
|
+
/** @deprecated Use {@link FilteredEntityAccess}. */
|
|
307
|
+
get filteredEntityAccess() {
|
|
308
|
+
return this.FilteredEntityAccess;
|
|
309
|
+
}
|
|
310
|
+
/** @deprecated Use {@link FilteredEntityAccess}. */
|
|
311
|
+
set filteredEntityAccess(value) {
|
|
312
|
+
this.FilteredEntityAccess = value;
|
|
313
|
+
}
|
|
314
|
+
Roles = [];
|
|
315
|
+
/** @deprecated Use {@link Roles}. */
|
|
316
|
+
get roles() {
|
|
317
|
+
return this.Roles;
|
|
318
|
+
}
|
|
319
|
+
/** @deprecated Use {@link Roles}. */
|
|
320
|
+
set roles(value) {
|
|
321
|
+
this.Roles = value;
|
|
322
|
+
}
|
|
299
323
|
isLoading = false;
|
|
300
324
|
error = null;
|
|
301
325
|
// Permission dialog state
|
|
302
|
-
|
|
303
|
-
|
|
326
|
+
ShowPermissionDialog = false;
|
|
327
|
+
/** @deprecated Use {@link ShowPermissionDialog}. */
|
|
328
|
+
get showPermissionDialog() {
|
|
329
|
+
return this.ShowPermissionDialog;
|
|
330
|
+
}
|
|
331
|
+
/** @deprecated Use {@link ShowPermissionDialog}. */
|
|
332
|
+
set showPermissionDialog(value) {
|
|
333
|
+
this.ShowPermissionDialog = value;
|
|
334
|
+
}
|
|
335
|
+
PermissionDialogData = null;
|
|
336
|
+
/** @deprecated Use {@link PermissionDialogData}. */
|
|
337
|
+
get permissionDialogData() {
|
|
338
|
+
return this.PermissionDialogData;
|
|
339
|
+
}
|
|
340
|
+
/** @deprecated Use {@link PermissionDialogData}. */
|
|
341
|
+
set permissionDialogData(value) {
|
|
342
|
+
this.PermissionDialogData = value;
|
|
343
|
+
}
|
|
304
344
|
// Stats
|
|
305
|
-
|
|
345
|
+
Stats = {
|
|
306
346
|
totalEntities: 0,
|
|
307
347
|
publicEntities: 0,
|
|
308
348
|
restrictedEntities: 0,
|
|
309
349
|
totalPermissions: 0
|
|
310
350
|
};
|
|
351
|
+
/** @deprecated Use {@link Stats}. */
|
|
352
|
+
get stats() {
|
|
353
|
+
return this.Stats;
|
|
354
|
+
}
|
|
355
|
+
/** @deprecated Use {@link Stats}. */
|
|
356
|
+
set stats(value) {
|
|
357
|
+
this.Stats = value;
|
|
358
|
+
}
|
|
311
359
|
// Filters
|
|
312
|
-
|
|
360
|
+
Filters$ = new BehaviorSubject({
|
|
313
361
|
entitySearch: '',
|
|
314
362
|
accessLevel: 'all',
|
|
315
363
|
roleId: null
|
|
316
364
|
});
|
|
365
|
+
/** @deprecated Use {@link Filters$}. */
|
|
366
|
+
get filters$() {
|
|
367
|
+
return this.Filters$;
|
|
368
|
+
}
|
|
369
|
+
/** @deprecated Use {@link Filters$}. */
|
|
370
|
+
set filters$(value) {
|
|
371
|
+
this.Filters$ = value;
|
|
372
|
+
}
|
|
317
373
|
// UI State
|
|
318
|
-
|
|
319
|
-
|
|
374
|
+
ExpandedEntityId = null;
|
|
375
|
+
/** @deprecated Use {@link ExpandedEntityId}. */
|
|
376
|
+
get expandedEntityId() {
|
|
377
|
+
return this.ExpandedEntityId;
|
|
378
|
+
}
|
|
379
|
+
/** @deprecated Use {@link ExpandedEntityId}. */
|
|
380
|
+
set expandedEntityId(value) {
|
|
381
|
+
this.ExpandedEntityId = value;
|
|
382
|
+
}
|
|
383
|
+
ViewMode = 'list';
|
|
384
|
+
/** @deprecated Use {@link ViewMode}. */
|
|
385
|
+
get viewMode() {
|
|
386
|
+
return this.ViewMode;
|
|
387
|
+
}
|
|
388
|
+
/** @deprecated Use {@link ViewMode}. */
|
|
389
|
+
set viewMode(value) {
|
|
390
|
+
this.ViewMode = value;
|
|
391
|
+
}
|
|
320
392
|
/** Options for the <mj-view-toggle> in the interior chrome. Icon-only;
|
|
321
393
|
title drives the tooltip + aria-label. */
|
|
322
|
-
|
|
394
|
+
ViewToggleOptions = [
|
|
323
395
|
{ key: 'list', icon: 'fa-solid fa-list', title: 'List View' },
|
|
324
396
|
{ key: 'grid', icon: 'fa-solid fa-th', title: 'Grid View' }
|
|
325
397
|
];
|
|
398
|
+
/** @deprecated Use {@link ViewToggleOptions}. */
|
|
399
|
+
get viewToggleOptions() {
|
|
400
|
+
return this.ViewToggleOptions;
|
|
401
|
+
}
|
|
326
402
|
destroy$ = new Subject();
|
|
327
403
|
get metadata() { return this.ProviderToUse; }
|
|
328
404
|
constructor(cdr, ngZone) {
|
|
@@ -337,14 +413,14 @@ let EntityPermissionsComponent = class EntityPermissionsComponent extends BaseDa
|
|
|
337
413
|
this.setupFilterSubscription();
|
|
338
414
|
}
|
|
339
415
|
loadData() {
|
|
340
|
-
this.
|
|
416
|
+
this.LoadInitialData();
|
|
341
417
|
}
|
|
342
418
|
ngOnDestroy() {
|
|
343
419
|
this.destroy$.next();
|
|
344
420
|
this.destroy$.complete();
|
|
345
421
|
super.ngOnDestroy();
|
|
346
422
|
}
|
|
347
|
-
async
|
|
423
|
+
async LoadInitialData() {
|
|
348
424
|
try {
|
|
349
425
|
this.isLoading = true;
|
|
350
426
|
this.error = null;
|
|
@@ -355,7 +431,7 @@ let EntityPermissionsComponent = class EntityPermissionsComponent extends BaseDa
|
|
|
355
431
|
this.loadRoles()
|
|
356
432
|
]);
|
|
357
433
|
// Process the data
|
|
358
|
-
this.
|
|
434
|
+
this.Roles = roles;
|
|
359
435
|
this.processEntityAccess(entities, permissions);
|
|
360
436
|
this.calculateStats();
|
|
361
437
|
this.applyFilters();
|
|
@@ -371,6 +447,10 @@ let EntityPermissionsComponent = class EntityPermissionsComponent extends BaseDa
|
|
|
371
447
|
});
|
|
372
448
|
}
|
|
373
449
|
}
|
|
450
|
+
/** @deprecated Use {@link LoadInitialData}. */
|
|
451
|
+
async loadInitialData() {
|
|
452
|
+
return this.LoadInitialData();
|
|
453
|
+
}
|
|
374
454
|
async loadEntities() {
|
|
375
455
|
const rv = RunView.FromMetadataProvider(this.ProviderToUse);
|
|
376
456
|
const result = await rv.RunView({
|
|
@@ -409,7 +489,7 @@ let EntityPermissionsComponent = class EntityPermissionsComponent extends BaseDa
|
|
|
409
489
|
permissionsByEntity.get(entityId).push(permission);
|
|
410
490
|
}
|
|
411
491
|
// Create EntityAccess objects
|
|
412
|
-
this.
|
|
492
|
+
this.EntityAccess = entities.map(entity => {
|
|
413
493
|
const entityPermissions = permissionsByEntity.get(entity.ID) || [];
|
|
414
494
|
const rolePermissions = new Map();
|
|
415
495
|
// Process permissions by role
|
|
@@ -432,15 +512,15 @@ let EntityPermissionsComponent = class EntityPermissionsComponent extends BaseDa
|
|
|
432
512
|
});
|
|
433
513
|
}
|
|
434
514
|
setupFilterSubscription() {
|
|
435
|
-
this.
|
|
515
|
+
this.Filters$
|
|
436
516
|
.pipe(debounceTime(300), distinctUntilChanged((a, b) => JSON.stringify(a) === JSON.stringify(b)), takeUntil(this.destroy$))
|
|
437
517
|
.subscribe(() => {
|
|
438
518
|
this.applyFilters();
|
|
439
519
|
});
|
|
440
520
|
}
|
|
441
521
|
applyFilters() {
|
|
442
|
-
const filters = this.
|
|
443
|
-
let filtered = [...this.
|
|
522
|
+
const filters = this.Filters$.value;
|
|
523
|
+
let filtered = [...this.EntityAccess];
|
|
444
524
|
// Apply entity search
|
|
445
525
|
if (filters.entitySearch) {
|
|
446
526
|
const searchLower = filters.entitySearch.toLowerCase();
|
|
@@ -463,26 +543,30 @@ let EntityPermissionsComponent = class EntityPermissionsComponent extends BaseDa
|
|
|
463
543
|
if (filters.roleId) {
|
|
464
544
|
filtered = filtered.filter(ea => ea.rolePermissions.has(filters.roleId));
|
|
465
545
|
}
|
|
466
|
-
this.
|
|
546
|
+
this.FilteredEntityAccess = filtered;
|
|
467
547
|
}
|
|
468
548
|
calculateStats() {
|
|
469
|
-
const publicEntities = this.
|
|
470
|
-
const customPermissions = this.
|
|
471
|
-
const totalPermissions = this.
|
|
472
|
-
this.
|
|
473
|
-
totalEntities: this.
|
|
549
|
+
const publicEntities = this.EntityAccess.filter(ea => ea.isPublic).length;
|
|
550
|
+
const customPermissions = this.EntityAccess.filter(ea => !ea.isPublic && ea.permissions.length > 0).length;
|
|
551
|
+
const totalPermissions = this.EntityAccess.reduce((sum, ea) => sum + ea.permissions.length, 0);
|
|
552
|
+
this.Stats = {
|
|
553
|
+
totalEntities: this.EntityAccess.length,
|
|
474
554
|
publicEntities,
|
|
475
|
-
restrictedEntities: this.
|
|
555
|
+
restrictedEntities: this.EntityAccess.length - publicEntities - customPermissions,
|
|
476
556
|
totalPermissions
|
|
477
557
|
};
|
|
478
558
|
}
|
|
479
559
|
// Public methods for template
|
|
560
|
+
OnAccessLevelChange(level) {
|
|
561
|
+
this.UpdateFilter({ accessLevel: level });
|
|
562
|
+
}
|
|
563
|
+
/** @deprecated Use {@link OnAccessLevelChange}. */
|
|
480
564
|
onAccessLevelChange(level) {
|
|
481
|
-
this.
|
|
565
|
+
return this.OnAccessLevelChange(level);
|
|
482
566
|
}
|
|
483
|
-
|
|
484
|
-
this.
|
|
485
|
-
...this.
|
|
567
|
+
UpdateFilter(partial) {
|
|
568
|
+
this.Filters$.next({
|
|
569
|
+
...this.Filters$.value,
|
|
486
570
|
...partial
|
|
487
571
|
});
|
|
488
572
|
// Discrete changes (chips, popover dropdowns) apply immediately. Text search
|
|
@@ -492,10 +576,14 @@ let EntityPermissionsComponent = class EntityPermissionsComponent extends BaseDa
|
|
|
492
576
|
this.cdr.markForCheck();
|
|
493
577
|
}
|
|
494
578
|
}
|
|
579
|
+
/** @deprecated Use {@link UpdateFilter}. */
|
|
580
|
+
updateFilter(partial) {
|
|
581
|
+
return this.UpdateFilter(partial);
|
|
582
|
+
}
|
|
495
583
|
// -- Filter panel binding (mj-filter-panel inside the one Filter popover) ---
|
|
496
584
|
// Concise chrome: Access level + Role both live behind the single Filter
|
|
497
585
|
// button; applied filters surface as removable chips below the card.
|
|
498
|
-
get
|
|
586
|
+
get FilterFields() {
|
|
499
587
|
return [
|
|
500
588
|
{
|
|
501
589
|
key: 'accessLevel',
|
|
@@ -514,23 +602,31 @@ let EntityPermissionsComponent = class EntityPermissionsComponent extends BaseDa
|
|
|
514
602
|
label: 'Role',
|
|
515
603
|
icon: 'fa-solid fa-user-shield',
|
|
516
604
|
placeholder: 'All Roles',
|
|
517
|
-
filterable: this.
|
|
605
|
+
filterable: this.Roles.length > 10,
|
|
518
606
|
options: [
|
|
519
607
|
{ text: 'All Roles', value: '' },
|
|
520
|
-
...this.
|
|
608
|
+
...this.Roles.map(r => ({ text: r.Name ?? '', value: r.ID }))
|
|
521
609
|
]
|
|
522
610
|
}
|
|
523
611
|
];
|
|
524
612
|
}
|
|
613
|
+
/** @deprecated Use {@link FilterFields}. */
|
|
614
|
+
get filterFields() {
|
|
615
|
+
return this.FilterFields;
|
|
616
|
+
}
|
|
617
|
+
get FilterValues() {
|
|
618
|
+
return { accessLevel: this.Filters$.value.accessLevel, roleId: this.Filters$.value.roleId ?? '' };
|
|
619
|
+
}
|
|
620
|
+
/** @deprecated Use {@link FilterValues}. */
|
|
525
621
|
get filterValues() {
|
|
526
|
-
return
|
|
622
|
+
return this.FilterValues;
|
|
527
623
|
}
|
|
528
624
|
/** Total active filters (Access level + Role) — drives the Filter button badge. */
|
|
529
625
|
get TotalActiveFilterCount() {
|
|
530
|
-
const f = this.
|
|
626
|
+
const f = this.Filters$.value;
|
|
531
627
|
return (f.accessLevel !== 'all' ? 1 : 0) + (f.roleId ? 1 : 0);
|
|
532
628
|
}
|
|
533
|
-
|
|
629
|
+
OnFilterPanelChange(values) {
|
|
534
630
|
const partial = {};
|
|
535
631
|
if ('accessLevel' in values) {
|
|
536
632
|
partial.accessLevel = values['accessLevel'] || 'all';
|
|
@@ -538,68 +634,104 @@ let EntityPermissionsComponent = class EntityPermissionsComponent extends BaseDa
|
|
|
538
634
|
if ('roleId' in values) {
|
|
539
635
|
partial.roleId = values['roleId'] || null;
|
|
540
636
|
}
|
|
541
|
-
this.
|
|
637
|
+
this.UpdateFilter(partial);
|
|
638
|
+
}
|
|
639
|
+
/** @deprecated Use {@link OnFilterPanelChange}. */
|
|
640
|
+
onFilterPanelChange(values) {
|
|
641
|
+
return this.OnFilterPanelChange(values);
|
|
542
642
|
}
|
|
543
643
|
/** Clear all filters (Access level + Role); search persists. */
|
|
644
|
+
ClearAllAppliedFilters() {
|
|
645
|
+
this.UpdateFilter({ accessLevel: 'all', roleId: null });
|
|
646
|
+
}
|
|
647
|
+
/** @deprecated Use {@link ClearAllAppliedFilters}. */
|
|
544
648
|
clearAllAppliedFilters() {
|
|
545
|
-
this.
|
|
649
|
+
return this.ClearAllAppliedFilters();
|
|
546
650
|
}
|
|
547
651
|
/** True when search and/or panel filters are narrowing the list — gates the
|
|
548
652
|
* no-results empty-state "Reset filters" CTA. */
|
|
549
653
|
get IsListNarrowed() {
|
|
550
|
-
return this.
|
|
654
|
+
return this.Filters$.value.entitySearch !== '' || this.TotalActiveFilterCount > 0;
|
|
551
655
|
}
|
|
552
656
|
/** Reset everything narrowing the list (search + Access level + Role) and
|
|
553
657
|
* refresh immediately. Wired to the no-results empty-state CTA. Unlike
|
|
554
658
|
* clearAllAppliedFilters(), this also clears the search box. */
|
|
555
|
-
|
|
556
|
-
this.
|
|
659
|
+
ResetAllFiltersAndSearch() {
|
|
660
|
+
this.Filters$.next({ entitySearch: '', accessLevel: 'all', roleId: null });
|
|
557
661
|
this.applyFilters();
|
|
558
662
|
this.cdr.markForCheck();
|
|
559
663
|
}
|
|
664
|
+
/** @deprecated Use {@link ResetAllFiltersAndSearch}. */
|
|
665
|
+
resetAllFiltersAndSearch() {
|
|
666
|
+
return this.ResetAllFiltersAndSearch();
|
|
667
|
+
}
|
|
560
668
|
/** Empty-state CTA handler: reset filters when the list is narrowed,
|
|
561
669
|
* otherwise reload the data (the original "Refresh" affordance). */
|
|
562
|
-
|
|
670
|
+
OnEmptyStateAction() {
|
|
563
671
|
if (this.IsListNarrowed) {
|
|
564
|
-
this.
|
|
672
|
+
this.ResetAllFiltersAndSearch();
|
|
565
673
|
}
|
|
566
674
|
else {
|
|
567
|
-
this.
|
|
675
|
+
this.RefreshData();
|
|
568
676
|
}
|
|
569
677
|
}
|
|
678
|
+
/** @deprecated Use {@link OnEmptyStateAction}. */
|
|
679
|
+
onEmptyStateAction() {
|
|
680
|
+
return this.OnEmptyStateAction();
|
|
681
|
+
}
|
|
682
|
+
ToggleEntityExpansion(entityId) {
|
|
683
|
+
this.ExpandedEntityId = this.ExpandedEntityId === entityId ? null : entityId;
|
|
684
|
+
}
|
|
685
|
+
/** @deprecated Use {@link ToggleEntityExpansion}. */
|
|
570
686
|
toggleEntityExpansion(entityId) {
|
|
571
|
-
|
|
687
|
+
return this.ToggleEntityExpansion(entityId);
|
|
572
688
|
}
|
|
689
|
+
IsEntityExpanded(entityId) {
|
|
690
|
+
return this.ExpandedEntityId === entityId;
|
|
691
|
+
}
|
|
692
|
+
/** @deprecated Use {@link IsEntityExpanded}. */
|
|
573
693
|
isEntityExpanded(entityId) {
|
|
574
|
-
return this.
|
|
694
|
+
return this.IsEntityExpanded(entityId);
|
|
575
695
|
}
|
|
576
|
-
|
|
696
|
+
EditEntityPermissions(entityAccess) {
|
|
577
697
|
console.log('Opening permission dialog for entity:', entityAccess.entity.Name);
|
|
578
698
|
console.log('Entity permissions:', entityAccess.permissions);
|
|
579
|
-
console.log('Available roles:', this.
|
|
580
|
-
this.
|
|
699
|
+
console.log('Available roles:', this.Roles);
|
|
700
|
+
this.PermissionDialogData = {
|
|
581
701
|
entity: entityAccess.entity,
|
|
582
|
-
roles: this.
|
|
702
|
+
roles: this.Roles,
|
|
583
703
|
existingPermissions: entityAccess.permissions
|
|
584
704
|
};
|
|
585
|
-
this.
|
|
586
|
-
console.log('Dialog data set:', this.
|
|
587
|
-
console.log('Dialog visible:', this.
|
|
705
|
+
this.ShowPermissionDialog = true;
|
|
706
|
+
console.log('Dialog data set:', this.PermissionDialogData);
|
|
707
|
+
console.log('Dialog visible:', this.ShowPermissionDialog);
|
|
588
708
|
}
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
this.
|
|
709
|
+
/** @deprecated Use {@link EditEntityPermissions}. */
|
|
710
|
+
editEntityPermissions(entityAccess) {
|
|
711
|
+
return this.EditEntityPermissions(entityAccess);
|
|
712
|
+
}
|
|
713
|
+
OnPermissionDialogResult(result) {
|
|
714
|
+
this.ShowPermissionDialog = false;
|
|
715
|
+
this.PermissionDialogData = null;
|
|
592
716
|
if (result.action === 'save') {
|
|
593
717
|
// Refresh the data after save
|
|
594
|
-
this.
|
|
718
|
+
this.LoadInitialData();
|
|
595
719
|
}
|
|
596
720
|
}
|
|
597
|
-
|
|
721
|
+
/** @deprecated Use {@link OnPermissionDialogResult}. */
|
|
722
|
+
onPermissionDialogResult(result) {
|
|
723
|
+
return this.OnPermissionDialogResult(result);
|
|
724
|
+
}
|
|
725
|
+
async SavePermissions() {
|
|
598
726
|
// This method is now handled by the dialog component
|
|
599
727
|
// Keeping for backwards compatibility but not used
|
|
600
728
|
console.warn('savePermissions method is deprecated - use PermissionDialogComponent instead');
|
|
601
729
|
}
|
|
602
|
-
|
|
730
|
+
/** @deprecated Use {@link SavePermissions}. */
|
|
731
|
+
async savePermissions() {
|
|
732
|
+
return this.SavePermissions();
|
|
733
|
+
}
|
|
734
|
+
GetAccessLevelClass(entityAccess) {
|
|
603
735
|
if (entityAccess.isPublic) {
|
|
604
736
|
return 'access-public';
|
|
605
737
|
}
|
|
@@ -610,7 +742,11 @@ let EntityPermissionsComponent = class EntityPermissionsComponent extends BaseDa
|
|
|
610
742
|
return 'access-custom';
|
|
611
743
|
}
|
|
612
744
|
}
|
|
613
|
-
|
|
745
|
+
/** @deprecated Use {@link GetAccessLevelClass}. */
|
|
746
|
+
getAccessLevelClass(entityAccess) {
|
|
747
|
+
return this.GetAccessLevelClass(entityAccess);
|
|
748
|
+
}
|
|
749
|
+
GetAccessLevelLabel(entityAccess) {
|
|
614
750
|
if (entityAccess.isPublic) {
|
|
615
751
|
return 'Public';
|
|
616
752
|
}
|
|
@@ -621,19 +757,39 @@ let EntityPermissionsComponent = class EntityPermissionsComponent extends BaseDa
|
|
|
621
757
|
return 'Custom';
|
|
622
758
|
}
|
|
623
759
|
}
|
|
624
|
-
|
|
625
|
-
|
|
760
|
+
/** @deprecated Use {@link GetAccessLevelLabel}. */
|
|
761
|
+
getAccessLevelLabel(entityAccess) {
|
|
762
|
+
return this.GetAccessLevelLabel(entityAccess);
|
|
763
|
+
}
|
|
764
|
+
GetRoleName(roleId) {
|
|
765
|
+
const role = this.Roles.find(r => UUIDsEqual(r.ID, roleId));
|
|
626
766
|
return role?.Name || 'Unknown Role';
|
|
627
767
|
}
|
|
628
|
-
|
|
768
|
+
/** @deprecated Use {@link GetRoleName}. */
|
|
769
|
+
getRoleName(roleId) {
|
|
770
|
+
return this.GetRoleName(roleId);
|
|
771
|
+
}
|
|
772
|
+
HasPermission(entityAccess, roleId, permission) {
|
|
629
773
|
const rolePermission = entityAccess.rolePermissions.get(roleId);
|
|
630
774
|
return rolePermission ? rolePermission[permission] : false;
|
|
631
775
|
}
|
|
776
|
+
/** @deprecated Use {@link HasPermission}. */
|
|
777
|
+
hasPermission(entityAccess, roleId, permission) {
|
|
778
|
+
return this.HasPermission(entityAccess, roleId, permission);
|
|
779
|
+
}
|
|
780
|
+
RefreshData() {
|
|
781
|
+
this.LoadInitialData();
|
|
782
|
+
}
|
|
783
|
+
/** @deprecated Use {@link RefreshData}. */
|
|
632
784
|
refreshData() {
|
|
633
|
-
this.
|
|
785
|
+
return this.RefreshData();
|
|
786
|
+
}
|
|
787
|
+
SetViewMode(mode) {
|
|
788
|
+
this.ViewMode = mode;
|
|
634
789
|
}
|
|
790
|
+
/** @deprecated Use {@link SetViewMode}. */
|
|
635
791
|
setViewMode(mode) {
|
|
636
|
-
this.
|
|
792
|
+
return this.SetViewMode(mode);
|
|
637
793
|
}
|
|
638
794
|
static ɵfac = function EntityPermissionsComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || EntityPermissionsComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.NgZone)); };
|
|
639
795
|
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: EntityPermissionsComponent, selectors: [["mj-entity-permissions"]], standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 15, vars: 15, consts: [["AriaLabel", "Filter entity permissions", "Title", "Entity Permissions", "Subtitle", "Manage entity-level access for each role"], ["meta", ""], ["Label", "entities", 3, "Count", "Total"], ["toolbar", ""], ["Placeholder", "Search entities by name or description...", 3, "ValueChange", "Value"], ["Label", "Filters", "Icon", "fa-solid fa-filter", 3, "ClearAllRequested", "ActiveCount", "ShowClearAll"], [3, "ValuesChange", "Reset", "Fields", "Values"], [3, "KeyChange", "Options", "ActiveKey"], ["actions", ""], [3, "Clicked", "Loading"], ["role", "status", "aria-live", "polite", "aria-busy", "true", 1, "loading-container"], ["role", "alert", "aria-live", "assertive", 1, "error-container"], [3, "result", "visible", "data"], ["text", "Loading entity permissions...", "size", "medium"], [1, "error-content"], ["aria-hidden", "true", 1, "fa-solid", "fa-exclamation-triangle", "error-icon"], [1, "error-message"], ["mjButton", "", "variant", "primary", "aria-label", "Retry loading entity permissions", 3, "click"], ["aria-hidden", "true", 1, "fa-solid", "fa-refresh"], ["role", "list", "aria-label", "Entity permissions list", 1, "entities-list"], ["role", "list", "aria-label", "Entity permissions grid", 1, "entities-grid"], ["Icon", "fa-solid fa-shield-halved", "Title", "No Permissions Found", "Message", "Try adjusting your filters or refresh the data.", 3, "Variant", "ActionText", "ActionIcon"], ["role", "listitem", 1, "entity-card", 3, "expanded"], ["role", "listitem", 1, "entity-card"], ["tabindex", "0", "role", "button", 1, "entity-header", 3, "click", "keydown.enter", "keydown.space"], [1, "entity-info"], ["aria-hidden", "true", 1, "entity-icon-wrapper"], [1, "fa-solid", "fa-table"], [1, "entity-details"], [1, "entity-name"], [1, "entity-description"], [1, "entity-meta"], [1, "access-badge"], ["aria-hidden", "true"], [1, "entity-actions", 3, "click"], ["mjButton", "", "variant", "flat", "size", "sm", "title", "Edit Permissions", 3, "click"], ["aria-hidden", "true", 1, "fa-solid", "fa-edit"], [1, "expand-btn"], ["aria-hidden", "true", 1, "fa-solid", "fa-chevron-down"], ["role", "region", 1, "entity-content"], [1, "mobile-actions-bar", 3, "click"], [1, "mobile-action-buttons"], [1, "btn-label"], ["role", "table", "aria-label", "Role permissions", 1, "permissions-grid"], [1, "no-permissions"], ["role", "rowgroup", 1, "permissions-header"], ["role", "row"], ["scope", "col", "role", "columnheader", 1, "role-header"], ["scope", "col", "role", "columnheader", 1, "permission-header"], ["role", "rowgroup"], ["role", "row", 1, "permission-row"], ["role", "cell", 1, "role-name"], ["role", "cell", 1, "permission-cell"], [1, "entity-grid-card", 3, "class"], [1, "entity-grid-card"], [1, "grid-card-header"], ["aria-hidden", "true", 1, "fa-solid", "fa-table"], [1, "grid-card-title"], [1, "grid-card-description"], [1, "grid-card-footer"], [1, "access-label"], [1, "permission-count"], ["Icon", "fa-solid fa-shield-halved", "Title", "No Permissions Found", "Message", "Try adjusting your filters or refresh the data.", 3, "Action", "Variant", "ActionText", "ActionIcon"]], template: function EntityPermissionsComponent_Template(rf, ctx) { if (rf & 1) {
|