@veloceapps/sdk 12.0.0-13 → 12.0.0-14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (348) hide show
  1. package/cms/index.d.ts +921 -15
  2. package/core/index.d.ts +525 -8
  3. package/fesm2022/veloceapps-sdk-cms.mjs +2617 -0
  4. package/fesm2022/veloceapps-sdk-cms.mjs.map +1 -0
  5. package/{fesm2020 → fesm2022}/veloceapps-sdk-core.mjs +117 -112
  6. package/fesm2022/veloceapps-sdk-core.mjs.map +1 -0
  7. package/{fesm2020 → fesm2022}/veloceapps-sdk.mjs +170 -170
  8. package/fesm2022/veloceapps-sdk.mjs.map +1 -0
  9. package/index.d.ts +330 -1
  10. package/package.json +17 -34
  11. package/cms/cms.actions.d.ts +0 -154
  12. package/cms/cms.default.d.ts +0 -5
  13. package/cms/cms.elements.d.ts +0 -4
  14. package/cms/cms.layouts.d.ts +0 -4
  15. package/cms/components/element-children/element-children.component.d.ts +0 -22
  16. package/cms/components/element-children/element-children.module.d.ts +0 -11
  17. package/cms/components/element-drop-handle/element-drop-handle.component.d.ts +0 -12
  18. package/cms/components/element-drop-handle/element-drop-handle.module.d.ts +0 -9
  19. package/cms/components/element-renderer/element-renderer.component.d.ts +0 -29
  20. package/cms/components/element-renderer/element-renderer.module.d.ts +0 -7
  21. package/cms/components/element-tools-panel/element-tools-panel.component.d.ts +0 -14
  22. package/cms/components/element.component.d.ts +0 -17
  23. package/cms/components/index.d.ts +0 -1
  24. package/cms/components/plugin.component.d.ts +0 -15
  25. package/cms/components/preview/index.d.ts +0 -3
  26. package/cms/components/preview/preview.component.d.ts +0 -32
  27. package/cms/components/preview/preview.module.d.ts +0 -13
  28. package/cms/components/preview/preview.types.d.ts +0 -20
  29. package/cms/decorators/element.decorator.d.ts +0 -2
  30. package/cms/decorators/index.d.ts +0 -1
  31. package/cms/definitions/index.d.ts +0 -1
  32. package/cms/definitions/ui-builder.definitions.d.ts +0 -6
  33. package/cms/directives/custom-template.directive.d.ts +0 -17
  34. package/cms/engine/models/entity.d.ts +0 -11
  35. package/cms/engine/models/plugin.d.ts +0 -5
  36. package/cms/injection-tokens.d.ts +0 -9
  37. package/cms/launcher.module.d.ts +0 -12
  38. package/cms/modules/federated/default-options.d.ts +0 -4
  39. package/cms/modules/federated/export.d.ts +0 -1
  40. package/cms/modules/federated/federated-host.directive.d.ts +0 -8
  41. package/cms/modules/federated/federated.component.d.ts +0 -25
  42. package/cms/modules/federated/federated.module.d.ts +0 -10
  43. package/cms/modules/federated/federated.types.d.ts +0 -26
  44. package/cms/modules/migrations/index.d.ts +0 -2
  45. package/cms/modules/migrations/migrations.d.ts +0 -2
  46. package/cms/modules/migrations/migrations.module.d.ts +0 -6
  47. package/cms/modules/migrations/services/migrations.service.d.ts +0 -10
  48. package/cms/modules/migrations/types/migrations.types.d.ts +0 -2
  49. package/cms/modules/runtime/index.d.ts +0 -3
  50. package/cms/modules/runtime/runtime.module.d.ts +0 -8
  51. package/cms/modules/runtime/services/compilation.service.d.ts +0 -19
  52. package/cms/modules/runtime/services/runtime-editor.service.d.ts +0 -20
  53. package/cms/modules/runtime/services/runtime.service.d.ts +0 -33
  54. package/cms/modules/runtime/tokens.d.ts +0 -3
  55. package/cms/modules/runtime/types/compilation.types.d.ts +0 -8
  56. package/cms/modules/runtime/types/runtime.actions.d.ts +0 -12
  57. package/cms/plugins/element-hover.plugin.d.ts +0 -33
  58. package/cms/plugins/io.plugin.d.ts +0 -9
  59. package/cms/plugins/page.plugin.d.ts +0 -15
  60. package/cms/plugins/region.plugin.d.ts +0 -17
  61. package/cms/plugins/script.plugin.d.ts +0 -10
  62. package/cms/services/element-context.service.d.ts +0 -7
  63. package/cms/services/index.d.ts +0 -2
  64. package/cms/services/io-provider.service.d.ts +0 -15
  65. package/cms/services/resources.service.d.ts +0 -21
  66. package/cms/services/templates.service.d.ts +0 -14
  67. package/cms/types/common.types.d.ts +0 -130
  68. package/cms/types/elements.types.d.ts +0 -2
  69. package/cms/types/index.d.ts +0 -6
  70. package/cms/types/layouts.types.d.ts +0 -102
  71. package/cms/types/pages.types.d.ts +0 -1
  72. package/cms/types/path.types.d.ts +0 -11
  73. package/cms/utils/element-metadata-worker.d.ts +0 -11
  74. package/cms/utils/element.utils.d.ts +0 -20
  75. package/cms/utils/elements-resolver.d.ts +0 -28
  76. package/cms/utils/encoding.utils.d.ts +0 -2
  77. package/cms/utils/index.d.ts +0 -9
  78. package/cms/utils/inject.d.ts +0 -1
  79. package/cms/utils/path.utils.d.ts +0 -3
  80. package/cms/utils/script.utils.d.ts +0 -2
  81. package/cms/utils/transpilation-worker.d.ts +0 -13
  82. package/cms/utils/ui-builder-layout.utils.d.ts +0 -4
  83. package/cms/utils/ui-definition.utils.d.ts +0 -6
  84. package/cms/vendor-map.d.ts +0 -86
  85. package/core/core.module.d.ts +0 -10
  86. package/core/directives/directives.module.d.ts +0 -7
  87. package/core/directives/index.d.ts +0 -2
  88. package/core/directives/primeng-calendar.directive.d.ts +0 -14
  89. package/core/modules/configuration/configuration.module.d.ts +0 -8
  90. package/core/modules/configuration/index.d.ts +0 -6
  91. package/core/modules/configuration/services/configuration-runtime.service.d.ts +0 -19
  92. package/core/modules/configuration/services/configuration-state.service.d.ts +0 -60
  93. package/core/modules/configuration/services/configuration.service.d.ts +0 -38
  94. package/core/modules/configuration/services/guided-selling.service.d.ts +0 -15
  95. package/core/modules/configuration/services/test-mode-configuration.service.d.ts +0 -26
  96. package/core/modules/configuration/types/configuration-runtime.types.d.ts +0 -3
  97. package/core/modules/configuration/types/configuration.types.d.ts +0 -20
  98. package/core/modules/configuration/types/index.d.ts +0 -2
  99. package/core/modules/flow-configuration/flow-configuration.module.d.ts +0 -7
  100. package/core/modules/flow-configuration/index.d.ts +0 -1
  101. package/core/modules/flow-configuration/services/flow-configuration.service.d.ts +0 -23
  102. package/core/modules/index.d.ts +0 -2
  103. package/core/operators/filter-successful-execute.operator.d.ts +0 -3
  104. package/core/operators/index.d.ts +0 -1
  105. package/core/pipes/action-code.pipe.d.ts +0 -8
  106. package/core/pipes/date.pipe.d.ts +0 -13
  107. package/core/pipes/index.d.ts +0 -5
  108. package/core/pipes/number.pipe.d.ts +0 -10
  109. package/core/pipes/pipes.module.d.ts +0 -10
  110. package/core/pipes/price.pipe.d.ts +0 -10
  111. package/core/services/catalog-products.service.d.ts +0 -11
  112. package/core/services/flow-info.service.d.ts +0 -44
  113. package/core/services/flow-state-configuration.service.d.ts +0 -25
  114. package/core/services/flow-state.service.d.ts +0 -70
  115. package/core/services/index.d.ts +0 -8
  116. package/core/services/integration.state.d.ts +0 -16
  117. package/core/services/product-images.service.d.ts +0 -12
  118. package/core/services/runtime-settings.service.d.ts +0 -24
  119. package/core/services/sales-transaction.service.d.ts +0 -27
  120. package/core/types/flow-customization.types.d.ts +0 -10
  121. package/core/types/flow-state.types.d.ts +0 -12
  122. package/core/types/formatting-settings.types.d.ts +0 -13
  123. package/core/types/index.d.ts +0 -5
  124. package/core/types/integration.types.d.ts +0 -10
  125. package/core/types/pipe.types.d.ts +0 -1
  126. package/core/types/ui-definition.types.d.ts +0 -1
  127. package/core/utils/index.d.ts +0 -4
  128. package/core/utils/pcm.utils.d.ts +0 -5
  129. package/core/utils/transaction-item.utils.d.ts +0 -10
  130. package/core/utils/transaction-item.worker.d.ts +0 -8
  131. package/core/utils/ui-definition.utils.d.ts +0 -2
  132. package/esm2020/cms/cms.actions.mjs +0 -151
  133. package/esm2020/cms/cms.default.mjs +0 -5
  134. package/esm2020/cms/cms.elements.mjs +0 -52
  135. package/esm2020/cms/cms.layouts.mjs +0 -239
  136. package/esm2020/cms/components/element-children/element-children.component.mjs +0 -41
  137. package/esm2020/cms/components/element-children/element-children.module.mjs +0 -21
  138. package/esm2020/cms/components/element-drop-handle/element-drop-handle.component.mjs +0 -28
  139. package/esm2020/cms/components/element-drop-handle/element-drop-handle.module.mjs +0 -19
  140. package/esm2020/cms/components/element-renderer/element-renderer.component.mjs +0 -117
  141. package/esm2020/cms/components/element-renderer/element-renderer.module.mjs +0 -16
  142. package/esm2020/cms/components/element-tools-panel/element-tools-panel.component.mjs +0 -35
  143. package/esm2020/cms/components/element.component.mjs +0 -45
  144. package/esm2020/cms/components/index.mjs +0 -2
  145. package/esm2020/cms/components/plugin.component.mjs +0 -17
  146. package/esm2020/cms/components/preview/index.mjs +0 -4
  147. package/esm2020/cms/components/preview/preview.component.mjs +0 -75
  148. package/esm2020/cms/components/preview/preview.module.mjs +0 -42
  149. package/esm2020/cms/components/preview/preview.types.mjs +0 -2
  150. package/esm2020/cms/decorators/element.decorator.mjs +0 -6
  151. package/esm2020/cms/decorators/index.mjs +0 -2
  152. package/esm2020/cms/definitions/index.mjs +0 -2
  153. package/esm2020/cms/definitions/ui-builder.definitions.mjs +0 -18
  154. package/esm2020/cms/directives/custom-template.directive.mjs +0 -38
  155. package/esm2020/cms/engine/models/entity.mjs +0 -17
  156. package/esm2020/cms/engine/models/plugin.mjs +0 -6
  157. package/esm2020/cms/index.mjs +0 -16
  158. package/esm2020/cms/injection-tokens.mjs +0 -7
  159. package/esm2020/cms/launcher.module.mjs +0 -24
  160. package/esm2020/cms/modules/federated/default-options.mjs +0 -5
  161. package/esm2020/cms/modules/federated/export.mjs +0 -2
  162. package/esm2020/cms/modules/federated/federated-host.directive.mjs +0 -16
  163. package/esm2020/cms/modules/federated/federated.component.mjs +0 -74
  164. package/esm2020/cms/modules/federated/federated.module.mjs +0 -20
  165. package/esm2020/cms/modules/federated/federated.types.mjs +0 -2
  166. package/esm2020/cms/modules/migrations/index.mjs +0 -3
  167. package/esm2020/cms/modules/migrations/migrations.mjs +0 -22
  168. package/esm2020/cms/modules/migrations/migrations.module.mjs +0 -15
  169. package/esm2020/cms/modules/migrations/services/migrations.service.mjs +0 -47
  170. package/esm2020/cms/modules/migrations/types/migrations.types.mjs +0 -2
  171. package/esm2020/cms/modules/runtime/index.mjs +0 -4
  172. package/esm2020/cms/modules/runtime/runtime.module.mjs +0 -32
  173. package/esm2020/cms/modules/runtime/services/compilation.service.mjs +0 -93
  174. package/esm2020/cms/modules/runtime/services/runtime-editor.service.mjs +0 -30
  175. package/esm2020/cms/modules/runtime/services/runtime.service.mjs +0 -117
  176. package/esm2020/cms/modules/runtime/tokens.mjs +0 -3
  177. package/esm2020/cms/modules/runtime/types/compilation.types.mjs +0 -2
  178. package/esm2020/cms/modules/runtime/types/runtime.actions.mjs +0 -2
  179. package/esm2020/cms/plugins/element-hover.plugin.mjs +0 -121
  180. package/esm2020/cms/plugins/io.plugin.mjs +0 -45
  181. package/esm2020/cms/plugins/page.plugin.mjs +0 -37
  182. package/esm2020/cms/plugins/region.plugin.mjs +0 -59
  183. package/esm2020/cms/plugins/script.plugin.mjs +0 -31
  184. package/esm2020/cms/services/element-context.service.mjs +0 -10
  185. package/esm2020/cms/services/index.mjs +0 -3
  186. package/esm2020/cms/services/io-provider.service.mjs +0 -53
  187. package/esm2020/cms/services/resources.service.mjs +0 -71
  188. package/esm2020/cms/services/templates.service.mjs +0 -32
  189. package/esm2020/cms/types/common.types.mjs +0 -2
  190. package/esm2020/cms/types/elements.types.mjs +0 -2
  191. package/esm2020/cms/types/index.mjs +0 -7
  192. package/esm2020/cms/types/layouts.types.mjs +0 -71
  193. package/esm2020/cms/types/pages.types.mjs +0 -2
  194. package/esm2020/cms/types/path.types.mjs +0 -2
  195. package/esm2020/cms/utils/element-metadata-worker.mjs +0 -31
  196. package/esm2020/cms/utils/element.utils.mjs +0 -182
  197. package/esm2020/cms/utils/elements-resolver.mjs +0 -206
  198. package/esm2020/cms/utils/encoding.utils.mjs +0 -29
  199. package/esm2020/cms/utils/index.mjs +0 -10
  200. package/esm2020/cms/utils/inject.mjs +0 -27
  201. package/esm2020/cms/utils/path.utils.mjs +0 -44
  202. package/esm2020/cms/utils/script.utils.mjs +0 -46
  203. package/esm2020/cms/utils/transpilation-worker.mjs +0 -52
  204. package/esm2020/cms/utils/ui-builder-layout.utils.mjs +0 -46
  205. package/esm2020/cms/utils/ui-definition.utils.mjs +0 -85
  206. package/esm2020/cms/veloceapps-sdk-cms.mjs +0 -5
  207. package/esm2020/cms/vendor-map.mjs +0 -83
  208. package/esm2020/core/core.module.mjs +0 -54
  209. package/esm2020/core/directives/directives.module.mjs +0 -16
  210. package/esm2020/core/directives/index.mjs +0 -3
  211. package/esm2020/core/directives/primeng-calendar.directive.mjs +0 -41
  212. package/esm2020/core/index.mjs +0 -9
  213. package/esm2020/core/modules/configuration/configuration.module.mjs +0 -34
  214. package/esm2020/core/modules/configuration/index.mjs +0 -7
  215. package/esm2020/core/modules/configuration/services/configuration-runtime.service.mjs +0 -38
  216. package/esm2020/core/modules/configuration/services/configuration-state.service.mjs +0 -381
  217. package/esm2020/core/modules/configuration/services/configuration.service.mjs +0 -172
  218. package/esm2020/core/modules/configuration/services/guided-selling.service.mjs +0 -62
  219. package/esm2020/core/modules/configuration/services/test-mode-configuration.service.mjs +0 -97
  220. package/esm2020/core/modules/configuration/types/configuration-runtime.types.mjs +0 -2
  221. package/esm2020/core/modules/configuration/types/configuration.types.mjs +0 -2
  222. package/esm2020/core/modules/configuration/types/index.mjs +0 -3
  223. package/esm2020/core/modules/flow-configuration/flow-configuration.module.mjs +0 -17
  224. package/esm2020/core/modules/flow-configuration/index.mjs +0 -2
  225. package/esm2020/core/modules/flow-configuration/services/flow-configuration.service.mjs +0 -80
  226. package/esm2020/core/modules/index.mjs +0 -3
  227. package/esm2020/core/operators/filter-successful-execute.operator.mjs +0 -5
  228. package/esm2020/core/operators/index.mjs +0 -2
  229. package/esm2020/core/pipes/action-code.pipe.mjs +0 -20
  230. package/esm2020/core/pipes/date.pipe.mjs +0 -44
  231. package/esm2020/core/pipes/index.mjs +0 -6
  232. package/esm2020/core/pipes/number.pipe.mjs +0 -27
  233. package/esm2020/core/pipes/pipes.module.mjs +0 -19
  234. package/esm2020/core/pipes/price.pipe.mjs +0 -30
  235. package/esm2020/core/services/catalog-products.service.mjs +0 -25
  236. package/esm2020/core/services/flow-info.service.mjs +0 -146
  237. package/esm2020/core/services/flow-state-configuration.service.mjs +0 -120
  238. package/esm2020/core/services/flow-state.service.mjs +0 -417
  239. package/esm2020/core/services/index.mjs +0 -9
  240. package/esm2020/core/services/integration.state.mjs +0 -36
  241. package/esm2020/core/services/product-images.service.mjs +0 -30
  242. package/esm2020/core/services/runtime-settings.service.mjs +0 -112
  243. package/esm2020/core/services/sales-transaction.service.mjs +0 -67
  244. package/esm2020/core/types/flow-customization.types.mjs +0 -3
  245. package/esm2020/core/types/flow-state.types.mjs +0 -2
  246. package/esm2020/core/types/formatting-settings.types.mjs +0 -3
  247. package/esm2020/core/types/index.mjs +0 -6
  248. package/esm2020/core/types/integration.types.mjs +0 -2
  249. package/esm2020/core/types/pipe.types.mjs +0 -2
  250. package/esm2020/core/types/ui-definition.types.mjs +0 -2
  251. package/esm2020/core/utils/index.mjs +0 -5
  252. package/esm2020/core/utils/pcm.utils.mjs +0 -15
  253. package/esm2020/core/utils/transaction-item.utils.mjs +0 -144
  254. package/esm2020/core/utils/transaction-item.worker.mjs +0 -16
  255. package/esm2020/core/utils/ui-definition.utils.mjs +0 -9
  256. package/esm2020/core/veloceapps-sdk-core.mjs +0 -5
  257. package/esm2020/index.mjs +0 -2
  258. package/esm2020/src/components/dialog/dialog.component.mjs +0 -36
  259. package/esm2020/src/components/dialog/dialog.module.mjs +0 -19
  260. package/esm2020/src/components/dialog/dialog.types.mjs +0 -2
  261. package/esm2020/src/components/flow-header/flow-header.component.mjs +0 -107
  262. package/esm2020/src/components/flow-header/flow-header.module.mjs +0 -19
  263. package/esm2020/src/components/flow-header/index.mjs +0 -2
  264. package/esm2020/src/components/guided-selling/guided-selling.component.mjs +0 -107
  265. package/esm2020/src/components/guided-selling/guided-selling.module.mjs +0 -19
  266. package/esm2020/src/configure-primeng.mjs +0 -33
  267. package/esm2020/src/constants.mjs +0 -2
  268. package/esm2020/src/flow-routing.module.mjs +0 -97
  269. package/esm2020/src/flow.component.mjs +0 -39
  270. package/esm2020/src/flow.module.mjs +0 -60
  271. package/esm2020/src/guards/flow.guard.mjs +0 -35
  272. package/esm2020/src/guards/product-unload.guard.mjs +0 -49
  273. package/esm2020/src/guards/root.guard.mjs +0 -46
  274. package/esm2020/src/index.mjs +0 -5
  275. package/esm2020/src/pages/assets/assets.component.mjs +0 -106
  276. package/esm2020/src/pages/assets/assets.module.mjs +0 -20
  277. package/esm2020/src/pages/catalog/catalog.component.mjs +0 -106
  278. package/esm2020/src/pages/catalog/catalog.module.mjs +0 -20
  279. package/esm2020/src/pages/debug/debug.component.mjs +0 -49
  280. package/esm2020/src/pages/debug/debug.module.mjs +0 -46
  281. package/esm2020/src/pages/product/product.component.mjs +0 -55
  282. package/esm2020/src/pages/product/product.module.mjs +0 -20
  283. package/esm2020/src/pages/record-not-found/record-not-found.component.mjs +0 -27
  284. package/esm2020/src/pages/record-not-found/record-not-found.module.mjs +0 -20
  285. package/esm2020/src/pages/shopping-cart/shopping-cart.component.mjs +0 -106
  286. package/esm2020/src/pages/shopping-cart/shopping-cart.module.mjs +0 -20
  287. package/esm2020/src/resolvers/flow.resolver.mjs +0 -50
  288. package/esm2020/src/resolvers/pcm-model.resolver.mjs +0 -12
  289. package/esm2020/src/resolvers/sales-transaction.resolver.mjs +0 -64
  290. package/esm2020/src/resolvers/ui-definition.resolver.mjs +0 -44
  291. package/esm2020/src/services/flow-dialog.service.mjs +0 -91
  292. package/esm2020/src/services/flow-router.service.mjs +0 -173
  293. package/esm2020/src/services/flow.service.mjs +0 -102
  294. package/esm2020/src/services/guided-selling.service.mjs +0 -34
  295. package/esm2020/src/services/index.mjs +0 -4
  296. package/esm2020/src/types/index.mjs +0 -2
  297. package/esm2020/src/types/route.types.mjs +0 -2
  298. package/esm2020/veloceapps-sdk.mjs +0 -5
  299. package/fesm2015/veloceapps-sdk-cms.mjs +0 -2514
  300. package/fesm2015/veloceapps-sdk-cms.mjs.map +0 -1
  301. package/fesm2015/veloceapps-sdk-core.mjs +0 -2104
  302. package/fesm2015/veloceapps-sdk-core.mjs.map +0 -1
  303. package/fesm2015/veloceapps-sdk.mjs +0 -1598
  304. package/fesm2015/veloceapps-sdk.mjs.map +0 -1
  305. package/fesm2020/veloceapps-sdk-cms.mjs +0 -2613
  306. package/fesm2020/veloceapps-sdk-cms.mjs.map +0 -1
  307. package/fesm2020/veloceapps-sdk-core.mjs.map +0 -1
  308. package/fesm2020/veloceapps-sdk.mjs.map +0 -1
  309. package/src/components/dialog/dialog.component.d.ts +0 -13
  310. package/src/components/dialog/dialog.module.d.ts +0 -9
  311. package/src/components/dialog/dialog.types.d.ts +0 -7
  312. package/src/components/flow-header/flow-header.component.d.ts +0 -25
  313. package/src/components/flow-header/flow-header.module.d.ts +0 -9
  314. package/src/components/flow-header/index.d.ts +0 -1
  315. package/src/components/guided-selling/guided-selling.component.d.ts +0 -25
  316. package/src/components/guided-selling/guided-selling.module.d.ts +0 -9
  317. package/src/configure-primeng.d.ts +0 -1
  318. package/src/constants.d.ts +0 -1
  319. package/src/flow-routing.module.d.ts +0 -11
  320. package/src/flow.component.d.ts +0 -21
  321. package/src/flow.module.d.ts +0 -16
  322. package/src/guards/flow.guard.d.ts +0 -2
  323. package/src/guards/product-unload.guard.d.ts +0 -16
  324. package/src/guards/root.guard.d.ts +0 -14
  325. package/src/index.d.ts +0 -4
  326. package/src/pages/assets/assets.component.d.ts +0 -31
  327. package/src/pages/assets/assets.module.d.ts +0 -10
  328. package/src/pages/catalog/catalog.component.d.ts +0 -31
  329. package/src/pages/catalog/catalog.module.d.ts +0 -10
  330. package/src/pages/debug/debug.component.d.ts +0 -21
  331. package/src/pages/debug/debug.module.d.ts +0 -14
  332. package/src/pages/product/product.component.d.ts +0 -24
  333. package/src/pages/product/product.module.d.ts +0 -10
  334. package/src/pages/record-not-found/record-not-found.component.d.ts +0 -12
  335. package/src/pages/record-not-found/record-not-found.module.d.ts +0 -9
  336. package/src/pages/shopping-cart/shopping-cart.component.d.ts +0 -31
  337. package/src/pages/shopping-cart/shopping-cart.module.d.ts +0 -10
  338. package/src/resolvers/flow.resolver.d.ts +0 -14
  339. package/src/resolvers/pcm-model.resolver.d.ts +0 -3
  340. package/src/resolvers/sales-transaction.resolver.d.ts +0 -18
  341. package/src/resolvers/ui-definition.resolver.d.ts +0 -3
  342. package/src/services/flow-dialog.service.d.ts +0 -23
  343. package/src/services/flow-router.service.d.ts +0 -42
  344. package/src/services/flow.service.d.ts +0 -21
  345. package/src/services/guided-selling.service.d.ts +0 -13
  346. package/src/services/index.d.ts +0 -3
  347. package/src/types/index.d.ts +0 -1
  348. package/src/types/route.types.d.ts +0 -4
@@ -1,44 +0,0 @@
1
- import { DATE_PIPE_DEFAULT_OPTIONS, formatDate } from '@angular/common';
2
- import { LOCALE_ID, Pipe, inject } from '@angular/core';
3
- import { DEFAULT_DATE_FORMAT, DEFAULT_TIME_FORMAT } from '@veloceapps/core';
4
- import { Subject } from 'rxjs';
5
- import { FORMATTING_SETTINGS_TOKEN } from '../types';
6
- import * as i0 from "@angular/core";
7
- export class DatePipe {
8
- constructor() {
9
- this.locale = inject(LOCALE_ID);
10
- this.defaultOptions = inject(DATE_PIPE_DEFAULT_OPTIONS, { optional: true });
11
- this.formattingSettings = inject(FORMATTING_SETTINGS_TOKEN, { optional: true })?.getFormattingSettings();
12
- this.destroy$ = new Subject();
13
- }
14
- ngOnDestroy() {
15
- this.destroy$.next();
16
- this.destroy$.complete();
17
- }
18
- transform(date, type = 'date') {
19
- if (!date) {
20
- return '';
21
- }
22
- const dateFormat = this.formattingSettings?.dateFormats.datePipeFormat || DEFAULT_DATE_FORMAT;
23
- const formatMap = {
24
- date: dateFormat,
25
- time: DEFAULT_TIME_FORMAT,
26
- datetime: `${dateFormat} ${DEFAULT_TIME_FORMAT}`,
27
- };
28
- try {
29
- return formatDate(date, formatMap[type], this.locale, this.defaultOptions?.timezone);
30
- }
31
- catch (error) {
32
- return new Date(date).toString();
33
- }
34
- }
35
- }
36
- DatePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DatePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
37
- DatePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: DatePipe, name: "vlDate" });
38
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DatePipe, decorators: [{
39
- type: Pipe,
40
- args: [{
41
- name: 'vlDate',
42
- }]
43
- }] });
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvY29yZS9waXBlcy9kYXRlLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHlCQUF5QixFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxTQUFTLEVBQWEsSUFBSSxFQUFpQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDNUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQVkseUJBQXlCLEVBQUUsTUFBTSxVQUFVLENBQUM7O0FBSy9ELE1BQU0sT0FBTyxRQUFRO0lBSHJCO1FBSVUsV0FBTSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMzQixtQkFBYyxHQUFHLE1BQU0sQ0FBQyx5QkFBeUIsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZFLHVCQUFrQixHQUFHLE1BQU0sQ0FBQyx5QkFBeUIsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLHFCQUFxQixFQUFFLENBQUM7UUFDcEcsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7S0EwQnhDO0lBeEJRLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFTSxTQUFTLENBQUMsSUFBK0MsRUFBRSxPQUFpQixNQUFNO1FBQ3ZGLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDVCxPQUFPLEVBQUUsQ0FBQztTQUNYO1FBRUQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixFQUFFLFdBQVcsQ0FBQyxjQUFjLElBQUksbUJBQW1CLENBQUM7UUFFOUYsTUFBTSxTQUFTLEdBQWtDO1lBQy9DLElBQUksRUFBRSxVQUFVO1lBQ2hCLElBQUksRUFBRSxtQkFBbUI7WUFDekIsUUFBUSxFQUFFLEdBQUcsVUFBVSxJQUFJLG1CQUFtQixFQUFFO1NBQ2pELENBQUM7UUFFRixJQUFJO1lBQ0YsT0FBTyxVQUFVLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsUUFBUSxDQUFDLENBQUM7U0FDdEY7UUFBQyxPQUFPLEtBQUssRUFBRTtZQUNkLE9BQU8sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDbEM7SUFDSCxDQUFDOztxR0E3QlUsUUFBUTttR0FBUixRQUFROzJGQUFSLFFBQVE7a0JBSHBCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLFFBQVE7aUJBQ2YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEQVRFX1BJUEVfREVGQVVMVF9PUFRJT05TLCBmb3JtYXREYXRlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IExPQ0FMRV9JRCwgT25EZXN0cm95LCBQaXBlLCBQaXBlVHJhbnNmb3JtLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERFRkFVTFRfREFURV9GT1JNQVQsIERFRkFVTFRfVElNRV9GT1JNQVQgfSBmcm9tICdAdmVsb2NlYXBwcy9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERhdGVUeXBlLCBGT1JNQVRUSU5HX1NFVFRJTkdTX1RPS0VOIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICd2bERhdGUnLFxufSlcbmV4cG9ydCBjbGFzcyBEYXRlUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0sIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgbG9jYWxlID0gaW5qZWN0KExPQ0FMRV9JRCk7XG4gIHByaXZhdGUgZGVmYXVsdE9wdGlvbnMgPSBpbmplY3QoREFURV9QSVBFX0RFRkFVTFRfT1BUSU9OUywgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbiAgcHJpdmF0ZSBmb3JtYXR0aW5nU2V0dGluZ3MgPSBpbmplY3QoRk9STUFUVElOR19TRVRUSU5HU19UT0tFTiwgeyBvcHRpb25hbDogdHJ1ZSB9KT8uZ2V0Rm9ybWF0dGluZ1NldHRpbmdzKCk7XG4gIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgdHJhbnNmb3JtKGRhdGU6IHN0cmluZyB8IG51bWJlciB8IERhdGUgfCB1bmRlZmluZWQgfCBudWxsLCB0eXBlOiBEYXRlVHlwZSA9ICdkYXRlJyk6IHN0cmluZyB7XG4gICAgaWYgKCFkYXRlKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgY29uc3QgZGF0ZUZvcm1hdCA9IHRoaXMuZm9ybWF0dGluZ1NldHRpbmdzPy5kYXRlRm9ybWF0cy5kYXRlUGlwZUZvcm1hdCB8fCBERUZBVUxUX0RBVEVfRk9STUFUO1xuXG4gICAgY29uc3QgZm9ybWF0TWFwOiB7IFtrZXkgaW4gRGF0ZVR5cGVdOiBzdHJpbmcgfSA9IHtcbiAgICAgIGRhdGU6IGRhdGVGb3JtYXQsXG4gICAgICB0aW1lOiBERUZBVUxUX1RJTUVfRk9STUFULFxuICAgICAgZGF0ZXRpbWU6IGAke2RhdGVGb3JtYXR9ICR7REVGQVVMVF9USU1FX0ZPUk1BVH1gLFxuICAgIH07XG5cbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGZvcm1hdERhdGUoZGF0ZSwgZm9ybWF0TWFwW3R5cGVdLCB0aGlzLmxvY2FsZSwgdGhpcy5kZWZhdWx0T3B0aW9ucz8udGltZXpvbmUpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICByZXR1cm4gbmV3IERhdGUoZGF0ZSkudG9TdHJpbmcoKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -1,6 +0,0 @@
1
- export * from './date.pipe';
2
- export * from './number.pipe';
3
- export * from './pipes.module';
4
- export * from './price.pipe';
5
- export * from './action-code.pipe';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jb3JlL3BpcGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZGF0ZS5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vbnVtYmVyLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9waXBlcy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9wcmljZS5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vYWN0aW9uLWNvZGUucGlwZSc7XG4iXX0=
@@ -1,27 +0,0 @@
1
- import { Pipe, inject } from '@angular/core';
2
- import { formatNumber } from '@veloceapps/core';
3
- import { Subject } from 'rxjs';
4
- import { FORMATTING_SETTINGS_TOKEN } from '../types';
5
- import * as i0 from "@angular/core";
6
- export class NumberPipe {
7
- constructor() {
8
- this.formattingSettings = inject(FORMATTING_SETTINGS_TOKEN, { optional: true })?.getFormattingSettings();
9
- this.destroy$ = new Subject();
10
- }
11
- ngOnDestroy() {
12
- this.destroy$.next();
13
- this.destroy$.complete();
14
- }
15
- transform(price) {
16
- return formatNumber(price, this.formattingSettings?.thousandsSeparator, this.formattingSettings?.decimalSeparator, this.formattingSettings?.decimalsCount);
17
- }
18
- }
19
- NumberPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NumberPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
20
- NumberPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: NumberPipe, name: "vlNumber" });
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NumberPipe, decorators: [{
22
- type: Pipe,
23
- args: [{
24
- name: 'vlNumber',
25
- }]
26
- }] });
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jb3JlL3BpcGVzL251bWJlci5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYSxJQUFJLEVBQWlCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxVQUFVLENBQUM7O0FBS3JELE1BQU0sT0FBTyxVQUFVO0lBSHZCO1FBSVUsdUJBQWtCLEdBQUcsTUFBTSxDQUFDLHlCQUF5QixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUscUJBQXFCLEVBQUUsQ0FBQztRQUNwRyxhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztLQWV4QztJQWJRLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFTSxTQUFTLENBQUMsS0FBc0I7UUFDckMsT0FBTyxZQUFZLENBQ2pCLEtBQUssRUFDTCxJQUFJLENBQUMsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQzNDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFDekMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLGFBQWEsQ0FDdkMsQ0FBQztJQUNKLENBQUM7O3VHQWhCVSxVQUFVO3FHQUFWLFVBQVU7MkZBQVYsVUFBVTtrQkFIdEIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsVUFBVTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPbkRlc3Ryb3ksIFBpcGUsIFBpcGVUcmFuc2Zvcm0sIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZm9ybWF0TnVtYmVyIH0gZnJvbSAnQHZlbG9jZWFwcHMvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGT1JNQVRUSU5HX1NFVFRJTkdTX1RPS0VOIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICd2bE51bWJlcicsXG59KVxuZXhwb3J0IGNsYXNzIE51bWJlclBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtLCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIGZvcm1hdHRpbmdTZXR0aW5ncyA9IGluamVjdChGT1JNQVRUSU5HX1NFVFRJTkdTX1RPS0VOLCB7IG9wdGlvbmFsOiB0cnVlIH0pPy5nZXRGb3JtYXR0aW5nU2V0dGluZ3MoKTtcbiAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHB1YmxpYyB0cmFuc2Zvcm0ocHJpY2U6IHN0cmluZyB8IG51bWJlcik6IHN0cmluZyB7XG4gICAgcmV0dXJuIGZvcm1hdE51bWJlcihcbiAgICAgIHByaWNlLFxuICAgICAgdGhpcy5mb3JtYXR0aW5nU2V0dGluZ3M/LnRob3VzYW5kc1NlcGFyYXRvcixcbiAgICAgIHRoaXMuZm9ybWF0dGluZ1NldHRpbmdzPy5kZWNpbWFsU2VwYXJhdG9yLFxuICAgICAgdGhpcy5mb3JtYXR0aW5nU2V0dGluZ3M/LmRlY2ltYWxzQ291bnQsXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -1,19 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { DatePipe } from './date.pipe';
3
- import { NumberPipe } from './number.pipe';
4
- import { PricePipe } from './price.pipe';
5
- import { ActionCodePipe } from './action-code.pipe';
6
- import * as i0 from "@angular/core";
7
- export class SdkPipesModule {
8
- }
9
- SdkPipesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SdkPipesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
- SdkPipesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: SdkPipesModule, declarations: [NumberPipe, PricePipe, DatePipe, ActionCodePipe], exports: [NumberPipe, PricePipe, DatePipe, ActionCodePipe] });
11
- SdkPipesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SdkPipesModule });
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SdkPipesModule, decorators: [{
13
- type: NgModule,
14
- args: [{
15
- declarations: [NumberPipe, PricePipe, DatePipe, ActionCodePipe],
16
- exports: [NumberPipe, PricePipe, DatePipe, ActionCodePipe],
17
- }]
18
- }] });
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZXMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvY29yZS9waXBlcy9waXBlcy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN6QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBTXBELE1BQU0sT0FBTyxjQUFjOzsyR0FBZCxjQUFjOzRHQUFkLGNBQWMsaUJBSFYsVUFBVSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsY0FBYyxhQUNwRCxVQUFVLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxjQUFjOzRHQUU5QyxjQUFjOzJGQUFkLGNBQWM7a0JBSjFCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsVUFBVSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsY0FBYyxDQUFDO29CQUMvRCxPQUFPLEVBQUUsQ0FBQyxVQUFVLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxjQUFjLENBQUM7aUJBQzNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERhdGVQaXBlIH0gZnJvbSAnLi9kYXRlLnBpcGUnO1xuaW1wb3J0IHsgTnVtYmVyUGlwZSB9IGZyb20gJy4vbnVtYmVyLnBpcGUnO1xuaW1wb3J0IHsgUHJpY2VQaXBlIH0gZnJvbSAnLi9wcmljZS5waXBlJztcbmltcG9ydCB7IEFjdGlvbkNvZGVQaXBlIH0gZnJvbSAnLi9hY3Rpb24tY29kZS5waXBlJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbTnVtYmVyUGlwZSwgUHJpY2VQaXBlLCBEYXRlUGlwZSwgQWN0aW9uQ29kZVBpcGVdLFxuICBleHBvcnRzOiBbTnVtYmVyUGlwZSwgUHJpY2VQaXBlLCBEYXRlUGlwZSwgQWN0aW9uQ29kZVBpcGVdLFxufSlcbmV4cG9ydCBjbGFzcyBTZGtQaXBlc01vZHVsZSB7fVxuIl19
@@ -1,30 +0,0 @@
1
- import { Pipe, inject } from '@angular/core';
2
- import { DEFAULT_CURRENCY_SYMBOL, formatNumber } from '@veloceapps/core';
3
- import { Subject } from 'rxjs';
4
- import { FORMATTING_SETTINGS_TOKEN } from '../types';
5
- import * as i0 from "@angular/core";
6
- export class PricePipe {
7
- constructor() {
8
- this.formattingSettings = inject(FORMATTING_SETTINGS_TOKEN, { optional: true })?.getFormattingSettings();
9
- this.destroy$ = new Subject();
10
- }
11
- ngOnDestroy() {
12
- this.destroy$.next();
13
- this.destroy$.complete();
14
- }
15
- transform(price) {
16
- if (price == null || price === '') {
17
- return '';
18
- }
19
- return `${this.formattingSettings?.currencySymbol || DEFAULT_CURRENCY_SYMBOL}${formatNumber(price, this.formattingSettings?.thousandsSeparator, this.formattingSettings?.decimalSeparator, this.formattingSettings?.decimalsCount)}`;
20
- }
21
- }
22
- PricePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PricePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
23
- PricePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: PricePipe, name: "vlPrice" });
24
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PricePipe, decorators: [{
25
- type: Pipe,
26
- args: [{
27
- name: 'vlPrice',
28
- }]
29
- }] });
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpY2UucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2NvcmUvcGlwZXMvcHJpY2UucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWEsSUFBSSxFQUFpQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sVUFBVSxDQUFDOztBQUtyRCxNQUFNLE9BQU8sU0FBUztJQUh0QjtRQUlVLHVCQUFrQixHQUFHLE1BQU0sQ0FBQyx5QkFBeUIsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLHFCQUFxQixFQUFFLENBQUM7UUFDcEcsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7S0FtQnhDO0lBakJRLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFTSxTQUFTLENBQUMsS0FBc0I7UUFDckMsSUFBSSxLQUFLLElBQUksSUFBSSxJQUFJLEtBQUssS0FBSyxFQUFFLEVBQUU7WUFDakMsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUVELE9BQU8sR0FBRyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsY0FBYyxJQUFJLHVCQUF1QixHQUFHLFlBQVksQ0FDekYsS0FBSyxFQUNMLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxrQkFBa0IsRUFDM0MsSUFBSSxDQUFDLGtCQUFrQixFQUFFLGdCQUFnQixFQUN6QyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsYUFBYSxDQUN2QyxFQUFFLENBQUM7SUFDTixDQUFDOztzR0FwQlUsU0FBUztvR0FBVCxTQUFTOzJGQUFULFNBQVM7a0JBSHJCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLFNBQVM7aUJBQ2hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT25EZXN0cm95LCBQaXBlLCBQaXBlVHJhbnNmb3JtLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERFRkFVTFRfQ1VSUkVOQ1lfU1lNQk9MLCBmb3JtYXROdW1iZXIgfSBmcm9tICdAdmVsb2NlYXBwcy9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZPUk1BVFRJTkdfU0VUVElOR1NfVE9LRU4gfSBmcm9tICcuLi90eXBlcyc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ3ZsUHJpY2UnLFxufSlcbmV4cG9ydCBjbGFzcyBQcmljZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtLCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIGZvcm1hdHRpbmdTZXR0aW5ncyA9IGluamVjdChGT1JNQVRUSU5HX1NFVFRJTkdTX1RPS0VOLCB7IG9wdGlvbmFsOiB0cnVlIH0pPy5nZXRGb3JtYXR0aW5nU2V0dGluZ3MoKTtcbiAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHB1YmxpYyB0cmFuc2Zvcm0ocHJpY2U6IHN0cmluZyB8IG51bWJlcik6IHN0cmluZyB7XG4gICAgaWYgKHByaWNlID09IG51bGwgfHwgcHJpY2UgPT09ICcnKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgcmV0dXJuIGAke3RoaXMuZm9ybWF0dGluZ1NldHRpbmdzPy5jdXJyZW5jeVN5bWJvbCB8fCBERUZBVUxUX0NVUlJFTkNZX1NZTUJPTH0ke2Zvcm1hdE51bWJlcihcbiAgICAgIHByaWNlLFxuICAgICAgdGhpcy5mb3JtYXR0aW5nU2V0dGluZ3M/LnRob3VzYW5kc1NlcGFyYXRvcixcbiAgICAgIHRoaXMuZm9ybWF0dGluZ1NldHRpbmdzPy5kZWNpbWFsU2VwYXJhdG9yLFxuICAgICAgdGhpcy5mb3JtYXR0aW5nU2V0dGluZ3M/LmRlY2ltYWxzQ291bnQsXG4gICAgKX1gO1xuICB9XG59XG4iXX0=
@@ -1,25 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { isDefined } from '@veloceapps/core';
3
- import { BehaviorSubject, filter } from 'rxjs';
4
- import * as i0 from "@angular/core";
5
- export class CatalogProductsService {
6
- constructor() {
7
- this.stateSubj$ = new BehaviorSubject(null);
8
- this.state$ = this.stateSubj$.asObservable().pipe(filter(isDefined));
9
- }
10
- get state() {
11
- return this.stateSubj$.getValue();
12
- }
13
- reset() {
14
- this.stateSubj$.next(null);
15
- }
16
- setState(state) {
17
- this.stateSubj$.next(state);
18
- }
19
- }
20
- CatalogProductsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CatalogProductsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
21
- CatalogProductsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CatalogProductsService });
22
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CatalogProductsService, decorators: [{
23
- type: Injectable
24
- }] });
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy1wcm9kdWN0cy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvY29yZS9zZXJ2aWNlcy9jYXRhbG9nLXByb2R1Y3RzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQW1CLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzlELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUcvQyxNQUFNLE9BQU8sc0JBQXNCO0lBRG5DO1FBRVUsZUFBVSxHQUFHLElBQUksZUFBZSxDQUF5QixJQUFJLENBQUMsQ0FBQztRQUVoRSxXQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7S0FheEU7SUFYQyxJQUFXLEtBQUs7UUFDZCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVNLEtBQUs7UUFDVixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRU0sUUFBUSxDQUFDLEtBQXNCO1FBQ3BDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlCLENBQUM7O21IQWZVLHNCQUFzQjt1SEFBdEIsc0JBQXNCOzJGQUF0QixzQkFBc0I7a0JBRGxDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDYXRhbG9nUHJvZHVjdHMsIGlzRGVmaW5lZCB9IGZyb20gJ0B2ZWxvY2VhcHBzL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBmaWx0ZXIgfSBmcm9tICdyeGpzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENhdGFsb2dQcm9kdWN0c1NlcnZpY2Uge1xuICBwcml2YXRlIHN0YXRlU3ViaiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PENhdGFsb2dQcm9kdWN0cyB8IG51bGw+KG51bGwpO1xuXG4gIHB1YmxpYyBzdGF0ZSQgPSB0aGlzLnN0YXRlU3ViaiQuYXNPYnNlcnZhYmxlKCkucGlwZShmaWx0ZXIoaXNEZWZpbmVkKSk7XG5cbiAgcHVibGljIGdldCBzdGF0ZSgpOiBDYXRhbG9nUHJvZHVjdHMgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZVN1YmokLmdldFZhbHVlKCk7XG4gIH1cblxuICBwdWJsaWMgcmVzZXQoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZVN1YmokLm5leHQobnVsbCk7XG4gIH1cblxuICBwdWJsaWMgc2V0U3RhdGUoc3RhdGU6IENhdGFsb2dQcm9kdWN0cyk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGVTdWJqJC5uZXh0KHN0YXRlKTtcbiAgfVxufVxuIl19
@@ -1,146 +0,0 @@
1
- import { Inject, Injectable, Optional } from '@angular/core';
2
- import { UITemplatesAdminApiService } from '@veloceapps/api/v2';
3
- import { isDefined, SalesforceIdUtils, UITemplateType, } from '@veloceapps/core';
4
- import { BehaviorSubject, filter, forkJoin, map, of, switchMap } from 'rxjs';
5
- import { FLOW_CUSTOMIZATION } from '../types/flow-customization.types';
6
- import { RuntimeSettingsService } from './runtime-settings.service';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "./runtime-settings.service";
9
- import * as i2 from "@veloceapps/api/v2";
10
- export class FlowInfoService {
11
- constructor(runtimeSettingsService, templatesAdminApiService, customizationService) {
12
- this.runtimeSettingsService = runtimeSettingsService;
13
- this.templatesAdminApiService = templatesAdminApiService;
14
- this.customizationService = customizationService;
15
- this.defaultTemplates = {
16
- flowEngine: 'Flow Engine',
17
- };
18
- this.flowSubj$ = new BehaviorSubject(null);
19
- this.templatesSubj$ = new BehaviorSubject({});
20
- this.contextSubj$ = new BehaviorSubject(null);
21
- this.flow$ = this.flowSubj$.asObservable();
22
- this.templates$ = this.templatesSubj$.asObservable();
23
- }
24
- get flow() {
25
- if (!this.flowSubj$.value) {
26
- throw new Error(`Flow not initialized yet`);
27
- }
28
- return this.flowSubj$.value;
29
- }
30
- get isFlowInitialized() {
31
- return Boolean(this.flowSubj$.value);
32
- }
33
- get context() {
34
- if (!this.contextSubj$.value) {
35
- throw new Error('Context is not initialized yet!');
36
- }
37
- return { ...this.contextSubj$.value };
38
- }
39
- get context$() {
40
- return this.contextSubj$.asObservable().pipe(filter(isDefined));
41
- }
42
- get templates() {
43
- return this.templatesSubj$.value;
44
- }
45
- get isFlowEngineInitialized$() {
46
- return this.templates$.pipe(map(v => Boolean(v.FLOW_ENGINE)));
47
- }
48
- get isStateful() {
49
- return !!this.flow?.properties.stateful;
50
- }
51
- reset() {
52
- this.flowSubj$.next(null);
53
- this.templatesSubj$.next({});
54
- this.contextSubj$.next(null);
55
- }
56
- init$(flowId, routeQueryParams) {
57
- return this.initFlow$(flowId, routeQueryParams).pipe(switchMap(() => this.initFlowTemplates$()));
58
- }
59
- updateContext(update) {
60
- this.contextSubj$.next({
61
- ...this.context,
62
- ...update,
63
- });
64
- }
65
- initFlow$(flowId, routeQueryParams) {
66
- const flow = this.runtimeSettingsService.getConfigurationSettings()['flows']?.find(({ id }) => flowId === id);
67
- if (!flow) {
68
- this.flowSubj$.next(null);
69
- throw new Error(`Flow with flowId=${flowId} is not defined`);
70
- }
71
- const headerId = routeQueryParams['headerId'];
72
- if (typeof headerId !== 'string') {
73
- throw new Error(`Please provide 'headerId'`);
74
- }
75
- const mode = this.getFlowContextMode(headerId);
76
- // Restrict if mode is not defined
77
- if (mode == null) {
78
- throw new Error('Mode is undefined');
79
- }
80
- this.contextSubj$.next({
81
- ...flow.properties.queryParams,
82
- ...routeQueryParams,
83
- mode,
84
- });
85
- this.flowSubj$.next(flow);
86
- return of(undefined);
87
- }
88
- initFlowTemplates$() {
89
- return forkJoin([
90
- this.templatesAdminApiService.fetchTemplates$(),
91
- this.customizationService?.getTemplates?.() ?? of([]),
92
- ]).pipe(map(([templates, localTemplates]) => {
93
- const newValue = {};
94
- Object.entries({ ...this.defaultTemplates, ...(this.flow?.properties.templates ?? {}) }).forEach(([key, name]) => {
95
- const type = this.remapTemplateName(key);
96
- if (type) {
97
- newValue[type] =
98
- localTemplates.find(template => template.name === name && template.type === type) ??
99
- templates.find(template => template.name === name && template.type === type);
100
- }
101
- });
102
- this.templatesSubj$.next(newValue);
103
- }));
104
- }
105
- remapTemplateName(templateType) {
106
- switch (templateType) {
107
- case 'flowEngine':
108
- return UITemplateType.FLOW_ENGINE;
109
- default:
110
- break;
111
- }
112
- switch (templateType) {
113
- case 'assets':
114
- case 'shoppingCart':
115
- // No separate Assets template at the moment
116
- return UITemplateType.SHOPPING_CART;
117
- case 'catalog':
118
- return UITemplateType.CATALOG;
119
- case 'guidedSelling':
120
- return UITemplateType.GUIDED_SELLING;
121
- case 'flowHeader':
122
- return UITemplateType.FLOW_HEADER;
123
- default:
124
- break;
125
- }
126
- return undefined;
127
- }
128
- getFlowContextMode(headerId) {
129
- const objectName = SalesforceIdUtils.getSfObjectNameById(headerId);
130
- if (!objectName) {
131
- return;
132
- }
133
- return objectName.toUpperCase();
134
- }
135
- }
136
- FlowInfoService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FlowInfoService, deps: [{ token: i1.RuntimeSettingsService }, { token: i2.UITemplatesAdminApiService }, { token: FLOW_CUSTOMIZATION, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
137
- FlowInfoService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FlowInfoService });
138
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FlowInfoService, decorators: [{
139
- type: Injectable
140
- }], ctorParameters: function () { return [{ type: i1.RuntimeSettingsService }, { type: i2.UITemplatesAdminApiService }, { type: undefined, decorators: [{
141
- type: Optional
142
- }, {
143
- type: Inject,
144
- args: [FLOW_CUSTOMIZATION]
145
- }] }]; } });
146
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvdy1pbmZvLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jb3JlL3NlcnZpY2VzL2Zsb3ctaW5mby5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU3RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRSxPQUFPLEVBS0wsU0FBUyxFQUNULGlCQUFpQixFQUVqQixjQUFjLEdBQ2YsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFjLEVBQUUsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDekYsT0FBTyxFQUFFLGtCQUFrQixFQUFxQixNQUFNLG1DQUFtQyxDQUFDO0FBQzFGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7O0FBR3BFLE1BQU0sT0FBTyxlQUFlO0lBVTFCLFlBQ1Usc0JBQThDLEVBQzlDLHdCQUFvRCxFQUNaLG9CQUF3QztRQUZoRiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQzlDLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBNEI7UUFDWix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQW9CO1FBVnpFLHFCQUFnQixHQUFHO1lBQ2xDLFVBQVUsRUFBRSxhQUFhO1NBQzFCLENBQUM7UUFDTSxjQUFTLEdBQUcsSUFBSSxlQUFlLENBQWMsSUFBSSxDQUFDLENBQUM7UUFDbkQsbUJBQWMsR0FBRyxJQUFJLGVBQWUsQ0FBMkMsRUFBRSxDQUFDLENBQUM7UUFDbkYsaUJBQVksR0FBRyxJQUFJLGVBQWUsQ0FBcUIsSUFBSSxDQUFDLENBQUM7UUFPbkUsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzNDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN2RCxDQUFDO0lBRUQsSUFBVyxJQUFJO1FBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFO1lBQ3pCLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQztTQUM3QztRQUVELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQVcsaUJBQWlCO1FBQzFCLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELElBQVcsT0FBTztRQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUU7WUFDNUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO1NBQ3BEO1FBRUQsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVELElBQVcsU0FBUztRQUNsQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDO0lBQ25DLENBQUM7SUFFRCxJQUFXLHdCQUF3QjtRQUNqQyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRCxJQUFXLFVBQVU7UUFDbkIsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO0lBQzFDLENBQUM7SUFFTSxLQUFLO1FBQ1YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVNLEtBQUssQ0FBQyxNQUFjLEVBQUUsZ0JBQXdCO1FBQ25ELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNuRyxDQUFDO0lBRU0sYUFBYSxDQUFDLE1BQTRCO1FBQy9DLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDO1lBQ3JCLEdBQUcsSUFBSSxDQUFDLE9BQU87WUFDZixHQUFHLE1BQU07U0FDVixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sU0FBUyxDQUFDLE1BQWMsRUFBRSxnQkFBd0I7UUFDeEQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLHdCQUF3QixFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsTUFBTSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQzlHLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDVCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMxQixNQUFNLElBQUksS0FBSyxDQUFDLG9CQUFvQixNQUFNLGlCQUFpQixDQUFDLENBQUM7U0FDOUQ7UUFFRCxNQUFNLFFBQVEsR0FBRyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM5QyxJQUFJLE9BQU8sUUFBUSxLQUFLLFFBQVEsRUFBRTtZQUNoQyxNQUFNLElBQUksS0FBSyxDQUFDLDJCQUEyQixDQUFDLENBQUM7U0FDOUM7UUFFRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFL0Msa0NBQWtDO1FBQ2xDLElBQUksSUFBSSxJQUFJLElBQUksRUFBRTtZQUNoQixNQUFNLElBQUksS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQUM7U0FDdEM7UUFFRCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQztZQUNyQixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVztZQUM5QixHQUFHLGdCQUFnQjtZQUNuQixJQUFJO1NBQ1UsQ0FBQyxDQUFDO1FBRWxCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFCLE9BQU8sRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFFTyxrQkFBa0I7UUFDeEIsT0FBTyxRQUFRLENBQUM7WUFDZCxJQUFJLENBQUMsd0JBQXdCLENBQUMsZUFBZSxFQUFFO1lBQy9DLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxZQUFZLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUM7U0FDdEQsQ0FBQyxDQUFDLElBQUksQ0FDTCxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxjQUFjLENBQUMsRUFBRSxFQUFFO1lBQ2xDLE1BQU0sUUFBUSxHQUE2QyxFQUFFLENBQUM7WUFDOUQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxTQUFTLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FDOUYsQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFO2dCQUNkLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFFekMsSUFBSSxJQUFJLEVBQUU7b0JBQ1IsUUFBUSxDQUFDLElBQUksQ0FBQzt3QkFDWixjQUFjLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxJQUFJLElBQUksUUFBUSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUM7NEJBQ2pGLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxLQUFLLElBQUksSUFBSSxRQUFRLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDO2lCQUNoRjtZQUNILENBQUMsQ0FDRixDQUFDO1lBRUYsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDckMsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxZQUFvQjtRQUM1QyxRQUFRLFlBQWtELEVBQUU7WUFDMUQsS0FBSyxZQUFZO2dCQUNmLE9BQU8sY0FBYyxDQUFDLFdBQVcsQ0FBQztZQUNwQztnQkFDRSxNQUFNO1NBQ1Q7UUFFRCxRQUFRLFlBQXNDLEVBQUU7WUFDOUMsS0FBSyxRQUFRLENBQUM7WUFDZCxLQUFLLGNBQWM7Z0JBQ2pCLDRDQUE0QztnQkFDNUMsT0FBTyxjQUFjLENBQUMsYUFBYSxDQUFDO1lBQ3RDLEtBQUssU0FBUztnQkFDWixPQUFPLGNBQWMsQ0FBQyxPQUFPLENBQUM7WUFDaEMsS0FBSyxlQUFlO2dCQUNsQixPQUFPLGNBQWMsQ0FBQyxjQUFjLENBQUM7WUFDdkMsS0FBSyxZQUFZO2dCQUNmLE9BQU8sY0FBYyxDQUFDLFdBQVcsQ0FBQztZQUNwQztnQkFDRSxNQUFNO1NBQ1Q7UUFFRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRU8sa0JBQWtCLENBQUMsUUFBZ0I7UUFDekMsTUFBTSxVQUFVLEdBQUcsaUJBQWlCLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbkUsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNmLE9BQU87U0FDUjtRQUVELE9BQU8sVUFBVSxDQUFDLFdBQVcsRUFBcUIsQ0FBQztJQUNyRCxDQUFDOzs0R0E5SlUsZUFBZSxrR0FhSixrQkFBa0I7Z0hBYjdCLGVBQWU7MkZBQWYsZUFBZTtrQkFEM0IsVUFBVTs7MEJBY04sUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgVUlUZW1wbGF0ZXNBZG1pbkFwaVNlcnZpY2UgfSBmcm9tICdAdmVsb2NlYXBwcy9hcGkvdjInO1xuaW1wb3J0IHtcbiAgRmxvdyxcbiAgRmxvd0NvbnRleHQsXG4gIEZsb3dDb250ZXh0TW9kZSxcbiAgRmxvd1RlbXBsYXRlc01hcCxcbiAgaXNEZWZpbmVkLFxuICBTYWxlc2ZvcmNlSWRVdGlscyxcbiAgVUlUZW1wbGF0ZSxcbiAgVUlUZW1wbGF0ZVR5cGUsXG59IGZyb20gJ0B2ZWxvY2VhcHBzL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBmaWx0ZXIsIGZvcmtKb2luLCBtYXAsIE9ic2VydmFibGUsIG9mLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZMT1dfQ1VTVE9NSVpBVElPTiwgRmxvd0N1c3RvbWl6YXRpb24gfSBmcm9tICcuLi90eXBlcy9mbG93LWN1c3RvbWl6YXRpb24udHlwZXMnO1xuaW1wb3J0IHsgUnVudGltZVNldHRpbmdzU2VydmljZSB9IGZyb20gJy4vcnVudGltZS1zZXR0aW5ncy5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEZsb3dJbmZvU2VydmljZSB7XG4gIHB1YmxpYyBmbG93JDogT2JzZXJ2YWJsZTxGbG93IHwgbnVsbD47XG4gIHB1YmxpYyB0ZW1wbGF0ZXMkOiBPYnNlcnZhYmxlPHsgW2tleSBpbiBVSVRlbXBsYXRlVHlwZV0/OiBVSVRlbXBsYXRlIH0+O1xuICBwcml2YXRlIHJlYWRvbmx5IGRlZmF1bHRUZW1wbGF0ZXMgPSB7XG4gICAgZmxvd0VuZ2luZTogJ0Zsb3cgRW5naW5lJyxcbiAgfTtcbiAgcHJpdmF0ZSBmbG93U3ViaiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEZsb3cgfCBudWxsPihudWxsKTtcbiAgcHJpdmF0ZSB0ZW1wbGF0ZXNTdWJqJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8eyBba2V5IGluIFVJVGVtcGxhdGVUeXBlXT86IFVJVGVtcGxhdGUgfT4oe30pO1xuICBwcml2YXRlIGNvbnRleHRTdWJqJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Rmxvd0NvbnRleHQgfCBudWxsPihudWxsKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJ1bnRpbWVTZXR0aW5nc1NlcnZpY2U6IFJ1bnRpbWVTZXR0aW5nc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSB0ZW1wbGF0ZXNBZG1pbkFwaVNlcnZpY2U6IFVJVGVtcGxhdGVzQWRtaW5BcGlTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoRkxPV19DVVNUT01JWkFUSU9OKSBwcml2YXRlIGN1c3RvbWl6YXRpb25TZXJ2aWNlPzogRmxvd0N1c3RvbWl6YXRpb24sXG4gICkge1xuICAgIHRoaXMuZmxvdyQgPSB0aGlzLmZsb3dTdWJqJC5hc09ic2VydmFibGUoKTtcbiAgICB0aGlzLnRlbXBsYXRlcyQgPSB0aGlzLnRlbXBsYXRlc1N1YmokLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBmbG93KCk6IEZsb3cge1xuICAgIGlmICghdGhpcy5mbG93U3ViaiQudmFsdWUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRmxvdyBub3QgaW5pdGlhbGl6ZWQgeWV0YCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZmxvd1N1YmokLnZhbHVlO1xuICB9XG5cbiAgcHVibGljIGdldCBpc0Zsb3dJbml0aWFsaXplZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gQm9vbGVhbih0aGlzLmZsb3dTdWJqJC52YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNvbnRleHQoKTogRmxvd0NvbnRleHQge1xuICAgIGlmICghdGhpcy5jb250ZXh0U3ViaiQudmFsdWUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ29udGV4dCBpcyBub3QgaW5pdGlhbGl6ZWQgeWV0IScpO1xuICAgIH1cblxuICAgIHJldHVybiB7IC4uLnRoaXMuY29udGV4dFN1YmokLnZhbHVlIH07XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNvbnRleHQkKCk6IE9ic2VydmFibGU8Rmxvd0NvbnRleHQ+IHtcbiAgICByZXR1cm4gdGhpcy5jb250ZXh0U3ViaiQuYXNPYnNlcnZhYmxlKCkucGlwZShmaWx0ZXIoaXNEZWZpbmVkKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHRlbXBsYXRlcygpIHtcbiAgICByZXR1cm4gdGhpcy50ZW1wbGF0ZXNTdWJqJC52YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNGbG93RW5naW5lSW5pdGlhbGl6ZWQkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLnRlbXBsYXRlcyQucGlwZShtYXAodiA9PiBCb29sZWFuKHYuRkxPV19FTkdJTkUpKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzU3RhdGVmdWwoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5mbG93Py5wcm9wZXJ0aWVzLnN0YXRlZnVsO1xuICB9XG5cbiAgcHVibGljIHJlc2V0KCk6IHZvaWQge1xuICAgIHRoaXMuZmxvd1N1YmokLm5leHQobnVsbCk7XG4gICAgdGhpcy50ZW1wbGF0ZXNTdWJqJC5uZXh0KHt9KTtcbiAgICB0aGlzLmNvbnRleHRTdWJqJC5uZXh0KG51bGwpO1xuICB9XG5cbiAgcHVibGljIGluaXQkKGZsb3dJZDogc3RyaW5nLCByb3V0ZVF1ZXJ5UGFyYW1zOiBQYXJhbXMpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5pbml0RmxvdyQoZmxvd0lkLCByb3V0ZVF1ZXJ5UGFyYW1zKS5waXBlKHN3aXRjaE1hcCgoKSA9PiB0aGlzLmluaXRGbG93VGVtcGxhdGVzJCgpKSk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlQ29udGV4dCh1cGRhdGU6IFBhcnRpYWw8Rmxvd0NvbnRleHQ+KTogdm9pZCB7XG4gICAgdGhpcy5jb250ZXh0U3ViaiQubmV4dCh7XG4gICAgICAuLi50aGlzLmNvbnRleHQsXG4gICAgICAuLi51cGRhdGUsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGluaXRGbG93JChmbG93SWQ6IHN0cmluZywgcm91dGVRdWVyeVBhcmFtczogUGFyYW1zKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgY29uc3QgZmxvdyA9IHRoaXMucnVudGltZVNldHRpbmdzU2VydmljZS5nZXRDb25maWd1cmF0aW9uU2V0dGluZ3MoKVsnZmxvd3MnXT8uZmluZCgoeyBpZCB9KSA9PiBmbG93SWQgPT09IGlkKTtcbiAgICBpZiAoIWZsb3cpIHtcbiAgICAgIHRoaXMuZmxvd1N1YmokLm5leHQobnVsbCk7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEZsb3cgd2l0aCBmbG93SWQ9JHtmbG93SWR9IGlzIG5vdCBkZWZpbmVkYCk7XG4gICAgfVxuXG4gICAgY29uc3QgaGVhZGVySWQgPSByb3V0ZVF1ZXJ5UGFyYW1zWydoZWFkZXJJZCddO1xuICAgIGlmICh0eXBlb2YgaGVhZGVySWQgIT09ICdzdHJpbmcnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFBsZWFzZSBwcm92aWRlICdoZWFkZXJJZCdgKTtcbiAgICB9XG5cbiAgICBjb25zdCBtb2RlID0gdGhpcy5nZXRGbG93Q29udGV4dE1vZGUoaGVhZGVySWQpO1xuXG4gICAgLy8gUmVzdHJpY3QgaWYgbW9kZSBpcyBub3QgZGVmaW5lZFxuICAgIGlmIChtb2RlID09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTW9kZSBpcyB1bmRlZmluZWQnKTtcbiAgICB9XG5cbiAgICB0aGlzLmNvbnRleHRTdWJqJC5uZXh0KHtcbiAgICAgIC4uLmZsb3cucHJvcGVydGllcy5xdWVyeVBhcmFtcyxcbiAgICAgIC4uLnJvdXRlUXVlcnlQYXJhbXMsXG4gICAgICBtb2RlLFxuICAgIH0gYXMgRmxvd0NvbnRleHQpO1xuXG4gICAgdGhpcy5mbG93U3ViaiQubmV4dChmbG93KTtcbiAgICByZXR1cm4gb2YodW5kZWZpbmVkKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdEZsb3dUZW1wbGF0ZXMkKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiBmb3JrSm9pbihbXG4gICAgICB0aGlzLnRlbXBsYXRlc0FkbWluQXBpU2VydmljZS5mZXRjaFRlbXBsYXRlcyQoKSxcbiAgICAgIHRoaXMuY3VzdG9taXphdGlvblNlcnZpY2U/LmdldFRlbXBsYXRlcz8uKCkgPz8gb2YoW10pLFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoKFt0ZW1wbGF0ZXMsIGxvY2FsVGVtcGxhdGVzXSkgPT4ge1xuICAgICAgICBjb25zdCBuZXdWYWx1ZTogeyBba2V5IGluIFVJVGVtcGxhdGVUeXBlXT86IFVJVGVtcGxhdGUgfSA9IHt9O1xuICAgICAgICBPYmplY3QuZW50cmllcyh7IC4uLnRoaXMuZGVmYXVsdFRlbXBsYXRlcywgLi4uKHRoaXMuZmxvdz8ucHJvcGVydGllcy50ZW1wbGF0ZXMgPz8ge30pIH0pLmZvckVhY2goXG4gICAgICAgICAgKFtrZXksIG5hbWVdKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB0eXBlID0gdGhpcy5yZW1hcFRlbXBsYXRlTmFtZShrZXkpO1xuXG4gICAgICAgICAgICBpZiAodHlwZSkge1xuICAgICAgICAgICAgICBuZXdWYWx1ZVt0eXBlXSA9XG4gICAgICAgICAgICAgICAgbG9jYWxUZW1wbGF0ZXMuZmluZCh0ZW1wbGF0ZSA9PiB0ZW1wbGF0ZS5uYW1lID09PSBuYW1lICYmIHRlbXBsYXRlLnR5cGUgPT09IHR5cGUpID8/XG4gICAgICAgICAgICAgICAgdGVtcGxhdGVzLmZpbmQodGVtcGxhdGUgPT4gdGVtcGxhdGUubmFtZSA9PT0gbmFtZSAmJiB0ZW1wbGF0ZS50eXBlID09PSB0eXBlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMudGVtcGxhdGVzU3ViaiQubmV4dChuZXdWYWx1ZSk7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSByZW1hcFRlbXBsYXRlTmFtZSh0ZW1wbGF0ZVR5cGU6IHN0cmluZyk6IFVJVGVtcGxhdGVUeXBlIHwgdW5kZWZpbmVkIHtcbiAgICBzd2l0Y2ggKHRlbXBsYXRlVHlwZSBhcyBrZXlvZiB0eXBlb2YgdGhpcy5kZWZhdWx0VGVtcGxhdGVzKSB7XG4gICAgICBjYXNlICdmbG93RW5naW5lJzpcbiAgICAgICAgcmV0dXJuIFVJVGVtcGxhdGVUeXBlLkZMT1dfRU5HSU5FO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgc3dpdGNoICh0ZW1wbGF0ZVR5cGUgYXMga2V5b2YgRmxvd1RlbXBsYXRlc01hcCkge1xuICAgICAgY2FzZSAnYXNzZXRzJzpcbiAgICAgIGNhc2UgJ3Nob3BwaW5nQ2FydCc6XG4gICAgICAgIC8vIE5vIHNlcGFyYXRlIEFzc2V0cyB0ZW1wbGF0ZSBhdCB0aGUgbW9tZW50XG4gICAgICAgIHJldHVybiBVSVRlbXBsYXRlVHlwZS5TSE9QUElOR19DQVJUO1xuICAgICAgY2FzZSAnY2F0YWxvZyc6XG4gICAgICAgIHJldHVybiBVSVRlbXBsYXRlVHlwZS5DQVRBTE9HO1xuICAgICAgY2FzZSAnZ3VpZGVkU2VsbGluZyc6XG4gICAgICAgIHJldHVybiBVSVRlbXBsYXRlVHlwZS5HVUlERURfU0VMTElORztcbiAgICAgIGNhc2UgJ2Zsb3dIZWFkZXInOlxuICAgICAgICByZXR1cm4gVUlUZW1wbGF0ZVR5cGUuRkxPV19IRUFERVI7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRGbG93Q29udGV4dE1vZGUoaGVhZGVySWQ6IHN0cmluZyk6IEZsb3dDb250ZXh0TW9kZSB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3Qgb2JqZWN0TmFtZSA9IFNhbGVzZm9yY2VJZFV0aWxzLmdldFNmT2JqZWN0TmFtZUJ5SWQoaGVhZGVySWQpO1xuICAgIGlmICghb2JqZWN0TmFtZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHJldHVybiBvYmplY3ROYW1lLnRvVXBwZXJDYXNlKCkgYXMgRmxvd0NvbnRleHRNb2RlO1xuICB9XG59XG4iXX0=
@@ -1,120 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { PCMApiService } from '@veloceapps/api/v2';
3
- import { map, noop, of, switchMap, tap } from 'rxjs';
4
- import { ConfigurationService } from '../modules/configuration/services/configuration.service';
5
- import { FlowConfigurationService } from '../modules/flow-configuration/services/flow-configuration.service';
6
- import { generateTransactionItem, updateQuantity } from '../utils';
7
- import { FlowInfoService } from './flow-info.service';
8
- import { FlowStateService } from './flow-state.service';
9
- import { SalesTransactionService } from './sales-transaction.service';
10
- import * as i0 from "@angular/core";
11
- import * as i1 from "./flow-info.service";
12
- import * as i2 from "./flow-state.service";
13
- import * as i3 from "../modules/configuration/services/configuration.service";
14
- import * as i4 from "./sales-transaction.service";
15
- import * as i5 from "../modules/flow-configuration/services/flow-configuration.service";
16
- import * as i6 from "@veloceapps/api/v2";
17
- export class FlowStateConfigurationService {
18
- constructor(flowInfoService, flowStateService, configurationService, salesTransactionService, flowConfigurationService, pcmApiService) {
19
- this.flowInfoService = flowInfoService;
20
- this.flowStateService = flowStateService;
21
- this.configurationService = configurationService;
22
- this.salesTransactionService = salesTransactionService;
23
- this.flowConfigurationService = flowConfigurationService;
24
- this.pcmApiService = pcmApiService;
25
- this.pcmCache = {};
26
- }
27
- updateQuantity$(props) {
28
- const allItems = this.salesTransactionService.state?.salesTransaction?.salesTransactionItems ?? [];
29
- const ti = allItems.find(item => item.id === props.id);
30
- if (!ti) {
31
- return of(undefined);
32
- }
33
- return this.getPCMProduct$(ti.productId).pipe(map(pcm => updateQuantity(ti, props.qty, pcm)), switchMap(updatedTi => {
34
- const state = this.salesTransactionService.state;
35
- if (!state) {
36
- return of(undefined);
37
- }
38
- const updatedState = {
39
- ...state,
40
- salesTransaction: {
41
- ...state.salesTransaction,
42
- salesTransactionItems: state.salesTransaction.salesTransactionItems.map(item => {
43
- return updatedTi.id === item.id ? updatedTi : item;
44
- }),
45
- },
46
- };
47
- return this.flowConfigurationService.calculate$(updatedState);
48
- }), switchMap(() => this.flowStateService.executeRequest$({}, true)), map(noop));
49
- }
50
- addToCart$(props) {
51
- let request$;
52
- const stateful = this.flowInfoService.flow?.properties.stateful;
53
- if (stateful) {
54
- const stateId = this.flowStateService.stateId;
55
- if (!stateId) {
56
- request$ = of();
57
- }
58
- else {
59
- // TODO: Implement
60
- request$ = of();
61
- }
62
- }
63
- else {
64
- request$ = this.configureExternal$(props);
65
- }
66
- return request$.pipe(switchMap(() => this.flowStateService.executeRequest$({}, true)), map(noop));
67
- }
68
- configureExternal$(props) {
69
- return this.getPCMProduct$(props.productId).pipe(switchMap(pcm => {
70
- const { state } = this.salesTransactionService;
71
- if (!state) {
72
- return of();
73
- }
74
- const stateToConfigure = {
75
- ...state,
76
- salesTransaction: {
77
- ...state.salesTransaction,
78
- salesTransactionItems: [
79
- {
80
- ...generateTransactionItem(pcm, this.configurationService.state?.salesTransaction.id, props.qty ?? 1),
81
- stiAttributes: Object.entries(props.attributesMap ?? {}).map(([attributeName, value]) => ({
82
- attributeName,
83
- value,
84
- })),
85
- },
86
- ],
87
- },
88
- };
89
- return this.configurationService.justConfigureRequest$(stateToConfigure).pipe(switchMap(configurationResult => {
90
- const state = this.salesTransactionService.state;
91
- const addedProduct = configurationResult.salesTransaction.salesTransactionItems[0];
92
- if (!state || !addedProduct) {
93
- return of();
94
- }
95
- return this.flowConfigurationService.calculate$({
96
- ...state,
97
- salesTransaction: {
98
- ...state.salesTransaction,
99
- salesTransactionItems: [...state.salesTransaction.salesTransactionItems, addedProduct],
100
- },
101
- });
102
- }));
103
- }));
104
- }
105
- getPCMProduct$(productId) {
106
- const cached = this.pcmCache[productId];
107
- if (cached) {
108
- return of(cached);
109
- }
110
- return this.pcmApiService
111
- .fetchPCMByProductId(productId)
112
- .pipe(tap(pcmProduct => (this.pcmCache[productId] = pcmProduct)));
113
- }
114
- }
115
- FlowStateConfigurationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FlowStateConfigurationService, deps: [{ token: i1.FlowInfoService }, { token: i2.FlowStateService }, { token: i3.ConfigurationService }, { token: i4.SalesTransactionService }, { token: i5.FlowConfigurationService }, { token: i6.PCMApiService }], target: i0.ɵɵFactoryTarget.Injectable });
116
- FlowStateConfigurationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FlowStateConfigurationService });
117
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FlowStateConfigurationService, decorators: [{
118
- type: Injectable
119
- }], ctorParameters: function () { return [{ type: i1.FlowInfoService }, { type: i2.FlowStateService }, { type: i3.ConfigurationService }, { type: i4.SalesTransactionService }, { type: i5.FlowConfigurationService }, { type: i6.PCMApiService }]; } });
120
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvdy1zdGF0ZS1jb25maWd1cmF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jb3JlL3NlcnZpY2VzL2Zsb3ctc3RhdGUtY29uZmlndXJhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBR25ELE9BQU8sRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFjLEVBQUUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBRS9GLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG1FQUFtRSxDQUFDO0FBQzdHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxjQUFjLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7Ozs7OztBQUd0RSxNQUFNLE9BQU8sNkJBQTZCO0lBR3hDLFlBQ1UsZUFBZ0MsRUFDaEMsZ0JBQWtDLEVBQ2xDLG9CQUEwQyxFQUMxQyx1QkFBZ0QsRUFDaEQsd0JBQWtELEVBQ2xELGFBQTRCO1FBTDVCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFDMUMsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUF5QjtRQUNoRCw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBQ2xE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LEVBQUU7d0JBQ2hCLEdBQUcsS0FBSyxDQUFDLGdCQUFnQjt3QkFDekIscUJBQXFCLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxxQkFBcUIsRUFBRSxZQUFZLENBQUM7cUJBQ3ZGO2lCQUNGLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUNILENBQUM7UUFDSixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVPLGNBQWMsQ0FBQyxTQUFpQjtRQUN0QyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3hDLElBQUksTUFBTSxFQUFFO1lBQ1YsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDbkI7UUFFRCxPQUFPLElBQUksQ0FBQyxhQUFhO2FBQ3RCLG1CQUFtQixDQUFDLFNBQVMsQ0FBQzthQUM5QixJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0RSxDQUFDOzswSEF6SFUsNkJBQTZCOzhIQUE3Qiw2QkFBNkI7MkZBQTdCLDZCQUE2QjtrQkFEekMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFBDTUFwaVNlcnZpY2UgfSBmcm9tICdAdmVsb2NlYXBwcy9hcGkvdjInO1xuaW1wb3J0IHsgUENNUHJvZHVjdCwgU2FsZXNUcmFuc2FjdGlvbkl0ZW1BdHRyaWJ1dGUsIFRyYW5zYWN0aW9uQ29udGV4dCB9IGZyb20gJ0B2ZWxvY2VhcHBzL2NvcmUnO1xuaW1wb3J0IHsgRGljdGlvbmFyeSB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBtYXAsIG5vb3AsIE9ic2VydmFibGUsIG9mLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ29uZmlndXJhdGlvblNlcnZpY2UgfSBmcm9tICcuLi9tb2R1bGVzL2NvbmZpZ3VyYXRpb24vc2VydmljZXMvY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IE5ld0NvbmZpZ3VyYXRpb25Qcm9wcywgUXVhbnRpdHlDaGFuZ2VQcm9wcyB9IGZyb20gJy4uL21vZHVsZXMvY29uZmlndXJhdGlvbi90eXBlcy9jb25maWd1cmF0aW9uLnR5cGVzJztcbmltcG9ydCB7IEZsb3dDb25maWd1cmF0aW9uU2VydmljZSB9IGZyb20gJy4uL21vZHVsZXMvZmxvdy1jb25maWd1cmF0aW9uL3NlcnZpY2VzL2Zsb3ctY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IGdlbmVyYXRlVHJhbnNhY3Rpb25JdGVtLCB1cGRhdGVRdWFudGl0eSB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IEZsb3dJbmZvU2VydmljZSB9IGZyb20gJy4vZmxvdy1pbmZvLnNlcnZpY2UnO1xuaW1wb3J0IHsgRmxvd1N0YXRlU2VydmljZSB9IGZyb20gJy4vZmxvdy1zdGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IFNhbGVzVHJhbnNhY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi9zYWxlcy10cmFuc2FjdGlvbi5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEZsb3dTdGF0ZUNvbmZpZ3VyYXRpb25TZXJ2aWNlIHtcbiAgcHJpdmF0ZSBwY21DYWNoZTogRGljdGlvbmFyeTxQQ01Qcm9kdWN0PiA9IHt9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZmxvd0luZm9TZXJ2aWNlOiBGbG93SW5mb1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBmbG93U3RhdGVTZXJ2aWNlOiBGbG93U3RhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29uZmlndXJhdGlvblNlcnZpY2U6IENvbmZpZ3VyYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgc2FsZXNUcmFuc2FjdGlvblNlcnZpY2U6IFNhbGVzVHJhbnNhY3Rpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgZmxvd0NvbmZpZ3VyYXRpb25TZXJ2aWNlOiBGbG93Q29uZmlndXJhdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwY21BcGlTZXJ2aWNlOiBQQ01BcGlTZXJ2aWNlLFxuICApIHt9XG5cbiAgcHVibGljIHVwZGF0ZVF1YW50aXR5JChwcm9wczogUXVhbnRpdHlDaGFuZ2VQcm9wcyk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIGNvbnN0IGFsbEl0ZW1zID0gdGhpcy5zYWxlc1RyYW5zYWN0aW9uU2VydmljZS5zdGF0ZT8uc2FsZXNUcmFuc2FjdGlvbj8uc2FsZXNUcmFuc2FjdGlvbkl0ZW1zID8/IFtdO1xuICAgIGNvbnN0IHRpID0gYWxsSXRlbXMuZmluZChpdGVtID0+IGl0ZW0uaWQgPT09IHByb3BzLmlkKTtcblxuICAgIGlmICghdGkpIHtcbiAgICAgIHJldHVybiBvZih1bmRlZmluZWQpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmdldFBDTVByb2R1Y3QkKHRpLnByb2R1Y3RJZCkucGlwZShcbiAgICAgIG1hcChwY20gPT4gdXBkYXRlUXVhbnRpdHkodGksIHByb3BzLnF0eSwgcGNtKSksXG4gICAgICBzd2l0Y2hNYXAodXBkYXRlZFRpID0+IHtcbiAgICAgICAgY29uc3Qgc3RhdGUgPSB0aGlzLnNhbGVzVHJhbnNhY3Rpb25TZXJ2aWNlLnN0YXRlO1xuXG4gICAgICAgIGlmICghc3RhdGUpIHtcbiAgICAgICAgICByZXR1cm4gb2YodW5kZWZpbmVkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHVwZGF0ZWRTdGF0ZTogVHJhbnNhY3Rpb25Db250ZXh0ID0ge1xuICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgIHNhbGVzVHJhbnNhY3Rpb246IHtcbiAgICAgICAgICAgIC4uLnN0YXRlLnNhbGVzVHJhbnNhY3Rpb24sXG4gICAgICAgICAgICBzYWxlc1RyYW5zYWN0aW9uSXRlbXM6IHN0YXRlLnNhbGVzVHJhbnNhY3Rpb24uc2FsZXNUcmFuc2FjdGlvbkl0ZW1zLm1hcChpdGVtID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIHVwZGF0ZWRUaS5pZCA9PT0gaXRlbS5pZCA/IHVwZGF0ZWRUaSA6IGl0ZW07XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICB9LFxuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiB0aGlzLmZsb3dDb25maWd1cmF0aW9uU2VydmljZS5jYWxjdWxhdGUkKHVwZGF0ZWRTdGF0ZSk7XG4gICAgICB9KSxcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLmZsb3dTdGF0ZVNlcnZpY2UuZXhlY3V0ZVJlcXVlc3QkKHt9LCB0cnVlKSksXG4gICAgICBtYXAobm9vcCksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRUb0NhcnQkKHByb3BzOiBOZXdDb25maWd1cmF0aW9uUHJvcHMpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICBsZXQgcmVxdWVzdCQ6IE9ic2VydmFibGU8dW5rbm93bj47XG4gICAgY29uc3Qgc3RhdGVmdWwgPSB0aGlzLmZsb3dJbmZvU2VydmljZS5mbG93Py5wcm9wZXJ0aWVzLnN0YXRlZnVsO1xuICAgIGlmIChzdGF0ZWZ1bCkge1xuICAgICAgY29uc3Qgc3RhdGVJZCA9IHRoaXMuZmxvd1N0YXRlU2VydmljZS5zdGF0ZUlkO1xuICAgICAgaWYgKCFzdGF0ZUlkKSB7XG4gICAgICAgIHJlcXVlc3QkID0gb2YoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFRPRE86IEltcGxlbWVudFxuICAgICAgICByZXF1ZXN0JCA9IG9mKCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlcXVlc3QkID0gdGhpcy5jb25maWd1cmVFeHRlcm5hbCQocHJvcHMpO1xuICAgIH1cblxuICAgIHJldHVybiByZXF1ZXN0JC5waXBlKFxuICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuZmxvd1N0YXRlU2VydmljZS5leGVjdXRlUmVxdWVzdCQoe30sIHRydWUpKSxcbiAgICAgIG1hcChub29wKSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBjb25maWd1cmVFeHRlcm5hbCQocHJvcHM6IE5ld0NvbmZpZ3VyYXRpb25Qcm9wcyk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmdldFBDTVByb2R1Y3QkKHByb3BzLnByb2R1Y3RJZCkucGlwZShcbiAgICAgIHN3aXRjaE1hcChwY20gPT4ge1xuICAgICAgICBjb25zdCB7IHN0YXRlIH0gPSB0aGlzLnNhbGVzVHJhbnNhY3Rpb25TZXJ2aWNlO1xuICAgICAgICBpZiAoIXN0YXRlKSB7XG4gICAgICAgICAgcmV0dXJuIG9mKCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzdGF0ZVRvQ29uZmlndXJlOiBUcmFuc2FjdGlvbkNvbnRleHQgPSB7XG4gICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgc2FsZXNUcmFuc2FjdGlvbjoge1xuICAgICAgICAgICAgLi4uc3RhdGUuc2FsZXNUcmFuc2FjdGlvbixcbiAgICAgICAgICAgIHNhbGVzVHJhbnNhY3Rpb25JdGVtczogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgLi4uZ2VuZXJhdGVUcmFuc2FjdGlvbkl0ZW0ocGNtLCB0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlLnN0YXRlPy5zYWxlc1RyYW5zYWN0aW9uLmlkLCBwcm9wcy5xdHkgPz8gMSksXG4gICAgICAgICAgICAgICAgc3RpQXR0cmlidXRlczogT2JqZWN0LmVudHJpZXMocHJvcHMuYXR0cmlidXRlc01hcCA/PyB7fSkubWFwKChbYXR0cmlidXRlTmFtZSwgdmFsdWVdKSA9PiAoe1xuICAgICAgICAgICAgICAgICAgYXR0cmlidXRlTmFtZSxcbiAgICAgICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICAgIH0pKSBhcyBTYWxlc1RyYW5zYWN0aW9uSXRlbUF0dHJpYnV0ZVtdLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiB0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlLmp1c3RDb25maWd1cmVSZXF1ZXN0JChzdGF0ZVRvQ29uZmlndXJlKS5waXBlKFxuICAgICAgICAgIHN3aXRjaE1hcChjb25maWd1cmF0aW9uUmVzdWx0ID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHN0YXRlID0gdGhpcy5zYWxlc1RyYW5zYWN0aW9uU2VydmljZS5zdGF0ZTtcbiAgICAgICAgICAgIGNvbnN0IGFkZGVkUHJvZHVjdCA9IGNvbmZpZ3VyYXRpb25SZXN1bHQuc2FsZXNUcmFuc2FjdGlvbi5zYWxlc1RyYW5zYWN0aW9uSXRlbXNbMF07XG4gICAgICAgICAgICBpZiAoIXN0YXRlIHx8ICFhZGRlZFByb2R1Y3QpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG9mKCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB0aGlzLmZsb3dDb25maWd1cmF0aW9uU2VydmljZS5jYWxjdWxhdGUkKHtcbiAgICAgICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgICAgIHNhbGVzVHJhbnNhY3Rpb246IHtcbiAgICAgICAgICAgICAgICAuLi5zdGF0ZS5zYWxlc1RyYW5zYWN0aW9uLFxuICAgICAgICAgICAgICAgIHNhbGVzVHJhbnNhY3Rpb25JdGVtczogWy4uLnN0YXRlLnNhbGVzVHJhbnNhY3Rpb24uc2FsZXNUcmFuc2FjdGlvbkl0ZW1zLCBhZGRlZFByb2R1Y3RdLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSksXG4gICAgICAgICk7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRQQ01Qcm9kdWN0JChwcm9kdWN0SWQ6IHN0cmluZyk6IE9ic2VydmFibGU8UENNUHJvZHVjdD4ge1xuICAgIGNvbnN0IGNhY2hlZCA9IHRoaXMucGNtQ2FjaGVbcHJvZHVjdElkXTtcbiAgICBpZiAoY2FjaGVkKSB7XG4gICAgICByZXR1cm4gb2YoY2FjaGVkKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5wY21BcGlTZXJ2aWNlXG4gICAgICAuZmV0Y2hQQ01CeVByb2R1Y3RJZChwcm9kdWN0SWQpXG4gICAgICAucGlwZSh0YXAocGNtUHJvZHVjdCA9PiAodGhpcy5wY21DYWNoZVtwcm9kdWN0SWRdID0gcGNtUHJvZHVjdCkpKTtcbiAgfVxufVxuIl19