@flusys/ng-iam 1.1.0-beta → 1.1.1-beta
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/fesm2022/{flusys-ng-iam-action-form-page.component-DBJzC5GS.mjs → flusys-ng-iam-action-form-page.component-C1j10Qhw.mjs} +2 -2
- package/fesm2022/{flusys-ng-iam-action-form-page.component-DBJzC5GS.mjs.map → flusys-ng-iam-action-form-page.component-C1j10Qhw.mjs.map} +1 -1
- package/fesm2022/{flusys-ng-iam-action-list-page.component-Dfts0JCt.mjs → flusys-ng-iam-action-list-page.component-BCzSardO.mjs} +2 -2
- package/fesm2022/{flusys-ng-iam-action-list-page.component-Dfts0JCt.mjs.map → flusys-ng-iam-action-list-page.component-BCzSardO.mjs.map} +1 -1
- package/fesm2022/{flusys-ng-iam-flusys-ng-iam-BjdM-Vgz.mjs → flusys-ng-iam-flusys-ng-iam-DISrddPh.mjs} +71 -71
- package/fesm2022/flusys-ng-iam-flusys-ng-iam-DISrddPh.mjs.map +1 -0
- package/fesm2022/{flusys-ng-iam-iam-container.component-Chl5MDkV.mjs → flusys-ng-iam-iam-container.component-BkhqmzLi.mjs} +5 -5
- package/fesm2022/flusys-ng-iam-iam-container.component-BkhqmzLi.mjs.map +1 -0
- package/fesm2022/{flusys-ng-iam-permission-page.component-cDrwUAQ_.mjs → flusys-ng-iam-permission-page.component-BSQFPt_N.mjs} +2 -2
- package/fesm2022/{flusys-ng-iam-permission-page.component-cDrwUAQ_.mjs.map → flusys-ng-iam-permission-page.component-BSQFPt_N.mjs.map} +1 -1
- package/fesm2022/{flusys-ng-iam-role-form-page.component-Ctigzpon.mjs → flusys-ng-iam-role-form-page.component-Cqziu_BM.mjs} +2 -2
- package/fesm2022/{flusys-ng-iam-role-form-page.component-Ctigzpon.mjs.map → flusys-ng-iam-role-form-page.component-Cqziu_BM.mjs.map} +1 -1
- package/fesm2022/{flusys-ng-iam-role-list-page.component-BF-Z_TQK.mjs → flusys-ng-iam-role-list-page.component-BObCxHiB.mjs} +2 -2
- package/fesm2022/{flusys-ng-iam-role-list-page.component-BF-Z_TQK.mjs.map → flusys-ng-iam-role-list-page.component-BObCxHiB.mjs.map} +1 -1
- package/fesm2022/flusys-ng-iam.mjs +1 -1
- package/package.json +4 -4
- package/fesm2022/flusys-ng-iam-flusys-ng-iam-BjdM-Vgz.mjs.map +0 -1
- package/fesm2022/flusys-ng-iam-iam-container.component-Chl5MDkV.mjs.map +0 -1
|
@@ -1154,13 +1154,13 @@ class LogicBuilderComponent {
|
|
|
1154
1154
|
</div>
|
|
1155
1155
|
|
|
1156
1156
|
@if (builderLogic()) {
|
|
1157
|
-
<div class="border rounded p-3 bg-
|
|
1158
|
-
<div class="mb-3 text-sm text-
|
|
1157
|
+
<div class="border rounded p-3 bg-surface-50">
|
|
1158
|
+
<div class="mb-3 text-sm text-muted-color">
|
|
1159
1159
|
Define permission requirements using AND/OR logic with actions
|
|
1160
1160
|
</div>
|
|
1161
1161
|
|
|
1162
1162
|
<!-- Root Node -->
|
|
1163
|
-
<div class="logic-tree bg-
|
|
1163
|
+
<div class="logic-tree bg-surface-0 rounded border">
|
|
1164
1164
|
<ng-container *ngTemplateOutlet="nodeTemplate; context: { $implicit: builderLogic()!, depth: 0 }"></ng-container>
|
|
1165
1165
|
</div>
|
|
1166
1166
|
</div>
|
|
@@ -1169,7 +1169,7 @@ class LogicBuilderComponent {
|
|
|
1169
1169
|
|
|
1170
1170
|
<!-- Recursive Node Template -->
|
|
1171
1171
|
<ng-template #nodeTemplate let-node let-depth="depth">
|
|
1172
|
-
<div class="node" [
|
|
1172
|
+
<div class="node" [class]="depth % 2 === 0 ? 'bg-surface-0' : 'bg-surface-50'">
|
|
1173
1173
|
<div class="node-header">
|
|
1174
1174
|
<span class="node-type" [ngClass]="node.type">{{ node.type.toUpperCase() }}</span>
|
|
1175
1175
|
|
|
@@ -1183,7 +1183,7 @@ class LogicBuilderComponent {
|
|
|
1183
1183
|
title="Click to toggle">
|
|
1184
1184
|
{{ node.operator }}
|
|
1185
1185
|
</span>
|
|
1186
|
-
<span class="text-
|
|
1186
|
+
<span class="text-muted-color text-xs">({{ node.children?.length || 0 }} conditions)</span>
|
|
1187
1187
|
}
|
|
1188
1188
|
|
|
1189
1189
|
@if (node.type === 'action') {
|
|
@@ -1223,7 +1223,7 @@ class LogicBuilderComponent {
|
|
|
1223
1223
|
<!-- Add child buttons for group nodes -->
|
|
1224
1224
|
@if (node.type === 'group') {
|
|
1225
1225
|
<div class="add-child-section">
|
|
1226
|
-
<div class="text-xs font-semibold text-
|
|
1226
|
+
<div class="text-xs font-semibold text-muted-color mb-2">Add Condition:</div>
|
|
1227
1227
|
<div class="add-child-buttons">
|
|
1228
1228
|
<p-button
|
|
1229
1229
|
label="Group"
|
|
@@ -1243,7 +1243,7 @@ class LogicBuilderComponent {
|
|
|
1243
1243
|
}
|
|
1244
1244
|
</div>
|
|
1245
1245
|
</ng-template>
|
|
1246
|
-
`, isInline: true, styles: [":host{display:block}.logic-tree{font-size:.875rem}.node{padding:.75rem;border-bottom:1px solid #e5e7eb}.node:last-child{border-bottom:none}.node-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.5rem}.node-type{display:inline-flex;align-items:center;padding:.25rem .5rem;border-radius:.25rem;font-weight:600;font-size:.75rem;text-transform:uppercase}.node-type.group{background-color
|
|
1246
|
+
`, isInline: true, styles: [":host{display:block}.logic-tree{font-size:.875rem}.node{padding:.75rem;border-bottom:1px solid var(--p-surface-200, #e5e7eb)}.node:last-child{border-bottom:none}.node-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.5rem}.node-type{display:inline-flex;align-items:center;padding:.25rem .5rem;border-radius:.25rem;font-weight:600;font-size:.75rem;text-transform:uppercase}.node-type.group{background-color:var(--p-blue-100, #dbeafe);color:var(--p-blue-700, #1e40af)}.node-type.action{background-color:var(--p-green-100, #d1fae5);color:var(--p-green-700, #065f46)}.node-content{flex:1;display:flex;align-items:center;gap:.5rem}.node-actions{display:flex;gap:.25rem}.node-children{margin-left:1.5rem;margin-top:.5rem;padding-left:1rem;border-left:2px solid var(--p-surface-200, #e5e7eb)}.operator-badge{display:inline-flex;align-items:center;padding:.125rem .5rem;border-radius:9999px;font-weight:600;font-size:.75rem;cursor:pointer;transition:all .2s}.operator-badge.and{background-color:var(--p-yellow-100, #fef3c7);color:var(--p-yellow-700, #92400e)}.operator-badge.or{background-color:var(--p-indigo-100, #e0e7ff);color:var(--p-indigo-700, #3730a3)}.operator-badge:hover{opacity:.8}select{padding:.375rem .75rem;border:1px solid var(--p-surface-300, #d1d5db);border-radius:.375rem;font-size:.875rem;background-color:var(--p-surface-0, white);color:var(--p-text-color, inherit)}select:focus{outline:none;border-color:var(--p-primary-color, #3b82f6);box-shadow:0 0 0 3px rgba(var(--p-primary-color-rgb, 59, 130, 246),.1)}.add-child-section{margin-top:.75rem;padding:.75rem;background-color:var(--p-surface-50, #f9fafb);border-radius:.375rem;border:1px dashed var(--p-surface-300, #d1d5db)}.add-child-buttons{display:flex;gap:.5rem;flex-wrap:wrap}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1$1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1$1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AngularModule }, { kind: "ngmodule", type: PrimeModule }, { kind: "component", type: i2.Button, selector: "p-button", inputs: ["hostName", "type", "badge", "disabled", "raised", "rounded", "text", "plain", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "autofocus", "iconPos", "icon", "label", "loading", "loadingIcon", "severity", "buttonProps", "fluid"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "directive", type: i7.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "showOnEllipsis", "pTooltip", "tooltipDisabled", "tooltipOptions", "appendTo", "ptTooltip", "pTooltipPT", "pTooltipUnstyled"] }, { kind: "ngmodule", type: ButtonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1247
1247
|
}
|
|
1248
1248
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: LogicBuilderComponent, decorators: [{
|
|
1249
1249
|
type: Component,
|
|
@@ -1269,13 +1269,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImpor
|
|
|
1269
1269
|
</div>
|
|
1270
1270
|
|
|
1271
1271
|
@if (builderLogic()) {
|
|
1272
|
-
<div class="border rounded p-3 bg-
|
|
1273
|
-
<div class="mb-3 text-sm text-
|
|
1272
|
+
<div class="border rounded p-3 bg-surface-50">
|
|
1273
|
+
<div class="mb-3 text-sm text-muted-color">
|
|
1274
1274
|
Define permission requirements using AND/OR logic with actions
|
|
1275
1275
|
</div>
|
|
1276
1276
|
|
|
1277
1277
|
<!-- Root Node -->
|
|
1278
|
-
<div class="logic-tree bg-
|
|
1278
|
+
<div class="logic-tree bg-surface-0 rounded border">
|
|
1279
1279
|
<ng-container *ngTemplateOutlet="nodeTemplate; context: { $implicit: builderLogic()!, depth: 0 }"></ng-container>
|
|
1280
1280
|
</div>
|
|
1281
1281
|
</div>
|
|
@@ -1284,7 +1284,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImpor
|
|
|
1284
1284
|
|
|
1285
1285
|
<!-- Recursive Node Template -->
|
|
1286
1286
|
<ng-template #nodeTemplate let-node let-depth="depth">
|
|
1287
|
-
<div class="node" [
|
|
1287
|
+
<div class="node" [class]="depth % 2 === 0 ? 'bg-surface-0' : 'bg-surface-50'">
|
|
1288
1288
|
<div class="node-header">
|
|
1289
1289
|
<span class="node-type" [ngClass]="node.type">{{ node.type.toUpperCase() }}</span>
|
|
1290
1290
|
|
|
@@ -1298,7 +1298,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImpor
|
|
|
1298
1298
|
title="Click to toggle">
|
|
1299
1299
|
{{ node.operator }}
|
|
1300
1300
|
</span>
|
|
1301
|
-
<span class="text-
|
|
1301
|
+
<span class="text-muted-color text-xs">({{ node.children?.length || 0 }} conditions)</span>
|
|
1302
1302
|
}
|
|
1303
1303
|
|
|
1304
1304
|
@if (node.type === 'action') {
|
|
@@ -1338,7 +1338,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImpor
|
|
|
1338
1338
|
<!-- Add child buttons for group nodes -->
|
|
1339
1339
|
@if (node.type === 'group') {
|
|
1340
1340
|
<div class="add-child-section">
|
|
1341
|
-
<div class="text-xs font-semibold text-
|
|
1341
|
+
<div class="text-xs font-semibold text-muted-color mb-2">Add Condition:</div>
|
|
1342
1342
|
<div class="add-child-buttons">
|
|
1343
1343
|
<p-button
|
|
1344
1344
|
label="Group"
|
|
@@ -1358,7 +1358,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImpor
|
|
|
1358
1358
|
}
|
|
1359
1359
|
</div>
|
|
1360
1360
|
</ng-template>
|
|
1361
|
-
`, styles: [":host{display:block}.logic-tree{font-size:.875rem}.node{padding:.75rem;border-bottom:1px solid #e5e7eb}.node:last-child{border-bottom:none}.node-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.5rem}.node-type{display:inline-flex;align-items:center;padding:.25rem .5rem;border-radius:.25rem;font-weight:600;font-size:.75rem;text-transform:uppercase}.node-type.group{background-color
|
|
1361
|
+
`, styles: [":host{display:block}.logic-tree{font-size:.875rem}.node{padding:.75rem;border-bottom:1px solid var(--p-surface-200, #e5e7eb)}.node:last-child{border-bottom:none}.node-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.5rem}.node-type{display:inline-flex;align-items:center;padding:.25rem .5rem;border-radius:.25rem;font-weight:600;font-size:.75rem;text-transform:uppercase}.node-type.group{background-color:var(--p-blue-100, #dbeafe);color:var(--p-blue-700, #1e40af)}.node-type.action{background-color:var(--p-green-100, #d1fae5);color:var(--p-green-700, #065f46)}.node-content{flex:1;display:flex;align-items:center;gap:.5rem}.node-actions{display:flex;gap:.25rem}.node-children{margin-left:1.5rem;margin-top:.5rem;padding-left:1rem;border-left:2px solid var(--p-surface-200, #e5e7eb)}.operator-badge{display:inline-flex;align-items:center;padding:.125rem .5rem;border-radius:9999px;font-weight:600;font-size:.75rem;cursor:pointer;transition:all .2s}.operator-badge.and{background-color:var(--p-yellow-100, #fef3c7);color:var(--p-yellow-700, #92400e)}.operator-badge.or{background-color:var(--p-indigo-100, #e0e7ff);color:var(--p-indigo-700, #3730a3)}.operator-badge:hover{opacity:.8}select{padding:.375rem .75rem;border:1px solid var(--p-surface-300, #d1d5db);border-radius:.375rem;font-size:.875rem;background-color:var(--p-surface-0, white);color:var(--p-text-color, inherit)}select:focus{outline:none;border-color:var(--p-primary-color, #3b82f6);box-shadow:0 0 0 3px rgba(var(--p-primary-color-rgb, 59, 130, 246),.1)}.add-child-section{margin-top:.75rem;padding:.75rem;background-color:var(--p-surface-50, #f9fafb);border-radius:.375rem;border:1px dashed var(--p-surface-300, #d1d5db)}.add-child-buttons{display:flex;gap:.5rem;flex-wrap:wrap}\n"] }]
|
|
1362
1362
|
}], propDecorators: { logic: [{ type: i0.Input, args: [{ isSignal: true, alias: "logic", required: false }] }], actions: [{ type: i0.Input, args: [{ isSignal: true, alias: "actions", required: false }] }], logicChange: [{ type: i0.Output, args: ["logicChange"] }] } });
|
|
1363
1363
|
|
|
1364
1364
|
/**
|
|
@@ -1935,14 +1935,14 @@ class RoleActionSelectorComponent {
|
|
|
1935
1935
|
|
|
1936
1936
|
<!-- Validation Warning -->
|
|
1937
1937
|
@if (invalidActionsCount() > 0) {
|
|
1938
|
-
<div class="bg-
|
|
1938
|
+
<div class="bg-warn/10 border-l-4 border-warn p-4 mb-4">
|
|
1939
1939
|
<div class="flex items-center">
|
|
1940
1940
|
<i
|
|
1941
|
-
class="pi pi-exclamation-triangle text-
|
|
1941
|
+
class="pi pi-exclamation-triangle text-warn mr-2"
|
|
1942
1942
|
></i>
|
|
1943
1943
|
<div>
|
|
1944
|
-
<strong class="text-
|
|
1945
|
-
<p class="text-sm text-
|
|
1944
|
+
<strong class="text-warn">Validation Warning:</strong>
|
|
1945
|
+
<p class="text-sm text-warn mt-1">
|
|
1946
1946
|
{{ invalidActionsCount() }} selected
|
|
1947
1947
|
action{{ invalidActionsCount() > 1 ? 's have' : ' has' }}
|
|
1948
1948
|
unmet prerequisites. Fix before saving or use auto-fix on
|
|
@@ -1979,7 +1979,7 @@ class RoleActionSelectorComponent {
|
|
|
1979
1979
|
</tr>
|
|
1980
1980
|
</ng-template>
|
|
1981
1981
|
<ng-template pTemplate="body" let-rowNode let-rowData="rowData">
|
|
1982
|
-
<tr [class.bg-
|
|
1982
|
+
<tr [class.bg-danger/10]="hasUnmetPrerequisites(rowData)">
|
|
1983
1983
|
<td style="width: 3rem">
|
|
1984
1984
|
<p-checkbox
|
|
1985
1985
|
[ngModel]="selectionMap()[rowData.id]"
|
|
@@ -1995,7 +1995,7 @@ class RoleActionSelectorComponent {
|
|
|
1995
1995
|
{{ rowData.name }}
|
|
1996
1996
|
@if (hasUnmetPrerequisites(rowData)) {
|
|
1997
1997
|
<i
|
|
1998
|
-
class="pi pi-exclamation-triangle text-
|
|
1998
|
+
class="pi pi-exclamation-triangle text-warn"
|
|
1999
1999
|
pTooltip="This action has unmet prerequisites and will fail validation on save"
|
|
2000
2000
|
tooltipPosition="top"
|
|
2001
2001
|
></i>
|
|
@@ -2036,14 +2036,14 @@ class RoleActionSelectorComponent {
|
|
|
2036
2036
|
@if (hasChanges()) {
|
|
2037
2037
|
<div class="surface-border border-1 border-round p-3 mt-4">
|
|
2038
2038
|
<div class="flex align-items-center gap-2 mb-3">
|
|
2039
|
-
<i class="pi pi-info-circle text-
|
|
2039
|
+
<i class="pi pi-info-circle text-primary content-center"></i>
|
|
2040
2040
|
<p class="m-0 mb-1 font-bold">Pending Changes</p>
|
|
2041
2041
|
</div>
|
|
2042
2042
|
<div class="flex flex-col md:flex-row gap-4">
|
|
2043
2043
|
@if (pendingAdd().length > 0) {
|
|
2044
2044
|
<div class="w-full md:w-1/2">
|
|
2045
2045
|
<div class="flex align-items-center gap-2 mb-2">
|
|
2046
|
-
<i class="pi pi-plus-circle text-
|
|
2046
|
+
<i class="pi pi-plus-circle text-success"></i>
|
|
2047
2047
|
<strong class="text-sm"
|
|
2048
2048
|
>To Add ({{ pendingAdd().length }})</strong
|
|
2049
2049
|
>
|
|
@@ -2058,7 +2058,7 @@ class RoleActionSelectorComponent {
|
|
|
2058
2058
|
@if (pendingRemove().length > 0) {
|
|
2059
2059
|
<div class="w-full md:w-1/2">
|
|
2060
2060
|
<div class="flex align-items-center gap-2 mb-2">
|
|
2061
|
-
<i class="pi pi-minus-circle text-
|
|
2061
|
+
<i class="pi pi-minus-circle text-danger"></i>
|
|
2062
2062
|
<strong class="text-sm"
|
|
2063
2063
|
>To Remove ({{ pendingRemove().length }})</strong
|
|
2064
2064
|
>
|
|
@@ -2169,14 +2169,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImpor
|
|
|
2169
2169
|
|
|
2170
2170
|
<!-- Validation Warning -->
|
|
2171
2171
|
@if (invalidActionsCount() > 0) {
|
|
2172
|
-
<div class="bg-
|
|
2172
|
+
<div class="bg-warn/10 border-l-4 border-warn p-4 mb-4">
|
|
2173
2173
|
<div class="flex items-center">
|
|
2174
2174
|
<i
|
|
2175
|
-
class="pi pi-exclamation-triangle text-
|
|
2175
|
+
class="pi pi-exclamation-triangle text-warn mr-2"
|
|
2176
2176
|
></i>
|
|
2177
2177
|
<div>
|
|
2178
|
-
<strong class="text-
|
|
2179
|
-
<p class="text-sm text-
|
|
2178
|
+
<strong class="text-warn">Validation Warning:</strong>
|
|
2179
|
+
<p class="text-sm text-warn mt-1">
|
|
2180
2180
|
{{ invalidActionsCount() }} selected
|
|
2181
2181
|
action{{ invalidActionsCount() > 1 ? 's have' : ' has' }}
|
|
2182
2182
|
unmet prerequisites. Fix before saving or use auto-fix on
|
|
@@ -2213,7 +2213,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImpor
|
|
|
2213
2213
|
</tr>
|
|
2214
2214
|
</ng-template>
|
|
2215
2215
|
<ng-template pTemplate="body" let-rowNode let-rowData="rowData">
|
|
2216
|
-
<tr [class.bg-
|
|
2216
|
+
<tr [class.bg-danger/10]="hasUnmetPrerequisites(rowData)">
|
|
2217
2217
|
<td style="width: 3rem">
|
|
2218
2218
|
<p-checkbox
|
|
2219
2219
|
[ngModel]="selectionMap()[rowData.id]"
|
|
@@ -2229,7 +2229,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImpor
|
|
|
2229
2229
|
{{ rowData.name }}
|
|
2230
2230
|
@if (hasUnmetPrerequisites(rowData)) {
|
|
2231
2231
|
<i
|
|
2232
|
-
class="pi pi-exclamation-triangle text-
|
|
2232
|
+
class="pi pi-exclamation-triangle text-warn"
|
|
2233
2233
|
pTooltip="This action has unmet prerequisites and will fail validation on save"
|
|
2234
2234
|
tooltipPosition="top"
|
|
2235
2235
|
></i>
|
|
@@ -2270,14 +2270,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImpor
|
|
|
2270
2270
|
@if (hasChanges()) {
|
|
2271
2271
|
<div class="surface-border border-1 border-round p-3 mt-4">
|
|
2272
2272
|
<div class="flex align-items-center gap-2 mb-3">
|
|
2273
|
-
<i class="pi pi-info-circle text-
|
|
2273
|
+
<i class="pi pi-info-circle text-primary content-center"></i>
|
|
2274
2274
|
<p class="m-0 mb-1 font-bold">Pending Changes</p>
|
|
2275
2275
|
</div>
|
|
2276
2276
|
<div class="flex flex-col md:flex-row gap-4">
|
|
2277
2277
|
@if (pendingAdd().length > 0) {
|
|
2278
2278
|
<div class="w-full md:w-1/2">
|
|
2279
2279
|
<div class="flex align-items-center gap-2 mb-2">
|
|
2280
|
-
<i class="pi pi-plus-circle text-
|
|
2280
|
+
<i class="pi pi-plus-circle text-success"></i>
|
|
2281
2281
|
<strong class="text-sm"
|
|
2282
2282
|
>To Add ({{ pendingAdd().length }})</strong
|
|
2283
2283
|
>
|
|
@@ -2292,7 +2292,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImpor
|
|
|
2292
2292
|
@if (pendingRemove().length > 0) {
|
|
2293
2293
|
<div class="w-full md:w-1/2">
|
|
2294
2294
|
<div class="flex align-items-center gap-2 mb-2">
|
|
2295
|
-
<i class="pi pi-minus-circle text-
|
|
2295
|
+
<i class="pi pi-minus-circle text-danger"></i>
|
|
2296
2296
|
<strong class="text-sm"
|
|
2297
2297
|
>To Remove ({{ pendingRemove().length }})</strong
|
|
2298
2298
|
>
|
|
@@ -2795,14 +2795,14 @@ class CompanyActionSelectorComponent {
|
|
|
2795
2795
|
|
|
2796
2796
|
<!-- Validation Warning -->
|
|
2797
2797
|
@if (invalidActionsCount() > 0) {
|
|
2798
|
-
<div class="bg-
|
|
2798
|
+
<div class="bg-warn/10 border-l-4 border-warn p-4 mb-4">
|
|
2799
2799
|
<div class="flex items-center">
|
|
2800
2800
|
<i
|
|
2801
|
-
class="pi pi-exclamation-triangle text-
|
|
2801
|
+
class="pi pi-exclamation-triangle text-warn mr-2"
|
|
2802
2802
|
></i>
|
|
2803
2803
|
<div>
|
|
2804
|
-
<strong class="text-
|
|
2805
|
-
<p class="text-sm text-
|
|
2804
|
+
<strong class="text-warn">Validation Warning:</strong>
|
|
2805
|
+
<p class="text-sm text-warn mt-1">
|
|
2806
2806
|
{{ invalidActionsCount() }} selected
|
|
2807
2807
|
action{{ invalidActionsCount() > 1 ? 's have' : ' has' }}
|
|
2808
2808
|
unmet prerequisites. Fix before saving or use auto-fix on
|
|
@@ -2839,7 +2839,7 @@ class CompanyActionSelectorComponent {
|
|
|
2839
2839
|
</tr>
|
|
2840
2840
|
</ng-template>
|
|
2841
2841
|
<ng-template pTemplate="body" let-rowNode let-rowData="rowData">
|
|
2842
|
-
<tr [class.bg-
|
|
2842
|
+
<tr [class.bg-danger/10]="hasUnmetPrerequisites(rowData)">
|
|
2843
2843
|
<td style="width: 3rem">
|
|
2844
2844
|
<p-checkbox
|
|
2845
2845
|
[ngModel]="selectionMap()[rowData.id]"
|
|
@@ -2855,7 +2855,7 @@ class CompanyActionSelectorComponent {
|
|
|
2855
2855
|
{{ rowData.name }}
|
|
2856
2856
|
@if (hasUnmetPrerequisites(rowData)) {
|
|
2857
2857
|
<i
|
|
2858
|
-
class="pi pi-exclamation-triangle text-
|
|
2858
|
+
class="pi pi-exclamation-triangle text-warn"
|
|
2859
2859
|
pTooltip="This action has unmet prerequisites and will fail validation on save"
|
|
2860
2860
|
tooltipPosition="top"
|
|
2861
2861
|
></i>
|
|
@@ -2890,14 +2890,14 @@ class CompanyActionSelectorComponent {
|
|
|
2890
2890
|
@if (hasChanges()) {
|
|
2891
2891
|
<div class="surface-border border-1 border-round p-3 mt-4">
|
|
2892
2892
|
<div class="flex align-items-center gap-2 mb-3">
|
|
2893
|
-
<i class="pi pi-info-circle text-
|
|
2893
|
+
<i class="pi pi-info-circle text-primary content-center"></i>
|
|
2894
2894
|
<p class="m-0 mb-1 font-bold">Pending Changes</p>
|
|
2895
2895
|
</div>
|
|
2896
2896
|
<div class="flex flex-col md:flex-row gap-4">
|
|
2897
2897
|
@if (pendingAdd().length > 0) {
|
|
2898
2898
|
<div class="w-full md:w-1/2">
|
|
2899
2899
|
<div class="flex items-center gap-2 mb-2">
|
|
2900
|
-
<i class="pi pi-plus-circle text-
|
|
2900
|
+
<i class="pi pi-plus-circle text-success"></i>
|
|
2901
2901
|
<strong class="text-sm">
|
|
2902
2902
|
To Whitelist ({{ pendingAdd().length }})
|
|
2903
2903
|
</strong>
|
|
@@ -2913,7 +2913,7 @@ class CompanyActionSelectorComponent {
|
|
|
2913
2913
|
@if (pendingRemove().length > 0) {
|
|
2914
2914
|
<div class="w-full md:w-1/2">
|
|
2915
2915
|
<div class="flex items-center gap-2 mb-2">
|
|
2916
|
-
<i class="pi pi-minus-circle text-
|
|
2916
|
+
<i class="pi pi-minus-circle text-danger"></i>
|
|
2917
2917
|
<strong class="text-sm">
|
|
2918
2918
|
To Remove ({{ pendingRemove().length }})
|
|
2919
2919
|
</strong>
|
|
@@ -3024,14 +3024,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImpor
|
|
|
3024
3024
|
|
|
3025
3025
|
<!-- Validation Warning -->
|
|
3026
3026
|
@if (invalidActionsCount() > 0) {
|
|
3027
|
-
<div class="bg-
|
|
3027
|
+
<div class="bg-warn/10 border-l-4 border-warn p-4 mb-4">
|
|
3028
3028
|
<div class="flex items-center">
|
|
3029
3029
|
<i
|
|
3030
|
-
class="pi pi-exclamation-triangle text-
|
|
3030
|
+
class="pi pi-exclamation-triangle text-warn mr-2"
|
|
3031
3031
|
></i>
|
|
3032
3032
|
<div>
|
|
3033
|
-
<strong class="text-
|
|
3034
|
-
<p class="text-sm text-
|
|
3033
|
+
<strong class="text-warn">Validation Warning:</strong>
|
|
3034
|
+
<p class="text-sm text-warn mt-1">
|
|
3035
3035
|
{{ invalidActionsCount() }} selected
|
|
3036
3036
|
action{{ invalidActionsCount() > 1 ? 's have' : ' has' }}
|
|
3037
3037
|
unmet prerequisites. Fix before saving or use auto-fix on
|
|
@@ -3068,7 +3068,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImpor
|
|
|
3068
3068
|
</tr>
|
|
3069
3069
|
</ng-template>
|
|
3070
3070
|
<ng-template pTemplate="body" let-rowNode let-rowData="rowData">
|
|
3071
|
-
<tr [class.bg-
|
|
3071
|
+
<tr [class.bg-danger/10]="hasUnmetPrerequisites(rowData)">
|
|
3072
3072
|
<td style="width: 3rem">
|
|
3073
3073
|
<p-checkbox
|
|
3074
3074
|
[ngModel]="selectionMap()[rowData.id]"
|
|
@@ -3084,7 +3084,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImpor
|
|
|
3084
3084
|
{{ rowData.name }}
|
|
3085
3085
|
@if (hasUnmetPrerequisites(rowData)) {
|
|
3086
3086
|
<i
|
|
3087
|
-
class="pi pi-exclamation-triangle text-
|
|
3087
|
+
class="pi pi-exclamation-triangle text-warn"
|
|
3088
3088
|
pTooltip="This action has unmet prerequisites and will fail validation on save"
|
|
3089
3089
|
tooltipPosition="top"
|
|
3090
3090
|
></i>
|
|
@@ -3119,14 +3119,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImpor
|
|
|
3119
3119
|
@if (hasChanges()) {
|
|
3120
3120
|
<div class="surface-border border-1 border-round p-3 mt-4">
|
|
3121
3121
|
<div class="flex align-items-center gap-2 mb-3">
|
|
3122
|
-
<i class="pi pi-info-circle text-
|
|
3122
|
+
<i class="pi pi-info-circle text-primary content-center"></i>
|
|
3123
3123
|
<p class="m-0 mb-1 font-bold">Pending Changes</p>
|
|
3124
3124
|
</div>
|
|
3125
3125
|
<div class="flex flex-col md:flex-row gap-4">
|
|
3126
3126
|
@if (pendingAdd().length > 0) {
|
|
3127
3127
|
<div class="w-full md:w-1/2">
|
|
3128
3128
|
<div class="flex items-center gap-2 mb-2">
|
|
3129
|
-
<i class="pi pi-plus-circle text-
|
|
3129
|
+
<i class="pi pi-plus-circle text-success"></i>
|
|
3130
3130
|
<strong class="text-sm">
|
|
3131
3131
|
To Whitelist ({{ pendingAdd().length }})
|
|
3132
3132
|
</strong>
|
|
@@ -3142,7 +3142,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImpor
|
|
|
3142
3142
|
@if (pendingRemove().length > 0) {
|
|
3143
3143
|
<div class="w-full md:w-1/2">
|
|
3144
3144
|
<div class="flex items-center gap-2 mb-2">
|
|
3145
|
-
<i class="pi pi-minus-circle text-
|
|
3145
|
+
<i class="pi pi-minus-circle text-danger"></i>
|
|
3146
3146
|
<strong class="text-sm">
|
|
3147
3147
|
To Remove ({{ pendingRemove().length }})
|
|
3148
3148
|
</strong>
|
|
@@ -3664,14 +3664,14 @@ class UserRoleSelectorComponent {
|
|
|
3664
3664
|
@if (hasChanges()) {
|
|
3665
3665
|
<div class="surface-border border-1 border-round p-3 mt-4">
|
|
3666
3666
|
<div class="flex align-items-center gap-2 mb-3">
|
|
3667
|
-
<i class="pi pi-info-circle text-
|
|
3667
|
+
<i class="pi pi-info-circle text-primary content-center"></i>
|
|
3668
3668
|
<p class="m-0 mb-1 font-bold">Pending Changes</p>
|
|
3669
3669
|
</div>
|
|
3670
3670
|
<div class="flex flex-col md:flex-row gap-4">
|
|
3671
3671
|
@if (pendingAdd().length > 0) {
|
|
3672
3672
|
<div class="w-full md:w-1/2">
|
|
3673
3673
|
<div class="flex align-items-center gap-2 mb-2">
|
|
3674
|
-
<i class="pi pi-plus-circle text-
|
|
3674
|
+
<i class="pi pi-plus-circle text-success"></i>
|
|
3675
3675
|
<strong class="text-sm"
|
|
3676
3676
|
>To Assign ({{ pendingAdd().length }})</strong
|
|
3677
3677
|
>
|
|
@@ -3686,7 +3686,7 @@ class UserRoleSelectorComponent {
|
|
|
3686
3686
|
@if (pendingRemove().length > 0) {
|
|
3687
3687
|
<div class="w-full md:w-1/2">
|
|
3688
3688
|
<div class="flex align-items-center gap-2 mb-2">
|
|
3689
|
-
<i class="pi pi-minus-circle text-
|
|
3689
|
+
<i class="pi pi-minus-circle text-danger"></i>
|
|
3690
3690
|
<strong class="text-sm"
|
|
3691
3691
|
>To Remove ({{ pendingRemove().length }})</strong
|
|
3692
3692
|
>
|
|
@@ -3894,14 +3894,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImpor
|
|
|
3894
3894
|
@if (hasChanges()) {
|
|
3895
3895
|
<div class="surface-border border-1 border-round p-3 mt-4">
|
|
3896
3896
|
<div class="flex align-items-center gap-2 mb-3">
|
|
3897
|
-
<i class="pi pi-info-circle text-
|
|
3897
|
+
<i class="pi pi-info-circle text-primary content-center"></i>
|
|
3898
3898
|
<p class="m-0 mb-1 font-bold">Pending Changes</p>
|
|
3899
3899
|
</div>
|
|
3900
3900
|
<div class="flex flex-col md:flex-row gap-4">
|
|
3901
3901
|
@if (pendingAdd().length > 0) {
|
|
3902
3902
|
<div class="w-full md:w-1/2">
|
|
3903
3903
|
<div class="flex align-items-center gap-2 mb-2">
|
|
3904
|
-
<i class="pi pi-plus-circle text-
|
|
3904
|
+
<i class="pi pi-plus-circle text-success"></i>
|
|
3905
3905
|
<strong class="text-sm"
|
|
3906
3906
|
>To Assign ({{ pendingAdd().length }})</strong
|
|
3907
3907
|
>
|
|
@@ -3916,7 +3916,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImpor
|
|
|
3916
3916
|
@if (pendingRemove().length > 0) {
|
|
3917
3917
|
<div class="w-full md:w-1/2">
|
|
3918
3918
|
<div class="flex align-items-center gap-2 mb-2">
|
|
3919
|
-
<i class="pi pi-minus-circle text-
|
|
3919
|
+
<i class="pi pi-minus-circle text-danger"></i>
|
|
3920
3920
|
<strong class="text-sm"
|
|
3921
3921
|
>To Remove ({{ pendingRemove().length }})</strong
|
|
3922
3922
|
>
|
|
@@ -4492,14 +4492,14 @@ class UserActionSelectorComponent {
|
|
|
4492
4492
|
@if (hasChanges()) {
|
|
4493
4493
|
<div class="surface-border border-1 border-round p-3 mt-4">
|
|
4494
4494
|
<div class="flex align-items-center gap-2 mb-3">
|
|
4495
|
-
<i class="pi pi-info-circle text-
|
|
4495
|
+
<i class="pi pi-info-circle text-primary content-center"></i>
|
|
4496
4496
|
<p class="m-0 mb-1 font-bold">Pending Changes</p>
|
|
4497
4497
|
</div>
|
|
4498
4498
|
<div class="flex flex-col md:flex-row gap-4">
|
|
4499
4499
|
@if (pendingAdd().length > 0) {
|
|
4500
4500
|
<div class="w-full md:w-1/2">
|
|
4501
4501
|
<div class="flex align-items-center gap-2 mb-2">
|
|
4502
|
-
<i class="pi pi-plus-circle text-
|
|
4502
|
+
<i class="pi pi-plus-circle text-success"></i>
|
|
4503
4503
|
<strong class="text-sm"
|
|
4504
4504
|
>To Assign ({{ pendingAdd().length }})</strong
|
|
4505
4505
|
>
|
|
@@ -4514,7 +4514,7 @@ class UserActionSelectorComponent {
|
|
|
4514
4514
|
@if (pendingRemove().length > 0) {
|
|
4515
4515
|
<div class="w-full md:w-1/2">
|
|
4516
4516
|
<div class="flex align-items-center gap-2 mb-2">
|
|
4517
|
-
<i class="pi pi-minus-circle text-
|
|
4517
|
+
<i class="pi pi-minus-circle text-danger"></i>
|
|
4518
4518
|
<strong class="text-sm"
|
|
4519
4519
|
>To Remove ({{ pendingRemove().length }})</strong
|
|
4520
4520
|
>
|
|
@@ -4726,14 +4726,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImpor
|
|
|
4726
4726
|
@if (hasChanges()) {
|
|
4727
4727
|
<div class="surface-border border-1 border-round p-3 mt-4">
|
|
4728
4728
|
<div class="flex align-items-center gap-2 mb-3">
|
|
4729
|
-
<i class="pi pi-info-circle text-
|
|
4729
|
+
<i class="pi pi-info-circle text-primary content-center"></i>
|
|
4730
4730
|
<p class="m-0 mb-1 font-bold">Pending Changes</p>
|
|
4731
4731
|
</div>
|
|
4732
4732
|
<div class="flex flex-col md:flex-row gap-4">
|
|
4733
4733
|
@if (pendingAdd().length > 0) {
|
|
4734
4734
|
<div class="w-full md:w-1/2">
|
|
4735
4735
|
<div class="flex align-items-center gap-2 mb-2">
|
|
4736
|
-
<i class="pi pi-plus-circle text-
|
|
4736
|
+
<i class="pi pi-plus-circle text-success"></i>
|
|
4737
4737
|
<strong class="text-sm"
|
|
4738
4738
|
>To Assign ({{ pendingAdd().length }})</strong
|
|
4739
4739
|
>
|
|
@@ -4748,7 +4748,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImpor
|
|
|
4748
4748
|
@if (pendingRemove().length > 0) {
|
|
4749
4749
|
<div class="w-full md:w-1/2">
|
|
4750
4750
|
<div class="flex align-items-center gap-2 mb-2">
|
|
4751
|
-
<i class="pi pi-minus-circle text-
|
|
4751
|
+
<i class="pi pi-minus-circle text-danger"></i>
|
|
4752
4752
|
<strong class="text-sm"
|
|
4753
4753
|
>To Remove ({{ pendingRemove().length }})</strong
|
|
4754
4754
|
>
|
|
@@ -4877,7 +4877,7 @@ function provideIamProviders() {
|
|
|
4877
4877
|
const IAM_ROUTES = [
|
|
4878
4878
|
{
|
|
4879
4879
|
path: '',
|
|
4880
|
-
loadComponent: () => import('./flusys-ng-iam-iam-container.component-
|
|
4880
|
+
loadComponent: () => import('./flusys-ng-iam-iam-container.component-BkhqmzLi.mjs').then((m) => m.IamContainerComponent),
|
|
4881
4881
|
children: [
|
|
4882
4882
|
// Actions Management
|
|
4883
4883
|
{
|
|
@@ -4885,15 +4885,15 @@ const IAM_ROUTES = [
|
|
|
4885
4885
|
children: [
|
|
4886
4886
|
{
|
|
4887
4887
|
path: '',
|
|
4888
|
-
loadComponent: () => import('./flusys-ng-iam-action-list-page.component-
|
|
4888
|
+
loadComponent: () => import('./flusys-ng-iam-action-list-page.component-BCzSardO.mjs').then((m) => m.ActionListPageComponent),
|
|
4889
4889
|
},
|
|
4890
4890
|
{
|
|
4891
4891
|
path: 'new',
|
|
4892
|
-
loadComponent: () => import('./flusys-ng-iam-action-form-page.component-
|
|
4892
|
+
loadComponent: () => import('./flusys-ng-iam-action-form-page.component-C1j10Qhw.mjs').then((m) => m.ActionFormPageComponent),
|
|
4893
4893
|
},
|
|
4894
4894
|
{
|
|
4895
4895
|
path: ':id',
|
|
4896
|
-
loadComponent: () => import('./flusys-ng-iam-action-form-page.component-
|
|
4896
|
+
loadComponent: () => import('./flusys-ng-iam-action-form-page.component-C1j10Qhw.mjs').then((m) => m.ActionFormPageComponent),
|
|
4897
4897
|
},
|
|
4898
4898
|
],
|
|
4899
4899
|
},
|
|
@@ -4903,22 +4903,22 @@ const IAM_ROUTES = [
|
|
|
4903
4903
|
children: [
|
|
4904
4904
|
{
|
|
4905
4905
|
path: '',
|
|
4906
|
-
loadComponent: () => import('./flusys-ng-iam-role-list-page.component-
|
|
4906
|
+
loadComponent: () => import('./flusys-ng-iam-role-list-page.component-BObCxHiB.mjs').then((m) => m.RoleListPageComponent),
|
|
4907
4907
|
},
|
|
4908
4908
|
{
|
|
4909
4909
|
path: 'new',
|
|
4910
|
-
loadComponent: () => import('./flusys-ng-iam-role-form-page.component-
|
|
4910
|
+
loadComponent: () => import('./flusys-ng-iam-role-form-page.component-Cqziu_BM.mjs').then((m) => m.RoleFormPageComponent),
|
|
4911
4911
|
},
|
|
4912
4912
|
{
|
|
4913
4913
|
path: ':id',
|
|
4914
|
-
loadComponent: () => import('./flusys-ng-iam-role-form-page.component-
|
|
4914
|
+
loadComponent: () => import('./flusys-ng-iam-role-form-page.component-Cqziu_BM.mjs').then((m) => m.RoleFormPageComponent),
|
|
4915
4915
|
},
|
|
4916
4916
|
],
|
|
4917
4917
|
},
|
|
4918
4918
|
// Permissions Management (User permission assignment)
|
|
4919
4919
|
{
|
|
4920
4920
|
path: 'permissions',
|
|
4921
|
-
loadComponent: () => import('./flusys-ng-iam-permission-page.component-
|
|
4921
|
+
loadComponent: () => import('./flusys-ng-iam-permission-page.component-BSQFPt_N.mjs').then((m) => m.PermissionPageComponent),
|
|
4922
4922
|
},
|
|
4923
4923
|
// Default redirect to actions
|
|
4924
4924
|
{
|
|
@@ -4937,4 +4937,4 @@ const IAM_ROUTES = [
|
|
|
4937
4937
|
*/
|
|
4938
4938
|
|
|
4939
4939
|
export { ActionApiService as A, CompanyActionSelectorComponent as C, IAM_ROUTES as I, LogicBuilderComponent as L, MAX_DROPDOWN_ITEMS as M, PermissionApiService as P, RoleApiService as R, UserRoleSelectorComponent as U, ActionType as a, RoleActionSelectorComponent as b, convertActionToTreeNode as c, UserActionSelectorComponent as d, ActionPermissionLogicService as e, MyPermissionsApiService as f, PermissionStateService as g, ProfilePermissionProviderAdapter as h, provideIamProviders as p };
|
|
4940
|
-
//# sourceMappingURL=flusys-ng-iam-flusys-ng-iam-
|
|
4940
|
+
//# sourceMappingURL=flusys-ng-iam-flusys-ng-iam-DISrddPh.mjs.map
|