@flusys/ng-iam 8.1.2 → 8.1.4
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-DunIW6W4.mjs → flusys-ng-iam-action-form-page.component-i3FPyBR7.mjs} +3 -3
- package/fesm2022/{flusys-ng-iam-action-form-page.component-DunIW6W4.mjs.map → flusys-ng-iam-action-form-page.component-i3FPyBR7.mjs.map} +1 -1
- package/fesm2022/{flusys-ng-iam-action-list-page.component-CgoLgAqd.mjs → flusys-ng-iam-action-list-page.component-CLCylls2.mjs} +4 -8
- package/fesm2022/flusys-ng-iam-action-list-page.component-CLCylls2.mjs.map +1 -0
- package/fesm2022/{flusys-ng-iam-flusys-ng-iam-CJC610eS.mjs → flusys-ng-iam-flusys-ng-iam-BhRNGNaD.mjs} +165 -23
- package/fesm2022/flusys-ng-iam-flusys-ng-iam-BhRNGNaD.mjs.map +1 -0
- package/fesm2022/{flusys-ng-iam-permission-page.component-y86NW53S.mjs → flusys-ng-iam-permission-page.component-zQgYqLfE.mjs} +2 -2
- package/fesm2022/{flusys-ng-iam-permission-page.component-y86NW53S.mjs.map → flusys-ng-iam-permission-page.component-zQgYqLfE.mjs.map} +1 -1
- package/fesm2022/{flusys-ng-iam-role-form-page.component-H3qpNn3J.mjs → flusys-ng-iam-role-form-page.component-BcfbKeAt.mjs} +2 -2
- package/fesm2022/{flusys-ng-iam-role-form-page.component-H3qpNn3J.mjs.map → flusys-ng-iam-role-form-page.component-BcfbKeAt.mjs.map} +1 -1
- package/fesm2022/{flusys-ng-iam-role-list-page.component-BoKQbhu5.mjs → flusys-ng-iam-role-list-page.component-DyOesI24.mjs} +4 -8
- package/fesm2022/flusys-ng-iam-role-list-page.component-DyOesI24.mjs.map +1 -0
- package/fesm2022/flusys-ng-iam.mjs +1 -1
- package/package.json +5 -5
- package/types/flusys-ng-iam.d.ts +64 -6
- package/fesm2022/flusys-ng-iam-action-list-page.component-CgoLgAqd.mjs.map +0 -1
- package/fesm2022/flusys-ng-iam-flusys-ng-iam-CJC610eS.mjs.map +0 -1
- package/fesm2022/flusys-ng-iam-role-list-page.component-BoKQbhu5.mjs.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { Service, inject, signal, input, output, effect, Component, computed, DestroyRef, viewChild } from '@angular/core';
|
|
3
|
-
import { ApiResourceService, TranslateService, PermissionValidatorService, TranslatePipe, ROLE_ACTION_PERMISSIONS, HasPermissionDirective, COMPANY_ACTION_PERMISSIONS,
|
|
3
|
+
import { ApiResourceService, TranslateService, PermissionValidatorService, COMPANY_API_PROVIDER, TranslatePipe, ROLE_ACTION_PERMISSIONS, HasPermissionDirective, COMPANY_ACTION_PERMISSIONS, USER_ROLE_PERMISSIONS, USER_PERMISSION_PROVIDER, UserSelectComponent, USER_ACTION_PERMISSIONS, USER_PROVIDER, PROFILE_PERMISSION_PROVIDER, ACTION_PERMISSIONS, ROLE_PERMISSIONS, permissionGuard, anyPermissionGuard, resolveTranslationModule, SHARED_MESSAGES } from '@flusys/ng-shared';
|
|
4
4
|
import { APP_CONFIG, getServiceUrl, BaseApiService, isCompanyFeatureEnabled, getPermissionMode } from '@flusys/ng-core';
|
|
5
5
|
import { ConfirmationService, MessageService, FButtonDirective, SelectComponent, TooltipDirective, UiIconComponent, CheckboxComponent, TagComponent, TreeTableComponent, TreeTableTogglerComponent, TableComponent, DialogComponent, ProgressSpinnerComponent } from '@flusys/ng-ui';
|
|
6
6
|
import { HttpClient } from '@angular/common/http';
|
|
@@ -89,6 +89,9 @@ const IAM_MESSAGES = {
|
|
|
89
89
|
'iam.permission.remove': 'Remove Access',
|
|
90
90
|
'iam.permission.remove.confirm': 'Remove access for {{name}}?',
|
|
91
91
|
'iam.action.delete.title': 'Delete Action',
|
|
92
|
+
'iam.company.name': 'Company',
|
|
93
|
+
'iam.branch.name': 'Branch',
|
|
94
|
+
'iam.branch.all': 'All branches',
|
|
92
95
|
// pages/action/action-form-page.component.ts
|
|
93
96
|
'iam.action.edit': 'Edit Action',
|
|
94
97
|
'iam.action.name.placeholder': 'Enter action name',
|
|
@@ -924,6 +927,51 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.5", ngImpor
|
|
|
924
927
|
type: Service
|
|
925
928
|
}] });
|
|
926
929
|
|
|
930
|
+
/**
|
|
931
|
+
* Shared resolver for the company/branch display info behind an IAM permission
|
|
932
|
+
* grant's scope (`companyId`/`branchId`). Used by the read-only permitted-users
|
|
933
|
+
* dialogs (action and role) to turn scope IDs into display names.
|
|
934
|
+
*
|
|
935
|
+
* Since IAM stays independent of the auth package, company/branch info is
|
|
936
|
+
* resolved via the `COMPANY_API_PROVIDER` injection token rather than a direct
|
|
937
|
+
* join. Both `getCompaniesByIds`/`getBranchesByIds` are optional on
|
|
938
|
+
* `ICompanyApiProvider`, and provider errors are swallowed — callers always get
|
|
939
|
+
* a `Map` (empty when ids are empty, the provider doesn't implement the
|
|
940
|
+
* method, or the request fails) and fall back to displaying the raw ID.
|
|
941
|
+
*/
|
|
942
|
+
class PermissionScopeResolverService {
|
|
943
|
+
companyProvider = inject(COMPANY_API_PROVIDER);
|
|
944
|
+
async resolveCompanyInfo(companyIds) {
|
|
945
|
+
if (companyIds.length === 0 || !this.companyProvider.getCompaniesByIds) {
|
|
946
|
+
return new Map();
|
|
947
|
+
}
|
|
948
|
+
try {
|
|
949
|
+
const response = await firstValueFrom(this.companyProvider.getCompaniesByIds(companyIds));
|
|
950
|
+
return new Map((response.data ?? []).map((c) => [c.id, c]));
|
|
951
|
+
}
|
|
952
|
+
catch {
|
|
953
|
+
return new Map();
|
|
954
|
+
}
|
|
955
|
+
}
|
|
956
|
+
async resolveBranchInfo(branchIds) {
|
|
957
|
+
if (branchIds.length === 0 || !this.companyProvider.getBranchesByIds) {
|
|
958
|
+
return new Map();
|
|
959
|
+
}
|
|
960
|
+
try {
|
|
961
|
+
const response = await firstValueFrom(this.companyProvider.getBranchesByIds(branchIds));
|
|
962
|
+
return new Map((response.data ?? []).map((b) => [b.id, b]));
|
|
963
|
+
}
|
|
964
|
+
catch {
|
|
965
|
+
return new Map();
|
|
966
|
+
}
|
|
967
|
+
}
|
|
968
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: PermissionScopeResolverService, deps: [], target: i0.ɵɵFactoryTarget.Service });
|
|
969
|
+
static ɵprov = i0.ɵɵngDeclareService({ minVersion: "22.0.0", version: "22.1.5", ngImport: i0, type: PermissionScopeResolverService });
|
|
970
|
+
}
|
|
971
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: PermissionScopeResolverService, decorators: [{
|
|
972
|
+
type: Service
|
|
973
|
+
}] });
|
|
974
|
+
|
|
927
975
|
// Role services
|
|
928
976
|
|
|
929
977
|
function toLogicNode(node) {
|
|
@@ -1193,7 +1241,7 @@ class LogicBuilderComponent {
|
|
|
1193
1241
|
}
|
|
1194
1242
|
</div>
|
|
1195
1243
|
</ng-template>
|
|
1196
|
-
`, 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(--f-blue-100, #dbeafe);color:var(--f-blue-700, #1e40af)}.node-type.action{background-color:var(--f-green-100, #d1fae5);color:var(--f-green-700, #065f46)}:host-context(.app-dark) .node-type.group{background-color:#3b82f633;color:var(--f-blue-400, #60a5fa)}:host-context(.app-dark) .node-type.action{background-color:#22c55e33;color:var(--f-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(--f-yellow-100, #fef3c7);color:var(--f-yellow-700, #92400e)}.operator-badge.or{background-color:var(--f-indigo-100, #e0e7ff);color:var(--f-indigo-700, #3730a3)}:host-context(.app-dark) .operator-badge.and{background-color:#eab30833;color:var(--f-yellow-400, #facc15)}:host-context(.app-dark) .operator-badge.or{background-color:#6366f133;color:var(--f-indigo-400, #818cf8)}.operator-badge:hover{opacity:.8}.action-select{background-color:var(--f-surface-0, #ffffff);color:var(--f-text-color, #1f2937)}:host-context(.app-dark) .action-select{background-color:var(--f-surface-900, #1f2937);color:var(--f-text-color, #f9fafb)}.action-select:focus{outline:none;border-color:var(--f-primary-color, #3b82f6)}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: FButtonDirective, selector: "[fButton]", inputs: ["severity", "text", "outlined", "link", "variant", "rounded", "raised", "fluid", "disabled", "loading", "loadingIcon", "size", "label", "icon", "iconPos", "ariaLabel", "plain"] }, { kind: "component", type: SelectComponent, selector: "f-select", inputs: ["options", "optionLabel", "optionValue", "placeholder", "disabled", "filter", "filterBy", "filterMatchMode", "filterLocale", "filterPlaceholder", "resetFilterOnHide", "autofocusFilter", "emptyMessage", "emptyFilterMessage", "showClear", "loading", "loadingIcon", "dropdownIcon", "clearIcon", "inputId", "invalid", "touched", "styleClass", "style", "appendTo", "editable", "readonly", "autofocus", "checkmark", "group", "optionGroupLabel", "optionGroupChildren", "virtualScroll", "virtualScrollItemSize", "lazy"], outputs: ["onFilter", "onChange", "onShow", "onHide", "onBlur", "onFocus", "onClear", "onLazyLoad"] }, { kind: "directive", type: TooltipDirective, selector: "[fTooltip]", inputs: ["fTooltip", "tooltipPosition", "positionStyle", "tooltipStyleClass", "disabled", "tooltipEvent", "showDelay", "hideDelay", "life", "autoHide", "positionTop", "positionLeft", "escape"] }, { kind: "component", type: UiIconComponent, selector: "ui-icon", inputs: ["name", "size", "spin", "fill", "severity"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
|
|
1244
|
+
`, 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(--f-blue-100, #dbeafe);color:var(--f-blue-700, #1e40af)}.node-type.action{background-color:var(--f-green-100, #d1fae5);color:var(--f-green-700, #065f46)}:host-context(.app-dark) .node-type.group{background-color:#3b82f633;color:var(--f-blue-400, #60a5fa)}:host-context(.app-dark) .node-type.action{background-color:#22c55e33;color:var(--f-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(--f-yellow-100, #fef3c7);color:var(--f-yellow-700, #92400e)}.operator-badge.or{background-color:var(--f-indigo-100, #e0e7ff);color:var(--f-indigo-700, #3730a3)}:host-context(.app-dark) .operator-badge.and{background-color:#eab30833;color:var(--f-yellow-400, #facc15)}:host-context(.app-dark) .operator-badge.or{background-color:#6366f133;color:var(--f-indigo-400, #818cf8)}.operator-badge:hover{opacity:.8}.action-select{background-color:var(--f-surface-0, #ffffff);color:var(--f-text-color, #1f2937)}:host-context(.app-dark) .action-select{background-color:var(--f-surface-900, #1f2937);color:var(--f-text-color, #f9fafb)}.action-select:focus{outline:none;border-color:var(--f-primary-color, #3b82f6)}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: FButtonDirective, selector: "[fButton]", inputs: ["severity", "text", "outlined", "link", "variant", "rounded", "raised", "fluid", "disabled", "loading", "loadingIcon", "size", "label", "icon", "iconPos", "ariaLabel", "plain"] }, { kind: "component", type: SelectComponent, selector: "f-select", inputs: ["options", "optionLabel", "optionValue", "placeholder", "disabled", "filter", "filterBy", "filterMatchMode", "filterLocale", "filterPlaceholder", "resetFilterOnHide", "autofocusFilter", "emptyMessage", "emptyFilterMessage", "showClear", "loading", "loadingIcon", "dropdownIcon", "clearIcon", "inputId", "invalid", "touched", "styleClass", "style", "appendTo", "editable", "readonly", "autofocus", "checkmark", "group", "optionGroupLabel", "optionGroupChildren", "virtualScroll", "virtualScrollItemSize", "lazy", "selectedObject"], outputs: ["onFilter", "onChange", "onShow", "onHide", "onBlur", "onFocus", "onClear", "onLazyLoad"] }, { kind: "directive", type: TooltipDirective, selector: "[fTooltip]", inputs: ["fTooltip", "tooltipPosition", "positionStyle", "tooltipStyleClass", "disabled", "tooltipEvent", "showDelay", "hideDelay", "life", "autoHide", "positionTop", "positionLeft", "escape"] }, { kind: "component", type: UiIconComponent, selector: "ui-icon", inputs: ["name", "size", "spin", "fill", "severity"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
|
|
1197
1245
|
}
|
|
1198
1246
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: LogicBuilderComponent, decorators: [{
|
|
1199
1247
|
type: Component,
|
|
@@ -1979,7 +2027,7 @@ class RoleActionSelectorComponent extends BaseActionSelectorComponent {
|
|
|
1979
2027
|
}
|
|
1980
2028
|
}
|
|
1981
2029
|
</div>
|
|
1982
|
-
`, isInline: true, styles: [":host{display:block}.empty-state-icon{width:3rem;height:3rem;border-radius:9999px;display:flex;align-items:center;justify-content:center;background-color:var(--f-primary-50, rgba(59, 130, 246, .08))}:host-context(.app-dark) .empty-state-icon{background-color:#60a5fa1f}.validation-warning{background-color:var(--f-yellow-50, #fefce8);border-left:4px solid var(--f-yellow-500, #eab308);color:var(--f-yellow-700, #a16207)}:host-context(.app-dark) .validation-warning{background-color:#eab3081a;color:var(--f-yellow-400, #facc15)}:host ::ng-deep tr.highlight-warning{background-color:var(--f-red-50, rgba(239, 68, 68, .1))!important}:host-context(.app-dark) ::ng-deep tr.highlight-warning{background-color:#ef444426!important}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: CheckboxComponent, selector: "f-checkbox", inputs: ["label", "binary", "disabled", "readonly", "inputId", "invalid", "indeterminate", "variant", "size", "touched", "styleClass", "style", "checked"], outputs: ["onChange", "onBlur", "touch", "checkedChange"] }, { kind: "directive", type: FButtonDirective, selector: "[fButton]", inputs: ["severity", "text", "outlined", "link", "variant", "rounded", "raised", "fluid", "disabled", "loading", "loadingIcon", "size", "label", "icon", "iconPos", "ariaLabel", "plain"] }, { kind: "component", type: SelectComponent, selector: "f-select", inputs: ["options", "optionLabel", "optionValue", "placeholder", "disabled", "filter", "filterBy", "filterMatchMode", "filterLocale", "filterPlaceholder", "resetFilterOnHide", "autofocusFilter", "emptyMessage", "emptyFilterMessage", "showClear", "loading", "loadingIcon", "dropdownIcon", "clearIcon", "inputId", "invalid", "touched", "styleClass", "style", "appendTo", "editable", "readonly", "autofocus", "checkmark", "group", "optionGroupLabel", "optionGroupChildren", "virtualScroll", "virtualScrollItemSize", "lazy"], outputs: ["onFilter", "onChange", "onShow", "onHide", "onBlur", "onFocus", "onClear", "onLazyLoad"] }, { kind: "component", type: TagComponent, selector: "f-tag", inputs: ["value", "severity", "icon", "rounded", "color", "styleClass", "style"] }, { kind: "directive", type: TooltipDirective, selector: "[fTooltip]", inputs: ["fTooltip", "tooltipPosition", "positionStyle", "tooltipStyleClass", "disabled", "tooltipEvent", "showDelay", "hideDelay", "life", "autoHide", "positionTop", "positionLeft", "escape"] }, { kind: "component", type: TreeTableComponent, selector: "f-treetable", inputs: ["value", "loading", "dataKey", "styleClass", "tableStyle", "scrollable", "scrollHeight", "resizableColumns", "lazy", "totalRecords", "paginator", "first", "rows", "rowsPerPageOptions", "showCurrentPageReport", "currentPageReportTemplate", "globalFilterFields", "filterDelay", "selectionMode", "sortMode", "virtualScroll", "virtualScrollItemSize", "sortField", "sortOrder", "multiSortMeta", "filters", "selection", "contextMenuSelection"], outputs: ["sortFieldChange", "sortOrderChange", "multiSortMetaChange", "filtersChange", "selectionChange", "contextMenuSelectionChange", "onLazyLoad", "onSort", "onFilter", "onNodeExpand", "onNodeCollapse", "onNodeSelect", "onNodeUnselect", "onRowContextMenu"] }, { kind: "component", type: TreeTableTogglerComponent, selector: "f-treetabletoggler", inputs: ["rowNode"] }, { kind: "component", type: UiIconComponent, selector: "ui-icon", inputs: ["name", "size", "spin", "fill", "severity"] }, { kind: "directive", type: HasPermissionDirective, selector: "[hasPermission]", inputs: ["hasPermission"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
|
|
2030
|
+
`, isInline: true, styles: [":host{display:block}.empty-state-icon{width:3rem;height:3rem;border-radius:9999px;display:flex;align-items:center;justify-content:center;background-color:var(--f-primary-50, rgba(59, 130, 246, .08))}:host-context(.app-dark) .empty-state-icon{background-color:#60a5fa1f}.validation-warning{background-color:var(--f-yellow-50, #fefce8);border-left:4px solid var(--f-yellow-500, #eab308);color:var(--f-yellow-700, #a16207)}:host-context(.app-dark) .validation-warning{background-color:#eab3081a;color:var(--f-yellow-400, #facc15)}:host ::ng-deep tr.highlight-warning{background-color:var(--f-red-50, rgba(239, 68, 68, .1))!important}:host-context(.app-dark) ::ng-deep tr.highlight-warning{background-color:#ef444426!important}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: CheckboxComponent, selector: "f-checkbox", inputs: ["label", "binary", "disabled", "readonly", "inputId", "invalid", "indeterminate", "variant", "size", "touched", "styleClass", "style", "checked"], outputs: ["onChange", "onBlur", "touch", "checkedChange"] }, { kind: "directive", type: FButtonDirective, selector: "[fButton]", inputs: ["severity", "text", "outlined", "link", "variant", "rounded", "raised", "fluid", "disabled", "loading", "loadingIcon", "size", "label", "icon", "iconPos", "ariaLabel", "plain"] }, { kind: "component", type: SelectComponent, selector: "f-select", inputs: ["options", "optionLabel", "optionValue", "placeholder", "disabled", "filter", "filterBy", "filterMatchMode", "filterLocale", "filterPlaceholder", "resetFilterOnHide", "autofocusFilter", "emptyMessage", "emptyFilterMessage", "showClear", "loading", "loadingIcon", "dropdownIcon", "clearIcon", "inputId", "invalid", "touched", "styleClass", "style", "appendTo", "editable", "readonly", "autofocus", "checkmark", "group", "optionGroupLabel", "optionGroupChildren", "virtualScroll", "virtualScrollItemSize", "lazy", "selectedObject"], outputs: ["onFilter", "onChange", "onShow", "onHide", "onBlur", "onFocus", "onClear", "onLazyLoad"] }, { kind: "component", type: TagComponent, selector: "f-tag", inputs: ["value", "severity", "icon", "rounded", "color", "styleClass", "style"] }, { kind: "directive", type: TooltipDirective, selector: "[fTooltip]", inputs: ["fTooltip", "tooltipPosition", "positionStyle", "tooltipStyleClass", "disabled", "tooltipEvent", "showDelay", "hideDelay", "life", "autoHide", "positionTop", "positionLeft", "escape"] }, { kind: "component", type: TreeTableComponent, selector: "f-treetable", inputs: ["value", "loading", "dataKey", "styleClass", "tableStyle", "scrollable", "scrollHeight", "resizableColumns", "lazy", "totalRecords", "paginator", "first", "rows", "rowsPerPageOptions", "showCurrentPageReport", "currentPageReportTemplate", "globalFilterFields", "filterDelay", "selectionMode", "sortMode", "virtualScroll", "virtualScrollItemSize", "sortField", "sortOrder", "multiSortMeta", "filters", "selection", "contextMenuSelection"], outputs: ["sortFieldChange", "sortOrderChange", "multiSortMetaChange", "filtersChange", "selectionChange", "contextMenuSelectionChange", "onLazyLoad", "onSort", "onFilter", "onNodeExpand", "onNodeCollapse", "onNodeSelect", "onNodeUnselect", "onRowContextMenu"] }, { kind: "component", type: TreeTableTogglerComponent, selector: "f-treetabletoggler", inputs: ["rowNode"] }, { kind: "component", type: UiIconComponent, selector: "ui-icon", inputs: ["name", "size", "spin", "fill", "severity"] }, { kind: "directive", type: HasPermissionDirective, selector: "[hasPermission]", inputs: ["hasPermission"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
|
|
1983
2031
|
}
|
|
1984
2032
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: RoleActionSelectorComponent, decorators: [{
|
|
1985
2033
|
type: Component,
|
|
@@ -2701,7 +2749,7 @@ class CompanyActionSelectorComponent extends BaseActionSelectorComponent {
|
|
|
2701
2749
|
}
|
|
2702
2750
|
}
|
|
2703
2751
|
</div>
|
|
2704
|
-
`, isInline: true, styles: [":host{display:block}.empty-state-icon{width:3rem;height:3rem;border-radius:9999px;display:flex;align-items:center;justify-content:center;background-color:var(--f-primary-50, rgba(59, 130, 246, .08))}:host-context(.app-dark) .empty-state-icon{background-color:#60a5fa1f}.validation-warning{background-color:var(--f-yellow-50, #fefce8);border-left:4px solid var(--f-yellow-500, #eab308);color:var(--f-yellow-700, #a16207)}:host-context(.app-dark) .validation-warning{background-color:#eab3081a;color:var(--f-yellow-400, #facc15)}:host ::ng-deep tr.highlight-warning{background-color:var(--f-red-50, rgba(239, 68, 68, .1))!important}:host-context(.app-dark) ::ng-deep tr.highlight-warning{background-color:#ef444426!important}\n"], dependencies: [{ kind: "component", type: CheckboxComponent, selector: "f-checkbox", inputs: ["label", "binary", "disabled", "readonly", "inputId", "invalid", "indeterminate", "variant", "size", "touched", "styleClass", "style", "checked"], outputs: ["onChange", "onBlur", "touch", "checkedChange"] }, { kind: "directive", type: FButtonDirective, selector: "[fButton]", inputs: ["severity", "text", "outlined", "link", "variant", "rounded", "raised", "fluid", "disabled", "loading", "loadingIcon", "size", "label", "icon", "iconPos", "ariaLabel", "plain"] }, { kind: "component", type: SelectComponent, selector: "f-select", inputs: ["options", "optionLabel", "optionValue", "placeholder", "disabled", "filter", "filterBy", "filterMatchMode", "filterLocale", "filterPlaceholder", "resetFilterOnHide", "autofocusFilter", "emptyMessage", "emptyFilterMessage", "showClear", "loading", "loadingIcon", "dropdownIcon", "clearIcon", "inputId", "invalid", "touched", "styleClass", "style", "appendTo", "editable", "readonly", "autofocus", "checkmark", "group", "optionGroupLabel", "optionGroupChildren", "virtualScroll", "virtualScrollItemSize", "lazy"], outputs: ["onFilter", "onChange", "onShow", "onHide", "onBlur", "onFocus", "onClear", "onLazyLoad"] }, { kind: "component", type: TagComponent, selector: "f-tag", inputs: ["value", "severity", "icon", "rounded", "color", "styleClass", "style"] }, { kind: "directive", type: TooltipDirective, selector: "[fTooltip]", inputs: ["fTooltip", "tooltipPosition", "positionStyle", "tooltipStyleClass", "disabled", "tooltipEvent", "showDelay", "hideDelay", "life", "autoHide", "positionTop", "positionLeft", "escape"] }, { kind: "component", type: TreeTableComponent, selector: "f-treetable", inputs: ["value", "loading", "dataKey", "styleClass", "tableStyle", "scrollable", "scrollHeight", "resizableColumns", "lazy", "totalRecords", "paginator", "first", "rows", "rowsPerPageOptions", "showCurrentPageReport", "currentPageReportTemplate", "globalFilterFields", "filterDelay", "selectionMode", "sortMode", "virtualScroll", "virtualScrollItemSize", "sortField", "sortOrder", "multiSortMeta", "filters", "selection", "contextMenuSelection"], outputs: ["sortFieldChange", "sortOrderChange", "multiSortMetaChange", "filtersChange", "selectionChange", "contextMenuSelectionChange", "onLazyLoad", "onSort", "onFilter", "onNodeExpand", "onNodeCollapse", "onNodeSelect", "onNodeUnselect", "onRowContextMenu"] }, { kind: "component", type: TreeTableTogglerComponent, selector: "f-treetabletoggler", inputs: ["rowNode"] }, { kind: "component", type: UiIconComponent, selector: "ui-icon", inputs: ["name", "size", "spin", "fill", "severity"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: HasPermissionDirective, selector: "[hasPermission]", inputs: ["hasPermission"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
|
|
2752
|
+
`, isInline: true, styles: [":host{display:block}.empty-state-icon{width:3rem;height:3rem;border-radius:9999px;display:flex;align-items:center;justify-content:center;background-color:var(--f-primary-50, rgba(59, 130, 246, .08))}:host-context(.app-dark) .empty-state-icon{background-color:#60a5fa1f}.validation-warning{background-color:var(--f-yellow-50, #fefce8);border-left:4px solid var(--f-yellow-500, #eab308);color:var(--f-yellow-700, #a16207)}:host-context(.app-dark) .validation-warning{background-color:#eab3081a;color:var(--f-yellow-400, #facc15)}:host ::ng-deep tr.highlight-warning{background-color:var(--f-red-50, rgba(239, 68, 68, .1))!important}:host-context(.app-dark) ::ng-deep tr.highlight-warning{background-color:#ef444426!important}\n"], dependencies: [{ kind: "component", type: CheckboxComponent, selector: "f-checkbox", inputs: ["label", "binary", "disabled", "readonly", "inputId", "invalid", "indeterminate", "variant", "size", "touched", "styleClass", "style", "checked"], outputs: ["onChange", "onBlur", "touch", "checkedChange"] }, { kind: "directive", type: FButtonDirective, selector: "[fButton]", inputs: ["severity", "text", "outlined", "link", "variant", "rounded", "raised", "fluid", "disabled", "loading", "loadingIcon", "size", "label", "icon", "iconPos", "ariaLabel", "plain"] }, { kind: "component", type: SelectComponent, selector: "f-select", inputs: ["options", "optionLabel", "optionValue", "placeholder", "disabled", "filter", "filterBy", "filterMatchMode", "filterLocale", "filterPlaceholder", "resetFilterOnHide", "autofocusFilter", "emptyMessage", "emptyFilterMessage", "showClear", "loading", "loadingIcon", "dropdownIcon", "clearIcon", "inputId", "invalid", "touched", "styleClass", "style", "appendTo", "editable", "readonly", "autofocus", "checkmark", "group", "optionGroupLabel", "optionGroupChildren", "virtualScroll", "virtualScrollItemSize", "lazy", "selectedObject"], outputs: ["onFilter", "onChange", "onShow", "onHide", "onBlur", "onFocus", "onClear", "onLazyLoad"] }, { kind: "component", type: TagComponent, selector: "f-tag", inputs: ["value", "severity", "icon", "rounded", "color", "styleClass", "style"] }, { kind: "directive", type: TooltipDirective, selector: "[fTooltip]", inputs: ["fTooltip", "tooltipPosition", "positionStyle", "tooltipStyleClass", "disabled", "tooltipEvent", "showDelay", "hideDelay", "life", "autoHide", "positionTop", "positionLeft", "escape"] }, { kind: "component", type: TreeTableComponent, selector: "f-treetable", inputs: ["value", "loading", "dataKey", "styleClass", "tableStyle", "scrollable", "scrollHeight", "resizableColumns", "lazy", "totalRecords", "paginator", "first", "rows", "rowsPerPageOptions", "showCurrentPageReport", "currentPageReportTemplate", "globalFilterFields", "filterDelay", "selectionMode", "sortMode", "virtualScroll", "virtualScrollItemSize", "sortField", "sortOrder", "multiSortMeta", "filters", "selection", "contextMenuSelection"], outputs: ["sortFieldChange", "sortOrderChange", "multiSortMetaChange", "filtersChange", "selectionChange", "contextMenuSelectionChange", "onLazyLoad", "onSort", "onFilter", "onNodeExpand", "onNodeCollapse", "onNodeSelect", "onNodeUnselect", "onRowContextMenu"] }, { kind: "component", type: TreeTableTogglerComponent, selector: "f-treetabletoggler", inputs: ["rowNode"] }, { kind: "component", type: UiIconComponent, selector: "ui-icon", inputs: ["name", "size", "spin", "fill", "severity"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: HasPermissionDirective, selector: "[hasPermission]", inputs: ["hasPermission"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
|
|
2705
2753
|
}
|
|
2706
2754
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: CompanyActionSelectorComponent, decorators: [{
|
|
2707
2755
|
type: Component,
|
|
@@ -3521,7 +3569,7 @@ class UserRoleSelectorComponent {
|
|
|
3521
3569
|
}
|
|
3522
3570
|
}
|
|
3523
3571
|
</div>
|
|
3524
|
-
`, isInline: true, styles: [":host{display:block}.empty-state-icon{width:3rem;height:3rem;border-radius:9999px;display:flex;align-items:center;justify-content:center;background-color:var(--f-primary-50, rgba(59, 130, 246, .08))}:host-context(.app-dark) .empty-state-icon{background-color:#60a5fa1f}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: CheckboxComponent, selector: "f-checkbox", inputs: ["label", "binary", "disabled", "readonly", "inputId", "invalid", "indeterminate", "variant", "size", "touched", "styleClass", "style", "checked"], outputs: ["onChange", "onBlur", "touch", "checkedChange"] }, { kind: "directive", type: FButtonDirective, selector: "[fButton]", inputs: ["severity", "text", "outlined", "link", "variant", "rounded", "raised", "fluid", "disabled", "loading", "loadingIcon", "size", "label", "icon", "iconPos", "ariaLabel", "plain"] }, { kind: "component", type: SelectComponent, selector: "f-select", inputs: ["options", "optionLabel", "optionValue", "placeholder", "disabled", "filter", "filterBy", "filterMatchMode", "filterLocale", "filterPlaceholder", "resetFilterOnHide", "autofocusFilter", "emptyMessage", "emptyFilterMessage", "showClear", "loading", "loadingIcon", "dropdownIcon", "clearIcon", "inputId", "invalid", "touched", "styleClass", "style", "appendTo", "editable", "readonly", "autofocus", "checkmark", "group", "optionGroupLabel", "optionGroupChildren", "virtualScroll", "virtualScrollItemSize", "lazy"], outputs: ["onFilter", "onChange", "onShow", "onHide", "onBlur", "onFocus", "onClear", "onLazyLoad"] }, { kind: "component", type: TableComponent, selector: "f-table", inputs: ["value", "lazy", "loading", "rows", "totalRecords", "rowHover", "dataKey", "scrollable", "scrollHeight", "paginator", "first", "rowsPerPageOptions", "showCurrentPageReport", "currentPageReportTemplate", "tableStyle", "styleClass", "globalFilterFields", "filterDelay", "responsiveLayout", "selectionMode", "sortMode", "rowExpandMode", "resizableColumns", "rowStyleClass", "virtualScroll", "virtualScrollItemSize", "sortField", "sortOrder", "multiSortMeta", "filters", "selection", "expandedRowKeys", "contextMenuSelection"], outputs: ["sortFieldChange", "sortOrderChange", "multiSortMetaChange", "filtersChange", "selectionChange", "expandedRowKeysChange", "contextMenuSelectionChange", "onLazyLoad", "onSort", "onFilter", "onRowSelect", "onRowUnselect", "onSelectAllChange", "onRowExpand", "onRowCollapse", "onColResize", "onRowContextMenu"] }, { kind: "directive", type: TooltipDirective, selector: "[fTooltip]", inputs: ["fTooltip", "tooltipPosition", "positionStyle", "tooltipStyleClass", "disabled", "tooltipEvent", "showDelay", "hideDelay", "life", "autoHide", "positionTop", "positionLeft", "escape"] }, { kind: "component", type: UiIconComponent, selector: "ui-icon", inputs: ["name", "size", "spin", "fill", "severity"] }, { 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" }] });
|
|
3572
|
+
`, isInline: true, styles: [":host{display:block}.empty-state-icon{width:3rem;height:3rem;border-radius:9999px;display:flex;align-items:center;justify-content:center;background-color:var(--f-primary-50, rgba(59, 130, 246, .08))}:host-context(.app-dark) .empty-state-icon{background-color:#60a5fa1f}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: CheckboxComponent, selector: "f-checkbox", inputs: ["label", "binary", "disabled", "readonly", "inputId", "invalid", "indeterminate", "variant", "size", "touched", "styleClass", "style", "checked"], outputs: ["onChange", "onBlur", "touch", "checkedChange"] }, { kind: "directive", type: FButtonDirective, selector: "[fButton]", inputs: ["severity", "text", "outlined", "link", "variant", "rounded", "raised", "fluid", "disabled", "loading", "loadingIcon", "size", "label", "icon", "iconPos", "ariaLabel", "plain"] }, { kind: "component", type: SelectComponent, selector: "f-select", inputs: ["options", "optionLabel", "optionValue", "placeholder", "disabled", "filter", "filterBy", "filterMatchMode", "filterLocale", "filterPlaceholder", "resetFilterOnHide", "autofocusFilter", "emptyMessage", "emptyFilterMessage", "showClear", "loading", "loadingIcon", "dropdownIcon", "clearIcon", "inputId", "invalid", "touched", "styleClass", "style", "appendTo", "editable", "readonly", "autofocus", "checkmark", "group", "optionGroupLabel", "optionGroupChildren", "virtualScroll", "virtualScrollItemSize", "lazy", "selectedObject"], outputs: ["onFilter", "onChange", "onShow", "onHide", "onBlur", "onFocus", "onClear", "onLazyLoad"] }, { kind: "component", type: TableComponent, selector: "f-table", inputs: ["value", "lazy", "loading", "rows", "totalRecords", "rowHover", "dataKey", "scrollable", "scrollHeight", "paginator", "first", "rowsPerPageOptions", "showCurrentPageReport", "currentPageReportTemplate", "tableStyle", "styleClass", "globalFilterFields", "filterDelay", "responsiveLayout", "selectionMode", "sortMode", "rowExpandMode", "resizableColumns", "rowStyleClass", "virtualScroll", "virtualScrollItemSize", "sortField", "sortOrder", "multiSortMeta", "filters", "selection", "expandedRowKeys", "contextMenuSelection"], outputs: ["sortFieldChange", "sortOrderChange", "multiSortMetaChange", "filtersChange", "selectionChange", "expandedRowKeysChange", "contextMenuSelectionChange", "onLazyLoad", "onSort", "onFilter", "onRowSelect", "onRowUnselect", "onSelectAllChange", "onRowExpand", "onRowCollapse", "onColResize", "onRowContextMenu"] }, { kind: "directive", type: TooltipDirective, selector: "[fTooltip]", inputs: ["fTooltip", "tooltipPosition", "positionStyle", "tooltipStyleClass", "disabled", "tooltipEvent", "showDelay", "hideDelay", "life", "autoHide", "positionTop", "positionLeft", "escape"] }, { kind: "component", type: UiIconComponent, selector: "ui-icon", inputs: ["name", "size", "spin", "fill", "severity"] }, { 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" }] });
|
|
3525
3573
|
}
|
|
3526
3574
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: UserRoleSelectorComponent, decorators: [{
|
|
3527
3575
|
type: Component,
|
|
@@ -4358,7 +4406,7 @@ class UserActionSelectorComponent extends BaseActionSelectorComponent {
|
|
|
4358
4406
|
}
|
|
4359
4407
|
}
|
|
4360
4408
|
</div>
|
|
4361
|
-
`, isInline: true, styles: [":host{display:block}.empty-state-icon{width:3rem;height:3rem;border-radius:9999px;display:flex;align-items:center;justify-content:center;background-color:var(--f-primary-50, rgba(59, 130, 246, .08))}:host-context(.app-dark) .empty-state-icon{background-color:#60a5fa1f}.validation-warning{background-color:var(--f-yellow-50, #fefce8);border-left:4px solid var(--f-yellow-500, #eab308);color:var(--f-yellow-700, #a16207)}:host-context(.app-dark) .validation-warning{background-color:#eab3081a;color:var(--f-yellow-400, #facc15)}:host ::ng-deep tr.highlight-warning{background-color:var(--f-red-50, rgba(239, 68, 68, .1))!important}:host-context(.app-dark) ::ng-deep tr.highlight-warning{background-color:#ef444426!important}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: CheckboxComponent, selector: "f-checkbox", inputs: ["label", "binary", "disabled", "readonly", "inputId", "invalid", "indeterminate", "variant", "size", "touched", "styleClass", "style", "checked"], outputs: ["onChange", "onBlur", "touch", "checkedChange"] }, { kind: "directive", type: FButtonDirective, selector: "[fButton]", inputs: ["severity", "text", "outlined", "link", "variant", "rounded", "raised", "fluid", "disabled", "loading", "loadingIcon", "size", "label", "icon", "iconPos", "ariaLabel", "plain"] }, { kind: "component", type: SelectComponent, selector: "f-select", inputs: ["options", "optionLabel", "optionValue", "placeholder", "disabled", "filter", "filterBy", "filterMatchMode", "filterLocale", "filterPlaceholder", "resetFilterOnHide", "autofocusFilter", "emptyMessage", "emptyFilterMessage", "showClear", "loading", "loadingIcon", "dropdownIcon", "clearIcon", "inputId", "invalid", "touched", "styleClass", "style", "appendTo", "editable", "readonly", "autofocus", "checkmark", "group", "optionGroupLabel", "optionGroupChildren", "virtualScroll", "virtualScrollItemSize", "lazy"], outputs: ["onFilter", "onChange", "onShow", "onHide", "onBlur", "onFocus", "onClear", "onLazyLoad"] }, { kind: "component", type: TagComponent, selector: "f-tag", inputs: ["value", "severity", "icon", "rounded", "color", "styleClass", "style"] }, { kind: "directive", type: TooltipDirective, selector: "[fTooltip]", inputs: ["fTooltip", "tooltipPosition", "positionStyle", "tooltipStyleClass", "disabled", "tooltipEvent", "showDelay", "hideDelay", "life", "autoHide", "positionTop", "positionLeft", "escape"] }, { kind: "component", type: TreeTableComponent, selector: "f-treetable", inputs: ["value", "loading", "dataKey", "styleClass", "tableStyle", "scrollable", "scrollHeight", "resizableColumns", "lazy", "totalRecords", "paginator", "first", "rows", "rowsPerPageOptions", "showCurrentPageReport", "currentPageReportTemplate", "globalFilterFields", "filterDelay", "selectionMode", "sortMode", "virtualScroll", "virtualScrollItemSize", "sortField", "sortOrder", "multiSortMeta", "filters", "selection", "contextMenuSelection"], outputs: ["sortFieldChange", "sortOrderChange", "multiSortMetaChange", "filtersChange", "selectionChange", "contextMenuSelectionChange", "onLazyLoad", "onSort", "onFilter", "onNodeExpand", "onNodeCollapse", "onNodeSelect", "onNodeUnselect", "onRowContextMenu"] }, { kind: "component", type: TreeTableTogglerComponent, selector: "f-treetabletoggler", inputs: ["rowNode"] }, { kind: "component", type: UiIconComponent, selector: "ui-icon", inputs: ["name", "size", "spin", "fill", "severity"] }, { 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" }] });
|
|
4409
|
+
`, isInline: true, styles: [":host{display:block}.empty-state-icon{width:3rem;height:3rem;border-radius:9999px;display:flex;align-items:center;justify-content:center;background-color:var(--f-primary-50, rgba(59, 130, 246, .08))}:host-context(.app-dark) .empty-state-icon{background-color:#60a5fa1f}.validation-warning{background-color:var(--f-yellow-50, #fefce8);border-left:4px solid var(--f-yellow-500, #eab308);color:var(--f-yellow-700, #a16207)}:host-context(.app-dark) .validation-warning{background-color:#eab3081a;color:var(--f-yellow-400, #facc15)}:host ::ng-deep tr.highlight-warning{background-color:var(--f-red-50, rgba(239, 68, 68, .1))!important}:host-context(.app-dark) ::ng-deep tr.highlight-warning{background-color:#ef444426!important}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: CheckboxComponent, selector: "f-checkbox", inputs: ["label", "binary", "disabled", "readonly", "inputId", "invalid", "indeterminate", "variant", "size", "touched", "styleClass", "style", "checked"], outputs: ["onChange", "onBlur", "touch", "checkedChange"] }, { kind: "directive", type: FButtonDirective, selector: "[fButton]", inputs: ["severity", "text", "outlined", "link", "variant", "rounded", "raised", "fluid", "disabled", "loading", "loadingIcon", "size", "label", "icon", "iconPos", "ariaLabel", "plain"] }, { kind: "component", type: SelectComponent, selector: "f-select", inputs: ["options", "optionLabel", "optionValue", "placeholder", "disabled", "filter", "filterBy", "filterMatchMode", "filterLocale", "filterPlaceholder", "resetFilterOnHide", "autofocusFilter", "emptyMessage", "emptyFilterMessage", "showClear", "loading", "loadingIcon", "dropdownIcon", "clearIcon", "inputId", "invalid", "touched", "styleClass", "style", "appendTo", "editable", "readonly", "autofocus", "checkmark", "group", "optionGroupLabel", "optionGroupChildren", "virtualScroll", "virtualScrollItemSize", "lazy", "selectedObject"], outputs: ["onFilter", "onChange", "onShow", "onHide", "onBlur", "onFocus", "onClear", "onLazyLoad"] }, { kind: "component", type: TagComponent, selector: "f-tag", inputs: ["value", "severity", "icon", "rounded", "color", "styleClass", "style"] }, { kind: "directive", type: TooltipDirective, selector: "[fTooltip]", inputs: ["fTooltip", "tooltipPosition", "positionStyle", "tooltipStyleClass", "disabled", "tooltipEvent", "showDelay", "hideDelay", "life", "autoHide", "positionTop", "positionLeft", "escape"] }, { kind: "component", type: TreeTableComponent, selector: "f-treetable", inputs: ["value", "loading", "dataKey", "styleClass", "tableStyle", "scrollable", "scrollHeight", "resizableColumns", "lazy", "totalRecords", "paginator", "first", "rows", "rowsPerPageOptions", "showCurrentPageReport", "currentPageReportTemplate", "globalFilterFields", "filterDelay", "selectionMode", "sortMode", "virtualScroll", "virtualScrollItemSize", "sortField", "sortOrder", "multiSortMeta", "filters", "selection", "contextMenuSelection"], outputs: ["sortFieldChange", "sortOrderChange", "multiSortMetaChange", "filtersChange", "selectionChange", "contextMenuSelectionChange", "onLazyLoad", "onSort", "onFilter", "onNodeExpand", "onNodeCollapse", "onNodeSelect", "onNodeUnselect", "onRowContextMenu"] }, { kind: "component", type: TreeTableTogglerComponent, selector: "f-treetabletoggler", inputs: ["rowNode"] }, { kind: "component", type: UiIconComponent, selector: "ui-icon", inputs: ["name", "size", "spin", "fill", "severity"] }, { 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" }] });
|
|
4362
4410
|
}
|
|
4363
4411
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: UserActionSelectorComponent, decorators: [{
|
|
4364
4412
|
type: Component,
|
|
@@ -4714,13 +4762,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.5", ngImpor
|
|
|
4714
4762
|
* per user. Assigning new users stays on the user-centric
|
|
4715
4763
|
* `UserRoleSelectorComponent` flow — this dialog intentionally has no "add"
|
|
4716
4764
|
* affordance. Since IAM stays independent of the auth package, user display
|
|
4717
|
-
* info is resolved via the `USER_PROVIDER` injection token
|
|
4718
|
-
*
|
|
4765
|
+
* info is resolved via the `USER_PROVIDER` injection token, and
|
|
4766
|
+
* company/branch display info via the shared `PermissionScopeResolverService`
|
|
4767
|
+
* (itself backed by `COMPANY_API_PROVIDER`) rather than a direct join.
|
|
4768
|
+
*
|
|
4769
|
+
* `Role` assignments are global (never scoped to a single company), so the
|
|
4770
|
+
* same user can hold several grants for the same role — one per
|
|
4771
|
+
* company/branch scope (company+branch null = global, branch null = whole
|
|
4772
|
+
* company, both set = a single branch). The company/branch lines are shown
|
|
4773
|
+
* only when at least one returned grant carries a `companyId` (i.e. the
|
|
4774
|
+
* multi-company feature is enabled) — otherwise they're omitted to avoid a
|
|
4775
|
+
* redundant "-" column. Removal is scoped to the exact row's
|
|
4776
|
+
* `companyId`/`branchId`, not just the user+role pair, since a user can
|
|
4777
|
+
* have multiple grants for the same role at different scopes.
|
|
4719
4778
|
*/
|
|
4720
4779
|
class RolePermittedUsersDialogComponent {
|
|
4721
4780
|
USER_ROLE_PERMISSIONS = USER_ROLE_PERMISSIONS;
|
|
4722
4781
|
permissionApi = inject(PermissionApiService);
|
|
4723
4782
|
userProvider = inject(USER_PROVIDER);
|
|
4783
|
+
scopeResolver = inject(PermissionScopeResolverService);
|
|
4724
4784
|
confirmationService = inject(ConfirmationService);
|
|
4725
4785
|
messageService = inject(MessageService);
|
|
4726
4786
|
translateAdapter = inject(TranslateService, {
|
|
@@ -4740,6 +4800,8 @@ class RolePermittedUsersDialogComponent {
|
|
|
4740
4800
|
...(ngDevMode ? [{ debugName: "isRemoving" }] : /* istanbul ignore next */ []));
|
|
4741
4801
|
users = signal([], /* @ts-ignore */
|
|
4742
4802
|
...(ngDevMode ? [{ debugName: "users" }] : /* istanbul ignore next */ []));
|
|
4803
|
+
showCompanyColumn = signal(false, /* @ts-ignore */
|
|
4804
|
+
...(ngDevMode ? [{ debugName: "showCompanyColumn" }] : /* istanbul ignore next */ []));
|
|
4743
4805
|
constructor() {
|
|
4744
4806
|
effect(() => {
|
|
4745
4807
|
if (this.visible() && this.role()) {
|
|
@@ -4755,8 +4817,15 @@ class RolePermittedUsersDialogComponent {
|
|
|
4755
4817
|
try {
|
|
4756
4818
|
const response = await firstValueFrom(this.permissionApi.getRoleUsers(role.id));
|
|
4757
4819
|
const rows = response.data ?? [];
|
|
4758
|
-
const userIds = rows.map((r) => r.userId);
|
|
4759
|
-
const
|
|
4820
|
+
const userIds = [...new Set(rows.map((r) => r.userId))];
|
|
4821
|
+
const companyIds = [...new Set(rows.map((r) => r.companyId).filter((id) => !!id))];
|
|
4822
|
+
const branchIds = [...new Set(rows.map((r) => r.branchId).filter((id) => !!id))];
|
|
4823
|
+
const [userInfoMap, companyInfoMap, branchInfoMap] = await Promise.all([
|
|
4824
|
+
this.resolveUserInfo(userIds),
|
|
4825
|
+
this.scopeResolver.resolveCompanyInfo(companyIds),
|
|
4826
|
+
this.scopeResolver.resolveBranchInfo(branchIds),
|
|
4827
|
+
]);
|
|
4828
|
+
this.showCompanyColumn.set(companyIds.length > 0);
|
|
4760
4829
|
this.users.set(rows.map((r) => {
|
|
4761
4830
|
const info = userInfoMap.get(r.userId);
|
|
4762
4831
|
return {
|
|
@@ -4764,6 +4833,10 @@ class RolePermittedUsersDialogComponent {
|
|
|
4764
4833
|
userId: r.userId,
|
|
4765
4834
|
userName: info?.name ?? r.userId,
|
|
4766
4835
|
userEmail: info?.email ?? '',
|
|
4836
|
+
companyId: r.companyId,
|
|
4837
|
+
companyName: r.companyId ? (companyInfoMap.get(r.companyId)?.name ?? r.companyId) : null,
|
|
4838
|
+
branchId: r.branchId,
|
|
4839
|
+
branchName: r.branchId ? (branchInfoMap.get(r.branchId)?.name ?? r.branchId) : null,
|
|
4767
4840
|
};
|
|
4768
4841
|
}));
|
|
4769
4842
|
}
|
|
@@ -4800,6 +4873,8 @@ class RolePermittedUsersDialogComponent {
|
|
|
4800
4873
|
try {
|
|
4801
4874
|
const response = await firstValueFrom(this.permissionApi.assignUserRoles({
|
|
4802
4875
|
userId: user.userId,
|
|
4876
|
+
companyId: user.companyId ?? undefined,
|
|
4877
|
+
branchId: user.branchId ?? undefined,
|
|
4803
4878
|
items: [{ id: role.id, action: 'remove' }],
|
|
4804
4879
|
}));
|
|
4805
4880
|
if (response.success) {
|
|
@@ -4856,6 +4931,16 @@ class RolePermittedUsersDialogComponent {
|
|
|
4856
4931
|
<div>
|
|
4857
4932
|
<div class="font-semibold">{{ user.userName }}</div>
|
|
4858
4933
|
<div class="text-sm text-muted-color">{{ user.userEmail }}</div>
|
|
4934
|
+
@if (showCompanyColumn() && user.companyName) {
|
|
4935
|
+
<div class="text-xs text-muted-color mt-1">
|
|
4936
|
+
{{ 'iam.company.name' | translate }}: {{ user.companyName }}
|
|
4937
|
+
@if (user.branchName) {
|
|
4938
|
+
· {{ 'iam.branch.name' | translate }}: {{ user.branchName }}
|
|
4939
|
+
} @else {
|
|
4940
|
+
· {{ 'iam.branch.all' | translate }}
|
|
4941
|
+
}
|
|
4942
|
+
</div>
|
|
4943
|
+
}
|
|
4859
4944
|
</div>
|
|
4860
4945
|
<button
|
|
4861
4946
|
fButton
|
|
@@ -4934,6 +5019,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.5", ngImpor
|
|
|
4934
5019
|
<div>
|
|
4935
5020
|
<div class="font-semibold">{{ user.userName }}</div>
|
|
4936
5021
|
<div class="text-sm text-muted-color">{{ user.userEmail }}</div>
|
|
5022
|
+
@if (showCompanyColumn() && user.companyName) {
|
|
5023
|
+
<div class="text-xs text-muted-color mt-1">
|
|
5024
|
+
{{ 'iam.company.name' | translate }}: {{ user.companyName }}
|
|
5025
|
+
@if (user.branchName) {
|
|
5026
|
+
· {{ 'iam.branch.name' | translate }}: {{ user.branchName }}
|
|
5027
|
+
} @else {
|
|
5028
|
+
· {{ 'iam.branch.all' | translate }}
|
|
5029
|
+
}
|
|
5030
|
+
</div>
|
|
5031
|
+
}
|
|
4937
5032
|
</div>
|
|
4938
5033
|
<button
|
|
4939
5034
|
fButton
|
|
@@ -4976,13 +5071,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.5", ngImpor
|
|
|
4976
5071
|
* action per user. Assigning new users stays on the user-centric
|
|
4977
5072
|
* `UserActionSelectorComponent` flow — this dialog intentionally has no
|
|
4978
5073
|
* "add" affordance. Since IAM stays independent of the auth package, user
|
|
4979
|
-
* display info is resolved via the `USER_PROVIDER` injection token
|
|
4980
|
-
*
|
|
5074
|
+
* display info is resolved via the `USER_PROVIDER` injection token, and
|
|
5075
|
+
* company/branch display info via the shared `PermissionScopeResolverService`
|
|
5076
|
+
* (itself backed by `COMPANY_API_PROVIDER`) rather than a direct join.
|
|
5077
|
+
*
|
|
5078
|
+
* `Action` rows are global (never scoped to a single company), so the same
|
|
5079
|
+
* user can hold several grants for the same action — one per
|
|
5080
|
+
* company/branch scope (company+branch null = global, branch null = whole
|
|
5081
|
+
* company, both set = a single branch). The company/branch lines are shown
|
|
5082
|
+
* only when at least one returned grant carries a `companyId` (i.e. the
|
|
5083
|
+
* multi-company feature is enabled) — otherwise they're omitted to avoid a
|
|
5084
|
+
* redundant "-" column. Removal is scoped to the exact row's
|
|
5085
|
+
* `companyId`/`branchId`, not just the user+action pair, since a user can
|
|
5086
|
+
* have multiple grants for the same action at different scopes.
|
|
4981
5087
|
*/
|
|
4982
5088
|
class ActionPermittedUsersDialogComponent {
|
|
4983
5089
|
USER_ACTION_PERMISSIONS = USER_ACTION_PERMISSIONS;
|
|
4984
5090
|
permissionApi = inject(PermissionApiService);
|
|
4985
5091
|
userProvider = inject(USER_PROVIDER);
|
|
5092
|
+
scopeResolver = inject(PermissionScopeResolverService);
|
|
4986
5093
|
confirmationService = inject(ConfirmationService);
|
|
4987
5094
|
messageService = inject(MessageService);
|
|
4988
5095
|
translateAdapter = inject(TranslateService, {
|
|
@@ -5002,6 +5109,8 @@ class ActionPermittedUsersDialogComponent {
|
|
|
5002
5109
|
...(ngDevMode ? [{ debugName: "isRemoving" }] : /* istanbul ignore next */ []));
|
|
5003
5110
|
users = signal([], /* @ts-ignore */
|
|
5004
5111
|
...(ngDevMode ? [{ debugName: "users" }] : /* istanbul ignore next */ []));
|
|
5112
|
+
showCompanyColumn = signal(false, /* @ts-ignore */
|
|
5113
|
+
...(ngDevMode ? [{ debugName: "showCompanyColumn" }] : /* istanbul ignore next */ []));
|
|
5005
5114
|
constructor() {
|
|
5006
5115
|
effect(() => {
|
|
5007
5116
|
if (this.visible() && this.action()) {
|
|
@@ -5017,8 +5126,15 @@ class ActionPermittedUsersDialogComponent {
|
|
|
5017
5126
|
try {
|
|
5018
5127
|
const response = await firstValueFrom(this.permissionApi.getActionUsers(action.id));
|
|
5019
5128
|
const rows = response.data ?? [];
|
|
5020
|
-
const userIds = rows.map((r) => r.userId);
|
|
5021
|
-
const
|
|
5129
|
+
const userIds = [...new Set(rows.map((r) => r.userId))];
|
|
5130
|
+
const companyIds = [...new Set(rows.map((r) => r.companyId).filter((id) => !!id))];
|
|
5131
|
+
const branchIds = [...new Set(rows.map((r) => r.branchId).filter((id) => !!id))];
|
|
5132
|
+
const [userInfoMap, companyInfoMap, branchInfoMap] = await Promise.all([
|
|
5133
|
+
this.resolveUserInfo(userIds),
|
|
5134
|
+
this.scopeResolver.resolveCompanyInfo(companyIds),
|
|
5135
|
+
this.scopeResolver.resolveBranchInfo(branchIds),
|
|
5136
|
+
]);
|
|
5137
|
+
this.showCompanyColumn.set(companyIds.length > 0);
|
|
5022
5138
|
this.users.set(rows.map((r) => {
|
|
5023
5139
|
const info = userInfoMap.get(r.userId);
|
|
5024
5140
|
return {
|
|
@@ -5026,6 +5142,10 @@ class ActionPermittedUsersDialogComponent {
|
|
|
5026
5142
|
userId: r.userId,
|
|
5027
5143
|
userName: info?.name ?? r.userId,
|
|
5028
5144
|
userEmail: info?.email ?? '',
|
|
5145
|
+
companyId: r.companyId,
|
|
5146
|
+
companyName: r.companyId ? (companyInfoMap.get(r.companyId)?.name ?? r.companyId) : null,
|
|
5147
|
+
branchId: r.branchId,
|
|
5148
|
+
branchName: r.branchId ? (branchInfoMap.get(r.branchId)?.name ?? r.branchId) : null,
|
|
5029
5149
|
};
|
|
5030
5150
|
}));
|
|
5031
5151
|
}
|
|
@@ -5062,6 +5182,8 @@ class ActionPermittedUsersDialogComponent {
|
|
|
5062
5182
|
try {
|
|
5063
5183
|
const response = await firstValueFrom(this.permissionApi.assignUserActions({
|
|
5064
5184
|
userId: user.userId,
|
|
5185
|
+
companyId: user.companyId ?? undefined,
|
|
5186
|
+
branchId: user.branchId ?? undefined,
|
|
5065
5187
|
items: [{ id: action.id, action: 'remove' }],
|
|
5066
5188
|
}));
|
|
5067
5189
|
if (response.success) {
|
|
@@ -5118,6 +5240,16 @@ class ActionPermittedUsersDialogComponent {
|
|
|
5118
5240
|
<div>
|
|
5119
5241
|
<div class="font-semibold">{{ user.userName }}</div>
|
|
5120
5242
|
<div class="text-sm text-muted-color">{{ user.userEmail }}</div>
|
|
5243
|
+
@if (showCompanyColumn() && user.companyName) {
|
|
5244
|
+
<div class="text-xs text-muted-color mt-1">
|
|
5245
|
+
{{ 'iam.company.name' | translate }}: {{ user.companyName }}
|
|
5246
|
+
@if (user.branchName) {
|
|
5247
|
+
· {{ 'iam.branch.name' | translate }}: {{ user.branchName }}
|
|
5248
|
+
} @else {
|
|
5249
|
+
· {{ 'iam.branch.all' | translate }}
|
|
5250
|
+
}
|
|
5251
|
+
</div>
|
|
5252
|
+
}
|
|
5121
5253
|
</div>
|
|
5122
5254
|
<button
|
|
5123
5255
|
fButton
|
|
@@ -5196,6 +5328,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.5", ngImpor
|
|
|
5196
5328
|
<div>
|
|
5197
5329
|
<div class="font-semibold">{{ user.userName }}</div>
|
|
5198
5330
|
<div class="text-sm text-muted-color">{{ user.userEmail }}</div>
|
|
5331
|
+
@if (showCompanyColumn() && user.companyName) {
|
|
5332
|
+
<div class="text-xs text-muted-color mt-1">
|
|
5333
|
+
{{ 'iam.company.name' | translate }}: {{ user.companyName }}
|
|
5334
|
+
@if (user.branchName) {
|
|
5335
|
+
· {{ 'iam.branch.name' | translate }}: {{ user.branchName }}
|
|
5336
|
+
} @else {
|
|
5337
|
+
· {{ 'iam.branch.all' | translate }}
|
|
5338
|
+
}
|
|
5339
|
+
</div>
|
|
5340
|
+
}
|
|
5199
5341
|
</div>
|
|
5200
5342
|
<button
|
|
5201
5343
|
fButton
|
|
@@ -5346,15 +5488,15 @@ const IAM_ROUTES = [
|
|
|
5346
5488
|
children: [
|
|
5347
5489
|
{
|
|
5348
5490
|
path: '',
|
|
5349
|
-
loadComponent: () => import('./flusys-ng-iam-action-list-page.component-
|
|
5491
|
+
loadComponent: () => import('./flusys-ng-iam-action-list-page.component-CLCylls2.mjs').then((m) => m.ActionListPageComponent),
|
|
5350
5492
|
},
|
|
5351
5493
|
{
|
|
5352
5494
|
path: 'new',
|
|
5353
|
-
loadComponent: () => import('./flusys-ng-iam-action-form-page.component-
|
|
5495
|
+
loadComponent: () => import('./flusys-ng-iam-action-form-page.component-i3FPyBR7.mjs').then((m) => m.ActionFormPageComponent),
|
|
5354
5496
|
},
|
|
5355
5497
|
{
|
|
5356
5498
|
path: ':id',
|
|
5357
|
-
loadComponent: () => import('./flusys-ng-iam-action-form-page.component-
|
|
5499
|
+
loadComponent: () => import('./flusys-ng-iam-action-form-page.component-i3FPyBR7.mjs').then((m) => m.ActionFormPageComponent),
|
|
5358
5500
|
},
|
|
5359
5501
|
],
|
|
5360
5502
|
},
|
|
@@ -5365,15 +5507,15 @@ const IAM_ROUTES = [
|
|
|
5365
5507
|
children: [
|
|
5366
5508
|
{
|
|
5367
5509
|
path: '',
|
|
5368
|
-
loadComponent: () => import('./flusys-ng-iam-role-list-page.component-
|
|
5510
|
+
loadComponent: () => import('./flusys-ng-iam-role-list-page.component-DyOesI24.mjs').then((m) => m.RoleListPageComponent),
|
|
5369
5511
|
},
|
|
5370
5512
|
{
|
|
5371
5513
|
path: 'new',
|
|
5372
|
-
loadComponent: () => import('./flusys-ng-iam-role-form-page.component-
|
|
5514
|
+
loadComponent: () => import('./flusys-ng-iam-role-form-page.component-BcfbKeAt.mjs').then((m) => m.RoleFormPageComponent),
|
|
5373
5515
|
},
|
|
5374
5516
|
{
|
|
5375
5517
|
path: ':id',
|
|
5376
|
-
loadComponent: () => import('./flusys-ng-iam-role-form-page.component-
|
|
5518
|
+
loadComponent: () => import('./flusys-ng-iam-role-form-page.component-BcfbKeAt.mjs').then((m) => m.RoleFormPageComponent),
|
|
5377
5519
|
},
|
|
5378
5520
|
],
|
|
5379
5521
|
},
|
|
@@ -5388,7 +5530,7 @@ const IAM_ROUTES = [
|
|
|
5388
5530
|
COMPANY_ACTION_PERMISSIONS.READ,
|
|
5389
5531
|
]),
|
|
5390
5532
|
],
|
|
5391
|
-
loadComponent: () => import('./flusys-ng-iam-permission-page.component-
|
|
5533
|
+
loadComponent: () => import('./flusys-ng-iam-permission-page.component-zQgYqLfE.mjs').then((m) => m.PermissionPageComponent),
|
|
5392
5534
|
},
|
|
5393
5535
|
// Default redirect to the first tab the user has permission to see
|
|
5394
5536
|
{
|
|
@@ -5406,5 +5548,5 @@ const IAM_ROUTES = [
|
|
|
5406
5548
|
* Generated bundle index. Do not edit.
|
|
5407
5549
|
*/
|
|
5408
5550
|
|
|
5409
|
-
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, ActionPermittedUsersDialogComponent as b, convertActionToTreeNode as c, buildActionParentTree as d, RolePermittedUsersDialogComponent as e, RoleActionSelectorComponent as f, UserActionSelectorComponent as g, ActionPermissionLogicService as h, IAM_ROUTES as i, MyPermissionsApiService as j,
|
|
5410
|
-
//# sourceMappingURL=flusys-ng-iam-flusys-ng-iam-
|
|
5551
|
+
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, ActionPermittedUsersDialogComponent as b, convertActionToTreeNode as c, buildActionParentTree as d, RolePermittedUsersDialogComponent as e, RoleActionSelectorComponent as f, UserActionSelectorComponent as g, ActionPermissionLogicService as h, IAM_ROUTES as i, MyPermissionsApiService as j, PermissionScopeResolverService as k, PermissionStateService as l, ProfilePermissionProviderAdapter as m, provideIamProviders as p };
|
|
5552
|
+
//# sourceMappingURL=flusys-ng-iam-flusys-ng-iam-BhRNGNaD.mjs.map
|