@abp/ng.identity 6.0.0-rc.3 → 6.0.0-rc.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -27,7 +27,6 @@ export class UsersComponent {
27
27
  this.visiblePermissions = false;
28
28
  this.modalBusy = false;
29
29
  this.permissionManagementKey = "PermissionManagement.PermissionManagementComponent" /* PermissionManagement */;
30
- this.blueprints = { pattern: 'AbpIdentity::Volo.Abp.Identity:InvalidUserName[{{ actualValue }}]' };
31
30
  this.trackByFn = (index, item) => Object.keys(item)[0] || index;
32
31
  this.onVisiblePermissionChange = event => {
33
32
  this.visiblePermissions = event;
@@ -129,7 +128,7 @@ UsersComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version
129
128
  provide: EXTENSIONS_IDENTIFIER,
130
129
  useValue: "Identity.UsersComponent" /* Users */,
131
130
  },
132
- ], viewQueries: [{ propertyName: "modalContent", first: true, predicate: ["modalContent"], descendants: true }], ngImport: i0, template: "<div id=\"identity-roles-wrapper\" class=\"card\">\r\n <div class=\"card-header\">\r\n <div class=\"row\">\r\n <div class=\"col col-md-6\">\r\n <h5 class=\"card-title\">{{ 'AbpIdentity::Users' | abpLocalization }}</h5>\r\n </div>\r\n <div class=\"text-end col col-md-6\">\r\n <abp-page-toolbar [record]=\"data.items\"></abp-page-toolbar>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-body\">\r\n <div id=\"data-tables-table-filter\" class=\"data-tables-filter\">\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 <ng-template #loaderRef\r\n ><div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\"></i></div\r\n ></ng-template>\r\n\r\n <form *ngIf=\"form; else loaderRef\" [blueprints]=\"blueprints\" [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 <div\r\n *ngFor=\"let roleGroup of roleGroups; let i = index; trackBy: trackByFn\"\r\n class=\"form-check mb-2\"\r\n >\r\n <input\r\n type=\"checkbox\"\r\n class=\"form-check-input\"\r\n [attr.id]=\"'roles-' + i\"\r\n [formControl]=\"roleGroup.controls[roles[i].name]\"\r\n />\r\n <label class=\"form-check-label\" [attr.for]=\"'roles-' + i\">{{ roles[i].name }}</label>\r\n </div>\r\n </ng-template>\r\n </li>\r\n </ul>\r\n\r\n <div class=\"mt-2 fade-in-top\" [ngbNavOutlet]=\"nav\"></div>\r\n </form>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button type=\"button\" class=\"btn btn-secondary\" 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", components: [{ type: i5.PageToolbarComponent, selector: "abp-page-toolbar", exportAs: ["abpPageToolbar"] }, { type: i5.ExtensibleTableComponent, selector: "abp-extensible-table", inputs: ["actionsText", "data", "list", "recordsTotal", "actionsColumnWidth", "actionsTemplate"], exportAs: ["abpExtensibleTable"] }, { type: i2.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { type: i5.ExtensibleFormComponent, selector: "abp-extensible-form", inputs: ["selectedRecord"], exportAs: ["abpExtensibleForm"] }, { type: i6.NgbNavOutlet, selector: "[ngbNavOutlet]", inputs: ["paneRole", "ngbNavOutlet"] }, { type: i2.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "formName", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }, { type: i7.PermissionManagementComponent, selector: "abp-permission-management", inputs: ["providerName", "providerKey", "hideBadges", "entityDisplayName", "visible"], outputs: ["visibleChange"], exportAs: ["abpPermissionManagement"] }], directives: [{ type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i1.FormSubmitDirective, selector: "form[ngSubmit][formGroup]", inputs: ["debounce", "notValidateOnSubmit", "markAsDirtyWhenSubmit"], outputs: ["ngSubmit"] }, { type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i9.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { type: i6.NgbNav, selector: "[ngbNav]", inputs: ["activeId", "animation", "destroyOnHide", "orientation", "roles", "keyboard"], outputs: ["activeIdChange", "shown", "hidden", "navChange"], exportAs: ["ngbNav"] }, { type: i6.NgbNavItem, selector: "[ngbNavItem]", inputs: ["destroyOnHide", "disabled", "domId", "ngbNavItem"], outputs: ["shown", "hidden"], exportAs: ["ngbNavItem"] }, { type: i6.NgbNavLink, selector: "a[ngbNavLink]" }, { type: i6.NgbNavContent, selector: "ng-template[ngbNavContent]" }, { type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i9.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { type: i2.ModalCloseDirective, selector: "[abpClose]" }, { type: i1.ReplaceableTemplateDirective, selector: "[abpReplaceableTemplate]", inputs: ["abpReplaceableTemplate"] }, { type: i1.InitDirective, selector: "[abpInit]", outputs: ["abpInit"] }], pipes: { "abpLocalization": i1.LocalizationPipe } });
131
+ ], viewQueries: [{ propertyName: "modalContent", first: true, predicate: ["modalContent"], descendants: true }], ngImport: i0, template: "<div id=\"identity-roles-wrapper\" class=\"card\">\r\n <div class=\"card-header\">\r\n <div class=\"row\">\r\n <div class=\"col col-md-6\">\r\n <h5 class=\"card-title\">{{ 'AbpIdentity::Users' | abpLocalization }}</h5>\r\n </div>\r\n <div class=\"text-end col col-md-6\">\r\n <abp-page-toolbar [record]=\"data.items\"></abp-page-toolbar>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-body\">\r\n <div id=\"data-tables-table-filter\" class=\"data-tables-filter\">\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 <ng-template #loaderRef\r\n ><div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\"></i></div\r\n ></ng-template>\r\n\r\n <form *ngIf=\"form; else loaderRef\" [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 <div\r\n *ngFor=\"let roleGroup of roleGroups; let i = index; trackBy: trackByFn\"\r\n class=\"form-check mb-2\"\r\n >\r\n <input\r\n type=\"checkbox\"\r\n class=\"form-check-input\"\r\n [attr.id]=\"'roles-' + i\"\r\n [formControl]=\"roleGroup.controls[roles[i].name]\"\r\n />\r\n <label class=\"form-check-label\" [attr.for]=\"'roles-' + i\">{{ roles[i].name }}</label>\r\n </div>\r\n </ng-template>\r\n </li>\r\n </ul>\r\n\r\n <div class=\"mt-2 fade-in-top\" [ngbNavOutlet]=\"nav\"></div>\r\n </form>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button type=\"button\" class=\"btn btn-secondary\" 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", components: [{ type: i5.PageToolbarComponent, selector: "abp-page-toolbar", exportAs: ["abpPageToolbar"] }, { type: i5.ExtensibleTableComponent, selector: "abp-extensible-table", inputs: ["actionsText", "data", "list", "recordsTotal", "actionsColumnWidth", "actionsTemplate"], exportAs: ["abpExtensibleTable"] }, { type: i2.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { type: i5.ExtensibleFormComponent, selector: "abp-extensible-form", inputs: ["selectedRecord"], exportAs: ["abpExtensibleForm"] }, { type: i6.NgbNavOutlet, selector: "[ngbNavOutlet]", inputs: ["paneRole", "ngbNavOutlet"] }, { type: i2.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "formName", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }, { type: i7.PermissionManagementComponent, selector: "abp-permission-management", inputs: ["providerName", "providerKey", "hideBadges", "entityDisplayName", "visible"], outputs: ["visibleChange"], exportAs: ["abpPermissionManagement"] }], directives: [{ type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i1.FormSubmitDirective, selector: "form[ngSubmit][formGroup]", inputs: ["debounce", "notValidateOnSubmit", "markAsDirtyWhenSubmit"], outputs: ["ngSubmit"] }, { type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i9.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { type: i6.NgbNav, selector: "[ngbNav]", inputs: ["activeId", "animation", "destroyOnHide", "orientation", "roles", "keyboard"], outputs: ["activeIdChange", "shown", "hidden", "navChange"], exportAs: ["ngbNav"] }, { type: i6.NgbNavItem, selector: "[ngbNavItem]", inputs: ["destroyOnHide", "disabled", "domId", "ngbNavItem"], outputs: ["shown", "hidden"], exportAs: ["ngbNavItem"] }, { type: i6.NgbNavLink, selector: "a[ngbNavLink]" }, { type: i6.NgbNavContent, selector: "ng-template[ngbNavContent]" }, { type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i9.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { type: i2.ModalCloseDirective, selector: "[abpClose]" }, { type: i1.ReplaceableTemplateDirective, selector: "[abpReplaceableTemplate]", inputs: ["abpReplaceableTemplate"] }, { type: i1.InitDirective, selector: "[abpInit]", outputs: ["abpInit"] }], pipes: { "abpLocalization": i1.LocalizationPipe } });
133
132
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: UsersComponent, decorators: [{
134
133
  type: Component,
135
134
  args: [{ selector: 'abp-users', providers: [
@@ -138,9 +137,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.6", ngImpor
138
137
  provide: EXTENSIONS_IDENTIFIER,
139
138
  useValue: "Identity.UsersComponent" /* Users */,
140
139
  },
141
- ], template: "<div id=\"identity-roles-wrapper\" class=\"card\">\r\n <div class=\"card-header\">\r\n <div class=\"row\">\r\n <div class=\"col col-md-6\">\r\n <h5 class=\"card-title\">{{ 'AbpIdentity::Users' | abpLocalization }}</h5>\r\n </div>\r\n <div class=\"text-end col col-md-6\">\r\n <abp-page-toolbar [record]=\"data.items\"></abp-page-toolbar>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-body\">\r\n <div id=\"data-tables-table-filter\" class=\"data-tables-filter\">\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 <ng-template #loaderRef\r\n ><div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\"></i></div\r\n ></ng-template>\r\n\r\n <form *ngIf=\"form; else loaderRef\" [blueprints]=\"blueprints\" [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 <div\r\n *ngFor=\"let roleGroup of roleGroups; let i = index; trackBy: trackByFn\"\r\n class=\"form-check mb-2\"\r\n >\r\n <input\r\n type=\"checkbox\"\r\n class=\"form-check-input\"\r\n [attr.id]=\"'roles-' + i\"\r\n [formControl]=\"roleGroup.controls[roles[i].name]\"\r\n />\r\n <label class=\"form-check-label\" [attr.for]=\"'roles-' + i\">{{ roles[i].name }}</label>\r\n </div>\r\n </ng-template>\r\n </li>\r\n </ul>\r\n\r\n <div class=\"mt-2 fade-in-top\" [ngbNavOutlet]=\"nav\"></div>\r\n </form>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button type=\"button\" class=\"btn btn-secondary\" 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" }]
140
+ ], template: "<div id=\"identity-roles-wrapper\" class=\"card\">\r\n <div class=\"card-header\">\r\n <div class=\"row\">\r\n <div class=\"col col-md-6\">\r\n <h5 class=\"card-title\">{{ 'AbpIdentity::Users' | abpLocalization }}</h5>\r\n </div>\r\n <div class=\"text-end col col-md-6\">\r\n <abp-page-toolbar [record]=\"data.items\"></abp-page-toolbar>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-body\">\r\n <div id=\"data-tables-table-filter\" class=\"data-tables-filter\">\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 <ng-template #loaderRef\r\n ><div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\"></i></div\r\n ></ng-template>\r\n\r\n <form *ngIf=\"form; else loaderRef\" [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 <div\r\n *ngFor=\"let roleGroup of roleGroups; let i = index; trackBy: trackByFn\"\r\n class=\"form-check mb-2\"\r\n >\r\n <input\r\n type=\"checkbox\"\r\n class=\"form-check-input\"\r\n [attr.id]=\"'roles-' + i\"\r\n [formControl]=\"roleGroup.controls[roles[i].name]\"\r\n />\r\n <label class=\"form-check-label\" [attr.for]=\"'roles-' + i\">{{ roles[i].name }}</label>\r\n </div>\r\n </ng-template>\r\n </li>\r\n </ul>\r\n\r\n <div class=\"mt-2 fade-in-top\" [ngbNavOutlet]=\"nav\"></div>\r\n </form>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button type=\"button\" class=\"btn btn-secondary\" 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" }]
142
141
  }], ctorParameters: function () { return [{ type: i1.ListService }, { type: i2.ConfirmationService }, { type: i3.IdentityUserService }, { type: i2.ToasterService }, { type: i4.FormBuilder }, { type: i0.Injector }]; }, propDecorators: { modalContent: [{
143
142
  type: ViewChild,
144
143
  args: ['modalContent', { static: false }]
145
144
  }] } });
146
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlcnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvaWRlbnRpdHkvc3JjL2xpYi9jb21wb25lbnRzL3VzZXJzL3VzZXJzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2lkZW50aXR5L3NyYy9saWIvY29tcG9uZW50cy91c2Vycy91c2Vycy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFrQixNQUFNLGNBQWMsQ0FBQztBQUMzRCxPQUFPLEVBSUwsbUJBQW1CLEdBQ3BCLE1BQU0sd0JBQXdCLENBQUM7QUFFaEMsT0FBTyxFQUFDLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxjQUFjLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RixPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLFlBQVksRUFDWixxQkFBcUIsR0FDdEIsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6QyxPQUFPLEVBQ0wsU0FBUyxFQUNULFFBQVEsRUFFUixXQUFXLEVBRVgsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBOEIsV0FBVyxFQUFhLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEYsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7O0FBYzFELE1BQU0sT0FBTyxjQUFjO0lBdUN6QixZQUNrQixJQUF3QyxFQUM5QyxtQkFBd0MsRUFDeEMsT0FBNEIsRUFDOUIsY0FBOEIsRUFDNUIsRUFBZSxFQUNmLFFBQWtCO1FBTFosU0FBSSxHQUFKLElBQUksQ0FBb0M7UUFDOUMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxZQUFPLEdBQVAsT0FBTyxDQUFxQjtRQUM5QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDNUIsT0FBRSxHQUFG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QUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNsRyxDQUFDO0lBRUQsb0JBQW9CLENBQUMsV0FBbUIsRUFBRSxpQkFBMEI7UUFDbEUsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFDL0IsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGlCQUFpQixDQUFDO1FBQzNDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDO1FBQ2pDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNSLENBQUM7OzJHQTNKVSxjQUFjOytGQUFkLGNBQWMsb0NBUmQ7UUFDVCxXQUFXO1FBQ1g7WUFDRSxPQUFPLEVBQUUscUJBQXFCO1lBQzlCLFFBQVEsdUNBQTJCO1NBQ3BDO0tBQ0Ysd0lDbkNILDJtSEFxR0E7MkZEaEVhLGNBQWM7a0JBWDFCLFNBQVM7K0JBQ0UsV0FBVyxhQUVWO3dCQUNULFdBQVc7d0JBQ1g7NEJBQ0UsT0FBTyxFQUFFLHFCQUFxQjs0QkFDOUIsUUFBUSx1Q0FBMkI7eUJBQ3BDO3FCQUNGO29QQU1ELFlBQVk7c0JBRFgsU0FBUzt1QkFBQyxjQUFjLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTGlzdFNlcnZpY2UsIFBhZ2VkUmVzdWx0RHRvIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuaW1wb3J0IHtcclxuICBHZXRJZGVudGl0eVVzZXJzSW5wdXQsXHJcbiAgSWRlbnRpdHlSb2xlRHRvLFxyXG4gIElkZW50aXR5VXNlckR0byxcclxuICBJZGVudGl0eVVzZXJTZXJ2aWNlLFxyXG59IGZyb20gJ0BhYnAvbmcuaWRlbnRpdHkvcHJveHknO1xyXG5pbXBvcnQgeyBlUGVybWlzc2lvbk1hbmFnZW1lbnRDb21wb25lbnRzIH0gZnJvbSAnQGFicC9uZy5wZXJtaXNzaW9uLW1hbmFnZW1lbnQnO1xyXG5pbXBvcnQge0NvbmZpcm1hdGlvbiwgQ29uZmlybWF0aW9uU2VydmljZSwgVG9hc3RlclNlcnZpY2V9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcclxuaW1wb3J0IHtcclxuICBFWFRFTlNJT05TX0lERU5USUZJRVIsXHJcbiAgRm9ybVByb3BEYXRhLFxyXG4gIGdlbmVyYXRlRm9ybUZyb21Qcm9wcyxcclxufSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZC9leHRlbnNpb25zJztcclxuaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgSW5qZWN0b3IsXHJcbiAgT25Jbml0LFxyXG4gIFRlbXBsYXRlUmVmLFxyXG4gIFRyYWNrQnlGdW5jdGlvbixcclxuICBWaWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUFycmF5LCBGb3JtQnVpbGRlciwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBmaW5hbGl6ZSwgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IGVJZGVudGl0eUNvbXBvbmVudHMgfSBmcm9tICcuLi8uLi9lbnVtcy9jb21wb25lbnRzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYWJwLXVzZXJzJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdXNlcnMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAgTGlzdFNlcnZpY2UsXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IEVYVEVOU0lPTlNfSURFTlRJRklFUixcclxuICAgICAgdXNlVmFsdWU6IGVJZGVudGl0eUNvbXBvbmVudHMuVXNlcnMsXHJcbiAgICB9LFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVc2Vyc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgZGF0YTogUGFnZWRSZXN1bHREdG88SWRlbnRpdHlVc2VyRHRvPiA9IHsgaXRlbXM6IFtdLCB0b3RhbENvdW50OiAwIH07XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ21vZGFsQ29udGVudCcsIHsgc3RhdGljOiBmYWxzZSB9KVxyXG4gIG1vZGFsQ29udGVudDogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgZm9ybTogRm9ybUdyb3VwO1xyXG5cclxuICBzZWxlY3RlZDogSWRlbnRpdHlVc2VyRHRvO1xyXG5cclxuICBzZWxlY3RlZFVzZXJSb2xlczogSWRlbnRpdHlSb2xlRHRvW107XHJcblxyXG4gIHJvbGVzOiBJZGVudGl0eVJvbGVEdG9bXTtcclxuXHJcbiAgdmlzaWJsZVBlcm1pc3Npb25zID0gZmFsc2U7XHJcblxyXG4gIHByb3ZpZGVyS2V5OiBzdHJpbmc7XHJcblxyXG4gIGlzTW9kYWxWaXNpYmxlOiBib29sZWFuO1xyXG5cclxuICBtb2RhbEJ1c3kgPSBmYWxzZTtcclxuXHJcbiAgcGVybWlzc2lvbk1hbmFnZW1lbnRLZXkgPSBlUGVybWlzc2lvbk1hbmFnZW1lbnRDb21wb25lbnRzLlBlcm1pc3Npb25NYW5hZ2VtZW50O1xyXG5cclxuICBlbnRpdHlEaXNwbGF5TmFtZTogc3RyaW5nO1xyXG5cclxuICBibHVlcHJpbnRzID0geyBwYXR0ZXJuOiAnQWJwSWRlbnRpdHk6OlZvbG8uQWJwLklkZW50aXR5OkludmFsaWRVc2VyTmFtZVt7eyBhY3R1YWxWYWx1ZSB9fV0nIH07XHJcblxyXG5cclxuICB0cmFja0J5Rm46IFRyYWNrQnlGdW5jdGlvbjxBYnN0cmFjdENvbnRyb2w+ID0gKGluZGV4LCBpdGVtKSA9PiBPYmplY3Qua2V5cyhpdGVtKVswXSB8fCBpbmRleDtcclxuXHJcbiAgb25WaXNpYmxlUGVybWlzc2lvbkNoYW5nZSA9IGV2ZW50ID0+IHtcclxuICAgIHRoaXMudmlzaWJsZVBlcm1pc3Npb25zID0gZXZlbnQ7XHJcbiAgfTtcclxuXHJcbiAgZ2V0IHJvbGVHcm91cHMoKTogRm9ybUdyb3VwW10ge1xyXG4gICAgcmV0dXJuICgodGhpcy5mb3JtLmdldCgncm9sZU5hbWVzJykgYXMgRm9ybUFycmF5KT8uY29udHJvbHMgYXMgRm9ybUdyb3VwW10pIHx8IFtdO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgbGlzdDogTGlzdFNlcnZpY2U8R2V0SWRlbnRpdHlVc2Vyc0lucHV0PixcclxuICAgIHByb3RlY3RlZCBjb25maXJtYXRpb25TZXJ2aWNlOiBDb25maXJtYXRpb25TZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIHNlcnZpY2U6IElkZW50aXR5VXNlclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHRvYXN0ZXJTZXJ2aWNlOiBUb2FzdGVyU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBmYjogRm9ybUJ1aWxkZXIsXHJcbiAgICBwcm90ZWN0ZWQgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmhvb2tUb1F1ZXJ5KCk7XHJcbiAgfVxyXG5cclxuICBidWlsZEZvcm0oKSB7XHJcbiAgICBjb25zdCBkYXRhID0gbmV3IEZvcm1Qcm9wRGF0YSh0aGlzLmluamVjdG9yLCB0aGlzLnNlbGVjdGVkKTtcclxuICAgIHRoaXMuZm9ybSA9IGdlbmVyYXRlRm9ybUZyb21Qcm9wcyhkYXRhKTtcclxuXHJcbiAgICB0aGlzLnNlcnZpY2UuZ2V0QXNzaWduYWJsZVJvbGVzKCkuc3Vic2NyaWJlKCh7IGl0ZW1zIH0pID0+IHtcclxuICAgICAgdGhpcy5yb2xlcyA9IGl0ZW1zO1xyXG4gICAgICB0aGlzLmZvcm0uYWRkQ29udHJvbChcclxuICAgICAgICAncm9sZU5hbWVzJyxcclxuICAgICAgICB0aGlzLmZiLmFycmF5KFxyXG4gICAgICAgICAgdGhpcy5yb2xlcy5tYXAocm9sZSA9PlxyXG4gICAgICAgICAgICB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgICAgICAgICBbcm9sZS5uYW1lXTogW1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZC5pZFxyXG4gICAgICAgICAgICAgICAgICA/ICEhdGhpcy5zZWxlY3RlZFVzZXJSb2xlcz8uZmluZCh1c2VyUm9sZSA9PiB1c2VyUm9sZS5pZCA9PT0gcm9sZS5pZClcclxuICAgICAgICAgICAgICAgICAgOiByb2xlLmlzRGVmYXVsdCxcclxuICAgICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICksXHJcbiAgICAgICAgKSxcclxuICAgICAgKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb3Blbk1vZGFsKCkge1xyXG4gICAgdGhpcy5idWlsZEZvcm0oKTtcclxuICAgIHRoaXMuaXNNb2RhbFZpc2libGUgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgYWRkKCkge1xyXG4gICAgdGhpcy5zZWxlY3RlZCA9IHt9IGFzIElkZW50aXR5VXNlckR0bztcclxuICAgIHRoaXMuc2VsZWN0ZWRVc2VyUm9sZXMgPSBbXSBhcyBJZGVudGl0eVJvbGVEdG9bXTtcclxuICAgIHRoaXMub3Blbk1vZGFsKCk7XHJcbiAgfVxyXG5cclxuICBlZGl0KGlkOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuc2VydmljZVxyXG4gICAgICAuZ2V0KGlkKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICB0YXAodXNlciA9PiAodGhpcy5zZWxlY3RlZCA9IHVzZXIpKSxcclxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5zZXJ2aWNlLmdldFJvbGVzKGlkKSksXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSh1c2VyUm9sZSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFVzZXJSb2xlcyA9IHVzZXJSb2xlLml0ZW1zIHx8IFtdO1xyXG4gICAgICAgIHRoaXMub3Blbk1vZGFsKCk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2F2ZSgpIHtcclxuICAgIGlmICghdGhpcy5mb3JtLnZhbGlkIHx8IHRoaXMubW9kYWxCdXN5KSByZXR1cm47XHJcbiAgICB0aGlzLm1vZGFsQnVzeSA9IHRydWU7XHJcblxyXG4gICAgY29uc3QgeyByb2xlTmFtZXMgPSBbXSB9ID0gdGhpcy5mb3JtLnZhbHVlO1xyXG4gICAgY29uc3QgbWFwcGVkUm9sZU5hbWVzID1cclxuICAgICAgcm9sZU5hbWVzLmZpbHRlcihyb2xlID0+ICEhcm9sZVtPYmplY3Qua2V5cyhyb2xlKVswXV0pLm1hcChyb2xlID0+IE9iamVjdC5rZXlzKHJvbGUpWzBdKSB8fFxyXG4gICAgICBbXTtcclxuXHJcbiAgICBjb25zdCB7IGlkIH0gPSB0aGlzLnNlbGVjdGVkO1xyXG5cclxuICAgIChpZFxyXG4gICAgICA/IHRoaXMuc2VydmljZS51cGRhdGUoaWQsIHtcclxuICAgICAgICAgIC4uLnRoaXMuc2VsZWN0ZWQsXHJcbiAgICAgICAgICAuLi50aGlzLmZvcm0udmFsdWUsXHJcbiAgICAgICAgICByb2xlTmFtZXM6IG1hcHBlZFJvbGVOYW1lcyxcclxuICAgICAgICB9KVxyXG4gICAgICA6IHRoaXMuc2VydmljZS5jcmVhdGUoeyAuLi50aGlzLmZvcm0udmFsdWUsIHJvbGVOYW1lczogbWFwcGVkUm9sZU5hbWVzIH0pXHJcbiAgICApXHJcbiAgICAgIC5waXBlKGZpbmFsaXplKCgpID0+ICh0aGlzLm1vZGFsQnVzeSA9IGZhbHNlKSkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuaXNNb2RhbFZpc2libGUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmxpc3QuZ2V0KCk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlKGlkOiBzdHJpbmcsIHVzZXJOYW1lOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuY29uZmlybWF0aW9uU2VydmljZVxyXG4gICAgICAud2FybignQWJwSWRlbnRpdHk6OlVzZXJEZWxldGlvbkNvbmZpcm1hdGlvbk1lc3NhZ2UnLCAnQWJwSWRlbnRpdHk6OkFyZVlvdVN1cmUnLCB7XHJcbiAgICAgICAgbWVzc2FnZUxvY2FsaXphdGlvblBhcmFtczogW3VzZXJOYW1lXSxcclxuICAgICAgfSlcclxuICAgICAgLnN1YnNjcmliZSgoc3RhdHVzOiBDb25maXJtYXRpb24uU3RhdHVzKSA9PiB7XHJcbiAgICAgICAgaWYgKHN0YXR1cyA9PT0gQ29uZmlybWF0aW9uLlN0YXR1cy5jb25maXJtKSB7XHJcbiAgICAgICAgICB0aGlzLnNlcnZpY2UuZGVsZXRlKGlkKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnRvYXN0ZXJTZXJ2aWNlLnN1Y2Nlc3MoJ0FicFVpOjpTdWNjZXNzZnVsbHlEZWxldGVkJyk7XHJcbiAgICAgICAgICAgIHRoaXMubGlzdC5nZXQoKX0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBzb3J0KGRhdGEpIHtcclxuICAgIGNvbnN0IHsgcHJvcCwgZGlyIH0gPSBkYXRhLnNvcnRzWzBdO1xyXG4gICAgdGhpcy5saXN0LnNvcnRLZXkgPSBwcm9wO1xyXG4gICAgdGhpcy5saXN0LnNvcnRPcmRlciA9IGRpcjtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaG9va1RvUXVlcnkoKSB7XHJcbiAgICB0aGlzLmxpc3QuaG9va1RvUXVlcnkocXVlcnkgPT4gdGhpcy5zZXJ2aWNlLmdldExpc3QocXVlcnkpKS5zdWJzY3JpYmUocmVzID0+ICh0aGlzLmRhdGEgPSByZXMpKTtcclxuICB9XHJcblxyXG4gIG9wZW5QZXJtaXNzaW9uc01vZGFsKHByb3ZpZGVyS2V5OiBzdHJpbmcsIGVudGl0eURpc3BsYXlOYW1lPzogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnByb3ZpZGVyS2V5ID0gcHJvdmlkZXJLZXk7XHJcbiAgICB0aGlzLmVudGl0eURpc3BsYXlOYW1lID0gZW50aXR5RGlzcGxheU5hbWU7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy52aXNpYmxlUGVybWlzc2lvbnMgPSB0cnVlO1xyXG4gICAgfSwgMCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgaWQ9XCJpZGVudGl0eS1yb2xlcy13cmFwcGVyXCIgY2xhc3M9XCJjYXJkXCI+XHJcbiAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wgY29sLW1kLTZcIj5cclxuICAgICAgICA8aDUgY2xhc3M9XCJjYXJkLXRpdGxlXCI+e3sgJ0FicElkZW50aXR5OjpVc2VycycgfCBhYnBMb2NhbGl6YXRpb24gfX08L2g1PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInRleHQtZW5kIGNvbCBjb2wtbWQtNlwiPlxyXG4gICAgICAgIDxhYnAtcGFnZS10b29sYmFyIFtyZWNvcmRdPVwiZGF0YS5pdGVtc1wiPjwvYWJwLXBhZ2UtdG9vbGJhcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5XCI+XHJcbiAgICA8ZGl2IGlkPVwiZGF0YS10YWJsZXMtdGFibGUtZmlsdGVyXCIgY2xhc3M9XCJkYXRhLXRhYmxlcy1maWx0ZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCI+XHJcbiAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICB0eXBlPVwic2VhcmNoXCJcclxuICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInQWJwVWk6OlBhZ2VyU2VhcmNoJyB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cImxpc3QuZmlsdGVyXCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxhYnAtZXh0ZW5zaWJsZS10YWJsZVxyXG4gICAgICBbZGF0YV09XCJkYXRhLml0ZW1zXCJcclxuICAgICAgW3JlY29yZHNUb3RhbF09XCJkYXRhLnRvdGFsQ291bnRcIlxyXG4gICAgICBbbGlzdF09XCJsaXN0XCJcclxuICAgID48L2FicC1leHRlbnNpYmxlLXRhYmxlPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxhYnAtbW9kYWwgWyh2aXNpYmxlKV09XCJpc01vZGFsVmlzaWJsZVwiIFtidXN5XT1cIm1vZGFsQnVzeVwiPlxyXG4gIDxuZy10ZW1wbGF0ZSAjYWJwSGVhZGVyPlxyXG4gICAgPGgzPnt7IChzZWxlY3RlZD8uaWQgPyAnQWJwSWRlbnRpdHk6OkVkaXQnIDogJ0FicElkZW50aXR5OjpOZXdVc2VyJykgfCBhYnBMb2NhbGl6YXRpb24gfX08L2gzPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gIDxuZy10ZW1wbGF0ZSAjYWJwQm9keT5cclxuICAgIDxuZy10ZW1wbGF0ZSAjbG9hZGVyUmVmXHJcbiAgICAgID48ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXJcIj48aSBjbGFzcz1cImZhIGZhLXB1bHNlIGZhLXNwaW5uZXJcIj48L2k+PC9kaXZcclxuICAgID48L25nLXRlbXBsYXRlPlxyXG5cclxuICAgIDxmb3JtICpuZ0lmPVwiZm9ybTsgZWxzZSBsb2FkZXJSZWZcIiBbYmx1ZXByaW50c109XCJibHVlcHJpbnRzXCIgW2Zvcm1Hcm91cF09XCJmb3JtXCIgKG5nU3VibWl0KT1cInNhdmUoKVwiPlxyXG4gICAgICA8dWwgbmdiTmF2ICNuYXY9XCJuZ2JOYXZcIiBjbGFzcz1cIm5hdi10YWJzXCI+XHJcbiAgICAgICAgPGxpIG5nYk5hdkl0ZW0+XHJcbiAgICAgICAgICA8YSBuZ2JOYXZMaW5rPnt7ICdBYnBJZGVudGl0eTo6VXNlckluZm9ybWF0aW9ucycgfCBhYnBMb2NhbGl6YXRpb24gfX08L2E+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbmdiTmF2Q29udGVudD5cclxuICAgICAgICAgICAgPGFicC1leHRlbnNpYmxlLWZvcm0gW3NlbGVjdGVkUmVjb3JkXT1cInNlbGVjdGVkXCI+PC9hYnAtZXh0ZW5zaWJsZS1mb3JtPlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L2xpPlxyXG5cclxuICAgICAgICA8bGkgbmdiTmF2SXRlbT5cclxuICAgICAgICAgIDxhIG5nYk5hdkxpbms+e3sgJ0FicElkZW50aXR5OjpSb2xlcycgfCBhYnBMb2NhbGl6YXRpb24gfX08L2E+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbmdiTmF2Q29udGVudD5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICpuZ0Zvcj1cImxldCByb2xlR3JvdXAgb2Ygcm9sZUdyb3VwczsgbGV0IGkgPSBpbmRleDsgdHJhY2tCeTogdHJhY2tCeUZuXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY2hlY2sgbWItMlwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgW2F0dHIuaWRdPVwiJ3JvbGVzLScgKyBpXCJcclxuICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJyb2xlR3JvdXAuY29udHJvbHNbcm9sZXNbaV0ubmFtZV1cIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiIFthdHRyLmZvcl09XCIncm9sZXMtJyArIGlcIj57eyByb2xlc1tpXS5uYW1lIH19PC9sYWJlbD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbGk+XHJcbiAgICAgIDwvdWw+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwibXQtMiBmYWRlLWluLXRvcFwiIFtuZ2JOYXZPdXRsZXRdPVwibmF2XCI+PC9kaXY+XHJcbiAgICA8L2Zvcm0+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgPG5nLXRlbXBsYXRlICNhYnBGb290ZXI+XHJcbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5XCIgYWJwQ2xvc2U+XHJcbiAgICAgIHt7ICdBYnBJZGVudGl0eTo6Q2FuY2VsJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgPC9idXR0b24+XHJcbiAgICA8YWJwLWJ1dHRvbiBpY29uQ2xhc3M9XCJmYSBmYS1jaGVja1wiIFtkaXNhYmxlZF09XCJmb3JtPy5pbnZhbGlkXCIgKGNsaWNrKT1cInNhdmUoKVwiPnt7XHJcbiAgICAgICdBYnBJZGVudGl0eTo6U2F2ZScgfCBhYnBMb2NhbGl6YXRpb25cclxuICAgIH19PC9hYnAtYnV0dG9uPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbjwvYWJwLW1vZGFsPlxyXG5cclxuPGFicC1wZXJtaXNzaW9uLW1hbmFnZW1lbnRcclxuICAjYWJwUGVybWlzc2lvbk1hbmFnZW1lbnQ9XCJhYnBQZXJtaXNzaW9uTWFuYWdlbWVudFwiXHJcbiAgKmFicFJlcGxhY2VhYmxlVGVtcGxhdGU9XCJcclxuICAgIHtcclxuICAgICAgaW5wdXRzOiB7XHJcbiAgICAgICAgcHJvdmlkZXJOYW1lOiB7IHZhbHVlOiAnVScgfSxcclxuICAgICAgICBwcm92aWRlcktleTogeyB2YWx1ZTogcHJvdmlkZXJLZXkgfSxcclxuICAgICAgICB2aXNpYmxlOiB7IHZhbHVlOiB2aXNpYmxlUGVybWlzc2lvbnMsIHR3b1dheTogdHJ1ZSB9XHJcbiAgICAgIH0sXHJcbiAgICAgIG91dHB1dHM6IHsgdmlzaWJsZUNoYW5nZTogb25WaXNpYmxlUGVybWlzc2lvbkNoYW5nZSB9LFxyXG4gICAgICBjb21wb25lbnRLZXk6IHBlcm1pc3Npb25NYW5hZ2VtZW50S2V5XHJcbiAgICB9O1xyXG4gICAgbGV0IGluaXQgPSBpbml0VGVtcGxhdGVcclxuICBcIlxyXG4gIFtlbnRpdHlEaXNwbGF5TmFtZV09XCJlbnRpdHlEaXNwbGF5TmFtZVwiXHJcbiAgKGFicEluaXQpPVwiaW5pdChhYnBQZXJtaXNzaW9uTWFuYWdlbWVudClcIlxyXG4+XHJcbjwvYWJwLXBlcm1pc3Npb24tbWFuYWdlbWVudD5cclxuIl19
145
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlcnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvaWRlbnRpdHkvc3JjL2xpYi9jb21wb25lbnRzL3VzZXJzL3VzZXJzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2lkZW50aXR5L3NyYy9saWIvY29tcG9uZW50cy91c2Vycy91c2Vycy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFrQixNQUFNLGNBQWMsQ0FBQztBQUMzRCxPQUFPLEVBSUwsbUJBQW1CLEdBQ3BCLE1BQU0sd0JBQXdCLENBQUM7QUFFaEMsT0FBTyxFQUFDLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxjQUFjLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RixPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLFlBQVksRUFDWixxQkFBcUIsR0FDdEIsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6QyxPQUFPLEVBQ0wsU0FBUyxFQUNULFFBQVEsRUFFUixXQUFXLEVBRVgsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBOEIsV0FBVyxFQUFhLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEYsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7O0FBYzFELE1BQU0sT0FBTyxjQUFjO0lBb0N6QixZQUNrQixJQUF3QyxFQUM5QyxtQkFBd0MsRUFDeEMsT0FBNEIsRUFDOUIsY0FBOEIsRUFDNUIsRUFBZSxFQUNmLFFBQWtCO1FBTFosU0FBSSxHQUFKLElBQUksQ0FBb0M7UUFDOUMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxZQUFPLEdBQVAsT0FBTyxDQUFxQjtRQUM5QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDNUIsT0FBRSxHQUFG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LEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNsRyxDQUFDO0lBRUQsb0JBQW9CLENBQUMsV0FBbUIsRUFBRSxpQkFBMEI7UUFDbEUsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFDL0IsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGlCQUFpQixDQUFDO1FBQzNDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDO1FBQ2pDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNSLENBQUM7OzJHQXhKVSxjQUFjOytGQUFkLGNBQWMsb0NBUmQ7UUFDVCxXQUFXO1FBQ1g7WUFDRSxPQUFPLEVBQUUscUJBQXFCO1lBQzlCLFFBQVEsdUNBQTJCO1NBQ3BDO0tBQ0Ysd0lDbkNILCtrSEFxR0E7MkZEaEVhLGNBQWM7a0JBWDFCLFNBQVM7K0JBQ0UsV0FBVyxhQUVWO3dCQUNULFdBQVc7d0JBQ1g7NEJBQ0UsT0FBTyxFQUFFLHFCQUFxQjs0QkFDOUIsUUFBUSx1Q0FBMkI7eUJBQ3BDO3FCQUNGO29QQU1ELFlBQVk7c0JBRFgsU0FBUzt1QkFBQyxjQUFjLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTGlzdFNlcnZpY2UsIFBhZ2VkUmVzdWx0RHRvIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuaW1wb3J0IHtcclxuICBHZXRJZGVudGl0eVVzZXJzSW5wdXQsXHJcbiAgSWRlbnRpdHlSb2xlRHRvLFxyXG4gIElkZW50aXR5VXNlckR0byxcclxuICBJZGVudGl0eVVzZXJTZXJ2aWNlLFxyXG59IGZyb20gJ0BhYnAvbmcuaWRlbnRpdHkvcHJveHknO1xyXG5pbXBvcnQgeyBlUGVybWlzc2lvbk1hbmFnZW1lbnRDb21wb25lbnRzIH0gZnJvbSAnQGFicC9uZy5wZXJtaXNzaW9uLW1hbmFnZW1lbnQnO1xyXG5pbXBvcnQge0NvbmZpcm1hdGlvbiwgQ29uZmlybWF0aW9uU2VydmljZSwgVG9hc3RlclNlcnZpY2V9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcclxuaW1wb3J0IHtcclxuICBFWFRFTlNJT05TX0lERU5USUZJRVIsXHJcbiAgRm9ybVByb3BEYXRhLFxyXG4gIGdlbmVyYXRlRm9ybUZyb21Qcm9wcyxcclxufSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZC9leHRlbnNpb25zJztcclxuaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgSW5qZWN0b3IsXHJcbiAgT25Jbml0LFxyXG4gIFRlbXBsYXRlUmVmLFxyXG4gIFRyYWNrQnlGdW5jdGlvbixcclxuICBWaWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUFycmF5LCBGb3JtQnVpbGRlciwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBmaW5hbGl6ZSwgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IGVJZGVudGl0eUNvbXBvbmVudHMgfSBmcm9tICcuLi8uLi9lbnVtcy9jb21wb25lbnRzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYWJwLXVzZXJzJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdXNlcnMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAgTGlzdFNlcnZpY2UsXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IEVYVEVOU0lPTlNfSURFTlRJRklFUixcclxuICAgICAgdXNlVmFsdWU6IGVJZGVudGl0eUNvbXBvbmVudHMuVXNlcnMsXHJcbiAgICB9LFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVc2Vyc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgZGF0YTogUGFnZWRSZXN1bHREdG88SWRlbnRpdHlVc2VyRHRvPiA9IHsgaXRlbXM6IFtdLCB0b3RhbENvdW50OiAwIH07XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ21vZGFsQ29udGVudCcsIHsgc3RhdGljOiBmYWxzZSB9KVxyXG4gIG1vZGFsQ29udGVudDogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgZm9ybTogRm9ybUdyb3VwO1xyXG5cclxuICBzZWxlY3RlZDogSWRlbnRpdHlVc2VyRHRvO1xyXG5cclxuICBzZWxlY3RlZFVzZXJSb2xlczogSWRlbnRpdHlSb2xlRHRvW107XHJcblxyXG4gIHJvbGVzOiBJZGVudGl0eVJvbGVEdG9bXTtcclxuXHJcbiAgdmlzaWJsZVBlcm1pc3Npb25zID0gZmFsc2U7XHJcblxyXG4gIHByb3ZpZGVyS2V5OiBzdHJpbmc7XHJcblxyXG4gIGlzTW9kYWxWaXNpYmxlOiBib29sZWFuO1xyXG5cclxuICBtb2RhbEJ1c3kgPSBmYWxzZTtcclxuXHJcbiAgcGVybWlzc2lvbk1hbmFnZW1lbnRLZXkgPSBlUGVybWlzc2lvbk1hbmFnZW1lbnRDb21wb25lbnRzLlBlcm1pc3Npb25NYW5hZ2VtZW50O1xyXG5cclxuICBlbnRpdHlEaXNwbGF5TmFtZTogc3RyaW5nO1xyXG5cclxuICB0cmFja0J5Rm46IFRyYWNrQnlGdW5jdGlvbjxBYnN0cmFjdENvbnRyb2w+ID0gKGluZGV4LCBpdGVtKSA9PiBPYmplY3Qua2V5cyhpdGVtKVswXSB8fCBpbmRleDtcclxuXHJcbiAgb25WaXNpYmxlUGVybWlzc2lvbkNoYW5nZSA9IGV2ZW50ID0+IHtcclxuICAgIHRoaXMudmlzaWJsZVBlcm1pc3Npb25zID0gZXZlbnQ7XHJcbiAgfTtcclxuXHJcbiAgZ2V0IHJvbGVHcm91cHMoKTogRm9ybUdyb3VwW10ge1xyXG4gICAgcmV0dXJuICgodGhpcy5mb3JtLmdldCgncm9sZU5hbWVzJykgYXMgRm9ybUFycmF5KT8uY29udHJvbHMgYXMgRm9ybUdyb3VwW10pIHx8IFtdO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgbGlzdDogTGlzdFNlcnZpY2U8R2V0SWRlbnRpdHlVc2Vyc0lucHV0PixcclxuICAgIHByb3RlY3RlZCBjb25maXJtYXRpb25TZXJ2aWNlOiBDb25maXJtYXRpb25TZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIHNlcnZpY2U6IElkZW50aXR5VXNlclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHRvYXN0ZXJTZXJ2aWNlOiBUb2FzdGVyU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBmYjogRm9ybUJ1aWxkZXIsXHJcbiAgICBwcm90ZWN0ZWQgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmhvb2tUb1F1ZXJ5KCk7XHJcbiAgfVxyXG5cclxuICBidWlsZEZvcm0oKSB7XHJcbiAgICBjb25zdCBkYXRhID0gbmV3IEZvcm1Qcm9wRGF0YSh0aGlzLmluamVjdG9yLCB0aGlzLnNlbGVjdGVkKTtcclxuICAgIHRoaXMuZm9ybSA9IGdlbmVyYXRlRm9ybUZyb21Qcm9wcyhkYXRhKTtcclxuXHJcbiAgICB0aGlzLnNlcnZpY2UuZ2V0QXNzaWduYWJsZVJvbGVzKCkuc3Vic2NyaWJlKCh7IGl0ZW1zIH0pID0+IHtcclxuICAgICAgdGhpcy5yb2xlcyA9IGl0ZW1zO1xyXG4gICAgICB0aGlzLmZvcm0uYWRkQ29udHJvbChcclxuICAgICAgICAncm9sZU5hbWVzJyxcclxuICAgICAgICB0aGlzLmZiLmFycmF5KFxyXG4gICAgICAgICAgdGhpcy5yb2xlcy5tYXAocm9sZSA9PlxyXG4gICAgICAgICAgICB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgICAgICAgICBbcm9sZS5uYW1lXTogW1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZC5pZFxyXG4gICAgICAgICAgICAgICAgICA/ICEhdGhpcy5zZWxlY3RlZFVzZXJSb2xlcz8uZmluZCh1c2VyUm9sZSA9PiB1c2VyUm9sZS5pZCA9PT0gcm9sZS5pZClcclxuICAgICAgICAgICAgICAgICAgOiByb2xlLmlzRGVmYXVsdCxcclxuICAgICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICksXHJcbiAgICAgICAgKSxcclxuICAgICAgKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb3Blbk1vZGFsKCkge1xyXG4gICAgdGhpcy5idWlsZEZvcm0oKTtcclxuICAgIHRoaXMuaXNNb2RhbFZpc2libGUgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgYWRkKCkge1xyXG4gICAgdGhpcy5zZWxlY3RlZCA9IHt9IGFzIElkZW50aXR5VXNlckR0bztcclxuICAgIHRoaXMuc2VsZWN0ZWRVc2VyUm9sZXMgPSBbXSBhcyBJZGVudGl0eVJvbGVEdG9bXTtcclxuICAgIHRoaXMub3Blbk1vZGFsKCk7XHJcbiAgfVxyXG5cclxuICBlZGl0KGlkOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuc2VydmljZVxyXG4gICAgICAuZ2V0KGlkKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICB0YXAodXNlciA9PiAodGhpcy5zZWxlY3RlZCA9IHVzZXIpKSxcclxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5zZXJ2aWNlLmdldFJvbGVzKGlkKSksXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSh1c2VyUm9sZSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFVzZXJSb2xlcyA9IHVzZXJSb2xlLml0ZW1zIHx8IFtdO1xyXG4gICAgICAgIHRoaXMub3Blbk1vZGFsKCk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2F2ZSgpIHtcclxuICAgIGlmICghdGhpcy5mb3JtLnZhbGlkIHx8IHRoaXMubW9kYWxCdXN5KSByZXR1cm47XHJcbiAgICB0aGlzLm1vZGFsQnVzeSA9IHRydWU7XHJcblxyXG4gICAgY29uc3QgeyByb2xlTmFtZXMgPSBbXSB9ID0gdGhpcy5mb3JtLnZhbHVlO1xyXG4gICAgY29uc3QgbWFwcGVkUm9sZU5hbWVzID1cclxuICAgICAgcm9sZU5hbWVzLmZpbHRlcihyb2xlID0+ICEhcm9sZVtPYmplY3Qua2V5cyhyb2xlKVswXV0pLm1hcChyb2xlID0+IE9iamVjdC5rZXlzKHJvbGUpWzBdKSB8fFxyXG4gICAgICBbXTtcclxuXHJcbiAgICBjb25zdCB7IGlkIH0gPSB0aGlzLnNlbGVjdGVkO1xyXG5cclxuICAgIChpZFxyXG4gICAgICA/IHRoaXMuc2VydmljZS51cGRhdGUoaWQsIHtcclxuICAgICAgICAgIC4uLnRoaXMuc2VsZWN0ZWQsXHJcbiAgICAgICAgICAuLi50aGlzLmZvcm0udmFsdWUsXHJcbiAgICAgICAgICByb2xlTmFtZXM6IG1hcHBlZFJvbGVOYW1lcyxcclxuICAgICAgICB9KVxyXG4gICAgICA6IHRoaXMuc2VydmljZS5jcmVhdGUoeyAuLi50aGlzLmZvcm0udmFsdWUsIHJvbGVOYW1lczogbWFwcGVkUm9sZU5hbWVzIH0pXHJcbiAgICApXHJcbiAgICAgIC5waXBlKGZpbmFsaXplKCgpID0+ICh0aGlzLm1vZGFsQnVzeSA9IGZhbHNlKSkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuaXNNb2RhbFZpc2libGUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmxpc3QuZ2V0KCk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlKGlkOiBzdHJpbmcsIHVzZXJOYW1lOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuY29uZmlybWF0aW9uU2VydmljZVxyXG4gICAgICAud2FybignQWJwSWRlbnRpdHk6OlVzZXJEZWxldGlvbkNvbmZpcm1hdGlvbk1lc3NhZ2UnLCAnQWJwSWRlbnRpdHk6OkFyZVlvdVN1cmUnLCB7XHJcbiAgICAgICAgbWVzc2FnZUxvY2FsaXphdGlvblBhcmFtczogW3VzZXJOYW1lXSxcclxuICAgICAgfSlcclxuICAgICAgLnN1YnNjcmliZSgoc3RhdHVzOiBDb25maXJtYXRpb24uU3RhdHVzKSA9PiB7XHJcbiAgICAgICAgaWYgKHN0YXR1cyA9PT0gQ29uZmlybWF0aW9uLlN0YXR1cy5jb25maXJtKSB7XHJcbiAgICAgICAgICB0aGlzLnNlcnZpY2UuZGVsZXRlKGlkKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnRvYXN0ZXJTZXJ2aWNlLnN1Y2Nlc3MoJ0FicFVpOjpTdWNjZXNzZnVsbHlEZWxldGVkJyk7XHJcbiAgICAgICAgICAgIHRoaXMubGlzdC5nZXQoKX0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBzb3J0KGRhdGEpIHtcclxuICAgIGNvbnN0IHsgcHJvcCwgZGlyIH0gPSBkYXRhLnNvcnRzWzBdO1xyXG4gICAgdGhpcy5saXN0LnNvcnRLZXkgPSBwcm9wO1xyXG4gICAgdGhpcy5saXN0LnNvcnRPcmRlciA9IGRpcjtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaG9va1RvUXVlcnkoKSB7XHJcbiAgICB0aGlzLmxpc3QuaG9va1RvUXVlcnkocXVlcnkgPT4gdGhpcy5zZXJ2aWNlLmdldExpc3QocXVlcnkpKS5zdWJzY3JpYmUocmVzID0+ICh0aGlzLmRhdGEgPSByZXMpKTtcclxuICB9XHJcblxyXG4gIG9wZW5QZXJtaXNzaW9uc01vZGFsKHByb3ZpZGVyS2V5OiBzdHJpbmcsIGVudGl0eURpc3BsYXlOYW1lPzogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnByb3ZpZGVyS2V5ID0gcHJvdmlkZXJLZXk7XHJcbiAgICB0aGlzLmVudGl0eURpc3BsYXlOYW1lID0gZW50aXR5RGlzcGxheU5hbWU7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy52aXNpYmxlUGVybWlzc2lvbnMgPSB0cnVlO1xyXG4gICAgfSwgMCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgaWQ9XCJpZGVudGl0eS1yb2xlcy13cmFwcGVyXCIgY2xhc3M9XCJjYXJkXCI+XHJcbiAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wgY29sLW1kLTZcIj5cclxuICAgICAgICA8aDUgY2xhc3M9XCJjYXJkLXRpdGxlXCI+e3sgJ0FicElkZW50aXR5OjpVc2VycycgfCBhYnBMb2NhbGl6YXRpb24gfX08L2g1PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInRleHQtZW5kIGNvbCBjb2wtbWQtNlwiPlxyXG4gICAgICAgIDxhYnAtcGFnZS10b29sYmFyIFtyZWNvcmRdPVwiZGF0YS5pdGVtc1wiPjwvYWJwLXBhZ2UtdG9vbGJhcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5XCI+XHJcbiAgICA8ZGl2IGlkPVwiZGF0YS10YWJsZXMtdGFibGUtZmlsdGVyXCIgY2xhc3M9XCJkYXRhLXRhYmxlcy1maWx0ZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCI+XHJcbiAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICB0eXBlPVwic2VhcmNoXCJcclxuICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInQWJwVWk6OlBhZ2VyU2VhcmNoJyB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cImxpc3QuZmlsdGVyXCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxhYnAtZXh0ZW5zaWJsZS10YWJsZVxyXG4gICAgICBbZGF0YV09XCJkYXRhLml0ZW1zXCJcclxuICAgICAgW3JlY29yZHNUb3RhbF09XCJkYXRhLnRvdGFsQ291bnRcIlxyXG4gICAgICBbbGlzdF09XCJsaXN0XCJcclxuICAgID48L2FicC1leHRlbnNpYmxlLXRhYmxlPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxhYnAtbW9kYWwgWyh2aXNpYmxlKV09XCJpc01vZGFsVmlzaWJsZVwiIFtidXN5XT1cIm1vZGFsQnVzeVwiPlxyXG4gIDxuZy10ZW1wbGF0ZSAjYWJwSGVhZGVyPlxyXG4gICAgPGgzPnt7IChzZWxlY3RlZD8uaWQgPyAnQWJwSWRlbnRpdHk6OkVkaXQnIDogJ0FicElkZW50aXR5OjpOZXdVc2VyJykgfCBhYnBMb2NhbGl6YXRpb24gfX08L2gzPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gIDxuZy10ZW1wbGF0ZSAjYWJwQm9keT5cclxuICAgIDxuZy10ZW1wbGF0ZSAjbG9hZGVyUmVmXHJcbiAgICAgID48ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXJcIj48aSBjbGFzcz1cImZhIGZhLXB1bHNlIGZhLXNwaW5uZXJcIj48L2k+PC9kaXZcclxuICAgID48L25nLXRlbXBsYXRlPlxyXG5cclxuICAgIDxmb3JtICpuZ0lmPVwiZm9ybTsgZWxzZSBsb2FkZXJSZWZcIiBbZm9ybUdyb3VwXT1cImZvcm1cIiAobmdTdWJtaXQpPVwic2F2ZSgpXCI+XHJcbiAgICAgIDx1bCBuZ2JOYXYgI25hdj1cIm5nYk5hdlwiIGNsYXNzPVwibmF2LXRhYnNcIj5cclxuICAgICAgICA8bGkgbmdiTmF2SXRlbT5cclxuICAgICAgICAgIDxhIG5nYk5hdkxpbms+e3sgJ0FicElkZW50aXR5OjpVc2VySW5mb3JtYXRpb25zJyB8IGFicExvY2FsaXphdGlvbiB9fTwvYT5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBuZ2JOYXZDb250ZW50PlxyXG4gICAgICAgICAgICA8YWJwLWV4dGVuc2libGUtZm9ybSBbc2VsZWN0ZWRSZWNvcmRdPVwic2VsZWN0ZWRcIj48L2FicC1leHRlbnNpYmxlLWZvcm0+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbGk+XHJcblxyXG4gICAgICAgIDxsaSBuZ2JOYXZJdGVtPlxyXG4gICAgICAgICAgPGEgbmdiTmF2TGluaz57eyAnQWJwSWRlbnRpdHk6OlJvbGVzJyB8IGFicExvY2FsaXphdGlvbiB9fTwvYT5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBuZ2JOYXZDb250ZW50PlxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHJvbGVHcm91cCBvZiByb2xlR3JvdXBzOyBsZXQgaSA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5Rm5cIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjayBtYi0yXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiXHJcbiAgICAgICAgICAgICAgICBbYXR0ci5pZF09XCIncm9sZXMtJyArIGlcIlxyXG4gICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cInJvbGVHcm91cC5jb250cm9sc1tyb2xlc1tpXS5uYW1lXVwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCIgW2F0dHIuZm9yXT1cIidyb2xlcy0nICsgaVwiPnt7IHJvbGVzW2ldLm5hbWUgfX08L2xhYmVsPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9saT5cclxuICAgICAgPC91bD5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtdC0yIGZhZGUtaW4tdG9wXCIgW25nYk5hdk91dGxldF09XCJuYXZcIj48L2Rpdj5cclxuICAgIDwvZm9ybT5cclxuICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICA8bmctdGVtcGxhdGUgI2FicEZvb3Rlcj5cclxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnlcIiBhYnBDbG9zZT5cclxuICAgICAge3sgJ0FicElkZW50aXR5OjpDYW5jZWwnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxhYnAtYnV0dG9uIGljb25DbGFzcz1cImZhIGZhLWNoZWNrXCIgW2Rpc2FibGVkXT1cImZvcm0/LmludmFsaWRcIiAoY2xpY2spPVwic2F2ZSgpXCI+e3tcclxuICAgICAgJ0FicElkZW50aXR5OjpTYXZlJyB8IGFicExvY2FsaXphdGlvblxyXG4gICAgfX08L2FicC1idXR0b24+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuPC9hYnAtbW9kYWw+XHJcblxyXG48YWJwLXBlcm1pc3Npb24tbWFuYWdlbWVudFxyXG4gICNhYnBQZXJtaXNzaW9uTWFuYWdlbWVudD1cImFicFBlcm1pc3Npb25NYW5hZ2VtZW50XCJcclxuICAqYWJwUmVwbGFjZWFibGVUZW1wbGF0ZT1cIlxyXG4gICAge1xyXG4gICAgICBpbnB1dHM6IHtcclxuICAgICAgICBwcm92aWRlck5hbWU6IHsgdmFsdWU6ICdVJyB9LFxyXG4gICAgICAgIHByb3ZpZGVyS2V5OiB7IHZhbHVlOiBwcm92aWRlcktleSB9LFxyXG4gICAgICAgIHZpc2libGU6IHsgdmFsdWU6IHZpc2libGVQZXJtaXNzaW9ucywgdHdvV2F5OiB0cnVlIH1cclxuICAgICAgfSxcclxuICAgICAgb3V0cHV0czogeyB2aXNpYmxlQ2hhbmdlOiBvblZpc2libGVQZXJtaXNzaW9uQ2hhbmdlIH0sXHJcbiAgICAgIGNvbXBvbmVudEtleTogcGVybWlzc2lvbk1hbmFnZW1lbnRLZXlcclxuICAgIH07XHJcbiAgICBsZXQgaW5pdCA9IGluaXRUZW1wbGF0ZVxyXG4gIFwiXHJcbiAgW2VudGl0eURpc3BsYXlOYW1lXT1cImVudGl0eURpc3BsYXlOYW1lXCJcclxuICAoYWJwSW5pdCk9XCJpbml0KGFicFBlcm1pc3Npb25NYW5hZ2VtZW50KVwiXHJcbj5cclxuPC9hYnAtcGVybWlzc2lvbi1tYW5hZ2VtZW50PlxyXG4iXX0=
@@ -1,14 +1,14 @@
1
1
  import { getPasswordValidators } from '@abp/ng.theme.shared';
2
2
  import { FormProp } from '@abp/ng.theme.shared/extensions';
3
3
  import { Validators } from '@angular/forms';
4
- const onlyLetterAndNumberRegex = /^[a-zA-Z0-9]+$/;
4
+ import { AbpValidators } from '@abp/ng.core';
5
5
  export const DEFAULT_USERS_CREATE_FORM_PROPS = FormProp.createMany([
6
6
  {
7
7
  type: "string" /* String */,
8
8
  name: 'userName',
9
9
  displayName: 'AbpIdentity::UserName',
10
10
  id: 'user-name',
11
- validators: () => [Validators.required, Validators.maxLength(256), Validators.pattern(onlyLetterAndNumberRegex)],
11
+ validators: () => [Validators.required, Validators.maxLength(256), AbpValidators.username()],
12
12
  },
13
13
  {
14
14
  type: "password" /* Password */,
@@ -70,4 +70,4 @@ export const DEFAULT_USERS_EDIT_FORM_PROPS = DEFAULT_USERS_CREATE_FORM_PROPS.map
70
70
  }
71
71
  return prop;
72
72
  });
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC11c2Vycy1mb3JtLXByb3BzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvaWRlbnRpdHkvc3JjL2xpYi9kZWZhdWx0cy9kZWZhdWx0LXVzZXJzLWZvcm0tcHJvcHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0QsT0FBTyxFQUFhLFFBQVEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU1QyxNQUFNLHdCQUF3QixHQUFHLGdCQUFnQixDQUFDO0FBRWxELE1BQU0sQ0FBQyxNQUFNLCtCQUErQixHQUFHLFFBQVEsQ0FBQyxVQUFVLENBQWtCO0lBQ2xGO1FBQ0UsSUFBSSx1QkFBa0I7UUFDdEIsSUFBSSxFQUFFLFVBQVU7UUFDaEIsV0FBVyxFQUFFLHVCQUF1QjtRQUNwQyxFQUFFLEVBQUUsV0FBVztRQUNmLFVBQVUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDLHdCQUF3QixDQUFDLENBQUM7S0FDakg7SUFDRDtRQUNFLElBQUksMkJBQW9CO1FBQ3hCLElBQUksRUFBRSxVQUFVO1FBQ2hCLFdBQVcsRUFBRSx1QkFBdUI7UUFDcEMsRUFBRSxFQUFFLFVBQVU7UUFDZCxZQUFZLEVBQUUsY0FBYztRQUM1QixVQUFVLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsR0FBRyxxQkFBcUIsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztLQUMvRjtJQUNEO1FBQ0UsSUFBSSx1QkFBa0I7UUFDdEIsSUFBSSxFQUFFLE1BQU07UUFDWixXQUFXLEVBQUUsK0JBQStCO1FBQzVDLEVBQUUsRUFBRSxNQUFNO1FBQ1YsVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztLQUM3QztJQUNEO1FBQ0UsSUFBSSx1QkFBa0I7UUFDdEIsSUFBSSxFQUFFLFNBQVM7UUFDZixXQUFXLEVBQUUsa0NBQWtDO1FBQy9DLEVBQUUsRUFBRSxTQUFTO1FBQ2IsVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztLQUM3QztJQUNEO1FBQ0UsSUFBSSxxQkFBaUI7UUFDckIsSUFBSSxFQUFFLE9BQU87UUFDYixXQUFXLEVBQUUsMkJBQTJCO1FBQ3hDLEVBQUUsRUFBRSxPQUFPO1FBQ1gsVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxLQUFLLENBQUM7S0FDckY7SUFDRDtRQUNFLElBQUksdUJBQWtCO1FBQ3RCLElBQUksRUFBRSxhQUFhO1FBQ25CLFdBQVcsRUFBRSwwQkFBMEI7UUFDdkMsRUFBRSxFQUFFLGNBQWM7UUFDbEIsVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztLQUM3QztJQUNEO1FBQ0UsSUFBSSx5QkFBbUI7UUFDdkIsSUFBSSxFQUFFLFVBQVU7UUFDaEIsV0FBVyxFQUFFLG1DQUFtQztRQUNoRCxFQUFFLEVBQUUsaUJBQWlCO1FBQ3JCLFlBQVksRUFBRSxJQUFJO0tBQ25CO0lBQ0Q7UUFDRSxJQUFJLHlCQUFtQjtRQUN2QixJQUFJLEVBQUUsZ0JBQWdCO1FBQ3RCLFdBQVcsRUFBRSx5Q0FBeUM7UUFDdEQsRUFBRSxFQUFFLGtCQUFrQjtRQUN0QixZQUFZLEVBQUUsSUFBSTtLQUNuQjtDQUNGLENBQUMsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUFHLCtCQUErQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtJQUN0RixJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssVUFBVSxFQUFFO1FBQzVCLE9BQU87WUFDTCxHQUFHLElBQUk7WUFDUCxVQUFVLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcscUJBQXFCLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7U0FDMUUsQ0FBQztLQUNIO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElkZW50aXR5VXNlckR0byB9IGZyb20gJ0BhYnAvbmcuaWRlbnRpdHkvcHJveHknO1xyXG5pbXBvcnQgeyBnZXRQYXNzd29yZFZhbGlkYXRvcnMgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XHJcbmltcG9ydCB7IGVQcm9wVHlwZSwgRm9ybVByb3AgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZC9leHRlbnNpb25zJztcclxuaW1wb3J0IHsgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmNvbnN0IG9ubHlMZXR0ZXJBbmROdW1iZXJSZWdleCA9IC9eW2EtekEtWjAtOV0rJC87XHJcblxyXG5leHBvcnQgY29uc3QgREVGQVVMVF9VU0VSU19DUkVBVEVfRk9STV9QUk9QUyA9IEZvcm1Qcm9wLmNyZWF0ZU1hbnk8SWRlbnRpdHlVc2VyRHRvPihbXHJcbiAge1xyXG4gICAgdHlwZTogZVByb3BUeXBlLlN0cmluZyxcclxuICAgIG5hbWU6ICd1c2VyTmFtZScsXHJcbiAgICBkaXNwbGF5TmFtZTogJ0FicElkZW50aXR5OjpVc2VyTmFtZScsXHJcbiAgICBpZDogJ3VzZXItbmFtZScsXHJcbiAgICB2YWxpZGF0b3JzOiAoKSA9PiBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMjU2KSwgVmFsaWRhdG9ycy5wYXR0ZXJuKG9ubHlMZXR0ZXJBbmROdW1iZXJSZWdleCldLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgdHlwZTogZVByb3BUeXBlLlBhc3N3b3JkLFxyXG4gICAgbmFtZTogJ3Bhc3N3b3JkJyxcclxuICAgIGRpc3BsYXlOYW1lOiAnQWJwSWRlbnRpdHk6OlBhc3N3b3JkJyxcclxuICAgIGlkOiAncGFzc3dvcmQnLFxyXG4gICAgYXV0b2NvbXBsZXRlOiAnbmV3LXBhc3N3b3JkJyxcclxuICAgIHZhbGlkYXRvcnM6IGRhdGEgPT4gW1ZhbGlkYXRvcnMucmVxdWlyZWQsIC4uLmdldFBhc3N3b3JkVmFsaWRhdG9ycyh7IGdldDogZGF0YS5nZXRJbmplY3RlZCB9KV0sXHJcbiAgfSxcclxuICB7XHJcbiAgICB0eXBlOiBlUHJvcFR5cGUuU3RyaW5nLFxyXG4gICAgbmFtZTogJ25hbWUnLFxyXG4gICAgZGlzcGxheU5hbWU6ICdBYnBJZGVudGl0eTo6RGlzcGxheU5hbWU6TmFtZScsXHJcbiAgICBpZDogJ25hbWUnLFxyXG4gICAgdmFsaWRhdG9yczogKCkgPT4gW1ZhbGlkYXRvcnMubWF4TGVuZ3RoKDY0KV0sXHJcbiAgfSxcclxuICB7XHJcbiAgICB0eXBlOiBlUHJvcFR5cGUuU3RyaW5nLFxyXG4gICAgbmFtZTogJ3N1cm5hbWUnLFxyXG4gICAgZGlzcGxheU5hbWU6ICdBYnBJZGVudGl0eTo6RGlzcGxheU5hbWU6U3VybmFtZScsXHJcbiAgICBpZDogJ3N1cm5hbWUnLFxyXG4gICAgdmFsaWRhdG9yczogKCkgPT4gW1ZhbGlkYXRvcnMubWF4TGVuZ3RoKDY0KV0sXHJcbiAgfSxcclxuICB7XHJcbiAgICB0eXBlOiBlUHJvcFR5cGUuRW1haWwsXHJcbiAgICBuYW1lOiAnZW1haWwnLFxyXG4gICAgZGlzcGxheU5hbWU6ICdBYnBJZGVudGl0eTo6RW1haWxBZGRyZXNzJyxcclxuICAgIGlkOiAnZW1haWwnLFxyXG4gICAgdmFsaWRhdG9yczogKCkgPT4gW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDI1NiksIFZhbGlkYXRvcnMuZW1haWxdLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgdHlwZTogZVByb3BUeXBlLlN0cmluZyxcclxuICAgIG5hbWU6ICdwaG9uZU51bWJlcicsXHJcbiAgICBkaXNwbGF5TmFtZTogJ0FicElkZW50aXR5OjpQaG9uZU51bWJlcicsXHJcbiAgICBpZDogJ3Bob25lLW51bWJlcicsXHJcbiAgICB2YWxpZGF0b3JzOiAoKSA9PiBbVmFsaWRhdG9ycy5tYXhMZW5ndGgoMTYpXSxcclxuICB9LFxyXG4gIHtcclxuICAgIHR5cGU6IGVQcm9wVHlwZS5Cb29sZWFuLFxyXG4gICAgbmFtZTogJ2lzQWN0aXZlJyxcclxuICAgIGRpc3BsYXlOYW1lOiAnQWJwSWRlbnRpdHk6OkRpc3BsYXlOYW1lOklzQWN0aXZlJyxcclxuICAgIGlkOiAnYWN0aXZlLWNoZWNrYm94JyxcclxuICAgIGRlZmF1bHRWYWx1ZTogdHJ1ZSxcclxuICB9LFxyXG4gIHtcclxuICAgIHR5cGU6IGVQcm9wVHlwZS5Cb29sZWFuLFxyXG4gICAgbmFtZTogJ2xvY2tvdXRFbmFibGVkJyxcclxuICAgIGRpc3BsYXlOYW1lOiAnQWJwSWRlbnRpdHk6OkRpc3BsYXlOYW1lOkxvY2tvdXRFbmFibGVkJyxcclxuICAgIGlkOiAnbG9ja291dC1jaGVja2JveCcsXHJcbiAgICBkZWZhdWx0VmFsdWU6IHRydWUsXHJcbiAgfSxcclxuXSk7XHJcblxyXG5leHBvcnQgY29uc3QgREVGQVVMVF9VU0VSU19FRElUX0ZPUk1fUFJPUFMgPSBERUZBVUxUX1VTRVJTX0NSRUFURV9GT1JNX1BST1BTLm1hcChwcm9wID0+IHtcclxuICBpZiAocHJvcC5uYW1lID09PSAncGFzc3dvcmQnKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAuLi5wcm9wLFxyXG4gICAgICB2YWxpZGF0b3JzOiBkYXRhID0+IFsuLi5nZXRQYXNzd29yZFZhbGlkYXRvcnMoeyBnZXQ6IGRhdGEuZ2V0SW5qZWN0ZWQgfSldLFxyXG4gICAgfTtcclxuICB9XHJcbiAgcmV0dXJuIHByb3A7XHJcbn0pO1xyXG4iXX0=
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC11c2Vycy1mb3JtLXByb3BzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvaWRlbnRpdHkvc3JjL2xpYi9kZWZhdWx0cy9kZWZhdWx0LXVzZXJzLWZvcm0tcHJvcHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0QsT0FBTyxFQUFhLFFBQVEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUMzQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRzdDLE1BQU0sQ0FBQyxNQUFNLCtCQUErQixHQUFHLFFBQVEsQ0FBQyxVQUFVLENBQWtCO0lBQ2xGO1FBQ0UsSUFBSSx1QkFBa0I7UUFDdEIsSUFBSSxFQUFFLFVBQVU7UUFDaEIsV0FBVyxFQUFFLHVCQUF1QjtRQUNwQyxFQUFFLEVBQUUsV0FBVztRQUNmLFVBQVUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRSxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUM7S0FDN0Y7SUFDRDtRQUNFLElBQUksMkJBQW9CO1FBQ3hCLElBQUksRUFBRSxVQUFVO1FBQ2hCLFdBQVcsRUFBRSx1QkFBdUI7UUFDcEMsRUFBRSxFQUFFLFVBQVU7UUFDZCxZQUFZLEVBQUUsY0FBYztRQUM1QixVQUFVLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsR0FBRyxxQkFBcUIsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztLQUMvRjtJQUNEO1FBQ0UsSUFBSSx1QkFBa0I7UUFDdEIsSUFBSSxFQUFFLE1BQU07UUFDWixXQUFXLEVBQUUsK0JBQStCO1FBQzVDLEVBQUUsRUFBRSxNQUFNO1FBQ1YsVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztLQUM3QztJQUNEO1FBQ0UsSUFBSSx1QkFBa0I7UUFDdEIsSUFBSSxFQUFFLFNBQVM7UUFDZixXQUFXLEVBQUUsa0NBQWtDO1FBQy9DLEVBQUUsRUFBRSxTQUFTO1FBQ2IsVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztLQUM3QztJQUNEO1FBQ0UsSUFBSSxxQkFBaUI7UUFDckIsSUFBSSxFQUFFLE9BQU87UUFDYixXQUFXLEVBQUUsMkJBQTJCO1FBQ3hDLEVBQUUsRUFBRSxPQUFPO1FBQ1gsVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxLQUFLLENBQUM7S0FDckY7SUFDRDtRQUNFLElBQUksdUJBQWtCO1FBQ3RCLElBQUksRUFBRSxhQUFhO1FBQ25CLFdBQVcsRUFBRSwwQkFBMEI7UUFDdkMsRUFBRSxFQUFFLGNBQWM7UUFDbEIsVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztLQUM3QztJQUNEO1FBQ0UsSUFBSSx5QkFBbUI7UUFDdkIsSUFBSSxFQUFFLFVBQVU7UUFDaEIsV0FBVyxFQUFFLG1DQUFtQztRQUNoRCxFQUFFLEVBQUUsaUJBQWlCO1FBQ3JCLFlBQVksRUFBRSxJQUFJO0tBQ25CO0lBQ0Q7UUFDRSxJQUFJLHlCQUFtQjtRQUN2QixJQUFJLEVBQUUsZ0JBQWdCO1FBQ3RCLFdBQVcsRUFBRSx5Q0FBeUM7UUFDdEQsRUFBRSxFQUFFLGtCQUFrQjtRQUN0QixZQUFZLEVBQUUsSUFBSTtLQUNuQjtDQUNGLENBQUMsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUFHLCtCQUErQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtJQUN0RixJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssVUFBVSxFQUFFO1FBQzVCLE9BQU87WUFDTCxHQUFHLElBQUk7WUFDUCxVQUFVLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcscUJBQXFCLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7U0FDMUUsQ0FBQztLQUNIO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElkZW50aXR5VXNlckR0byB9IGZyb20gJ0BhYnAvbmcuaWRlbnRpdHkvcHJveHknO1xyXG5pbXBvcnQgeyBnZXRQYXNzd29yZFZhbGlkYXRvcnMgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XHJcbmltcG9ydCB7IGVQcm9wVHlwZSwgRm9ybVByb3AgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZC9leHRlbnNpb25zJztcclxuaW1wb3J0IHsgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJ1xyXG5pbXBvcnQgeyBBYnBWYWxpZGF0b3JzIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuXHJcblxyXG5leHBvcnQgY29uc3QgREVGQVVMVF9VU0VSU19DUkVBVEVfRk9STV9QUk9QUyA9IEZvcm1Qcm9wLmNyZWF0ZU1hbnk8SWRlbnRpdHlVc2VyRHRvPihbXHJcbiAge1xyXG4gICAgdHlwZTogZVByb3BUeXBlLlN0cmluZyxcclxuICAgIG5hbWU6ICd1c2VyTmFtZScsXHJcbiAgICBkaXNwbGF5TmFtZTogJ0FicElkZW50aXR5OjpVc2VyTmFtZScsXHJcbiAgICBpZDogJ3VzZXItbmFtZScsXHJcbiAgICB2YWxpZGF0b3JzOiAoKSA9PiBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMjU2KSwgQWJwVmFsaWRhdG9ycy51c2VybmFtZSgpXSxcclxuICB9LFxyXG4gIHtcclxuICAgIHR5cGU6IGVQcm9wVHlwZS5QYXNzd29yZCxcclxuICAgIG5hbWU6ICdwYXNzd29yZCcsXHJcbiAgICBkaXNwbGF5TmFtZTogJ0FicElkZW50aXR5OjpQYXNzd29yZCcsXHJcbiAgICBpZDogJ3Bhc3N3b3JkJyxcclxuICAgIGF1dG9jb21wbGV0ZTogJ25ldy1wYXNzd29yZCcsXHJcbiAgICB2YWxpZGF0b3JzOiBkYXRhID0+IFtWYWxpZGF0b3JzLnJlcXVpcmVkLCAuLi5nZXRQYXNzd29yZFZhbGlkYXRvcnMoeyBnZXQ6IGRhdGEuZ2V0SW5qZWN0ZWQgfSldLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgdHlwZTogZVByb3BUeXBlLlN0cmluZyxcclxuICAgIG5hbWU6ICduYW1lJyxcclxuICAgIGRpc3BsYXlOYW1lOiAnQWJwSWRlbnRpdHk6OkRpc3BsYXlOYW1lOk5hbWUnLFxyXG4gICAgaWQ6ICduYW1lJyxcclxuICAgIHZhbGlkYXRvcnM6ICgpID0+IFtWYWxpZGF0b3JzLm1heExlbmd0aCg2NCldLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgdHlwZTogZVByb3BUeXBlLlN0cmluZyxcclxuICAgIG5hbWU6ICdzdXJuYW1lJyxcclxuICAgIGRpc3BsYXlOYW1lOiAnQWJwSWRlbnRpdHk6OkRpc3BsYXlOYW1lOlN1cm5hbWUnLFxyXG4gICAgaWQ6ICdzdXJuYW1lJyxcclxuICAgIHZhbGlkYXRvcnM6ICgpID0+IFtWYWxpZGF0b3JzLm1heExlbmd0aCg2NCldLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgdHlwZTogZVByb3BUeXBlLkVtYWlsLFxyXG4gICAgbmFtZTogJ2VtYWlsJyxcclxuICAgIGRpc3BsYXlOYW1lOiAnQWJwSWRlbnRpdHk6OkVtYWlsQWRkcmVzcycsXHJcbiAgICBpZDogJ2VtYWlsJyxcclxuICAgIHZhbGlkYXRvcnM6ICgpID0+IFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1heExlbmd0aCgyNTYpLCBWYWxpZGF0b3JzLmVtYWlsXSxcclxuICB9LFxyXG4gIHtcclxuICAgIHR5cGU6IGVQcm9wVHlwZS5TdHJpbmcsXHJcbiAgICBuYW1lOiAncGhvbmVOdW1iZXInLFxyXG4gICAgZGlzcGxheU5hbWU6ICdBYnBJZGVudGl0eTo6UGhvbmVOdW1iZXInLFxyXG4gICAgaWQ6ICdwaG9uZS1udW1iZXInLFxyXG4gICAgdmFsaWRhdG9yczogKCkgPT4gW1ZhbGlkYXRvcnMubWF4TGVuZ3RoKDE2KV0sXHJcbiAgfSxcclxuICB7XHJcbiAgICB0eXBlOiBlUHJvcFR5cGUuQm9vbGVhbixcclxuICAgIG5hbWU6ICdpc0FjdGl2ZScsXHJcbiAgICBkaXNwbGF5TmFtZTogJ0FicElkZW50aXR5OjpEaXNwbGF5TmFtZTpJc0FjdGl2ZScsXHJcbiAgICBpZDogJ2FjdGl2ZS1jaGVja2JveCcsXHJcbiAgICBkZWZhdWx0VmFsdWU6IHRydWUsXHJcbiAgfSxcclxuICB7XHJcbiAgICB0eXBlOiBlUHJvcFR5cGUuQm9vbGVhbixcclxuICAgIG5hbWU6ICdsb2Nrb3V0RW5hYmxlZCcsXHJcbiAgICBkaXNwbGF5TmFtZTogJ0FicElkZW50aXR5OjpEaXNwbGF5TmFtZTpMb2Nrb3V0RW5hYmxlZCcsXHJcbiAgICBpZDogJ2xvY2tvdXQtY2hlY2tib3gnLFxyXG4gICAgZGVmYXVsdFZhbHVlOiB0cnVlLFxyXG4gIH0sXHJcbl0pO1xyXG5cclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfVVNFUlNfRURJVF9GT1JNX1BST1BTID0gREVGQVVMVF9VU0VSU19DUkVBVEVfRk9STV9QUk9QUy5tYXAocHJvcCA9PiB7XHJcbiAgaWYgKHByb3AubmFtZSA9PT0gJ3Bhc3N3b3JkJykge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgLi4ucHJvcCxcclxuICAgICAgdmFsaWRhdG9yczogZGF0YSA9PiBbLi4uZ2V0UGFzc3dvcmRWYWxpZGF0b3JzKHsgZ2V0OiBkYXRhLmdldEluamVjdGVkIH0pXSxcclxuICAgIH07XHJcbiAgfVxyXG4gIHJldHVybiBwcm9wO1xyXG59KTtcclxuIl19
@@ -1,5 +1,5 @@
1
1
  import * as i1 from '@abp/ng.core';
2
- import { ListService, LocalizationService, escapeHtmlChars, ConfigStateService, RouterOutletComponent, AuthGuard, PermissionGuard, ReplaceableRouteContainerComponent, LazyModuleFactory, CoreModule } from '@abp/ng.core';
2
+ import { ListService, LocalizationService, escapeHtmlChars, ConfigStateService, AbpValidators, RouterOutletComponent, AuthGuard, PermissionGuard, ReplaceableRouteContainerComponent, LazyModuleFactory, CoreModule } from '@abp/ng.core';
3
3
  import * as i2 from '@abp/ng.theme.shared';
4
4
  import { Confirmation, getPasswordValidators, ThemeSharedModule } from '@abp/ng.theme.shared';
5
5
  import * as i4 from '@abp/ng.theme.shared/extensions';
@@ -129,7 +129,6 @@ class UsersComponent {
129
129
  this.visiblePermissions = false;
130
130
  this.modalBusy = false;
131
131
  this.permissionManagementKey = "PermissionManagement.PermissionManagementComponent" /* PermissionManagement */;
132
- this.blueprints = { pattern: 'AbpIdentity::Volo.Abp.Identity:InvalidUserName[{{ actualValue }}]' };
133
132
  this.trackByFn = (index, item) => Object.keys(item)[0] || index;
134
133
  this.onVisiblePermissionChange = event => {
135
134
  this.visiblePermissions = event;
@@ -231,7 +230,7 @@ UsersComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version
231
230
  provide: EXTENSIONS_IDENTIFIER,
232
231
  useValue: "Identity.UsersComponent" /* Users */,
233
232
  },
234
- ], viewQueries: [{ propertyName: "modalContent", first: true, predicate: ["modalContent"], descendants: true }], ngImport: i0, template: "<div id=\"identity-roles-wrapper\" class=\"card\">\r\n <div class=\"card-header\">\r\n <div class=\"row\">\r\n <div class=\"col col-md-6\">\r\n <h5 class=\"card-title\">{{ 'AbpIdentity::Users' | abpLocalization }}</h5>\r\n </div>\r\n <div class=\"text-end col col-md-6\">\r\n <abp-page-toolbar [record]=\"data.items\"></abp-page-toolbar>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-body\">\r\n <div id=\"data-tables-table-filter\" class=\"data-tables-filter\">\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 <ng-template #loaderRef\r\n ><div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\"></i></div\r\n ></ng-template>\r\n\r\n <form *ngIf=\"form; else loaderRef\" [blueprints]=\"blueprints\" [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 <div\r\n *ngFor=\"let roleGroup of roleGroups; let i = index; trackBy: trackByFn\"\r\n class=\"form-check mb-2\"\r\n >\r\n <input\r\n type=\"checkbox\"\r\n class=\"form-check-input\"\r\n [attr.id]=\"'roles-' + i\"\r\n [formControl]=\"roleGroup.controls[roles[i].name]\"\r\n />\r\n <label class=\"form-check-label\" [attr.for]=\"'roles-' + i\">{{ roles[i].name }}</label>\r\n </div>\r\n </ng-template>\r\n </li>\r\n </ul>\r\n\r\n <div class=\"mt-2 fade-in-top\" [ngbNavOutlet]=\"nav\"></div>\r\n </form>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button type=\"button\" class=\"btn btn-secondary\" 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", components: [{ type: i4.PageToolbarComponent, selector: "abp-page-toolbar", exportAs: ["abpPageToolbar"] }, { type: i4.ExtensibleTableComponent, selector: "abp-extensible-table", inputs: ["actionsText", "data", "list", "recordsTotal", "actionsColumnWidth", "actionsTemplate"], exportAs: ["abpExtensibleTable"] }, { type: i2.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { type: i4.ExtensibleFormComponent, selector: "abp-extensible-form", inputs: ["selectedRecord"], exportAs: ["abpExtensibleForm"] }, { type: i6.NgbNavOutlet, selector: "[ngbNavOutlet]", inputs: ["paneRole", "ngbNavOutlet"] }, { type: i2.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "formName", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }, { type: i5.PermissionManagementComponent, selector: "abp-permission-management", inputs: ["providerName", "providerKey", "hideBadges", "entityDisplayName", "visible"], outputs: ["visibleChange"], exportAs: ["abpPermissionManagement"] }], directives: [{ type: i4$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i4$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i4$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i1.FormSubmitDirective, selector: "form[ngSubmit][formGroup]", inputs: ["debounce", "notValidateOnSubmit", "markAsDirtyWhenSubmit"], outputs: ["ngSubmit"] }, { type: i4$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i9.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { type: i6.NgbNav, selector: "[ngbNav]", inputs: ["activeId", "animation", "destroyOnHide", "orientation", "roles", "keyboard"], outputs: ["activeIdChange", "shown", "hidden", "navChange"], exportAs: ["ngbNav"] }, { type: i6.NgbNavItem, selector: "[ngbNavItem]", inputs: ["destroyOnHide", "disabled", "domId", "ngbNavItem"], outputs: ["shown", "hidden"], exportAs: ["ngbNavItem"] }, { type: i6.NgbNavLink, selector: "a[ngbNavLink]" }, { type: i6.NgbNavContent, selector: "ng-template[ngbNavContent]" }, { type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4$1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { type: i4$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i9.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { type: i2.ModalCloseDirective, selector: "[abpClose]" }, { type: i1.ReplaceableTemplateDirective, selector: "[abpReplaceableTemplate]", inputs: ["abpReplaceableTemplate"] }, { type: i1.InitDirective, selector: "[abpInit]", outputs: ["abpInit"] }], pipes: { "abpLocalization": i1.LocalizationPipe } });
233
+ ], viewQueries: [{ propertyName: "modalContent", first: true, predicate: ["modalContent"], descendants: true }], ngImport: i0, template: "<div id=\"identity-roles-wrapper\" class=\"card\">\r\n <div class=\"card-header\">\r\n <div class=\"row\">\r\n <div class=\"col col-md-6\">\r\n <h5 class=\"card-title\">{{ 'AbpIdentity::Users' | abpLocalization }}</h5>\r\n </div>\r\n <div class=\"text-end col col-md-6\">\r\n <abp-page-toolbar [record]=\"data.items\"></abp-page-toolbar>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-body\">\r\n <div id=\"data-tables-table-filter\" class=\"data-tables-filter\">\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 <ng-template #loaderRef\r\n ><div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\"></i></div\r\n ></ng-template>\r\n\r\n <form *ngIf=\"form; else loaderRef\" [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 <div\r\n *ngFor=\"let roleGroup of roleGroups; let i = index; trackBy: trackByFn\"\r\n class=\"form-check mb-2\"\r\n >\r\n <input\r\n type=\"checkbox\"\r\n class=\"form-check-input\"\r\n [attr.id]=\"'roles-' + i\"\r\n [formControl]=\"roleGroup.controls[roles[i].name]\"\r\n />\r\n <label class=\"form-check-label\" [attr.for]=\"'roles-' + i\">{{ roles[i].name }}</label>\r\n </div>\r\n </ng-template>\r\n </li>\r\n </ul>\r\n\r\n <div class=\"mt-2 fade-in-top\" [ngbNavOutlet]=\"nav\"></div>\r\n </form>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button type=\"button\" class=\"btn btn-secondary\" 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", components: [{ type: i4.PageToolbarComponent, selector: "abp-page-toolbar", exportAs: ["abpPageToolbar"] }, { type: i4.ExtensibleTableComponent, selector: "abp-extensible-table", inputs: ["actionsText", "data", "list", "recordsTotal", "actionsColumnWidth", "actionsTemplate"], exportAs: ["abpExtensibleTable"] }, { type: i2.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { type: i4.ExtensibleFormComponent, selector: "abp-extensible-form", inputs: ["selectedRecord"], exportAs: ["abpExtensibleForm"] }, { type: i6.NgbNavOutlet, selector: "[ngbNavOutlet]", inputs: ["paneRole", "ngbNavOutlet"] }, { type: i2.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "formName", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }, { type: i5.PermissionManagementComponent, selector: "abp-permission-management", inputs: ["providerName", "providerKey", "hideBadges", "entityDisplayName", "visible"], outputs: ["visibleChange"], exportAs: ["abpPermissionManagement"] }], directives: [{ type: i4$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i4$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i4$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i1.FormSubmitDirective, selector: "form[ngSubmit][formGroup]", inputs: ["debounce", "notValidateOnSubmit", "markAsDirtyWhenSubmit"], outputs: ["ngSubmit"] }, { type: i4$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i9.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { type: i6.NgbNav, selector: "[ngbNav]", inputs: ["activeId", "animation", "destroyOnHide", "orientation", "roles", "keyboard"], outputs: ["activeIdChange", "shown", "hidden", "navChange"], exportAs: ["ngbNav"] }, { type: i6.NgbNavItem, selector: "[ngbNavItem]", inputs: ["destroyOnHide", "disabled", "domId", "ngbNavItem"], outputs: ["shown", "hidden"], exportAs: ["ngbNavItem"] }, { type: i6.NgbNavLink, selector: "a[ngbNavLink]" }, { type: i6.NgbNavContent, selector: "ng-template[ngbNavContent]" }, { type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4$1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { type: i4$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i9.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { type: i2.ModalCloseDirective, selector: "[abpClose]" }, { type: i1.ReplaceableTemplateDirective, selector: "[abpReplaceableTemplate]", inputs: ["abpReplaceableTemplate"] }, { type: i1.InitDirective, selector: "[abpInit]", outputs: ["abpInit"] }], pipes: { "abpLocalization": i1.LocalizationPipe } });
235
234
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: UsersComponent, decorators: [{
236
235
  type: Component,
237
236
  args: [{ selector: 'abp-users', providers: [
@@ -240,7 +239,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.6", ngImpor
240
239
  provide: EXTENSIONS_IDENTIFIER,
241
240
  useValue: "Identity.UsersComponent" /* Users */,
242
241
  },
243
- ], template: "<div id=\"identity-roles-wrapper\" class=\"card\">\r\n <div class=\"card-header\">\r\n <div class=\"row\">\r\n <div class=\"col col-md-6\">\r\n <h5 class=\"card-title\">{{ 'AbpIdentity::Users' | abpLocalization }}</h5>\r\n </div>\r\n <div class=\"text-end col col-md-6\">\r\n <abp-page-toolbar [record]=\"data.items\"></abp-page-toolbar>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-body\">\r\n <div id=\"data-tables-table-filter\" class=\"data-tables-filter\">\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 <ng-template #loaderRef\r\n ><div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\"></i></div\r\n ></ng-template>\r\n\r\n <form *ngIf=\"form; else loaderRef\" [blueprints]=\"blueprints\" [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 <div\r\n *ngFor=\"let roleGroup of roleGroups; let i = index; trackBy: trackByFn\"\r\n class=\"form-check mb-2\"\r\n >\r\n <input\r\n type=\"checkbox\"\r\n class=\"form-check-input\"\r\n [attr.id]=\"'roles-' + i\"\r\n [formControl]=\"roleGroup.controls[roles[i].name]\"\r\n />\r\n <label class=\"form-check-label\" [attr.for]=\"'roles-' + i\">{{ roles[i].name }}</label>\r\n </div>\r\n </ng-template>\r\n </li>\r\n </ul>\r\n\r\n <div class=\"mt-2 fade-in-top\" [ngbNavOutlet]=\"nav\"></div>\r\n </form>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button type=\"button\" class=\"btn btn-secondary\" 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" }]
242
+ ], template: "<div id=\"identity-roles-wrapper\" class=\"card\">\r\n <div class=\"card-header\">\r\n <div class=\"row\">\r\n <div class=\"col col-md-6\">\r\n <h5 class=\"card-title\">{{ 'AbpIdentity::Users' | abpLocalization }}</h5>\r\n </div>\r\n <div class=\"text-end col col-md-6\">\r\n <abp-page-toolbar [record]=\"data.items\"></abp-page-toolbar>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-body\">\r\n <div id=\"data-tables-table-filter\" class=\"data-tables-filter\">\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 <ng-template #loaderRef\r\n ><div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\"></i></div\r\n ></ng-template>\r\n\r\n <form *ngIf=\"form; else loaderRef\" [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 <div\r\n *ngFor=\"let roleGroup of roleGroups; let i = index; trackBy: trackByFn\"\r\n class=\"form-check mb-2\"\r\n >\r\n <input\r\n type=\"checkbox\"\r\n class=\"form-check-input\"\r\n [attr.id]=\"'roles-' + i\"\r\n [formControl]=\"roleGroup.controls[roles[i].name]\"\r\n />\r\n <label class=\"form-check-label\" [attr.for]=\"'roles-' + i\">{{ roles[i].name }}</label>\r\n </div>\r\n </ng-template>\r\n </li>\r\n </ul>\r\n\r\n <div class=\"mt-2 fade-in-top\" [ngbNavOutlet]=\"nav\"></div>\r\n </form>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button type=\"button\" class=\"btn btn-secondary\" 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" }]
244
243
  }], ctorParameters: function () { return [{ type: i1.ListService }, { type: i2.ConfirmationService }, { type: i3.IdentityUserService }, { type: i2.ToasterService }, { type: i4$1.FormBuilder }, { type: i0.Injector }]; }, propDecorators: { modalContent: [{
245
244
  type: ViewChild,
246
245
  args: ['modalContent', { static: false }]
@@ -397,14 +396,13 @@ const DEFAULT_USERS_ENTITY_PROPS = EntityProp.createMany([
397
396
  },
398
397
  ]);
399
398
 
400
- const onlyLetterAndNumberRegex = /^[a-zA-Z0-9]+$/;
401
399
  const DEFAULT_USERS_CREATE_FORM_PROPS = FormProp.createMany([
402
400
  {
403
401
  type: "string" /* String */,
404
402
  name: 'userName',
405
403
  displayName: 'AbpIdentity::UserName',
406
404
  id: 'user-name',
407
- validators: () => [Validators.required, Validators.maxLength(256), Validators.pattern(onlyLetterAndNumberRegex)],
405
+ validators: () => [Validators.required, Validators.maxLength(256), AbpValidators.username()],
408
406
  },
409
407
  {
410
408
  type: "password" /* Password */,
@@ -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/identity-routing.module.ts","../../../../packages/identity/src/lib/identity.module.ts","../../../../packages/identity/src/abp-ng.identity.ts"],"sourcesContent":["import { ListService, PagedAndSortedResultRequestDto, PagedResultDto } from '@abp/ng.core';\r\nimport { IdentityRoleDto, IdentityRoleService } from '@abp/ng.identity/proxy';\r\nimport { ePermissionManagementComponents } from '@abp/ng.permission-management';\r\nimport {Confirmation, ConfirmationService, ToasterService} from '@abp/ng.theme.shared';\r\nimport {\r\n EXTENSIONS_IDENTIFIER,\r\n FormPropData,\r\n generateFormFromProps,\r\n} from '@abp/ng.theme.shared/extensions';\r\nimport { Component, Injector, OnInit } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { eIdentityComponents } from '../../enums/components';\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})\r\nexport class RolesComponent implements OnInit {\r\n data: PagedResultDto<IdentityRoleDto> = { items: [], totalCount: 0 };\r\n\r\n form: FormGroup;\r\n\r\n selected: IdentityRoleDto;\r\n\r\n isModalVisible: boolean;\r\n\r\n visiblePermissions = false;\r\n\r\n providerKey: string;\r\n\r\n modalBusy = false;\r\n\r\n permissionManagementKey = ePermissionManagementComponents.PermissionManagement;\r\n\r\n onVisiblePermissionChange = event => {\r\n this.visiblePermissions = event;\r\n };\r\n\r\n constructor(\r\n public readonly list: ListService<PagedAndSortedResultRequestDto>,\r\n protected confirmationService: ConfirmationService,\r\n private toasterService: ToasterService,\r\n protected injector: Injector,\r\n protected service: IdentityRoleService,\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.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::SuccessfullyDeleted');\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.hookToQuery(query => this.service.getList(query)).subscribe(res => (this.data = res));\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) {\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","<div id=\"identity-roles-wrapper\" class=\"card\">\r\n <div class=\"card-header\">\r\n <div class=\"row\">\r\n <div class=\"col col-md-6\">\r\n <h5 class=\"card-title\">{{ 'AbpIdentity::Roles' | abpLocalization }}</h5>\r\n </div>\r\n <div class=\"text-end col col-md-6\">\r\n <abp-page-toolbar [record]=\"data.items\"></abp-page-toolbar>\r\n </div>\r\n </div>\r\n </div>\r\n\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>\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-secondary\" 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","import { ListService, PagedResultDto } 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 { ePermissionManagementComponents } from '@abp/ng.permission-management';\r\nimport {Confirmation, ConfirmationService, ToasterService} from '@abp/ng.theme.shared';\r\nimport {\r\n EXTENSIONS_IDENTIFIER,\r\n FormPropData,\r\n generateFormFromProps,\r\n} from '@abp/ng.theme.shared/extensions';\r\nimport {\r\n Component,\r\n Injector,\r\n OnInit,\r\n TemplateRef,\r\n TrackByFunction,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { AbstractControl, FormArray, FormBuilder, FormGroup } from '@angular/forms';\r\nimport { finalize, switchMap, tap } from 'rxjs/operators';\r\nimport { eIdentityComponents } from '../../enums/components';\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})\r\nexport class UsersComponent implements OnInit {\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: FormGroup;\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 blueprints = { pattern: 'AbpIdentity::Volo.Abp.Identity:InvalidUserName[{{ actualValue }}]' };\r\n\r\n\r\n trackByFn: TrackByFunction<AbstractControl> = (index, item) => Object.keys(item)[0] || index;\r\n\r\n onVisiblePermissionChange = event => {\r\n this.visiblePermissions = event;\r\n };\r\n\r\n get roleGroups(): FormGroup[] {\r\n return ((this.form.get('roleNames') as FormArray)?.controls as FormGroup[]) || [];\r\n }\r\n\r\n constructor(\r\n public readonly list: ListService<GetIdentityUsersInput>,\r\n protected confirmationService: ConfirmationService,\r\n protected service: IdentityUserService,\r\n private toasterService: ToasterService,\r\n protected fb: FormBuilder,\r\n protected injector: Injector,\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 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]: [\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 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.filter(role => !!role[Object.keys(role)[0]]).map(role => Object.keys(role)[0]) ||\r\n [];\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.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::SuccessfullyDeleted');\r\n this.list.get()});\r\n }\r\n });\r\n }\r\n\r\n sort(data) {\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.hookToQuery(query => this.service.getList(query)).subscribe(res => (this.data = res));\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","<div id=\"identity-roles-wrapper\" class=\"card\">\r\n <div class=\"card-header\">\r\n <div class=\"row\">\r\n <div class=\"col col-md-6\">\r\n <h5 class=\"card-title\">{{ 'AbpIdentity::Users' | abpLocalization }}</h5>\r\n </div>\r\n <div class=\"text-end col col-md-6\">\r\n <abp-page-toolbar [record]=\"data.items\"></abp-page-toolbar>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-body\">\r\n <div id=\"data-tables-table-filter\" class=\"data-tables-filter\">\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 <ng-template #loaderRef\r\n ><div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\"></i></div\r\n ></ng-template>\r\n\r\n <form *ngIf=\"form; else loaderRef\" [blueprints]=\"blueprints\" [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 <div\r\n *ngFor=\"let roleGroup of roleGroups; let i = index; trackBy: trackByFn\"\r\n class=\"form-check mb-2\"\r\n >\r\n <input\r\n type=\"checkbox\"\r\n class=\"form-check-input\"\r\n [attr.id]=\"'roles-' + i\"\r\n [formControl]=\"roleGroup.controls[roles[i].name]\"\r\n />\r\n <label class=\"form-check-label\" [attr.for]=\"'roles-' + i\">{{ roles[i].name }}</label>\r\n </div>\r\n </ng-template>\r\n </li>\r\n </ul>\r\n\r\n <div class=\"mt-2 fade-in-top\" [ngbNavOutlet]=\"nav\"></div>\r\n </form>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button type=\"button\" class=\"btn btn-secondary\" 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","import { IdentityRoleDto } from '@abp/ng.identity/proxy';\r\nimport { EntityAction } from '@abp/ng.theme.shared/extensions';\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.theme.shared/extensions';\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 } from '@abp/ng.theme.shared/extensions';\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,\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.theme.shared/extensions';\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.theme.shared/extensions';\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 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.theme.shared/extensions';\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\"></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 { IdentityUserDto } from '@abp/ng.identity/proxy';\r\nimport { getPasswordValidators } from '@abp/ng.theme.shared';\r\nimport { ePropType, FormProp } from '@abp/ng.theme.shared/extensions';\r\nimport { Validators } from '@angular/forms';\r\n\r\nconst onlyLetterAndNumberRegex = /^[a-zA-Z0-9]+$/;\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), Validators.pattern(onlyLetterAndNumberRegex)],\r\n },\r\n {\r\n type: ePropType.Password,\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 => [...getPasswordValidators({ get: data.getInjected })],\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.theme.shared/extensions';\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.theme.shared/extensions';\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 { ConfigStateService } from '@abp/ng.core';\r\nimport {\r\n ExtensionsService,\r\n getObjectExtensionEntitiesFromStore,\r\n mapEntitiesToContributors,\r\n mergeWithDefaultActions,\r\n mergeWithDefaultProps,\r\n} from '@abp/ng.theme.shared/extensions';\r\nimport { Injectable, Injector } from '@angular/core';\r\nimport { CanActivate } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { map, mapTo, tap } from 'rxjs/operators';\r\nimport { eIdentityComponents } from '../enums/components';\r\nimport {\r\n IdentityCreateFormPropContributors,\r\n IdentityEditFormPropContributors,\r\n IdentityEntityActionContributors,\r\n IdentityEntityPropContributors,\r\n IdentityToolbarActionContributors,\r\n} from '../models/config-options';\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@Injectable()\r\nexport class IdentityExtensionsGuard implements CanActivate {\r\n constructor(private injector: Injector) {}\r\n\r\n canActivate(): Observable<boolean> {\r\n const extensions: ExtensionsService = this.injector.get(ExtensionsService);\r\n const actionContributors: IdentityEntityActionContributors =\r\n this.injector.get(IDENTITY_ENTITY_ACTION_CONTRIBUTORS, null) || {};\r\n const toolbarContributors: IdentityToolbarActionContributors =\r\n this.injector.get(IDENTITY_TOOLBAR_ACTION_CONTRIBUTORS, null) || {};\r\n const propContributors: IdentityEntityPropContributors =\r\n this.injector.get(IDENTITY_ENTITY_PROP_CONTRIBUTORS, null) || {};\r\n const createFormContributors: IdentityCreateFormPropContributors =\r\n this.injector.get(IDENTITY_CREATE_FORM_PROP_CONTRIBUTORS, null) || {};\r\n const editFormContributors: IdentityEditFormPropContributors =\r\n this.injector.get(IDENTITY_EDIT_FORM_PROP_CONTRIBUTORS, null) || {};\r\n\r\n const configState = this.injector.get(ConfigStateService);\r\n return getObjectExtensionEntitiesFromStore(configState, 'Identity').pipe(\r\n map(entities => ({\r\n [eIdentityComponents.Roles]: entities.Role,\r\n [eIdentityComponents.Users]: entities.User,\r\n })),\r\n mapEntitiesToContributors(configState, '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 mapTo(true),\r\n );\r\n }\r\n}\r\n","import {\r\n AuthGuard, PermissionGuard,\r\n ReplaceableComponents,\r\n ReplaceableRouteContainerComponent, RouterOutletComponent\r\n} from '@abp/ng.core';\r\nimport { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { RolesComponent } from './components/roles/roles.component';\r\nimport { UsersComponent } from './components/users/users.component';\r\nimport { eIdentityComponents } from './enums/components';\r\nimport { IdentityExtensionsGuard } from './guards/extensions.guard';\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, IdentityExtensionsGuard],\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 },\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 },\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 { CoreModule, LazyModuleFactory } from '@abp/ng.core';\r\nimport { PermissionManagementModule } from '@abp/ng.permission-management';\r\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\r\nimport { UiExtensionsModule } from '@abp/ng.theme.shared/extensions';\r\nimport { ModuleWithProviders, NgModule, NgModuleFactory } from '@angular/core';\r\nimport { NgbDropdownModule, NgbNavModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\r\nimport { RolesComponent } from './components/roles/roles.component';\r\nimport { UsersComponent } from './components/users/users.component';\r\nimport { IdentityExtensionsGuard } from './guards/extensions.guard';\r\nimport { IdentityRoutingModule } from './identity-routing.module';\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\n\r\n@NgModule({\r\n declarations: [RolesComponent, UsersComponent],\r\n exports: [RolesComponent, UsersComponent],\r\n imports: [\r\n CoreModule,\r\n IdentityRoutingModule,\r\n NgbNavModule,\r\n ThemeSharedModule,\r\n UiExtensionsModule,\r\n NgbDropdownModule,\r\n PermissionManagementModule,\r\n NgxValidateCoreModule,\r\n ],\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 static forLazy(options: IdentityConfigOptions = {}): NgModuleFactory<IdentityModule> {\r\n return new LazyModuleFactory(IdentityModule.forChild(options));\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i6","i7","i4","i5"],"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/identity-routing.module.ts","../../../../packages/identity/src/lib/identity.module.ts","../../../../packages/identity/src/abp-ng.identity.ts"],"sourcesContent":["import { ListService, PagedAndSortedResultRequestDto, PagedResultDto } from '@abp/ng.core';\r\nimport { IdentityRoleDto, IdentityRoleService } from '@abp/ng.identity/proxy';\r\nimport { ePermissionManagementComponents } from '@abp/ng.permission-management';\r\nimport {Confirmation, ConfirmationService, ToasterService} from '@abp/ng.theme.shared';\r\nimport {\r\n EXTENSIONS_IDENTIFIER,\r\n FormPropData,\r\n generateFormFromProps,\r\n} from '@abp/ng.theme.shared/extensions';\r\nimport { Component, Injector, OnInit } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { eIdentityComponents } from '../../enums/components';\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})\r\nexport class RolesComponent implements OnInit {\r\n data: PagedResultDto<IdentityRoleDto> = { items: [], totalCount: 0 };\r\n\r\n form: FormGroup;\r\n\r\n selected: IdentityRoleDto;\r\n\r\n isModalVisible: boolean;\r\n\r\n visiblePermissions = false;\r\n\r\n providerKey: string;\r\n\r\n modalBusy = false;\r\n\r\n permissionManagementKey = ePermissionManagementComponents.PermissionManagement;\r\n\r\n onVisiblePermissionChange = event => {\r\n this.visiblePermissions = event;\r\n };\r\n\r\n constructor(\r\n public readonly list: ListService<PagedAndSortedResultRequestDto>,\r\n protected confirmationService: ConfirmationService,\r\n private toasterService: ToasterService,\r\n protected injector: Injector,\r\n protected service: IdentityRoleService,\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.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::SuccessfullyDeleted');\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.hookToQuery(query => this.service.getList(query)).subscribe(res => (this.data = res));\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) {\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","<div id=\"identity-roles-wrapper\" class=\"card\">\r\n <div class=\"card-header\">\r\n <div class=\"row\">\r\n <div class=\"col col-md-6\">\r\n <h5 class=\"card-title\">{{ 'AbpIdentity::Roles' | abpLocalization }}</h5>\r\n </div>\r\n <div class=\"text-end col col-md-6\">\r\n <abp-page-toolbar [record]=\"data.items\"></abp-page-toolbar>\r\n </div>\r\n </div>\r\n </div>\r\n\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>\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-secondary\" 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","import { ListService, PagedResultDto } 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 { ePermissionManagementComponents } from '@abp/ng.permission-management';\r\nimport {Confirmation, ConfirmationService, ToasterService} from '@abp/ng.theme.shared';\r\nimport {\r\n EXTENSIONS_IDENTIFIER,\r\n FormPropData,\r\n generateFormFromProps,\r\n} from '@abp/ng.theme.shared/extensions';\r\nimport {\r\n Component,\r\n Injector,\r\n OnInit,\r\n TemplateRef,\r\n TrackByFunction,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { AbstractControl, FormArray, FormBuilder, FormGroup } from '@angular/forms';\r\nimport { finalize, switchMap, tap } from 'rxjs/operators';\r\nimport { eIdentityComponents } from '../../enums/components';\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})\r\nexport class UsersComponent implements OnInit {\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: FormGroup;\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 trackByFn: TrackByFunction<AbstractControl> = (index, item) => Object.keys(item)[0] || index;\r\n\r\n onVisiblePermissionChange = event => {\r\n this.visiblePermissions = event;\r\n };\r\n\r\n get roleGroups(): FormGroup[] {\r\n return ((this.form.get('roleNames') as FormArray)?.controls as FormGroup[]) || [];\r\n }\r\n\r\n constructor(\r\n public readonly list: ListService<GetIdentityUsersInput>,\r\n protected confirmationService: ConfirmationService,\r\n protected service: IdentityUserService,\r\n private toasterService: ToasterService,\r\n protected fb: FormBuilder,\r\n protected injector: Injector,\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 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]: [\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 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.filter(role => !!role[Object.keys(role)[0]]).map(role => Object.keys(role)[0]) ||\r\n [];\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.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::SuccessfullyDeleted');\r\n this.list.get()});\r\n }\r\n });\r\n }\r\n\r\n sort(data) {\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.hookToQuery(query => this.service.getList(query)).subscribe(res => (this.data = res));\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","<div id=\"identity-roles-wrapper\" class=\"card\">\r\n <div class=\"card-header\">\r\n <div class=\"row\">\r\n <div class=\"col col-md-6\">\r\n <h5 class=\"card-title\">{{ 'AbpIdentity::Users' | abpLocalization }}</h5>\r\n </div>\r\n <div class=\"text-end col col-md-6\">\r\n <abp-page-toolbar [record]=\"data.items\"></abp-page-toolbar>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-body\">\r\n <div id=\"data-tables-table-filter\" class=\"data-tables-filter\">\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 <ng-template #loaderRef\r\n ><div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\"></i></div\r\n ></ng-template>\r\n\r\n <form *ngIf=\"form; else loaderRef\" [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 <div\r\n *ngFor=\"let roleGroup of roleGroups; let i = index; trackBy: trackByFn\"\r\n class=\"form-check mb-2\"\r\n >\r\n <input\r\n type=\"checkbox\"\r\n class=\"form-check-input\"\r\n [attr.id]=\"'roles-' + i\"\r\n [formControl]=\"roleGroup.controls[roles[i].name]\"\r\n />\r\n <label class=\"form-check-label\" [attr.for]=\"'roles-' + i\">{{ roles[i].name }}</label>\r\n </div>\r\n </ng-template>\r\n </li>\r\n </ul>\r\n\r\n <div class=\"mt-2 fade-in-top\" [ngbNavOutlet]=\"nav\"></div>\r\n </form>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button type=\"button\" class=\"btn btn-secondary\" 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","import { IdentityRoleDto } from '@abp/ng.identity/proxy';\r\nimport { EntityAction } from '@abp/ng.theme.shared/extensions';\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.theme.shared/extensions';\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 } from '@abp/ng.theme.shared/extensions';\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,\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.theme.shared/extensions';\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.theme.shared/extensions';\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 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.theme.shared/extensions';\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\"></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 { IdentityUserDto } from '@abp/ng.identity/proxy';\r\nimport { getPasswordValidators } from '@abp/ng.theme.shared';\r\nimport { ePropType, FormProp } from '@abp/ng.theme.shared/extensions';\r\nimport { Validators } from '@angular/forms'\r\nimport { AbpValidators } from '@abp/ng.core';\r\n\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), AbpValidators.username()],\r\n },\r\n {\r\n type: ePropType.Password,\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 => [...getPasswordValidators({ get: data.getInjected })],\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.theme.shared/extensions';\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.theme.shared/extensions';\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 { ConfigStateService } from '@abp/ng.core';\r\nimport {\r\n ExtensionsService,\r\n getObjectExtensionEntitiesFromStore,\r\n mapEntitiesToContributors,\r\n mergeWithDefaultActions,\r\n mergeWithDefaultProps,\r\n} from '@abp/ng.theme.shared/extensions';\r\nimport { Injectable, Injector } from '@angular/core';\r\nimport { CanActivate } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { map, mapTo, tap } from 'rxjs/operators';\r\nimport { eIdentityComponents } from '../enums/components';\r\nimport {\r\n IdentityCreateFormPropContributors,\r\n IdentityEditFormPropContributors,\r\n IdentityEntityActionContributors,\r\n IdentityEntityPropContributors,\r\n IdentityToolbarActionContributors,\r\n} from '../models/config-options';\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@Injectable()\r\nexport class IdentityExtensionsGuard implements CanActivate {\r\n constructor(private injector: Injector) {}\r\n\r\n canActivate(): Observable<boolean> {\r\n const extensions: ExtensionsService = this.injector.get(ExtensionsService);\r\n const actionContributors: IdentityEntityActionContributors =\r\n this.injector.get(IDENTITY_ENTITY_ACTION_CONTRIBUTORS, null) || {};\r\n const toolbarContributors: IdentityToolbarActionContributors =\r\n this.injector.get(IDENTITY_TOOLBAR_ACTION_CONTRIBUTORS, null) || {};\r\n const propContributors: IdentityEntityPropContributors =\r\n this.injector.get(IDENTITY_ENTITY_PROP_CONTRIBUTORS, null) || {};\r\n const createFormContributors: IdentityCreateFormPropContributors =\r\n this.injector.get(IDENTITY_CREATE_FORM_PROP_CONTRIBUTORS, null) || {};\r\n const editFormContributors: IdentityEditFormPropContributors =\r\n this.injector.get(IDENTITY_EDIT_FORM_PROP_CONTRIBUTORS, null) || {};\r\n\r\n const configState = this.injector.get(ConfigStateService);\r\n return getObjectExtensionEntitiesFromStore(configState, 'Identity').pipe(\r\n map(entities => ({\r\n [eIdentityComponents.Roles]: entities.Role,\r\n [eIdentityComponents.Users]: entities.User,\r\n })),\r\n mapEntitiesToContributors(configState, '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 mapTo(true),\r\n );\r\n }\r\n}\r\n","import {\r\n AuthGuard, PermissionGuard,\r\n ReplaceableComponents,\r\n ReplaceableRouteContainerComponent, RouterOutletComponent\r\n} from '@abp/ng.core';\r\nimport { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { RolesComponent } from './components/roles/roles.component';\r\nimport { UsersComponent } from './components/users/users.component';\r\nimport { eIdentityComponents } from './enums/components';\r\nimport { IdentityExtensionsGuard } from './guards/extensions.guard';\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, IdentityExtensionsGuard],\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 },\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 },\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 { CoreModule, LazyModuleFactory } from '@abp/ng.core';\r\nimport { PermissionManagementModule } from '@abp/ng.permission-management';\r\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\r\nimport { UiExtensionsModule } from '@abp/ng.theme.shared/extensions';\r\nimport { ModuleWithProviders, NgModule, NgModuleFactory } from '@angular/core';\r\nimport { NgbDropdownModule, NgbNavModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\r\nimport { RolesComponent } from './components/roles/roles.component';\r\nimport { UsersComponent } from './components/users/users.component';\r\nimport { IdentityExtensionsGuard } from './guards/extensions.guard';\r\nimport { IdentityRoutingModule } from './identity-routing.module';\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\n\r\n@NgModule({\r\n declarations: [RolesComponent, UsersComponent],\r\n exports: [RolesComponent, UsersComponent],\r\n imports: [\r\n CoreModule,\r\n IdentityRoutingModule,\r\n NgbNavModule,\r\n ThemeSharedModule,\r\n UiExtensionsModule,\r\n NgbDropdownModule,\r\n PermissionManagementModule,\r\n NgxValidateCoreModule,\r\n ],\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 static forLazy(options: IdentityConfigOptions = {}): NgModuleFactory<IdentityModule> {\r\n return new LazyModuleFactory(IdentityModule.forChild(options));\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i6","i7","i4","i5"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import * as i1 from '@abp/ng.core';
2
- import { ListService, LocalizationService, escapeHtmlChars, ConfigStateService, RouterOutletComponent, AuthGuard, PermissionGuard, ReplaceableRouteContainerComponent, LazyModuleFactory, CoreModule } from '@abp/ng.core';
2
+ import { ListService, LocalizationService, escapeHtmlChars, ConfigStateService, AbpValidators, RouterOutletComponent, AuthGuard, PermissionGuard, ReplaceableRouteContainerComponent, LazyModuleFactory, CoreModule } from '@abp/ng.core';
3
3
  import * as i3 from '@abp/ng.identity/proxy';
4
4
  import * as i2 from '@abp/ng.theme.shared';
5
5
  import { Confirmation, getPasswordValidators, ThemeSharedModule } from '@abp/ng.theme.shared';
@@ -129,7 +129,6 @@ class UsersComponent {
129
129
  this.visiblePermissions = false;
130
130
  this.modalBusy = false;
131
131
  this.permissionManagementKey = "PermissionManagement.PermissionManagementComponent" /* PermissionManagement */;
132
- this.blueprints = { pattern: 'AbpIdentity::Volo.Abp.Identity:InvalidUserName[{{ actualValue }}]' };
133
132
  this.trackByFn = (index, item) => Object.keys(item)[0] || index;
134
133
  this.onVisiblePermissionChange = event => {
135
134
  this.visiblePermissions = event;
@@ -231,7 +230,7 @@ UsersComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version
231
230
  provide: EXTENSIONS_IDENTIFIER,
232
231
  useValue: "Identity.UsersComponent" /* Users */,
233
232
  },
234
- ], viewQueries: [{ propertyName: "modalContent", first: true, predicate: ["modalContent"], descendants: true }], ngImport: i0, template: "<div id=\"identity-roles-wrapper\" class=\"card\">\r\n <div class=\"card-header\">\r\n <div class=\"row\">\r\n <div class=\"col col-md-6\">\r\n <h5 class=\"card-title\">{{ 'AbpIdentity::Users' | abpLocalization }}</h5>\r\n </div>\r\n <div class=\"text-end col col-md-6\">\r\n <abp-page-toolbar [record]=\"data.items\"></abp-page-toolbar>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-body\">\r\n <div id=\"data-tables-table-filter\" class=\"data-tables-filter\">\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 <ng-template #loaderRef\r\n ><div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\"></i></div\r\n ></ng-template>\r\n\r\n <form *ngIf=\"form; else loaderRef\" [blueprints]=\"blueprints\" [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 <div\r\n *ngFor=\"let roleGroup of roleGroups; let i = index; trackBy: trackByFn\"\r\n class=\"form-check mb-2\"\r\n >\r\n <input\r\n type=\"checkbox\"\r\n class=\"form-check-input\"\r\n [attr.id]=\"'roles-' + i\"\r\n [formControl]=\"roleGroup.controls[roles[i].name]\"\r\n />\r\n <label class=\"form-check-label\" [attr.for]=\"'roles-' + i\">{{ roles[i].name }}</label>\r\n </div>\r\n </ng-template>\r\n </li>\r\n </ul>\r\n\r\n <div class=\"mt-2 fade-in-top\" [ngbNavOutlet]=\"nav\"></div>\r\n </form>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button type=\"button\" class=\"btn btn-secondary\" 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", components: [{ type: i4.PageToolbarComponent, selector: "abp-page-toolbar", exportAs: ["abpPageToolbar"] }, { type: i4.ExtensibleTableComponent, selector: "abp-extensible-table", inputs: ["actionsText", "data", "list", "recordsTotal", "actionsColumnWidth", "actionsTemplate"], exportAs: ["abpExtensibleTable"] }, { type: i2.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { type: i4.ExtensibleFormComponent, selector: "abp-extensible-form", inputs: ["selectedRecord"], exportAs: ["abpExtensibleForm"] }, { type: i6.NgbNavOutlet, selector: "[ngbNavOutlet]", inputs: ["paneRole", "ngbNavOutlet"] }, { type: i2.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "formName", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }, { type: i5.PermissionManagementComponent, selector: "abp-permission-management", inputs: ["providerName", "providerKey", "hideBadges", "entityDisplayName", "visible"], outputs: ["visibleChange"], exportAs: ["abpPermissionManagement"] }], directives: [{ type: i4$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i4$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i4$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i1.FormSubmitDirective, selector: "form[ngSubmit][formGroup]", inputs: ["debounce", "notValidateOnSubmit", "markAsDirtyWhenSubmit"], outputs: ["ngSubmit"] }, { type: i4$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i9.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { type: i6.NgbNav, selector: "[ngbNav]", inputs: ["activeId", "animation", "destroyOnHide", "orientation", "roles", "keyboard"], outputs: ["activeIdChange", "shown", "hidden", "navChange"], exportAs: ["ngbNav"] }, { type: i6.NgbNavItem, selector: "[ngbNavItem]", inputs: ["destroyOnHide", "disabled", "domId", "ngbNavItem"], outputs: ["shown", "hidden"], exportAs: ["ngbNavItem"] }, { type: i6.NgbNavLink, selector: "a[ngbNavLink]" }, { type: i6.NgbNavContent, selector: "ng-template[ngbNavContent]" }, { type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4$1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { type: i4$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i9.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { type: i2.ModalCloseDirective, selector: "[abpClose]" }, { type: i1.ReplaceableTemplateDirective, selector: "[abpReplaceableTemplate]", inputs: ["abpReplaceableTemplate"] }, { type: i1.InitDirective, selector: "[abpInit]", outputs: ["abpInit"] }], pipes: { "abpLocalization": i1.LocalizationPipe } });
233
+ ], viewQueries: [{ propertyName: "modalContent", first: true, predicate: ["modalContent"], descendants: true }], ngImport: i0, template: "<div id=\"identity-roles-wrapper\" class=\"card\">\r\n <div class=\"card-header\">\r\n <div class=\"row\">\r\n <div class=\"col col-md-6\">\r\n <h5 class=\"card-title\">{{ 'AbpIdentity::Users' | abpLocalization }}</h5>\r\n </div>\r\n <div class=\"text-end col col-md-6\">\r\n <abp-page-toolbar [record]=\"data.items\"></abp-page-toolbar>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-body\">\r\n <div id=\"data-tables-table-filter\" class=\"data-tables-filter\">\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 <ng-template #loaderRef\r\n ><div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\"></i></div\r\n ></ng-template>\r\n\r\n <form *ngIf=\"form; else loaderRef\" [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 <div\r\n *ngFor=\"let roleGroup of roleGroups; let i = index; trackBy: trackByFn\"\r\n class=\"form-check mb-2\"\r\n >\r\n <input\r\n type=\"checkbox\"\r\n class=\"form-check-input\"\r\n [attr.id]=\"'roles-' + i\"\r\n [formControl]=\"roleGroup.controls[roles[i].name]\"\r\n />\r\n <label class=\"form-check-label\" [attr.for]=\"'roles-' + i\">{{ roles[i].name }}</label>\r\n </div>\r\n </ng-template>\r\n </li>\r\n </ul>\r\n\r\n <div class=\"mt-2 fade-in-top\" [ngbNavOutlet]=\"nav\"></div>\r\n </form>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button type=\"button\" class=\"btn btn-secondary\" 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", components: [{ type: i4.PageToolbarComponent, selector: "abp-page-toolbar", exportAs: ["abpPageToolbar"] }, { type: i4.ExtensibleTableComponent, selector: "abp-extensible-table", inputs: ["actionsText", "data", "list", "recordsTotal", "actionsColumnWidth", "actionsTemplate"], exportAs: ["abpExtensibleTable"] }, { type: i2.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { type: i4.ExtensibleFormComponent, selector: "abp-extensible-form", inputs: ["selectedRecord"], exportAs: ["abpExtensibleForm"] }, { type: i6.NgbNavOutlet, selector: "[ngbNavOutlet]", inputs: ["paneRole", "ngbNavOutlet"] }, { type: i2.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "formName", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }, { type: i5.PermissionManagementComponent, selector: "abp-permission-management", inputs: ["providerName", "providerKey", "hideBadges", "entityDisplayName", "visible"], outputs: ["visibleChange"], exportAs: ["abpPermissionManagement"] }], directives: [{ type: i4$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i4$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i4$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i1.FormSubmitDirective, selector: "form[ngSubmit][formGroup]", inputs: ["debounce", "notValidateOnSubmit", "markAsDirtyWhenSubmit"], outputs: ["ngSubmit"] }, { type: i4$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i9.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { type: i6.NgbNav, selector: "[ngbNav]", inputs: ["activeId", "animation", "destroyOnHide", "orientation", "roles", "keyboard"], outputs: ["activeIdChange", "shown", "hidden", "navChange"], exportAs: ["ngbNav"] }, { type: i6.NgbNavItem, selector: "[ngbNavItem]", inputs: ["destroyOnHide", "disabled", "domId", "ngbNavItem"], outputs: ["shown", "hidden"], exportAs: ["ngbNavItem"] }, { type: i6.NgbNavLink, selector: "a[ngbNavLink]" }, { type: i6.NgbNavContent, selector: "ng-template[ngbNavContent]" }, { type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4$1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { type: i4$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i9.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { type: i2.ModalCloseDirective, selector: "[abpClose]" }, { type: i1.ReplaceableTemplateDirective, selector: "[abpReplaceableTemplate]", inputs: ["abpReplaceableTemplate"] }, { type: i1.InitDirective, selector: "[abpInit]", outputs: ["abpInit"] }], pipes: { "abpLocalization": i1.LocalizationPipe } });
235
234
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: UsersComponent, decorators: [{
236
235
  type: Component,
237
236
  args: [{ selector: 'abp-users', providers: [
@@ -240,7 +239,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.6", ngImpor
240
239
  provide: EXTENSIONS_IDENTIFIER,
241
240
  useValue: "Identity.UsersComponent" /* Users */,
242
241
  },
243
- ], template: "<div id=\"identity-roles-wrapper\" class=\"card\">\r\n <div class=\"card-header\">\r\n <div class=\"row\">\r\n <div class=\"col col-md-6\">\r\n <h5 class=\"card-title\">{{ 'AbpIdentity::Users' | abpLocalization }}</h5>\r\n </div>\r\n <div class=\"text-end col col-md-6\">\r\n <abp-page-toolbar [record]=\"data.items\"></abp-page-toolbar>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-body\">\r\n <div id=\"data-tables-table-filter\" class=\"data-tables-filter\">\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 <ng-template #loaderRef\r\n ><div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\"></i></div\r\n ></ng-template>\r\n\r\n <form *ngIf=\"form; else loaderRef\" [blueprints]=\"blueprints\" [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 <div\r\n *ngFor=\"let roleGroup of roleGroups; let i = index; trackBy: trackByFn\"\r\n class=\"form-check mb-2\"\r\n >\r\n <input\r\n type=\"checkbox\"\r\n class=\"form-check-input\"\r\n [attr.id]=\"'roles-' + i\"\r\n [formControl]=\"roleGroup.controls[roles[i].name]\"\r\n />\r\n <label class=\"form-check-label\" [attr.for]=\"'roles-' + i\">{{ roles[i].name }}</label>\r\n </div>\r\n </ng-template>\r\n </li>\r\n </ul>\r\n\r\n <div class=\"mt-2 fade-in-top\" [ngbNavOutlet]=\"nav\"></div>\r\n </form>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button type=\"button\" class=\"btn btn-secondary\" 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" }]
242
+ ], template: "<div id=\"identity-roles-wrapper\" class=\"card\">\r\n <div class=\"card-header\">\r\n <div class=\"row\">\r\n <div class=\"col col-md-6\">\r\n <h5 class=\"card-title\">{{ 'AbpIdentity::Users' | abpLocalization }}</h5>\r\n </div>\r\n <div class=\"text-end col col-md-6\">\r\n <abp-page-toolbar [record]=\"data.items\"></abp-page-toolbar>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-body\">\r\n <div id=\"data-tables-table-filter\" class=\"data-tables-filter\">\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 <ng-template #loaderRef\r\n ><div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\"></i></div\r\n ></ng-template>\r\n\r\n <form *ngIf=\"form; else loaderRef\" [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 <div\r\n *ngFor=\"let roleGroup of roleGroups; let i = index; trackBy: trackByFn\"\r\n class=\"form-check mb-2\"\r\n >\r\n <input\r\n type=\"checkbox\"\r\n class=\"form-check-input\"\r\n [attr.id]=\"'roles-' + i\"\r\n [formControl]=\"roleGroup.controls[roles[i].name]\"\r\n />\r\n <label class=\"form-check-label\" [attr.for]=\"'roles-' + i\">{{ roles[i].name }}</label>\r\n </div>\r\n </ng-template>\r\n </li>\r\n </ul>\r\n\r\n <div class=\"mt-2 fade-in-top\" [ngbNavOutlet]=\"nav\"></div>\r\n </form>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button type=\"button\" class=\"btn btn-secondary\" 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" }]
244
243
  }], ctorParameters: function () { return [{ type: i1.ListService }, { type: i2.ConfirmationService }, { type: i3.IdentityUserService }, { type: i2.ToasterService }, { type: i4$1.FormBuilder }, { type: i0.Injector }]; }, propDecorators: { modalContent: [{
245
244
  type: ViewChild,
246
245
  args: ['modalContent', { static: false }]
@@ -397,14 +396,13 @@ const DEFAULT_USERS_ENTITY_PROPS = EntityProp.createMany([
397
396
  },
398
397
  ]);
399
398
 
400
- const onlyLetterAndNumberRegex = /^[a-zA-Z0-9]+$/;
401
399
  const DEFAULT_USERS_CREATE_FORM_PROPS = FormProp.createMany([
402
400
  {
403
401
  type: "string" /* String */,
404
402
  name: 'userName',
405
403
  displayName: 'AbpIdentity::UserName',
406
404
  id: 'user-name',
407
- validators: () => [Validators.required, Validators.maxLength(256), Validators.pattern(onlyLetterAndNumberRegex)],
405
+ validators: () => [Validators.required, Validators.maxLength(256), AbpValidators.username()],
408
406
  },
409
407
  {
410
408
  type: "password" /* Password */,
@@ -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/identity-routing.module.ts","../../../../packages/identity/src/lib/identity.module.ts","../../../../packages/identity/src/abp-ng.identity.ts"],"sourcesContent":["import { ListService, PagedAndSortedResultRequestDto, PagedResultDto } from '@abp/ng.core';\r\nimport { IdentityRoleDto, IdentityRoleService } from '@abp/ng.identity/proxy';\r\nimport { ePermissionManagementComponents } from '@abp/ng.permission-management';\r\nimport {Confirmation, ConfirmationService, ToasterService} from '@abp/ng.theme.shared';\r\nimport {\r\n EXTENSIONS_IDENTIFIER,\r\n FormPropData,\r\n generateFormFromProps,\r\n} from '@abp/ng.theme.shared/extensions';\r\nimport { Component, Injector, OnInit } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { eIdentityComponents } from '../../enums/components';\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})\r\nexport class RolesComponent implements OnInit {\r\n data: PagedResultDto<IdentityRoleDto> = { items: [], totalCount: 0 };\r\n\r\n form: FormGroup;\r\n\r\n selected: IdentityRoleDto;\r\n\r\n isModalVisible: boolean;\r\n\r\n visiblePermissions = false;\r\n\r\n providerKey: string;\r\n\r\n modalBusy = false;\r\n\r\n permissionManagementKey = ePermissionManagementComponents.PermissionManagement;\r\n\r\n onVisiblePermissionChange = event => {\r\n this.visiblePermissions = event;\r\n };\r\n\r\n constructor(\r\n public readonly list: ListService<PagedAndSortedResultRequestDto>,\r\n protected confirmationService: ConfirmationService,\r\n private toasterService: ToasterService,\r\n protected injector: Injector,\r\n protected service: IdentityRoleService,\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.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::SuccessfullyDeleted');\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.hookToQuery(query => this.service.getList(query)).subscribe(res => (this.data = res));\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) {\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","<div id=\"identity-roles-wrapper\" class=\"card\">\r\n <div class=\"card-header\">\r\n <div class=\"row\">\r\n <div class=\"col col-md-6\">\r\n <h5 class=\"card-title\">{{ 'AbpIdentity::Roles' | abpLocalization }}</h5>\r\n </div>\r\n <div class=\"text-end col col-md-6\">\r\n <abp-page-toolbar [record]=\"data.items\"></abp-page-toolbar>\r\n </div>\r\n </div>\r\n </div>\r\n\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>\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-secondary\" 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","import { ListService, PagedResultDto } 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 { ePermissionManagementComponents } from '@abp/ng.permission-management';\r\nimport {Confirmation, ConfirmationService, ToasterService} from '@abp/ng.theme.shared';\r\nimport {\r\n EXTENSIONS_IDENTIFIER,\r\n FormPropData,\r\n generateFormFromProps,\r\n} from '@abp/ng.theme.shared/extensions';\r\nimport {\r\n Component,\r\n Injector,\r\n OnInit,\r\n TemplateRef,\r\n TrackByFunction,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { AbstractControl, FormArray, FormBuilder, FormGroup } from '@angular/forms';\r\nimport { finalize, switchMap, tap } from 'rxjs/operators';\r\nimport { eIdentityComponents } from '../../enums/components';\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})\r\nexport class UsersComponent implements OnInit {\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: FormGroup;\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 blueprints = { pattern: 'AbpIdentity::Volo.Abp.Identity:InvalidUserName[{{ actualValue }}]' };\r\n\r\n\r\n trackByFn: TrackByFunction<AbstractControl> = (index, item) => Object.keys(item)[0] || index;\r\n\r\n onVisiblePermissionChange = event => {\r\n this.visiblePermissions = event;\r\n };\r\n\r\n get roleGroups(): FormGroup[] {\r\n return ((this.form.get('roleNames') as FormArray)?.controls as FormGroup[]) || [];\r\n }\r\n\r\n constructor(\r\n public readonly list: ListService<GetIdentityUsersInput>,\r\n protected confirmationService: ConfirmationService,\r\n protected service: IdentityUserService,\r\n private toasterService: ToasterService,\r\n protected fb: FormBuilder,\r\n protected injector: Injector,\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 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]: [\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 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.filter(role => !!role[Object.keys(role)[0]]).map(role => Object.keys(role)[0]) ||\r\n [];\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.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::SuccessfullyDeleted');\r\n this.list.get()});\r\n }\r\n });\r\n }\r\n\r\n sort(data) {\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.hookToQuery(query => this.service.getList(query)).subscribe(res => (this.data = res));\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","<div id=\"identity-roles-wrapper\" class=\"card\">\r\n <div class=\"card-header\">\r\n <div class=\"row\">\r\n <div class=\"col col-md-6\">\r\n <h5 class=\"card-title\">{{ 'AbpIdentity::Users' | abpLocalization }}</h5>\r\n </div>\r\n <div class=\"text-end col col-md-6\">\r\n <abp-page-toolbar [record]=\"data.items\"></abp-page-toolbar>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-body\">\r\n <div id=\"data-tables-table-filter\" class=\"data-tables-filter\">\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 <ng-template #loaderRef\r\n ><div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\"></i></div\r\n ></ng-template>\r\n\r\n <form *ngIf=\"form; else loaderRef\" [blueprints]=\"blueprints\" [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 <div\r\n *ngFor=\"let roleGroup of roleGroups; let i = index; trackBy: trackByFn\"\r\n class=\"form-check mb-2\"\r\n >\r\n <input\r\n type=\"checkbox\"\r\n class=\"form-check-input\"\r\n [attr.id]=\"'roles-' + i\"\r\n [formControl]=\"roleGroup.controls[roles[i].name]\"\r\n />\r\n <label class=\"form-check-label\" [attr.for]=\"'roles-' + i\">{{ roles[i].name }}</label>\r\n </div>\r\n </ng-template>\r\n </li>\r\n </ul>\r\n\r\n <div class=\"mt-2 fade-in-top\" [ngbNavOutlet]=\"nav\"></div>\r\n </form>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button type=\"button\" class=\"btn btn-secondary\" 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","import { IdentityRoleDto } from '@abp/ng.identity/proxy';\r\nimport { EntityAction } from '@abp/ng.theme.shared/extensions';\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.theme.shared/extensions';\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 } from '@abp/ng.theme.shared/extensions';\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,\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.theme.shared/extensions';\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.theme.shared/extensions';\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 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.theme.shared/extensions';\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\"></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 { IdentityUserDto } from '@abp/ng.identity/proxy';\r\nimport { getPasswordValidators } from '@abp/ng.theme.shared';\r\nimport { ePropType, FormProp } from '@abp/ng.theme.shared/extensions';\r\nimport { Validators } from '@angular/forms';\r\n\r\nconst onlyLetterAndNumberRegex = /^[a-zA-Z0-9]+$/;\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), Validators.pattern(onlyLetterAndNumberRegex)],\r\n },\r\n {\r\n type: ePropType.Password,\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 => [...getPasswordValidators({ get: data.getInjected })],\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.theme.shared/extensions';\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.theme.shared/extensions';\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 { ConfigStateService } from '@abp/ng.core';\r\nimport {\r\n ExtensionsService,\r\n getObjectExtensionEntitiesFromStore,\r\n mapEntitiesToContributors,\r\n mergeWithDefaultActions,\r\n mergeWithDefaultProps,\r\n} from '@abp/ng.theme.shared/extensions';\r\nimport { Injectable, Injector } from '@angular/core';\r\nimport { CanActivate } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { map, mapTo, tap } from 'rxjs/operators';\r\nimport { eIdentityComponents } from '../enums/components';\r\nimport {\r\n IdentityCreateFormPropContributors,\r\n IdentityEditFormPropContributors,\r\n IdentityEntityActionContributors,\r\n IdentityEntityPropContributors,\r\n IdentityToolbarActionContributors,\r\n} from '../models/config-options';\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@Injectable()\r\nexport class IdentityExtensionsGuard implements CanActivate {\r\n constructor(private injector: Injector) {}\r\n\r\n canActivate(): Observable<boolean> {\r\n const extensions: ExtensionsService = this.injector.get(ExtensionsService);\r\n const actionContributors: IdentityEntityActionContributors =\r\n this.injector.get(IDENTITY_ENTITY_ACTION_CONTRIBUTORS, null) || {};\r\n const toolbarContributors: IdentityToolbarActionContributors =\r\n this.injector.get(IDENTITY_TOOLBAR_ACTION_CONTRIBUTORS, null) || {};\r\n const propContributors: IdentityEntityPropContributors =\r\n this.injector.get(IDENTITY_ENTITY_PROP_CONTRIBUTORS, null) || {};\r\n const createFormContributors: IdentityCreateFormPropContributors =\r\n this.injector.get(IDENTITY_CREATE_FORM_PROP_CONTRIBUTORS, null) || {};\r\n const editFormContributors: IdentityEditFormPropContributors =\r\n this.injector.get(IDENTITY_EDIT_FORM_PROP_CONTRIBUTORS, null) || {};\r\n\r\n const configState = this.injector.get(ConfigStateService);\r\n return getObjectExtensionEntitiesFromStore(configState, 'Identity').pipe(\r\n map(entities => ({\r\n [eIdentityComponents.Roles]: entities.Role,\r\n [eIdentityComponents.Users]: entities.User,\r\n })),\r\n mapEntitiesToContributors(configState, '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 mapTo(true),\r\n );\r\n }\r\n}\r\n","import {\r\n AuthGuard, PermissionGuard,\r\n ReplaceableComponents,\r\n ReplaceableRouteContainerComponent, RouterOutletComponent\r\n} from '@abp/ng.core';\r\nimport { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { RolesComponent } from './components/roles/roles.component';\r\nimport { UsersComponent } from './components/users/users.component';\r\nimport { eIdentityComponents } from './enums/components';\r\nimport { IdentityExtensionsGuard } from './guards/extensions.guard';\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, IdentityExtensionsGuard],\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 },\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 },\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 { CoreModule, LazyModuleFactory } from '@abp/ng.core';\r\nimport { PermissionManagementModule } from '@abp/ng.permission-management';\r\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\r\nimport { UiExtensionsModule } from '@abp/ng.theme.shared/extensions';\r\nimport { ModuleWithProviders, NgModule, NgModuleFactory } from '@angular/core';\r\nimport { NgbDropdownModule, NgbNavModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\r\nimport { RolesComponent } from './components/roles/roles.component';\r\nimport { UsersComponent } from './components/users/users.component';\r\nimport { IdentityExtensionsGuard } from './guards/extensions.guard';\r\nimport { IdentityRoutingModule } from './identity-routing.module';\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\n\r\n@NgModule({\r\n declarations: [RolesComponent, UsersComponent],\r\n exports: [RolesComponent, UsersComponent],\r\n imports: [\r\n CoreModule,\r\n IdentityRoutingModule,\r\n NgbNavModule,\r\n ThemeSharedModule,\r\n UiExtensionsModule,\r\n NgbDropdownModule,\r\n PermissionManagementModule,\r\n NgxValidateCoreModule,\r\n ],\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 static forLazy(options: IdentityConfigOptions = {}): NgModuleFactory<IdentityModule> {\r\n return new LazyModuleFactory(IdentityModule.forChild(options));\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i6","i7","i4","i5"],"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/identity-routing.module.ts","../../../../packages/identity/src/lib/identity.module.ts","../../../../packages/identity/src/abp-ng.identity.ts"],"sourcesContent":["import { ListService, PagedAndSortedResultRequestDto, PagedResultDto } from '@abp/ng.core';\r\nimport { IdentityRoleDto, IdentityRoleService } from '@abp/ng.identity/proxy';\r\nimport { ePermissionManagementComponents } from '@abp/ng.permission-management';\r\nimport {Confirmation, ConfirmationService, ToasterService} from '@abp/ng.theme.shared';\r\nimport {\r\n EXTENSIONS_IDENTIFIER,\r\n FormPropData,\r\n generateFormFromProps,\r\n} from '@abp/ng.theme.shared/extensions';\r\nimport { Component, Injector, OnInit } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { eIdentityComponents } from '../../enums/components';\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})\r\nexport class RolesComponent implements OnInit {\r\n data: PagedResultDto<IdentityRoleDto> = { items: [], totalCount: 0 };\r\n\r\n form: FormGroup;\r\n\r\n selected: IdentityRoleDto;\r\n\r\n isModalVisible: boolean;\r\n\r\n visiblePermissions = false;\r\n\r\n providerKey: string;\r\n\r\n modalBusy = false;\r\n\r\n permissionManagementKey = ePermissionManagementComponents.PermissionManagement;\r\n\r\n onVisiblePermissionChange = event => {\r\n this.visiblePermissions = event;\r\n };\r\n\r\n constructor(\r\n public readonly list: ListService<PagedAndSortedResultRequestDto>,\r\n protected confirmationService: ConfirmationService,\r\n private toasterService: ToasterService,\r\n protected injector: Injector,\r\n protected service: IdentityRoleService,\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.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::SuccessfullyDeleted');\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.hookToQuery(query => this.service.getList(query)).subscribe(res => (this.data = res));\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) {\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","<div id=\"identity-roles-wrapper\" class=\"card\">\r\n <div class=\"card-header\">\r\n <div class=\"row\">\r\n <div class=\"col col-md-6\">\r\n <h5 class=\"card-title\">{{ 'AbpIdentity::Roles' | abpLocalization }}</h5>\r\n </div>\r\n <div class=\"text-end col col-md-6\">\r\n <abp-page-toolbar [record]=\"data.items\"></abp-page-toolbar>\r\n </div>\r\n </div>\r\n </div>\r\n\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>\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-secondary\" 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","import { ListService, PagedResultDto } 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 { ePermissionManagementComponents } from '@abp/ng.permission-management';\r\nimport {Confirmation, ConfirmationService, ToasterService} from '@abp/ng.theme.shared';\r\nimport {\r\n EXTENSIONS_IDENTIFIER,\r\n FormPropData,\r\n generateFormFromProps,\r\n} from '@abp/ng.theme.shared/extensions';\r\nimport {\r\n Component,\r\n Injector,\r\n OnInit,\r\n TemplateRef,\r\n TrackByFunction,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { AbstractControl, FormArray, FormBuilder, FormGroup } from '@angular/forms';\r\nimport { finalize, switchMap, tap } from 'rxjs/operators';\r\nimport { eIdentityComponents } from '../../enums/components';\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})\r\nexport class UsersComponent implements OnInit {\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: FormGroup;\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 trackByFn: TrackByFunction<AbstractControl> = (index, item) => Object.keys(item)[0] || index;\r\n\r\n onVisiblePermissionChange = event => {\r\n this.visiblePermissions = event;\r\n };\r\n\r\n get roleGroups(): FormGroup[] {\r\n return ((this.form.get('roleNames') as FormArray)?.controls as FormGroup[]) || [];\r\n }\r\n\r\n constructor(\r\n public readonly list: ListService<GetIdentityUsersInput>,\r\n protected confirmationService: ConfirmationService,\r\n protected service: IdentityUserService,\r\n private toasterService: ToasterService,\r\n protected fb: FormBuilder,\r\n protected injector: Injector,\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 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]: [\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 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.filter(role => !!role[Object.keys(role)[0]]).map(role => Object.keys(role)[0]) ||\r\n [];\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.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::SuccessfullyDeleted');\r\n this.list.get()});\r\n }\r\n });\r\n }\r\n\r\n sort(data) {\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.hookToQuery(query => this.service.getList(query)).subscribe(res => (this.data = res));\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","<div id=\"identity-roles-wrapper\" class=\"card\">\r\n <div class=\"card-header\">\r\n <div class=\"row\">\r\n <div class=\"col col-md-6\">\r\n <h5 class=\"card-title\">{{ 'AbpIdentity::Users' | abpLocalization }}</h5>\r\n </div>\r\n <div class=\"text-end col col-md-6\">\r\n <abp-page-toolbar [record]=\"data.items\"></abp-page-toolbar>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-body\">\r\n <div id=\"data-tables-table-filter\" class=\"data-tables-filter\">\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 <ng-template #loaderRef\r\n ><div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\"></i></div\r\n ></ng-template>\r\n\r\n <form *ngIf=\"form; else loaderRef\" [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 <div\r\n *ngFor=\"let roleGroup of roleGroups; let i = index; trackBy: trackByFn\"\r\n class=\"form-check mb-2\"\r\n >\r\n <input\r\n type=\"checkbox\"\r\n class=\"form-check-input\"\r\n [attr.id]=\"'roles-' + i\"\r\n [formControl]=\"roleGroup.controls[roles[i].name]\"\r\n />\r\n <label class=\"form-check-label\" [attr.for]=\"'roles-' + i\">{{ roles[i].name }}</label>\r\n </div>\r\n </ng-template>\r\n </li>\r\n </ul>\r\n\r\n <div class=\"mt-2 fade-in-top\" [ngbNavOutlet]=\"nav\"></div>\r\n </form>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button type=\"button\" class=\"btn btn-secondary\" 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","import { IdentityRoleDto } from '@abp/ng.identity/proxy';\r\nimport { EntityAction } from '@abp/ng.theme.shared/extensions';\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.theme.shared/extensions';\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 } from '@abp/ng.theme.shared/extensions';\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,\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.theme.shared/extensions';\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.theme.shared/extensions';\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 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.theme.shared/extensions';\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\"></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 { IdentityUserDto } from '@abp/ng.identity/proxy';\r\nimport { getPasswordValidators } from '@abp/ng.theme.shared';\r\nimport { ePropType, FormProp } from '@abp/ng.theme.shared/extensions';\r\nimport { Validators } from '@angular/forms'\r\nimport { AbpValidators } from '@abp/ng.core';\r\n\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), AbpValidators.username()],\r\n },\r\n {\r\n type: ePropType.Password,\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 => [...getPasswordValidators({ get: data.getInjected })],\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.theme.shared/extensions';\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.theme.shared/extensions';\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 { ConfigStateService } from '@abp/ng.core';\r\nimport {\r\n ExtensionsService,\r\n getObjectExtensionEntitiesFromStore,\r\n mapEntitiesToContributors,\r\n mergeWithDefaultActions,\r\n mergeWithDefaultProps,\r\n} from '@abp/ng.theme.shared/extensions';\r\nimport { Injectable, Injector } from '@angular/core';\r\nimport { CanActivate } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { map, mapTo, tap } from 'rxjs/operators';\r\nimport { eIdentityComponents } from '../enums/components';\r\nimport {\r\n IdentityCreateFormPropContributors,\r\n IdentityEditFormPropContributors,\r\n IdentityEntityActionContributors,\r\n IdentityEntityPropContributors,\r\n IdentityToolbarActionContributors,\r\n} from '../models/config-options';\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@Injectable()\r\nexport class IdentityExtensionsGuard implements CanActivate {\r\n constructor(private injector: Injector) {}\r\n\r\n canActivate(): Observable<boolean> {\r\n const extensions: ExtensionsService = this.injector.get(ExtensionsService);\r\n const actionContributors: IdentityEntityActionContributors =\r\n this.injector.get(IDENTITY_ENTITY_ACTION_CONTRIBUTORS, null) || {};\r\n const toolbarContributors: IdentityToolbarActionContributors =\r\n this.injector.get(IDENTITY_TOOLBAR_ACTION_CONTRIBUTORS, null) || {};\r\n const propContributors: IdentityEntityPropContributors =\r\n this.injector.get(IDENTITY_ENTITY_PROP_CONTRIBUTORS, null) || {};\r\n const createFormContributors: IdentityCreateFormPropContributors =\r\n this.injector.get(IDENTITY_CREATE_FORM_PROP_CONTRIBUTORS, null) || {};\r\n const editFormContributors: IdentityEditFormPropContributors =\r\n this.injector.get(IDENTITY_EDIT_FORM_PROP_CONTRIBUTORS, null) || {};\r\n\r\n const configState = this.injector.get(ConfigStateService);\r\n return getObjectExtensionEntitiesFromStore(configState, 'Identity').pipe(\r\n map(entities => ({\r\n [eIdentityComponents.Roles]: entities.Role,\r\n [eIdentityComponents.Users]: entities.User,\r\n })),\r\n mapEntitiesToContributors(configState, '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 mapTo(true),\r\n );\r\n }\r\n}\r\n","import {\r\n AuthGuard, PermissionGuard,\r\n ReplaceableComponents,\r\n ReplaceableRouteContainerComponent, RouterOutletComponent\r\n} from '@abp/ng.core';\r\nimport { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { RolesComponent } from './components/roles/roles.component';\r\nimport { UsersComponent } from './components/users/users.component';\r\nimport { eIdentityComponents } from './enums/components';\r\nimport { IdentityExtensionsGuard } from './guards/extensions.guard';\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, IdentityExtensionsGuard],\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 },\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 },\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 { CoreModule, LazyModuleFactory } from '@abp/ng.core';\r\nimport { PermissionManagementModule } from '@abp/ng.permission-management';\r\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\r\nimport { UiExtensionsModule } from '@abp/ng.theme.shared/extensions';\r\nimport { ModuleWithProviders, NgModule, NgModuleFactory } from '@angular/core';\r\nimport { NgbDropdownModule, NgbNavModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\r\nimport { RolesComponent } from './components/roles/roles.component';\r\nimport { UsersComponent } from './components/users/users.component';\r\nimport { IdentityExtensionsGuard } from './guards/extensions.guard';\r\nimport { IdentityRoutingModule } from './identity-routing.module';\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\n\r\n@NgModule({\r\n declarations: [RolesComponent, UsersComponent],\r\n exports: [RolesComponent, UsersComponent],\r\n imports: [\r\n CoreModule,\r\n IdentityRoutingModule,\r\n NgbNavModule,\r\n ThemeSharedModule,\r\n UiExtensionsModule,\r\n NgbDropdownModule,\r\n PermissionManagementModule,\r\n NgxValidateCoreModule,\r\n ],\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 static forLazy(options: IdentityConfigOptions = {}): NgModuleFactory<IdentityModule> {\r\n return new LazyModuleFactory(IdentityModule.forChild(options));\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i6","i7","i4","i5"],"mappings":"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"}
@@ -24,9 +24,6 @@ export declare class UsersComponent implements OnInit {
24
24
  modalBusy: boolean;
25
25
  permissionManagementKey: ePermissionManagementComponents;
26
26
  entityDisplayName: string;
27
- blueprints: {
28
- pattern: string;
29
- };
30
27
  trackByFn: TrackByFunction<AbstractControl>;
31
28
  onVisiblePermissionChange: (event: any) => void;
32
29
  get roleGroups(): FormGroup[];
package/package.json CHANGED
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "name": "@abp/ng.identity",
3
- "version": "6.0.0-rc.3",
3
+ "version": "6.0.0-rc.4",
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.permission-management": "~6.0.0-rc.3",
11
- "@abp/ng.theme.shared": "~6.0.0-rc.3",
10
+ "@abp/ng.permission-management": "~6.0.0-rc.4",
11
+ "@abp/ng.theme.shared": "~6.0.0-rc.4",
12
12
  "tslib": "^2.0.0"
13
13
  },
14
14
  "publishConfig": {
@@ -51,6 +51,6 @@
51
51
  },
52
52
  "sideEffects": false,
53
53
  "peerDependencies": {
54
- "@abp/ng.core": "6.0.0-rc.3"
54
+ "@abp/ng.core": "6.0.0-rc.4"
55
55
  }
56
56
  }