@memberjunction/ng-entity-permissions 3.4.0 → 4.1.0
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/README.md +62 -445
- package/dist/lib/entity-selector-with-grid/entity-selector-with-grid.component.d.ts.map +1 -1
- package/dist/lib/entity-selector-with-grid/entity-selector-with-grid.component.js +10 -11
- package/dist/lib/entity-selector-with-grid/entity-selector-with-grid.component.js.map +1 -1
- package/dist/lib/grid/entity-permissions-grid.component.d.ts.map +1 -1
- package/dist/lib/grid/entity-permissions-grid.component.js +60 -58
- package/dist/lib/grid/entity-permissions-grid.component.js.map +1 -1
- package/dist/lib/module.d.ts +6 -7
- package/dist/lib/module.d.ts.map +1 -1
- package/dist/lib/module.js +0 -4
- package/dist/lib/module.js.map +1 -1
- package/package.json +20 -21
package/README.md
CHANGED
|
@@ -1,27 +1,32 @@
|
|
|
1
1
|
# @memberjunction/ng-entity-permissions
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Angular components for displaying and editing entity-level CRUD permissions in MemberJunction. Provides a grid-based interface for managing Read, Create, Update, and Delete permissions per role or per entity.
|
|
4
4
|
|
|
5
5
|
## Overview
|
|
6
6
|
|
|
7
|
-
This package
|
|
7
|
+
This package provides two main components for permission management: `EntityPermissionsGridComponent` displays a grid of permission checkboxes (filterable by entity or role), and `EntitySelectorWithGridComponent` combines an entity dropdown with the permissions grid for a complete permission management interface.
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
```mermaid
|
|
10
|
+
graph TD
|
|
11
|
+
ESWG["EntitySelectorWithGridComponent"] --> DD["Entity Dropdown\n(Kendo DropDown)"]
|
|
12
|
+
ESWG --> EPG["EntityPermissionsGridComponent"]
|
|
13
|
+
EPG --> KG["Kendo Grid"]
|
|
14
|
+
EPG --> EP["EntityPermissionEntity[]"]
|
|
15
|
+
|
|
16
|
+
style ESWG fill:#7c5295,stroke:#563a6b,color:#fff
|
|
17
|
+
style DD fill:#2d8659,stroke:#1a5c3a,color:#fff
|
|
18
|
+
style EPG fill:#2d6a9f,stroke:#1a4971,color:#fff
|
|
19
|
+
style KG fill:#2d8659,stroke:#1a5c3a,color:#fff
|
|
20
|
+
style EP fill:#b8762f,stroke:#8a5722,color:#fff
|
|
21
|
+
```
|
|
11
22
|
|
|
12
23
|
## Features
|
|
13
24
|
|
|
14
|
-
- **Dual
|
|
15
|
-
- **
|
|
16
|
-
- **
|
|
17
|
-
- **
|
|
18
|
-
- **
|
|
19
|
-
- Flip all permissions of a specific type (Read/Create/Update/Delete)
|
|
20
|
-
- Toggle all permissions in a row with intelligent logic
|
|
21
|
-
- Revert individual row changes
|
|
22
|
-
- **Real-time permission change events** with cancellation support
|
|
23
|
-
- **Automatic permission record creation** for missing role/entity combinations
|
|
24
|
-
- **Responsive loading states** with Kendo UI indicators
|
|
25
|
+
- **Dual mode**: View permissions by Entity (all roles for an entity) or by Role (all entities for a role)
|
|
26
|
+
- **Interactive grid**: Toggle CRUD permissions with checkboxes
|
|
27
|
+
- **Permission change events**: Emits `EntityPermissionChangedEvent` with cancel support
|
|
28
|
+
- **Entity selector**: Combined dropdown + grid for complete permission management
|
|
29
|
+
- **Auto-refresh**: Automatically reloads when entity or role changes
|
|
25
30
|
|
|
26
31
|
## Installation
|
|
27
32
|
|
|
@@ -29,459 +34,71 @@ This package is part of the MemberJunction platform and provides essential UI co
|
|
|
29
34
|
npm install @memberjunction/ng-entity-permissions
|
|
30
35
|
```
|
|
31
36
|
|
|
32
|
-
##
|
|
33
|
-
|
|
34
|
-
### Peer Dependencies
|
|
35
|
-
- Angular 18.0.2+
|
|
36
|
-
- @angular/common
|
|
37
|
-
- @angular/core
|
|
38
|
-
- @angular/forms
|
|
39
|
-
- @angular/router
|
|
37
|
+
## Key Dependencies
|
|
40
38
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
- @progress/kendo-angular-grid (v16.2.0)
|
|
48
|
-
- @progress/kendo-angular-dropdowns (v16.2.0)
|
|
49
|
-
- @progress/kendo-angular-buttons (v16.2.0)
|
|
50
|
-
- @progress/kendo-angular-dialog (v16.2.0)
|
|
51
|
-
- @progress/kendo-angular-indicators (v16.2.0)
|
|
39
|
+
| Dependency | Purpose |
|
|
40
|
+
|---|---|
|
|
41
|
+
| `@memberjunction/core` | Metadata, RunView |
|
|
42
|
+
| `@memberjunction/core-entities` | EntityPermissionEntity |
|
|
43
|
+
| `@progress/kendo-angular-grid` | Permissions grid |
|
|
44
|
+
| `@progress/kendo-angular-dropdowns` | Entity/role selector |
|
|
52
45
|
|
|
53
46
|
## Usage
|
|
54
47
|
|
|
55
|
-
###
|
|
56
|
-
|
|
57
|
-
First, import the `EntityPermissionsModule` in your Angular module:
|
|
58
|
-
|
|
59
|
-
```typescript
|
|
60
|
-
import { EntityPermissionsModule } from '@memberjunction/ng-entity-permissions';
|
|
48
|
+
### Entity Mode (All Roles for an Entity)
|
|
61
49
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
],
|
|
69
|
-
})
|
|
70
|
-
export class YourModule { }
|
|
50
|
+
```html
|
|
51
|
+
<mj-entity-permissions-grid
|
|
52
|
+
[Mode]="'Entity'"
|
|
53
|
+
[EntityName]="'Contacts'"
|
|
54
|
+
(PermissionChanged)="onPermissionChanged($event)">
|
|
55
|
+
</mj-entity-permissions-grid>
|
|
71
56
|
```
|
|
72
57
|
|
|
73
|
-
###
|
|
58
|
+
### Role Mode (All Entities for a Role)
|
|
74
59
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
import { EntityPermissionChangedEvent } from '@memberjunction/ng-entity-permissions';
|
|
82
|
-
|
|
83
|
-
@Component({
|
|
84
|
-
selector: 'app-entity-permissions',
|
|
85
|
-
template: `
|
|
86
|
-
<mj-entity-permissions-grid
|
|
87
|
-
[EntityName]="'Customers'"
|
|
88
|
-
[Mode]="'Entity'"
|
|
89
|
-
(PermissionChanged)="onPermissionChanged($event)">
|
|
90
|
-
</mj-entity-permissions-grid>
|
|
91
|
-
`
|
|
92
|
-
})
|
|
93
|
-
export class EntityPermissionsComponent {
|
|
94
|
-
onPermissionChanged(event: EntityPermissionChangedEvent) {
|
|
95
|
-
console.log(`Permission ${event.PermissionTypeChanged} changed to ${event.Value} for role ${event.RoleID}`);
|
|
96
|
-
|
|
97
|
-
// Optionally cancel the change based on business logic
|
|
98
|
-
if (this.shouldPreventChange(event)) {
|
|
99
|
-
event.Cancel = true;
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
private shouldPreventChange(event: EntityPermissionChangedEvent): boolean {
|
|
104
|
-
// Implement your business logic here
|
|
105
|
-
return false;
|
|
106
|
-
}
|
|
107
|
-
}
|
|
60
|
+
```html
|
|
61
|
+
<mj-entity-permissions-grid
|
|
62
|
+
[Mode]="'Role'"
|
|
63
|
+
[RoleName]="'Admin'"
|
|
64
|
+
(PermissionChanged)="onPermissionChanged($event)">
|
|
65
|
+
</mj-entity-permissions-grid>
|
|
108
66
|
```
|
|
109
67
|
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
Display and manage permissions for a specific role across all entities:
|
|
68
|
+
### Combined Selector + Grid
|
|
113
69
|
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
<mj-entity-permissions-grid
|
|
119
|
-
[RoleName]="selectedRole"
|
|
120
|
-
[Mode]="'Role'"
|
|
121
|
-
(PermissionChanged)="onPermissionChanged($event)">
|
|
122
|
-
</mj-entity-permissions-grid>
|
|
123
|
-
`
|
|
124
|
-
})
|
|
125
|
-
export class RolePermissionsComponent {
|
|
126
|
-
selectedRole = 'Administrator';
|
|
127
|
-
|
|
128
|
-
onPermissionChanged(event: EntityPermissionChangedEvent) {
|
|
129
|
-
// Handle permission changes for the role
|
|
130
|
-
console.log(`Entity ${event.EntityName}: ${event.PermissionTypeChanged} = ${event.Value}`);
|
|
131
|
-
}
|
|
132
|
-
}
|
|
70
|
+
```html
|
|
71
|
+
<mj-entity-selector-with-grid
|
|
72
|
+
(PermissionChanged)="onPermissionChanged($event)">
|
|
73
|
+
</mj-entity-selector-with-grid>
|
|
133
74
|
```
|
|
134
75
|
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
Provide a dropdown to select entities dynamically:
|
|
138
|
-
|
|
139
|
-
```typescript
|
|
140
|
-
@Component({
|
|
141
|
-
selector: 'app-dynamic-permissions',
|
|
142
|
-
template: `
|
|
143
|
-
<div class="permissions-container">
|
|
144
|
-
<h2>Entity Permissions Manager</h2>
|
|
145
|
-
<mj-entity-permissions-selector-with-grid
|
|
146
|
-
[EntityName]="initialEntity"
|
|
147
|
-
(PermissionChanged)="handlePermissionChange($event)">
|
|
148
|
-
</mj-entity-permissions-selector-with-grid>
|
|
149
|
-
</div>
|
|
150
|
-
`
|
|
151
|
-
})
|
|
152
|
-
export class DynamicPermissionsComponent {
|
|
153
|
-
initialEntity = 'Customers'; // Optional initial selection
|
|
154
|
-
|
|
155
|
-
handlePermissionChange(event: EntityPermissionChangedEvent) {
|
|
156
|
-
// Process permission changes
|
|
157
|
-
this.logPermissionChange(event);
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
private logPermissionChange(event: EntityPermissionChangedEvent) {
|
|
161
|
-
console.log('Permission change:', {
|
|
162
|
-
entity: event.EntityName,
|
|
163
|
-
role: event.RoleID,
|
|
164
|
-
type: event.PermissionTypeChanged,
|
|
165
|
-
value: event.Value
|
|
166
|
-
});
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
```
|
|
170
|
-
|
|
171
|
-
### Advanced Usage
|
|
172
|
-
|
|
173
|
-
#### Programmatic Grid Control
|
|
174
|
-
|
|
175
|
-
Access the grid component directly to perform operations:
|
|
176
|
-
|
|
177
|
-
```typescript
|
|
178
|
-
import { ViewChild } from '@angular/core';
|
|
179
|
-
import { EntityPermissionsGridComponent } from '@memberjunction/ng-entity-permissions';
|
|
180
|
-
|
|
181
|
-
@Component({
|
|
182
|
-
template: `
|
|
183
|
-
<mj-entity-permissions-grid #permGrid
|
|
184
|
-
[EntityName]="'Orders'"
|
|
185
|
-
[Mode]="'Entity'">
|
|
186
|
-
</mj-entity-permissions-grid>
|
|
187
|
-
|
|
188
|
-
<button (click)="refreshPermissions()">Refresh</button>
|
|
189
|
-
<button (click)="saveAllChanges()">Save All</button>
|
|
190
|
-
<button (click)="flipReadPermissions()">Toggle All Read</button>
|
|
191
|
-
`
|
|
192
|
-
})
|
|
193
|
-
export class AdvancedPermissionsComponent {
|
|
194
|
-
@ViewChild('permGrid') permissionsGrid!: EntityPermissionsGridComponent;
|
|
195
|
-
|
|
196
|
-
async refreshPermissions() {
|
|
197
|
-
await this.permissionsGrid.Refresh();
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
async saveAllChanges() {
|
|
201
|
-
if (this.permissionsGrid.NumDirtyPermissions > 0) {
|
|
202
|
-
await this.permissionsGrid.savePermissions();
|
|
203
|
-
console.log('All permissions saved successfully');
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
flipReadPermissions() {
|
|
208
|
-
this.permissionsGrid.flipAllPermissions('Read');
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
```
|
|
212
|
-
|
|
213
|
-
#### Handling Transactions
|
|
214
|
-
|
|
215
|
-
The component automatically handles batch updates using MemberJunction's transaction system:
|
|
216
|
-
|
|
217
|
-
```typescript
|
|
218
|
-
// The grid component internally uses transaction groups for atomic updates
|
|
219
|
-
// When savePermissions() is called, all dirty permissions are saved in a single transaction
|
|
220
|
-
// This ensures data consistency and allows for rollback if any permission update fails
|
|
221
|
-
```
|
|
222
|
-
|
|
223
|
-
## API Reference
|
|
224
|
-
|
|
225
|
-
### EntityPermissionsGridComponent
|
|
226
|
-
|
|
227
|
-
**Selector:** `mj-entity-permissions-grid`
|
|
228
|
-
|
|
229
|
-
#### Properties
|
|
230
|
-
|
|
231
|
-
##### Inputs
|
|
232
|
-
|
|
233
|
-
| Name | Type | Default | Description |
|
|
234
|
-
|------|------|---------|-------------|
|
|
235
|
-
| `Mode` | `'Entity' \| 'Role'` | `'Entity'` | Determines whether to display permissions for a specific entity across all roles or for a specific role across all entities |
|
|
236
|
-
| `EntityName` | `string` | `undefined` | Required when Mode is 'Entity'. The name of the entity to show permissions for |
|
|
237
|
-
| `RoleName` | `string` | `undefined` | Required when Mode is 'Role'. The name of the role to show permissions for |
|
|
238
|
-
| `BottomMargin` | `number` | `0` | Bottom margin in pixels to apply to the grid container |
|
|
239
|
-
|
|
240
|
-
##### Outputs
|
|
241
|
-
|
|
242
|
-
| Name | Type | Description |
|
|
243
|
-
|------|------|-------------|
|
|
244
|
-
| `PermissionChanged` | `EventEmitter<EntityPermissionChangedEvent>` | Emitted whenever a permission checkbox is toggled. The event can be cancelled by setting `event.Cancel = true` |
|
|
245
|
-
|
|
246
|
-
##### Public Properties
|
|
247
|
-
|
|
248
|
-
| Name | Type | Description |
|
|
249
|
-
|------|------|-------------|
|
|
250
|
-
| `permissions` | `EntityPermissionEntity[]` | Array of permission records currently displayed in the grid |
|
|
251
|
-
| `gridHeight` | `number` | Height of the grid in pixels (default: 750) |
|
|
252
|
-
| `isLoading` | `boolean` | Loading state indicator |
|
|
253
|
-
| `NumDirtyPermissions` | `number` | Count of permissions that have been modified but not saved |
|
|
254
|
-
|
|
255
|
-
#### Methods
|
|
256
|
-
|
|
257
|
-
| Method | Parameters | Return Type | Description |
|
|
258
|
-
|--------|------------|-------------|-------------|
|
|
259
|
-
| `Refresh()` | None | `Promise<void>` | Reloads all permissions data from the database. Automatically creates missing permission records for display |
|
|
260
|
-
| `savePermissions()` | None | `Promise<void>` | Saves all modified permissions in a single transaction. Only saves permissions that are truly dirty |
|
|
261
|
-
| `cancelEdit()` | None | `Promise<void>` | Reverts all unsaved changes to their original values |
|
|
262
|
-
| `flipAllPermissions(type)` | `type: 'Read' \| 'Create' \| 'Update' \| 'Delete'` | `void` | Intelligently toggles all permissions of the specified type. If majority are ON, turns all OFF; otherwise turns all ON |
|
|
263
|
-
| `flipRow(permission)` | `permission: EntityPermissionEntity` | `void` | Toggles all permissions in a row. If 2+ are ON, turns all OFF; otherwise turns all ON |
|
|
264
|
-
| `revertRow(event, permission)` | `event: MouseEvent, permission: EntityPermissionEntity` | `void` | Reverts a single row to its original state |
|
|
265
|
-
|
|
266
|
-
### EntityPermissionsSelectorWithGridComponent
|
|
267
|
-
|
|
268
|
-
**Selector:** `mj-entity-permissions-selector-with-grid`
|
|
269
|
-
|
|
270
|
-
#### Properties
|
|
271
|
-
|
|
272
|
-
##### Inputs
|
|
273
|
-
|
|
274
|
-
| Name | Type | Default | Description |
|
|
275
|
-
|------|------|---------|-------------|
|
|
276
|
-
| `EntityName` | `string` | `undefined` | Optional. Name of the initially selected entity |
|
|
277
|
-
| `BottomMargin` | `number` | `0` | Bottom margin in pixels to apply to the component |
|
|
278
|
-
| `CurrentEntity` | `EntityInfo \| undefined` | `undefined` | The currently selected entity object. Can be used for two-way binding |
|
|
279
|
-
|
|
280
|
-
##### Outputs
|
|
281
|
-
|
|
282
|
-
| Name | Type | Description |
|
|
283
|
-
|------|------|-------------|
|
|
284
|
-
| `PermissionChanged` | `EventEmitter<EntityPermissionChangedEvent>` | Bubbles up permission change events from the embedded grid |
|
|
285
|
-
|
|
286
|
-
##### Public Properties
|
|
287
|
-
|
|
288
|
-
| Name | Type | Description |
|
|
289
|
-
|------|------|-------------|
|
|
290
|
-
| `entityList` | `EntityInfo[]` | Alphabetically sorted list of all entities available for selection |
|
|
291
|
-
|
|
292
|
-
### EntityPermissionChangedEvent Interface
|
|
76
|
+
### Permission Change Event
|
|
293
77
|
|
|
294
78
|
```typescript
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
Cancel: boolean; // Set to true in event handler to cancel the change
|
|
79
|
+
onPermissionChanged(event: EntityPermissionChangedEvent) {
|
|
80
|
+
// event.EntityName, event.RoleID
|
|
81
|
+
// event.PermissionTypeChanged: 'Read' | 'Create' | 'Update' | 'Delete'
|
|
82
|
+
// event.Value: boolean
|
|
83
|
+
// Set event.Cancel = true to prevent the change
|
|
301
84
|
}
|
|
302
85
|
```
|
|
303
86
|
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
1. **Automatic Record Creation**: When loading permissions, the component automatically creates unsaved EntityPermission records for any missing role/entity combinations. These appear in the grid but are only saved if the user enables at least one permission.
|
|
307
|
-
|
|
308
|
-
2. **Dirty State Logic**: A permission is considered "really dirty" if:
|
|
309
|
-
- It's an existing saved record that has been modified, OR
|
|
310
|
-
- It's a new record with at least one permission enabled
|
|
311
|
-
|
|
312
|
-
3. **Transaction Support**: All save operations use MemberJunction's TransactionGroup to ensure atomic updates across multiple permission records.
|
|
313
|
-
|
|
314
|
-
4. **Event Handling**: The grid uses a sophisticated event system where clicking on checkboxes or table cells properly toggles permissions while preventing event bubbling conflicts.
|
|
315
|
-
|
|
316
|
-
## Styling
|
|
317
|
-
|
|
318
|
-
The components use standard HTML tables with custom CSS classes that can be overridden:
|
|
319
|
-
|
|
320
|
-
### CSS Classes
|
|
321
|
-
|
|
322
|
-
| Class | Applied To | Description |
|
|
323
|
-
|-------|------------|-------------|
|
|
324
|
-
| `.grid` | `<table>` | Main permissions grid table |
|
|
325
|
-
| `.permission-left-col` | First `<td>` in each row | Left column containing entity/role names and revert icon |
|
|
326
|
-
| `.dirty-row` | `<tr>` | Applied to rows that have unsaved changes |
|
|
327
|
-
| `.entity-selector` | `<kendo-dropdownlist>` | Styles the entity selection dropdown |
|
|
328
|
-
| `.inner-grid` | `<mj-entity-permissions-grid>` | Applied to the grid within the selector component |
|
|
329
|
-
| `.fa-arrow-rotate-left` | `<span>` icon | Revert icon shown in dirty rows |
|
|
330
|
-
|
|
331
|
-
### Customization Example
|
|
332
|
-
|
|
333
|
-
```css
|
|
334
|
-
/* Custom styling for your application */
|
|
335
|
-
::ng-deep {
|
|
336
|
-
.mj-entity-permissions-grid {
|
|
337
|
-
.grid {
|
|
338
|
-
border: 1px solid #ddd;
|
|
339
|
-
width: 100%;
|
|
340
|
-
}
|
|
341
|
-
|
|
342
|
-
.dirty-row {
|
|
343
|
-
background-color: #fff3cd;
|
|
344
|
-
|
|
345
|
-
.permission-left-col {
|
|
346
|
-
font-weight: bold;
|
|
347
|
-
|
|
348
|
-
.fa-arrow-rotate-left {
|
|
349
|
-
color: #856404;
|
|
350
|
-
cursor: pointer;
|
|
351
|
-
margin-left: 10px;
|
|
352
|
-
|
|
353
|
-
&:hover {
|
|
354
|
-
color: #533f03;
|
|
355
|
-
}
|
|
356
|
-
}
|
|
357
|
-
}
|
|
358
|
-
}
|
|
359
|
-
|
|
360
|
-
th {
|
|
361
|
-
cursor: pointer;
|
|
362
|
-
user-select: none;
|
|
363
|
-
|
|
364
|
-
&:hover {
|
|
365
|
-
background-color: #f0f0f0;
|
|
366
|
-
}
|
|
367
|
-
}
|
|
368
|
-
}
|
|
369
|
-
}
|
|
370
|
-
```
|
|
371
|
-
|
|
372
|
-
## Integration with MemberJunction
|
|
373
|
-
|
|
374
|
-
This package integrates seamlessly with the MemberJunction ecosystem:
|
|
87
|
+
## Exported API
|
|
375
88
|
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
89
|
+
| Export | Type | Description |
|
|
90
|
+
|---|---|---|
|
|
91
|
+
| `EntityPermissionsGridComponent` | Component | CRUD permissions grid |
|
|
92
|
+
| `EntitySelectorWithGridComponent` | Component | Entity dropdown + permissions grid |
|
|
93
|
+
| `EntityPermissionChangedEvent` | Type | Permission change event shape |
|
|
94
|
+
| `EntityPermissionsModule` | NgModule | Module declaration |
|
|
380
95
|
|
|
381
|
-
|
|
382
|
-
- Automatically discovers all entities and roles from the Metadata provider
|
|
383
|
-
- Validates entity and role names against the metadata
|
|
384
|
-
- Creates properly typed entity objects using the metadata system
|
|
385
|
-
|
|
386
|
-
### RunView Integration
|
|
387
|
-
- Uses `RunView` for efficient data loading with proper filtering
|
|
388
|
-
- Leverages `ResultType: 'entity_object'` for automatic entity instantiation
|
|
389
|
-
- Implements proper ordering for consistent display
|
|
390
|
-
|
|
391
|
-
## Build and Development
|
|
392
|
-
|
|
393
|
-
This package uses the Angular compiler (`ngc`) for building:
|
|
96
|
+
## Build
|
|
394
97
|
|
|
395
98
|
```bash
|
|
396
|
-
|
|
397
|
-
npm run build
|
|
398
|
-
|
|
399
|
-
# The built files will be in the dist/ directory
|
|
400
|
-
```
|
|
401
|
-
|
|
402
|
-
### TypeScript Configuration
|
|
403
|
-
- Targets ES2015 with ES2020 modules
|
|
404
|
-
- Generates declaration files with source maps
|
|
405
|
-
- Uses strict mode for type safety
|
|
406
|
-
- Configured for Angular library compilation with strict templates
|
|
407
|
-
|
|
408
|
-
## Performance Considerations
|
|
409
|
-
|
|
410
|
-
1. **Efficient Loading**: The component loads all permissions in a single query and creates missing records in memory
|
|
411
|
-
2. **Batch Updates**: Uses transaction groups to minimize database round trips
|
|
412
|
-
3. **Smart Dirty Checking**: Only saves records that have actual changes
|
|
413
|
-
4. **Lazy Initialization**: Permission records for missing combinations are created on-demand
|
|
414
|
-
|
|
415
|
-
## Common Use Cases
|
|
416
|
-
|
|
417
|
-
### Admin Dashboard
|
|
418
|
-
```typescript
|
|
419
|
-
// Create a comprehensive admin interface for managing all permissions
|
|
420
|
-
@Component({
|
|
421
|
-
template: `
|
|
422
|
-
<mat-tab-group>
|
|
423
|
-
<mat-tab label="By Entity">
|
|
424
|
-
<mj-entity-permissions-selector-with-grid></mj-entity-permissions-selector-with-grid>
|
|
425
|
-
</mat-tab>
|
|
426
|
-
<mat-tab label="By Role">
|
|
427
|
-
<select [(ngModel)]="selectedRole">
|
|
428
|
-
<option *ngFor="let role of roles" [value]="role.Name">{{role.Name}}</option>
|
|
429
|
-
</select>
|
|
430
|
-
<mj-entity-permissions-grid
|
|
431
|
-
*ngIf="selectedRole"
|
|
432
|
-
[Mode]="'Role'"
|
|
433
|
-
[RoleName]="selectedRole">
|
|
434
|
-
</mj-entity-permissions-grid>
|
|
435
|
-
</mat-tab>
|
|
436
|
-
</mat-tab-group>
|
|
437
|
-
`
|
|
438
|
-
})
|
|
439
|
-
export class PermissionsDashboardComponent {
|
|
440
|
-
// Implementation
|
|
441
|
-
}
|
|
442
|
-
```
|
|
443
|
-
|
|
444
|
-
### Role Creation Wizard
|
|
445
|
-
```typescript
|
|
446
|
-
// Include permissions step in role creation
|
|
447
|
-
@Component({
|
|
448
|
-
template: `
|
|
449
|
-
<div *ngIf="currentStep === 'permissions'">
|
|
450
|
-
<h3>Configure Permissions for {{newRole.Name}}</h3>
|
|
451
|
-
<mj-entity-permissions-grid
|
|
452
|
-
[Mode]="'Role'"
|
|
453
|
-
[RoleName]="newRole.Name"
|
|
454
|
-
(PermissionChanged)="trackPermissionChanges($event)">
|
|
455
|
-
</mj-entity-permissions-grid>
|
|
456
|
-
</div>
|
|
457
|
-
`
|
|
458
|
-
})
|
|
459
|
-
export class RoleWizardComponent {
|
|
460
|
-
// Track changes and save with role
|
|
461
|
-
}
|
|
99
|
+
cd packages/Angular/Explorer/entity-permissions && npm run build
|
|
462
100
|
```
|
|
463
101
|
|
|
464
|
-
## Troubleshooting
|
|
465
|
-
|
|
466
|
-
### Common Issues
|
|
467
|
-
|
|
468
|
-
1. **"EntityName is required when Mode is 'Entity'"**
|
|
469
|
-
- Ensure you provide the EntityName input when using Entity mode
|
|
470
|
-
- Check that the entity name matches exactly (case-sensitive)
|
|
471
|
-
|
|
472
|
-
2. **"Entity not found: [EntityName]"**
|
|
473
|
-
- Verify the entity exists in MemberJunction metadata
|
|
474
|
-
- Ensure metadata is properly loaded before component initialization
|
|
475
|
-
|
|
476
|
-
3. **Permissions not saving**
|
|
477
|
-
- Check browser console for transaction errors
|
|
478
|
-
- Verify user has permission to modify EntityPermission records
|
|
479
|
-
- Ensure database constraints are not violated
|
|
480
|
-
|
|
481
|
-
4. **Grid not displaying**
|
|
482
|
-
- Confirm all Kendo UI modules are properly imported
|
|
483
|
-
- Check that EntityPermissionsModule is imported in your module
|
|
484
|
-
|
|
485
102
|
## License
|
|
486
103
|
|
|
487
|
-
ISC
|
|
104
|
+
ISC
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity-selector-with-grid.component.d.ts","sourceRoot":"","sources":["../../../src/lib/entity-selector-with-grid/entity-selector-with-grid.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,YAAY,EAAE,MAAM,EAAS,MAAM,eAAe,CAAC;AAE/E,OAAO,EAAE,UAAU,EAAY,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,4BAA4B,EAAE,MAAM,2CAA2C,CAAC;;AAIzF,
|
|
1
|
+
{"version":3,"file":"entity-selector-with-grid.component.d.ts","sourceRoot":"","sources":["../../../src/lib/entity-selector-with-grid/entity-selector-with-grid.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,YAAY,EAAE,MAAM,EAAS,MAAM,eAAe,CAAC;AAE/E,OAAO,EAAE,UAAU,EAAY,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,4BAA4B,EAAE,MAAM,2CAA2C,CAAC;;AAIzF,qBAMa,0CAA2C,YAAW,MAAM;IAC9D,UAAU,EAAG,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAK;IAExB,iBAAiB,6CAAoD;IAEtE,aAAa,EAAE,UAAU,GAAG,SAAS,CAAC;IAE/C,OAAO,CAAC,GAAG,CAAuB;IAC3B,UAAU,EAAE,UAAU,EAAE,CAAM;IAC9B,QAAQ,IAAI,IAAI;IAOhB,uBAAuB,CAAC,KAAK,EAAE,4BAA4B;yCAjBvD,0CAA0C;2CAA1C,0CAA0C;CAuBtD"}
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import { Component, Output, EventEmitter, Input } from '@angular/core';
|
|
2
2
|
import { Metadata } from '@memberjunction/core';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@angular
|
|
5
|
-
import * as i2 from "
|
|
6
|
-
|
|
7
|
-
function EntityPermissionsSelectorWithGridComponent_mj_entity_permissions_grid_2_Template(rf, ctx) { if (rf & 1) {
|
|
4
|
+
import * as i1 from "@progress/kendo-angular-dropdowns";
|
|
5
|
+
import * as i2 from "../grid/entity-permissions-grid.component";
|
|
6
|
+
function EntityPermissionsSelectorWithGridComponent_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
8
7
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
9
8
|
i0.ɵɵelementStart(0, "mj-entity-permissions-grid", 2);
|
|
10
|
-
i0.ɵɵlistener("PermissionChanged", function
|
|
9
|
+
i0.ɵɵlistener("PermissionChanged", function EntityPermissionsSelectorWithGridComponent_Conditional_2_Template_mj_entity_permissions_grid_PermissionChanged_0_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.handlePermissionChanged($event)); });
|
|
11
10
|
i0.ɵɵelementEnd();
|
|
12
11
|
} if (rf & 2) {
|
|
13
12
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
@@ -31,23 +30,23 @@ export class EntityPermissionsSelectorWithGridComponent {
|
|
|
31
30
|
this.PermissionChanged.emit(event);
|
|
32
31
|
}
|
|
33
32
|
static ɵfac = function EntityPermissionsSelectorWithGridComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || EntityPermissionsSelectorWithGridComponent)(); };
|
|
34
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: EntityPermissionsSelectorWithGridComponent, selectors: [["mj-entity-permissions-selector-with-grid"]], inputs: { EntityName: "EntityName", BottomMargin: "BottomMargin", CurrentEntity: "CurrentEntity" }, outputs: { PermissionChanged: "PermissionChanged" }, decls: 3, vars: 3, consts: [["textField", "Name", "valueField", "Name", "placeholder", "Select an entity...", 1, "entity-selector", 3, "valueChange", "data", "value"], [
|
|
33
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: EntityPermissionsSelectorWithGridComponent, selectors: [["mj-entity-permissions-selector-with-grid"]], inputs: { EntityName: "EntityName", BottomMargin: "BottomMargin", CurrentEntity: "CurrentEntity" }, outputs: { PermissionChanged: "PermissionChanged" }, standalone: false, decls: 3, vars: 3, consts: [["textField", "Name", "valueField", "Name", "placeholder", "Select an entity...", 1, "entity-selector", 3, "valueChange", "data", "value"], [1, "inner-grid", 3, "EntityName"], [1, "inner-grid", 3, "PermissionChanged", "EntityName"]], template: function EntityPermissionsSelectorWithGridComponent_Template(rf, ctx) { if (rf & 1) {
|
|
35
34
|
i0.ɵɵelementStart(0, "div")(1, "kendo-dropdownlist", 0);
|
|
36
35
|
i0.ɵɵtwoWayListener("valueChange", function EntityPermissionsSelectorWithGridComponent_Template_kendo_dropdownlist_valueChange_1_listener($event) { i0.ɵɵtwoWayBindingSet(ctx.CurrentEntity, $event) || (ctx.CurrentEntity = $event); return $event; });
|
|
37
36
|
i0.ɵɵelementEnd();
|
|
38
|
-
i0.ɵɵ
|
|
37
|
+
i0.ɵɵconditionalCreate(2, EntityPermissionsSelectorWithGridComponent_Conditional_2_Template, 1, 1, "mj-entity-permissions-grid", 1);
|
|
39
38
|
i0.ɵɵelementEnd();
|
|
40
39
|
} if (rf & 2) {
|
|
41
40
|
i0.ɵɵadvance();
|
|
42
41
|
i0.ɵɵproperty("data", ctx.entityList);
|
|
43
42
|
i0.ɵɵtwoWayProperty("value", ctx.CurrentEntity);
|
|
44
43
|
i0.ɵɵadvance();
|
|
45
|
-
i0.ɵɵ
|
|
46
|
-
} }, dependencies: [i1.
|
|
44
|
+
i0.ɵɵconditional(ctx.CurrentEntity ? 2 : -1);
|
|
45
|
+
} }, dependencies: [i1.DropDownListComponent, i2.EntityPermissionsGridComponent], styles: [".entity-selector[_ngcontent-%COMP%] {\n min-width: 200px;\n max-width: 500px;\n}"] });
|
|
47
46
|
}
|
|
48
47
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(EntityPermissionsSelectorWithGridComponent, [{
|
|
49
48
|
type: Component,
|
|
50
|
-
args: [{ selector: 'mj-entity-permissions-selector-with-grid', template: "<div >\n
|
|
49
|
+
args: [{ standalone: false, selector: 'mj-entity-permissions-selector-with-grid', template: "<div >\n <kendo-dropdownlist\n [data]=\"entityList\"\n textField=\"Name\"\n valueField=\"Name\"\n placeholder=\"Select an entity...\"\n class=\"entity-selector\"\n [(value)]=\"CurrentEntity\"\n >\n </kendo-dropdownlist>\n @if (CurrentEntity) {\n <mj-entity-permissions-grid class=\"inner-grid\" [EntityName]=\"CurrentEntity.Name\" (PermissionChanged)=\"handlePermissionChanged($event)\"></mj-entity-permissions-grid>\n }\n</div>\n", styles: [".entity-selector {\n min-width: 200px;\n max-width: 500px;\n}"] }]
|
|
51
50
|
}], null, { EntityName: [{
|
|
52
51
|
type: Input
|
|
53
52
|
}], BottomMargin: [{
|
|
@@ -57,5 +56,5 @@ export class EntityPermissionsSelectorWithGridComponent {
|
|
|
57
56
|
}], CurrentEntity: [{
|
|
58
57
|
type: Input
|
|
59
58
|
}] }); })();
|
|
60
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(EntityPermissionsSelectorWithGridComponent, { className: "EntityPermissionsSelectorWithGridComponent", filePath: "src/lib/entity-selector-with-grid/entity-selector-with-grid.component.ts", lineNumber:
|
|
59
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(EntityPermissionsSelectorWithGridComponent, { className: "EntityPermissionsSelectorWithGridComponent", filePath: "src/lib/entity-selector-with-grid/entity-selector-with-grid.component.ts", lineNumber: 14 }); })();
|
|
61
60
|
//# sourceMappingURL=entity-selector-with-grid.component.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity-selector-with-grid.component.js","sourceRoot":"","sources":["../../../src/lib/entity-selector-with-grid/entity-selector-with-grid.component.ts","../../../src/lib/entity-selector-with-grid/entity-selector-with-grid.component.html"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAU,KAAK,EAAE,MAAM,eAAe,CAAC;AAE/E,OAAO,EAAc,QAAQ,EAAE,MAAM,sBAAsB,CAAC
|
|
1
|
+
{"version":3,"file":"entity-selector-with-grid.component.js","sourceRoot":"","sources":["../../../src/lib/entity-selector-with-grid/entity-selector-with-grid.component.ts","../../../src/lib/entity-selector-with-grid/entity-selector-with-grid.component.html"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAU,KAAK,EAAE,MAAM,eAAe,CAAC;AAE/E,OAAO,EAAc,QAAQ,EAAE,MAAM,sBAAsB,CAAC;;;;;;ICSxD,qDAAuI;IAAtD,gQAAqB,sCAA+B,KAAC;IAAC,iBAA6B;;;IAArH,sDAAiC;;ADEpF,MAAM,OAAO,0CAA0C;IAC5C,UAAU,CAAU;IACpB,YAAY,GAAW,CAAC,CAAC;IAExB,iBAAiB,GAAG,IAAI,YAAY,EAAgC,CAAC;IAEtE,aAAa,CAAyB;IAEvC,GAAG,CAAuB;IAC3B,UAAU,GAAiB,EAAE,CAAC;IAC9B,QAAQ;QACb,IAAI,CAAC,GAAG,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC1B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACjF,IAAI,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,CAAC;YAC7B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC;IAEM,uBAAuB,CAAC,KAAmC;QAChE,iDAAiD;QACjD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CACzB,KAAK,CACN,CAAC;IACJ,CAAC;oIAtBU,0CAA0C;6DAA1C,0CAA0C;YCZrD,AADF,2BAAM,4BAQD;YADD,uPAAyB;YAE3B,iBAAqB;YACrB,mIAAqB;YAGvB,iBAAM;;YAXF,cAAmB;YAAnB,qCAAmB;YAKnB,+CAAyB;YAG3B,cAEC;YAFD,4CAEC;;;iFDCU,0CAA0C;cANtD,SAAS;6BACI,KAAK,YACP,0CAA0C;;kBAKnD,KAAK;;kBACL,KAAK;;kBAEL,MAAM;;kBAEN,KAAK;;kFANK,0CAA0C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity-permissions-grid.component.d.ts","sourceRoot":"","sources":["../../../src/lib/grid/entity-permissions-grid.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,YAAY,EAAE,MAAM,EAAS,aAAa,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAGzG,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;;AAGvE,MAAM,MAAM,4BAA4B,GAAG;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,qBAAqB,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAA;IAC9D,KAAK,EAAE,OAAO,CAAA;IACd,MAAM,EAAE,OAAO,CAAA;CAChB,CAAA;AAED,
|
|
1
|
+
{"version":3,"file":"entity-permissions-grid.component.d.ts","sourceRoot":"","sources":["../../../src/lib/grid/entity-permissions-grid.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,YAAY,EAAE,MAAM,EAAS,aAAa,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAGzG,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;;AAGvE,MAAM,MAAM,4BAA4B,GAAG;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,qBAAqB,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAA;IAC9D,KAAK,EAAE,OAAO,CAAA;IACd,MAAM,EAAE,OAAO,CAAA;CAChB,CAAA;AAED,qBAMa,8BAA+B,YAAW,MAAM,EAAE,SAAS;IAC7D,IAAI,EAAE,QAAQ,GAAG,MAAM,CAAY;IACnC,UAAU,EAAG,MAAM,CAAC;IACpB,QAAQ,EAAG,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAK;IAExB,iBAAiB,6CAAoD;IAExE,WAAW,EAAE,sBAAsB,EAAE,CAAM;IAC3C,UAAU,EAAE,MAAM,CAAO;IACzB,SAAS,EAAE,OAAO,CAAS;;IAKlC,QAAQ,IAAI,IAAI;IAIhB,WAAW,CAAC,OAAO,EAAE,aAAa;IAOlC,cAAc;IAMR,OAAO;IA6EN,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAM7B,eAAe;IAkBf,UAAU;IAWvB,IAAW,mBAAmB,IAAI,MAAM,CAEvC;IAED,SAAS,CAAC,uBAAuB,CAAC,CAAC,EAAE,sBAAsB,GAAG,OAAO;IAS9D,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ;IAoDhE,SAAS,CAAC,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,sBAAsB;IAO/D,OAAO,CAAC,UAAU,EAAE,sBAAsB;IA0B1C,cAAc,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS,EAAE,UAAU,EAAE,sBAAsB,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,EAAE,cAAc,EAAE,OAAO;yCAlPpJ,8BAA8B;2CAA9B,8BAA8B;CAgR1C"}
|
|
@@ -5,25 +5,25 @@ import * as i1 from "@angular/common";
|
|
|
5
5
|
import * as i2 from "@angular/forms";
|
|
6
6
|
import * as i3 from "@progress/kendo-angular-buttons";
|
|
7
7
|
import * as i4 from "@memberjunction/ng-shared-generic";
|
|
8
|
-
function
|
|
8
|
+
function EntityPermissionsGridComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
9
9
|
i0.ɵɵelementStart(0, "div");
|
|
10
|
-
i0.ɵɵelement(1, "mj-loading",
|
|
10
|
+
i0.ɵɵelement(1, "mj-loading", 2);
|
|
11
11
|
i0.ɵɵelementEnd();
|
|
12
12
|
} if (rf & 2) {
|
|
13
13
|
i0.ɵɵadvance();
|
|
14
14
|
i0.ɵɵproperty("showText", false);
|
|
15
15
|
} }
|
|
16
|
-
function
|
|
16
|
+
function EntityPermissionsGridComponent_Conditional_6_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
17
17
|
i0.ɵɵelementStart(0, "th");
|
|
18
18
|
i0.ɵɵtext(1, "Role");
|
|
19
19
|
i0.ɵɵelementEnd();
|
|
20
20
|
} }
|
|
21
|
-
function
|
|
21
|
+
function EntityPermissionsGridComponent_Conditional_6_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
22
22
|
i0.ɵɵelementStart(0, "th");
|
|
23
23
|
i0.ɵɵtext(1, "Entity");
|
|
24
24
|
i0.ɵɵelementEnd();
|
|
25
25
|
} }
|
|
26
|
-
function
|
|
26
|
+
function EntityPermissionsGridComponent_Conditional_6_For_15_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
27
27
|
i0.ɵɵelementStart(0, "span");
|
|
28
28
|
i0.ɵɵtext(1);
|
|
29
29
|
i0.ɵɵelementEnd();
|
|
@@ -33,7 +33,7 @@ function EntityPermissionsGridComponent_table_6_tr_14_Conditional_2_Template(rf,
|
|
|
33
33
|
i0.ɵɵadvance();
|
|
34
34
|
i0.ɵɵtextInterpolate1(" ", ctx_r1.getRoleName(permission_r4.RoleID), " ");
|
|
35
35
|
} }
|
|
36
|
-
function
|
|
36
|
+
function EntityPermissionsGridComponent_Conditional_6_For_15_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
37
37
|
i0.ɵɵelementStart(0, "span");
|
|
38
38
|
i0.ɵɵtext(1);
|
|
39
39
|
i0.ɵɵelementEnd();
|
|
@@ -42,41 +42,42 @@ function EntityPermissionsGridComponent_table_6_tr_14_Conditional_3_Template(rf,
|
|
|
42
42
|
i0.ɵɵadvance();
|
|
43
43
|
i0.ɵɵtextInterpolate1(" ", permission_r4.Entity, " ");
|
|
44
44
|
} }
|
|
45
|
-
function
|
|
45
|
+
function EntityPermissionsGridComponent_Conditional_6_For_15_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
46
46
|
const _r5 = i0.ɵɵgetCurrentView();
|
|
47
|
-
i0.ɵɵelementStart(0, "span",
|
|
48
|
-
i0.ɵɵlistener("click", function
|
|
47
|
+
i0.ɵɵelementStart(0, "span", 8);
|
|
48
|
+
i0.ɵɵlistener("click", function EntityPermissionsGridComponent_Conditional_6_For_15_Conditional_4_Template_span_click_0_listener($event) { i0.ɵɵrestoreView(_r5); const permission_r4 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.revertRow($event, permission_r4)); });
|
|
49
49
|
i0.ɵɵelementEnd();
|
|
50
50
|
} }
|
|
51
|
-
function
|
|
51
|
+
function EntityPermissionsGridComponent_Conditional_6_For_15_Template(rf, ctx) { if (rf & 1) {
|
|
52
52
|
const _r3 = i0.ɵɵgetCurrentView();
|
|
53
|
-
i0.ɵɵelementStart(0, "tr",
|
|
54
|
-
i0.ɵɵlistener("click", function
|
|
55
|
-
i0.ɵɵ
|
|
53
|
+
i0.ɵɵelementStart(0, "tr", 4)(1, "td", 5);
|
|
54
|
+
i0.ɵɵlistener("click", function EntityPermissionsGridComponent_Conditional_6_For_15_Template_td_click_1_listener() { const permission_r4 = i0.ɵɵrestoreView(_r3).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.flipRow(permission_r4)); });
|
|
55
|
+
i0.ɵɵconditionalCreate(2, EntityPermissionsGridComponent_Conditional_6_For_15_Conditional_2_Template, 2, 1, "span")(3, EntityPermissionsGridComponent_Conditional_6_For_15_Conditional_3_Template, 2, 1, "span");
|
|
56
|
+
i0.ɵɵconditionalCreate(4, EntityPermissionsGridComponent_Conditional_6_For_15_Conditional_4_Template, 1, 0, "span", 6);
|
|
56
57
|
i0.ɵɵelementEnd();
|
|
57
|
-
i0.ɵɵelementStart(5, "td",
|
|
58
|
-
i0.ɵɵlistener("click", function
|
|
59
|
-
i0.ɵɵelementStart(6, "input",
|
|
60
|
-
i0.ɵɵtwoWayListener("ngModelChange", function
|
|
61
|
-
i0.ɵɵlistener("click", function
|
|
58
|
+
i0.ɵɵelementStart(5, "td", 3);
|
|
59
|
+
i0.ɵɵlistener("click", function EntityPermissionsGridComponent_Conditional_6_For_15_Template_td_click_5_listener($event) { const permission_r4 = i0.ɵɵrestoreView(_r3).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.flipPermission($event, permission_r4, "Read", true)); });
|
|
60
|
+
i0.ɵɵelementStart(6, "input", 7);
|
|
61
|
+
i0.ɵɵtwoWayListener("ngModelChange", function EntityPermissionsGridComponent_Conditional_6_For_15_Template_input_ngModelChange_6_listener($event) { const permission_r4 = i0.ɵɵrestoreView(_r3).$implicit; i0.ɵɵtwoWayBindingSet(permission_r4.CanRead, $event) || (permission_r4.CanRead = $event); return i0.ɵɵresetView($event); });
|
|
62
|
+
i0.ɵɵlistener("click", function EntityPermissionsGridComponent_Conditional_6_For_15_Template_input_click_6_listener($event) { const permission_r4 = i0.ɵɵrestoreView(_r3).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.flipPermission($event, permission_r4, "Read", false)); });
|
|
62
63
|
i0.ɵɵelementEnd()();
|
|
63
|
-
i0.ɵɵelementStart(7, "td",
|
|
64
|
-
i0.ɵɵlistener("click", function
|
|
65
|
-
i0.ɵɵelementStart(8, "input",
|
|
66
|
-
i0.ɵɵtwoWayListener("ngModelChange", function
|
|
67
|
-
i0.ɵɵlistener("click", function
|
|
64
|
+
i0.ɵɵelementStart(7, "td", 3);
|
|
65
|
+
i0.ɵɵlistener("click", function EntityPermissionsGridComponent_Conditional_6_For_15_Template_td_click_7_listener($event) { const permission_r4 = i0.ɵɵrestoreView(_r3).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.flipPermission($event, permission_r4, "Create", true)); });
|
|
66
|
+
i0.ɵɵelementStart(8, "input", 7);
|
|
67
|
+
i0.ɵɵtwoWayListener("ngModelChange", function EntityPermissionsGridComponent_Conditional_6_For_15_Template_input_ngModelChange_8_listener($event) { const permission_r4 = i0.ɵɵrestoreView(_r3).$implicit; i0.ɵɵtwoWayBindingSet(permission_r4.CanCreate, $event) || (permission_r4.CanCreate = $event); return i0.ɵɵresetView($event); });
|
|
68
|
+
i0.ɵɵlistener("click", function EntityPermissionsGridComponent_Conditional_6_For_15_Template_input_click_8_listener($event) { const permission_r4 = i0.ɵɵrestoreView(_r3).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.flipPermission($event, permission_r4, "Create", false)); });
|
|
68
69
|
i0.ɵɵelementEnd()();
|
|
69
|
-
i0.ɵɵelementStart(9, "td",
|
|
70
|
-
i0.ɵɵlistener("click", function
|
|
71
|
-
i0.ɵɵelementStart(10, "input",
|
|
72
|
-
i0.ɵɵtwoWayListener("ngModelChange", function
|
|
73
|
-
i0.ɵɵlistener("click", function
|
|
70
|
+
i0.ɵɵelementStart(9, "td", 3);
|
|
71
|
+
i0.ɵɵlistener("click", function EntityPermissionsGridComponent_Conditional_6_For_15_Template_td_click_9_listener($event) { const permission_r4 = i0.ɵɵrestoreView(_r3).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.flipPermission($event, permission_r4, "Update", true)); });
|
|
72
|
+
i0.ɵɵelementStart(10, "input", 7);
|
|
73
|
+
i0.ɵɵtwoWayListener("ngModelChange", function EntityPermissionsGridComponent_Conditional_6_For_15_Template_input_ngModelChange_10_listener($event) { const permission_r4 = i0.ɵɵrestoreView(_r3).$implicit; i0.ɵɵtwoWayBindingSet(permission_r4.CanUpdate, $event) || (permission_r4.CanUpdate = $event); return i0.ɵɵresetView($event); });
|
|
74
|
+
i0.ɵɵlistener("click", function EntityPermissionsGridComponent_Conditional_6_For_15_Template_input_click_10_listener($event) { const permission_r4 = i0.ɵɵrestoreView(_r3).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.flipPermission($event, permission_r4, "Update", false)); });
|
|
74
75
|
i0.ɵɵelementEnd()();
|
|
75
|
-
i0.ɵɵelementStart(11, "td",
|
|
76
|
-
i0.ɵɵlistener("click", function
|
|
77
|
-
i0.ɵɵelementStart(12, "input",
|
|
78
|
-
i0.ɵɵtwoWayListener("ngModelChange", function
|
|
79
|
-
i0.ɵɵlistener("click", function
|
|
76
|
+
i0.ɵɵelementStart(11, "td", 3);
|
|
77
|
+
i0.ɵɵlistener("click", function EntityPermissionsGridComponent_Conditional_6_For_15_Template_td_click_11_listener($event) { const permission_r4 = i0.ɵɵrestoreView(_r3).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.flipPermission($event, permission_r4, "Delete", true)); });
|
|
78
|
+
i0.ɵɵelementStart(12, "input", 7);
|
|
79
|
+
i0.ɵɵtwoWayListener("ngModelChange", function EntityPermissionsGridComponent_Conditional_6_For_15_Template_input_ngModelChange_12_listener($event) { const permission_r4 = i0.ɵɵrestoreView(_r3).$implicit; i0.ɵɵtwoWayBindingSet(permission_r4.CanDelete, $event) || (permission_r4.CanDelete = $event); return i0.ɵɵresetView($event); });
|
|
80
|
+
i0.ɵɵlistener("click", function EntityPermissionsGridComponent_Conditional_6_For_15_Template_input_click_12_listener($event) { const permission_r4 = i0.ɵɵrestoreView(_r3).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.flipPermission($event, permission_r4, "Delete", false)); });
|
|
80
81
|
i0.ɵɵelementEnd()()();
|
|
81
82
|
} if (rf & 2) {
|
|
82
83
|
const permission_r4 = ctx.$implicit;
|
|
@@ -95,37 +96,38 @@ function EntityPermissionsGridComponent_table_6_tr_14_Template(rf, ctx) { if (rf
|
|
|
95
96
|
i0.ɵɵadvance(2);
|
|
96
97
|
i0.ɵɵtwoWayProperty("ngModel", permission_r4.CanDelete);
|
|
97
98
|
} }
|
|
98
|
-
function
|
|
99
|
+
function EntityPermissionsGridComponent_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
99
100
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
100
|
-
i0.ɵɵelementStart(0, "table",
|
|
101
|
-
i0.ɵɵ
|
|
102
|
-
i0.ɵɵ
|
|
103
|
-
i0.ɵɵ
|
|
101
|
+
i0.ɵɵelementStart(0, "table", 1)(1, "thead")(2, "tr");
|
|
102
|
+
i0.ɵɵconditionalCreate(3, EntityPermissionsGridComponent_Conditional_6_Conditional_3_Template, 2, 0, "th");
|
|
103
|
+
i0.ɵɵconditionalCreate(4, EntityPermissionsGridComponent_Conditional_6_Conditional_4_Template, 2, 0, "th");
|
|
104
|
+
i0.ɵɵelementStart(5, "th", 3);
|
|
105
|
+
i0.ɵɵlistener("click", function EntityPermissionsGridComponent_Conditional_6_Template_th_click_5_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.flipAllPermissions("Read")); });
|
|
104
106
|
i0.ɵɵtext(6, "Read");
|
|
105
107
|
i0.ɵɵelementEnd();
|
|
106
|
-
i0.ɵɵelementStart(7, "th",
|
|
107
|
-
i0.ɵɵlistener("click", function
|
|
108
|
+
i0.ɵɵelementStart(7, "th", 3);
|
|
109
|
+
i0.ɵɵlistener("click", function EntityPermissionsGridComponent_Conditional_6_Template_th_click_7_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.flipAllPermissions("Create")); });
|
|
108
110
|
i0.ɵɵtext(8, "Create");
|
|
109
111
|
i0.ɵɵelementEnd();
|
|
110
|
-
i0.ɵɵelementStart(9, "th",
|
|
111
|
-
i0.ɵɵlistener("click", function
|
|
112
|
+
i0.ɵɵelementStart(9, "th", 3);
|
|
113
|
+
i0.ɵɵlistener("click", function EntityPermissionsGridComponent_Conditional_6_Template_th_click_9_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.flipAllPermissions("Update")); });
|
|
112
114
|
i0.ɵɵtext(10, "Update");
|
|
113
115
|
i0.ɵɵelementEnd();
|
|
114
|
-
i0.ɵɵelementStart(11, "th",
|
|
115
|
-
i0.ɵɵlistener("click", function
|
|
116
|
+
i0.ɵɵelementStart(11, "th", 3);
|
|
117
|
+
i0.ɵɵlistener("click", function EntityPermissionsGridComponent_Conditional_6_Template_th_click_11_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.flipAllPermissions("Delete")); });
|
|
116
118
|
i0.ɵɵtext(12, "Delete");
|
|
117
119
|
i0.ɵɵelementEnd()()();
|
|
118
120
|
i0.ɵɵelementStart(13, "tbody");
|
|
119
|
-
i0.ɵɵ
|
|
121
|
+
i0.ɵɵrepeaterCreate(14, EntityPermissionsGridComponent_Conditional_6_For_15_Template, 13, 7, "tr", 4, i0.ɵɵrepeaterTrackByIdentity);
|
|
120
122
|
i0.ɵɵelementEnd()();
|
|
121
123
|
} if (rf & 2) {
|
|
122
124
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
123
125
|
i0.ɵɵadvance(3);
|
|
124
|
-
i0.ɵɵ
|
|
126
|
+
i0.ɵɵconditional(ctx_r1.Mode === "Entity" ? 3 : -1);
|
|
125
127
|
i0.ɵɵadvance();
|
|
126
|
-
i0.ɵɵ
|
|
128
|
+
i0.ɵɵconditional(ctx_r1.Mode === "Role" ? 4 : -1);
|
|
127
129
|
i0.ɵɵadvance(10);
|
|
128
|
-
i0.ɵɵ
|
|
130
|
+
i0.ɵɵrepeater(ctx_r1.permissions);
|
|
129
131
|
} }
|
|
130
132
|
export class EntityPermissionsGridComponent {
|
|
131
133
|
Mode = 'Entity';
|
|
@@ -372,33 +374,33 @@ export class EntityPermissionsGridComponent {
|
|
|
372
374
|
event.stopPropagation();
|
|
373
375
|
}
|
|
374
376
|
static ɵfac = function EntityPermissionsGridComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || EntityPermissionsGridComponent)(); };
|
|
375
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: EntityPermissionsGridComponent, selectors: [["mj-entity-permissions-grid"]], inputs: { Mode: "Mode", EntityName: "EntityName", RoleName: "RoleName", BottomMargin: "BottomMargin" }, outputs: { PermissionChanged: "PermissionChanged" }, features: [i0.ɵɵNgOnChangesFeature], decls: 7, vars: 4, consts: [[
|
|
377
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: EntityPermissionsGridComponent, selectors: [["mj-entity-permissions-grid"]], inputs: { Mode: "Mode", EntityName: "EntityName", RoleName: "RoleName", BottomMargin: "BottomMargin" }, outputs: { PermissionChanged: "PermissionChanged" }, standalone: false, features: [i0.ɵɵNgOnChangesFeature], decls: 7, vars: 4, consts: [["kendoButton", "", 3, "click", "disabled"], [1, "grid"], ["size", "medium", 3, "showText"], [3, "click"], [3, "ngClass"], [1, "permission-left-col", 3, "click"], [1, "fa-solid", "fa-arrow-rotate-left"], ["type", "checkbox", "kendoCheckBox", "", 3, "ngModelChange", "click", "ngModel"], [1, "fa-solid", "fa-arrow-rotate-left", 3, "click"]], template: function EntityPermissionsGridComponent_Template(rf, ctx) { if (rf & 1) {
|
|
376
378
|
i0.ɵɵelementStart(0, "div");
|
|
377
|
-
i0.ɵɵ
|
|
378
|
-
i0.ɵɵelementStart(2, "button",
|
|
379
|
+
i0.ɵɵconditionalCreate(1, EntityPermissionsGridComponent_Conditional_1_Template, 2, 1, "div");
|
|
380
|
+
i0.ɵɵelementStart(2, "button", 0);
|
|
379
381
|
i0.ɵɵlistener("click", function EntityPermissionsGridComponent_Template_button_click_2_listener() { return ctx.savePermissions(); });
|
|
380
382
|
i0.ɵɵtext(3, "Save");
|
|
381
383
|
i0.ɵɵelementEnd();
|
|
382
|
-
i0.ɵɵelementStart(4, "button",
|
|
384
|
+
i0.ɵɵelementStart(4, "button", 0);
|
|
383
385
|
i0.ɵɵlistener("click", function EntityPermissionsGridComponent_Template_button_click_4_listener() { return ctx.cancelEdit(); });
|
|
384
386
|
i0.ɵɵtext(5, "Cancel");
|
|
385
387
|
i0.ɵɵelementEnd();
|
|
386
|
-
i0.ɵɵ
|
|
388
|
+
i0.ɵɵconditionalCreate(6, EntityPermissionsGridComponent_Conditional_6_Template, 16, 2, "table", 1);
|
|
387
389
|
i0.ɵɵelementEnd();
|
|
388
390
|
} if (rf & 2) {
|
|
389
391
|
i0.ɵɵadvance();
|
|
390
|
-
i0.ɵɵ
|
|
392
|
+
i0.ɵɵconditional(ctx.isLoading ? 1 : -1);
|
|
391
393
|
i0.ɵɵadvance();
|
|
392
394
|
i0.ɵɵproperty("disabled", ctx.NumDirtyPermissions === 0);
|
|
393
395
|
i0.ɵɵadvance(2);
|
|
394
396
|
i0.ɵɵproperty("disabled", ctx.NumDirtyPermissions === 0);
|
|
395
397
|
i0.ɵɵadvance(2);
|
|
396
|
-
i0.ɵɵ
|
|
397
|
-
} }, dependencies: [i1.NgClass,
|
|
398
|
+
i0.ɵɵconditional(!ctx.isLoading ? 6 : -1);
|
|
399
|
+
} }, dependencies: [i1.NgClass, i2.CheckboxControlValueAccessor, i2.NgControlStatus, i2.NgModel, i3.ButtonComponent, i4.LoadingComponent], styles: ["\n\ntable[_ngcontent-%COMP%] {\n margin-left: 5px;\n margin-top: 5px;\n border-collapse: collapse; \n\n}\n\nbutton[_ngcontent-%COMP%] {\n margin-left: 5px;\n margin-top: 5px;\n width: 125px;\n}\n \ntable[_ngcontent-%COMP%] th[_ngcontent-%COMP%] {\n background-color: #f2f2f2; \n\n color: black; \n\n font-weight: bold; \n\n cursor: pointer;\n}\n\n.permission-left-col[_ngcontent-%COMP%] {\n cursor: pointer;\n}\n\n\n\ntable[_ngcontent-%COMP%] th[_ngcontent-%COMP%], table[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\n border: 1px solid gray; \n\n height: 36px; \n\n text-align: center;\n padding: 0 8px; \n\n}\n\n\n\ntable[_ngcontent-%COMP%] th[_ngcontent-%COMP%]:first-child, table[_ngcontent-%COMP%] td[_ngcontent-%COMP%]:first-child {\n min-width: 150px; \n\n text-align: left;\n}\n\n\n\ntable[_ngcontent-%COMP%] th[_ngcontent-%COMP%]:not(:first-child), table[_ngcontent-%COMP%] td[_ngcontent-%COMP%]:not(:first-child) {\n width: 100px; \n\n}\n\n\n\ntable[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:nth-child(odd) {\n background-color: white; \n\n}\n\ntable[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:nth-child(even) {\n background-color: #e7f4ff; \n\n}\n\ntable[_ngcontent-%COMP%] tr.dirty-row[_ngcontent-%COMP%] {\n font-style: italic;\n background-color: #ffcccc;\n}"] });
|
|
398
400
|
}
|
|
399
401
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(EntityPermissionsGridComponent, [{
|
|
400
402
|
type: Component,
|
|
401
|
-
args: [{ selector: 'mj-entity-permissions-grid', template: "<div>\n <div
|
|
403
|
+
args: [{ standalone: false, selector: 'mj-entity-permissions-grid', template: "<div>\n @if (isLoading) {\n <div><mj-loading [showText]=\"false\" size=\"medium\"></mj-loading></div>\n }\n <button [disabled]=\"NumDirtyPermissions === 0\" kendoButton (click)=\"savePermissions()\">Save</button>\n <button [disabled]=\"NumDirtyPermissions === 0\" kendoButton (click)=\"cancelEdit()\">Cancel</button>\n @if (!isLoading) {\n <table class=\"grid\">\n <thead>\n <tr>\n @if (this.Mode==='Entity') {\n <th>Role</th>\n }\n @if (this.Mode==='Role') {\n <th>Entity</th>\n }\n <th (click)=\"flipAllPermissions('Read')\">Read</th>\n <th (click)=\"flipAllPermissions('Create')\">Create</th>\n <th (click)=\"flipAllPermissions('Update')\">Update</th>\n <th (click)=\"flipAllPermissions('Delete')\">Delete</th>\n </tr>\n </thead>\n <tbody>\n @for (permission of permissions; track permission) {\n <tr [ngClass]=\"IsPermissionReallyDirty(permission) ? 'dirty-row' : ''\">\n <td class=\"permission-left-col\" (click)=\"flipRow(permission)\">\n @if(this.Mode === 'Entity') {\n <span>\n {{ getRoleName(permission.RoleID) }}\n </span>\n }\n @else if(this.Mode === 'Role') {\n <span>\n {{ permission.Entity }}\n </span>\n }\n @if(IsPermissionReallyDirty(permission)) {\n <span class=\"fa-solid fa-arrow-rotate-left\" (click)=\"revertRow($event, permission)\"></span>\n }\n </td>\n <td (click)=\"flipPermission($event, permission, 'Read', true)\">\n <input type=\"checkbox\" kendoCheckBox [(ngModel)]=\"permission.CanRead\" (click)=\"flipPermission($event, permission, 'Read', false)\">\n </td>\n <td (click)=\"flipPermission($event, permission, 'Create', true)\">\n <input type=\"checkbox\" kendoCheckBox [(ngModel)]=\"permission.CanCreate\" (click)=\"flipPermission($event, permission, 'Create', false)\">\n </td>\n <td (click)=\"flipPermission($event, permission, 'Update', true)\">\n <input type=\"checkbox\" kendoCheckBox [(ngModel)]=\"permission.CanUpdate\" (click)=\"flipPermission($event, permission, 'Update', false)\">\n </td>\n <td (click)=\"flipPermission($event, permission, 'Delete', true)\">\n <input type=\"checkbox\" kendoCheckBox [(ngModel)]=\"permission.CanDelete\" (click)=\"flipPermission($event, permission, 'Delete', false)\">\n </td>\n </tr>\n }\n </tbody>\n </table>\n}\n</div>\n", styles: ["/* Style for the whole table */\ntable {\n margin-left: 5px;\n margin-top: 5px;\n border-collapse: collapse; /* Ensures border collapse for a cleaner look */\n}\n\nbutton {\n margin-left: 5px;\n margin-top: 5px;\n width: 125px;\n}\n \ntable th {\n background-color: #f2f2f2; /* Light gray background for headers */\n color: black; /* Black text color for headers */\n font-weight: bold; /* Bold font weight for headers */\n cursor: pointer;\n}\n\n.permission-left-col {\n cursor: pointer;\n}\n\n/* Style for all table cells */\ntable th, table td {\n border: 1px solid gray; /* Gray border for cells */\n height: 36px; /* Fixed height for all rows */\n text-align: center;\n padding: 0 8px; /* Add some padding inside cells */\n}\n\n/* Specific styles for the first column */\ntable th:first-child, table td:first-child {\n min-width: 150px; /* Set width for the first column */\n text-align: left;\n}\n\n/* Specific styles for the \"Can\" columns */\ntable th:not(:first-child), table td:not(:first-child) {\n width: 100px; /* Set width for \"Can\" columns */\n}\n\n/* Alternating row background colors */\ntable tr:nth-child(odd) {\n background-color: white; /* Light color for odd rows */\n}\n\ntable tr:nth-child(even) {\n background-color: #e7f4ff; /* Light blue for even rows */\n}\n\ntable tr.dirty-row {\n font-style: italic;\n background-color: #ffcccc;\n}\n\n"] }]
|
|
402
404
|
}], () => [], { Mode: [{
|
|
403
405
|
type: Input
|
|
404
406
|
}], EntityName: [{
|
|
@@ -410,5 +412,5 @@ export class EntityPermissionsGridComponent {
|
|
|
410
412
|
}], PermissionChanged: [{
|
|
411
413
|
type: Output
|
|
412
414
|
}] }); })();
|
|
413
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(EntityPermissionsGridComponent, { className: "EntityPermissionsGridComponent", filePath: "src/lib/grid/entity-permissions-grid.component.ts", lineNumber:
|
|
415
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(EntityPermissionsGridComponent, { className: "EntityPermissionsGridComponent", filePath: "src/lib/grid/entity-permissions-grid.component.ts", lineNumber: 21 }); })();
|
|
414
416
|
//# sourceMappingURL=entity-permissions-grid.component.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity-permissions-grid.component.js","sourceRoot":"","sources":["../../../src/lib/grid/entity-permissions-grid.component.ts","../../../src/lib/grid/entity-permissions-grid.component.html"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"entity-permissions-grid.component.js","sourceRoot":"","sources":["../../../src/lib/grid/entity-permissions-grid.component.ts","../../../src/lib/grid/entity-permissions-grid.component.html"],"names":[],"mappings":"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"}
|
package/dist/lib/module.d.ts
CHANGED
|
@@ -6,15 +6,14 @@ import * as i4 from "@progress/kendo-angular-grid";
|
|
|
6
6
|
import * as i5 from "@angular/forms";
|
|
7
7
|
import * as i6 from "@progress/kendo-angular-dialog";
|
|
8
8
|
import * as i7 from "@progress/kendo-angular-excel-export";
|
|
9
|
-
import * as i8 from "@memberjunction/ng-
|
|
10
|
-
import * as i9 from "@
|
|
11
|
-
import * as i10 from "@progress/kendo-angular-
|
|
12
|
-
import * as i11 from "@progress/kendo-angular-
|
|
13
|
-
import * as i12 from "@
|
|
14
|
-
import * as i13 from "@memberjunction/ng-shared-generic";
|
|
9
|
+
import * as i8 from "@memberjunction/ng-container-directives";
|
|
10
|
+
import * as i9 from "@progress/kendo-angular-buttons";
|
|
11
|
+
import * as i10 from "@progress/kendo-angular-dropdowns";
|
|
12
|
+
import * as i11 from "@progress/kendo-angular-indicators";
|
|
13
|
+
import * as i12 from "@memberjunction/ng-shared-generic";
|
|
15
14
|
export declare class EntityPermissionsModule {
|
|
16
15
|
static ɵfac: i0.ɵɵFactoryDeclaration<EntityPermissionsModule, never>;
|
|
17
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<EntityPermissionsModule, [typeof i1.EntityPermissionsGridComponent, typeof i2.EntityPermissionsSelectorWithGridComponent], [typeof i3.CommonModule, typeof i4.GridModule, typeof i5.FormsModule, typeof i6.DialogsModule, typeof i7.ExcelExportModule, typeof i8.
|
|
16
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<EntityPermissionsModule, [typeof i1.EntityPermissionsGridComponent, typeof i2.EntityPermissionsSelectorWithGridComponent], [typeof i3.CommonModule, typeof i4.GridModule, typeof i5.FormsModule, typeof i6.DialogsModule, typeof i7.ExcelExportModule, typeof i8.ContainerDirectivesModule, typeof i9.ButtonsModule, typeof i10.DropDownsModule, typeof i11.IndicatorsModule, typeof i12.SharedGenericModule], [typeof i1.EntityPermissionsGridComponent, typeof i2.EntityPermissionsSelectorWithGridComponent]>;
|
|
18
17
|
static ɵinj: i0.ɵɵInjectorDeclaration<EntityPermissionsModule>;
|
|
19
18
|
}
|
|
20
19
|
//# sourceMappingURL=module.d.ts.map
|
package/dist/lib/module.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../src/lib/module.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../src/lib/module.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAiBA,qBAsBa,uBAAuB;yCAAvB,uBAAuB;0CAAvB,uBAAuB;0CAAvB,uBAAuB;CAAI"}
|
package/dist/lib/module.js
CHANGED
|
@@ -6,7 +6,6 @@ import { GridModule } from '@progress/kendo-angular-grid';
|
|
|
6
6
|
import { ExcelExportModule } from '@progress/kendo-angular-excel-export';
|
|
7
7
|
import { DialogsModule } from "@progress/kendo-angular-dialog";
|
|
8
8
|
import { ButtonsModule } from '@progress/kendo-angular-buttons';
|
|
9
|
-
import { CompareRecordsModule } from '@memberjunction/ng-compare-records';
|
|
10
9
|
import { ContainerDirectivesModule } from '@memberjunction/ng-container-directives';
|
|
11
10
|
import { SharedGenericModule } from '@memberjunction/ng-shared-generic';
|
|
12
11
|
import { FormsModule } from '@angular/forms';
|
|
@@ -22,7 +21,6 @@ export class EntityPermissionsModule {
|
|
|
22
21
|
FormsModule,
|
|
23
22
|
DialogsModule,
|
|
24
23
|
ExcelExportModule,
|
|
25
|
-
CompareRecordsModule,
|
|
26
24
|
ContainerDirectivesModule,
|
|
27
25
|
ButtonsModule,
|
|
28
26
|
DropDownsModule,
|
|
@@ -42,7 +40,6 @@ export class EntityPermissionsModule {
|
|
|
42
40
|
FormsModule,
|
|
43
41
|
DialogsModule,
|
|
44
42
|
ExcelExportModule,
|
|
45
|
-
CompareRecordsModule,
|
|
46
43
|
ContainerDirectivesModule,
|
|
47
44
|
ButtonsModule,
|
|
48
45
|
DropDownsModule,
|
|
@@ -61,7 +58,6 @@ export class EntityPermissionsModule {
|
|
|
61
58
|
FormsModule,
|
|
62
59
|
DialogsModule,
|
|
63
60
|
ExcelExportModule,
|
|
64
|
-
CompareRecordsModule,
|
|
65
61
|
ContainerDirectivesModule,
|
|
66
62
|
ButtonsModule,
|
|
67
63
|
DropDownsModule,
|
package/dist/lib/module.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/lib/module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,8BAA8B,EAAE,MAAM,0CAA0C,CAAC;AAC1F,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,2BAA2B;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAEhE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/lib/module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,8BAA8B,EAAE,MAAM,0CAA0C,CAAC;AAC1F,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,2BAA2B;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAEhE,OAAO,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AACpF,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,0CAA0C,EAAE,MAAM,iEAAiE,CAAC;AAC7H,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;;AAwBtE,MAAM,OAAO,uBAAuB;iHAAvB,uBAAuB;4DAAvB,uBAAuB;gEAhBhC,YAAY;YACZ,UAAU;YACV,WAAW;YACX,aAAa;YACb,iBAAiB;YACjB,yBAAyB;YACzB,aAAa;YACb,eAAe;YACf,gBAAgB;YAChB,mBAAmB;;iFAOV,uBAAuB;cAtBnC,QAAQ;eAAC;gBACR,YAAY,EAAE;oBACZ,8BAA8B;oBAC9B,0CAA0C;iBAC3C;gBACD,OAAO,EAAE;oBACP,YAAY;oBACZ,UAAU;oBACV,WAAW;oBACX,aAAa;oBACb,iBAAiB;oBACjB,yBAAyB;oBACzB,aAAa;oBACb,eAAe;oBACf,gBAAgB;oBAChB,mBAAmB;iBACpB;gBACD,OAAO,EAAE;oBACP,8BAA8B;oBAC9B,0CAA0C;iBAC3C;aACF;;wFACY,uBAAuB,mBApBhC,8BAA8B;QAC9B,0CAA0C,aAG1C,YAAY;QACZ,UAAU;QACV,WAAW;QACX,aAAa;QACb,iBAAiB;QACjB,yBAAyB;QACzB,aAAa;QACb,eAAe;QACf,gBAAgB;QAChB,mBAAmB,aAGnB,8BAA8B;QAC9B,0CAA0C"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@memberjunction/ng-entity-permissions",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.1.0",
|
|
4
4
|
"description": "MemberJunction: Angular components for displaying/editing permissions for an entity, and related components.",
|
|
5
5
|
"main": "./dist/public-api.js",
|
|
6
6
|
"typings": "./dist/public-api.d.ts",
|
|
@@ -15,30 +15,29 @@
|
|
|
15
15
|
"author": "",
|
|
16
16
|
"license": "ISC",
|
|
17
17
|
"devDependencies": {
|
|
18
|
-
"@angular/compiler": "
|
|
19
|
-
"@angular/compiler-cli": "
|
|
18
|
+
"@angular/compiler": "21.1.3",
|
|
19
|
+
"@angular/compiler-cli": "21.1.3"
|
|
20
20
|
},
|
|
21
21
|
"peerDependencies": {
|
|
22
|
-
"@angular/common": "
|
|
23
|
-
"@angular/core": "
|
|
24
|
-
"@angular/forms": "
|
|
25
|
-
"@angular/router": "
|
|
22
|
+
"@angular/common": "21.1.3",
|
|
23
|
+
"@angular/core": "21.1.3",
|
|
24
|
+
"@angular/forms": "21.1.3",
|
|
25
|
+
"@angular/router": "21.1.3"
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@memberjunction/core": "
|
|
29
|
-
"@memberjunction/core-entities": "
|
|
30
|
-
"@memberjunction/global": "
|
|
31
|
-
"@memberjunction/ng-
|
|
32
|
-
"@memberjunction/ng-
|
|
33
|
-
"@memberjunction/ng-shared": "
|
|
34
|
-
"@
|
|
35
|
-
"@progress/kendo-angular-
|
|
36
|
-
"@progress/kendo-angular-
|
|
37
|
-
"@progress/kendo-angular-
|
|
38
|
-
"@progress/kendo-angular-
|
|
39
|
-
"@progress/kendo-angular-
|
|
40
|
-
"
|
|
41
|
-
"tslib": "^2.3.0"
|
|
28
|
+
"@memberjunction/core": "4.1.0",
|
|
29
|
+
"@memberjunction/core-entities": "4.1.0",
|
|
30
|
+
"@memberjunction/global": "4.1.0",
|
|
31
|
+
"@memberjunction/ng-container-directives": "4.1.0",
|
|
32
|
+
"@memberjunction/ng-shared": "4.1.0",
|
|
33
|
+
"@memberjunction/ng-shared-generic": "4.1.0",
|
|
34
|
+
"@progress/kendo-angular-buttons": "22.0.1",
|
|
35
|
+
"@progress/kendo-angular-dialog": "22.0.1",
|
|
36
|
+
"@progress/kendo-angular-dropdowns": "22.0.1",
|
|
37
|
+
"@progress/kendo-angular-excel-export": "22.0.1",
|
|
38
|
+
"@progress/kendo-angular-grid": "22.0.1",
|
|
39
|
+
"@progress/kendo-angular-indicators": "22.0.1",
|
|
40
|
+
"tslib": "^2.8.1"
|
|
42
41
|
},
|
|
43
42
|
"sideEffects": false,
|
|
44
43
|
"repository": {
|