@abp/ng.tenant-management 8.0.2 → 8.0.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.
|
@@ -113,7 +113,7 @@ export class TenantsComponent {
|
|
|
113
113
|
provide: EXTENSIONS_IDENTIFIER,
|
|
114
114
|
useValue: "TenantManagement.TenantsComponent" /* eTenantManagementComponents.Tenants */,
|
|
115
115
|
},
|
|
116
|
-
], ngImport: i0, template: "<abp-page [title]=\"'AbpTenantManagement::Tenants' | abpLocalization\" [toolbar]=\"data.items\">\r\n\r\n\r\n <div id=\"wrapper\" class=\"card\">\r\n <div class=\"card-body\">\r\n <div id=\"data-tables-table-filter\" class=\"data-tables-filter mb-3\">\r\n <div class=\"input-group\">\r\n <input\r\n type=\"search\"\r\n class=\"form-control\"\r\n [placeholder]=\"'AbpUi::PagerSearch' | abpLocalization\"\r\n [(ngModel)]=\"list.filter\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <abp-extensible-table\r\n [data]=\"data.items || []\"\r\n [recordsTotal]=\"data.totalCount || 0\"\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>\r\n {{\r\n (selected?.id ? 'AbpTenantManagement::Edit' : 'AbpTenantManagement::NewTenant')\r\n | abpLocalization\r\n }}\r\n </h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <form [formGroup]=\"tenantForm\" (ngSubmit)=\"save()\" [validateOnSubmit]=\"true\">\r\n <abp-extensible-form [selectedRecord]=\"selected\"></abp-extensible-form>\r\n </form>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button abpClose type=\"button\" class=\"btn btn-
|
|
116
|
+
], ngImport: i0, template: "<abp-page [title]=\"'AbpTenantManagement::Tenants' | abpLocalization\" [toolbar]=\"data.items\">\r\n\r\n\r\n <div id=\"wrapper\" class=\"card\">\r\n <div class=\"card-body\">\r\n <div id=\"data-tables-table-filter\" class=\"data-tables-filter mb-3\">\r\n <div class=\"input-group\">\r\n <input\r\n type=\"search\"\r\n class=\"form-control\"\r\n [placeholder]=\"'AbpUi::PagerSearch' | abpLocalization\"\r\n [(ngModel)]=\"list.filter\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <abp-extensible-table\r\n [data]=\"data.items || []\"\r\n [recordsTotal]=\"data.totalCount || 0\"\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>\r\n {{\r\n (selected?.id ? 'AbpTenantManagement::Edit' : 'AbpTenantManagement::NewTenant')\r\n | abpLocalization\r\n }}\r\n </h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <form [formGroup]=\"tenantForm\" (ngSubmit)=\"save()\" [validateOnSubmit]=\"true\">\r\n <abp-extensible-form [selectedRecord]=\"selected\"></abp-extensible-form>\r\n </form>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button abpClose type=\"button\" class=\"btn btn-outline-primary\">\r\n {{ 'AbpTenantManagement::Cancel' | abpLocalization }}\r\n </button>\r\n <abp-button iconClass=\"fa fa-check\" (click)=\"save()\" [disabled]=\"tenantForm?.invalid\">{{\r\n 'AbpTenantManagement::Save' | abpLocalization\r\n }}</abp-button>\r\n </ng-template>\r\n </abp-modal>\r\n\r\n <abp-feature-management\r\n *abpReplaceableTemplate=\"{\r\n inputs: {\r\n providerName: { value: 'T' },\r\n providerKey: { value: providerKey },\r\n visible: { value: visibleFeatures, twoWay: true }\r\n },\r\n outputs: { visibleChange: $any(onVisibleFeaturesChange) },\r\n componentKey: featureManagementKey\r\n }\"\r\n [(visible)]=\"visibleFeatures\"\r\n providerName=\"T\"\r\n [providerKey]=\"providerKey\"\r\n >\r\n </abp-feature-management>\r\n</abp-page>\r\n", dependencies: [{ kind: "directive", type: i5.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", 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]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormSubmitDirective, selector: "form[ngSubmit][formGroup]", inputs: ["debounce", "notValidateOnSubmit", "markAsDirtyWhenSubmit"], outputs: ["ngSubmit"] }, { kind: "directive", type: i1.ReplaceableTemplateDirective, selector: "[abpReplaceableTemplate]", inputs: ["abpReplaceableTemplate"] }, { kind: "component", type: i2.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "formName", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }, { kind: "component", type: i2.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { kind: "directive", type: i2.ModalCloseDirective, selector: "[abpClose]" }, { kind: "component", type: i6.FeatureManagementComponent, selector: "abp-feature-management", inputs: ["providerKey", "providerName", "visible"], outputs: ["visibleChange"], exportAs: ["abpFeatureManagement"] }, { kind: "component", type: i7.ExtensibleFormComponent, selector: "abp-extensible-form", inputs: ["selectedRecord"], exportAs: ["abpExtensibleForm"] }, { kind: "component", type: i7.ExtensibleTableComponent, selector: "abp-extensible-table", inputs: ["actionsText", "data", "list", "recordsTotal", "actionsColumnWidth", "actionsTemplate"], outputs: ["tableActivate"], exportAs: ["abpExtensibleTable"] }, { kind: "component", type: i8.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "pipe", type: i1.LocalizationPipe, name: "abpLocalization" }] }); }
|
|
117
117
|
}
|
|
118
118
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: TenantsComponent, decorators: [{
|
|
119
119
|
type: Component,
|
|
@@ -123,6 +123,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImpor
|
|
|
123
123
|
provide: EXTENSIONS_IDENTIFIER,
|
|
124
124
|
useValue: "TenantManagement.TenantsComponent" /* eTenantManagementComponents.Tenants */,
|
|
125
125
|
},
|
|
126
|
-
], template: "<abp-page [title]=\"'AbpTenantManagement::Tenants' | abpLocalization\" [toolbar]=\"data.items\">\r\n\r\n\r\n <div id=\"wrapper\" class=\"card\">\r\n <div class=\"card-body\">\r\n <div id=\"data-tables-table-filter\" class=\"data-tables-filter mb-3\">\r\n <div class=\"input-group\">\r\n <input\r\n type=\"search\"\r\n class=\"form-control\"\r\n [placeholder]=\"'AbpUi::PagerSearch' | abpLocalization\"\r\n [(ngModel)]=\"list.filter\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <abp-extensible-table\r\n [data]=\"data.items || []\"\r\n [recordsTotal]=\"data.totalCount || 0\"\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>\r\n {{\r\n (selected?.id ? 'AbpTenantManagement::Edit' : 'AbpTenantManagement::NewTenant')\r\n | abpLocalization\r\n }}\r\n </h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <form [formGroup]=\"tenantForm\" (ngSubmit)=\"save()\" [validateOnSubmit]=\"true\">\r\n <abp-extensible-form [selectedRecord]=\"selected\"></abp-extensible-form>\r\n </form>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button abpClose type=\"button\" class=\"btn btn-
|
|
126
|
+
], template: "<abp-page [title]=\"'AbpTenantManagement::Tenants' | abpLocalization\" [toolbar]=\"data.items\">\r\n\r\n\r\n <div id=\"wrapper\" class=\"card\">\r\n <div class=\"card-body\">\r\n <div id=\"data-tables-table-filter\" class=\"data-tables-filter mb-3\">\r\n <div class=\"input-group\">\r\n <input\r\n type=\"search\"\r\n class=\"form-control\"\r\n [placeholder]=\"'AbpUi::PagerSearch' | abpLocalization\"\r\n [(ngModel)]=\"list.filter\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <abp-extensible-table\r\n [data]=\"data.items || []\"\r\n [recordsTotal]=\"data.totalCount || 0\"\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>\r\n {{\r\n (selected?.id ? 'AbpTenantManagement::Edit' : 'AbpTenantManagement::NewTenant')\r\n | abpLocalization\r\n }}\r\n </h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <form [formGroup]=\"tenantForm\" (ngSubmit)=\"save()\" [validateOnSubmit]=\"true\">\r\n <abp-extensible-form [selectedRecord]=\"selected\"></abp-extensible-form>\r\n </form>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button abpClose type=\"button\" class=\"btn btn-outline-primary\">\r\n {{ 'AbpTenantManagement::Cancel' | abpLocalization }}\r\n </button>\r\n <abp-button iconClass=\"fa fa-check\" (click)=\"save()\" [disabled]=\"tenantForm?.invalid\">{{\r\n 'AbpTenantManagement::Save' | abpLocalization\r\n }}</abp-button>\r\n </ng-template>\r\n </abp-modal>\r\n\r\n <abp-feature-management\r\n *abpReplaceableTemplate=\"{\r\n inputs: {\r\n providerName: { value: 'T' },\r\n providerKey: { value: providerKey },\r\n visible: { value: visibleFeatures, twoWay: true }\r\n },\r\n outputs: { visibleChange: $any(onVisibleFeaturesChange) },\r\n componentKey: featureManagementKey\r\n }\"\r\n [(visible)]=\"visibleFeatures\"\r\n providerName=\"T\"\r\n [providerKey]=\"providerKey\"\r\n >\r\n </abp-feature-management>\r\n</abp-page>\r\n" }]
|
|
127
127
|
}], ctorParameters: () => [{ type: i1.ListService }, { type: i0.Injector }, { type: i2.ConfirmationService }, { type: i3.TenantService }, { type: i2.ToasterService }, { type: i4.UntypedFormBuilder }] });
|
|
128
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50cy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90ZW5hbnQtbWFuYWdlbWVudC9zcmMvbGliL2NvbXBvbmVudHMvdGVuYW50cy90ZW5hbnRzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RlbmFudC1tYW5hZ2VtZW50L3NyYy9saWIvY29tcG9uZW50cy90ZW5hbnRzL3RlbmFudHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBa0IsTUFBTSxjQUFjLENBQUM7QUFFM0QsT0FBTyxFQUE4QixhQUFhLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM1RixPQUFPLEVBQUMsWUFBWSxFQUFFLG1CQUFtQixFQUFFLGNBQWMsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZGLE9BQU8sRUFDTCxxQkFBcUIsRUFDckIsWUFBWSxFQUNaLHFCQUFxQixHQUN0QixNQUFNLCtCQUErQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzVELE9BQU8sRUFBRSxrQkFBa0IsRUFBb0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7QUFjMUMsTUFBTSxPQUFPLGdCQUFnQjtJQWlCM0IsSUFBSSxpQkFBaUI7UUFDbkIsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBTUQsWUFDa0IsSUFBa0MsRUFDMUMsUUFBa0IsRUFDbEIsbUJBQXdDLEVBQ3hDLE9BQXNCLEVBQ3RCLGNBQThCLEVBQzlCLEVBQXNCO1FBTGQsU0FBSSxHQUFKLElBQUksQ0FBOEI7UUFDMUMsYUFBUSxHQUFSLFFBQVEsQ0FBVTtR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LElBQUksQ0FBQztRQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUM7SUFDNUIsQ0FBQzs4R0EzSFUsZ0JBQWdCO2tHQUFoQixnQkFBZ0Isc0NBUmhCO1lBQ1QsV0FBVztZQUNYO2dCQUNFLE9BQU8sRUFBRSxxQkFBcUI7Z0JBQzlCLFFBQVEsK0VBQXFDO2FBQzlDO1NBQ0YsMEJDdkJILGl0RUFrRUE7OzJGRHpDYSxnQkFBZ0I7a0JBWDVCLFNBQVM7K0JBQ0UsYUFBYSxhQUVaO3dCQUNULFdBQVc7d0JBQ1g7NEJBQ0UsT0FBTyxFQUFFLHFCQUFxQjs0QkFDOUIsUUFBUSwrRUFBcUM7eUJBQzlDO3FCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTGlzdFNlcnZpY2UsIFBhZ2VkUmVzdWx0RHRvIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuaW1wb3J0IHsgZUZlYXR1cmVNYW5hZ2VtZW50Q29tcG9uZW50cyB9IGZyb20gJ0BhYnAvbmcuZmVhdHVyZS1tYW5hZ2VtZW50JztcclxuaW1wb3J0IHsgR2V0VGVuYW50c0lucHV0LCBUZW5hbnREdG8sIFRlbmFudFNlcnZpY2UgfSBmcm9tICdAYWJwL25nLnRlbmFudC1tYW5hZ2VtZW50L3Byb3h5JztcclxuaW1wb3J0IHtDb25maXJtYXRpb24sIENvbmZpcm1hdGlvblNlcnZpY2UsIFRvYXN0ZXJTZXJ2aWNlfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XHJcbmltcG9ydCB7XHJcbiAgRVhURU5TSU9OU19JREVOVElGSUVSLFxyXG4gIEZvcm1Qcm9wRGF0YSxcclxuICBnZW5lcmF0ZUZvcm1Gcm9tUHJvcHMsXHJcbn0gZnJvbSAnQGFicC9uZy5jb21wb25lbnRzL2V4dGVuc2libGUnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdG9yLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVW50eXBlZEZvcm1CdWlsZGVyLCBVbnR5cGVkRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBmaW5hbGl6ZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgZVRlbmFudE1hbmFnZW1lbnRDb21wb25lbnRzIH0gZnJvbSAnLi4vLi4vZW51bXMvY29tcG9uZW50cyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FicC10ZW5hbnRzJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGVuYW50cy5jb21wb25lbnQuaHRtbCcsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICBMaXN0U2VydmljZSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogRVhURU5TSU9OU19JREVOVElGSUVSLFxyXG4gICAgICB1c2VWYWx1ZTogZVRlbmFudE1hbmFnZW1lbnRDb21wb25lbnRzLlRlbmFudHMsXHJcbiAgICB9LFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUZW5hbnRzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBkYXRhOiBQYWdlZFJlc3VsdER0bzxUZW5hbnREdG8+ID0geyBpdGVtczogW10sIHRvdGFsQ291bnQ6IDAgfTtcclxuXHJcbiAgc2VsZWN0ZWQhOiBUZW5hbnREdG87XHJcblxyXG4gIHRlbmFudEZvcm0hOiBVbnR5cGVkRm9ybUdyb3VwO1xyXG5cclxuICBpc01vZGFsVmlzaWJsZSE6IGJvb2xlYW47XHJcblxyXG4gIHZpc2libGVGZWF0dXJlcyA9IGZhbHNlO1xyXG5cclxuICBwcm92aWRlcktleSE6IHN0cmluZztcclxuXHJcbiAgbW9kYWxCdXN5ID0gZmFsc2U7XHJcblxyXG4gIGZlYXR1cmVNYW5hZ2VtZW50S2V5ID0gZUZlYXR1cmVNYW5hZ2VtZW50Q29tcG9uZW50cy5GZWF0dXJlTWFuYWdlbWVudDtcclxuXHJcbiAgZ2V0IGhhc1NlbGVjdGVkVGVuYW50KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIEJvb2xlYW4odGhpcy5zZWxlY3RlZC5pZCk7XHJcbiAgfVxyXG5cclxuICBvblZpc2libGVGZWF0dXJlc0NoYW5nZSA9ICh2YWx1ZTogYm9vbGVhbikgPT4ge1xyXG4gICAgdGhpcy52aXNpYmxlRmVhdHVyZXMgPSB2YWx1ZTtcclxuICB9O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyByZWFkb25seSBsaXN0OiBMaXN0U2VydmljZTxHZXRUZW5hbnRzSW5wdXQ+LFxyXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICBwcml2YXRlIGNvbmZpcm1hdGlvblNlcnZpY2U6IENvbmZpcm1hdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHNlcnZpY2U6IFRlbmFudFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHRvYXN0ZXJTZXJ2aWNlOiBUb2FzdGVyU2VydmljZSxcclxuICAgIHByaXZhdGUgZmI6IFVudHlwZWRGb3JtQnVpbGRlcixcclxuICApIHt9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5ob29rVG9RdWVyeSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVUZW5hbnRGb3JtKCkge1xyXG4gICAgY29uc3QgZGF0YSA9IG5ldyBGb3JtUHJvcERhdGEodGhpcy5pbmplY3RvciwgdGhpcy5zZWxlY3RlZCk7XHJcbiAgICB0aGlzLnRlbmFudEZvcm0gPSBnZW5lcmF0ZUZvcm1Gcm9tUHJvcHMoZGF0YSk7XHJcbiAgfVxyXG5cclxuICBhZGRUZW5hbnQoKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkID0ge30gYXMgVGVuYW50RHRvO1xyXG4gICAgdGhpcy5jcmVhdGVUZW5hbnRGb3JtKCk7XHJcbiAgICB0aGlzLmlzTW9kYWxWaXNpYmxlID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGVkaXRUZW5hbnQoaWQ6IHN0cmluZykge1xyXG4gICAgdGhpcy5zZXJ2aWNlLmdldChpZCkuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWQgPSByZXM7XHJcbiAgICAgIHRoaXMuY3JlYXRlVGVuYW50Rm9ybSgpO1xyXG4gICAgICB0aGlzLmlzTW9kYWxWaXNpYmxlID0gdHJ1ZTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2F2ZSgpIHtcclxuICAgIGlmICghdGhpcy50ZW5hbnRGb3JtLnZhbGlkIHx8IHRoaXMubW9kYWxCdXN5KSByZXR1cm47XHJcbiAgICB0aGlzLm1vZGFsQnVzeSA9IHRydWU7XHJcblxyXG4gICAgY29uc3QgeyBpZCB9ID0gdGhpcy5zZWxlY3RlZDtcclxuXHJcbiAgICAoaWRcclxuICAgICAgPyB0aGlzLnNlcnZpY2UudXBkYXRlKGlkLCB7IC4uLnRoaXMuc2VsZWN0ZWQsIC4uLnRoaXMudGVuYW50Rm9ybS52YWx1ZSB9KVxyXG4gICAgICA6IHRoaXMuc2VydmljZS5jcmVhdGUodGhpcy50ZW5hbnRGb3JtLnZhbHVlKVxyXG4gICAgKVxyXG4gICAgICAucGlwZShmaW5hbGl6ZSgoKSA9PiAodGhpcy5tb2RhbEJ1c3kgPSBmYWxzZSkpKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLmlzTW9kYWxWaXNpYmxlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5saXN0LmdldCgpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZShpZDogc3RyaW5nLCBuYW1lOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuY29uZmlybWF0aW9uU2VydmljZVxyXG4gICAgICAud2FybihcclxuICAgICAgICAnQWJwVGVuYW50TWFuYWdlbWVudDo6VGVuYW50RGVsZXRpb25Db25maXJtYXRpb25NZXNzYWdlJyxcclxuICAgICAgICAnQWJwVGVuYW50TWFuYWdlbWVudDo6QXJlWW91U3VyZScsXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgbWVzc2FnZUxvY2FsaXphdGlvblBhcmFtczogW25hbWVdLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSgoc3RhdHVzOiBDb25maXJtYXRpb24uU3RhdHVzKSA9PiB7XHJcbiAgICAgICAgaWYgKHN0YXR1cyA9PT0gQ29uZmlybWF0aW9uLlN0YXR1cy5jb25maXJtKSB7XHJcbiAgICAgICAgICB0aGlzLnRvYXN0ZXJTZXJ2aWNlLnN1Y2Nlc3MoJ0FicFVpOjpTdWNjZXNzZnVsbHlEZWxldGVkJyk7XHJcbiAgICAgICAgICB0aGlzLnNlcnZpY2UuZGVsZXRlKGlkKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5saXN0LmdldCgpKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgaG9va1RvUXVlcnkoKSB7XHJcbiAgICB0aGlzLmxpc3RcclxuICAgICAgLmhvb2tUb1F1ZXJ5KHF1ZXJ5ID0+IHRoaXMuc2VydmljZS5nZXRMaXN0KHF1ZXJ5KSlcclxuICAgICAgLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICAgIHRoaXMuZGF0YSA9IHJlcztcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBvblNoYXJlZERhdGFiYXNlQ2hhbmdlKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICBpZiAoIXZhbHVlKSB7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGRlZmF1bHRDb25uZWN0aW9uU3RyaW5nID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXHJcbiAgICAgICAgICAnZGVmYXVsdENvbm5lY3Rpb25TdHJpbmcnLFxyXG4gICAgICAgICkgYXMgSFRNTElucHV0RWxlbWVudDtcclxuICAgICAgICBpZiAoZGVmYXVsdENvbm5lY3Rpb25TdHJpbmcpIHtcclxuICAgICAgICAgIGRlZmF1bHRDb25uZWN0aW9uU3RyaW5nLmZvY3VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LCAwKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9wZW5GZWF0dXJlc01vZGFsKHByb3ZpZGVyS2V5OiBzdHJpbmcpIHtcclxuICAgIHRoaXMucHJvdmlkZXJLZXkgPSBwcm92aWRlcktleTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLnZpc2libGVGZWF0dXJlcyA9IHRydWU7XHJcbiAgICB9LCAwKTtcclxuICB9XHJcblxyXG4gIHNvcnQoZGF0YTogYW55KSB7XHJcbiAgICBjb25zdCB7IHByb3AsIGRpciB9ID0gZGF0YS5zb3J0c1swXTtcclxuICAgIHRoaXMubGlzdC5zb3J0S2V5ID0gcHJvcDtcclxuICAgIHRoaXMubGlzdC5zb3J0T3JkZXIgPSBkaXI7XHJcbiAgfVxyXG59XHJcbiIsIjxhYnAtcGFnZSBbdGl0bGVdPVwiJ0FicFRlbmFudE1hbmFnZW1lbnQ6OlRlbmFudHMnIHwgYWJwTG9jYWxpemF0aW9uXCIgW3Rvb2xiYXJdPVwiZGF0YS5pdGVtc1wiPlxyXG5cclxuXHJcbiAgPGRpdiBpZD1cIndyYXBwZXJcIiBjbGFzcz1cImNhcmRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHlcIj5cclxuICAgICAgPGRpdiBpZD1cImRhdGEtdGFibGVzLXRhYmxlLWZpbHRlclwiIGNsYXNzPVwiZGF0YS10YWJsZXMtZmlsdGVyIG1iLTNcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIj5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICB0eXBlPVwic2VhcmNoXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0FicFVpOjpQYWdlclNlYXJjaCcgfCBhYnBMb2NhbGl6YXRpb25cIlxyXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cImxpc3QuZmlsdGVyXCJcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGFicC1leHRlbnNpYmxlLXRhYmxlXHJcbiAgICAgICAgW2RhdGFdPVwiZGF0YS5pdGVtcyB8fCBbXVwiXHJcbiAgICAgICAgW3JlY29yZHNUb3RhbF09XCJkYXRhLnRvdGFsQ291bnQgfHwgMFwiXHJcbiAgICAgICAgW2xpc3RdPVwibGlzdFwiXHJcbiAgICAgID48L2FicC1leHRlbnNpYmxlLXRhYmxlPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxhYnAtbW9kYWwgWyh2aXNpYmxlKV09XCJpc01vZGFsVmlzaWJsZVwiIFtidXN5XT1cIm1vZGFsQnVzeVwiPlxyXG4gICAgPG5nLXRlbXBsYXRlICNhYnBIZWFkZXI+XHJcbiAgICAgIDxoMz5cclxuICAgICAgICB7e1xyXG4gICAgICAgIChzZWxlY3RlZD8uaWQgPyAnQWJwVGVuYW50TWFuYWdlbWVudDo6RWRpdCcgOiAnQWJwVGVuYW50TWFuYWdlbWVudDo6TmV3VGVuYW50JylcclxuICAgICAgICAgIHwgYWJwTG9jYWxpemF0aW9uXHJcbiAgICAgICAgfX1cclxuICAgICAgPC9oMz5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgPG5nLXRlbXBsYXRlICNhYnBCb2R5PlxyXG4gICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cInRlbmFudEZvcm1cIiAobmdTdWJtaXQpPVwic2F2ZSgpXCIgW3ZhbGlkYXRlT25TdWJtaXRdPVwidHJ1ZVwiPlxyXG4gICAgICAgIDxhYnAtZXh0ZW5zaWJsZS1mb3JtIFtzZWxlY3RlZFJlY29yZF09XCJzZWxlY3RlZFwiPjwvYWJwLWV4dGVuc2libGUtZm9ybT5cclxuICAgICAgPC9mb3JtPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICA8bmctdGVtcGxhdGUgI2FicEZvb3Rlcj5cclxuICAgICAgPGJ1dHRvbiBhYnBDbG9zZSB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiPlxyXG4gICAgICAgIHt7ICdBYnBUZW5hbnRNYW5hZ2VtZW50OjpDYW5jZWwnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8YWJwLWJ1dHRvbiBpY29uQ2xhc3M9XCJmYSBmYS1jaGVja1wiIChjbGljayk9XCJzYXZlKClcIiBbZGlzYWJsZWRdPVwidGVuYW50Rm9ybT8uaW52YWxpZFwiPnt7XHJcbiAgICAgICAgJ0FicFRlbmFudE1hbmFnZW1lbnQ6OlNhdmUnIHwgYWJwTG9jYWxpemF0aW9uXHJcbiAgICAgICAgfX08L2FicC1idXR0b24+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gIDwvYWJwLW1vZGFsPlxyXG5cclxuICA8YWJwLWZlYXR1cmUtbWFuYWdlbWVudFxyXG4gICAgKmFicFJlcGxhY2VhYmxlVGVtcGxhdGU9XCJ7XHJcbiAgICBpbnB1dHM6IHtcclxuICAgICAgcHJvdmlkZXJOYW1lOiB7IHZhbHVlOiAnVCcgfSxcclxuICAgICAgcHJvdmlkZXJLZXk6IHsgdmFsdWU6IHByb3ZpZGVyS2V5IH0sXHJcbiAgICAgIHZpc2libGU6IHsgdmFsdWU6IHZpc2libGVGZWF0dXJlcywgdHdvV2F5OiB0cnVlIH1cclxuICAgIH0sXHJcbiAgICBvdXRwdXRzOiB7IHZpc2libGVDaGFuZ2U6ICRhbnkob25WaXNpYmxlRmVhdHVyZXNDaGFuZ2UpIH0sXHJcbiAgICBjb21wb25lbnRLZXk6IGZlYXR1cmVNYW5hZ2VtZW50S2V5XHJcbiAgfVwiXHJcbiAgICBbKHZpc2libGUpXT1cInZpc2libGVGZWF0dXJlc1wiXHJcbiAgICBwcm92aWRlck5hbWU9XCJUXCJcclxuICAgIFtwcm92aWRlcktleV09XCJwcm92aWRlcktleVwiXHJcbiAgPlxyXG4gIDwvYWJwLWZlYXR1cmUtbWFuYWdlbWVudD5cclxuPC9hYnAtcGFnZT5cclxuIl19
|
|
128
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50cy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90ZW5hbnQtbWFuYWdlbWVudC9zcmMvbGliL2NvbXBvbmVudHMvdGVuYW50cy90ZW5hbnRzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RlbmFudC1tYW5hZ2VtZW50L3NyYy9saWIvY29tcG9uZW50cy90ZW5hbnRzL3RlbmFudHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBa0IsTUFBTSxjQUFjLENBQUM7QUFFM0QsT0FBTyxFQUE4QixhQUFhLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM1RixPQUFPLEVBQUMsWUFBWSxFQUFFLG1CQUFtQixFQUFFLGNBQWMsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZGLE9BQU8sRUFDTCxxQkFBcUIsRUFDckIsWUFBWSxFQUNaLHFCQUFxQixHQUN0QixNQUFNLCtCQUErQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzVELE9BQU8sRUFBRSxrQkFBa0IsRUFBb0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7QUFjMUMsTUFBTSxPQUFPLGdCQUFnQjtJQWlCM0IsSUFBSSxpQkFBaUI7UUFDbkIsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBTUQsWUFDa0IsSUFBa0MsRUFDMUMsUUFBa0IsRUFDbEIsbUJBQXdDLEVBQ3hDLE9BQXNCLEVBQ3RCLGNBQThCLEVBQzlCLEVBQXNCO1FBTGQsU0FBSSxHQUFKLElBQUksQ0FBOEI7UUFDMUMsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLFlBQU8sR0FBUCxPQUFPLENBQWU7UUFDdEIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLE9BQUUsR0FBRixFQUFFLENBQW9CO1FBOUJoQyxTQUFJLEdBQThCLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFRL0Qsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFJeEIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUVsQix5QkFBb0IsdUdBQWtEO1FBTXRFLDRCQUF1QixHQUFHLENBQUMsS0FBYyxFQUFFLEVBQUU7WUFDM0MsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7UUFDL0IsQ0FBQyxDQUFDO0lBU0MsQ0FBQztJQUVKLFFBQVE7UUFDTixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVPLGdCQUFnQjtRQUN0QixNQUFNLElBQUksR0FBRyxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM1RCxJQUFJLENBQUMsVUFBVSxHQUFHLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxTQUFTO1FBQ1AsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFlLENBQUM7UUFDaEMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7SUFDN0IsQ0FBQztJQUVELFVBQVUsQ0FBQyxFQUFVO1FBQ25CLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNuQyxJQUFJLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQztZQUNwQixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztRQUM3QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFJO1FBQ0YsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxTQUFTO1lBQUUsT0FBTztRQUNyRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUV0QixNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUU3QixDQUFDLEVBQUU7WUFDRCxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN6RSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FDN0M7YUFDRSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO2FBQzlDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztZQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELE1BQU0sQ0FBQyxFQUFVLEVBQUUsSUFBWTtRQUM3QixJQUFJLENBQUMsbUJBQW1CO2FBQ3JCLElBQUksQ0FDSCx3REFBd0QsRUFDeEQsaUNBQWlDLEVBQ2pDO1lBQ0UseUJBQXlCLEVBQUUsQ0FBQyxJQUFJLENBQUM7U0FDbEMsQ0FDRjthQUNBLFNBQVMsQ0FBQyxDQUFDLE1BQTJCLEVBQUUsRUFBRTtZQUN6QyxJQUFJLE1BQU0sS0FBSyxZQUFZLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRTtnQkFDMUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsNEJBQTRCLENBQUMsQ0FBQztnQkFDMUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQzthQUMxRDtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsSUFBSTthQUNOLFdBQVcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ2pELFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNmLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDO1FBQ2xCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELHNCQUFzQixDQUFDLEtBQWM7UUFDbkMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNWLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsTUFBTSx1QkFBdUIsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUNyRCx5QkFBeUIsQ0FDTixDQUFDO2dCQUN0QixJQUFJLHVCQUF1QixFQUFFO29CQUMzQix1QkFBdUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQztpQkFDakM7WUFDSCxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDUDtJQUNILENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxXQUFtQjtRQUNuQyxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUMvQixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7UUFDOUIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ1IsQ0FBQztJQUVELElBQUksQ0FBQyxJQUFTO1FBQ1osTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUM7SUFDNUIsQ0FBQzs4R0EzSFUsZ0JBQWdCO2tHQUFoQixnQkFBZ0Isc0NBUmhCO1lBQ1QsV0FBVztZQUNYO2dCQUNFLE9BQU8sRUFBRSxxQkFBcUI7Z0JBQzlCLFFBQVEsK0VBQXFDO2FBQzlDO1NBQ0YsMEJDdkJILHV0RUFrRUE7OzJGRHpDYSxnQkFBZ0I7a0JBWDVCLFNBQVM7K0JBQ0UsYUFBYSxhQUVaO3dCQUNULFdBQVc7d0JBQ1g7NEJBQ0UsT0FBTyxFQUFFLHFCQUFxQjs0QkFDOUIsUUFBUSwrRUFBcUM7eUJBQzlDO3FCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTGlzdFNlcnZpY2UsIFBhZ2VkUmVzdWx0RHRvIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuaW1wb3J0IHsgZUZlYXR1cmVNYW5hZ2VtZW50Q29tcG9uZW50cyB9IGZyb20gJ0BhYnAvbmcuZmVhdHVyZS1tYW5hZ2VtZW50JztcclxuaW1wb3J0IHsgR2V0VGVuYW50c0lucHV0LCBUZW5hbnREdG8sIFRlbmFudFNlcnZpY2UgfSBmcm9tICdAYWJwL25nLnRlbmFudC1tYW5hZ2VtZW50L3Byb3h5JztcclxuaW1wb3J0IHtDb25maXJtYXRpb24sIENvbmZpcm1hdGlvblNlcnZpY2UsIFRvYXN0ZXJTZXJ2aWNlfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XHJcbmltcG9ydCB7XHJcbiAgRVhURU5TSU9OU19JREVOVElGSUVSLFxyXG4gIEZvcm1Qcm9wRGF0YSxcclxuICBnZW5lcmF0ZUZvcm1Gcm9tUHJvcHMsXHJcbn0gZnJvbSAnQGFicC9uZy5jb21wb25lbnRzL2V4dGVuc2libGUnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdG9yLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVW50eXBlZEZvcm1CdWlsZGVyLCBVbnR5cGVkRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBmaW5hbGl6ZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgZVRlbmFudE1hbmFnZW1lbnRDb21wb25lbnRzIH0gZnJvbSAnLi4vLi4vZW51bXMvY29tcG9uZW50cyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FicC10ZW5hbnRzJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGVuYW50cy5jb21wb25lbnQuaHRtbCcsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICBMaXN0U2VydmljZSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogRVhURU5TSU9OU19JREVOVElGSUVSLFxyXG4gICAgICB1c2VWYWx1ZTogZVRlbmFudE1hbmFnZW1lbnRDb21wb25lbnRzLlRlbmFudHMsXHJcbiAgICB9LFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUZW5hbnRzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBkYXRhOiBQYWdlZFJlc3VsdER0bzxUZW5hbnREdG8+ID0geyBpdGVtczogW10sIHRvdGFsQ291bnQ6IDAgfTtcclxuXHJcbiAgc2VsZWN0ZWQhOiBUZW5hbnREdG87XHJcblxyXG4gIHRlbmFudEZvcm0hOiBVbnR5cGVkRm9ybUdyb3VwO1xyXG5cclxuICBpc01vZGFsVmlzaWJsZSE6IGJvb2xlYW47XHJcblxyXG4gIHZpc2libGVGZWF0dXJlcyA9IGZhbHNlO1xyXG5cclxuICBwcm92aWRlcktleSE6IHN0cmluZztcclxuXHJcbiAgbW9kYWxCdXN5ID0gZmFsc2U7XHJcblxyXG4gIGZlYXR1cmVNYW5hZ2VtZW50S2V5ID0gZUZlYXR1cmVNYW5hZ2VtZW50Q29tcG9uZW50cy5GZWF0dXJlTWFuYWdlbWVudDtcclxuXHJcbiAgZ2V0IGhhc1NlbGVjdGVkVGVuYW50KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIEJvb2xlYW4odGhpcy5zZWxlY3RlZC5pZCk7XHJcbiAgfVxyXG5cclxuICBvblZpc2libGVGZWF0dXJlc0NoYW5nZSA9ICh2YWx1ZTogYm9vbGVhbikgPT4ge1xyXG4gICAgdGhpcy52aXNpYmxlRmVhdHVyZXMgPSB2YWx1ZTtcclxuICB9O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyByZWFkb25seSBsaXN0OiBMaXN0U2VydmljZTxHZXRUZW5hbnRzSW5wdXQ+LFxyXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICBwcml2YXRlIGNvbmZpcm1hdGlvblNlcnZpY2U6IENvbmZpcm1hdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHNlcnZpY2U6IFRlbmFudFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHRvYXN0ZXJTZXJ2aWNlOiBUb2FzdGVyU2VydmljZSxcclxuICAgIHByaXZhdGUgZmI6IFVudHlwZWRGb3JtQnVpbGRlcixcclxuICApIHt9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5ob29rVG9RdWVyeSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVUZW5hbnRGb3JtKCkge1xyXG4gICAgY29uc3QgZGF0YSA9IG5ldyBGb3JtUHJvcERhdGEodGhpcy5pbmplY3RvciwgdGhpcy5zZWxlY3RlZCk7XHJcbiAgICB0aGlzLnRlbmFudEZvcm0gPSBnZW5lcmF0ZUZvcm1Gcm9tUHJvcHMoZGF0YSk7XHJcbiAgfVxyXG5cclxuICBhZGRUZW5hbnQoKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkID0ge30gYXMgVGVuYW50RHRvO1xyXG4gICAgdGhpcy5jcmVhdGVUZW5hbnRGb3JtKCk7XHJcbiAgICB0aGlzLmlzTW9kYWxWaXNpYmxlID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGVkaXRUZW5hbnQoaWQ6IHN0cmluZykge1xyXG4gICAgdGhpcy5zZXJ2aWNlLmdldChpZCkuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWQgPSByZXM7XHJcbiAgICAgIHRoaXMuY3JlYXRlVGVuYW50Rm9ybSgpO1xyXG4gICAgICB0aGlzLmlzTW9kYWxWaXNpYmxlID0gdHJ1ZTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2F2ZSgpIHtcclxuICAgIGlmICghdGhpcy50ZW5hbnRGb3JtLnZhbGlkIHx8IHRoaXMubW9kYWxCdXN5KSByZXR1cm47XHJcbiAgICB0aGlzLm1vZGFsQnVzeSA9IHRydWU7XHJcblxyXG4gICAgY29uc3QgeyBpZCB9ID0gdGhpcy5zZWxlY3RlZDtcclxuXHJcbiAgICAoaWRcclxuICAgICAgPyB0aGlzLnNlcnZpY2UudXBkYXRlKGlkLCB7IC4uLnRoaXMuc2VsZWN0ZWQsIC4uLnRoaXMudGVuYW50Rm9ybS52YWx1ZSB9KVxyXG4gICAgICA6IHRoaXMuc2VydmljZS5jcmVhdGUodGhpcy50ZW5hbnRGb3JtLnZhbHVlKVxyXG4gICAgKVxyXG4gICAgICAucGlwZShmaW5hbGl6ZSgoKSA9PiAodGhpcy5tb2RhbEJ1c3kgPSBmYWxzZSkpKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLmlzTW9kYWxWaXNpYmxlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5saXN0LmdldCgpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZShpZDogc3RyaW5nLCBuYW1lOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuY29uZmlybWF0aW9uU2VydmljZVxyXG4gICAgICAud2FybihcclxuICAgICAgICAnQWJwVGVuYW50TWFuYWdlbWVudDo6VGVuYW50RGVsZXRpb25Db25maXJtYXRpb25NZXNzYWdlJyxcclxuICAgICAgICAnQWJwVGVuYW50TWFuYWdlbWVudDo6QXJlWW91U3VyZScsXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgbWVzc2FnZUxvY2FsaXphdGlvblBhcmFtczogW25hbWVdLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSgoc3RhdHVzOiBDb25maXJtYXRpb24uU3RhdHVzKSA9PiB7XHJcbiAgICAgICAgaWYgKHN0YXR1cyA9PT0gQ29uZmlybWF0aW9uLlN0YXR1cy5jb25maXJtKSB7XHJcbiAgICAgICAgICB0aGlzLnRvYXN0ZXJTZXJ2aWNlLnN1Y2Nlc3MoJ0FicFVpOjpTdWNjZXNzZnVsbHlEZWxldGVkJyk7XHJcbiAgICAgICAgICB0aGlzLnNlcnZpY2UuZGVsZXRlKGlkKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5saXN0LmdldCgpKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgaG9va1RvUXVlcnkoKSB7XHJcbiAgICB0aGlzLmxpc3RcclxuICAgICAgLmhvb2tUb1F1ZXJ5KHF1ZXJ5ID0+IHRoaXMuc2VydmljZS5nZXRMaXN0KHF1ZXJ5KSlcclxuICAgICAgLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICAgIHRoaXMuZGF0YSA9IHJlcztcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBvblNoYXJlZERhdGFiYXNlQ2hhbmdlKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICBpZiAoIXZhbHVlKSB7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGRlZmF1bHRDb25uZWN0aW9uU3RyaW5nID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXHJcbiAgICAgICAgICAnZGVmYXVsdENvbm5lY3Rpb25TdHJpbmcnLFxyXG4gICAgICAgICkgYXMgSFRNTElucHV0RWxlbWVudDtcclxuICAgICAgICBpZiAoZGVmYXVsdENvbm5lY3Rpb25TdHJpbmcpIHtcclxuICAgICAgICAgIGRlZmF1bHRDb25uZWN0aW9uU3RyaW5nLmZvY3VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LCAwKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9wZW5GZWF0dXJlc01vZGFsKHByb3ZpZGVyS2V5OiBzdHJpbmcpIHtcclxuICAgIHRoaXMucHJvdmlkZXJLZXkgPSBwcm92aWRlcktleTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLnZpc2libGVGZWF0dXJlcyA9IHRydWU7XHJcbiAgICB9LCAwKTtcclxuICB9XHJcblxyXG4gIHNvcnQoZGF0YTogYW55KSB7XHJcbiAgICBjb25zdCB7IHByb3AsIGRpciB9ID0gZGF0YS5zb3J0c1swXTtcclxuICAgIHRoaXMubGlzdC5zb3J0S2V5ID0gcHJvcDtcclxuICAgIHRoaXMubGlzdC5zb3J0T3JkZXIgPSBkaXI7XHJcbiAgfVxyXG59XHJcbiIsIjxhYnAtcGFnZSBbdGl0bGVdPVwiJ0FicFRlbmFudE1hbmFnZW1lbnQ6OlRlbmFudHMnIHwgYWJwTG9jYWxpemF0aW9uXCIgW3Rvb2xiYXJdPVwiZGF0YS5pdGVtc1wiPlxyXG5cclxuXHJcbiAgPGRpdiBpZD1cIndyYXBwZXJcIiBjbGFzcz1cImNhcmRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHlcIj5cclxuICAgICAgPGRpdiBpZD1cImRhdGEtdGFibGVzLXRhYmxlLWZpbHRlclwiIGNsYXNzPVwiZGF0YS10YWJsZXMtZmlsdGVyIG1iLTNcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIj5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICB0eXBlPVwic2VhcmNoXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0FicFVpOjpQYWdlclNlYXJjaCcgfCBhYnBMb2NhbGl6YXRpb25cIlxyXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cImxpc3QuZmlsdGVyXCJcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGFicC1leHRlbnNpYmxlLXRhYmxlXHJcbiAgICAgICAgW2RhdGFdPVwiZGF0YS5pdGVtcyB8fCBbXVwiXHJcbiAgICAgICAgW3JlY29yZHNUb3RhbF09XCJkYXRhLnRvdGFsQ291bnQgfHwgMFwiXHJcbiAgICAgICAgW2xpc3RdPVwibGlzdFwiXHJcbiAgICAgID48L2FicC1leHRlbnNpYmxlLXRhYmxlPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxhYnAtbW9kYWwgWyh2aXNpYmxlKV09XCJpc01vZGFsVmlzaWJsZVwiIFtidXN5XT1cIm1vZGFsQnVzeVwiPlxyXG4gICAgPG5nLXRlbXBsYXRlICNhYnBIZWFkZXI+XHJcbiAgICAgIDxoMz5cclxuICAgICAgICB7e1xyXG4gICAgICAgIChzZWxlY3RlZD8uaWQgPyAnQWJwVGVuYW50TWFuYWdlbWVudDo6RWRpdCcgOiAnQWJwVGVuYW50TWFuYWdlbWVudDo6TmV3VGVuYW50JylcclxuICAgICAgICAgIHwgYWJwTG9jYWxpemF0aW9uXHJcbiAgICAgICAgfX1cclxuICAgICAgPC9oMz5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgPG5nLXRlbXBsYXRlICNhYnBCb2R5PlxyXG4gICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cInRlbmFudEZvcm1cIiAobmdTdWJtaXQpPVwic2F2ZSgpXCIgW3ZhbGlkYXRlT25TdWJtaXRdPVwidHJ1ZVwiPlxyXG4gICAgICAgIDxhYnAtZXh0ZW5zaWJsZS1mb3JtIFtzZWxlY3RlZFJlY29yZF09XCJzZWxlY3RlZFwiPjwvYWJwLWV4dGVuc2libGUtZm9ybT5cclxuICAgICAgPC9mb3JtPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICA8bmctdGVtcGxhdGUgI2FicEZvb3Rlcj5cclxuICAgICAgPGJ1dHRvbiBhYnBDbG9zZSB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLW91dGxpbmUtcHJpbWFyeVwiPlxyXG4gICAgICAgIHt7ICdBYnBUZW5hbnRNYW5hZ2VtZW50OjpDYW5jZWwnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8YWJwLWJ1dHRvbiBpY29uQ2xhc3M9XCJmYSBmYS1jaGVja1wiIChjbGljayk9XCJzYXZlKClcIiBbZGlzYWJsZWRdPVwidGVuYW50Rm9ybT8uaW52YWxpZFwiPnt7XHJcbiAgICAgICAgJ0FicFRlbmFudE1hbmFnZW1lbnQ6OlNhdmUnIHwgYWJwTG9jYWxpemF0aW9uXHJcbiAgICAgICAgfX08L2FicC1idXR0b24+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gIDwvYWJwLW1vZGFsPlxyXG5cclxuICA8YWJwLWZlYXR1cmUtbWFuYWdlbWVudFxyXG4gICAgKmFicFJlcGxhY2VhYmxlVGVtcGxhdGU9XCJ7XHJcbiAgICBpbnB1dHM6IHtcclxuICAgICAgcHJvdmlkZXJOYW1lOiB7IHZhbHVlOiAnVCcgfSxcclxuICAgICAgcHJvdmlkZXJLZXk6IHsgdmFsdWU6IHByb3ZpZGVyS2V5IH0sXHJcbiAgICAgIHZpc2libGU6IHsgdmFsdWU6IHZpc2libGVGZWF0dXJlcywgdHdvV2F5OiB0cnVlIH1cclxuICAgIH0sXHJcbiAgICBvdXRwdXRzOiB7IHZpc2libGVDaGFuZ2U6ICRhbnkob25WaXNpYmxlRmVhdHVyZXNDaGFuZ2UpIH0sXHJcbiAgICBjb21wb25lbnRLZXk6IGZlYXR1cmVNYW5hZ2VtZW50S2V5XHJcbiAgfVwiXHJcbiAgICBbKHZpc2libGUpXT1cInZpc2libGVGZWF0dXJlc1wiXHJcbiAgICBwcm92aWRlck5hbWU9XCJUXCJcclxuICAgIFtwcm92aWRlcktleV09XCJwcm92aWRlcktleVwiXHJcbiAgPlxyXG4gIDwvYWJwLWZlYXR1cmUtbWFuYWdlbWVudD5cclxuPC9hYnAtcGFnZT5cclxuIl19
|
|
@@ -4,7 +4,7 @@ import * as i3 from '@abp/ng.tenant-management/proxy';
|
|
|
4
4
|
import * as i2 from '@abp/ng.theme.shared';
|
|
5
5
|
import { Confirmation, getPasswordValidators, ThemeSharedModule } from '@abp/ng.theme.shared';
|
|
6
6
|
import * as i7 from '@abp/ng.components/extensible';
|
|
7
|
-
import { FormPropData, generateFormFromProps, EXTENSIONS_IDENTIFIER, EntityAction, EntityProp, FormProp, ToolbarAction, ExtensionsService, mapEntitiesToContributors, mergeWithDefaultActions, mergeWithDefaultProps,
|
|
7
|
+
import { FormPropData, generateFormFromProps, EXTENSIONS_IDENTIFIER, EntityAction, EntityProp, FormProp, ToolbarAction, ExtensionsService, getObjectExtensionEntitiesFromStore, mapEntitiesToContributors, mergeWithDefaultActions, mergeWithDefaultProps, ExtensibleModule } from '@abp/ng.components/extensible';
|
|
8
8
|
import * as i0 from '@angular/core';
|
|
9
9
|
import { Component, InjectionToken, inject, Injectable, NgModule } from '@angular/core';
|
|
10
10
|
import * as i4 from '@angular/forms';
|
|
@@ -120,7 +120,7 @@ class TenantsComponent {
|
|
|
120
120
|
provide: EXTENSIONS_IDENTIFIER,
|
|
121
121
|
useValue: "TenantManagement.TenantsComponent" /* eTenantManagementComponents.Tenants */,
|
|
122
122
|
},
|
|
123
|
-
], ngImport: i0, template: "<abp-page [title]=\"'AbpTenantManagement::Tenants' | abpLocalization\" [toolbar]=\"data.items\">\r\n\r\n\r\n <div id=\"wrapper\" class=\"card\">\r\n <div class=\"card-body\">\r\n <div id=\"data-tables-table-filter\" class=\"data-tables-filter mb-3\">\r\n <div class=\"input-group\">\r\n <input\r\n type=\"search\"\r\n class=\"form-control\"\r\n [placeholder]=\"'AbpUi::PagerSearch' | abpLocalization\"\r\n [(ngModel)]=\"list.filter\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <abp-extensible-table\r\n [data]=\"data.items || []\"\r\n [recordsTotal]=\"data.totalCount || 0\"\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>\r\n {{\r\n (selected?.id ? 'AbpTenantManagement::Edit' : 'AbpTenantManagement::NewTenant')\r\n | abpLocalization\r\n }}\r\n </h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <form [formGroup]=\"tenantForm\" (ngSubmit)=\"save()\" [validateOnSubmit]=\"true\">\r\n <abp-extensible-form [selectedRecord]=\"selected\"></abp-extensible-form>\r\n </form>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button abpClose type=\"button\" class=\"btn btn-
|
|
123
|
+
], ngImport: i0, template: "<abp-page [title]=\"'AbpTenantManagement::Tenants' | abpLocalization\" [toolbar]=\"data.items\">\r\n\r\n\r\n <div id=\"wrapper\" class=\"card\">\r\n <div class=\"card-body\">\r\n <div id=\"data-tables-table-filter\" class=\"data-tables-filter mb-3\">\r\n <div class=\"input-group\">\r\n <input\r\n type=\"search\"\r\n class=\"form-control\"\r\n [placeholder]=\"'AbpUi::PagerSearch' | abpLocalization\"\r\n [(ngModel)]=\"list.filter\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <abp-extensible-table\r\n [data]=\"data.items || []\"\r\n [recordsTotal]=\"data.totalCount || 0\"\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>\r\n {{\r\n (selected?.id ? 'AbpTenantManagement::Edit' : 'AbpTenantManagement::NewTenant')\r\n | abpLocalization\r\n }}\r\n </h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <form [formGroup]=\"tenantForm\" (ngSubmit)=\"save()\" [validateOnSubmit]=\"true\">\r\n <abp-extensible-form [selectedRecord]=\"selected\"></abp-extensible-form>\r\n </form>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button abpClose type=\"button\" class=\"btn btn-outline-primary\">\r\n {{ 'AbpTenantManagement::Cancel' | abpLocalization }}\r\n </button>\r\n <abp-button iconClass=\"fa fa-check\" (click)=\"save()\" [disabled]=\"tenantForm?.invalid\">{{\r\n 'AbpTenantManagement::Save' | abpLocalization\r\n }}</abp-button>\r\n </ng-template>\r\n </abp-modal>\r\n\r\n <abp-feature-management\r\n *abpReplaceableTemplate=\"{\r\n inputs: {\r\n providerName: { value: 'T' },\r\n providerKey: { value: providerKey },\r\n visible: { value: visibleFeatures, twoWay: true }\r\n },\r\n outputs: { visibleChange: $any(onVisibleFeaturesChange) },\r\n componentKey: featureManagementKey\r\n }\"\r\n [(visible)]=\"visibleFeatures\"\r\n providerName=\"T\"\r\n [providerKey]=\"providerKey\"\r\n >\r\n </abp-feature-management>\r\n</abp-page>\r\n", dependencies: [{ kind: "directive", type: i5.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", 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]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormSubmitDirective, selector: "form[ngSubmit][formGroup]", inputs: ["debounce", "notValidateOnSubmit", "markAsDirtyWhenSubmit"], outputs: ["ngSubmit"] }, { kind: "directive", type: i1.ReplaceableTemplateDirective, selector: "[abpReplaceableTemplate]", inputs: ["abpReplaceableTemplate"] }, { kind: "component", type: i2.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "formName", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }, { kind: "component", type: i2.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { kind: "directive", type: i2.ModalCloseDirective, selector: "[abpClose]" }, { kind: "component", type: i6.FeatureManagementComponent, selector: "abp-feature-management", inputs: ["providerKey", "providerName", "visible"], outputs: ["visibleChange"], exportAs: ["abpFeatureManagement"] }, { kind: "component", type: i7.ExtensibleFormComponent, selector: "abp-extensible-form", inputs: ["selectedRecord"], exportAs: ["abpExtensibleForm"] }, { kind: "component", type: i7.ExtensibleTableComponent, selector: "abp-extensible-table", inputs: ["actionsText", "data", "list", "recordsTotal", "actionsColumnWidth", "actionsTemplate"], outputs: ["tableActivate"], exportAs: ["abpExtensibleTable"] }, { kind: "component", type: i8.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "pipe", type: i1.LocalizationPipe, name: "abpLocalization" }] }); }
|
|
124
124
|
}
|
|
125
125
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: TenantsComponent, decorators: [{
|
|
126
126
|
type: Component,
|
|
@@ -130,7 +130,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImpor
|
|
|
130
130
|
provide: EXTENSIONS_IDENTIFIER,
|
|
131
131
|
useValue: "TenantManagement.TenantsComponent" /* eTenantManagementComponents.Tenants */,
|
|
132
132
|
},
|
|
133
|
-
], template: "<abp-page [title]=\"'AbpTenantManagement::Tenants' | abpLocalization\" [toolbar]=\"data.items\">\r\n\r\n\r\n <div id=\"wrapper\" class=\"card\">\r\n <div class=\"card-body\">\r\n <div id=\"data-tables-table-filter\" class=\"data-tables-filter mb-3\">\r\n <div class=\"input-group\">\r\n <input\r\n type=\"search\"\r\n class=\"form-control\"\r\n [placeholder]=\"'AbpUi::PagerSearch' | abpLocalization\"\r\n [(ngModel)]=\"list.filter\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <abp-extensible-table\r\n [data]=\"data.items || []\"\r\n [recordsTotal]=\"data.totalCount || 0\"\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>\r\n {{\r\n (selected?.id ? 'AbpTenantManagement::Edit' : 'AbpTenantManagement::NewTenant')\r\n | abpLocalization\r\n }}\r\n </h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <form [formGroup]=\"tenantForm\" (ngSubmit)=\"save()\" [validateOnSubmit]=\"true\">\r\n <abp-extensible-form [selectedRecord]=\"selected\"></abp-extensible-form>\r\n </form>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button abpClose type=\"button\" class=\"btn btn-
|
|
133
|
+
], template: "<abp-page [title]=\"'AbpTenantManagement::Tenants' | abpLocalization\" [toolbar]=\"data.items\">\r\n\r\n\r\n <div id=\"wrapper\" class=\"card\">\r\n <div class=\"card-body\">\r\n <div id=\"data-tables-table-filter\" class=\"data-tables-filter mb-3\">\r\n <div class=\"input-group\">\r\n <input\r\n type=\"search\"\r\n class=\"form-control\"\r\n [placeholder]=\"'AbpUi::PagerSearch' | abpLocalization\"\r\n [(ngModel)]=\"list.filter\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <abp-extensible-table\r\n [data]=\"data.items || []\"\r\n [recordsTotal]=\"data.totalCount || 0\"\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>\r\n {{\r\n (selected?.id ? 'AbpTenantManagement::Edit' : 'AbpTenantManagement::NewTenant')\r\n | abpLocalization\r\n }}\r\n </h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <form [formGroup]=\"tenantForm\" (ngSubmit)=\"save()\" [validateOnSubmit]=\"true\">\r\n <abp-extensible-form [selectedRecord]=\"selected\"></abp-extensible-form>\r\n </form>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button abpClose type=\"button\" class=\"btn btn-outline-primary\">\r\n {{ 'AbpTenantManagement::Cancel' | abpLocalization }}\r\n </button>\r\n <abp-button iconClass=\"fa fa-check\" (click)=\"save()\" [disabled]=\"tenantForm?.invalid\">{{\r\n 'AbpTenantManagement::Save' | abpLocalization\r\n }}</abp-button>\r\n </ng-template>\r\n </abp-modal>\r\n\r\n <abp-feature-management\r\n *abpReplaceableTemplate=\"{\r\n inputs: {\r\n providerName: { value: 'T' },\r\n providerKey: { value: providerKey },\r\n visible: { value: visibleFeatures, twoWay: true }\r\n },\r\n outputs: { visibleChange: $any(onVisibleFeaturesChange) },\r\n componentKey: featureManagementKey\r\n }\"\r\n [(visible)]=\"visibleFeatures\"\r\n providerName=\"T\"\r\n [providerKey]=\"providerKey\"\r\n >\r\n </abp-feature-management>\r\n</abp-page>\r\n" }]
|
|
134
134
|
}], ctorParameters: () => [{ type: i1.ListService }, { type: i0.Injector }, { type: i2.ConfirmationService }, { type: i3.TenantService }, { type: i2.ToasterService }, { type: i4.UntypedFormBuilder }] });
|
|
135
135
|
|
|
136
136
|
const DEFAULT_TENANTS_ENTITY_ACTIONS = EntityAction.createMany([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abp-ng.tenant-management.mjs","sources":["../../../../packages/tenant-management/src/lib/components/tenants/tenants.component.ts","../../../../packages/tenant-management/src/lib/components/tenants/tenants.component.html","../../../../packages/tenant-management/src/lib/defaults/default-tenants-entity-actions.ts","../../../../packages/tenant-management/src/lib/defaults/default-tenants-entity-props.ts","../../../../packages/tenant-management/src/lib/defaults/default-tenants-form-props.ts","../../../../packages/tenant-management/src/lib/defaults/default-tenants-toolbar-actions.ts","../../../../packages/tenant-management/src/lib/tokens/extensions.token.ts","../../../../packages/tenant-management/src/lib/guards/extensions.guard.ts","../../../../packages/tenant-management/src/lib/resolvers/extensions.resolver.ts","../../../../packages/tenant-management/src/lib/tenant-management-routing.module.ts","../../../../packages/tenant-management/src/lib/tenant-management.module.ts","../../../../packages/tenant-management/src/abp-ng.tenant-management.ts"],"sourcesContent":["import { ListService, PagedResultDto } from '@abp/ng.core';\r\nimport { eFeatureManagementComponents } from '@abp/ng.feature-management';\r\nimport { GetTenantsInput, TenantDto, TenantService } from '@abp/ng.tenant-management/proxy';\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.components/extensible';\r\nimport { Component, Injector, OnInit } from '@angular/core';\r\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { eTenantManagementComponents } from '../../enums/components';\r\n\r\n@Component({\r\n selector: 'abp-tenants',\r\n templateUrl: './tenants.component.html',\r\n providers: [\r\n ListService,\r\n {\r\n provide: EXTENSIONS_IDENTIFIER,\r\n useValue: eTenantManagementComponents.Tenants,\r\n },\r\n ],\r\n})\r\nexport class TenantsComponent implements OnInit {\r\n data: PagedResultDto<TenantDto> = { items: [], totalCount: 0 };\r\n\r\n selected!: TenantDto;\r\n\r\n tenantForm!: UntypedFormGroup;\r\n\r\n isModalVisible!: boolean;\r\n\r\n visibleFeatures = false;\r\n\r\n providerKey!: string;\r\n\r\n modalBusy = false;\r\n\r\n featureManagementKey = eFeatureManagementComponents.FeatureManagement;\r\n\r\n get hasSelectedTenant(): boolean {\r\n return Boolean(this.selected.id);\r\n }\r\n\r\n onVisibleFeaturesChange = (value: boolean) => {\r\n this.visibleFeatures = value;\r\n };\r\n\r\n constructor(\r\n public readonly list: ListService<GetTenantsInput>,\r\n private injector: Injector,\r\n private confirmationService: ConfirmationService,\r\n private service: TenantService,\r\n private toasterService: ToasterService,\r\n private fb: UntypedFormBuilder,\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.hookToQuery();\r\n }\r\n\r\n private createTenantForm() {\r\n const data = new FormPropData(this.injector, this.selected);\r\n this.tenantForm = generateFormFromProps(data);\r\n }\r\n\r\n addTenant() {\r\n this.selected = {} as TenantDto;\r\n this.createTenantForm();\r\n this.isModalVisible = true;\r\n }\r\n\r\n editTenant(id: string) {\r\n this.service.get(id).subscribe(res => {\r\n this.selected = res;\r\n this.createTenantForm();\r\n this.isModalVisible = true;\r\n });\r\n }\r\n\r\n save() {\r\n if (!this.tenantForm.valid || this.modalBusy) return;\r\n this.modalBusy = true;\r\n\r\n const { id } = this.selected;\r\n\r\n (id\r\n ? this.service.update(id, { ...this.selected, ...this.tenantForm.value })\r\n : this.service.create(this.tenantForm.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(\r\n 'AbpTenantManagement::TenantDeletionConfirmationMessage',\r\n 'AbpTenantManagement::AreYouSure',\r\n {\r\n messageLocalizationParams: [name],\r\n },\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 hookToQuery() {\r\n this.list\r\n .hookToQuery(query => this.service.getList(query))\r\n .subscribe(res => {\r\n this.data = res;\r\n });\r\n }\r\n\r\n onSharedDatabaseChange(value: boolean) {\r\n if (!value) {\r\n setTimeout(() => {\r\n const defaultConnectionString = document.getElementById(\r\n 'defaultConnectionString',\r\n ) as HTMLInputElement;\r\n if (defaultConnectionString) {\r\n defaultConnectionString.focus();\r\n }\r\n }, 0);\r\n }\r\n }\r\n\r\n openFeaturesModal(providerKey: string) {\r\n this.providerKey = providerKey;\r\n setTimeout(() => {\r\n this.visibleFeatures = true;\r\n }, 0);\r\n }\r\n\r\n sort(data: any) {\r\n const { prop, dir } = data.sorts[0];\r\n this.list.sortKey = prop;\r\n this.list.sortOrder = dir;\r\n }\r\n}\r\n","<abp-page [title]=\"'AbpTenantManagement::Tenants' | abpLocalization\" [toolbar]=\"data.items\">\r\n\r\n\r\n <div id=\"wrapper\" class=\"card\">\r\n <div class=\"card-body\">\r\n <div id=\"data-tables-table-filter\" class=\"data-tables-filter mb-3\">\r\n <div class=\"input-group\">\r\n <input\r\n type=\"search\"\r\n class=\"form-control\"\r\n [placeholder]=\"'AbpUi::PagerSearch' | abpLocalization\"\r\n [(ngModel)]=\"list.filter\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <abp-extensible-table\r\n [data]=\"data.items || []\"\r\n [recordsTotal]=\"data.totalCount || 0\"\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>\r\n {{\r\n (selected?.id ? 'AbpTenantManagement::Edit' : 'AbpTenantManagement::NewTenant')\r\n | abpLocalization\r\n }}\r\n </h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <form [formGroup]=\"tenantForm\" (ngSubmit)=\"save()\" [validateOnSubmit]=\"true\">\r\n <abp-extensible-form [selectedRecord]=\"selected\"></abp-extensible-form>\r\n </form>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button abpClose type=\"button\" class=\"btn btn-secondary\">\r\n {{ 'AbpTenantManagement::Cancel' | abpLocalization }}\r\n </button>\r\n <abp-button iconClass=\"fa fa-check\" (click)=\"save()\" [disabled]=\"tenantForm?.invalid\">{{\r\n 'AbpTenantManagement::Save' | abpLocalization\r\n }}</abp-button>\r\n </ng-template>\r\n </abp-modal>\r\n\r\n <abp-feature-management\r\n *abpReplaceableTemplate=\"{\r\n inputs: {\r\n providerName: { value: 'T' },\r\n providerKey: { value: providerKey },\r\n visible: { value: visibleFeatures, twoWay: true }\r\n },\r\n outputs: { visibleChange: $any(onVisibleFeaturesChange) },\r\n componentKey: featureManagementKey\r\n }\"\r\n [(visible)]=\"visibleFeatures\"\r\n providerName=\"T\"\r\n [providerKey]=\"providerKey\"\r\n >\r\n </abp-feature-management>\r\n</abp-page>\r\n","import { TenantDto } from '@abp/ng.tenant-management/proxy';\r\nimport { EntityAction } from '@abp/ng.components/extensible';\r\nimport { TenantsComponent } from '../components/tenants/tenants.component';\r\n\r\nexport const DEFAULT_TENANTS_ENTITY_ACTIONS = EntityAction.createMany<TenantDto>([\r\n {\r\n text: 'AbpTenantManagement::Edit',\r\n action: data => {\r\n const component = data.getInjected(TenantsComponent);\r\n component.editTenant(data.record.id);\r\n },\r\n permission: 'AbpTenantManagement.Tenants.Update',\r\n },\r\n {\r\n text: 'AbpTenantManagement::Permission:ManageFeatures',\r\n action: data => {\r\n const component = data.getInjected(TenantsComponent);\r\n component.openFeaturesModal(data.record.id);\r\n },\r\n permission: 'AbpTenantManagement.Tenants.ManageFeatures',\r\n },\r\n {\r\n text: 'AbpTenantManagement::Delete',\r\n action: data => {\r\n const component = data.getInjected(TenantsComponent);\r\n component.delete(data.record.id, data.record.name);\r\n },\r\n permission: 'AbpTenantManagement.Tenants.Delete',\r\n },\r\n]);\r\n","import { TenantDto } from '@abp/ng.tenant-management/proxy';\r\nimport { EntityProp, ePropType } from '@abp/ng.components/extensible';\r\n\r\nexport const DEFAULT_TENANTS_ENTITY_PROPS = EntityProp.createMany<TenantDto>([\r\n {\r\n type: ePropType.String,\r\n name: 'name',\r\n displayName: 'AbpTenantManagement::TenantName',\r\n sortable: true,\r\n },\r\n]);\r\n","import { TenantCreateDto, TenantUpdateDto } from '@abp/ng.tenant-management/proxy';\r\nimport { getPasswordValidators } from '@abp/ng.theme.shared';\r\nimport { ePropType, FormProp } from '@abp/ng.components/extensible';\r\nimport { Validators } from '@angular/forms';\r\n\r\nexport const DEFAULT_TENANTS_CREATE_FORM_PROPS = FormProp.createMany<\r\n TenantCreateDto | TenantUpdateDto\r\n>([\r\n {\r\n type: ePropType.String,\r\n name: 'name',\r\n id: 'name',\r\n displayName: 'AbpTenantManagement::TenantName',\r\n validators: () => [Validators.required, Validators.maxLength(256)],\r\n },\r\n {\r\n type: ePropType.Email,\r\n name: 'adminEmailAddress',\r\n displayName: 'AbpTenantManagement::DisplayName:AdminEmailAddress',\r\n id: 'admin-email-address',\r\n validators: () => [Validators.required, Validators.maxLength(256), Validators.email],\r\n },\r\n {\r\n type: ePropType.PasswordInputGroup,\r\n name: 'adminPassword',\r\n displayName: 'AbpTenantManagement::DisplayName:AdminPassword',\r\n id: 'admin-password',\r\n autocomplete: 'new-password',\r\n validators: data => [Validators.required, ...getPasswordValidators({ get: data.getInjected })],\r\n },\r\n]);\r\n\r\nexport const DEFAULT_TENANTS_EDIT_FORM_PROPS = DEFAULT_TENANTS_CREATE_FORM_PROPS.slice(0, 1);\r\n","import { TenantDto } from '@abp/ng.tenant-management/proxy';\r\nimport { ToolbarAction } from '@abp/ng.components/extensible';\r\nimport { TenantsComponent } from '../components/tenants/tenants.component';\r\n\r\nexport const DEFAULT_TENANTS_TOOLBAR_ACTIONS = ToolbarAction.createMany<TenantDto[]>([\r\n {\r\n text: 'AbpTenantManagement::NewTenant',\r\n action: data => {\r\n const component = data.getInjected(TenantsComponent);\r\n component.addTenant();\r\n },\r\n permission: 'AbpTenantManagement.Tenants.Create',\r\n icon: 'fa fa-plus',\r\n },\r\n]);\r\n","import { TenantCreateDto, TenantDto, TenantUpdateDto } from '@abp/ng.tenant-management/proxy';\r\nimport {\r\n CreateFormPropContributorCallback,\r\n EditFormPropContributorCallback,\r\n EntityActionContributorCallback,\r\n EntityPropContributorCallback,\r\n ToolbarActionContributorCallback,\r\n} from '@abp/ng.components/extensible';\r\nimport { InjectionToken } from '@angular/core';\r\nimport { DEFAULT_TENANTS_ENTITY_ACTIONS } from '../defaults/default-tenants-entity-actions';\r\nimport { DEFAULT_TENANTS_ENTITY_PROPS } from '../defaults/default-tenants-entity-props';\r\nimport {\r\n DEFAULT_TENANTS_CREATE_FORM_PROPS,\r\n DEFAULT_TENANTS_EDIT_FORM_PROPS,\r\n} from '../defaults/default-tenants-form-props';\r\nimport { DEFAULT_TENANTS_TOOLBAR_ACTIONS } from '../defaults/default-tenants-toolbar-actions';\r\nimport { eTenantManagementComponents } from '../enums/components';\r\n\r\nexport const DEFAULT_TENANT_MANAGEMENT_ENTITY_ACTIONS = {\r\n [eTenantManagementComponents.Tenants]: DEFAULT_TENANTS_ENTITY_ACTIONS,\r\n};\r\n\r\nexport const DEFAULT_TENANT_MANAGEMENT_TOOLBAR_ACTIONS = {\r\n [eTenantManagementComponents.Tenants]: DEFAULT_TENANTS_TOOLBAR_ACTIONS,\r\n};\r\n\r\nexport const DEFAULT_TENANT_MANAGEMENT_ENTITY_PROPS = {\r\n [eTenantManagementComponents.Tenants]: DEFAULT_TENANTS_ENTITY_PROPS,\r\n};\r\n\r\nexport const DEFAULT_TENANT_MANAGEMENT_CREATE_FORM_PROPS = {\r\n [eTenantManagementComponents.Tenants]: DEFAULT_TENANTS_CREATE_FORM_PROPS,\r\n};\r\n\r\nexport const DEFAULT_TENANT_MANAGEMENT_EDIT_FORM_PROPS = {\r\n [eTenantManagementComponents.Tenants]: DEFAULT_TENANTS_EDIT_FORM_PROPS,\r\n};\r\n\r\nexport const TENANT_MANAGEMENT_ENTITY_ACTION_CONTRIBUTORS =\r\n new InjectionToken<EntityActionContributors>('TENANT_MANAGEMENT_ENTITY_ACTION_CONTRIBUTORS');\r\n\r\nexport const TENANT_MANAGEMENT_TOOLBAR_ACTION_CONTRIBUTORS =\r\n new InjectionToken<ToolbarActionContributors>('TENANT_MANAGEMENT_TOOLBAR_ACTION_CONTRIBUTORS');\r\n\r\nexport const TENANT_MANAGEMENT_ENTITY_PROP_CONTRIBUTORS =\r\n new InjectionToken<EntityPropContributors>('TENANT_MANAGEMENT_ENTITY_PROP_CONTRIBUTORS');\r\n\r\nexport const TENANT_MANAGEMENT_CREATE_FORM_PROP_CONTRIBUTORS =\r\n new InjectionToken<CreateFormPropContributors>('TENANT_MANAGEMENT_CREATE_FORM_PROP_CONTRIBUTORS');\r\n\r\nexport const TENANT_MANAGEMENT_EDIT_FORM_PROP_CONTRIBUTORS =\r\n new InjectionToken<EditFormPropContributors>('TENANT_MANAGEMENT_EDIT_FORM_PROP_CONTRIBUTORS');\r\n\r\n// Fix for TS4023 -> https://github.com/microsoft/TypeScript/issues/9944#issuecomment-254693497\r\ntype EntityActionContributors = Partial<{\r\n [eTenantManagementComponents.Tenants]: EntityActionContributorCallback<TenantDto>[];\r\n}>;\r\ntype ToolbarActionContributors = Partial<{\r\n [eTenantManagementComponents.Tenants]: ToolbarActionContributorCallback<TenantDto[]>[];\r\n}>;\r\ntype EntityPropContributors = Partial<{\r\n [eTenantManagementComponents.Tenants]: EntityPropContributorCallback<TenantDto>[];\r\n}>;\r\ntype CreateFormPropContributors = Partial<{\r\n [eTenantManagementComponents.Tenants]: CreateFormPropContributorCallback<TenantCreateDto>[];\r\n}>;\r\ntype EditFormPropContributors = Partial<{\r\n [eTenantManagementComponents.Tenants]: EditFormPropContributorCallback<TenantUpdateDto>[];\r\n}>;\r\n","import { Injectable, inject } from '@angular/core';\r\n\r\nimport { Observable } from 'rxjs';\r\nimport { map, tap } from 'rxjs/operators';\r\n\r\nimport { ConfigStateService, IAbpGuard } 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.components/extensible';\r\n\r\nimport { eTenantManagementComponents } from '../enums/components';\r\nimport {\r\n DEFAULT_TENANT_MANAGEMENT_CREATE_FORM_PROPS,\r\n DEFAULT_TENANT_MANAGEMENT_EDIT_FORM_PROPS,\r\n DEFAULT_TENANT_MANAGEMENT_ENTITY_ACTIONS,\r\n DEFAULT_TENANT_MANAGEMENT_ENTITY_PROPS,\r\n DEFAULT_TENANT_MANAGEMENT_TOOLBAR_ACTIONS,\r\n TENANT_MANAGEMENT_CREATE_FORM_PROP_CONTRIBUTORS,\r\n TENANT_MANAGEMENT_EDIT_FORM_PROP_CONTRIBUTORS,\r\n TENANT_MANAGEMENT_ENTITY_ACTION_CONTRIBUTORS,\r\n TENANT_MANAGEMENT_ENTITY_PROP_CONTRIBUTORS,\r\n TENANT_MANAGEMENT_TOOLBAR_ACTION_CONTRIBUTORS,\r\n} from '../tokens/extensions.token';\r\n\r\n/**\r\n * @deprecated Use `tenantManagementExtensionsResolver` *function* instead.\r\n */\r\n@Injectable()\r\nexport class TenantManagementExtensionsGuard implements IAbpGuard {\r\n protected readonly configState = inject(ConfigStateService);\r\n protected readonly extensions = inject(ExtensionsService);\r\n\r\n canActivate(): Observable<boolean> {\r\n const config = { optional: true };\r\n\r\n const actionContributors = inject(TENANT_MANAGEMENT_ENTITY_ACTION_CONTRIBUTORS, config) || {};\r\n const toolbarContributors = inject(TENANT_MANAGEMENT_TOOLBAR_ACTION_CONTRIBUTORS, config) || {};\r\n const propContributors = inject(TENANT_MANAGEMENT_ENTITY_PROP_CONTRIBUTORS, config) || {};\r\n const createFormContributors =\r\n inject(TENANT_MANAGEMENT_CREATE_FORM_PROP_CONTRIBUTORS, config) || {};\r\n const editFormContributors =\r\n inject(TENANT_MANAGEMENT_EDIT_FORM_PROP_CONTRIBUTORS, config) || {};\r\n\r\n return getObjectExtensionEntitiesFromStore(this.configState, 'TenantManagement').pipe(\r\n map(entities => ({\r\n [eTenantManagementComponents.Tenants]: entities.Tenant,\r\n })),\r\n mapEntitiesToContributors(this.configState, 'TenantManagement'),\r\n tap(objectExtensionContributors => {\r\n mergeWithDefaultActions(\r\n this.extensions.entityActions,\r\n DEFAULT_TENANT_MANAGEMENT_ENTITY_ACTIONS,\r\n actionContributors,\r\n );\r\n mergeWithDefaultActions(\r\n this.extensions.toolbarActions,\r\n DEFAULT_TENANT_MANAGEMENT_TOOLBAR_ACTIONS,\r\n toolbarContributors,\r\n );\r\n mergeWithDefaultProps(\r\n this.extensions.entityProps,\r\n DEFAULT_TENANT_MANAGEMENT_ENTITY_PROPS,\r\n objectExtensionContributors.prop,\r\n propContributors,\r\n );\r\n mergeWithDefaultProps(\r\n this.extensions.createFormProps,\r\n DEFAULT_TENANT_MANAGEMENT_CREATE_FORM_PROPS,\r\n objectExtensionContributors.createForm,\r\n createFormContributors,\r\n );\r\n mergeWithDefaultProps(\r\n this.extensions.editFormProps,\r\n DEFAULT_TENANT_MANAGEMENT_EDIT_FORM_PROPS,\r\n objectExtensionContributors.editForm,\r\n editFormContributors,\r\n );\r\n }),\r\n map(() => true),\r\n );\r\n }\r\n}\r\n\r\n\r\n","import { inject } from '@angular/core';\r\nimport { map, tap } from 'rxjs';\r\nimport { 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.components/extensible';\r\nimport { eTenantManagementComponents } from '../enums';\r\nimport {\r\n TENANT_MANAGEMENT_ENTITY_ACTION_CONTRIBUTORS,\r\n TENANT_MANAGEMENT_TOOLBAR_ACTION_CONTRIBUTORS,\r\n TENANT_MANAGEMENT_ENTITY_PROP_CONTRIBUTORS,\r\n TENANT_MANAGEMENT_CREATE_FORM_PROP_CONTRIBUTORS,\r\n TENANT_MANAGEMENT_EDIT_FORM_PROP_CONTRIBUTORS,\r\n DEFAULT_TENANT_MANAGEMENT_ENTITY_ACTIONS,\r\n DEFAULT_TENANT_MANAGEMENT_TOOLBAR_ACTIONS,\r\n DEFAULT_TENANT_MANAGEMENT_ENTITY_PROPS,\r\n DEFAULT_TENANT_MANAGEMENT_CREATE_FORM_PROPS,\r\n DEFAULT_TENANT_MANAGEMENT_EDIT_FORM_PROPS,\r\n} from '../tokens';\r\nimport { ResolveFn } from '@angular/router';\r\n\r\nexport const tenantManagementExtensionsResolver: ResolveFn<any> = () => {\r\n const configState = inject(ConfigStateService);\r\n const extensions = inject(ExtensionsService);\r\n\r\n const config = { optional: true };\r\n\r\n const actionContributors = inject(TENANT_MANAGEMENT_ENTITY_ACTION_CONTRIBUTORS, config) || {};\r\n const toolbarContributors = inject(TENANT_MANAGEMENT_TOOLBAR_ACTION_CONTRIBUTORS, config) || {};\r\n const propContributors = inject(TENANT_MANAGEMENT_ENTITY_PROP_CONTRIBUTORS, config) || {};\r\n const createFormContributors =\r\n inject(TENANT_MANAGEMENT_CREATE_FORM_PROP_CONTRIBUTORS, config) || {};\r\n const editFormContributors = inject(TENANT_MANAGEMENT_EDIT_FORM_PROP_CONTRIBUTORS, config) || {};\r\n\r\n return getObjectExtensionEntitiesFromStore(configState, 'TenantManagement').pipe(\r\n map(entities => ({\r\n [eTenantManagementComponents.Tenants]: entities.Tenant,\r\n })),\r\n mapEntitiesToContributors(configState, 'TenantManagement'),\r\n tap(objectExtensionContributors => {\r\n mergeWithDefaultActions(\r\n extensions.entityActions,\r\n DEFAULT_TENANT_MANAGEMENT_ENTITY_ACTIONS,\r\n actionContributors,\r\n );\r\n mergeWithDefaultActions(\r\n extensions.toolbarActions,\r\n DEFAULT_TENANT_MANAGEMENT_TOOLBAR_ACTIONS,\r\n toolbarContributors,\r\n );\r\n mergeWithDefaultProps(\r\n extensions.entityProps,\r\n DEFAULT_TENANT_MANAGEMENT_ENTITY_PROPS,\r\n objectExtensionContributors.prop,\r\n propContributors,\r\n );\r\n mergeWithDefaultProps(\r\n extensions.createFormProps,\r\n DEFAULT_TENANT_MANAGEMENT_CREATE_FORM_PROPS,\r\n objectExtensionContributors.createForm,\r\n createFormContributors,\r\n );\r\n mergeWithDefaultProps(\r\n extensions.editFormProps,\r\n DEFAULT_TENANT_MANAGEMENT_EDIT_FORM_PROPS,\r\n objectExtensionContributors.editForm,\r\n editFormContributors,\r\n );\r\n }),\r\n );\r\n};\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\n\r\nimport {\r\n authGuard,\r\n permissionGuard,\r\n ReplaceableComponents,\r\n ReplaceableRouteContainerComponent,\r\n RouterOutletComponent,\r\n} from '@abp/ng.core';\r\n\r\nimport { TenantsComponent } from './components/tenants/tenants.component';\r\nimport { eTenantManagementComponents } from './enums/components';\r\nimport { tenantManagementExtensionsResolver } from './resolvers';\r\n\r\nconst routes: Routes = [\r\n { path: '', redirectTo: 'tenants', pathMatch: 'full' },\r\n {\r\n path: '',\r\n component: RouterOutletComponent,\r\n canActivate: [authGuard, permissionGuard],\r\n resolve: [tenantManagementExtensionsResolver],\r\n children: [\r\n {\r\n path: 'tenants',\r\n component: ReplaceableRouteContainerComponent,\r\n data: {\r\n requiredPolicy: 'AbpTenantManagement.Tenants',\r\n replaceableComponent: {\r\n key: eTenantManagementComponents.Tenants,\r\n defaultComponent: TenantsComponent,\r\n } as ReplaceableComponents.RouteData<TenantsComponent>,\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 TenantManagementRoutingModule {}\r\n","import { CoreModule, LazyModuleFactory } from '@abp/ng.core';\r\nimport { FeatureManagementModule } from '@abp/ng.feature-management';\r\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\r\nimport { ExtensibleModule } from '@abp/ng.components/extensible';\r\nimport { ModuleWithProviders, NgModule, NgModuleFactory } from '@angular/core';\r\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\r\nimport { TenantsComponent } from './components/tenants/tenants.component';\r\nimport { TenantManagementExtensionsGuard } from './guards/extensions.guard';\r\nimport { TenantManagementConfigOptions } from './models/config-options';\r\nimport { TenantManagementRoutingModule } from './tenant-management-routing.module';\r\nimport {\r\n TENANT_MANAGEMENT_CREATE_FORM_PROP_CONTRIBUTORS,\r\n TENANT_MANAGEMENT_EDIT_FORM_PROP_CONTRIBUTORS,\r\n TENANT_MANAGEMENT_ENTITY_ACTION_CONTRIBUTORS,\r\n TENANT_MANAGEMENT_ENTITY_PROP_CONTRIBUTORS,\r\n TENANT_MANAGEMENT_TOOLBAR_ACTION_CONTRIBUTORS,\r\n} from './tokens/extensions.token';\r\nimport { PageModule } from '@abp/ng.components/page';\r\n\r\n@NgModule({\r\n declarations: [TenantsComponent],\r\n exports: [TenantsComponent],\r\n imports: [\r\n TenantManagementRoutingModule,\r\n NgxValidateCoreModule,\r\n CoreModule,\r\n ThemeSharedModule,\r\n NgbDropdownModule,\r\n FeatureManagementModule,\r\n ExtensibleModule,\r\n PageModule,\r\n ],\r\n})\r\nexport class TenantManagementModule {\r\n static forChild(\r\n options: TenantManagementConfigOptions = {},\r\n ): ModuleWithProviders<TenantManagementModule> {\r\n return {\r\n ngModule: TenantManagementModule,\r\n providers: [\r\n {\r\n provide: TENANT_MANAGEMENT_ENTITY_ACTION_CONTRIBUTORS,\r\n useValue: options.entityActionContributors,\r\n },\r\n {\r\n provide: TENANT_MANAGEMENT_TOOLBAR_ACTION_CONTRIBUTORS,\r\n useValue: options.toolbarActionContributors,\r\n },\r\n {\r\n provide: TENANT_MANAGEMENT_ENTITY_PROP_CONTRIBUTORS,\r\n useValue: options.entityPropContributors,\r\n },\r\n {\r\n provide: TENANT_MANAGEMENT_CREATE_FORM_PROP_CONTRIBUTORS,\r\n useValue: options.createFormPropContributors,\r\n },\r\n {\r\n provide: TENANT_MANAGEMENT_EDIT_FORM_PROP_CONTRIBUTORS,\r\n useValue: options.editFormPropContributors,\r\n },\r\n TenantManagementExtensionsGuard,\r\n ],\r\n };\r\n }\r\n\r\n static forLazy(\r\n options: TenantManagementConfigOptions = {},\r\n ): NgModuleFactory<TenantManagementModule> {\r\n return new LazyModuleFactory(TenantManagementModule.forChild(options));\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["map","tap"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"abp-ng.tenant-management.mjs","sources":["../../../../packages/tenant-management/src/lib/components/tenants/tenants.component.ts","../../../../packages/tenant-management/src/lib/components/tenants/tenants.component.html","../../../../packages/tenant-management/src/lib/defaults/default-tenants-entity-actions.ts","../../../../packages/tenant-management/src/lib/defaults/default-tenants-entity-props.ts","../../../../packages/tenant-management/src/lib/defaults/default-tenants-form-props.ts","../../../../packages/tenant-management/src/lib/defaults/default-tenants-toolbar-actions.ts","../../../../packages/tenant-management/src/lib/tokens/extensions.token.ts","../../../../packages/tenant-management/src/lib/guards/extensions.guard.ts","../../../../packages/tenant-management/src/lib/resolvers/extensions.resolver.ts","../../../../packages/tenant-management/src/lib/tenant-management-routing.module.ts","../../../../packages/tenant-management/src/lib/tenant-management.module.ts","../../../../packages/tenant-management/src/abp-ng.tenant-management.ts"],"sourcesContent":["import { ListService, PagedResultDto } from '@abp/ng.core';\r\nimport { eFeatureManagementComponents } from '@abp/ng.feature-management';\r\nimport { GetTenantsInput, TenantDto, TenantService } from '@abp/ng.tenant-management/proxy';\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.components/extensible';\r\nimport { Component, Injector, OnInit } from '@angular/core';\r\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { eTenantManagementComponents } from '../../enums/components';\r\n\r\n@Component({\r\n selector: 'abp-tenants',\r\n templateUrl: './tenants.component.html',\r\n providers: [\r\n ListService,\r\n {\r\n provide: EXTENSIONS_IDENTIFIER,\r\n useValue: eTenantManagementComponents.Tenants,\r\n },\r\n ],\r\n})\r\nexport class TenantsComponent implements OnInit {\r\n data: PagedResultDto<TenantDto> = { items: [], totalCount: 0 };\r\n\r\n selected!: TenantDto;\r\n\r\n tenantForm!: UntypedFormGroup;\r\n\r\n isModalVisible!: boolean;\r\n\r\n visibleFeatures = false;\r\n\r\n providerKey!: string;\r\n\r\n modalBusy = false;\r\n\r\n featureManagementKey = eFeatureManagementComponents.FeatureManagement;\r\n\r\n get hasSelectedTenant(): boolean {\r\n return Boolean(this.selected.id);\r\n }\r\n\r\n onVisibleFeaturesChange = (value: boolean) => {\r\n this.visibleFeatures = value;\r\n };\r\n\r\n constructor(\r\n public readonly list: ListService<GetTenantsInput>,\r\n private injector: Injector,\r\n private confirmationService: ConfirmationService,\r\n private service: TenantService,\r\n private toasterService: ToasterService,\r\n private fb: UntypedFormBuilder,\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.hookToQuery();\r\n }\r\n\r\n private createTenantForm() {\r\n const data = new FormPropData(this.injector, this.selected);\r\n this.tenantForm = generateFormFromProps(data);\r\n }\r\n\r\n addTenant() {\r\n this.selected = {} as TenantDto;\r\n this.createTenantForm();\r\n this.isModalVisible = true;\r\n }\r\n\r\n editTenant(id: string) {\r\n this.service.get(id).subscribe(res => {\r\n this.selected = res;\r\n this.createTenantForm();\r\n this.isModalVisible = true;\r\n });\r\n }\r\n\r\n save() {\r\n if (!this.tenantForm.valid || this.modalBusy) return;\r\n this.modalBusy = true;\r\n\r\n const { id } = this.selected;\r\n\r\n (id\r\n ? this.service.update(id, { ...this.selected, ...this.tenantForm.value })\r\n : this.service.create(this.tenantForm.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(\r\n 'AbpTenantManagement::TenantDeletionConfirmationMessage',\r\n 'AbpTenantManagement::AreYouSure',\r\n {\r\n messageLocalizationParams: [name],\r\n },\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 hookToQuery() {\r\n this.list\r\n .hookToQuery(query => this.service.getList(query))\r\n .subscribe(res => {\r\n this.data = res;\r\n });\r\n }\r\n\r\n onSharedDatabaseChange(value: boolean) {\r\n if (!value) {\r\n setTimeout(() => {\r\n const defaultConnectionString = document.getElementById(\r\n 'defaultConnectionString',\r\n ) as HTMLInputElement;\r\n if (defaultConnectionString) {\r\n defaultConnectionString.focus();\r\n }\r\n }, 0);\r\n }\r\n }\r\n\r\n openFeaturesModal(providerKey: string) {\r\n this.providerKey = providerKey;\r\n setTimeout(() => {\r\n this.visibleFeatures = true;\r\n }, 0);\r\n }\r\n\r\n sort(data: any) {\r\n const { prop, dir } = data.sorts[0];\r\n this.list.sortKey = prop;\r\n this.list.sortOrder = dir;\r\n }\r\n}\r\n","<abp-page [title]=\"'AbpTenantManagement::Tenants' | abpLocalization\" [toolbar]=\"data.items\">\r\n\r\n\r\n <div id=\"wrapper\" class=\"card\">\r\n <div class=\"card-body\">\r\n <div id=\"data-tables-table-filter\" class=\"data-tables-filter mb-3\">\r\n <div class=\"input-group\">\r\n <input\r\n type=\"search\"\r\n class=\"form-control\"\r\n [placeholder]=\"'AbpUi::PagerSearch' | abpLocalization\"\r\n [(ngModel)]=\"list.filter\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <abp-extensible-table\r\n [data]=\"data.items || []\"\r\n [recordsTotal]=\"data.totalCount || 0\"\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>\r\n {{\r\n (selected?.id ? 'AbpTenantManagement::Edit' : 'AbpTenantManagement::NewTenant')\r\n | abpLocalization\r\n }}\r\n </h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <form [formGroup]=\"tenantForm\" (ngSubmit)=\"save()\" [validateOnSubmit]=\"true\">\r\n <abp-extensible-form [selectedRecord]=\"selected\"></abp-extensible-form>\r\n </form>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button abpClose type=\"button\" class=\"btn btn-outline-primary\">\r\n {{ 'AbpTenantManagement::Cancel' | abpLocalization }}\r\n </button>\r\n <abp-button iconClass=\"fa fa-check\" (click)=\"save()\" [disabled]=\"tenantForm?.invalid\">{{\r\n 'AbpTenantManagement::Save' | abpLocalization\r\n }}</abp-button>\r\n </ng-template>\r\n </abp-modal>\r\n\r\n <abp-feature-management\r\n *abpReplaceableTemplate=\"{\r\n inputs: {\r\n providerName: { value: 'T' },\r\n providerKey: { value: providerKey },\r\n visible: { value: visibleFeatures, twoWay: true }\r\n },\r\n outputs: { visibleChange: $any(onVisibleFeaturesChange) },\r\n componentKey: featureManagementKey\r\n }\"\r\n [(visible)]=\"visibleFeatures\"\r\n providerName=\"T\"\r\n [providerKey]=\"providerKey\"\r\n >\r\n </abp-feature-management>\r\n</abp-page>\r\n","import { TenantDto } from '@abp/ng.tenant-management/proxy';\r\nimport { EntityAction } from '@abp/ng.components/extensible';\r\nimport { TenantsComponent } from '../components/tenants/tenants.component';\r\n\r\nexport const DEFAULT_TENANTS_ENTITY_ACTIONS = EntityAction.createMany<TenantDto>([\r\n {\r\n text: 'AbpTenantManagement::Edit',\r\n action: data => {\r\n const component = data.getInjected(TenantsComponent);\r\n component.editTenant(data.record.id);\r\n },\r\n permission: 'AbpTenantManagement.Tenants.Update',\r\n },\r\n {\r\n text: 'AbpTenantManagement::Permission:ManageFeatures',\r\n action: data => {\r\n const component = data.getInjected(TenantsComponent);\r\n component.openFeaturesModal(data.record.id);\r\n },\r\n permission: 'AbpTenantManagement.Tenants.ManageFeatures',\r\n },\r\n {\r\n text: 'AbpTenantManagement::Delete',\r\n action: data => {\r\n const component = data.getInjected(TenantsComponent);\r\n component.delete(data.record.id, data.record.name);\r\n },\r\n permission: 'AbpTenantManagement.Tenants.Delete',\r\n },\r\n]);\r\n","import { TenantDto } from '@abp/ng.tenant-management/proxy';\r\nimport { EntityProp, ePropType } from '@abp/ng.components/extensible';\r\n\r\nexport const DEFAULT_TENANTS_ENTITY_PROPS = EntityProp.createMany<TenantDto>([\r\n {\r\n type: ePropType.String,\r\n name: 'name',\r\n displayName: 'AbpTenantManagement::TenantName',\r\n sortable: true,\r\n },\r\n]);\r\n","import { TenantCreateDto, TenantUpdateDto } from '@abp/ng.tenant-management/proxy';\r\nimport { getPasswordValidators } from '@abp/ng.theme.shared';\r\nimport { ePropType, FormProp } from '@abp/ng.components/extensible';\r\nimport { Validators } from '@angular/forms';\r\n\r\nexport const DEFAULT_TENANTS_CREATE_FORM_PROPS = FormProp.createMany<\r\n TenantCreateDto | TenantUpdateDto\r\n>([\r\n {\r\n type: ePropType.String,\r\n name: 'name',\r\n id: 'name',\r\n displayName: 'AbpTenantManagement::TenantName',\r\n validators: () => [Validators.required, Validators.maxLength(256)],\r\n },\r\n {\r\n type: ePropType.Email,\r\n name: 'adminEmailAddress',\r\n displayName: 'AbpTenantManagement::DisplayName:AdminEmailAddress',\r\n id: 'admin-email-address',\r\n validators: () => [Validators.required, Validators.maxLength(256), Validators.email],\r\n },\r\n {\r\n type: ePropType.PasswordInputGroup,\r\n name: 'adminPassword',\r\n displayName: 'AbpTenantManagement::DisplayName:AdminPassword',\r\n id: 'admin-password',\r\n autocomplete: 'new-password',\r\n validators: data => [Validators.required, ...getPasswordValidators({ get: data.getInjected })],\r\n },\r\n]);\r\n\r\nexport const DEFAULT_TENANTS_EDIT_FORM_PROPS = DEFAULT_TENANTS_CREATE_FORM_PROPS.slice(0, 1);\r\n","import { TenantDto } from '@abp/ng.tenant-management/proxy';\r\nimport { ToolbarAction } from '@abp/ng.components/extensible';\r\nimport { TenantsComponent } from '../components/tenants/tenants.component';\r\n\r\nexport const DEFAULT_TENANTS_TOOLBAR_ACTIONS = ToolbarAction.createMany<TenantDto[]>([\r\n {\r\n text: 'AbpTenantManagement::NewTenant',\r\n action: data => {\r\n const component = data.getInjected(TenantsComponent);\r\n component.addTenant();\r\n },\r\n permission: 'AbpTenantManagement.Tenants.Create',\r\n icon: 'fa fa-plus',\r\n },\r\n]);\r\n","import { TenantCreateDto, TenantDto, TenantUpdateDto } from '@abp/ng.tenant-management/proxy';\r\nimport {\r\n CreateFormPropContributorCallback,\r\n EditFormPropContributorCallback,\r\n EntityActionContributorCallback,\r\n EntityPropContributorCallback,\r\n ToolbarActionContributorCallback,\r\n} from '@abp/ng.components/extensible';\r\nimport { InjectionToken } from '@angular/core';\r\nimport { DEFAULT_TENANTS_ENTITY_ACTIONS } from '../defaults/default-tenants-entity-actions';\r\nimport { DEFAULT_TENANTS_ENTITY_PROPS } from '../defaults/default-tenants-entity-props';\r\nimport {\r\n DEFAULT_TENANTS_CREATE_FORM_PROPS,\r\n DEFAULT_TENANTS_EDIT_FORM_PROPS,\r\n} from '../defaults/default-tenants-form-props';\r\nimport { DEFAULT_TENANTS_TOOLBAR_ACTIONS } from '../defaults/default-tenants-toolbar-actions';\r\nimport { eTenantManagementComponents } from '../enums/components';\r\n\r\nexport const DEFAULT_TENANT_MANAGEMENT_ENTITY_ACTIONS = {\r\n [eTenantManagementComponents.Tenants]: DEFAULT_TENANTS_ENTITY_ACTIONS,\r\n};\r\n\r\nexport const DEFAULT_TENANT_MANAGEMENT_TOOLBAR_ACTIONS = {\r\n [eTenantManagementComponents.Tenants]: DEFAULT_TENANTS_TOOLBAR_ACTIONS,\r\n};\r\n\r\nexport const DEFAULT_TENANT_MANAGEMENT_ENTITY_PROPS = {\r\n [eTenantManagementComponents.Tenants]: DEFAULT_TENANTS_ENTITY_PROPS,\r\n};\r\n\r\nexport const DEFAULT_TENANT_MANAGEMENT_CREATE_FORM_PROPS = {\r\n [eTenantManagementComponents.Tenants]: DEFAULT_TENANTS_CREATE_FORM_PROPS,\r\n};\r\n\r\nexport const DEFAULT_TENANT_MANAGEMENT_EDIT_FORM_PROPS = {\r\n [eTenantManagementComponents.Tenants]: DEFAULT_TENANTS_EDIT_FORM_PROPS,\r\n};\r\n\r\nexport const TENANT_MANAGEMENT_ENTITY_ACTION_CONTRIBUTORS =\r\n new InjectionToken<EntityActionContributors>('TENANT_MANAGEMENT_ENTITY_ACTION_CONTRIBUTORS');\r\n\r\nexport const TENANT_MANAGEMENT_TOOLBAR_ACTION_CONTRIBUTORS =\r\n new InjectionToken<ToolbarActionContributors>('TENANT_MANAGEMENT_TOOLBAR_ACTION_CONTRIBUTORS');\r\n\r\nexport const TENANT_MANAGEMENT_ENTITY_PROP_CONTRIBUTORS =\r\n new InjectionToken<EntityPropContributors>('TENANT_MANAGEMENT_ENTITY_PROP_CONTRIBUTORS');\r\n\r\nexport const TENANT_MANAGEMENT_CREATE_FORM_PROP_CONTRIBUTORS =\r\n new InjectionToken<CreateFormPropContributors>('TENANT_MANAGEMENT_CREATE_FORM_PROP_CONTRIBUTORS');\r\n\r\nexport const TENANT_MANAGEMENT_EDIT_FORM_PROP_CONTRIBUTORS =\r\n new InjectionToken<EditFormPropContributors>('TENANT_MANAGEMENT_EDIT_FORM_PROP_CONTRIBUTORS');\r\n\r\n// Fix for TS4023 -> https://github.com/microsoft/TypeScript/issues/9944#issuecomment-254693497\r\ntype EntityActionContributors = Partial<{\r\n [eTenantManagementComponents.Tenants]: EntityActionContributorCallback<TenantDto>[];\r\n}>;\r\ntype ToolbarActionContributors = Partial<{\r\n [eTenantManagementComponents.Tenants]: ToolbarActionContributorCallback<TenantDto[]>[];\r\n}>;\r\ntype EntityPropContributors = Partial<{\r\n [eTenantManagementComponents.Tenants]: EntityPropContributorCallback<TenantDto>[];\r\n}>;\r\ntype CreateFormPropContributors = Partial<{\r\n [eTenantManagementComponents.Tenants]: CreateFormPropContributorCallback<TenantCreateDto>[];\r\n}>;\r\ntype EditFormPropContributors = Partial<{\r\n [eTenantManagementComponents.Tenants]: EditFormPropContributorCallback<TenantUpdateDto>[];\r\n}>;\r\n","import { Injectable, inject } from '@angular/core';\r\n\r\nimport { Observable } from 'rxjs';\r\nimport { map, tap } from 'rxjs/operators';\r\n\r\nimport { ConfigStateService, IAbpGuard } 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.components/extensible';\r\n\r\nimport { eTenantManagementComponents } from '../enums/components';\r\nimport {\r\n DEFAULT_TENANT_MANAGEMENT_CREATE_FORM_PROPS,\r\n DEFAULT_TENANT_MANAGEMENT_EDIT_FORM_PROPS,\r\n DEFAULT_TENANT_MANAGEMENT_ENTITY_ACTIONS,\r\n DEFAULT_TENANT_MANAGEMENT_ENTITY_PROPS,\r\n DEFAULT_TENANT_MANAGEMENT_TOOLBAR_ACTIONS,\r\n TENANT_MANAGEMENT_CREATE_FORM_PROP_CONTRIBUTORS,\r\n TENANT_MANAGEMENT_EDIT_FORM_PROP_CONTRIBUTORS,\r\n TENANT_MANAGEMENT_ENTITY_ACTION_CONTRIBUTORS,\r\n TENANT_MANAGEMENT_ENTITY_PROP_CONTRIBUTORS,\r\n TENANT_MANAGEMENT_TOOLBAR_ACTION_CONTRIBUTORS,\r\n} from '../tokens/extensions.token';\r\n\r\n/**\r\n * @deprecated Use `tenantManagementExtensionsResolver` *function* instead.\r\n */\r\n@Injectable()\r\nexport class TenantManagementExtensionsGuard implements IAbpGuard {\r\n protected readonly configState = inject(ConfigStateService);\r\n protected readonly extensions = inject(ExtensionsService);\r\n\r\n canActivate(): Observable<boolean> {\r\n const config = { optional: true };\r\n\r\n const actionContributors = inject(TENANT_MANAGEMENT_ENTITY_ACTION_CONTRIBUTORS, config) || {};\r\n const toolbarContributors = inject(TENANT_MANAGEMENT_TOOLBAR_ACTION_CONTRIBUTORS, config) || {};\r\n const propContributors = inject(TENANT_MANAGEMENT_ENTITY_PROP_CONTRIBUTORS, config) || {};\r\n const createFormContributors =\r\n inject(TENANT_MANAGEMENT_CREATE_FORM_PROP_CONTRIBUTORS, config) || {};\r\n const editFormContributors =\r\n inject(TENANT_MANAGEMENT_EDIT_FORM_PROP_CONTRIBUTORS, config) || {};\r\n\r\n return getObjectExtensionEntitiesFromStore(this.configState, 'TenantManagement').pipe(\r\n map(entities => ({\r\n [eTenantManagementComponents.Tenants]: entities.Tenant,\r\n })),\r\n mapEntitiesToContributors(this.configState, 'TenantManagement'),\r\n tap(objectExtensionContributors => {\r\n mergeWithDefaultActions(\r\n this.extensions.entityActions,\r\n DEFAULT_TENANT_MANAGEMENT_ENTITY_ACTIONS,\r\n actionContributors,\r\n );\r\n mergeWithDefaultActions(\r\n this.extensions.toolbarActions,\r\n DEFAULT_TENANT_MANAGEMENT_TOOLBAR_ACTIONS,\r\n toolbarContributors,\r\n );\r\n mergeWithDefaultProps(\r\n this.extensions.entityProps,\r\n DEFAULT_TENANT_MANAGEMENT_ENTITY_PROPS,\r\n objectExtensionContributors.prop,\r\n propContributors,\r\n );\r\n mergeWithDefaultProps(\r\n this.extensions.createFormProps,\r\n DEFAULT_TENANT_MANAGEMENT_CREATE_FORM_PROPS,\r\n objectExtensionContributors.createForm,\r\n createFormContributors,\r\n );\r\n mergeWithDefaultProps(\r\n this.extensions.editFormProps,\r\n DEFAULT_TENANT_MANAGEMENT_EDIT_FORM_PROPS,\r\n objectExtensionContributors.editForm,\r\n editFormContributors,\r\n );\r\n }),\r\n map(() => true),\r\n );\r\n }\r\n}\r\n\r\n\r\n","import { inject } from '@angular/core';\r\nimport { map, tap } from 'rxjs';\r\nimport { 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.components/extensible';\r\nimport { eTenantManagementComponents } from '../enums';\r\nimport {\r\n TENANT_MANAGEMENT_ENTITY_ACTION_CONTRIBUTORS,\r\n TENANT_MANAGEMENT_TOOLBAR_ACTION_CONTRIBUTORS,\r\n TENANT_MANAGEMENT_ENTITY_PROP_CONTRIBUTORS,\r\n TENANT_MANAGEMENT_CREATE_FORM_PROP_CONTRIBUTORS,\r\n TENANT_MANAGEMENT_EDIT_FORM_PROP_CONTRIBUTORS,\r\n DEFAULT_TENANT_MANAGEMENT_ENTITY_ACTIONS,\r\n DEFAULT_TENANT_MANAGEMENT_TOOLBAR_ACTIONS,\r\n DEFAULT_TENANT_MANAGEMENT_ENTITY_PROPS,\r\n DEFAULT_TENANT_MANAGEMENT_CREATE_FORM_PROPS,\r\n DEFAULT_TENANT_MANAGEMENT_EDIT_FORM_PROPS,\r\n} from '../tokens';\r\nimport { ResolveFn } from '@angular/router';\r\n\r\nexport const tenantManagementExtensionsResolver: ResolveFn<any> = () => {\r\n const configState = inject(ConfigStateService);\r\n const extensions = inject(ExtensionsService);\r\n\r\n const config = { optional: true };\r\n\r\n const actionContributors = inject(TENANT_MANAGEMENT_ENTITY_ACTION_CONTRIBUTORS, config) || {};\r\n const toolbarContributors = inject(TENANT_MANAGEMENT_TOOLBAR_ACTION_CONTRIBUTORS, config) || {};\r\n const propContributors = inject(TENANT_MANAGEMENT_ENTITY_PROP_CONTRIBUTORS, config) || {};\r\n const createFormContributors =\r\n inject(TENANT_MANAGEMENT_CREATE_FORM_PROP_CONTRIBUTORS, config) || {};\r\n const editFormContributors = inject(TENANT_MANAGEMENT_EDIT_FORM_PROP_CONTRIBUTORS, config) || {};\r\n\r\n return getObjectExtensionEntitiesFromStore(configState, 'TenantManagement').pipe(\r\n map(entities => ({\r\n [eTenantManagementComponents.Tenants]: entities.Tenant,\r\n })),\r\n mapEntitiesToContributors(configState, 'TenantManagement'),\r\n tap(objectExtensionContributors => {\r\n mergeWithDefaultActions(\r\n extensions.entityActions,\r\n DEFAULT_TENANT_MANAGEMENT_ENTITY_ACTIONS,\r\n actionContributors,\r\n );\r\n mergeWithDefaultActions(\r\n extensions.toolbarActions,\r\n DEFAULT_TENANT_MANAGEMENT_TOOLBAR_ACTIONS,\r\n toolbarContributors,\r\n );\r\n mergeWithDefaultProps(\r\n extensions.entityProps,\r\n DEFAULT_TENANT_MANAGEMENT_ENTITY_PROPS,\r\n objectExtensionContributors.prop,\r\n propContributors,\r\n );\r\n mergeWithDefaultProps(\r\n extensions.createFormProps,\r\n DEFAULT_TENANT_MANAGEMENT_CREATE_FORM_PROPS,\r\n objectExtensionContributors.createForm,\r\n createFormContributors,\r\n );\r\n mergeWithDefaultProps(\r\n extensions.editFormProps,\r\n DEFAULT_TENANT_MANAGEMENT_EDIT_FORM_PROPS,\r\n objectExtensionContributors.editForm,\r\n editFormContributors,\r\n );\r\n }),\r\n );\r\n};\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\n\r\nimport {\r\n authGuard,\r\n permissionGuard,\r\n ReplaceableComponents,\r\n ReplaceableRouteContainerComponent,\r\n RouterOutletComponent,\r\n} from '@abp/ng.core';\r\n\r\nimport { TenantsComponent } from './components/tenants/tenants.component';\r\nimport { eTenantManagementComponents } from './enums/components';\r\nimport { tenantManagementExtensionsResolver } from './resolvers';\r\n\r\nconst routes: Routes = [\r\n { path: '', redirectTo: 'tenants', pathMatch: 'full' },\r\n {\r\n path: '',\r\n component: RouterOutletComponent,\r\n canActivate: [authGuard, permissionGuard],\r\n resolve: [tenantManagementExtensionsResolver],\r\n children: [\r\n {\r\n path: 'tenants',\r\n component: ReplaceableRouteContainerComponent,\r\n data: {\r\n requiredPolicy: 'AbpTenantManagement.Tenants',\r\n replaceableComponent: {\r\n key: eTenantManagementComponents.Tenants,\r\n defaultComponent: TenantsComponent,\r\n } as ReplaceableComponents.RouteData<TenantsComponent>,\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 TenantManagementRoutingModule {}\r\n","import { CoreModule, LazyModuleFactory } from '@abp/ng.core';\r\nimport { FeatureManagementModule } from '@abp/ng.feature-management';\r\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\r\nimport { ExtensibleModule } from '@abp/ng.components/extensible';\r\nimport { ModuleWithProviders, NgModule, NgModuleFactory } from '@angular/core';\r\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\r\nimport { TenantsComponent } from './components/tenants/tenants.component';\r\nimport { TenantManagementExtensionsGuard } from './guards/extensions.guard';\r\nimport { TenantManagementConfigOptions } from './models/config-options';\r\nimport { TenantManagementRoutingModule } from './tenant-management-routing.module';\r\nimport {\r\n TENANT_MANAGEMENT_CREATE_FORM_PROP_CONTRIBUTORS,\r\n TENANT_MANAGEMENT_EDIT_FORM_PROP_CONTRIBUTORS,\r\n TENANT_MANAGEMENT_ENTITY_ACTION_CONTRIBUTORS,\r\n TENANT_MANAGEMENT_ENTITY_PROP_CONTRIBUTORS,\r\n TENANT_MANAGEMENT_TOOLBAR_ACTION_CONTRIBUTORS,\r\n} from './tokens/extensions.token';\r\nimport { PageModule } from '@abp/ng.components/page';\r\n\r\n@NgModule({\r\n declarations: [TenantsComponent],\r\n exports: [TenantsComponent],\r\n imports: [\r\n TenantManagementRoutingModule,\r\n NgxValidateCoreModule,\r\n CoreModule,\r\n ThemeSharedModule,\r\n NgbDropdownModule,\r\n FeatureManagementModule,\r\n ExtensibleModule,\r\n PageModule,\r\n ],\r\n})\r\nexport class TenantManagementModule {\r\n static forChild(\r\n options: TenantManagementConfigOptions = {},\r\n ): ModuleWithProviders<TenantManagementModule> {\r\n return {\r\n ngModule: TenantManagementModule,\r\n providers: [\r\n {\r\n provide: TENANT_MANAGEMENT_ENTITY_ACTION_CONTRIBUTORS,\r\n useValue: options.entityActionContributors,\r\n },\r\n {\r\n provide: TENANT_MANAGEMENT_TOOLBAR_ACTION_CONTRIBUTORS,\r\n useValue: options.toolbarActionContributors,\r\n },\r\n {\r\n provide: TENANT_MANAGEMENT_ENTITY_PROP_CONTRIBUTORS,\r\n useValue: options.entityPropContributors,\r\n },\r\n {\r\n provide: TENANT_MANAGEMENT_CREATE_FORM_PROP_CONTRIBUTORS,\r\n useValue: options.createFormPropContributors,\r\n },\r\n {\r\n provide: TENANT_MANAGEMENT_EDIT_FORM_PROP_CONTRIBUTORS,\r\n useValue: options.editFormPropContributors,\r\n },\r\n TenantManagementExtensionsGuard,\r\n ],\r\n };\r\n }\r\n\r\n static forLazy(\r\n options: TenantManagementConfigOptions = {},\r\n ): NgModuleFactory<TenantManagementModule> {\r\n return new LazyModuleFactory(TenantManagementModule.forChild(options));\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["map","tap"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@abp/ng.tenant-management",
|
|
3
|
-
"version": "8.0.
|
|
3
|
+
"version": "8.0.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.feature-management": "~8.0.
|
|
11
|
-
"@abp/ng.theme.shared": "~8.0.
|
|
10
|
+
"@abp/ng.feature-management": "~8.0.4",
|
|
11
|
+
"@abp/ng.theme.shared": "~8.0.4",
|
|
12
12
|
"tslib": "^2.0.0"
|
|
13
13
|
},
|
|
14
14
|
"publishConfig": {
|