@abp/ng.core 9.0.3 → 9.1.0-rc.1

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 (187) hide show
  1. package/fesm2022/abp-ng.core-testing.mjs +14 -14
  2. package/fesm2022/abp-ng.core.mjs +267 -283
  3. package/fesm2022/abp-ng.core.mjs.map +1 -1
  4. package/lib/providers/cookie-language.provider.d.ts +2 -3
  5. package/lib/utils/initial-utils.d.ts +2 -3
  6. package/package.json +2 -8
  7. package/esm2022/abp-ng.core.mjs +0 -5
  8. package/esm2022/lib/abstracts/abstract-guard.mjs +0 -2
  9. package/esm2022/lib/abstracts/auth-error-filter.mjs +0 -25
  10. package/esm2022/lib/abstracts/auth-response.model.mjs +0 -2
  11. package/esm2022/lib/abstracts/auth.guard.mjs +0 -24
  12. package/esm2022/lib/abstracts/auth.service.mjs +0 -67
  13. package/esm2022/lib/abstracts/index.mjs +0 -7
  14. package/esm2022/lib/abstracts/ng-model.component.mjs +0 -58
  15. package/esm2022/lib/clients/http.client.mjs +0 -28
  16. package/esm2022/lib/clients/index.mjs +0 -2
  17. package/esm2022/lib/components/dynamic-layout.component.mjs +0 -115
  18. package/esm2022/lib/components/index.mjs +0 -4
  19. package/esm2022/lib/components/replaceable-route-container.component.mjs +0 -42
  20. package/esm2022/lib/components/router-outlet.component.mjs +0 -15
  21. package/esm2022/lib/constants/default-layouts.mjs +0 -6
  22. package/esm2022/lib/constants/different-locales.mjs +0 -337
  23. package/esm2022/lib/constants/index.mjs +0 -3
  24. package/esm2022/lib/core.module.mjs +0 -203
  25. package/esm2022/lib/directives/autofocus.directive.mjs +0 -30
  26. package/esm2022/lib/directives/caps-lock.directive.mjs +0 -41
  27. package/esm2022/lib/directives/debounce.directive.mjs +0 -36
  28. package/esm2022/lib/directives/for.directive.mjs +0 -160
  29. package/esm2022/lib/directives/form-submit.directive.mjs +0 -77
  30. package/esm2022/lib/directives/index.mjs +0 -11
  31. package/esm2022/lib/directives/init.directive.mjs +0 -24
  32. package/esm2022/lib/directives/permission.directive.mjs +0 -75
  33. package/esm2022/lib/directives/replaceable-template.directive.mjs +0 -133
  34. package/esm2022/lib/directives/show-password.directive.mjs +0 -25
  35. package/esm2022/lib/directives/stop-propagation.directive.mjs +0 -32
  36. package/esm2022/lib/enums/common.mjs +0 -2
  37. package/esm2022/lib/enums/index.mjs +0 -2
  38. package/esm2022/lib/guards/index.mjs +0 -2
  39. package/esm2022/lib/guards/permission.guard.mjs +0 -62
  40. package/esm2022/lib/handlers/index.mjs +0 -2
  41. package/esm2022/lib/handlers/routes.handler.mjs +0 -51
  42. package/esm2022/lib/interceptors/api.interceptor.mjs +0 -27
  43. package/esm2022/lib/interceptors/index.mjs +0 -2
  44. package/esm2022/lib/localization.module.mjs +0 -16
  45. package/esm2022/lib/models/auth-events.mjs +0 -29
  46. package/esm2022/lib/models/auth.mjs +0 -2
  47. package/esm2022/lib/models/common.mjs +0 -2
  48. package/esm2022/lib/models/dtos.mjs +0 -137
  49. package/esm2022/lib/models/environment.mjs +0 -2
  50. package/esm2022/lib/models/index.mjs +0 -12
  51. package/esm2022/lib/models/localization.mjs +0 -2
  52. package/esm2022/lib/models/replaceable-components.mjs +0 -2
  53. package/esm2022/lib/models/rest.mjs +0 -2
  54. package/esm2022/lib/models/session.mjs +0 -2
  55. package/esm2022/lib/models/sort.mjs +0 -2
  56. package/esm2022/lib/models/utility.mjs +0 -2
  57. package/esm2022/lib/pipes/index.mjs +0 -8
  58. package/esm2022/lib/pipes/localization.pipe.mjs +0 -33
  59. package/esm2022/lib/pipes/safe-html.pipe.mjs +0 -23
  60. package/esm2022/lib/pipes/short-date-time.pipe.mjs +0 -34
  61. package/esm2022/lib/pipes/short-date.pipe.mjs +0 -34
  62. package/esm2022/lib/pipes/short-time.pipe.mjs +0 -34
  63. package/esm2022/lib/pipes/sort.pipe.mjs +0 -49
  64. package/esm2022/lib/pipes/to-injector.pipe.mjs +0 -29
  65. package/esm2022/lib/providers/cookie-language.provider.mjs +0 -22
  66. package/esm2022/lib/providers/core-module-config.provider.mjs +0 -135
  67. package/esm2022/lib/providers/include-localization-resources.provider.mjs +0 -6
  68. package/esm2022/lib/providers/index.mjs +0 -5
  69. package/esm2022/lib/providers/locale.provider.mjs +0 -26
  70. package/esm2022/lib/proxy/pages/abp/multi-tenancy/abp-tenant.service.mjs +0 -27
  71. package/esm2022/lib/proxy/pages/abp/multi-tenancy/index.mjs +0 -2
  72. package/esm2022/lib/proxy/volo/abp/asp-net-core/mvc/api-exploring/abp-api-definition.service.mjs +0 -24
  73. package/esm2022/lib/proxy/volo/abp/asp-net-core/mvc/api-exploring/index.mjs +0 -2
  74. package/esm2022/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-configuration.service.mjs +0 -24
  75. package/esm2022/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-localization.service.mjs +0 -24
  76. package/esm2022/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/index.mjs +0 -6
  77. package/esm2022/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/models.mjs +0 -2
  78. package/esm2022/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/object-extending/index.mjs +0 -2
  79. package/esm2022/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/object-extending/models.mjs +0 -2
  80. package/esm2022/lib/proxy/volo/abp/asp-net-core/mvc/multi-tenancy/index.mjs +0 -2
  81. package/esm2022/lib/proxy/volo/abp/asp-net-core/mvc/multi-tenancy/models.mjs +0 -2
  82. package/esm2022/lib/proxy/volo/abp/http/modeling/index.mjs +0 -2
  83. package/esm2022/lib/proxy/volo/abp/http/modeling/models.mjs +0 -2
  84. package/esm2022/lib/proxy/volo/abp/localization/index.mjs +0 -2
  85. package/esm2022/lib/proxy/volo/abp/localization/models.mjs +0 -2
  86. package/esm2022/lib/proxy/volo/abp/models.mjs +0 -2
  87. package/esm2022/lib/services/config-state.service.mjs +0 -189
  88. package/esm2022/lib/services/content-projection.service.mjs +0 -17
  89. package/esm2022/lib/services/dom-insertion.service.mjs +0 -34
  90. package/esm2022/lib/services/environment.service.mjs +0 -54
  91. package/esm2022/lib/services/http-error-reporter.service.mjs +0 -29
  92. package/esm2022/lib/services/http-wait.service.mjs +0 -75
  93. package/esm2022/lib/services/index.mjs +0 -26
  94. package/esm2022/lib/services/internet-connection-service.mjs +0 -32
  95. package/esm2022/lib/services/lazy-load.service.mjs +0 -40
  96. package/esm2022/lib/services/list.service.mjs +0 -125
  97. package/esm2022/lib/services/local-storage-listener.service.mjs +0 -22
  98. package/esm2022/lib/services/local-storage.service.mjs +0 -32
  99. package/esm2022/lib/services/localization.service.mjs +0 -218
  100. package/esm2022/lib/services/multi-tenancy.service.mjs +0 -48
  101. package/esm2022/lib/services/permission.service.mjs +0 -63
  102. package/esm2022/lib/services/replaceable-components.service.mjs +0 -49
  103. package/esm2022/lib/services/resource-wait.service.mjs +0 -39
  104. package/esm2022/lib/services/rest.service.mjs +0 -78
  105. package/esm2022/lib/services/router-events.service.mjs +0 -51
  106. package/esm2022/lib/services/router-wait.service.mjs +0 -51
  107. package/esm2022/lib/services/routes.service.mjs +0 -200
  108. package/esm2022/lib/services/session-state.service.mjs +0 -84
  109. package/esm2022/lib/services/subscription.service.mjs +0 -43
  110. package/esm2022/lib/services/title-strategy.service.mjs +0 -46
  111. package/esm2022/lib/services/track-by.service.mjs +0 -21
  112. package/esm2022/lib/services/window.service.mjs +0 -41
  113. package/esm2022/lib/strategies/container.strategy.mjs +0 -38
  114. package/esm2022/lib/strategies/content-security.strategy.mjs +0 -30
  115. package/esm2022/lib/strategies/content.strategy.mjs +0 -52
  116. package/esm2022/lib/strategies/context.strategy.mjs +0 -37
  117. package/esm2022/lib/strategies/cross-origin.strategy.mjs +0 -28
  118. package/esm2022/lib/strategies/dom.strategy.mjs +0 -27
  119. package/esm2022/lib/strategies/index.mjs +0 -9
  120. package/esm2022/lib/strategies/loading.strategy.mjs +0 -58
  121. package/esm2022/lib/strategies/projection.strategy.mjs +0 -80
  122. package/esm2022/lib/tokens/app-config.token.mjs +0 -3
  123. package/esm2022/lib/tokens/check-authentication-state.mjs +0 -3
  124. package/esm2022/lib/tokens/compare-func.token.mjs +0 -31
  125. package/esm2022/lib/tokens/cookie-language-key.token.mjs +0 -5
  126. package/esm2022/lib/tokens/dynamic-layout.token.mjs +0 -3
  127. package/esm2022/lib/tokens/http-context.token.mjs +0 -3
  128. package/esm2022/lib/tokens/include-localization-resources.token.mjs +0 -3
  129. package/esm2022/lib/tokens/index.mjs +0 -20
  130. package/esm2022/lib/tokens/list.token.mjs +0 -3
  131. package/esm2022/lib/tokens/localization.token.mjs +0 -10
  132. package/esm2022/lib/tokens/lodaer-delay.token.mjs +0 -3
  133. package/esm2022/lib/tokens/manage-profile.token.mjs +0 -3
  134. package/esm2022/lib/tokens/options.token.mjs +0 -8
  135. package/esm2022/lib/tokens/others-group.token.mjs +0 -3
  136. package/esm2022/lib/tokens/pipe-to-login.token.mjs +0 -3
  137. package/esm2022/lib/tokens/queue.token.mjs +0 -3
  138. package/esm2022/lib/tokens/set-token-response-to-storage.token.mjs +0 -6
  139. package/esm2022/lib/tokens/tenant-key.token.mjs +0 -3
  140. package/esm2022/lib/tokens/tenant-not-found-by-name.mjs +0 -3
  141. package/esm2022/lib/tokens/title-strategy-disable-project-name.token.mjs +0 -3
  142. package/esm2022/lib/utils/array-utils.mjs +0 -7
  143. package/esm2022/lib/utils/common-utils.mjs +0 -35
  144. package/esm2022/lib/utils/date-extensions.mjs +0 -6
  145. package/esm2022/lib/utils/date-utils.mjs +0 -13
  146. package/esm2022/lib/utils/environment-utils.mjs +0 -36
  147. package/esm2022/lib/utils/factory-utils.mjs +0 -24
  148. package/esm2022/lib/utils/file-utils.mjs +0 -15
  149. package/esm2022/lib/utils/form-utils.mjs +0 -12
  150. package/esm2022/lib/utils/generator-utils.mjs +0 -43
  151. package/esm2022/lib/utils/http-utils.mjs +0 -19
  152. package/esm2022/lib/utils/index.mjs +0 -21
  153. package/esm2022/lib/utils/initial-utils.mjs +0 -60
  154. package/esm2022/lib/utils/internal-store-utils.mjs +0 -37
  155. package/esm2022/lib/utils/lazy-load-utils.mjs +0 -40
  156. package/esm2022/lib/utils/localization-utils.mjs +0 -49
  157. package/esm2022/lib/utils/multi-tenancy-utils.mjs +0 -93
  158. package/esm2022/lib/utils/number-utils.mjs +0 -4
  159. package/esm2022/lib/utils/object-utils.mjs +0 -37
  160. package/esm2022/lib/utils/queue.mjs +0 -41
  161. package/esm2022/lib/utils/route-utils.mjs +0 -26
  162. package/esm2022/lib/utils/string-utils.mjs +0 -30
  163. package/esm2022/lib/utils/tree-utils.mjs +0 -70
  164. package/esm2022/lib/validators/age.validator.mjs +0 -14
  165. package/esm2022/lib/validators/credit-card.validator.mjs +0 -21
  166. package/esm2022/lib/validators/index.mjs +0 -29
  167. package/esm2022/lib/validators/range.validator.mjs +0 -15
  168. package/esm2022/lib/validators/required.validator.mjs +0 -15
  169. package/esm2022/lib/validators/string-length.validator.mjs +0 -15
  170. package/esm2022/lib/validators/unique-character.validator.mjs +0 -13
  171. package/esm2022/lib/validators/url.validator.mjs +0 -17
  172. package/esm2022/lib/validators/username.validator.mjs +0 -14
  173. package/esm2022/locale/abp-ng.core-locale.mjs +0 -5
  174. package/esm2022/locale/public-api.mjs +0 -2
  175. package/esm2022/locale/utils/register-locale.mjs +0 -101
  176. package/esm2022/public-api.mjs +0 -28
  177. package/esm2022/testing/abp-ng.core-testing.mjs +0 -5
  178. package/esm2022/testing/lib/core-testing.module.mjs +0 -76
  179. package/esm2022/testing/lib/pipes/index.mjs +0 -2
  180. package/esm2022/testing/lib/pipes/localization.pipe.mjs +0 -20
  181. package/esm2022/testing/lib/services/index.mjs +0 -3
  182. package/esm2022/testing/lib/services/mock-permission.service.mjs +0 -35
  183. package/esm2022/testing/lib/services/mock-rest.service.mjs +0 -31
  184. package/esm2022/testing/lib/utils/clear-page.util.mjs +0 -10
  185. package/esm2022/testing/lib/utils/index.mjs +0 -3
  186. package/esm2022/testing/lib/utils/wait.util.mjs +0 -5
  187. package/esm2022/testing/public-api.mjs +0 -5
@@ -1,133 +0,0 @@
1
- import { Directive, Injector, Input, TemplateRef, ViewContainerRef, } from '@angular/core';
2
- import compare from 'just-compare';
3
- import { filter } from 'rxjs/operators';
4
- import { ReplaceableComponentsService } from '../services/replaceable-components.service';
5
- import { SubscriptionService } from '../services/subscription.service';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "../services/replaceable-components.service";
8
- import * as i2 from "../services/subscription.service";
9
- export class ReplaceableTemplateDirective {
10
- constructor(injector, templateRef, vcRef, replaceableComponents, subscription) {
11
- this.injector = injector;
12
- this.templateRef = templateRef;
13
- this.vcRef = vcRef;
14
- this.replaceableComponents = replaceableComponents;
15
- this.subscription = subscription;
16
- this.providedData = {
17
- inputs: {},
18
- outputs: {},
19
- };
20
- this.context = {};
21
- this.defaultComponentSubscriptions = {};
22
- this.initialized = false;
23
- this.context = {
24
- initTemplate: (ref) => {
25
- this.resetDefaultComponent();
26
- this.defaultComponentRef = ref;
27
- this.setDefaultComponentInputs();
28
- },
29
- };
30
- }
31
- ngOnInit() {
32
- const component$ = this.replaceableComponents
33
- .get$(this.data.componentKey)
34
- .pipe(filter((res = {}) => !this.initialized || !compare(res.component, this.externalComponent)));
35
- this.subscription.addOne(component$, (res = {}) => {
36
- this.vcRef.clear();
37
- this.externalComponent = res.component;
38
- if (this.defaultComponentRef) {
39
- this.resetDefaultComponent();
40
- }
41
- if (res.component) {
42
- this.setProvidedData();
43
- const customInjector = Injector.create({
44
- providers: [{ provide: 'REPLACEABLE_DATA', useValue: this.providedData }],
45
- parent: this.injector,
46
- });
47
- const ref = this.vcRef.createComponent(res.component, {
48
- index: 0,
49
- injector: customInjector,
50
- });
51
- }
52
- else {
53
- this.vcRef.createEmbeddedView(this.templateRef, this.context);
54
- }
55
- this.initialized = true;
56
- });
57
- }
58
- ngOnChanges(changes) {
59
- if (changes?.data?.currentValue?.inputs && this.defaultComponentRef) {
60
- this.setDefaultComponentInputs();
61
- }
62
- }
63
- setDefaultComponentInputs() {
64
- if (!this.defaultComponentRef || (!this.data.inputs && !this.data.outputs))
65
- return;
66
- if (this.data.inputs) {
67
- for (const key in this.data.inputs) {
68
- if (Object.prototype.hasOwnProperty.call(this.data.inputs, key)) {
69
- if (!compare(this.defaultComponentRef[key], this.data.inputs[key].value)) {
70
- this.defaultComponentRef[key] = this.data.inputs[key].value;
71
- }
72
- }
73
- }
74
- }
75
- if (this.data.outputs) {
76
- for (const key in this.data.outputs) {
77
- if (Object.prototype.hasOwnProperty.call(this.data.outputs, key)) {
78
- if (!this.defaultComponentSubscriptions[key]) {
79
- this.defaultComponentSubscriptions[key] = this.defaultComponentRef[key].subscribe((value) => {
80
- this.data.outputs?.[key](value);
81
- });
82
- }
83
- }
84
- }
85
- }
86
- }
87
- setProvidedData() {
88
- this.providedData = { outputs: {}, ...this.data, inputs: {} };
89
- if (!this.data.inputs)
90
- return;
91
- Object.defineProperties(this.providedData.inputs, {
92
- ...Object.keys(this.data.inputs).reduce((acc, key) => ({
93
- ...acc,
94
- [key]: {
95
- enumerable: true,
96
- configurable: true,
97
- get: () => this.data.inputs?.[key]?.value,
98
- ...(this.data.inputs?.[key]?.twoWay && {
99
- set: (newValue) => {
100
- if (this.data.inputs?.[key]) {
101
- this.data.inputs[key].value = newValue;
102
- }
103
- if (this.data.outputs?.[`${key}Change`]) {
104
- this.data.outputs[`${key}Change`](newValue);
105
- }
106
- },
107
- }),
108
- },
109
- }), {}),
110
- });
111
- }
112
- resetDefaultComponent() {
113
- Object.keys(this.defaultComponentSubscriptions).forEach(key => {
114
- this.defaultComponentSubscriptions[key].unsubscribe();
115
- });
116
- this.defaultComponentSubscriptions = {};
117
- this.defaultComponentRef = null;
118
- }
119
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: ReplaceableTemplateDirective, deps: [{ token: i0.Injector }, { token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: i1.ReplaceableComponentsService }, { token: i2.SubscriptionService }], target: i0.ɵɵFactoryTarget.Directive }); }
120
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.5", type: ReplaceableTemplateDirective, isStandalone: true, selector: "[abpReplaceableTemplate]", inputs: { data: ["abpReplaceableTemplate", "data"] }, providers: [SubscriptionService], usesOnChanges: true, ngImport: i0 }); }
121
- }
122
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: ReplaceableTemplateDirective, decorators: [{
123
- type: Directive,
124
- args: [{
125
- standalone: true,
126
- selector: '[abpReplaceableTemplate]',
127
- providers: [SubscriptionService],
128
- }]
129
- }], ctorParameters: () => [{ type: i0.Injector }, { type: i0.TemplateRef }, { type: i0.ViewContainerRef }, { type: i1.ReplaceableComponentsService }, { type: i2.SubscriptionService }], propDecorators: { data: [{
130
- type: Input,
131
- args: ['abpReplaceableTemplate']
132
- }] } });
133
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwbGFjZWFibGUtdGVtcGxhdGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL2RpcmVjdGl2ZXMvcmVwbGFjZWFibGUtdGVtcGxhdGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsUUFBUSxFQUNSLEtBQUssRUFJTCxXQUFXLEVBRVgsZ0JBQWdCLEdBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sT0FBTyxNQUFNLGNBQWMsQ0FBQztBQUVuQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHeEMsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDMUYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7QUFPdkUsTUFBTSxPQUFPLDRCQUE0QjtJQW1CdkMsWUFDVSxRQUFrQixFQUNsQixXQUE2QixFQUM3QixLQUF1QixFQUN2QixxQkFBbUQsRUFDbkQsWUFBaUM7UUFKakMsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixnQkFBVyxHQUFYLFdBQVcsQ0FBa0I7UUFDN0IsVUFBSyxHQUFMLEtBQUssQ0FBa0I7UUFDdkIsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUE4QjtRQUNuRCxpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFwQjNDLGlCQUFZLEdBQUc7WUFDYixNQUFNLEVBQUUsRUFBRTtZQUNWLE9BQU8sRUFBRSxFQUFFO1NBQytDLENBQUM7UUFFN0QsWUFBTyxHQUFHLEVBQVMsQ0FBQztRQU1wQixrQ0FBNkIsR0FBRyxFQUFrQyxDQUFDO1FBRW5FLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBU2xCLElBQUksQ0FBQyxPQUFPLEdBQUc7WUFDYixZQUFZLEVBQUUsQ0FBQyxHQUFRLEVBQUUsRUFBRTtnQkFDekIsSUFBSSxD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QUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3hELENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLDZCQUE2QixHQUFHLEVBQWtDLENBQUM7UUFDeEUsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQztJQUNsQyxDQUFDOzhHQTlJVSw0QkFBNEI7a0dBQTVCLDRCQUE0Qiw2SEFGNUIsQ0FBQyxtQkFBbUIsQ0FBQzs7MkZBRXJCLDRCQUE0QjtrQkFMeEMsU0FBUzttQkFBQztvQkFDVCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLDBCQUEwQjtvQkFDcEMsU0FBUyxFQUFFLENBQUMsbUJBQW1CLENBQUM7aUJBQ2pDO21OQUdDLElBQUk7c0JBREgsS0FBSzt1QkFBQyx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIERpcmVjdGl2ZSxcclxuICBJbmplY3RvcixcclxuICBJbnB1dCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25Jbml0LFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgVGVtcGxhdGVSZWYsXHJcbiAgVHlwZSxcclxuICBWaWV3Q29udGFpbmVyUmVmLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgY29tcGFyZSBmcm9tICdqdXN0LWNvbXBhcmUnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBBQlAgfSBmcm9tICcuLi9tb2RlbHMvY29tbW9uJztcclxuaW1wb3J0IHsgUmVwbGFjZWFibGVDb21wb25lbnRzIH0gZnJvbSAnLi4vbW9kZWxzL3JlcGxhY2VhYmxlLWNvbXBvbmVudHMnO1xyXG5pbXBvcnQgeyBSZXBsYWNlYWJsZUNvbXBvbmVudHNTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvcmVwbGFjZWFibGUtY29tcG9uZW50cy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3N1YnNjcmlwdGlvbi5zZXJ2aWNlJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgc2VsZWN0b3I6ICdbYWJwUmVwbGFjZWFibGVUZW1wbGF0ZV0nLFxyXG4gIHByb3ZpZGVyczogW1N1YnNjcmlwdGlvblNlcnZpY2VdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVwbGFjZWFibGVUZW1wbGF0ZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuICBASW5wdXQoJ2FicFJlcGxhY2VhYmxlVGVtcGxhdGUnKVxyXG4gIGRhdGEhOiBSZXBsYWNlYWJsZUNvbXBvbmVudHMuUmVwbGFjZWFibGVUZW1wbGF0ZURpcmVjdGl2ZUlucHV0PGFueSwgYW55PjtcclxuXHJcbiAgcHJvdmlkZWREYXRhID0ge1xyXG4gICAgaW5wdXRzOiB7fSxcclxuICAgIG91dHB1dHM6IHt9LFxyXG4gIH0gYXMgUmVwbGFjZWFibGVDb21wb25lbnRzLlJlcGxhY2VhYmxlVGVtcGxhdGVEYXRhPGFueSwgYW55PjtcclxuXHJcbiAgY29udGV4dCA9IHt9IGFzIGFueTtcclxuXHJcbiAgZXh0ZXJuYWxDb21wb25lbnQhOiBUeXBlPGFueT47XHJcblxyXG4gIGRlZmF1bHRDb21wb25lbnRSZWY6IGFueTtcclxuXHJcbiAgZGVmYXVsdENvbXBvbmVudFN1YnNjcmlwdGlvbnMgPSB7fSBhcyBBQlAuRGljdGlvbmFyeTxTdWJzY3JpcHRpb24+O1xyXG5cclxuICBpbml0aWFsaXplZCA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgcHJpdmF0ZSB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PixcclxuICAgIHByaXZhdGUgdmNSZWY6IFZpZXdDb250YWluZXJSZWYsXHJcbiAgICBwcml2YXRlIHJlcGxhY2VhYmxlQ29tcG9uZW50czogUmVwbGFjZWFibGVDb21wb25lbnRzU2VydmljZSxcclxuICAgIHByaXZhdGUgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb25TZXJ2aWNlLFxyXG4gICkge1xyXG4gICAgdGhpcy5jb250ZXh0ID0ge1xyXG4gICAgICBpbml0VGVtcGxhdGU6IChyZWY6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMucmVzZXREZWZhdWx0Q29tcG9uZW50KCk7XHJcbiAgICAgICAgdGhpcy5kZWZhdWx0Q29tcG9uZW50UmVmID0gcmVmO1xyXG4gICAgICAgIHRoaXMuc2V0RGVmYXVsdENvbXBvbmVudElucHV0cygpO1xyXG4gICAgICB9LFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgY29uc3QgY29tcG9uZW50JCA9IHRoaXMucmVwbGFjZWFibGVDb21wb25lbnRzXHJcbiAgICAgIC5nZXQkKHRoaXMuZGF0YS5jb21wb25lbnRLZXkpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIGZpbHRlcihcclxuICAgICAgICAgIChyZXMgPSB7fSBhcyBSZXBsYWNlYWJsZUNvbXBvbmVudHMuUmVwbGFjZWFibGVDb21wb25lbnQpID0+XHJcbiAgICAgICAgICAgICF0aGlzLmluaXRpYWxpemVkIHx8ICFjb21wYXJlKHJlcy5jb21wb25lbnQsIHRoaXMuZXh0ZXJuYWxDb21wb25lbnQpLFxyXG4gICAgICAgICksXHJcbiAgICAgICk7XHJcblxyXG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkT25lKFxyXG4gICAgICBjb21wb25lbnQkLFxyXG4gICAgICAocmVzID0ge30gYXMgUmVwbGFjZWFibGVDb21wb25lbnRzLlJlcGxhY2VhYmxlQ29tcG9uZW50KSA9PiB7XHJcbiAgICAgICAgdGhpcy52Y1JlZi5jbGVhcigpO1xyXG4gICAgICAgIHRoaXMuZXh0ZXJuYWxDb21wb25lbnQgPSByZXMuY29tcG9uZW50O1xyXG4gICAgICAgIGlmICh0aGlzLmRlZmF1bHRDb21wb25lbnRSZWYpIHtcclxuICAgICAgICAgIHRoaXMucmVzZXREZWZhdWx0Q29tcG9uZW50KCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAocmVzLmNvbXBvbmVudCkge1xyXG4gICAgICAgICAgdGhpcy5zZXRQcm92aWRlZERhdGEoKTtcclxuICAgICAgICAgIGNvbnN0IGN1c3RvbUluamVjdG9yID0gSW5qZWN0b3IuY3JlYXRlKHtcclxuICAgICAgICAgICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiAnUkVQTEFDRUFCTEVfREFUQScsIHVzZVZhbHVlOiB0aGlzLnByb3ZpZGVkRGF0YSB9XSxcclxuICAgICAgICAgICAgcGFyZW50OiB0aGlzLmluamVjdG9yLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBjb25zdCByZWYgPSB0aGlzLnZjUmVmLmNyZWF0ZUNvbXBvbmVudChyZXMuY29tcG9uZW50LCB7XHJcbiAgICAgICAgICAgIGluZGV4OiAwLFxyXG4gICAgICAgICAgICBpbmplY3RvcjogY3VzdG9tSW5qZWN0b3IsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy52Y1JlZi5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy50ZW1wbGF0ZVJlZiwgdGhpcy5jb250ZXh0KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlO1xyXG4gICAgICB9LFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgIGlmIChjaGFuZ2VzPy5kYXRhPy5jdXJyZW50VmFsdWU/LmlucHV0cyAmJiB0aGlzLmRlZmF1bHRDb21wb25lbnRSZWYpIHtcclxuICAgICAgdGhpcy5zZXREZWZhdWx0Q29tcG9uZW50SW5wdXRzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXREZWZhdWx0Q29tcG9uZW50SW5wdXRzKCkge1xyXG4gICAgaWYgKCF0aGlzLmRlZmF1bHRDb21wb25lbnRSZWYgfHwgKCF0aGlzLmRhdGEuaW5wdXRzICYmICF0aGlzLmRhdGEub3V0cHV0cykpIHJldHVybjtcclxuXHJcbiAgICBpZiAodGhpcy5kYXRhLmlucHV0cykge1xyXG4gICAgICBmb3IgKGNvbnN0IGtleSBpbiB0aGlzLmRhdGEuaW5wdXRzKSB7XHJcbiAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0aGlzLmRhdGEuaW5wdXRzLCBrZXkpKSB7XHJcbiAgICAgICAgICBpZiAoIWNvbXBhcmUodGhpcy5kZWZhdWx0Q29tcG9uZW50UmVmW2tleV0sIHRoaXMuZGF0YS5pbnB1dHNba2V5XS52YWx1ZSkpIHtcclxuICAgICAgICAgICAgdGhpcy5kZWZhdWx0Q29tcG9uZW50UmVmW2tleV0gPSB0aGlzLmRhdGEuaW5wdXRzW2tleV0udmFsdWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuZGF0YS5vdXRwdXRzKSB7XHJcbiAgICAgIGZvciAoY29uc3Qga2V5IGluIHRoaXMuZGF0YS5vdXRwdXRzKSB7XHJcbiAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0aGlzLmRhdGEub3V0cHV0cywga2V5KSkge1xyXG4gICAgICAgICAgaWYgKCF0aGlzLmRlZmF1bHRDb21wb25lbnRTdWJzY3JpcHRpb25zW2tleV0pIHtcclxuICAgICAgICAgICAgdGhpcy5kZWZhdWx0Q29tcG9uZW50U3Vic2NyaXB0aW9uc1trZXldID0gdGhpcy5kZWZhdWx0Q29tcG9uZW50UmVmW2tleV0uc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAgICh2YWx1ZTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGEub3V0cHV0cz8uW2tleV0odmFsdWUpO1xyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRQcm92aWRlZERhdGEoKSB7XHJcbiAgICB0aGlzLnByb3ZpZGVkRGF0YSA9IHsgb3V0cHV0czoge30sIC4uLnRoaXMuZGF0YSwgaW5wdXRzOiB7fSB9O1xyXG5cclxuICAgIGlmICghdGhpcy5kYXRhLmlucHV0cykgcmV0dXJuO1xyXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXModGhpcy5wcm92aWRlZERhdGEuaW5wdXRzLCB7XHJcbiAgICAgIC4uLk9iamVjdC5rZXlzKHRoaXMuZGF0YS5pbnB1dHMpLnJlZHVjZShcclxuICAgICAgICAoYWNjLCBrZXkpID0+ICh7XHJcbiAgICAgICAgICAuLi5hY2MsXHJcbiAgICAgICAgICBba2V5XToge1xyXG4gICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxyXG4gICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXHJcbiAgICAgICAgICAgIGdldDogKCkgPT4gdGhpcy5kYXRhLmlucHV0cz8uW2tleV0/LnZhbHVlLFxyXG4gICAgICAgICAgICAuLi4odGhpcy5kYXRhLmlucHV0cz8uW2tleV0/LnR3b1dheSAmJiB7XHJcbiAgICAgICAgICAgICAgc2V0OiAobmV3VmFsdWU6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZGF0YS5pbnB1dHM/LltrZXldKSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuZGF0YS5pbnB1dHNba2V5XS52YWx1ZSA9IG5ld1ZhbHVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZGF0YS5vdXRwdXRzPy5bYCR7a2V5fUNoYW5nZWBdKSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuZGF0YS5vdXRwdXRzW2Ake2tleX1DaGFuZ2VgXShuZXdWYWx1ZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIHt9LFxyXG4gICAgICApLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICByZXNldERlZmF1bHRDb21wb25lbnQoKSB7XHJcbiAgICBPYmplY3Qua2V5cyh0aGlzLmRlZmF1bHRDb21wb25lbnRTdWJzY3JpcHRpb25zKS5mb3JFYWNoKGtleSA9PiB7XHJcbiAgICAgIHRoaXMuZGVmYXVsdENvbXBvbmVudFN1YnNjcmlwdGlvbnNba2V5XS51bnN1YnNjcmliZSgpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmRlZmF1bHRDb21wb25lbnRTdWJzY3JpcHRpb25zID0ge30gYXMgQUJQLkRpY3Rpb25hcnk8U3Vic2NyaXB0aW9uPjtcclxuICAgIHRoaXMuZGVmYXVsdENvbXBvbmVudFJlZiA9IG51bGw7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,25 +0,0 @@
1
- import { Directive, ElementRef, Input, inject } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class ShowPasswordDirective {
4
- constructor() {
5
- this.elementRef = inject(ElementRef);
6
- }
7
- set abpShowPassword(visible) {
8
- const element = this.elementRef.nativeElement;
9
- if (!element)
10
- return;
11
- element.type = visible ? 'text' : 'password';
12
- }
13
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: ShowPasswordDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
14
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.5", type: ShowPasswordDirective, isStandalone: true, selector: "[abpShowPassword]", inputs: { abpShowPassword: "abpShowPassword" }, ngImport: i0 }); }
15
- }
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: ShowPasswordDirective, decorators: [{
17
- type: Directive,
18
- args: [{
19
- standalone: true,
20
- selector: '[abpShowPassword]',
21
- }]
22
- }], propDecorators: { abpShowPassword: [{
23
- type: Input
24
- }] } });
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvdy1wYXNzd29yZC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvZGlyZWN0aXZlcy9zaG93LXBhc3N3b3JkLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU1yRSxNQUFNLE9BQU8scUJBQXFCO0lBSmxDO1FBS3FCLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7S0FRcEQ7SUFOQyxJQUFhLGVBQWUsQ0FBQyxPQUFnQjtRQUMzQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWlDLENBQUM7UUFDbEUsSUFBSSxDQUFDLE9BQU87WUFBRSxPQUFPO1FBRXJCLE9BQU8sQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQztJQUMvQyxDQUFDOzhHQVJVLHFCQUFxQjtrR0FBckIscUJBQXFCOzsyRkFBckIscUJBQXFCO2tCQUpqQyxTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsbUJBQW1CO2lCQUM5Qjs4QkFJYyxlQUFlO3NCQUEzQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbnB1dCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIHNlbGVjdG9yOiAnW2FicFNob3dQYXNzd29yZF0nLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2hvd1Bhc3N3b3JkRGlyZWN0aXZlIHtcclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmKTtcclxuXHJcbiAgQElucHV0KCkgc2V0IGFicFNob3dQYXNzd29yZCh2aXNpYmxlOiBib29sZWFuKSB7XHJcbiAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTElucHV0RWxlbWVudDtcclxuICAgIGlmICghZWxlbWVudCkgcmV0dXJuO1xyXG5cclxuICAgIGVsZW1lbnQudHlwZSA9IHZpc2libGUgPyAndGV4dCcgOiAncGFzc3dvcmQnO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,32 +0,0 @@
1
- import { Directive, ElementRef, EventEmitter, Output } from '@angular/core';
2
- import { fromEvent } from 'rxjs';
3
- import { SubscriptionService } from '../services/subscription.service';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "../services/subscription.service";
6
- export class StopPropagationDirective {
7
- constructor(el, subscription) {
8
- this.el = el;
9
- this.subscription = subscription;
10
- this.stopPropEvent = new EventEmitter();
11
- }
12
- ngOnInit() {
13
- this.subscription.addOne(fromEvent(this.el.nativeElement, 'click'), event => {
14
- event.stopPropagation();
15
- this.stopPropEvent.emit(event);
16
- });
17
- }
18
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: StopPropagationDirective, deps: [{ token: i0.ElementRef }, { token: i1.SubscriptionService }], target: i0.ɵɵFactoryTarget.Directive }); }
19
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.5", type: StopPropagationDirective, isStandalone: true, selector: "[click.stop]", outputs: { stopPropEvent: "click.stop" }, providers: [SubscriptionService], ngImport: i0 }); }
20
- }
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: StopPropagationDirective, decorators: [{
22
- type: Directive,
23
- args: [{
24
- standalone: true,
25
- selector: '[click.stop]',
26
- providers: [SubscriptionService],
27
- }]
28
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.SubscriptionService }], propDecorators: { stopPropEvent: [{
29
- type: Output,
30
- args: ['click.stop']
31
- }] } });
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcC1wcm9wYWdhdGlvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvZGlyZWN0aXZlcy9zdG9wLXByb3BhZ2F0aW9uLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7OztBQU92RSxNQUFNLE9BQU8sd0JBQXdCO0lBR25DLFlBQW9CLEVBQWMsRUFBVSxZQUFpQztRQUF6RCxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQVUsaUJBQVksR0FBWixZQUFZLENBQXFCO1FBRjlDLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQWMsQ0FBQztJQUVFLENBQUM7SUFFakYsUUFBUTtRQUNOLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBYSxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRTtZQUN0RixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzhHQVZVLHdCQUF3QjtrR0FBeEIsd0JBQXdCLHFHQUZ4QixDQUFDLG1CQUFtQixDQUFDOzsyRkFFckIsd0JBQXdCO2tCQUxwQyxTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsY0FBYztvQkFDeEIsU0FBUyxFQUFFLENBQUMsbUJBQW1CLENBQUM7aUJBQ2pDO2lIQUVnQyxhQUFhO3NCQUEzQyxNQUFNO3VCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvblNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9zdWJzY3JpcHRpb24uc2VydmljZSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIHNlbGVjdG9yOiAnW2NsaWNrLnN0b3BdJyxcclxuICBwcm92aWRlcnM6IFtTdWJzY3JpcHRpb25TZXJ2aWNlXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFN0b3BQcm9wYWdhdGlvbkRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQE91dHB1dCgnY2xpY2suc3RvcCcpIHJlYWRvbmx5IHN0b3BQcm9wRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsIHByaXZhdGUgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb25TZXJ2aWNlKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZE9uZShmcm9tRXZlbnQ8TW91c2VFdmVudD4odGhpcy5lbC5uYXRpdmVFbGVtZW50LCAnY2xpY2snKSwgZXZlbnQgPT4ge1xyXG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgdGhpcy5zdG9wUHJvcEV2ZW50LmVtaXQoZXZlbnQpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL2VudW1zL2NvbW1vbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGVudW0gZUxheW91dFR5cGUge1xyXG4gIGFjY291bnQgPSAnYWNjb3VudCcsXHJcbiAgYXBwbGljYXRpb24gPSAnYXBwbGljYXRpb24nLFxyXG4gIGVtcHR5ID0gJ2VtcHR5JyxcclxufVxyXG5leHBvcnQgY29uc3QgZW51bSBlVGhlbWVTaGFyZWRDb21wb25lbnRzIHtcclxuICBBcHBsaWNhdGlvbkxheW91dENvbXBvbmVudCA9ICdUaGVtZS5BcHBsaWNhdGlvbkxheW91dENvbXBvbmVudCcsXHJcbiAgQWNjb3VudExheW91dENvbXBvbmVudCA9ICdUaGVtZS5BY2NvdW50TGF5b3V0Q29tcG9uZW50JyxcclxuICBFbXB0eUxheW91dENvbXBvbmVudCA9ICdUaGVtZS5FbXB0eUxheW91dENvbXBvbmVudCcsXHJcbn1cclxuIl19
@@ -1,2 +0,0 @@
1
- export * from './common';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvZW51bXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxVQUFVLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NvbW1vbic7XHJcbiJdfQ==
@@ -1,2 +0,0 @@
1
- export * from './permission.guard';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvZ3VhcmRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsb0JBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3Blcm1pc3Npb24uZ3VhcmQnO1xyXG4iXX0=
@@ -1,62 +0,0 @@
1
- import { Injectable, inject } from '@angular/core';
2
- import { Router, } from '@angular/router';
3
- import { of } from 'rxjs';
4
- import { tap } from 'rxjs/operators';
5
- import { AuthService } from '../abstracts';
6
- import { findRoute, getRoutePath } from '../utils/route-utils';
7
- import { RoutesService, PermissionService, HttpErrorReporterService } from '../services';
8
- import * as i0 from "@angular/core";
9
- /**
10
- * @deprecated Use `permissionGuard` *function* instead.
11
- */
12
- export class PermissionGuard {
13
- constructor() {
14
- this.router = inject(Router);
15
- this.routesService = inject(RoutesService);
16
- this.authService = inject(AuthService);
17
- this.permissionService = inject(PermissionService);
18
- this.httpErrorReporter = inject(HttpErrorReporterService);
19
- }
20
- canActivate(route, state) {
21
- let { requiredPolicy } = route.data || {};
22
- if (!requiredPolicy) {
23
- const routeFound = findRoute(this.routesService, getRoutePath(this.router, state.url));
24
- requiredPolicy = routeFound?.requiredPolicy;
25
- }
26
- if (!requiredPolicy)
27
- return of(true);
28
- return this.permissionService.getGrantedPolicy$(requiredPolicy).pipe(tap(access => {
29
- if (!access && this.authService.isAuthenticated) {
30
- this.httpErrorReporter.reportError({ status: 403 });
31
- }
32
- }));
33
- }
34
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: PermissionGuard, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
35
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: PermissionGuard, providedIn: 'root' }); }
36
- }
37
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: PermissionGuard, decorators: [{
38
- type: Injectable,
39
- args: [{
40
- providedIn: 'root',
41
- }]
42
- }] });
43
- export const permissionGuard = (route, state) => {
44
- const router = inject(Router);
45
- const routesService = inject(RoutesService);
46
- const authService = inject(AuthService);
47
- const permissionService = inject(PermissionService);
48
- const httpErrorReporter = inject(HttpErrorReporterService);
49
- let { requiredPolicy } = route.data || {};
50
- if (!requiredPolicy) {
51
- const routeFound = findRoute(routesService, getRoutePath(router, state.url));
52
- requiredPolicy = routeFound?.requiredPolicy;
53
- }
54
- if (!requiredPolicy)
55
- return of(true);
56
- return permissionService.getGrantedPolicy$(requiredPolicy).pipe(tap(access => {
57
- if (!access && authService.isAuthenticated) {
58
- httpErrorReporter.reportError({ status: 403 });
59
- }
60
- }));
61
- };
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi9ndWFyZHMvcGVybWlzc2lvbi5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBR0wsTUFBTSxHQUVQLE1BQU0saUJBQWlCLENBQUM7QUFFekIsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLFdBQVcsRUFBYSxNQUFNLGNBQWMsQ0FBQztBQUN0RCxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxhQUFhLENBQUM7O0FBQ3pGOztHQUVHO0FBSUgsTUFBTSxPQUFPLGVBQWU7SUFINUI7UUFJcUIsV0FBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN4QixrQkFBYSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN0QyxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNsQyxzQkFBaUIsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUM5QyxzQkFBaUIsR0FBRyxNQUFNLENBQUMsd0JBQXdCLENBQUMsQ0FBQztLQW9CekU7SUFsQkMsV0FBVyxDQUFDLEtBQTZCLEVBQUUsS0FBMEI7UUFDbkUsSUFBSSxFQUFFLGNBQWMsRUFBRSxHQUFHLEtBQUssQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO1FBRTFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNwQixNQUFNLFVBQVUsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUN2RixjQUFjLEdBQUcsVUFBVSxFQUFFLGNBQWMsQ0FBQztRQUM5QyxDQUFDO1FBRUQsSUFBSSxDQUFDLGNBQWM7WUFBRSxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVyQyxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsQ0FBQyxJQUFJLENBQ2xFLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNYLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLEVBQUUsQ0FBQztnQkFDaEQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQXVCLENBQUMsQ0FBQztZQUMzRSxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7OEdBeEJVLGVBQWU7a0hBQWYsZUFBZSxjQUZkLE1BQU07OzJGQUVQLGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COztBQTRCRCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQWtCLENBQzVDLEtBQTZCLEVBQzdCLEtBQTBCLEVBQzFCLEVBQUU7SUFDRixNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDOUIsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzVDLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN4QyxNQUFNLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3BELE1BQU0saUJBQWlCLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixDQUFDLENBQUM7SUFFM0QsSUFBSSxFQUFFLGNBQWMsRUFBRSxHQUFHLEtBQUssQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO0lBRTFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNwQixNQUFNLFVBQVUsR0FBRyxTQUFTLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDN0UsY0FBYyxHQUFHLFVBQVUsRUFBRSxjQUFjLENBQUM7SUFDOUMsQ0FBQztJQUVELElBQUksQ0FBQyxjQUFjO1FBQUUsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFckMsT0FBTyxpQkFBaUIsQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsQ0FBQyxJQUFJLENBQzdELEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUNYLElBQUksQ0FBQyxNQUFNLElBQUksV0FBVyxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQzNDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQXVCLENBQUMsQ0FBQztRQUN0RSxDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQztBQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXHJcbiAgQ2FuQWN0aXZhdGVGbixcclxuICBSb3V0ZXIsXHJcbiAgUm91dGVyU3RhdGVTbmFwc2hvdCxcclxufSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSwgSUFicEd1YXJkIH0gZnJvbSAnLi4vYWJzdHJhY3RzJztcclxuaW1wb3J0IHsgZmluZFJvdXRlLCBnZXRSb3V0ZVBhdGggfSBmcm9tICcuLi91dGlscy9yb3V0ZS11dGlscyc7XHJcbmltcG9ydCB7IFJvdXRlc1NlcnZpY2UsIFBlcm1pc3Npb25TZXJ2aWNlLCBIdHRwRXJyb3JSZXBvcnRlclNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcyc7XHJcbi8qKlxyXG4gKiBAZGVwcmVjYXRlZCBVc2UgYHBlcm1pc3Npb25HdWFyZGAgKmZ1bmN0aW9uKiBpbnN0ZWFkLlxyXG4gKi9cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFBlcm1pc3Npb25HdWFyZCBpbXBsZW1lbnRzIElBYnBHdWFyZCB7XHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xyXG4gIHByb3RlY3RlZCByZWFkb25seSByb3V0ZXNTZXJ2aWNlID0gaW5qZWN0KFJvdXRlc1NlcnZpY2UpO1xyXG4gIHByb3RlY3RlZCByZWFkb25seSBhdXRoU2VydmljZSA9IGluamVjdChBdXRoU2VydmljZSk7XHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHBlcm1pc3Npb25TZXJ2aWNlID0gaW5qZWN0KFBlcm1pc3Npb25TZXJ2aWNlKTtcclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaHR0cEVycm9yUmVwb3J0ZXIgPSBpbmplY3QoSHR0cEVycm9yUmVwb3J0ZXJTZXJ2aWNlKTtcclxuXHJcbiAgY2FuQWN0aXZhdGUocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90KTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcbiAgICBsZXQgeyByZXF1aXJlZFBvbGljeSB9ID0gcm91dGUuZGF0YSB8fCB7fTtcclxuXHJcbiAgICBpZiAoIXJlcXVpcmVkUG9saWN5KSB7XHJcbiAgICAgIGNvbnN0IHJvdXRlRm91bmQgPSBmaW5kUm91dGUodGhpcy5yb3V0ZXNTZXJ2aWNlLCBnZXRSb3V0ZVBhdGgodGhpcy5yb3V0ZXIsIHN0YXRlLnVybCkpO1xyXG4gICAgICByZXF1aXJlZFBvbGljeSA9IHJvdXRlRm91bmQ/LnJlcXVpcmVkUG9saWN5O1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghcmVxdWlyZWRQb2xpY3kpIHJldHVybiBvZih0cnVlKTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5wZXJtaXNzaW9uU2VydmljZS5nZXRHcmFudGVkUG9saWN5JChyZXF1aXJlZFBvbGljeSkucGlwZShcclxuICAgICAgdGFwKGFjY2VzcyA9PiB7XHJcbiAgICAgICAgaWYgKCFhY2Nlc3MgJiYgdGhpcy5hdXRoU2VydmljZS5pc0F1dGhlbnRpY2F0ZWQpIHtcclxuICAgICAgICAgIHRoaXMuaHR0cEVycm9yUmVwb3J0ZXIucmVwb3J0RXJyb3IoeyBzdGF0dXM6IDQwMyB9IGFzIEh0dHBFcnJvclJlc3BvbnNlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pLFxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBwZXJtaXNzaW9uR3VhcmQ6IENhbkFjdGl2YXRlRm4gPSAoXHJcbiAgcm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXHJcbiAgc3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QsXHJcbikgPT4ge1xyXG4gIGNvbnN0IHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xyXG4gIGNvbnN0IHJvdXRlc1NlcnZpY2UgPSBpbmplY3QoUm91dGVzU2VydmljZSk7XHJcbiAgY29uc3QgYXV0aFNlcnZpY2UgPSBpbmplY3QoQXV0aFNlcnZpY2UpO1xyXG4gIGNvbnN0IHBlcm1pc3Npb25TZXJ2aWNlID0gaW5qZWN0KFBlcm1pc3Npb25TZXJ2aWNlKTtcclxuICBjb25zdCBodHRwRXJyb3JSZXBvcnRlciA9IGluamVjdChIdHRwRXJyb3JSZXBvcnRlclNlcnZpY2UpO1xyXG5cclxuICBsZXQgeyByZXF1aXJlZFBvbGljeSB9ID0gcm91dGUuZGF0YSB8fCB7fTtcclxuXHJcbiAgaWYgKCFyZXF1aXJlZFBvbGljeSkge1xyXG4gICAgY29uc3Qgcm91dGVGb3VuZCA9IGZpbmRSb3V0ZShyb3V0ZXNTZXJ2aWNlLCBnZXRSb3V0ZVBhdGgocm91dGVyLCBzdGF0ZS51cmwpKTtcclxuICAgIHJlcXVpcmVkUG9saWN5ID0gcm91dGVGb3VuZD8ucmVxdWlyZWRQb2xpY3k7XHJcbiAgfVxyXG5cclxuICBpZiAoIXJlcXVpcmVkUG9saWN5KSByZXR1cm4gb2YodHJ1ZSk7XHJcblxyXG4gIHJldHVybiBwZXJtaXNzaW9uU2VydmljZS5nZXRHcmFudGVkUG9saWN5JChyZXF1aXJlZFBvbGljeSkucGlwZShcclxuICAgIHRhcChhY2Nlc3MgPT4ge1xyXG4gICAgICBpZiAoIWFjY2VzcyAmJiBhdXRoU2VydmljZS5pc0F1dGhlbnRpY2F0ZWQpIHtcclxuICAgICAgICBodHRwRXJyb3JSZXBvcnRlci5yZXBvcnRFcnJvcih7IHN0YXR1czogNDAzIH0gYXMgSHR0cEVycm9yUmVzcG9uc2UpO1xyXG4gICAgICB9XHJcbiAgICB9KSxcclxuICApO1xyXG59O1xyXG4iXX0=
@@ -1,2 +0,0 @@
1
- export * from './routes.handler';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvaGFuZGxlcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcm91dGVzLmhhbmRsZXInO1xyXG4iXX0=
@@ -1,51 +0,0 @@
1
- import { Injectable, Optional } from '@angular/core';
2
- import { Router } from '@angular/router';
3
- import { RoutesService } from '../services/routes.service';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "../services/routes.service";
6
- import * as i2 from "@angular/router";
7
- export class RoutesHandler {
8
- constructor(routes, router) {
9
- this.routes = routes;
10
- this.router = router;
11
- this.addRoutes();
12
- }
13
- addRoutes() {
14
- this.router?.config?.forEach(({ path = '', data }) => {
15
- const routes = data?.routes;
16
- if (!routes)
17
- return;
18
- if (Array.isArray(routes)) {
19
- this.routes.add(routes);
20
- }
21
- else {
22
- const routesFlatten = flatRoutes([{ path, ...routes }], { path: '' });
23
- this.routes.add(routesFlatten);
24
- }
25
- });
26
- }
27
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: RoutesHandler, deps: [{ token: i1.RoutesService }, { token: i2.Router, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
28
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: RoutesHandler, providedIn: 'root' }); }
29
- }
30
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: RoutesHandler, decorators: [{
31
- type: Injectable,
32
- args: [{
33
- providedIn: 'root',
34
- }]
35
- }], ctorParameters: () => [{ type: i1.RoutesService }, { type: i2.Router, decorators: [{
36
- type: Optional
37
- }] }] });
38
- function flatRoutes(routes, parent) {
39
- if (!routes)
40
- return [];
41
- return routes.reduce((acc, route) => {
42
- const { children, ...current } = {
43
- ...route,
44
- parentName: parent.name,
45
- path: (parent.path + '/' + route.path).replace(/\/\//g, '/'),
46
- };
47
- acc.push(current, ...flatRoutes(children, current));
48
- return acc;
49
- }, []);
50
- }
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVzLmhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvaGFuZGxlcnMvcm91dGVzLmhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFTLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWhELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7OztBQUszRCxNQUFNLE9BQU8sYUFBYTtJQUN4QixZQUFvQixNQUFxQixFQUFzQixNQUFjO1FBQXpELFdBQU0sR0FBTixNQUFNLENBQWU7UUFBc0IsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUMzRSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVELFNBQVM7UUFDTixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQXNCLEVBQUUsT0FBTyxDQUFDLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRSxFQUFFLElBQUksRUFBYSxFQUFFLEVBQUU7WUFDL0UsTUFBTSxNQUFNLEdBQUcsSUFBSSxFQUFFLE1BQU0sQ0FBQztZQUM1QixJQUFJLENBQUMsTUFBTTtnQkFBRSxPQUFPO1lBRXBCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO2dCQUMxQixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUMxQixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sTUFBTSxhQUFhLEdBQUcsVUFBVSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ3RFLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ2pDLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBakJVLGFBQWE7a0hBQWIsYUFBYSxjQUZaLE1BQU07OzJGQUVQLGFBQWE7a0JBSHpCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFFNkMsUUFBUTs7QUFtQnRELFNBQVMsVUFBVSxDQUFDLE1BQWtCLEVBQUUsTUFBVztJQUNqRCxJQUFJLENBQUMsTUFBTTtRQUFFLE9BQU8sRUFBRSxDQUFDO0lBRXZCLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRTtRQUNsQyxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsT0FBTyxFQUFFLEdBQUc7WUFDL0IsR0FBRyxLQUFLO1lBQ1IsVUFBVSxFQUFFLE1BQU0sQ0FBQyxJQUFJO1lBQ3ZCLElBQUksRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsR0FBRyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQztTQUM3RCxDQUFDO1FBRUYsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxVQUFVLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFFcEQsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDLEVBQUUsRUFBaUIsQ0FBQyxDQUFDO0FBQ3hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgQUJQIH0gZnJvbSAnLi4vbW9kZWxzJztcclxuaW1wb3J0IHsgUm91dGVzU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3JvdXRlcy5zZXJ2aWNlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSb3V0ZXNIYW5kbGVyIHtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlczogUm91dGVzU2VydmljZSwgQE9wdGlvbmFsKCkgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikge1xyXG4gICAgdGhpcy5hZGRSb3V0ZXMoKTtcclxuICB9XHJcblxyXG4gIGFkZFJvdXRlcygpIHtcclxuICAgICh0aGlzLnJvdXRlcj8uY29uZmlnIGFzIFJvdXRlRGF0YVtdKT8uZm9yRWFjaCgoeyBwYXRoID0gJycsIGRhdGEgfTogUm91dGVEYXRhKSA9PiB7XHJcbiAgICAgIGNvbnN0IHJvdXRlcyA9IGRhdGE/LnJvdXRlcztcclxuICAgICAgaWYgKCFyb3V0ZXMpIHJldHVybjtcclxuXHJcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHJvdXRlcykpIHtcclxuICAgICAgICB0aGlzLnJvdXRlcy5hZGQocm91dGVzKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zdCByb3V0ZXNGbGF0dGVuID0gZmxhdFJvdXRlcyhbeyBwYXRoLCAuLi5yb3V0ZXMgfV0sIHsgcGF0aDogJycgfSk7XHJcbiAgICAgICAgdGhpcy5yb3V0ZXMuYWRkKHJvdXRlc0ZsYXR0ZW4pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZsYXRSb3V0ZXMocm91dGVzOiBSb3V0ZURlZltdLCBwYXJlbnQ6IGFueSkge1xyXG4gIGlmICghcm91dGVzKSByZXR1cm4gW107XHJcblxyXG4gIHJldHVybiByb3V0ZXMucmVkdWNlKChhY2MsIHJvdXRlKSA9PiB7XHJcbiAgICBjb25zdCB7IGNoaWxkcmVuLCAuLi5jdXJyZW50IH0gPSB7XHJcbiAgICAgIC4uLnJvdXRlLFxyXG4gICAgICBwYXJlbnROYW1lOiBwYXJlbnQubmFtZSxcclxuICAgICAgcGF0aDogKHBhcmVudC5wYXRoICsgJy8nICsgcm91dGUucGF0aCkucmVwbGFjZSgvXFwvXFwvL2csICcvJyksXHJcbiAgICB9O1xyXG5cclxuICAgIGFjYy5wdXNoKGN1cnJlbnQsIC4uLmZsYXRSb3V0ZXMoY2hpbGRyZW4sIGN1cnJlbnQpKTtcclxuXHJcbiAgICByZXR1cm4gYWNjO1xyXG4gIH0sIFtdIGFzIEFCUC5Sb3V0ZVtdKTtcclxufVxyXG5cclxudHlwZSBSb3V0ZURlZiA9IEFCUC5Sb3V0ZSAmIHsgY2hpbGRyZW46IFJvdXRlRGVmW10gfTtcclxudHlwZSBSb3V0ZURhdGEgPSBSb3V0ZSAmIHsgZGF0YTogeyByb3V0ZXM6IFJvdXRlRGVmIHwgQXJyYXk8Um91dGVEZWY+IH0gfTtcclxuIl19
@@ -1,27 +0,0 @@
1
- import { HttpHeaders } from '@angular/common/http';
2
- import { Injectable } from '@angular/core';
3
- import { finalize } from 'rxjs/operators';
4
- import { HttpWaitService } from '../services';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "../services";
7
- export class ApiInterceptor {
8
- constructor(httpWaitService) {
9
- this.httpWaitService = httpWaitService;
10
- }
11
- getAdditionalHeaders(existingHeaders) {
12
- return existingHeaders || new HttpHeaders();
13
- }
14
- intercept(request, next) {
15
- this.httpWaitService.addRequest(request);
16
- return next.handle(request).pipe(finalize(() => this.httpWaitService.deleteRequest(request)));
17
- }
18
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: ApiInterceptor, deps: [{ token: i1.HttpWaitService }], target: i0.ɵɵFactoryTarget.Injectable }); }
19
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: ApiInterceptor, providedIn: 'root' }); }
20
- }
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: ApiInterceptor, decorators: [{
22
- type: Injectable,
23
- args: [{
24
- providedIn: 'root',
25
- }]
26
- }], ctorParameters: () => [{ type: i1.HttpWaitService }] });
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL2ludGVyY2VwdG9ycy9hcGkuaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFlLFdBQVcsRUFBZ0MsTUFBTSxzQkFBc0IsQ0FBQztBQUM5RixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sYUFBYSxDQUFDOzs7QUFLOUMsTUFBTSxPQUFPLGNBQWM7SUFDekIsWUFBb0IsZUFBZ0M7UUFBaEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO0lBQUcsQ0FBQztJQUV4RCxvQkFBb0IsQ0FBQyxlQUE2QjtRQUNoRCxPQUFPLGVBQWUsSUFBSSxJQUFJLFdBQVcsRUFBRSxDQUFDO0lBQzlDLENBQUM7SUFFRCxTQUFTLENBQUMsT0FBeUIsRUFBRSxJQUFpQjtRQUNwRCxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN6QyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDaEcsQ0FBQzs4R0FWVSxjQUFjO2tIQUFkLGNBQWMsY0FGYixNQUFNOzsyRkFFUCxjQUFjO2tCQUgxQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBIYW5kbGVyLCBIdHRwSGVhZGVycywgSHR0cEludGVyY2VwdG9yLCBIdHRwUmVxdWVzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBmaW5hbGl6ZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgSHR0cFdhaXRTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFwaUludGVyY2VwdG9yIGltcGxlbWVudHMgSUFwaUludGVyY2VwdG9yIHtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHBXYWl0U2VydmljZTogSHR0cFdhaXRTZXJ2aWNlKSB7fVxyXG5cclxuICBnZXRBZGRpdGlvbmFsSGVhZGVycyhleGlzdGluZ0hlYWRlcnM/OiBIdHRwSGVhZGVycykge1xyXG4gICAgcmV0dXJuIGV4aXN0aW5nSGVhZGVycyB8fCBuZXcgSHR0cEhlYWRlcnMoKTtcclxuICB9XHJcblxyXG4gIGludGVyY2VwdChyZXF1ZXN0OiBIdHRwUmVxdWVzdDxhbnk+LCBuZXh0OiBIdHRwSGFuZGxlcikge1xyXG4gICAgdGhpcy5odHRwV2FpdFNlcnZpY2UuYWRkUmVxdWVzdChyZXF1ZXN0KTtcclxuICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXF1ZXN0KS5waXBlKGZpbmFsaXplKCgpID0+IHRoaXMuaHR0cFdhaXRTZXJ2aWNlLmRlbGV0ZVJlcXVlc3QocmVxdWVzdCkpKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUFwaUludGVyY2VwdG9yIGV4dGVuZHMgSHR0cEludGVyY2VwdG9yIHtcclxuICBnZXRBZGRpdGlvbmFsSGVhZGVycyhleGlzdGluZ0hlYWRlcnM/OiBIdHRwSGVhZGVycyk6IEh0dHBIZWFkZXJzO1xyXG59XHJcbiJdfQ==
@@ -1,2 +0,0 @@
1
- export * from './api.interceptor';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvaW50ZXJjZXB0b3JzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FwaS5pbnRlcmNlcHRvcic7XHJcbiJdfQ==
@@ -1,16 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { LocalizationPipe } from './pipes/localization.pipe';
3
- import * as i0 from "@angular/core";
4
- export class LocalizationModule {
5
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: LocalizationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
6
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.5", ngImport: i0, type: LocalizationModule, declarations: [LocalizationPipe], exports: [LocalizationPipe] }); }
7
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: LocalizationModule }); }
8
- }
9
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: LocalizationModule, decorators: [{
10
- type: NgModule,
11
- args: [{
12
- exports: [LocalizationPipe],
13
- declarations: [LocalizationPipe],
14
- }]
15
- }] });
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemF0aW9uLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi9sb2NhbGl6YXRpb24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7O0FBTTdELE1BQU0sT0FBTyxrQkFBa0I7OEdBQWxCLGtCQUFrQjsrR0FBbEIsa0JBQWtCLGlCQUZkLGdCQUFnQixhQURyQixnQkFBZ0I7K0dBR2Ysa0JBQWtCOzsyRkFBbEIsa0JBQWtCO2tCQUo5QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLGdCQUFnQixDQUFDO29CQUMzQixZQUFZLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztpQkFDakMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBMb2NhbGl6YXRpb25QaXBlIH0gZnJvbSAnLi9waXBlcy9sb2NhbGl6YXRpb24ucGlwZSc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGV4cG9ydHM6IFtMb2NhbGl6YXRpb25QaXBlXSxcclxuICBkZWNsYXJhdGlvbnM6IFtMb2NhbGl6YXRpb25QaXBlXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIExvY2FsaXphdGlvbk1vZHVsZSB7fVxyXG4iXX0=
@@ -1,29 +0,0 @@
1
- export class AuthEvent {
2
- constructor(type) {
3
- this.type = type;
4
- this.type = type;
5
- }
6
- }
7
- export class AuthSuccessEvent extends AuthEvent {
8
- constructor(type, info) {
9
- super(type);
10
- this.type = type;
11
- this.info = info;
12
- }
13
- }
14
- export class AuthInfoEvent extends AuthEvent {
15
- constructor(type, info) {
16
- super(type);
17
- this.type = type;
18
- this.info = info;
19
- }
20
- }
21
- export class AuthErrorEvent extends AuthEvent {
22
- constructor(type, reason, params) {
23
- super(type);
24
- this.type = type;
25
- this.reason = reason;
26
- this.params = params;
27
- }
28
- }
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1ldmVudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvbW9kZWxzL2F1dGgtZXZlbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTJCQSxNQUFNLE9BQWdCLFNBQVM7SUFDN0IsWUFBNEIsSUFBZTtRQUFmLFNBQUksR0FBSixJQUFJLENBQVc7UUFDekMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7SUFDbkIsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLGdCQUFpQixTQUFRLFNBQVM7SUFDN0MsWUFBNEIsSUFBZSxFQUFrQixJQUFVO1FBQ3JFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQURjLFNBQUksR0FBSixJQUFJLENBQVc7UUFBa0IsU0FBSSxHQUFKLElBQUksQ0FBTTtJQUV2RSxDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sYUFBYyxTQUFRLFNBQVM7SUFDMUMsWUFBNEIsSUFBZSxFQUFrQixJQUFVO1FBQ3JFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQURjLFNBQUksR0FBSixJQUFJLENBQVc7UUFBa0IsU0FBSSxHQUFKLElBQUksQ0FBTTtJQUV2RSxDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sY0FBZSxTQUFRLFNBQVM7SUFDM0MsWUFDa0IsSUFBZSxFQUNmLE1BQWMsRUFDZCxNQUFlO1FBRS9CLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUpJLFNBQUksR0FBSixJQUFJLENBQVc7UUFDZixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsV0FBTSxHQUFOLE1BQU0sQ0FBUztJQUdqQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBFdmVudFR5cGUgPVxyXG4gIHwgJ2Rpc2NvdmVyeV9kb2N1bWVudF9sb2FkZWQnXHJcbiAgfCAnandrc19sb2FkX2Vycm9yJ1xyXG4gIHwgJ2ludmFsaWRfbm9uY2VfaW5fc3RhdGUnXHJcbiAgfCAnZGlzY292ZXJ5X2RvY3VtZW50X2xvYWRfZXJyb3InXHJcbiAgfCAnZGlzY292ZXJ5X2RvY3VtZW50X3ZhbGlkYXRpb25fZXJyb3InXHJcbiAgfCAndXNlcl9wcm9maWxlX2xvYWRlZCdcclxuICB8ICd1c2VyX3Byb2ZpbGVfbG9hZF9lcnJvcidcclxuICB8ICd0b2tlbl9yZWNlaXZlZCdcclxuICB8ICd0b2tlbl9lcnJvcidcclxuICB8ICdjb2RlX2Vycm9yJ1xyXG4gIHwgJ3Rva2VuX3JlZnJlc2hlZCdcclxuICB8ICd0b2tlbl9yZWZyZXNoX2Vycm9yJ1xyXG4gIHwgJ3NpbGVudF9yZWZyZXNoX2Vycm9yJ1xyXG4gIHwgJ3NpbGVudGx5X3JlZnJlc2hlZCdcclxuICB8ICdzaWxlbnRfcmVmcmVzaF90aW1lb3V0J1xyXG4gIHwgJ3Rva2VuX3ZhbGlkYXRpb25fZXJyb3InXHJcbiAgfCAndG9rZW5fZXhwaXJlcydcclxuICB8ICdzZXNzaW9uX2NoYW5nZWQnXHJcbiAgfCAnc2Vzc2lvbl9lcnJvcidcclxuICB8ICdzZXNzaW9uX3Rlcm1pbmF0ZWQnXHJcbiAgfCAnc2Vzc2lvbl91bmNoYW5nZWQnXHJcbiAgfCAnbG9nb3V0J1xyXG4gIHwgJ3BvcHVwX2Nsb3NlZCdcclxuICB8ICdwb3B1cF9ibG9ja2VkJ1xyXG4gIHwgJ3Rva2VuX3Jldm9rZV9lcnJvcic7XHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQXV0aEV2ZW50IHtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgdHlwZTogRXZlbnRUeXBlKSB7XHJcbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEF1dGhTdWNjZXNzRXZlbnQgZXh0ZW5kcyBBdXRoRXZlbnQge1xyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSB0eXBlOiBFdmVudFR5cGUsIHB1YmxpYyByZWFkb25seSBpbmZvPzogYW55KSB7XHJcbiAgICBzdXBlcih0eXBlKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBBdXRoSW5mb0V2ZW50IGV4dGVuZHMgQXV0aEV2ZW50IHtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgdHlwZTogRXZlbnRUeXBlLCBwdWJsaWMgcmVhZG9ubHkgaW5mbz86IGFueSkge1xyXG4gICAgc3VwZXIodHlwZSk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQXV0aEVycm9yRXZlbnQgZXh0ZW5kcyBBdXRoRXZlbnQge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHJlYWRvbmx5IHR5cGU6IEV2ZW50VHlwZSxcclxuICAgIHB1YmxpYyByZWFkb25seSByZWFzb246IG9iamVjdCxcclxuICAgIHB1YmxpYyByZWFkb25seSBwYXJhbXM/OiBvYmplY3QsXHJcbiAgKSB7XHJcbiAgICBzdXBlcih0eXBlKTtcclxuICB9XHJcbn1cclxuIl19
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi9tb2RlbHMvYXV0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVW5hcnlGdW5jdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBBdXRoRXJyb3JFdmVudCB9IGZyb20gJy4vYXV0aC1ldmVudHMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBMb2dpblBhcmFtcyB7XHJcbiAgdXNlcm5hbWU6IHN0cmluZztcclxuICBwYXNzd29yZDogc3RyaW5nO1xyXG4gIHJlbWVtYmVyTWU/OiBib29sZWFuO1xyXG4gIHJlZGlyZWN0VXJsPzogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBQaXBlVG9Mb2dpbkZuID0gKFxyXG4gIHBhcmFtczogUGljazxMb2dpblBhcmFtcywgJ3JlZGlyZWN0VXJsJyB8ICdyZW1lbWJlck1lJz4sXHJcbiAgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4pID0+IFVuYXJ5RnVuY3Rpb248YW55LCBhbnk+O1xyXG4vKipcclxuICogQGRlcHJlY2F0ZWQgVGhlIGludGVyZmFjZSBzaG91bGQgbm90IGJlIHVzZWQgYW55bW9yZS5cclxuICovXHJcbmV4cG9ydCB0eXBlIFNldFRva2VuUmVzcG9uc2VUb1N0b3JhZ2VGbjxUID0gYW55PiA9ICh0b2tlblJlczogVCkgPT4gdm9pZDtcclxuZXhwb3J0IHR5cGUgQ2hlY2tBdXRoZW50aWNhdGlvblN0YXRlRm4gPSAoaW5qZWN0b3I6IEluamVjdG9yKSA9PiB2b2lkO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBdXRoRXJyb3JGaWx0ZXI8VCA9IEF1dGhFcnJvckV2ZW50PiB7XHJcbiAgaWQ6IHN0cmluZztcclxuICBleGVjdXRhYmxlOiBib29sZWFuO1xyXG4gIGV4ZWN1dGU6IChldmVudDogVCkgPT4gYm9vbGVhbjtcclxufVxyXG4iXX0=
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL21vZGVscy9jb21tb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50RW1pdHRlciwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSb3V0ZXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGVMYXlvdXRUeXBlIH0gZnJvbSAnLi4vZW51bXMvY29tbW9uJztcclxuaW1wb3J0IHsgRW52aXJvbm1lbnQgfSBmcm9tICcuL2Vudmlyb25tZW50JztcclxuXHJcbmV4cG9ydCBuYW1lc3BhY2UgQUJQIHtcclxuICBleHBvcnQgaW50ZXJmYWNlIFJvb3Qge1xyXG4gICAgZW52aXJvbm1lbnQ6IFBhcnRpYWw8RW52aXJvbm1lbnQ+O1xyXG4gICAgcmVnaXN0ZXJMb2NhbGVGbjogKGxvY2FsZTogc3RyaW5nKSA9PiBQcm9taXNlPGFueT47XHJcbiAgICBza2lwR2V0QXBwQ29uZmlndXJhdGlvbj86IGJvb2xlYW47XHJcbiAgICBza2lwSW5pdEF1dGhTZXJ2aWNlPzogYm9vbGVhbjtcclxuICAgIHNlbmROdWxsc0FzUXVlcnlQYXJhbT86IGJvb2xlYW47XHJcbiAgICB0ZW5hbnRLZXk/OiBzdHJpbmc7XHJcbiAgICBsb2NhbGl6YXRpb25zPzogTG9jYWxpemF0aW9uW107XHJcbiAgICBvdGhlcnNHcm91cD86IHN0cmluZztcclxuICAgIGR5bmFtaWNMYXlvdXRzPzogTWFwPHN0cmluZywgc3RyaW5nPjtcclxuICAgIGRpc2FibGVQcm9qZWN0TmFtZUluVGl0bGU/OiBib29sZWFuO1xyXG4gIH1cclxuXHJcbiAgZXhwb3J0IGludGVyZmFjZSBDaGlsZCB7XHJcbiAgICBsb2NhbGl6YXRpb25zPzogTG9jYWxpemF0aW9uW107XHJcbiAgfVxyXG5cclxuICBleHBvcnQgaW50ZXJmYWNlIExvY2FsaXphdGlvbiB7XHJcbiAgICBjdWx0dXJlOiBzdHJpbmc7XHJcbiAgICByZXNvdXJjZXM6IExvY2FsaXphdGlvblJlc291cmNlW107XHJcbiAgfVxyXG5cclxuICBleHBvcnQgaW50ZXJmYWNlIExvY2FsaXphdGlvblJlc291cmNlIHtcclxuICAgIHJlc291cmNlTmFtZTogc3RyaW5nO1xyXG4gICAgdGV4dHM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XHJcbiAgfVxyXG5cclxuICBleHBvcnQgaW50ZXJmYWNlIEhhc1BvbGljeSB7XHJcbiAgICByZXF1aXJlZFBvbGljeT86IHN0cmluZztcclxuICB9XHJcblxyXG4gIGV4cG9ydCBpbnRlcmZhY2UgVGVzdCBleHRlbmRzIFBhcnRpYWw8Um9vdD4ge1xyXG4gICAgYmFzZUhyZWY/OiBzdHJpbmc7XHJcbiAgICBsaXN0UXVlcnlEZWJvdW5jZVRpbWU/OiBudW1iZXI7XHJcbiAgICByb3V0ZXM/OiBSb3V0ZXM7XHJcbiAgfVxyXG5cclxuICBleHBvcnQgdHlwZSBQYWdlZFJlc3BvbnNlPFQ+ID0ge1xyXG4gICAgdG90YWxDb3VudDogbnVtYmVyO1xyXG4gIH0gJiBQYWdlZEl0ZW1zUmVzcG9uc2U8VD47XHJcblxyXG4gIGV4cG9ydCBpbnRlcmZhY2UgUGFnZWRJdGVtc1Jlc3BvbnNlPFQ+IHtcclxuICAgIGl0ZW1zOiBUW107XHJcbiAgfVxyXG5cclxuICBleHBvcnQgaW50ZXJmYWNlIFBhZ2VRdWVyeVBhcmFtcyB7XHJcbiAgICBmaWx0ZXI/OiBzdHJpbmc7XHJcbiAgICBzb3J0aW5nPzogc3RyaW5nO1xyXG4gICAgc2tpcENvdW50PzogbnVtYmVyO1xyXG4gICAgbWF4UmVzdWx0Q291bnQ/OiBudW1iZXI7XHJcbiAgfVxyXG5cclxuICBleHBvcnQgaW50ZXJmYWNlIExvb2t1cCB7XHJcbiAgICBpZDogc3RyaW5nO1xyXG4gICAgZGlzcGxheU5hbWU6IHN0cmluZztcclxuICB9XHJcblxyXG4gIGV4cG9ydCBpbnRlcmZhY2UgTmF2IHtcclxuICAgIG5hbWU6IHN0cmluZztcclxuICAgIHBhcmVudE5hbWU/OiBzdHJpbmc7XHJcbiAgICByZXF1aXJlZFBvbGljeT86IHN0cmluZztcclxuICAgIG9yZGVyPzogbnVtYmVyO1xyXG4gICAgaW52aXNpYmxlPzogYm9vbGVhbjtcclxuICB9XHJcblxyXG4gIGV4cG9ydCBpbnRlcmZhY2UgUm91dGUgZXh0ZW5kcyBOYXYge1xyXG4gICAgcGF0aD86IHN0cmluZztcclxuICAgIGxheW91dD86IGVMYXlvdXRUeXBlO1xyXG4gICAgaWNvbkNsYXNzPzogc3RyaW5nO1xyXG4gICAgZ3JvdXA/OiBzdHJpbmc7XHJcbiAgICBicmVhZGNydW1iVGV4dD86IHN0cmluZztcclxuICB9XHJcblxyXG4gIGV4cG9ydCBpbnRlcmZhY2UgVGFiIGV4dGVuZHMgTmF2IHtcclxuICAgIGNvbXBvbmVudDogVHlwZTxhbnk+O1xyXG4gIH1cclxuXHJcbiAgZXhwb3J0IGludGVyZmFjZSBCYXNpY0l0ZW0ge1xyXG4gICAgaWQ6IHN0cmluZztcclxuICAgIG5hbWU6IHN0cmluZztcclxuICB9XHJcblxyXG4gIGV4cG9ydCBpbnRlcmZhY2UgT3B0aW9uPFQ+IHtcclxuICAgIGtleTogRXh0cmFjdDxrZXlvZiBULCBzdHJpbmc+O1xyXG4gICAgdmFsdWU6IFRbRXh0cmFjdDxrZXlvZiBULCBzdHJpbmc+XTtcclxuICB9XHJcblxyXG4gIGV4cG9ydCBpbnRlcmZhY2UgRGljdGlvbmFyeTxUID0gYW55PiB7XHJcbiAgICBba2V5OiBzdHJpbmddOiBUO1xyXG4gIH1cclxuXHJcbiAgZXhwb3J0IHR5cGUgRXh0cmFjdEZyb21PdXRwdXQ8VCBleHRlbmRzIEV2ZW50RW1pdHRlcjxhbnk+IHwgU3ViamVjdDxhbnk+PiA9XHJcbiAgICBUIGV4dGVuZHMgRXZlbnRFbWl0dGVyPGluZmVyIFg+ID8gWCA6IFQgZXh0ZW5kcyBTdWJqZWN0PGluZmVyIFk+ID8gWSA6IG5ldmVyO1xyXG59XHJcbiJdfQ==