@veloceapps/sdk 8.0.0-18 → 8.0.0-180

Sign up to get free protection for your applications and to get access to all the features.
Files changed (312) hide show
  1. package/README.md +0 -1
  2. package/cms/README.md +0 -20
  3. package/cms/cms.actions.d.ts +7 -1
  4. package/cms/components/preview/preview.component.d.ts +2 -3
  5. package/cms/components/preview/preview.types.d.ts +4 -0
  6. package/cms/index.d.ts +1 -0
  7. package/cms/modules/runtime/services/runtime.service.d.ts +1 -1
  8. package/cms/services/index.d.ts +0 -1
  9. package/cms/services/resources.service.d.ts +2 -0
  10. package/cms/types/index.d.ts +0 -1
  11. package/cms/utils/element-metadata-worker.d.ts +11 -0
  12. package/cms/utils/elements-resolver.d.ts +0 -2
  13. package/cms/utils/index.d.ts +3 -0
  14. package/cms/utils/transpilation-worker.d.ts +13 -0
  15. package/cms/vendor-map.d.ts +26 -15
  16. package/core/README.md +20 -0
  17. package/core/modules/configuration/configuration.module.d.ts +2 -1
  18. package/core/modules/configuration/helpers.d.ts +4 -3
  19. package/core/modules/configuration/index.d.ts +1 -1
  20. package/core/modules/configuration/services/configuration-runtime.service.d.ts +1 -1
  21. package/core/modules/configuration/services/configuration-state.service.d.ts +51 -0
  22. package/core/modules/configuration/services/configuration.service.d.ts +10 -5
  23. package/core/modules/configuration/types/configuration.types.d.ts +4 -0
  24. package/core/modules/flow-configuration/flow-configuration.module.d.ts +2 -1
  25. package/core/modules/flow-configuration/services/flow-configuration.service.d.ts +5 -0
  26. package/core/pipes/action-code.pipe.d.ts +8 -0
  27. package/core/pipes/date.pipe.d.ts +2 -1
  28. package/core/pipes/index.d.ts +1 -0
  29. package/core/pipes/pipes.module.d.ts +2 -1
  30. package/core/services/context.service.d.ts +4 -0
  31. package/core/services/flow-info.service.d.ts +29 -0
  32. package/core/services/flow-state-configuration.service.d.ts +19 -0
  33. package/core/services/flow-state.service.d.ts +79 -0
  34. package/core/services/index.d.ts +4 -1
  35. package/core/services/quote-draft.service.d.ts +8 -1
  36. package/core/services/runtime-settings.service.d.ts +4 -1
  37. package/core/types/flow-customization.types.d.ts +22 -0
  38. package/core/types/flow-state.types.d.ts +6 -0
  39. package/core/types/formatting-settings.types.d.ts +2 -0
  40. package/core/types/index.d.ts +3 -0
  41. package/{cms → core}/types/integration.types.d.ts +1 -0
  42. package/core/types/pipe.types.d.ts +1 -0
  43. package/core/utils/line-item.utils.d.ts +0 -1
  44. package/esm2020/cms/cms.actions.mjs +15 -1
  45. package/esm2020/cms/components/element-renderer/element-renderer.component.mjs +3 -3
  46. package/esm2020/cms/components/element-tools-panel/element-tools-panel.component.mjs +3 -3
  47. package/esm2020/cms/components/preview/preview.component.mjs +10 -10
  48. package/esm2020/cms/components/preview/preview.module.mjs +2 -2
  49. package/esm2020/cms/components/preview/preview.types.mjs +1 -1
  50. package/esm2020/cms/index.mjs +2 -1
  51. package/esm2020/cms/launcher.module.mjs +4 -4
  52. package/esm2020/cms/modules/migrations/migrations.mjs +2 -2
  53. package/esm2020/cms/modules/migrations/services/migrations.service.mjs +6 -2
  54. package/esm2020/cms/modules/runtime/services/compilation.service.mjs +11 -7
  55. package/esm2020/cms/modules/runtime/services/runtime.service.mjs +4 -4
  56. package/esm2020/cms/plugins/configuration.plugin.mjs +8 -4
  57. package/esm2020/cms/services/index.mjs +1 -2
  58. package/esm2020/cms/services/io-provider.service.mjs +10 -9
  59. package/esm2020/cms/services/resources.service.mjs +10 -6
  60. package/esm2020/cms/services/templates.service.mjs +10 -9
  61. package/esm2020/cms/types/index.mjs +1 -2
  62. package/esm2020/cms/utils/element-metadata-worker.mjs +31 -0
  63. package/esm2020/cms/utils/elements-resolver.mjs +14 -28
  64. package/esm2020/cms/utils/index.mjs +4 -1
  65. package/esm2020/cms/utils/path.utils.mjs +3 -3
  66. package/esm2020/cms/utils/script.utils.mjs +19 -15
  67. package/esm2020/cms/utils/transpilation-worker.mjs +52 -0
  68. package/esm2020/cms/vendor-map.mjs +18 -6
  69. package/esm2020/core/core.module.mjs +12 -5
  70. package/esm2020/core/modules/configuration/configuration.module.mjs +7 -23
  71. package/esm2020/core/modules/configuration/helpers.mjs +28 -3
  72. package/esm2020/core/modules/configuration/index.mjs +2 -2
  73. package/esm2020/core/modules/configuration/services/configuration-runtime.service.mjs +8 -11
  74. package/esm2020/core/modules/configuration/services/configuration-state.service.mjs +304 -0
  75. package/esm2020/core/modules/configuration/services/configuration.service.mjs +68 -45
  76. package/esm2020/core/modules/configuration/services/runtime-context.service.mjs +6 -6
  77. package/esm2020/core/modules/configuration/types/configuration.types.mjs +1 -1
  78. package/esm2020/core/modules/flow-configuration/flow-configuration.module.mjs +6 -6
  79. package/esm2020/core/modules/flow-configuration/services/flow-configuration.service.mjs +10 -7
  80. package/esm2020/core/pipes/action-code.pipe.mjs +20 -0
  81. package/esm2020/core/pipes/date.pipe.mjs +10 -4
  82. package/esm2020/core/pipes/index.mjs +2 -1
  83. package/esm2020/core/pipes/pipes.module.mjs +5 -4
  84. package/esm2020/core/services/context.service.mjs +32 -5
  85. package/esm2020/core/services/flow-info.service.mjs +99 -0
  86. package/esm2020/core/services/flow-state-configuration.service.mjs +53 -0
  87. package/esm2020/core/services/flow-state.service.mjs +506 -0
  88. package/esm2020/core/services/index.mjs +5 -2
  89. package/esm2020/core/services/integration.state.mjs +36 -0
  90. package/esm2020/core/services/product-images.service.mjs +4 -5
  91. package/esm2020/core/services/quote-draft.service.mjs +32 -8
  92. package/esm2020/core/services/runtime-settings.service.mjs +19 -5
  93. package/esm2020/core/types/flow-customization.types.mjs +3 -0
  94. package/esm2020/core/types/flow-state.types.mjs +2 -0
  95. package/esm2020/core/types/formatting-settings.types.mjs +1 -1
  96. package/esm2020/core/types/index.mjs +4 -1
  97. package/esm2020/core/types/integration.types.mjs +2 -0
  98. package/esm2020/core/types/pipe.types.mjs +2 -0
  99. package/esm2020/core/utils/line-item.utils.mjs +30 -15
  100. package/esm2020/src/components/doc-gen/doc-gen.component.mjs +49 -49
  101. package/esm2020/src/components/flow-header/flow-header.component.mjs +108 -0
  102. package/esm2020/src/components/flow-header/flow-header.module.mjs +19 -0
  103. package/esm2020/src/components/flow-header/index.mjs +2 -0
  104. package/esm2020/src/components/guided-selling/guided-selling.component.mjs +37 -43
  105. package/esm2020/src/configure-primeng.mjs +33 -0
  106. package/esm2020/src/flow-routing.module.mjs +62 -71
  107. package/esm2020/src/flow.component.mjs +23 -32
  108. package/esm2020/src/flow.module.mjs +7 -5
  109. package/esm2020/src/guards/context.guard.mjs +6 -11
  110. package/esm2020/src/guards/flow.guard.mjs +37 -0
  111. package/esm2020/src/guards/product-unload.guard.mjs +4 -1
  112. package/esm2020/src/guards/root.guard.mjs +14 -10
  113. package/esm2020/src/pages/assets/assets.component.mjs +33 -37
  114. package/esm2020/src/pages/catalog/catalog.component.mjs +33 -37
  115. package/esm2020/src/pages/debug/debug.component.mjs +10 -14
  116. package/esm2020/src/pages/product/product.component.mjs +22 -12
  117. package/esm2020/src/pages/record-not-found/record-not-found.component.mjs +6 -3
  118. package/esm2020/src/pages/remote/remote.component.mjs +19 -19
  119. package/esm2020/src/pages/shopping-cart/shopping-cart.component.mjs +34 -38
  120. package/esm2020/src/resolvers/flow.resolver.mjs +37 -49
  121. package/esm2020/src/resolvers/quote.resolver.mjs +55 -63
  122. package/esm2020/src/services/doc-gen.service.mjs +4 -3
  123. package/esm2020/src/services/flow-dialog.service.mjs +21 -6
  124. package/esm2020/src/services/flow-router.service.mjs +57 -16
  125. package/esm2020/src/services/flow.service.mjs +72 -23
  126. package/esm2020/src/services/guided-selling.service.mjs +5 -4
  127. package/esm2020/src/services/index.mjs +3 -1
  128. package/esm2020/src/types/index.mjs +1 -2
  129. package/esm2020/src/utils/flow.utils.mjs +6 -2
  130. package/fesm2015/veloceapps-sdk-cms.mjs +287 -195
  131. package/fesm2015/veloceapps-sdk-cms.mjs.map +1 -1
  132. package/fesm2015/veloceapps-sdk-core.mjs +1595 -728
  133. package/fesm2015/veloceapps-sdk-core.mjs.map +1 -1
  134. package/fesm2015/veloceapps-sdk.mjs +740 -1451
  135. package/fesm2015/veloceapps-sdk.mjs.map +1 -1
  136. package/fesm2020/veloceapps-sdk-cms.mjs +291 -209
  137. package/fesm2020/veloceapps-sdk-cms.mjs.map +1 -1
  138. package/fesm2020/veloceapps-sdk-core.mjs +1741 -910
  139. package/fesm2020/veloceapps-sdk-core.mjs.map +1 -1
  140. package/fesm2020/veloceapps-sdk.mjs +802 -1511
  141. package/fesm2020/veloceapps-sdk.mjs.map +1 -1
  142. package/package.json +5 -12
  143. package/src/components/doc-gen/doc-gen.component.d.ts +8 -9
  144. package/src/components/flow-header/flow-header.component.d.ts +25 -0
  145. package/src/components/flow-header/flow-header.module.d.ts +9 -0
  146. package/src/components/flow-header/index.d.ts +1 -0
  147. package/src/components/guided-selling/guided-selling.component.d.ts +6 -8
  148. package/src/configure-primeng.d.ts +1 -0
  149. package/src/flow-routing.module.d.ts +6 -7
  150. package/src/flow.component.d.ts +7 -11
  151. package/src/flow.module.d.ts +2 -2
  152. package/src/guards/context.guard.d.ts +4 -5
  153. package/src/guards/flow.guard.d.ts +2 -0
  154. package/src/guards/product-unload.guard.d.ts +2 -2
  155. package/src/guards/root.guard.d.ts +0 -1
  156. package/src/pages/assets/assets.component.d.ts +5 -7
  157. package/src/pages/catalog/catalog.component.d.ts +5 -7
  158. package/src/pages/debug/debug.component.d.ts +5 -8
  159. package/src/pages/product/product.component.d.ts +7 -6
  160. package/src/pages/record-not-found/record-not-found.component.d.ts +2 -0
  161. package/src/pages/remote/remote.component.d.ts +2 -3
  162. package/src/pages/shopping-cart/shopping-cart.component.d.ts +5 -7
  163. package/src/resolvers/flow.resolver.d.ts +6 -7
  164. package/src/resolvers/quote.resolver.d.ts +7 -12
  165. package/src/services/doc-gen.service.d.ts +1 -1
  166. package/src/services/flow-dialog.service.d.ts +5 -2
  167. package/src/services/flow-router.service.d.ts +7 -3
  168. package/src/services/flow.service.d.ts +10 -4
  169. package/src/services/guided-selling.service.d.ts +1 -1
  170. package/src/services/index.d.ts +2 -0
  171. package/src/types/index.d.ts +0 -1
  172. package/core/modules/configuration/services/configuration.state.d.ts +0 -30
  173. package/core/services/metric-calculation/metric-calculation.service.d.ts +0 -25
  174. package/core/services/metric-calculation/metric-calculation.types.d.ts +0 -1
  175. package/core/services/metric-calculation/metric-calculation.utils.d.ts +0 -5
  176. package/esm2020/cms/services/integration.state.mjs +0 -37
  177. package/esm2020/cms/types/integration.types.mjs +0 -2
  178. package/esm2020/core/modules/configuration/services/configuration.state.mjs +0 -142
  179. package/esm2020/core/services/metric-calculation/metric-calculation.service.mjs +0 -85
  180. package/esm2020/core/services/metric-calculation/metric-calculation.types.mjs +0 -2
  181. package/esm2020/core/services/metric-calculation/metric-calculation.utils.mjs +0 -42
  182. package/esm2020/runtime/components/component-preview/component-preview.component.mjs +0 -125
  183. package/esm2020/runtime/components/index.mjs +0 -5
  184. package/esm2020/runtime/components/section-renderer/section-renderer.component.mjs +0 -67
  185. package/esm2020/runtime/components/ui-runtime/runtime.component.mjs +0 -440
  186. package/esm2020/runtime/components/ui-runtime-preview/runtime-preview.component.mjs +0 -108
  187. package/esm2020/runtime/execution/components/children-placeholder/children-placeholder.component.mjs +0 -60
  188. package/esm2020/runtime/execution/components/context-provider/context-provider.component.mjs +0 -39
  189. package/esm2020/runtime/execution/components/execution-section-renderer/execution-section-renderer.component.mjs +0 -67
  190. package/esm2020/runtime/execution/components/federated/federated.component.mjs +0 -74
  191. package/esm2020/runtime/execution/components/velo-attribute/velo-attribute.component.mjs +0 -60
  192. package/esm2020/runtime/execution/components/velo-multiselect/velo-multiselect.component.mjs +0 -130
  193. package/esm2020/runtime/execution/components/velo-port-checkbox/velo-port-checkbox.component.mjs +0 -72
  194. package/esm2020/runtime/execution/components/velo-port-dropdown/velo-port-dropdown.component.mjs +0 -97
  195. package/esm2020/runtime/execution/components/velo-port-radio/velo-port-radio.component.mjs +0 -142
  196. package/esm2020/runtime/execution/components/velo-type/velo-type.component.mjs +0 -119
  197. package/esm2020/runtime/execution/directives/section-script.directive.mjs +0 -247
  198. package/esm2020/runtime/execution/directives/sf-query.directive.mjs +0 -35
  199. package/esm2020/runtime/execution/directives/velo-attribute.directive.mjs +0 -88
  200. package/esm2020/runtime/execution/directives/velo-port.directive.mjs +0 -376
  201. package/esm2020/runtime/execution/directives/vl-approval.directive.mjs +0 -23
  202. package/esm2020/runtime/execution/directives/vl-document-attachments.directive.mjs +0 -36
  203. package/esm2020/runtime/execution/directives/vl-document-templates.directive.mjs +0 -60
  204. package/esm2020/runtime/execution/directives/vl-quote.directive.mjs +0 -42
  205. package/esm2020/runtime/execution/directives/vl-ramp.directive.mjs +0 -55
  206. package/esm2020/runtime/execution/runtime-execution.module.mjs +0 -133
  207. package/esm2020/runtime/execution/utils/federated.util.mjs +0 -32
  208. package/esm2020/runtime/index.mjs +0 -5
  209. package/esm2020/runtime/runtime.module.mjs +0 -74
  210. package/esm2020/runtime/services/cart.service.mjs +0 -29
  211. package/esm2020/runtime/services/collapsible-state.service.mjs +0 -34
  212. package/esm2020/runtime/services/configuration.service.mjs +0 -119
  213. package/esm2020/runtime/services/current-state.service.mjs +0 -17
  214. package/esm2020/runtime/services/form-scope.service.mjs +0 -30
  215. package/esm2020/runtime/services/index.mjs +0 -4
  216. package/esm2020/runtime/services/product-model-cache.service.mjs +0 -31
  217. package/esm2020/runtime/services/runtime-context.service.mjs +0 -60
  218. package/esm2020/runtime/services/runtime-form.service.mjs +0 -219
  219. package/esm2020/runtime/services/runtime.service.mjs +0 -115
  220. package/esm2020/runtime/services/section-helper.service.mjs +0 -27
  221. package/esm2020/runtime/services/section-scope.service.mjs +0 -36
  222. package/esm2020/runtime/services/section-store.service.mjs +0 -22
  223. package/esm2020/runtime/services/section.service.mjs +0 -117
  224. package/esm2020/runtime/types/bound-data.types.mjs +0 -7
  225. package/esm2020/runtime/types/index.mjs +0 -3
  226. package/esm2020/runtime/types/quote-states.types.mjs +0 -2
  227. package/esm2020/runtime/types/runtime.types.mjs +0 -2
  228. package/esm2020/runtime/types/script-registry.types.mjs +0 -51
  229. package/esm2020/runtime/utils/line-item.util.mjs +0 -270
  230. package/esm2020/runtime/utils/section.utils.mjs +0 -26
  231. package/esm2020/runtime/utils/sections-binder.helper.mjs +0 -105
  232. package/esm2020/runtime/veloceapps-sdk-runtime.mjs +0 -5
  233. package/esm2020/src/components/header/cart-overlay/cart-preview.component.mjs +0 -119
  234. package/esm2020/src/components/header/cart-overlay/cart-preview.module.mjs +0 -47
  235. package/esm2020/src/components/header/header.component.mjs +0 -355
  236. package/esm2020/src/components/header/header.module.mjs +0 -52
  237. package/esm2020/src/components/header/header.types.mjs +0 -2
  238. package/esm2020/src/components/header/metrics/index.mjs +0 -2
  239. package/esm2020/src/components/header/metrics/metrics.component.mjs +0 -255
  240. package/esm2020/src/components/header/metrics/metrics.definitions.mjs +0 -2
  241. package/esm2020/src/components/header/metrics/metrics.module.mjs +0 -69
  242. package/esm2020/src/pages/legacy-product/legacy-product.component.mjs +0 -137
  243. package/esm2020/src/pages/legacy-product/legacy-product.module.mjs +0 -19
  244. package/esm2020/src/types/flow-customization.types.mjs +0 -3
  245. package/fesm2015/veloceapps-sdk-runtime.mjs +0 -3770
  246. package/fesm2015/veloceapps-sdk-runtime.mjs.map +0 -1
  247. package/fesm2020/veloceapps-sdk-runtime.mjs +0 -3767
  248. package/fesm2020/veloceapps-sdk-runtime.mjs.map +0 -1
  249. package/runtime/README.md +0 -5
  250. package/runtime/components/component-preview/component-preview.component.d.ts +0 -27
  251. package/runtime/components/index.d.ts +0 -4
  252. package/runtime/components/section-renderer/section-renderer.component.d.ts +0 -25
  253. package/runtime/components/ui-runtime/runtime.component.d.ts +0 -53
  254. package/runtime/components/ui-runtime-preview/runtime-preview.component.d.ts +0 -27
  255. package/runtime/execution/components/children-placeholder/children-placeholder.component.d.ts +0 -30
  256. package/runtime/execution/components/context-provider/context-provider.component.d.ts +0 -14
  257. package/runtime/execution/components/execution-section-renderer/execution-section-renderer.component.d.ts +0 -25
  258. package/runtime/execution/components/federated/federated.component.d.ts +0 -36
  259. package/runtime/execution/components/velo-attribute/velo-attribute.component.d.ts +0 -19
  260. package/runtime/execution/components/velo-multiselect/velo-multiselect.component.d.ts +0 -35
  261. package/runtime/execution/components/velo-port-checkbox/velo-port-checkbox.component.d.ts +0 -22
  262. package/runtime/execution/components/velo-port-dropdown/velo-port-dropdown.component.d.ts +0 -22
  263. package/runtime/execution/components/velo-port-radio/velo-port-radio.component.d.ts +0 -28
  264. package/runtime/execution/components/velo-type/velo-type.component.d.ts +0 -31
  265. package/runtime/execution/directives/section-script.directive.d.ts +0 -59
  266. package/runtime/execution/directives/sf-query.directive.d.ts +0 -15
  267. package/runtime/execution/directives/velo-attribute.directive.d.ts +0 -26
  268. package/runtime/execution/directives/velo-port.directive.d.ts +0 -74
  269. package/runtime/execution/directives/vl-approval.directive.d.ts +0 -10
  270. package/runtime/execution/directives/vl-document-attachments.directive.d.ts +0 -15
  271. package/runtime/execution/directives/vl-document-templates.directive.d.ts +0 -33
  272. package/runtime/execution/directives/vl-quote.directive.d.ts +0 -14
  273. package/runtime/execution/directives/vl-ramp.directive.d.ts +0 -15
  274. package/runtime/execution/runtime-execution.module.d.ts +0 -25
  275. package/runtime/execution/utils/federated.util.d.ts +0 -6
  276. package/runtime/index.d.ts +0 -4
  277. package/runtime/runtime.module.d.ts +0 -16
  278. package/runtime/services/cart.service.d.ts +0 -15
  279. package/runtime/services/collapsible-state.service.d.ts +0 -15
  280. package/runtime/services/configuration.service.d.ts +0 -20
  281. package/runtime/services/current-state.service.d.ts +0 -8
  282. package/runtime/services/form-scope.service.d.ts +0 -20
  283. package/runtime/services/index.d.ts +0 -3
  284. package/runtime/services/product-model-cache.service.d.ts +0 -14
  285. package/runtime/services/runtime-context.service.d.ts +0 -16
  286. package/runtime/services/runtime-form.service.d.ts +0 -24
  287. package/runtime/services/runtime.service.d.ts +0 -44
  288. package/runtime/services/section-helper.service.d.ts +0 -8
  289. package/runtime/services/section-scope.service.d.ts +0 -14
  290. package/runtime/services/section-store.service.d.ts +0 -11
  291. package/runtime/services/section.service.d.ts +0 -30
  292. package/runtime/types/bound-data.types.d.ts +0 -13
  293. package/runtime/types/index.d.ts +0 -2
  294. package/runtime/types/quote-states.types.d.ts +0 -6
  295. package/runtime/types/runtime.types.d.ts +0 -19
  296. package/runtime/types/script-registry.types.d.ts +0 -13
  297. package/runtime/utils/line-item.util.d.ts +0 -34
  298. package/runtime/utils/section.utils.d.ts +0 -2
  299. package/runtime/utils/sections-binder.helper.d.ts +0 -16
  300. package/src/components/header/cart-overlay/cart-preview.component.d.ts +0 -36
  301. package/src/components/header/cart-overlay/cart-preview.module.d.ts +0 -14
  302. package/src/components/header/header.component.d.ts +0 -70
  303. package/src/components/header/header.module.d.ts +0 -16
  304. package/src/components/header/header.types.d.ts +0 -20
  305. package/src/components/header/metrics/index.d.ts +0 -1
  306. package/src/components/header/metrics/metrics.component.d.ts +0 -67
  307. package/src/components/header/metrics/metrics.definitions.d.ts +0 -1
  308. package/src/components/header/metrics/metrics.module.d.ts +0 -18
  309. package/src/pages/legacy-product/legacy-product.component.d.ts +0 -37
  310. package/src/pages/legacy-product/legacy-product.module.d.ts +0 -9
  311. package/src/types/flow-customization.types.d.ts +0 -12
  312. /package/{cms → core}/services/integration.state.d.ts +0 -0
@@ -1,105 +0,0 @@
1
- import { EntityUtil, SectionPathUtil, UUID } from '@veloceapps/core';
2
- import { BoundDataType } from '../types/bound-data.types';
3
- import { LineItemUtil } from './line-item.util';
4
- export class SectionsBinderHelper {
5
- static setLineItemsPath(runtimeModel, rootLineItem, sections, sourceSections, filterFn, pricingEnabled) {
6
- const filtered = sections.filter(filterFn);
7
- filtered.forEach(section => {
8
- const path = section.boundData.path;
9
- let foundLineItems;
10
- if (path.relative) {
11
- foundLineItems = LineItemUtil.findLineItemsByType(runtimeModel, rootLineItem, path.types[0]);
12
- }
13
- else {
14
- const remainder = rootLineItem.path ? SectionPathUtil.cut(runtimeModel, path, rootLineItem.path) : undefined;
15
- if (!remainder) {
16
- return [];
17
- }
18
- foundLineItems = LineItemUtil.findLineItemsByPath(runtimeModel, rootLineItem, remainder);
19
- }
20
- if (section.boundData.entityType === BoundDataType[BoundDataType.TYPE]) {
21
- SectionsBinderHelper.bindMatchingLineItems(runtimeModel, foundLineItems, section, sections, sourceSections, pricingEnabled);
22
- }
23
- else if (section.boundData.entityType === BoundDataType[BoundDataType.ATTRIBUTE]) {
24
- foundLineItems = foundLineItems.filter(item => item.attributes &&
25
- item.attributes.findIndex(a => a.name.toLowerCase() === section.boundData.name.toLowerCase()) !== -1);
26
- foundLineItems.forEach(lineItem => {
27
- SectionsBinderHelper.bindLineItem(section, sections, sourceSections, lineItem, pricingEnabled);
28
- });
29
- }
30
- else if (section.boundData.entityType === BoundDataType[BoundDataType.PORT]) {
31
- foundLineItems = foundLineItems.filter(item => item.portDomains && item.portDomains[section.boundData.name]);
32
- SectionsBinderHelper.bindMatchingLineItems(runtimeModel, foundLineItems, section, sections, sourceSections, pricingEnabled);
33
- }
34
- return;
35
- });
36
- return sections;
37
- }
38
- static isAddAllowed(model, portName, quantityToAdd = 1) {
39
- const quantity = this.getQuantity(model, portName);
40
- return quantity + quantityToAdd <= +this.getPortMax(model, portName);
41
- }
42
- static isRemoveAllowed(model, portName, quantityToRemove = 1) {
43
- const quantity = this.getQuantity(model, portName);
44
- return quantity - quantityToRemove >= +this.getPortMin(model, portName);
45
- }
46
- static getMaxAllowed(lineItem, portName) {
47
- return +this.getPortMax(lineItem, portName) - this.getQuantity(lineItem, portName);
48
- }
49
- static getQuantityGroupByValue(model, portName) {
50
- const quantities = {};
51
- if (model && portName) {
52
- model.lineItems
53
- .filter(li => li.port === portName)
54
- .forEach(li => {
55
- let quantity = (EntityUtil.isPresent(li.qty) && li.qty) || 1;
56
- if (EntityUtil.isPresent(quantities[li.type])) {
57
- quantity += quantities[li.type];
58
- }
59
- quantities[li.type] = quantity;
60
- });
61
- }
62
- return quantities;
63
- }
64
- static bindMatchingLineItems(runtimeModel, foundLineItems, section, sections, sourceSections, pricingEnabled) {
65
- foundLineItems.forEach(lineItem => {
66
- const boundSection = SectionsBinderHelper.bindLineItem(section, sections, sourceSections, lineItem, pricingEnabled);
67
- SectionsBinderHelper.setLineItemsPath(runtimeModel, lineItem, sections, sourceSections, (sec) => {
68
- return sec.boundData && sec.parentId === boundSection.id;
69
- }, pricingEnabled);
70
- });
71
- }
72
- static bindLineItem(section, sections, sourceSections, lineItem, pricingEnabled) {
73
- const boundSection = section.model ? SectionsBinderHelper.doClone(section, sections, sourceSections) : section;
74
- boundSection.model = lineItem;
75
- boundSection.pricingEnabled = pricingEnabled;
76
- return boundSection;
77
- }
78
- static doClone(source, sections, sourceSections, parent) {
79
- const sourceClass = sourceSections.find(s => s.classId === source.classId);
80
- const clone = EntityUtil.clone(sourceClass);
81
- clone.id = UUID.UUID();
82
- clone.parentId = parent ? parent.id : source.parentId;
83
- sections.splice(sections.findIndex(s => s.id === source.id) + 1, 0, clone);
84
- sourceSections
85
- .filter(s => s.parentId === sourceClass.id)
86
- .forEach(s => SectionsBinderHelper.doClone(s, sections, sourceSections, clone));
87
- return clone;
88
- }
89
- static getQuantity(model, portName) {
90
- let quantity = 0;
91
- model.lineItems
92
- .filter(li => li.port === portName)
93
- .forEach(li => {
94
- quantity += li.qty;
95
- });
96
- return quantity;
97
- }
98
- static getPortMax(model, portName) {
99
- return model.portDomains[portName].maxCard;
100
- }
101
- static getPortMin(model, portName) {
102
- return model.portDomains[portName].minCard;
103
- }
104
- }
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbnMtYmluZGVyLmhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3J1bnRpbWUvdXRpbHMvc2VjdGlvbnMtYmluZGVyLmhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFnRCxlQUFlLEVBQUUsSUFBSSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbkgsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVoRCxNQUFNLE9BQU8sb0JBQW9CO0lBQ3hCLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FDNUIsWUFBMEIsRUFDMUIsWUFBc0IsRUFDdEIsUUFBbUIsRUFDbkIsY0FBeUIsRUFDekIsUUFBYSxFQUNiLGNBQXVCO1FBRXZCLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFM0MsUUFBUSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUN6QixNQUFNLElBQUksR0FBZ0IsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUM7WUFDakQsSUFBSSxjQUEwQixDQUFDO1lBQy9CLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtnQkFDakIsY0FBYyxHQUFHLFlBQVksQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUM5RjtpQkFBTTtnQkFDTCxNQUFNLFNBQVMsR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxJQUFJLEVBQUUsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7Z0JBQzdHLElBQUksQ0FBQyxT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LENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxLQUFLLFdBQVcsQ0FBQyxFQUFFLENBQUM7YUFDMUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFFbEYsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRU8sTUFBTSxDQUFDLFdBQVcsQ0FBQyxLQUFlLEVBQUUsUUFBZ0I7UUFDMUQsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBRWpCLEtBQUssQ0FBQyxTQUFTO2FBQ1osTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxRQUFRLENBQUM7YUFDbEMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQ1osUUFBUSxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUM7UUFDckIsQ0FBQyxDQUFDLENBQUM7UUFFTCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRU8sTUFBTSxDQUFDLFVBQVUsQ0FBQyxLQUFlLEVBQUUsUUFBZ0I7UUFDekQsT0FBTyxLQUFLLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQztJQUM3QyxDQUFDO0lBRU8sTUFBTSxDQUFDLFVBQVUsQ0FBQyxLQUFlLEVBQUUsUUFBZ0I7UUFDekQsT0FBTyxLQUFLLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQztJQUM3QyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnRpdHlVdGlsLCBMaW5lSXRlbSwgUnVudGltZU1vZGVsLCBTZWN0aW9uLCBTZWN0aW9uUGF0aCwgU2VjdGlvblBhdGhVdGlsLCBVVUlEIH0gZnJvbSAnQHZlbG9jZWFwcHMvY29yZSc7XG5pbXBvcnQgeyBCb3VuZERhdGFUeXBlIH0gZnJvbSAnLi4vdHlwZXMvYm91bmQtZGF0YS50eXBlcyc7XG5pbXBvcnQgeyBMaW5lSXRlbVV0aWwgfSBmcm9tICcuL2xpbmUtaXRlbS51dGlsJztcblxuZXhwb3J0IGNsYXNzIFNlY3Rpb25zQmluZGVySGVscGVyIHtcbiAgcHVibGljIHN0YXRpYyBzZXRMaW5lSXRlbXNQYXRoKFxuICAgIHJ1bnRpbWVNb2RlbDogUnVudGltZU1vZGVsLFxuICAgIHJvb3RMaW5lSXRlbTogTGluZUl0ZW0sXG4gICAgc2VjdGlvbnM6IFNlY3Rpb25bXSxcbiAgICBzb3VyY2VTZWN0aW9uczogU2VjdGlvbltdLFxuICAgIGZpbHRlckZuOiBhbnksXG4gICAgcHJpY2luZ0VuYWJsZWQ6IGJvb2xlYW4sXG4gICk6IFNlY3Rpb25bXSB7XG4gICAgY29uc3QgZmlsdGVyZWQgPSBzZWN0aW9ucy5maWx0ZXIoZmlsdGVyRm4pO1xuXG4gICAgZmlsdGVyZWQuZm9yRWFjaChzZWN0aW9uID0+IHtcbiAgICAgIGNvbnN0IHBhdGg6IFNlY3Rpb25QYXRoID0gc2VjdGlvbi5ib3VuZERhdGEucGF0aDtcbiAgICAgIGxldCBmb3VuZExpbmVJdGVtczogTGluZUl0ZW1bXTtcbiAgICAgIGlmIChwYXRoLnJlbGF0aXZlKSB7XG4gICAgICAgIGZvdW5kTGluZUl0ZW1zID0gTGluZUl0ZW1VdGlsLmZpbmRMaW5lSXRlbXNCeVR5cGUocnVudGltZU1vZGVsLCByb290TGluZUl0ZW0sIHBhdGgudHlwZXNbMF0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgcmVtYWluZGVyID0gcm9vdExpbmVJdGVtLnBhdGggPyBTZWN0aW9uUGF0aFV0aWwuY3V0KHJ1bnRpbWVNb2RlbCwgcGF0aCwgcm9vdExpbmVJdGVtLnBhdGgpIDogdW5kZWZpbmVkO1xuICAgICAgICBpZiAoIXJlbWFpbmRlcikge1xuICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuICAgICAgICBmb3VuZExpbmVJdGVtcyA9IExpbmVJdGVtVXRpbC5maW5kTGluZUl0ZW1zQnlQYXRoKHJ1bnRpbWVNb2RlbCwgcm9vdExpbmVJdGVtLCByZW1haW5kZXIpO1xuICAgICAgfVxuXG4gICAgICBpZiAoc2VjdGlvbi5ib3VuZERhdGEuZW50aXR5VHlwZSA9PT0gQm91bmREYXRhVHlwZVtCb3VuZERhdGFUeXBlLlRZUEVdKSB7XG4gICAgICAgIFNlY3Rpb25zQmluZGVySGVscGVyLmJpbmRNYXRjaGluZ0xpbmVJdGVtcyhcbiAgICAgICAgICBydW50aW1lTW9kZWwsXG4gICAgICAgICAgZm91bmRMaW5lSXRlbXMsXG4gICAgICAgICAgc2VjdGlvbixcbiAgICAgICAgICBzZWN0aW9ucyxcbiAgICAgICAgICBzb3VyY2VTZWN0aW9ucyxcbiAgICAgICAgICBwcmljaW5nRW5hYmxlZCxcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSBpZiAoc2VjdGlvbi5ib3VuZERhdGEuZW50aXR5VHlwZSA9PT0gQm91bmREYXRhVHlwZVtCb3VuZERhdGFUeXBlLkFUVFJJQlVURV0pIHtcbiAgICAgICAgZm91bmRMaW5lSXRlbXMgPSBmb3VuZExpbmVJdGVtcy5maWx0ZXIoXG4gICAgICAgICAgaXRlbSA9PlxuICAgICAgICAgICAgaXRlbS5hdHRyaWJ1dGVzICYmXG4gICAgICAgICAgICBpdGVtLmF0dHJpYnV0ZXMuZmluZEluZGV4KGEgPT4gYS5uYW1lLnRvTG93ZXJDYXNlKCkgPT09IHNlY3Rpb24uYm91bmREYXRhLm5hbWUudG9Mb3dlckNhc2UoKSkgIT09IC0xLFxuICAgICAgICApO1xuXG4gICAgICAgIGZvdW5kTGluZUl0ZW1zLmZvckVhY2gobGluZUl0ZW0gPT4ge1xuICAgICAgICAgIFNlY3Rpb25zQmluZGVySGVscGVyLmJpbmRMaW5lSXRlbShzZWN0aW9uLCBzZWN0aW9ucywgc291cmNlU2VjdGlvbnMsIGxpbmVJdGVtLCBwcmljaW5nRW5hYmxlZCk7XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIGlmIChzZWN0aW9uLmJvdW5kRGF0YS5lbnRpdHlUeXBlID09PSBCb3VuZERhdGFUeXBlW0JvdW5kRGF0YVR5cGUuUE9SVF0pIHtcbiAgICAgICAgZm91bmRMaW5lSXRlbXMgPSBmb3VuZExpbmVJdGVtcy5maWx0ZXIoaXRlbSA9PiBpdGVtLnBvcnREb21haW5zICYmIGl0ZW0ucG9ydERvbWFpbnNbc2VjdGlvbi5ib3VuZERhdGEubmFtZV0pO1xuXG4gICAgICAgIFNlY3Rpb25zQmluZGVySGVscGVyLmJpbmRNYXRjaGluZ0xpbmVJdGVtcyhcbiAgICAgICAgICBydW50aW1lTW9kZWwsXG4gICAgICAgICAgZm91bmRMaW5lSXRlbXMsXG4gICAgICAgICAgc2VjdGlvbixcbiAgICAgICAgICBzZWN0aW9ucyxcbiAgICAgICAgICBzb3VyY2VTZWN0aW9ucyxcbiAgICAgICAgICBwcmljaW5nRW5hYmxlZCxcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHNlY3Rpb25zO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBpc0FkZEFsbG93ZWQobW9kZWw6IExpbmVJdGVtLCBwb3J0TmFtZTogc3RyaW5nLCBxdWFudGl0eVRvQWRkOiBudW1iZXIgPSAxKTogYm9vbGVhbiB7XG4gICAgY29uc3QgcXVhbnRpdHkgPSB0aGlzLmdldFF1YW50aXR5KG1vZGVsLCBwb3J0TmFtZSk7XG5cbiAgICByZXR1cm4gcXVhbnRpdHkgKyBxdWFudGl0eVRvQWRkIDw9ICt0aGlzLmdldFBvcnRNYXgobW9kZWwsIHBvcnROYW1lKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgaXNSZW1vdmVBbGxvd2VkKG1vZGVsOiBMaW5lSXRlbSwgcG9ydE5hbWU6IHN0cmluZywgcXVhbnRpdHlUb1JlbW92ZTogbnVtYmVyID0gMSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHF1YW50aXR5ID0gdGhpcy5nZXRRdWFudGl0eShtb2RlbCwgcG9ydE5hbWUpO1xuXG4gICAgcmV0dXJuIHF1YW50aXR5IC0gcXVhbnRpdHlUb1JlbW92ZSA+PSArdGhpcy5nZXRQb3J0TWluKG1vZGVsLCBwb3J0TmFtZSk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGdldE1heEFsbG93ZWQobGluZUl0ZW06IExpbmVJdGVtLCBwb3J0TmFtZTogc3RyaW5nKTogbnVtYmVyIHtcbiAgICByZXR1cm4gK3RoaXMuZ2V0UG9ydE1heChsaW5lSXRlbSwgcG9ydE5hbWUpIC0gdGhpcy5nZXRRdWFudGl0eShsaW5lSXRlbSwgcG9ydE5hbWUpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBnZXRRdWFudGl0eUdyb3VwQnlWYWx1ZShtb2RlbDogTGluZUl0ZW0sIHBvcnROYW1lOiBzdHJpbmcpOiB7IFtpbmRleDogc3RyaW5nXTogbnVtYmVyIH0ge1xuICAgIGNvbnN0IHF1YW50aXRpZXM6IHsgW2luZGV4OiBzdHJpbmddOiBudW1iZXIgfSA9IHt9O1xuXG4gICAgaWYgKG1vZGVsICYmIHBvcnROYW1lKSB7XG4gICAgICBtb2RlbC5saW5lSXRlbXNcbiAgICAgICAgLmZpbHRlcihsaSA9PiBsaS5wb3J0ID09PSBwb3J0TmFtZSlcbiAgICAgICAgLmZvckVhY2gobGkgPT4ge1xuICAgICAgICAgIGxldCBxdWFudGl0eSA9IChFbnRpdHlVdGlsLmlzUHJlc2VudChsaS5xdHkpICYmIGxpLnF0eSkgfHwgMTtcblxuICAgICAgICAgIGlmIChFbnRpdHlVdGlsLmlzUHJlc2VudChxdWFudGl0aWVzW2xpLnR5cGVdKSkge1xuICAgICAgICAgICAgcXVhbnRpdHkgKz0gcXVhbnRpdGllc1tsaS50eXBlXTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBxdWFudGl0aWVzW2xpLnR5cGVdID0gcXVhbnRpdHk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBxdWFudGl0aWVzO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgYmluZE1hdGNoaW5nTGluZUl0ZW1zKFxuICAgIHJ1bnRpbWVNb2RlbDogUnVudGltZU1vZGVsLFxuICAgIGZvdW5kTGluZUl0ZW1zOiBMaW5lSXRlbVtdLFxuICAgIHNlY3Rpb246IFNlY3Rpb24sXG4gICAgc2VjdGlvbnM6IFNlY3Rpb25bXSxcbiAgICBzb3VyY2VTZWN0aW9uczogU2VjdGlvbltdLFxuICAgIHByaWNpbmdFbmFibGVkOiBib29sZWFuLFxuICApOiB2b2lkIHtcbiAgICBmb3VuZExpbmVJdGVtcy5mb3JFYWNoKGxpbmVJdGVtID0+IHtcbiAgICAgIGNvbnN0IGJvdW5kU2VjdGlvbiA9IFNlY3Rpb25zQmluZGVySGVscGVyLmJpbmRMaW5lSXRlbShcbiAgICAgICAgc2VjdGlvbixcbiAgICAgICAgc2VjdGlvbnMsXG4gICAgICAgIHNvdXJjZVNlY3Rpb25zLFxuICAgICAgICBsaW5lSXRlbSxcbiAgICAgICAgcHJpY2luZ0VuYWJsZWQsXG4gICAgICApO1xuXG4gICAgICBTZWN0aW9uc0JpbmRlckhlbHBlci5zZXRMaW5lSXRlbXNQYXRoKFxuICAgICAgICBydW50aW1lTW9kZWwsXG4gICAgICAgIGxpbmVJdGVtLFxuICAgICAgICBzZWN0aW9ucyxcbiAgICAgICAgc291cmNlU2VjdGlvbnMsXG4gICAgICAgIChzZWM6IGFueSkgPT4ge1xuICAgICAgICAgIHJldHVybiBzZWMuYm91bmREYXRhICYmIHNlYy5wYXJlbnRJZCA9PT0gYm91bmRTZWN0aW9uLmlkO1xuICAgICAgICB9LFxuICAgICAgICBwcmljaW5nRW5hYmxlZCxcbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBiaW5kTGluZUl0ZW0oXG4gICAgc2VjdGlvbjogU2VjdGlvbixcbiAgICBzZWN0aW9uczogU2VjdGlvbltdLFxuICAgIHNvdXJjZVNlY3Rpb25zOiBTZWN0aW9uW10sXG4gICAgbGluZUl0ZW06IExpbmVJdGVtLFxuICAgIHByaWNpbmdFbmFibGVkOiBib29sZWFuLFxuICApOiBTZWN0aW9uIHtcbiAgICBjb25zdCBib3VuZFNlY3Rpb24gPSBzZWN0aW9uLm1vZGVsID8gU2VjdGlvbnNCaW5kZXJIZWxwZXIuZG9DbG9uZShzZWN0aW9uLCBzZWN0aW9ucywgc291cmNlU2VjdGlvbnMpIDogc2VjdGlvbjtcblxuICAgIGJvdW5kU2VjdGlvbi5tb2RlbCA9IGxpbmVJdGVtO1xuICAgIGJvdW5kU2VjdGlvbi5wcmljaW5nRW5hYmxlZCA9IHByaWNpbmdFbmFibGVkO1xuXG4gICAgcmV0dXJuIGJvdW5kU2VjdGlvbjtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGRvQ2xvbmUoc291cmNlOiBTZWN0aW9uLCBzZWN0aW9uczogU2VjdGlvbltdLCBzb3VyY2VTZWN0aW9uczogU2VjdGlvbltdLCBwYXJlbnQ/OiBTZWN0aW9uKTogU2VjdGlvbiB7XG4gICAgY29uc3Qgc291cmNlQ2xhc3MgPSBzb3VyY2VTZWN0aW9ucy5maW5kKHMgPT4gcy5jbGFzc0lkID09PSBzb3VyY2UuY2xhc3NJZCkgYXMgU2VjdGlvbjtcblxuICAgIGNvbnN0IGNsb25lID0gRW50aXR5VXRpbC5jbG9uZShzb3VyY2VDbGFzcyk7XG5cbiAgICBjbG9uZS5pZCA9IFVVSUQuVVVJRCgpO1xuICAgIGNsb25lLnBhcmVudElkID0gcGFyZW50ID8gcGFyZW50LmlkIDogc291cmNlLnBhcmVudElkO1xuXG4gICAgc2VjdGlvbnMuc3BsaWNlKHNlY3Rpb25zLmZpbmRJbmRleChzID0+IHMuaWQgPT09IHNvdXJjZS5pZCkgKyAxLCAwLCBjbG9uZSk7XG4gICAgc291cmNlU2VjdGlvbnNcbiAgICAgIC5maWx0ZXIocyA9PiBzLnBhcmVudElkID09PSBzb3VyY2VDbGFzcy5pZClcbiAgICAgIC5mb3JFYWNoKHMgPT4gU2VjdGlvbnNCaW5kZXJIZWxwZXIuZG9DbG9uZShzLCBzZWN0aW9ucywgc291cmNlU2VjdGlvbnMsIGNsb25lKSk7XG5cbiAgICByZXR1cm4gY2xvbmU7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBnZXRRdWFudGl0eShtb2RlbDogTGluZUl0ZW0sIHBvcnROYW1lOiBzdHJpbmcpOiBudW1iZXIge1xuICAgIGxldCBxdWFudGl0eSA9IDA7XG5cbiAgICBtb2RlbC5saW5lSXRlbXNcbiAgICAgIC5maWx0ZXIobGkgPT4gbGkucG9ydCA9PT0gcG9ydE5hbWUpXG4gICAgICAuZm9yRWFjaChsaSA9PiB7XG4gICAgICAgIHF1YW50aXR5ICs9IGxpLnF0eTtcbiAgICAgIH0pO1xuXG4gICAgcmV0dXJuIHF1YW50aXR5O1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgZ2V0UG9ydE1heChtb2RlbDogTGluZUl0ZW0sIHBvcnROYW1lOiBzdHJpbmcpOiBudW1iZXIge1xuICAgIHJldHVybiBtb2RlbC5wb3J0RG9tYWluc1twb3J0TmFtZV0ubWF4Q2FyZDtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGdldFBvcnRNaW4obW9kZWw6IExpbmVJdGVtLCBwb3J0TmFtZTogc3RyaW5nKTogbnVtYmVyIHtcbiAgICByZXR1cm4gbW9kZWwucG9ydERvbWFpbnNbcG9ydE5hbWVdLm1pbkNhcmQ7XG4gIH1cbn1cbiJdfQ==
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './index';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVsb2NlYXBwcy1zZGstcnVudGltZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3J1bnRpbWUvdmVsb2NlYXBwcy1zZGstcnVudGltZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
@@ -1,119 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, Input, ViewChild, } from '@angular/core';
2
- import { FormControl, FormGroup } from '@angular/forms';
3
- import { FlowConfigurationService, ProductImagesService, QuoteDraftService } from '@veloceapps/sdk/core';
4
- import { OverlayPanel } from 'primeng/overlaypanel';
5
- import { BehaviorSubject, Subject, combineLatest, filter, map, takeUntil } from 'rxjs';
6
- import { FlowRouterService } from '../../../services/flow-router.service';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "@veloceapps/sdk/core";
9
- import * as i2 from "../../../services/flow-router.service";
10
- import * as i3 from "@angular/common";
11
- import * as i4 from "@angular/forms";
12
- import * as i5 from "primeng/button";
13
- import * as i6 from "primeng/overlaypanel";
14
- import * as i7 from "primeng/api";
15
- import * as i8 from "@veloceapps/components";
16
- import * as i9 from "primeng/virtualscroller";
17
- export class CartPreviewComponent {
18
- constructor(flowConfiguration, routerService, productImagesService, quoteDraftService) {
19
- this.flowConfiguration = flowConfiguration;
20
- this.routerService = routerService;
21
- this.productImagesService = productImagesService;
22
- this.quoteDraftService = quoteDraftService;
23
- this.productRowHeight = 65;
24
- this.form = new FormGroup({});
25
- this.hasTermInProducts = false;
26
- this.scrollHeight = 0;
27
- this.shouldUpdate$ = new BehaviorSubject(true);
28
- this.destroyed$ = new Subject();
29
- this.lockedProductId$ = combineLatest([this.routerService.route$, this.routerService.isConfigurationRoute$()]).pipe(map(([route, isConfigurationRoute]) => {
30
- if (!isConfigurationRoute) {
31
- return null;
32
- }
33
- return route.queryParams['productId'];
34
- }));
35
- this.isEditMode$ = this.quoteDraftService.isEditMode$();
36
- }
37
- ngOnChanges(changes) {
38
- const { products } = changes;
39
- if (products) {
40
- this.shouldUpdate$.next(true);
41
- this.scrollHeight = Math.min(this.products.length * this.productRowHeight, 460);
42
- }
43
- }
44
- ngAfterViewInit() {
45
- combineLatest([this.lockedProductId$, this.isEditMode$, this.shouldUpdate$, this.overlayPanel.onShow])
46
- .pipe(filter(() => this.overlayPanel.overlayVisible), takeUntil(this.destroyed$))
47
- .subscribe(([lockedProductId, isEditMode]) => this.updateControls(this.products, isEditMode, lockedProductId));
48
- }
49
- ngOnDestroy() {
50
- this.destroyed$.next();
51
- this.destroyed$.complete();
52
- }
53
- getImageUrl(productId) {
54
- return this.productImagesService.getImageUrl$(productId);
55
- }
56
- navigateToProductConfiguration(productId, lineItemId) {
57
- this.overlayPanel.hide();
58
- this.routerService.navigateToProductConfiguration(productId, lineItemId);
59
- }
60
- controlBlurHandler(product) {
61
- const control = this.form.get(product.id);
62
- if (!control || control.invalid) {
63
- return;
64
- }
65
- this.flowConfiguration.update([
66
- {
67
- dataType: 'LINEITEM',
68
- attributeType: 'QTY',
69
- id: product.id,
70
- newValue: control.value,
71
- },
72
- ]);
73
- }
74
- deleteHandler(product) {
75
- this.flowConfiguration.delete([product.id]);
76
- }
77
- deleteAllHandler() {
78
- const productIds = this.products.map(product => product.id);
79
- this.flowConfiguration.delete(productIds);
80
- }
81
- updateControls(products, isEditMode, lockedProductId) {
82
- const ids = [];
83
- products.forEach(item => {
84
- if (!item.id) {
85
- return;
86
- }
87
- ids.push(item.id);
88
- let control = this.form.get(item.id);
89
- if (!control) {
90
- control = new FormControl(item.qty, []);
91
- this.form.addControl(item.id, control);
92
- }
93
- else {
94
- control.setValue(item.qty);
95
- }
96
- if (!isEditMode || item.deleted || item.productId === lockedProductId) {
97
- control.disable();
98
- }
99
- else {
100
- control.enable();
101
- }
102
- });
103
- const removedIds = Object.keys(this.form.controls).filter(id => !ids.includes(id));
104
- removedIds.forEach(id => this.form.removeControl(id));
105
- this.hasTermInProducts = products.some((item) => item.hasTerm);
106
- }
107
- }
108
- CartPreviewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CartPreviewComponent, deps: [{ token: i1.FlowConfigurationService }, { token: i2.FlowRouterService }, { token: i1.ProductImagesService }, { token: i1.QuoteDraftService }], target: i0.ɵɵFactoryTarget.Component });
109
- CartPreviewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: CartPreviewComponent, selector: "vl-cart-preview", inputs: { products: "products" }, viewQueries: [{ propertyName: "overlayPanel", first: true, predicate: OverlayPanel, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<p-overlayPanel\n styleClass=\"catalog-overlay flow-header-overlay center no-padding\"\n showTransitionOptions=\"0ms\"\n hideTransitionOptions=\"0ms\"\n>\n <ng-template pTemplate>\n <div class=\"flow-header-overlay__wrapper\" *vlLet=\"lockedProductId$ | async as lockedProductId\">\n <ng-container *vlLet=\"isEditMode$ | async as isEditMode\">\n <ng-container *ngIf=\"products.length > 0; else empty\">\n <h2 class=\"flow-header-overlay__title\">\n <span>Products ({{ products.length }})</span>\n <i class=\"vl-icon vl-cross close-icon\" (click)=\"overlayPanel.hide()\"></i>\n </h2>\n\n <p-virtualScroller [value]=\"products\" scrollHeight=\"{{ scrollHeight }}px\" [itemSize]=\"productRowHeight\">\n <ng-template pTemplate=\"item\" let-product>\n <div\n class=\"product item\"\n *vlLet=\"!isEditMode || product.deleted as isReadonlyProduct\"\n [class.readonly]=\"isReadonlyProduct\"\n [class.deleted]=\"product.deleted\"\n >\n <ng-container *vlLet=\"lockedProductId === product.productId as isLockedProduct\">\n <div class=\"product__info\">\n <div class=\"product__image-wrapper\">\n <div\n *ngIf=\"getImageUrl(product.productId) | async as imageUrl; else noImage\"\n class=\"product__image\"\n [ngStyle]=\"{ 'background-image': 'url(' + imageUrl + ')' }\"\n ></div>\n </div>\n <div class=\"flex flex-column justify-content-center\">\n <div class=\"word-break product-name\" [class.line-through]=\"product.deleted\">\n {{ product.name }}\n </div>\n <div class=\"actions\" *ngIf=\"!isReadonlyProduct\">\n <p-button\n label=\"Configure\"\n [disabled]=\"isLockedProduct || !product.configurable || product.hasTerm\"\n styleClass=\"p-button-link p-button-sm\"\n (onClick)=\"navigateToProductConfiguration(product.productId, product.id)\"\n ></p-button>\n <p-button\n label=\"Delete\"\n [disabled]=\"isLockedProduct || product.hasTerm\"\n styleClass=\"p-button-link p-button-sm p-button-secondary\"\n (onClick)=\"deleteHandler(product)\"\n ></p-button>\n </div>\n </div>\n </div>\n\n <ng-container *ngIf=\"form.get(product.id) as control\">\n <div class=\"qty\" *ngIf=\"!isReadonlyProduct; else readonlyQty\">\n <vl-quantity-control\n [formControl]=\"$any(control)\"\n (valueChange)=\"controlBlurHandler(product)\"\n ></vl-quantity-control>\n </div>\n <ng-template #readonlyQty\n ><span class=\"text-right\">{{ control.value }}</span></ng-template\n >\n </ng-container>\n </ng-container>\n </div>\n </ng-template>\n </p-virtualScroller>\n\n <ng-template #noImage>\n <i class=\"vl-icon vl-no-image no-image-icon\"></i>\n </ng-template>\n\n <div class=\"flex footer\">\n <p-button\n label=\"Clear Cart\"\n styleClass=\"p-button-link p-button-sm pl-0 pr-0\"\n [disabled]=\"!isEditMode || !!lockedProductId || hasTermInProducts\"\n (onClick)=\"deleteAllHandler()\"\n ></p-button>\n </div>\n </ng-container>\n </ng-container>\n\n <ng-template #empty>\n <h2 class=\"flow-header-overlay__title\">\n <span>Empty Cart</span>\n <i class=\"vl-icon vl-cross close-icon\" (click)=\"overlayPanel.hide()\"></i>\n </h2>\n\n <span class=\"empty-state\">\n <i class=\"vl-icon vl-bag\"></i>\n There are no products added to the Shopping Cart yet.\n </span>\n </ng-template>\n </div>\n </ng-template>\n</p-overlayPanel>\n", styles: ["p-virtualscroller ::ng-deep .p-virtualscroller-header{background:none;padding:0;border:none;font-weight:unset}.flow-header-overlay *{font-family:var(--cg-font-family)}.flow-header-overlay__wrapper{display:flex;flex-direction:column;width:460px;max-height:600px}.flow-header-overlay__wrapper .close-icon{cursor:pointer}.flow-header-overlay__title{display:flex;justify-content:space-between;align-items:center;margin:0 0 8px;font-size:16px;font-style:normal;font-weight:500;line-height:20px}.empty-state{background:var(--cg-bg-color);padding:16px;display:flex;gap:8px;justify-content:center;font-size:12px;font-weight:300;line-height:16px;letter-spacing:.3px}.product{display:grid;grid-template-columns:auto 100px;padding:8px 0;border-bottom:1px solid var(--cg-border-color)}.product.readonly{align-items:center}.product.deleted{opacity:.5}.product.item{height:65px;overflow:hidden}.product__info{display:flex;gap:16px}.product__image-wrapper{flex-shrink:0;height:48px;width:48px;display:flex;justify-content:center;align-items:center;background:var(--cg-bg-color-hover);border-radius:4px}.product__image{background-size:contain;background-repeat:no-repeat;background-position:center;height:calc(100% - 12px);width:calc(100% - 12px)}.product .product-name{margin-bottom:4px;font-size:14px;font-weight:500;line-height:20px}.product .actions{display:flex;gap:16px}.footer{padding-top:8px}.word-break{word-break:break-word}.no-image-icon{height:24px;width:24px}.qty{display:flex;align-items:center}.flow-header-overlay__wrapper ::ng-deep .p-button-link{padding:0;font-size:12px;font-weight:400;line-height:18px;letter-spacing:.3px;color:var(--cg-primary-color)}.flow-header-overlay__wrapper ::ng-deep .p-button-link:hover:enabled{color:var(--cg-text-color-secondary)}.flow-header-overlay__wrapper ::ng-deep .p-button-link:hover:enabled .p-button-label{text-decoration:none}.flow-header-overlay__wrapper ::ng-deep .p-button-link.p-button-secondary{color:var(--cg-text-color-secondary)}.flow-header-overlay__wrapper ::ng-deep .p-button-link.p-button-secondary:hover:enabled{color:var(--cg-primary-color)}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i5.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "style", "styleClass", "badgeClass"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "component", type: i6.OverlayPanel, selector: "p-overlayPanel", inputs: ["dismissable", "showCloseIcon", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { kind: "directive", type: i7.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: i8.LetDirective, selector: "[vlLet]", inputs: ["vlLet"] }, { kind: "component", type: i9.VirtualScroller, selector: "p-virtualScroller", inputs: ["value", "itemSize", "style", "styleClass", "scrollHeight", "lazy", "rows", "minBufferPx", "maxBufferPx", "delay", "trackBy", "totalRecords", "first", "cache"], outputs: ["onLazyLoad"] }, { kind: "component", type: i8.QuantityControlComponent, selector: "vl-quantity-control", outputs: ["valueChange"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
110
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CartPreviewComponent, decorators: [{
111
- type: Component,
112
- args: [{ selector: 'vl-cart-preview', changeDetection: ChangeDetectionStrategy.OnPush, template: "<p-overlayPanel\n styleClass=\"catalog-overlay flow-header-overlay center no-padding\"\n showTransitionOptions=\"0ms\"\n hideTransitionOptions=\"0ms\"\n>\n <ng-template pTemplate>\n <div class=\"flow-header-overlay__wrapper\" *vlLet=\"lockedProductId$ | async as lockedProductId\">\n <ng-container *vlLet=\"isEditMode$ | async as isEditMode\">\n <ng-container *ngIf=\"products.length > 0; else empty\">\n <h2 class=\"flow-header-overlay__title\">\n <span>Products ({{ products.length }})</span>\n <i class=\"vl-icon vl-cross close-icon\" (click)=\"overlayPanel.hide()\"></i>\n </h2>\n\n <p-virtualScroller [value]=\"products\" scrollHeight=\"{{ scrollHeight }}px\" [itemSize]=\"productRowHeight\">\n <ng-template pTemplate=\"item\" let-product>\n <div\n class=\"product item\"\n *vlLet=\"!isEditMode || product.deleted as isReadonlyProduct\"\n [class.readonly]=\"isReadonlyProduct\"\n [class.deleted]=\"product.deleted\"\n >\n <ng-container *vlLet=\"lockedProductId === product.productId as isLockedProduct\">\n <div class=\"product__info\">\n <div class=\"product__image-wrapper\">\n <div\n *ngIf=\"getImageUrl(product.productId) | async as imageUrl; else noImage\"\n class=\"product__image\"\n [ngStyle]=\"{ 'background-image': 'url(' + imageUrl + ')' }\"\n ></div>\n </div>\n <div class=\"flex flex-column justify-content-center\">\n <div class=\"word-break product-name\" [class.line-through]=\"product.deleted\">\n {{ product.name }}\n </div>\n <div class=\"actions\" *ngIf=\"!isReadonlyProduct\">\n <p-button\n label=\"Configure\"\n [disabled]=\"isLockedProduct || !product.configurable || product.hasTerm\"\n styleClass=\"p-button-link p-button-sm\"\n (onClick)=\"navigateToProductConfiguration(product.productId, product.id)\"\n ></p-button>\n <p-button\n label=\"Delete\"\n [disabled]=\"isLockedProduct || product.hasTerm\"\n styleClass=\"p-button-link p-button-sm p-button-secondary\"\n (onClick)=\"deleteHandler(product)\"\n ></p-button>\n </div>\n </div>\n </div>\n\n <ng-container *ngIf=\"form.get(product.id) as control\">\n <div class=\"qty\" *ngIf=\"!isReadonlyProduct; else readonlyQty\">\n <vl-quantity-control\n [formControl]=\"$any(control)\"\n (valueChange)=\"controlBlurHandler(product)\"\n ></vl-quantity-control>\n </div>\n <ng-template #readonlyQty\n ><span class=\"text-right\">{{ control.value }}</span></ng-template\n >\n </ng-container>\n </ng-container>\n </div>\n </ng-template>\n </p-virtualScroller>\n\n <ng-template #noImage>\n <i class=\"vl-icon vl-no-image no-image-icon\"></i>\n </ng-template>\n\n <div class=\"flex footer\">\n <p-button\n label=\"Clear Cart\"\n styleClass=\"p-button-link p-button-sm pl-0 pr-0\"\n [disabled]=\"!isEditMode || !!lockedProductId || hasTermInProducts\"\n (onClick)=\"deleteAllHandler()\"\n ></p-button>\n </div>\n </ng-container>\n </ng-container>\n\n <ng-template #empty>\n <h2 class=\"flow-header-overlay__title\">\n <span>Empty Cart</span>\n <i class=\"vl-icon vl-cross close-icon\" (click)=\"overlayPanel.hide()\"></i>\n </h2>\n\n <span class=\"empty-state\">\n <i class=\"vl-icon vl-bag\"></i>\n There are no products added to the Shopping Cart yet.\n </span>\n </ng-template>\n </div>\n </ng-template>\n</p-overlayPanel>\n", styles: ["p-virtualscroller ::ng-deep .p-virtualscroller-header{background:none;padding:0;border:none;font-weight:unset}.flow-header-overlay *{font-family:var(--cg-font-family)}.flow-header-overlay__wrapper{display:flex;flex-direction:column;width:460px;max-height:600px}.flow-header-overlay__wrapper .close-icon{cursor:pointer}.flow-header-overlay__title{display:flex;justify-content:space-between;align-items:center;margin:0 0 8px;font-size:16px;font-style:normal;font-weight:500;line-height:20px}.empty-state{background:var(--cg-bg-color);padding:16px;display:flex;gap:8px;justify-content:center;font-size:12px;font-weight:300;line-height:16px;letter-spacing:.3px}.product{display:grid;grid-template-columns:auto 100px;padding:8px 0;border-bottom:1px solid var(--cg-border-color)}.product.readonly{align-items:center}.product.deleted{opacity:.5}.product.item{height:65px;overflow:hidden}.product__info{display:flex;gap:16px}.product__image-wrapper{flex-shrink:0;height:48px;width:48px;display:flex;justify-content:center;align-items:center;background:var(--cg-bg-color-hover);border-radius:4px}.product__image{background-size:contain;background-repeat:no-repeat;background-position:center;height:calc(100% - 12px);width:calc(100% - 12px)}.product .product-name{margin-bottom:4px;font-size:14px;font-weight:500;line-height:20px}.product .actions{display:flex;gap:16px}.footer{padding-top:8px}.word-break{word-break:break-word}.no-image-icon{height:24px;width:24px}.qty{display:flex;align-items:center}.flow-header-overlay__wrapper ::ng-deep .p-button-link{padding:0;font-size:12px;font-weight:400;line-height:18px;letter-spacing:.3px;color:var(--cg-primary-color)}.flow-header-overlay__wrapper ::ng-deep .p-button-link:hover:enabled{color:var(--cg-text-color-secondary)}.flow-header-overlay__wrapper ::ng-deep .p-button-link:hover:enabled .p-button-label{text-decoration:none}.flow-header-overlay__wrapper ::ng-deep .p-button-link.p-button-secondary{color:var(--cg-text-color-secondary)}.flow-header-overlay__wrapper ::ng-deep .p-button-link.p-button-secondary:hover:enabled{color:var(--cg-primary-color)}\n"] }]
113
- }], ctorParameters: function () { return [{ type: i1.FlowConfigurationService }, { type: i2.FlowRouterService }, { type: i1.ProductImagesService }, { type: i1.QuoteDraftService }]; }, propDecorators: { overlayPanel: [{
114
- type: ViewChild,
115
- args: [OverlayPanel]
116
- }], products: [{
117
- type: Input
118
- }] } });
119
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FydC1wcmV2aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3NyYy9jb21wb25lbnRzL2hlYWRlci9jYXJ0LW92ZXJsYXkvY2FydC1wcmV2aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3NyYy9jb21wb25lbnRzL2hlYWRlci9jYXJ0LW92ZXJsYXkvY2FydC1wcmV2aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULEtBQUssRUFJTCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsb0JBQW9CLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGVBQWUsRUFBYyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ25HLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDOzs7Ozs7Ozs7OztBQVMxRSxNQUFNLE9BQU8sb0JBQW9CO0lBZ0IvQixZQUNVLGlCQUEyQyxFQUMzQyxhQUFnQyxFQUNoQyxvQkFBMEMsRUFDMUMsaUJBQW9DO1FBSHBDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBMEI7UUFDM0Msa0JBQWEsR0FBYixhQUFhLENBQW1CO1FBQ2hDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFDMUMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQWY5QixxQkFBZ0IsR0FBRyxF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QUM1QjtZQUVELElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLGVBQWUsRUFBRTtnQkFDckUsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO2FBQ25CO2lCQUFNO2dCQUNMLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQzthQUNsQjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ25GLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBbUIsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2hGLENBQUM7O2lIQXpIVSxvQkFBb0I7cUdBQXBCLG9CQUFvQix1SUFDcEIsWUFBWSxxRUN4QnpCLDYzSUFpR0E7MkZEMUVhLG9CQUFvQjtrQkFOaEMsU0FBUzsrQkFDRSxpQkFBaUIsbUJBR1YsdUJBQXVCLENBQUMsTUFBTTtrTkFHZixZQUFZO3NCQUEzQyxTQUFTO3VCQUFDLFlBQVk7Z0JBRVAsUUFBUTtzQkFBdkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGbG93Q29uZmlndXJhdGlvblNlcnZpY2UsIFByb2R1Y3RJbWFnZXNTZXJ2aWNlLCBRdW90ZURyYWZ0U2VydmljZSB9IGZyb20gJ0B2ZWxvY2VhcHBzL3Nkay9jb3JlJztcbmltcG9ydCB7IE92ZXJsYXlQYW5lbCB9IGZyb20gJ3ByaW1lbmcvb3ZlcmxheXBhbmVsJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgY29tYmluZUxhdGVzdCwgZmlsdGVyLCBtYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRmxvd1JvdXRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9mbG93LXJvdXRlci5zZXJ2aWNlJztcbmltcG9ydCB7IEhlYWRlclByb2R1Y3QgfSBmcm9tICcuLi9oZWFkZXIudHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2bC1jYXJ0LXByZXZpZXcnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2FydC1wcmV2aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2FydC1wcmV2aWV3LmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBDYXJ0UHJldmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgQFZpZXdDaGlsZChPdmVybGF5UGFuZWwpIHB1YmxpYyBvdmVybGF5UGFuZWwhOiBPdmVybGF5UGFuZWw7XG5cbiAgQElucHV0KCkgcHVibGljIHByb2R1Y3RzITogSGVhZGVyUHJvZHVjdFtdO1xuXG4gIHB1YmxpYyByZWFkb25seSBwcm9kdWN0Um93SGVpZ2h0ID0gNjU7XG5cbiAgcHVibGljIGZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcbiAgcHVibGljIGxvY2tlZFByb2R1Y3RJZCQ6IE9ic2VydmFibGU8c3RyaW5nIHwgbnVsbD47XG4gIHB1YmxpYyBpc0VkaXRNb2RlJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgcHVibGljIGhhc1Rlcm1JblByb2R1Y3RzID0gZmFsc2U7XG4gIHB1YmxpYyBzY3JvbGxIZWlnaHQgPSAwO1xuXG4gIHByaXZhdGUgc2hvdWxkVXBkYXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3QodHJ1ZSk7XG4gIHByaXZhdGUgZGVzdHJveWVkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmbG93Q29uZmlndXJhdGlvbjogRmxvd0NvbmZpZ3VyYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGVyU2VydmljZTogRmxvd1JvdXRlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwcm9kdWN0SW1hZ2VzU2VydmljZTogUHJvZHVjdEltYWdlc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBxdW90ZURyYWZ0U2VydmljZTogUXVvdGVEcmFmdFNlcnZpY2UsXG4gICkge1xuICAgIHRoaXMubG9ja2VkUHJvZHVjdElkJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMucm91dGVyU2VydmljZS5yb3V0ZSQsIHRoaXMucm91dGVyU2VydmljZS5pc0NvbmZpZ3VyYXRpb25Sb3V0ZSQoKV0pLnBpcGUoXG4gICAgICBtYXAoKFtyb3V0ZSwgaXNDb25maWd1cmF0aW9uUm91dGVdKSA9PiB7XG4gICAgICAgIGlmICghaXNDb25maWd1cmF0aW9uUm91dGUpIHtcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByb3V0ZS5xdWVyeVBhcmFtc1sncHJvZHVjdElkJ107XG4gICAgICB9KSxcbiAgICApO1xuXG4gICAgdGhpcy5pc0VkaXRNb2RlJCA9IHRoaXMucXVvdGVEcmFmdFNlcnZpY2UuaXNFZGl0TW9kZSQoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgY29uc3QgeyBwcm9kdWN0cyB9ID0gY2hhbmdlcztcblxuICAgIGlmIChwcm9kdWN0cykge1xuICAgICAgdGhpcy5zaG91bGRVcGRhdGUkLm5leHQodHJ1ZSk7XG4gICAgICB0aGlzLnNjcm9sbEhlaWdodCA9IE1hdGgubWluKHRoaXMucHJvZHVjdHMubGVuZ3RoICogdGhpcy5wcm9kdWN0Um93SGVpZ2h0LCA0NjApO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgY29tYmluZUxhdGVzdChbdGhpcy5sb2NrZWRQcm9kdWN0SWQkLCB0aGlzLmlzRWRpdE1vZGUkLCB0aGlzLnNob3VsZFVwZGF0ZSQsIHRoaXMub3ZlcmxheVBhbmVsLm9uU2hvd10pXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKCgpID0+IHRoaXMub3ZlcmxheVBhbmVsLm92ZXJsYXlWaXNpYmxlKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChbbG9ja2VkUHJvZHVjdElkLCBpc0VkaXRNb2RlXSkgPT4gdGhpcy51cGRhdGVDb250cm9scyh0aGlzLnByb2R1Y3RzLCBpc0VkaXRNb2RlLCBsb2NrZWRQcm9kdWN0SWQpKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3llZCQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveWVkJC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHVibGljIGdldEltYWdlVXJsKHByb2R1Y3RJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxzdHJpbmcgfCBudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMucHJvZHVjdEltYWdlc1NlcnZpY2UuZ2V0SW1hZ2VVcmwkKHByb2R1Y3RJZCk7XG4gIH1cblxuICBwdWJsaWMgbmF2aWdhdGVUb1Byb2R1Y3RDb25maWd1cmF0aW9uKHByb2R1Y3RJZDogc3RyaW5nLCBsaW5lSXRlbUlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLm92ZXJsYXlQYW5lbC5oaWRlKCk7XG4gICAgdGhpcy5yb3V0ZXJTZXJ2aWNlLm5hdmlnYXRlVG9Qcm9kdWN0Q29uZmlndXJhdGlvbihwcm9kdWN0SWQsIGxpbmVJdGVtSWQpO1xuICB9XG5cbiAgcHVibGljIGNvbnRyb2xCbHVySGFuZGxlcihwcm9kdWN0OiBIZWFkZXJQcm9kdWN0KTogdm9pZCB7XG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuZm9ybS5nZXQocHJvZHVjdC5pZCk7XG4gICAgaWYgKCFjb250cm9sIHx8IGNvbnRyb2wuaW52YWxpZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZmxvd0NvbmZpZ3VyYXRpb24udXBkYXRlKFtcbiAgICAgIHtcbiAgICAgICAgZGF0YVR5cGU6ICdMSU5FSVRFTScsXG4gICAgICAgIGF0dHJpYnV0ZVR5cGU6ICdRVFknLFxuICAgICAgICBpZDogcHJvZHVjdC5pZCxcbiAgICAgICAgbmV3VmFsdWU6IGNvbnRyb2wudmFsdWUsXG4gICAgICB9LFxuICAgIF0pO1xuICB9XG5cbiAgcHVibGljIGRlbGV0ZUhhbmRsZXIocHJvZHVjdDogSGVhZGVyUHJvZHVjdCk6IHZvaWQge1xuICAgIHRoaXMuZmxvd0NvbmZpZ3VyYXRpb24uZGVsZXRlKFtwcm9kdWN0LmlkXSk7XG4gIH1cblxuICBwdWJsaWMgZGVsZXRlQWxsSGFuZGxlcigpOiB2b2lkIHtcbiAgICBjb25zdCBwcm9kdWN0SWRzID0gdGhpcy5wcm9kdWN0cy5tYXAocHJvZHVjdCA9PiBwcm9kdWN0LmlkKTtcbiAgICB0aGlzLmZsb3dDb25maWd1cmF0aW9uLmRlbGV0ZShwcm9kdWN0SWRzKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlQ29udHJvbHMocHJvZHVjdHM6IEhlYWRlclByb2R1Y3RbXSwgaXNFZGl0TW9kZTogYm9vbGVhbiwgbG9ja2VkUHJvZHVjdElkOiBzdHJpbmcgfCBudWxsKTogdm9pZCB7XG4gICAgY29uc3QgaWRzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgcHJvZHVjdHMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgIGlmICghaXRlbS5pZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlkcy5wdXNoKGl0ZW0uaWQpO1xuXG4gICAgICBsZXQgY29udHJvbCA9IHRoaXMuZm9ybS5nZXQoaXRlbS5pZCk7XG5cbiAgICAgIGlmICghY29udHJvbCkge1xuICAgICAgICBjb250cm9sID0gbmV3IEZvcm1Db250cm9sKGl0ZW0ucXR5LCBbXSk7XG4gICAgICAgIHRoaXMuZm9ybS5hZGRDb250cm9sKGl0ZW0uaWQsIGNvbnRyb2wpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29udHJvbC5zZXRWYWx1ZShpdGVtLnF0eSk7XG4gICAgICB9XG5cbiAgICAgIGlmICghaXNFZGl0TW9kZSB8fCBpdGVtLmRlbGV0ZWQgfHwgaXRlbS5wcm9kdWN0SWQgPT09IGxvY2tlZFByb2R1Y3RJZCkge1xuICAgICAgICBjb250cm9sLmRpc2FibGUoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnRyb2wuZW5hYmxlKCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBjb25zdCByZW1vdmVkSWRzID0gT2JqZWN0LmtleXModGhpcy5mb3JtLmNvbnRyb2xzKS5maWx0ZXIoaWQgPT4gIWlkcy5pbmNsdWRlcyhpZCkpO1xuICAgIHJlbW92ZWRJZHMuZm9yRWFjaChpZCA9PiB0aGlzLmZvcm0ucmVtb3ZlQ29udHJvbChpZCkpO1xuICAgIHRoaXMuaGFzVGVybUluUHJvZHVjdHMgPSBwcm9kdWN0cy5zb21lKChpdGVtOiBIZWFkZXJQcm9kdWN0KSA9PiBpdGVtLmhhc1Rlcm0pO1xuICB9XG59XG4iLCI8cC1vdmVybGF5UGFuZWxcbiAgc3R5bGVDbGFzcz1cImNhdGFsb2ctb3ZlcmxheSBmbG93LWhlYWRlci1vdmVybGF5IGNlbnRlciBuby1wYWRkaW5nXCJcbiAgc2hvd1RyYW5zaXRpb25PcHRpb25zPVwiMG1zXCJcbiAgaGlkZVRyYW5zaXRpb25PcHRpb25zPVwiMG1zXCJcbj5cbiAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT5cbiAgICA8ZGl2IGNsYXNzPVwiZmxvdy1oZWFkZXItb3ZlcmxheV9fd3JhcHBlclwiICp2bExldD1cImxvY2tlZFByb2R1Y3RJZCQgfCBhc3luYyBhcyBsb2NrZWRQcm9kdWN0SWRcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKnZsTGV0PVwiaXNFZGl0TW9kZSQgfCBhc3luYyBhcyBpc0VkaXRNb2RlXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwcm9kdWN0cy5sZW5ndGggPiAwOyBlbHNlIGVtcHR5XCI+XG4gICAgICAgICAgPGgyIGNsYXNzPVwiZmxvdy1oZWFkZXItb3ZlcmxheV9fdGl0bGVcIj5cbiAgICAgICAgICAgIDxzcGFuPlByb2R1Y3RzICh7eyBwcm9kdWN0cy5sZW5ndGggfX0pPC9zcGFuPlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJ2bC1pY29uIHZsLWNyb3NzIGNsb3NlLWljb25cIiAoY2xpY2spPVwib3ZlcmxheVBhbmVsLmhpZGUoKVwiPjwvaT5cbiAgICAgICAgICA8L2gyPlxuXG4gICAgICAgICAgPHAtdmlydHVhbFNjcm9sbGVyIFt2YWx1ZV09XCJwcm9kdWN0c1wiIHNjcm9sbEhlaWdodD1cInt7IHNjcm9sbEhlaWdodCB9fXB4XCIgW2l0ZW1TaXplXT1cInByb2R1Y3RSb3dIZWlnaHRcIj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJpdGVtXCIgbGV0LXByb2R1Y3Q+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cInByb2R1Y3QgaXRlbVwiXG4gICAgICAgICAgICAgICAgKnZsTGV0PVwiIWlzRWRpdE1vZGUgfHwgcHJvZHVjdC5kZWxldGVkIGFzIGlzUmVhZG9ubHlQcm9kdWN0XCJcbiAgICAgICAgICAgICAgICBbY2xhc3MucmVhZG9ubHldPVwiaXNSZWFkb25seVByb2R1Y3RcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5kZWxldGVkXT1cInByb2R1Y3QuZGVsZXRlZFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICp2bExldD1cImxvY2tlZFByb2R1Y3RJZCA9PT0gcHJvZHVjdC5wcm9kdWN0SWQgYXMgaXNMb2NrZWRQcm9kdWN0XCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvZHVjdF9faW5mb1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvZHVjdF9faW1hZ2Utd3JhcHBlclwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZ2V0SW1hZ2VVcmwocHJvZHVjdC5wcm9kdWN0SWQpIHwgYXN5bmMgYXMgaW1hZ2VVcmw7IGVsc2Ugbm9JbWFnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInByb2R1Y3RfX2ltYWdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgJ2JhY2tncm91bmQtaW1hZ2UnOiAndXJsKCcgKyBpbWFnZVVybCArICcpJyB9XCJcbiAgICAgICAgICAgICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbHVtbiBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndvcmQtYnJlYWsgcHJvZHVjdC1uYW1lXCIgW2NsYXNzLmxpbmUtdGhyb3VnaF09XCJwcm9kdWN0LmRlbGV0ZWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IHByb2R1Y3QubmFtZSB9fVxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpb25zXCIgKm5nSWY9XCIhaXNSZWFkb25seVByb2R1Y3RcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD1cIkNvbmZpZ3VyZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc0xvY2tlZFByb2R1Y3QgfHwgIXByb2R1Y3QuY29uZmlndXJhYmxlIHx8IHByb2R1Y3QuaGFzVGVybVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlQ2xhc3M9XCJwLWJ1dHRvbi1saW5rIHAtYnV0dG9uLXNtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9uQ2xpY2spPVwibmF2aWdhdGVUb1Byb2R1Y3RDb25maWd1cmF0aW9uKHByb2R1Y3QucHJvZHVjdElkLCBwcm9kdWN0LmlkKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9wLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD1cIkRlbGV0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc0xvY2tlZFByb2R1Y3QgfHwgcHJvZHVjdC5oYXNUZXJtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGVDbGFzcz1cInAtYnV0dG9uLWxpbmsgcC1idXR0b24tc20gcC1idXR0b24tc2Vjb25kYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9uQ2xpY2spPVwiZGVsZXRlSGFuZGxlcihwcm9kdWN0KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9wLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZvcm0uZ2V0KHByb2R1Y3QuaWQpIGFzIGNvbnRyb2xcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInF0eVwiICpuZ0lmPVwiIWlzUmVhZG9ubHlQcm9kdWN0OyBlbHNlIHJlYWRvbmx5UXR5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHZsLXF1YW50aXR5LWNvbnRyb2xcbiAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCIkYW55KGNvbnRyb2wpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICh2YWx1ZUNoYW5nZSk9XCJjb250cm9sQmx1ckhhbmRsZXIocHJvZHVjdClcIlxuICAgICAgICAgICAgICAgICAgICAgID48L3ZsLXF1YW50aXR5LWNvbnRyb2w+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI3JlYWRvbmx5UXR5XG4gICAgICAgICAgICAgICAgICAgICAgPjxzcGFuIGNsYXNzPVwidGV4dC1yaWdodFwiPnt7IGNvbnRyb2wudmFsdWUgfX08L3NwYW4+PC9uZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDwvcC12aXJ0dWFsU2Nyb2xsZXI+XG5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI25vSW1hZ2U+XG4gICAgICAgICAgICA8aSBjbGFzcz1cInZsLWljb24gdmwtbm8taW1hZ2Ugbm8taW1hZ2UtaWNvblwiPjwvaT5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZm9vdGVyXCI+XG4gICAgICAgICAgICA8cC1idXR0b25cbiAgICAgICAgICAgICAgbGFiZWw9XCJDbGVhciBDYXJ0XCJcbiAgICAgICAgICAgICAgc3R5bGVDbGFzcz1cInAtYnV0dG9uLWxpbmsgcC1idXR0b24tc20gcGwtMCBwci0wXCJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFpc0VkaXRNb2RlIHx8ICEhbG9ja2VkUHJvZHVjdElkIHx8IGhhc1Rlcm1JblByb2R1Y3RzXCJcbiAgICAgICAgICAgICAgKG9uQ2xpY2spPVwiZGVsZXRlQWxsSGFuZGxlcigpXCJcbiAgICAgICAgICAgID48L3AtYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8bmctdGVtcGxhdGUgI2VtcHR5PlxuICAgICAgICA8aDIgY2xhc3M9XCJmbG93LWhlYWRlci1vdmVybGF5X190aXRsZVwiPlxuICAgICAgICAgIDxzcGFuPkVtcHR5IENhcnQ8L3NwYW4+XG4gICAgICAgICAgPGkgY2xhc3M9XCJ2bC1pY29uIHZsLWNyb3NzIGNsb3NlLWljb25cIiAoY2xpY2spPVwib3ZlcmxheVBhbmVsLmhpZGUoKVwiPjwvaT5cbiAgICAgICAgPC9oMj5cblxuICAgICAgICA8c3BhbiBjbGFzcz1cImVtcHR5LXN0YXRlXCI+XG4gICAgICAgICAgPGkgY2xhc3M9XCJ2bC1pY29uIHZsLWJhZ1wiPjwvaT5cbiAgICAgICAgICBUaGVyZSBhcmUgbm8gcHJvZHVjdHMgYWRkZWQgdG8gdGhlIFNob3BwaW5nIENhcnQgeWV0LlxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuPC9wLW92ZXJsYXlQYW5lbD5cbiJdfQ==
@@ -1,47 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { NgModule } from '@angular/core';
3
- import { ReactiveFormsModule } from '@angular/forms';
4
- import { LetDirectiveModule, QuantityControlModule } from '@veloceapps/components';
5
- import { ButtonModule } from 'primeng/button';
6
- import { InputNumberModule } from 'primeng/inputnumber';
7
- import { OverlayPanelModule } from 'primeng/overlaypanel';
8
- import { VirtualScrollerModule } from 'primeng/virtualscroller';
9
- import { CartPreviewComponent } from './cart-preview.component';
10
- import * as i0 from "@angular/core";
11
- export class CartPreviewModule {
12
- }
13
- CartPreviewModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CartPreviewModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
14
- CartPreviewModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: CartPreviewModule, declarations: [CartPreviewComponent], imports: [CommonModule,
15
- ReactiveFormsModule,
16
- ButtonModule,
17
- OverlayPanelModule,
18
- LetDirectiveModule,
19
- InputNumberModule,
20
- VirtualScrollerModule,
21
- QuantityControlModule], exports: [CartPreviewComponent] });
22
- CartPreviewModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CartPreviewModule, imports: [CommonModule,
23
- ReactiveFormsModule,
24
- ButtonModule,
25
- OverlayPanelModule,
26
- LetDirectiveModule,
27
- InputNumberModule,
28
- VirtualScrollerModule,
29
- QuantityControlModule] });
30
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CartPreviewModule, decorators: [{
31
- type: NgModule,
32
- args: [{
33
- declarations: [CartPreviewComponent],
34
- imports: [
35
- CommonModule,
36
- ReactiveFormsModule,
37
- ButtonModule,
38
- OverlayPanelModule,
39
- LetDirectiveModule,
40
- InputNumberModule,
41
- VirtualScrollerModule,
42
- QuantityControlModule,
43
- ],
44
- exports: [CartPreviewComponent],
45
- }]
46
- }] });
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FydC1wcmV2aWV3Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3NyYy9jb21wb25lbnRzL2hlYWRlci9jYXJ0LW92ZXJsYXkvY2FydC1wcmV2aWV3Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNuRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDMUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDaEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBZ0JoRSxNQUFNLE9BQU8saUJBQWlCOzs4R0FBakIsaUJBQWlCOytHQUFqQixpQkFBaUIsaUJBYmIsb0JBQW9CLGFBRWpDLFlBQVk7UUFDWixtQkFBbUI7UUFDbkIsWUFBWTtRQUNaLGtCQUFrQjtRQUNsQixrQkFBa0I7UUFDbEIsaUJBQWlCO1FBQ2pCLHFCQUFxQjtRQUNyQixxQkFBcUIsYUFFYixvQkFBb0I7K0dBRW5CLGlCQUFpQixZQVgxQixZQUFZO1FBQ1osbUJBQW1CO1FBQ25CLFlBQVk7UUFDWixrQkFBa0I7UUFDbEIsa0JBQWtCO1FBQ2xCLGlCQUFpQjtRQUNqQixxQkFBcUI7UUFDckIscUJBQXFCOzJGQUlaLGlCQUFpQjtrQkFkN0IsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztvQkFDcEMsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixZQUFZO3dCQUNaLGtCQUFrQjt3QkFDbEIsa0JBQWtCO3dCQUNsQixpQkFBaUI7d0JBQ2pCLHFCQUFxQjt3QkFDckIscUJBQXFCO3FCQUN0QjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztpQkFDaEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBMZXREaXJlY3RpdmVNb2R1bGUsIFF1YW50aXR5Q29udHJvbE1vZHVsZSB9IGZyb20gJ0B2ZWxvY2VhcHBzL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgQnV0dG9uTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9idXR0b24nO1xuaW1wb3J0IHsgSW5wdXROdW1iZXJNb2R1bGUgfSBmcm9tICdwcmltZW5nL2lucHV0bnVtYmVyJztcbmltcG9ydCB7IE92ZXJsYXlQYW5lbE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvb3ZlcmxheXBhbmVsJztcbmltcG9ydCB7IFZpcnR1YWxTY3JvbGxlck1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvdmlydHVhbHNjcm9sbGVyJztcbmltcG9ydCB7IENhcnRQcmV2aWV3Q29tcG9uZW50IH0gZnJvbSAnLi9jYXJ0LXByZXZpZXcuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbQ2FydFByZXZpZXdDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgQnV0dG9uTW9kdWxlLFxuICAgIE92ZXJsYXlQYW5lbE1vZHVsZSxcbiAgICBMZXREaXJlY3RpdmVNb2R1bGUsXG4gICAgSW5wdXROdW1iZXJNb2R1bGUsXG4gICAgVmlydHVhbFNjcm9sbGVyTW9kdWxlLFxuICAgIFF1YW50aXR5Q29udHJvbE1vZHVsZSxcbiAgXSxcbiAgZXhwb3J0czogW0NhcnRQcmV2aWV3Q29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgQ2FydFByZXZpZXdNb2R1bGUge31cbiJdfQ==