@abp/ng.theme.shared 7.3.2 → 7.4.0-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/esm2022/extensions/lib/components/extensible-table/extensible-table.component.mjs +4 -1
  2. package/esm2022/extensions/lib/components/grid-actions/grid-actions.component.mjs +3 -3
  3. package/esm2022/extensions/lib/models/actions.mjs +4 -2
  4. package/esm2022/extensions/lib/models/entity-actions.mjs +3 -1
  5. package/esm2022/lib/components/index.mjs +2 -1
  6. package/esm2022/lib/components/internet-connection-status/internet-connection-status.component.mjs +29 -0
  7. package/esm2022/lib/constants/default-errors.mjs +52 -0
  8. package/esm2022/lib/handlers/error.handler.mjs +43 -251
  9. package/esm2022/lib/models/common.mjs +1 -1
  10. package/esm2022/lib/models/nav-item.mjs +1 -1
  11. package/esm2022/lib/providers/error-handlers.provider.mjs +28 -0
  12. package/esm2022/lib/providers/index.mjs +2 -1
  13. package/esm2022/lib/services/abp-format-error-handler.service.mjs +46 -0
  14. package/esm2022/lib/services/create-error-component.service.mjs +77 -0
  15. package/esm2022/lib/services/index.mjs +7 -1
  16. package/esm2022/lib/services/router-error-handler.service.mjs +45 -0
  17. package/esm2022/lib/services/status-code-error-handler.service.mjs +85 -0
  18. package/esm2022/lib/services/tenant-resolve-error-handler.service.mjs +30 -0
  19. package/esm2022/lib/services/unknown-status-code-error-handler.service.mjs +37 -0
  20. package/esm2022/lib/theme-shared.module.mjs +5 -4
  21. package/esm2022/lib/tokens/http-error.token.mjs +2 -1
  22. package/esm2022/lib/utils/error.utils.mjs +25 -0
  23. package/esm2022/lib/utils/index.mjs +2 -1
  24. package/esm2022/public-api.mjs +2 -1
  25. package/extensions/lib/models/actions.d.ts +3 -1
  26. package/extensions/lib/models/entity-actions.d.ts +2 -0
  27. package/fesm2022/abp-ng.theme.shared-extensions.mjs +10 -3
  28. package/fesm2022/abp-ng.theme.shared-extensions.mjs.map +1 -1
  29. package/fesm2022/abp-ng.theme.shared.mjs +708 -515
  30. package/fesm2022/abp-ng.theme.shared.mjs.map +1 -1
  31. package/lib/components/index.d.ts +1 -0
  32. package/lib/components/internet-connection-status/internet-connection-status.component.d.ts +8 -0
  33. package/lib/constants/default-errors.d.ts +51 -0
  34. package/lib/handlers/error.handler.d.ts +11 -69
  35. package/lib/models/common.d.ts +7 -2
  36. package/lib/models/nav-item.d.ts +9 -0
  37. package/lib/providers/error-handlers.provider.d.ts +2 -0
  38. package/lib/providers/index.d.ts +1 -0
  39. package/lib/services/abp-format-error-handler.service.d.ts +13 -0
  40. package/lib/services/create-error-component.service.d.ts +20 -0
  41. package/lib/services/index.d.ts +6 -0
  42. package/lib/services/router-error-handler.service.d.ts +12 -0
  43. package/lib/services/status-code-error-handler.service.d.ts +21 -0
  44. package/lib/services/tenant-resolve-error-handler.service.d.ts +13 -0
  45. package/lib/services/unknown-status-code-error-handler.service.d.ts +16 -0
  46. package/lib/tokens/http-error.token.d.ts +2 -1
  47. package/lib/utils/error.utils.d.ts +8 -0
  48. package/lib/utils/index.d.ts +1 -0
  49. package/package.json +3 -3
  50. package/public-api.d.ts +1 -0
@@ -3,4 +3,10 @@ export * from './nav-items.service';
3
3
  export * from './page-alert.service';
4
4
  export * from './toaster.service';
5
5
  export * from './user-menu.service';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90aGVtZS1zaGFyZWQvc3JjL2xpYi9zZXJ2aWNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMscUJBQXFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NvbmZpcm1hdGlvbi5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9uYXYtaXRlbXMuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcGFnZS1hbGVydC5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi90b2FzdGVyLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3VzZXItbWVudS5zZXJ2aWNlJztcclxuIl19
6
+ export * from './create-error-component.service';
7
+ export * from './abp-format-error-handler.service';
8
+ export * from './tenant-resolve-error-handler.service';
9
+ export * from './status-code-error-handler.service';
10
+ export * from './unknown-status-code-error-handler.service';
11
+ export * from './router-error-handler.service';
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90aGVtZS1zaGFyZWQvc3JjL2xpYi9zZXJ2aWNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMsZ0NBQWdDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NvbmZpcm1hdGlvbi5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9uYXYtaXRlbXMuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcGFnZS1hbGVydC5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi90b2FzdGVyLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3VzZXItbWVudS5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9jcmVhdGUtZXJyb3ItY29tcG9uZW50LnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2FicC1mb3JtYXQtZXJyb3ItaGFuZGxlci5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi90ZW5hbnQtcmVzb2x2ZS1lcnJvci1oYW5kbGVyLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3N0YXR1cy1jb2RlLWVycm9yLWhhbmRsZXIuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vdW5rbm93bi1zdGF0dXMtY29kZS1lcnJvci1oYW5kbGVyLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3JvdXRlci1lcnJvci1oYW5kbGVyLnNlcnZpY2UnO1xyXG4iXX0=
@@ -0,0 +1,45 @@
1
+ import { inject, Injectable } from '@angular/core';
2
+ import { filter } from 'rxjs/operators';
3
+ import { RouterEvents } from '@abp/ng.core';
4
+ import { HTTP_ERROR_CONFIG } from '../tokens/';
5
+ import { CreateErrorComponentService } from '../services';
6
+ import { DEFAULT_ERROR_LOCALIZATIONS, DEFAULT_ERROR_MESSAGES } from '../constants/default-errors';
7
+ import * as i0 from "@angular/core";
8
+ class RouterErrorHandlerService {
9
+ constructor() {
10
+ this.routerEvents = inject(RouterEvents);
11
+ this.httpErrorConfig = inject(HTTP_ERROR_CONFIG);
12
+ this.createErrorComponentService = inject(CreateErrorComponentService);
13
+ this.filterRouteErrors = (navigationError) => {
14
+ if (!this.httpErrorConfig.skipHandledErrorCodes) {
15
+ return true;
16
+ }
17
+ return (navigationError.error?.message?.indexOf('Cannot match') > -1 &&
18
+ this.httpErrorConfig.skipHandledErrorCodes.findIndex(code => code === 404) < 0);
19
+ };
20
+ }
21
+ listen() {
22
+ this.routerEvents
23
+ .getNavigationEvents('Error')
24
+ .pipe(filter(this.filterRouteErrors))
25
+ .subscribe(() => this.show404Page());
26
+ }
27
+ show404Page() {
28
+ const instance = {
29
+ title: {
30
+ key: DEFAULT_ERROR_LOCALIZATIONS.defaultError404.title,
31
+ defaultValue: DEFAULT_ERROR_MESSAGES.defaultError404.title,
32
+ },
33
+ status: 404,
34
+ };
35
+ this.createErrorComponentService.execute(instance);
36
+ }
37
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.6", ngImport: i0, type: RouterErrorHandlerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
38
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.6", ngImport: i0, type: RouterErrorHandlerService, providedIn: 'root' }); }
39
+ }
40
+ export { RouterErrorHandlerService };
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.6", ngImport: i0, type: RouterErrorHandlerService, decorators: [{
42
+ type: Injectable,
43
+ args: [{ providedIn: 'root' }]
44
+ }] });
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLWVycm9yLWhhbmRsZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLXNoYXJlZC9zcmMvbGliL3NlcnZpY2VzL3JvdXRlci1lcnJvci1oYW5kbGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFNUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQy9DLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMxRCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7QUFFbEcsTUFDYSx5QkFBeUI7SUFEdEM7UUFFbUIsaUJBQVksR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDN0Msb0JBQWUsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUM1QyxnQ0FBMkIsR0FBRyxNQUFNLENBQUMsMkJBQTJCLENBQUMsQ0FBQztRQVNoRSxzQkFBaUIsR0FBRyxDQUFDLGVBQWdDLEVBQVcsRUFBRTtZQUMxRSxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxxQkFBcUIsRUFBRTtnQkFDL0MsT0FBTyxJQUFJLENBQUM7YUFDYjtZQUVELE9BQU8sQ0FDTCxlQUFlLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUM1RCxJQUFJLENBQUMsZUFBZSxDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQy9FLENBQUM7UUFDSixDQUFDLENBQUM7S0FhSDtJQTdCQyxNQUFNO1FBQ0osSUFBSSxDQUFDLFlBQVk7YUFDZCxtQkFBbUIsQ0FBQyxPQUFPLENBQUM7YUFDNUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQzthQUNwQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQWFELFdBQVc7UUFDVCxNQUFNLFFBQVEsR0FBRztZQUNmLEtBQUssRUFBRTtnQkFDTCxHQUFHLEVBQUUsMkJBQTJCLENBQUMsZUFBZSxDQUFDLEtBQUs7Z0JBQ3RELFlBQVksRUFBRSxzQkFBc0IsQ0FBQyxlQUFlLENBQUMsS0FBSzthQUMzRDtZQUNELE1BQU0sRUFBRSxHQUFHO1NBQ1osQ0FBQztRQUVGLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDckQsQ0FBQzs4R0FqQ1UseUJBQXlCO2tIQUF6Qix5QkFBeUIsY0FEWixNQUFNOztTQUNuQix5QkFBeUI7MkZBQXpCLHlCQUF5QjtrQkFEckMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBSb3V0ZXJFdmVudHMgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xyXG5pbXBvcnQgeyBOYXZpZ2F0aW9uRXJyb3IgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBIVFRQX0VSUk9SX0NPTkZJRyB9IGZyb20gJy4uL3Rva2Vucy8nO1xyXG5pbXBvcnQgeyBDcmVhdGVFcnJvckNvbXBvbmVudFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IERFRkFVTFRfRVJST1JfTE9DQUxJWkFUSU9OUywgREVGQVVMVF9FUlJPUl9NRVNTQUdFUyB9IGZyb20gJy4uL2NvbnN0YW50cy9kZWZhdWx0LWVycm9ycyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgUm91dGVyRXJyb3JIYW5kbGVyU2VydmljZSB7XHJcbiAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXJFdmVudHMgPSBpbmplY3QoUm91dGVyRXZlbnRzKTtcclxuICBwcml2YXRlIGh0dHBFcnJvckNvbmZpZyA9IGluamVjdChIVFRQX0VSUk9SX0NPTkZJRyk7XHJcbiAgcHJpdmF0ZSBjcmVhdGVFcnJvckNvbXBvbmVudFNlcnZpY2UgPSBpbmplY3QoQ3JlYXRlRXJyb3JDb21wb25lbnRTZXJ2aWNlKTtcclxuXHJcbiAgbGlzdGVuKCkge1xyXG4gICAgdGhpcy5yb3V0ZXJFdmVudHNcclxuICAgICAgLmdldE5hdmlnYXRpb25FdmVudHMoJ0Vycm9yJylcclxuICAgICAgLnBpcGUoZmlsdGVyKHRoaXMuZmlsdGVyUm91dGVFcnJvcnMpKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuc2hvdzQwNFBhZ2UoKSk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgZmlsdGVyUm91dGVFcnJvcnMgPSAobmF2aWdhdGlvbkVycm9yOiBOYXZpZ2F0aW9uRXJyb3IpOiBib29sZWFuID0+IHtcclxuICAgIGlmICghdGhpcy5odHRwRXJyb3JDb25maWcuc2tpcEhhbmRsZWRFcnJvckNvZGVzKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICByZXR1cm4gKFxyXG4gICAgICBuYXZpZ2F0aW9uRXJyb3IuZXJyb3I/Lm1lc3NhZ2U/LmluZGV4T2YoJ0Nhbm5vdCBtYXRjaCcpID4gLTEgJiZcclxuICAgICAgdGhpcy5odHRwRXJyb3JDb25maWcuc2tpcEhhbmRsZWRFcnJvckNvZGVzLmZpbmRJbmRleChjb2RlID0+IGNvZGUgPT09IDQwNCkgPCAwXHJcbiAgICApO1xyXG4gIH07XHJcblxyXG4gIHNob3c0MDRQYWdlKCkge1xyXG4gICAgY29uc3QgaW5zdGFuY2UgPSB7XHJcbiAgICAgIHRpdGxlOiB7XHJcbiAgICAgICAga2V5OiBERUZBVUxUX0VSUk9SX0xPQ0FMSVpBVElPTlMuZGVmYXVsdEVycm9yNDA0LnRpdGxlLFxyXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogREVGQVVMVF9FUlJPUl9NRVNTQUdFUy5kZWZhdWx0RXJyb3I0MDQudGl0bGUsXHJcbiAgICAgIH0sXHJcbiAgICAgIHN0YXR1czogNDA0LFxyXG4gICAgfTtcclxuXHJcbiAgICB0aGlzLmNyZWF0ZUVycm9yQ29tcG9uZW50U2VydmljZS5leGVjdXRlKGluc3RhbmNlKTtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,85 @@
1
+ import { CUSTOM_HTTP_ERROR_HANDLER_PRIORITY, DEFAULT_ERROR_LOCALIZATIONS, DEFAULT_ERROR_MESSAGES, } from '../constants/default-errors';
2
+ import { AuthService } from '@abp/ng.core';
3
+ import { inject, Injectable } from '@angular/core';
4
+ import { ConfirmationService } from './confirmation.service';
5
+ import { CreateErrorComponentService } from './create-error-component.service';
6
+ import * as i0 from "@angular/core";
7
+ class StatusCodeErrorHandlerService {
8
+ constructor() {
9
+ this.confirmationService = inject(ConfirmationService);
10
+ this.createErrorComponentService = inject(CreateErrorComponentService);
11
+ this.authService = inject(AuthService);
12
+ this.priority = CUSTOM_HTTP_ERROR_HANDLER_PRIORITY.normal;
13
+ this.handledStatusCodes = [401, 403, 404, 500];
14
+ }
15
+ canHandle({ status }) {
16
+ this.status = status;
17
+ return this.handledStatusCodes.indexOf(status) > -1;
18
+ }
19
+ execute() {
20
+ const key = `defaultError${this.status}`;
21
+ const title = {
22
+ key: DEFAULT_ERROR_LOCALIZATIONS[key]?.title,
23
+ defaultValue: DEFAULT_ERROR_MESSAGES[key]?.title,
24
+ };
25
+ const message = {
26
+ key: DEFAULT_ERROR_LOCALIZATIONS[key]?.details,
27
+ defaultValue: DEFAULT_ERROR_MESSAGES[key]?.details,
28
+ };
29
+ const canCreateCustomError = this.createErrorComponentService.canCreateCustomError(this.status);
30
+ switch (this.status) {
31
+ case 401:
32
+ case 404:
33
+ if (canCreateCustomError) {
34
+ this.showPage();
35
+ break;
36
+ }
37
+ this.showConfirmation(title, message).subscribe(() => {
38
+ if (this.status === 401) {
39
+ this.navigateToLogin();
40
+ }
41
+ });
42
+ break;
43
+ case 403:
44
+ case 500:
45
+ this.showPage();
46
+ break;
47
+ }
48
+ }
49
+ navigateToLogin() {
50
+ this.authService.navigateToLogin();
51
+ }
52
+ showConfirmation(message, title) {
53
+ return this.confirmationService.error(message, title, {
54
+ hideCancelBtn: true,
55
+ yesText: 'AbpAccount::Close',
56
+ });
57
+ }
58
+ showPage() {
59
+ const key = `defaultError${this.status}`;
60
+ const instance = {
61
+ title: {
62
+ key: DEFAULT_ERROR_LOCALIZATIONS[key]?.title,
63
+ defaultValue: DEFAULT_ERROR_MESSAGES[key]?.title,
64
+ },
65
+ details: {
66
+ key: DEFAULT_ERROR_LOCALIZATIONS[key]?.details,
67
+ defaultValue: DEFAULT_ERROR_MESSAGES[key]?.details,
68
+ },
69
+ status: this.status,
70
+ };
71
+ const shouldRemoveDetail = [401, 404].indexOf(this.status) > -1;
72
+ if (shouldRemoveDetail) {
73
+ delete instance.details;
74
+ }
75
+ this.createErrorComponentService.execute(instance);
76
+ }
77
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.6", ngImport: i0, type: StatusCodeErrorHandlerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
78
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.6", ngImport: i0, type: StatusCodeErrorHandlerService, providedIn: 'root' }); }
79
+ }
80
+ export { StatusCodeErrorHandlerService };
81
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.6", ngImport: i0, type: StatusCodeErrorHandlerService, decorators: [{
82
+ type: Injectable,
83
+ args: [{ providedIn: 'root' }]
84
+ }] });
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHVzLWNvZGUtZXJyb3ItaGFuZGxlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdGhlbWUtc2hhcmVkL3NyYy9saWIvc2VydmljZXMvc3RhdHVzLWNvZGUtZXJyb3ItaGFuZGxlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDTCxrQ0FBa0MsRUFDbEMsMkJBQTJCLEVBQzNCLHNCQUFzQixHQUN2QixNQUFNLDZCQUE2QixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxXQUFXLEVBQXFCLE1BQU0sY0FBYyxDQUFDO0FBRTlELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOztBQUUvRSxNQUNhLDZCQUE2QjtJQUQxQztRQUVtQix3QkFBbUIsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUNsRCxnQ0FBMkIsR0FBRyxNQUFNLENBQUMsMkJBQTJCLENBQUMsQ0FBQztRQUNsRSxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMxQyxhQUFRLEdBQUcsa0NBQWtDLENBQUMsTUFBTSxDQUFDO1FBRTdDLHVCQUFrQixHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFVLENBQUM7S0EwRXJFO0lBeEVDLFNBQVMsQ0FBQyxFQUFFLE1BQU0sRUFBRTtRQUNsQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELE9BQU87UUFDTCxNQUFNLEdBQUcsR0FBRyxlQUFlLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUN6QyxNQUFNLEtBQUssR0FBRztZQUNaLEdBQUcsRUFBRSwyQkFBMkIsQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLO1lBQzVDLFlBQVksRUFBRSxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLO1NBQ2pELENBQUM7UUFDRixNQUFNLE9BQU8sR0FBRztZQUNkLEdBQUcsRUFBRSwyQkFBMkIsQ0FBQyxHQUFHLENBQUMsRUFBRSxPQUFPO1lBQzlDLFlBQVksRUFBRSxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsRUFBRSxPQUFPO1NBQ25ELENBQUM7UUFFRixNQUFNLG9CQUFvQixHQUFHLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDaEcsUUFBUSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ25CLEtBQUssR0FBRyxDQUFDO1lBQ1QsS0FBSyxHQUFHO2dCQUNOLElBQUksb0JBQW9CLEVBQUU7b0JBQ3hCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDaEIsTUFBTTtpQkFDUDtnQkFDRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7b0JBQ25ELElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxHQUFHLEVBQUU7d0JBQ3ZCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztxQkFDeEI7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsTUFBTTtZQUVSLEtBQUssR0FBRyxDQUFDO1lBQ1QsS0FBSyxHQUFHO2dCQUNOLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDaEIsTUFBTTtTQUNUO0lBQ0gsQ0FBQztJQUVPLGVBQWU7UUFDckIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRVMsZ0JBQWdCLENBQ3hCLE9BQTBCLEVBQzFCLEtBQXdCO1FBRXhCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFO1lBQ3BELGFBQWEsRUFBRSxJQUFJO1lBQ25CLE9BQU8sRUFBRSxtQkFBbUI7U0FDN0IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVTLFFBQVE7UUFDaEIsTUFBTSxHQUFHLEdBQUcsZUFBZSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFFekMsTUFBTSxRQUFRLEdBQUc7WUFDZixLQUFLLEVBQUU7Z0JBQ0wsR0FBRyxFQUFFLDJCQUEyQixDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUs7Z0JBQzVDLFlBQVksRUFBRSxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLO2FBQ2pEO1lBQ0QsT0FBTyxFQUFFO2dCQUNQLEdBQUcsRUFBRSwyQkFBMkIsQ0FBQyxHQUFHLENBQUMsRUFBRSxPQUFPO2dCQUM5QyxZQUFZLEVBQUUsc0JBQXNCLENBQUMsR0FBRyxDQUFDLEVBQUUsT0FBTzthQUNuRDtZQUNELE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtTQUNwQixDQUFDO1FBQ0YsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2hFLElBQUksa0JBQWtCLEVBQUU7WUFDdEIsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDO1NBQ3pCO1FBQ0QsSUFBSSxDQUFDLDJCQUEyQixDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNyRCxDQUFDOzhHQS9FVSw2QkFBNkI7a0hBQTdCLDZCQUE2QixjQURoQixNQUFNOztTQUNuQiw2QkFBNkI7MkZBQTdCLDZCQUE2QjtrQkFEekMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25maXJtYXRpb24sIEN1c3RvbUh0dHBFcnJvckhhbmRsZXJTZXJ2aWNlIH0gZnJvbSAnLi4vbW9kZWxzJztcclxuaW1wb3J0IHtcclxuICBDVVNUT01fSFRUUF9FUlJPUl9IQU5ETEVSX1BSSU9SSVRZLFxyXG4gIERFRkFVTFRfRVJST1JfTE9DQUxJWkFUSU9OUyxcclxuICBERUZBVUxUX0VSUk9SX01FU1NBR0VTLFxyXG59IGZyb20gJy4uL2NvbnN0YW50cy9kZWZhdWx0LWVycm9ycyc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlLCBMb2NhbGl6YXRpb25QYXJhbSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbmZpcm1hdGlvblNlcnZpY2UgfSBmcm9tICcuL2NvbmZpcm1hdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ3JlYXRlRXJyb3JDb21wb25lbnRTZXJ2aWNlIH0gZnJvbSAnLi9jcmVhdGUtZXJyb3ItY29tcG9uZW50LnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcclxuZXhwb3J0IGNsYXNzIFN0YXR1c0NvZGVFcnJvckhhbmRsZXJTZXJ2aWNlIGltcGxlbWVudHMgQ3VzdG9tSHR0cEVycm9ySGFuZGxlclNlcnZpY2Uge1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgY29uZmlybWF0aW9uU2VydmljZSA9IGluamVjdChDb25maXJtYXRpb25TZXJ2aWNlKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IGNyZWF0ZUVycm9yQ29tcG9uZW50U2VydmljZSA9IGluamVjdChDcmVhdGVFcnJvckNvbXBvbmVudFNlcnZpY2UpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgYXV0aFNlcnZpY2UgPSBpbmplY3QoQXV0aFNlcnZpY2UpO1xyXG4gIHJlYWRvbmx5IHByaW9yaXR5ID0gQ1VTVE9NX0hUVFBfRVJST1JfSEFORExFUl9QUklPUklUWS5ub3JtYWw7XHJcbiAgcHJpdmF0ZSBzdGF0dXM6IHR5cGVvZiB0aGlzLmhhbmRsZWRTdGF0dXNDb2Rlc1tudW1iZXJdO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgaGFuZGxlZFN0YXR1c0NvZGVzID0gWzQwMSwgNDAzLCA0MDQsIDUwMF0gYXMgY29uc3Q7XHJcblxyXG4gIGNhbkhhbmRsZSh7IHN0YXR1cyB9KTogYm9vbGVhbiB7XHJcbiAgICB0aGlzLnN0YXR1cyA9IHN0YXR1cztcclxuICAgIHJldHVybiB0aGlzLmhhbmRsZWRTdGF0dXNDb2Rlcy5pbmRleE9mKHN0YXR1cykgPiAtMTtcclxuICB9XHJcblxyXG4gIGV4ZWN1dGUoKSB7XHJcbiAgICBjb25zdCBrZXkgPSBgZGVmYXVsdEVycm9yJHt0aGlzLnN0YXR1c31gO1xyXG4gICAgY29uc3QgdGl0bGUgPSB7XHJcbiAgICAgIGtleTogREVGQVVMVF9FUlJPUl9MT0NBTElaQVRJT05TW2tleV0/LnRpdGxlLFxyXG4gICAgICBkZWZhdWx0VmFsdWU6IERFRkFVTFRfRVJST1JfTUVTU0FHRVNba2V5XT8udGl0bGUsXHJcbiAgICB9O1xyXG4gICAgY29uc3QgbWVzc2FnZSA9IHtcclxuICAgICAga2V5OiBERUZBVUxUX0VSUk9SX0xPQ0FMSVpBVElPTlNba2V5XT8uZGV0YWlscyxcclxuICAgICAgZGVmYXVsdFZhbHVlOiBERUZBVUxUX0VSUk9SX01FU1NBR0VTW2tleV0/LmRldGFpbHMsXHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IGNhbkNyZWF0ZUN1c3RvbUVycm9yID0gdGhpcy5jcmVhdGVFcnJvckNvbXBvbmVudFNlcnZpY2UuY2FuQ3JlYXRlQ3VzdG9tRXJyb3IodGhpcy5zdGF0dXMpO1xyXG4gICAgc3dpdGNoICh0aGlzLnN0YXR1cykge1xyXG4gICAgICBjYXNlIDQwMTpcclxuICAgICAgY2FzZSA0MDQ6XHJcbiAgICAgICAgaWYgKGNhbkNyZWF0ZUN1c3RvbUVycm9yKSB7XHJcbiAgICAgICAgICB0aGlzLnNob3dQYWdlKCk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5zaG93Q29uZmlybWF0aW9uKHRpdGxlLCBtZXNzYWdlKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgaWYgKHRoaXMuc3RhdHVzID09PSA0MDEpIHtcclxuICAgICAgICAgICAgdGhpcy5uYXZpZ2F0ZVRvTG9naW4oKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgNDAzOlxyXG4gICAgICBjYXNlIDUwMDpcclxuICAgICAgICB0aGlzLnNob3dQYWdlKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG5hdmlnYXRlVG9Mb2dpbigpIHtcclxuICAgIHRoaXMuYXV0aFNlcnZpY2UubmF2aWdhdGVUb0xvZ2luKCk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgc2hvd0NvbmZpcm1hdGlvbihcclxuICAgIG1lc3NhZ2U6IExvY2FsaXphdGlvblBhcmFtLFxyXG4gICAgdGl0bGU6IExvY2FsaXphdGlvblBhcmFtLFxyXG4gICk6IE9ic2VydmFibGU8Q29uZmlybWF0aW9uLlN0YXR1cz4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY29uZmlybWF0aW9uU2VydmljZS5lcnJvcihtZXNzYWdlLCB0aXRsZSwge1xyXG4gICAgICBoaWRlQ2FuY2VsQnRuOiB0cnVlLFxyXG4gICAgICB5ZXNUZXh0OiAnQWJwQWNjb3VudDo6Q2xvc2UnLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgc2hvd1BhZ2UoKSB7XHJcbiAgICBjb25zdCBrZXkgPSBgZGVmYXVsdEVycm9yJHt0aGlzLnN0YXR1c31gO1xyXG5cclxuICAgIGNvbnN0IGluc3RhbmNlID0ge1xyXG4gICAgICB0aXRsZToge1xyXG4gICAgICAgIGtleTogREVGQVVMVF9FUlJPUl9MT0NBTElaQVRJT05TW2tleV0/LnRpdGxlLFxyXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogREVGQVVMVF9FUlJPUl9NRVNTQUdFU1trZXldPy50aXRsZSxcclxuICAgICAgfSxcclxuICAgICAgZGV0YWlsczoge1xyXG4gICAgICAgIGtleTogREVGQVVMVF9FUlJPUl9MT0NBTElaQVRJT05TW2tleV0/LmRldGFpbHMsXHJcbiAgICAgICAgZGVmYXVsdFZhbHVlOiBERUZBVUxUX0VSUk9SX01FU1NBR0VTW2tleV0/LmRldGFpbHMsXHJcbiAgICAgIH0sXHJcbiAgICAgIHN0YXR1czogdGhpcy5zdGF0dXMsXHJcbiAgICB9O1xyXG4gICAgY29uc3Qgc2hvdWxkUmVtb3ZlRGV0YWlsID0gWzQwMSwgNDA0XS5pbmRleE9mKHRoaXMuc3RhdHVzKSA+IC0xO1xyXG4gICAgaWYgKHNob3VsZFJlbW92ZURldGFpbCkge1xyXG4gICAgICBkZWxldGUgaW5zdGFuY2UuZGV0YWlscztcclxuICAgIH1cclxuICAgIHRoaXMuY3JlYXRlRXJyb3JDb21wb25lbnRTZXJ2aWNlLmV4ZWN1dGUoaW5zdGFuY2UpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,30 @@
1
+ import { inject, Injectable } from '@angular/core';
2
+ import { AuthService, SessionStateService } from '@abp/ng.core';
3
+ import { HttpErrorResponse } from '@angular/common/http';
4
+ import { CUSTOM_HTTP_ERROR_HANDLER_PRIORITY } from '../constants/default-errors';
5
+ import * as i0 from "@angular/core";
6
+ class TenantResolveErrorHandlerService {
7
+ constructor() {
8
+ this.sessionService = inject(SessionStateService);
9
+ this.priority = CUSTOM_HTTP_ERROR_HANDLER_PRIORITY.high;
10
+ this.authService = inject(AuthService);
11
+ }
12
+ isTenantResolveError(error) {
13
+ return error instanceof HttpErrorResponse && !!error.headers.get('Abp-Tenant-Resolve-Error');
14
+ }
15
+ canHandle(error) {
16
+ return this.isTenantResolveError(error);
17
+ }
18
+ execute() {
19
+ this.sessionService.setTenant(null);
20
+ this.authService.logout().subscribe();
21
+ }
22
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.6", ngImport: i0, type: TenantResolveErrorHandlerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
23
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.6", ngImport: i0, type: TenantResolveErrorHandlerService, providedIn: 'root' }); }
24
+ }
25
+ export { TenantResolveErrorHandlerService };
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.6", ngImport: i0, type: TenantResolveErrorHandlerService, decorators: [{
27
+ type: Injectable,
28
+ args: [{ providedIn: 'root' }]
29
+ }] });
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LXJlc29sdmUtZXJyb3ItaGFuZGxlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdGhlbWUtc2hhcmVkL3NyYy9saWIvc2VydmljZXMvdGVuYW50LXJlc29sdmUtZXJyb3ItaGFuZGxlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDaEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7O0FBRWpGLE1BQ2EsZ0NBQWdDO0lBRDdDO1FBRXFCLG1CQUFjLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDdkQsYUFBUSxHQUFHLGtDQUFrQyxDQUFDLElBQUksQ0FBQztRQUNwRCxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztLQWEzQztJQVpTLG9CQUFvQixDQUFDLEtBQWM7UUFDekMsT0FBTyxLQUFLLFlBQVksaUJBQWlCLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLDBCQUEwQixDQUFDLENBQUM7SUFDL0YsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFjO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUN4QyxDQUFDOzhHQWZVLGdDQUFnQztrSEFBaEMsZ0NBQWdDLGNBRG5CLE1BQU07O1NBQ25CLGdDQUFnQzsyRkFBaEMsZ0NBQWdDO2tCQUQ1QyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEN1c3RvbUh0dHBFcnJvckhhbmRsZXJTZXJ2aWNlIH0gZnJvbSAnLi4vbW9kZWxzL2NvbW1vbic7XHJcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSwgU2Vzc2lvblN0YXRlU2VydmljZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XHJcbmltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBDVVNUT01fSFRUUF9FUlJPUl9IQU5ETEVSX1BSSU9SSVRZIH0gZnJvbSAnLi4vY29uc3RhbnRzL2RlZmF1bHQtZXJyb3JzJztcclxuXHJcbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXHJcbmV4cG9ydCBjbGFzcyBUZW5hbnRSZXNvbHZlRXJyb3JIYW5kbGVyU2VydmljZSBpbXBsZW1lbnRzIEN1c3RvbUh0dHBFcnJvckhhbmRsZXJTZXJ2aWNlIHtcclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2Vzc2lvblNlcnZpY2UgPSBpbmplY3QoU2Vzc2lvblN0YXRlU2VydmljZSk7XHJcbiAgcmVhZG9ubHkgcHJpb3JpdHkgPSBDVVNUT01fSFRUUF9FUlJPUl9IQU5ETEVSX1BSSU9SSVRZLmhpZ2g7XHJcbiAgcHJpdmF0ZSBhdXRoU2VydmljZSA9IGluamVjdChBdXRoU2VydmljZSk7XHJcbiAgcHJpdmF0ZSBpc1RlbmFudFJlc29sdmVFcnJvcihlcnJvcjogdW5rbm93bikge1xyXG4gICAgcmV0dXJuIGVycm9yIGluc3RhbmNlb2YgSHR0cEVycm9yUmVzcG9uc2UgJiYgISFlcnJvci5oZWFkZXJzLmdldCgnQWJwLVRlbmFudC1SZXNvbHZlLUVycm9yJyk7XHJcbiAgfVxyXG5cclxuICBjYW5IYW5kbGUoZXJyb3I6IHVua25vd24pOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmlzVGVuYW50UmVzb2x2ZUVycm9yKGVycm9yKTtcclxuICB9XHJcblxyXG4gIGV4ZWN1dGUoKSB7XHJcbiAgICB0aGlzLnNlc3Npb25TZXJ2aWNlLnNldFRlbmFudChudWxsKTtcclxuICAgIHRoaXMuYXV0aFNlcnZpY2UubG9nb3V0KCkuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,37 @@
1
+ import { CUSTOM_HTTP_ERROR_HANDLER_PRIORITY, DEFAULT_ERROR_LOCALIZATIONS, DEFAULT_ERROR_MESSAGES, } from '../constants/default-errors';
2
+ import { inject, Injectable } from '@angular/core';
3
+ import { CreateErrorComponentService } from './create-error-component.service';
4
+ import * as i0 from "@angular/core";
5
+ class UnknownStatusCodeErrorHandlerService {
6
+ constructor() {
7
+ this.priority = CUSTOM_HTTP_ERROR_HANDLER_PRIORITY.normal;
8
+ this.statusText = 'Unknown Error';
9
+ this.message = '';
10
+ this.createErrorComponentService = inject(CreateErrorComponentService);
11
+ }
12
+ canHandle(error) {
13
+ if (error && error.status === 0 && error.statusText === this.statusText) {
14
+ this.message = error.message;
15
+ return true;
16
+ }
17
+ return false;
18
+ }
19
+ execute() {
20
+ this.createErrorComponentService.execute({
21
+ title: {
22
+ key: DEFAULT_ERROR_LOCALIZATIONS.defaultError.title,
23
+ defaultValue: DEFAULT_ERROR_MESSAGES.defaultError.title,
24
+ },
25
+ details: this.message,
26
+ isHomeShow: false,
27
+ });
28
+ }
29
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.6", ngImport: i0, type: UnknownStatusCodeErrorHandlerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
30
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.6", ngImport: i0, type: UnknownStatusCodeErrorHandlerService, providedIn: 'root' }); }
31
+ }
32
+ export { UnknownStatusCodeErrorHandlerService };
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.6", ngImport: i0, type: UnknownStatusCodeErrorHandlerService, decorators: [{
34
+ type: Injectable,
35
+ args: [{ providedIn: 'root' }]
36
+ }] });
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5rbm93bi1zdGF0dXMtY29kZS1lcnJvci1oYW5kbGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90aGVtZS1zaGFyZWQvc3JjL2xpYi9zZXJ2aWNlcy91bmtub3duLXN0YXR1cy1jb2RlLWVycm9yLWhhbmRsZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0wsa0NBQWtDLEVBQ2xDLDJCQUEyQixFQUMzQixzQkFBc0IsR0FDdkIsTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7QUFFL0UsTUFDYSxvQ0FBb0M7SUFEakQ7UUFFVyxhQUFRLEdBQUcsa0NBQWtDLENBQUMsTUFBTSxDQUFDO1FBQ3RELGVBQVUsR0FBRyxlQUFlLENBQUM7UUFDN0IsWUFBTyxHQUFHLEVBQUUsQ0FBQztRQUNiLGdDQUEyQixHQUFHLE1BQU0sQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0tBb0IzRTtJQWxCQyxTQUFTLENBQUMsS0FBMEU7UUFDbEYsSUFBSSxLQUFLLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLFVBQVUsS0FBSyxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ3ZFLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztZQUM3QixPQUFPLElBQUksQ0FBQztTQUNiO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsT0FBTztRQUNMLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxPQUFPLENBQUM7WUFDdkMsS0FBSyxFQUFFO2dCQUNMLEdBQUcsRUFBRSwyQkFBMkIsQ0FBQyxZQUFZLENBQUMsS0FBSztnQkFDbkQsWUFBWSxFQUFFLHNCQUFzQixDQUFDLFlBQVksQ0FBQyxLQUFLO2FBQ3hEO1lBQ0QsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3JCLFVBQVUsRUFBRSxLQUFLO1NBQ2xCLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBdkJVLG9DQUFvQztrSEFBcEMsb0NBQW9DLGNBRHZCLE1BQU07O1NBQ25CLG9DQUFvQzsyRkFBcEMsb0NBQW9DO2tCQURoRCxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEN1c3RvbUh0dHBFcnJvckhhbmRsZXJTZXJ2aWNlIH0gZnJvbSAnLi4vbW9kZWxzJztcclxuaW1wb3J0IHtcclxuICBDVVNUT01fSFRUUF9FUlJPUl9IQU5ETEVSX1BSSU9SSVRZLFxyXG4gIERFRkFVTFRfRVJST1JfTE9DQUxJWkFUSU9OUyxcclxuICBERUZBVUxUX0VSUk9SX01FU1NBR0VTLFxyXG59IGZyb20gJy4uL2NvbnN0YW50cy9kZWZhdWx0LWVycm9ycyc7XHJcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDcmVhdGVFcnJvckNvbXBvbmVudFNlcnZpY2UgfSBmcm9tICcuL2NyZWF0ZS1lcnJvci1jb21wb25lbnQuc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgVW5rbm93blN0YXR1c0NvZGVFcnJvckhhbmRsZXJTZXJ2aWNlIGltcGxlbWVudHMgQ3VzdG9tSHR0cEVycm9ySGFuZGxlclNlcnZpY2Uge1xyXG4gIHJlYWRvbmx5IHByaW9yaXR5ID0gQ1VTVE9NX0hUVFBfRVJST1JfSEFORExFUl9QUklPUklUWS5ub3JtYWw7XHJcbiAgcHJpdmF0ZSBzdGF0dXNUZXh0ID0gJ1Vua25vd24gRXJyb3InO1xyXG4gIHByaXZhdGUgbWVzc2FnZSA9ICcnO1xyXG4gIHByaXZhdGUgY3JlYXRlRXJyb3JDb21wb25lbnRTZXJ2aWNlID0gaW5qZWN0KENyZWF0ZUVycm9yQ29tcG9uZW50U2VydmljZSk7XHJcblxyXG4gIGNhbkhhbmRsZShlcnJvcjogeyBzdGF0dXM6IG51bWJlcjsgc3RhdHVzVGV4dDogc3RyaW5nOyBtZXNzYWdlOiBzdHJpbmcgfSB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKGVycm9yICYmIGVycm9yLnN0YXR1cyA9PT0gMCAmJiBlcnJvci5zdGF0dXNUZXh0ID09PSB0aGlzLnN0YXR1c1RleHQpIHtcclxuICAgICAgdGhpcy5tZXNzYWdlID0gZXJyb3IubWVzc2FnZTtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBleGVjdXRlKCkge1xyXG4gICAgdGhpcy5jcmVhdGVFcnJvckNvbXBvbmVudFNlcnZpY2UuZXhlY3V0ZSh7XHJcbiAgICAgIHRpdGxlOiB7XHJcbiAgICAgICAga2V5OiBERUZBVUxUX0VSUk9SX0xPQ0FMSVpBVElPTlMuZGVmYXVsdEVycm9yLnRpdGxlLFxyXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogREVGQVVMVF9FUlJPUl9NRVNTQUdFUy5kZWZhdWx0RXJyb3IudGl0bGUsXHJcbiAgICAgIH0sXHJcbiAgICAgIGRldGFpbHM6IHRoaXMubWVzc2FnZSxcclxuICAgICAgaXNIb21lU2hvdzogZmFsc2UsXHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIl19
@@ -22,7 +22,7 @@ import { NgxDatatableDefaultDirective } from './directives/ngx-datatable-default
22
22
  import { NgxDatatableListDirective } from './directives/ngx-datatable-list.directive';
23
23
  import { DocumentDirHandlerService } from './handlers/document-dir.handler';
24
24
  import { ErrorHandler } from './handlers/error.handler';
25
- import { NG_BOOTSTRAP_CONFIG_PROVIDERS } from './providers';
25
+ import { ERROR_HANDLERS_PROVIDERS, NG_BOOTSTRAP_CONFIG_PROVIDERS } from './providers';
26
26
  import { THEME_SHARED_ROUTE_PROVIDERS } from './providers/route.provider';
27
27
  import { THEME_SHARED_APPEND_CONTENT } from './tokens/append-content.token';
28
28
  import { HTTP_ERROR_CONFIG, httpErrorConfigFactory } from './tokens/http-error.token';
@@ -51,7 +51,7 @@ const declarationsWithExports = [
51
51
  ModalCloseDirective,
52
52
  AbpVisibleDirective,
53
53
  FormInputComponent,
54
- FormCheckboxComponent
54
+ FormCheckboxComponent,
55
55
  ];
56
56
  class BaseThemeSharedModule {
57
57
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.6", ngImport: i0, type: BaseThemeSharedModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
@@ -124,7 +124,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.6", ngImpor
124
124
  EllipsisModule,
125
125
  NgxValidateCoreModule,
126
126
  CardModule,
127
- ...declarationsWithExports
127
+ ...declarationsWithExports,
128
128
  ],
129
129
  providers: [DatePipe],
130
130
  }]
@@ -184,6 +184,7 @@ class ThemeSharedModule {
184
184
  ...(confirmationIcons || {}),
185
185
  },
186
186
  },
187
+ ERROR_HANDLERS_PROVIDERS,
187
188
  ],
188
189
  };
189
190
  }
@@ -199,4 +200,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.6", ngImpor
199
200
  exports: [BaseThemeSharedModule],
200
201
  }]
201
202
  }] });
202
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUtc2hhcmVkLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLXNoYXJlZC9zcmMvbGliL3RoZW1lLXNoYXJlZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDaEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN6RixPQUFPLEVBQ0wsa0JBQWtCLEVBQ2xCLHFCQUFxQixFQUNyQixxQkFBcUIsRUFDckIsd0JBQXdCLEVBQ3hCLDZCQUE2QixHQUM5QixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUN6RixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUN6RyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNsRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDcEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDakcsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNqRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUM1RixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUN0RixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFeEQsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3RGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25HLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDbkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDbEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMENBQTBDLENBQUM7O0FBRWpGLE1BQU0sdUJBQXVCLEdBQUc7SUFDOUIsbUJBQW1CO0lBQ25CLHdCQUF3QjtJQUN4QixlQUFlO0lBQ2YscUJBQXFCO0lBQ3JCLGtCQUFrQjtJQUNsQixnQkFBZ0I7SUFDaEIsY0FBYztJQUNkLGNBQWM7SUFDZCx1QkFBdUI7SUFDdkIsaUJBQWlCO0lBQ2pCLDRCQUE0QjtJQUM1Qix5QkFBeUI7SUFDekIsZ0JBQWdCO0lBQ2hCLG1CQUFtQjtJQUNuQixtQkFBbUI7SUFDbkIsa0JBQWtCO0lBQ2xCLHFCQUFxQjtDQUN0QixDQUFDO0FBRUYsTUFvQmEscUJBQXFCOzhHQUFyQixxQkFBcUI7K0dBQXJCLHFCQUFxQixpQkF2Q2hDLG1CQUFtQjtZQUNuQix3QkFBd0I7WUFDeEIsZUFBZTtZQUNmLHFCQUFxQjtZQUNyQixrQkFBa0I7WUFDbEIsZ0JBQWdCO1lBQ2hCLGNBQWM7WUFDZCxjQUFjO1lBQ2QsdUJBQXVCO1lBQ3ZCLGlCQUFpQjtZQUNqQiw0QkFBNEI7WUFDNUIseUJBQXlCO1lBQ3pCLGdCQUFnQjtZQUNoQixtQkFBbUI7WUFDbkIsbUJBQW1CO1lBQ25CLGtCQUFrQjtZQUNsQixxQkFBcUIsRUFhc0IseUJBQXlCLGFBUmxFLFVBQVU7WUFDVixrQkFBa0I7WUFDbEIscUJBQXFCO1lBQ3JCLG1CQUFtQjtZQUNuQixjQUFjO1lBQ2QsVUFBVSxhQUtWLGtCQUFrQjtZQUNsQixjQUFjO1lBQ2QscUJBQXFCO1lBQ3JCLFVBQVUsRUFsQ1osbUJBQW1CO1lBQ25CLHdCQUF3QjtZQUN4QixlQUFlO1lBQ2YscUJBQXFCO1lBQ3JCLGtCQUFrQjtZQUNsQixnQkFBZ0I7WUFDaEIsY0FBYztZQUNkLGNBQWM7WUFDZCx1QkFBdUI7WUFDdkIsaUJBQWlCO1lBQ2pCLDRCQUE0QjtZQUM1Qix5QkFBeUI7WUFDekIsZ0JBQWdCO1lBQ2hCLG1CQUFtQjtZQUNuQixtQkFBbUI7WUFDbkIsa0JBQWtCO1lBQ2xCLHFCQUFxQjsrR0F1QlYscUJBQXFCLGFBRnJCLENBQUMsUUFBUSxDQUFDLFlBaEJuQixVQUFVO1lBQ1Ysa0JBQWtCO1lBQ2xCLHFCQUFxQjtZQUNyQixtQkFBbUI7WUFDbkIsY0FBYztZQUNkLFVBQVUsRUFLVixrQkFBa0I7WUFDbEIsY0FBYztZQUNkLHFCQUFxQjtZQUNyQixVQUFVOztTQUtELHFCQUFxQjsyRkFBckIscUJBQXFCO2tCQXBCakMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsVUFBVTt3QkFDVixrQkFBa0I7d0JBQ2xCLHFCQUFxQjt3QkFDckIsbUJBQW1CO3dCQUNuQixjQUFjO3dCQUNkLFVBQVU7cUJBRVg7b0JBQ0QsWUFBWSxFQUFFLENBQUMsR0FBRyx1QkFBdUIsRUFBRSx5QkFBeUIsQ0FBQztvQkFDckUsT0FBTyxFQUFFO3dCQUNQLGtCQUFrQjt3QkFDbEIsY0FBYzt3QkFDZCxxQkFBcUI7d0JBQ3JCLFVBQVU7d0JBQ1YsR0FBRyx1QkFBdUI7cUJBQzNCO29CQUNELFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQztpQkFDdEI7O0FBR0QsTUFJYSxpQkFBaUI7SUFDNUIsTUFBTSxDQUFDLE9BQU8sQ0FDWixFQUFFLGVBQWUsRUFBRSxVQUFVLEdBQUcsRUFBRSxFQUFFLGlCQUFpQixHQUFHLEVBQUUsS0FBSyxFQUFnQjtRQUUvRSxPQUFPO1lBQ0wsUUFBUSxFQUFFLGlCQUFpQjtZQUMzQixTQUFTLEVBQUU7Z0JBQ1Q7b0JBQ0UsT0FBTyxFQUFFLGVBQWU7b0JBQ3hCLEtBQUssRUFBRSxJQUFJO29CQUNYLElBQUksRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDcEIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCO2dCQUNELDRCQUE0QjtnQkFDNUI7b0JBQ0UsT0FBTyxFQUFFLGVBQWU7b0JBQ3hCLEtBQUssRUFBRSxJQUFJO29CQUNYLElBQUksRUFBRSxDQUFDLDJCQUEyQixDQUFDO29CQUNuQyxVQUFVLEVBQUUsSUFBSTtpQkFDakI7Z0JBQ0QsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLGVBQWUsRUFBRTtnQkFDekQ7b0JBQ0UsT0FBTyxFQUFFLG1CQUFtQjtvQkFDNUIsVUFBVSxFQUFFLHNCQUFzQjtvQkFDbEMsSUFBSSxFQUFFLENBQUMsaUJBQWlCLENBQUM7aUJBQzFCO2dCQUNELEVBQUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFFBQVEsRUFBRSxtQkFBbUIsRUFBRTtnQkFDbEUsNkJBQTZCO2dCQUM3QjtvQkFDRSxPQUFPLEVBQUUscUJBQXFCO29CQUM5QixRQUFRLEVBQUU7d0JBQ1IsR0FBRyw2QkFBNkI7d0JBQ2hDLEdBQUcsQ0FBQyxVQUFVLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBQztxQkFDakM7aUJBQ0Y7Z0JBQ0Q7b0JBQ0UsT0FBTyxFQUFFLHdCQUF3QjtvQkFDakMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxXQUFXLElBQUksa0JBQWtCO2lCQUN2RDtnQkFDRDtvQkFDRSxPQUFPLEVBQUUsNkJBQTZCO29CQUN0QyxRQUFRLEVBQUUsVUFBVSxDQUFDLGdCQUFnQjtpQkFDdEM7Z0JBQ0QseUJBQXlCO2dCQUN6QjtvQkFDRSxPQUFPLEVBQUUsZUFBZTtvQkFDeEIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLEtBQUssRUFBRSxJQUFJO29CQUNYLElBQUksRUFBRSxDQUFDLHlCQUF5QixDQUFDO2lCQUNsQztnQkFDRDtvQkFDRSxPQUFPLEVBQUUsa0JBQWtCO29CQUMzQixRQUFRLEVBQUU7d0JBQ1IsR0FBRywwQkFBMEI7d0JBQzdCLEdBQUcsQ0FBQyxpQkFBaUIsSUFBSSxFQUFFLENBQUM7cUJBQzdCO2lCQUNGO2FBQ0Y7U0FDRixDQUFDO0lBQ0osQ0FBQzs4R0EzRFUsaUJBQWlCOytHQUFqQixpQkFBaUIsWUFOakIscUJBQXFCLGFBQXJCLHFCQUFxQjsrR0FNckIsaUJBQWlCLFlBSGxCLHFCQUFxQixFQUhwQixxQkFBcUI7O1NBTXJCLGlCQUFpQjsyRkFBakIsaUJBQWlCO2tCQUo3QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLHFCQUFxQixDQUFDO29CQUNoQyxPQUFPLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztpQkFDakMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb3JlTW9kdWxlLCBub29wIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuaW1wb3J0IHsgRGF0ZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBBUFBfSU5JVElBTElaRVIsIE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5nYkRhdGVQYXJzZXJGb3JtYXR0ZXIsIE5nYlBhZ2luYXRpb25Nb2R1bGUgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7XHJcbiAgZGVmYXVsdE1hcEVycm9yc0ZuLFxyXG4gIE5neFZhbGlkYXRlQ29yZU1vZHVsZSxcclxuICBWQUxJREFUSU9OX0JMVUVQUklOVFMsXHJcbiAgVkFMSURBVElPTl9NQVBfRVJST1JTX0ZOLFxyXG4gIFZBTElEQVRJT05fVkFMSURBVEVfT05fU1VCTUlULFxyXG59IGZyb20gJ0BuZ3gtdmFsaWRhdGUvY29yZSc7XHJcbmltcG9ydCB7IE5neERhdGF0YWJsZU1vZHVsZSB9IGZyb20gJ0Bzd2ltbGFuZS9uZ3gtZGF0YXRhYmxlJztcclxuaW1wb3J0IHsgQnJlYWRjcnVtYkl0ZW1zQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2JyZWFkY3J1bWItaXRlbXMvYnJlYWRjcnVtYi1pdGVtcy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCcmVhZGNydW1iQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2JyZWFkY3J1bWIvYnJlYWRjcnVtYi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb25maXJtYXRpb25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY29uZmlybWF0aW9uL2NvbmZpcm1hdGlvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBIdHRwRXJyb3JXcmFwcGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2h0dHAtZXJyb3Itd3JhcHBlci9odHRwLWVycm9yLXdyYXBwZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTG9hZGVyQmFyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2xvYWRlci1iYXIvbG9hZGVyLWJhci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBMb2FkaW5nQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2xvYWRpbmcvbG9hZGluZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNb2RhbENsb3NlRGlyZWN0aXZlIH0gZnJvbSAnLi9jb21wb25lbnRzL21vZGFsL21vZGFsLWNsb3NlLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IE1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL21vZGFsL21vZGFsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRvYXN0Q29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RvYXN0LWNvbnRhaW5lci90b2FzdC1jb250YWluZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVG9hc3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdG9hc3QvdG9hc3QuY29tcG9uZW50JztcclxuaW1wb3J0IHsgREVGQVVMVF9WQUxJREFUSU9OX0JMVUVQUklOVFMgfSBmcm9tICcuL2NvbnN0YW50cy92YWxpZGF0aW9uJztcclxuaW1wb3J0IHsgRWxsaXBzaXNNb2R1bGUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvZWxsaXBzaXMuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgTG9hZGluZ0RpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9sb2FkaW5nLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IE5neERhdGF0YWJsZURlZmF1bHREaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvbmd4LWRhdGF0YWJsZS1kZWZhdWx0LmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IE5neERhdGF0YWJsZUxpc3REaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvbmd4LWRhdGF0YWJsZS1saXN0LmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IERvY3VtZW50RGlySGFuZGxlclNlcnZpY2UgfSBmcm9tICcuL2hhbmRsZXJzL2RvY3VtZW50LWRpci5oYW5kbGVyJztcclxuaW1wb3J0IHsgRXJyb3JIYW5kbGVyIH0gZnJvbSAnLi9oYW5kbGVycy9lcnJvci5oYW5kbGVyJztcclxuaW1wb3J0IHsgUm9vdFBhcmFtcyB9IGZyb20gJy4vbW9kZWxzL2NvbW1vbic7XHJcbmltcG9ydCB7IE5HX0JPT1RTVFJBUF9DT05GSUdfUFJPVklERVJTIH0gZnJvbSAnLi9wcm92aWRlcnMnO1xyXG5pbXBvcnQgeyBUSEVNRV9TSEFSRURfUk9VVEVfUFJPVklERVJTIH0gZnJvbSAnLi9wcm92aWRlcnMvcm91dGUucHJvdmlkZXInO1xyXG5pbXBvcnQgeyBUSEVNRV9TSEFSRURfQVBQRU5EX0NPTlRFTlQgfSBmcm9tICcuL3Rva2Vucy9hcHBlbmQtY29udGVudC50b2tlbic7XHJcbmltcG9ydCB7IEhUVFBfRVJST1JfQ09ORklHLCBodHRwRXJyb3JDb25maWdGYWN0b3J5IH0gZnJvbSAnLi90b2tlbnMvaHR0cC1lcnJvci50b2tlbic7XHJcbmltcG9ydCB7IERhdGVQYXJzZXJGb3JtYXR0ZXIgfSBmcm9tICcuL3V0aWxzL2RhdGUtcGFyc2VyLWZvcm1hdHRlcic7XHJcbmltcG9ydCB7IENPTkZJUk1BVElPTl9JQ09OUywgREVGQVVMVF9DT05GSVJNQVRJT05fSUNPTlMgfSBmcm9tICcuL3Rva2Vucy9jb25maXJtYXRpb24taWNvbnMudG9rZW4nO1xyXG5pbXBvcnQgeyBQYXNzd29yZENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wYXNzd29yZC9wYXNzd29yZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDYXJkTW9kdWxlIH0gZnJvbSAnLi9jb21wb25lbnRzL2NhcmQvY2FyZC5tb2R1bGUnO1xyXG5pbXBvcnQgeyBBYnBWaXNpYmxlRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzJztcclxuaW1wb3J0IHsgRm9ybUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2Zvcm0taW5wdXQvZm9ybS1pbnB1dC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGb3JtQ2hlY2tib3hDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50JztcclxuXHJcbmNvbnN0IGRlY2xhcmF0aW9uc1dpdGhFeHBvcnRzID0gW1xyXG4gIEJyZWFkY3J1bWJDb21wb25lbnQsXHJcbiAgQnJlYWRjcnVtYkl0ZW1zQ29tcG9uZW50LFxyXG4gIEJ1dHRvbkNvbXBvbmVudCxcclxuICBDb25maXJtYXRpb25Db21wb25lbnQsXHJcbiAgTG9hZGVyQmFyQ29tcG9uZW50LFxyXG4gIExvYWRpbmdDb21wb25lbnQsXHJcbiAgTW9kYWxDb21wb25lbnQsXHJcbiAgVG9hc3RDb21wb25lbnQsXHJcbiAgVG9hc3RDb250YWluZXJDb21wb25lbnQsXHJcbiAgUGFzc3dvcmRDb21wb25lbnQsXHJcbiAgTmd4RGF0YXRhYmxlRGVmYXVsdERpcmVjdGl2ZSxcclxuICBOZ3hEYXRhdGFibGVMaXN0RGlyZWN0aXZlLFxyXG4gIExvYWRpbmdEaXJlY3RpdmUsXHJcbiAgTW9kYWxDbG9zZURpcmVjdGl2ZSxcclxuICBBYnBWaXNpYmxlRGlyZWN0aXZlLFxyXG4gIEZvcm1JbnB1dENvbXBvbmVudCxcclxuICBGb3JtQ2hlY2tib3hDb21wb25lbnRcclxuXTtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29yZU1vZHVsZSxcclxuICAgIE5neERhdGF0YWJsZU1vZHVsZSxcclxuICAgIE5neFZhbGlkYXRlQ29yZU1vZHVsZSxcclxuICAgIE5nYlBhZ2luYXRpb25Nb2R1bGUsXHJcbiAgICBFbGxpcHNpc01vZHVsZSxcclxuICAgIENhcmRNb2R1bGUsXHJcblxyXG4gIF0sXHJcbiAgZGVjbGFyYXRpb25zOiBbLi4uZGVjbGFyYXRpb25zV2l0aEV4cG9ydHMsIEh0dHBFcnJvcldyYXBwZXJDb21wb25lbnRdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIE5neERhdGF0YWJsZU1vZHVsZSxcclxuICAgIEVsbGlwc2lzTW9kdWxlLFxyXG4gICAgTmd4VmFsaWRhdGVDb3JlTW9kdWxlLFxyXG4gICAgQ2FyZE1vZHVsZSxcclxuICAgIC4uLmRlY2xhcmF0aW9uc1dpdGhFeHBvcnRzXHJcbiAgXSxcclxuICBwcm92aWRlcnM6IFtEYXRlUGlwZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCYXNlVGhlbWVTaGFyZWRNb2R1bGUgeyB9XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtCYXNlVGhlbWVTaGFyZWRNb2R1bGVdLFxyXG4gIGV4cG9ydHM6IFtCYXNlVGhlbWVTaGFyZWRNb2R1bGVdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGhlbWVTaGFyZWRNb2R1bGUge1xyXG4gIHN0YXRpYyBmb3JSb290KFxyXG4gICAgeyBodHRwRXJyb3JDb25maWcsIHZhbGlkYXRpb24gPSB7fSwgY29uZmlybWF0aW9uSWNvbnMgPSB7fSB9ID0ge30gYXMgUm9vdFBhcmFtcyxcclxuICApOiBNb2R1bGVXaXRoUHJvdmlkZXJzPFRoZW1lU2hhcmVkTW9kdWxlPiB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBuZ01vZHVsZTogVGhlbWVTaGFyZWRNb2R1bGUsXHJcbiAgICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcclxuICAgICAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgICAgICAgZGVwczogW0Vycm9ySGFuZGxlcl0sXHJcbiAgICAgICAgICB1c2VGYWN0b3J5OiBub29wLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgVEhFTUVfU0hBUkVEX1JPVVRFX1BST1ZJREVSUyxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXHJcbiAgICAgICAgICBtdWx0aTogdHJ1ZSxcclxuICAgICAgICAgIGRlcHM6IFtUSEVNRV9TSEFSRURfQVBQRU5EX0NPTlRFTlRdLFxyXG4gICAgICAgICAgdXNlRmFjdG9yeTogbm9vcCxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHsgcHJvdmlkZTogSFRUUF9FUlJPUl9DT05GSUcsIHVzZVZhbHVlOiBodHRwRXJyb3JDb25maWcgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBwcm92aWRlOiAnSFRUUF9FUlJPUl9DT05GSUcnLFxyXG4gICAgICAgICAgdXNlRmFjdG9yeTogaHR0cEVycm9yQ29uZmlnRmFjdG9yeSxcclxuICAgICAgICAgIGRlcHM6IFtIVFRQX0VSUk9SX0NPTkZJR10sXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7IHByb3ZpZGU6IE5nYkRhdGVQYXJzZXJGb3JtYXR0ZXIsIHVzZUNsYXNzOiBEYXRlUGFyc2VyRm9ybWF0dGVyIH0sXHJcbiAgICAgICAgTkdfQk9PVFNUUkFQX0NPTkZJR19QUk9WSURFUlMsXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgcHJvdmlkZTogVkFMSURBVElPTl9CTFVFUFJJTlRTLFxyXG4gICAgICAgICAgdXNlVmFsdWU6IHtcclxuICAgICAgICAgICAgLi4uREVGQVVMVF9WQUxJREFUSU9OX0JMVUVQUklOVFMsXHJcbiAgICAgICAgICAgIC4uLih2YWxpZGF0aW9uLmJsdWVwcmludHMgfHwge30pLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHByb3ZpZGU6IFZBTElEQVRJT05fTUFQX0VSUk9SU19GTixcclxuICAgICAgICAgIHVzZVZhbHVlOiB2YWxpZGF0aW9uLm1hcEVycm9yc0ZuIHx8IGRlZmF1bHRNYXBFcnJvcnNGbixcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHByb3ZpZGU6IFZBTElEQVRJT05fVkFMSURBVEVfT05fU1VCTUlULFxyXG4gICAgICAgICAgdXNlVmFsdWU6IHZhbGlkYXRpb24udmFsaWRhdGVPblN1Ym1pdCxcclxuICAgICAgICB9LFxyXG4gICAgICAgIERvY3VtZW50RGlySGFuZGxlclNlcnZpY2UsXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLFxyXG4gICAgICAgICAgdXNlRmFjdG9yeTogbm9vcCxcclxuICAgICAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgICAgICAgZGVwczogW0RvY3VtZW50RGlySGFuZGxlclNlcnZpY2VdLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgcHJvdmlkZTogQ09ORklSTUFUSU9OX0lDT05TLFxyXG4gICAgICAgICAgdXNlVmFsdWU6IHtcclxuICAgICAgICAgICAgLi4uREVGQVVMVF9DT05GSVJNQVRJT05fSUNPTlMsXHJcbiAgICAgICAgICAgIC4uLihjb25maXJtYXRpb25JY29ucyB8fCB7fSksXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0sXHJcbiAgICAgIF0sXHJcbiAgICB9O1xyXG4gIH1cclxufVxyXG4iXX0=
203
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUtc2hhcmVkLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLXNoYXJlZC9zcmMvbGliL3RoZW1lLXNoYXJlZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDaEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN6RixPQUFPLEVBQ0wsa0JBQWtCLEVBQ2xCLHFCQUFxQixFQUNyQixxQkFBcUIsRUFDckIsd0JBQXdCLEVBQ3hCLDZCQUE2QixHQUM5QixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUN6RixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUN6RyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNsRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0s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T0FBTyxFQUFFLENBQUMscUJBQXFCLENBQUM7aUJBQ2pDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29yZU1vZHVsZSwgbm9vcCB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XHJcbmltcG9ydCB7IERhdGVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQVBQX0lOSVRJQUxJWkVSLCBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOZ2JEYXRlUGFyc2VyRm9ybWF0dGVyLCBOZ2JQYWdpbmF0aW9uTW9kdWxlIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQge1xyXG4gIGRlZmF1bHRNYXBFcnJvcnNGbixcclxuICBOZ3hWYWxpZGF0ZUNvcmVNb2R1bGUsXHJcbiAgVkFMSURBVElPTl9CTFVFUFJJTlRTLFxyXG4gIFZBTElEQVRJT05fTUFQX0VSUk9SU19GTixcclxuICBWQUxJREFUSU9OX1ZBTElEQVRFX09OX1NVQk1JVCxcclxufSBmcm9tICdAbmd4LXZhbGlkYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBOZ3hEYXRhdGFibGVNb2R1bGUgfSBmcm9tICdAc3dpbWxhbmUvbmd4LWRhdGF0YWJsZSc7XHJcbmltcG9ydCB7IEJyZWFkY3J1bWJJdGVtc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9icmVhZGNydW1iLWl0ZW1zL2JyZWFkY3J1bWItaXRlbXMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQnJlYWRjcnVtYkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9icmVhZGNydW1iL2JyZWFkY3J1bWIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29uZmlybWF0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NvbmZpcm1hdGlvbi9jb25maXJtYXRpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgSHR0cEVycm9yV3JhcHBlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9odHRwLWVycm9yLXdyYXBwZXIvaHR0cC1lcnJvci13cmFwcGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExvYWRlckJhckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9sb2FkZXItYmFyL2xvYWRlci1iYXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTG9hZGluZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9sb2FkaW5nL2xvYWRpbmcuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTW9kYWxDbG9zZURpcmVjdGl2ZSB9IGZyb20gJy4vY29tcG9uZW50cy9tb2RhbC9tb2RhbC1jbG9zZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBNb2RhbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9tb2RhbC9tb2RhbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUb2FzdENvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90b2FzdC1jb250YWluZXIvdG9hc3QtY29udGFpbmVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRvYXN0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RvYXN0L3RvYXN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERFRkFVTFRfVkFMSURBVElPTl9CTFVFUFJJTlRTIH0gZnJvbSAnLi9jb25zdGFudHMvdmFsaWRhdGlvbic7XHJcbmltcG9ydCB7IEVsbGlwc2lzTW9kdWxlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2VsbGlwc2lzLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IExvYWRpbmdEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvbG9hZGluZy5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBOZ3hEYXRhdGFibGVEZWZhdWx0RGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL25neC1kYXRhdGFibGUtZGVmYXVsdC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBOZ3hEYXRhdGFibGVMaXN0RGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL25neC1kYXRhdGFibGUtbGlzdC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBEb2N1bWVudERpckhhbmRsZXJTZXJ2aWNlIH0gZnJvbSAnLi9oYW5kbGVycy9kb2N1bWVudC1kaXIuaGFuZGxlcic7XHJcbmltcG9ydCB7IEVycm9ySGFuZGxlciB9IGZyb20gJy4vaGFuZGxlcnMvZXJyb3IuaGFuZGxlcic7XHJcbmltcG9ydCB7IFJvb3RQYXJhbXMgfSBmcm9tICcuL21vZGVscy9jb21tb24nO1xyXG5pbXBvcnQgeyBFUlJPUl9IQU5ETEVSU19QUk9WSURFUlMsIE5HX0JPT1RTVFJBUF9DT05GSUdfUFJPVklERVJTIH0gZnJvbSAnLi9wcm92aWRlcnMnO1xyXG5pbXBvcnQgeyBUSEVNRV9TSEFSRURfUk9VVEVfUFJPVklERVJTIH0gZnJvbSAnLi9wcm92aWRlcnMvcm91dGUucHJvdmlkZXInO1xyXG5pbXBvcnQgeyBUSEVNRV9TSEFSRURfQVBQRU5EX0NPTlRFTlQgfSBmcm9tICcuL3Rva2Vucy9hcHBlbmQtY29udGVudC50b2tlbic7XHJcbmltcG9ydCB7IEhUVFBfRVJST1JfQ09ORklHLCBodHRwRXJyb3JDb25maWdGYWN0b3J5IH0gZnJvbSAnLi90b2tlbnMvaHR0cC1lcnJvci50b2tlbic7XHJcbmltcG9ydCB7IERhdGVQYXJzZXJGb3JtYXR0ZXIgfSBmcm9tICcuL3V0aWxzL2RhdGUtcGFyc2VyLWZvcm1hdHRlcic7XHJcbmltcG9ydCB7IENPTkZJUk1BVElPTl9JQ09OUywgREVGQVVMVF9DT05GSVJNQVRJT05fSUNPTlMgfSBmcm9tICcuL3Rva2Vucy9jb25maXJtYXRpb24taWNvbnMudG9rZW4nO1xyXG5pbXBvcnQgeyBQYXNzd29yZENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wYXNzd29yZC9wYXNzd29yZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDYXJkTW9kdWxlIH0gZnJvbSAnLi9jb21wb25lbnRzL2NhcmQvY2FyZC5tb2R1bGUnO1xyXG5pbXBvcnQgeyBBYnBWaXNpYmxlRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzJztcclxuaW1wb3J0IHsgRm9ybUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2Zvcm0taW5wdXQvZm9ybS1pbnB1dC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGb3JtQ2hlY2tib3hDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50JztcclxuXHJcbmNvbnN0IGRlY2xhcmF0aW9uc1dpdGhFeHBvcnRzID0gW1xyXG4gIEJyZWFkY3J1bWJDb21wb25lbnQsXHJcbiAgQnJlYWRjcnVtYkl0ZW1zQ29tcG9uZW50LFxyXG4gIEJ1dHRvbkNvbXBvbmVudCxcclxuICBDb25maXJtYXRpb25Db21wb25lbnQsXHJcbiAgTG9hZGVyQmFyQ29tcG9uZW50LFxyXG4gIExvYWRpbmdDb21wb25lbnQsXHJcbiAgTW9kYWxDb21wb25lbnQsXHJcbiAgVG9hc3RDb21wb25lbnQsXHJcbiAgVG9hc3RDb250YWluZXJDb21wb25lbnQsXHJcbiAgUGFzc3dvcmRDb21wb25lbnQsXHJcbiAgTmd4RGF0YXRhYmxlRGVmYXVsdERpcmVjdGl2ZSxcclxuICBOZ3hEYXRhdGFibGVMaXN0RGlyZWN0aXZlLFxyXG4gIExvYWRpbmdEaXJlY3RpdmUsXHJcbiAgTW9kYWxDbG9zZURpcmVjdGl2ZSxcclxuICBBYnBWaXNpYmxlRGlyZWN0aXZlLFxyXG4gIEZvcm1JbnB1dENvbXBvbmVudCxcclxuICBGb3JtQ2hlY2tib3hDb21wb25lbnQsXHJcbl07XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtcclxuICAgIENvcmVNb2R1bGUsXHJcbiAgICBOZ3hEYXRhdGFibGVNb2R1bGUsXHJcbiAgICBOZ3hWYWxpZGF0ZUNvcmVNb2R1bGUsXHJcbiAgICBOZ2JQYWdpbmF0aW9uTW9kdWxlLFxyXG4gICAgRWxsaXBzaXNNb2R1bGUsXHJcbiAgICBDYXJkTW9kdWxlLFxyXG4gIF0sXHJcbiAgZGVjbGFyYXRpb25zOiBbLi4uZGVjbGFyYXRpb25zV2l0aEV4cG9ydHMsIEh0dHBFcnJvcldyYXBwZXJDb21wb25lbnRdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIE5neERhdGF0YWJsZU1vZHVsZSxcclxuICAgIEVsbGlwc2lzTW9kdWxlLFxyXG4gICAgTmd4VmFsaWRhdGVDb3JlTW9kdWxlLFxyXG4gICAgQ2FyZE1vZHVsZSxcclxuICAgIC4uLmRlY2xhcmF0aW9uc1dpdGhFeHBvcnRzLFxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbRGF0ZVBpcGVdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQmFzZVRoZW1lU2hhcmVkTW9kdWxlIHt9XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtCYXNlVGhlbWVTaGFyZWRNb2R1bGVdLFxyXG4gIGV4cG9ydHM6IFtCYXNlVGhlbWVTaGFyZWRNb2R1bGVdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGhlbWVTaGFyZWRNb2R1bGUge1xyXG4gIHN0YXRpYyBmb3JSb290KFxyXG4gICAgeyBodHRwRXJyb3JDb25maWcsIHZhbGlkYXRpb24gPSB7fSwgY29uZmlybWF0aW9uSWNvbnMgPSB7fSB9ID0ge30gYXMgUm9vdFBhcmFtcyxcclxuICApOiBNb2R1bGVXaXRoUHJvdmlkZXJzPFRoZW1lU2hhcmVkTW9kdWxlPiB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBuZ01vZHVsZTogVGhlbWVTaGFyZWRNb2R1bGUsXHJcbiAgICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcclxuICAgICAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgICAgICAgZGVwczogW0Vycm9ySGFuZGxlcl0sXHJcbiAgICAgICAgICB1c2VGYWN0b3J5OiBub29wLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgVEhFTUVfU0hBUkVEX1JPVVRFX1BST1ZJREVSUyxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXHJcbiAgICAgICAgICBtdWx0aTogdHJ1ZSxcclxuICAgICAgICAgIGRlcHM6IFtUSEVNRV9TSEFSRURfQVBQRU5EX0NPTlRFTlRdLFxyXG4gICAgICAgICAgdXNlRmFjdG9yeTogbm9vcCxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHsgcHJvdmlkZTogSFRUUF9FUlJPUl9DT05GSUcsIHVzZVZhbHVlOiBodHRwRXJyb3JDb25maWcgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBwcm92aWRlOiAnSFRUUF9FUlJPUl9DT05GSUcnLFxyXG4gICAgICAgICAgdXNlRmFjdG9yeTogaHR0cEVycm9yQ29uZmlnRmFjdG9yeSxcclxuICAgICAgICAgIGRlcHM6IFtIVFRQX0VSUk9SX0NPTkZJR10sXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7IHByb3ZpZGU6IE5nYkRhdGVQYXJzZXJGb3JtYXR0ZXIsIHVzZUNsYXNzOiBEYXRlUGFyc2VyRm9ybWF0dGVyIH0sXHJcbiAgICAgICAgTkdfQk9PVFNUUkFQX0NPTkZJR19QUk9WSURFUlMsXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgcHJvdmlkZTogVkFMSURBVElPTl9CTFVFUFJJTlRTLFxyXG4gICAgICAgICAgdXNlVmFsdWU6IHtcclxuICAgICAgICAgICAgLi4uREVGQVVMVF9WQUxJREFUSU9OX0JMVUVQUklOVFMsXHJcbiAgICAgICAgICAgIC4uLih2YWxpZGF0aW9uLmJsdWVwcmludHMgfHwge30pLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHByb3ZpZGU6IFZBTElEQVRJT05fTUFQX0VSUk9SU19GTixcclxuICAgICAgICAgIHVzZVZhbHVlOiB2YWxpZGF0aW9uLm1hcEVycm9yc0ZuIHx8IGRlZmF1bHRNYXBFcnJvcnNGbixcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHByb3ZpZGU6IFZBTElEQVRJT05fVkFMSURBVEVfT05fU1VCTUlULFxyXG4gICAgICAgICAgdXNlVmFsdWU6IHZhbGlkYXRpb24udmFsaWRhdGVPblN1Ym1pdCxcclxuICAgICAgICB9LFxyXG4gICAgICAgIERvY3VtZW50RGlySGFuZGxlclNlcnZpY2UsXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLFxyXG4gICAgICAgICAgdXNlRmFjdG9yeTogbm9vcCxcclxuICAgICAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgICAgICAgZGVwczogW0RvY3VtZW50RGlySGFuZGxlclNlcnZpY2VdLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgcHJvdmlkZTogQ09ORklSTUFUSU9OX0lDT05TLFxyXG4gICAgICAgICAgdXNlVmFsdWU6IHtcclxuICAgICAgICAgICAgLi4uREVGQVVMVF9DT05GSVJNQVRJT05fSUNPTlMsXHJcbiAgICAgICAgICAgIC4uLihjb25maXJtYXRpb25JY29ucyB8fCB7fSksXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgRVJST1JfSEFORExFUlNfUFJPVklERVJTLFxyXG4gICAgICBdLFxyXG4gICAgfTtcclxuICB9XHJcbn1cclxuIl19
@@ -11,4 +11,5 @@ export function httpErrorConfigFactory(config = {}) {
11
11
  }
12
12
  export const HTTP_ERROR_CONFIG = new InjectionToken('HTTP_ERROR_CONFIG');
13
13
  export const HTTP_ERROR_HANDLER = new InjectionToken('HTTP_ERROR_HANDLER');
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1lcnJvci50b2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLXNoYXJlZC9zcmMvbGliL3Rva2Vucy9odHRwLWVycm9yLnRva2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHL0MsTUFBTSxVQUFVLHNCQUFzQixDQUFDLFNBQVMsRUFBcUI7SUFDbkUsSUFBSSxNQUFNLENBQUMsV0FBVyxJQUFJLE1BQU0sQ0FBQyxXQUFXLENBQUMsU0FBUyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEVBQUU7UUFDNUYsTUFBTSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztLQUMxRDtJQUVELE9BQU87UUFDTCxxQkFBcUIsRUFBRSxFQUFFO1FBQ3pCLFdBQVcsRUFBRSxFQUFFO1FBQ2YsR0FBRyxNQUFNO0tBQ1MsQ0FBQztBQUN2QixDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxjQUFjLENBQWtCLG1CQUFtQixDQUFDLENBQUM7QUFFMUYsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxjQUFjLENBQW1CLG9CQUFvQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwRXJyb3JDb25maWcsIEh0dHBFcnJvckhhbmRsZXIgfSBmcm9tICcuLi9tb2RlbHMvY29tbW9uJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBodHRwRXJyb3JDb25maWdGYWN0b3J5KGNvbmZpZyA9IHt9IGFzIEh0dHBFcnJvckNvbmZpZykge1xyXG4gIGlmIChjb25maWcuZXJyb3JTY3JlZW4gJiYgY29uZmlnLmVycm9yU2NyZWVuLmNvbXBvbmVudCAmJiAhY29uZmlnLmVycm9yU2NyZWVuLmZvcldoaWNoRXJyb3JzKSB7XHJcbiAgICBjb25maWcuZXJyb3JTY3JlZW4uZm9yV2hpY2hFcnJvcnMgPSBbNDAxLCA0MDMsIDQwNCwgNTAwXTtcclxuICB9XHJcblxyXG4gIHJldHVybiB7XHJcbiAgICBza2lwSGFuZGxlZEVycm9yQ29kZXM6IFtdLFxyXG4gICAgZXJyb3JTY3JlZW46IHt9LFxyXG4gICAgLi4uY29uZmlnLFxyXG4gIH0gYXMgSHR0cEVycm9yQ29uZmlnO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgSFRUUF9FUlJPUl9DT05GSUcgPSBuZXcgSW5qZWN0aW9uVG9rZW48SHR0cEVycm9yQ29uZmlnPignSFRUUF9FUlJPUl9DT05GSUcnKTtcclxuXHJcbmV4cG9ydCBjb25zdCBIVFRQX0VSUk9SX0hBTkRMRVIgPSBuZXcgSW5qZWN0aW9uVG9rZW48SHR0cEVycm9ySGFuZGxlcj4oJ0hUVFBfRVJST1JfSEFORExFUicpO1xyXG4iXX0=
14
+ export const CUSTOM_ERROR_HANDLERS = new InjectionToken('CUSTOM_ERROR_HANDLERS');
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1lcnJvci50b2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLXNoYXJlZC9zcmMvbGliL3Rva2Vucy9odHRwLWVycm9yLnRva2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHL0MsTUFBTSxVQUFVLHNCQUFzQixDQUFDLFNBQVMsRUFBcUI7SUFDbkUsSUFBSSxNQUFNLENBQUMsV0FBVyxJQUFJLE1BQU0sQ0FBQyxXQUFXLENBQUMsU0FBUyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEVBQUU7UUFDNUYsTUFBTSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztLQUMxRDtJQUVELE9BQU87UUFDTCxxQkFBcUIsRUFBRSxFQUFFO1FBQ3pCLFdBQVcsRUFBRSxFQUFFO1FBQ2YsR0FBRyxNQUFNO0tBQ1MsQ0FBQztBQUN2QixDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxjQUFjLENBQWtCLG1CQUFtQixDQUFDLENBQUM7QUFFMUYsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxjQUFjLENBQW1CLG9CQUFvQixDQUFDLENBQUM7QUFFN0YsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxjQUFjLENBQ3JELHVCQUF1QixDQUN4QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ3VzdG9tSHR0cEVycm9ySGFuZGxlclNlcnZpY2UsIEh0dHBFcnJvckNvbmZpZywgSHR0cEVycm9ySGFuZGxlciB9IGZyb20gJy4uL21vZGVscy9jb21tb24nO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGh0dHBFcnJvckNvbmZpZ0ZhY3RvcnkoY29uZmlnID0ge30gYXMgSHR0cEVycm9yQ29uZmlnKSB7XHJcbiAgaWYgKGNvbmZpZy5lcnJvclNjcmVlbiAmJiBjb25maWcuZXJyb3JTY3JlZW4uY29tcG9uZW50ICYmICFjb25maWcuZXJyb3JTY3JlZW4uZm9yV2hpY2hFcnJvcnMpIHtcclxuICAgIGNvbmZpZy5lcnJvclNjcmVlbi5mb3JXaGljaEVycm9ycyA9IFs0MDEsIDQwMywgNDA0LCA1MDBdO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHtcclxuICAgIHNraXBIYW5kbGVkRXJyb3JDb2RlczogW10sXHJcbiAgICBlcnJvclNjcmVlbjoge30sXHJcbiAgICAuLi5jb25maWcsXHJcbiAgfSBhcyBIdHRwRXJyb3JDb25maWc7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBIVFRQX0VSUk9SX0NPTkZJRyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxIdHRwRXJyb3JDb25maWc+KCdIVFRQX0VSUk9SX0NPTkZJRycpO1xyXG5cclxuZXhwb3J0IGNvbnN0IEhUVFBfRVJST1JfSEFORExFUiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxIdHRwRXJyb3JIYW5kbGVyPignSFRUUF9FUlJPUl9IQU5ETEVSJyk7XHJcblxyXG5leHBvcnQgY29uc3QgQ1VTVE9NX0VSUk9SX0hBTkRMRVJTID0gbmV3IEluamVjdGlvblRva2VuPEN1c3RvbUh0dHBFcnJvckhhbmRsZXJTZXJ2aWNlW10+KFxyXG4gICdDVVNUT01fRVJST1JfSEFORExFUlMnLFxyXG4pO1xyXG4iXX0=
@@ -0,0 +1,25 @@
1
+ import { DEFAULT_ERROR_LOCALIZATIONS, DEFAULT_ERROR_MESSAGES } from '../constants/default-errors';
2
+ export function getErrorFromRequestBody(body) {
3
+ let message;
4
+ let title;
5
+ if (body.details) {
6
+ message = body.details;
7
+ title = body.message;
8
+ }
9
+ else if (body.message) {
10
+ title = {
11
+ key: DEFAULT_ERROR_LOCALIZATIONS.defaultError.title,
12
+ defaultValue: DEFAULT_ERROR_MESSAGES.defaultError.title,
13
+ };
14
+ message = body.message;
15
+ }
16
+ else {
17
+ message = {
18
+ key: DEFAULT_ERROR_LOCALIZATIONS.defaultError.title,
19
+ defaultValue: DEFAULT_ERROR_MESSAGES.defaultError.title,
20
+ };
21
+ title = '';
22
+ }
23
+ return { message, title };
24
+ }
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3IudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90aGVtZS1zaGFyZWQvc3JjL2xpYi91dGlscy9lcnJvci51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUVsRyxNQUFNLFVBQVUsdUJBQXVCLENBQUMsSUFBd0Q7SUFDOUYsSUFBSSxPQUEwQixDQUFDO0lBQy9CLElBQUksS0FBd0IsQ0FBQztJQUU3QixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7UUFDaEIsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDdkIsS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7S0FDdEI7U0FBTSxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7UUFDdkIsS0FBSyxHQUFHO1lBQ04sR0FBRyxFQUFFLDJCQUEyQixDQUFDLFlBQVksQ0FBQyxLQUFLO1lBQ25ELFlBQVksRUFBRSxzQkFBc0IsQ0FBQyxZQUFZLENBQUMsS0FBSztTQUN4RCxDQUFDO1FBQ0YsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7S0FDeEI7U0FBTTtRQUNMLE9BQU8sR0FBRztZQUNSLEdBQUcsRUFBRSwyQkFBMkIsQ0FBQyxZQUFZLENBQUMsS0FBSztZQUNuRCxZQUFZLEVBQUUsc0JBQXNCLENBQUMsWUFBWSxDQUFDLEtBQUs7U0FDeEQsQ0FBQztRQUNGLEtBQUssR0FBRyxFQUFFLENBQUM7S0FDWjtJQUVELE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUM7QUFDNUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExvY2FsaXphdGlvblBhcmFtIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuaW1wb3J0IHsgREVGQVVMVF9FUlJPUl9MT0NBTElaQVRJT05TLCBERUZBVUxUX0VSUk9SX01FU1NBR0VTIH0gZnJvbSAnLi4vY29uc3RhbnRzL2RlZmF1bHQtZXJyb3JzJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRFcnJvckZyb21SZXF1ZXN0Qm9keShib2R5OiB7IGRldGFpbHM/OiBzdHJpbmc7IG1lc3NhZ2U/OiBzdHJpbmcgfSB8IHVuZGVmaW5lZCkge1xyXG4gIGxldCBtZXNzYWdlOiBMb2NhbGl6YXRpb25QYXJhbTtcclxuICBsZXQgdGl0bGU6IExvY2FsaXphdGlvblBhcmFtO1xyXG5cclxuICBpZiAoYm9keS5kZXRhaWxzKSB7XHJcbiAgICBtZXNzYWdlID0gYm9keS5kZXRhaWxzO1xyXG4gICAgdGl0bGUgPSBib2R5Lm1lc3NhZ2U7XHJcbiAgfSBlbHNlIGlmIChib2R5Lm1lc3NhZ2UpIHtcclxuICAgIHRpdGxlID0ge1xyXG4gICAgICBrZXk6IERFRkFVTFRfRVJST1JfTE9DQUxJWkFUSU9OUy5kZWZhdWx0RXJyb3IudGl0bGUsXHJcbiAgICAgIGRlZmF1bHRWYWx1ZTogREVGQVVMVF9FUlJPUl9NRVNTQUdFUy5kZWZhdWx0RXJyb3IudGl0bGUsXHJcbiAgICB9O1xyXG4gICAgbWVzc2FnZSA9IGJvZHkubWVzc2FnZTtcclxuICB9IGVsc2Uge1xyXG4gICAgbWVzc2FnZSA9IHtcclxuICAgICAga2V5OiBERUZBVUxUX0VSUk9SX0xPQ0FMSVpBVElPTlMuZGVmYXVsdEVycm9yLnRpdGxlLFxyXG4gICAgICBkZWZhdWx0VmFsdWU6IERFRkFVTFRfRVJST1JfTUVTU0FHRVMuZGVmYXVsdEVycm9yLnRpdGxlLFxyXG4gICAgfTtcclxuICAgIHRpdGxlID0gJyc7XHJcbiAgfVxyXG5cclxuICByZXR1cm4geyBtZXNzYWdlLCB0aXRsZSB9O1xyXG59XHJcbiJdfQ==
@@ -1,3 +1,4 @@
1
1
  export * from './date-parser-formatter';
2
2
  export * from './validation-utils';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90aGVtZS1zaGFyZWQvc3JjL2xpYi91dGlscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsb0JBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2RhdGUtcGFyc2VyLWZvcm1hdHRlcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vdmFsaWRhdGlvbi11dGlscyc7XHJcbiJdfQ==
3
+ export * from './error.utils';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90aGVtZS1zaGFyZWQvc3JjL2xpYi91dGlscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2RhdGUtcGFyc2VyLWZvcm1hdHRlcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vdmFsaWRhdGlvbi11dGlscyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZXJyb3IudXRpbHMnO1xyXG4iXX0=
@@ -4,6 +4,7 @@
4
4
  export * from './lib/animations';
5
5
  export * from './lib/components';
6
6
  export * from './lib/constants/validation';
7
+ export * from './lib/constants/default-errors';
7
8
  export * from './lib/directives';
8
9
  export * from './lib/enums';
9
10
  export * from './lib/handlers';
@@ -13,4 +14,4 @@ export * from './lib/services';
13
14
  export * from './lib/theme-shared.module';
14
15
  export * from './lib/tokens';
15
16
  export * from './lib/utils';
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLXNoYXJlZC9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiB0aGVtZS1zaGFyZWRcclxuICovXHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hbmltYXRpb25zJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbnN0YW50cy92YWxpZGF0aW9uJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2VudW1zJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvaGFuZGxlcnMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9wcm92aWRlcnMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RoZW1lLXNoYXJlZC5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90b2tlbnMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlscyc7XHJcbiJdfQ==
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLXNoYXJlZC9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIHRoZW1lLXNoYXJlZFxyXG4gKi9cclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FuaW1hdGlvbnMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29uc3RhbnRzL3ZhbGlkYXRpb24nO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb25zdGFudHMvZGVmYXVsdC1lcnJvcnMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3RpdmVzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZW51bXMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9oYW5kbGVycyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Byb3ZpZGVycyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGhlbWUtc2hhcmVkLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Rva2Vucyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3V0aWxzJztcclxuIl19
@@ -14,7 +14,9 @@ export declare abstract class Action<R = any> {
14
14
  readonly permission: string;
15
15
  readonly visible: ActionPredicate<R>;
16
16
  readonly action: ActionCallback<R>;
17
- constructor(permission: string, visible?: ActionPredicate<R>, action?: ActionCallback<R>);
17
+ readonly btnClass?: string;
18
+ readonly btnStyle?: string;
19
+ constructor(permission: string, visible?: ActionPredicate<R>, action?: ActionCallback<R>, btnClass?: string, btnStyle?: string);
18
20
  }
19
21
  export type ActionCallback<T, R = any> = (data: Omit<ActionData<T>, 'data'>) => R;
20
22
  export type ActionPredicate<T> = (data?: Omit<ActionData<T>, 'data'>) => boolean;
@@ -12,6 +12,8 @@ export declare class EntityActionsFactory<R = any> extends ActionsFactory<Entity
12
12
  export declare class EntityAction<R = any> extends Action<R> {
13
13
  readonly text: string;
14
14
  readonly icon: string;
15
+ readonly btnClass?: string;
16
+ readonly btnStyle?: string;
15
17
  constructor(options: EntityActionOptions<R>);
16
18
  static create<R = any>(options: EntityActionOptions<R>): EntityAction<R>;
17
19
  static createMany<R = any>(arrayOfOptions: EntityActionOptions<R>[]): EntityAction<R>[];
@@ -633,10 +633,12 @@ class ActionData {
633
633
  }
634
634
  }
635
635
  class Action {
636
- constructor(permission, visible = () => true, action = () => { }) {
636
+ constructor(permission, visible = () => true, action = () => { }, btnClass, btnStyle) {
637
637
  this.permission = permission;
638
638
  this.visible = visible;
639
639
  this.action = action;
640
+ this.btnClass = btnClass;
641
+ this.btnStyle = btnStyle;
640
642
  }
641
643
  }
642
644
  class ActionsFactory {
@@ -685,6 +687,8 @@ class EntityAction extends Action {
685
687
  super(options.permission || '', options.visible, options.action);
686
688
  this.text = options.text;
687
689
  this.icon = options.icon || '';
690
+ this.btnClass = options.btnClass || 'btn btn-primary text-center';
691
+ this.btnStyle = options.btnStyle;
688
692
  }
689
693
  static create(options) {
690
694
  return new EntityAction(options);
@@ -923,7 +927,7 @@ class GridActionsComponent extends AbstractActionsComponent {
923
927
  provide: EXTENSIONS_ACTION_TYPE,
924
928
  useValue: 'entityActions',
925
929
  },
926
- ], exportAs: ["abpGridActions"], usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"actionList.length > 1\" ngbDropdown container=\"body\" class=\"d-inline-block\">\r\n <button\r\n class=\"btn btn-primary btn-sm dropdown-toggle\"\r\n data-toggle=\"dropdown\"\r\n aria-haspopup=\"true\"\r\n ngbDropdownToggle\r\n >\r\n <i [ngClass]=\"icon\" [class.me-1]=\"icon\"></i>{{ text | abpLocalization }}\r\n </button>\r\n <div ngbDropdownMenu>\r\n <ng-container\r\n *ngFor=\"let action of actionList; trackBy: trackByFn\"\r\n [ngTemplateOutlet]=\"dropDownBtnItemTmp\"\r\n [ngTemplateOutletContext]=\"{ $implicit: action }\"\r\n >\r\n </ng-container>\r\n </div>\r\n</div>\r\n\r\n<ng-container\r\n *ngIf=\"actionList.length === 1\"\r\n [ngTemplateOutlet]=\"btnTmp\"\r\n [ngTemplateOutletContext]=\"{ $implicit: actionList.get(0).value }\"\r\n></ng-container>\r\n\r\n<ng-template #dropDownBtnItemTmp let-action>\r\n <ng-container *ngIf=\"action.visible(data)\">\r\n <button\r\n ngbDropdownItem\r\n *abpPermission=\"action.permission; runChangeDetection: false\"\r\n (click)=\"action.action(data)\"\r\n type=\"button\"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"buttonContentTmp; context: { $implicit: action }\"\r\n ></ng-container>\r\n </button>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #buttonContentTmp let-action>\r\n <i [ngClass]=\"action.icon\" [class.me-1]=\"action.icon\"></i>\r\n <span *ngIf=\"action.icon; else ellipsis\">{{ action.text | abpLocalization }}</span>\r\n <ng-template #ellipsis>\r\n <div abpEllipsis>{{ action.text | abpLocalization }}</div>\r\n </ng-template>\r\n</ng-template>\r\n\r\n<ng-template #btnTmp let-action>\r\n <ng-container *ngIf=\"action.visible(data)\">\r\n <button\r\n *abpPermission=\"action.permission; runChangeDetection: false\"\r\n (click)=\"action.action(data)\"\r\n type=\"button\"\r\n class=\"btn btn-primary text-center\"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"buttonContentTmp; context: { $implicit: action }\"\r\n ></ng-container>\r\n </button>\r\n </ng-container>\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission", "abpPermissionRunChangeDetection"] }, { kind: "directive", type: i4$2.EllipsisDirective, selector: "[abpEllipsis]", inputs: ["abpEllipsis", "title", "abpEllipsisEnabled"] }, { kind: "directive", type: i4$1.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "popperOptions", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i4$1.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i4$1.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "directive", type: i4$1.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["disabled"] }, { kind: "pipe", type: i1.LocalizationPipe, name: "abpLocalization" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
930
+ ], exportAs: ["abpGridActions"], usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"actionList.length > 1\" ngbDropdown container=\"body\" class=\"d-inline-block\">\r\n <button\r\n class=\"btn btn-primary btn-sm dropdown-toggle\"\r\n data-toggle=\"dropdown\"\r\n aria-haspopup=\"true\"\r\n ngbDropdownToggle\r\n >\r\n <i [ngClass]=\"icon\" [class.me-1]=\"icon\"></i>{{ text | abpLocalization }}\r\n </button>\r\n <div ngbDropdownMenu>\r\n <ng-container\r\n *ngFor=\"let action of actionList; trackBy: trackByFn\"\r\n [ngTemplateOutlet]=\"dropDownBtnItemTmp\"\r\n [ngTemplateOutletContext]=\"{ $implicit: action }\"\r\n >\r\n </ng-container>\r\n </div>\r\n</div>\r\n\r\n<ng-container\r\n *ngIf=\"actionList.length === 1\"\r\n [ngTemplateOutlet]=\"btnTmp\"\r\n [ngTemplateOutletContext]=\"{ $implicit: actionList.get(0).value }\"\r\n></ng-container>\r\n\r\n<ng-template #dropDownBtnItemTmp let-action>\r\n <ng-container *ngIf=\"action.visible(data)\">\r\n <button\r\n ngbDropdownItem\r\n *abpPermission=\"action.permission; runChangeDetection: false\"\r\n (click)=\"action.action(data)\"\r\n type=\"button\"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"buttonContentTmp; context: { $implicit: action }\"\r\n ></ng-container>\r\n </button>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #buttonContentTmp let-action>\r\n <i [ngClass]=\"action.icon\" [class.me-1]=\"action.icon\"></i>\r\n <span *ngIf=\"action.icon; else ellipsis\">{{ action.text | abpLocalization }}</span>\r\n <ng-template #ellipsis>\r\n <div abpEllipsis>{{ action.text | abpLocalization }}</div>\r\n </ng-template>\r\n</ng-template>\r\n\r\n<ng-template #btnTmp let-action>\r\n <ng-container *ngIf=\"action.visible(data)\">\r\n <button\r\n *abpPermission=\"action.permission; runChangeDetection: false\"\r\n (click)=\"action.action(data)\"\r\n type=\"button\"\r\n [class]=\"action.btnClass\"\r\n [style]=\"action.btnStyle\"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"buttonContentTmp; context: { $implicit: action }\"\r\n ></ng-container>\r\n </button>\r\n </ng-container>\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission", "abpPermissionRunChangeDetection"] }, { kind: "directive", type: i4$2.EllipsisDirective, selector: "[abpEllipsis]", inputs: ["abpEllipsis", "title", "abpEllipsisEnabled"] }, { kind: "directive", type: i4$1.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "popperOptions", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i4$1.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i4$1.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "directive", type: i4$1.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["disabled"] }, { kind: "pipe", type: i1.LocalizationPipe, name: "abpLocalization" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
927
931
  }
928
932
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.6", ngImport: i0, type: GridActionsComponent, decorators: [{
929
933
  type: Component,
@@ -932,7 +936,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.6", ngImpor
932
936
  provide: EXTENSIONS_ACTION_TYPE,
933
937
  useValue: 'entityActions',
934
938
  },
935
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"actionList.length > 1\" ngbDropdown container=\"body\" class=\"d-inline-block\">\r\n <button\r\n class=\"btn btn-primary btn-sm dropdown-toggle\"\r\n data-toggle=\"dropdown\"\r\n aria-haspopup=\"true\"\r\n ngbDropdownToggle\r\n >\r\n <i [ngClass]=\"icon\" [class.me-1]=\"icon\"></i>{{ text | abpLocalization }}\r\n </button>\r\n <div ngbDropdownMenu>\r\n <ng-container\r\n *ngFor=\"let action of actionList; trackBy: trackByFn\"\r\n [ngTemplateOutlet]=\"dropDownBtnItemTmp\"\r\n [ngTemplateOutletContext]=\"{ $implicit: action }\"\r\n >\r\n </ng-container>\r\n </div>\r\n</div>\r\n\r\n<ng-container\r\n *ngIf=\"actionList.length === 1\"\r\n [ngTemplateOutlet]=\"btnTmp\"\r\n [ngTemplateOutletContext]=\"{ $implicit: actionList.get(0).value }\"\r\n></ng-container>\r\n\r\n<ng-template #dropDownBtnItemTmp let-action>\r\n <ng-container *ngIf=\"action.visible(data)\">\r\n <button\r\n ngbDropdownItem\r\n *abpPermission=\"action.permission; runChangeDetection: false\"\r\n (click)=\"action.action(data)\"\r\n type=\"button\"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"buttonContentTmp; context: { $implicit: action }\"\r\n ></ng-container>\r\n </button>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #buttonContentTmp let-action>\r\n <i [ngClass]=\"action.icon\" [class.me-1]=\"action.icon\"></i>\r\n <span *ngIf=\"action.icon; else ellipsis\">{{ action.text | abpLocalization }}</span>\r\n <ng-template #ellipsis>\r\n <div abpEllipsis>{{ action.text | abpLocalization }}</div>\r\n </ng-template>\r\n</ng-template>\r\n\r\n<ng-template #btnTmp let-action>\r\n <ng-container *ngIf=\"action.visible(data)\">\r\n <button\r\n *abpPermission=\"action.permission; runChangeDetection: false\"\r\n (click)=\"action.action(data)\"\r\n type=\"button\"\r\n class=\"btn btn-primary text-center\"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"buttonContentTmp; context: { $implicit: action }\"\r\n ></ng-container>\r\n </button>\r\n </ng-container>\r\n</ng-template>\r\n" }]
939
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"actionList.length > 1\" ngbDropdown container=\"body\" class=\"d-inline-block\">\r\n <button\r\n class=\"btn btn-primary btn-sm dropdown-toggle\"\r\n data-toggle=\"dropdown\"\r\n aria-haspopup=\"true\"\r\n ngbDropdownToggle\r\n >\r\n <i [ngClass]=\"icon\" [class.me-1]=\"icon\"></i>{{ text | abpLocalization }}\r\n </button>\r\n <div ngbDropdownMenu>\r\n <ng-container\r\n *ngFor=\"let action of actionList; trackBy: trackByFn\"\r\n [ngTemplateOutlet]=\"dropDownBtnItemTmp\"\r\n [ngTemplateOutletContext]=\"{ $implicit: action }\"\r\n >\r\n </ng-container>\r\n </div>\r\n</div>\r\n\r\n<ng-container\r\n *ngIf=\"actionList.length === 1\"\r\n [ngTemplateOutlet]=\"btnTmp\"\r\n [ngTemplateOutletContext]=\"{ $implicit: actionList.get(0).value }\"\r\n></ng-container>\r\n\r\n<ng-template #dropDownBtnItemTmp let-action>\r\n <ng-container *ngIf=\"action.visible(data)\">\r\n <button\r\n ngbDropdownItem\r\n *abpPermission=\"action.permission; runChangeDetection: false\"\r\n (click)=\"action.action(data)\"\r\n type=\"button\"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"buttonContentTmp; context: { $implicit: action }\"\r\n ></ng-container>\r\n </button>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #buttonContentTmp let-action>\r\n <i [ngClass]=\"action.icon\" [class.me-1]=\"action.icon\"></i>\r\n <span *ngIf=\"action.icon; else ellipsis\">{{ action.text | abpLocalization }}</span>\r\n <ng-template #ellipsis>\r\n <div abpEllipsis>{{ action.text | abpLocalization }}</div>\r\n </ng-template>\r\n</ng-template>\r\n\r\n<ng-template #btnTmp let-action>\r\n <ng-container *ngIf=\"action.visible(data)\">\r\n <button\r\n *abpPermission=\"action.permission; runChangeDetection: false\"\r\n (click)=\"action.action(data)\"\r\n type=\"button\"\r\n [class]=\"action.btnClass\"\r\n [style]=\"action.btnStyle\"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"buttonContentTmp; context: { $implicit: action }\"\r\n ></ng-container>\r\n </button>\r\n </ng-container>\r\n</ng-template>\r\n" }]
936
940
  }], ctorParameters: function () { return [{ type: i0.Injector }]; }, propDecorators: { icon: [{
937
941
  type: Input
938
942
  }], index: [{
@@ -1013,6 +1017,9 @@ class ExtensibleTableComponent {
1013
1017
  ngOnChanges({ data }) {
1014
1018
  if (!data?.currentValue)
1015
1019
  return;
1020
+ if (data.currentValue.length < 1) {
1021
+ this.list.totalCount = this.recordsTotal;
1022
+ }
1016
1023
  this.data = data.currentValue.map((record, index) => {
1017
1024
  this.propList.forEach(prop => {
1018
1025
  const propData = { getInjected: this.getInjected, record, index };