@veloceapps/sdk 8.0.0-99 → 9.0.0-0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (156) hide show
  1. package/cms/README.md +0 -20
  2. package/cms/cms.actions.d.ts +9 -1
  3. package/cms/components/preview/preview.component.d.ts +2 -3
  4. package/cms/components/preview/preview.types.d.ts +4 -0
  5. package/cms/index.d.ts +1 -0
  6. package/cms/modules/runtime/services/runtime.service.d.ts +1 -1
  7. package/cms/services/index.d.ts +0 -1
  8. package/cms/services/resources.service.d.ts +2 -0
  9. package/cms/types/index.d.ts +0 -1
  10. package/cms/utils/element-metadata-worker.d.ts +11 -0
  11. package/cms/utils/elements-resolver.d.ts +0 -2
  12. package/cms/utils/index.d.ts +3 -0
  13. package/cms/utils/transpilation-worker.d.ts +13 -0
  14. package/cms/vendor-map.d.ts +21 -18
  15. package/core/README.md +20 -0
  16. package/core/modules/configuration/configuration.module.d.ts +2 -1
  17. package/core/modules/configuration/helpers.d.ts +2 -1
  18. package/core/modules/configuration/index.d.ts +1 -1
  19. package/core/modules/configuration/services/configuration-state.service.d.ts +54 -0
  20. package/core/modules/configuration/services/configuration.service.d.ts +6 -6
  21. package/core/modules/configuration/types/configuration.types.d.ts +4 -0
  22. package/core/modules/flow-configuration/flow-configuration.module.d.ts +2 -1
  23. package/core/modules/flow-configuration/services/flow-configuration.service.d.ts +5 -0
  24. package/core/services/context.service.d.ts +2 -0
  25. package/core/services/flow-info.service.d.ts +29 -0
  26. package/core/services/flow-state-configuration.service.d.ts +19 -0
  27. package/core/services/flow-state.service.d.ts +80 -0
  28. package/core/services/index.d.ts +4 -1
  29. package/core/services/quote-draft.service.d.ts +12 -28
  30. package/core/types/flow-customization.types.d.ts +22 -0
  31. package/core/types/flow-state.types.d.ts +11 -0
  32. package/core/types/index.d.ts +3 -1
  33. package/{cms → core}/types/integration.types.d.ts +0 -1
  34. package/core/utils/line-item.utils.d.ts +1 -3
  35. package/esm2020/cms/cms.actions.mjs +11 -1
  36. package/esm2020/cms/components/element-renderer/element-renderer.component.mjs +3 -3
  37. package/esm2020/cms/components/element-tools-panel/element-tools-panel.component.mjs +3 -3
  38. package/esm2020/cms/components/preview/preview.component.mjs +10 -10
  39. package/esm2020/cms/components/preview/preview.module.mjs +2 -2
  40. package/esm2020/cms/components/preview/preview.types.mjs +1 -1
  41. package/esm2020/cms/index.mjs +2 -1
  42. package/esm2020/cms/launcher.module.mjs +4 -4
  43. package/esm2020/cms/modules/migrations/migrations.mjs +2 -2
  44. package/esm2020/cms/modules/migrations/services/migrations.service.mjs +6 -2
  45. package/esm2020/cms/modules/runtime/services/compilation.service.mjs +8 -8
  46. package/esm2020/cms/modules/runtime/services/runtime.service.mjs +4 -4
  47. package/esm2020/cms/plugins/configuration.plugin.mjs +8 -4
  48. package/esm2020/cms/services/index.mjs +1 -2
  49. package/esm2020/cms/services/io-provider.service.mjs +10 -9
  50. package/esm2020/cms/services/resources.service.mjs +10 -6
  51. package/esm2020/cms/services/templates.service.mjs +10 -9
  52. package/esm2020/cms/types/index.mjs +1 -2
  53. package/esm2020/cms/utils/element-metadata-worker.mjs +31 -0
  54. package/esm2020/cms/utils/elements-resolver.mjs +13 -27
  55. package/esm2020/cms/utils/encoding.utils.mjs +3 -2
  56. package/esm2020/cms/utils/index.mjs +4 -1
  57. package/esm2020/cms/utils/path.utils.mjs +3 -3
  58. package/esm2020/cms/utils/script.utils.mjs +19 -15
  59. package/esm2020/cms/utils/transpilation-worker.mjs +52 -0
  60. package/esm2020/cms/vendor-map.mjs +10 -5
  61. package/esm2020/core/core.module.mjs +19 -3
  62. package/esm2020/core/modules/configuration/configuration.module.mjs +7 -23
  63. package/esm2020/core/modules/configuration/helpers.mjs +21 -1
  64. package/esm2020/core/modules/configuration/index.mjs +2 -2
  65. package/esm2020/core/modules/configuration/services/configuration-state.service.mjs +335 -0
  66. package/esm2020/core/modules/configuration/services/configuration.service.mjs +56 -50
  67. package/esm2020/core/modules/configuration/types/configuration.types.mjs +1 -1
  68. package/esm2020/core/modules/flow-configuration/flow-configuration.module.mjs +6 -6
  69. package/esm2020/core/modules/flow-configuration/services/flow-configuration.service.mjs +12 -9
  70. package/esm2020/core/services/context.service.mjs +17 -5
  71. package/esm2020/core/services/flow-info.service.mjs +99 -0
  72. package/esm2020/core/services/flow-state-configuration.service.mjs +53 -0
  73. package/esm2020/core/services/flow-state.service.mjs +512 -0
  74. package/esm2020/core/services/index.mjs +5 -2
  75. package/esm2020/core/services/integration.state.mjs +36 -0
  76. package/esm2020/core/services/product-images.service.mjs +4 -5
  77. package/esm2020/core/services/quote-draft.service.mjs +39 -91
  78. package/esm2020/core/services/runtime-settings.service.mjs +7 -5
  79. package/esm2020/core/types/flow-customization.types.mjs +3 -0
  80. package/esm2020/core/types/flow-state.types.mjs +2 -0
  81. package/esm2020/core/types/index.mjs +4 -2
  82. package/esm2020/core/types/integration.types.mjs +2 -0
  83. package/esm2020/core/utils/line-item.utils.mjs +33 -32
  84. package/esm2020/src/components/doc-gen/doc-gen.component.mjs +44 -51
  85. package/esm2020/src/components/flow-header/flow-header.component.mjs +36 -47
  86. package/esm2020/src/components/guided-selling/guided-selling.component.mjs +35 -46
  87. package/esm2020/src/flow-routing.module.mjs +5 -18
  88. package/esm2020/src/flow.component.mjs +22 -37
  89. package/esm2020/src/guards/context.guard.mjs +6 -11
  90. package/esm2020/src/guards/flow.guard.mjs +23 -9
  91. package/esm2020/src/pages/assets/assets.component.mjs +30 -34
  92. package/esm2020/src/pages/catalog/catalog.component.mjs +30 -34
  93. package/esm2020/src/pages/debug/debug.component.mjs +2 -2
  94. package/esm2020/src/pages/product/product.component.mjs +34 -20
  95. package/esm2020/src/pages/record-not-found/record-not-found.component.mjs +6 -3
  96. package/esm2020/src/pages/remote/remote.component.mjs +15 -14
  97. package/esm2020/src/pages/shopping-cart/shopping-cart.component.mjs +31 -35
  98. package/esm2020/src/resolvers/flow.resolver.mjs +37 -55
  99. package/esm2020/src/resolvers/quote.resolver.mjs +55 -67
  100. package/esm2020/src/services/doc-gen.service.mjs +4 -3
  101. package/esm2020/src/services/flow-dialog.service.mjs +17 -6
  102. package/esm2020/src/services/flow-router.service.mjs +42 -15
  103. package/esm2020/src/services/flow.service.mjs +67 -52
  104. package/esm2020/src/services/guided-selling.service.mjs +5 -4
  105. package/esm2020/src/types/index.mjs +1 -2
  106. package/fesm2015/veloceapps-sdk-cms.mjs +270 -191
  107. package/fesm2015/veloceapps-sdk-cms.mjs.map +1 -1
  108. package/fesm2015/veloceapps-sdk-core.mjs +1195 -427
  109. package/fesm2015/veloceapps-sdk-core.mjs.map +1 -1
  110. package/fesm2015/veloceapps-sdk.mjs +776 -826
  111. package/fesm2015/veloceapps-sdk.mjs.map +1 -1
  112. package/fesm2020/veloceapps-sdk-cms.mjs +275 -206
  113. package/fesm2020/veloceapps-sdk-cms.mjs.map +1 -1
  114. package/fesm2020/veloceapps-sdk-core.mjs +1176 -454
  115. package/fesm2020/veloceapps-sdk-core.mjs.map +1 -1
  116. package/fesm2020/veloceapps-sdk.mjs +899 -945
  117. package/fesm2020/veloceapps-sdk.mjs.map +1 -1
  118. package/package.json +8 -7
  119. package/src/components/doc-gen/doc-gen.component.d.ts +7 -10
  120. package/src/components/flow-header/flow-header.component.d.ts +6 -9
  121. package/src/components/guided-selling/guided-selling.component.d.ts +6 -9
  122. package/src/flow-routing.module.d.ts +1 -2
  123. package/src/flow.component.d.ts +7 -12
  124. package/src/guards/context.guard.d.ts +0 -1
  125. package/src/guards/flow.guard.d.ts +1 -1
  126. package/src/pages/assets/assets.component.d.ts +5 -7
  127. package/src/pages/catalog/catalog.component.d.ts +5 -7
  128. package/src/pages/product/product.component.d.ts +8 -7
  129. package/src/pages/record-not-found/record-not-found.component.d.ts +2 -0
  130. package/src/pages/remote/remote.component.d.ts +2 -3
  131. package/src/pages/shopping-cart/shopping-cart.component.d.ts +5 -7
  132. package/src/resolvers/flow.resolver.d.ts +6 -9
  133. package/src/resolvers/quote.resolver.d.ts +7 -14
  134. package/src/services/doc-gen.service.d.ts +1 -1
  135. package/src/services/flow-dialog.service.d.ts +4 -2
  136. package/src/services/flow-router.service.d.ts +6 -3
  137. package/src/services/flow.service.d.ts +10 -14
  138. package/src/services/guided-selling.service.d.ts +1 -1
  139. package/src/types/index.d.ts +0 -1
  140. package/core/modules/configuration/services/configuration.state.d.ts +0 -30
  141. package/core/services/metric-calculation/metric-calculation.service.d.ts +0 -25
  142. package/core/services/metric-calculation/metric-calculation.types.d.ts +0 -1
  143. package/core/services/metric-calculation/metric-calculation.utils.d.ts +0 -5
  144. package/esm2020/cms/services/integration.state.mjs +0 -37
  145. package/esm2020/cms/types/integration.types.mjs +0 -2
  146. package/esm2020/core/modules/configuration/services/configuration.state.mjs +0 -142
  147. package/esm2020/core/services/metric-calculation/metric-calculation.service.mjs +0 -85
  148. package/esm2020/core/services/metric-calculation/metric-calculation.types.mjs +0 -2
  149. package/esm2020/core/services/metric-calculation/metric-calculation.utils.mjs +0 -42
  150. package/esm2020/src/pages/empty-account/empty-account.component.mjs +0 -12
  151. package/esm2020/src/pages/empty-account/empty-account.module.mjs +0 -20
  152. package/esm2020/src/types/flow-customization.types.mjs +0 -3
  153. package/src/pages/empty-account/empty-account.component.d.ts +0 -5
  154. package/src/pages/empty-account/empty-account.module.d.ts +0 -10
  155. package/src/types/flow-customization.types.d.ts +0 -12
  156. /package/{cms → core}/services/integration.state.d.ts +0 -0
@@ -0,0 +1,36 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { BehaviorSubject, filter, map, Subject } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ export class IntegrationState {
5
+ constructor() {
6
+ this.stateSubj$ = new BehaviorSubject({});
7
+ this.action$ = new Subject();
8
+ }
9
+ get state$() {
10
+ return this.stateSubj$.asObservable();
11
+ }
12
+ get state() {
13
+ return this.stateSubj$.getValue();
14
+ }
15
+ patchState(update) {
16
+ this.stateSubj$.next({ ...this.stateSubj$.getValue(), ...update });
17
+ }
18
+ dispatch(action) {
19
+ this.action$.next(action);
20
+ }
21
+ listen$(actionType) {
22
+ return this.action$.pipe(filter(action => action.type === actionType), map(action => action.payload));
23
+ }
24
+ listenAll$() {
25
+ return this.action$.asObservable();
26
+ }
27
+ clear() {
28
+ this.stateSubj$.next({});
29
+ }
30
+ }
31
+ IntegrationState.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: IntegrationState, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
32
+ IntegrationState.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: IntegrationState });
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: IntegrationState, decorators: [{
34
+ type: Injectable
35
+ }] });
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWdyYXRpb24uc3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jb3JlL3NlcnZpY2VzL2ludGVncmF0aW9uLnN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFJekUsTUFBTSxPQUFPLGdCQUFnQjtJQUQ3QjtRQUVtQixlQUFVLEdBQUcsSUFBSSxlQUFlLENBQUksRUFBTyxDQUFDLENBQUM7UUFDN0MsWUFBTyxHQUFHLElBQUksT0FBTyxFQUFxQixDQUFDO0tBZ0M3RDtJQTlCQyxJQUFXLE1BQU07UUFDZixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVELElBQVcsS0FBSztRQUNkLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRU0sVUFBVSxDQUFDLE1BQWtCO1FBQ2xDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxFQUFFLEdBQUcsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRU0sUUFBUSxDQUFDLE1BQXlCO1FBQ3ZDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFTSxPQUFPLENBQVUsVUFBa0I7UUFDeEMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FDdEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxVQUFVLENBQUMsRUFDNUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQVksQ0FBQyxDQUNuQyxDQUFDO0lBQ0osQ0FBQztJQUVNLFVBQVU7UUFDZixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFtQixDQUFDO0lBQ3RELENBQUM7SUFFTSxLQUFLO1FBQ1YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBTyxDQUFDLENBQUM7SUFDaEMsQ0FBQzs7NkdBakNVLGdCQUFnQjtpSEFBaEIsZ0JBQWdCOzJGQUFoQixnQkFBZ0I7a0JBRDVCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGZpbHRlciwgbWFwLCBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJbnRlZ3JhdGlvbkFjdGlvbiwgSW50ZWdyYXRpb25TdGF0ZU1vZGVsIH0gZnJvbSAnLi4vdHlwZXMvaW50ZWdyYXRpb24udHlwZXMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgSW50ZWdyYXRpb25TdGF0ZTxTID0gSW50ZWdyYXRpb25TdGF0ZU1vZGVsPiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgc3RhdGVTdWJqJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Uz4oe30gYXMgUyk7XG4gIHByaXZhdGUgcmVhZG9ubHkgYWN0aW9uJCA9IG5ldyBTdWJqZWN0PEludGVncmF0aW9uQWN0aW9uPigpO1xuXG4gIHB1YmxpYyBnZXQgc3RhdGUkKCk6IE9ic2VydmFibGU8Uz4ge1xuICAgIHJldHVybiB0aGlzLnN0YXRlU3ViaiQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHN0YXRlKCk6IFMge1xuICAgIHJldHVybiB0aGlzLnN0YXRlU3ViaiQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIHB1YmxpYyBwYXRjaFN0YXRlKHVwZGF0ZTogUGFydGlhbDxTPik6IHZvaWQge1xuICAgIHRoaXMuc3RhdGVTdWJqJC5uZXh0KHsgLi4udGhpcy5zdGF0ZVN1YmokLmdldFZhbHVlKCksIC4uLnVwZGF0ZSB9KTtcbiAgfVxuXG4gIHB1YmxpYyBkaXNwYXRjaChhY3Rpb246IEludGVncmF0aW9uQWN0aW9uKTogdm9pZCB7XG4gICAgdGhpcy5hY3Rpb24kLm5leHQoYWN0aW9uKTtcbiAgfVxuXG4gIHB1YmxpYyBsaXN0ZW4kPFAgPSBhbnk+KGFjdGlvblR5cGU6IHN0cmluZyk6IE9ic2VydmFibGU8UD4ge1xuICAgIHJldHVybiB0aGlzLmFjdGlvbiQucGlwZShcbiAgICAgIGZpbHRlcihhY3Rpb24gPT4gYWN0aW9uLnR5cGUgPT09IGFjdGlvblR5cGUpLFxuICAgICAgbWFwKGFjdGlvbiA9PiBhY3Rpb24ucGF5bG9hZCBhcyBQKSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGxpc3RlbkFsbCQ8VCBleHRlbmRzIEludGVncmF0aW9uQWN0aW9uPigpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5hY3Rpb24kLmFzT2JzZXJ2YWJsZSgpIGFzIE9ic2VydmFibGU8VD47XG4gIH1cblxuICBwdWJsaWMgY2xlYXIoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZVN1YmokLm5leHQoe30gYXMgUyk7XG4gIH1cbn1cbiJdfQ==
@@ -13,7 +13,7 @@ export class ProductImagesService {
13
13
  this.imagesMap$.next({ ...this.imagesMap$.value, [productId]: '' });
14
14
  this.fetchProductImage(productId);
15
15
  }
16
- return this.imagesMap$.pipe(map(imagesMap => imagesMap[productId]), distinctUntilChanged());
16
+ return this.imagesMap$.pipe(map(imagesMap => imagesMap[productId] ?? null), distinctUntilChanged());
17
17
  }
18
18
  fetchProductImage(productId) {
19
19
  this.productApiService
@@ -23,9 +23,8 @@ export class ProductImagesService {
23
23
  }
24
24
  }
25
25
  ProductImagesService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ProductImagesService, deps: [{ token: i1.ProductApiService }], target: i0.ɵɵFactoryTarget.Injectable });
26
- ProductImagesService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ProductImagesService, providedIn: 'root' });
26
+ ProductImagesService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ProductImagesService });
27
27
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ProductImagesService, decorators: [{
28
- type: Injectable,
29
- args: [{ providedIn: 'root' }]
28
+ type: Injectable
30
29
  }], ctorParameters: function () { return [{ type: i1.ProductApiService }]; } });
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1pbWFnZXMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2NvcmUvc2VydmljZXMvcHJvZHVjdC1pbWFnZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXBELE9BQU8sRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7QUFHbkcsTUFBTSxPQUFPLG9CQUFvQjtJQUcvQixZQUFvQixpQkFBb0M7UUFBcEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUZoRCxlQUFVLEdBQUcsSUFBSSxlQUFlLENBQXFCLEVBQUUsQ0FBQyxDQUFDO0lBRU4sQ0FBQztJQUVyRCxZQUFZLENBQUMsU0FBaUI7UUFDbkMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxJQUFJLEVBQUU7WUFDNUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNwRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDbkM7UUFFRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUN6QixHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsRUFDdEMsb0JBQW9CLEVBQUUsQ0FDdkIsQ0FBQztJQUNKLENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxTQUFpQjtRQUN6QyxJQUFJLENBQUMsaUJBQWlCO2FBQ25CLFdBQVcsQ0FBQyxTQUFTLENBQUM7YUFDdEIsSUFBSSxDQUNILEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsRUFDdEMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUN4QixHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQ2pGO2FBQ0EsU0FBUyxFQUFFLENBQUM7SUFDakIsQ0FBQzs7aUhBMUJVLG9CQUFvQjtxSEFBcEIsb0JBQW9CLGNBRFAsTUFBTTsyRkFDbkIsb0JBQW9CO2tCQURoQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFByb2R1Y3RBcGlTZXJ2aWNlIH0gZnJvbSAnQHZlbG9jZWFwcHMvYXBpJztcbmltcG9ydCB7IERpY3Rpb25hcnkgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjYXRjaEVycm9yLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCBPYnNlcnZhYmxlLCBvZiwgdGFwIH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgUHJvZHVjdEltYWdlc1NlcnZpY2Uge1xuICBwcml2YXRlIGltYWdlc01hcCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PERpY3Rpb25hcnk8c3RyaW5nPj4oe30pO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcHJvZHVjdEFwaVNlcnZpY2U6IFByb2R1Y3RBcGlTZXJ2aWNlKSB7fVxuXG4gIHB1YmxpYyBnZXRJbWFnZVVybCQocHJvZHVjdElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHN0cmluZyB8IG51bGw+IHtcbiAgICBpZiAodGhpcy5pbWFnZXNNYXAkLnZhbHVlW3Byb2R1Y3RJZF0gPT0gbnVsbCkge1xuICAgICAgdGhpcy5pbWFnZXNNYXAkLm5leHQoeyAuLi50aGlzLmltYWdlc01hcCQudmFsdWUsIFtwcm9kdWN0SWRdOiAnJyB9KTtcbiAgICAgIHRoaXMuZmV0Y2hQcm9kdWN0SW1hZ2UocHJvZHVjdElkKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5pbWFnZXNNYXAkLnBpcGUoXG4gICAgICBtYXAoaW1hZ2VzTWFwID0+IGltYWdlc01hcFtwcm9kdWN0SWRdKSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZmV0Y2hQcm9kdWN0SW1hZ2UocHJvZHVjdElkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnByb2R1Y3RBcGlTZXJ2aWNlXG4gICAgICAuZmV0Y2hJbWFnZSQocHJvZHVjdElkKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcChmaWxlID0+IFVSTC5jcmVhdGVPYmplY3RVUkwoZmlsZSkpLFxuICAgICAgICBjYXRjaEVycm9yKCgpID0+IG9mKCcnKSksXG4gICAgICAgIHRhcCh1cmwgPT4gdGhpcy5pbWFnZXNNYXAkLm5leHQoeyAuLi50aGlzLmltYWdlc01hcCQudmFsdWUsIFtwcm9kdWN0SWRdOiB1cmwgfSkpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG59XG4iXX0=
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1pbWFnZXMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2NvcmUvc2VydmljZXMvcHJvZHVjdC1pbWFnZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXBELE9BQU8sRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7QUFHbkcsTUFBTSxPQUFPLG9CQUFvQjtJQUcvQixZQUFvQixpQkFBb0M7UUFBcEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUZoRCxlQUFVLEdBQUcsSUFBSSxlQUFlLENBQXFCLEVBQUUsQ0FBQyxDQUFDO0lBRU4sQ0FBQztJQUVyRCxZQUFZLENBQUMsU0FBaUI7UUFDbkMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxJQUFJLEVBQUU7WUFDNUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNwRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDbkM7UUFFRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUN6QixHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLElBQUksSUFBSSxDQUFDLEVBQzlDLG9CQUFvQixFQUFFLENBQ3ZCLENBQUM7SUFDSixDQUFDO0lBRU8saUJBQWlCLENBQUMsU0FBaUI7UUFDekMsSUFBSSxDQUFDLGlCQUFpQjthQUNuQixXQUFXLENBQUMsU0FBUyxDQUFDO2FBQ3RCLElBQUksQ0FDSCxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQ3RDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFDeEIsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLENBQUMsU0FBUyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUNqRjthQUNBLFNBQVMsRUFBRSxDQUFDO0lBQ2pCLENBQUM7O2lIQTFCVSxvQkFBb0I7cUhBQXBCLG9CQUFvQjsyRkFBcEIsb0JBQW9CO2tCQURoQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUHJvZHVjdEFwaVNlcnZpY2UgfSBmcm9tICdAdmVsb2NlYXBwcy9hcGknO1xuaW1wb3J0IHsgRGljdGlvbmFyeSB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNhdGNoRXJyb3IsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIE9ic2VydmFibGUsIG9mLCB0YXAgfSBmcm9tICdyeGpzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFByb2R1Y3RJbWFnZXNTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBpbWFnZXNNYXAkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxEaWN0aW9uYXJ5PHN0cmluZz4+KHt9KTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHByb2R1Y3RBcGlTZXJ2aWNlOiBQcm9kdWN0QXBpU2VydmljZSkge31cblxuICBwdWJsaWMgZ2V0SW1hZ2VVcmwkKHByb2R1Y3RJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxzdHJpbmcgfCBudWxsPiB7XG4gICAgaWYgKHRoaXMuaW1hZ2VzTWFwJC52YWx1ZVtwcm9kdWN0SWRdID09IG51bGwpIHtcbiAgICAgIHRoaXMuaW1hZ2VzTWFwJC5uZXh0KHsgLi4udGhpcy5pbWFnZXNNYXAkLnZhbHVlLCBbcHJvZHVjdElkXTogJycgfSk7XG4gICAgICB0aGlzLmZldGNoUHJvZHVjdEltYWdlKHByb2R1Y3RJZCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuaW1hZ2VzTWFwJC5waXBlKFxuICAgICAgbWFwKGltYWdlc01hcCA9PiBpbWFnZXNNYXBbcHJvZHVjdElkXSA/PyBudWxsKSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZmV0Y2hQcm9kdWN0SW1hZ2UocHJvZHVjdElkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnByb2R1Y3RBcGlTZXJ2aWNlXG4gICAgICAuZmV0Y2hJbWFnZSQocHJvZHVjdElkKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcChmaWxlID0+IFVSTC5jcmVhdGVPYmplY3RVUkwoZmlsZSkpLFxuICAgICAgICBjYXRjaEVycm9yKCgpID0+IG9mKCcnKSksXG4gICAgICAgIHRhcCh1cmwgPT4gdGhpcy5pbWFnZXNNYXAkLm5leHQoeyAuLi50aGlzLmltYWdlc01hcCQudmFsdWUsIFtwcm9kdWN0SWRdOiB1cmwgfSkpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG59XG4iXX0=
@@ -1,14 +1,17 @@
1
1
  import { Injectable } from '@angular/core';
2
- import { PriceApiService, QuoteApiService } from '@veloceapps/api';
2
+ import { AccountApiService, QuoteApiService } from '@veloceapps/api';
3
3
  import { ConfigurationContextMode } from '@veloceapps/core';
4
4
  import { isEqual } from 'lodash';
5
- import { BehaviorSubject, combineLatest, noop, zip } from 'rxjs';
5
+ import { BehaviorSubject, combineLatest, noop, of, zip } from 'rxjs';
6
6
  import { filter, map, shareReplay, skip, switchMap, take, tap } from 'rxjs/operators';
7
7
  import { ContextService } from './context.service';
8
8
  import * as i0 from "@angular/core";
9
9
  import * as i1 from "./context.service";
10
10
  import * as i2 from "@veloceapps/api";
11
11
  export class QuoteDraftService {
12
+ get isInitialized$() {
13
+ return this.isInitializedSubj$.asObservable();
14
+ }
12
15
  get isInitialized() {
13
16
  return this.isInitializedSubj$.getValue();
14
17
  }
@@ -30,22 +33,28 @@ export class QuoteDraftService {
30
33
  return this.quoteSubj$.pipe(map(() => this.hasProducts));
31
34
  }
32
35
  get hasProducts() {
33
- const quoteDraft = this.quoteSubj$.value;
34
- return Boolean(quoteDraft && quoteDraft.currentState.length > 0);
36
+ return Boolean(this.quoteSubj$.value?.currentState.length);
37
+ }
38
+ get hasAssets$() {
39
+ return this.assetsSubj$.pipe(map(() => this.hasAssets));
40
+ }
41
+ get hasAssets() {
42
+ return Boolean(this.assetsSubj$.value?.currentState.length);
35
43
  }
36
- constructor(context, quoteApiService, priceApiService) {
44
+ get assetsState() {
45
+ return this.assetsSubj$.value;
46
+ }
47
+ constructor(context, accountApiService, quoteApiService) {
37
48
  this.context = context;
49
+ this.accountApiService = accountApiService;
38
50
  this.quoteApiService = quoteApiService;
39
- this.priceApiService = priceApiService;
40
51
  this.quoteSubj$ = new BehaviorSubject(null);
52
+ this.assetsSubj$ = new BehaviorSubject(null);
41
53
  this.resetSubj$ = new BehaviorSubject(true);
42
54
  this.isInitializedSubj$ = new BehaviorSubject(false);
43
55
  this.initialCurrentState = [];
44
56
  this._hasUnsavedChanges = false;
45
- this.allPriceLists = [];
46
- this.assetPriceLists = [];
47
57
  this.reset$ = this.resetSubj$.asObservable();
48
- this.activePriceList$ = this.context.resolve$().pipe(map(ctx => this.allPriceLists.find(priceList => priceList.id === ctx.properties.PriceListId)), map(priceList => priceList ?? null));
49
58
  this.isInitializedSubj$
50
59
  .pipe(filter(isInitialized => isInitialized), switchMap(() => this.quoteSubj$.asObservable()), skip(1), tap(quote => this.markAsUpdated(quote)))
51
60
  .subscribe();
@@ -53,17 +62,25 @@ export class QuoteDraftService {
53
62
  reset() {
54
63
  this.resetSubj$.next(true);
55
64
  this.quoteSubj$.next(null);
65
+ this.assetsSubj$.next(null);
56
66
  this.isInitialized = false;
57
67
  this.hasUnsavedChanges = false;
58
68
  }
59
- init(quoteId, params) {
60
- return zip(this.quoteApiService.getQuoteDraft(quoteId, params), this.priceApiService.getPriceLists()).pipe(tap(([quote, allPriceLists]) => {
61
- this.allPriceLists = allPriceLists;
69
+ init(headerId, params) {
70
+ const ctx = this.context.resolve();
71
+ const accountId = this.context.mode === ConfigurationContextMode.ACCOUNT ? headerId : ctx.properties.AccountId;
72
+ return zip(accountId ? this.accountApiService.getAssetsState(accountId, params) : of(null), this.quoteApiService.getQuoteState(headerId, params)).pipe(tap(([assets, quote]) => {
73
+ if (assets) {
74
+ this.assetsSubj$.next(assets);
75
+ }
62
76
  this.quoteSubj$.next(quote);
63
77
  this.context.update(quote.context);
64
- this.populateActivePriceLists$();
65
78
  }), map(() => noop()), take(1));
66
79
  }
80
+ finalizeInit() {
81
+ this.isInitialized = true;
82
+ this.hasUnsavedChanges = false;
83
+ }
67
84
  setCurrentLineItemState(lineItems) {
68
85
  const quoteDraft = this.quoteSubj$.value;
69
86
  if (!quoteDraft) {
@@ -103,6 +120,9 @@ export class QuoteDraftService {
103
120
  approvalItems: priceSummary.approvalItems,
104
121
  });
105
122
  }
123
+ setAssetsState(assetsState) {
124
+ this.assetsSubj$.next(assetsState);
125
+ }
106
126
  get quoteDraft$() {
107
127
  return combineLatest([this.quoteSubj$, this.context.resolve$()]).pipe(map(() => this.quoteDraft), filter((quote) => Boolean(quote)), shareReplay());
108
128
  }
@@ -116,54 +136,12 @@ export class QuoteDraftService {
116
136
  context: this.context.resolve(),
117
137
  };
118
138
  }
119
- get quoteDraftForActivePriceList() {
120
- const quoteDraft = this.quoteDraft;
121
- if (!quoteDraft) {
122
- return null;
123
- }
124
- return {
125
- ...quoteDraft,
126
- initialState: this.filterByActivePriceList(quoteDraft.initialState),
127
- currentState: this.filterByActivePriceList(quoteDraft.currentState),
128
- };
129
- }
130
139
  get currentState$() {
131
140
  return this.quoteDraft$.pipe(map(quote => quote.currentState));
132
141
  }
133
142
  get currentState() {
134
143
  return this.quoteDraft?.currentState ?? [];
135
144
  }
136
- /**
137
- * Stream of activeCurrentState
138
- */
139
- get activeCurrentState$() {
140
- return this.quoteDraft$.pipe(map(() => this.activeCurrentState));
141
- }
142
- /**
143
- * activeCurrentState is currentState passed through additional filters
144
- */
145
- get activeCurrentState() {
146
- let currentState = this.quoteDraft?.currentState ?? [];
147
- currentState = this.filterByActivePriceList(currentState);
148
- return currentState;
149
- }
150
- /**
151
- * Stream of activeInitialState
152
- */
153
- get activeInitialState$() {
154
- return this.quoteDraft$.pipe(map(() => this.activeInitialState));
155
- }
156
- /**
157
- * activeInitialState is initialState passed through additional filters
158
- */
159
- get activeInitialState() {
160
- const ctx = this.context.resolve();
161
- let initialState = this.quoteDraft?.initialState ?? [];
162
- if (ctx.mode === ConfigurationContextMode.ACCOUNT) {
163
- initialState = this.filterByActivePriceList(initialState);
164
- }
165
- return initialState;
166
- }
167
145
  get isStandalone() {
168
146
  return this.context.resolve().properties.standalone === 'true';
169
147
  }
@@ -186,37 +164,8 @@ export class QuoteDraftService {
186
164
  }
187
165
  return false;
188
166
  }
189
- updateActivePriceList(priceListId) {
190
- this.context.update({ properties: { PriceListId: priceListId } });
191
- }
192
- populateActivePriceLists$() {
193
- const ctx = this.context.resolve();
194
- const quoteDraft = this.quoteDraft;
195
- if (!quoteDraft) {
196
- return;
197
- }
198
- // In ACCOUNT mode populate price lists from related assets
199
- if (ctx.mode === ConfigurationContextMode.ACCOUNT) {
200
- // Populate list of price lists
201
- this.assetPriceLists = quoteDraft.currentState
202
- .map(({ priceListId }) => priceListId)
203
- .reduce((trunk, priceListId) => {
204
- if (!priceListId || trunk.some(item => item.id === priceListId)) {
205
- return trunk;
206
- }
207
- return [
208
- ...trunk,
209
- { id: priceListId, name: this.allPriceLists.find(item => item.id === priceListId)?.name ?? '' },
210
- ];
211
- }, []);
212
- }
213
- }
214
- filterByActivePriceList(lineItems) {
215
- const ctx = this.context.resolve();
216
- return lineItems.filter(li => !li.priceListId || li.priceListId === ctx.properties.PriceListId);
217
- }
218
167
  markAsUpdated(quote) {
219
- if (quote?.context.properties.mode === ConfigurationContextMode.ACCOUNT) {
168
+ if (quote?.context.properties['#mode'] === ConfigurationContextMode.ACCOUNT) {
220
169
  this.hasUnsavedChanges = !!quote && !quote.currentState.every(li => li.actionCode === 'EXIST');
221
170
  }
222
171
  else {
@@ -224,10 +173,9 @@ export class QuoteDraftService {
224
173
  }
225
174
  }
226
175
  }
227
- QuoteDraftService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: QuoteDraftService, deps: [{ token: i1.ContextService }, { token: i2.QuoteApiService }, { token: i2.PriceApiService }], target: i0.ɵɵFactoryTarget.Injectable });
228
- QuoteDraftService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: QuoteDraftService, providedIn: 'root' });
176
+ QuoteDraftService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: QuoteDraftService, deps: [{ token: i1.ContextService }, { token: i2.AccountApiService }, { token: i2.QuoteApiService }], target: i0.ɵɵFactoryTarget.Injectable });
177
+ QuoteDraftService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: QuoteDraftService });
229
178
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: QuoteDraftService, decorators: [{
230
- type: Injectable,
231
- args: [{ providedIn: 'root' }]
232
- }], ctorParameters: function () { return [{ type: i1.ContextService }, { type: i2.QuoteApiService }, { type: i2.PriceApiService }]; } });
233
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVvdGUtZHJhZnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2NvcmUvc2VydmljZXMvcXVvdGUtZHJhZnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkUsT0FBTyxFQUFFLHdCQUF3QixFQUFpRCxNQUFNLGtCQUFrQixDQUFDO0FBQzNHLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBYyxhQUFhLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3RSxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7O0FBR25ELE1BQU0sT0FBTyxpQkFBaUI7SUFPNUIsSUFBVyxhQUFhO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzVDLENBQUM7SUFDRCxJQUFXLGFBQWEsQ0FBQyxLQUFjO1FBQ3JDLElBQUksSUFBSSxDQUFDLGFBQWEsS0FBSyxLQUFLLEVBQUU7WUFDaEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNyQztJQUNILENBQUM7SUFFRCxJQUFXLGlCQUFpQjtRQUMxQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztJQUNqQyxDQUFDO0lBQ0QsSUFBVyxpQkFBaUIsQ0FBQyxLQUFjO1FBQ3pDLElBQUksQ0FBQyxr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RSxJQUFJLElBQUksRUFBRSxFQUFFO2lCQUNoRyxDQUFDO1lBQ0osQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQ1Y7SUFDSCxDQUFDO0lBRU8sdUJBQXVCLENBQUMsU0FBcUI7UUFDbkQsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUVuQyxPQUFPLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDLFdBQVcsS0FBSyxHQUFHLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2xHLENBQUM7SUFFTyxhQUFhLENBQUMsS0FBd0I7UUFDNUMsSUFBSSxLQUFLLEVBQUUsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEtBQUssd0JBQXdCLENBQUMsT0FBTyxFQUFFO1lBQ3ZFLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxLQUFLLE9BQU8sQ0FBQyxDQUFDO1NBQ2hHO2FBQU07WUFDTCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLEtBQUssRUFBRSxZQUFZLENBQUMsQ0FBQztTQUNsRjtJQUNILENBQUM7OzhHQTlSVSxpQkFBaUI7a0hBQWpCLGlCQUFpQixjQURKLE1BQU07MkZBQ25CLGlCQUFpQjtrQkFEN0IsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQcmljZUFwaVNlcnZpY2UsIFF1b3RlQXBpU2VydmljZSB9IGZyb20gJ0B2ZWxvY2VhcHBzL2FwaSc7XG5pbXBvcnQgeyBDb25maWd1cmF0aW9uQ29udGV4dE1vZGUsIExpbmVJdGVtLCBQcmljZUxpc3QsIFByaWNlU3VtbWFyeSwgUXVvdGVEcmFmdCB9IGZyb20gJ0B2ZWxvY2VhcHBzL2NvcmUnO1xuaW1wb3J0IHsgRGljdGlvbmFyeSwgaXNFcXVhbCB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIGNvbWJpbmVMYXRlc3QsIG5vb3AsIHppcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAsIHNoYXJlUmVwbGF5LCBza2lwLCBzd2l0Y2hNYXAsIHRha2UsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IENvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi9jb250ZXh0LnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFF1b3RlRHJhZnRTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBxdW90ZVN1YmokID0gbmV3IEJlaGF2aW9yU3ViamVjdDxRdW90ZURyYWZ0IHwgbnVsbD4obnVsbCk7XG4gIHByaXZhdGUgcmVzZXRTdWJqJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSk7XG4gIHByaXZhdGUgaXNJbml0aWFsaXplZFN1YmokID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIHByaXZhdGUgaW5pdGlhbEN1cnJlbnRTdGF0ZTogTGluZUl0ZW1bXSA9IFtdO1xuICBwcml2YXRlIF9oYXNVbnNhdmVkQ2hhbmdlcyA9IGZhbHNlO1xuXG4gIHB1YmxpYyBnZXQgaXNJbml0aWFsaXplZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc0luaXRpYWxpemVkU3ViaiQuZ2V0VmFsdWUoKTtcbiAgfVxuICBwdWJsaWMgc2V0IGlzSW5pdGlhbGl6ZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAodGhpcy5pc0luaXRpYWxpemVkICE9PSB2YWx1ZSkge1xuICAgICAgdGhpcy5pc0luaXRpYWxpemVkU3ViaiQubmV4dCh2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBoYXNVbnNhdmVkQ2hhbmdlcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5faGFzVW5zYXZlZENoYW5nZXM7XG4gIH1cbiAgcHVibGljIHNldCBoYXNVbnNhdmVkQ2hhbmdlcyh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2hhc1Vuc2F2ZWRDaGFuZ2VzID0gdmFsdWU7XG5cbiAgICBpZiAoIXRoaXMuX2hhc1Vuc2F2ZWRDaGFuZ2VzKSB7XG4gICAgICB0aGlzLmluaXRpYWxDdXJyZW50U3RhdGUgPSB0aGlzLnF1b3RlRHJhZnQ/LmN1cnJlbnRTdGF0ZSA/PyBbXTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGhhc1Byb2R1Y3RzJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5xdW90ZVN1YmokLnBpcGUobWFwKCgpID0+IHRoaXMuaGFzUHJvZHVjdHMpKTtcbiAgfVxuICBwdWJsaWMgZ2V0IGhhc1Byb2R1Y3RzKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHF1b3RlRHJhZnQgPSB0aGlzLnF1b3RlU3ViaiQudmFsdWU7XG4gICAgcmV0dXJuIEJvb2xlYW4ocXVvdGVEcmFmdCAmJiBxdW90ZURyYWZ0LmN1cnJlbnRTdGF0ZS5sZW5ndGggPiAwKTtcbiAgfVxuXG4gIHB1YmxpYyBhbGxQcmljZUxpc3RzOiBQcmljZUxpc3RbXSA9IFtdO1xuICBwdWJsaWMgYXNzZXRQcmljZUxpc3RzOiBQcmljZUxpc3RbXSA9IFtdO1xuICBwdWJsaWMgcmVzZXQkID0gdGhpcy5yZXNldFN1YmokLmFzT2JzZXJ2YWJsZSgpO1xuICBwdWJsaWMgYWN0aXZlUHJpY2VMaXN0JDogT2JzZXJ2YWJsZTxQcmljZUxpc3QgfCBudWxsPjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNvbnRleHQ6IENvbnRleHRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcXVvdGVBcGlTZXJ2aWNlOiBRdW90ZUFwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwcmljZUFwaVNlcnZpY2U6IFByaWNlQXBpU2VydmljZSxcbiAgKSB7XG4gICAgdGhpcy5hY3RpdmVQcmljZUxpc3QkID0gdGhpcy5jb250ZXh0LnJlc29sdmUkKCkucGlwZShcbiAgICAgIG1hcChjdHggPT4gdGhpcy5hbGxQcmljZUxpc3RzLmZpbmQocHJpY2VMaXN0ID0+IHByaWNlTGlzdC5pZCA9PT0gY3R4LnByb3BlcnRpZXMuUHJpY2VMaXN0SWQpKSxcbiAgICAgIG1hcChwcmljZUxpc3QgPT4gcHJpY2VMaXN0ID8/IG51bGwpLFxuICAgICk7XG5cbiAgICB0aGlzLmlzSW5pdGlhbGl6ZWRTdWJqJFxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcihpc0luaXRpYWxpemVkID0+IGlzSW5pdGlhbGl6ZWQpLFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5xdW90ZVN1YmokLmFzT2JzZXJ2YWJsZSgpKSxcbiAgICAgICAgc2tpcCgxKSxcbiAgICAgICAgdGFwKHF1b3RlID0+IHRoaXMubWFya0FzVXBkYXRlZChxdW90ZSkpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIHJlc2V0KCk6IHZvaWQge1xuICAgIHRoaXMucmVzZXRTdWJqJC5uZXh0KHRydWUpO1xuICAgIHRoaXMucXVvdGVTdWJqJC5uZXh0KG51bGwpO1xuICAgIHRoaXMuaXNJbml0aWFsaXplZCA9IGZhbHNlO1xuICAgIHRoaXMuaGFzVW5zYXZlZENoYW5nZXMgPSBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBpbml0KHF1b3RlSWQ6IHN0cmluZywgcGFyYW1zOiBEaWN0aW9uYXJ5PHN0cmluZz4pOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gemlwKHRoaXMucXVvdGVBcGlTZXJ2aWNlLmdldFF1b3RlRHJhZnQocXVvdGVJZCwgcGFyYW1zKSwgdGhpcy5wcmljZUFwaVNlcnZpY2UuZ2V0UHJpY2VMaXN0cygpKS5waXBlKFxuICAgICAgdGFwKChbcXVvdGUsIGFsbFByaWNlTGlzdHNdKSA9PiB7XG4gICAgICAgIHRoaXMuYWxsUHJpY2VMaXN0cyA9IGFsbFByaWNlTGlzdHM7XG4gICAgICAgIHRoaXMucXVvdGVTdWJqJC5uZXh0KHF1b3RlKTtcblxuICAgICAgICB0aGlzLmNvbnRleHQudXBkYXRlKHF1b3RlLmNvbnRleHQpO1xuXG4gICAgICAgIHRoaXMucG9wdWxhdGVBY3RpdmVQcmljZUxpc3RzJCgpO1xuICAgICAgfSksXG4gICAgICBtYXAoKCkgPT4gbm9vcCgpKSxcbiAgICAgIHRha2UoMSksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRDdXJyZW50TGluZUl0ZW1TdGF0ZShsaW5lSXRlbXM6IExpbmVJdGVtW10pOiB2b2lkIHtcbiAgICBjb25zdCBxdW90ZURyYWZ0ID0gdGhpcy5xdW90ZVN1YmokLnZhbHVlO1xuXG4gICAgaWYgKCFxdW90ZURyYWZ0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5xdW90ZVN1YmokLm5leHQoe1xuICAgICAgLi4ucXVvdGVEcmFmdCxcbiAgICAgIGN1cnJlbnRTdGF0ZTogbGluZUl0ZW1zLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZVF1b3RlRHJhZnQodXBkYXRlOiBQYXJ0aWFsPFF1b3RlRHJhZnQ+KTogdm9pZCB7XG4gICAgY29uc3QgcXVvdGVEcmFmdCA9IHRoaXMucXVvdGVTdWJqJC52YWx1ZTtcblxuICAgIGlmICghcXVvdGVEcmFmdCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh1cGRhdGUuY29udGV4dCkge1xuICAgICAgdGhpcy5jb250ZXh0LnNldCh1cGRhdGUuY29udGV4dCk7XG4gICAgfVxuXG4gICAgdGhpcy5xdW90ZVN1YmokLm5leHQoe1xuICAgICAgLi4ucXVvdGVEcmFmdCxcbiAgICAgIC4uLnVwZGF0ZSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVCeVByaWNlU3VtbWFyeShwcmljZVN1bW1hcnk6IFByaWNlU3VtbWFyeSk6IHZvaWQge1xuICAgIGNvbnN0IHF1b3RlRHJhZnQgPSB0aGlzLnF1b3RlU3ViaiQudmFsdWU7XG5cbiAgICBpZiAoIXF1b3RlRHJhZnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB1cGRhdGVkQ3VycmVudFN0YXRlID0gdGhpcy5jdXJyZW50U3RhdGUubWFwKGxpbmVJdGVtID0+IHtcbiAgICAgIGNvbnN0IHVwZGF0ZWQgPSBwcmljZVN1bW1hcnkubGluZUl0ZW1zLmZpbmQobGkgPT4gbGkuaWQgPT09IGxpbmVJdGVtLmlkKTtcbiAgICAgIHJldHVybiB1cGRhdGVkID8/IGxpbmVJdGVtO1xuICAgIH0pO1xuXG4gICAgdGhpcy5xdW90ZVN1YmokLm5leHQoe1xuICAgICAgLi4ucXVvdGVEcmFmdCxcbiAgICAgIGN1cnJlbnRTdGF0ZTogdXBkYXRlZEN1cnJlbnRTdGF0ZSxcbiAgICAgIHRvdGFsUHJpY2VzOiBwcmljZVN1bW1hcnkudG90YWxQcmljZXMsXG4gICAgICBhcHByb3ZhbEl0ZW1zOiBwcmljZVN1bW1hcnkuYXBwcm92YWxJdGVtcyxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcXVvdGVEcmFmdCQoKTogT2JzZXJ2YWJsZTxRdW90ZURyYWZ0PiB7XG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW3RoaXMucXVvdGVTdWJqJCwgdGhpcy5jb250ZXh0LnJlc29sdmUkKCldKS5waXBlKFxuICAgICAgbWFwKCgpID0+IHRoaXMucXVvdGVEcmFmdCksXG4gICAgICBmaWx0ZXIoKHF1b3RlKTogcXVvdGUgaXMgUXVvdGVEcmFmdCA9PiBCb29sZWFuKHF1b3RlKSksXG4gICAgICBzaGFyZVJlcGxheSgpLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHF1b3RlRHJhZnQoKTogUXVvdGVEcmFmdCB8IG51bGwge1xuICAgIGNvbnN0IHF1b3RlID0gdGhpcy5xdW90ZVN1YmokLnZhbHVlO1xuXG4gICAgaWYgKCFxdW90ZSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnF1b3RlLFxuICAgICAgY29udGV4dDogdGhpcy5jb250ZXh0LnJlc29sdmUoKSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGdldCBxdW90ZURyYWZ0Rm9yQWN0aXZlUHJpY2VMaXN0KCk6IFF1b3RlRHJhZnQgfCBudWxsIHtcbiAgICBjb25zdCBxdW90ZURyYWZ0ID0gdGhpcy5xdW90ZURyYWZ0O1xuXG4gICAgaWYgKCFxdW90ZURyYWZ0KSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4ucXVvdGVEcmFmdCxcbiAgICAgIGluaXRpYWxTdGF0ZTogdGhpcy5maWx0ZXJCeUFjdGl2ZVByaWNlTGlzdChxdW90ZURyYWZ0LmluaXRpYWxTdGF0ZSksXG4gICAgICBjdXJyZW50U3RhdGU6IHRoaXMuZmlsdGVyQnlBY3RpdmVQcmljZUxpc3QocXVvdGVEcmFmdC5jdXJyZW50U3RhdGUpLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgZ2V0IGN1cnJlbnRTdGF0ZSQoKTogT2JzZXJ2YWJsZTxMaW5lSXRlbVtdPiB7XG4gICAgcmV0dXJuIHRoaXMucXVvdGVEcmFmdCQucGlwZShtYXAocXVvdGUgPT4gcXVvdGUuY3VycmVudFN0YXRlKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGN1cnJlbnRTdGF0ZSgpOiBMaW5lSXRlbVtdIHtcbiAgICByZXR1cm4gdGhpcy5xdW90ZURyYWZ0Py5jdXJyZW50U3RhdGUgPz8gW107XG4gIH1cblxuICAvKipcbiAgICogU3RyZWFtIG9mIGFjdGl2ZUN1cnJlbnRTdGF0ZVxuICAgKi9cbiAgcHVibGljIGdldCBhY3RpdmVDdXJyZW50U3RhdGUkKCk6IE9ic2VydmFibGU8TGluZUl0ZW1bXT4ge1xuICAgIHJldHVybiB0aGlzLnF1b3RlRHJhZnQkLnBpcGUobWFwKCgpID0+IHRoaXMuYWN0aXZlQ3VycmVudFN0YXRlKSk7XG4gIH1cblxuICAvKipcbiAgICogYWN0aXZlQ3VycmVudFN0YXRlIGlzIGN1cnJlbnRTdGF0ZSBwYXNzZWQgdGhyb3VnaCBhZGRpdGlvbmFsIGZpbHRlcnNcbiAgICovXG4gIHB1YmxpYyBnZXQgYWN0aXZlQ3VycmVudFN0YXRlKCk6IExpbmVJdGVtW10ge1xuICAgIGxldCBjdXJyZW50U3RhdGUgPSB0aGlzLnF1b3RlRHJhZnQ/LmN1cnJlbnRTdGF0ZSA/PyBbXTtcblxuICAgIGN1cnJlbnRTdGF0ZSA9IHRoaXMuZmlsdGVyQnlBY3RpdmVQcmljZUxpc3QoY3VycmVudFN0YXRlKTtcblxuICAgIHJldHVybiBjdXJyZW50U3RhdGU7XG4gIH1cblxuICAvKipcbiAgICogU3RyZWFtIG9mIGFjdGl2ZUluaXRpYWxTdGF0ZVxuICAgKi9cbiAgcHVibGljIGdldCBhY3RpdmVJbml0aWFsU3RhdGUkKCk6IE9ic2VydmFibGU8TGluZUl0ZW1bXT4ge1xuICAgIHJldHVybiB0aGlzLnF1b3RlRHJhZnQkLnBpcGUobWFwKCgpID0+IHRoaXMuYWN0aXZlSW5pdGlhbFN0YXRlKSk7XG4gIH1cblxuICAvKipcbiAgICogYWN0aXZlSW5pdGlhbFN0YXRlIGlzIGluaXRpYWxTdGF0ZSBwYXNzZWQgdGhyb3VnaCBhZGRpdGlvbmFsIGZpbHRlcnNcbiAgICovXG4gIHB1YmxpYyBnZXQgYWN0aXZlSW5pdGlhbFN0YXRlKCk6IExpbmVJdGVtW10ge1xuICAgIGNvbnN0IGN0eCA9IHRoaXMuY29udGV4dC5yZXNvbHZlKCk7XG4gICAgbGV0IGluaXRpYWxTdGF0ZSA9IHRoaXMucXVvdGVEcmFmdD8uaW5pdGlhbFN0YXRlID8/IFtdO1xuXG4gICAgaWYgKGN0eC5tb2RlID09PSBDb25maWd1cmF0aW9uQ29udGV4dE1vZGUuQUNDT1VOVCkge1xuICAgICAgaW5pdGlhbFN0YXRlID0gdGhpcy5maWx0ZXJCeUFjdGl2ZVByaWNlTGlzdChpbml0aWFsU3RhdGUpO1xuICAgIH1cblxuICAgIHJldHVybiBpbml0aWFsU3RhdGU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzU3RhbmRhbG9uZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jb250ZXh0LnJlc29sdmUoKS5wcm9wZXJ0aWVzLnN0YW5kYWxvbmUgPT09ICd0cnVlJztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNTdGFuZGFsb25lJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5jb250ZXh0LnJlc29sdmUkKCkucGlwZShtYXAoKCkgPT4gdGhpcy5pc1N0YW5kYWxvbmUpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRJbml0aWFsQ3VycmVudFN0YXRlKCk6IExpbmVJdGVtW10ge1xuICAgIHJldHVybiB0aGlzLmluaXRpYWxDdXJyZW50U3RhdGU7XG4gIH1cblxuICBwdWJsaWMgaXNFZGl0TW9kZSQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuY29udGV4dC5yZXNvbHZlJCgpLnBpcGUobWFwKCgpID0+IHRoaXMuaXNFZGl0TW9kZSgpKSk7XG4gIH1cblxuICBwdWJsaWMgaXNFZGl0TW9kZSgpOiBib29sZWFuIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5jb250ZXh0LnJlc29sdmUoKTtcblxuICAgIGlmIChjb250ZXh0Lm1vZGUgPT09IENvbmZpZ3VyYXRpb25Db250ZXh0TW9kZS5BQ0NPVU5UKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoY29udGV4dC5tb2RlID09PSBDb25maWd1cmF0aW9uQ29udGV4dE1vZGUuUVVPVEUpIHtcbiAgICAgIHJldHVybiBjb250ZXh0LnByb3BlcnRpZXMuU3RhdHVzID09PSAnRHJhZnQnO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVBY3RpdmVQcmljZUxpc3QocHJpY2VMaXN0SWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuY29udGV4dC51cGRhdGUoeyBwcm9wZXJ0aWVzOiB7IFByaWNlTGlzdElkOiBwcmljZUxpc3RJZCB9IH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBwb3B1bGF0ZUFjdGl2ZVByaWNlTGlzdHMkKCk6IHZvaWQge1xuICAgIGNvbnN0IGN0eCA9IHRoaXMuY29udGV4dC5yZXNvbHZlKCk7XG4gICAgY29uc3QgcXVvdGVEcmFmdCA9IHRoaXMucXVvdGVEcmFmdDtcblxuICAgIGlmICghcXVvdGVEcmFmdCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIEluIEFDQ09VTlQgbW9kZSBwb3B1bGF0ZSBwcmljZSBsaXN0cyBmcm9tIHJlbGF0ZWQgYXNzZXRzXG4gICAgaWYgKGN0eC5tb2RlID09PSBDb25maWd1cmF0aW9uQ29udGV4dE1vZGUuQUNDT1VOVCkge1xuICAgICAgLy8gUG9wdWxhdGUgbGlzdCBvZiBwcmljZSBsaXN0c1xuICAgICAgdGhpcy5hc3NldFByaWNlTGlzdHMgPSBxdW90ZURyYWZ0LmN1cnJlbnRTdGF0ZVxuICAgICAgICAubWFwKCh7IHByaWNlTGlzdElkIH0pID0+IHByaWNlTGlzdElkKVxuICAgICAgICAucmVkdWNlPFByaWNlTGlzdFtdPigodHJ1bmssIHByaWNlTGlzdElkKSA9PiB7XG4gICAgICAgICAgaWYgKCFwcmljZUxpc3RJZCB8fCB0cnVuay5zb21lKGl0ZW0gPT4gaXRlbS5pZCA9PT0gcHJpY2VMaXN0SWQpKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1bms7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIC4uLnRydW5rLFxuICAgICAgICAgICAgeyBpZDogcHJpY2VMaXN0SWQsIG5hbWU6IHRoaXMuYWxsUHJpY2VMaXN0cy5maW5kKGl0ZW0gPT4gaXRlbS5pZCA9PT0gcHJpY2VMaXN0SWQpPy5uYW1lID8/ICcnIH0sXG4gICAgICAgICAgXTtcbiAgICAgICAgfSwgW10pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZmlsdGVyQnlBY3RpdmVQcmljZUxpc3QobGluZUl0ZW1zOiBMaW5lSXRlbVtdKTogTGluZUl0ZW1bXSB7XG4gICAgY29uc3QgY3R4ID0gdGhpcy5jb250ZXh0LnJlc29sdmUoKTtcblxuICAgIHJldHVybiBsaW5lSXRlbXMuZmlsdGVyKGxpID0+ICFsaS5wcmljZUxpc3RJZCB8fCBsaS5wcmljZUxpc3RJZCA9PT0gY3R4LnByb3BlcnRpZXMuUHJpY2VMaXN0SWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBtYXJrQXNVcGRhdGVkKHF1b3RlOiBRdW90ZURyYWZ0IHwgbnVsbCk6IHZvaWQge1xuICAgIGlmIChxdW90ZT8uY29udGV4dC5wcm9wZXJ0aWVzLm1vZGUgPT09IENvbmZpZ3VyYXRpb25Db250ZXh0TW9kZS5BQ0NPVU5UKSB7XG4gICAgICB0aGlzLmhhc1Vuc2F2ZWRDaGFuZ2VzID0gISFxdW90ZSAmJiAhcXVvdGUuY3VycmVudFN0YXRlLmV2ZXJ5KGxpID0+IGxpLmFjdGlvbkNvZGUgPT09ICdFWElTVCcpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmhhc1Vuc2F2ZWRDaGFuZ2VzID0gIWlzRXF1YWwodGhpcy5pbml0aWFsQ3VycmVudFN0YXRlLCBxdW90ZT8uY3VycmVudFN0YXRlKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
179
+ type: Injectable
180
+ }], ctorParameters: function () { return [{ type: i1.ContextService }, { type: i2.AccountApiService }, { type: i2.QuoteApiService }]; } });
181
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVvdGUtZHJhZnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2NvcmUvc2VydmljZXMvcXVvdGUtZHJhZnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRSxPQUFPLEVBQXNCLHdCQUF3QixFQUFzQyxNQUFNLGtCQUFrQixDQUFDO0FBQ3BILE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFjLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakYsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7OztBQUduRCxNQUFNLE9BQU8saUJBQWlCO0lBUTVCLElBQVcsY0FBYztRQUN2QixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNoRCxDQUFDO0lBQ0QsSUFBVyxhQUFhO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzVDLENBQUM7SUFDRCxJQUFXLGFBQWEsQ0FBQyxLQUFjO1FBQ3JDLElBQUksSUFBSSxDQUFDLGFBQWEsS0FBSyxLQUFLLEVBQUU7WUFDaEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNyQztJQUNILENBQUM7SUFFRCxJQUFXLGlCQUFpQjtR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O1NBQ2xGO0lBQ0gsQ0FBQzs7OEdBM05VLGlCQUFpQjtrSEFBakIsaUJBQWlCOzJGQUFqQixpQkFBaUI7a0JBRDdCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY2NvdW50QXBpU2VydmljZSwgUXVvdGVBcGlTZXJ2aWNlIH0gZnJvbSAnQHZlbG9jZWFwcHMvYXBpJztcbmltcG9ydCB7IEFjY291bnRBc3NldHNTdGF0ZSwgQ29uZmlndXJhdGlvbkNvbnRleHRNb2RlLCBMaW5lSXRlbSwgUHJpY2VTdW1tYXJ5LCBRdW90ZURyYWZ0IH0gZnJvbSAnQHZlbG9jZWFwcHMvY29yZSc7XG5pbXBvcnQgeyBEaWN0aW9uYXJ5LCBpc0VxdWFsIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgbm9vcCwgT2JzZXJ2YWJsZSwgb2YsIHppcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAsIHNoYXJlUmVwbGF5LCBza2lwLCBzd2l0Y2hNYXAsIHRha2UsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IENvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi9jb250ZXh0LnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUXVvdGVEcmFmdFNlcnZpY2Uge1xuICBwcml2YXRlIHF1b3RlU3ViaiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFF1b3RlRHJhZnQgfCBudWxsPihudWxsKTtcbiAgcHJpdmF0ZSBhc3NldHNTdWJqJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QWNjb3VudEFzc2V0c1N0YXRlIHwgbnVsbD4obnVsbCk7XG4gIHByaXZhdGUgcmVzZXRTdWJqJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSk7XG4gIHByaXZhdGUgaXNJbml0aWFsaXplZFN1YmokID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIHByaXZhdGUgaW5pdGlhbEN1cnJlbnRTdGF0ZTogTGluZUl0ZW1bXSA9IFtdO1xuICBwcml2YXRlIF9oYXNVbnNhdmVkQ2hhbmdlcyA9IGZhbHNlO1xuXG4gIHB1YmxpYyBnZXQgaXNJbml0aWFsaXplZCQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuaXNJbml0aWFsaXplZFN1YmokLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG4gIHB1YmxpYyBnZXQgaXNJbml0aWFsaXplZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc0luaXRpYWxpemVkU3ViaiQuZ2V0VmFsdWUoKTtcbiAgfVxuICBwdWJsaWMgc2V0IGlzSW5pdGlhbGl6ZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAodGhpcy5pc0luaXRpYWxpemVkICE9PSB2YWx1ZSkge1xuICAgICAgdGhpcy5pc0luaXRpYWxpemVkU3ViaiQubmV4dCh2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBoYXNVbnNhdmVkQ2hhbmdlcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5faGFzVW5zYXZlZENoYW5nZXM7XG4gIH1cbiAgcHVibGljIHNldCBoYXNVbnNhdmVkQ2hhbmdlcyh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2hhc1Vuc2F2ZWRDaGFuZ2VzID0gdmFsdWU7XG5cbiAgICBpZiAoIXRoaXMuX2hhc1Vuc2F2ZWRDaGFuZ2VzKSB7XG4gICAgICB0aGlzLmluaXRpYWxDdXJyZW50U3RhdGUgPSB0aGlzLnF1b3RlRHJhZnQ/LmN1cnJlbnRTdGF0ZSA/PyBbXTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGhhc1Byb2R1Y3RzJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5xdW90ZVN1YmokLnBpcGUobWFwKCgpID0+IHRoaXMuaGFzUHJvZHVjdHMpKTtcbiAgfVxuICBwdWJsaWMgZ2V0IGhhc1Byb2R1Y3RzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBCb29sZWFuKHRoaXMucXVvdGVTdWJqJC52YWx1ZT8uY3VycmVudFN0YXRlLmxlbmd0aCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGhhc0Fzc2V0cyQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuYXNzZXRzU3ViaiQucGlwZShtYXAoKCkgPT4gdGhpcy5oYXNBc3NldHMpKTtcbiAgfVxuICBwdWJsaWMgZ2V0IGhhc0Fzc2V0cygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gQm9vbGVhbih0aGlzLmFzc2V0c1N1YmokLnZhbHVlPy5jdXJyZW50U3RhdGUubGVuZ3RoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYXNzZXRzU3RhdGUoKTogQWNjb3VudEFzc2V0c1N0YXRlIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuYXNzZXRzU3ViaiQudmFsdWU7XG4gIH1cblxuICBwdWJsaWMgcmVzZXQkID0gdGhpcy5yZXNldFN1YmokLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY29udGV4dDogQ29udGV4dFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhY2NvdW50QXBpU2VydmljZTogQWNjb3VudEFwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBxdW90ZUFwaVNlcnZpY2U6IFF1b3RlQXBpU2VydmljZSxcbiAgKSB7XG4gICAgdGhpcy5pc0luaXRpYWxpemVkU3ViaiRcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoaXNJbml0aWFsaXplZCA9PiBpc0luaXRpYWxpemVkKSxcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMucXVvdGVTdWJqJC5hc09ic2VydmFibGUoKSksXG4gICAgICAgIHNraXAoMSksXG4gICAgICAgIHRhcChxdW90ZSA9PiB0aGlzLm1hcmtBc1VwZGF0ZWQocXVvdGUpKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyByZXNldCgpOiB2b2lkIHtcbiAgICB0aGlzLnJlc2V0U3ViaiQubmV4dCh0cnVlKTtcbiAgICB0aGlzLnF1b3RlU3ViaiQubmV4dChudWxsKTtcbiAgICB0aGlzLmFzc2V0c1N1YmokLm5leHQobnVsbCk7XG4gICAgdGhpcy5pc0luaXRpYWxpemVkID0gZmFsc2U7XG4gICAgdGhpcy5oYXNVbnNhdmVkQ2hhbmdlcyA9IGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGluaXQoaGVhZGVySWQ6IHN0cmluZywgcGFyYW1zOiBEaWN0aW9uYXJ5PHN0cmluZz4pOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICBjb25zdCBjdHggPSB0aGlzLmNvbnRleHQucmVzb2x2ZSgpO1xuICAgIGNvbnN0IGFjY291bnRJZCA9IHRoaXMuY29udGV4dC5tb2RlID09PSBDb25maWd1cmF0aW9uQ29udGV4dE1vZGUuQUNDT1VOVCA/IGhlYWRlcklkIDogY3R4LnByb3BlcnRpZXMuQWNjb3VudElkO1xuXG4gICAgcmV0dXJuIHppcChcbiAgICAgIGFjY291bnRJZCA/IHRoaXMuYWNjb3VudEFwaVNlcnZpY2UuZ2V0QXNzZXRzU3RhdGUoYWNjb3VudElkLCBwYXJhbXMpIDogb2YobnVsbCksXG4gICAgICB0aGlzLnF1b3RlQXBpU2VydmljZS5nZXRRdW90ZVN0YXRlKGhlYWRlcklkLCBwYXJhbXMpLFxuICAgICkucGlwZShcbiAgICAgIHRhcCgoW2Fzc2V0cywgcXVvdGVdKSA9PiB7XG4gICAgICAgIGlmIChhc3NldHMpIHtcbiAgICAgICAgICB0aGlzLmFzc2V0c1N1YmokLm5leHQoYXNzZXRzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucXVvdGVTdWJqJC5uZXh0KHF1b3RlKTtcbiAgICAgICAgdGhpcy5jb250ZXh0LnVwZGF0ZShxdW90ZS5jb250ZXh0KTtcbiAgICAgIH0pLFxuICAgICAgbWFwKCgpID0+IG5vb3AoKSksXG4gICAgICB0YWtlKDEpLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZmluYWxpemVJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaXNJbml0aWFsaXplZCA9IHRydWU7XG4gICAgdGhpcy5oYXNVbnNhdmVkQ2hhbmdlcyA9IGZhbHNlO1xuICB9XG5cbiAgcHVibGljIHNldEN1cnJlbnRMaW5lSXRlbVN0YXRlKGxpbmVJdGVtczogTGluZUl0ZW1bXSk6IHZvaWQge1xuICAgIGNvbnN0IHF1b3RlRHJhZnQgPSB0aGlzLnF1b3RlU3ViaiQudmFsdWU7XG5cbiAgICBpZiAoIXF1b3RlRHJhZnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnF1b3RlU3ViaiQubmV4dCh7XG4gICAgICAuLi5xdW90ZURyYWZ0LFxuICAgICAgY3VycmVudFN0YXRlOiBsaW5lSXRlbXMsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlUXVvdGVEcmFmdCh1cGRhdGU6IFBhcnRpYWw8UXVvdGVEcmFmdD4pOiB2b2lkIHtcbiAgICBjb25zdCBxdW90ZURyYWZ0ID0gdGhpcy5xdW90ZVN1YmokLnZhbHVlO1xuXG4gICAgaWYgKCFxdW90ZURyYWZ0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHVwZGF0ZS5jb250ZXh0KSB7XG4gICAgICB0aGlzLmNvbnRleHQuc2V0KHVwZGF0ZS5jb250ZXh0KTtcbiAgICB9XG5cbiAgICB0aGlzLnF1b3RlU3ViaiQubmV4dCh7XG4gICAgICAuLi5xdW90ZURyYWZ0LFxuICAgICAgLi4udXBkYXRlLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZUJ5UHJpY2VTdW1tYXJ5KHByaWNlU3VtbWFyeTogUHJpY2VTdW1tYXJ5KTogdm9pZCB7XG4gICAgY29uc3QgcXVvdGVEcmFmdCA9IHRoaXMucXVvdGVTdWJqJC52YWx1ZTtcblxuICAgIGlmICghcXVvdGVEcmFmdCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHVwZGF0ZWRDdXJyZW50U3RhdGUgPSB0aGlzLmN1cnJlbnRTdGF0ZS5tYXAobGluZUl0ZW0gPT4ge1xuICAgICAgY29uc3QgdXBkYXRlZCA9IHByaWNlU3VtbWFyeS5saW5lSXRlbXMuZmluZChsaSA9PiBsaS5pZCA9PT0gbGluZUl0ZW0uaWQpO1xuICAgICAgcmV0dXJuIHVwZGF0ZWQgPz8gbGluZUl0ZW07XG4gICAgfSk7XG5cbiAgICB0aGlzLnF1b3RlU3ViaiQubmV4dCh7XG4gICAgICAuLi5xdW90ZURyYWZ0LFxuICAgICAgY3VycmVudFN0YXRlOiB1cGRhdGVkQ3VycmVudFN0YXRlLFxuICAgICAgdG90YWxQcmljZXM6IHByaWNlU3VtbWFyeS50b3RhbFByaWNlcyxcbiAgICAgIGFwcHJvdmFsSXRlbXM6IHByaWNlU3VtbWFyeS5hcHByb3ZhbEl0ZW1zLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHNldEFzc2V0c1N0YXRlKGFzc2V0c1N0YXRlOiBBY2NvdW50QXNzZXRzU3RhdGUpOiB2b2lkIHtcbiAgICB0aGlzLmFzc2V0c1N1YmokLm5leHQoYXNzZXRzU3RhdGUpO1xuICB9XG5cbiAgcHVibGljIGdldCBxdW90ZURyYWZ0JCgpOiBPYnNlcnZhYmxlPFF1b3RlRHJhZnQ+IHtcbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChbdGhpcy5xdW90ZVN1YmokLCB0aGlzLmNvbnRleHQucmVzb2x2ZSQoKV0pLnBpcGUoXG4gICAgICBtYXAoKCkgPT4gdGhpcy5xdW90ZURyYWZ0KSxcbiAgICAgIGZpbHRlcigocXVvdGUpOiBxdW90ZSBpcyBRdW90ZURyYWZ0ID0+IEJvb2xlYW4ocXVvdGUpKSxcbiAgICAgIHNoYXJlUmVwbGF5KCksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcXVvdGVEcmFmdCgpOiBRdW90ZURyYWZ0IHwgbnVsbCB7XG4gICAgY29uc3QgcXVvdGUgPSB0aGlzLnF1b3RlU3ViaiQudmFsdWU7XG5cbiAgICBpZiAoIXF1b3RlKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4ucXVvdGUsXG4gICAgICBjb250ZXh0OiB0aGlzLmNvbnRleHQucmVzb2x2ZSgpLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgZ2V0IGN1cnJlbnRTdGF0ZSQoKTogT2JzZXJ2YWJsZTxMaW5lSXRlbVtdPiB7XG4gICAgcmV0dXJuIHRoaXMucXVvdGVEcmFmdCQucGlwZShtYXAocXVvdGUgPT4gcXVvdGUuY3VycmVudFN0YXRlKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGN1cnJlbnRTdGF0ZSgpOiBMaW5lSXRlbVtdIHtcbiAgICByZXR1cm4gdGhpcy5xdW90ZURyYWZ0Py5jdXJyZW50U3RhdGUgPz8gW107XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzU3RhbmRhbG9uZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jb250ZXh0LnJlc29sdmUoKS5wcm9wZXJ0aWVzLnN0YW5kYWxvbmUgPT09ICd0cnVlJztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNTdGFuZGFsb25lJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5jb250ZXh0LnJlc29sdmUkKCkucGlwZShtYXAoKCkgPT4gdGhpcy5pc1N0YW5kYWxvbmUpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRJbml0aWFsQ3VycmVudFN0YXRlKCk6IExpbmVJdGVtW10ge1xuICAgIHJldHVybiB0aGlzLmluaXRpYWxDdXJyZW50U3RhdGU7XG4gIH1cblxuICBwdWJsaWMgaXNFZGl0TW9kZSQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuY29udGV4dC5yZXNvbHZlJCgpLnBpcGUobWFwKCgpID0+IHRoaXMuaXNFZGl0TW9kZSgpKSk7XG4gIH1cblxuICBwdWJsaWMgaXNFZGl0TW9kZSgpOiBib29sZWFuIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5jb250ZXh0LnJlc29sdmUoKTtcblxuICAgIGlmIChjb250ZXh0Lm1vZGUgPT09IENvbmZpZ3VyYXRpb25Db250ZXh0TW9kZS5BQ0NPVU5UKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoY29udGV4dC5tb2RlID09PSBDb25maWd1cmF0aW9uQ29udGV4dE1vZGUuUVVPVEUpIHtcbiAgICAgIHJldHVybiBjb250ZXh0LnByb3BlcnRpZXMuU3RhdHVzID09PSAnRHJhZnQnO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgbWFya0FzVXBkYXRlZChxdW90ZTogUXVvdGVEcmFmdCB8IG51bGwpOiB2b2lkIHtcbiAgICBpZiAocXVvdGU/LmNvbnRleHQucHJvcGVydGllc1snI21vZGUnXSA9PT0gQ29uZmlndXJhdGlvbkNvbnRleHRNb2RlLkFDQ09VTlQpIHtcbiAgICAgIHRoaXMuaGFzVW5zYXZlZENoYW5nZXMgPSAhIXF1b3RlICYmICFxdW90ZS5jdXJyZW50U3RhdGUuZXZlcnkobGkgPT4gbGkuYWN0aW9uQ29kZSA9PT0gJ0VYSVNUJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaGFzVW5zYXZlZENoYW5nZXMgPSAhaXNFcXVhbCh0aGlzLmluaXRpYWxDdXJyZW50U3RhdGUsIHF1b3RlPy5jdXJyZW50U3RhdGUpO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -1,6 +1,6 @@
1
1
  import { Injectable } from '@angular/core';
2
2
  import { ConfigurationSettingsApiService } from '@veloceapps/api';
3
- import { DEFAULT_CURRENCY_ISO_CODE, DEFAULT_CURRENCY_SYMBOL, DEFAULT_DATE_FORMAT, DEFAULT_DECIMALS_COUNT, DEFAULT_DECIMAL_SEPARATOR, DEFAULT_THOUSANDS_SEPARATOR, getSupportedDateFormats, parseJsonSafely, validateDateFormat, DEFAULT_ACTION_CODE_LABELS, } from '@veloceapps/core';
3
+ import { DEFAULT_ACTION_CODE_LABELS, DEFAULT_CURRENCY_ISO_CODE, DEFAULT_CURRENCY_SYMBOL, DEFAULT_DATE_FORMAT, DEFAULT_DECIMALS_COUNT, DEFAULT_DECIMAL_SEPARATOR, DEFAULT_THOUSANDS_SEPARATOR, getSupportedDateFormats, parseJsonSafely, validateDateFormat, } from '@veloceapps/core';
4
4
  import { uniqBy } from 'lodash';
5
5
  import { BehaviorSubject, map, tap } from 'rxjs';
6
6
  import * as i0 from "@angular/core";
@@ -32,6 +32,9 @@ export class RuntimeSettingsService {
32
32
  if (iso) {
33
33
  const symbol = this.getCurrencySymbol('en-US', iso);
34
34
  this.currencySettings$.next({ iso, symbol });
35
+ if (this.formattingSettings) {
36
+ this.formattingSettings.currencySymbol = symbol;
37
+ }
35
38
  }
36
39
  }
37
40
  getFormattingSettings() {
@@ -102,9 +105,8 @@ export class RuntimeSettingsService {
102
105
  }
103
106
  }
104
107
  RuntimeSettingsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: RuntimeSettingsService, deps: [{ token: i1.ConfigurationSettingsApiService }], target: i0.ɵɵFactoryTarget.Injectable });
105
- RuntimeSettingsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: RuntimeSettingsService, providedIn: 'root' });
108
+ RuntimeSettingsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: RuntimeSettingsService });
106
109
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: RuntimeSettingsService, decorators: [{
107
- type: Injectable,
108
- args: [{ providedIn: 'root' }]
110
+ type: Injectable
109
111
  }], ctorParameters: function () { return [{ type: i1.ConfigurationSettingsApiService }]; } });
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS1zZXR0aW5ncy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvY29yZS9zZXJ2aWNlcy9ydW50aW1lLXNldHRpbmdzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRSxPQUFPLEVBRUwseUJBQXlCLEVBQ3pCLHVCQUF1QixFQUN2QixtQkFBbUIsRUFDbkIsc0JBQXNCLEVBQ3RCLHlCQUF5QixFQUN6QiwyQkFBMkIsRUFNM0IsdUJBQXVCLEVBQ3ZCLGVBQWUsRUFDZixrQkFBa0IsRUFDbEIsMEJBQTBCLEdBQzNCLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUFjLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUM1QyxPQUFPLEVBQUUsZUFBZSxFQUFjLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7OztBQUk3RCxNQUFNLE9BQU8sc0JBQXNCO0lBU2pDLFlBQW9CLCtCQUFnRTtRQUFoRSxvQ0FBK0IsR0FBL0IsK0JBQStCLENBQWlDO1FBUjVFLDJCQUFzQixHQUFHLElBQUksZUFBZSxDQUErQixFQUFFLENBQUMsQ0FBQztRQUMvRSxzQkFBaUIsR0FBRyxJQUFJLGVBQWUsQ0FBMEI7WUFDdkUsR0FBRyxFQUFFLHlCQUF5QjtZQUM5QixNQUFNLEVBQUUsdUJBQXVCO1NBQ2hDLENBQUMsQ0FBQztRQUVLLDBCQUFxQixHQUFHLElBQUksZUFBZSxDQUF3QixFQUFFLENBQUMsQ0FBQztRQW9HdkUsc0JBQWlCLEdBQUcsQ0FBQyxNQUFjLEVBQUUsUUFBZ0IsRUFBRSxFQUFFO1lBQy9ELE9BQU8sQ0FBQyxDQUFDLENBQUM7aUJBQ1AsY0FBYyxDQUFDLE1BQU0sRUFBRSxFQUFFLEtBQUss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QUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7b0JBQ2pGLE1BQU07Z0JBQ1IsS0FBSyxZQUFZO29CQUNmLEdBQUcsQ0FBQyxVQUFVLEdBQUcsZUFBZSxDQUFzQixPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO29CQUN6RSxNQUFNO2dCQUNSLEtBQUssT0FBTztvQkFDVixHQUFHLENBQUMsS0FBSyxHQUFHLGVBQWUsQ0FBUyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO29CQUN2RCxNQUFNO2dCQUNSO29CQUNFLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQzthQUNwQztZQUVELE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ1QsQ0FBQztJQVNNLHVCQUF1QixDQUFDLFFBQStCO1FBQzVELDhDQUE4QztRQUM5QyxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsQ0FBQyxHQUFHLFFBQVEsRUFBRSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNyRixJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQy9DLENBQUM7O21IQXRIVSxzQkFBc0I7dUhBQXRCLHNCQUFzQixjQURULE1BQU07MkZBQ25CLHNCQUFzQjtrQkFEbEMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb25maWd1cmF0aW9uU2V0dGluZ3NBcGlTZXJ2aWNlIH0gZnJvbSAnQHZlbG9jZWFwcHMvYXBpJztcbmltcG9ydCB7XG4gIENvbmZpZ3VyYXRpb25TZXR0aW5ncyxcbiAgREVGQVVMVF9DVVJSRU5DWV9JU09fQ09ERSxcbiAgREVGQVVMVF9DVVJSRU5DWV9TWU1CT0wsXG4gIERFRkFVTFRfREFURV9GT1JNQVQsXG4gIERFRkFVTFRfREVDSU1BTFNfQ09VTlQsXG4gIERFRkFVTFRfREVDSU1BTF9TRVBBUkFUT1IsXG4gIERFRkFVTFRfVEhPVVNBTkRTX1NFUEFSQVRPUixcbiAgRmxvdyxcbiAgUnVudGltZUNvbmZpZ3VyYXRpb25TZXR0aW5ncyxcbiAgUnVudGltZUN1cnJlbmN5U2V0dGluZ3MsXG4gIFNob3BwaW5nQ2FydFNldHRpbmcsXG4gIFNob3BwaW5nQ2FydFNldHRpbmdzLFxuICBnZXRTdXBwb3J0ZWREYXRlRm9ybWF0cyxcbiAgcGFyc2VKc29uU2FmZWx5LFxuICB2YWxpZGF0ZURhdGVGb3JtYXQsXG4gIERFRkFVTFRfQUNUSU9OX0NPREVfTEFCRUxTLFxufSBmcm9tICdAdmVsb2NlYXBwcy9jb3JlJztcbmltcG9ydCB7IERpY3Rpb25hcnksIHVuaXFCeSB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIG1hcCwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGb3JtYXR0aW5nU2V0dGluZ3MgfSBmcm9tICcuLi90eXBlcyc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgUnVudGltZVNldHRpbmdzU2VydmljZSB7XG4gIHByaXZhdGUgY29uZmlndXJhdGlvblNldHRpbmdzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UnVudGltZUNvbmZpZ3VyYXRpb25TZXR0aW5ncz4oe30pO1xuICBwcml2YXRlIGN1cnJlbmN5U2V0dGluZ3MkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxSdW50aW1lQ3VycmVuY3lTZXR0aW5ncz4oe1xuICAgIGlzbzogREVGQVVMVF9DVVJSRU5DWV9JU09fQ09ERSxcbiAgICBzeW1ib2w6IERFRkFVTFRfQ1VSUkVOQ1lfU1lNQk9MLFxuICB9KTtcbiAgcHJpdmF0ZSBmb3JtYXR0aW5nU2V0dGluZ3MhOiBGb3JtYXR0aW5nU2V0dGluZ3M7XG4gIHByaXZhdGUgc2hvcHBpbmdDYXJ0U2V0dGluZ3MkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxTaG9wcGluZ0NhcnRTZXR0aW5nW10+KFtdKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbmZpZ3VyYXRpb25TZXR0aW5nc0FwaVNlcnZpY2U6IENvbmZpZ3VyYXRpb25TZXR0aW5nc0FwaVNlcnZpY2UpIHt9XG5cbiAgcHVibGljIGNyZWF0ZSgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5jb25maWd1cmF0aW9uU2V0dGluZ3NBcGlTZXJ2aWNlLmZldGNoU2V0dGluZ3MoKS5waXBlKFxuICAgICAgbWFwKHNldHRpbmdzID0+IHRoaXMucGFyc2VDb25maWd1cmF0aW9uU2V0dGluZ3Moc2V0dGluZ3MpKSxcbiAgICAgIHRhcChjb25maWd1cmF0aW9uU2V0dGluZ3MgPT4ge1xuICAgICAgICB0aGlzLmNvbmZpZ3VyYXRpb25TZXR0aW5ncyQubmV4dChjb25maWd1cmF0aW9uU2V0dGluZ3MpO1xuICAgICAgICB0aGlzLmFkZFNob3BwaW5nQ2FydFNldHRpbmdzKGNvbmZpZ3VyYXRpb25TZXR0aW5nc1snc2hvcHBpbmctY2FydCddID8/IFtdKTtcbiAgICAgICAgdGhpcy5mb3JtYXR0aW5nU2V0dGluZ3MgPSB0aGlzLmdldEZvcm1hdHRpbmdTZXR0aW5ncygpO1xuICAgICAgfSksXG4gICAgICBtYXAoKCkgPT4gdW5kZWZpbmVkKSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGluaXRDdXJyZW5jeShpc28/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoaXNvKSB7XG4gICAgICBjb25zdCBzeW1ib2wgPSB0aGlzLmdldEN1cnJlbmN5U3ltYm9sKCdlbi1VUycsIGlzbyk7XG4gICAgICB0aGlzLmN1cnJlbmN5U2V0dGluZ3MkLm5leHQoeyBpc28sIHN5bWJvbCB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0Rm9ybWF0dGluZ1NldHRpbmdzKCk6IEZvcm1hdHRpbmdTZXR0aW5ncyB7XG4gICAgaWYgKHRoaXMuZm9ybWF0dGluZ1NldHRpbmdzKSB7XG4gICAgICByZXR1cm4gdGhpcy5mb3JtYXR0aW5nU2V0dGluZ3M7XG4gICAgfVxuXG4gICAgY29uc3Qgc2hvcHBpbmdDYXJ0U2V0dGluZ3MgPSB0aGlzLmdldENvbmZpZ3VyYXRpb25TZXR0aW5ncygpWydzaG9wcGluZy1jYXJ0J10/LnJlZHVjZSgoYWNjLCBzZXR0aW5nKSA9PiB7XG4gICAgICByZXR1cm4geyAuLi5hY2MsIFtzZXR0aW5nLmlkXTogc2V0dGluZy5wcm9wZXJ0aWVzIH07XG4gICAgfSwge30gYXMgU2hvcHBpbmdDYXJ0U2V0dGluZ3MpO1xuICAgIGNvbnN0IGN1cnJlbmN5U2V0dGluZ3MgPSB0aGlzLmdldEN1cnJlbmN5U2V0dGluZ3MoKTtcbiAgICBjb25zdCBkYXRlRm9ybWF0ID1cbiAgICAgICh2YWxpZGF0ZURhdGVGb3JtYXQoc2hvcHBpbmdDYXJ0U2V0dGluZ3M/LkRBVEVfRk9STUFUID8/ICcnKSAmJiBzaG9wcGluZ0NhcnRTZXR0aW5ncz8uREFURV9GT1JNQVQpIHx8XG4gICAgICBERUZBVUxUX0RBVEVfRk9STUFUO1xuICAgIGNvbnN0IGRlY2ltYWxTZXBhcmF0b3IgPSBzaG9wcGluZ0NhcnRTZXR0aW5ncz8uREVDSU1BTF9TRVBBUkFUT1I7XG4gICAgY29uc3QgdGhvdXNhbmRzU2VwYXJhdG9yID0gc2hvcHBpbmdDYXJ0U2V0dGluZ3M/LlRIT1VTQU5EU19TRVBBUkFUT1I7XG4gICAgLy8gdGhlIG51bWJlciBvZiBkZWNpbWFsIHBsYWNlcyBjYW4gYmUgMFxuICAgIGNvbnN0IHByaWNlU2NhbGUgPSBzaG9wcGluZ0NhcnRTZXR0aW5ncz8uUFJJQ0VfU0NBTEU7XG4gICAgY29uc3QgZGVjaW1hbHNDb3VudCA9XG4gICAgICBwcmljZVNjYWxlICE9PSBudWxsICYmIHByaWNlU2NhbGUgIT09ICcnICYmICFpc05hTihOdW1iZXIocHJpY2VTY2FsZSkpICYmIE51bWJlcihwcmljZVNjYWxlKSA+PSAwXG4gICAgICAgID8gTnVtYmVyKHByaWNlU2NhbGUpXG4gICAgICAgIDogREVGQVVMVF9ERUNJTUFMU19DT1VOVDtcblxuICAgIGNvbnN0IGFjdGlvbkNvZGVTZXR0aW5ncyA9IHNob3BwaW5nQ2FydFNldHRpbmdzPy5TVEFUVVNfTEFCRUw7XG5cbiAgICByZXR1cm4ge1xuICAgICAgY3VycmVuY3lTeW1ib2w6IGN1cnJlbmN5U2V0dGluZ3Muc3ltYm9sLFxuICAgICAgZGF0ZUZvcm1hdHM6IGdldFN1cHBvcnRlZERhdGVGb3JtYXRzKGRhdGVGb3JtYXQpLFxuICAgICAgZGVjaW1hbHNDb3VudCxcbiAgICAgIGRlY2ltYWxTZXBhcmF0b3I6XG4gICAgICAgIGRlY2ltYWxTZXBhcmF0b3IgIT09IHVuZGVmaW5lZCAmJiBbJy4nLCAnLCddLmluY2x1ZGVzKGRlY2ltYWxTZXBhcmF0b3IpXG4gICAgICAgICAgPyBkZWNpbWFsU2VwYXJhdG9yXG4gICAgICAgICAgOiBERUZBVUxUX0RFQ0lNQUxfU0VQQVJBVE9SLFxuICAgICAgLy8gdGhvdXNhbmRzIHNlcGFyYXRvciBjYW4gYmUgYSBibGFuayB2YWx1ZSwgc28gaXQgY2FuIGFsc28gYmUgbnVsbFxuICAgICAgdGhvdXNhbmRzU2VwYXJhdG9yOlxuICAgICAgICB0aG91c2FuZHNTZXBhcmF0b3IgIT09IHVuZGVmaW5lZCAmJiBbJy4nLCAnLCcsICcnLCBudWxsXS5pbmNsdWRlcyh0aG91c2FuZHNTZXBhcmF0b3IpXG4gICAgICAgICAgPyB0aG91c2FuZHNTZXBhcmF0b3IgfHwgJydcbiAgICAgICAgICA6IERFRkFVTFRfVEhPVVNBTkRTX1NFUEFSQVRPUixcbiAgICAgIGFjdGlvbkNvZGVMYWJlbHM6IGFjdGlvbkNvZGVTZXR0aW5ncz8ubGVuZ3RoXG4gICAgICAgID8gYWN0aW9uQ29kZVNldHRpbmdzLnJlZHVjZShcbiAgICAgICAgICAgIChyZXN1bHQsIHNldHRpbmcpID0+ICh7IC4uLnJlc3VsdCwgW3NldHRpbmcuc3RhdHVzX2xhYmVsXTogc2V0dGluZy5jdXN0b21fbGFiZWwgfSksXG4gICAgICAgICAgICB7fSxcbiAgICAgICAgICApXG4gICAgICAgIDogREVGQVVMVF9BQ1RJT05fQ09ERV9MQUJFTFMsXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDb25maWd1cmF0aW9uU2V0dGluZ3MoKTogUnVudGltZUNvbmZpZ3VyYXRpb25TZXR0aW5ncyB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlndXJhdGlvblNldHRpbmdzJC52YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRTaG9wcGluZ0NhcnRTZXR0aW5ncygpOiBTaG9wcGluZ0NhcnRTZXR0aW5nW10ge1xuICAgIHJldHVybiB0aGlzLnNob3BwaW5nQ2FydFNldHRpbmdzJC52YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDdXJyZW5jeVNldHRpbmdzKCk6IFJ1bnRpbWVDdXJyZW5jeVNldHRpbmdzIHtcbiAgICByZXR1cm4gdGhpcy5jdXJyZW5jeVNldHRpbmdzJC52YWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgcGFyc2VDb25maWd1cmF0aW9uU2V0dGluZ3Moc2V0dGluZ3M6IENvbmZpZ3VyYXRpb25TZXR0aW5nc1tdKTogUnVudGltZUNvbmZpZ3VyYXRpb25TZXR0aW5ncyB7XG4gICAgcmV0dXJuIHNldHRpbmdzLnJlZHVjZSgoYWNjOiBSdW50aW1lQ29uZmlndXJhdGlvblNldHRpbmdzLCBzZXR0aW5nKSA9PiB7XG4gICAgICBzd2l0Y2ggKHNldHRpbmcua2V5KSB7XG4gICAgICAgIGNhc2UgJ3Nob3BwaW5nLWNhcnQnOlxuICAgICAgICAgIGFjY1snc2hvcHBpbmctY2FydCddID0gcGFyc2VKc29uU2FmZWx5PFNob3BwaW5nQ2FydFNldHRpbmdbXT4oc2V0dGluZy52YWx1ZSwgW10pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICduYXZpZ2F0aW9uJzpcbiAgICAgICAgICBhY2MubmF2aWdhdGlvbiA9IHBhcnNlSnNvblNhZmVseTxEaWN0aW9uYXJ5PGJvb2xlYW4+PihzZXR0aW5nLnZhbHVlLCB7fSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2Zsb3dzJzpcbiAgICAgICAgICBhY2MuZmxvd3MgPSBwYXJzZUpzb25TYWZlbHk8Rmxvd1tdPihzZXR0aW5nLnZhbHVlLCBbXSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgYWNjW3NldHRpbmcua2V5XSA9IHNldHRpbmcudmFsdWU7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwge30pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDdXJyZW5jeVN5bWJvbCA9IChsb2NhbGU6IHN0cmluZywgY3VycmVuY3k6IHN0cmluZykgPT4ge1xuICAgIHJldHVybiAoMClcbiAgICAgIC50b0xvY2FsZVN0cmluZyhsb2NhbGUsIHsgc3R5bGU6ICdjdXJyZW5jeScsIGN1cnJlbmN5LCBtaW5pbXVtRnJhY3Rpb25EaWdpdHM6IDAsIG1heGltdW1GcmFjdGlvbkRpZ2l0czogMCB9KVxuICAgICAgLnJlcGxhY2UoL1xcZC9nLCAnJylcbiAgICAgIC50cmltKCk7XG4gIH07XG5cbiAgcHVibGljIGFkZFNob3BwaW5nQ2FydFNldHRpbmdzKHNldHRpbmdzOiBTaG9wcGluZ0NhcnRTZXR0aW5nW10pIHtcbiAgICAvLyB1bmlxQnkgcmVtb3ZlcyBpdGVtcyB3aXRoIHRoZSBiaWdnZXN0IGluZGV4XG4gICAgY29uc3QgbmV3U2V0dGluZ3MgPSB1bmlxQnkoWy4uLnNldHRpbmdzLCAuLi50aGlzLnNob3BwaW5nQ2FydFNldHRpbmdzJC52YWx1ZV0sICdpZCcpO1xuICAgIHRoaXMuc2hvcHBpbmdDYXJ0U2V0dGluZ3MkLm5leHQobmV3U2V0dGluZ3MpO1xuICB9XG59XG4iXX0=
112
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS1zZXR0aW5ncy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvY29yZS9zZXJ2aWNlcy9ydW50aW1lLXNldHRpbmdzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRSxPQUFPLEVBRUwsMEJBQTBCLEVBQzFCLHlCQUF5QixFQUN6Qix1QkFBdUIsRUFDdkIsbUJBQW1CLEVBQ25CLHNCQUFzQixFQUN0Qix5QkFBeUIsRUFDekIsMkJBQTJCLEVBRTNCLHVCQUF1QixFQUN2QixlQUFlLEVBS2Ysa0JBQWtCLEdBQ25CLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUFjLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUM1QyxPQUFPLEVBQUUsZUFBZSxFQUFFLEdBQUcsRUFBYyxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7OztBQUk3RCxNQUFNLE9BQU8sc0JBQXNCO0lBU2pDLFlBQW9CLCtCQUFnRTtRQUFoRSxvQ0FBK0IsR0FBL0IsK0JBQStCLENBQWlDO1FBUjVFLDJCQUFzQixHQUFHLElBQUksZUFBZSxDQUErQixFQUFFLENBQUMsQ0FBQztRQUMvRSxzQkFBaUIsR0FBRyxJQUFJLGVBQWUsQ0FBMEI7WUFDdkUsR0FBRyxFQUFFLHlCQUF5QjtZQUM5QixNQUFNLEVBQUUsdUJBQXVCO1NBQ2hDLENBQUMsQ0FBQztRQUVLLDBCQUFxQixHQUFHLElBQUksZUFBZSxDQUF3QixFQUFFLENBQUMsQ0FBQztRQXVHdkUsc0JBQWlCLEdBQUcsQ0FBQyxNQUFjLEVBQUUsUUFBZ0IsRUFBRSxFQUFFO1lBQy9ELE9BQU8sQ0FBQyxDQUFDLENBQUM7aUJBQ1AsY0FBYyxDQUFDLE1BQU0sRUFBRSxFQUFFLEtBQUss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LENBQUMsR0FBRyxFQUFFO2dCQUNuQixLQUFLLGVBQWU7b0JBQ2xCLEdBQUcsQ0FBQyxlQUFlLENBQUMsR0FBRyxlQUFlLENBQXdCLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7b0JBQ2pGLE1BQU07Z0JBQ1IsS0FBSyxZQUFZO29CQUNmLEdBQUcsQ0FBQyxVQUFVLEdBQUcsZUFBZSxDQUFzQixPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO29CQUN6RSxNQUFNO2dCQUNSLEtBQUssT0FBTztvQkFDVixHQUFHLENBQUMsS0FBSyxHQUFHLGVBQWUsQ0FBUyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO29CQUN2RCxNQUFNO2dCQUNSO29CQUNFLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQzthQUNwQztZQUVELE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ1QsQ0FBQztJQVNNLHVCQUF1QixDQUFDLFFBQStCO1FBQzVELDhDQUE4QztRQUM5QyxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsQ0FBQyxHQUFHLFFBQVEsRUFBRSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNyRixJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQy9DLENBQUM7O21IQXpIVSxzQkFBc0I7dUhBQXRCLHNCQUFzQjsyRkFBdEIsc0JBQXNCO2tCQURsQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29uZmlndXJhdGlvblNldHRpbmdzQXBpU2VydmljZSB9IGZyb20gJ0B2ZWxvY2VhcHBzL2FwaSc7XG5pbXBvcnQge1xuICBDb25maWd1cmF0aW9uU2V0dGluZ3MsXG4gIERFRkFVTFRfQUNUSU9OX0NPREVfTEFCRUxTLFxuICBERUZBVUxUX0NVUlJFTkNZX0lTT19DT0RFLFxuICBERUZBVUxUX0NVUlJFTkNZX1NZTUJPTCxcbiAgREVGQVVMVF9EQVRFX0ZPUk1BVCxcbiAgREVGQVVMVF9ERUNJTUFMU19DT1VOVCxcbiAgREVGQVVMVF9ERUNJTUFMX1NFUEFSQVRPUixcbiAgREVGQVVMVF9USE9VU0FORFNfU0VQQVJBVE9SLFxuICBGbG93LFxuICBnZXRTdXBwb3J0ZWREYXRlRm9ybWF0cyxcbiAgcGFyc2VKc29uU2FmZWx5LFxuICBSdW50aW1lQ29uZmlndXJhdGlvblNldHRpbmdzLFxuICBSdW50aW1lQ3VycmVuY3lTZXR0aW5ncyxcbiAgU2hvcHBpbmdDYXJ0U2V0dGluZyxcbiAgU2hvcHBpbmdDYXJ0U2V0dGluZ3MsXG4gIHZhbGlkYXRlRGF0ZUZvcm1hdCxcbn0gZnJvbSAnQHZlbG9jZWFwcHMvY29yZSc7XG5pbXBvcnQgeyBEaWN0aW9uYXJ5LCB1bmlxQnkgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBtYXAsIE9ic2VydmFibGUsIHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRm9ybWF0dGluZ1NldHRpbmdzIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUnVudGltZVNldHRpbmdzU2VydmljZSB7XG4gIHByaXZhdGUgY29uZmlndXJhdGlvblNldHRpbmdzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UnVudGltZUNvbmZpZ3VyYXRpb25TZXR0aW5ncz4oe30pO1xuICBwcml2YXRlIGN1cnJlbmN5U2V0dGluZ3MkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxSdW50aW1lQ3VycmVuY3lTZXR0aW5ncz4oe1xuICAgIGlzbzogREVGQVVMVF9DVVJSRU5DWV9JU09fQ09ERSxcbiAgICBzeW1ib2w6IERFRkFVTFRfQ1VSUkVOQ1lfU1lNQk9MLFxuICB9KTtcbiAgcHJpdmF0ZSBmb3JtYXR0aW5nU2V0dGluZ3MhOiBGb3JtYXR0aW5nU2V0dGluZ3M7XG4gIHByaXZhdGUgc2hvcHBpbmdDYXJ0U2V0dGluZ3MkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxTaG9wcGluZ0NhcnRTZXR0aW5nW10+KFtdKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbmZpZ3VyYXRpb25TZXR0aW5nc0FwaVNlcnZpY2U6IENvbmZpZ3VyYXRpb25TZXR0aW5nc0FwaVNlcnZpY2UpIHt9XG5cbiAgcHVibGljIGNyZWF0ZSgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5jb25maWd1cmF0aW9uU2V0dGluZ3NBcGlTZXJ2aWNlLmZldGNoU2V0dGluZ3MoKS5waXBlKFxuICAgICAgbWFwKHNldHRpbmdzID0+IHRoaXMucGFyc2VDb25maWd1cmF0aW9uU2V0dGluZ3Moc2V0dGluZ3MpKSxcbiAgICAgIHRhcChjb25maWd1cmF0aW9uU2V0dGluZ3MgPT4ge1xuICAgICAgICB0aGlzLmNvbmZpZ3VyYXRpb25TZXR0aW5ncyQubmV4dChjb25maWd1cmF0aW9uU2V0dGluZ3MpO1xuICAgICAgICB0aGlzLmFkZFNob3BwaW5nQ2FydFNldHRpbmdzKGNvbmZpZ3VyYXRpb25TZXR0aW5nc1snc2hvcHBpbmctY2FydCddID8/IFtdKTtcbiAgICAgICAgdGhpcy5mb3JtYXR0aW5nU2V0dGluZ3MgPSB0aGlzLmdldEZvcm1hdHRpbmdTZXR0aW5ncygpO1xuICAgICAgfSksXG4gICAgICBtYXAoKCkgPT4gdW5kZWZpbmVkKSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGluaXRDdXJyZW5jeShpc28/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoaXNvKSB7XG4gICAgICBjb25zdCBzeW1ib2wgPSB0aGlzLmdldEN1cnJlbmN5U3ltYm9sKCdlbi1VUycsIGlzbyk7XG4gICAgICB0aGlzLmN1cnJlbmN5U2V0dGluZ3MkLm5leHQoeyBpc28sIHN5bWJvbCB9KTtcbiAgICAgIGlmICh0aGlzLmZvcm1hdHRpbmdTZXR0aW5ncykge1xuICAgICAgICB0aGlzLmZvcm1hdHRpbmdTZXR0aW5ncy5jdXJyZW5jeVN5bWJvbCA9IHN5bWJvbDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0Rm9ybWF0dGluZ1NldHRpbmdzKCk6IEZvcm1hdHRpbmdTZXR0aW5ncyB7XG4gICAgaWYgKHRoaXMuZm9ybWF0dGluZ1NldHRpbmdzKSB7XG4gICAgICByZXR1cm4gdGhpcy5mb3JtYXR0aW5nU2V0dGluZ3M7XG4gICAgfVxuXG4gICAgY29uc3Qgc2hvcHBpbmdDYXJ0U2V0dGluZ3MgPSB0aGlzLmdldENvbmZpZ3VyYXRpb25TZXR0aW5ncygpWydzaG9wcGluZy1jYXJ0J10/LnJlZHVjZSgoYWNjLCBzZXR0aW5nKSA9PiB7XG4gICAgICByZXR1cm4geyAuLi5hY2MsIFtzZXR0aW5nLmlkXTogc2V0dGluZy5wcm9wZXJ0aWVzIH07XG4gICAgfSwge30gYXMgU2hvcHBpbmdDYXJ0U2V0dGluZ3MpO1xuICAgIGNvbnN0IGN1cnJlbmN5U2V0dGluZ3MgPSB0aGlzLmdldEN1cnJlbmN5U2V0dGluZ3MoKTtcbiAgICBjb25zdCBkYXRlRm9ybWF0ID1cbiAgICAgICh2YWxpZGF0ZURhdGVGb3JtYXQoc2hvcHBpbmdDYXJ0U2V0dGluZ3M/LkRBVEVfRk9STUFUID8/ICcnKSAmJiBzaG9wcGluZ0NhcnRTZXR0aW5ncz8uREFURV9GT1JNQVQpIHx8XG4gICAgICBERUZBVUxUX0RBVEVfRk9STUFUO1xuICAgIGNvbnN0IGRlY2ltYWxTZXBhcmF0b3IgPSBzaG9wcGluZ0NhcnRTZXR0aW5ncz8uREVDSU1BTF9TRVBBUkFUT1I7XG4gICAgY29uc3QgdGhvdXNhbmRzU2VwYXJhdG9yID0gc2hvcHBpbmdDYXJ0U2V0dGluZ3M/LlRIT1VTQU5EU19TRVBBUkFUT1I7XG4gICAgLy8gdGhlIG51bWJlciBvZiBkZWNpbWFsIHBsYWNlcyBjYW4gYmUgMFxuICAgIGNvbnN0IHByaWNlU2NhbGUgPSBzaG9wcGluZ0NhcnRTZXR0aW5ncz8uUFJJQ0VfU0NBTEU7XG4gICAgY29uc3QgZGVjaW1hbHNDb3VudCA9XG4gICAgICBwcmljZVNjYWxlICE9PSBudWxsICYmIHByaWNlU2NhbGUgIT09ICcnICYmICFpc05hTihOdW1iZXIocHJpY2VTY2FsZSkpICYmIE51bWJlcihwcmljZVNjYWxlKSA+PSAwXG4gICAgICAgID8gTnVtYmVyKHByaWNlU2NhbGUpXG4gICAgICAgIDogREVGQVVMVF9ERUNJTUFMU19DT1VOVDtcblxuICAgIGNvbnN0IGFjdGlvbkNvZGVTZXR0aW5ncyA9IHNob3BwaW5nQ2FydFNldHRpbmdzPy5TVEFUVVNfTEFCRUw7XG5cbiAgICByZXR1cm4ge1xuICAgICAgY3VycmVuY3lTeW1ib2w6IGN1cnJlbmN5U2V0dGluZ3Muc3ltYm9sLFxuICAgICAgZGF0ZUZvcm1hdHM6IGdldFN1cHBvcnRlZERhdGVGb3JtYXRzKGRhdGVGb3JtYXQpLFxuICAgICAgZGVjaW1hbHNDb3VudCxcbiAgICAgIGRlY2ltYWxTZXBhcmF0b3I6XG4gICAgICAgIGRlY2ltYWxTZXBhcmF0b3IgIT09IHVuZGVmaW5lZCAmJiBbJy4nLCAnLCddLmluY2x1ZGVzKGRlY2ltYWxTZXBhcmF0b3IpXG4gICAgICAgICAgPyBkZWNpbWFsU2VwYXJhdG9yXG4gICAgICAgICAgOiBERUZBVUxUX0RFQ0lNQUxfU0VQQVJBVE9SLFxuICAgICAgLy8gdGhvdXNhbmRzIHNlcGFyYXRvciBjYW4gYmUgYSBibGFuayB2YWx1ZSwgc28gaXQgY2FuIGFsc28gYmUgbnVsbFxuICAgICAgdGhvdXNhbmRzU2VwYXJhdG9yOlxuICAgICAgICB0aG91c2FuZHNTZXBhcmF0b3IgIT09IHVuZGVmaW5lZCAmJiBbJy4nLCAnLCcsICcnLCBudWxsXS5pbmNsdWRlcyh0aG91c2FuZHNTZXBhcmF0b3IpXG4gICAgICAgICAgPyB0aG91c2FuZHNTZXBhcmF0b3IgfHwgJydcbiAgICAgICAgICA6IERFRkFVTFRfVEhPVVNBTkRTX1NFUEFSQVRPUixcbiAgICAgIGFjdGlvbkNvZGVMYWJlbHM6IGFjdGlvbkNvZGVTZXR0aW5ncz8ubGVuZ3RoXG4gICAgICAgID8gYWN0aW9uQ29kZVNldHRpbmdzLnJlZHVjZShcbiAgICAgICAgICAgIChyZXN1bHQsIHNldHRpbmcpID0+ICh7IC4uLnJlc3VsdCwgW3NldHRpbmcuc3RhdHVzX2xhYmVsXTogc2V0dGluZy5jdXN0b21fbGFiZWwgfSksXG4gICAgICAgICAgICB7fSxcbiAgICAgICAgICApXG4gICAgICAgIDogREVGQVVMVF9BQ1RJT05fQ09ERV9MQUJFTFMsXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDb25maWd1cmF0aW9uU2V0dGluZ3MoKTogUnVudGltZUNvbmZpZ3VyYXRpb25TZXR0aW5ncyB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlndXJhdGlvblNldHRpbmdzJC52YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRTaG9wcGluZ0NhcnRTZXR0aW5ncygpOiBTaG9wcGluZ0NhcnRTZXR0aW5nW10ge1xuICAgIHJldHVybiB0aGlzLnNob3BwaW5nQ2FydFNldHRpbmdzJC52YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDdXJyZW5jeVNldHRpbmdzKCk6IFJ1bnRpbWVDdXJyZW5jeVNldHRpbmdzIHtcbiAgICByZXR1cm4gdGhpcy5jdXJyZW5jeVNldHRpbmdzJC52YWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgcGFyc2VDb25maWd1cmF0aW9uU2V0dGluZ3Moc2V0dGluZ3M6IENvbmZpZ3VyYXRpb25TZXR0aW5nc1tdKTogUnVudGltZUNvbmZpZ3VyYXRpb25TZXR0aW5ncyB7XG4gICAgcmV0dXJuIHNldHRpbmdzLnJlZHVjZSgoYWNjOiBSdW50aW1lQ29uZmlndXJhdGlvblNldHRpbmdzLCBzZXR0aW5nKSA9PiB7XG4gICAgICBzd2l0Y2ggKHNldHRpbmcua2V5KSB7XG4gICAgICAgIGNhc2UgJ3Nob3BwaW5nLWNhcnQnOlxuICAgICAgICAgIGFjY1snc2hvcHBpbmctY2FydCddID0gcGFyc2VKc29uU2FmZWx5PFNob3BwaW5nQ2FydFNldHRpbmdbXT4oc2V0dGluZy52YWx1ZSwgW10pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICduYXZpZ2F0aW9uJzpcbiAgICAgICAgICBhY2MubmF2aWdhdGlvbiA9IHBhcnNlSnNvblNhZmVseTxEaWN0aW9uYXJ5PGJvb2xlYW4+PihzZXR0aW5nLnZhbHVlLCB7fSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2Zsb3dzJzpcbiAgICAgICAgICBhY2MuZmxvd3MgPSBwYXJzZUpzb25TYWZlbHk8Rmxvd1tdPihzZXR0aW5nLnZhbHVlLCBbXSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgYWNjW3NldHRpbmcua2V5XSA9IHNldHRpbmcudmFsdWU7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwge30pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDdXJyZW5jeVN5bWJvbCA9IChsb2NhbGU6IHN0cmluZywgY3VycmVuY3k6IHN0cmluZykgPT4ge1xuICAgIHJldHVybiAoMClcbiAgICAgIC50b0xvY2FsZVN0cmluZyhsb2NhbGUsIHsgc3R5bGU6ICdjdXJyZW5jeScsIGN1cnJlbmN5LCBtaW5pbXVtRnJhY3Rpb25EaWdpdHM6IDAsIG1heGltdW1GcmFjdGlvbkRpZ2l0czogMCB9KVxuICAgICAgLnJlcGxhY2UoL1xcZC9nLCAnJylcbiAgICAgIC50cmltKCk7XG4gIH07XG5cbiAgcHVibGljIGFkZFNob3BwaW5nQ2FydFNldHRpbmdzKHNldHRpbmdzOiBTaG9wcGluZ0NhcnRTZXR0aW5nW10pIHtcbiAgICAvLyB1bmlxQnkgcmVtb3ZlcyBpdGVtcyB3aXRoIHRoZSBiaWdnZXN0IGluZGV4XG4gICAgY29uc3QgbmV3U2V0dGluZ3MgPSB1bmlxQnkoWy4uLnNldHRpbmdzLCAuLi50aGlzLnNob3BwaW5nQ2FydFNldHRpbmdzJC52YWx1ZV0sICdpZCcpO1xuICAgIHRoaXMuc2hvcHBpbmdDYXJ0U2V0dGluZ3MkLm5leHQobmV3U2V0dGluZ3MpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,3 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ export const FLOW_CUSTOMIZATION = new InjectionToken('FLOW_CUSTOMIZATION');
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvdy1jdXN0b21pemF0aW9uLnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvY29yZS90eXBlcy9mbG93LWN1c3RvbWl6YXRpb24udHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVMvQyxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLGNBQWMsQ0FBb0Isb0JBQW9CLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBDb25maWd1cmF0aW9uUHJvY2Vzc29yLFxuICBUZW1wbGF0ZUNvbXBvbmVudFdpdGhBdHRhY2htZW50cyxcbiAgVUlEZWZpbml0aW9uQ29udGFpbmVyLFxuICBVSVRlbXBsYXRlLFxufSBmcm9tICdAdmVsb2NlYXBwcy9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IGNvbnN0IEZMT1dfQ1VTVE9NSVpBVElPTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxGbG93Q3VzdG9taXphdGlvbj4oJ0ZMT1dfQ1VTVE9NSVpBVElPTicpO1xuXG5leHBvcnQgaW50ZXJmYWNlIEZsb3dDdXN0b21pemF0aW9uIHtcbiAgZ2V0VWlEZWZpbml0aW9uPyhwcm9kdWN0SWQ6IHN0cmluZyk6IE9ic2VydmFibGU8VUlEZWZpbml0aW9uQ29udGFpbmVyIHwgbnVsbD47XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFVzZSBgZ2V0VGVtcGxhdGVDb21wb25lbnRzYCBpbnN0ZWFkXG4gICAqL1xuICBnZXRTaG9wcGluZ0NhcnRDb21wb25lbnQ/KHRlbXBsYXRlTmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxUZW1wbGF0ZUNvbXBvbmVudFdpdGhBdHRhY2htZW50cyB8IG51bGw+O1xuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBVc2UgYGdldFRlbXBsYXRlQ29tcG9uZW50c2AgaW5zdGVhZFxuICAgKi9cbiAgZ2V0Q2F0YWxvZ0NvbXBvbmVudD8odGVtcGxhdGVOYW1lOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFRlbXBsYXRlQ29tcG9uZW50V2l0aEF0dGFjaG1lbnRzIHwgbnVsbD47XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFVzZSBgZ2V0VGVtcGxhdGVDb21wb25lbnRzYCBpbnN0ZWFkXG4gICAqL1xuICBnZXRBc3NldHNDb21wb25lbnQ/KHRlbXBsYXRlTmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxUZW1wbGF0ZUNvbXBvbmVudFdpdGhBdHRhY2htZW50cyB8IG51bGw+O1xuXG4gIGdldFRlbXBsYXRlcz8oKTogT2JzZXJ2YWJsZTxVSVRlbXBsYXRlW10+O1xuICBnZXRUZW1wbGF0ZUNvbXBvbmVudHM/KHRlbXBsYXRlTmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxUZW1wbGF0ZUNvbXBvbmVudFdpdGhBdHRhY2htZW50c1tdIHwgbnVsbD47XG5cbiAgZ2V0VGVtcGxhdGVDb25maWd1cmF0aW9uUHJvY2Vzc29ycz8odGVtcGxhdGVOYW1lOiBzdHJpbmcpOiBPYnNlcnZhYmxlPENvbmZpZ3VyYXRpb25Qcm9jZXNzb3JbXSB8IG51bGw+O1xufVxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvdy1zdGF0ZS50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2NvcmUvdHlwZXMvZmxvdy1zdGF0ZS50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWNjb3VudEFzc2V0c1N0YXRlIH0gZnJvbSAnQHZlbG9jZWFwcHMvY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmxvd1N0YXRlU3Vic2NyaXB0aW9uT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBXaGVuICd0cnVlJywgZG9uJ3QgZXhlY3V0ZSBhY3Rpb24gdG8gcmV0cmlldmUgY3VycmVudCB2YWx1ZVxuICAgKi9cbiAgY29sZD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmxvd1N0b3JlIHtcbiAgYXNzZXRzPzogQWNjb3VudEFzc2V0c1N0YXRlO1xuXG4gIFtrZXk6IHN0cmluZ106IHVua25vd247XG59XG4iXX0=
@@ -1,5 +1,7 @@
1
+ export * from './flow-customization.types';
1
2
  export * from './formatting-settings.types';
3
+ export * from './integration.types';
4
+ export * from './pipe.types';
2
5
  export * from './runtime.types';
3
6
  export * from './ui-definition.types';
4
- export * from './pipe.types';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jb3JlL3R5cGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9mb3JtYXR0aW5nLXNldHRpbmdzLnR5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vcnVudGltZS50eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL3VpLWRlZmluaXRpb24udHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9waXBlLnR5cGVzJztcbiJdfQ==
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jb3JlL3R5cGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyx1QkFBdUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZmxvdy1jdXN0b21pemF0aW9uLnR5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vZm9ybWF0dGluZy1zZXR0aW5ncy50eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2ludGVncmF0aW9uLnR5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vcGlwZS50eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL3J1bnRpbWUudHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi91aS1kZWZpbml0aW9uLnR5cGVzJztcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWdyYXRpb24udHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jb3JlL3R5cGVzL2ludGVncmF0aW9uLnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaWN0aW9uYXJ5IH0gZnJvbSAnbG9kYXNoJztcblxuZXhwb3J0IGludGVyZmFjZSBJbnRlZ3JhdGlvbkFjdGlvbjxUID0gYW55PiB7XG4gIHR5cGU6IHN0cmluZztcbiAgcGF5bG9hZD86IFQ7XG59XG5cbmV4cG9ydCB0eXBlIEludGVncmF0aW9uU3RhdGVNb2RlbCA9IHtcbiAgZ3VpZGVkU2VsbGluZz86IERpY3Rpb25hcnk8YW55PjtcbiAgZmxvd1BhdGg6IHN0cmluZztcbiAgZGlhbG9nUmVzdWx0PzogYm9vbGVhbjtcbn0gJiBEaWN0aW9uYXJ5PGFueT47XG4iXX0=