@flusys/ng-iam 5.4.0 → 5.5.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/fesm2022/{flusys-ng-iam-action-form-page.component-BQJkl9pU.mjs → flusys-ng-iam-action-form-page.component-BGEON5_n.mjs} +58 -37
- package/fesm2022/flusys-ng-iam-action-form-page.component-BGEON5_n.mjs.map +1 -0
- package/fesm2022/{flusys-ng-iam-action-list-page.component-BJ-tu6vu.mjs → flusys-ng-iam-action-list-page.component-BQvx2btD.mjs} +56 -42
- package/fesm2022/flusys-ng-iam-action-list-page.component-BQvx2btD.mjs.map +1 -0
- package/fesm2022/{flusys-ng-iam-flusys-ng-iam-Bb39q1Bu.mjs → flusys-ng-iam-flusys-ng-iam-C9rdGS64.mjs} +451 -306
- package/fesm2022/flusys-ng-iam-flusys-ng-iam-C9rdGS64.mjs.map +1 -0
- package/fesm2022/{flusys-ng-iam-iam-container.component-DAiS1Mtk.mjs → flusys-ng-iam-iam-container.component-DEuc_l2i.mjs} +7 -6
- package/fesm2022/{flusys-ng-iam-iam-container.component-DAiS1Mtk.mjs.map → flusys-ng-iam-iam-container.component-DEuc_l2i.mjs.map} +1 -1
- package/fesm2022/{flusys-ng-iam-permission-page.component-D4IHueFW.mjs → flusys-ng-iam-permission-page.component-DV8qtLcu.mjs} +26 -18
- package/fesm2022/flusys-ng-iam-permission-page.component-DV8qtLcu.mjs.map +1 -0
- package/fesm2022/{flusys-ng-iam-role-form-page.component-CX8LxsdO.mjs → flusys-ng-iam-role-form-page.component-CR1tl17E.mjs} +50 -33
- package/fesm2022/flusys-ng-iam-role-form-page.component-CR1tl17E.mjs.map +1 -0
- package/fesm2022/{flusys-ng-iam-role-list-page.component-CNOsO-gH.mjs → flusys-ng-iam-role-list-page.component-DVto37LL.mjs} +60 -41
- package/fesm2022/flusys-ng-iam-role-list-page.component-DVto37LL.mjs.map +1 -0
- package/fesm2022/flusys-ng-iam.mjs +1 -1
- package/package.json +11 -10
- package/fesm2022/flusys-ng-iam-action-form-page.component-BQJkl9pU.mjs.map +0 -1
- package/fesm2022/flusys-ng-iam-action-list-page.component-BJ-tu6vu.mjs.map +0 -1
- package/fesm2022/flusys-ng-iam-flusys-ng-iam-Bb39q1Bu.mjs.map +0 -1
- package/fesm2022/flusys-ng-iam-permission-page.component-D4IHueFW.mjs.map +0 -1
- package/fesm2022/flusys-ng-iam-role-form-page.component-CX8LxsdO.mjs.map +0 -1
- package/fesm2022/flusys-ng-iam-role-list-page.component-CNOsO-gH.mjs.map +0 -1
|
@@ -227,10 +227,10 @@ class RoleApiService extends ApiResourceService {
|
|
|
227
227
|
constructor() {
|
|
228
228
|
super('roles', 'iam');
|
|
229
229
|
}
|
|
230
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
231
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
230
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: RoleApiService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
231
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: RoleApiService, providedIn: 'root' });
|
|
232
232
|
}
|
|
233
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
233
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: RoleApiService, decorators: [{
|
|
234
234
|
type: Injectable,
|
|
235
235
|
args: [{ providedIn: 'root' }]
|
|
236
236
|
}], ctorParameters: () => [] });
|
|
@@ -257,10 +257,10 @@ class ActionApiService extends ApiResourceService {
|
|
|
257
257
|
const iamBaseUrl = getServiceUrl(this.appConfig, 'iam');
|
|
258
258
|
return this.http.post(`${iamBaseUrl}/actions/tree`, body);
|
|
259
259
|
}
|
|
260
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
261
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
260
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: ActionApiService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
261
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: ActionApiService, providedIn: 'root' });
|
|
262
262
|
}
|
|
263
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
263
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: ActionApiService, decorators: [{
|
|
264
264
|
type: Injectable,
|
|
265
265
|
args: [{ providedIn: 'root' }]
|
|
266
266
|
}], ctorParameters: () => [] });
|
|
@@ -794,10 +794,10 @@ class ActionPermissionLogicService {
|
|
|
794
794
|
}
|
|
795
795
|
return `${indent}${this.t('iam.logic.invalid')}`;
|
|
796
796
|
}
|
|
797
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
798
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
797
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: ActionPermissionLogicService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
798
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: ActionPermissionLogicService, providedIn: 'root' });
|
|
799
799
|
}
|
|
800
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
800
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: ActionPermissionLogicService, decorators: [{
|
|
801
801
|
type: Injectable,
|
|
802
802
|
args: [{ providedIn: 'root' }]
|
|
803
803
|
}] });
|
|
@@ -830,10 +830,10 @@ class PermissionApiService extends BaseApiService {
|
|
|
830
830
|
getCompanyActions(companyId) {
|
|
831
831
|
return this.http.post(this.getUrl('permissions/get-company-actions'), { companyId });
|
|
832
832
|
}
|
|
833
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
834
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
833
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: PermissionApiService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
834
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: PermissionApiService, providedIn: 'root' });
|
|
835
835
|
}
|
|
836
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
836
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: PermissionApiService, decorators: [{
|
|
837
837
|
type: Injectable,
|
|
838
838
|
args: [{ providedIn: 'root' }]
|
|
839
839
|
}], ctorParameters: () => [] });
|
|
@@ -857,10 +857,10 @@ class MyPermissionsApiService {
|
|
|
857
857
|
getMyPermissions(dto = {}) {
|
|
858
858
|
return this.http.post(`${this.baseUrl}/my-permissions`, dto);
|
|
859
859
|
}
|
|
860
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
861
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
860
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: MyPermissionsApiService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
861
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: MyPermissionsApiService, providedIn: 'root' });
|
|
862
862
|
}
|
|
863
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
863
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: MyPermissionsApiService, decorators: [{
|
|
864
864
|
type: Injectable,
|
|
865
865
|
args: [{
|
|
866
866
|
providedIn: 'root',
|
|
@@ -870,9 +870,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImpor
|
|
|
870
870
|
class PermissionStateService {
|
|
871
871
|
permissionApi = inject(MyPermissionsApiService);
|
|
872
872
|
permissionValidator = inject(PermissionValidatorService);
|
|
873
|
-
_permissions = signal(null,
|
|
873
|
+
_permissions = signal(null, /* @ts-ignore */
|
|
874
|
+
...(ngDevMode ? [{ debugName: "_permissions" }] : /* istanbul ignore next */ []));
|
|
874
875
|
permissions = this._permissions.asReadonly();
|
|
875
|
-
_isLoading = signal(false,
|
|
876
|
+
_isLoading = signal(false, /* @ts-ignore */
|
|
877
|
+
...(ngDevMode ? [{ debugName: "_isLoading" }] : /* istanbul ignore next */ []));
|
|
876
878
|
isLoading = this._isLoading.asReadonly();
|
|
877
879
|
loadPermissions(dto) {
|
|
878
880
|
this._isLoading.set(true);
|
|
@@ -891,10 +893,10 @@ class PermissionStateService {
|
|
|
891
893
|
isLoaded() {
|
|
892
894
|
return this._permissions() !== null && this.permissionValidator.isPermissionsLoaded();
|
|
893
895
|
}
|
|
894
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
895
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
896
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: PermissionStateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
897
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: PermissionStateService, providedIn: 'root' });
|
|
896
898
|
}
|
|
897
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
899
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: PermissionStateService, decorators: [{
|
|
898
900
|
type: Injectable,
|
|
899
901
|
args: [{ providedIn: 'root' }]
|
|
900
902
|
}] });
|
|
@@ -928,11 +930,14 @@ function createActionNode(actionId = '') {
|
|
|
928
930
|
}
|
|
929
931
|
/** Visual builder for AND/OR permission logic trees */
|
|
930
932
|
class LogicBuilderComponent {
|
|
931
|
-
logic = input(null,
|
|
932
|
-
|
|
933
|
+
logic = input(null, /* @ts-ignore */
|
|
934
|
+
...(ngDevMode ? [{ debugName: "logic" }] : /* istanbul ignore next */ []));
|
|
935
|
+
actions = input([], /* @ts-ignore */
|
|
936
|
+
...(ngDevMode ? [{ debugName: "actions" }] : /* istanbul ignore next */ []));
|
|
933
937
|
logicChange = output();
|
|
934
938
|
/** Internal builder tree state (private writable + public readonly pattern) */
|
|
935
|
-
_builderTree = signal(null,
|
|
939
|
+
_builderTree = signal(null, /* @ts-ignore */
|
|
940
|
+
...(ngDevMode ? [{ debugName: "_builderTree" }] : /* istanbul ignore next */ []));
|
|
936
941
|
builderLogic = this._builderTree.asReadonly();
|
|
937
942
|
constructor() {
|
|
938
943
|
effect(() => {
|
|
@@ -943,7 +948,7 @@ class LogicBuilderComponent {
|
|
|
943
948
|
else if (!this._builderTree()) {
|
|
944
949
|
this._builderTree.set(toBuilderNode(logic));
|
|
945
950
|
}
|
|
946
|
-
}
|
|
951
|
+
});
|
|
947
952
|
}
|
|
948
953
|
initializeLogic() {
|
|
949
954
|
this.updateTreeAndEmit(createGroupNode());
|
|
@@ -1010,29 +1015,33 @@ class LogicBuilderComponent {
|
|
|
1010
1015
|
.map((child) => this.removeNodeFromTree(child, targetId)),
|
|
1011
1016
|
};
|
|
1012
1017
|
}
|
|
1013
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1014
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
1018
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: LogicBuilderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1019
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: LogicBuilderComponent, isStandalone: true, selector: "lib-logic-builder", inputs: { logic: { classPropertyName: "logic", publicName: "logic", isSignal: true, isRequired: false, transformFunction: null }, actions: { classPropertyName: "actions", publicName: "actions", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { logicChange: "logicChange" }, ngImport: i0, template: `
|
|
1015
1020
|
<div class="logic-builder">
|
|
1016
1021
|
<div class="flex justify-between items-center mb-3">
|
|
1017
1022
|
<h4 class="text-sm font-semibold m-0">
|
|
1018
1023
|
{{ 'iam.logic.title' | translate }}
|
|
1019
1024
|
</h4>
|
|
1020
1025
|
@if (!builderLogic()) {
|
|
1021
|
-
<
|
|
1022
|
-
|
|
1023
|
-
icon="pi pi-plus"
|
|
1026
|
+
<button
|
|
1027
|
+
pButton
|
|
1024
1028
|
size="small"
|
|
1025
|
-
(
|
|
1026
|
-
|
|
1029
|
+
(click)="initializeLogic()"
|
|
1030
|
+
>
|
|
1031
|
+
<span pButtonIcon class="pi pi-plus"></span>
|
|
1032
|
+
<span pButtonLabel>{{ 'iam.logic.add.logic' | translate }}</span>
|
|
1033
|
+
</button>
|
|
1027
1034
|
} @else {
|
|
1028
|
-
<
|
|
1029
|
-
|
|
1030
|
-
icon="pi pi-trash"
|
|
1035
|
+
<button
|
|
1036
|
+
pButton
|
|
1031
1037
|
size="small"
|
|
1032
1038
|
severity="danger"
|
|
1033
1039
|
[outlined]="true"
|
|
1034
|
-
(
|
|
1035
|
-
|
|
1040
|
+
(click)="clearLogic()"
|
|
1041
|
+
>
|
|
1042
|
+
<span pButtonIcon class="pi pi-trash"></span>
|
|
1043
|
+
<span pButtonLabel>{{ 'iam.logic.clear.logic' | translate }}</span>
|
|
1044
|
+
</button>
|
|
1036
1045
|
}
|
|
1037
1046
|
</div>
|
|
1038
1047
|
|
|
@@ -1059,19 +1068,24 @@ class LogicBuilderComponent {
|
|
|
1059
1068
|
<ng-template #nodeTemplate let-node let-depth="depth">
|
|
1060
1069
|
<div
|
|
1061
1070
|
class="p-3 border-b border-surface"
|
|
1062
|
-
[
|
|
1071
|
+
[class.bg-surface-0]="depth % 2 === 0"
|
|
1072
|
+
[class.bg-surface-50]="depth % 2 !== 0"
|
|
1063
1073
|
>
|
|
1064
1074
|
<div class="flex items-center gap-3 mb-2">
|
|
1065
|
-
<span
|
|
1066
|
-
node
|
|
1067
|
-
|
|
1075
|
+
<span
|
|
1076
|
+
class="node-type"
|
|
1077
|
+
[class.group]="node.type === 'group'"
|
|
1078
|
+
[class.action]="node.type === 'action'"
|
|
1079
|
+
>{{ node.type.toUpperCase() }}</span
|
|
1080
|
+
>
|
|
1068
1081
|
|
|
1069
1082
|
<div class="flex-1 flex items-center gap-2">
|
|
1070
1083
|
@if (node.type === 'group') {
|
|
1071
1084
|
<!-- Group: show operator toggle -->
|
|
1072
1085
|
<span
|
|
1073
1086
|
class="operator-badge"
|
|
1074
|
-
[
|
|
1087
|
+
[class.and]="node.operator === 'AND'"
|
|
1088
|
+
[class.or]="node.operator !== 'AND'"
|
|
1075
1089
|
(click)="toggleOperator(node.id)"
|
|
1076
1090
|
[title]="'iam.logic.click.to.toggle' | translate"
|
|
1077
1091
|
>
|
|
@@ -1106,14 +1120,16 @@ class LogicBuilderComponent {
|
|
|
1106
1120
|
</div>
|
|
1107
1121
|
|
|
1108
1122
|
<div class="flex gap-1">
|
|
1109
|
-
<
|
|
1110
|
-
|
|
1123
|
+
<button
|
|
1124
|
+
pButton
|
|
1111
1125
|
[text]="true"
|
|
1112
1126
|
severity="danger"
|
|
1113
1127
|
size="small"
|
|
1114
|
-
(
|
|
1128
|
+
(click)="removeNode(node.id)"
|
|
1115
1129
|
[pTooltip]="'shared.remove' | translate"
|
|
1116
|
-
|
|
1130
|
+
>
|
|
1131
|
+
<span pButtonIcon class="pi pi-trash"></span>
|
|
1132
|
+
</button>
|
|
1117
1133
|
</div>
|
|
1118
1134
|
</div>
|
|
1119
1135
|
|
|
@@ -1142,29 +1158,33 @@ class LogicBuilderComponent {
|
|
|
1142
1158
|
{{ 'iam.logic.add.condition' | translate }}
|
|
1143
1159
|
</div>
|
|
1144
1160
|
<div class="flex gap-2 flex-wrap">
|
|
1145
|
-
<
|
|
1146
|
-
|
|
1147
|
-
icon="pi pi-sitemap"
|
|
1161
|
+
<button
|
|
1162
|
+
pButton
|
|
1148
1163
|
size="small"
|
|
1149
1164
|
[outlined]="true"
|
|
1150
|
-
(
|
|
1151
|
-
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
|
|
1165
|
+
(click)="addChildNode(node.id, 'group')"
|
|
1166
|
+
>
|
|
1167
|
+
<span pButtonIcon class="pi pi-sitemap"></span>
|
|
1168
|
+
<span pButtonLabel>{{ 'iam.logic.group' | translate }}</span>
|
|
1169
|
+
</button>
|
|
1170
|
+
<button
|
|
1171
|
+
pButton
|
|
1155
1172
|
size="small"
|
|
1156
1173
|
severity="success"
|
|
1157
1174
|
[outlined]="true"
|
|
1158
|
-
(
|
|
1159
|
-
|
|
1175
|
+
(click)="addChildNode(node.id, 'action')"
|
|
1176
|
+
>
|
|
1177
|
+
<span pButtonIcon class="pi pi-bolt"></span>
|
|
1178
|
+
<span pButtonLabel>{{ 'iam.logic.action' | translate }}</span>
|
|
1179
|
+
</button>
|
|
1160
1180
|
</div>
|
|
1161
1181
|
</div>
|
|
1162
1182
|
}
|
|
1163
1183
|
</div>
|
|
1164
1184
|
</ng-template>
|
|
1165
|
-
`, isInline: true, styles: [":host{display:block}.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)}:host-context(.p-dark) .node-type.group{background-color:#3b82f633;color:var(--p-blue-400, #60a5fa)}:host-context(.p-dark) .node-type.action{background-color:#22c55e33;color:var(--p-green-400, #4ade80)}.operator-badge{display:inline-flex;align-items:center;padding:.125rem .5rem;border-radius:9999px;font-weight:600;font-size:.75rem;cursor:pointer;transition:opacity .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)}:host-context(.p-dark) .operator-badge.and{background-color:#eab30833;color:var(--p-yellow-400, #facc15)}:host-context(.p-dark) .operator-badge.or{background-color:#6366f133;color:var(--p-indigo-400, #818cf8)}.operator-badge:hover{opacity:.8}.action-select{background-color:var(--p-surface-0, #ffffff);color:var(--p-text-color, #1f2937)}:host-context(.p-dark) .action-select{background-color:var(--p-surface-900, #1f2937);color:var(--p-text-color, #f9fafb)}.action-select:focus{outline:none;border-color:var(--p-primary-color, #3b82f6)}\n"], dependencies: [{ kind: "ngmodule", type: AngularModule }, { kind: "directive", type: i1.
|
|
1185
|
+
`, isInline: true, styles: [":host{display:block}.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)}:host-context(.p-dark) .node-type.group{background-color:#3b82f633;color:var(--p-blue-400, #60a5fa)}:host-context(.p-dark) .node-type.action{background-color:#22c55e33;color:var(--p-green-400, #4ade80)}.operator-badge{display:inline-flex;align-items:center;padding:.125rem .5rem;border-radius:9999px;font-weight:600;font-size:.75rem;cursor:pointer;transition:opacity .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)}:host-context(.p-dark) .operator-badge.and{background-color:#eab30833;color:var(--p-yellow-400, #facc15)}:host-context(.p-dark) .operator-badge.or{background-color:#6366f133;color:var(--p-indigo-400, #818cf8)}.operator-badge:hover{opacity:.8}.action-select{background-color:var(--p-surface-0, #ffffff);color:var(--p-text-color, #1f2937)}:host-context(.p-dark) .action-select{background-color:var(--p-surface-900, #1f2937);color:var(--p-text-color, #f9fafb)}.action-select:focus{outline:none;border-color:var(--p-primary-color, #3b82f6)}\n"], dependencies: [{ kind: "ngmodule", type: AngularModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { 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]):not([ngNoCva])[formControlName],select:not([multiple]):not([ngNoCva])[formControl],select:not([multiple]):not([ngNoCva])[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: PrimeModule }, { kind: "directive", type: i2.ButtonDirective, selector: "[pButton]", inputs: ["pButton", "pButtonPT", "pButtonUnstyled", "hostName", "text", "plain", "raised", "size", "outlined", "link", "rounded", "fluid", "variant", "iconOnly", "loading", "severity"] }, { kind: "directive", type: i2.ButtonLabel, selector: "[pButtonLabel]", inputs: ["pButtonLabelPT", "pButtonLabelUnstyled"] }, { kind: "directive", type: i2.ButtonIcon, selector: "[pButtonIcon]", inputs: ["pButtonIconPT", "pButtonUnstyled"] }, { kind: "directive", type: i6.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "showOnEllipsis", "pTooltip", "tooltipDisabled", "tooltipOptions", "appendTo", "pTooltipPT", "pTooltipUnstyled"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
|
|
1166
1186
|
}
|
|
1167
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1187
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: LogicBuilderComponent, decorators: [{
|
|
1168
1188
|
type: Component,
|
|
1169
1189
|
args: [{ selector: 'lib-logic-builder', imports: [AngularModule, PrimeModule, TranslatePipe], template: `
|
|
1170
1190
|
<div class="logic-builder">
|
|
@@ -1173,21 +1193,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImpor
|
|
|
1173
1193
|
{{ 'iam.logic.title' | translate }}
|
|
1174
1194
|
</h4>
|
|
1175
1195
|
@if (!builderLogic()) {
|
|
1176
|
-
<
|
|
1177
|
-
|
|
1178
|
-
icon="pi pi-plus"
|
|
1196
|
+
<button
|
|
1197
|
+
pButton
|
|
1179
1198
|
size="small"
|
|
1180
|
-
(
|
|
1181
|
-
|
|
1199
|
+
(click)="initializeLogic()"
|
|
1200
|
+
>
|
|
1201
|
+
<span pButtonIcon class="pi pi-plus"></span>
|
|
1202
|
+
<span pButtonLabel>{{ 'iam.logic.add.logic' | translate }}</span>
|
|
1203
|
+
</button>
|
|
1182
1204
|
} @else {
|
|
1183
|
-
<
|
|
1184
|
-
|
|
1185
|
-
icon="pi pi-trash"
|
|
1205
|
+
<button
|
|
1206
|
+
pButton
|
|
1186
1207
|
size="small"
|
|
1187
1208
|
severity="danger"
|
|
1188
1209
|
[outlined]="true"
|
|
1189
|
-
(
|
|
1190
|
-
|
|
1210
|
+
(click)="clearLogic()"
|
|
1211
|
+
>
|
|
1212
|
+
<span pButtonIcon class="pi pi-trash"></span>
|
|
1213
|
+
<span pButtonLabel>{{ 'iam.logic.clear.logic' | translate }}</span>
|
|
1214
|
+
</button>
|
|
1191
1215
|
}
|
|
1192
1216
|
</div>
|
|
1193
1217
|
|
|
@@ -1214,19 +1238,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImpor
|
|
|
1214
1238
|
<ng-template #nodeTemplate let-node let-depth="depth">
|
|
1215
1239
|
<div
|
|
1216
1240
|
class="p-3 border-b border-surface"
|
|
1217
|
-
[
|
|
1241
|
+
[class.bg-surface-0]="depth % 2 === 0"
|
|
1242
|
+
[class.bg-surface-50]="depth % 2 !== 0"
|
|
1218
1243
|
>
|
|
1219
1244
|
<div class="flex items-center gap-3 mb-2">
|
|
1220
|
-
<span
|
|
1221
|
-
node
|
|
1222
|
-
|
|
1245
|
+
<span
|
|
1246
|
+
class="node-type"
|
|
1247
|
+
[class.group]="node.type === 'group'"
|
|
1248
|
+
[class.action]="node.type === 'action'"
|
|
1249
|
+
>{{ node.type.toUpperCase() }}</span
|
|
1250
|
+
>
|
|
1223
1251
|
|
|
1224
1252
|
<div class="flex-1 flex items-center gap-2">
|
|
1225
1253
|
@if (node.type === 'group') {
|
|
1226
1254
|
<!-- Group: show operator toggle -->
|
|
1227
1255
|
<span
|
|
1228
1256
|
class="operator-badge"
|
|
1229
|
-
[
|
|
1257
|
+
[class.and]="node.operator === 'AND'"
|
|
1258
|
+
[class.or]="node.operator !== 'AND'"
|
|
1230
1259
|
(click)="toggleOperator(node.id)"
|
|
1231
1260
|
[title]="'iam.logic.click.to.toggle' | translate"
|
|
1232
1261
|
>
|
|
@@ -1261,14 +1290,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImpor
|
|
|
1261
1290
|
</div>
|
|
1262
1291
|
|
|
1263
1292
|
<div class="flex gap-1">
|
|
1264
|
-
<
|
|
1265
|
-
|
|
1293
|
+
<button
|
|
1294
|
+
pButton
|
|
1266
1295
|
[text]="true"
|
|
1267
1296
|
severity="danger"
|
|
1268
1297
|
size="small"
|
|
1269
|
-
(
|
|
1298
|
+
(click)="removeNode(node.id)"
|
|
1270
1299
|
[pTooltip]="'shared.remove' | translate"
|
|
1271
|
-
|
|
1300
|
+
>
|
|
1301
|
+
<span pButtonIcon class="pi pi-trash"></span>
|
|
1302
|
+
</button>
|
|
1272
1303
|
</div>
|
|
1273
1304
|
</div>
|
|
1274
1305
|
|
|
@@ -1297,21 +1328,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImpor
|
|
|
1297
1328
|
{{ 'iam.logic.add.condition' | translate }}
|
|
1298
1329
|
</div>
|
|
1299
1330
|
<div class="flex gap-2 flex-wrap">
|
|
1300
|
-
<
|
|
1301
|
-
|
|
1302
|
-
icon="pi pi-sitemap"
|
|
1331
|
+
<button
|
|
1332
|
+
pButton
|
|
1303
1333
|
size="small"
|
|
1304
1334
|
[outlined]="true"
|
|
1305
|
-
(
|
|
1306
|
-
|
|
1307
|
-
|
|
1308
|
-
|
|
1309
|
-
|
|
1335
|
+
(click)="addChildNode(node.id, 'group')"
|
|
1336
|
+
>
|
|
1337
|
+
<span pButtonIcon class="pi pi-sitemap"></span>
|
|
1338
|
+
<span pButtonLabel>{{ 'iam.logic.group' | translate }}</span>
|
|
1339
|
+
</button>
|
|
1340
|
+
<button
|
|
1341
|
+
pButton
|
|
1310
1342
|
size="small"
|
|
1311
1343
|
severity="success"
|
|
1312
1344
|
[outlined]="true"
|
|
1313
|
-
(
|
|
1314
|
-
|
|
1345
|
+
(click)="addChildNode(node.id, 'action')"
|
|
1346
|
+
>
|
|
1347
|
+
<span pButtonIcon class="pi pi-bolt"></span>
|
|
1348
|
+
<span pButtonLabel>{{ 'iam.logic.action' | translate }}</span>
|
|
1349
|
+
</button>
|
|
1315
1350
|
</div>
|
|
1316
1351
|
</div>
|
|
1317
1352
|
}
|
|
@@ -1384,24 +1419,32 @@ class BaseActionSelectorComponent {
|
|
|
1384
1419
|
translateAdapter = inject(TranslateService, {
|
|
1385
1420
|
optional: true,
|
|
1386
1421
|
});
|
|
1387
|
-
loading = signal(false,
|
|
1388
|
-
|
|
1389
|
-
|
|
1422
|
+
loading = signal(false, /* @ts-ignore */
|
|
1423
|
+
...(ngDevMode ? [{ debugName: "loading" }] : /* istanbul ignore next */ []));
|
|
1424
|
+
saving = signal(false, /* @ts-ignore */
|
|
1425
|
+
...(ngDevMode ? [{ debugName: "saving" }] : /* istanbul ignore next */ []));
|
|
1426
|
+
_actions = signal([], /* @ts-ignore */
|
|
1427
|
+
...(ngDevMode ? [{ debugName: "_actions" }] : /* istanbul ignore next */ []));
|
|
1390
1428
|
actions = this._actions.asReadonly();
|
|
1391
|
-
_actionsTree = signal([],
|
|
1429
|
+
_actionsTree = signal([], /* @ts-ignore */
|
|
1430
|
+
...(ngDevMode ? [{ debugName: "_actionsTree" }] : /* istanbul ignore next */ []));
|
|
1392
1431
|
actionsTree = this._actionsTree.asReadonly();
|
|
1393
|
-
_selectionMap = signal({},
|
|
1432
|
+
_selectionMap = signal({}, /* @ts-ignore */
|
|
1433
|
+
...(ngDevMode ? [{ debugName: "_selectionMap" }] : /* istanbul ignore next */ []));
|
|
1394
1434
|
selectionMap = this._selectionMap.asReadonly();
|
|
1395
|
-
_initialSelection = signal({},
|
|
1435
|
+
_initialSelection = signal({}, /* @ts-ignore */
|
|
1436
|
+
...(ngDevMode ? [{ debugName: "_initialSelection" }] : /* istanbul ignore next */ []));
|
|
1396
1437
|
initialSelection = this._initialSelection.asReadonly();
|
|
1397
|
-
treeNodes = computed(() => convertActionToTreeNode(this.actionsTree()),
|
|
1438
|
+
treeNodes = computed(() => convertActionToTreeNode(this.actionsTree()), /* @ts-ignore */
|
|
1439
|
+
...(ngDevMode ? [{ debugName: "treeNodes" }] : /* istanbul ignore next */ []));
|
|
1398
1440
|
allSelected = computed(() => {
|
|
1399
1441
|
const selMap = this.selectionMap();
|
|
1400
1442
|
const total = this.actions().length;
|
|
1401
1443
|
if (total === 0)
|
|
1402
1444
|
return false;
|
|
1403
1445
|
return Object.values(selMap).filter((v) => v).length === total;
|
|
1404
|
-
},
|
|
1446
|
+
}, /* @ts-ignore */
|
|
1447
|
+
...(ngDevMode ? [{ debugName: "allSelected" }] : /* istanbul ignore next */ []));
|
|
1405
1448
|
hasChanges = computed(() => {
|
|
1406
1449
|
const current = this.selectionMap();
|
|
1407
1450
|
const initial = this.initialSelection();
|
|
@@ -1409,7 +1452,8 @@ class BaseActionSelectorComponent {
|
|
|
1409
1452
|
if (currentKeys.length !== Object.keys(initial).length)
|
|
1410
1453
|
return true;
|
|
1411
1454
|
return currentKeys.some((key) => current[key] !== initial[key]);
|
|
1412
|
-
},
|
|
1455
|
+
}, /* @ts-ignore */
|
|
1456
|
+
...(ngDevMode ? [{ debugName: "hasChanges" }] : /* istanbul ignore next */ []));
|
|
1413
1457
|
actionsWithUnmetPrerequisites = computed(() => {
|
|
1414
1458
|
const selMap = this.selectionMap();
|
|
1415
1459
|
const allActions = this.actions();
|
|
@@ -1421,19 +1465,24 @@ class BaseActionSelectorComponent {
|
|
|
1421
1465
|
}
|
|
1422
1466
|
}
|
|
1423
1467
|
return unmetSet;
|
|
1424
|
-
},
|
|
1425
|
-
|
|
1468
|
+
}, /* @ts-ignore */
|
|
1469
|
+
...(ngDevMode ? [{ debugName: "actionsWithUnmetPrerequisites" }] : /* istanbul ignore next */ []));
|
|
1470
|
+
invalidActionsCount = computed(() => this.actionsWithUnmetPrerequisites().size, /* @ts-ignore */
|
|
1471
|
+
...(ngDevMode ? [{ debugName: "invalidActionsCount" }] : /* istanbul ignore next */ []));
|
|
1426
1472
|
pendingAdd = computed(() => {
|
|
1427
1473
|
const current = this.selectionMap();
|
|
1428
1474
|
const initial = this.initialSelection();
|
|
1429
1475
|
return this.actions().filter((a) => current[a.id] && !initial[a.id]);
|
|
1430
|
-
},
|
|
1476
|
+
}, /* @ts-ignore */
|
|
1477
|
+
...(ngDevMode ? [{ debugName: "pendingAdd" }] : /* istanbul ignore next */ []));
|
|
1431
1478
|
pendingRemove = computed(() => {
|
|
1432
1479
|
const current = this.selectionMap();
|
|
1433
1480
|
const initial = this.initialSelection();
|
|
1434
1481
|
return this.actions().filter((a) => !current[a.id] && initial[a.id]);
|
|
1435
|
-
},
|
|
1436
|
-
|
|
1482
|
+
}, /* @ts-ignore */
|
|
1483
|
+
...(ngDevMode ? [{ debugName: "pendingRemove" }] : /* istanbul ignore next */ []));
|
|
1484
|
+
canSave = computed(() => this.hasChanges() && !this.saving() && this.invalidActionsCount() === 0, /* @ts-ignore */
|
|
1485
|
+
...(ngDevMode ? [{ debugName: "canSave" }] : /* istanbul ignore next */ []));
|
|
1437
1486
|
translate(key, vars) {
|
|
1438
1487
|
return this.translateAdapter?.translate(key, vars) ?? key;
|
|
1439
1488
|
}
|
|
@@ -1508,8 +1557,10 @@ class RoleActionSelectorComponent extends BaseActionSelectorComponent {
|
|
|
1508
1557
|
actionApi = inject(ActionApiService);
|
|
1509
1558
|
permissionApi = inject(PermissionApiService);
|
|
1510
1559
|
messageService = inject(MessageService);
|
|
1511
|
-
selectedRoleId = signal(undefined,
|
|
1512
|
-
|
|
1560
|
+
selectedRoleId = signal(undefined, /* @ts-ignore */
|
|
1561
|
+
...(ngDevMode ? [{ debugName: "selectedRoleId" }] : /* istanbul ignore next */ []));
|
|
1562
|
+
roles = signal([], /* @ts-ignore */
|
|
1563
|
+
...(ngDevMode ? [{ debugName: "roles" }] : /* istanbul ignore next */ []));
|
|
1513
1564
|
loadDataAbortController = null;
|
|
1514
1565
|
constructor() {
|
|
1515
1566
|
super();
|
|
@@ -1605,8 +1656,8 @@ class RoleActionSelectorComponent extends BaseActionSelectorComponent {
|
|
|
1605
1656
|
this.saving.set(false);
|
|
1606
1657
|
}
|
|
1607
1658
|
}
|
|
1608
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1609
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
1659
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: RoleActionSelectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1660
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: RoleActionSelectorComponent, isStandalone: true, selector: "flusys-role-action-selector", usesInheritance: true, ngImport: i0, template: `
|
|
1610
1661
|
<div class="role-action-selector">
|
|
1611
1662
|
<div class="mb-4">
|
|
1612
1663
|
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4">
|
|
@@ -1657,31 +1708,40 @@ class RoleActionSelectorComponent extends BaseActionSelectorComponent {
|
|
|
1657
1708
|
</p>
|
|
1658
1709
|
</div>
|
|
1659
1710
|
<div class="flex flex-wrap gap-2">
|
|
1660
|
-
<
|
|
1661
|
-
|
|
1662
|
-
icon="pi pi-check"
|
|
1711
|
+
<button
|
|
1712
|
+
pButton
|
|
1663
1713
|
[outlined]="true"
|
|
1664
1714
|
size="small"
|
|
1665
1715
|
severity="secondary"
|
|
1666
|
-
(
|
|
1667
|
-
|
|
1668
|
-
|
|
1669
|
-
|
|
1670
|
-
|
|
1716
|
+
(click)="selectAll()"
|
|
1717
|
+
>
|
|
1718
|
+
<span pButtonIcon class="pi pi-check"></span>
|
|
1719
|
+
<span pButtonLabel>{{ 'shared.select.all' | translate }}</span>
|
|
1720
|
+
</button>
|
|
1721
|
+
<button
|
|
1722
|
+
pButton
|
|
1671
1723
|
[outlined]="true"
|
|
1672
1724
|
size="small"
|
|
1673
1725
|
severity="secondary"
|
|
1674
|
-
(
|
|
1675
|
-
|
|
1676
|
-
|
|
1726
|
+
(click)="deselectAll()"
|
|
1727
|
+
>
|
|
1728
|
+
<span pButtonIcon class="pi pi-times"></span>
|
|
1729
|
+
<span pButtonLabel>{{ 'shared.deselect.all' | translate }}</span>
|
|
1730
|
+
</button>
|
|
1731
|
+
<button
|
|
1732
|
+
pButton
|
|
1677
1733
|
*hasPermission="ROLE_ACTION_PERMISSIONS.ASSIGN"
|
|
1678
|
-
[
|
|
1679
|
-
icon="pi pi-save"
|
|
1680
|
-
[disabled]="!canSave()"
|
|
1681
|
-
[loading]="saving()"
|
|
1734
|
+
[disabled]="!canSave() || saving()"
|
|
1682
1735
|
size="small"
|
|
1683
|
-
(
|
|
1684
|
-
|
|
1736
|
+
(click)="saveChanges()"
|
|
1737
|
+
>
|
|
1738
|
+
@if (saving()) {
|
|
1739
|
+
<span pButtonIcon class="pi pi-spinner pi-spin"></span>
|
|
1740
|
+
} @else {
|
|
1741
|
+
<span pButtonIcon class="pi pi-save"></span>
|
|
1742
|
+
}
|
|
1743
|
+
<span pButtonLabel>{{ 'shared.save.changes' | translate }}</span>
|
|
1744
|
+
</button>
|
|
1685
1745
|
</div>
|
|
1686
1746
|
</div>
|
|
1687
1747
|
|
|
@@ -1707,7 +1767,7 @@ class RoleActionSelectorComponent extends BaseActionSelectorComponent {
|
|
|
1707
1767
|
}
|
|
1708
1768
|
|
|
1709
1769
|
<div class="overflow-x-auto -mx-4 sm:mx-0">
|
|
1710
|
-
<p-
|
|
1770
|
+
<p-treetable
|
|
1711
1771
|
[value]="treeNodes()"
|
|
1712
1772
|
dataKey="id"
|
|
1713
1773
|
class="p-treetable-sm"
|
|
@@ -1748,7 +1808,7 @@ class RoleActionSelectorComponent extends BaseActionSelectorComponent {
|
|
|
1748
1808
|
/>
|
|
1749
1809
|
</td>
|
|
1750
1810
|
<td>
|
|
1751
|
-
<p-
|
|
1811
|
+
<p-treetabletoggler [rowNode]="rowNode" />
|
|
1752
1812
|
<span class="inline-flex items-center gap-2">
|
|
1753
1813
|
{{ rowData.name }}
|
|
1754
1814
|
@if (hasUnmet) {
|
|
@@ -1797,7 +1857,7 @@ class RoleActionSelectorComponent extends BaseActionSelectorComponent {
|
|
|
1797
1857
|
</td>
|
|
1798
1858
|
</tr>
|
|
1799
1859
|
</ng-template>
|
|
1800
|
-
</p-
|
|
1860
|
+
</p-treetable>
|
|
1801
1861
|
</div>
|
|
1802
1862
|
</div>
|
|
1803
1863
|
|
|
@@ -1861,9 +1921,9 @@ class RoleActionSelectorComponent extends BaseActionSelectorComponent {
|
|
|
1861
1921
|
}
|
|
1862
1922
|
}
|
|
1863
1923
|
</div>
|
|
1864
|
-
`, isInline: true, styles: [":host{display:block}.validation-warning{background-color:var(--p-yellow-50, #fefce8);border-left:4px solid var(--p-yellow-500, #eab308);color:var(--p-yellow-700, #a16207)}:host-context(.p-dark) .validation-warning{background-color:#eab3081a;color:var(--p-yellow-400, #facc15)}:host ::ng-deep tr.highlight-warning{background-color:var(--p-red-50, rgba(239, 68, 68, .1))!important}:host-context(.p-dark) ::ng-deep tr.highlight-warning{background-color:#ef444426!important}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { 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: PrimeModule }, { kind: "
|
|
1924
|
+
`, isInline: true, styles: [":host{display:block}.validation-warning{background-color:var(--p-yellow-50, #fefce8);border-left:4px solid var(--p-yellow-500, #eab308);color:var(--p-yellow-700, #a16207)}:host-context(.p-dark) .validation-warning{background-color:#eab3081a;color:var(--p-yellow-400, #facc15)}:host ::ng-deep tr.highlight-warning{background-color:var(--p-red-50, rgba(239, 68, 68, .1))!important}:host-context(.p-dark) ::ng-deep tr.highlight-warning{background-color:#ef444426!important}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { 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: PrimeModule }, { kind: "directive", type: i2.ButtonDirective, selector: "[pButton]", inputs: ["pButton", "pButtonPT", "pButtonUnstyled", "hostName", "text", "plain", "raised", "size", "outlined", "link", "rounded", "fluid", "variant", "iconOnly", "loading", "severity"] }, { kind: "directive", type: i2.ButtonLabel, selector: "[pButtonLabel]", inputs: ["pButtonLabelPT", "pButtonLabelUnstyled"] }, { kind: "directive", type: i2.ButtonIcon, selector: "[pButtonIcon]", inputs: ["pButtonIconPT", "pButtonUnstyled"] }, { kind: "component", type: i3.Checkbox, selector: "p-checkbox, p-check-box", inputs: ["value", "binary", "ariaLabelledBy", "ariaLabel", "tabindex", "inputId", "inputStyle", "inputClass", "indeterminate", "formControl", "checkboxIcon", "readonly", "autofocus", "trueValue", "falseValue", "variant", "size"], outputs: ["onChange", "onFocus", "onBlur"] }, { kind: "component", type: i4.Select, selector: "p-select", inputs: ["id", "scrollHeight", "filter", "panelStyle", "panelStyleClass", "readonly", "editable", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "multiple", "autoOptionFocus", "autofocusFilter", "filterValue", "options", "appendTo", "motionOptions"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "component", type: i5.Tag, selector: "p-tag", inputs: ["severity", "value", "icon", "rounded"] }, { kind: "directive", type: i6.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "showOnEllipsis", "pTooltip", "tooltipDisabled", "tooltipOptions", "appendTo", "pTooltipPT", "pTooltipUnstyled"] }, { kind: "component", type: i7.TreeTable, selector: "p-treetable, p-tree-table", inputs: ["columns", "tableStyle", "tableStyleClass", "autoLayout", "lazy", "lazyLoadOnInit", "paginator", "rows", "first", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorStyleClass", "paginatorDropdownAppendTo", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "customSort", "selectionMode", "contextMenuSelection", "dataKey", "metaKeySelection", "compareSelectionBy", "rowHover", "loading", "loadingIcon", "showLoader", "scrollable", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "frozenColumns", "resizableColumns", "columnResizeMode", "reorderableColumns", "contextMenu", "rowTrackBy", "filters", "globalFilterFields", "filterDelay", "filterMode", "filterLocale", "paginatorLocale", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "value", "selectionKeys", "collapsedKeys", "showGridlines"], outputs: ["rowsChange", "selectionChange", "contextMenuSelectionChange", "onFilter", "onNodeExpand", "onNodeCollapse", "onPage", "onSort", "onLazyLoad", "sortFunction", "onColResize", "onColReorder", "onNodeSelect", "onNodeUnselect", "onContextMenuSelect", "onHeaderCheckboxToggle", "onEditInit", "onEditComplete", "onEditCancel", "selectionKeysChange", "collapsedKeysChange"] }, { kind: "component", type: i7.TreeTableToggler, selector: "p-treetabletoggler, p-treetable-toggler", inputs: ["rowNode"] }, { kind: "directive", type: HasPermissionDirective, selector: "[hasPermission]", inputs: ["hasPermission"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
|
|
1865
1925
|
}
|
|
1866
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1926
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: RoleActionSelectorComponent, decorators: [{
|
|
1867
1927
|
type: Component,
|
|
1868
1928
|
args: [{ selector: 'flusys-role-action-selector', imports: [FormsModule, PrimeModule, HasPermissionDirective, TranslatePipe], template: `
|
|
1869
1929
|
<div class="role-action-selector">
|
|
@@ -1916,31 +1976,40 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImpor
|
|
|
1916
1976
|
</p>
|
|
1917
1977
|
</div>
|
|
1918
1978
|
<div class="flex flex-wrap gap-2">
|
|
1919
|
-
<
|
|
1920
|
-
|
|
1921
|
-
icon="pi pi-check"
|
|
1979
|
+
<button
|
|
1980
|
+
pButton
|
|
1922
1981
|
[outlined]="true"
|
|
1923
1982
|
size="small"
|
|
1924
1983
|
severity="secondary"
|
|
1925
|
-
(
|
|
1926
|
-
|
|
1927
|
-
|
|
1928
|
-
|
|
1929
|
-
|
|
1984
|
+
(click)="selectAll()"
|
|
1985
|
+
>
|
|
1986
|
+
<span pButtonIcon class="pi pi-check"></span>
|
|
1987
|
+
<span pButtonLabel>{{ 'shared.select.all' | translate }}</span>
|
|
1988
|
+
</button>
|
|
1989
|
+
<button
|
|
1990
|
+
pButton
|
|
1930
1991
|
[outlined]="true"
|
|
1931
1992
|
size="small"
|
|
1932
1993
|
severity="secondary"
|
|
1933
|
-
(
|
|
1934
|
-
|
|
1935
|
-
|
|
1994
|
+
(click)="deselectAll()"
|
|
1995
|
+
>
|
|
1996
|
+
<span pButtonIcon class="pi pi-times"></span>
|
|
1997
|
+
<span pButtonLabel>{{ 'shared.deselect.all' | translate }}</span>
|
|
1998
|
+
</button>
|
|
1999
|
+
<button
|
|
2000
|
+
pButton
|
|
1936
2001
|
*hasPermission="ROLE_ACTION_PERMISSIONS.ASSIGN"
|
|
1937
|
-
[
|
|
1938
|
-
icon="pi pi-save"
|
|
1939
|
-
[disabled]="!canSave()"
|
|
1940
|
-
[loading]="saving()"
|
|
2002
|
+
[disabled]="!canSave() || saving()"
|
|
1941
2003
|
size="small"
|
|
1942
|
-
(
|
|
1943
|
-
|
|
2004
|
+
(click)="saveChanges()"
|
|
2005
|
+
>
|
|
2006
|
+
@if (saving()) {
|
|
2007
|
+
<span pButtonIcon class="pi pi-spinner pi-spin"></span>
|
|
2008
|
+
} @else {
|
|
2009
|
+
<span pButtonIcon class="pi pi-save"></span>
|
|
2010
|
+
}
|
|
2011
|
+
<span pButtonLabel>{{ 'shared.save.changes' | translate }}</span>
|
|
2012
|
+
</button>
|
|
1944
2013
|
</div>
|
|
1945
2014
|
</div>
|
|
1946
2015
|
|
|
@@ -1966,7 +2035,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImpor
|
|
|
1966
2035
|
}
|
|
1967
2036
|
|
|
1968
2037
|
<div class="overflow-x-auto -mx-4 sm:mx-0">
|
|
1969
|
-
<p-
|
|
2038
|
+
<p-treetable
|
|
1970
2039
|
[value]="treeNodes()"
|
|
1971
2040
|
dataKey="id"
|
|
1972
2041
|
class="p-treetable-sm"
|
|
@@ -2007,7 +2076,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImpor
|
|
|
2007
2076
|
/>
|
|
2008
2077
|
</td>
|
|
2009
2078
|
<td>
|
|
2010
|
-
<p-
|
|
2079
|
+
<p-treetabletoggler [rowNode]="rowNode" />
|
|
2011
2080
|
<span class="inline-flex items-center gap-2">
|
|
2012
2081
|
{{ rowData.name }}
|
|
2013
2082
|
@if (hasUnmet) {
|
|
@@ -2056,7 +2125,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImpor
|
|
|
2056
2125
|
</td>
|
|
2057
2126
|
</tr>
|
|
2058
2127
|
</ng-template>
|
|
2059
|
-
</p-
|
|
2128
|
+
</p-treetable>
|
|
2060
2129
|
</div>
|
|
2061
2130
|
</div>
|
|
2062
2131
|
|
|
@@ -2131,8 +2200,10 @@ class CompanyActionSelectorComponent extends BaseActionSelectorComponent {
|
|
|
2131
2200
|
messageService = inject(MessageService);
|
|
2132
2201
|
confirmationService = inject(ConfirmationService);
|
|
2133
2202
|
destroyRef = inject(DestroyRef);
|
|
2134
|
-
selectedCompanyId = signal(undefined,
|
|
2135
|
-
|
|
2203
|
+
selectedCompanyId = signal(undefined, /* @ts-ignore */
|
|
2204
|
+
...(ngDevMode ? [{ debugName: "selectedCompanyId" }] : /* istanbul ignore next */ []));
|
|
2205
|
+
companies = signal([], /* @ts-ignore */
|
|
2206
|
+
...(ngDevMode ? [{ debugName: "companies" }] : /* istanbul ignore next */ []));
|
|
2136
2207
|
loadDataAbortController = null;
|
|
2137
2208
|
constructor() {
|
|
2138
2209
|
super();
|
|
@@ -2275,8 +2346,8 @@ class CompanyActionSelectorComponent extends BaseActionSelectorComponent {
|
|
|
2275
2346
|
},
|
|
2276
2347
|
});
|
|
2277
2348
|
}
|
|
2278
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2279
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
2349
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: CompanyActionSelectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2350
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: CompanyActionSelectorComponent, isStandalone: true, selector: "flusys-company-action-selector", usesInheritance: true, ngImport: i0, template: `
|
|
2280
2351
|
<div class="company-action-selector">
|
|
2281
2352
|
<div class="mb-4">
|
|
2282
2353
|
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4">
|
|
@@ -2327,31 +2398,40 @@ class CompanyActionSelectorComponent extends BaseActionSelectorComponent {
|
|
|
2327
2398
|
</p>
|
|
2328
2399
|
</div>
|
|
2329
2400
|
<div class="flex flex-wrap gap-2">
|
|
2330
|
-
<
|
|
2331
|
-
|
|
2332
|
-
icon="pi pi-check"
|
|
2401
|
+
<button
|
|
2402
|
+
pButton
|
|
2333
2403
|
[outlined]="true"
|
|
2334
2404
|
size="small"
|
|
2335
2405
|
severity="secondary"
|
|
2336
|
-
(
|
|
2337
|
-
|
|
2338
|
-
|
|
2339
|
-
|
|
2340
|
-
|
|
2406
|
+
(click)="selectAll()"
|
|
2407
|
+
>
|
|
2408
|
+
<span pButtonIcon class="pi pi-check"></span>
|
|
2409
|
+
<span pButtonLabel>{{ 'shared.select.all' | translate }}</span>
|
|
2410
|
+
</button>
|
|
2411
|
+
<button
|
|
2412
|
+
pButton
|
|
2341
2413
|
[outlined]="true"
|
|
2342
2414
|
size="small"
|
|
2343
2415
|
severity="secondary"
|
|
2344
|
-
(
|
|
2345
|
-
|
|
2346
|
-
|
|
2416
|
+
(click)="deselectAll()"
|
|
2417
|
+
>
|
|
2418
|
+
<span pButtonIcon class="pi pi-times"></span>
|
|
2419
|
+
<span pButtonLabel>{{ 'shared.deselect.all' | translate }}</span>
|
|
2420
|
+
</button>
|
|
2421
|
+
<button
|
|
2422
|
+
pButton
|
|
2347
2423
|
*hasPermission="COMPANY_ACTION_PERMISSIONS.ASSIGN"
|
|
2348
|
-
[
|
|
2349
|
-
icon="pi pi-save"
|
|
2350
|
-
[disabled]="!canSave()"
|
|
2351
|
-
[loading]="saving()"
|
|
2424
|
+
[disabled]="!canSave() || saving()"
|
|
2352
2425
|
size="small"
|
|
2353
|
-
(
|
|
2354
|
-
|
|
2426
|
+
(click)="saveChanges()"
|
|
2427
|
+
>
|
|
2428
|
+
@if (saving()) {
|
|
2429
|
+
<span pButtonIcon class="pi pi-spinner pi-spin"></span>
|
|
2430
|
+
} @else {
|
|
2431
|
+
<span pButtonIcon class="pi pi-save"></span>
|
|
2432
|
+
}
|
|
2433
|
+
<span pButtonLabel>{{ 'shared.save.changes' | translate }}</span>
|
|
2434
|
+
</button>
|
|
2355
2435
|
</div>
|
|
2356
2436
|
</div>
|
|
2357
2437
|
|
|
@@ -2377,7 +2457,7 @@ class CompanyActionSelectorComponent extends BaseActionSelectorComponent {
|
|
|
2377
2457
|
}
|
|
2378
2458
|
|
|
2379
2459
|
<div class="overflow-x-auto -mx-4 sm:mx-0">
|
|
2380
|
-
<p-
|
|
2460
|
+
<p-treetable
|
|
2381
2461
|
[value]="treeNodes()"
|
|
2382
2462
|
dataKey="id"
|
|
2383
2463
|
class="p-treetable-sm"
|
|
@@ -2417,7 +2497,7 @@ class CompanyActionSelectorComponent extends BaseActionSelectorComponent {
|
|
|
2417
2497
|
/>
|
|
2418
2498
|
</td>
|
|
2419
2499
|
<td>
|
|
2420
|
-
<p-
|
|
2500
|
+
<p-treetabletoggler [rowNode]="rowNode" />
|
|
2421
2501
|
<span class="inline-flex items-center gap-2">
|
|
2422
2502
|
{{ rowData.name }}
|
|
2423
2503
|
@if (hasUnmet) {
|
|
@@ -2460,7 +2540,7 @@ class CompanyActionSelectorComponent extends BaseActionSelectorComponent {
|
|
|
2460
2540
|
</td>
|
|
2461
2541
|
</tr>
|
|
2462
2542
|
</ng-template>
|
|
2463
|
-
</p-
|
|
2543
|
+
</p-treetable>
|
|
2464
2544
|
</div>
|
|
2465
2545
|
</div>
|
|
2466
2546
|
|
|
@@ -2524,9 +2604,9 @@ class CompanyActionSelectorComponent extends BaseActionSelectorComponent {
|
|
|
2524
2604
|
}
|
|
2525
2605
|
}
|
|
2526
2606
|
</div>
|
|
2527
|
-
`, isInline: true, styles: [":host{display:block}.validation-warning{background-color:var(--p-yellow-50, #fefce8);border-left:4px solid var(--p-yellow-500, #eab308);color:var(--p-yellow-700, #a16207)}:host-context(.p-dark) .validation-warning{background-color:#eab3081a;color:var(--p-yellow-400, #facc15)}:host ::ng-deep tr.highlight-warning{background-color:var(--p-red-50, rgba(239, 68, 68, .1))!important}:host-context(.p-dark) ::ng-deep tr.highlight-warning{background-color:#ef444426!important}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { 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: PrimeModule }, { kind: "
|
|
2607
|
+
`, isInline: true, styles: [":host{display:block}.validation-warning{background-color:var(--p-yellow-50, #fefce8);border-left:4px solid var(--p-yellow-500, #eab308);color:var(--p-yellow-700, #a16207)}:host-context(.p-dark) .validation-warning{background-color:#eab3081a;color:var(--p-yellow-400, #facc15)}:host ::ng-deep tr.highlight-warning{background-color:var(--p-red-50, rgba(239, 68, 68, .1))!important}:host-context(.p-dark) ::ng-deep tr.highlight-warning{background-color:#ef444426!important}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { 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: PrimeModule }, { kind: "directive", type: i2.ButtonDirective, selector: "[pButton]", inputs: ["pButton", "pButtonPT", "pButtonUnstyled", "hostName", "text", "plain", "raised", "size", "outlined", "link", "rounded", "fluid", "variant", "iconOnly", "loading", "severity"] }, { kind: "directive", type: i2.ButtonLabel, selector: "[pButtonLabel]", inputs: ["pButtonLabelPT", "pButtonLabelUnstyled"] }, { kind: "directive", type: i2.ButtonIcon, selector: "[pButtonIcon]", inputs: ["pButtonIconPT", "pButtonUnstyled"] }, { kind: "component", type: i3.Checkbox, selector: "p-checkbox, p-check-box", inputs: ["value", "binary", "ariaLabelledBy", "ariaLabel", "tabindex", "inputId", "inputStyle", "inputClass", "indeterminate", "formControl", "checkboxIcon", "readonly", "autofocus", "trueValue", "falseValue", "variant", "size"], outputs: ["onChange", "onFocus", "onBlur"] }, { kind: "component", type: i4.Select, selector: "p-select", inputs: ["id", "scrollHeight", "filter", "panelStyle", "panelStyleClass", "readonly", "editable", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "multiple", "autoOptionFocus", "autofocusFilter", "filterValue", "options", "appendTo", "motionOptions"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "component", type: i5.Tag, selector: "p-tag", inputs: ["severity", "value", "icon", "rounded"] }, { kind: "directive", type: i6.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "showOnEllipsis", "pTooltip", "tooltipDisabled", "tooltipOptions", "appendTo", "pTooltipPT", "pTooltipUnstyled"] }, { kind: "component", type: i7.TreeTable, selector: "p-treetable, p-tree-table", inputs: ["columns", "tableStyle", "tableStyleClass", "autoLayout", "lazy", "lazyLoadOnInit", "paginator", "rows", "first", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorStyleClass", "paginatorDropdownAppendTo", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "customSort", "selectionMode", "contextMenuSelection", "dataKey", "metaKeySelection", "compareSelectionBy", "rowHover", "loading", "loadingIcon", "showLoader", "scrollable", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "frozenColumns", "resizableColumns", "columnResizeMode", "reorderableColumns", "contextMenu", "rowTrackBy", "filters", "globalFilterFields", "filterDelay", "filterMode", "filterLocale", "paginatorLocale", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "value", "selectionKeys", "collapsedKeys", "showGridlines"], outputs: ["rowsChange", "selectionChange", "contextMenuSelectionChange", "onFilter", "onNodeExpand", "onNodeCollapse", "onPage", "onSort", "onLazyLoad", "sortFunction", "onColResize", "onColReorder", "onNodeSelect", "onNodeUnselect", "onContextMenuSelect", "onHeaderCheckboxToggle", "onEditInit", "onEditComplete", "onEditCancel", "selectionKeysChange", "collapsedKeysChange"] }, { kind: "component", type: i7.TreeTableToggler, selector: "p-treetabletoggler, p-treetable-toggler", inputs: ["rowNode"] }, { kind: "directive", type: HasPermissionDirective, selector: "[hasPermission]", inputs: ["hasPermission"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
|
|
2528
2608
|
}
|
|
2529
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2609
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: CompanyActionSelectorComponent, decorators: [{
|
|
2530
2610
|
type: Component,
|
|
2531
2611
|
args: [{ selector: 'flusys-company-action-selector', imports: [FormsModule, PrimeModule, HasPermissionDirective, TranslatePipe], template: `
|
|
2532
2612
|
<div class="company-action-selector">
|
|
@@ -2579,31 +2659,40 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImpor
|
|
|
2579
2659
|
</p>
|
|
2580
2660
|
</div>
|
|
2581
2661
|
<div class="flex flex-wrap gap-2">
|
|
2582
|
-
<
|
|
2583
|
-
|
|
2584
|
-
icon="pi pi-check"
|
|
2662
|
+
<button
|
|
2663
|
+
pButton
|
|
2585
2664
|
[outlined]="true"
|
|
2586
2665
|
size="small"
|
|
2587
2666
|
severity="secondary"
|
|
2588
|
-
(
|
|
2589
|
-
|
|
2590
|
-
|
|
2591
|
-
|
|
2592
|
-
|
|
2667
|
+
(click)="selectAll()"
|
|
2668
|
+
>
|
|
2669
|
+
<span pButtonIcon class="pi pi-check"></span>
|
|
2670
|
+
<span pButtonLabel>{{ 'shared.select.all' | translate }}</span>
|
|
2671
|
+
</button>
|
|
2672
|
+
<button
|
|
2673
|
+
pButton
|
|
2593
2674
|
[outlined]="true"
|
|
2594
2675
|
size="small"
|
|
2595
2676
|
severity="secondary"
|
|
2596
|
-
(
|
|
2597
|
-
|
|
2598
|
-
|
|
2677
|
+
(click)="deselectAll()"
|
|
2678
|
+
>
|
|
2679
|
+
<span pButtonIcon class="pi pi-times"></span>
|
|
2680
|
+
<span pButtonLabel>{{ 'shared.deselect.all' | translate }}</span>
|
|
2681
|
+
</button>
|
|
2682
|
+
<button
|
|
2683
|
+
pButton
|
|
2599
2684
|
*hasPermission="COMPANY_ACTION_PERMISSIONS.ASSIGN"
|
|
2600
|
-
[
|
|
2601
|
-
icon="pi pi-save"
|
|
2602
|
-
[disabled]="!canSave()"
|
|
2603
|
-
[loading]="saving()"
|
|
2685
|
+
[disabled]="!canSave() || saving()"
|
|
2604
2686
|
size="small"
|
|
2605
|
-
(
|
|
2606
|
-
|
|
2687
|
+
(click)="saveChanges()"
|
|
2688
|
+
>
|
|
2689
|
+
@if (saving()) {
|
|
2690
|
+
<span pButtonIcon class="pi pi-spinner pi-spin"></span>
|
|
2691
|
+
} @else {
|
|
2692
|
+
<span pButtonIcon class="pi pi-save"></span>
|
|
2693
|
+
}
|
|
2694
|
+
<span pButtonLabel>{{ 'shared.save.changes' | translate }}</span>
|
|
2695
|
+
</button>
|
|
2607
2696
|
</div>
|
|
2608
2697
|
</div>
|
|
2609
2698
|
|
|
@@ -2629,7 +2718,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImpor
|
|
|
2629
2718
|
}
|
|
2630
2719
|
|
|
2631
2720
|
<div class="overflow-x-auto -mx-4 sm:mx-0">
|
|
2632
|
-
<p-
|
|
2721
|
+
<p-treetable
|
|
2633
2722
|
[value]="treeNodes()"
|
|
2634
2723
|
dataKey="id"
|
|
2635
2724
|
class="p-treetable-sm"
|
|
@@ -2669,7 +2758,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImpor
|
|
|
2669
2758
|
/>
|
|
2670
2759
|
</td>
|
|
2671
2760
|
<td>
|
|
2672
|
-
<p-
|
|
2761
|
+
<p-treetabletoggler [rowNode]="rowNode" />
|
|
2673
2762
|
<span class="inline-flex items-center gap-2">
|
|
2674
2763
|
{{ rowData.name }}
|
|
2675
2764
|
@if (hasUnmet) {
|
|
@@ -2712,7 +2801,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImpor
|
|
|
2712
2801
|
</td>
|
|
2713
2802
|
</tr>
|
|
2714
2803
|
</ng-template>
|
|
2715
|
-
</p-
|
|
2804
|
+
</p-treetable>
|
|
2716
2805
|
</div>
|
|
2717
2806
|
</div>
|
|
2718
2807
|
|
|
@@ -2825,28 +2914,38 @@ class UserRoleSelectorComponent {
|
|
|
2825
2914
|
return this.translateAdapter?.translate(key, vars) ?? key;
|
|
2826
2915
|
}
|
|
2827
2916
|
// State - User/Branch Selection
|
|
2828
|
-
selectedUserId = signal(null,
|
|
2829
|
-
|
|
2830
|
-
|
|
2917
|
+
selectedUserId = signal(null, /* @ts-ignore */
|
|
2918
|
+
...(ngDevMode ? [{ debugName: "selectedUserId" }] : /* istanbul ignore next */ []));
|
|
2919
|
+
selectedBranchId = signal(undefined, /* @ts-ignore */
|
|
2920
|
+
...(ngDevMode ? [{ debugName: "selectedBranchId" }] : /* istanbul ignore next */ []));
|
|
2921
|
+
branches = signal([], /* @ts-ignore */
|
|
2922
|
+
...(ngDevMode ? [{ debugName: "branches" }] : /* istanbul ignore next */ []));
|
|
2831
2923
|
// State - Loading/Saving
|
|
2832
|
-
loading = signal(false,
|
|
2833
|
-
|
|
2924
|
+
loading = signal(false, /* @ts-ignore */
|
|
2925
|
+
...(ngDevMode ? [{ debugName: "loading" }] : /* istanbul ignore next */ []));
|
|
2926
|
+
saving = signal(false, /* @ts-ignore */
|
|
2927
|
+
...(ngDevMode ? [{ debugName: "saving" }] : /* istanbul ignore next */ []));
|
|
2834
2928
|
// State - Roles (Business Logic)
|
|
2835
|
-
_roles = signal([],
|
|
2929
|
+
_roles = signal([], /* @ts-ignore */
|
|
2930
|
+
...(ngDevMode ? [{ debugName: "_roles" }] : /* istanbul ignore next */ []));
|
|
2836
2931
|
roles = this._roles.asReadonly();
|
|
2837
2932
|
// State - Selection
|
|
2838
|
-
_selectionMap = signal({},
|
|
2933
|
+
_selectionMap = signal({}, /* @ts-ignore */
|
|
2934
|
+
...(ngDevMode ? [{ debugName: "_selectionMap" }] : /* istanbul ignore next */ []));
|
|
2839
2935
|
selectionMap = this._selectionMap.asReadonly();
|
|
2840
|
-
_initialSelection = signal({},
|
|
2936
|
+
_initialSelection = signal({}, /* @ts-ignore */
|
|
2937
|
+
...(ngDevMode ? [{ debugName: "_initialSelection" }] : /* istanbul ignore next */ []));
|
|
2841
2938
|
initialSelection = this._initialSelection.asReadonly();
|
|
2842
2939
|
// Computed - UI Flags
|
|
2843
|
-
showBranchSelector = computed(() => isCompanyFeatureEnabled(this.appConfig) === true,
|
|
2940
|
+
showBranchSelector = computed(() => isCompanyFeatureEnabled(this.appConfig) === true, /* @ts-ignore */
|
|
2941
|
+
...(ngDevMode ? [{ debugName: "showBranchSelector" }] : /* istanbul ignore next */ []));
|
|
2844
2942
|
filteredBranches = computed(() => {
|
|
2845
2943
|
const currentCompanyId = this.companyContext.currentCompanyInfo()?.id || undefined;
|
|
2846
2944
|
if (!currentCompanyId)
|
|
2847
2945
|
return this.branches();
|
|
2848
2946
|
return this.branches().filter((b) => b.companyId === currentCompanyId);
|
|
2849
|
-
},
|
|
2947
|
+
}, /* @ts-ignore */
|
|
2948
|
+
...(ngDevMode ? [{ debugName: "filteredBranches" }] : /* istanbul ignore next */ []));
|
|
2850
2949
|
// Computed - Selection State
|
|
2851
2950
|
allSelected = computed(() => {
|
|
2852
2951
|
const selMap = this.selectionMap();
|
|
@@ -2855,7 +2954,8 @@ class UserRoleSelectorComponent {
|
|
|
2855
2954
|
return false;
|
|
2856
2955
|
const selected = Object.values(selMap).filter((v) => v).length;
|
|
2857
2956
|
return selected === total;
|
|
2858
|
-
},
|
|
2957
|
+
}, /* @ts-ignore */
|
|
2958
|
+
...(ngDevMode ? [{ debugName: "allSelected" }] : /* istanbul ignore next */ []));
|
|
2859
2959
|
// Computed - Change Detection
|
|
2860
2960
|
hasChanges = computed(() => {
|
|
2861
2961
|
const current = this.selectionMap();
|
|
@@ -2865,24 +2965,28 @@ class UserRoleSelectorComponent {
|
|
|
2865
2965
|
if (currentKeys.length !== initialKeys.length)
|
|
2866
2966
|
return true;
|
|
2867
2967
|
return currentKeys.some((key) => current[key] !== initial[key]);
|
|
2868
|
-
},
|
|
2968
|
+
}, /* @ts-ignore */
|
|
2969
|
+
...(ngDevMode ? [{ debugName: "hasChanges" }] : /* istanbul ignore next */ []));
|
|
2869
2970
|
// Computed - Pending Changes
|
|
2870
2971
|
pendingAdd = computed(() => {
|
|
2871
2972
|
const current = this.selectionMap();
|
|
2872
2973
|
const initial = this.initialSelection();
|
|
2873
2974
|
const allRoles = this.roles();
|
|
2874
2975
|
return allRoles.filter((role) => current[role.id] && !initial[role.id]);
|
|
2875
|
-
},
|
|
2976
|
+
}, /* @ts-ignore */
|
|
2977
|
+
...(ngDevMode ? [{ debugName: "pendingAdd" }] : /* istanbul ignore next */ []));
|
|
2876
2978
|
pendingRemove = computed(() => {
|
|
2877
2979
|
const current = this.selectionMap();
|
|
2878
2980
|
const initial = this.initialSelection();
|
|
2879
2981
|
const allRoles = this.roles();
|
|
2880
2982
|
return allRoles.filter((role) => !current[role.id] && initial[role.id]);
|
|
2881
|
-
},
|
|
2983
|
+
}, /* @ts-ignore */
|
|
2984
|
+
...(ngDevMode ? [{ debugName: "pendingRemove" }] : /* istanbul ignore next */ []));
|
|
2882
2985
|
// Computed - Save Button State
|
|
2883
2986
|
canSave = computed(() => {
|
|
2884
2987
|
return this.hasChanges() && !this.saving();
|
|
2885
|
-
},
|
|
2988
|
+
}, /* @ts-ignore */
|
|
2989
|
+
...(ngDevMode ? [{ debugName: "canSave" }] : /* istanbul ignore next */ []));
|
|
2886
2990
|
constructor() {
|
|
2887
2991
|
// Effect: Load user branches and data when user changes
|
|
2888
2992
|
effect(() => {
|
|
@@ -3081,8 +3185,8 @@ class UserRoleSelectorComponent {
|
|
|
3081
3185
|
this._selectionMap.set({});
|
|
3082
3186
|
this._initialSelection.set({});
|
|
3083
3187
|
}
|
|
3084
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3085
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
3188
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: UserRoleSelectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3189
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: UserRoleSelectorComponent, isStandalone: true, selector: "flusys-user-role-selector", ngImport: i0, template: `
|
|
3086
3190
|
<div class="user-role-selector">
|
|
3087
3191
|
<!-- User and Branch Selectors -->
|
|
3088
3192
|
<div class="surface-card p-4 rounded-border mb-4 shadow-sm">
|
|
@@ -3177,31 +3281,40 @@ class UserRoleSelectorComponent {
|
|
|
3177
3281
|
</p>
|
|
3178
3282
|
</div>
|
|
3179
3283
|
<div class="flex flex-wrap gap-2">
|
|
3180
|
-
<
|
|
3181
|
-
|
|
3182
|
-
icon="pi pi-check"
|
|
3284
|
+
<button
|
|
3285
|
+
pButton
|
|
3183
3286
|
[outlined]="true"
|
|
3184
3287
|
size="small"
|
|
3185
3288
|
severity="secondary"
|
|
3186
|
-
(
|
|
3187
|
-
|
|
3188
|
-
|
|
3189
|
-
|
|
3190
|
-
|
|
3289
|
+
(click)="selectAll()"
|
|
3290
|
+
>
|
|
3291
|
+
<span pButtonIcon class="pi pi-check"></span>
|
|
3292
|
+
<span pButtonLabel>{{ 'shared.select.all' | translate }}</span>
|
|
3293
|
+
</button>
|
|
3294
|
+
<button
|
|
3295
|
+
pButton
|
|
3191
3296
|
[outlined]="true"
|
|
3192
3297
|
size="small"
|
|
3193
3298
|
severity="secondary"
|
|
3194
|
-
(
|
|
3195
|
-
|
|
3196
|
-
|
|
3299
|
+
(click)="deselectAll()"
|
|
3300
|
+
>
|
|
3301
|
+
<span pButtonIcon class="pi pi-times"></span>
|
|
3302
|
+
<span pButtonLabel>{{ 'shared.deselect.all' | translate }}</span>
|
|
3303
|
+
</button>
|
|
3304
|
+
<button
|
|
3305
|
+
pButton
|
|
3197
3306
|
*hasPermission="USER_ROLE_PERMISSIONS.ASSIGN"
|
|
3198
|
-
[
|
|
3199
|
-
icon="pi pi-save"
|
|
3200
|
-
[disabled]="!canSave()"
|
|
3201
|
-
[loading]="saving()"
|
|
3307
|
+
[disabled]="!canSave() || saving()"
|
|
3202
3308
|
size="small"
|
|
3203
|
-
(
|
|
3204
|
-
|
|
3309
|
+
(click)="saveChanges()"
|
|
3310
|
+
>
|
|
3311
|
+
@if (saving()) {
|
|
3312
|
+
<span pButtonIcon class="pi pi-spinner pi-spin"></span>
|
|
3313
|
+
} @else {
|
|
3314
|
+
<span pButtonIcon class="pi pi-save"></span>
|
|
3315
|
+
}
|
|
3316
|
+
<span pButtonLabel>{{ 'shared.save.changes' | translate }}</span>
|
|
3317
|
+
</button>
|
|
3205
3318
|
</div>
|
|
3206
3319
|
</div>
|
|
3207
3320
|
|
|
@@ -3335,9 +3448,9 @@ class UserRoleSelectorComponent {
|
|
|
3335
3448
|
}
|
|
3336
3449
|
}
|
|
3337
3450
|
</div>
|
|
3338
|
-
`, isInline: true, styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { 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: PrimeModule }, { kind: "
|
|
3451
|
+
`, isInline: true, styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { 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: PrimeModule }, { kind: "directive", type: i2.ButtonDirective, selector: "[pButton]", inputs: ["pButton", "pButtonPT", "pButtonUnstyled", "hostName", "text", "plain", "raised", "size", "outlined", "link", "rounded", "fluid", "variant", "iconOnly", "loading", "severity"] }, { kind: "directive", type: i2.ButtonLabel, selector: "[pButtonLabel]", inputs: ["pButtonLabelPT", "pButtonLabelUnstyled"] }, { kind: "directive", type: i2.ButtonIcon, selector: "[pButtonIcon]", inputs: ["pButtonIconPT", "pButtonUnstyled"] }, { kind: "component", type: i3.Checkbox, selector: "p-checkbox, p-check-box", inputs: ["value", "binary", "ariaLabelledBy", "ariaLabel", "tabindex", "inputId", "inputStyle", "inputClass", "indeterminate", "formControl", "checkboxIcon", "readonly", "autofocus", "trueValue", "falseValue", "variant", "size"], outputs: ["onChange", "onFocus", "onBlur"] }, { kind: "component", type: i4.Select, selector: "p-select", inputs: ["id", "scrollHeight", "filter", "panelStyle", "panelStyleClass", "readonly", "editable", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "multiple", "autoOptionFocus", "autofocusFilter", "filterValue", "options", "appendTo", "motionOptions"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "component", type: i5$1.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorStyleClass", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "size", "showGridlines", "stripedRows", "groupRowsByOrder", "paginatorLocale", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "selectAll"], outputs: ["contextMenuSelectionChange", "firstChange", "rowsChange", "totalRecordsChange", "selectionChange", "selectAllChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "onStateSave", "onStateRestore"] }, { kind: "directive", type: i6.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "showOnEllipsis", "pTooltip", "tooltipDisabled", "tooltipOptions", "appendTo", "pTooltipPT", "pTooltipUnstyled"] }, { kind: "directive", type: HasPermissionDirective, selector: "[hasPermission]", inputs: ["hasPermission"] }, { kind: "component", type: UserSelectComponent, selector: "lib-user-select", inputs: ["showClear", "value"], outputs: ["valueChange", "userSelected"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
|
|
3339
3452
|
}
|
|
3340
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3453
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: UserRoleSelectorComponent, decorators: [{
|
|
3341
3454
|
type: Component,
|
|
3342
3455
|
args: [{ selector: 'flusys-user-role-selector', imports: [
|
|
3343
3456
|
CommonModule,
|
|
@@ -3441,31 +3554,40 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImpor
|
|
|
3441
3554
|
</p>
|
|
3442
3555
|
</div>
|
|
3443
3556
|
<div class="flex flex-wrap gap-2">
|
|
3444
|
-
<
|
|
3445
|
-
|
|
3446
|
-
icon="pi pi-check"
|
|
3557
|
+
<button
|
|
3558
|
+
pButton
|
|
3447
3559
|
[outlined]="true"
|
|
3448
3560
|
size="small"
|
|
3449
3561
|
severity="secondary"
|
|
3450
|
-
(
|
|
3451
|
-
|
|
3452
|
-
|
|
3453
|
-
|
|
3454
|
-
|
|
3562
|
+
(click)="selectAll()"
|
|
3563
|
+
>
|
|
3564
|
+
<span pButtonIcon class="pi pi-check"></span>
|
|
3565
|
+
<span pButtonLabel>{{ 'shared.select.all' | translate }}</span>
|
|
3566
|
+
</button>
|
|
3567
|
+
<button
|
|
3568
|
+
pButton
|
|
3455
3569
|
[outlined]="true"
|
|
3456
3570
|
size="small"
|
|
3457
3571
|
severity="secondary"
|
|
3458
|
-
(
|
|
3459
|
-
|
|
3460
|
-
|
|
3572
|
+
(click)="deselectAll()"
|
|
3573
|
+
>
|
|
3574
|
+
<span pButtonIcon class="pi pi-times"></span>
|
|
3575
|
+
<span pButtonLabel>{{ 'shared.deselect.all' | translate }}</span>
|
|
3576
|
+
</button>
|
|
3577
|
+
<button
|
|
3578
|
+
pButton
|
|
3461
3579
|
*hasPermission="USER_ROLE_PERMISSIONS.ASSIGN"
|
|
3462
|
-
[
|
|
3463
|
-
icon="pi pi-save"
|
|
3464
|
-
[disabled]="!canSave()"
|
|
3465
|
-
[loading]="saving()"
|
|
3580
|
+
[disabled]="!canSave() || saving()"
|
|
3466
3581
|
size="small"
|
|
3467
|
-
(
|
|
3468
|
-
|
|
3582
|
+
(click)="saveChanges()"
|
|
3583
|
+
>
|
|
3584
|
+
@if (saving()) {
|
|
3585
|
+
<span pButtonIcon class="pi pi-spinner pi-spin"></span>
|
|
3586
|
+
} @else {
|
|
3587
|
+
<span pButtonIcon class="pi pi-save"></span>
|
|
3588
|
+
}
|
|
3589
|
+
<span pButtonLabel>{{ 'shared.save.changes' | translate }}</span>
|
|
3590
|
+
</button>
|
|
3469
3591
|
</div>
|
|
3470
3592
|
</div>
|
|
3471
3593
|
|
|
@@ -3610,17 +3732,22 @@ class UserActionSelectorComponent extends BaseActionSelectorComponent {
|
|
|
3610
3732
|
actionApi = inject(ActionApiService);
|
|
3611
3733
|
permissionApi = inject(PermissionApiService);
|
|
3612
3734
|
messageService = inject(MessageService);
|
|
3613
|
-
selectedUserId = signal(null,
|
|
3614
|
-
|
|
3615
|
-
|
|
3616
|
-
|
|
3735
|
+
selectedUserId = signal(null, /* @ts-ignore */
|
|
3736
|
+
...(ngDevMode ? [{ debugName: "selectedUserId" }] : /* istanbul ignore next */ []));
|
|
3737
|
+
selectedBranchId = signal(undefined, /* @ts-ignore */
|
|
3738
|
+
...(ngDevMode ? [{ debugName: "selectedBranchId" }] : /* istanbul ignore next */ []));
|
|
3739
|
+
branches = signal([], /* @ts-ignore */
|
|
3740
|
+
...(ngDevMode ? [{ debugName: "branches" }] : /* istanbul ignore next */ []));
|
|
3741
|
+
isCompanyFeatureActive = computed(() => isCompanyFeatureEnabled(this.appConfig) === true, /* @ts-ignore */
|
|
3742
|
+
...(ngDevMode ? [{ debugName: "isCompanyFeatureActive" }] : /* istanbul ignore next */ []));
|
|
3617
3743
|
showBranchSelector = this.isCompanyFeatureActive;
|
|
3618
3744
|
filteredBranches = computed(() => {
|
|
3619
3745
|
const currentCompanyId = this.companyContext.currentCompanyInfo()?.id || undefined;
|
|
3620
3746
|
if (!currentCompanyId)
|
|
3621
3747
|
return this.branches();
|
|
3622
3748
|
return this.branches().filter((b) => b.companyId === currentCompanyId);
|
|
3623
|
-
},
|
|
3749
|
+
}, /* @ts-ignore */
|
|
3750
|
+
...(ngDevMode ? [{ debugName: "filteredBranches" }] : /* istanbul ignore next */ []));
|
|
3624
3751
|
constructor() {
|
|
3625
3752
|
super();
|
|
3626
3753
|
effect(() => {
|
|
@@ -3740,8 +3867,8 @@ class UserActionSelectorComponent extends BaseActionSelectorComponent {
|
|
|
3740
3867
|
this.saving.set(false);
|
|
3741
3868
|
}
|
|
3742
3869
|
}
|
|
3743
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3744
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
3870
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: UserActionSelectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3871
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: UserActionSelectorComponent, isStandalone: true, selector: "flusys-user-action-selector", usesInheritance: true, ngImport: i0, template: `
|
|
3745
3872
|
<div class="user-action-selector">
|
|
3746
3873
|
<div class="surface-card p-4 rounded-border mb-4 shadow-sm">
|
|
3747
3874
|
<div class="grid grid-cols-1 sm:grid-cols-2 gap-5">
|
|
@@ -3831,31 +3958,40 @@ class UserActionSelectorComponent extends BaseActionSelectorComponent {
|
|
|
3831
3958
|
</p>
|
|
3832
3959
|
</div>
|
|
3833
3960
|
<div class="flex flex-wrap gap-2">
|
|
3834
|
-
<
|
|
3835
|
-
|
|
3836
|
-
icon="pi pi-check"
|
|
3961
|
+
<button
|
|
3962
|
+
pButton
|
|
3837
3963
|
[outlined]="true"
|
|
3838
3964
|
size="small"
|
|
3839
3965
|
severity="secondary"
|
|
3840
|
-
(
|
|
3841
|
-
|
|
3842
|
-
|
|
3843
|
-
|
|
3844
|
-
|
|
3966
|
+
(click)="selectAll()"
|
|
3967
|
+
>
|
|
3968
|
+
<span pButtonIcon class="pi pi-check"></span>
|
|
3969
|
+
<span pButtonLabel>{{ 'shared.select.all' | translate }}</span>
|
|
3970
|
+
</button>
|
|
3971
|
+
<button
|
|
3972
|
+
pButton
|
|
3845
3973
|
[outlined]="true"
|
|
3846
3974
|
size="small"
|
|
3847
3975
|
severity="secondary"
|
|
3848
|
-
(
|
|
3849
|
-
|
|
3850
|
-
|
|
3976
|
+
(click)="deselectAll()"
|
|
3977
|
+
>
|
|
3978
|
+
<span pButtonIcon class="pi pi-times"></span>
|
|
3979
|
+
<span pButtonLabel>{{ 'shared.deselect.all' | translate }}</span>
|
|
3980
|
+
</button>
|
|
3981
|
+
<button
|
|
3982
|
+
pButton
|
|
3851
3983
|
*hasPermission="USER_ACTION_PERMISSIONS.ASSIGN"
|
|
3852
|
-
[
|
|
3853
|
-
icon="pi pi-save"
|
|
3854
|
-
[disabled]="!canSave()"
|
|
3855
|
-
[loading]="saving()"
|
|
3984
|
+
[disabled]="!canSave() || saving()"
|
|
3856
3985
|
size="small"
|
|
3857
|
-
(
|
|
3858
|
-
|
|
3986
|
+
(click)="saveChanges()"
|
|
3987
|
+
>
|
|
3988
|
+
@if (saving()) {
|
|
3989
|
+
<span pButtonIcon class="pi pi-spinner pi-spin"></span>
|
|
3990
|
+
} @else {
|
|
3991
|
+
<span pButtonIcon class="pi pi-save"></span>
|
|
3992
|
+
}
|
|
3993
|
+
<span pButtonLabel>{{ 'shared.save.changes' | translate }}</span>
|
|
3994
|
+
</button>
|
|
3859
3995
|
</div>
|
|
3860
3996
|
</div>
|
|
3861
3997
|
|
|
@@ -3881,7 +4017,7 @@ class UserActionSelectorComponent extends BaseActionSelectorComponent {
|
|
|
3881
4017
|
}
|
|
3882
4018
|
|
|
3883
4019
|
<div class="overflow-x-auto -mx-4 sm:mx-0">
|
|
3884
|
-
<p-
|
|
4020
|
+
<p-treetable
|
|
3885
4021
|
[value]="treeNodes()"
|
|
3886
4022
|
dataKey="id"
|
|
3887
4023
|
class="p-treetable-sm"
|
|
@@ -3922,7 +4058,7 @@ class UserActionSelectorComponent extends BaseActionSelectorComponent {
|
|
|
3922
4058
|
/>
|
|
3923
4059
|
</td>
|
|
3924
4060
|
<td>
|
|
3925
|
-
<p-
|
|
4061
|
+
<p-treetabletoggler [rowNode]="rowNode" />
|
|
3926
4062
|
<span class="inline-flex items-center gap-2">
|
|
3927
4063
|
{{ rowData.name }}
|
|
3928
4064
|
@if (hasUnmet) {
|
|
@@ -3965,7 +4101,7 @@ class UserActionSelectorComponent extends BaseActionSelectorComponent {
|
|
|
3965
4101
|
</td>
|
|
3966
4102
|
</tr>
|
|
3967
4103
|
</ng-template>
|
|
3968
|
-
</p-
|
|
4104
|
+
</p-treetable>
|
|
3969
4105
|
</div>
|
|
3970
4106
|
</div>
|
|
3971
4107
|
|
|
@@ -4029,9 +4165,9 @@ class UserActionSelectorComponent extends BaseActionSelectorComponent {
|
|
|
4029
4165
|
}
|
|
4030
4166
|
}
|
|
4031
4167
|
</div>
|
|
4032
|
-
`, isInline: true, styles: [":host{display:block}.validation-warning{background-color:var(--p-yellow-50, #fefce8);border-left:4px solid var(--p-yellow-500, #eab308);color:var(--p-yellow-700, #a16207)}:host-context(.p-dark) .validation-warning{background-color:#eab3081a;color:var(--p-yellow-400, #facc15)}:host ::ng-deep tr.highlight-warning{background-color:var(--p-red-50, rgba(239, 68, 68, .1))!important}:host-context(.p-dark) ::ng-deep tr.highlight-warning{background-color:#ef444426!important}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { 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: PrimeModule }, { kind: "
|
|
4168
|
+
`, isInline: true, styles: [":host{display:block}.validation-warning{background-color:var(--p-yellow-50, #fefce8);border-left:4px solid var(--p-yellow-500, #eab308);color:var(--p-yellow-700, #a16207)}:host-context(.p-dark) .validation-warning{background-color:#eab3081a;color:var(--p-yellow-400, #facc15)}:host ::ng-deep tr.highlight-warning{background-color:var(--p-red-50, rgba(239, 68, 68, .1))!important}:host-context(.p-dark) ::ng-deep tr.highlight-warning{background-color:#ef444426!important}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { 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: PrimeModule }, { kind: "directive", type: i2.ButtonDirective, selector: "[pButton]", inputs: ["pButton", "pButtonPT", "pButtonUnstyled", "hostName", "text", "plain", "raised", "size", "outlined", "link", "rounded", "fluid", "variant", "iconOnly", "loading", "severity"] }, { kind: "directive", type: i2.ButtonLabel, selector: "[pButtonLabel]", inputs: ["pButtonLabelPT", "pButtonLabelUnstyled"] }, { kind: "directive", type: i2.ButtonIcon, selector: "[pButtonIcon]", inputs: ["pButtonIconPT", "pButtonUnstyled"] }, { kind: "component", type: i3.Checkbox, selector: "p-checkbox, p-check-box", inputs: ["value", "binary", "ariaLabelledBy", "ariaLabel", "tabindex", "inputId", "inputStyle", "inputClass", "indeterminate", "formControl", "checkboxIcon", "readonly", "autofocus", "trueValue", "falseValue", "variant", "size"], outputs: ["onChange", "onFocus", "onBlur"] }, { kind: "component", type: i4.Select, selector: "p-select", inputs: ["id", "scrollHeight", "filter", "panelStyle", "panelStyleClass", "readonly", "editable", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "multiple", "autoOptionFocus", "autofocusFilter", "filterValue", "options", "appendTo", "motionOptions"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "component", type: i5.Tag, selector: "p-tag", inputs: ["severity", "value", "icon", "rounded"] }, { kind: "directive", type: i6.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "showOnEllipsis", "pTooltip", "tooltipDisabled", "tooltipOptions", "appendTo", "pTooltipPT", "pTooltipUnstyled"] }, { kind: "component", type: i7.TreeTable, selector: "p-treetable, p-tree-table", inputs: ["columns", "tableStyle", "tableStyleClass", "autoLayout", "lazy", "lazyLoadOnInit", "paginator", "rows", "first", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorStyleClass", "paginatorDropdownAppendTo", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "customSort", "selectionMode", "contextMenuSelection", "dataKey", "metaKeySelection", "compareSelectionBy", "rowHover", "loading", "loadingIcon", "showLoader", "scrollable", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "frozenColumns", "resizableColumns", "columnResizeMode", "reorderableColumns", "contextMenu", "rowTrackBy", "filters", "globalFilterFields", "filterDelay", "filterMode", "filterLocale", "paginatorLocale", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "value", "selectionKeys", "collapsedKeys", "showGridlines"], outputs: ["rowsChange", "selectionChange", "contextMenuSelectionChange", "onFilter", "onNodeExpand", "onNodeCollapse", "onPage", "onSort", "onLazyLoad", "sortFunction", "onColResize", "onColReorder", "onNodeSelect", "onNodeUnselect", "onContextMenuSelect", "onHeaderCheckboxToggle", "onEditInit", "onEditComplete", "onEditCancel", "selectionKeysChange", "collapsedKeysChange"] }, { kind: "component", type: i7.TreeTableToggler, selector: "p-treetabletoggler, p-treetable-toggler", inputs: ["rowNode"] }, { kind: "directive", type: HasPermissionDirective, selector: "[hasPermission]", inputs: ["hasPermission"] }, { kind: "component", type: UserSelectComponent, selector: "lib-user-select", inputs: ["showClear", "value"], outputs: ["valueChange", "userSelected"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
|
|
4033
4169
|
}
|
|
4034
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
4170
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: UserActionSelectorComponent, decorators: [{
|
|
4035
4171
|
type: Component,
|
|
4036
4172
|
args: [{ selector: 'flusys-user-action-selector', imports: [
|
|
4037
4173
|
FormsModule,
|
|
@@ -4129,31 +4265,40 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImpor
|
|
|
4129
4265
|
</p>
|
|
4130
4266
|
</div>
|
|
4131
4267
|
<div class="flex flex-wrap gap-2">
|
|
4132
|
-
<
|
|
4133
|
-
|
|
4134
|
-
icon="pi pi-check"
|
|
4268
|
+
<button
|
|
4269
|
+
pButton
|
|
4135
4270
|
[outlined]="true"
|
|
4136
4271
|
size="small"
|
|
4137
4272
|
severity="secondary"
|
|
4138
|
-
(
|
|
4139
|
-
|
|
4140
|
-
|
|
4141
|
-
|
|
4142
|
-
|
|
4273
|
+
(click)="selectAll()"
|
|
4274
|
+
>
|
|
4275
|
+
<span pButtonIcon class="pi pi-check"></span>
|
|
4276
|
+
<span pButtonLabel>{{ 'shared.select.all' | translate }}</span>
|
|
4277
|
+
</button>
|
|
4278
|
+
<button
|
|
4279
|
+
pButton
|
|
4143
4280
|
[outlined]="true"
|
|
4144
4281
|
size="small"
|
|
4145
4282
|
severity="secondary"
|
|
4146
|
-
(
|
|
4147
|
-
|
|
4148
|
-
|
|
4283
|
+
(click)="deselectAll()"
|
|
4284
|
+
>
|
|
4285
|
+
<span pButtonIcon class="pi pi-times"></span>
|
|
4286
|
+
<span pButtonLabel>{{ 'shared.deselect.all' | translate }}</span>
|
|
4287
|
+
</button>
|
|
4288
|
+
<button
|
|
4289
|
+
pButton
|
|
4149
4290
|
*hasPermission="USER_ACTION_PERMISSIONS.ASSIGN"
|
|
4150
|
-
[
|
|
4151
|
-
icon="pi pi-save"
|
|
4152
|
-
[disabled]="!canSave()"
|
|
4153
|
-
[loading]="saving()"
|
|
4291
|
+
[disabled]="!canSave() || saving()"
|
|
4154
4292
|
size="small"
|
|
4155
|
-
(
|
|
4156
|
-
|
|
4293
|
+
(click)="saveChanges()"
|
|
4294
|
+
>
|
|
4295
|
+
@if (saving()) {
|
|
4296
|
+
<span pButtonIcon class="pi pi-spinner pi-spin"></span>
|
|
4297
|
+
} @else {
|
|
4298
|
+
<span pButtonIcon class="pi pi-save"></span>
|
|
4299
|
+
}
|
|
4300
|
+
<span pButtonLabel>{{ 'shared.save.changes' | translate }}</span>
|
|
4301
|
+
</button>
|
|
4157
4302
|
</div>
|
|
4158
4303
|
</div>
|
|
4159
4304
|
|
|
@@ -4179,7 +4324,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImpor
|
|
|
4179
4324
|
}
|
|
4180
4325
|
|
|
4181
4326
|
<div class="overflow-x-auto -mx-4 sm:mx-0">
|
|
4182
|
-
<p-
|
|
4327
|
+
<p-treetable
|
|
4183
4328
|
[value]="treeNodes()"
|
|
4184
4329
|
dataKey="id"
|
|
4185
4330
|
class="p-treetable-sm"
|
|
@@ -4220,7 +4365,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImpor
|
|
|
4220
4365
|
/>
|
|
4221
4366
|
</td>
|
|
4222
4367
|
<td>
|
|
4223
|
-
<p-
|
|
4368
|
+
<p-treetabletoggler [rowNode]="rowNode" />
|
|
4224
4369
|
<span class="inline-flex items-center gap-2">
|
|
4225
4370
|
{{ rowData.name }}
|
|
4226
4371
|
@if (hasUnmet) {
|
|
@@ -4263,7 +4408,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImpor
|
|
|
4263
4408
|
</td>
|
|
4264
4409
|
</tr>
|
|
4265
4410
|
</ng-template>
|
|
4266
|
-
</p-
|
|
4411
|
+
</p-treetable>
|
|
4267
4412
|
</div>
|
|
4268
4413
|
</div>
|
|
4269
4414
|
|
|
@@ -4377,10 +4522,10 @@ class ProfilePermissionProviderAdapter {
|
|
|
4377
4522
|
})),
|
|
4378
4523
|
})));
|
|
4379
4524
|
}
|
|
4380
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
4381
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
4525
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: ProfilePermissionProviderAdapter, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
4526
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: ProfilePermissionProviderAdapter });
|
|
4382
4527
|
}
|
|
4383
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
4528
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: ProfilePermissionProviderAdapter, decorators: [{
|
|
4384
4529
|
type: Injectable
|
|
4385
4530
|
}] });
|
|
4386
4531
|
|
|
@@ -4403,7 +4548,7 @@ const IAM_ROUTES = [
|
|
|
4403
4548
|
{
|
|
4404
4549
|
path: '',
|
|
4405
4550
|
resolve: { translations: resolveTranslationModule({ modules: ['iam'], fallbackMessages: { ...IAM_MESSAGES, ...SHARED_MESSAGES } }) },
|
|
4406
|
-
loadComponent: () => import('./flusys-ng-iam-iam-container.component-
|
|
4551
|
+
loadComponent: () => import('./flusys-ng-iam-iam-container.component-DEuc_l2i.mjs').then((m) => m.IamContainerComponent),
|
|
4407
4552
|
children: [
|
|
4408
4553
|
// Actions Management
|
|
4409
4554
|
{
|
|
@@ -4412,15 +4557,15 @@ const IAM_ROUTES = [
|
|
|
4412
4557
|
children: [
|
|
4413
4558
|
{
|
|
4414
4559
|
path: '',
|
|
4415
|
-
loadComponent: () => import('./flusys-ng-iam-action-list-page.component-
|
|
4560
|
+
loadComponent: () => import('./flusys-ng-iam-action-list-page.component-BQvx2btD.mjs').then((m) => m.ActionListPageComponent),
|
|
4416
4561
|
},
|
|
4417
4562
|
{
|
|
4418
4563
|
path: 'new',
|
|
4419
|
-
loadComponent: () => import('./flusys-ng-iam-action-form-page.component-
|
|
4564
|
+
loadComponent: () => import('./flusys-ng-iam-action-form-page.component-BGEON5_n.mjs').then((m) => m.ActionFormPageComponent),
|
|
4420
4565
|
},
|
|
4421
4566
|
{
|
|
4422
4567
|
path: ':id',
|
|
4423
|
-
loadComponent: () => import('./flusys-ng-iam-action-form-page.component-
|
|
4568
|
+
loadComponent: () => import('./flusys-ng-iam-action-form-page.component-BGEON5_n.mjs').then((m) => m.ActionFormPageComponent),
|
|
4424
4569
|
},
|
|
4425
4570
|
],
|
|
4426
4571
|
},
|
|
@@ -4431,15 +4576,15 @@ const IAM_ROUTES = [
|
|
|
4431
4576
|
children: [
|
|
4432
4577
|
{
|
|
4433
4578
|
path: '',
|
|
4434
|
-
loadComponent: () => import('./flusys-ng-iam-role-list-page.component-
|
|
4579
|
+
loadComponent: () => import('./flusys-ng-iam-role-list-page.component-DVto37LL.mjs').then((m) => m.RoleListPageComponent),
|
|
4435
4580
|
},
|
|
4436
4581
|
{
|
|
4437
4582
|
path: 'new',
|
|
4438
|
-
loadComponent: () => import('./flusys-ng-iam-role-form-page.component-
|
|
4583
|
+
loadComponent: () => import('./flusys-ng-iam-role-form-page.component-CR1tl17E.mjs').then((m) => m.RoleFormPageComponent),
|
|
4439
4584
|
},
|
|
4440
4585
|
{
|
|
4441
4586
|
path: ':id',
|
|
4442
|
-
loadComponent: () => import('./flusys-ng-iam-role-form-page.component-
|
|
4587
|
+
loadComponent: () => import('./flusys-ng-iam-role-form-page.component-CR1tl17E.mjs').then((m) => m.RoleFormPageComponent),
|
|
4443
4588
|
},
|
|
4444
4589
|
],
|
|
4445
4590
|
},
|
|
@@ -4454,7 +4599,7 @@ const IAM_ROUTES = [
|
|
|
4454
4599
|
COMPANY_ACTION_PERMISSIONS.READ,
|
|
4455
4600
|
]),
|
|
4456
4601
|
],
|
|
4457
|
-
loadComponent: () => import('./flusys-ng-iam-permission-page.component-
|
|
4602
|
+
loadComponent: () => import('./flusys-ng-iam-permission-page.component-DV8qtLcu.mjs').then((m) => m.PermissionPageComponent),
|
|
4458
4603
|
},
|
|
4459
4604
|
// Default redirect to actions
|
|
4460
4605
|
{
|
|
@@ -4473,4 +4618,4 @@ const IAM_ROUTES = [
|
|
|
4473
4618
|
*/
|
|
4474
4619
|
|
|
4475
4620
|
export { ActionApiService as A, CompanyActionSelectorComponent as C, IAM_MESSAGES 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, IAM_ROUTES as f, MyPermissionsApiService as g, PermissionStateService as h, ProfilePermissionProviderAdapter as i, provideIamProviders as p };
|
|
4476
|
-
//# sourceMappingURL=flusys-ng-iam-flusys-ng-iam-
|
|
4621
|
+
//# sourceMappingURL=flusys-ng-iam-flusys-ng-iam-C9rdGS64.mjs.map
|