@abp/ng.identity 10.1.1 → 10.2.0-rc.2

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.
@@ -4,7 +4,7 @@ import { PermissionManagementComponent } from '@abp/ng.permission-management';
4
4
  import { ConfirmationService, ToasterService, Confirmation, ModalComponent, ButtonComponent, ModalCloseDirective, eFormComponets, FormCheckboxComponent, getPasswordValidators } from '@abp/ng.theme.shared';
5
5
  import { FormPropData, generateFormFromProps, ExtensibleTableComponent, ExtensibleFormComponent, EXTENSIONS_IDENTIFIER, EntityAction, EntityProp, FormProp, ToolbarAction, ExtensionsService, getObjectExtensionEntitiesFromStore, mapEntitiesToContributors, mergeWithDefaultActions, mergeWithDefaultProps } from '@abp/ng.components/extensible';
6
6
  import * as i0 from '@angular/core';
7
- import { inject, Injector, Component, ViewChild, InjectionToken, Injectable, NgModule } from '@angular/core';
7
+ import { inject, Injector, Component, viewChild, InjectionToken, Injectable, NgModule } from '@angular/core';
8
8
  import * as i1 from '@angular/forms';
9
9
  import { ReactiveFormsModule, UntypedFormBuilder, FormsModule, Validators } from '@angular/forms';
10
10
  import { finalize, tap, switchMap, map } from 'rxjs/operators';
@@ -12,7 +12,7 @@ import { PageComponent } from '@abp/ng.components/page';
12
12
  import * as i3 from '@ngx-validate/core';
13
13
  import { NgxValidateCoreModule } from '@ngx-validate/core';
14
14
  import * as i2 from '@ng-bootstrap/ng-bootstrap';
15
- import { NgbNavModule, NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';
15
+ import { NgbDropdownModule, NgbNavModule } from '@ng-bootstrap/ng-bootstrap';
16
16
  import { of, map as map$1, tap as tap$1 } from 'rxjs';
17
17
  import * as i1$1 from '@angular/router';
18
18
  import { RouterModule } from '@angular/router';
@@ -105,7 +105,7 @@ class RolesComponent {
105
105
  provide: EXTENSIONS_IDENTIFIER,
106
106
  useValue: "Identity.RolesComponent" /* eIdentityComponents.Roles */,
107
107
  },
108
- ], ngImport: i0, template: "<abp-page [title]=\"'AbpIdentity::Roles' | abpLocalization\" [toolbar]=\"data.items\">\r\n <div id=\"identity-roles-wrapper\" class=\"card\">\r\n <div class=\"card-body\">\r\n <abp-extensible-table\r\n [data]=\"data.items\"\r\n [recordsTotal]=\"data.totalCount\"\r\n [list]=\"list\"\r\n ></abp-extensible-table>\r\n </div>\r\n </div>\r\n\r\n <abp-modal [(visible)]=\"isModalVisible\" [busy]=\"modalBusy\">\r\n <ng-template #abpHeader>\r\n <h3>{{ (selected?.id ? 'AbpIdentity::Edit' : 'AbpIdentity::NewRole') | abpLocalization }}</h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <form [formGroup]=\"form\" (ngSubmit)=\"save()\" [validateOnSubmit]=\"true\">\r\n <abp-extensible-form [selectedRecord]=\"selected\"></abp-extensible-form>\r\n </form>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button type=\"button\" class=\"btn btn-outline-primary\" abpClose>\r\n {{ 'AbpIdentity::Cancel' | abpLocalization }}\r\n </button>\r\n <abp-button iconClass=\"fa fa-check\" [disabled]=\"form?.invalid\" (click)=\"save()\">{{\r\n 'AbpIdentity::Save' | abpLocalization\r\n }}</abp-button>\r\n </ng-template>\r\n </abp-modal>\r\n\r\n <abp-permission-management\r\n #abpPermissionManagement=\"abpPermissionManagement\"\r\n *abpReplaceableTemplate=\"\r\n {\r\n inputs: {\r\n providerName: { value: 'R' },\r\n providerKey: { value: providerKey },\r\n visible: { value: visiblePermissions, twoWay: true },\r\n hideBadges: { value: true }\r\n },\r\n outputs: { visibleChange: onVisiblePermissionChange },\r\n componentKey: permissionManagementKey\r\n };\r\n let init = initTemplate\r\n \"\r\n (abpInit)=\"init(abpPermissionManagement)\"\r\n >\r\n </abp-permission-management>\r\n</abp-page>\r\n", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: ExtensibleTableComponent, selector: "abp-extensible-table", inputs: ["actionsText", "data", "list", "recordsTotal", "actionsColumnWidth", "actionsTemplate", "selectable", "selectionType", "selected", "infiniteScroll", "isLoading", "scrollThreshold", "tableHeight"], outputs: ["tableActivate", "selectionChange", "loadMore"], exportAs: ["abpExtensibleTable"] }, { kind: "component", type: ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { kind: "component", type: ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "formName", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }, { kind: "component", type: PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "component", type: ExtensibleFormComponent, selector: "abp-extensible-form", inputs: ["selectedRecord"], exportAs: ["abpExtensibleForm"] }, { kind: "directive", type: ModalCloseDirective, selector: "[abpClose]" }, { kind: "component", type: PermissionManagementComponent, selector: "abp-permission-management", inputs: ["providerName", "providerKey", "hideBadges", "entityDisplayName", "visible"], outputs: ["visibleChange"], exportAs: ["abpPermissionManagement"] }, { kind: "directive", type: ReplaceableTemplateDirective, selector: "[abpReplaceableTemplate]", inputs: ["abpReplaceableTemplate"] }, { kind: "ngmodule", type: NgxValidateCoreModule }, { kind: "directive", type: i3.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "directive", type: InitDirective, selector: "[abpInit]", outputs: ["abpInit"] }, { kind: "pipe", type: LocalizationPipe, name: "abpLocalization" }] }); }
108
+ ], ngImport: i0, template: "<abp-page [title]=\"'AbpIdentity::Roles' | abpLocalization\" [toolbar]=\"data.items\">\r\n <div id=\"identity-roles-wrapper\" class=\"card\">\r\n <div class=\"card-body\">\r\n <abp-extensible-table\r\n [data]=\"data.items\"\r\n [recordsTotal]=\"data.totalCount\"\r\n [list]=\"list\"\r\n ></abp-extensible-table>\r\n </div>\r\n </div>\r\n\r\n <abp-modal [(visible)]=\"isModalVisible\" [busy]=\"modalBusy\">\r\n <ng-template #abpHeader>\r\n <h3>{{ (selected?.id ? 'AbpIdentity::Edit' : 'AbpIdentity::NewRole') | abpLocalization }}</h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <form [formGroup]=\"form\" (ngSubmit)=\"save()\" [validateOnSubmit]=\"true\">\r\n <abp-extensible-form [selectedRecord]=\"selected\"></abp-extensible-form>\r\n </form>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button type=\"button\" class=\"btn btn-outline-primary\" abpClose>\r\n {{ 'AbpIdentity::Cancel' | abpLocalization }}\r\n </button>\r\n <abp-button iconClass=\"fa fa-check\" [disabled]=\"form?.invalid\" (click)=\"save()\">{{\r\n 'AbpIdentity::Save' | abpLocalization\r\n }}</abp-button>\r\n </ng-template>\r\n </abp-modal>\r\n\r\n <abp-permission-management\r\n #abpPermissionManagement=\"abpPermissionManagement\"\r\n *abpReplaceableTemplate=\"\r\n {\r\n inputs: {\r\n providerName: { value: 'R' },\r\n providerKey: { value: providerKey },\r\n visible: { value: visiblePermissions, twoWay: true },\r\n hideBadges: { value: true }\r\n },\r\n outputs: { visibleChange: onVisiblePermissionChange },\r\n componentKey: permissionManagementKey\r\n };\r\n let init = initTemplate\r\n \"\r\n (abpInit)=\"init(abpPermissionManagement)\"\r\n >\r\n </abp-permission-management>\r\n</abp-page>\r\n", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: ExtensibleTableComponent, selector: "abp-extensible-table", inputs: ["actionsText", "data", "list", "recordsTotal", "actionsColumnWidth", "actionsTemplate", "selectable", "selectionType", "selected", "infiniteScroll", "isLoading", "scrollThreshold", "tableHeight", "rowDetailTemplate", "rowDetailHeight"], outputs: ["tableActivate", "selectionChange", "loadMore", "rowDetailToggle"], exportAs: ["abpExtensibleTable"] }, { kind: "component", type: ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { kind: "component", type: ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "formName", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }, { kind: "component", type: PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "component", type: ExtensibleFormComponent, selector: "abp-extensible-form", inputs: ["selectedRecord"], exportAs: ["abpExtensibleForm"] }, { kind: "directive", type: ModalCloseDirective, selector: "[abpClose]" }, { kind: "component", type: PermissionManagementComponent, selector: "abp-permission-management", inputs: ["providerName", "providerKey", "hideBadges", "entityDisplayName", "visible"], outputs: ["visibleChange"], exportAs: ["abpPermissionManagement"] }, { kind: "directive", type: ReplaceableTemplateDirective, selector: "[abpReplaceableTemplate]", inputs: ["abpReplaceableTemplate"] }, { kind: "ngmodule", type: NgxValidateCoreModule }, { kind: "directive", type: i3.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "directive", type: InitDirective, selector: "[abpInit]", outputs: ["abpInit"] }, { kind: "pipe", type: LocalizationPipe, name: "abpLocalization" }] }); }
109
109
  }
110
110
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: RolesComponent, decorators: [{
111
111
  type: Component,
@@ -140,6 +140,8 @@ class UsersComponent {
140
140
  this.fb = inject(UntypedFormBuilder);
141
141
  this.injector = inject(Injector);
142
142
  this.data = { items: [], totalCount: 0 };
143
+ this.modalContent = viewChild.required('modalContent');
144
+ this.selectedTab = 'user-info';
143
145
  this.visiblePermissions = false;
144
146
  this.modalBusy = false;
145
147
  this.permissionManagementKey = "PermissionManagement.PermissionManagementComponent" /* ePermissionManagementComponents.PermissionManagement */;
@@ -172,6 +174,7 @@ class UsersComponent {
172
174
  });
173
175
  }
174
176
  openModal() {
177
+ this.selectedTab = 'user-info';
175
178
  this.buildForm();
176
179
  this.isModalVisible = true;
177
180
  }
@@ -252,7 +255,7 @@ class UsersComponent {
252
255
  provide: EXTENSIONS_IDENTIFIER,
253
256
  useValue: "Identity.UsersComponent" /* eIdentityComponents.Users */,
254
257
  },
255
- ], viewQueries: [{ propertyName: "modalContent", first: true, predicate: ["modalContent"], descendants: true }], ngImport: i0, template: "<abp-page [title]=\"'AbpIdentity::Users' | abpLocalization\" [toolbar]=\"data.items\">\r\n <div id=\"identity-roles-wrapper\" class=\"card\">\r\n <div class=\"card-body\">\r\n <div id=\"data-tables-table-filter\" class=\"data-tables-filter mb-3\">\r\n <div class=\"input-group\">\r\n <input\r\n type=\"search\"\r\n class=\"form-control\"\r\n [placeholder]=\"'AbpUi::PagerSearch' | abpLocalization\"\r\n [(ngModel)]=\"list.filter\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <abp-extensible-table\r\n [data]=\"data.items\"\r\n [recordsTotal]=\"data.totalCount\"\r\n [list]=\"list\"\r\n ></abp-extensible-table>\r\n </div>\r\n </div>\r\n\r\n <abp-modal [(visible)]=\"isModalVisible\" [busy]=\"modalBusy\">\r\n <ng-template #abpHeader>\r\n <h3>{{ (selected?.id ? 'AbpIdentity::Edit' : 'AbpIdentity::NewUser') | abpLocalization }}</h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n @if (form) {\r\n <form [formGroup]=\"form\" (ngSubmit)=\"save()\">\r\n <ul ngbNav #nav=\"ngbNav\" class=\"nav-tabs\">\r\n <li ngbNavItem>\r\n <a ngbNavLink>{{ 'AbpIdentity::UserInformations' | abpLocalization }}</a>\r\n <ng-template ngbNavContent>\r\n <abp-extensible-form [selectedRecord]=\"selected\"></abp-extensible-form>\r\n </ng-template>\r\n </li>\r\n\r\n <li ngbNavItem>\r\n <a ngbNavLink>{{ 'AbpIdentity::Roles' | abpLocalization }}</a>\r\n <ng-template ngbNavContent>\r\n @for (roleGroup of roleGroups; track $index; let i = $index) {\r\n <div class=\"form-check mb-2\">\r\n <abp-checkbox\r\n *abpReplaceableTemplate=\"{\r\n inputs: {\r\n checkboxId: 'roles-' + i,\r\n label: roles[i].name,\r\n formControl: roleGroup.controls[roles[i].name]\r\n },\r\n componentKey: inputKey\r\n }\"\r\n [checkboxId]=\"'roles-' + i\"\r\n [formControl]=\"roleGroup.controls[roles[i].name]\"\r\n [label]=\"roles[i].name\"\r\n >\r\n </abp-checkbox>\r\n </div>\r\n }\r\n </ng-template>\r\n </li>\r\n </ul>\r\n <div class=\"mt-2 fade-in-top\" [ngbNavOutlet]=\"nav\"></div>\r\n </form>\r\n } @else {\r\n <div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\" aria-hidden=\"true\"></i></div>\r\n }\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button type=\"button\" class=\"btn btn-outline-primary\" abpClose>\r\n {{ 'AbpIdentity::Cancel' | abpLocalization }}\r\n </button>\r\n <abp-button iconClass=\"fa fa-check\" [disabled]=\"form?.invalid\" (click)=\"save()\">{{\r\n 'AbpIdentity::Save' | abpLocalization\r\n }}</abp-button>\r\n </ng-template>\r\n </abp-modal>\r\n\r\n <abp-permission-management\r\n #abpPermissionManagement=\"abpPermissionManagement\"\r\n *abpReplaceableTemplate=\"\r\n {\r\n inputs: {\r\n providerName: { value: 'U' },\r\n providerKey: { value: providerKey },\r\n visible: { value: visiblePermissions, twoWay: true }\r\n },\r\n outputs: { visibleChange: onVisiblePermissionChange },\r\n componentKey: permissionManagementKey\r\n };\r\n let init = initTemplate\r\n \"\r\n [entityDisplayName]=\"entityDisplayName\"\r\n (abpInit)=\"init(abpPermissionManagement)\"\r\n >\r\n </abp-permission-management>\r\n</abp-page>\r\n", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: PermissionManagementComponent, selector: "abp-permission-management", inputs: ["providerName", "providerKey", "hideBadges", "entityDisplayName", "visible"], outputs: ["visibleChange"], exportAs: ["abpPermissionManagement"] }, { kind: "component", type: PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "ngmodule", type: NgbNavModule }, { kind: "directive", type: i2.NgbNavContent, selector: "ng-template[ngbNavContent]" }, { kind: "directive", type: i2.NgbNav, selector: "[ngbNav]", inputs: ["activeId", "animation", "destroyOnHide", "orientation", "roles", "keyboard"], outputs: ["activeIdChange", "shown", "hidden", "navChange"], exportAs: ["ngbNav"] }, { kind: "directive", type: i2.NgbNavItem, selector: "[ngbNavItem]", inputs: ["destroyOnHide", "disabled", "domId", "ngbNavItem"], outputs: ["shown", "hidden"], exportAs: ["ngbNavItem"] }, { kind: "directive", type: i2.NgbNavItemRole, selector: "[ngbNavItem]:not(ng-container)" }, { kind: "directive", type: i2.NgbNavLink, selector: "a[ngbNavLink]" }, { kind: "directive", type: i2.NgbNavLinkBase, selector: "[ngbNavLink]" }, { kind: "component", type: i2.NgbNavOutlet, selector: "[ngbNavOutlet]", inputs: ["paneRole", "ngbNavOutlet"] }, { kind: "ngmodule", type: NgbDropdownModule }, { kind: "ngmodule", type: NgxValidateCoreModule }, { kind: "directive", type: i3.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "directive", type: i3.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { kind: "component", type: ExtensibleTableComponent, selector: "abp-extensible-table", inputs: ["actionsText", "data", "list", "recordsTotal", "actionsColumnWidth", "actionsTemplate", "selectable", "selectionType", "selected", "infiniteScroll", "isLoading", "scrollThreshold", "tableHeight"], outputs: ["tableActivate", "selectionChange", "loadMore"], exportAs: ["abpExtensibleTable"] }, { kind: "component", type: ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { kind: "component", type: ExtensibleFormComponent, selector: "abp-extensible-form", inputs: ["selectedRecord"], exportAs: ["abpExtensibleForm"] }, { kind: "component", type: FormCheckboxComponent, selector: "abp-checkbox", inputs: ["label", "labelClass", "checkboxId", "checkboxStyle", "checkboxClass", "checkboxReadonly"], outputs: ["checkboxBlur", "checkboxFocus"] }, { kind: "component", type: ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "formName", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }, { kind: "directive", type: ReplaceableTemplateDirective, selector: "[abpReplaceableTemplate]", inputs: ["abpReplaceableTemplate"] }, { kind: "directive", type: ModalCloseDirective, selector: "[abpClose]" }, { kind: "directive", type: InitDirective, selector: "[abpInit]", outputs: ["abpInit"] }, { kind: "pipe", type: LocalizationPipe, name: "abpLocalization" }] }); }
258
+ ], viewQueries: [{ propertyName: "modalContent", first: true, predicate: ["modalContent"], descendants: true, isSignal: true }], ngImport: i0, template: "<abp-page [title]=\"'AbpIdentity::Users' | abpLocalization\" [toolbar]=\"data.items\">\r\n <div id=\"identity-roles-wrapper\" class=\"card\">\r\n <div class=\"card-body\">\r\n <div id=\"data-tables-table-filter\" class=\"data-tables-filter mb-3\">\r\n <div class=\"input-group\">\r\n <input\r\n type=\"search\"\r\n class=\"form-control\"\r\n [placeholder]=\"'AbpUi::PagerSearch' | abpLocalization\"\r\n [(ngModel)]=\"list.filter\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <abp-extensible-table\r\n [data]=\"data.items\"\r\n [recordsTotal]=\"data.totalCount\"\r\n [list]=\"list\"\r\n ></abp-extensible-table>\r\n </div>\r\n </div>\r\n\r\n <abp-modal [(visible)]=\"isModalVisible\" [busy]=\"modalBusy\">\r\n <ng-template #abpHeader>\r\n <h3>{{ (selected?.id ? 'AbpIdentity::Edit' : 'AbpIdentity::NewUser') | abpLocalization }}</h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n @if (form) {\r\n <form [formGroup]=\"form\" (ngSubmit)=\"save()\">\r\n <ul ngbNav #newUserNav=\"ngbNav\" class=\"nav-tabs\" [(activeId)]=\"selectedTab\">\r\n <li ngbNavItem=\"user-info\">\r\n <a ngbNavLink>{{ 'AbpIdentity::UserInformations' | abpLocalization }}</a>\r\n <ng-template ngbNavContent>\r\n <abp-extensible-form [selectedRecord]=\"selected\"></abp-extensible-form>\r\n </ng-template>\r\n </li>\r\n <li ngbNavItem=\"roles\">\r\n <a ngbNavLink>{{ 'AbpIdentity::Roles' | abpLocalization }}</a>\r\n <ng-template ngbNavContent>\r\n @for (roleGroup of roleGroups; track $index; let i = $index) {\r\n <div class=\"form-check mb-2\">\r\n <abp-checkbox\r\n *abpReplaceableTemplate=\"{\r\n inputs: {\r\n checkboxId: 'roles-' + i,\r\n label: roles[i].name,\r\n formControl: roleGroup.controls[roles[i].name]\r\n },\r\n componentKey: inputKey\r\n }\"\r\n [checkboxId]=\"'roles-' + i\"\r\n [formControl]=\"roleGroup.controls[roles[i].name]\"\r\n [label]=\"roles[i].name\"\r\n >\r\n </abp-checkbox>\r\n </div>\r\n }\r\n </ng-template>\r\n </li>\r\n </ul>\r\n\r\n <div class=\"mt-2 fade-in-top\" [ngbNavOutlet]=\"newUserNav\"></div>\r\n </form>\r\n } @else {\r\n <div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\" aria-hidden=\"true\"></i></div>\r\n }\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button type=\"button\" class=\"btn btn-outline-primary\" abpClose>\r\n {{ 'AbpIdentity::Cancel' | abpLocalization }}\r\n </button>\r\n <abp-button iconClass=\"fa fa-check\" [disabled]=\"form?.invalid\" (click)=\"save()\">{{\r\n 'AbpIdentity::Save' | abpLocalization\r\n }}</abp-button>\r\n </ng-template>\r\n </abp-modal>\r\n\r\n <abp-permission-management\r\n #abpPermissionManagement=\"abpPermissionManagement\"\r\n *abpReplaceableTemplate=\"\r\n {\r\n inputs: {\r\n providerName: { value: 'U' },\r\n providerKey: { value: providerKey },\r\n visible: { value: visiblePermissions, twoWay: true }\r\n },\r\n outputs: { visibleChange: onVisiblePermissionChange },\r\n componentKey: permissionManagementKey\r\n };\r\n let init = initTemplate\r\n \"\r\n [entityDisplayName]=\"entityDisplayName\"\r\n (abpInit)=\"init(abpPermissionManagement)\"\r\n >\r\n </abp-permission-management>\r\n</abp-page>\r\n", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: PermissionManagementComponent, selector: "abp-permission-management", inputs: ["providerName", "providerKey", "hideBadges", "entityDisplayName", "visible"], outputs: ["visibleChange"], exportAs: ["abpPermissionManagement"] }, { kind: "component", type: PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "ngmodule", type: NgbDropdownModule }, { kind: "ngmodule", type: NgbNavModule }, { kind: "directive", type: i2.NgbNavContent, selector: "ng-template[ngbNavContent]" }, { kind: "directive", type: i2.NgbNav, selector: "[ngbNav]", inputs: ["activeId", "animation", "destroyOnHide", "orientation", "roles", "keyboard"], outputs: ["activeIdChange", "shown", "hidden", "navChange"], exportAs: ["ngbNav"] }, { kind: "directive", type: i2.NgbNavItem, selector: "[ngbNavItem]", inputs: ["destroyOnHide", "disabled", "domId", "ngbNavItem"], outputs: ["shown", "hidden"], exportAs: ["ngbNavItem"] }, { kind: "directive", type: i2.NgbNavItemRole, selector: "[ngbNavItem]:not(ng-container)" }, { kind: "directive", type: i2.NgbNavLink, selector: "a[ngbNavLink]" }, { kind: "directive", type: i2.NgbNavLinkBase, selector: "[ngbNavLink]" }, { kind: "component", type: i2.NgbNavOutlet, selector: "[ngbNavOutlet]", inputs: ["paneRole", "ngbNavOutlet"] }, { kind: "ngmodule", type: NgxValidateCoreModule }, { kind: "directive", type: i3.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "directive", type: i3.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { kind: "component", type: ExtensibleTableComponent, selector: "abp-extensible-table", inputs: ["actionsText", "data", "list", "recordsTotal", "actionsColumnWidth", "actionsTemplate", "selectable", "selectionType", "selected", "infiniteScroll", "isLoading", "scrollThreshold", "tableHeight", "rowDetailTemplate", "rowDetailHeight"], outputs: ["tableActivate", "selectionChange", "loadMore", "rowDetailToggle"], exportAs: ["abpExtensibleTable"] }, { kind: "component", type: ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { kind: "component", type: ExtensibleFormComponent, selector: "abp-extensible-form", inputs: ["selectedRecord"], exportAs: ["abpExtensibleForm"] }, { kind: "component", type: FormCheckboxComponent, selector: "abp-checkbox", inputs: ["label", "labelClass", "checkboxId", "checkboxStyle", "checkboxClass", "checkboxReadonly"], outputs: ["checkboxBlur", "checkboxFocus"] }, { kind: "component", type: ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "formName", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }, { kind: "directive", type: ReplaceableTemplateDirective, selector: "[abpReplaceableTemplate]", inputs: ["abpReplaceableTemplate"] }, { kind: "directive", type: ModalCloseDirective, selector: "[abpClose]" }, { kind: "directive", type: InitDirective, selector: "[abpInit]", outputs: ["abpInit"] }, { kind: "pipe", type: LocalizationPipe, name: "abpLocalization" }] }); }
256
259
  }
257
260
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: UsersComponent, decorators: [{
258
261
  type: Component,
@@ -267,8 +270,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImpor
267
270
  FormsModule,
268
271
  PermissionManagementComponent,
269
272
  PageComponent,
270
- NgbNavModule,
271
273
  NgbDropdownModule,
274
+ NgbNavModule,
272
275
  NgxValidateCoreModule,
273
276
  LocalizationPipe,
274
277
  ExtensibleTableComponent,
@@ -279,11 +282,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImpor
279
282
  ReplaceableTemplateDirective,
280
283
  ModalCloseDirective,
281
284
  InitDirective,
282
- ], template: "<abp-page [title]=\"'AbpIdentity::Users' | abpLocalization\" [toolbar]=\"data.items\">\r\n <div id=\"identity-roles-wrapper\" class=\"card\">\r\n <div class=\"card-body\">\r\n <div id=\"data-tables-table-filter\" class=\"data-tables-filter mb-3\">\r\n <div class=\"input-group\">\r\n <input\r\n type=\"search\"\r\n class=\"form-control\"\r\n [placeholder]=\"'AbpUi::PagerSearch' | abpLocalization\"\r\n [(ngModel)]=\"list.filter\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <abp-extensible-table\r\n [data]=\"data.items\"\r\n [recordsTotal]=\"data.totalCount\"\r\n [list]=\"list\"\r\n ></abp-extensible-table>\r\n </div>\r\n </div>\r\n\r\n <abp-modal [(visible)]=\"isModalVisible\" [busy]=\"modalBusy\">\r\n <ng-template #abpHeader>\r\n <h3>{{ (selected?.id ? 'AbpIdentity::Edit' : 'AbpIdentity::NewUser') | abpLocalization }}</h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n @if (form) {\r\n <form [formGroup]=\"form\" (ngSubmit)=\"save()\">\r\n <ul ngbNav #nav=\"ngbNav\" class=\"nav-tabs\">\r\n <li ngbNavItem>\r\n <a ngbNavLink>{{ 'AbpIdentity::UserInformations' | abpLocalization }}</a>\r\n <ng-template ngbNavContent>\r\n <abp-extensible-form [selectedRecord]=\"selected\"></abp-extensible-form>\r\n </ng-template>\r\n </li>\r\n\r\n <li ngbNavItem>\r\n <a ngbNavLink>{{ 'AbpIdentity::Roles' | abpLocalization }}</a>\r\n <ng-template ngbNavContent>\r\n @for (roleGroup of roleGroups; track $index; let i = $index) {\r\n <div class=\"form-check mb-2\">\r\n <abp-checkbox\r\n *abpReplaceableTemplate=\"{\r\n inputs: {\r\n checkboxId: 'roles-' + i,\r\n label: roles[i].name,\r\n formControl: roleGroup.controls[roles[i].name]\r\n },\r\n componentKey: inputKey\r\n }\"\r\n [checkboxId]=\"'roles-' + i\"\r\n [formControl]=\"roleGroup.controls[roles[i].name]\"\r\n [label]=\"roles[i].name\"\r\n >\r\n </abp-checkbox>\r\n </div>\r\n }\r\n </ng-template>\r\n </li>\r\n </ul>\r\n <div class=\"mt-2 fade-in-top\" [ngbNavOutlet]=\"nav\"></div>\r\n </form>\r\n } @else {\r\n <div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\" aria-hidden=\"true\"></i></div>\r\n }\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button type=\"button\" class=\"btn btn-outline-primary\" abpClose>\r\n {{ 'AbpIdentity::Cancel' | abpLocalization }}\r\n </button>\r\n <abp-button iconClass=\"fa fa-check\" [disabled]=\"form?.invalid\" (click)=\"save()\">{{\r\n 'AbpIdentity::Save' | abpLocalization\r\n }}</abp-button>\r\n </ng-template>\r\n </abp-modal>\r\n\r\n <abp-permission-management\r\n #abpPermissionManagement=\"abpPermissionManagement\"\r\n *abpReplaceableTemplate=\"\r\n {\r\n inputs: {\r\n providerName: { value: 'U' },\r\n providerKey: { value: providerKey },\r\n visible: { value: visiblePermissions, twoWay: true }\r\n },\r\n outputs: { visibleChange: onVisiblePermissionChange },\r\n componentKey: permissionManagementKey\r\n };\r\n let init = initTemplate\r\n \"\r\n [entityDisplayName]=\"entityDisplayName\"\r\n (abpInit)=\"init(abpPermissionManagement)\"\r\n >\r\n </abp-permission-management>\r\n</abp-page>\r\n" }]
283
- }], propDecorators: { modalContent: [{
284
- type: ViewChild,
285
- args: ['modalContent', { static: false }]
286
- }] } });
285
+ ], template: "<abp-page [title]=\"'AbpIdentity::Users' | abpLocalization\" [toolbar]=\"data.items\">\r\n <div id=\"identity-roles-wrapper\" class=\"card\">\r\n <div class=\"card-body\">\r\n <div id=\"data-tables-table-filter\" class=\"data-tables-filter mb-3\">\r\n <div class=\"input-group\">\r\n <input\r\n type=\"search\"\r\n class=\"form-control\"\r\n [placeholder]=\"'AbpUi::PagerSearch' | abpLocalization\"\r\n [(ngModel)]=\"list.filter\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <abp-extensible-table\r\n [data]=\"data.items\"\r\n [recordsTotal]=\"data.totalCount\"\r\n [list]=\"list\"\r\n ></abp-extensible-table>\r\n </div>\r\n </div>\r\n\r\n <abp-modal [(visible)]=\"isModalVisible\" [busy]=\"modalBusy\">\r\n <ng-template #abpHeader>\r\n <h3>{{ (selected?.id ? 'AbpIdentity::Edit' : 'AbpIdentity::NewUser') | abpLocalization }}</h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n @if (form) {\r\n <form [formGroup]=\"form\" (ngSubmit)=\"save()\">\r\n <ul ngbNav #newUserNav=\"ngbNav\" class=\"nav-tabs\" [(activeId)]=\"selectedTab\">\r\n <li ngbNavItem=\"user-info\">\r\n <a ngbNavLink>{{ 'AbpIdentity::UserInformations' | abpLocalization }}</a>\r\n <ng-template ngbNavContent>\r\n <abp-extensible-form [selectedRecord]=\"selected\"></abp-extensible-form>\r\n </ng-template>\r\n </li>\r\n <li ngbNavItem=\"roles\">\r\n <a ngbNavLink>{{ 'AbpIdentity::Roles' | abpLocalization }}</a>\r\n <ng-template ngbNavContent>\r\n @for (roleGroup of roleGroups; track $index; let i = $index) {\r\n <div class=\"form-check mb-2\">\r\n <abp-checkbox\r\n *abpReplaceableTemplate=\"{\r\n inputs: {\r\n checkboxId: 'roles-' + i,\r\n label: roles[i].name,\r\n formControl: roleGroup.controls[roles[i].name]\r\n },\r\n componentKey: inputKey\r\n }\"\r\n [checkboxId]=\"'roles-' + i\"\r\n [formControl]=\"roleGroup.controls[roles[i].name]\"\r\n [label]=\"roles[i].name\"\r\n >\r\n </abp-checkbox>\r\n </div>\r\n }\r\n </ng-template>\r\n </li>\r\n </ul>\r\n\r\n <div class=\"mt-2 fade-in-top\" [ngbNavOutlet]=\"newUserNav\"></div>\r\n </form>\r\n } @else {\r\n <div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\" aria-hidden=\"true\"></i></div>\r\n }\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button type=\"button\" class=\"btn btn-outline-primary\" abpClose>\r\n {{ 'AbpIdentity::Cancel' | abpLocalization }}\r\n </button>\r\n <abp-button iconClass=\"fa fa-check\" [disabled]=\"form?.invalid\" (click)=\"save()\">{{\r\n 'AbpIdentity::Save' | abpLocalization\r\n }}</abp-button>\r\n </ng-template>\r\n </abp-modal>\r\n\r\n <abp-permission-management\r\n #abpPermissionManagement=\"abpPermissionManagement\"\r\n *abpReplaceableTemplate=\"\r\n {\r\n inputs: {\r\n providerName: { value: 'U' },\r\n providerKey: { value: providerKey },\r\n visible: { value: visiblePermissions, twoWay: true }\r\n },\r\n outputs: { visibleChange: onVisiblePermissionChange },\r\n componentKey: permissionManagementKey\r\n };\r\n let init = initTemplate\r\n \"\r\n [entityDisplayName]=\"entityDisplayName\"\r\n (abpInit)=\"init(abpPermissionManagement)\"\r\n >\r\n </abp-permission-management>\r\n</abp-page>\r\n" }]
286
+ }], propDecorators: { modalContent: [{ type: i0.ViewChild, args: ['modalContent', { isSignal: true }] }] } });
287
287
 
288
288
  const DEFAULT_ROLES_ENTITY_ACTIONS = EntityAction.createMany([
289
289
  {
@@ -1 +1 @@
1
- {"version":3,"file":"abp-ng.identity.mjs","sources":["../../../../packages/identity/src/lib/components/roles/roles.component.ts","../../../../packages/identity/src/lib/components/roles/roles.component.html","../../../../packages/identity/src/lib/components/users/users.component.ts","../../../../packages/identity/src/lib/components/users/users.component.html","../../../../packages/identity/src/lib/defaults/default-roles-entity-actions.ts","../../../../packages/identity/src/lib/defaults/default-roles-entity-props.ts","../../../../packages/identity/src/lib/defaults/default-roles-form-props.ts","../../../../packages/identity/src/lib/defaults/default-roles-toolbar-actions.ts","../../../../packages/identity/src/lib/defaults/default-users-entity-actions.ts","../../../../packages/identity/src/lib/defaults/default-users-entity-props.ts","../../../../packages/identity/src/lib/defaults/default-users-form-props.ts","../../../../packages/identity/src/lib/defaults/default-users-toolbar-actions.ts","../../../../packages/identity/src/lib/tokens/extensions.token.ts","../../../../packages/identity/src/lib/guards/extensions.guard.ts","../../../../packages/identity/src/lib/resolvers/extensions.resolver.ts","../../../../packages/identity/src/lib/identity-routing.module.ts","../../../../packages/identity/src/lib/identity.module.ts","../../../../packages/identity/src/lib/identity.routes.ts","../../../../packages/identity/src/abp-ng.identity.ts"],"sourcesContent":["import {\r\n InitDirective,\r\n ListService,\r\n LocalizationPipe,\r\n PagedAndSortedResultRequestDto,\r\n PagedResultDto,\r\n ReplaceableTemplateDirective\r\n} from '@abp/ng.core';\r\nimport { IdentityRoleDto, IdentityRoleService } from '@abp/ng.identity/proxy';\r\nimport {\r\n ePermissionManagementComponents,\r\n PermissionManagementComponent,\r\n} from '@abp/ng.permission-management';\r\nimport {\r\n ButtonComponent,\r\n Confirmation,\r\n ConfirmationService,\r\n ModalCloseDirective,\r\n ModalComponent,\r\n ToasterService,\r\n} from '@abp/ng.theme.shared';\r\nimport {\r\n ExtensibleFormComponent,\r\n ExtensibleTableComponent,\r\n EXTENSIONS_IDENTIFIER,\r\n FormPropData,\r\n generateFormFromProps,\r\n} from '@abp/ng.components/extensible';\r\nimport { Component, inject, Injector, OnInit } from '@angular/core';\r\nimport { ReactiveFormsModule, UntypedFormGroup } from '@angular/forms';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { eIdentityComponents } from '../../enums/components';\r\nimport { PageComponent } from '@abp/ng.components/page';\r\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\r\n\r\n@Component({\r\n selector: 'abp-roles',\r\n templateUrl: './roles.component.html',\r\n providers: [\r\n ListService,\r\n {\r\n provide: EXTENSIONS_IDENTIFIER,\r\n useValue: eIdentityComponents.Roles,\r\n },\r\n ],\r\n imports: [\r\n ReactiveFormsModule,\r\n LocalizationPipe,\r\n ExtensibleTableComponent,\r\n ModalComponent,\r\n ButtonComponent,\r\n PageComponent,\r\n ExtensibleFormComponent,\r\n ModalCloseDirective,\r\n PermissionManagementComponent,\r\n ReplaceableTemplateDirective,\r\n NgxValidateCoreModule,\r\n InitDirective,\r\n ],\r\n})\r\nexport class RolesComponent implements OnInit {\r\n protected readonly list = inject(ListService<PagedAndSortedResultRequestDto>);\r\n protected readonly confirmationService = inject(ConfirmationService);\r\n protected readonly toasterService = inject(ToasterService);\r\n private readonly injector = inject(Injector);\r\n protected readonly service = inject(IdentityRoleService);\r\n\r\n data: PagedResultDto<IdentityRoleDto> = { items: [], totalCount: 0 };\r\n form!: UntypedFormGroup;\r\n selected?: IdentityRoleDto;\r\n isModalVisible!: boolean;\r\n visiblePermissions = false;\r\n providerKey?: string;\r\n modalBusy = false;\r\n permissionManagementKey = ePermissionManagementComponents.PermissionManagement;\r\n\r\n onVisiblePermissionChange = (event: boolean) => {\r\n this.visiblePermissions = event;\r\n };\r\n\r\n ngOnInit() {\r\n this.hookToQuery();\r\n }\r\n\r\n buildForm() {\r\n const data = new FormPropData(this.injector, this.selected);\r\n this.form = generateFormFromProps(data);\r\n }\r\n\r\n openModal() {\r\n this.buildForm();\r\n this.isModalVisible = true;\r\n }\r\n\r\n add() {\r\n this.selected = {} as IdentityRoleDto;\r\n this.openModal();\r\n }\r\n\r\n edit(id: string) {\r\n this.service.get(id).subscribe(res => {\r\n this.selected = res;\r\n this.openModal();\r\n });\r\n }\r\n\r\n save() {\r\n if (!this.form.valid) return;\r\n this.modalBusy = true;\r\n\r\n const { id } = this.selected || {};\r\n (id\r\n ? this.service.update(id, { ...this.selected, ...this.form.value })\r\n : this.service.create(this.form.value)\r\n )\r\n .pipe(finalize(() => (this.modalBusy = false)))\r\n .subscribe(() => {\r\n this.isModalVisible = false;\r\n this.toasterService.success('AbpUi::SavedSuccessfully');\r\n this.list.get();\r\n });\r\n }\r\n\r\n delete(id: string, name: string) {\r\n this.confirmationService\r\n .warn('AbpIdentity::RoleDeletionConfirmationMessage', 'AbpIdentity::AreYouSure', {\r\n messageLocalizationParams: [name],\r\n })\r\n .subscribe((status: Confirmation.Status) => {\r\n if (status === Confirmation.Status.confirm) {\r\n this.toasterService.success('AbpUi::DeletedSuccessfully');\r\n this.service.delete(id).subscribe(() => this.list.get());\r\n }\r\n });\r\n }\r\n\r\n private hookToQuery() {\r\n this.list\r\n .hookToQuery(query => this.service.getList(query))\r\n .subscribe(res => {\r\n this.data = res;\r\n });\r\n }\r\n\r\n openPermissionsModal(providerKey: string) {\r\n this.providerKey = providerKey;\r\n setTimeout(() => {\r\n this.visiblePermissions = true;\r\n }, 0);\r\n }\r\n\r\n sort(data: any) {\r\n const { prop, dir } = data.sorts[0];\r\n this.list.sortKey = prop;\r\n this.list.sortOrder = dir;\r\n }\r\n}\r\n","<abp-page [title]=\"'AbpIdentity::Roles' | abpLocalization\" [toolbar]=\"data.items\">\r\n <div id=\"identity-roles-wrapper\" class=\"card\">\r\n <div class=\"card-body\">\r\n <abp-extensible-table\r\n [data]=\"data.items\"\r\n [recordsTotal]=\"data.totalCount\"\r\n [list]=\"list\"\r\n ></abp-extensible-table>\r\n </div>\r\n </div>\r\n\r\n <abp-modal [(visible)]=\"isModalVisible\" [busy]=\"modalBusy\">\r\n <ng-template #abpHeader>\r\n <h3>{{ (selected?.id ? 'AbpIdentity::Edit' : 'AbpIdentity::NewRole') | abpLocalization }}</h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <form [formGroup]=\"form\" (ngSubmit)=\"save()\" [validateOnSubmit]=\"true\">\r\n <abp-extensible-form [selectedRecord]=\"selected\"></abp-extensible-form>\r\n </form>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button type=\"button\" class=\"btn btn-outline-primary\" abpClose>\r\n {{ 'AbpIdentity::Cancel' | abpLocalization }}\r\n </button>\r\n <abp-button iconClass=\"fa fa-check\" [disabled]=\"form?.invalid\" (click)=\"save()\">{{\r\n 'AbpIdentity::Save' | abpLocalization\r\n }}</abp-button>\r\n </ng-template>\r\n </abp-modal>\r\n\r\n <abp-permission-management\r\n #abpPermissionManagement=\"abpPermissionManagement\"\r\n *abpReplaceableTemplate=\"\r\n {\r\n inputs: {\r\n providerName: { value: 'R' },\r\n providerKey: { value: providerKey },\r\n visible: { value: visiblePermissions, twoWay: true },\r\n hideBadges: { value: true }\r\n },\r\n outputs: { visibleChange: onVisiblePermissionChange },\r\n componentKey: permissionManagementKey\r\n };\r\n let init = initTemplate\r\n \"\r\n (abpInit)=\"init(abpPermissionManagement)\"\r\n >\r\n </abp-permission-management>\r\n</abp-page>\r\n","import {\r\n InitDirective,\r\n ListService,\r\n LocalizationPipe,\r\n PagedResultDto,\r\n ReplaceableTemplateDirective,\r\n} from '@abp/ng.core';\r\nimport {\r\n GetIdentityUsersInput,\r\n IdentityRoleDto,\r\n IdentityUserDto,\r\n IdentityUserService,\r\n} from '@abp/ng.identity/proxy';\r\nimport {\r\n ePermissionManagementComponents,\r\n PermissionManagementComponent,\r\n} from '@abp/ng.permission-management';\r\nimport {\r\n ButtonComponent,\r\n Confirmation,\r\n ConfirmationService,\r\n eFormComponets,\r\n FormCheckboxComponent,\r\n ModalCloseDirective,\r\n ModalComponent,\r\n ToasterService,\r\n} from '@abp/ng.theme.shared';\r\nimport {\r\n ExtensibleFormComponent,\r\n ExtensibleTableComponent,\r\n EXTENSIONS_IDENTIFIER,\r\n FormPropData,\r\n generateFormFromProps,\r\n} from '@abp/ng.components/extensible';\r\nimport {\r\n Component,\r\n inject,\r\n Injector,\r\n OnInit,\r\n TemplateRef,\r\n TrackByFunction,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport {\r\n AbstractControl,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n UntypedFormArray,\r\n UntypedFormBuilder,\r\n UntypedFormGroup,\r\n} from '@angular/forms';\r\nimport { finalize, switchMap, tap } from 'rxjs/operators';\r\nimport { eIdentityComponents } from '../../enums/components';\r\nimport { PageComponent } from '@abp/ng.components/page';\r\nimport { NgbDropdownModule, NgbNavModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\r\n\r\n@Component({\r\n selector: 'abp-users',\r\n templateUrl: './users.component.html',\r\n providers: [\r\n ListService,\r\n {\r\n provide: EXTENSIONS_IDENTIFIER,\r\n useValue: eIdentityComponents.Users,\r\n },\r\n ],\r\n imports: [\r\n ReactiveFormsModule,\r\n FormsModule,\r\n PermissionManagementComponent,\r\n PageComponent,\r\n NgbNavModule,\r\n NgbDropdownModule,\r\n NgxValidateCoreModule,\r\n LocalizationPipe,\r\n ExtensibleTableComponent,\r\n ModalComponent,\r\n ExtensibleFormComponent,\r\n FormCheckboxComponent,\r\n ButtonComponent,\r\n ReplaceableTemplateDirective,\r\n ModalCloseDirective,\r\n InitDirective,\r\n ],\r\n})\r\nexport class UsersComponent implements OnInit {\r\n protected readonly list = inject(ListService<GetIdentityUsersInput>);\r\n protected readonly confirmationService = inject(ConfirmationService);\r\n protected readonly service = inject(IdentityUserService);\r\n protected readonly toasterService = inject(ToasterService);\r\n private readonly fb = inject(UntypedFormBuilder);\r\n private readonly injector = inject(Injector);\r\n\r\n data: PagedResultDto<IdentityUserDto> = { items: [], totalCount: 0 };\r\n\r\n @ViewChild('modalContent', { static: false })\r\n modalContent!: TemplateRef<any>;\r\n\r\n form!: UntypedFormGroup;\r\n\r\n selected?: IdentityUserDto;\r\n\r\n selectedUserRoles?: IdentityRoleDto[];\r\n\r\n roles?: IdentityRoleDto[];\r\n\r\n visiblePermissions = false;\r\n\r\n providerKey?: string;\r\n\r\n isModalVisible?: boolean;\r\n\r\n modalBusy = false;\r\n\r\n permissionManagementKey = ePermissionManagementComponents.PermissionManagement;\r\n\r\n entityDisplayName: string;\r\n\r\n inputKey = eFormComponets.FormCheckboxComponent;\r\n\r\n trackByFn: TrackByFunction<AbstractControl> = (index, item) => Object.keys(item)[0] || index;\r\n\r\n onVisiblePermissionChange = (event: boolean) => {\r\n this.visiblePermissions = event;\r\n };\r\n\r\n get roleGroups(): UntypedFormGroup[] {\r\n return ((this.form.get('roleNames') as UntypedFormArray)?.controls as UntypedFormGroup[]) || [];\r\n }\r\n\r\n ngOnInit() {\r\n this.hookToQuery();\r\n }\r\n\r\n buildForm() {\r\n const data = new FormPropData(this.injector, this.selected);\r\n this.form = generateFormFromProps(data);\r\n\r\n this.service.getAssignableRoles().subscribe(({ items }) => {\r\n this.roles = items;\r\n if (this.roles) {\r\n this.form.addControl(\r\n 'roleNames',\r\n this.fb.array(\r\n this.roles.map(role =>\r\n this.fb.group({\r\n [role.name as string]: [\r\n this.selected?.id\r\n ? !!this.selectedUserRoles?.find(userRole => userRole.id === role.id)\r\n : role.isDefault,\r\n ],\r\n }),\r\n ),\r\n ),\r\n );\r\n }\r\n });\r\n }\r\n\r\n openModal() {\r\n this.buildForm();\r\n this.isModalVisible = true;\r\n }\r\n\r\n add() {\r\n this.selected = {} as IdentityUserDto;\r\n this.selectedUserRoles = [] as IdentityRoleDto[];\r\n this.openModal();\r\n }\r\n\r\n edit(id: string) {\r\n this.service\r\n .get(id)\r\n .pipe(\r\n tap(user => (this.selected = user)),\r\n switchMap(() => this.service.getRoles(id)),\r\n )\r\n .subscribe(userRole => {\r\n this.selectedUserRoles = userRole.items || [];\r\n this.openModal();\r\n });\r\n }\r\n\r\n save() {\r\n if (!this.form.valid || this.modalBusy) return;\r\n this.modalBusy = true;\r\n\r\n const { roleNames = [] } = this.form.value;\r\n const mappedRoleNames =\r\n roleNames\r\n .filter((role: { [key: string]: any }) => !!role[Object.keys(role)[0]])\r\n .map((role: { [key: string]: any }) => Object.keys(role)[0]) || [];\r\n\r\n const { id } = this.selected || {};\r\n\r\n (id\r\n ? this.service.update(id, {\r\n ...this.selected,\r\n ...this.form.value,\r\n roleNames: mappedRoleNames,\r\n })\r\n : this.service.create({ ...this.form.value, roleNames: mappedRoleNames })\r\n )\r\n .pipe(finalize(() => (this.modalBusy = false)))\r\n .subscribe(() => {\r\n this.isModalVisible = false;\r\n this.toasterService.success('AbpUi::SavedSuccessfully');\r\n this.list.get();\r\n });\r\n }\r\n\r\n delete(id: string, userName: string) {\r\n this.confirmationService\r\n .warn('AbpIdentity::UserDeletionConfirmationMessage', 'AbpIdentity::AreYouSure', {\r\n messageLocalizationParams: [userName],\r\n })\r\n .subscribe((status: Confirmation.Status) => {\r\n if (status === Confirmation.Status.confirm) {\r\n this.service.delete(id).subscribe(() => {\r\n this.toasterService.success('AbpUi::DeletedSuccessfully');\r\n this.list.get();\r\n });\r\n }\r\n });\r\n }\r\n\r\n sort(data: any) {\r\n const { prop, dir } = data.sorts[0];\r\n this.list.sortKey = prop;\r\n this.list.sortOrder = dir;\r\n }\r\n\r\n private hookToQuery() {\r\n this.list\r\n .hookToQuery(query => this.service.getList(query))\r\n .subscribe(res => {\r\n this.data = res;\r\n });\r\n }\r\n\r\n openPermissionsModal(providerKey: string, entityDisplayName?: string) {\r\n this.providerKey = providerKey;\r\n this.entityDisplayName = entityDisplayName;\r\n setTimeout(() => {\r\n this.visiblePermissions = true;\r\n }, 0);\r\n }\r\n}\r\n","<abp-page [title]=\"'AbpIdentity::Users' | abpLocalization\" [toolbar]=\"data.items\">\r\n <div id=\"identity-roles-wrapper\" class=\"card\">\r\n <div class=\"card-body\">\r\n <div id=\"data-tables-table-filter\" class=\"data-tables-filter mb-3\">\r\n <div class=\"input-group\">\r\n <input\r\n type=\"search\"\r\n class=\"form-control\"\r\n [placeholder]=\"'AbpUi::PagerSearch' | abpLocalization\"\r\n [(ngModel)]=\"list.filter\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <abp-extensible-table\r\n [data]=\"data.items\"\r\n [recordsTotal]=\"data.totalCount\"\r\n [list]=\"list\"\r\n ></abp-extensible-table>\r\n </div>\r\n </div>\r\n\r\n <abp-modal [(visible)]=\"isModalVisible\" [busy]=\"modalBusy\">\r\n <ng-template #abpHeader>\r\n <h3>{{ (selected?.id ? 'AbpIdentity::Edit' : 'AbpIdentity::NewUser') | abpLocalization }}</h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n @if (form) {\r\n <form [formGroup]=\"form\" (ngSubmit)=\"save()\">\r\n <ul ngbNav #nav=\"ngbNav\" class=\"nav-tabs\">\r\n <li ngbNavItem>\r\n <a ngbNavLink>{{ 'AbpIdentity::UserInformations' | abpLocalization }}</a>\r\n <ng-template ngbNavContent>\r\n <abp-extensible-form [selectedRecord]=\"selected\"></abp-extensible-form>\r\n </ng-template>\r\n </li>\r\n\r\n <li ngbNavItem>\r\n <a ngbNavLink>{{ 'AbpIdentity::Roles' | abpLocalization }}</a>\r\n <ng-template ngbNavContent>\r\n @for (roleGroup of roleGroups; track $index; let i = $index) {\r\n <div class=\"form-check mb-2\">\r\n <abp-checkbox\r\n *abpReplaceableTemplate=\"{\r\n inputs: {\r\n checkboxId: 'roles-' + i,\r\n label: roles[i].name,\r\n formControl: roleGroup.controls[roles[i].name]\r\n },\r\n componentKey: inputKey\r\n }\"\r\n [checkboxId]=\"'roles-' + i\"\r\n [formControl]=\"roleGroup.controls[roles[i].name]\"\r\n [label]=\"roles[i].name\"\r\n >\r\n </abp-checkbox>\r\n </div>\r\n }\r\n </ng-template>\r\n </li>\r\n </ul>\r\n <div class=\"mt-2 fade-in-top\" [ngbNavOutlet]=\"nav\"></div>\r\n </form>\r\n } @else {\r\n <div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\" aria-hidden=\"true\"></i></div>\r\n }\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button type=\"button\" class=\"btn btn-outline-primary\" abpClose>\r\n {{ 'AbpIdentity::Cancel' | abpLocalization }}\r\n </button>\r\n <abp-button iconClass=\"fa fa-check\" [disabled]=\"form?.invalid\" (click)=\"save()\">{{\r\n 'AbpIdentity::Save' | abpLocalization\r\n }}</abp-button>\r\n </ng-template>\r\n </abp-modal>\r\n\r\n <abp-permission-management\r\n #abpPermissionManagement=\"abpPermissionManagement\"\r\n *abpReplaceableTemplate=\"\r\n {\r\n inputs: {\r\n providerName: { value: 'U' },\r\n providerKey: { value: providerKey },\r\n visible: { value: visiblePermissions, twoWay: true }\r\n },\r\n outputs: { visibleChange: onVisiblePermissionChange },\r\n componentKey: permissionManagementKey\r\n };\r\n let init = initTemplate\r\n \"\r\n [entityDisplayName]=\"entityDisplayName\"\r\n (abpInit)=\"init(abpPermissionManagement)\"\r\n >\r\n </abp-permission-management>\r\n</abp-page>\r\n","import { IdentityRoleDto } from '@abp/ng.identity/proxy';\r\nimport { EntityAction } from '@abp/ng.components/extensible';\r\nimport { RolesComponent } from '../components/roles/roles.component';\r\n\r\nexport const DEFAULT_ROLES_ENTITY_ACTIONS = EntityAction.createMany<IdentityRoleDto>([\r\n {\r\n text: 'AbpIdentity::Edit',\r\n action: data => {\r\n const component = data.getInjected(RolesComponent);\r\n component.edit(data.record.id || '');\r\n },\r\n permission: 'AbpIdentity.Roles.Update',\r\n },\r\n {\r\n text: 'AbpIdentity::Permissions',\r\n action: data => {\r\n const component = data.getInjected(RolesComponent);\r\n component.openPermissionsModal(data.record.name || '');\r\n },\r\n permission: 'AbpIdentity.Roles.ManagePermissions',\r\n },\r\n {\r\n text: 'AbpIdentity::Delete',\r\n action: data => {\r\n const component = data.getInjected(RolesComponent);\r\n component.delete(data.record.id || '', data.record.name || '');\r\n },\r\n permission: 'AbpIdentity.Roles.Delete',\r\n visible: data => !data?.record.isStatic,\r\n },\r\n]);\r\n","import { escapeHtmlChars, LocalizationService } from '@abp/ng.core';\r\nimport { IdentityRoleDto } from '@abp/ng.identity/proxy';\r\nimport { EntityProp, ePropType } from '@abp/ng.components/extensible';\r\nimport { of } from 'rxjs';\r\n\r\nexport const DEFAULT_ROLES_ENTITY_PROPS = EntityProp.createMany<IdentityRoleDto>([\r\n {\r\n type: ePropType.String,\r\n name: 'name',\r\n displayName: 'AbpIdentity::RoleName',\r\n sortable: true,\r\n valueResolver: data => {\r\n const l10n = data.getInjected(LocalizationService);\r\n const t = l10n.instant.bind(l10n);\r\n const { isDefault, isPublic, name } = data.record;\r\n\r\n return of(\r\n escapeHtmlChars(name) +\r\n (isDefault\r\n ? `<span class=\"badge rounded-pill bg-success ms-1\">${t(\r\n 'AbpIdentity::DisplayName:IsDefault',\r\n )}</span>`\r\n : '') +\r\n (isPublic\r\n ? `<span class=\"badge rounded-pill bg-info ms-1\">${t(\r\n 'AbpIdentity::DisplayName:IsPublic',\r\n )}</span>`\r\n : ''),\r\n );\r\n },\r\n },\r\n]);\r\n","import { IdentityRoleDto } from '@abp/ng.identity/proxy';\r\nimport { ePropType, FormProp, PropData, PropPredicate } from \"@abp/ng.components/extensible\";\r\nimport { Validators } from '@angular/forms';\r\n\r\nexport const DEFAULT_ROLES_CREATE_FORM_PROPS = FormProp.createMany<IdentityRoleDto>([\r\n {\r\n type: ePropType.String,\r\n name: 'name',\r\n displayName: 'AbpIdentity::RoleName',\r\n id: 'role-name',\r\n disabled: ((data: PropData<IdentityRoleDto>) => data.record && data.record.isStatic) as PropPredicate<IdentityRoleDto>,\r\n validators: () => [Validators.required],\r\n },\r\n {\r\n type: ePropType.Boolean,\r\n name: 'isDefault',\r\n displayName: 'AbpIdentity::DisplayName:IsDefault',\r\n id: 'role-is-default',\r\n defaultValue: false,\r\n },\r\n {\r\n type: ePropType.Boolean,\r\n name: 'isPublic',\r\n displayName: 'AbpIdentity::DisplayName:IsPublic',\r\n id: 'role-is-public',\r\n defaultValue: false,\r\n },\r\n]);\r\n\r\nexport const DEFAULT_ROLES_EDIT_FORM_PROPS = DEFAULT_ROLES_CREATE_FORM_PROPS;\r\n","import { IdentityRoleDto } from '@abp/ng.identity/proxy';\r\nimport { ToolbarAction } from '@abp/ng.components/extensible';\r\nimport { RolesComponent } from '../components/roles/roles.component';\r\n\r\nexport const DEFAULT_ROLES_TOOLBAR_ACTIONS = ToolbarAction.createMany<IdentityRoleDto[]>([\r\n {\r\n text: 'AbpIdentity::NewRole',\r\n action: data => {\r\n const component = data.getInjected(RolesComponent);\r\n component.add();\r\n },\r\n permission: 'AbpIdentity.Roles.Create',\r\n icon: 'fa fa-plus',\r\n },\r\n]);\r\n","import { IdentityUserDto } from '@abp/ng.identity/proxy';\r\nimport { EntityAction } from '@abp/ng.components/extensible';\r\nimport { UsersComponent } from '../components/users/users.component';\r\nimport { ConfigStateService, CurrentUserDto } from '@abp/ng.core';\r\n\r\nexport const DEFAULT_USERS_ENTITY_ACTIONS = EntityAction.createMany<IdentityUserDto>([\r\n {\r\n text: 'AbpIdentity::Edit',\r\n action: data => {\r\n const component = data.getInjected(UsersComponent);\r\n component.edit(data.record.id || '');\r\n },\r\n permission: 'AbpIdentity.Users.Update',\r\n },\r\n {\r\n text: 'AbpIdentity::Permissions',\r\n action: data => {\r\n const component = data.getInjected(UsersComponent);\r\n component.openPermissionsModal(data.record.id || '', data.record.userName);\r\n },\r\n permission: 'AbpIdentity.Users.ManagePermissions',\r\n },\r\n {\r\n text: 'AbpIdentity::Delete',\r\n action: data => {\r\n const component = data.getInjected(UsersComponent);\r\n component.delete(data.record.id || '', data.record.name || data.record.userName || '');\r\n },\r\n visible: data => {\r\n const userName = data?.record.userName;\r\n const configStateService = data?.getInjected(ConfigStateService);\r\n const currentUser = configStateService?.getOne('currentUser') as CurrentUserDto;\r\n return userName !== currentUser.userName;\r\n },\r\n permission: 'AbpIdentity.Users.Delete',\r\n },\r\n]);\r\n","import { escapeHtmlChars, LocalizationService } from '@abp/ng.core';\r\nimport { IdentityUserDto } from '@abp/ng.identity/proxy';\r\nimport { EntityProp, ePropType } from '@abp/ng.components/extensible';\r\nimport { of } from 'rxjs';\r\n\r\nexport const DEFAULT_USERS_ENTITY_PROPS = EntityProp.createMany<IdentityUserDto>([\r\n {\r\n type: ePropType.String,\r\n name: 'userName',\r\n displayName: 'AbpIdentity::UserName',\r\n sortable: true,\r\n columnWidth: 250,\r\n valueResolver: data => {\r\n const l10n = data.getInjected(LocalizationService);\r\n const t = l10n.instant.bind(l10n);\r\n\r\n const inactiveIcon = `<i title=\"${t(\r\n 'AbpIdentity::ThisUserIsNotActiveMessage',\r\n )}\" class=\"fas fa-ban text-danger me-1\" aria-hidden=\"true\"></i>`;\r\n\r\n return of(\r\n `\r\n ${!data.record.isActive ? inactiveIcon : ''}\r\n <span class=\"${!data.record.isActive ? 'text-muted' : ''}\">${escapeHtmlChars(\r\n data.record.userName,\r\n )}</span>`,\r\n );\r\n },\r\n },\r\n {\r\n type: ePropType.String,\r\n name: 'email',\r\n displayName: 'AbpIdentity::EmailAddress',\r\n sortable: true,\r\n columnWidth: 250,\r\n },\r\n {\r\n type: ePropType.String,\r\n name: 'phoneNumber',\r\n displayName: 'AbpIdentity::PhoneNumber',\r\n sortable: true,\r\n columnWidth: 250,\r\n },\r\n]);\r\n","import { Validators } from '@angular/forms';\r\nimport { ConfigStateService } from '@abp/ng.core';\r\nimport { getPasswordValidators } from '@abp/ng.theme.shared';\r\nimport { ePropType, FormProp } from '@abp/ng.components/extensible';\r\nimport { IdentityUserDto } from '@abp/ng.identity/proxy';\r\n\r\nexport const DEFAULT_USERS_CREATE_FORM_PROPS = FormProp.createMany<IdentityUserDto>([\r\n {\r\n type: ePropType.String,\r\n name: 'userName',\r\n displayName: 'AbpIdentity::UserName',\r\n id: 'user-name',\r\n validators: () => [Validators.required, Validators.maxLength(256)],\r\n },\r\n {\r\n type: ePropType.PasswordInputGroup,\r\n name: 'password',\r\n displayName: 'AbpIdentity::Password',\r\n id: 'password',\r\n autocomplete: 'new-password',\r\n validators: data => [Validators.required, ...getPasswordValidators({ get: data.getInjected })],\r\n },\r\n {\r\n type: ePropType.String,\r\n name: 'name',\r\n displayName: 'AbpIdentity::DisplayName:Name',\r\n id: 'name',\r\n validators: () => [Validators.maxLength(64)],\r\n },\r\n {\r\n type: ePropType.String,\r\n name: 'surname',\r\n displayName: 'AbpIdentity::DisplayName:Surname',\r\n id: 'surname',\r\n validators: () => [Validators.maxLength(64)],\r\n },\r\n {\r\n type: ePropType.Email,\r\n name: 'email',\r\n displayName: 'AbpIdentity::EmailAddress',\r\n id: 'email',\r\n validators: () => [Validators.required, Validators.maxLength(256), Validators.email],\r\n },\r\n {\r\n type: ePropType.String,\r\n name: 'phoneNumber',\r\n displayName: 'AbpIdentity::PhoneNumber',\r\n id: 'phone-number',\r\n validators: () => [Validators.maxLength(16)],\r\n },\r\n {\r\n type: ePropType.Boolean,\r\n name: 'isActive',\r\n displayName: 'AbpIdentity::DisplayName:IsActive',\r\n id: 'active-checkbox',\r\n defaultValue: true,\r\n },\r\n {\r\n type: ePropType.Boolean,\r\n name: 'lockoutEnabled',\r\n displayName: 'AbpIdentity::DisplayName:LockoutEnabled',\r\n id: 'lockout-checkbox',\r\n defaultValue: true,\r\n },\r\n]);\r\n\r\nexport const DEFAULT_USERS_EDIT_FORM_PROPS = DEFAULT_USERS_CREATE_FORM_PROPS.map(prop => {\r\n if (prop.name === 'password') {\r\n return {\r\n ...prop,\r\n validators: (data: any) => [...getPasswordValidators({ get: data.getInjected })],\r\n };\r\n }\r\n if (prop.name === 'isActive') {\r\n return {\r\n ...prop,\r\n visible: data => {\r\n const configState = data.getInjected(ConfigStateService);\r\n const currentUserId = configState.getDeep('currentUser.id');\r\n return currentUserId !== data.record.id;\r\n },\r\n };\r\n }\r\n return prop;\r\n});\r\n","import { IdentityUserDto } from '@abp/ng.identity/proxy';\r\nimport { ToolbarAction } from '@abp/ng.components/extensible';\r\nimport { UsersComponent } from '../components/users/users.component';\r\n\r\nexport const DEFAULT_USERS_TOOLBAR_ACTIONS = ToolbarAction.createMany<IdentityUserDto[]>([\r\n {\r\n text: 'AbpIdentity::NewUser',\r\n action: data => {\r\n const component = data.getInjected(UsersComponent);\r\n component.add();\r\n },\r\n permission: 'AbpIdentity.Users.Create',\r\n icon: 'fa fa-plus',\r\n },\r\n]);\r\n","import { IdentityRoleDto, IdentityUserDto } from '@abp/ng.identity/proxy';\r\nimport {\r\n CreateFormPropContributorCallback,\r\n EditFormPropContributorCallback,\r\n EntityActionContributorCallback,\r\n EntityPropContributorCallback,\r\n ToolbarActionContributorCallback,\r\n} from '@abp/ng.components/extensible';\r\nimport { InjectionToken } from '@angular/core';\r\nimport { DEFAULT_ROLES_ENTITY_ACTIONS } from '../defaults/default-roles-entity-actions';\r\nimport { DEFAULT_ROLES_ENTITY_PROPS } from '../defaults/default-roles-entity-props';\r\nimport {\r\n DEFAULT_ROLES_CREATE_FORM_PROPS,\r\n DEFAULT_ROLES_EDIT_FORM_PROPS,\r\n} from '../defaults/default-roles-form-props';\r\nimport { DEFAULT_ROLES_TOOLBAR_ACTIONS } from '../defaults/default-roles-toolbar-actions';\r\nimport { DEFAULT_USERS_ENTITY_ACTIONS } from '../defaults/default-users-entity-actions';\r\nimport { DEFAULT_USERS_ENTITY_PROPS } from '../defaults/default-users-entity-props';\r\nimport {\r\n DEFAULT_USERS_CREATE_FORM_PROPS,\r\n DEFAULT_USERS_EDIT_FORM_PROPS,\r\n} from '../defaults/default-users-form-props';\r\nimport { DEFAULT_USERS_TOOLBAR_ACTIONS } from '../defaults/default-users-toolbar-actions';\r\nimport { eIdentityComponents } from '../enums/components';\r\n\r\nexport const DEFAULT_IDENTITY_ENTITY_ACTIONS = {\r\n [eIdentityComponents.Roles]: DEFAULT_ROLES_ENTITY_ACTIONS,\r\n [eIdentityComponents.Users]: DEFAULT_USERS_ENTITY_ACTIONS,\r\n};\r\n\r\nexport const DEFAULT_IDENTITY_TOOLBAR_ACTIONS = {\r\n [eIdentityComponents.Roles]: DEFAULT_ROLES_TOOLBAR_ACTIONS,\r\n [eIdentityComponents.Users]: DEFAULT_USERS_TOOLBAR_ACTIONS,\r\n};\r\n\r\nexport const DEFAULT_IDENTITY_ENTITY_PROPS = {\r\n [eIdentityComponents.Roles]: DEFAULT_ROLES_ENTITY_PROPS,\r\n [eIdentityComponents.Users]: DEFAULT_USERS_ENTITY_PROPS,\r\n};\r\n\r\nexport const DEFAULT_IDENTITY_CREATE_FORM_PROPS = {\r\n [eIdentityComponents.Roles]: DEFAULT_ROLES_CREATE_FORM_PROPS,\r\n [eIdentityComponents.Users]: DEFAULT_USERS_CREATE_FORM_PROPS,\r\n};\r\n\r\nexport const DEFAULT_IDENTITY_EDIT_FORM_PROPS = {\r\n [eIdentityComponents.Roles]: DEFAULT_ROLES_EDIT_FORM_PROPS,\r\n [eIdentityComponents.Users]: DEFAULT_USERS_EDIT_FORM_PROPS,\r\n};\r\n\r\nexport const IDENTITY_ENTITY_ACTION_CONTRIBUTORS = new InjectionToken<EntityActionContributors>(\r\n 'IDENTITY_ENTITY_ACTION_CONTRIBUTORS',\r\n);\r\n\r\nexport const IDENTITY_TOOLBAR_ACTION_CONTRIBUTORS = new InjectionToken<ToolbarActionContributors>(\r\n 'IDENTITY_TOOLBAR_ACTION_CONTRIBUTORS',\r\n);\r\n\r\nexport const IDENTITY_ENTITY_PROP_CONTRIBUTORS = new InjectionToken<EntityPropContributors>(\r\n 'IDENTITY_ENTITY_PROP_CONTRIBUTORS',\r\n);\r\n\r\nexport const IDENTITY_CREATE_FORM_PROP_CONTRIBUTORS =\r\n new InjectionToken<CreateFormPropContributors>('IDENTITY_CREATE_FORM_PROP_CONTRIBUTORS');\r\n\r\nexport const IDENTITY_EDIT_FORM_PROP_CONTRIBUTORS = new InjectionToken<EditFormPropContributors>(\r\n 'IDENTITY_EDIT_FORM_PROP_CONTRIBUTORS',\r\n);\r\n\r\n// Fix for TS4023 -> https://github.com/microsoft/TypeScript/issues/9944#issuecomment-254693497\r\ntype EntityActionContributors = Partial<{\r\n [eIdentityComponents.Roles]: EntityActionContributorCallback<IdentityRoleDto>[];\r\n [eIdentityComponents.Users]: EntityActionContributorCallback<IdentityUserDto>[];\r\n}>;\r\ntype ToolbarActionContributors = Partial<{\r\n [eIdentityComponents.Roles]: ToolbarActionContributorCallback<IdentityRoleDto[]>[];\r\n [eIdentityComponents.Users]: ToolbarActionContributorCallback<IdentityUserDto[]>[];\r\n}>;\r\ntype EntityPropContributors = Partial<{\r\n [eIdentityComponents.Roles]: EntityPropContributorCallback<IdentityRoleDto>[];\r\n [eIdentityComponents.Users]: EntityPropContributorCallback<IdentityUserDto>[];\r\n}>;\r\ntype CreateFormPropContributors = Partial<{\r\n [eIdentityComponents.Roles]: CreateFormPropContributorCallback<IdentityRoleDto>[];\r\n [eIdentityComponents.Users]: CreateFormPropContributorCallback<IdentityUserDto>[];\r\n}>;\r\ntype EditFormPropContributors = Partial<{\r\n [eIdentityComponents.Roles]: EditFormPropContributorCallback<IdentityRoleDto>[];\r\n [eIdentityComponents.Users]: EditFormPropContributorCallback<IdentityUserDto>[];\r\n}>;\r\n","import {\r\n ExtensionsService,\r\n getObjectExtensionEntitiesFromStore,\r\n mapEntitiesToContributors,\r\n mergeWithDefaultActions,\r\n mergeWithDefaultProps,\r\n} from '@abp/ng.components/extensible';\r\nimport { IAbpGuard } from '@abp/ng.core';\r\nimport { Injectable, Injector, inject } from '@angular/core';\r\n\r\nimport { Observable } from 'rxjs';\r\nimport { map, tap } from 'rxjs/operators';\r\n\r\nimport { eIdentityComponents } from '../enums/components';\r\nimport {\r\n DEFAULT_IDENTITY_CREATE_FORM_PROPS,\r\n DEFAULT_IDENTITY_EDIT_FORM_PROPS,\r\n DEFAULT_IDENTITY_ENTITY_ACTIONS,\r\n DEFAULT_IDENTITY_ENTITY_PROPS,\r\n DEFAULT_IDENTITY_TOOLBAR_ACTIONS,\r\n IDENTITY_CREATE_FORM_PROP_CONTRIBUTORS,\r\n IDENTITY_EDIT_FORM_PROP_CONTRIBUTORS,\r\n IDENTITY_ENTITY_ACTION_CONTRIBUTORS,\r\n IDENTITY_ENTITY_PROP_CONTRIBUTORS,\r\n IDENTITY_TOOLBAR_ACTION_CONTRIBUTORS,\r\n} from '../tokens/extensions.token';\r\n\r\n/**\r\n * @deprecated Use `identityExtensionsResolver` *function* instead.\r\n */\r\n@Injectable()\r\nexport class IdentityExtensionsGuard implements IAbpGuard {\r\n protected readonly injector = inject(Injector);\r\n protected readonly extensions = inject(ExtensionsService);\r\n\r\n canActivate(): Observable<boolean> {\r\n const config = { optional: true };\r\n\r\n const actionContributors = inject(IDENTITY_ENTITY_ACTION_CONTRIBUTORS, config) || {};\r\n const toolbarContributors = inject(IDENTITY_TOOLBAR_ACTION_CONTRIBUTORS, config) || {};\r\n const propContributors = inject(IDENTITY_ENTITY_PROP_CONTRIBUTORS, config) || {};\r\n const createFormContributors = inject(IDENTITY_CREATE_FORM_PROP_CONTRIBUTORS, config) || {};\r\n const editFormContributors = inject(IDENTITY_EDIT_FORM_PROP_CONTRIBUTORS, config) || {};\r\n\r\n return getObjectExtensionEntitiesFromStore(this.injector, 'Identity').pipe(\r\n map(entities => ({\r\n [eIdentityComponents.Roles]: entities.Role,\r\n [eIdentityComponents.Users]: entities.User,\r\n })),\r\n mapEntitiesToContributors(this.injector, 'AbpIdentity'),\r\n tap(objectExtensionContributors => {\r\n mergeWithDefaultActions(\r\n this.extensions.entityActions,\r\n DEFAULT_IDENTITY_ENTITY_ACTIONS,\r\n actionContributors,\r\n );\r\n mergeWithDefaultActions(\r\n this.extensions.toolbarActions,\r\n DEFAULT_IDENTITY_TOOLBAR_ACTIONS,\r\n toolbarContributors,\r\n );\r\n mergeWithDefaultProps(\r\n this.extensions.entityProps,\r\n DEFAULT_IDENTITY_ENTITY_PROPS,\r\n objectExtensionContributors.prop,\r\n propContributors,\r\n );\r\n mergeWithDefaultProps(\r\n this.extensions.createFormProps,\r\n DEFAULT_IDENTITY_CREATE_FORM_PROPS,\r\n objectExtensionContributors.createForm,\r\n createFormContributors,\r\n );\r\n mergeWithDefaultProps(\r\n this.extensions.editFormProps,\r\n DEFAULT_IDENTITY_EDIT_FORM_PROPS,\r\n objectExtensionContributors.editForm,\r\n editFormContributors,\r\n );\r\n }),\r\n map(() => true),\r\n );\r\n }\r\n}\r\n","import {\r\n ExtensionsService,\r\n getObjectExtensionEntitiesFromStore,\r\n mapEntitiesToContributors,\r\n mergeWithDefaultActions,\r\n mergeWithDefaultProps,\r\n} from '@abp/ng.components/extensible';\r\nimport { inject, Injector } from '@angular/core';\r\nimport { ResolveFn } from '@angular/router';\r\nimport { map, tap } from 'rxjs';\r\nimport { eIdentityComponents } from '../enums';\r\nimport {\r\n IDENTITY_ENTITY_ACTION_CONTRIBUTORS,\r\n IDENTITY_TOOLBAR_ACTION_CONTRIBUTORS,\r\n IDENTITY_ENTITY_PROP_CONTRIBUTORS,\r\n IDENTITY_CREATE_FORM_PROP_CONTRIBUTORS,\r\n IDENTITY_EDIT_FORM_PROP_CONTRIBUTORS,\r\n DEFAULT_IDENTITY_ENTITY_ACTIONS,\r\n DEFAULT_IDENTITY_TOOLBAR_ACTIONS,\r\n DEFAULT_IDENTITY_ENTITY_PROPS,\r\n DEFAULT_IDENTITY_CREATE_FORM_PROPS,\r\n DEFAULT_IDENTITY_EDIT_FORM_PROPS,\r\n} from '../tokens';\r\n\r\nexport const identityExtensionsResolver: ResolveFn<any> = () => {\r\n const extensions = inject(ExtensionsService);\r\n\r\n const config = { optional: true };\r\n\r\n const actionContributors = inject(IDENTITY_ENTITY_ACTION_CONTRIBUTORS, config) || {};\r\n const toolbarContributors = inject(IDENTITY_TOOLBAR_ACTION_CONTRIBUTORS, config) || {};\r\n const propContributors = inject(IDENTITY_ENTITY_PROP_CONTRIBUTORS, config) || {};\r\n const createFormContributors = inject(IDENTITY_CREATE_FORM_PROP_CONTRIBUTORS, config) || {};\r\n const editFormContributors = inject(IDENTITY_EDIT_FORM_PROP_CONTRIBUTORS, config) || {};\r\n\r\n const injector = inject(Injector);\r\n return getObjectExtensionEntitiesFromStore(injector, 'Identity').pipe(\r\n map(entities => ({\r\n [eIdentityComponents.Roles]: entities.Role,\r\n [eIdentityComponents.Users]: entities.User,\r\n })),\r\n mapEntitiesToContributors(injector, 'AbpIdentity'),\r\n tap(objectExtensionContributors => {\r\n mergeWithDefaultActions(\r\n extensions.entityActions,\r\n DEFAULT_IDENTITY_ENTITY_ACTIONS,\r\n actionContributors,\r\n );\r\n mergeWithDefaultActions(\r\n extensions.toolbarActions,\r\n DEFAULT_IDENTITY_TOOLBAR_ACTIONS,\r\n toolbarContributors,\r\n );\r\n mergeWithDefaultProps(\r\n extensions.entityProps,\r\n DEFAULT_IDENTITY_ENTITY_PROPS,\r\n objectExtensionContributors.prop,\r\n propContributors,\r\n );\r\n mergeWithDefaultProps(\r\n extensions.createFormProps,\r\n DEFAULT_IDENTITY_CREATE_FORM_PROPS,\r\n objectExtensionContributors.createForm,\r\n createFormContributors,\r\n );\r\n mergeWithDefaultProps(\r\n extensions.editFormProps,\r\n DEFAULT_IDENTITY_EDIT_FORM_PROPS,\r\n objectExtensionContributors.editForm,\r\n editFormContributors,\r\n );\r\n }),\r\n );\r\n};\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\n\r\nimport {\r\n authGuard,\r\n permissionGuard,\r\n ReplaceableComponents,\r\n ReplaceableRouteContainerComponent,\r\n RouterOutletComponent,\r\n} from '@abp/ng.core';\r\n\r\nimport { RolesComponent } from './components/roles/roles.component';\r\nimport { UsersComponent } from './components/users/users.component';\r\nimport { eIdentityComponents } from './enums/components';\r\nimport { identityExtensionsResolver } from './resolvers';\r\n\r\nconst routes: Routes = [\r\n { path: '', redirectTo: 'roles', pathMatch: 'full' },\r\n {\r\n path: '',\r\n component: RouterOutletComponent,\r\n canActivate: [authGuard, permissionGuard],\r\n resolve: [identityExtensionsResolver],\r\n children: [\r\n {\r\n path: 'roles',\r\n component: ReplaceableRouteContainerComponent,\r\n data: {\r\n requiredPolicy: 'AbpIdentity.Roles',\r\n replaceableComponent: {\r\n key: eIdentityComponents.Roles,\r\n defaultComponent: RolesComponent,\r\n } as ReplaceableComponents.RouteData<RolesComponent>,\r\n },\r\n title: 'AbpIdentity::Roles',\r\n },\r\n {\r\n path: 'users',\r\n component: ReplaceableRouteContainerComponent,\r\n data: {\r\n requiredPolicy: 'AbpIdentity.Users',\r\n replaceableComponent: {\r\n key: eIdentityComponents.Users,\r\n defaultComponent: UsersComponent,\r\n } as ReplaceableComponents.RouteData<UsersComponent>,\r\n },\r\n title: 'AbpIdentity::Users',\r\n },\r\n ],\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule],\r\n})\r\nexport class IdentityRoutingModule {}\r\n","import { LazyModuleFactory } from '@abp/ng.core';\r\nimport { ModuleWithProviders, NgModule, NgModuleFactory } from '@angular/core';\r\nimport { IdentityExtensionsGuard } from './guards/extensions.guard';\r\nimport { IdentityConfigOptions } from './models/config-options';\r\nimport {\r\n IDENTITY_CREATE_FORM_PROP_CONTRIBUTORS,\r\n IDENTITY_EDIT_FORM_PROP_CONTRIBUTORS,\r\n IDENTITY_ENTITY_ACTION_CONTRIBUTORS,\r\n IDENTITY_ENTITY_PROP_CONTRIBUTORS,\r\n IDENTITY_TOOLBAR_ACTION_CONTRIBUTORS,\r\n} from './tokens/extensions.token';\r\nimport { IdentityRoutingModule } from './identity-routing.module';\r\nimport { RolesComponent, UsersComponent } from './components';\r\n\r\n@NgModule({\r\n declarations: [],\r\n exports: [],\r\n imports: [IdentityRoutingModule, RolesComponent, UsersComponent],\r\n})\r\nexport class IdentityModule {\r\n static forChild(options: IdentityConfigOptions = {}): ModuleWithProviders<IdentityModule> {\r\n return {\r\n ngModule: IdentityModule,\r\n providers: [\r\n {\r\n provide: IDENTITY_ENTITY_ACTION_CONTRIBUTORS,\r\n useValue: options.entityActionContributors,\r\n },\r\n {\r\n provide: IDENTITY_TOOLBAR_ACTION_CONTRIBUTORS,\r\n useValue: options.toolbarActionContributors,\r\n },\r\n {\r\n provide: IDENTITY_ENTITY_PROP_CONTRIBUTORS,\r\n useValue: options.entityPropContributors,\r\n },\r\n {\r\n provide: IDENTITY_CREATE_FORM_PROP_CONTRIBUTORS,\r\n useValue: options.createFormPropContributors,\r\n },\r\n {\r\n provide: IDENTITY_EDIT_FORM_PROP_CONTRIBUTORS,\r\n useValue: options.editFormPropContributors,\r\n },\r\n IdentityExtensionsGuard,\r\n ],\r\n };\r\n }\r\n /**\r\n * @deprecated `IdentityModule.forLazy()` is deprecated. You can use `createRoutes` **function** instead.\r\n */\r\n static forLazy(options: IdentityConfigOptions = {}): NgModuleFactory<IdentityModule> {\r\n return new LazyModuleFactory(IdentityModule.forChild(options));\r\n }\r\n}\r\n","import { Provider } from '@angular/core';\r\nimport { Routes } from '@angular/router';\r\nimport {\r\n IDENTITY_CREATE_FORM_PROP_CONTRIBUTORS,\r\n IDENTITY_EDIT_FORM_PROP_CONTRIBUTORS,\r\n IDENTITY_ENTITY_ACTION_CONTRIBUTORS,\r\n IDENTITY_ENTITY_PROP_CONTRIBUTORS,\r\n IDENTITY_TOOLBAR_ACTION_CONTRIBUTORS,\r\n} from './tokens';\r\nimport { IdentityConfigOptions } from './models';\r\nimport {\r\n authGuard,\r\n permissionGuard,\r\n ReplaceableComponents,\r\n ReplaceableRouteContainerComponent,\r\n RouterOutletComponent,\r\n} from '@abp/ng.core';\r\nimport { RolesComponent, UsersComponent } from './components';\r\nimport { identityExtensionsResolver } from './resolvers';\r\nimport { eIdentityComponents } from './enums';\r\n\r\nexport function provideIdentity(options: IdentityConfigOptions = {}): Provider[] {\r\n return [\r\n {\r\n provide: IDENTITY_ENTITY_ACTION_CONTRIBUTORS,\r\n useValue: options.entityActionContributors,\r\n },\r\n {\r\n provide: IDENTITY_TOOLBAR_ACTION_CONTRIBUTORS,\r\n useValue: options.toolbarActionContributors,\r\n },\r\n {\r\n provide: IDENTITY_ENTITY_PROP_CONTRIBUTORS,\r\n useValue: options.entityPropContributors,\r\n },\r\n {\r\n provide: IDENTITY_CREATE_FORM_PROP_CONTRIBUTORS,\r\n useValue: options.createFormPropContributors,\r\n },\r\n {\r\n provide: IDENTITY_EDIT_FORM_PROP_CONTRIBUTORS,\r\n useValue: options.editFormPropContributors,\r\n },\r\n ];\r\n}\r\n\r\nexport const createRoutes = (options: IdentityConfigOptions = {}): Routes => [\r\n {\r\n path: '',\r\n component: RouterOutletComponent,\r\n canActivate: [authGuard, permissionGuard],\r\n resolve: [identityExtensionsResolver],\r\n providers: provideIdentity(options),\r\n children: [\r\n { path: '', redirectTo: 'roles', pathMatch: 'full' },\r\n {\r\n path: 'roles',\r\n component: ReplaceableRouteContainerComponent,\r\n data: {\r\n requiredPolicy: 'AbpIdentity.Roles',\r\n replaceableComponent: {\r\n key: eIdentityComponents.Roles,\r\n defaultComponent: RolesComponent,\r\n } as ReplaceableComponents.RouteData<RolesComponent>,\r\n },\r\n title: 'AbpIdentity::Roles',\r\n },\r\n {\r\n path: 'users',\r\n component: ReplaceableRouteContainerComponent,\r\n data: {\r\n requiredPolicy: 'AbpIdentity.Users',\r\n replaceableComponent: {\r\n key: eIdentityComponents.Users,\r\n defaultComponent: UsersComponent,\r\n } as ReplaceableComponents.RouteData<UsersComponent>,\r\n },\r\n title: 'AbpIdentity::Users',\r\n },\r\n ],\r\n },\r\n];\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","map","tap"],"mappings":"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"}
1
+ {"version":3,"file":"abp-ng.identity.mjs","sources":["../../../../packages/identity/src/lib/components/roles/roles.component.ts","../../../../packages/identity/src/lib/components/roles/roles.component.html","../../../../packages/identity/src/lib/components/users/users.component.ts","../../../../packages/identity/src/lib/components/users/users.component.html","../../../../packages/identity/src/lib/defaults/default-roles-entity-actions.ts","../../../../packages/identity/src/lib/defaults/default-roles-entity-props.ts","../../../../packages/identity/src/lib/defaults/default-roles-form-props.ts","../../../../packages/identity/src/lib/defaults/default-roles-toolbar-actions.ts","../../../../packages/identity/src/lib/defaults/default-users-entity-actions.ts","../../../../packages/identity/src/lib/defaults/default-users-entity-props.ts","../../../../packages/identity/src/lib/defaults/default-users-form-props.ts","../../../../packages/identity/src/lib/defaults/default-users-toolbar-actions.ts","../../../../packages/identity/src/lib/tokens/extensions.token.ts","../../../../packages/identity/src/lib/guards/extensions.guard.ts","../../../../packages/identity/src/lib/resolvers/extensions.resolver.ts","../../../../packages/identity/src/lib/identity-routing.module.ts","../../../../packages/identity/src/lib/identity.module.ts","../../../../packages/identity/src/lib/identity.routes.ts","../../../../packages/identity/src/abp-ng.identity.ts"],"sourcesContent":["import {\r\n InitDirective,\r\n ListService,\r\n LocalizationPipe,\r\n PagedAndSortedResultRequestDto,\r\n PagedResultDto,\r\n ReplaceableTemplateDirective\r\n} from '@abp/ng.core';\r\nimport { IdentityRoleDto, IdentityRoleService } from '@abp/ng.identity/proxy';\r\nimport {\r\n ePermissionManagementComponents,\r\n PermissionManagementComponent,\r\n} from '@abp/ng.permission-management';\r\nimport {\r\n ButtonComponent,\r\n Confirmation,\r\n ConfirmationService,\r\n ModalCloseDirective,\r\n ModalComponent,\r\n ToasterService,\r\n} from '@abp/ng.theme.shared';\r\nimport {\r\n ExtensibleFormComponent,\r\n ExtensibleTableComponent,\r\n EXTENSIONS_IDENTIFIER,\r\n FormPropData,\r\n generateFormFromProps,\r\n} from '@abp/ng.components/extensible';\r\nimport { Component, inject, Injector, OnInit } from '@angular/core';\r\nimport { ReactiveFormsModule, UntypedFormGroup } from '@angular/forms';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { eIdentityComponents } from '../../enums/components';\r\nimport { PageComponent } from '@abp/ng.components/page';\r\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\r\n\r\n@Component({\r\n selector: 'abp-roles',\r\n templateUrl: './roles.component.html',\r\n providers: [\r\n ListService,\r\n {\r\n provide: EXTENSIONS_IDENTIFIER,\r\n useValue: eIdentityComponents.Roles,\r\n },\r\n ],\r\n imports: [\r\n ReactiveFormsModule,\r\n LocalizationPipe,\r\n ExtensibleTableComponent,\r\n ModalComponent,\r\n ButtonComponent,\r\n PageComponent,\r\n ExtensibleFormComponent,\r\n ModalCloseDirective,\r\n PermissionManagementComponent,\r\n ReplaceableTemplateDirective,\r\n NgxValidateCoreModule,\r\n InitDirective,\r\n ],\r\n})\r\nexport class RolesComponent implements OnInit {\r\n protected readonly list = inject(ListService<PagedAndSortedResultRequestDto>);\r\n protected readonly confirmationService = inject(ConfirmationService);\r\n protected readonly toasterService = inject(ToasterService);\r\n private readonly injector = inject(Injector);\r\n protected readonly service = inject(IdentityRoleService);\r\n\r\n data: PagedResultDto<IdentityRoleDto> = { items: [], totalCount: 0 };\r\n form!: UntypedFormGroup;\r\n selected?: IdentityRoleDto;\r\n isModalVisible!: boolean;\r\n visiblePermissions = false;\r\n providerKey?: string;\r\n modalBusy = false;\r\n permissionManagementKey = ePermissionManagementComponents.PermissionManagement;\r\n\r\n onVisiblePermissionChange = (event: boolean) => {\r\n this.visiblePermissions = event;\r\n };\r\n\r\n ngOnInit() {\r\n this.hookToQuery();\r\n }\r\n\r\n buildForm() {\r\n const data = new FormPropData(this.injector, this.selected);\r\n this.form = generateFormFromProps(data);\r\n }\r\n\r\n openModal() {\r\n this.buildForm();\r\n this.isModalVisible = true;\r\n }\r\n\r\n add() {\r\n this.selected = {} as IdentityRoleDto;\r\n this.openModal();\r\n }\r\n\r\n edit(id: string) {\r\n this.service.get(id).subscribe(res => {\r\n this.selected = res;\r\n this.openModal();\r\n });\r\n }\r\n\r\n save() {\r\n if (!this.form.valid) return;\r\n this.modalBusy = true;\r\n\r\n const { id } = this.selected || {};\r\n (id\r\n ? this.service.update(id, { ...this.selected, ...this.form.value })\r\n : this.service.create(this.form.value)\r\n )\r\n .pipe(finalize(() => (this.modalBusy = false)))\r\n .subscribe(() => {\r\n this.isModalVisible = false;\r\n this.toasterService.success('AbpUi::SavedSuccessfully');\r\n this.list.get();\r\n });\r\n }\r\n\r\n delete(id: string, name: string) {\r\n this.confirmationService\r\n .warn('AbpIdentity::RoleDeletionConfirmationMessage', 'AbpIdentity::AreYouSure', {\r\n messageLocalizationParams: [name],\r\n })\r\n .subscribe((status: Confirmation.Status) => {\r\n if (status === Confirmation.Status.confirm) {\r\n this.toasterService.success('AbpUi::DeletedSuccessfully');\r\n this.service.delete(id).subscribe(() => this.list.get());\r\n }\r\n });\r\n }\r\n\r\n private hookToQuery() {\r\n this.list\r\n .hookToQuery(query => this.service.getList(query))\r\n .subscribe(res => {\r\n this.data = res;\r\n });\r\n }\r\n\r\n openPermissionsModal(providerKey: string) {\r\n this.providerKey = providerKey;\r\n setTimeout(() => {\r\n this.visiblePermissions = true;\r\n }, 0);\r\n }\r\n\r\n sort(data: any) {\r\n const { prop, dir } = data.sorts[0];\r\n this.list.sortKey = prop;\r\n this.list.sortOrder = dir;\r\n }\r\n}\r\n","<abp-page [title]=\"'AbpIdentity::Roles' | abpLocalization\" [toolbar]=\"data.items\">\r\n <div id=\"identity-roles-wrapper\" class=\"card\">\r\n <div class=\"card-body\">\r\n <abp-extensible-table\r\n [data]=\"data.items\"\r\n [recordsTotal]=\"data.totalCount\"\r\n [list]=\"list\"\r\n ></abp-extensible-table>\r\n </div>\r\n </div>\r\n\r\n <abp-modal [(visible)]=\"isModalVisible\" [busy]=\"modalBusy\">\r\n <ng-template #abpHeader>\r\n <h3>{{ (selected?.id ? 'AbpIdentity::Edit' : 'AbpIdentity::NewRole') | abpLocalization }}</h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <form [formGroup]=\"form\" (ngSubmit)=\"save()\" [validateOnSubmit]=\"true\">\r\n <abp-extensible-form [selectedRecord]=\"selected\"></abp-extensible-form>\r\n </form>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button type=\"button\" class=\"btn btn-outline-primary\" abpClose>\r\n {{ 'AbpIdentity::Cancel' | abpLocalization }}\r\n </button>\r\n <abp-button iconClass=\"fa fa-check\" [disabled]=\"form?.invalid\" (click)=\"save()\">{{\r\n 'AbpIdentity::Save' | abpLocalization\r\n }}</abp-button>\r\n </ng-template>\r\n </abp-modal>\r\n\r\n <abp-permission-management\r\n #abpPermissionManagement=\"abpPermissionManagement\"\r\n *abpReplaceableTemplate=\"\r\n {\r\n inputs: {\r\n providerName: { value: 'R' },\r\n providerKey: { value: providerKey },\r\n visible: { value: visiblePermissions, twoWay: true },\r\n hideBadges: { value: true }\r\n },\r\n outputs: { visibleChange: onVisiblePermissionChange },\r\n componentKey: permissionManagementKey\r\n };\r\n let init = initTemplate\r\n \"\r\n (abpInit)=\"init(abpPermissionManagement)\"\r\n >\r\n </abp-permission-management>\r\n</abp-page>\r\n","import {\r\n InitDirective,\r\n ListService,\r\n LocalizationPipe,\r\n PagedResultDto,\r\n ReplaceableTemplateDirective,\r\n} from '@abp/ng.core';\r\nimport {\r\n GetIdentityUsersInput,\r\n IdentityRoleDto,\r\n IdentityUserDto,\r\n IdentityUserService,\r\n} from '@abp/ng.identity/proxy';\r\nimport {\r\n ePermissionManagementComponents,\r\n PermissionManagementComponent,\r\n} from '@abp/ng.permission-management';\r\nimport {\r\n ButtonComponent,\r\n Confirmation,\r\n ConfirmationService,\r\n eFormComponets,\r\n FormCheckboxComponent,\r\n ModalCloseDirective,\r\n ModalComponent,\r\n ToasterService,\r\n} from '@abp/ng.theme.shared';\r\nimport {\r\n ExtensibleFormComponent,\r\n ExtensibleTableComponent,\r\n EXTENSIONS_IDENTIFIER,\r\n FormPropData,\r\n generateFormFromProps,\r\n} from '@abp/ng.components/extensible';\r\nimport {\r\n Component,\r\n inject,\r\n Injector,\r\n OnInit,\r\n TemplateRef,\r\n TrackByFunction,\r\n viewChild\r\n} from '@angular/core';\r\nimport {\r\n AbstractControl,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n UntypedFormArray,\r\n UntypedFormBuilder,\r\n UntypedFormGroup,\r\n} from '@angular/forms';\r\nimport { finalize, switchMap, tap } from 'rxjs/operators';\r\nimport { eIdentityComponents } from '../../enums/components';\r\nimport { PageComponent } from '@abp/ng.components/page';\r\nimport { NgbDropdownModule, NgbNavModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\r\n\r\n@Component({\r\n selector: 'abp-users',\r\n templateUrl: './users.component.html',\r\n providers: [\r\n ListService,\r\n {\r\n provide: EXTENSIONS_IDENTIFIER,\r\n useValue: eIdentityComponents.Users,\r\n },\r\n ],\r\n imports: [\r\n ReactiveFormsModule,\r\n FormsModule,\r\n PermissionManagementComponent,\r\n PageComponent,\r\n NgbDropdownModule,\r\n NgbNavModule,\r\n NgxValidateCoreModule,\r\n LocalizationPipe,\r\n ExtensibleTableComponent,\r\n ModalComponent,\r\n ExtensibleFormComponent,\r\n FormCheckboxComponent,\r\n ButtonComponent,\r\n ReplaceableTemplateDirective,\r\n ModalCloseDirective,\r\n InitDirective,\r\n ],\r\n})\r\nexport class UsersComponent implements OnInit {\r\n protected readonly list = inject(ListService<GetIdentityUsersInput>);\r\n protected readonly confirmationService = inject(ConfirmationService);\r\n protected readonly service = inject(IdentityUserService);\r\n protected readonly toasterService = inject(ToasterService);\r\n private readonly fb = inject(UntypedFormBuilder);\r\n private readonly injector = inject(Injector);\r\n\r\n data: PagedResultDto<IdentityUserDto> = { items: [], totalCount: 0 };\r\n\r\n readonly modalContent = viewChild.required<TemplateRef<any>>('modalContent');\r\n\r\n form!: UntypedFormGroup;\r\n\r\n selected?: IdentityUserDto;\r\n\r\n selectedTab = 'user-info';\r\n\r\n selectedUserRoles?: IdentityRoleDto[];\r\n\r\n roles?: IdentityRoleDto[];\r\n\r\n visiblePermissions = false;\r\n\r\n providerKey?: string;\r\n\r\n isModalVisible?: boolean;\r\n\r\n modalBusy = false;\r\n\r\n permissionManagementKey = ePermissionManagementComponents.PermissionManagement;\r\n\r\n entityDisplayName: string;\r\n\r\n inputKey = eFormComponets.FormCheckboxComponent;\r\n\r\n trackByFn: TrackByFunction<AbstractControl> = (index, item) => Object.keys(item)[0] || index;\r\n\r\n onVisiblePermissionChange = (event: boolean) => {\r\n this.visiblePermissions = event;\r\n };\r\n\r\n get roleGroups(): UntypedFormGroup[] {\r\n return ((this.form.get('roleNames') as UntypedFormArray)?.controls as UntypedFormGroup[]) || [];\r\n }\r\n\r\n ngOnInit() {\r\n this.hookToQuery();\r\n }\r\n\r\n buildForm() {\r\n const data = new FormPropData(this.injector, this.selected);\r\n this.form = generateFormFromProps(data);\r\n\r\n this.service.getAssignableRoles().subscribe(({ items }) => {\r\n this.roles = items;\r\n if (this.roles) {\r\n this.form.addControl(\r\n 'roleNames',\r\n this.fb.array(\r\n this.roles.map(role =>\r\n this.fb.group({\r\n [role.name as string]: [\r\n this.selected?.id\r\n ? !!this.selectedUserRoles?.find(userRole => userRole.id === role.id)\r\n : role.isDefault,\r\n ],\r\n }),\r\n ),\r\n ),\r\n );\r\n }\r\n });\r\n }\r\n\r\n openModal() {\r\n this.selectedTab = 'user-info';\r\n this.buildForm();\r\n this.isModalVisible = true;\r\n }\r\n\r\n add() {\r\n this.selected = {} as IdentityUserDto;\r\n this.selectedUserRoles = [] as IdentityRoleDto[];\r\n this.openModal();\r\n }\r\n\r\n edit(id: string) {\r\n this.service\r\n .get(id)\r\n .pipe(\r\n tap(user => (this.selected = user)),\r\n switchMap(() => this.service.getRoles(id)),\r\n )\r\n .subscribe(userRole => {\r\n this.selectedUserRoles = userRole.items || [];\r\n this.openModal();\r\n });\r\n }\r\n\r\n save() {\r\n if (!this.form.valid || this.modalBusy) return;\r\n this.modalBusy = true;\r\n\r\n const { roleNames = [] } = this.form.value;\r\n const mappedRoleNames =\r\n roleNames\r\n .filter((role: { [key: string]: any }) => !!role[Object.keys(role)[0]])\r\n .map((role: { [key: string]: any }) => Object.keys(role)[0]) || [];\r\n\r\n const { id } = this.selected || {};\r\n\r\n (id\r\n ? this.service.update(id, {\r\n ...this.selected,\r\n ...this.form.value,\r\n roleNames: mappedRoleNames,\r\n })\r\n : this.service.create({ ...this.form.value, roleNames: mappedRoleNames })\r\n )\r\n .pipe(finalize(() => (this.modalBusy = false)))\r\n .subscribe(() => {\r\n this.isModalVisible = false;\r\n this.toasterService.success('AbpUi::SavedSuccessfully');\r\n this.list.get();\r\n });\r\n }\r\n\r\n delete(id: string, userName: string) {\r\n this.confirmationService\r\n .warn('AbpIdentity::UserDeletionConfirmationMessage', 'AbpIdentity::AreYouSure', {\r\n messageLocalizationParams: [userName],\r\n })\r\n .subscribe((status: Confirmation.Status) => {\r\n if (status === Confirmation.Status.confirm) {\r\n this.service.delete(id).subscribe(() => {\r\n this.toasterService.success('AbpUi::DeletedSuccessfully');\r\n this.list.get();\r\n });\r\n }\r\n });\r\n }\r\n\r\n sort(data: any) {\r\n const { prop, dir } = data.sorts[0];\r\n this.list.sortKey = prop;\r\n this.list.sortOrder = dir;\r\n }\r\n\r\n private hookToQuery() {\r\n this.list\r\n .hookToQuery(query => this.service.getList(query))\r\n .subscribe(res => {\r\n this.data = res;\r\n });\r\n }\r\n\r\n openPermissionsModal(providerKey: string, entityDisplayName?: string) {\r\n this.providerKey = providerKey;\r\n this.entityDisplayName = entityDisplayName;\r\n setTimeout(() => {\r\n this.visiblePermissions = true;\r\n }, 0);\r\n }\r\n}\r\n","<abp-page [title]=\"'AbpIdentity::Users' | abpLocalization\" [toolbar]=\"data.items\">\r\n <div id=\"identity-roles-wrapper\" class=\"card\">\r\n <div class=\"card-body\">\r\n <div id=\"data-tables-table-filter\" class=\"data-tables-filter mb-3\">\r\n <div class=\"input-group\">\r\n <input\r\n type=\"search\"\r\n class=\"form-control\"\r\n [placeholder]=\"'AbpUi::PagerSearch' | abpLocalization\"\r\n [(ngModel)]=\"list.filter\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <abp-extensible-table\r\n [data]=\"data.items\"\r\n [recordsTotal]=\"data.totalCount\"\r\n [list]=\"list\"\r\n ></abp-extensible-table>\r\n </div>\r\n </div>\r\n\r\n <abp-modal [(visible)]=\"isModalVisible\" [busy]=\"modalBusy\">\r\n <ng-template #abpHeader>\r\n <h3>{{ (selected?.id ? 'AbpIdentity::Edit' : 'AbpIdentity::NewUser') | abpLocalization }}</h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n @if (form) {\r\n <form [formGroup]=\"form\" (ngSubmit)=\"save()\">\r\n <ul ngbNav #newUserNav=\"ngbNav\" class=\"nav-tabs\" [(activeId)]=\"selectedTab\">\r\n <li ngbNavItem=\"user-info\">\r\n <a ngbNavLink>{{ 'AbpIdentity::UserInformations' | abpLocalization }}</a>\r\n <ng-template ngbNavContent>\r\n <abp-extensible-form [selectedRecord]=\"selected\"></abp-extensible-form>\r\n </ng-template>\r\n </li>\r\n <li ngbNavItem=\"roles\">\r\n <a ngbNavLink>{{ 'AbpIdentity::Roles' | abpLocalization }}</a>\r\n <ng-template ngbNavContent>\r\n @for (roleGroup of roleGroups; track $index; let i = $index) {\r\n <div class=\"form-check mb-2\">\r\n <abp-checkbox\r\n *abpReplaceableTemplate=\"{\r\n inputs: {\r\n checkboxId: 'roles-' + i,\r\n label: roles[i].name,\r\n formControl: roleGroup.controls[roles[i].name]\r\n },\r\n componentKey: inputKey\r\n }\"\r\n [checkboxId]=\"'roles-' + i\"\r\n [formControl]=\"roleGroup.controls[roles[i].name]\"\r\n [label]=\"roles[i].name\"\r\n >\r\n </abp-checkbox>\r\n </div>\r\n }\r\n </ng-template>\r\n </li>\r\n </ul>\r\n\r\n <div class=\"mt-2 fade-in-top\" [ngbNavOutlet]=\"newUserNav\"></div>\r\n </form>\r\n } @else {\r\n <div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\" aria-hidden=\"true\"></i></div>\r\n }\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button type=\"button\" class=\"btn btn-outline-primary\" abpClose>\r\n {{ 'AbpIdentity::Cancel' | abpLocalization }}\r\n </button>\r\n <abp-button iconClass=\"fa fa-check\" [disabled]=\"form?.invalid\" (click)=\"save()\">{{\r\n 'AbpIdentity::Save' | abpLocalization\r\n }}</abp-button>\r\n </ng-template>\r\n </abp-modal>\r\n\r\n <abp-permission-management\r\n #abpPermissionManagement=\"abpPermissionManagement\"\r\n *abpReplaceableTemplate=\"\r\n {\r\n inputs: {\r\n providerName: { value: 'U' },\r\n providerKey: { value: providerKey },\r\n visible: { value: visiblePermissions, twoWay: true }\r\n },\r\n outputs: { visibleChange: onVisiblePermissionChange },\r\n componentKey: permissionManagementKey\r\n };\r\n let init = initTemplate\r\n \"\r\n [entityDisplayName]=\"entityDisplayName\"\r\n (abpInit)=\"init(abpPermissionManagement)\"\r\n >\r\n </abp-permission-management>\r\n</abp-page>\r\n","import { IdentityRoleDto } from '@abp/ng.identity/proxy';\r\nimport { EntityAction } from '@abp/ng.components/extensible';\r\nimport { RolesComponent } from '../components/roles/roles.component';\r\n\r\nexport const DEFAULT_ROLES_ENTITY_ACTIONS = EntityAction.createMany<IdentityRoleDto>([\r\n {\r\n text: 'AbpIdentity::Edit',\r\n action: data => {\r\n const component = data.getInjected(RolesComponent);\r\n component.edit(data.record.id || '');\r\n },\r\n permission: 'AbpIdentity.Roles.Update',\r\n },\r\n {\r\n text: 'AbpIdentity::Permissions',\r\n action: data => {\r\n const component = data.getInjected(RolesComponent);\r\n component.openPermissionsModal(data.record.name || '');\r\n },\r\n permission: 'AbpIdentity.Roles.ManagePermissions',\r\n },\r\n {\r\n text: 'AbpIdentity::Delete',\r\n action: data => {\r\n const component = data.getInjected(RolesComponent);\r\n component.delete(data.record.id || '', data.record.name || '');\r\n },\r\n permission: 'AbpIdentity.Roles.Delete',\r\n visible: data => !data?.record.isStatic,\r\n },\r\n]);\r\n","import { escapeHtmlChars, LocalizationService } from '@abp/ng.core';\r\nimport { IdentityRoleDto } from '@abp/ng.identity/proxy';\r\nimport { EntityProp, ePropType } from '@abp/ng.components/extensible';\r\nimport { of } from 'rxjs';\r\n\r\nexport const DEFAULT_ROLES_ENTITY_PROPS = EntityProp.createMany<IdentityRoleDto>([\r\n {\r\n type: ePropType.String,\r\n name: 'name',\r\n displayName: 'AbpIdentity::RoleName',\r\n sortable: true,\r\n valueResolver: data => {\r\n const l10n = data.getInjected(LocalizationService);\r\n const t = l10n.instant.bind(l10n);\r\n const { isDefault, isPublic, name } = data.record;\r\n\r\n return of(\r\n escapeHtmlChars(name) +\r\n (isDefault\r\n ? `<span class=\"badge rounded-pill bg-success ms-1\">${t(\r\n 'AbpIdentity::DisplayName:IsDefault',\r\n )}</span>`\r\n : '') +\r\n (isPublic\r\n ? `<span class=\"badge rounded-pill bg-info ms-1\">${t(\r\n 'AbpIdentity::DisplayName:IsPublic',\r\n )}</span>`\r\n : ''),\r\n );\r\n },\r\n },\r\n]);\r\n","import { IdentityRoleDto } from '@abp/ng.identity/proxy';\r\nimport { ePropType, FormProp, PropData, PropPredicate } from \"@abp/ng.components/extensible\";\r\nimport { Validators } from '@angular/forms';\r\n\r\nexport const DEFAULT_ROLES_CREATE_FORM_PROPS = FormProp.createMany<IdentityRoleDto>([\r\n {\r\n type: ePropType.String,\r\n name: 'name',\r\n displayName: 'AbpIdentity::RoleName',\r\n id: 'role-name',\r\n disabled: ((data: PropData<IdentityRoleDto>) => data.record && data.record.isStatic) as PropPredicate<IdentityRoleDto>,\r\n validators: () => [Validators.required],\r\n },\r\n {\r\n type: ePropType.Boolean,\r\n name: 'isDefault',\r\n displayName: 'AbpIdentity::DisplayName:IsDefault',\r\n id: 'role-is-default',\r\n defaultValue: false,\r\n },\r\n {\r\n type: ePropType.Boolean,\r\n name: 'isPublic',\r\n displayName: 'AbpIdentity::DisplayName:IsPublic',\r\n id: 'role-is-public',\r\n defaultValue: false,\r\n },\r\n]);\r\n\r\nexport const DEFAULT_ROLES_EDIT_FORM_PROPS = DEFAULT_ROLES_CREATE_FORM_PROPS;\r\n","import { IdentityRoleDto } from '@abp/ng.identity/proxy';\r\nimport { ToolbarAction } from '@abp/ng.components/extensible';\r\nimport { RolesComponent } from '../components/roles/roles.component';\r\n\r\nexport const DEFAULT_ROLES_TOOLBAR_ACTIONS = ToolbarAction.createMany<IdentityRoleDto[]>([\r\n {\r\n text: 'AbpIdentity::NewRole',\r\n action: data => {\r\n const component = data.getInjected(RolesComponent);\r\n component.add();\r\n },\r\n permission: 'AbpIdentity.Roles.Create',\r\n icon: 'fa fa-plus',\r\n },\r\n]);\r\n","import { IdentityUserDto } from '@abp/ng.identity/proxy';\r\nimport { EntityAction } from '@abp/ng.components/extensible';\r\nimport { UsersComponent } from '../components/users/users.component';\r\nimport { ConfigStateService, CurrentUserDto } from '@abp/ng.core';\r\n\r\nexport const DEFAULT_USERS_ENTITY_ACTIONS = EntityAction.createMany<IdentityUserDto>([\r\n {\r\n text: 'AbpIdentity::Edit',\r\n action: data => {\r\n const component = data.getInjected(UsersComponent);\r\n component.edit(data.record.id || '');\r\n },\r\n permission: 'AbpIdentity.Users.Update',\r\n },\r\n {\r\n text: 'AbpIdentity::Permissions',\r\n action: data => {\r\n const component = data.getInjected(UsersComponent);\r\n component.openPermissionsModal(data.record.id || '', data.record.userName);\r\n },\r\n permission: 'AbpIdentity.Users.ManagePermissions',\r\n },\r\n {\r\n text: 'AbpIdentity::Delete',\r\n action: data => {\r\n const component = data.getInjected(UsersComponent);\r\n component.delete(data.record.id || '', data.record.name || data.record.userName || '');\r\n },\r\n visible: data => {\r\n const userName = data?.record.userName;\r\n const configStateService = data?.getInjected(ConfigStateService);\r\n const currentUser = configStateService?.getOne('currentUser') as CurrentUserDto;\r\n return userName !== currentUser.userName;\r\n },\r\n permission: 'AbpIdentity.Users.Delete',\r\n },\r\n]);\r\n","import { escapeHtmlChars, LocalizationService } from '@abp/ng.core';\r\nimport { IdentityUserDto } from '@abp/ng.identity/proxy';\r\nimport { EntityProp, ePropType } from '@abp/ng.components/extensible';\r\nimport { of } from 'rxjs';\r\n\r\nexport const DEFAULT_USERS_ENTITY_PROPS = EntityProp.createMany<IdentityUserDto>([\r\n {\r\n type: ePropType.String,\r\n name: 'userName',\r\n displayName: 'AbpIdentity::UserName',\r\n sortable: true,\r\n columnWidth: 250,\r\n valueResolver: data => {\r\n const l10n = data.getInjected(LocalizationService);\r\n const t = l10n.instant.bind(l10n);\r\n\r\n const inactiveIcon = `<i title=\"${t(\r\n 'AbpIdentity::ThisUserIsNotActiveMessage',\r\n )}\" class=\"fas fa-ban text-danger me-1\" aria-hidden=\"true\"></i>`;\r\n\r\n return of(\r\n `\r\n ${!data.record.isActive ? inactiveIcon : ''}\r\n <span class=\"${!data.record.isActive ? 'text-muted' : ''}\">${escapeHtmlChars(\r\n data.record.userName,\r\n )}</span>`,\r\n );\r\n },\r\n },\r\n {\r\n type: ePropType.String,\r\n name: 'email',\r\n displayName: 'AbpIdentity::EmailAddress',\r\n sortable: true,\r\n columnWidth: 250,\r\n },\r\n {\r\n type: ePropType.String,\r\n name: 'phoneNumber',\r\n displayName: 'AbpIdentity::PhoneNumber',\r\n sortable: true,\r\n columnWidth: 250,\r\n },\r\n]);\r\n","import { Validators } from '@angular/forms';\r\nimport { ConfigStateService } from '@abp/ng.core';\r\nimport { getPasswordValidators } from '@abp/ng.theme.shared';\r\nimport { ePropType, FormProp } from '@abp/ng.components/extensible';\r\nimport { IdentityUserDto } from '@abp/ng.identity/proxy';\r\n\r\nexport const DEFAULT_USERS_CREATE_FORM_PROPS = FormProp.createMany<IdentityUserDto>([\r\n {\r\n type: ePropType.String,\r\n name: 'userName',\r\n displayName: 'AbpIdentity::UserName',\r\n id: 'user-name',\r\n validators: () => [Validators.required, Validators.maxLength(256)],\r\n },\r\n {\r\n type: ePropType.PasswordInputGroup,\r\n name: 'password',\r\n displayName: 'AbpIdentity::Password',\r\n id: 'password',\r\n autocomplete: 'new-password',\r\n validators: data => [Validators.required, ...getPasswordValidators({ get: data.getInjected })],\r\n },\r\n {\r\n type: ePropType.String,\r\n name: 'name',\r\n displayName: 'AbpIdentity::DisplayName:Name',\r\n id: 'name',\r\n validators: () => [Validators.maxLength(64)],\r\n },\r\n {\r\n type: ePropType.String,\r\n name: 'surname',\r\n displayName: 'AbpIdentity::DisplayName:Surname',\r\n id: 'surname',\r\n validators: () => [Validators.maxLength(64)],\r\n },\r\n {\r\n type: ePropType.Email,\r\n name: 'email',\r\n displayName: 'AbpIdentity::EmailAddress',\r\n id: 'email',\r\n validators: () => [Validators.required, Validators.maxLength(256), Validators.email],\r\n },\r\n {\r\n type: ePropType.String,\r\n name: 'phoneNumber',\r\n displayName: 'AbpIdentity::PhoneNumber',\r\n id: 'phone-number',\r\n validators: () => [Validators.maxLength(16)],\r\n },\r\n {\r\n type: ePropType.Boolean,\r\n name: 'isActive',\r\n displayName: 'AbpIdentity::DisplayName:IsActive',\r\n id: 'active-checkbox',\r\n defaultValue: true,\r\n },\r\n {\r\n type: ePropType.Boolean,\r\n name: 'lockoutEnabled',\r\n displayName: 'AbpIdentity::DisplayName:LockoutEnabled',\r\n id: 'lockout-checkbox',\r\n defaultValue: true,\r\n },\r\n]);\r\n\r\nexport const DEFAULT_USERS_EDIT_FORM_PROPS = DEFAULT_USERS_CREATE_FORM_PROPS.map(prop => {\r\n if (prop.name === 'password') {\r\n return {\r\n ...prop,\r\n validators: (data: any) => [...getPasswordValidators({ get: data.getInjected })],\r\n };\r\n }\r\n if (prop.name === 'isActive') {\r\n return {\r\n ...prop,\r\n visible: data => {\r\n const configState = data.getInjected(ConfigStateService);\r\n const currentUserId = configState.getDeep('currentUser.id');\r\n return currentUserId !== data.record.id;\r\n },\r\n };\r\n }\r\n return prop;\r\n});\r\n","import { IdentityUserDto } from '@abp/ng.identity/proxy';\r\nimport { ToolbarAction } from '@abp/ng.components/extensible';\r\nimport { UsersComponent } from '../components/users/users.component';\r\n\r\nexport const DEFAULT_USERS_TOOLBAR_ACTIONS = ToolbarAction.createMany<IdentityUserDto[]>([\r\n {\r\n text: 'AbpIdentity::NewUser',\r\n action: data => {\r\n const component = data.getInjected(UsersComponent);\r\n component.add();\r\n },\r\n permission: 'AbpIdentity.Users.Create',\r\n icon: 'fa fa-plus',\r\n },\r\n]);\r\n","import { IdentityRoleDto, IdentityUserDto } from '@abp/ng.identity/proxy';\r\nimport {\r\n CreateFormPropContributorCallback,\r\n EditFormPropContributorCallback,\r\n EntityActionContributorCallback,\r\n EntityPropContributorCallback,\r\n ToolbarActionContributorCallback,\r\n} from '@abp/ng.components/extensible';\r\nimport { InjectionToken } from '@angular/core';\r\nimport { DEFAULT_ROLES_ENTITY_ACTIONS } from '../defaults/default-roles-entity-actions';\r\nimport { DEFAULT_ROLES_ENTITY_PROPS } from '../defaults/default-roles-entity-props';\r\nimport {\r\n DEFAULT_ROLES_CREATE_FORM_PROPS,\r\n DEFAULT_ROLES_EDIT_FORM_PROPS,\r\n} from '../defaults/default-roles-form-props';\r\nimport { DEFAULT_ROLES_TOOLBAR_ACTIONS } from '../defaults/default-roles-toolbar-actions';\r\nimport { DEFAULT_USERS_ENTITY_ACTIONS } from '../defaults/default-users-entity-actions';\r\nimport { DEFAULT_USERS_ENTITY_PROPS } from '../defaults/default-users-entity-props';\r\nimport {\r\n DEFAULT_USERS_CREATE_FORM_PROPS,\r\n DEFAULT_USERS_EDIT_FORM_PROPS,\r\n} from '../defaults/default-users-form-props';\r\nimport { DEFAULT_USERS_TOOLBAR_ACTIONS } from '../defaults/default-users-toolbar-actions';\r\nimport { eIdentityComponents } from '../enums/components';\r\n\r\nexport const DEFAULT_IDENTITY_ENTITY_ACTIONS = {\r\n [eIdentityComponents.Roles]: DEFAULT_ROLES_ENTITY_ACTIONS,\r\n [eIdentityComponents.Users]: DEFAULT_USERS_ENTITY_ACTIONS,\r\n};\r\n\r\nexport const DEFAULT_IDENTITY_TOOLBAR_ACTIONS = {\r\n [eIdentityComponents.Roles]: DEFAULT_ROLES_TOOLBAR_ACTIONS,\r\n [eIdentityComponents.Users]: DEFAULT_USERS_TOOLBAR_ACTIONS,\r\n};\r\n\r\nexport const DEFAULT_IDENTITY_ENTITY_PROPS = {\r\n [eIdentityComponents.Roles]: DEFAULT_ROLES_ENTITY_PROPS,\r\n [eIdentityComponents.Users]: DEFAULT_USERS_ENTITY_PROPS,\r\n};\r\n\r\nexport const DEFAULT_IDENTITY_CREATE_FORM_PROPS = {\r\n [eIdentityComponents.Roles]: DEFAULT_ROLES_CREATE_FORM_PROPS,\r\n [eIdentityComponents.Users]: DEFAULT_USERS_CREATE_FORM_PROPS,\r\n};\r\n\r\nexport const DEFAULT_IDENTITY_EDIT_FORM_PROPS = {\r\n [eIdentityComponents.Roles]: DEFAULT_ROLES_EDIT_FORM_PROPS,\r\n [eIdentityComponents.Users]: DEFAULT_USERS_EDIT_FORM_PROPS,\r\n};\r\n\r\nexport const IDENTITY_ENTITY_ACTION_CONTRIBUTORS = new InjectionToken<EntityActionContributors>(\r\n 'IDENTITY_ENTITY_ACTION_CONTRIBUTORS',\r\n);\r\n\r\nexport const IDENTITY_TOOLBAR_ACTION_CONTRIBUTORS = new InjectionToken<ToolbarActionContributors>(\r\n 'IDENTITY_TOOLBAR_ACTION_CONTRIBUTORS',\r\n);\r\n\r\nexport const IDENTITY_ENTITY_PROP_CONTRIBUTORS = new InjectionToken<EntityPropContributors>(\r\n 'IDENTITY_ENTITY_PROP_CONTRIBUTORS',\r\n);\r\n\r\nexport const IDENTITY_CREATE_FORM_PROP_CONTRIBUTORS =\r\n new InjectionToken<CreateFormPropContributors>('IDENTITY_CREATE_FORM_PROP_CONTRIBUTORS');\r\n\r\nexport const IDENTITY_EDIT_FORM_PROP_CONTRIBUTORS = new InjectionToken<EditFormPropContributors>(\r\n 'IDENTITY_EDIT_FORM_PROP_CONTRIBUTORS',\r\n);\r\n\r\n// Fix for TS4023 -> https://github.com/microsoft/TypeScript/issues/9944#issuecomment-254693497\r\ntype EntityActionContributors = Partial<{\r\n [eIdentityComponents.Roles]: EntityActionContributorCallback<IdentityRoleDto>[];\r\n [eIdentityComponents.Users]: EntityActionContributorCallback<IdentityUserDto>[];\r\n}>;\r\ntype ToolbarActionContributors = Partial<{\r\n [eIdentityComponents.Roles]: ToolbarActionContributorCallback<IdentityRoleDto[]>[];\r\n [eIdentityComponents.Users]: ToolbarActionContributorCallback<IdentityUserDto[]>[];\r\n}>;\r\ntype EntityPropContributors = Partial<{\r\n [eIdentityComponents.Roles]: EntityPropContributorCallback<IdentityRoleDto>[];\r\n [eIdentityComponents.Users]: EntityPropContributorCallback<IdentityUserDto>[];\r\n}>;\r\ntype CreateFormPropContributors = Partial<{\r\n [eIdentityComponents.Roles]: CreateFormPropContributorCallback<IdentityRoleDto>[];\r\n [eIdentityComponents.Users]: CreateFormPropContributorCallback<IdentityUserDto>[];\r\n}>;\r\ntype EditFormPropContributors = Partial<{\r\n [eIdentityComponents.Roles]: EditFormPropContributorCallback<IdentityRoleDto>[];\r\n [eIdentityComponents.Users]: EditFormPropContributorCallback<IdentityUserDto>[];\r\n}>;\r\n","import {\r\n ExtensionsService,\r\n getObjectExtensionEntitiesFromStore,\r\n mapEntitiesToContributors,\r\n mergeWithDefaultActions,\r\n mergeWithDefaultProps,\r\n} from '@abp/ng.components/extensible';\r\nimport { IAbpGuard } from '@abp/ng.core';\r\nimport { Injectable, Injector, inject } from '@angular/core';\r\n\r\nimport { Observable } from 'rxjs';\r\nimport { map, tap } from 'rxjs/operators';\r\n\r\nimport { eIdentityComponents } from '../enums/components';\r\nimport {\r\n DEFAULT_IDENTITY_CREATE_FORM_PROPS,\r\n DEFAULT_IDENTITY_EDIT_FORM_PROPS,\r\n DEFAULT_IDENTITY_ENTITY_ACTIONS,\r\n DEFAULT_IDENTITY_ENTITY_PROPS,\r\n DEFAULT_IDENTITY_TOOLBAR_ACTIONS,\r\n IDENTITY_CREATE_FORM_PROP_CONTRIBUTORS,\r\n IDENTITY_EDIT_FORM_PROP_CONTRIBUTORS,\r\n IDENTITY_ENTITY_ACTION_CONTRIBUTORS,\r\n IDENTITY_ENTITY_PROP_CONTRIBUTORS,\r\n IDENTITY_TOOLBAR_ACTION_CONTRIBUTORS,\r\n} from '../tokens/extensions.token';\r\n\r\n/**\r\n * @deprecated Use `identityExtensionsResolver` *function* instead.\r\n */\r\n@Injectable()\r\nexport class IdentityExtensionsGuard implements IAbpGuard {\r\n protected readonly injector = inject(Injector);\r\n protected readonly extensions = inject(ExtensionsService);\r\n\r\n canActivate(): Observable<boolean> {\r\n const config = { optional: true };\r\n\r\n const actionContributors = inject(IDENTITY_ENTITY_ACTION_CONTRIBUTORS, config) || {};\r\n const toolbarContributors = inject(IDENTITY_TOOLBAR_ACTION_CONTRIBUTORS, config) || {};\r\n const propContributors = inject(IDENTITY_ENTITY_PROP_CONTRIBUTORS, config) || {};\r\n const createFormContributors = inject(IDENTITY_CREATE_FORM_PROP_CONTRIBUTORS, config) || {};\r\n const editFormContributors = inject(IDENTITY_EDIT_FORM_PROP_CONTRIBUTORS, config) || {};\r\n\r\n return getObjectExtensionEntitiesFromStore(this.injector, 'Identity').pipe(\r\n map(entities => ({\r\n [eIdentityComponents.Roles]: entities.Role,\r\n [eIdentityComponents.Users]: entities.User,\r\n })),\r\n mapEntitiesToContributors(this.injector, 'AbpIdentity'),\r\n tap(objectExtensionContributors => {\r\n mergeWithDefaultActions(\r\n this.extensions.entityActions,\r\n DEFAULT_IDENTITY_ENTITY_ACTIONS,\r\n actionContributors,\r\n );\r\n mergeWithDefaultActions(\r\n this.extensions.toolbarActions,\r\n DEFAULT_IDENTITY_TOOLBAR_ACTIONS,\r\n toolbarContributors,\r\n );\r\n mergeWithDefaultProps(\r\n this.extensions.entityProps,\r\n DEFAULT_IDENTITY_ENTITY_PROPS,\r\n objectExtensionContributors.prop,\r\n propContributors,\r\n );\r\n mergeWithDefaultProps(\r\n this.extensions.createFormProps,\r\n DEFAULT_IDENTITY_CREATE_FORM_PROPS,\r\n objectExtensionContributors.createForm,\r\n createFormContributors,\r\n );\r\n mergeWithDefaultProps(\r\n this.extensions.editFormProps,\r\n DEFAULT_IDENTITY_EDIT_FORM_PROPS,\r\n objectExtensionContributors.editForm,\r\n editFormContributors,\r\n );\r\n }),\r\n map(() => true),\r\n );\r\n }\r\n}\r\n","import {\r\n ExtensionsService,\r\n getObjectExtensionEntitiesFromStore,\r\n mapEntitiesToContributors,\r\n mergeWithDefaultActions,\r\n mergeWithDefaultProps,\r\n} from '@abp/ng.components/extensible';\r\nimport { inject, Injector } from '@angular/core';\r\nimport { ResolveFn } from '@angular/router';\r\nimport { map, tap } from 'rxjs';\r\nimport { eIdentityComponents } from '../enums';\r\nimport {\r\n IDENTITY_ENTITY_ACTION_CONTRIBUTORS,\r\n IDENTITY_TOOLBAR_ACTION_CONTRIBUTORS,\r\n IDENTITY_ENTITY_PROP_CONTRIBUTORS,\r\n IDENTITY_CREATE_FORM_PROP_CONTRIBUTORS,\r\n IDENTITY_EDIT_FORM_PROP_CONTRIBUTORS,\r\n DEFAULT_IDENTITY_ENTITY_ACTIONS,\r\n DEFAULT_IDENTITY_TOOLBAR_ACTIONS,\r\n DEFAULT_IDENTITY_ENTITY_PROPS,\r\n DEFAULT_IDENTITY_CREATE_FORM_PROPS,\r\n DEFAULT_IDENTITY_EDIT_FORM_PROPS,\r\n} from '../tokens';\r\n\r\nexport const identityExtensionsResolver: ResolveFn<any> = () => {\r\n const extensions = inject(ExtensionsService);\r\n\r\n const config = { optional: true };\r\n\r\n const actionContributors = inject(IDENTITY_ENTITY_ACTION_CONTRIBUTORS, config) || {};\r\n const toolbarContributors = inject(IDENTITY_TOOLBAR_ACTION_CONTRIBUTORS, config) || {};\r\n const propContributors = inject(IDENTITY_ENTITY_PROP_CONTRIBUTORS, config) || {};\r\n const createFormContributors = inject(IDENTITY_CREATE_FORM_PROP_CONTRIBUTORS, config) || {};\r\n const editFormContributors = inject(IDENTITY_EDIT_FORM_PROP_CONTRIBUTORS, config) || {};\r\n\r\n const injector = inject(Injector);\r\n return getObjectExtensionEntitiesFromStore(injector, 'Identity').pipe(\r\n map(entities => ({\r\n [eIdentityComponents.Roles]: entities.Role,\r\n [eIdentityComponents.Users]: entities.User,\r\n })),\r\n mapEntitiesToContributors(injector, 'AbpIdentity'),\r\n tap(objectExtensionContributors => {\r\n mergeWithDefaultActions(\r\n extensions.entityActions,\r\n DEFAULT_IDENTITY_ENTITY_ACTIONS,\r\n actionContributors,\r\n );\r\n mergeWithDefaultActions(\r\n extensions.toolbarActions,\r\n DEFAULT_IDENTITY_TOOLBAR_ACTIONS,\r\n toolbarContributors,\r\n );\r\n mergeWithDefaultProps(\r\n extensions.entityProps,\r\n DEFAULT_IDENTITY_ENTITY_PROPS,\r\n objectExtensionContributors.prop,\r\n propContributors,\r\n );\r\n mergeWithDefaultProps(\r\n extensions.createFormProps,\r\n DEFAULT_IDENTITY_CREATE_FORM_PROPS,\r\n objectExtensionContributors.createForm,\r\n createFormContributors,\r\n );\r\n mergeWithDefaultProps(\r\n extensions.editFormProps,\r\n DEFAULT_IDENTITY_EDIT_FORM_PROPS,\r\n objectExtensionContributors.editForm,\r\n editFormContributors,\r\n );\r\n }),\r\n );\r\n};\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\n\r\nimport {\r\n authGuard,\r\n permissionGuard,\r\n ReplaceableComponents,\r\n ReplaceableRouteContainerComponent,\r\n RouterOutletComponent,\r\n} from '@abp/ng.core';\r\n\r\nimport { RolesComponent } from './components/roles/roles.component';\r\nimport { UsersComponent } from './components/users/users.component';\r\nimport { eIdentityComponents } from './enums/components';\r\nimport { identityExtensionsResolver } from './resolvers';\r\n\r\nconst routes: Routes = [\r\n { path: '', redirectTo: 'roles', pathMatch: 'full' },\r\n {\r\n path: '',\r\n component: RouterOutletComponent,\r\n canActivate: [authGuard, permissionGuard],\r\n resolve: [identityExtensionsResolver],\r\n children: [\r\n {\r\n path: 'roles',\r\n component: ReplaceableRouteContainerComponent,\r\n data: {\r\n requiredPolicy: 'AbpIdentity.Roles',\r\n replaceableComponent: {\r\n key: eIdentityComponents.Roles,\r\n defaultComponent: RolesComponent,\r\n } as ReplaceableComponents.RouteData<RolesComponent>,\r\n },\r\n title: 'AbpIdentity::Roles',\r\n },\r\n {\r\n path: 'users',\r\n component: ReplaceableRouteContainerComponent,\r\n data: {\r\n requiredPolicy: 'AbpIdentity.Users',\r\n replaceableComponent: {\r\n key: eIdentityComponents.Users,\r\n defaultComponent: UsersComponent,\r\n } as ReplaceableComponents.RouteData<UsersComponent>,\r\n },\r\n title: 'AbpIdentity::Users',\r\n },\r\n ],\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule],\r\n})\r\nexport class IdentityRoutingModule {}\r\n","import { LazyModuleFactory } from '@abp/ng.core';\r\nimport { ModuleWithProviders, NgModule, NgModuleFactory } from '@angular/core';\r\nimport { IdentityExtensionsGuard } from './guards/extensions.guard';\r\nimport { IdentityConfigOptions } from './models/config-options';\r\nimport {\r\n IDENTITY_CREATE_FORM_PROP_CONTRIBUTORS,\r\n IDENTITY_EDIT_FORM_PROP_CONTRIBUTORS,\r\n IDENTITY_ENTITY_ACTION_CONTRIBUTORS,\r\n IDENTITY_ENTITY_PROP_CONTRIBUTORS,\r\n IDENTITY_TOOLBAR_ACTION_CONTRIBUTORS,\r\n} from './tokens/extensions.token';\r\nimport { IdentityRoutingModule } from './identity-routing.module';\r\nimport { RolesComponent, UsersComponent } from './components';\r\n\r\n@NgModule({\r\n declarations: [],\r\n exports: [],\r\n imports: [IdentityRoutingModule, RolesComponent, UsersComponent],\r\n})\r\nexport class IdentityModule {\r\n static forChild(options: IdentityConfigOptions = {}): ModuleWithProviders<IdentityModule> {\r\n return {\r\n ngModule: IdentityModule,\r\n providers: [\r\n {\r\n provide: IDENTITY_ENTITY_ACTION_CONTRIBUTORS,\r\n useValue: options.entityActionContributors,\r\n },\r\n {\r\n provide: IDENTITY_TOOLBAR_ACTION_CONTRIBUTORS,\r\n useValue: options.toolbarActionContributors,\r\n },\r\n {\r\n provide: IDENTITY_ENTITY_PROP_CONTRIBUTORS,\r\n useValue: options.entityPropContributors,\r\n },\r\n {\r\n provide: IDENTITY_CREATE_FORM_PROP_CONTRIBUTORS,\r\n useValue: options.createFormPropContributors,\r\n },\r\n {\r\n provide: IDENTITY_EDIT_FORM_PROP_CONTRIBUTORS,\r\n useValue: options.editFormPropContributors,\r\n },\r\n IdentityExtensionsGuard,\r\n ],\r\n };\r\n }\r\n /**\r\n * @deprecated `IdentityModule.forLazy()` is deprecated. You can use `createRoutes` **function** instead.\r\n */\r\n static forLazy(options: IdentityConfigOptions = {}): NgModuleFactory<IdentityModule> {\r\n return new LazyModuleFactory(IdentityModule.forChild(options));\r\n }\r\n}\r\n","import { Provider } from '@angular/core';\r\nimport { Routes } from '@angular/router';\r\nimport {\r\n IDENTITY_CREATE_FORM_PROP_CONTRIBUTORS,\r\n IDENTITY_EDIT_FORM_PROP_CONTRIBUTORS,\r\n IDENTITY_ENTITY_ACTION_CONTRIBUTORS,\r\n IDENTITY_ENTITY_PROP_CONTRIBUTORS,\r\n IDENTITY_TOOLBAR_ACTION_CONTRIBUTORS,\r\n} from './tokens';\r\nimport { IdentityConfigOptions } from './models';\r\nimport {\r\n authGuard,\r\n permissionGuard,\r\n ReplaceableComponents,\r\n ReplaceableRouteContainerComponent,\r\n RouterOutletComponent,\r\n} from '@abp/ng.core';\r\nimport { RolesComponent, UsersComponent } from './components';\r\nimport { identityExtensionsResolver } from './resolvers';\r\nimport { eIdentityComponents } from './enums';\r\n\r\nexport function provideIdentity(options: IdentityConfigOptions = {}): Provider[] {\r\n return [\r\n {\r\n provide: IDENTITY_ENTITY_ACTION_CONTRIBUTORS,\r\n useValue: options.entityActionContributors,\r\n },\r\n {\r\n provide: IDENTITY_TOOLBAR_ACTION_CONTRIBUTORS,\r\n useValue: options.toolbarActionContributors,\r\n },\r\n {\r\n provide: IDENTITY_ENTITY_PROP_CONTRIBUTORS,\r\n useValue: options.entityPropContributors,\r\n },\r\n {\r\n provide: IDENTITY_CREATE_FORM_PROP_CONTRIBUTORS,\r\n useValue: options.createFormPropContributors,\r\n },\r\n {\r\n provide: IDENTITY_EDIT_FORM_PROP_CONTRIBUTORS,\r\n useValue: options.editFormPropContributors,\r\n },\r\n ];\r\n}\r\n\r\nexport const createRoutes = (options: IdentityConfigOptions = {}): Routes => [\r\n {\r\n path: '',\r\n component: RouterOutletComponent,\r\n canActivate: [authGuard, permissionGuard],\r\n resolve: [identityExtensionsResolver],\r\n providers: provideIdentity(options),\r\n children: [\r\n { path: '', redirectTo: 'roles', pathMatch: 'full' },\r\n {\r\n path: 'roles',\r\n component: ReplaceableRouteContainerComponent,\r\n data: {\r\n requiredPolicy: 'AbpIdentity.Roles',\r\n replaceableComponent: {\r\n key: eIdentityComponents.Roles,\r\n defaultComponent: RolesComponent,\r\n } as ReplaceableComponents.RouteData<RolesComponent>,\r\n },\r\n title: 'AbpIdentity::Roles',\r\n },\r\n {\r\n path: 'users',\r\n component: ReplaceableRouteContainerComponent,\r\n data: {\r\n requiredPolicy: 'AbpIdentity.Users',\r\n replaceableComponent: {\r\n key: eIdentityComponents.Users,\r\n defaultComponent: UsersComponent,\r\n } as ReplaceableComponents.RouteData<UsersComponent>,\r\n },\r\n title: 'AbpIdentity::Users',\r\n },\r\n ],\r\n },\r\n];\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","map","tap"],"mappings":"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"}
package/package.json CHANGED
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "name": "@abp/ng.identity",
3
- "version": "10.1.1",
3
+ "version": "10.2.0-rc.2",
4
4
  "homepage": "https://abp.io",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/abpframework/abp.git"
8
8
  },
9
9
  "dependencies": {
10
- "@abp/ng.components": "~10.1.1",
11
- "@abp/ng.permission-management": "~10.1.1",
12
- "@abp/ng.theme.shared": "~10.1.1",
10
+ "@abp/ng.components": "~10.2.0-rc.2",
11
+ "@abp/ng.permission-management": "~10.2.0-rc.2",
12
+ "@abp/ng.theme.shared": "~10.2.0-rc.2",
13
13
  "tslib": "^2.0.0"
14
14
  },
15
15
  "publishConfig": {
@@ -48,9 +48,10 @@ declare class UsersComponent implements OnInit {
48
48
  private readonly fb;
49
49
  private readonly injector;
50
50
  data: PagedResultDto<IdentityUserDto>;
51
- modalContent: TemplateRef<any>;
51
+ readonly modalContent: i0.Signal<TemplateRef<any>>;
52
52
  form: UntypedFormGroup;
53
53
  selected?: IdentityUserDto;
54
+ selectedTab: string;
54
55
  selectedUserRoles?: IdentityRoleDto[];
55
56
  roles?: IdentityRoleDto[];
56
57
  visiblePermissions: boolean;