@veloceapps/sdk 8.0.0-98 → 9.0.0-0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (184) hide show
  1. package/cms/README.md +0 -20
  2. package/cms/cms.actions.d.ts +13 -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 +23 -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 +1 -1
  34. package/core/utils/line-item.utils.d.ts +1 -3
  35. package/esm2020/cms/cms.actions.mjs +21 -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 +11 -7
  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 +12 -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 +52 -55
  85. package/esm2020/src/components/flow-header/flow-header.component.mjs +108 -0
  86. package/esm2020/src/components/flow-header/flow-header.module.mjs +19 -0
  87. package/esm2020/src/components/flow-header/index.mjs +2 -0
  88. package/esm2020/src/components/guided-selling/guided-selling.component.mjs +40 -48
  89. package/esm2020/src/configure-primeng.mjs +33 -0
  90. package/esm2020/src/flow-routing.module.mjs +5 -18
  91. package/esm2020/src/flow.component.mjs +22 -37
  92. package/esm2020/src/flow.module.mjs +7 -5
  93. package/esm2020/src/guards/context.guard.mjs +6 -11
  94. package/esm2020/src/guards/flow.guard.mjs +23 -9
  95. package/esm2020/src/pages/assets/assets.component.mjs +30 -34
  96. package/esm2020/src/pages/catalog/catalog.component.mjs +30 -34
  97. package/esm2020/src/pages/debug/debug.component.mjs +2 -2
  98. package/esm2020/src/pages/product/product.component.mjs +34 -20
  99. package/esm2020/src/pages/record-not-found/record-not-found.component.mjs +6 -3
  100. package/esm2020/src/pages/remote/remote.component.mjs +15 -14
  101. package/esm2020/src/pages/shopping-cart/shopping-cart.component.mjs +31 -35
  102. package/esm2020/src/resolvers/flow.resolver.mjs +37 -55
  103. package/esm2020/src/resolvers/quote.resolver.mjs +55 -67
  104. package/esm2020/src/services/doc-gen.service.mjs +4 -3
  105. package/esm2020/src/services/flow-dialog.service.mjs +21 -6
  106. package/esm2020/src/services/flow-router.service.mjs +56 -15
  107. package/esm2020/src/services/flow.service.mjs +76 -48
  108. package/esm2020/src/services/guided-selling.service.mjs +5 -4
  109. package/esm2020/src/services/index.mjs +3 -1
  110. package/esm2020/src/types/index.mjs +1 -2
  111. package/fesm2015/veloceapps-sdk-cms.mjs +286 -192
  112. package/fesm2015/veloceapps-sdk-cms.mjs.map +1 -1
  113. package/fesm2015/veloceapps-sdk-core.mjs +1195 -427
  114. package/fesm2015/veloceapps-sdk-core.mjs.map +1 -1
  115. package/fesm2015/veloceapps-sdk.mjs +801 -1455
  116. package/fesm2015/veloceapps-sdk.mjs.map +1 -1
  117. package/fesm2020/veloceapps-sdk-cms.mjs +291 -207
  118. package/fesm2020/veloceapps-sdk-cms.mjs.map +1 -1
  119. package/fesm2020/veloceapps-sdk-core.mjs +1176 -454
  120. package/fesm2020/veloceapps-sdk-core.mjs.map +1 -1
  121. package/fesm2020/veloceapps-sdk.mjs +770 -1420
  122. package/fesm2020/veloceapps-sdk.mjs.map +1 -1
  123. package/package.json +8 -7
  124. package/src/components/doc-gen/doc-gen.component.d.ts +7 -10
  125. package/src/components/flow-header/flow-header.component.d.ts +25 -0
  126. package/src/components/flow-header/flow-header.module.d.ts +9 -0
  127. package/src/components/flow-header/index.d.ts +1 -0
  128. package/src/components/guided-selling/guided-selling.component.d.ts +6 -9
  129. package/src/configure-primeng.d.ts +1 -0
  130. package/src/flow-routing.module.d.ts +1 -2
  131. package/src/flow.component.d.ts +7 -12
  132. package/src/flow.module.d.ts +2 -2
  133. package/src/guards/context.guard.d.ts +0 -1
  134. package/src/guards/flow.guard.d.ts +1 -1
  135. package/src/pages/assets/assets.component.d.ts +5 -7
  136. package/src/pages/catalog/catalog.component.d.ts +5 -7
  137. package/src/pages/product/product.component.d.ts +8 -7
  138. package/src/pages/record-not-found/record-not-found.component.d.ts +2 -0
  139. package/src/pages/remote/remote.component.d.ts +2 -3
  140. package/src/pages/shopping-cart/shopping-cart.component.d.ts +5 -7
  141. package/src/resolvers/flow.resolver.d.ts +6 -9
  142. package/src/resolvers/quote.resolver.d.ts +7 -14
  143. package/src/services/doc-gen.service.d.ts +1 -1
  144. package/src/services/flow-dialog.service.d.ts +5 -2
  145. package/src/services/flow-router.service.d.ts +7 -3
  146. package/src/services/flow.service.d.ts +10 -12
  147. package/src/services/guided-selling.service.d.ts +1 -1
  148. package/src/services/index.d.ts +2 -0
  149. package/src/types/index.d.ts +0 -1
  150. package/core/modules/configuration/services/configuration.state.d.ts +0 -30
  151. package/core/services/metric-calculation/metric-calculation.service.d.ts +0 -25
  152. package/core/services/metric-calculation/metric-calculation.types.d.ts +0 -1
  153. package/core/services/metric-calculation/metric-calculation.utils.d.ts +0 -5
  154. package/esm2020/cms/services/integration.state.mjs +0 -37
  155. package/esm2020/cms/types/integration.types.mjs +0 -2
  156. package/esm2020/core/modules/configuration/services/configuration.state.mjs +0 -142
  157. package/esm2020/core/services/metric-calculation/metric-calculation.service.mjs +0 -85
  158. package/esm2020/core/services/metric-calculation/metric-calculation.types.mjs +0 -2
  159. package/esm2020/core/services/metric-calculation/metric-calculation.utils.mjs +0 -42
  160. package/esm2020/src/components/header/cart-overlay/cart-preview.component.mjs +0 -119
  161. package/esm2020/src/components/header/cart-overlay/cart-preview.module.mjs +0 -47
  162. package/esm2020/src/components/header/header.component.mjs +0 -355
  163. package/esm2020/src/components/header/header.module.mjs +0 -52
  164. package/esm2020/src/components/header/header.types.mjs +0 -2
  165. package/esm2020/src/components/header/metrics/index.mjs +0 -2
  166. package/esm2020/src/components/header/metrics/metrics.component.mjs +0 -255
  167. package/esm2020/src/components/header/metrics/metrics.definitions.mjs +0 -2
  168. package/esm2020/src/components/header/metrics/metrics.module.mjs +0 -69
  169. package/esm2020/src/pages/empty-account/empty-account.component.mjs +0 -12
  170. package/esm2020/src/pages/empty-account/empty-account.module.mjs +0 -20
  171. package/esm2020/src/types/flow-customization.types.mjs +0 -3
  172. package/src/components/header/cart-overlay/cart-preview.component.d.ts +0 -36
  173. package/src/components/header/cart-overlay/cart-preview.module.d.ts +0 -14
  174. package/src/components/header/header.component.d.ts +0 -70
  175. package/src/components/header/header.module.d.ts +0 -16
  176. package/src/components/header/header.types.d.ts +0 -20
  177. package/src/components/header/metrics/index.d.ts +0 -1
  178. package/src/components/header/metrics/metrics.component.d.ts +0 -67
  179. package/src/components/header/metrics/metrics.definitions.d.ts +0 -1
  180. package/src/components/header/metrics/metrics.module.d.ts +0 -18
  181. package/src/pages/empty-account/empty-account.component.d.ts +0 -5
  182. package/src/pages/empty-account/empty-account.module.d.ts +0 -10
  183. package/src/types/flow-customization.types.d.ts +0 -12
  184. /package/{cms → core}/services/integration.state.d.ts +0 -0
@@ -18,7 +18,20 @@ export class ContextService {
18
18
  return this.context.pipe(map(Boolean));
19
19
  }
20
20
  get mode() {
21
- return this.resolve().properties.mode;
21
+ return this.resolve().properties['#mode'];
22
+ }
23
+ get isEditMode$() {
24
+ return this.resolve$().pipe(map(() => this.isEditMode));
25
+ }
26
+ get isEditMode() {
27
+ const context = this.resolve();
28
+ if (context.properties['#mode'] === ConfigurationContextMode.ACCOUNT) {
29
+ return true;
30
+ }
31
+ if (context.properties['#mode'] === ConfigurationContextMode.QUOTE) {
32
+ return context.properties.Status === 'Draft';
33
+ }
34
+ return false;
22
35
  }
23
36
  resolve() {
24
37
  if (!this.context.value) {
@@ -71,9 +84,8 @@ export class ContextService {
71
84
  }
72
85
  }
73
86
  ContextService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ContextService, deps: [{ token: i1.ContextApiService }], target: i0.ɵɵFactoryTarget.Injectable });
74
- ContextService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ContextService, providedIn: 'root' });
87
+ ContextService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ContextService });
75
88
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ContextService, decorators: [{
76
- type: Injectable,
77
- args: [{ providedIn: 'root' }]
89
+ type: Injectable
78
90
  }], ctorParameters: function () { return [{ type: i1.ContextApiService }]; } });
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvY29yZS9zZXJ2aWNlcy9jb250ZXh0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDbkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQUdsRCxNQUFNLE9BQU8sY0FBYztJQUd6QixZQUFvQixpQkFBb0M7UUFBcEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUZoRCxZQUFPLEdBQUcsSUFBSSxlQUFlLENBQThCLElBQUksQ0FBQyxDQUFDO0lBRWQsQ0FBQztJQUU1RCxJQUFXLGFBQWE7UUFDdEIsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFBVyxjQUFjO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELElBQVcsSUFBSTtRQUNiLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7SUFDeEMsQ0FBQztJQUVNLE9BQU87UUFDWixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUU7WUFDdkIsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO1NBQ3BEO1FBRUQsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRU0sUUFBUTtRQUNiLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUErQixFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN2RixDQUFDO0lBRU0sTUFBTSxDQUFDLFFBQWdCLEVBQUUsSUFBOEI7UUFDNUQsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQzNELEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLG9CQUFvQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQzNGLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUEwQixDQUFDLENBQ2xELENBQUM7SUFDSixDQUFDO0lBRU0sWUFBWTtRQUNqQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLHdCQUF3QixDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FDOUQsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1osT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO2dCQUNqQixVQUFVLEVBQUU7b0JBQ1YsR0FBRyxPQUFPLENBQUMsVUFBVTtvQkFDckIsV0FBVyxFQUFFLHdCQUF3QixDQUFDLElBQUk7b0JBQzFDLFNBQVMsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO29CQUNwRCxVQUFVLEVBQUUsTUFBTTtpQkFDbkI7YUFDRixDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVNLE1BQU0sQ0FBQyxjQUE2QztRQUN6RCxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFFdkMsTUFBTSxjQUFjLEdBQXlCO1lBQzNDLEdBQUcsZUFBZTtZQUNsQixHQUFJLGNBQXVDO1lBQzNDLFVBQVUsRUFBRTtnQkFDVixHQUFHLGVBQWUsQ0FBQyxVQUFVO2dCQUM3QixHQUFHLGNBQWMsQ0FBQyxVQUFVO2FBQzdCO1NBQ0YsQ0FBQztRQUVGLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRWxDLE9BQU8sY0FBYyxDQUFDO0lBQ3hCLENBQUM7SUFFTSxHQUFHLENBQUMsT0FBNkI7UUFDdEMsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBRXZDLE1BQU0sY0FBYyxHQUF5QjtZQUMzQyxHQUFHLGVBQWU7WUFDbEIsR0FBRyxPQUFPO1NBQ1gsQ0FBQztRQUVGLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRWxDLE9BQU8sY0FBYyxDQUFDO0lBQ3hCLENBQUM7SUFFTSxNQUFNO1FBQ1gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUIsQ0FBQzs7MkdBbkZVLGNBQWM7K0dBQWQsY0FBYyxjQURELE1BQU07MkZBQ25CLGNBQWM7a0JBRDFCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udGV4dEFwaVNlcnZpY2UgfSBmcm9tICdAdmVsb2NlYXBwcy9hcGknO1xuaW1wb3J0IHsgQ29uZmlndXJhdGlvbkNvbnRleHQsIENvbmZpZ3VyYXRpb25Db250ZXh0TW9kZSB9IGZyb20gJ0B2ZWxvY2VhcHBzL2NvcmUnO1xuaW1wb3J0IHsgbWVyZ2UgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIG1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIENvbnRleHRTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBjb250ZXh0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxDb25maWd1cmF0aW9uQ29udGV4dCB8IG51bGw+KG51bGwpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29udGV4dEFwaVNlcnZpY2U6IENvbnRleHRBcGlTZXJ2aWNlKSB7fVxuXG4gIHB1YmxpYyBnZXQgaXNJbml0aWFsaXplZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gQm9vbGVhbih0aGlzLmNvbnRleHQudmFsdWUpO1xuICB9XG5cbiAgcHVibGljIGdldCBpc0luaXRpYWxpemVkJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5jb250ZXh0LnBpcGUobWFwKEJvb2xlYW4pKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbW9kZSgpOiBDb25maWd1cmF0aW9uQ29udGV4dE1vZGUgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnJlc29sdmUoKS5wcm9wZXJ0aWVzLm1vZGU7XG4gIH1cblxuICBwdWJsaWMgcmVzb2x2ZSgpOiBDb25maWd1cmF0aW9uQ29udGV4dCB7XG4gICAgaWYgKCF0aGlzLmNvbnRleHQudmFsdWUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ29udGV4dCBpcyBub3QgaW5pdGlhbGl6ZWQgeWV0IScpO1xuICAgIH1cblxuICAgIHJldHVybiB7IC4uLnRoaXMuY29udGV4dC52YWx1ZSB9O1xuICB9XG5cbiAgcHVibGljIHJlc29sdmUkKCk6IE9ic2VydmFibGU8Q29uZmlndXJhdGlvbkNvbnRleHQ+IHtcbiAgICByZXR1cm4gdGhpcy5jb250ZXh0LnBpcGUoZmlsdGVyKChjdHgpOiBjdHggaXMgQ29uZmlndXJhdGlvbkNvbnRleHQgPT4gQm9vbGVhbihjdHgpKSk7XG4gIH1cblxuICBwdWJsaWMgY3JlYXRlKGhlYWRlcklkOiBzdHJpbmcsIG1vZGU6IENvbmZpZ3VyYXRpb25Db250ZXh0TW9kZSk6IE9ic2VydmFibGU8Q29uZmlndXJhdGlvbkNvbnRleHQ+IHtcbiAgICByZXR1cm4gdGhpcy5jb250ZXh0QXBpU2VydmljZS5nZXRDb250ZXh0KGhlYWRlcklkLCBtb2RlKS5waXBlKFxuICAgICAgdGFwKGNvbnRleHQgPT4gdGhpcy5jb250ZXh0Lm5leHQobWVyZ2UobmV3IENvbmZpZ3VyYXRpb25Db250ZXh0KGhlYWRlcklkLCBtb2RlKSwgY29udGV4dCkpKSxcbiAgICAgIG1hcCgoKSA9PiB0aGlzLnJlc29sdmUoKSBhcyBDb25maWd1cmF0aW9uQ29udGV4dCksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBpbml0VGVzdE1vZGUoKTogT2JzZXJ2YWJsZTxDb25maWd1cmF0aW9uQ29udGV4dD4ge1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZSgnVGVzdElkJywgQ29uZmlndXJhdGlvbkNvbnRleHRNb2RlLlRFU1QpLnBpcGUoXG4gICAgICBtYXAoY29udGV4dCA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnVwZGF0ZSh7XG4gICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgLi4uY29udGV4dC5wcm9wZXJ0aWVzLFxuICAgICAgICAgICAgUnVudGltZU1vZGU6IENvbmZpZ3VyYXRpb25Db250ZXh0TW9kZS5URVNULFxuICAgICAgICAgICAgU3RhcnREYXRlOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCkuc3Vic3RyaW5nKDAsIDEwKSxcbiAgICAgICAgICAgIHN0YW5kYWxvbmU6ICd0cnVlJyxcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlKHBhcnRpYWxDb250ZXh0OiBQYXJ0aWFsPENvbmZpZ3VyYXRpb25Db250ZXh0Pik6IENvbmZpZ3VyYXRpb25Db250ZXh0IHtcbiAgICBjb25zdCBvcmlnaW5hbENvbnRleHQgPSB0aGlzLnJlc29sdmUoKTtcblxuICAgIGNvbnN0IHVwZGF0ZWRDb250ZXh0OiBDb25maWd1cmF0aW9uQ29udGV4dCA9IHtcbiAgICAgIC4uLm9yaWdpbmFsQ29udGV4dCxcbiAgICAgIC4uLihwYXJ0aWFsQ29udGV4dCBhcyBDb25maWd1cmF0aW9uQ29udGV4dCksXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIC4uLm9yaWdpbmFsQ29udGV4dC5wcm9wZXJ0aWVzLFxuICAgICAgICAuLi5wYXJ0aWFsQ29udGV4dC5wcm9wZXJ0aWVzLFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgdGhpcy5jb250ZXh0Lm5leHQodXBkYXRlZENvbnRleHQpO1xuXG4gICAgcmV0dXJuIHVwZGF0ZWRDb250ZXh0O1xuICB9XG5cbiAgcHVibGljIHNldChjb250ZXh0OiBDb25maWd1cmF0aW9uQ29udGV4dCk6IENvbmZpZ3VyYXRpb25Db250ZXh0IHtcbiAgICBjb25zdCBvcmlnaW5hbENvbnRleHQgPSB0aGlzLnJlc29sdmUoKTtcblxuICAgIGNvbnN0IHVwZGF0ZWRDb250ZXh0OiBDb25maWd1cmF0aW9uQ29udGV4dCA9IHtcbiAgICAgIC4uLm9yaWdpbmFsQ29udGV4dCxcbiAgICAgIC4uLmNvbnRleHQsXG4gICAgfTtcblxuICAgIHRoaXMuY29udGV4dC5uZXh0KHVwZGF0ZWRDb250ZXh0KTtcblxuICAgIHJldHVybiB1cGRhdGVkQ29udGV4dDtcbiAgfVxuXG4gIHB1YmxpYyBkZWxldGUoKTogdm9pZCB7XG4gICAgdGhpcy5jb250ZXh0Lm5leHQobnVsbCk7XG4gIH1cbn1cbiJdfQ==
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvY29yZS9zZXJ2aWNlcy9jb250ZXh0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDbkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQUdsRCxNQUFNLE9BQU8sY0FBYztJQUd6QixZQUFvQixpQkFBb0M7UUFBcEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUZoRCxZQUFPLEdBQUcsSUFBSSxlQUFlLENBQThCLElBQUksQ0FBQyxDQUFDO0lBRWQsQ0FBQztJQUU1RCxJQUFXLGFBQWE7UUFDdEIsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFBVyxjQUFjO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELElBQVcsSUFBSTtRQUNiLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsSUFBVyxXQUFXO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksQ0FBQyxH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QUVGLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRWxDLE9BQU8sY0FBYyxDQUFDO0lBQ3hCLENBQUM7SUFFTSxNQUFNO1FBQ1gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUIsQ0FBQzs7MkdBckdVLGNBQWM7K0dBQWQsY0FBYzsyRkFBZCxjQUFjO2tCQUQxQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udGV4dEFwaVNlcnZpY2UgfSBmcm9tICdAdmVsb2NlYXBwcy9hcGknO1xuaW1wb3J0IHsgQ29uZmlndXJhdGlvbkNvbnRleHQsIENvbmZpZ3VyYXRpb25Db250ZXh0TW9kZSB9IGZyb20gJ0B2ZWxvY2VhcHBzL2NvcmUnO1xuaW1wb3J0IHsgbWVyZ2UgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIG1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ29udGV4dFNlcnZpY2Uge1xuICBwcml2YXRlIGNvbnRleHQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PENvbmZpZ3VyYXRpb25Db250ZXh0IHwgbnVsbD4obnVsbCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb250ZXh0QXBpU2VydmljZTogQ29udGV4dEFwaVNlcnZpY2UpIHt9XG5cbiAgcHVibGljIGdldCBpc0luaXRpYWxpemVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBCb29sZWFuKHRoaXMuY29udGV4dC52YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzSW5pdGlhbGl6ZWQkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLmNvbnRleHQucGlwZShtYXAoQm9vbGVhbikpO1xuICB9XG5cbiAgcHVibGljIGdldCBtb2RlKCk6IENvbmZpZ3VyYXRpb25Db250ZXh0TW9kZSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMucmVzb2x2ZSgpLnByb3BlcnRpZXNbJyNtb2RlJ107XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzRWRpdE1vZGUkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLnJlc29sdmUkKCkucGlwZShtYXAoKCkgPT4gdGhpcy5pc0VkaXRNb2RlKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzRWRpdE1vZGUoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMucmVzb2x2ZSgpO1xuXG4gICAgaWYgKGNvbnRleHQucHJvcGVydGllc1snI21vZGUnXSA9PT0gQ29uZmlndXJhdGlvbkNvbnRleHRNb2RlLkFDQ09VTlQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGlmIChjb250ZXh0LnByb3BlcnRpZXNbJyNtb2RlJ10gPT09IENvbmZpZ3VyYXRpb25Db250ZXh0TW9kZS5RVU9URSkge1xuICAgICAgcmV0dXJuIGNvbnRleHQucHJvcGVydGllcy5TdGF0dXMgPT09ICdEcmFmdCc7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHVibGljIHJlc29sdmUoKTogQ29uZmlndXJhdGlvbkNvbnRleHQge1xuICAgIGlmICghdGhpcy5jb250ZXh0LnZhbHVlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvbnRleHQgaXMgbm90IGluaXRpYWxpemVkIHlldCEnKTtcbiAgICB9XG5cbiAgICByZXR1cm4geyAuLi50aGlzLmNvbnRleHQudmFsdWUgfTtcbiAgfVxuXG4gIHB1YmxpYyByZXNvbHZlJCgpOiBPYnNlcnZhYmxlPENvbmZpZ3VyYXRpb25Db250ZXh0PiB7XG4gICAgcmV0dXJuIHRoaXMuY29udGV4dC5waXBlKGZpbHRlcigoY3R4KTogY3R4IGlzIENvbmZpZ3VyYXRpb25Db250ZXh0ID0+IEJvb2xlYW4oY3R4KSkpO1xuICB9XG5cbiAgcHVibGljIGNyZWF0ZShoZWFkZXJJZDogc3RyaW5nLCBtb2RlOiBDb25maWd1cmF0aW9uQ29udGV4dE1vZGUpOiBPYnNlcnZhYmxlPENvbmZpZ3VyYXRpb25Db250ZXh0PiB7XG4gICAgcmV0dXJuIHRoaXMuY29udGV4dEFwaVNlcnZpY2UuZ2V0Q29udGV4dChoZWFkZXJJZCwgbW9kZSkucGlwZShcbiAgICAgIHRhcChjb250ZXh0ID0+IHRoaXMuY29udGV4dC5uZXh0KG1lcmdlKG5ldyBDb25maWd1cmF0aW9uQ29udGV4dChoZWFkZXJJZCwgbW9kZSksIGNvbnRleHQpKSksXG4gICAgICBtYXAoKCkgPT4gdGhpcy5yZXNvbHZlKCkgYXMgQ29uZmlndXJhdGlvbkNvbnRleHQpLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgaW5pdFRlc3RNb2RlKCk6IE9ic2VydmFibGU8Q29uZmlndXJhdGlvbkNvbnRleHQ+IHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGUoJ1Rlc3RJZCcsIENvbmZpZ3VyYXRpb25Db250ZXh0TW9kZS5URVNUKS5waXBlKFxuICAgICAgbWFwKGNvbnRleHQgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy51cGRhdGUoe1xuICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgIC4uLmNvbnRleHQucHJvcGVydGllcyxcbiAgICAgICAgICAgIFJ1bnRpbWVNb2RlOiBDb25maWd1cmF0aW9uQ29udGV4dE1vZGUuVEVTVCxcbiAgICAgICAgICAgIFN0YXJ0RGF0ZTogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLnN1YnN0cmluZygwLCAxMCksXG4gICAgICAgICAgICBzdGFuZGFsb25lOiAndHJ1ZScsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZShwYXJ0aWFsQ29udGV4dDogUGFydGlhbDxDb25maWd1cmF0aW9uQ29udGV4dD4pOiBDb25maWd1cmF0aW9uQ29udGV4dCB7XG4gICAgY29uc3Qgb3JpZ2luYWxDb250ZXh0ID0gdGhpcy5yZXNvbHZlKCk7XG5cbiAgICBjb25zdCB1cGRhdGVkQ29udGV4dDogQ29uZmlndXJhdGlvbkNvbnRleHQgPSB7XG4gICAgICAuLi5vcmlnaW5hbENvbnRleHQsXG4gICAgICAuLi4ocGFydGlhbENvbnRleHQgYXMgQ29uZmlndXJhdGlvbkNvbnRleHQpLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAuLi5vcmlnaW5hbENvbnRleHQucHJvcGVydGllcyxcbiAgICAgICAgLi4ucGFydGlhbENvbnRleHQucHJvcGVydGllcyxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIHRoaXMuY29udGV4dC5uZXh0KHVwZGF0ZWRDb250ZXh0KTtcblxuICAgIHJldHVybiB1cGRhdGVkQ29udGV4dDtcbiAgfVxuXG4gIHB1YmxpYyBzZXQoY29udGV4dDogQ29uZmlndXJhdGlvbkNvbnRleHQpOiBDb25maWd1cmF0aW9uQ29udGV4dCB7XG4gICAgY29uc3Qgb3JpZ2luYWxDb250ZXh0ID0gdGhpcy5yZXNvbHZlKCk7XG5cbiAgICBjb25zdCB1cGRhdGVkQ29udGV4dDogQ29uZmlndXJhdGlvbkNvbnRleHQgPSB7XG4gICAgICAuLi5vcmlnaW5hbENvbnRleHQsXG4gICAgICAuLi5jb250ZXh0LFxuICAgIH07XG5cbiAgICB0aGlzLmNvbnRleHQubmV4dCh1cGRhdGVkQ29udGV4dCk7XG5cbiAgICByZXR1cm4gdXBkYXRlZENvbnRleHQ7XG4gIH1cblxuICBwdWJsaWMgZGVsZXRlKCk6IHZvaWQge1xuICAgIHRoaXMuY29udGV4dC5uZXh0KG51bGwpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,99 @@
1
+ import { Inject, Injectable, Optional } from '@angular/core';
2
+ import { FlowsApiService, UITemplatesApiService } from '@veloceapps/api';
3
+ import { UITemplateType } from '@veloceapps/core';
4
+ import { isEmpty } from 'lodash';
5
+ import { BehaviorSubject, catchError, forkJoin, map, noop, of, switchMap, tap, throwError } from 'rxjs';
6
+ import { FLOW_CUSTOMIZATION } from '../types';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@veloceapps/api";
9
+ export class FlowInfoService {
10
+ get flow() {
11
+ return this.flowSubj$.value;
12
+ }
13
+ set flow(value) {
14
+ this.flowSubj$.next(value);
15
+ }
16
+ get isLegacy() {
17
+ return !!this.flow && this.flow?.properties.stateful == null;
18
+ }
19
+ get isStateful() {
20
+ return !!this.flow?.properties.stateful;
21
+ }
22
+ constructor(flowsApiService, templatesApiService, customizationService) {
23
+ this.flowsApiService = flowsApiService;
24
+ this.templatesApiService = templatesApiService;
25
+ this.customizationService = customizationService;
26
+ this.templates = {};
27
+ this.defaultTemplates = {
28
+ flowEngine: 'Flow Engine',
29
+ };
30
+ this.flowSubj$ = new BehaviorSubject(null);
31
+ this.flow$ = this.flowSubj$.asObservable();
32
+ }
33
+ init$(flowId, params) {
34
+ this.params = params;
35
+ return this.flowsApiService.getFlow(flowId).pipe(switchMap(flow => this.initFlowTemplates$(flow).pipe(map(() => flow))), tap(flow => this.flowSubj$.next(flow)), map(noop), catchError(e => {
36
+ this.flowSubj$.next(null);
37
+ return throwError(() => e);
38
+ }));
39
+ }
40
+ cleanup() {
41
+ this.flowSubj$.next(null);
42
+ this.params = undefined;
43
+ this.templates = {};
44
+ }
45
+ initFlowTemplates$(flow) {
46
+ if (isEmpty(flow.properties.templates)) {
47
+ return of(undefined);
48
+ }
49
+ return forkJoin([
50
+ this.templatesApiService.fetchTemplates$(),
51
+ this.customizationService?.getTemplates?.() ?? of([]),
52
+ ]).pipe(map(([templates, localTemplates]) => {
53
+ Object.entries({ ...this.defaultTemplates, ...flow.properties.templates }).forEach(([key, name]) => {
54
+ const type = this.remapTemplateName(key);
55
+ if (type) {
56
+ this.templates[type] =
57
+ localTemplates.find(template => template.name === name && template.type === type) ??
58
+ templates.find(template => template.name === name && template.type === type);
59
+ }
60
+ });
61
+ }));
62
+ }
63
+ remapTemplateName(templateType) {
64
+ switch (templateType) {
65
+ case 'flowEngine':
66
+ return UITemplateType.FLOW_ENGINE;
67
+ default:
68
+ break;
69
+ }
70
+ switch (templateType) {
71
+ case 'assets':
72
+ case 'shoppingCart':
73
+ // No separate Assets template at the moment
74
+ return UITemplateType.SHOPPING_CART;
75
+ case 'catalog':
76
+ return UITemplateType.CATALOG;
77
+ case 'docGen':
78
+ return UITemplateType.DOCGEN;
79
+ case 'guidedSelling':
80
+ return UITemplateType.GUIDED_SELLING;
81
+ case 'flowHeader':
82
+ return UITemplateType.FLOW_HEADER;
83
+ default:
84
+ break;
85
+ }
86
+ return undefined;
87
+ }
88
+ }
89
+ FlowInfoService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FlowInfoService, deps: [{ token: i1.FlowsApiService }, { token: i1.UITemplatesApiService }, { token: FLOW_CUSTOMIZATION, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
90
+ FlowInfoService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FlowInfoService });
91
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FlowInfoService, decorators: [{
92
+ type: Injectable
93
+ }], ctorParameters: function () { return [{ type: i1.FlowsApiService }, { type: i1.UITemplatesApiService }, { type: undefined, decorators: [{
94
+ type: Optional
95
+ }, {
96
+ type: Inject,
97
+ args: [FLOW_CUSTOMIZATION]
98
+ }] }]; } });
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvdy1pbmZvLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jb3JlL3NlcnZpY2VzL2Zsb3ctaW5mby5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekUsT0FBTyxFQUFzQyxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN0RixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFjLEVBQUUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwSCxPQUFPLEVBQXFCLGtCQUFrQixFQUFFLE1BQU0sVUFBVSxDQUFDOzs7QUFHakUsTUFBTSxPQUFPLGVBQWU7SUFLMUIsSUFBVyxJQUFJO1FBQ2IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztJQUM5QixDQUFDO0lBQ0QsSUFBVyxJQUFJLENBQUMsS0FBa0I7UUFDaEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQVcsUUFBUTtRQUNqQixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUM7SUFDL0QsQ0FBQztJQUVELElBQVcsVUFBVTtRQUNuQixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7SUFDMUMs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SUFBSSxDQUFDLENBQUM7aUJBQ2hGO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVPLGlCQUFpQixDQUFDLFlBQW9CO1FBQzVDLFFBQVEsWUFBa0QsRUFBRTtZQUMxRCxLQUFLLFlBQVk7Z0JBQ2YsT0FBTyxjQUFjLENBQUMsV0FBVyxDQUFDO1lBQ3BDO2dCQUNFLE1BQU07U0FDVDtRQUVELFFBQVEsWUFBc0MsRUFBRTtZQUM5QyxLQUFLLFFBQVEsQ0FBQztZQUNkLEtBQUssY0FBYztnQkFDakIsNENBQTRDO2dCQUM1QyxPQUFPLGNBQWMsQ0FBQyxhQUFhLENBQUM7WUFDdEMsS0FBSyxTQUFTO2dCQUNaLE9BQU8sY0FBYyxDQUFDLE9BQU8sQ0FBQztZQUNoQyxLQUFLLFFBQVE7Z0JBQ1gsT0FBTyxjQUFjLENBQUMsTUFBTSxDQUFDO1lBQy9CLEtBQUssZUFBZTtnQkFDbEIsT0FBTyxjQUFjLENBQUMsY0FBYyxDQUFDO1lBQ3ZDLEtBQUssWUFBWTtnQkFDZixPQUFPLGNBQWMsQ0FBQyxXQUFXLENBQUM7WUFDcEM7Z0JBQ0UsTUFBTTtTQUNUO1FBRUQsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQzs7NEdBckdVLGVBQWUsc0ZBNEJKLGtCQUFrQjtnSEE1QjdCLGVBQWU7MkZBQWYsZUFBZTtrQkFEM0IsVUFBVTs7MEJBNkJOLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEZsb3dzQXBpU2VydmljZSwgVUlUZW1wbGF0ZXNBcGlTZXJ2aWNlIH0gZnJvbSAnQHZlbG9jZWFwcHMvYXBpJztcbmltcG9ydCB7IEZsb3csIEZsb3dUZW1wbGF0ZXNNYXAsIFVJVGVtcGxhdGUsIFVJVGVtcGxhdGVUeXBlIH0gZnJvbSAnQHZlbG9jZWFwcHMvY29yZSc7XG5pbXBvcnQgeyBpc0VtcHR5IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY2F0Y2hFcnJvciwgZm9ya0pvaW4sIG1hcCwgbm9vcCwgT2JzZXJ2YWJsZSwgb2YsIHN3aXRjaE1hcCwgdGFwLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGbG93Q3VzdG9taXphdGlvbiwgRkxPV19DVVNUT01JWkFUSU9OIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRmxvd0luZm9TZXJ2aWNlIHtcbiAgcHVibGljIGZsb3ckOiBPYnNlcnZhYmxlPEZsb3cgfCBudWxsPjtcbiAgcHVibGljIHBhcmFtcz86IFBhcmFtcztcbiAgcHVibGljIHRlbXBsYXRlczogeyBba2V5IGluIFVJVGVtcGxhdGVUeXBlXT86IFVJVGVtcGxhdGUgfSA9IHt9O1xuXG4gIHB1YmxpYyBnZXQgZmxvdygpOiBGbG93IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuZmxvd1N1YmokLnZhbHVlO1xuICB9XG4gIHB1YmxpYyBzZXQgZmxvdyh2YWx1ZTogRmxvdyB8IG51bGwpIHtcbiAgICB0aGlzLmZsb3dTdWJqJC5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNMZWdhY3koKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5mbG93ICYmIHRoaXMuZmxvdz8ucHJvcGVydGllcy5zdGF0ZWZ1bCA9PSBudWxsO1xuICB9XG5cbiAgcHVibGljIGdldCBpc1N0YXRlZnVsKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuZmxvdz8ucHJvcGVydGllcy5zdGF0ZWZ1bDtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdFRlbXBsYXRlcyA9IHtcbiAgICBmbG93RW5naW5lOiAnRmxvdyBFbmdpbmUnLFxuICB9O1xuICBwcml2YXRlIGZsb3dTdWJqJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RmxvdyB8IG51bGw+KG51bGwpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZmxvd3NBcGlTZXJ2aWNlOiBGbG93c0FwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0ZW1wbGF0ZXNBcGlTZXJ2aWNlOiBVSVRlbXBsYXRlc0FwaVNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChGTE9XX0NVU1RPTUlaQVRJT04pIHByaXZhdGUgY3VzdG9taXphdGlvblNlcnZpY2U/OiBGbG93Q3VzdG9taXphdGlvbixcbiAgKSB7XG4gICAgdGhpcy5mbG93JCA9IHRoaXMuZmxvd1N1YmokLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGluaXQkKGZsb3dJZDogc3RyaW5nLCBwYXJhbXM6IFBhcmFtcyk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHRoaXMucGFyYW1zID0gcGFyYW1zO1xuICAgIHJldHVybiB0aGlzLmZsb3dzQXBpU2VydmljZS5nZXRGbG93KGZsb3dJZCkucGlwZShcbiAgICAgIHN3aXRjaE1hcChmbG93ID0+IHRoaXMuaW5pdEZsb3dUZW1wbGF0ZXMkKGZsb3cpLnBpcGUobWFwKCgpID0+IGZsb3cpKSksXG4gICAgICB0YXAoZmxvdyA9PiB0aGlzLmZsb3dTdWJqJC5uZXh0KGZsb3cpKSxcbiAgICAgIG1hcChub29wKSxcbiAgICAgIGNhdGNoRXJyb3IoZSA9PiB7XG4gICAgICAgIHRoaXMuZmxvd1N1YmokLm5leHQobnVsbCk7XG4gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IGUpO1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBjbGVhbnVwKCk6IHZvaWQge1xuICAgIHRoaXMuZmxvd1N1YmokLm5leHQobnVsbCk7XG4gICAgdGhpcy5wYXJhbXMgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy50ZW1wbGF0ZXMgPSB7fTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdEZsb3dUZW1wbGF0ZXMkKGZsb3c6IEZsb3cpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICBpZiAoaXNFbXB0eShmbG93LnByb3BlcnRpZXMudGVtcGxhdGVzKSkge1xuICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZvcmtKb2luKFtcbiAgICAgIHRoaXMudGVtcGxhdGVzQXBpU2VydmljZS5mZXRjaFRlbXBsYXRlcyQoKSxcbiAgICAgIHRoaXMuY3VzdG9taXphdGlvblNlcnZpY2U/LmdldFRlbXBsYXRlcz8uKCkgPz8gb2YoW10pLFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoKFt0ZW1wbGF0ZXMsIGxvY2FsVGVtcGxhdGVzXSkgPT4ge1xuICAgICAgICBPYmplY3QuZW50cmllcyh7IC4uLnRoaXMuZGVmYXVsdFRlbXBsYXRlcywgLi4uZmxvdy5wcm9wZXJ0aWVzLnRlbXBsYXRlcyB9KS5mb3JFYWNoKChba2V5LCBuYW1lXSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHR5cGUgPSB0aGlzLnJlbWFwVGVtcGxhdGVOYW1lKGtleSk7XG5cbiAgICAgICAgICBpZiAodHlwZSkge1xuICAgICAgICAgICAgdGhpcy50ZW1wbGF0ZXNbdHlwZV0gPVxuICAgICAgICAgICAgICBsb2NhbFRlbXBsYXRlcy5maW5kKHRlbXBsYXRlID0+IHRlbXBsYXRlLm5hbWUgPT09IG5hbWUgJiYgdGVtcGxhdGUudHlwZSA9PT0gdHlwZSkgPz9cbiAgICAgICAgICAgICAgdGVtcGxhdGVzLmZpbmQodGVtcGxhdGUgPT4gdGVtcGxhdGUubmFtZSA9PT0gbmFtZSAmJiB0ZW1wbGF0ZS50eXBlID09PSB0eXBlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtYXBUZW1wbGF0ZU5hbWUodGVtcGxhdGVUeXBlOiBzdHJpbmcpOiBVSVRlbXBsYXRlVHlwZSB8IHVuZGVmaW5lZCB7XG4gICAgc3dpdGNoICh0ZW1wbGF0ZVR5cGUgYXMga2V5b2YgdHlwZW9mIHRoaXMuZGVmYXVsdFRlbXBsYXRlcykge1xuICAgICAgY2FzZSAnZmxvd0VuZ2luZSc6XG4gICAgICAgIHJldHVybiBVSVRlbXBsYXRlVHlwZS5GTE9XX0VOR0lORTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIHN3aXRjaCAodGVtcGxhdGVUeXBlIGFzIGtleW9mIEZsb3dUZW1wbGF0ZXNNYXApIHtcbiAgICAgIGNhc2UgJ2Fzc2V0cyc6XG4gICAgICBjYXNlICdzaG9wcGluZ0NhcnQnOlxuICAgICAgICAvLyBObyBzZXBhcmF0ZSBBc3NldHMgdGVtcGxhdGUgYXQgdGhlIG1vbWVudFxuICAgICAgICByZXR1cm4gVUlUZW1wbGF0ZVR5cGUuU0hPUFBJTkdfQ0FSVDtcbiAgICAgIGNhc2UgJ2NhdGFsb2cnOlxuICAgICAgICByZXR1cm4gVUlUZW1wbGF0ZVR5cGUuQ0FUQUxPRztcbiAgICAgIGNhc2UgJ2RvY0dlbic6XG4gICAgICAgIHJldHVybiBVSVRlbXBsYXRlVHlwZS5ET0NHRU47XG4gICAgICBjYXNlICdndWlkZWRTZWxsaW5nJzpcbiAgICAgICAgcmV0dXJuIFVJVGVtcGxhdGVUeXBlLkdVSURFRF9TRUxMSU5HO1xuICAgICAgY2FzZSAnZmxvd0hlYWRlcic6XG4gICAgICAgIHJldHVybiBVSVRlbXBsYXRlVHlwZS5GTE9XX0hFQURFUjtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,53 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { FlowStateApiService } from '@veloceapps/api';
3
+ import { BehaviorSubject, map, noop, of, switchMap, tap } from 'rxjs';
4
+ import { generateConfigurationLineItem } from '../modules/configuration';
5
+ import { FlowConfigurationService } from '../modules/flow-configuration';
6
+ import { FlowInfoService } from './flow-info.service';
7
+ import { FlowStateService } from './flow-state.service';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "./flow-info.service";
10
+ import * as i2 from "../modules/flow-configuration";
11
+ import * as i3 from "@veloceapps/api";
12
+ import * as i4 from "./flow-state.service";
13
+ export class FlowStateConfigurationService {
14
+ constructor(flowInfoService, flowConfigurationService, flowStateApiService, flowStateService) {
15
+ this.flowInfoService = flowInfoService;
16
+ this.flowConfigurationService = flowConfigurationService;
17
+ this.flowStateApiService = flowStateApiService;
18
+ this.flowStateService = flowStateService;
19
+ this.configurationStateId$ = new BehaviorSubject(null);
20
+ }
21
+ get configurationStateId() {
22
+ return this.configurationStateId$.value;
23
+ }
24
+ addToCart$(props) {
25
+ let request$;
26
+ const stateful = this.flowInfoService.flow?.properties.stateful;
27
+ if (stateful) {
28
+ const stateId = this.flowStateService.stateId;
29
+ if (!stateId) {
30
+ request$ = of();
31
+ }
32
+ else {
33
+ const lineItem = generateConfigurationLineItem(props, props.qty);
34
+ request$ = this.flowStateApiService.newConfiguration(stateId, { lineItem }).pipe(tap(r => this.configurationStateId$.next(r.stateId)), switchMap(() => {
35
+ if (!this.configurationStateId) {
36
+ return of();
37
+ }
38
+ return this.flowStateApiService.saveConfiguration(stateId, this.configurationStateId).pipe(tap(() => this.configurationStateId$.next(null)), map(noop));
39
+ }));
40
+ }
41
+ }
42
+ else {
43
+ request$ = this.flowConfigurationService.addToCart$(props).pipe(map(noop));
44
+ }
45
+ return request$.pipe(switchMap(() => this.flowStateService.executeRequest$({}, true)), map(noop));
46
+ }
47
+ }
48
+ FlowStateConfigurationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FlowStateConfigurationService, deps: [{ token: i1.FlowInfoService }, { token: i2.FlowConfigurationService }, { token: i3.FlowStateApiService }, { token: i4.FlowStateService }], target: i0.ɵɵFactoryTarget.Injectable });
49
+ FlowStateConfigurationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FlowStateConfigurationService });
50
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FlowStateConfigurationService, decorators: [{
51
+ type: Injectable
52
+ }], ctorParameters: function () { return [{ type: i1.FlowInfoService }, { type: i2.FlowConfigurationService }, { type: i3.FlowStateApiService }, { type: i4.FlowStateService }]; } });
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvdy1zdGF0ZS1jb25maWd1cmF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jb3JlL3NlcnZpY2VzL2Zsb3ctc3RhdGUtY29uZmlndXJhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFjLEVBQUUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xGLE9BQU8sRUFBRSw2QkFBNkIsRUFBeUIsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7OztBQUd4RCxNQUFNLE9BQU8sNkJBQTZCO0lBR3hDLFlBQ1UsZUFBZ0MsRUFDaEMsd0JBQWtELEVBQ2xELG1CQUF3QyxFQUN4QyxnQkFBa0M7UUFIbEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFDbEQsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBTnBDLDBCQUFxQixHQUFHLElBQUksZUFBZSxDQUFnQixJQUFJLENBQUMsQ0FBQztJQU90RSxDQUFDO0lBRUosSUFBVyxvQkFBb0I7UUFDN0IsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDO0lBQzFDLENBQUM7SUFFTSxVQUFVLENBQUMsS0FBNEI7UUFDNUMsSUFBSSxRQUFRLENBQUM7UUFDYixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1FBQ2hFLElBQUksUUFBUSxFQUFFO1lBQ1osTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQztZQUM5QyxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNaLFFBQVEsR0FBRyxFQUFFLEVBQUUsQ0FBQzthQUNqQjtpQkFBTTtnQkFDTCxNQUFNLFFBQVEsR0FBRyw2QkFBNkIsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNqRSxRQUFRLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUM5RSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUNwRCxTQUFTLENBQUMsR0FBRyxFQUFFO29CQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUU7d0JBQzlCLE9BQU8sRUFBRSxFQUFFLENBQUM7cUJBQ2I7b0JBQ0QsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsaUJBQWlCLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLElBQUksQ0FDeEYsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFDaEQsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUNWLENBQUM7Z0JBQ0osQ0FBQyxDQUFDLENBQ0gsQ0FBQzthQUNIO1NBQ0Y7YUFBTTtZQUNMLFFBQVEsR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztTQUM1RTtRQUVELE9BQU8sUUFBUSxDQUFDLElBQUksQ0FDbEIsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQ2hFLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FDVixDQUFDO0lBQ0osQ0FBQzs7MEhBNUNVLDZCQUE2Qjs4SEFBN0IsNkJBQTZCOzJGQUE3Qiw2QkFBNkI7a0JBRHpDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGbG93U3RhdGVBcGlTZXJ2aWNlIH0gZnJvbSAnQHZlbG9jZWFwcHMvYXBpJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgbWFwLCBub29wLCBPYnNlcnZhYmxlLCBvZiwgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGdlbmVyYXRlQ29uZmlndXJhdGlvbkxpbmVJdGVtLCBOZXdDb25maWd1cmF0aW9uUHJvcHMgfSBmcm9tICcuLi9tb2R1bGVzL2NvbmZpZ3VyYXRpb24nO1xuaW1wb3J0IHsgRmxvd0NvbmZpZ3VyYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vbW9kdWxlcy9mbG93LWNvbmZpZ3VyYXRpb24nO1xuaW1wb3J0IHsgRmxvd0luZm9TZXJ2aWNlIH0gZnJvbSAnLi9mbG93LWluZm8uc2VydmljZSc7XG5pbXBvcnQgeyBGbG93U3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi9mbG93LXN0YXRlLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRmxvd1N0YXRlQ29uZmlndXJhdGlvblNlcnZpY2Uge1xuICBwcml2YXRlIGNvbmZpZ3VyYXRpb25TdGF0ZUlkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmbG93SW5mb1NlcnZpY2U6IEZsb3dJbmZvU2VydmljZSxcbiAgICBwcml2YXRlIGZsb3dDb25maWd1cmF0aW9uU2VydmljZTogRmxvd0NvbmZpZ3VyYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgZmxvd1N0YXRlQXBpU2VydmljZTogRmxvd1N0YXRlQXBpU2VydmljZSxcbiAgICBwcml2YXRlIGZsb3dTdGF0ZVNlcnZpY2U6IEZsb3dTdGF0ZVNlcnZpY2UsXG4gICkge31cblxuICBwdWJsaWMgZ2V0IGNvbmZpZ3VyYXRpb25TdGF0ZUlkKCk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZ3VyYXRpb25TdGF0ZUlkJC52YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRUb0NhcnQkKHByb3BzOiBOZXdDb25maWd1cmF0aW9uUHJvcHMpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICBsZXQgcmVxdWVzdCQ7XG4gICAgY29uc3Qgc3RhdGVmdWwgPSB0aGlzLmZsb3dJbmZvU2VydmljZS5mbG93Py5wcm9wZXJ0aWVzLnN0YXRlZnVsO1xuICAgIGlmIChzdGF0ZWZ1bCkge1xuICAgICAgY29uc3Qgc3RhdGVJZCA9IHRoaXMuZmxvd1N0YXRlU2VydmljZS5zdGF0ZUlkO1xuICAgICAgaWYgKCFzdGF0ZUlkKSB7XG4gICAgICAgIHJlcXVlc3QkID0gb2YoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGxpbmVJdGVtID0gZ2VuZXJhdGVDb25maWd1cmF0aW9uTGluZUl0ZW0ocHJvcHMsIHByb3BzLnF0eSk7XG4gICAgICAgIHJlcXVlc3QkID0gdGhpcy5mbG93U3RhdGVBcGlTZXJ2aWNlLm5ld0NvbmZpZ3VyYXRpb24oc3RhdGVJZCwgeyBsaW5lSXRlbSB9KS5waXBlKFxuICAgICAgICAgIHRhcChyID0+IHRoaXMuY29uZmlndXJhdGlvblN0YXRlSWQkLm5leHQoci5zdGF0ZUlkKSksXG4gICAgICAgICAgc3dpdGNoTWFwKCgpID0+IHtcbiAgICAgICAgICAgIGlmICghdGhpcy5jb25maWd1cmF0aW9uU3RhdGVJZCkge1xuICAgICAgICAgICAgICByZXR1cm4gb2YoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0aGlzLmZsb3dTdGF0ZUFwaVNlcnZpY2Uuc2F2ZUNvbmZpZ3VyYXRpb24oc3RhdGVJZCwgdGhpcy5jb25maWd1cmF0aW9uU3RhdGVJZCkucGlwZShcbiAgICAgICAgICAgICAgdGFwKCgpID0+IHRoaXMuY29uZmlndXJhdGlvblN0YXRlSWQkLm5leHQobnVsbCkpLFxuICAgICAgICAgICAgICBtYXAobm9vcCksXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0pLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXF1ZXN0JCA9IHRoaXMuZmxvd0NvbmZpZ3VyYXRpb25TZXJ2aWNlLmFkZFRvQ2FydCQocHJvcHMpLnBpcGUobWFwKG5vb3ApKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVxdWVzdCQucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLmZsb3dTdGF0ZVNlcnZpY2UuZXhlY3V0ZVJlcXVlc3QkKHt9LCB0cnVlKSksXG4gICAgICBtYXAobm9vcCksXG4gICAgKTtcbiAgfVxufVxuIl19