@abp/ng.core 7.0.0-rc.4 → 7.0.0-rc.6

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 (101) hide show
  1. package/esm2020/lib/abstracts/auth.guard.mjs +17 -0
  2. package/esm2020/lib/abstracts/auth.service.mjs +42 -0
  3. package/esm2020/lib/abstracts/index.mjs +3 -1
  4. package/esm2020/lib/abstracts/ng-model.component.mjs +3 -3
  5. package/esm2020/lib/components/dynamic-layout.component.mjs +3 -3
  6. package/esm2020/lib/components/replaceable-route-container.component.mjs +3 -3
  7. package/esm2020/lib/components/router-outlet.component.mjs +3 -3
  8. package/esm2020/lib/core.module.mjs +16 -44
  9. package/esm2020/lib/directives/autofocus.directive.mjs +3 -3
  10. package/esm2020/lib/directives/debounce.directive.mjs +3 -3
  11. package/esm2020/lib/directives/for.directive.mjs +3 -3
  12. package/esm2020/lib/directives/form-submit.directive.mjs +3 -3
  13. package/esm2020/lib/directives/init.directive.mjs +3 -3
  14. package/esm2020/lib/directives/permission.directive.mjs +3 -3
  15. package/esm2020/lib/directives/replaceable-template.directive.mjs +11 -9
  16. package/esm2020/lib/directives/stop-propagation.directive.mjs +3 -3
  17. package/esm2020/lib/guards/index.mjs +1 -2
  18. package/esm2020/lib/guards/permission.guard.mjs +3 -3
  19. package/esm2020/lib/handlers/routes.handler.mjs +3 -3
  20. package/esm2020/lib/interceptors/api.interceptor.mjs +13 -42
  21. package/esm2020/lib/localization.module.mjs +4 -4
  22. package/esm2020/lib/models/auth.mjs +1 -1
  23. package/esm2020/lib/models/environment.mjs +1 -1
  24. package/esm2020/lib/models/index.mjs +2 -2
  25. package/esm2020/lib/pipes/localization.pipe.mjs +4 -4
  26. package/esm2020/lib/pipes/short-date-time.pipe.mjs +3 -3
  27. package/esm2020/lib/pipes/short-date.pipe.mjs +3 -3
  28. package/esm2020/lib/pipes/short-time.pipe.mjs +3 -3
  29. package/esm2020/lib/pipes/sort.pipe.mjs +4 -4
  30. package/esm2020/lib/pipes/to-injector.pipe.mjs +3 -3
  31. package/esm2020/lib/proxy/pages/abp/multi-tenancy/abp-tenant.service.mjs +3 -3
  32. package/esm2020/lib/proxy/volo/abp/asp-net-core/mvc/api-exploring/abp-api-definition.service.mjs +3 -3
  33. package/esm2020/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-configuration.service.mjs +3 -3
  34. package/esm2020/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-localization.service.mjs +3 -3
  35. package/esm2020/lib/services/config-state.service.mjs +3 -3
  36. package/esm2020/lib/services/content-projection.service.mjs +3 -3
  37. package/esm2020/lib/services/dom-insertion.service.mjs +3 -3
  38. package/esm2020/lib/services/environment.service.mjs +3 -3
  39. package/esm2020/lib/services/http-error-reporter.service.mjs +3 -3
  40. package/esm2020/lib/services/http-wait.service.mjs +3 -3
  41. package/esm2020/lib/services/index.mjs +1 -3
  42. package/esm2020/lib/services/lazy-load.service.mjs +3 -3
  43. package/esm2020/lib/services/list.service.mjs +3 -3
  44. package/esm2020/lib/services/localization.service.mjs +3 -3
  45. package/esm2020/lib/services/multi-tenancy.service.mjs +3 -3
  46. package/esm2020/lib/services/permission.service.mjs +3 -3
  47. package/esm2020/lib/services/replaceable-components.service.mjs +3 -3
  48. package/esm2020/lib/services/resource-wait.service.mjs +3 -3
  49. package/esm2020/lib/services/rest.service.mjs +3 -3
  50. package/esm2020/lib/services/router-events.service.mjs +3 -3
  51. package/esm2020/lib/services/router-wait.service.mjs +3 -3
  52. package/esm2020/lib/services/routes.service.mjs +6 -6
  53. package/esm2020/lib/services/session-state.service.mjs +3 -3
  54. package/esm2020/lib/services/subscription.service.mjs +3 -3
  55. package/esm2020/lib/services/track-by.service.mjs +3 -3
  56. package/esm2020/lib/tokens/check-authentication-state.mjs +3 -0
  57. package/esm2020/lib/tokens/index.mjs +4 -1
  58. package/esm2020/lib/tokens/manage-profile.token.mjs +3 -12
  59. package/esm2020/lib/tokens/pipe-to-login.token.mjs +3 -0
  60. package/esm2020/lib/tokens/set-token-response-to-storage.token.mjs +3 -0
  61. package/esm2020/lib/utils/index.mjs +1 -2
  62. package/esm2020/lib/utils/initial-utils.mjs +15 -18
  63. package/esm2020/public-api.mjs +2 -2
  64. package/esm2020/testing/lib/core-testing.module.mjs +4 -4
  65. package/esm2020/testing/lib/services/mock-permission.service.mjs +3 -3
  66. package/esm2020/testing/lib/services/mock-rest.service.mjs +3 -3
  67. package/fesm2015/abp-ng.core-testing.mjs +10 -10
  68. package/fesm2015/abp-ng.core.mjs +342 -674
  69. package/fesm2015/abp-ng.core.mjs.map +1 -1
  70. package/fesm2020/abp-ng.core-testing.mjs +10 -10
  71. package/fesm2020/abp-ng.core.mjs +342 -657
  72. package/fesm2020/abp-ng.core.mjs.map +1 -1
  73. package/lib/{guards → abstracts}/auth.guard.d.ts +3 -6
  74. package/lib/{services → abstracts}/auth.service.d.ts +17 -7
  75. package/lib/abstracts/index.d.ts +2 -0
  76. package/lib/core.module.d.ts +7 -10
  77. package/lib/directives/replaceable-template.directive.d.ts +2 -3
  78. package/lib/guards/index.d.ts +0 -1
  79. package/lib/interceptors/api.interceptor.d.ts +7 -9
  80. package/lib/models/auth.d.ts +5 -0
  81. package/lib/models/environment.d.ts +1 -1
  82. package/lib/models/index.d.ts +1 -1
  83. package/lib/services/index.d.ts +0 -2
  84. package/lib/tokens/check-authentication-state.d.ts +3 -0
  85. package/lib/tokens/index.d.ts +3 -0
  86. package/lib/tokens/pipe-to-login.token.d.ts +3 -0
  87. package/lib/tokens/set-token-response-to-storage.token.d.ts +3 -0
  88. package/lib/utils/index.d.ts +0 -1
  89. package/lib/utils/initial-utils.d.ts +1 -170
  90. package/package.json +3 -3
  91. package/public-api.d.ts +1 -1
  92. package/esm2020/lib/guards/auth.guard.mjs +0 -29
  93. package/esm2020/lib/handlers/oauth-configuration.handler.mjs +0 -37
  94. package/esm2020/lib/services/auth.service.mjs +0 -44
  95. package/esm2020/lib/services/timeout-limited-oauth.service.mjs +0 -16
  96. package/esm2020/lib/strategies/auth-flow.strategy.mjs +0 -190
  97. package/esm2020/lib/utils/auth-utils.mjs +0 -42
  98. package/lib/handlers/oauth-configuration.handler.d.ts +0 -13
  99. package/lib/services/timeout-limited-oauth.service.d.ts +0 -7
  100. package/lib/strategies/auth-flow.strategy.d.ts +0 -393
  101. package/lib/utils/auth-utils.d.ts +0 -175
@@ -0,0 +1,17 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class AuthGuard {
4
+ canActivate() {
5
+ console.error('You should add @abp/ng-oauth packages or create your own auth packages.');
6
+ return false;
7
+ }
8
+ }
9
+ AuthGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AuthGuard, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
10
+ AuthGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AuthGuard, providedIn: 'root' });
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AuthGuard, decorators: [{
12
+ type: Injectable,
13
+ args: [{
14
+ providedIn: 'root',
15
+ }]
16
+ }] });
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi9hYnN0cmFjdHMvYXV0aC5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUkzQyxNQUFNLE9BQU8sU0FBUztJQUNwQixXQUFXO1FBQ1QsT0FBTyxDQUFDLEtBQUssQ0FBQyx5RUFBeUUsQ0FBQyxDQUFDO1FBQ3pGLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs7c0dBSlUsU0FBUzswR0FBVCxTQUFTLGNBRlIsTUFBTTsyRkFFUCxTQUFTO2tCQUhyQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENhbkFjdGl2YXRlLCBVcmxUcmVlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBdXRoR3VhcmQgaW1wbGVtZW50cyBJQXV0aEd1YXJkIHtcclxuICBjYW5BY3RpdmF0ZSgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHwgYm9vbGVhbiB8IFVybFRyZWUge1xyXG4gICAgY29uc29sZS5lcnJvcignWW91IHNob3VsZCBhZGQgQGFicC9uZy1vYXV0aCBwYWNrYWdlcyBvciBjcmVhdGUgeW91ciBvd24gYXV0aCBwYWNrYWdlcy4nKTtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBJQXV0aEd1YXJkIGV4dGVuZHMgQ2FuQWN0aXZhdGUge31cclxuIl19
@@ -0,0 +1,42 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { of } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * Abstract service for Authentication.
6
+ */
7
+ export class AuthService {
8
+ constructor() { }
9
+ warningMessage() {
10
+ console.error('You should add @abp/ng-oauth packages or create your own auth packages.');
11
+ }
12
+ init() {
13
+ this.warningMessage();
14
+ return Promise.resolve(undefined);
15
+ }
16
+ login(params) {
17
+ this.warningMessage();
18
+ return of(undefined);
19
+ }
20
+ logout(queryParams) {
21
+ this.warningMessage();
22
+ return of(undefined);
23
+ }
24
+ navigateToLogin(queryParams) { }
25
+ get isInternalAuth() {
26
+ throw new Error('not implemented');
27
+ return false;
28
+ }
29
+ get isAuthenticated() {
30
+ this.warningMessage();
31
+ return false;
32
+ }
33
+ }
34
+ AuthService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AuthService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
35
+ AuthService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AuthService, providedIn: 'root' });
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AuthService, decorators: [{
37
+ type: Injectable,
38
+ args: [{
39
+ providedIn: 'root',
40
+ }]
41
+ }], ctorParameters: function () { return []; } });
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL2Fic3RyYWN0cy9hdXRoLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUd0Qzs7R0FFRztBQUlILE1BQU0sT0FBTyxXQUFXO0lBQ3RCLGdCQUFlLENBQUM7SUFFUixjQUFjO1FBQ3BCLE9BQU8sQ0FBQyxLQUFLLENBQUMseUVBQXlFLENBQUMsQ0FBQztJQUMzRixDQUFDO0lBRUQsSUFBSTtRQUNGLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN0QixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELEtBQUssQ0FBQyxNQUFtQjtRQUN2QixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdEIsT0FBTyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVELE1BQU0sQ0FBQyxXQUFvQjtRQUN6QixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdEIsT0FBTyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVELGVBQWUsQ0FBQyxXQUFvQixJQUFTLENBQUM7SUFFOUMsSUFBSSxjQUFjO1FBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNuQyxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxJQUFJLGVBQWU7UUFDakIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs7d0dBaENVLFdBQVc7NEdBQVgsV0FBVyxjQUZWLE1BQU07MkZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IExvZ2luUGFyYW1zIH0gZnJvbSAnLi4vbW9kZWxzL2F1dGgnO1xyXG5cclxuLyoqXHJcbiAqIEFic3RyYWN0IHNlcnZpY2UgZm9yIEF1dGhlbnRpY2F0aW9uLlxyXG4gKi9cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEF1dGhTZXJ2aWNlIGltcGxlbWVudHMgSUF1dGhTZXJ2aWNlIHtcclxuICBjb25zdHJ1Y3RvcigpIHt9XHJcblxyXG4gIHByaXZhdGUgd2FybmluZ01lc3NhZ2UoKSB7XHJcbiAgICBjb25zb2xlLmVycm9yKCdZb3Ugc2hvdWxkIGFkZCBAYWJwL25nLW9hdXRoIHBhY2thZ2VzIG9yIGNyZWF0ZSB5b3VyIG93biBhdXRoIHBhY2thZ2VzLicpO1xyXG4gIH1cclxuXHJcbiAgaW5pdCgpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgdGhpcy53YXJuaW5nTWVzc2FnZSgpO1xyXG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh1bmRlZmluZWQpO1xyXG4gIH1cclxuXHJcbiAgbG9naW4ocGFyYW1zOiBMb2dpblBhcmFtcyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICB0aGlzLndhcm5pbmdNZXNzYWdlKCk7XHJcbiAgICByZXR1cm4gb2YodW5kZWZpbmVkKTtcclxuICB9XHJcblxyXG4gIGxvZ291dChxdWVyeVBhcmFtcz86IFBhcmFtcyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICB0aGlzLndhcm5pbmdNZXNzYWdlKCk7XHJcbiAgICByZXR1cm4gb2YodW5kZWZpbmVkKTtcclxuICB9XHJcblxyXG4gIG5hdmlnYXRlVG9Mb2dpbihxdWVyeVBhcmFtcz86IFBhcmFtcyk6IHZvaWQge31cclxuXHJcbiAgZ2V0IGlzSW50ZXJuYWxBdXRoKCkge1xyXG4gICAgdGhyb3cgbmV3IEVycm9yKCdub3QgaW1wbGVtZW50ZWQnKTtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGdldCBpc0F1dGhlbnRpY2F0ZWQoKTogYm9vbGVhbiB7XHJcbiAgICB0aGlzLndhcm5pbmdNZXNzYWdlKCk7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElBdXRoU2VydmljZSB7XHJcbiAgZ2V0IGlzSW50ZXJuYWxBdXRoKCk6IGJvb2xlYW47XHJcblxyXG4gIGdldCBpc0F1dGhlbnRpY2F0ZWQoKTogYm9vbGVhbjtcclxuXHJcbiAgaW5pdCgpOiBQcm9taXNlPGFueT47XHJcblxyXG4gIGxvZ291dChxdWVyeVBhcmFtcz86IFBhcmFtcyk6IE9ic2VydmFibGU8YW55PjtcclxuXHJcbiAgbmF2aWdhdGVUb0xvZ2luKHF1ZXJ5UGFyYW1zPzogUGFyYW1zKTogdm9pZDtcclxuXHJcbiAgbG9naW4ocGFyYW1zOiBMb2dpblBhcmFtcyk6IE9ic2VydmFibGU8YW55PjtcclxufVxyXG4iXX0=
@@ -1,2 +1,4 @@
1
1
  export * from './ng-model.component';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvYWJzdHJhY3RzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsc0JBQXNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL25nLW1vZGVsLmNvbXBvbmVudCc7XHJcbiJdfQ==
2
+ export * from './auth.guard';
3
+ export * from './auth.service';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvYWJzdHJhY3RzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxnQkFBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbmctbW9kZWwuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9hdXRoLmd1YXJkJztcclxuZXhwb3J0ICogZnJvbSAnLi9hdXRoLnNlcnZpY2UnO1xyXG4iXX0=
@@ -40,9 +40,9 @@ export class AbstractNgModelComponent {
40
40
  this.disabled = isDisabled;
41
41
  }
42
42
  }
43
- AbstractNgModelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: AbstractNgModelComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
44
- AbstractNgModelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.3", type: AbstractNgModelComponent, selector: "ng-component", inputs: { disabled: "disabled", readonly: "readonly", valueFn: "valueFn", valueLimitFn: "valueLimitFn", value: "value" }, ngImport: i0, template: '', isInline: true });
45
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: AbstractNgModelComponent, decorators: [{
43
+ AbstractNgModelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AbstractNgModelComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
44
+ AbstractNgModelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: AbstractNgModelComponent, selector: "ng-component", inputs: { disabled: "disabled", readonly: "readonly", valueFn: "valueFn", valueLimitFn: "valueLimitFn", value: "value" }, ngImport: i0, template: '', isInline: true });
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AbstractNgModelComponent, decorators: [{
46
46
  type: Component,
47
47
  args: [{ template: '' }]
48
48
  }], ctorParameters: function () { return [{ type: i0.Injector }]; }, propDecorators: { disabled: [{
@@ -81,9 +81,9 @@ export class DynamicLayoutComponent {
81
81
  return this.replaceableComponents.get(key);
82
82
  }
83
83
  }
84
- DynamicLayoutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: DynamicLayoutComponent, deps: [{ token: i0.Injector }, { token: i1.LocalizationService }, { token: i2.ReplaceableComponentsService }, { token: i3.SubscriptionService }, { token: i4.RouterEvents }, { token: DynamicLayoutComponent, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component });
85
- DynamicLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.3", type: DynamicLayoutComponent, selector: "abp-dynamic-layout", providers: [SubscriptionService], ngImport: i0, template: ` <ng-container *ngIf="isLayoutVisible" [ngComponentOutlet]="layout"></ng-container> `, isInline: true, dependencies: [{ kind: "directive", type: i5.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
86
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: DynamicLayoutComponent, decorators: [{
84
+ DynamicLayoutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: DynamicLayoutComponent, deps: [{ token: i0.Injector }, { token: i1.LocalizationService }, { token: i2.ReplaceableComponentsService }, { token: i3.SubscriptionService }, { token: i4.RouterEvents }, { token: DynamicLayoutComponent, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component });
85
+ DynamicLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: DynamicLayoutComponent, selector: "abp-dynamic-layout", providers: [SubscriptionService], ngImport: i0, template: ` <ng-container *ngIf="isLayoutVisible" [ngComponentOutlet]="layout"></ng-container> `, isInline: true, dependencies: [{ kind: "directive", type: i5.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
86
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: DynamicLayoutComponent, decorators: [{
87
87
  type: Component,
88
88
  args: [{
89
89
  selector: 'abp-dynamic-layout',
@@ -25,11 +25,11 @@ export class ReplaceableRouteContainerComponent {
25
25
  });
26
26
  }
27
27
  }
28
- ReplaceableRouteContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: ReplaceableRouteContainerComponent, deps: [{ token: i1.ActivatedRoute }, { token: i2.ReplaceableComponentsService }, { token: i3.SubscriptionService }], target: i0.ɵɵFactoryTarget.Component });
29
- ReplaceableRouteContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.3", type: ReplaceableRouteContainerComponent, selector: "abp-replaceable-route-container", providers: [SubscriptionService], ngImport: i0, template: `
28
+ ReplaceableRouteContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ReplaceableRouteContainerComponent, deps: [{ token: i1.ActivatedRoute }, { token: i2.ReplaceableComponentsService }, { token: i3.SubscriptionService }], target: i0.ɵɵFactoryTarget.Component });
29
+ ReplaceableRouteContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: ReplaceableRouteContainerComponent, selector: "abp-replaceable-route-container", providers: [SubscriptionService], ngImport: i0, template: `
30
30
  <ng-container *ngComponentOutlet="externalComponent || defaultComponent"></ng-container>
31
31
  `, isInline: true, dependencies: [{ kind: "directive", type: i4.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }] });
32
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: ReplaceableRouteContainerComponent, decorators: [{
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ReplaceableRouteContainerComponent, decorators: [{
33
33
  type: Component,
34
34
  args: [{
35
35
  selector: 'abp-replaceable-route-container',
@@ -3,9 +3,9 @@ import * as i0 from "@angular/core";
3
3
  import * as i1 from "@angular/router";
4
4
  export class RouterOutletComponent {
5
5
  }
6
- RouterOutletComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: RouterOutletComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7
- RouterOutletComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.3", type: RouterOutletComponent, selector: "abp-router-outlet", ngImport: i0, template: ` <router-outlet></router-outlet> `, isInline: true, dependencies: [{ kind: "directive", type: i1.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] });
8
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: RouterOutletComponent, decorators: [{
6
+ RouterOutletComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: RouterOutletComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7
+ RouterOutletComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: RouterOutletComponent, selector: "abp-router-outlet", ngImport: i0, template: ` <router-outlet></router-outlet> `, isInline: true, dependencies: [{ kind: "directive", type: i1.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] });
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: RouterOutletComponent, decorators: [{
9
9
  type: Component,
10
10
  args: [{
11
11
  selector: 'abp-router-outlet',
@@ -1,9 +1,8 @@
1
1
  import { CommonModule } from '@angular/common';
2
- import { HTTP_INTERCEPTORS, HttpClientModule, HttpClientXsrfModule } from '@angular/common/http';
2
+ import { HttpClientModule, HttpClientXsrfModule } from '@angular/common/http';
3
3
  import { APP_INITIALIZER, Injector, NgModule } from '@angular/core';
4
4
  import { FormsModule, ReactiveFormsModule } from '@angular/forms';
5
5
  import { RouterModule } from '@angular/router';
6
- import { OAuthModule, OAuthService, OAuthStorage } from 'angular-oauth2-oidc';
7
6
  import { AbstractNgModelComponent } from './abstracts/ng-model.component';
8
7
  import { DynamicLayoutComponent } from './components/dynamic-layout.component';
9
8
  import { ReplaceableRouteContainerComponent } from './components/replaceable-route-container.component';
@@ -16,9 +15,7 @@ import { InitDirective } from './directives/init.directive';
16
15
  import { PermissionDirective } from './directives/permission.directive';
17
16
  import { ReplaceableTemplateDirective } from './directives/replaceable-template.directive';
18
17
  import { StopPropagationDirective } from './directives/stop-propagation.directive';
19
- import { OAuthConfigurationHandler } from './handlers/oauth-configuration.handler';
20
18
  import { RoutesHandler } from './handlers/routes.handler';
21
- import { ApiInterceptor } from './interceptors/api.interceptor';
22
19
  import { LocalizationModule } from './localization.module';
23
20
  import { LocalizationPipe } from './pipes/localization.pipe';
24
21
  import { SortPipe } from './pipes/sort.pipe';
@@ -26,7 +23,6 @@ import { ToInjectorPipe } from './pipes/to-injector.pipe';
26
23
  import { CookieLanguageProvider } from './providers/cookie-language.provider';
27
24
  import { LocaleProvider } from './providers/locale.provider';
28
25
  import { LocalizationService } from './services/localization.service';
29
- import { oAuthStorage } from './strategies/auth-flow.strategy';
30
26
  import { localizationContributor, LOCALIZATIONS } from './tokens/localization.token';
31
27
  import { CORE_OPTIONS, coreOptionsFactory } from './tokens/options.token';
32
28
  import { TENANT_KEY } from './tokens/tenant-key.token';
@@ -36,13 +32,9 @@ import { getInitialData, localeInitializer } from './utils/initial-utils';
36
32
  import { ShortDateTimePipe } from './pipes/short-date-time.pipe';
37
33
  import { ShortTimePipe } from './pipes/short-time.pipe';
38
34
  import { ShortDatePipe } from './pipes/short-date.pipe';
39
- import { TimeoutLimitedOAuthService } from './services/timeout-limited-oauth.service';
40
35
  import { IncludeLocalizationResourcesProvider } from './providers/include-localization-resources.provider';
41
36
  import * as i0 from "@angular/core";
42
37
  import * as i1 from "@angular/common/http";
43
- export function storageFactory() {
44
- return oAuthStorage;
45
- }
46
38
  /**
47
39
  * BaseCoreModule is the module that holds
48
40
  * all imports, declarations, exports, and entryComponents
@@ -51,8 +43,8 @@ export function storageFactory() {
51
43
  */
52
44
  export class BaseCoreModule {
53
45
  }
54
- BaseCoreModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: BaseCoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
55
- BaseCoreModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.3", ngImport: i0, type: BaseCoreModule, declarations: [AbstractNgModelComponent,
46
+ BaseCoreModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: BaseCoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
47
+ BaseCoreModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.4", ngImport: i0, type: BaseCoreModule, declarations: [AbstractNgModelComponent,
56
48
  AutofocusDirective,
57
49
  DynamicLayoutComponent,
58
50
  ForDirective,
@@ -68,8 +60,7 @@ BaseCoreModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version:
68
60
  ToInjectorPipe,
69
61
  ShortDateTimePipe,
70
62
  ShortTimePipe,
71
- ShortDatePipe], imports: [OAuthModule,
72
- CommonModule,
63
+ ShortDatePipe], imports: [CommonModule,
73
64
  HttpClientModule,
74
65
  FormsModule,
75
66
  ReactiveFormsModule,
@@ -97,8 +88,7 @@ BaseCoreModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version:
97
88
  ShortDateTimePipe,
98
89
  ShortTimePipe,
99
90
  ShortDatePipe] });
100
- BaseCoreModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: BaseCoreModule, providers: [LocalizationPipe], imports: [OAuthModule,
101
- CommonModule,
91
+ BaseCoreModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: BaseCoreModule, providers: [LocalizationPipe], imports: [CommonModule,
102
92
  HttpClientModule,
103
93
  FormsModule,
104
94
  ReactiveFormsModule,
@@ -109,7 +99,7 @@ BaseCoreModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version:
109
99
  ReactiveFormsModule,
110
100
  RouterModule,
111
101
  LocalizationModule] });
112
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: BaseCoreModule, decorators: [{
102
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: BaseCoreModule, decorators: [{
113
103
  type: NgModule,
114
104
  args: [{
115
105
  exports: [
@@ -138,7 +128,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImpor
138
128
  ShortDatePipe,
139
129
  ],
140
130
  imports: [
141
- OAuthModule,
142
131
  CommonModule,
143
132
  HttpClientModule,
144
133
  FormsModule,
@@ -174,24 +163,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImpor
174
163
  */
175
164
  export class RootCoreModule {
176
165
  }
177
- RootCoreModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: RootCoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
178
- RootCoreModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.3", ngImport: i0, type: RootCoreModule, imports: [BaseCoreModule, LocalizationModule,
179
- OAuthModule, i1.HttpClientXsrfModule], exports: [BaseCoreModule, LocalizationModule] });
180
- RootCoreModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: RootCoreModule, imports: [BaseCoreModule,
166
+ RootCoreModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: RootCoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
167
+ RootCoreModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.4", ngImport: i0, type: RootCoreModule, imports: [BaseCoreModule, LocalizationModule, i1.HttpClientXsrfModule], exports: [BaseCoreModule, LocalizationModule] });
168
+ RootCoreModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: RootCoreModule, imports: [BaseCoreModule,
181
169
  LocalizationModule,
182
- OAuthModule,
183
170
  HttpClientXsrfModule.withOptions({
184
171
  cookieName: 'XSRF-TOKEN',
185
172
  headerName: 'RequestVerificationToken',
186
173
  }), BaseCoreModule, LocalizationModule] });
187
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: RootCoreModule, decorators: [{
174
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: RootCoreModule, decorators: [{
188
175
  type: NgModule,
189
176
  args: [{
190
177
  exports: [BaseCoreModule, LocalizationModule],
191
178
  imports: [
192
179
  BaseCoreModule,
193
180
  LocalizationModule,
194
- OAuthModule,
195
181
  HttpClientXsrfModule.withOptions({
196
182
  cookieName: 'XSRF-TOKEN',
197
183
  headerName: 'RequestVerificationToken',
@@ -207,7 +193,6 @@ export class CoreModule {
207
193
  return {
208
194
  ngModule: RootCoreModule,
209
195
  providers: [
210
- OAuthModule.forRoot().providers,
211
196
  LocaleProvider,
212
197
  CookieLanguageProvider,
213
198
  {
@@ -219,17 +204,6 @@ export class CoreModule {
219
204
  useFactory: coreOptionsFactory,
220
205
  deps: ['CORE_OPTIONS'],
221
206
  },
222
- {
223
- provide: HTTP_INTERCEPTORS,
224
- useExisting: ApiInterceptor,
225
- multi: true,
226
- },
227
- {
228
- provide: APP_INITIALIZER,
229
- multi: true,
230
- deps: [OAuthConfigurationHandler],
231
- useFactory: noop,
232
- },
233
207
  {
234
208
  provide: APP_INITIALIZER,
235
209
  multi: true,
@@ -254,8 +228,6 @@ export class CoreModule {
254
228
  deps: [RoutesHandler],
255
229
  useFactory: noop,
256
230
  },
257
- { provide: OAuthStorage, useFactory: storageFactory },
258
- { provide: OAuthService, useClass: TimeoutLimitedOAuthService },
259
231
  { provide: TENANT_KEY, useValue: options.tenantKey || '__tenant' },
260
232
  {
261
233
  provide: LOCALIZATIONS,
@@ -263,7 +235,7 @@ export class CoreModule {
263
235
  useValue: localizationContributor(options.localizations),
264
236
  deps: [LocalizationService],
265
237
  },
266
- IncludeLocalizationResourcesProvider
238
+ IncludeLocalizationResourcesProvider,
267
239
  ],
268
240
  };
269
241
  }
@@ -281,14 +253,14 @@ export class CoreModule {
281
253
  };
282
254
  }
283
255
  }
284
- CoreModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: CoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
285
- CoreModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.3", ngImport: i0, type: CoreModule, imports: [BaseCoreModule], exports: [BaseCoreModule] });
286
- CoreModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: CoreModule, imports: [BaseCoreModule, BaseCoreModule] });
287
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: CoreModule, decorators: [{
256
+ CoreModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: CoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
257
+ CoreModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.4", ngImport: i0, type: CoreModule, imports: [BaseCoreModule], exports: [BaseCoreModule] });
258
+ CoreModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: CoreModule, imports: [BaseCoreModule, BaseCoreModule] });
259
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: CoreModule, decorators: [{
288
260
  type: NgModule,
289
261
  args: [{
290
262
  exports: [BaseCoreModule],
291
263
  imports: [BaseCoreModule],
292
264
  }]
293
265
  }] });
294
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvY29yZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pHLE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekYsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM5RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUN4RyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDMUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDekUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzVELE9BQU8sRUFBRSxtQkFBbUIs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Q0FBQyxVQUFVLEVBQWU7UUFDdkMsT0FBTztZQUNMLFFBQVEsRUFBRSxjQUFjO1lBQ3hCLFNBQVMsRUFBRTtnQkFDVDtvQkFDRSxPQUFPLEVBQUUsYUFBYTtvQkFDdEIsS0FBSyxFQUFFLElBQUk7b0JBQ1gsUUFBUSxFQUFFLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUM7b0JBQ3hELElBQUksRUFBRSxDQUFDLG1CQUFtQixDQUFDO2lCQUM1QjthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7O3VHQTlFVSxVQUFVO3dHQUFWLFVBQVUsWUEzQlYsY0FBYyxhQUFkLGNBQWM7d0dBMkJkLFVBQVUsWUFGWCxjQUFjLEVBekJiLGNBQWM7MkZBMkJkLFVBQVU7a0JBSnRCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsY0FBYyxDQUFDO29CQUN6QixPQUFPLEVBQUUsQ0FBQyxjQUFjLENBQUM7aUJBQzFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgSFRUUF9JTlRFUkNFUFRPUlMsIEh0dHBDbGllbnRNb2R1bGUsIEh0dHBDbGllbnRYc3JmTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBBUFBfSU5JVElBTElaRVIsIEluamVjdG9yLCBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgT0F1dGhNb2R1bGUsIE9BdXRoU2VydmljZSwgT0F1dGhTdG9yYWdlIH0gZnJvbSAnYW5ndWxhci1vYXV0aDItb2lkYyc7XHJcbmltcG9ydCB7IEFic3RyYWN0TmdNb2RlbENvbXBvbmVudCB9IGZyb20gJy4vYWJzdHJhY3RzL25nLW1vZGVsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IER5bmFtaWNMYXlvdXRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZHluYW1pYy1sYXlvdXQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUmVwbGFjZWFibGVSb3V0ZUNvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9yZXBsYWNlYWJsZS1yb3V0ZS1jb250YWluZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUm91dGVyT3V0bGV0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3JvdXRlci1vdXRsZXQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQXV0b2ZvY3VzRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2F1dG9mb2N1cy5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBJbnB1dEV2ZW50RGVib3VuY2VEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvZGVib3VuY2UuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgRm9yRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2Zvci5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBGb3JtU3VibWl0RGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2Zvcm0tc3VibWl0LmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEluaXREaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvaW5pdC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBQZXJtaXNzaW9uRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3Blcm1pc3Npb24uZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgUmVwbGFjZWFibGVUZW1wbGF0ZURpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9yZXBsYWNlYWJsZS10ZW1wbGF0ZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBTdG9wUHJvcGFnYXRpb25EaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvc3RvcC1wcm9wYWdhdGlvbi5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBPQXV0aENvbmZpZ3VyYXRpb25IYW5kbGVyIH0gZnJvbSAnLi9oYW5kbGVycy9vYXV0aC1jb25maWd1cmF0aW9uLmhhbmRsZXInO1xyXG5pbXBvcnQgeyBSb3V0ZXNIYW5kbGVyIH0gZnJvbSAnLi9oYW5kbGVycy9yb3V0ZXMuaGFuZGxlcic7XHJcbmltcG9ydCB7IEFwaUludGVyY2VwdG9yIH0gZnJvbSAnLi9pbnRlcmNlcHRvcnMvYXBpLmludGVyY2VwdG9yJztcclxuaW1wb3J0IHsgTG9jYWxpemF0aW9uTW9kdWxlIH0gZnJvbSAnLi9sb2NhbGl6YXRpb24ubW9kdWxlJztcclxuaW1wb3J0IHsgQUJQIH0gZnJvbSAnLi9tb2RlbHMvY29tbW9uJztcclxuaW1wb3J0IHsgTG9jYWxpemF0aW9uUGlwZSB9IGZyb20gJy4vcGlwZXMvbG9jYWxpemF0aW9uLnBpcGUnO1xyXG5pbXBvcnQgeyBTb3J0UGlwZSB9IGZyb20gJy4vcGlwZXMvc29ydC5waXBlJztcclxuaW1wb3J0IHsgVG9JbmplY3RvclBpcGUgfSBmcm9tICcuL3BpcGVzL3RvLWluamVjdG9yLnBpcGUnO1xyXG5pbXBvcnQgeyBDb29raWVMYW5ndWFnZVByb3ZpZGVyIH0gZnJvbSAnLi9wcm92aWRlcnMvY29va2llLWxhbmd1YWdlLnByb3ZpZGVyJztcclxuaW1wb3J0IHsgTG9jYWxlUHJvdmlkZXIgfSBmcm9tICcuL3Byb3ZpZGVycy9sb2NhbGUucHJvdmlkZXInO1xyXG5pbXBvcnQgeyBMb2NhbGl6YXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9sb2NhbGl6YXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IG9BdXRoU3RvcmFnZSB9IGZyb20gJy4vc3RyYXRlZ2llcy9hdXRoLWZsb3cuc3RyYXRlZ3knO1xyXG5pbXBvcnQgeyBsb2NhbGl6YXRpb25Db250cmlidXRvciwgTE9DQUxJWkFUSU9OUyB9IGZyb20gJy4vdG9rZW5zL2xvY2FsaXphdGlvbi50b2tlbic7XHJcbmltcG9ydCB7IENPUkVfT1BUSU9OUywgY29yZU9wdGlvbnNGYWN0b3J5IH0gZnJvbSAnLi90b2tlbnMvb3B0aW9ucy50b2tlbic7XHJcbmltcG9ydCB7IFRFTkFOVF9LRVkgfSBmcm9tICcuL3Rva2Vucy90ZW5hbnQta2V5LnRva2VuJztcclxuaW1wb3J0IHsgbm9vcCB9IGZyb20gJy4vdXRpbHMvY29tbW9uLXV0aWxzJztcclxuaW1wb3J0ICcuL3V0aWxzL2RhdGUtZXh0ZW5zaW9ucyc7XHJcbmltcG9ydCB7IGdldEluaXRpYWxEYXRhLCBsb2NhbGVJbml0aWFsaXplciB9IGZyb20gJy4vdXRpbHMvaW5pdGlhbC11dGlscyc7XHJcbmltcG9ydCB7IFNob3J0RGF0ZVRpbWVQaXBlIH0gZnJvbSAnLi9waXBlcy9zaG9ydC1kYXRlLXRpbWUucGlwZSc7XHJcbmltcG9ydCB7IFNob3J0VGltZVBpcGUgfSBmcm9tICcuL3BpcGVzL3Nob3J0LXRpbWUucGlwZSc7XHJcbmltcG9ydCB7IFNob3J0RGF0ZVBpcGUgfSBmcm9tICcuL3BpcGVzL3Nob3J0LWRhdGUucGlwZSc7XHJcbmltcG9ydCB7IFRpbWVvdXRMaW1pdGVkT0F1dGhTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy90aW1lb3V0LWxpbWl0ZWQtb2F1dGguc2VydmljZSc7XHJcbmltcG9ydCB7IEluY2x1ZGVMb2NhbGl6YXRpb25SZXNvdXJjZXNQcm92aWRlciB9IGZyb20gJy4vcHJvdmlkZXJzL2luY2x1ZGUtbG9jYWxpemF0aW9uLXJlc291cmNlcy5wcm92aWRlcic7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc3RvcmFnZUZhY3RvcnkoKTogT0F1dGhTdG9yYWdlIHtcclxuICByZXR1cm4gb0F1dGhTdG9yYWdlO1xyXG59XHJcblxyXG4vKipcclxuICogQmFzZUNvcmVNb2R1bGUgaXMgdGhlIG1vZHVsZSB0aGF0IGhvbGRzXHJcbiAqIGFsbCBpbXBvcnRzLCBkZWNsYXJhdGlvbnMsIGV4cG9ydHMsIGFuZCBlbnRyeUNvbXBvbmVudHNcclxuICogYnV0IG5vdCB0aGUgcHJvdmlkZXJzLlxyXG4gKiBUaGlzIG1vZHVsZSB3aWxsIGJlIGltcG9ydGVkIGFuZCBleHBvcnRlZCBieSBhbGwgb3RoZXJzLlxyXG4gKi9cclxuQE5nTW9kdWxlKHtcclxuICBleHBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBIdHRwQ2xpZW50TW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgUm91dGVyTW9kdWxlLFxyXG4gICAgTG9jYWxpemF0aW9uTW9kdWxlLFxyXG4gICAgQWJzdHJhY3ROZ01vZGVsQ29tcG9uZW50LFxyXG4gICAgQXV0b2ZvY3VzRGlyZWN0aXZlLFxyXG4gICAgRHluYW1pY0xheW91dENvbXBvbmVudCxcclxuICAgIEZvckRpcmVjdGl2ZSxcclxuICAgIEZvcm1TdWJtaXREaXJlY3RpdmUsXHJcbiAgICBJbml0RGlyZWN0aXZlLFxyXG4gICAgSW5wdXRFdmVudERlYm91bmNlRGlyZWN0aXZlLFxyXG4gICAgUGVybWlzc2lvbkRpcmVjdGl2ZSxcclxuICAgIFJlcGxhY2VhYmxlUm91dGVDb250YWluZXJDb21wb25lbnQsXHJcbiAgICBSZXBsYWNlYWJsZVRlbXBsYXRlRGlyZWN0aXZlLFxyXG4gICAgUm91dGVyT3V0bGV0Q29tcG9uZW50LFxyXG4gICAgU29ydFBpcGUsXHJcbiAgICBTdG9wUHJvcGFnYXRpb25EaXJlY3RpdmUsXHJcbiAgICBUb0luamVjdG9yUGlwZSxcclxuICAgIFNob3J0RGF0ZVRpbWVQaXBlLFxyXG4gICAgU2hvcnRUaW1lUGlwZSxcclxuICAgIFNob3J0RGF0ZVBpcGUsXHJcbiAgXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBPQXV0aE1vZHVsZSxcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEh0dHBDbGllbnRNb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBSb3V0ZXJNb2R1bGUsXHJcbiAgICBMb2NhbGl6YXRpb25Nb2R1bGUsXHJcbiAgXSxcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIEFic3RyYWN0TmdNb2RlbENvbXBvbmVudCxcclxuICAgIEF1dG9mb2N1c0RpcmVjdGl2ZSxcclxuICAgIER5bmFtaWNMYXlvdXRDb21wb25lbnQsXHJcbiAgICBGb3JEaXJlY3RpdmUsXHJcbiAgICBGb3JtU3VibWl0RGlyZWN0aXZlLFxyXG4gICAgSW5pdERpcmVjdGl2ZSxcclxuICAgIElucHV0RXZlbnREZWJvdW5jZURpcmVjdGl2ZSxcclxuICAgIFBlcm1pc3Npb25EaXJlY3RpdmUsXHJcbiAgICBSZXBsYWNlYWJsZVJvdXRlQ29udGFpbmVyQ29tcG9uZW50LFxyXG4gICAgUmVwbGFjZWFibGVUZW1wbGF0ZURpcmVjdGl2ZSxcclxuICAgIFJvdXRlck91dGxldENvbXBvbmVudCxcclxuICAgIFNvcnRQaXBlLFxyXG4gICAgU3RvcFByb3BhZ2F0aW9uRGlyZWN0aXZlLFxyXG4gICAgVG9JbmplY3RvclBpcGUsXHJcbiAgICBTaG9ydERhdGVUaW1lUGlwZSxcclxuICAgIFNob3J0VGltZVBpcGUsXHJcbiAgICBTaG9ydERhdGVQaXBlLFxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbTG9jYWxpemF0aW9uUGlwZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCYXNlQ29yZU1vZHVsZSB7fVxyXG5cclxuLyoqXHJcbiAqIFJvb3RDb3JlTW9kdWxlIGlzIHRoZSBtb2R1bGUgdGhhdCB3aWxsIGJlIHVzZWQgYXQgcm9vdCBsZXZlbFxyXG4gKiBhbmQgaXQgaW50cm9kdWNlcyBpbXBvcnRzIHVzZWZ1bCBhdCByb290IGxldmVsIChlLmcuIE5HWFMpXHJcbiAqL1xyXG5ATmdNb2R1bGUoe1xyXG4gIGV4cG9ydHM6IFtCYXNlQ29yZU1vZHVsZSwgTG9jYWxpemF0aW9uTW9kdWxlXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBCYXNlQ29yZU1vZHVsZSxcclxuICAgIExvY2FsaXphdGlvbk1vZHVsZSxcclxuICAgIE9BdXRoTW9kdWxlLFxyXG4gICAgSHR0cENsaWVudFhzcmZNb2R1bGUud2l0aE9wdGlvbnMoe1xyXG4gICAgICBjb29raWVOYW1lOiAnWFNSRi1UT0tFTicsXHJcbiAgICAgIGhlYWRlck5hbWU6ICdSZXF1ZXN0VmVyaWZpY2F0aW9uVG9rZW4nLFxyXG4gICAgfSksXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFJvb3RDb3JlTW9kdWxlIHt9XHJcblxyXG4vKipcclxuICogQ29yZU1vZHVsZSBpcyB0aGUgbW9kdWxlIHRoYXQgaXMgcHVibGljbHkgYXZhaWxhYmxlXHJcbiAqL1xyXG5ATmdNb2R1bGUoe1xyXG4gIGV4cG9ydHM6IFtCYXNlQ29yZU1vZHVsZV0sXHJcbiAgaW1wb3J0czogW0Jhc2VDb3JlTW9kdWxlXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIENvcmVNb2R1bGUge1xyXG4gIHN0YXRpYyBmb3JSb290KG9wdGlvbnMgPSB7fSBhcyBBQlAuUm9vdCk6IE1vZHVsZVdpdGhQcm92aWRlcnM8Um9vdENvcmVNb2R1bGU+IHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIG5nTW9kdWxlOiBSb290Q29yZU1vZHVsZSxcclxuICAgICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgT0F1dGhNb2R1bGUuZm9yUm9vdCgpLnByb3ZpZGVycyxcclxuICAgICAgICBMb2NhbGVQcm92aWRlcixcclxuICAgICAgICBDb29raWVMYW5ndWFnZVByb3ZpZGVyLFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHByb3ZpZGU6ICdDT1JFX09QVElPTlMnLFxyXG4gICAgICAgICAgdXNlVmFsdWU6IG9wdGlvbnMsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBwcm92aWRlOiBDT1JFX09QVElPTlMsXHJcbiAgICAgICAgICB1c2VGYWN0b3J5OiBjb3JlT3B0aW9uc0ZhY3RvcnksXHJcbiAgICAgICAgICBkZXBzOiBbJ0NPUkVfT1BUSU9OUyddLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgcHJvdmlkZTogSFRUUF9JTlRFUkNFUFRPUlMsXHJcbiAgICAgICAgICB1c2VFeGlzdGluZzogQXBpSW50ZXJjZXB0b3IsXHJcbiAgICAgICAgICBtdWx0aTogdHJ1ZSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcclxuICAgICAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgICAgICAgZGVwczogW09BdXRoQ29uZmlndXJhdGlvbkhhbmRsZXJdLFxyXG4gICAgICAgICAgdXNlRmFjdG9yeTogbm9vcCxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcclxuICAgICAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgICAgICAgZGVwczogW0luamVjdG9yXSxcclxuICAgICAgICAgIHVzZUZhY3Rvcnk6IGdldEluaXRpYWxEYXRhLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLFxyXG4gICAgICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgICAgICBkZXBzOiBbSW5qZWN0b3JdLFxyXG4gICAgICAgICAgdXNlRmFjdG9yeTogbG9jYWxlSW5pdGlhbGl6ZXIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXHJcbiAgICAgICAgICBtdWx0aTogdHJ1ZSxcclxuICAgICAgICAgIGRlcHM6IFtMb2NhbGl6YXRpb25TZXJ2aWNlXSxcclxuICAgICAgICAgIHVzZUZhY3Rvcnk6IG5vb3AsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXHJcbiAgICAgICAgICBtdWx0aTogdHJ1ZSxcclxuICAgICAgICAgIGRlcHM6IFtSb3V0ZXNIYW5kbGVyXSxcclxuICAgICAgICAgIHVzZUZhY3Rvcnk6IG5vb3AsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7IHByb3ZpZGU6IE9BdXRoU3RvcmFnZSwgdXNlRmFjdG9yeTogc3RvcmFnZUZhY3RvcnkgfSxcclxuICAgICAgICB7IHByb3ZpZGU6IE9BdXRoU2VydmljZSwgdXNlQ2xhc3M6IFRpbWVvdXRMaW1pdGVkT0F1dGhTZXJ2aWNlIH0sXHJcbiAgICAgICAgeyBwcm92aWRlOiBURU5BTlRfS0VZLCB1c2VWYWx1ZTogb3B0aW9ucy50ZW5hbnRLZXkgfHwgJ19fdGVuYW50JyB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHByb3ZpZGU6IExPQ0FMSVpBVElPTlMsXHJcbiAgICAgICAgICBtdWx0aTogdHJ1ZSxcclxuICAgICAgICAgIHVzZVZhbHVlOiBsb2NhbGl6YXRpb25Db250cmlidXRvcihvcHRpb25zLmxvY2FsaXphdGlvbnMpLFxyXG4gICAgICAgICAgZGVwczogW0xvY2FsaXphdGlvblNlcnZpY2VdLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgSW5jbHVkZUxvY2FsaXphdGlvblJlc291cmNlc1Byb3ZpZGVyXHJcbiAgICAgIF0sXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGZvckNoaWxkKG9wdGlvbnMgPSB7fSBhcyBBQlAuQ2hpbGQpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPFJvb3RDb3JlTW9kdWxlPiB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBuZ01vZHVsZTogUm9vdENvcmVNb2R1bGUsXHJcbiAgICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIHByb3ZpZGU6IExPQ0FMSVpBVElPTlMsXHJcbiAgICAgICAgICBtdWx0aTogdHJ1ZSxcclxuICAgICAgICAgIHVzZVZhbHVlOiBsb2NhbGl6YXRpb25Db250cmlidXRvcihvcHRpb25zLmxvY2FsaXphdGlvbnMpLFxyXG4gICAgICAgICAgZGVwczogW0xvY2FsaXphdGlvblNlcnZpY2VdLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIF0sXHJcbiAgICB9O1xyXG4gIH1cclxufVxyXG4iXX0=
266
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvY29yZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzlFLE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekYsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUN4RyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDMUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDekUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzVELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQzNGLE9B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QUU7Z0JBQ2xFO29CQUNFLE9BQU8sRUFBRSxhQUFhO29CQUN0QixLQUFLLEVBQUUsSUFBSTtvQkFDWCxRQUFRLEVBQUUsdUJBQXVCLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQztvQkFDeEQsSUFBSSxFQUFFLENBQUMsbUJBQW1CLENBQUM7aUJBQzVCO2dCQUNELG9DQUFvQzthQUNyQztTQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQWU7UUFDdkMsT0FBTztZQUNMLFFBQVEsRUFBRSxjQUFjO1lBQ3hCLFNBQVMsRUFBRTtnQkFDVDtvQkFDRSxPQUFPLEVBQUUsYUFBYTtvQkFDdEIsS0FBSyxFQUFFLElBQUk7b0JBQ1gsUUFBUSxFQUFFLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUM7b0JBQ3hELElBQUksRUFBRSxDQUFDLG1CQUFtQixDQUFDO2lCQUM1QjthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7O3VHQWpFVSxVQUFVO3dHQUFWLFVBQVUsWUExQlYsY0FBYyxhQUFkLGNBQWM7d0dBMEJkLFVBQVUsWUFGWCxjQUFjLEVBeEJiLGNBQWM7MkZBMEJkLFVBQVU7a0JBSnRCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsY0FBYyxDQUFDO29CQUN6QixPQUFPLEVBQUUsQ0FBQyxjQUFjLENBQUM7aUJBQzFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgSHR0cENsaWVudE1vZHVsZSwgSHR0cENsaWVudFhzcmZNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEFQUF9JTklUSUFMSVpFUiwgSW5qZWN0b3IsIE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBBYnN0cmFjdE5nTW9kZWxDb21wb25lbnQgfSBmcm9tICcuL2Fic3RyYWN0cy9uZy1tb2RlbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEeW5hbWljTGF5b3V0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2R5bmFtaWMtbGF5b3V0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFJlcGxhY2VhYmxlUm91dGVDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcmVwbGFjZWFibGUtcm91dGUtY29udGFpbmVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFJvdXRlck91dGxldENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9yb3V0ZXItb3V0bGV0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEF1dG9mb2N1c0RpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9hdXRvZm9jdXMuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgSW5wdXRFdmVudERlYm91bmNlRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2RlYm91bmNlLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEZvckRpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9mb3IuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgRm9ybVN1Ym1pdERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9mb3JtLXN1Ym1pdC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBJbml0RGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2luaXQuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgUGVybWlzc2lvbkRpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9wZXJtaXNzaW9uLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFJlcGxhY2VhYmxlVGVtcGxhdGVEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvcmVwbGFjZWFibGUtdGVtcGxhdGUuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgU3RvcFByb3BhZ2F0aW9uRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3N0b3AtcHJvcGFnYXRpb24uZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgUm91dGVzSGFuZGxlciB9IGZyb20gJy4vaGFuZGxlcnMvcm91dGVzLmhhbmRsZXInO1xyXG5pbXBvcnQgeyBMb2NhbGl6YXRpb25Nb2R1bGUgfSBmcm9tICcuL2xvY2FsaXphdGlvbi5tb2R1bGUnO1xyXG5pbXBvcnQgeyBBQlAgfSBmcm9tICcuL21vZGVscy9jb21tb24nO1xyXG5pbXBvcnQgeyBMb2NhbGl6YXRpb25QaXBlIH0gZnJvbSAnLi9waXBlcy9sb2NhbGl6YXRpb24ucGlwZSc7XHJcbmltcG9ydCB7IFNvcnRQaXBlIH0gZnJvbSAnLi9waXBlcy9zb3J0LnBpcGUnO1xyXG5pbXBvcnQgeyBUb0luamVjdG9yUGlwZSB9IGZyb20gJy4vcGlwZXMvdG8taW5qZWN0b3IucGlwZSc7XHJcbmltcG9ydCB7IENvb2tpZUxhbmd1YWdlUHJvdmlkZXIgfSBmcm9tICcuL3Byb3ZpZGVycy9jb29raWUtbGFuZ3VhZ2UucHJvdmlkZXInO1xyXG5pbXBvcnQgeyBMb2NhbGVQcm92aWRlciB9IGZyb20gJy4vcHJvdmlkZXJzL2xvY2FsZS5wcm92aWRlcic7XHJcbmltcG9ydCB7IExvY2FsaXphdGlvblNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2xvY2FsaXphdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgbG9jYWxpemF0aW9uQ29udHJpYnV0b3IsIExPQ0FMSVpBVElPTlMgfSBmcm9tICcuL3Rva2Vucy9sb2NhbGl6YXRpb24udG9rZW4nO1xyXG5pbXBvcnQgeyBDT1JFX09QVElPTlMsIGNvcmVPcHRpb25zRmFjdG9yeSB9IGZyb20gJy4vdG9rZW5zL29wdGlvbnMudG9rZW4nO1xyXG5pbXBvcnQgeyBURU5BTlRfS0VZIH0gZnJvbSAnLi90b2tlbnMvdGVuYW50LWtleS50b2tlbic7XHJcbmltcG9ydCB7IG5vb3AgfSBmcm9tICcuL3V0aWxzL2NvbW1vbi11dGlscyc7XHJcbmltcG9ydCAnLi91dGlscy9kYXRlLWV4dGVuc2lvbnMnO1xyXG5pbXBvcnQgeyBnZXRJbml0aWFsRGF0YSwgbG9jYWxlSW5pdGlhbGl6ZXIgfSBmcm9tICcuL3V0aWxzL2luaXRpYWwtdXRpbHMnO1xyXG5pbXBvcnQgeyBTaG9ydERhdGVUaW1lUGlwZSB9IGZyb20gJy4vcGlwZXMvc2hvcnQtZGF0ZS10aW1lLnBpcGUnO1xyXG5pbXBvcnQgeyBTaG9ydFRpbWVQaXBlIH0gZnJvbSAnLi9waXBlcy9zaG9ydC10aW1lLnBpcGUnO1xyXG5pbXBvcnQgeyBTaG9ydERhdGVQaXBlIH0gZnJvbSAnLi9waXBlcy9zaG9ydC1kYXRlLnBpcGUnO1xyXG5pbXBvcnQgeyBJbmNsdWRlTG9jYWxpemF0aW9uUmVzb3VyY2VzUHJvdmlkZXIgfSBmcm9tICcuL3Byb3ZpZGVycy9pbmNsdWRlLWxvY2FsaXphdGlvbi1yZXNvdXJjZXMucHJvdmlkZXInO1xyXG5pbXBvcnQgeyBBdXRoR3VhcmQgfSBmcm9tICcuL2Fic3RyYWN0cy9hdXRoLmd1YXJkJztcclxuXHJcbi8qKlxyXG4gKiBCYXNlQ29yZU1vZHVsZSBpcyB0aGUgbW9kdWxlIHRoYXQgaG9sZHNcclxuICogYWxsIGltcG9ydHMsIGRlY2xhcmF0aW9ucywgZXhwb3J0cywgYW5kIGVudHJ5Q29tcG9uZW50c1xyXG4gKiBidXQgbm90IHRoZSBwcm92aWRlcnMuXHJcbiAqIFRoaXMgbW9kdWxlIHdpbGwgYmUgaW1wb3J0ZWQgYW5kIGV4cG9ydGVkIGJ5IGFsbCBvdGhlcnMuXHJcbiAqL1xyXG5ATmdNb2R1bGUoe1xyXG4gIGV4cG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEh0dHBDbGllbnRNb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBSb3V0ZXJNb2R1bGUsXHJcbiAgICBMb2NhbGl6YXRpb25Nb2R1bGUsXHJcbiAgICBBYnN0cmFjdE5nTW9kZWxDb21wb25lbnQsXHJcbiAgICBBdXRvZm9jdXNEaXJlY3RpdmUsXHJcbiAgICBEeW5hbWljTGF5b3V0Q29tcG9uZW50LFxyXG4gICAgRm9yRGlyZWN0aXZlLFxyXG4gICAgRm9ybVN1Ym1pdERpcmVjdGl2ZSxcclxuICAgIEluaXREaXJlY3RpdmUsXHJcbiAgICBJbnB1dEV2ZW50RGVib3VuY2VEaXJlY3RpdmUsXHJcbiAgICBQZXJtaXNzaW9uRGlyZWN0aXZlLFxyXG4gICAgUmVwbGFjZWFibGVSb3V0ZUNvbnRhaW5lckNvbXBvbmVudCxcclxuICAgIFJlcGxhY2VhYmxlVGVtcGxhdGVEaXJlY3RpdmUsXHJcbiAgICBSb3V0ZXJPdXRsZXRDb21wb25lbnQsXHJcbiAgICBTb3J0UGlwZSxcclxuICAgIFN0b3BQcm9wYWdhdGlvbkRpcmVjdGl2ZSxcclxuICAgIFRvSW5qZWN0b3JQaXBlLFxyXG4gICAgU2hvcnREYXRlVGltZVBpcGUsXHJcbiAgICBTaG9ydFRpbWVQaXBlLFxyXG4gICAgU2hvcnREYXRlUGlwZSxcclxuICBdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEh0dHBDbGllbnRNb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBSb3V0ZXJNb2R1bGUsXHJcbiAgICBMb2NhbGl6YXRpb25Nb2R1bGUsXHJcbiAgXSxcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIEFic3RyYWN0TmdNb2RlbENvbXBvbmVudCxcclxuICAgIEF1dG9mb2N1c0RpcmVjdGl2ZSxcclxuICAgIER5bmFtaWNMYXlvdXRDb21wb25lbnQsXHJcbiAgICBGb3JEaXJlY3RpdmUsXHJcbiAgICBGb3JtU3VibWl0RGlyZWN0aXZlLFxyXG4gICAgSW5pdERpcmVjdGl2ZSxcclxuICAgIElucHV0RXZlbnREZWJvdW5jZURpcmVjdGl2ZSxcclxuICAgIFBlcm1pc3Npb25EaXJlY3RpdmUsXHJcbiAgICBSZXBsYWNlYWJsZVJvdXRlQ29udGFpbmVyQ29tcG9uZW50LFxyXG4gICAgUmVwbGFjZWFibGVUZW1wbGF0ZURpcmVjdGl2ZSxcclxuICAgIFJvdXRlck91dGxldENvbXBvbmVudCxcclxuICAgIFNvcnRQaXBlLFxyXG4gICAgU3RvcFByb3BhZ2F0aW9uRGlyZWN0aXZlLFxyXG4gICAgVG9JbmplY3RvclBpcGUsXHJcbiAgICBTaG9ydERhdGVUaW1lUGlwZSxcclxuICAgIFNob3J0VGltZVBpcGUsXHJcbiAgICBTaG9ydERhdGVQaXBlLFxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbTG9jYWxpemF0aW9uUGlwZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCYXNlQ29yZU1vZHVsZSB7fVxyXG5cclxuLyoqXHJcbiAqIFJvb3RDb3JlTW9kdWxlIGlzIHRoZSBtb2R1bGUgdGhhdCB3aWxsIGJlIHVzZWQgYXQgcm9vdCBsZXZlbFxyXG4gKiBhbmQgaXQgaW50cm9kdWNlcyBpbXBvcnRzIHVzZWZ1bCBhdCByb290IGxldmVsIChlLmcuIE5HWFMpXHJcbiAqL1xyXG5ATmdNb2R1bGUoe1xyXG4gIGV4cG9ydHM6IFtCYXNlQ29yZU1vZHVsZSwgTG9jYWxpemF0aW9uTW9kdWxlXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBCYXNlQ29yZU1vZHVsZSxcclxuICAgIExvY2FsaXphdGlvbk1vZHVsZSxcclxuICAgIEh0dHBDbGllbnRYc3JmTW9kdWxlLndpdGhPcHRpb25zKHtcclxuICAgICAgY29va2llTmFtZTogJ1hTUkYtVE9LRU4nLFxyXG4gICAgICBoZWFkZXJOYW1lOiAnUmVxdWVzdFZlcmlmaWNhdGlvblRva2VuJyxcclxuICAgIH0pLFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSb290Q29yZU1vZHVsZSB7fVxyXG5cclxuLyoqXHJcbiAqIENvcmVNb2R1bGUgaXMgdGhlIG1vZHVsZSB0aGF0IGlzIHB1YmxpY2x5IGF2YWlsYWJsZVxyXG4gKi9cclxuQE5nTW9kdWxlKHtcclxuICBleHBvcnRzOiBbQmFzZUNvcmVNb2R1bGVdLFxyXG4gIGltcG9ydHM6IFtCYXNlQ29yZU1vZHVsZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb3JlTW9kdWxlIHtcclxuICBzdGF0aWMgZm9yUm9vdChvcHRpb25zID0ge30gYXMgQUJQLlJvb3QpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPFJvb3RDb3JlTW9kdWxlPiB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBuZ01vZHVsZTogUm9vdENvcmVNb2R1bGUsXHJcbiAgICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIExvY2FsZVByb3ZpZGVyLFxyXG4gICAgICAgIENvb2tpZUxhbmd1YWdlUHJvdmlkZXIsXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgcHJvdmlkZTogJ0NPUkVfT1BUSU9OUycsXHJcbiAgICAgICAgICB1c2VWYWx1ZTogb3B0aW9ucyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHByb3ZpZGU6IENPUkVfT1BUSU9OUyxcclxuICAgICAgICAgIHVzZUZhY3Rvcnk6IGNvcmVPcHRpb25zRmFjdG9yeSxcclxuICAgICAgICAgIGRlcHM6IFsnQ09SRV9PUFRJT05TJ10sXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXHJcbiAgICAgICAgICBtdWx0aTogdHJ1ZSxcclxuICAgICAgICAgIGRlcHM6IFtJbmplY3Rvcl0sXHJcbiAgICAgICAgICB1c2VGYWN0b3J5OiBnZXRJbml0aWFsRGF0YSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcclxuICAgICAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgICAgICAgZGVwczogW0luamVjdG9yXSxcclxuICAgICAgICAgIHVzZUZhY3Rvcnk6IGxvY2FsZUluaXRpYWxpemVyLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLFxyXG4gICAgICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgICAgICBkZXBzOiBbTG9jYWxpemF0aW9uU2VydmljZV0sXHJcbiAgICAgICAgICB1c2VGYWN0b3J5OiBub29wLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLFxyXG4gICAgICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgICAgICBkZXBzOiBbUm91dGVzSGFuZGxlcl0sXHJcbiAgICAgICAgICB1c2VGYWN0b3J5OiBub29wLFxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIHsgcHJvdmlkZTogVEVOQU5UX0tFWSwgdXNlVmFsdWU6IG9wdGlvbnMudGVuYW50S2V5IHx8ICdfX3RlbmFudCcgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBwcm92aWRlOiBMT0NBTElaQVRJT05TLFxyXG4gICAgICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgICAgICB1c2VWYWx1ZTogbG9jYWxpemF0aW9uQ29udHJpYnV0b3Iob3B0aW9ucy5sb2NhbGl6YXRpb25zKSxcclxuICAgICAgICAgIGRlcHM6IFtMb2NhbGl6YXRpb25TZXJ2aWNlXSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIEluY2x1ZGVMb2NhbGl6YXRpb25SZXNvdXJjZXNQcm92aWRlcixcclxuICAgICAgXSxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgZm9yQ2hpbGQob3B0aW9ucyA9IHt9IGFzIEFCUC5DaGlsZCk6IE1vZHVsZVdpdGhQcm92aWRlcnM8Um9vdENvcmVNb2R1bGU+IHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIG5nTW9kdWxlOiBSb290Q29yZU1vZHVsZSxcclxuICAgICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgcHJvdmlkZTogTE9DQUxJWkFUSU9OUyxcclxuICAgICAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgICAgICAgdXNlVmFsdWU6IGxvY2FsaXphdGlvbkNvbnRyaWJ1dG9yKG9wdGlvbnMubG9jYWxpemF0aW9ucyksXHJcbiAgICAgICAgICBkZXBzOiBbTG9jYWxpemF0aW9uU2VydmljZV0sXHJcbiAgICAgICAgfSxcclxuICAgICAgXSxcclxuICAgIH07XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -15,9 +15,9 @@ export class AutofocusDirective {
15
15
  setTimeout(() => this.elRef.nativeElement.focus(), this.delay);
16
16
  }
17
17
  }
18
- AutofocusDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: AutofocusDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
19
- AutofocusDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.3", type: AutofocusDirective, selector: "[autofocus]", inputs: { delay: ["autofocus", "delay"] }, ngImport: i0 });
20
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: AutofocusDirective, decorators: [{
18
+ AutofocusDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AutofocusDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
19
+ AutofocusDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: AutofocusDirective, selector: "[autofocus]", inputs: { delay: ["autofocus", "delay"] }, ngImport: i0 });
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AutofocusDirective, decorators: [{
21
21
  type: Directive,
22
22
  args: [{
23
23
  // eslint-disable-next-line @angular-eslint/directive-selector
@@ -18,9 +18,9 @@ export class InputEventDebounceDirective {
18
18
  });
19
19
  }
20
20
  }
21
- InputEventDebounceDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: InputEventDebounceDirective, deps: [{ token: i0.ElementRef }, { token: i1.SubscriptionService }], target: i0.ɵɵFactoryTarget.Directive });
22
- InputEventDebounceDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.3", type: InputEventDebounceDirective, selector: "[input.debounce]", inputs: { debounce: "debounce" }, outputs: { debounceEvent: "input.debounce" }, providers: [SubscriptionService], ngImport: i0 });
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: InputEventDebounceDirective, decorators: [{
21
+ InputEventDebounceDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: InputEventDebounceDirective, deps: [{ token: i0.ElementRef }, { token: i1.SubscriptionService }], target: i0.ɵɵFactoryTarget.Directive });
22
+ InputEventDebounceDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: InputEventDebounceDirective, selector: "[input.debounce]", inputs: { debounce: "debounce" }, outputs: { debounceEvent: "input.debounce" }, providers: [SubscriptionService], ngImport: i0 });
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: InputEventDebounceDirective, decorators: [{
24
24
  type: Directive,
25
25
  args: [{
26
26
  // eslint-disable-next-line @angular-eslint/directive-selector
@@ -116,9 +116,9 @@ export class ForDirective {
116
116
  }
117
117
  }
118
118
  }
119
- ForDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: ForDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: i0.IterableDiffers }], target: i0.ɵɵFactoryTarget.Directive });
120
- ForDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.3", type: ForDirective, selector: "[abpFor]", inputs: { items: ["abpForOf", "items"], orderBy: ["abpForOrderBy", "orderBy"], orderDir: ["abpForOrderDir", "orderDir"], filterBy: ["abpForFilterBy", "filterBy"], filterVal: ["abpForFilterVal", "filterVal"], trackBy: ["abpForTrackBy", "trackBy"], compareBy: ["abpForCompareBy", "compareBy"], emptyRef: ["abpForEmptyRef", "emptyRef"] }, usesOnChanges: true, ngImport: i0 });
121
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: ForDirective, decorators: [{
119
+ ForDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ForDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: i0.IterableDiffers }], target: i0.ɵɵFactoryTarget.Directive });
120
+ ForDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: ForDirective, selector: "[abpFor]", inputs: { items: ["abpForOf", "items"], orderBy: ["abpForOrderBy", "orderBy"], orderDir: ["abpForOrderDir", "orderDir"], filterBy: ["abpForFilterBy", "filterBy"], filterVal: ["abpForFilterVal", "filterVal"], trackBy: ["abpForTrackBy", "trackBy"], compareBy: ["abpForCompareBy", "compareBy"], emptyRef: ["abpForEmptyRef", "emptyRef"] }, usesOnChanges: true, ngImport: i0 });
121
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ForDirective, decorators: [{
122
122
  type: Directive,
123
123
  args: [{
124
124
  selector: '[abpFor]',
@@ -42,9 +42,9 @@ export class FormSubmitDirective {
42
42
  this.cdRef.detectChanges();
43
43
  }
44
44
  }
45
- FormSubmitDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: FormSubmitDirective, deps: [{ token: i1.FormGroupDirective, self: true }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i2.SubscriptionService }], target: i0.ɵɵFactoryTarget.Directive });
46
- FormSubmitDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.3", type: FormSubmitDirective, selector: "form[ngSubmit][formGroup]", inputs: { debounce: "debounce", notValidateOnSubmit: "notValidateOnSubmit", markAsDirtyWhenSubmit: "markAsDirtyWhenSubmit" }, outputs: { ngSubmit: "ngSubmit" }, providers: [SubscriptionService], ngImport: i0 });
47
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: FormSubmitDirective, decorators: [{
45
+ FormSubmitDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: FormSubmitDirective, deps: [{ token: i1.FormGroupDirective, self: true }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i2.SubscriptionService }], target: i0.ɵɵFactoryTarget.Directive });
46
+ FormSubmitDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: FormSubmitDirective, selector: "form[ngSubmit][formGroup]", inputs: { debounce: "debounce", notValidateOnSubmit: "notValidateOnSubmit", markAsDirtyWhenSubmit: "markAsDirtyWhenSubmit" }, outputs: { ngSubmit: "ngSubmit" }, providers: [SubscriptionService], ngImport: i0 });
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: FormSubmitDirective, decorators: [{
48
48
  type: Directive,
49
49
  args: [{
50
50
  // eslint-disable-next-line @angular-eslint/directive-selector
@@ -9,9 +9,9 @@ export class InitDirective {
9
9
  this.init.emit(this.elRef);
10
10
  }
11
11
  }
12
- InitDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: InitDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
13
- InitDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.3", type: InitDirective, selector: "[abpInit]", outputs: { init: "abpInit" }, ngImport: i0 });
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: InitDirective, decorators: [{
12
+ InitDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: InitDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
13
+ InitDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: InitDirective, selector: "[abpInit]", outputs: { init: "abpInit" }, ngImport: i0 });
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: InitDirective, decorators: [{
15
15
  type: Directive,
16
16
  args: [{ selector: '[abpInit]' }]
17
17
  }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { init: [{
@@ -50,9 +50,9 @@ export class PermissionDirective {
50
50
  this.rendered = true;
51
51
  }
52
52
  }
53
- PermissionDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: PermissionDirective, deps: [{ token: i0.TemplateRef, optional: true }, { token: i0.ViewContainerRef }, { token: i1.PermissionService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
54
- PermissionDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.3", type: PermissionDirective, selector: "[abpPermission]", inputs: { condition: ["abpPermission", "condition"], runChangeDetection: ["abpPermissionRunChangeDetection", "runChangeDetection"] }, usesOnChanges: true, ngImport: i0 });
55
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: PermissionDirective, decorators: [{
53
+ PermissionDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: PermissionDirective, deps: [{ token: i0.TemplateRef, optional: true }, { token: i0.ViewContainerRef }, { token: i1.PermissionService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
54
+ PermissionDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: PermissionDirective, selector: "[abpPermission]", inputs: { condition: ["abpPermission", "condition"], runChangeDetection: ["abpPermissionRunChangeDetection", "runChangeDetection"] }, usesOnChanges: true, ngImport: i0 });
55
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: PermissionDirective, decorators: [{
56
56
  type: Directive,
57
57
  args: [{
58
58
  selector: '[abpPermission]',