@veloceapps/sdk 5.0.13-0

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 (387) hide show
  1. package/README.md +3 -0
  2. package/bundles/veloceapps-sdk-cms.umd.js +1975 -0
  3. package/bundles/veloceapps-sdk-cms.umd.js.map +1 -0
  4. package/bundles/veloceapps-sdk-core.umd.js +1610 -0
  5. package/bundles/veloceapps-sdk-core.umd.js.map +1 -0
  6. package/bundles/veloceapps-sdk-runtime.umd.js +4349 -0
  7. package/bundles/veloceapps-sdk-runtime.umd.js.map +1 -0
  8. package/bundles/veloceapps-sdk.umd.js +3307 -0
  9. package/bundles/veloceapps-sdk.umd.js.map +1 -0
  10. package/cms/cms.actions.d.ts +28 -0
  11. package/cms/cms.default.d.ts +5 -0
  12. package/cms/cms.elements.d.ts +4 -0
  13. package/cms/components/element-children/element-children.component.d.ts +10 -0
  14. package/cms/components/element-children/element-children.module.d.ts +8 -0
  15. package/cms/components/element-renderer/element-renderer.component.d.ts +36 -0
  16. package/cms/components/element-renderer/element-renderer.module.d.ts +7 -0
  17. package/cms/components/element.component.d.ts +17 -0
  18. package/cms/components/index.d.ts +1 -0
  19. package/cms/components/plugin.component.d.ts +15 -0
  20. package/cms/components/preview/index.d.ts +2 -0
  21. package/cms/components/preview/preview.component.d.ts +34 -0
  22. package/cms/components/preview/preview.module.d.ts +11 -0
  23. package/cms/decorators/element.decorator.d.ts +2 -0
  24. package/cms/decorators/index.d.ts +1 -0
  25. package/cms/directives/custom-template.directive.d.ts +12 -0
  26. package/cms/engine/models/entity.d.ts +11 -0
  27. package/cms/engine/models/plugin.d.ts +5 -0
  28. package/cms/index.d.ts +11 -0
  29. package/cms/injection-tokens.d.ts +11 -0
  30. package/cms/launcher.module.d.ts +10 -0
  31. package/cms/modules/federated/default-options.d.ts +4 -0
  32. package/cms/modules/federated/export.d.ts +1 -0
  33. package/cms/modules/federated/federated.component.d.ts +26 -0
  34. package/cms/modules/federated/federated.module.d.ts +9 -0
  35. package/cms/modules/federated/federated.types.d.ts +30 -0
  36. package/cms/modules/federated/federated.utils.d.ts +1 -0
  37. package/cms/package.json +10 -0
  38. package/cms/plugins/configuration.plugin.d.ts +23 -0
  39. package/cms/plugins/io.plugin.d.ts +9 -0
  40. package/cms/plugins/script.plugin.d.ts +13 -0
  41. package/cms/services/dynamic-module.service.d.ts +15 -0
  42. package/cms/services/element-context.service.d.ts +8 -0
  43. package/cms/services/index.d.ts +3 -0
  44. package/cms/services/integration.state.d.ts +17 -0
  45. package/cms/services/io-provider.service.d.ts +15 -0
  46. package/cms/services/launcher.service.d.ts +18 -0
  47. package/cms/services/templates.service.d.ts +14 -0
  48. package/cms/types/common.types.d.ts +108 -0
  49. package/cms/types/compilation.types.d.ts +6 -0
  50. package/cms/types/configuration.types.d.ts +20 -0
  51. package/cms/types/elements.types.d.ts +2 -0
  52. package/cms/types/index.d.ts +7 -0
  53. package/cms/types/integration.types.d.ts +4 -0
  54. package/cms/types/metrics.types.d.ts +5 -0
  55. package/cms/types/path.types.d.ts +11 -0
  56. package/cms/utils/element.utils.d.ts +17 -0
  57. package/cms/utils/elements-resolver.d.ts +24 -0
  58. package/cms/utils/index.d.ts +3 -0
  59. package/cms/utils/path.utils.d.ts +5 -0
  60. package/cms/veloceapps-sdk-cms.d.ts +5 -0
  61. package/cms/vendor-map.d.ts +708 -0
  62. package/core/core.module.d.ts +8 -0
  63. package/core/index.d.ts +6 -0
  64. package/core/modules/configuration/configuration.module.d.ts +7 -0
  65. package/core/modules/configuration/helpers.d.ts +3 -0
  66. package/core/modules/configuration/index.d.ts +4 -0
  67. package/core/modules/configuration/services/configuration-runtime.service.d.ts +29 -0
  68. package/core/modules/configuration/services/configuration.service.d.ts +45 -0
  69. package/core/modules/configuration/services/runtime-context.service.d.ts +12 -0
  70. package/core/modules/configuration/types/configuration-runtime.types.d.ts +7 -0
  71. package/core/modules/flow-configuration/flow-configuration.module.d.ts +6 -0
  72. package/core/modules/flow-configuration/index.d.ts +4 -0
  73. package/core/modules/flow-configuration/services/flow-configuration.service.d.ts +38 -0
  74. package/core/modules/flow-configuration/services/flow-update.service.d.ts +12 -0
  75. package/core/modules/flow-configuration/types/update.types.d.ts +12 -0
  76. package/core/modules/index.d.ts +2 -0
  77. package/core/package.json +10 -0
  78. package/core/services/context.service.d.ts +18 -0
  79. package/core/services/index.d.ts +3 -0
  80. package/core/services/product-images.service.d.ts +12 -0
  81. package/core/services/quote-draft.service.d.ts +62 -0
  82. package/core/types/index.d.ts +3 -0
  83. package/core/types/quote-states.types.d.ts +6 -0
  84. package/core/types/runtime.types.d.ts +31 -0
  85. package/core/types/ui-definition.types.d.ts +26 -0
  86. package/core/utils/index.d.ts +2 -0
  87. package/core/utils/line-item.utils.d.ts +26 -0
  88. package/core/utils/line-item.worker.d.ts +12 -0
  89. package/core/veloceapps-sdk-core.d.ts +5 -0
  90. package/esm2015/cms/cms.actions.js +47 -0
  91. package/esm2015/cms/cms.default.js +6 -0
  92. package/esm2015/cms/cms.elements.js +29 -0
  93. package/esm2015/cms/components/element-children/element-children.component.js +23 -0
  94. package/esm2015/cms/components/element-children/element-children.module.js +18 -0
  95. package/esm2015/cms/components/element-renderer/element-renderer.component.js +169 -0
  96. package/esm2015/cms/components/element-renderer/element-renderer.module.js +16 -0
  97. package/esm2015/cms/components/element.component.js +44 -0
  98. package/esm2015/cms/components/index.js +2 -0
  99. package/esm2015/cms/components/plugin.component.js +16 -0
  100. package/esm2015/cms/components/preview/index.js +3 -0
  101. package/esm2015/cms/components/preview/preview.component.js +108 -0
  102. package/esm2015/cms/components/preview/preview.module.js +23 -0
  103. package/esm2015/cms/decorators/element.decorator.js +6 -0
  104. package/esm2015/cms/decorators/index.js +2 -0
  105. package/esm2015/cms/directives/custom-template.directive.js +25 -0
  106. package/esm2015/cms/engine/models/entity.js +18 -0
  107. package/esm2015/cms/engine/models/plugin.js +6 -0
  108. package/esm2015/cms/index.js +11 -0
  109. package/esm2015/cms/injection-tokens.js +8 -0
  110. package/esm2015/cms/launcher.module.js +23 -0
  111. package/esm2015/cms/modules/federated/default-options.js +5 -0
  112. package/esm2015/cms/modules/federated/export.js +2 -0
  113. package/esm2015/cms/modules/federated/federated.component.js +82 -0
  114. package/esm2015/cms/modules/federated/federated.module.js +19 -0
  115. package/esm2015/cms/modules/federated/federated.types.js +2 -0
  116. package/esm2015/cms/modules/federated/federated.utils.js +37 -0
  117. package/esm2015/cms/plugins/configuration.plugin.js +98 -0
  118. package/esm2015/cms/plugins/io.plugin.js +37 -0
  119. package/esm2015/cms/plugins/script.plugin.js +66 -0
  120. package/esm2015/cms/services/dynamic-module.service.js +33 -0
  121. package/esm2015/cms/services/element-context.service.js +10 -0
  122. package/esm2015/cms/services/index.js +4 -0
  123. package/esm2015/cms/services/integration.state.js +40 -0
  124. package/esm2015/cms/services/io-provider.service.js +51 -0
  125. package/esm2015/cms/services/launcher.service.js +57 -0
  126. package/esm2015/cms/services/templates.service.js +31 -0
  127. package/esm2015/cms/types/common.types.js +2 -0
  128. package/esm2015/cms/types/compilation.types.js +2 -0
  129. package/esm2015/cms/types/configuration.types.js +2 -0
  130. package/esm2015/cms/types/elements.types.js +2 -0
  131. package/esm2015/cms/types/index.js +8 -0
  132. package/esm2015/cms/types/integration.types.js +2 -0
  133. package/esm2015/cms/types/metrics.types.js +2 -0
  134. package/esm2015/cms/types/path.types.js +2 -0
  135. package/esm2015/cms/utils/element.utils.js +161 -0
  136. package/esm2015/cms/utils/elements-resolver.js +147 -0
  137. package/esm2015/cms/utils/index.js +4 -0
  138. package/esm2015/cms/utils/path.utils.js +67 -0
  139. package/esm2015/cms/veloceapps-sdk-cms.js +5 -0
  140. package/esm2015/cms/vendor-map.js +34 -0
  141. package/esm2015/core/core.module.js +18 -0
  142. package/esm2015/core/index.js +7 -0
  143. package/esm2015/core/modules/configuration/configuration.module.js +34 -0
  144. package/esm2015/core/modules/configuration/helpers.js +10 -0
  145. package/esm2015/core/modules/configuration/index.js +5 -0
  146. package/esm2015/core/modules/configuration/services/configuration-runtime.service.js +92 -0
  147. package/esm2015/core/modules/configuration/services/configuration.service.js +173 -0
  148. package/esm2015/core/modules/configuration/services/runtime-context.service.js +51 -0
  149. package/esm2015/core/modules/configuration/types/configuration-runtime.types.js +2 -0
  150. package/esm2015/core/modules/flow-configuration/flow-configuration.module.js +18 -0
  151. package/esm2015/core/modules/flow-configuration/index.js +5 -0
  152. package/esm2015/core/modules/flow-configuration/services/flow-configuration.service.js +135 -0
  153. package/esm2015/core/modules/flow-configuration/services/flow-update.service.js +129 -0
  154. package/esm2015/core/modules/flow-configuration/types/update.types.js +2 -0
  155. package/esm2015/core/modules/index.js +3 -0
  156. package/esm2015/core/services/context.service.js +50 -0
  157. package/esm2015/core/services/index.js +4 -0
  158. package/esm2015/core/services/product-images.service.js +30 -0
  159. package/esm2015/core/services/quote-draft.service.js +207 -0
  160. package/esm2015/core/types/index.js +4 -0
  161. package/esm2015/core/types/quote-states.types.js +2 -0
  162. package/esm2015/core/types/runtime.types.js +16 -0
  163. package/esm2015/core/types/ui-definition.types.js +2 -0
  164. package/esm2015/core/utils/index.js +3 -0
  165. package/esm2015/core/utils/line-item.utils.js +100 -0
  166. package/esm2015/core/utils/line-item.worker.js +19 -0
  167. package/esm2015/core/veloceapps-sdk-core.js +5 -0
  168. package/esm2015/index.js +2 -0
  169. package/esm2015/runtime/components/component-preview/component-preview.component.js +125 -0
  170. package/esm2015/runtime/components/index.js +5 -0
  171. package/esm2015/runtime/components/section-renderer/section-renderer.component.js +71 -0
  172. package/esm2015/runtime/components/ui-runtime/runtime.component.js +429 -0
  173. package/esm2015/runtime/components/ui-runtime-preview/runtime-preview.component.js +109 -0
  174. package/esm2015/runtime/execution/components/children-placeholder/children-placeholder.component.js +68 -0
  175. package/esm2015/runtime/execution/components/context-provider/context-provider.component.js +36 -0
  176. package/esm2015/runtime/execution/components/execution-section-renderer/execution-section-renderer.component.js +72 -0
  177. package/esm2015/runtime/execution/components/federated/federated.component.js +81 -0
  178. package/esm2015/runtime/execution/components/velo-attribute/velo-attribute.component.js +65 -0
  179. package/esm2015/runtime/execution/components/velo-multiselect/velo-multiselect.component.js +136 -0
  180. package/esm2015/runtime/execution/components/velo-port-checkbox/velo-port-checkbox.component.js +80 -0
  181. package/esm2015/runtime/execution/components/velo-port-dropdown/velo-port-dropdown.component.js +101 -0
  182. package/esm2015/runtime/execution/components/velo-port-radio/velo-port-radio.component.js +150 -0
  183. package/esm2015/runtime/execution/components/velo-type/velo-type.component.js +121 -0
  184. package/esm2015/runtime/execution/directives/section-script.directive.js +242 -0
  185. package/esm2015/runtime/execution/directives/sf-query.directive.js +34 -0
  186. package/esm2015/runtime/execution/directives/velo-attribute.directive.js +86 -0
  187. package/esm2015/runtime/execution/directives/velo-port.directive.js +373 -0
  188. package/esm2015/runtime/execution/directives/vl-approval.directive.js +22 -0
  189. package/esm2015/runtime/execution/directives/vl-document-attachments.directive.js +35 -0
  190. package/esm2015/runtime/execution/directives/vl-document-templates.directive.js +59 -0
  191. package/esm2015/runtime/execution/directives/vl-quote.directive.js +41 -0
  192. package/esm2015/runtime/execution/directives/vl-ramp.directive.js +51 -0
  193. package/esm2015/runtime/execution/runtime-execution.module.js +163 -0
  194. package/esm2015/runtime/execution/utils/federated.util.js +37 -0
  195. package/esm2015/runtime/index.js +5 -0
  196. package/esm2015/runtime/runtime.module.js +104 -0
  197. package/esm2015/runtime/services/cart.service.js +27 -0
  198. package/esm2015/runtime/services/collapsible-state.service.js +34 -0
  199. package/esm2015/runtime/services/configuration.service.js +102 -0
  200. package/esm2015/runtime/services/current-state.service.js +17 -0
  201. package/esm2015/runtime/services/form-scope.service.js +30 -0
  202. package/esm2015/runtime/services/index.js +4 -0
  203. package/esm2015/runtime/services/product-model-cache.service.js +30 -0
  204. package/esm2015/runtime/services/runtime-context.service.js +56 -0
  205. package/esm2015/runtime/services/runtime-form.service.js +224 -0
  206. package/esm2015/runtime/services/runtime.service.js +108 -0
  207. package/esm2015/runtime/services/section-helper.service.js +27 -0
  208. package/esm2015/runtime/services/section-scope.service.js +36 -0
  209. package/esm2015/runtime/services/section-store.service.js +22 -0
  210. package/esm2015/runtime/services/section.service.js +124 -0
  211. package/esm2015/runtime/types/bound-data.types.js +7 -0
  212. package/esm2015/runtime/types/index.js +2 -0
  213. package/esm2015/runtime/types/runtime.types.js +2 -0
  214. package/esm2015/runtime/types/script-registry.types.js +51 -0
  215. package/esm2015/runtime/utils/line-item.util.js +273 -0
  216. package/esm2015/runtime/utils/section.utils.js +26 -0
  217. package/esm2015/runtime/utils/sections-binder.helper.js +105 -0
  218. package/esm2015/runtime/veloceapps-sdk-runtime.js +5 -0
  219. package/esm2015/src/components/dialog/dialog.component.js +30 -0
  220. package/esm2015/src/components/dialog/dialog.module.js +19 -0
  221. package/esm2015/src/components/dialog/dialog.types.js +2 -0
  222. package/esm2015/src/components/doc-gen/doc-gen.component.js +109 -0
  223. package/esm2015/src/components/doc-gen/doc-gen.module.js +19 -0
  224. package/esm2015/src/components/header/cart-overlay/cart-preview.component.js +122 -0
  225. package/esm2015/src/components/header/cart-overlay/cart-preview.module.js +46 -0
  226. package/esm2015/src/components/header/header.component.js +310 -0
  227. package/esm2015/src/components/header/header.module.js +50 -0
  228. package/esm2015/src/components/header/header.types.js +2 -0
  229. package/esm2015/src/components/header/metrics/index.js +2 -0
  230. package/esm2015/src/components/header/metrics/metrics.component.js +216 -0
  231. package/esm2015/src/components/header/metrics/metrics.definitions.js +9 -0
  232. package/esm2015/src/components/header/metrics/metrics.module.js +67 -0
  233. package/esm2015/src/constants.js +2 -0
  234. package/esm2015/src/flow-routing.module.js +137 -0
  235. package/esm2015/src/flow.component.js +45 -0
  236. package/esm2015/src/flow.module.js +60 -0
  237. package/esm2015/src/guards/context.guard.js +84 -0
  238. package/esm2015/src/guards/index.js +2 -0
  239. package/esm2015/src/guards/product-unload.guard.js +43 -0
  240. package/esm2015/src/guards/root.guard.js +41 -0
  241. package/esm2015/src/index.js +7 -0
  242. package/esm2015/src/pages/catalog/catalog.component.js +117 -0
  243. package/esm2015/src/pages/catalog/catalog.module.js +20 -0
  244. package/esm2015/src/pages/debug/debug.component.js +61 -0
  245. package/esm2015/src/pages/debug/debug.module.js +48 -0
  246. package/esm2015/src/pages/empty-account/empty-account.component.js +17 -0
  247. package/esm2015/src/pages/empty-account/empty-account.module.js +20 -0
  248. package/esm2015/src/pages/legacy-product/legacy-product.component.js +132 -0
  249. package/esm2015/src/pages/legacy-product/legacy-product.module.js +21 -0
  250. package/esm2015/src/pages/product/product.component.js +108 -0
  251. package/esm2015/src/pages/product/product.module.js +20 -0
  252. package/esm2015/src/pages/record-not-found/record-not-found.component.js +29 -0
  253. package/esm2015/src/pages/record-not-found/record-not-found.module.js +20 -0
  254. package/esm2015/src/pages/remote/remote.component.js +353 -0
  255. package/esm2015/src/pages/remote/remote.module.js +20 -0
  256. package/esm2015/src/pages/remote/remote.types.js +2 -0
  257. package/esm2015/src/pages/shopping-cart/shopping-cart.component.js +117 -0
  258. package/esm2015/src/pages/shopping-cart/shopping-cart.module.js +20 -0
  259. package/esm2015/src/resolvers/flow.resolver.js +62 -0
  260. package/esm2015/src/resolvers/quote.resolver.js +74 -0
  261. package/esm2015/src/services/doc-gen.service.js +33 -0
  262. package/esm2015/src/services/flow-dialog.service.js +123 -0
  263. package/esm2015/src/services/flow-router.service.js +136 -0
  264. package/esm2015/src/services/flow.service.js +77 -0
  265. package/esm2015/src/services/index.js +2 -0
  266. package/esm2015/src/types/context-route.types.js +2 -0
  267. package/esm2015/src/types/flow-customization.types.js +3 -0
  268. package/esm2015/src/types/index.js +3 -0
  269. package/esm2015/src/types/route.types.js +2 -0
  270. package/esm2015/src/utils/flow.utils.js +22 -0
  271. package/esm2015/src/utils/index.js +2 -0
  272. package/esm2015/veloceapps-sdk.js +5 -0
  273. package/fesm2015/veloceapps-sdk-cms.js +1443 -0
  274. package/fesm2015/veloceapps-sdk-cms.js.map +1 -0
  275. package/fesm2015/veloceapps-sdk-core.js +1035 -0
  276. package/fesm2015/veloceapps-sdk-core.js.map +1 -0
  277. package/fesm2015/veloceapps-sdk-runtime.js +3896 -0
  278. package/fesm2015/veloceapps-sdk-runtime.js.map +1 -0
  279. package/fesm2015/veloceapps-sdk.js +2758 -0
  280. package/fesm2015/veloceapps-sdk.js.map +1 -0
  281. package/index.d.ts +1 -0
  282. package/package.json +50 -0
  283. package/runtime/components/component-preview/component-preview.component.d.ts +27 -0
  284. package/runtime/components/index.d.ts +4 -0
  285. package/runtime/components/section-renderer/section-renderer.component.d.ts +25 -0
  286. package/runtime/components/ui-runtime/runtime.component.d.ts +53 -0
  287. package/runtime/components/ui-runtime-preview/runtime-preview.component.d.ts +27 -0
  288. package/runtime/execution/components/children-placeholder/children-placeholder.component.d.ts +30 -0
  289. package/runtime/execution/components/context-provider/context-provider.component.d.ts +14 -0
  290. package/runtime/execution/components/execution-section-renderer/execution-section-renderer.component.d.ts +25 -0
  291. package/runtime/execution/components/federated/federated.component.d.ts +36 -0
  292. package/runtime/execution/components/velo-attribute/velo-attribute.component.d.ts +19 -0
  293. package/runtime/execution/components/velo-multiselect/velo-multiselect.component.d.ts +35 -0
  294. package/runtime/execution/components/velo-port-checkbox/velo-port-checkbox.component.d.ts +22 -0
  295. package/runtime/execution/components/velo-port-dropdown/velo-port-dropdown.component.d.ts +22 -0
  296. package/runtime/execution/components/velo-port-radio/velo-port-radio.component.d.ts +28 -0
  297. package/runtime/execution/components/velo-type/velo-type.component.d.ts +31 -0
  298. package/runtime/execution/directives/section-script.directive.d.ts +59 -0
  299. package/runtime/execution/directives/sf-query.directive.d.ts +15 -0
  300. package/runtime/execution/directives/velo-attribute.directive.d.ts +26 -0
  301. package/runtime/execution/directives/velo-port.directive.d.ts +74 -0
  302. package/runtime/execution/directives/vl-approval.directive.d.ts +10 -0
  303. package/runtime/execution/directives/vl-document-attachments.directive.d.ts +15 -0
  304. package/runtime/execution/directives/vl-document-templates.directive.d.ts +33 -0
  305. package/runtime/execution/directives/vl-quote.directive.d.ts +14 -0
  306. package/runtime/execution/directives/vl-ramp.directive.d.ts +15 -0
  307. package/runtime/execution/runtime-execution.module.d.ts +27 -0
  308. package/runtime/execution/utils/federated.util.d.ts +6 -0
  309. package/runtime/index.d.ts +4 -0
  310. package/runtime/package.json +10 -0
  311. package/runtime/runtime.module.d.ts +18 -0
  312. package/runtime/services/cart.service.d.ts +15 -0
  313. package/runtime/services/collapsible-state.service.d.ts +15 -0
  314. package/runtime/services/configuration.service.d.ts +19 -0
  315. package/runtime/services/current-state.service.d.ts +8 -0
  316. package/runtime/services/form-scope.service.d.ts +20 -0
  317. package/runtime/services/index.d.ts +3 -0
  318. package/runtime/services/product-model-cache.service.d.ts +14 -0
  319. package/runtime/services/runtime-context.service.d.ts +16 -0
  320. package/runtime/services/runtime-form.service.d.ts +24 -0
  321. package/runtime/services/runtime.service.d.ts +43 -0
  322. package/runtime/services/section-helper.service.d.ts +8 -0
  323. package/runtime/services/section-scope.service.d.ts +14 -0
  324. package/runtime/services/section-store.service.d.ts +11 -0
  325. package/runtime/services/section.service.d.ts +30 -0
  326. package/runtime/types/bound-data.types.d.ts +13 -0
  327. package/runtime/types/index.d.ts +1 -0
  328. package/runtime/types/runtime.types.d.ts +19 -0
  329. package/runtime/types/script-registry.types.d.ts +13 -0
  330. package/runtime/utils/line-item.util.d.ts +34 -0
  331. package/runtime/utils/section.utils.d.ts +2 -0
  332. package/runtime/utils/sections-binder.helper.d.ts +16 -0
  333. package/runtime/veloceapps-sdk-runtime.d.ts +5 -0
  334. package/src/components/dialog/dialog.component.d.ts +13 -0
  335. package/src/components/dialog/dialog.module.d.ts +9 -0
  336. package/src/components/dialog/dialog.types.d.ts +6 -0
  337. package/src/components/doc-gen/doc-gen.component.d.ts +26 -0
  338. package/src/components/doc-gen/doc-gen.module.d.ts +9 -0
  339. package/src/components/header/cart-overlay/cart-preview.component.d.ts +36 -0
  340. package/src/components/header/cart-overlay/cart-preview.module.d.ts +14 -0
  341. package/src/components/header/header.component.d.ts +64 -0
  342. package/src/components/header/header.module.d.ts +15 -0
  343. package/src/components/header/header.types.d.ts +20 -0
  344. package/src/components/header/metrics/index.d.ts +1 -0
  345. package/src/components/header/metrics/metrics.component.d.ts +49 -0
  346. package/src/components/header/metrics/metrics.definitions.d.ts +4 -0
  347. package/src/components/header/metrics/metrics.module.d.ts +17 -0
  348. package/src/constants.d.ts +1 -0
  349. package/src/flow-routing.module.d.ts +13 -0
  350. package/src/flow.component.d.ts +23 -0
  351. package/src/flow.module.d.ts +16 -0
  352. package/src/guards/context.guard.d.ts +19 -0
  353. package/src/guards/index.d.ts +1 -0
  354. package/src/guards/product-unload.guard.d.ts +17 -0
  355. package/src/guards/root.guard.d.ts +15 -0
  356. package/src/index.d.ts +6 -0
  357. package/src/pages/catalog/catalog.component.d.ts +32 -0
  358. package/src/pages/catalog/catalog.module.d.ts +10 -0
  359. package/src/pages/debug/debug.component.d.ts +25 -0
  360. package/src/pages/debug/debug.module.d.ts +14 -0
  361. package/src/pages/empty-account/empty-account.component.d.ts +5 -0
  362. package/src/pages/empty-account/empty-account.module.d.ts +10 -0
  363. package/src/pages/legacy-product/legacy-product.component.d.ts +37 -0
  364. package/src/pages/legacy-product/legacy-product.module.d.ts +10 -0
  365. package/src/pages/product/product.component.d.ts +32 -0
  366. package/src/pages/product/product.module.d.ts +10 -0
  367. package/src/pages/record-not-found/record-not-found.component.d.ts +11 -0
  368. package/src/pages/record-not-found/record-not-found.module.d.ts +9 -0
  369. package/src/pages/remote/remote.component.d.ts +47 -0
  370. package/src/pages/remote/remote.module.d.ts +10 -0
  371. package/src/pages/remote/remote.types.d.ts +4 -0
  372. package/src/pages/shopping-cart/shopping-cart.component.d.ts +32 -0
  373. package/src/pages/shopping-cart/shopping-cart.module.d.ts +10 -0
  374. package/src/resolvers/flow.resolver.d.ts +16 -0
  375. package/src/resolvers/quote.resolver.d.ts +20 -0
  376. package/src/services/doc-gen.service.d.ts +13 -0
  377. package/src/services/flow-dialog.service.d.ts +26 -0
  378. package/src/services/flow-router.service.d.ts +36 -0
  379. package/src/services/flow.service.d.ts +17 -0
  380. package/src/services/index.d.ts +1 -0
  381. package/src/types/context-route.types.d.ts +5 -0
  382. package/src/types/flow-customization.types.d.ts +11 -0
  383. package/src/types/index.d.ts +2 -0
  384. package/src/types/route.types.d.ts +9 -0
  385. package/src/utils/flow.utils.d.ts +8 -0
  386. package/src/utils/index.d.ts +1 -0
  387. package/veloceapps-sdk.d.ts +5 -0
@@ -0,0 +1,22 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class SectionStoreService {
4
+ constructor() {
5
+ this._componentFactories = [];
6
+ }
7
+ set componentFactories(data) {
8
+ this._componentFactories = data;
9
+ }
10
+ get componentFactories() {
11
+ return this._componentFactories;
12
+ }
13
+ getComponentFactory(section) {
14
+ return this.componentFactories.find(f => f.selector === section.dynamicSelector);
15
+ }
16
+ }
17
+ SectionStoreService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: SectionStoreService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
18
+ SectionStoreService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: SectionStoreService });
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: SectionStoreService, decorators: [{
20
+ type: Injectable
21
+ }] });
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi1zdG9yZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvcnVudGltZS9zZXJ2aWNlcy9zZWN0aW9uLXN0b3JlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFvQixVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSTdELE1BQU0sT0FBTyxtQkFBbUI7SUFEaEM7UUFFVSx3QkFBbUIsR0FBNEIsRUFBRSxDQUFDO0tBYTNEO0lBWEMsSUFBVyxrQkFBa0IsQ0FBQyxJQUE2QjtRQUN6RCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFXLGtCQUFrQjtRQUMzQixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztJQUNsQyxDQUFDO0lBRU0sbUJBQW1CLENBQUMsT0FBZ0I7UUFDekMsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsS0FBSyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDbkYsQ0FBQzs7aUhBYlUsbUJBQW1CO3FIQUFuQixtQkFBbUI7NEZBQW5CLG1CQUFtQjtrQkFEL0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudEZhY3RvcnksIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNlY3Rpb24gfSBmcm9tICdAdmVsb2NlYXBwcy9jb3JlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNlY3Rpb25TdG9yZVNlcnZpY2Uge1xuICBwcml2YXRlIF9jb21wb25lbnRGYWN0b3JpZXM6IENvbXBvbmVudEZhY3Rvcnk8YW55PltdID0gW107XG5cbiAgcHVibGljIHNldCBjb21wb25lbnRGYWN0b3JpZXMoZGF0YTogQ29tcG9uZW50RmFjdG9yeTxhbnk+W10pIHtcbiAgICB0aGlzLl9jb21wb25lbnRGYWN0b3JpZXMgPSBkYXRhO1xuICB9XG5cbiAgcHVibGljIGdldCBjb21wb25lbnRGYWN0b3JpZXMoKTogQ29tcG9uZW50RmFjdG9yeTxhbnk+W10ge1xuICAgIHJldHVybiB0aGlzLl9jb21wb25lbnRGYWN0b3JpZXM7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q29tcG9uZW50RmFjdG9yeShzZWN0aW9uOiBTZWN0aW9uKTogQ29tcG9uZW50RmFjdG9yeTxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5jb21wb25lbnRGYWN0b3JpZXMuZmluZChmID0+IGYuc2VsZWN0b3IgPT09IHNlY3Rpb24uZHluYW1pY1NlbGVjdG9yKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,124 @@
1
+ import { __decorate } from "tslib";
2
+ import { ScrollingModule as ExperimentalScrollingModule } from '@angular/cdk-experimental/scrolling';
3
+ import { ScrollingModule } from '@angular/cdk/scrolling';
4
+ import { CommonModule } from '@angular/common';
5
+ import '@angular/compiler';
6
+ import { Component, Injectable, Input, NgModule, ViewChildren, ViewEncapsulation, } from '@angular/core';
7
+ import { VeloceElementsModule } from '@veloce/elements';
8
+ import { CoreModule, EntityUtil, UUID } from '@veloceapps/core';
9
+ import { set, values } from 'lodash';
10
+ import { RuntimeExecutionModule } from '../execution/runtime-execution.module';
11
+ import { SectionHelperService } from './section-helper.service';
12
+ import * as i0 from "@angular/core";
13
+ import * as i1 from "./section-store.service";
14
+ const SHA1 = UUID.SHA1();
15
+ export class BaseSectionComponent {
16
+ }
17
+ BaseSectionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: BaseSectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
18
+ BaseSectionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: BaseSectionComponent, selector: "ng-component", inputs: { form: "form", section: "section" }, viewQueries: [{ propertyName: "templates", predicate: ["customTemplate"], descendants: true }], ngImport: i0, template: '', isInline: true });
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: BaseSectionComponent, decorators: [{
20
+ type: Component,
21
+ args: [{ template: '' }]
22
+ }], propDecorators: { form: [{
23
+ type: Input
24
+ }], section: [{
25
+ type: Input
26
+ }], templates: [{
27
+ type: ViewChildren,
28
+ args: ['customTemplate']
29
+ }] } });
30
+ export class SectionsService {
31
+ constructor(compiler, m, sectionStore) {
32
+ this.compiler = compiler;
33
+ this.m = m;
34
+ this.sectionStore = sectionStore;
35
+ this.moduleType = null;
36
+ this.moduleInstance = null;
37
+ }
38
+ compileModule(sections, isViewEncapsulated) {
39
+ const uniqueSections = this.getUniqueSections(sections);
40
+ this.moduleType = this.getModuleType(uniqueSections, isViewEncapsulated);
41
+ this.moduleInstance = this.compiler.compileModuleAndAllComponentsSync(this.moduleType);
42
+ this.sectionStore.componentFactories = this.moduleInstance.componentFactories;
43
+ }
44
+ destroy() {
45
+ if (this.moduleInstance) {
46
+ this.sectionStore.componentFactories = [];
47
+ this.moduleInstance = null;
48
+ }
49
+ if (this.moduleType) {
50
+ this.compiler.clearCacheFor(this.moduleType);
51
+ this.moduleType = null;
52
+ }
53
+ }
54
+ getDecoratedComponents(sections, isViewEncapsulated = false) {
55
+ const result = [];
56
+ sections.forEach(section => {
57
+ var _a;
58
+ const transpiledTemplate = this.getTranspiledTemplate(section);
59
+ const DynamicComponent = Component({
60
+ selector: section.dynamicSelector,
61
+ template: transpiledTemplate,
62
+ styles: [atob(section.styles || '')],
63
+ providers: [SectionHelperService],
64
+ encapsulation: isViewEncapsulated ? ViewEncapsulation.ShadowDom : ViewEncapsulation.Emulated,
65
+ jit: true,
66
+ })(class C extends BaseSectionComponent {
67
+ });
68
+ this.applySelectorField(DynamicComponent, (_a = section.dynamicSelector) !== null && _a !== void 0 ? _a : '');
69
+ result.push(DynamicComponent);
70
+ });
71
+ return result;
72
+ }
73
+ getModuleType(sections, isViewEncapsulated) {
74
+ const decoratedComponents = this.getDecoratedComponents(sections, isViewEncapsulated);
75
+ let DynamicModule = class DynamicModule {
76
+ };
77
+ DynamicModule = __decorate([
78
+ NgModule({
79
+ imports: [
80
+ CommonModule,
81
+ RuntimeExecutionModule,
82
+ CoreModule,
83
+ VeloceElementsModule,
84
+ ScrollingModule,
85
+ ExperimentalScrollingModule,
86
+ ],
87
+ declarations: [decoratedComponents],
88
+ jit: true,
89
+ })
90
+ ], DynamicModule);
91
+ return DynamicModule;
92
+ }
93
+ applySelectorField(target, dynamicSelector) {
94
+ set(target, '$$dynamicSelector', dynamicSelector);
95
+ }
96
+ getUniqueSections(sections) {
97
+ const uniqueSections = {};
98
+ sections.forEach(section => {
99
+ section.hash = SHA1.hex(section.template);
100
+ const existingSection = section.hash ? uniqueSections[section.hash] : undefined;
101
+ if (existingSection && existingSection.template === section.template) {
102
+ section.dynamicSelector = existingSection.dynamicSelector;
103
+ }
104
+ else if (section.hash) {
105
+ section.dynamicSelector = `section-${section.id}`;
106
+ uniqueSections[section.hash] = section;
107
+ }
108
+ });
109
+ return values(uniqueSections);
110
+ }
111
+ getTranspiledTemplate(section) {
112
+ let template = section.template ? atob(section.template) : '';
113
+ if (!EntityUtil.isEmpty(section.script) && template.indexOf('<section-script') === -1) {
114
+ template = `<section-script></section-script>`.concat(template);
115
+ }
116
+ return template;
117
+ }
118
+ }
119
+ SectionsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: SectionsService, deps: [{ token: i0.Compiler }, { token: i0.NgModuleRef }, { token: i1.SectionStoreService }], target: i0.ɵɵFactoryTarget.Injectable });
120
+ SectionsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: SectionsService });
121
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: SectionsService, decorators: [{
122
+ type: Injectable
123
+ }], ctorParameters: function () { return [{ type: i0.Compiler }, { type: i0.NgModuleRef }, { type: i1.SectionStoreService }]; } });
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvcnVudGltZS9zZXJ2aWNlcy9zZWN0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxlQUFlLElBQUksMkJBQTJCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNyRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxFQUVMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsS0FBSyxFQUVMLFFBQVEsRUFLUixZQUFZLEVBQ1osaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFXLElBQUksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7QUFHaEUsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0FBR3pCLE1BQU0sT0FBTyxvQkFBb0I7O2tIQUFwQixvQkFBb0I7c0dBQXBCLG9CQUFvQixrTUFEVixFQUFFOzRGQUNaLG9CQUFvQjtrQkFEaEMsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUU7OEJBR2xCLElBQUk7c0JBRFYsS0FBSztnQkFJQyxPQUFPO3NCQURiLEtBQUs7Z0JBR29DLFNBQVM7c0JBQWxELFlBQVk7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LENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBRXRFLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7WUFDckYsUUFBUSxHQUFHLG1DQUFtQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUNqRTtRQUVELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7OzZHQXBHVSxlQUFlO2lIQUFmLGVBQWU7NEZBQWYsZUFBZTtrQkFEM0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNjcm9sbGluZ01vZHVsZSBhcyBFeHBlcmltZW50YWxTY3JvbGxpbmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGstZXhwZXJpbWVudGFsL3Njcm9sbGluZyc7XG5pbXBvcnQgeyBTY3JvbGxpbmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvc2Nyb2xsaW5nJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgJ0Bhbmd1bGFyL2NvbXBpbGVyJztcbmltcG9ydCB7XG4gIENvbXBpbGVyLFxuICBDb21wb25lbnQsXG4gIEluamVjdGFibGUsXG4gIElucHV0LFxuICBNb2R1bGVXaXRoQ29tcG9uZW50RmFjdG9yaWVzLFxuICBOZ01vZHVsZSxcbiAgTmdNb2R1bGVSZWYsXG4gIFF1ZXJ5TGlzdCxcbiAgVGVtcGxhdGVSZWYsXG4gIFR5cGUsXG4gIFZpZXdDaGlsZHJlbixcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVmVsb2NlRWxlbWVudHNNb2R1bGUgfSBmcm9tICdAdmVsb2NlL2VsZW1lbnRzJztcbmltcG9ydCB7IENvcmVNb2R1bGUsIEVudGl0eVV0aWwsIFNlY3Rpb24sIFVVSUQgfSBmcm9tICdAdmVsb2NlYXBwcy9jb3JlJztcbmltcG9ydCB7IHNldCwgdmFsdWVzIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IFJ1bnRpbWVFeGVjdXRpb25Nb2R1bGUgfSBmcm9tICcuLi9leGVjdXRpb24vcnVudGltZS1leGVjdXRpb24ubW9kdWxlJztcbmltcG9ydCB7IFNlY3Rpb25IZWxwZXJTZXJ2aWNlIH0gZnJvbSAnLi9zZWN0aW9uLWhlbHBlci5zZXJ2aWNlJztcbmltcG9ydCB7IFNlY3Rpb25TdG9yZVNlcnZpY2UgfSBmcm9tICcuL3NlY3Rpb24tc3RvcmUuc2VydmljZSc7XG5cbmNvbnN0IFNIQTEgPSBVVUlELlNIQTEoKTtcblxuQENvbXBvbmVudCh7IHRlbXBsYXRlOiAnJyB9KVxuZXhwb3J0IGNsYXNzIEJhc2VTZWN0aW9uQ29tcG9uZW50IHtcbiAgQElucHV0KClcbiAgcHVibGljIGZvcm0hOiBGb3JtR3JvdXA7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNlY3Rpb24hOiBTZWN0aW9uO1xuXG4gIEBWaWV3Q2hpbGRyZW4oJ2N1c3RvbVRlbXBsYXRlJykgcHJvdGVjdGVkIHRlbXBsYXRlcyE6IFF1ZXJ5TGlzdDxUZW1wbGF0ZVJlZjxhbnk+Pjtcbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNlY3Rpb25zU2VydmljZSB7XG4gIHByaXZhdGUgbW9kdWxlVHlwZTogVHlwZTxhbnk+IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgbW9kdWxlSW5zdGFuY2U6IE1vZHVsZVdpdGhDb21wb25lbnRGYWN0b3JpZXM8YW55PiB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29tcGlsZXI6IENvbXBpbGVyLCBwcml2YXRlIG06IE5nTW9kdWxlUmVmPGFueT4sIHByaXZhdGUgc2VjdGlvblN0b3JlOiBTZWN0aW9uU3RvcmVTZXJ2aWNlKSB7fVxuXG4gIHB1YmxpYyBjb21waWxlTW9kdWxlKHNlY3Rpb25zOiBTZWN0aW9uW10sIGlzVmlld0VuY2Fwc3VsYXRlZD86IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBjb25zdCB1bmlxdWVTZWN0aW9ucyA9IHRoaXMuZ2V0VW5pcXVlU2VjdGlvbnMoc2VjdGlvbnMpO1xuXG4gICAgdGhpcy5tb2R1bGVUeXBlID0gdGhpcy5nZXRNb2R1bGVUeXBlKHVuaXF1ZVNlY3Rpb25zLCBpc1ZpZXdFbmNhcHN1bGF0ZWQpO1xuICAgIHRoaXMubW9kdWxlSW5zdGFuY2UgPSB0aGlzLmNvbXBpbGVyLmNvbXBpbGVNb2R1bGVBbmRBbGxDb21wb25lbnRzU3luYyh0aGlzLm1vZHVsZVR5cGUpO1xuXG4gICAgdGhpcy5zZWN0aW9uU3RvcmUuY29tcG9uZW50RmFjdG9yaWVzID0gdGhpcy5tb2R1bGVJbnN0YW5jZS5jb21wb25lbnRGYWN0b3JpZXM7XG4gIH1cblxuICBwdWJsaWMgZGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5tb2R1bGVJbnN0YW5jZSkge1xuICAgICAgdGhpcy5zZWN0aW9uU3RvcmUuY29tcG9uZW50RmFjdG9yaWVzID0gW107XG4gICAgICB0aGlzLm1vZHVsZUluc3RhbmNlID0gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5tb2R1bGVUeXBlKSB7XG4gICAgICB0aGlzLmNvbXBpbGVyLmNsZWFyQ2FjaGVGb3IodGhpcy5tb2R1bGVUeXBlKTtcbiAgICAgIHRoaXMubW9kdWxlVHlwZSA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXREZWNvcmF0ZWRDb21wb25lbnRzKHNlY3Rpb25zOiBTZWN0aW9uW10sIGlzVmlld0VuY2Fwc3VsYXRlZDogYm9vbGVhbiA9IGZhbHNlKTogYW55W10ge1xuICAgIGNvbnN0IHJlc3VsdDogYW55W10gPSBbXTtcblxuICAgIHNlY3Rpb25zLmZvckVhY2goc2VjdGlvbiA9PiB7XG4gICAgICBjb25zdCB0cmFuc3BpbGVkVGVtcGxhdGUgPSB0aGlzLmdldFRyYW5zcGlsZWRUZW1wbGF0ZShzZWN0aW9uKTtcblxuICAgICAgY29uc3QgRHluYW1pY0NvbXBvbmVudCA9IENvbXBvbmVudCh7XG4gICAgICAgIHNlbGVjdG9yOiBzZWN0aW9uLmR5bmFtaWNTZWxlY3RvcixcbiAgICAgICAgdGVtcGxhdGU6IHRyYW5zcGlsZWRUZW1wbGF0ZSxcbiAgICAgICAgc3R5bGVzOiBbYXRvYihzZWN0aW9uLnN0eWxlcyB8fCAnJyldLFxuICAgICAgICBwcm92aWRlcnM6IFtTZWN0aW9uSGVscGVyU2VydmljZV0sXG4gICAgICAgIGVuY2Fwc3VsYXRpb246IGlzVmlld0VuY2Fwc3VsYXRlZCA/IFZpZXdFbmNhcHN1bGF0aW9uLlNoYWRvd0RvbSA6IFZpZXdFbmNhcHN1bGF0aW9uLkVtdWxhdGVkLFxuICAgICAgICBqaXQ6IHRydWUsXG4gICAgICB9KShjbGFzcyBDIGV4dGVuZHMgQmFzZVNlY3Rpb25Db21wb25lbnQge30pO1xuXG4gICAgICB0aGlzLmFwcGx5U2VsZWN0b3JGaWVsZChEeW5hbWljQ29tcG9uZW50LCBzZWN0aW9uLmR5bmFtaWNTZWxlY3RvciA/PyAnJyk7XG4gICAgICByZXN1bHQucHVzaChEeW5hbWljQ29tcG9uZW50KTtcbiAgICB9KTtcblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcml2YXRlIGdldE1vZHVsZVR5cGUoc2VjdGlvbnM6IFNlY3Rpb25bXSwgaXNWaWV3RW5jYXBzdWxhdGVkPzogYm9vbGVhbik6IFR5cGU8YW55PiB7XG4gICAgY29uc3QgZGVjb3JhdGVkQ29tcG9uZW50cyA9IHRoaXMuZ2V0RGVjb3JhdGVkQ29tcG9uZW50cyhzZWN0aW9ucywgaXNWaWV3RW5jYXBzdWxhdGVkKTtcblxuICAgIEBOZ01vZHVsZSh7XG4gICAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgUnVudGltZUV4ZWN1dGlvbk1vZHVsZSxcbiAgICAgICAgQ29yZU1vZHVsZSxcbiAgICAgICAgVmVsb2NlRWxlbWVudHNNb2R1bGUsXG4gICAgICAgIFNjcm9sbGluZ01vZHVsZSxcbiAgICAgICAgRXhwZXJpbWVudGFsU2Nyb2xsaW5nTW9kdWxlLFxuICAgICAgXSxcbiAgICAgIGRlY2xhcmF0aW9uczogW2RlY29yYXRlZENvbXBvbmVudHNdLFxuICAgICAgaml0OiB0cnVlLFxuICAgIH0pXG4gICAgY2xhc3MgRHluYW1pY01vZHVsZSB7fVxuXG4gICAgcmV0dXJuIER5bmFtaWNNb2R1bGU7XG4gIH1cblxuICBwcml2YXRlIGFwcGx5U2VsZWN0b3JGaWVsZCh0YXJnZXQ6IGFueSwgZHluYW1pY1NlbGVjdG9yOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBzZXQodGFyZ2V0LCAnJCRkeW5hbWljU2VsZWN0b3InLCBkeW5hbWljU2VsZWN0b3IpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRVbmlxdWVTZWN0aW9ucyhzZWN0aW9uczogU2VjdGlvbltdKTogU2VjdGlvbltdIHtcbiAgICBjb25zdCB1bmlxdWVTZWN0aW9uczogeyBbaW5kZXg6IHN0cmluZ106IFNlY3Rpb24gfSA9IHt9O1xuXG4gICAgc2VjdGlvbnMuZm9yRWFjaChzZWN0aW9uID0+IHtcbiAgICAgIHNlY3Rpb24uaGFzaCA9IFNIQTEuaGV4KHNlY3Rpb24udGVtcGxhdGUpO1xuXG4gICAgICBjb25zdCBleGlzdGluZ1NlY3Rpb24gPSBzZWN0aW9uLmhhc2ggPyB1bmlxdWVTZWN0aW9uc1tzZWN0aW9uLmhhc2hdIDogdW5kZWZpbmVkO1xuICAgICAgaWYgKGV4aXN0aW5nU2VjdGlvbiAmJiBleGlzdGluZ1NlY3Rpb24udGVtcGxhdGUgPT09IHNlY3Rpb24udGVtcGxhdGUpIHtcbiAgICAgICAgc2VjdGlvbi5keW5hbWljU2VsZWN0b3IgPSBleGlzdGluZ1NlY3Rpb24uZHluYW1pY1NlbGVjdG9yO1xuICAgICAgfSBlbHNlIGlmIChzZWN0aW9uLmhhc2gpIHtcbiAgICAgICAgc2VjdGlvbi5keW5hbWljU2VsZWN0b3IgPSBgc2VjdGlvbi0ke3NlY3Rpb24uaWR9YDtcblxuICAgICAgICB1bmlxdWVTZWN0aW9uc1tzZWN0aW9uLmhhc2hdID0gc2VjdGlvbjtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiB2YWx1ZXModW5pcXVlU2VjdGlvbnMpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRUcmFuc3BpbGVkVGVtcGxhdGUoc2VjdGlvbjogU2VjdGlvbik6IHN0cmluZyB7XG4gICAgbGV0IHRlbXBsYXRlOiBzdHJpbmcgPSBzZWN0aW9uLnRlbXBsYXRlID8gYXRvYihzZWN0aW9uLnRlbXBsYXRlKSA6ICcnO1xuXG4gICAgaWYgKCFFbnRpdHlVdGlsLmlzRW1wdHkoc2VjdGlvbi5zY3JpcHQpICYmIHRlbXBsYXRlLmluZGV4T2YoJzxzZWN0aW9uLXNjcmlwdCcpID09PSAtMSkge1xuICAgICAgdGVtcGxhdGUgPSBgPHNlY3Rpb24tc2NyaXB0Pjwvc2VjdGlvbi1zY3JpcHQ+YC5jb25jYXQodGVtcGxhdGUpO1xuICAgIH1cblxuICAgIHJldHVybiB0ZW1wbGF0ZTtcbiAgfVxufVxuIl19
@@ -0,0 +1,7 @@
1
+ export var BoundDataType;
2
+ (function (BoundDataType) {
3
+ BoundDataType[BoundDataType["TYPE"] = 0] = "TYPE";
4
+ BoundDataType[BoundDataType["ATTRIBUTE"] = 1] = "ATTRIBUTE";
5
+ BoundDataType[BoundDataType["PORT"] = 2] = "PORT";
6
+ })(BoundDataType || (BoundDataType = {}));
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm91bmQtZGF0YS50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3J1bnRpbWUvdHlwZXMvYm91bmQtZGF0YS50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQU4sSUFBWSxhQUlYO0FBSkQsV0FBWSxhQUFhO0lBQ3ZCLGlEQUFJLENBQUE7SUFDSiwyREFBUyxDQUFBO0lBQ1QsaURBQUksQ0FBQTtBQUNOLENBQUMsRUFKVyxhQUFhLEtBQWIsYUFBYSxRQUl4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByb2R1Y3RNb2RlbEF0dHJpYnV0ZSwgUHJvZHVjdFBvcnQsIFByb2R1Y3RUeXBlLCBTZWN0aW9uUGF0aCB9IGZyb20gJ0B2ZWxvY2VhcHBzL2NvcmUnO1xuXG5leHBvcnQgZW51bSBCb3VuZERhdGFUeXBlIHtcbiAgVFlQRSxcbiAgQVRUUklCVVRFLFxuICBQT1JULFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJvdW5kRGF0YSB7XG4gIG5hbWU6IHN0cmluZztcbiAgZW50aXR5OiBQcm9kdWN0VHlwZSB8IFByb2R1Y3RNb2RlbEF0dHJpYnV0ZSB8IFByb2R1Y3RQb3J0O1xuICBlbnRpdHlUeXBlOiBzdHJpbmc7XG4gIGhvc3Q/OiBzdHJpbmc7XG4gIHBhdGg6IFNlY3Rpb25QYXRoO1xufVxuIl19
@@ -0,0 +1,2 @@
1
+ export * from './runtime.types';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9ydW50aW1lL3R5cGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsaUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3J1bnRpbWUudHlwZXMnO1xuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3J1bnRpbWUvdHlwZXMvcnVudGltZS50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTGluZUl0ZW0sIFVJRGVmaW5pdGlvbiB9IGZyb20gJ0B2ZWxvY2VhcHBzL2NvcmUnO1xuaW1wb3J0IHsgUnVudGltZUNvbnRleHQgfSBmcm9tICdAdmVsb2NlYXBwcy9zZGsvY29yZSc7XG5pbXBvcnQgeyBEaWN0aW9uYXJ5IH0gZnJvbSAnbG9kYXNoJztcblxuZXhwb3J0IGludGVyZmFjZSBTb2x1dGlvblJlYWR5QXdhcmUge1xuICBvblNvbHV0aW9uUmVhZHkobGluZUl0ZW06IExpbmVJdGVtKTogdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTb2x1dGlvblVwZGF0ZWRBd2FyZSB7XG4gIG9uU29sdXRpb25VcGRhdGVkKGxpbmVJdGVtOiBMaW5lSXRlbSk6IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlRGF0YSB7XG4gIGlkOiBzdHJpbmc7XG4gIGFjdGlvbjogc3RyaW5nO1xuICB2YWx1ZU9wdGlvbj86IHN0cmluZztcbiAgc2VsZWN0ZWRWYWx1ZU9wdGlvbnM/OiBzdHJpbmdbXTtcbiAgb3B0aW9ucz86IERpY3Rpb25hcnk8YW55Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMZWdhY3lSdW50aW1lQ29udGV4dCBleHRlbmRzIE9taXQ8UnVudGltZUNvbnRleHQsICd1aURlZmluaXRpb24nPiB7XG4gIHVpRGVmaW5pdGlvbj86IFVJRGVmaW5pdGlvbjtcbn1cbiJdfQ==
@@ -0,0 +1,51 @@
1
+ import { EntityUtil } from '@veloceapps/core';
2
+ export class ScriptRegistry {
3
+ constructor() {
4
+ this.store = new Map();
5
+ this.scope = new Map();
6
+ }
7
+ exists(scriptId) {
8
+ const sectionIds = this.store.get(scriptId);
9
+ return !EntityUtil.isEmpty(sectionIds);
10
+ }
11
+ isRegistered(scriptId, sectionId) {
12
+ const sectionIds = this.store.get(scriptId);
13
+ return !EntityUtil.isEmpty(sectionIds) && (sectionIds === null || sectionIds === void 0 ? void 0 : sectionIds.findIndex(entryId => entryId === sectionId)) !== -1;
14
+ }
15
+ doRegister(scriptId, sectionId) {
16
+ const sectionIds = this.store.get(scriptId);
17
+ if (!EntityUtil.isPresent(sectionIds)) {
18
+ this.store.set(scriptId, [sectionId]);
19
+ }
20
+ else if ((sectionIds === null || sectionIds === void 0 ? void 0 : sectionIds.findIndex(entryId => entryId === sectionId)) === -1) {
21
+ sectionIds.push(sectionId);
22
+ }
23
+ }
24
+ unRegister(scriptId, sectionId) {
25
+ const sectionIds = this.store.get(scriptId);
26
+ if (!sectionIds) {
27
+ return;
28
+ }
29
+ const index = sectionIds === null || sectionIds === void 0 ? void 0 : sectionIds.findIndex(entryId => entryId === sectionId);
30
+ if (index !== -1) {
31
+ sectionIds.splice(index, 1);
32
+ // Remove orphan
33
+ if (sectionIds.length < 1) {
34
+ this.store.delete(scriptId);
35
+ }
36
+ }
37
+ }
38
+ hasGlobalForScript(globalId) {
39
+ return this.scope.has(globalId);
40
+ }
41
+ getGlobalForScript(globalId) {
42
+ return this.scope.get(globalId);
43
+ }
44
+ setGlobalForScript(globalId, globalVariable) {
45
+ this.scope.set(globalId, globalVariable);
46
+ }
47
+ removeGlobalForScript(globalId) {
48
+ this.scope.delete(globalId);
49
+ }
50
+ }
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NyaXB0LXJlZ2lzdHJ5LnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvcnVudGltZS90eXBlcy9zY3JpcHQtcmVnaXN0cnkudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTlDLE1BQU0sT0FBTyxjQUFjO0lBSXpCO1FBQ0UsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRU0sTUFBTSxDQUFDLFFBQWdCO1FBQzVCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRTVDLE9BQU8sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFTSxZQUFZLENBQUMsUUFBZ0IsRUFBRSxTQUFpQjtRQUNyRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUU1QyxPQUFPLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFBLFVBQVUsYUFBVixVQUFVLHVCQUFWLFVBQVUsQ0FBRSxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEtBQUssU0FBUyxDQUFDLE1BQUssQ0FBQyxDQUFDLENBQUM7SUFDM0csQ0FBQztJQUVNLFVBQVUsQ0FBQyxRQUFnQixFQUFFLFNBQWlCO1FBQ25ELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRTVDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ3JDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7U0FDdkM7YUFBTSxJQUFJLENBQUEsVUFBVSxhQUFWLFVBQVUsdUJBQVYsVUFBVSxDQUFFLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sS0FBSyxTQUFTLENBQUMsTUFBSyxDQUFDLENBQUMsRUFBRTtZQUN6RSxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQzVCO0lBQ0gsQ0FBQztJQUVNLFVBQVUsQ0FBQyxRQUFnQixFQUFFLFNBQWlCO1FBQ25ELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRTVDLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDZixPQUFPO1NBQ1I7UUFFRCxNQUFNLEtBQUssR0FBRyxVQUFVLGFBQVYsVUFBVSx1QkFBVixVQUFVLENBQUUsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQyxDQUFDO1FBRXRFLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQ2hCLFVBQVUsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBRTVCLGdCQUFnQjtZQUNoQixJQUFJLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUN6QixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUM3QjtTQUNGO0lBQ0gsQ0FBQztJQUVNLGtCQUFrQixDQUFDLFFBQWdCO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVNLGtCQUFrQixDQUFDLFFBQWdCO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVNLGtCQUFrQixDQUFDLFFBQWdCLEVBQUUsY0FBbUI7UUFDN0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFTSxxQkFBcUIsQ0FBQyxRQUFnQjtRQUMzQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM5QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnRpdHlVdGlsIH0gZnJvbSAnQHZlbG9jZWFwcHMvY29yZSc7XG5cbmV4cG9ydCBjbGFzcyBTY3JpcHRSZWdpc3RyeSB7XG4gIHB1YmxpYyBzY29wZTogTWFwPHN0cmluZywgYW55PjtcbiAgcHJpdmF0ZSBzdG9yZTogTWFwPHN0cmluZywgc3RyaW5nW10+O1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuc3RvcmUgPSBuZXcgTWFwKCk7XG4gICAgdGhpcy5zY29wZSA9IG5ldyBNYXAoKTtcbiAgfVxuXG4gIHB1YmxpYyBleGlzdHMoc2NyaXB0SWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHNlY3Rpb25JZHMgPSB0aGlzLnN0b3JlLmdldChzY3JpcHRJZCk7XG5cbiAgICByZXR1cm4gIUVudGl0eVV0aWwuaXNFbXB0eShzZWN0aW9uSWRzKTtcbiAgfVxuXG4gIHB1YmxpYyBpc1JlZ2lzdGVyZWQoc2NyaXB0SWQ6IHN0cmluZywgc2VjdGlvbklkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCBzZWN0aW9uSWRzID0gdGhpcy5zdG9yZS5nZXQoc2NyaXB0SWQpO1xuXG4gICAgcmV0dXJuICFFbnRpdHlVdGlsLmlzRW1wdHkoc2VjdGlvbklkcykgJiYgc2VjdGlvbklkcz8uZmluZEluZGV4KGVudHJ5SWQgPT4gZW50cnlJZCA9PT0gc2VjdGlvbklkKSAhPT0gLTE7XG4gIH1cblxuICBwdWJsaWMgZG9SZWdpc3RlcihzY3JpcHRJZDogc3RyaW5nLCBzZWN0aW9uSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IHNlY3Rpb25JZHMgPSB0aGlzLnN0b3JlLmdldChzY3JpcHRJZCk7XG5cbiAgICBpZiAoIUVudGl0eVV0aWwuaXNQcmVzZW50KHNlY3Rpb25JZHMpKSB7XG4gICAgICB0aGlzLnN0b3JlLnNldChzY3JpcHRJZCwgW3NlY3Rpb25JZF0pO1xuICAgIH0gZWxzZSBpZiAoc2VjdGlvbklkcz8uZmluZEluZGV4KGVudHJ5SWQgPT4gZW50cnlJZCA9PT0gc2VjdGlvbklkKSA9PT0gLTEpIHtcbiAgICAgIHNlY3Rpb25JZHMucHVzaChzZWN0aW9uSWQpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyB1blJlZ2lzdGVyKHNjcmlwdElkOiBzdHJpbmcsIHNlY3Rpb25JZDogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3Qgc2VjdGlvbklkcyA9IHRoaXMuc3RvcmUuZ2V0KHNjcmlwdElkKTtcblxuICAgIGlmICghc2VjdGlvbklkcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGluZGV4ID0gc2VjdGlvbklkcz8uZmluZEluZGV4KGVudHJ5SWQgPT4gZW50cnlJZCA9PT0gc2VjdGlvbklkKTtcblxuICAgIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICAgIHNlY3Rpb25JZHMuc3BsaWNlKGluZGV4LCAxKTtcblxuICAgICAgLy8gUmVtb3ZlIG9ycGhhblxuICAgICAgaWYgKHNlY3Rpb25JZHMubGVuZ3RoIDwgMSkge1xuICAgICAgICB0aGlzLnN0b3JlLmRlbGV0ZShzY3JpcHRJZCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGhhc0dsb2JhbEZvclNjcmlwdChnbG9iYWxJZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2NvcGUuaGFzKGdsb2JhbElkKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRHbG9iYWxGb3JTY3JpcHQoZ2xvYmFsSWQ6IHN0cmluZyk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuc2NvcGUuZ2V0KGdsb2JhbElkKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRHbG9iYWxGb3JTY3JpcHQoZ2xvYmFsSWQ6IHN0cmluZywgZ2xvYmFsVmFyaWFibGU6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuc2NvcGUuc2V0KGdsb2JhbElkLCBnbG9iYWxWYXJpYWJsZSk7XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlR2xvYmFsRm9yU2NyaXB0KGdsb2JhbElkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnNjb3BlLmRlbGV0ZShnbG9iYWxJZCk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,273 @@
1
+ import { EntityUtil, UUID } from '@veloceapps/core';
2
+ export class LineItemPath {
3
+ constructor(path) {
4
+ this._relativePath = '';
5
+ this._relativeAbstractPath = '';
6
+ this._abstractPath = '';
7
+ this.path = path.toLowerCase();
8
+ }
9
+ set relativePath(relativePath) {
10
+ this._relativePath = relativePath.toLowerCase();
11
+ }
12
+ get relativePath() {
13
+ return this._relativePath;
14
+ }
15
+ set abstractPath(abstractPath) {
16
+ this._abstractPath = abstractPath.toLowerCase();
17
+ }
18
+ get abstractPath() {
19
+ return this._abstractPath || this.path;
20
+ }
21
+ set relativeAbstractPath(relativeAbstractPath) {
22
+ this._relativeAbstractPath = relativeAbstractPath.toLowerCase();
23
+ }
24
+ isEqualTo(sectionPath) {
25
+ if (!sectionPath || !this.path || !sectionPath.path) {
26
+ return false;
27
+ }
28
+ const otherPath = sectionPath.path.toLowerCase();
29
+ const isEqual = this.path === otherPath || this._relativePath === otherPath || this._relativeAbstractPath === otherPath;
30
+ //TODO ALE SORT OUT SEARCH
31
+ if (!isEqual) {
32
+ const abstractPathMatch = this._abstractPath === sectionPath.abstractPath.toLowerCase();
33
+ const relativePathMatch = this._relativePath
34
+ ? this._relativePath === sectionPath.relativePath.toLowerCase()
35
+ : false;
36
+ const relativeAbstractPathMatch = this._relativeAbstractPath && sectionPath.relativeAbstractPath
37
+ ? sectionPath.relativeAbstractPath.toLowerCase() === sectionPath.relativePath.toLowerCase() &&
38
+ this._relativeAbstractPath === sectionPath.relativePath.toLowerCase()
39
+ : false;
40
+ return abstractPathMatch && (relativePathMatch || relativeAbstractPathMatch);
41
+ }
42
+ return isEqual;
43
+ }
44
+ }
45
+ export class LineItemUtil {
46
+ static removeDeletedItems(original) {
47
+ var _a;
48
+ const root = EntityUtil.clone(original);
49
+ if (root) {
50
+ let items = [root];
51
+ for (let i = 0; i < items.length; i++) {
52
+ const item = items[i];
53
+ item.lineItems = ((_a = item.lineItems) !== null && _a !== void 0 ? _a : []).filter(l => l.actionCode !== 'DELETE');
54
+ items = items.concat(item.lineItems);
55
+ }
56
+ }
57
+ return root;
58
+ }
59
+ static replaceLineItemKeys(rootLineItem) {
60
+ const replaceFn = (item) => {
61
+ item.id = item.id ? 'DUMMY-' + item.id : item.id;
62
+ item.rootId = item.rootId ? 'DUMMY-' + item.rootId : item.rootId;
63
+ item.parentId = item.parentId ? 'DUMMY-' + item.parentId : item.parentId;
64
+ item.offeringInstanceId = item.offeringInstanceId ? 'DUMMY-' + item.offeringInstanceId : void 0;
65
+ item.offeringItemId = item.offeringItemId ? 'DUMMY-' + item.offeringItemId : void 0;
66
+ item.rampInstanceId = item.rampInstanceId ? 'DUMMY-' + item.rampInstanceId : void 0;
67
+ };
68
+ const traverseFn = (lineItem, callbackFn) => {
69
+ if (lineItem.lineItems && lineItem.lineItems.length > 0) {
70
+ lineItem.lineItems.forEach(childLineItem => {
71
+ callbackFn.apply(null, [childLineItem]);
72
+ traverseFn.apply(null, [childLineItem, callbackFn]);
73
+ });
74
+ }
75
+ };
76
+ replaceFn.apply(null, [rootLineItem]);
77
+ // rootLineItem.rootId = rootLineItem.id;
78
+ traverseFn.apply(null, [rootLineItem, replaceFn]);
79
+ }
80
+ static enrichPricingInfo(source, pricingDto) {
81
+ var _a;
82
+ const result = Object.assign({}, source);
83
+ if (pricingDto) {
84
+ result.productName = ((_a = pricingDto.properties) === null || _a === void 0 ? void 0 : _a.displayName) || pricingDto.productName;
85
+ result.type = pricingDto.type;
86
+ result.rootId = pricingDto.rootId;
87
+ result.assetId = pricingDto.assetId;
88
+ result.openOrderLineItemId = pricingDto.openOrderLineItemId;
89
+ result.activated = pricingDto.activated;
90
+ result.actionCode = pricingDto.actionCode;
91
+ result.serviceStartDate = pricingDto.serviceStartDate;
92
+ result.effectiveDate = pricingDto.effectiveDate;
93
+ result.startDate = pricingDto.startDate;
94
+ result.endDate = pricingDto.endDate;
95
+ result.offeringId = pricingDto.offeringId;
96
+ result.offeringItemId = pricingDto.offeringItemId;
97
+ result.offeringInstanceId = pricingDto.offeringInstanceId;
98
+ result.rampInstanceId = pricingDto.rampInstanceId;
99
+ result.planId = pricingDto.planId;
100
+ if (!result.chargeItems) {
101
+ result.chargeItems = pricingDto.chargeItems;
102
+ }
103
+ result.chargeGroupItems = [];
104
+ }
105
+ if (source.lineItems && source.lineItems.length > 0) {
106
+ result.lineItems = [];
107
+ source.lineItems.forEach((childSource) => {
108
+ const childDto = pricingDto && pricingDto.lineItems && pricingDto.lineItems.find(c => childSource.id === c.id);
109
+ const childItem = LineItemUtil.enrichPricingInfo(childSource, childDto);
110
+ result.lineItems.push(childItem);
111
+ });
112
+ }
113
+ return result;
114
+ }
115
+ static getLineItemPath(lineItem, rootLineItem) {
116
+ let path;
117
+ if (!lineItem.parentId) {
118
+ path = new LineItemPath('/' + lineItem.type);
119
+ path.abstractPath = path.path;
120
+ path.relativePath = path.path;
121
+ path.relativeAbstractPath = path.path;
122
+ }
123
+ else {
124
+ //TOODO ALE SORT OUT PATENT ITEM
125
+ const parentItem = EntityUtil.findByFieldHierarchically('id', lineItem.parentId, [rootLineItem], 'lineItems');
126
+ const portType = lineItem.port && (parentItem === null || parentItem === void 0 ? void 0 : parentItem.portDomains[lineItem.port].type);
127
+ const parentPath = parentItem && LineItemUtil.getLineItemPath(parentItem, rootLineItem);
128
+ if (parentPath) {
129
+ path = new LineItemPath(parentPath.path + '/ports/' + lineItem.port + '/' + lineItem.type);
130
+ path.abstractPath = parentPath.abstractPath + '/ports/' + (lineItem.port + '/' + portType);
131
+ path.relativePath = '/' + lineItem.type;
132
+ path.relativeAbstractPath = '/' + portType;
133
+ }
134
+ else {
135
+ throw 'Could not construct line item path';
136
+ }
137
+ }
138
+ return path;
139
+ }
140
+ static findById(parentId, lineItems) {
141
+ return EntityUtil.findByFieldHierarchically('id', parentId, lineItems, 'lineItems');
142
+ }
143
+ static countAttributeValues(scale, attributeDomain) {
144
+ const precision = LineItemUtil.precision(scale);
145
+ let count = 0;
146
+ attributeDomain.forEach(d => (count += d.max - d.min + precision));
147
+ return count;
148
+ }
149
+ static precision(scale) {
150
+ if (!scale) {
151
+ return 1;
152
+ }
153
+ let s = '1';
154
+ while (s.length < scale) {
155
+ s = '0' + s;
156
+ }
157
+ return Number('0.' + s);
158
+ }
159
+ static splitDomainToValues(scale, attributeDomain) {
160
+ const precision = this.precision(scale);
161
+ let values = [];
162
+ attributeDomain.forEach(interval => (values = values.concat(LineItemUtil.splitIntervalToValues(precision, interval))));
163
+ return values;
164
+ }
165
+ static splitIntervalToValues(precision, interval) {
166
+ const values = [];
167
+ for (let i = interval.min; i <= interval.max; i += precision) {
168
+ values.push(i);
169
+ }
170
+ return values;
171
+ }
172
+ static findLineItemsByPath(runtimeModel, lineItem, path) {
173
+ if (!runtimeModel.isEquals(lineItem.type, path.types[0])) {
174
+ return [];
175
+ }
176
+ let lineItems = [lineItem];
177
+ for (let i = 1; i < path.types.length; i++) {
178
+ const portName = path.ports[i - 1];
179
+ const typeName = path.types[i];
180
+ lineItems = LineItemUtil.findLineItemChildren(runtimeModel, lineItems, portName, typeName);
181
+ }
182
+ return lineItems;
183
+ }
184
+ static findLineItemChildren(runtimeModel, lineItems, portName, typeName) {
185
+ var _a;
186
+ const result = [];
187
+ for (const lineItem of lineItems) {
188
+ for (const childItem of lineItem.lineItems) {
189
+ if (((_a = childItem.port) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === portName.toLowerCase() &&
190
+ runtimeModel.isEquals(childItem.type, typeName)) {
191
+ result.push(childItem);
192
+ }
193
+ }
194
+ }
195
+ return result;
196
+ }
197
+ static findLineItemsByType(runtimeModel, lineItem, typeName) {
198
+ const result = [];
199
+ let lineItems = [lineItem];
200
+ for (let i = 0; i < lineItems.length; i++) {
201
+ const lineItem = lineItems[i];
202
+ if (runtimeModel.isEquals(lineItem.type, typeName)) {
203
+ result.push(lineItem);
204
+ }
205
+ lineItems = lineItems.concat(lineItem.lineItems);
206
+ }
207
+ return result;
208
+ }
209
+ static findLineItemForValue(model, valueOption) {
210
+ if (!EntityUtil.isPresent(model) || !EntityUtil.isPresent(model.lineItems)) {
211
+ return;
212
+ }
213
+ return model.lineItems.find(li => li.type && li.type.toLowerCase() === valueOption.toLowerCase());
214
+ }
215
+ // TODO: add Product typings
216
+ static create(product, qty) {
217
+ var _a;
218
+ return {
219
+ id: UUID.UUID(),
220
+ type: product.typeName,
221
+ name: ((_a = product.properties) === null || _a === void 0 ? void 0 : _a.displayName) || product.name,
222
+ productName: product.name,
223
+ productId: product.id,
224
+ cfgStatus: 'User',
225
+ actionCode: 'ADD',
226
+ qty: qty || 1,
227
+ };
228
+ }
229
+ static upsert(value, collection) {
230
+ const index = collection.findIndex(item => item.id === value.id);
231
+ if (index > -1) {
232
+ collection[index] = value;
233
+ }
234
+ else {
235
+ collection.push(value);
236
+ }
237
+ }
238
+ static compareSortOrder(a, b) {
239
+ const orderA = Number(a.properties['SortOrder']);
240
+ const orderB = Number(b.properties['SortOrder']);
241
+ if (!orderA && !orderB) {
242
+ return LineItemUtil.compareProductName(a, b);
243
+ }
244
+ if (!orderA) {
245
+ return 1;
246
+ }
247
+ else if (!orderB) {
248
+ return -1;
249
+ }
250
+ const result = orderA - orderB;
251
+ if (result === 0) {
252
+ return LineItemUtil.compareProductName(a, b);
253
+ }
254
+ return result;
255
+ }
256
+ static sort(lineItems) {
257
+ if (lineItems) {
258
+ lineItems.sort((a, b) => LineItemUtil.compareSortOrder(a, b));
259
+ lineItems.forEach(i => LineItemUtil.sort(i.lineItems));
260
+ }
261
+ }
262
+ static compareProductName(a, b) {
263
+ var _a, _b;
264
+ if (a.productName) {
265
+ return ((_a = a.productName) !== null && _a !== void 0 ? _a : '').localeCompare((_b = b.productName) !== null && _b !== void 0 ? _b : '');
266
+ }
267
+ else if (b.productName) {
268
+ return 1;
269
+ }
270
+ return 0;
271
+ }
272
+ }
273
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS1pdGVtLnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9ydW50aW1lL3V0aWxzL2xpbmUtaXRlbS51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQXVDLElBQUksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXpGLE1BQU0sT0FBTyxZQUFZO0lBMEJ2QixZQUFZLElBQVk7UUF4QmhCLGtCQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ25CLDBCQUFxQixHQUFHLEVBQUUsQ0FBQztRQUMzQixrQkFBYSxHQUFHLEVBQUUsQ0FBQztRQXVCekIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDakMsQ0FBQztJQXRCRCxJQUFXLFlBQVksQ0FBQyxZQUFvQjtRQUMxQyxJQUFJLENBQUMsYUFBYSxHQUFHLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNsRCxDQUFDO0lBRUQsSUFBVyxZQUFZO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBVyxZQUFZLENBQUMsWUFBb0I7UUFDMUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbEQsQ0FBQztJQUVELElBQVcsWUFBWTtRQUNyQixPQUFPLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQztJQUN6QyxDQUFDO0lBRUQsSUFBVyxvQkFBb0IsQ0FBQyxvQkFBNEI7UUFDMUQsSUFBSSxDQUFDLHFCQUFxQixHQUFHLG9CQUFvQixDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ2xFLENBQUM7SUFNTSxTQUFTLENBQUMsV0FBd0I7UUFDdkMsSUFBSSxDQUFDLFdBQVcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFO1lBQ25ELE9B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b3J0IHsgRW50aXR5VXRpbCwgTGluZUl0ZW0sIFJ1bnRpbWVNb2RlbCwgU2VjdGlvblBhdGgsIFVVSUQgfSBmcm9tICdAdmVsb2NlYXBwcy9jb3JlJztcblxuZXhwb3J0IGNsYXNzIExpbmVJdGVtUGF0aCB7XG4gIHB1YmxpYyBwYXRoOiBzdHJpbmc7XG4gIHByaXZhdGUgX3JlbGF0aXZlUGF0aCA9ICcnO1xuICBwcml2YXRlIF9yZWxhdGl2ZUFic3RyYWN0UGF0aCA9ICcnO1xuICBwcml2YXRlIF9hYnN0cmFjdFBhdGggPSAnJztcblxuICBwdWJsaWMgc2V0IHJlbGF0aXZlUGF0aChyZWxhdGl2ZVBhdGg6IHN0cmluZykge1xuICAgIHRoaXMuX3JlbGF0aXZlUGF0aCA9IHJlbGF0aXZlUGF0aC50b0xvd2VyQ2FzZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCByZWxhdGl2ZVBhdGgoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fcmVsYXRpdmVQYXRoO1xuICB9XG5cbiAgcHVibGljIHNldCBhYnN0cmFjdFBhdGgoYWJzdHJhY3RQYXRoOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9hYnN0cmFjdFBhdGggPSBhYnN0cmFjdFBhdGgudG9Mb3dlckNhc2UoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYWJzdHJhY3RQYXRoKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2Fic3RyYWN0UGF0aCB8fCB0aGlzLnBhdGg7XG4gIH1cblxuICBwdWJsaWMgc2V0IHJlbGF0aXZlQWJzdHJhY3RQYXRoKHJlbGF0aXZlQWJzdHJhY3RQYXRoOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9yZWxhdGl2ZUFic3RyYWN0UGF0aCA9IHJlbGF0aXZlQWJzdHJhY3RQYXRoLnRvTG93ZXJDYXNlKCk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihwYXRoOiBzdHJpbmcpIHtcbiAgICB0aGlzLnBhdGggPSBwYXRoLnRvTG93ZXJDYXNlKCk7XG4gIH1cblxuICBwdWJsaWMgaXNFcXVhbFRvKHNlY3Rpb25QYXRoOiBTZWN0aW9uUGF0aCk6IGJvb2xlYW4ge1xuICAgIGlmICghc2VjdGlvblBhdGggfHwgIXRoaXMucGF0aCB8fCAhc2VjdGlvblBhdGgucGF0aCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IG90aGVyUGF0aCA9IHNlY3Rpb25QYXRoLnBhdGgudG9Mb3dlckNhc2UoKTtcbiAgICBjb25zdCBpc0VxdWFsID1cbiAgICAgIHRoaXMucGF0aCA9PT0gb3RoZXJQYXRoIHx8IHRoaXMuX3JlbGF0aXZlUGF0aCA9PT0gb3RoZXJQYXRoIHx8IHRoaXMuX3JlbGF0aXZlQWJzdHJhY3RQYXRoID09PSBvdGhlclBhdGg7XG5cbiAgICAvL1RPRE8gQUxFIFNPUlQgT1VUIFNFQVJDSFxuICAgIGlmICghaXNFcXVhbCkge1xuICAgICAgY29uc3QgYWJzdHJhY3RQYXRoTWF0Y2ggPSB0aGlzLl9hYnN0cmFjdFBhdGggPT09IHNlY3Rpb25QYXRoLmFic3RyYWN0UGF0aC50b0xvd2VyQ2FzZSgpO1xuICAgICAgY29uc3QgcmVsYXRpdmVQYXRoTWF0Y2ggPSB0aGlzLl9yZWxhdGl2ZVBhdGhcbiAgICAgICAgPyB0aGlzLl9yZWxhdGl2ZVBhdGggPT09IHNlY3Rpb25QYXRoLnJlbGF0aXZlUGF0aC50b0xvd2VyQ2FzZSgpXG4gICAgICAgIDogZmFsc2U7XG4gICAgICBjb25zdCByZWxhdGl2ZUFic3RyYWN0UGF0aE1hdGNoID1cbiAgICAgICAgdGhpcy5fcmVsYXRpdmVBYnN0cmFjdFBhdGggJiYgc2VjdGlvblBhdGgucmVsYXRpdmVBYnN0cmFjdFBhdGhcbiAgICAgICAgICA/IHNlY3Rpb25QYXRoLnJlbGF0aXZlQWJzdHJhY3RQYXRoLnRvTG93ZXJDYXNlKCkgPT09IHNlY3Rpb25QYXRoLnJlbGF0aXZlUGF0aC50b0xvd2VyQ2FzZSgpICYmXG4gICAgICAgICAgICB0aGlzLl9yZWxhdGl2ZUFic3RyYWN0UGF0aCA9PT0gc2VjdGlvblBhdGgucmVsYXRpdmVQYXRoLnRvTG93ZXJDYXNlKClcbiAgICAgICAgICA6IGZhbHNlO1xuICAgICAgcmV0dXJuIGFic3RyYWN0UGF0aE1hdGNoICYmIChyZWxhdGl2ZVBhdGhNYXRjaCB8fCByZWxhdGl2ZUFic3RyYWN0UGF0aE1hdGNoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gaXNFcXVhbDtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgTGluZUl0ZW1VdGlsIHtcbiAgcHVibGljIHN0YXRpYyByZW1vdmVEZWxldGVkSXRlbXMob3JpZ2luYWw6IExpbmVJdGVtKTogTGluZUl0ZW0ge1xuICAgIGNvbnN0IHJvb3QgPSBFbnRpdHlVdGlsLmNsb25lKG9yaWdpbmFsKTtcblxuICAgIGlmIChyb290KSB7XG4gICAgICBsZXQgaXRlbXMgPSBbcm9vdF07XG5cbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgaXRlbSA9IGl0ZW1zW2ldO1xuICAgICAgICBpdGVtLmxpbmVJdGVtcyA9IChpdGVtLmxpbmVJdGVtcyA/PyBbXSkuZmlsdGVyKGwgPT4gbC5hY3Rpb25Db2RlICE9PSAnREVMRVRFJyk7XG4gICAgICAgIGl0ZW1zID0gaXRlbXMuY29uY2F0KGl0ZW0ubGluZUl0ZW1zKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcm9vdDtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgcmVwbGFjZUxpbmVJdGVtS2V5cyhyb290TGluZUl0ZW06IExpbmVJdGVtKTogdm9pZCB7XG4gICAgY29uc3QgcmVwbGFjZUZuID0gKGl0ZW06IExpbmVJdGVtKTogdm9pZCA9PiB7XG4gICAgICBpdGVtLmlkID0gaXRlbS5pZCA/ICdEVU1NWS0nICsgaXRlbS5pZCA6IGl0ZW0uaWQ7XG4gICAgICBpdGVtLnJvb3RJZCA9IGl0ZW0ucm9vdElkID8gJ0RVTU1ZLScgKyBpdGVtLnJvb3RJZCA6IGl0ZW0ucm9vdElkO1xuICAgICAgaXRlbS5wYXJlbnRJZCA9IGl0ZW0ucGFyZW50SWQgPyAnRFVNTVktJyArIGl0ZW0ucGFyZW50SWQgOiBpdGVtLnBhcmVudElkO1xuICAgICAgaXRlbS5vZmZlcmluZ0luc3RhbmNlSWQgPSBpdGVtLm9mZmVyaW5nSW5zdGFuY2VJZCA/ICdEVU1NWS0nICsgaXRlbS5vZmZlcmluZ0luc3RhbmNlSWQgOiB2b2lkIDA7XG4gICAgICBpdGVtLm9mZmVyaW5nSXRlbUlkID0gaXRlbS5vZmZlcmluZ0l0ZW1JZCA/ICdEVU1NWS0nICsgaXRlbS5vZmZlcmluZ0l0ZW1JZCA6IHZvaWQgMDtcbiAgICAgIGl0ZW0ucmFtcEluc3RhbmNlSWQgPSBpdGVtLnJhbXBJbnN0YW5jZUlkID8gJ0RVTU1ZLScgKyBpdGVtLnJhbXBJbnN0YW5jZUlkIDogdm9pZCAwO1xuICAgIH07XG5cbiAgICBjb25zdCB0cmF2ZXJzZUZuID0gKGxpbmVJdGVtOiBMaW5lSXRlbSwgY2FsbGJhY2tGbjogYW55KTogdm9pZCA9PiB7XG4gICAgICBpZiAobGluZUl0ZW0ubGluZUl0ZW1zICYmIGxpbmVJdGVtLmxpbmVJdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGxpbmVJdGVtLmxpbmVJdGVtcy5mb3JFYWNoKGNoaWxkTGluZUl0ZW0gPT4ge1xuICAgICAgICAgIGNhbGxiYWNrRm4uYXBwbHkobnVsbCwgW2NoaWxkTGluZUl0ZW1dKTtcbiAgICAgICAgICB0cmF2ZXJzZUZuLmFwcGx5KG51bGwsIFtjaGlsZExpbmVJdGVtLCBjYWxsYmFja0ZuXSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH07XG5cbiAgICByZXBsYWNlRm4uYXBwbHkobnVsbCwgW3Jvb3RMaW5lSXRlbV0pO1xuICAgIC8vIHJvb3RMaW5lSXRlbS5yb290SWQgPSByb290TGluZUl0ZW0uaWQ7XG5cbiAgICB0cmF2ZXJzZUZuLmFwcGx5KG51bGwsIFtyb290TGluZUl0ZW0sIHJlcGxhY2VGbl0pO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBlbnJpY2hQcmljaW5nSW5mbyhzb3VyY2U6IExpbmVJdGVtLCBwcmljaW5nRHRvPzogTGluZUl0ZW0pOiBMaW5lSXRlbSB7XG4gICAgY29uc3QgcmVzdWx0OiBMaW5lSXRlbSA9IHtcbiAgICAgIC4uLnNvdXJjZSxcbiAgICB9O1xuXG4gICAgaWYgKHByaWNpbmdEdG8pIHtcbiAgICAgIHJlc3VsdC5wcm9kdWN0TmFtZSA9IHByaWNpbmdEdG8ucHJvcGVydGllcz8uZGlzcGxheU5hbWUgfHwgcHJpY2luZ0R0by5wcm9kdWN0TmFtZTtcbiAgICAgIHJlc3VsdC50eXBlID0gcHJpY2luZ0R0by50eXBlO1xuICAgICAgcmVzdWx0LnJvb3RJZCA9IHByaWNpbmdEdG8ucm9vdElkO1xuICAgICAgcmVzdWx0LmFzc2V0SWQgPSBwcmljaW5nRHRvLmFzc2V0SWQ7XG4gICAgICByZXN1bHQub3Blbk9yZGVyTGluZUl0ZW1JZCA9IHByaWNpbmdEdG8ub3Blbk9yZGVyTGluZUl0ZW1JZDtcbiAgICAgIHJlc3VsdC5hY3RpdmF0ZWQgPSBwcmljaW5nRHRvLmFjdGl2YXRlZDtcbiAgICAgIHJlc3VsdC5hY3Rpb25Db2RlID0gcHJpY2luZ0R0by5hY3Rpb25Db2RlO1xuICAgICAgcmVzdWx0LnNlcnZpY2VTdGFydERhdGUgPSBwcmljaW5nRHRvLnNlcnZpY2VTdGFydERhdGU7XG4gICAgICByZXN1bHQuZWZmZWN0aXZlRGF0ZSA9IHByaWNpbmdEdG8uZWZmZWN0aXZlRGF0ZTtcbiAgICAgIHJlc3VsdC5zdGFydERhdGUgPSBwcmljaW5nRHRvLnN0YXJ0RGF0ZTtcbiAgICAgIHJlc3VsdC5lbmREYXRlID0gcHJpY2luZ0R0by5lbmREYXRlO1xuICAgICAgcmVzdWx0Lm9mZmVyaW5nSWQgPSBwcmljaW5nRHRvLm9mZmVyaW5nSWQ7XG4gICAgICByZXN1bHQub2ZmZXJpbmdJdGVtSWQgPSBwcmljaW5nRHRvLm9mZmVyaW5nSXRlbUlkO1xuICAgICAgcmVzdWx0Lm9mZmVyaW5nSW5zdGFuY2VJZCA9IHByaWNpbmdEdG8ub2ZmZXJpbmdJbnN0YW5jZUlkO1xuICAgICAgcmVzdWx0LnJhbXBJbnN0YW5jZUlkID0gcHJpY2luZ0R0by5yYW1wSW5zdGFuY2VJZDtcbiAgICAgIHJlc3VsdC5wbGFuSWQgPSBwcmljaW5nRHRvLnBsYW5JZDtcblxuICAgICAgaWYgKCFyZXN1bHQuY2hhcmdlSXRlbXMpIHtcbiAgICAgICAgcmVzdWx0LmNoYXJnZUl0ZW1zID0gcHJpY2luZ0R0by5jaGFyZ2VJdGVtcztcbiAgICAgIH1cbiAgICAgIHJlc3VsdC5jaGFyZ2VHcm91cEl0ZW1zID0gW107XG4gICAgfVxuXG4gICAgaWYgKHNvdXJjZS5saW5lSXRlbXMgJiYgc291cmNlLmxpbmVJdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgICByZXN1bHQubGluZUl0ZW1zID0gW107XG5cbiAgICAgIHNvdXJjZS5saW5lSXRlbXMuZm9yRWFjaCgoY2hpbGRTb3VyY2U6IExpbmVJdGVtKSA9PiB7XG4gICAgICAgIGNvbnN0IGNoaWxkRHRvID0gcHJpY2luZ0R0byAmJiBwcmljaW5nRHRvLmxpbmVJdGVtcyAmJiBwcmljaW5nRHRvLmxpbmVJdGVtcy5maW5kKGMgPT4gY2hpbGRTb3VyY2UuaWQgPT09IGMuaWQpO1xuXG4gICAgICAgIGNvbnN0IGNoaWxkSXRlbSA9IExpbmVJdGVtVXRpbC5lbnJpY2hQcmljaW5nSW5mbyhjaGlsZFNvdXJjZSwgY2hpbGREdG8pO1xuXG4gICAgICAgIHJlc3VsdC5saW5lSXRlbXMucHVzaChjaGlsZEl0ZW0pO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZ2V0TGluZUl0ZW1QYXRoKGxpbmVJdGVtOiBMaW5lSXRlbSwgcm9vdExpbmVJdGVtOiBMaW5lSXRlbSk6IExpbmVJdGVtUGF0aCB7XG4gICAgbGV0IHBhdGg6IExpbmVJdGVtUGF0aDtcblxuICAgIGlmICghbGluZUl0ZW0ucGFyZW50SWQpIHtcbiAgICAgIHBhdGggPSBuZXcgTGluZUl0ZW1QYXRoKCcvJyArIGxpbmVJdGVtLnR5cGUpO1xuXG4gICAgICBwYXRoLmFic3RyYWN0UGF0aCA9IHBhdGgucGF0aDtcbiAgICAgIHBhdGgucmVsYXRpdmVQYXRoID0gcGF0aC5wYXRoO1xuICAgICAgcGF0aC5yZWxhdGl2ZUFic3RyYWN0UGF0aCA9IHBhdGgucGF0aDtcbiAgICB9IGVsc2Uge1xuICAgICAgLy9UT09ETyBBTEUgU09SVCBPVVQgUEFURU5UIElURU1cbiAgICAgIGNvbnN0IHBhcmVudEl0ZW0gPSBFbnRpdHlVdGlsLmZpbmRCeUZpZWxkSGllcmFyY2hpY2FsbHk8TGluZUl0ZW0+KFxuICAgICAgICAnaWQnLFxuICAgICAgICBsaW5lSXRlbS5wYXJlbnRJZCxcbiAgICAgICAgW3Jvb3RMaW5lSXRlbV0sXG4gICAgICAgICdsaW5lSXRlbXMnLFxuICAgICAgKTtcblxuICAgICAgY29uc3QgcG9ydFR5cGUgPSBsaW5lSXRlbS5wb3J0ICYmIHBhcmVudEl0ZW0/LnBvcnREb21haW5zW2xpbmVJdGVtLnBvcnRdLnR5cGU7XG5cbiAgICAgIGNvbnN0IHBhcmVudFBhdGggPSBwYXJlbnRJdGVtICYmIExpbmVJdGVtVXRpbC5nZXRMaW5lSXRlbVBhdGgocGFyZW50SXRlbSwgcm9vdExpbmVJdGVtKTtcblxuICAgICAgaWYgKHBhcmVudFBhdGgpIHtcbiAgICAgICAgcGF0aCA9IG5ldyBMaW5lSXRlbVBhdGgocGFyZW50UGF0aC5wYXRoICsgJy9wb3J0cy8nICsgbGluZUl0ZW0ucG9ydCArICcvJyArIGxpbmVJdGVtLnR5cGUpO1xuXG4gICAgICAgIHBhdGguYWJzdHJhY3RQYXRoID0gcGFyZW50UGF0aC5hYnN0cmFjdFBhdGggKyAnL3BvcnRzLycgKyAobGluZUl0ZW0ucG9ydCArICcvJyArIHBvcnRUeXBlKTtcbiAgICAgICAgcGF0aC5yZWxhdGl2ZVBhdGggPSAnLycgKyBsaW5lSXRlbS50eXBlO1xuICAgICAgICBwYXRoLnJlbGF0aXZlQWJzdHJhY3RQYXRoID0gJy8nICsgcG9ydFR5cGU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyAnQ291bGQgbm90IGNvbnN0cnVjdCBsaW5lIGl0ZW0gcGF0aCc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHBhdGg7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGZpbmRCeUlkKHBhcmVudElkOiBzdHJpbmcsIGxpbmVJdGVtczogTGluZUl0ZW1bXSk6IExpbmVJdGVtIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gRW50aXR5VXRpbC5maW5kQnlGaWVsZEhpZXJhcmNoaWNhbGx5KCdpZCcsIHBhcmVudElkLCBsaW5lSXRlbXMsICdsaW5lSXRlbXMnKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgY291bnRBdHRyaWJ1dGVWYWx1ZXMoc2NhbGU6IG51bWJlciwgYXR0cmlidXRlRG9tYWluOiBhbnlbXSk6IG51bWJlciB7XG4gICAgY29uc3QgcHJlY2lzaW9uID0gTGluZUl0ZW1VdGlsLnByZWNpc2lvbihzY2FsZSk7XG4gICAgbGV0IGNvdW50ID0gMDtcbiAgICBhdHRyaWJ1dGVEb21haW4uZm9yRWFjaChkID0+IChjb3VudCArPSBkLm1heCAtIGQubWluICsgcHJlY2lzaW9uKSk7XG4gICAgcmV0dXJuIGNvdW50O1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBwcmVjaXNpb24oc2NhbGU6IG51bWJlcik6IG51bWJlciB7XG4gICAgaWYgKCFzY2FsZSkge1xuICAgICAgcmV0dXJuIDE7XG4gICAgfVxuICAgIGxldCBzID0gJzEnO1xuICAgIHdoaWxlIChzLmxlbmd0aCA8IHNjYWxlKSB7XG4gICAgICBzID0gJzAnICsgcztcbiAgICB9XG4gICAgcmV0dXJuIE51bWJlcignMC4nICsgcyk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHNwbGl0RG9tYWluVG9WYWx1ZXMoc2NhbGU6IG51bWJlciwgYXR0cmlidXRlRG9tYWluOiBhbnlbXSk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBwcmVjaXNpb24gPSB0aGlzLnByZWNpc2lvbihzY2FsZSk7XG4gICAgbGV0IHZhbHVlczogc3RyaW5nW10gPSBbXTtcbiAgICBhdHRyaWJ1dGVEb21haW4uZm9yRWFjaChcbiAgICAgIGludGVydmFsID0+ICh2YWx1ZXMgPSB2YWx1ZXMuY29uY2F0KExpbmVJdGVtVXRpbC5zcGxpdEludGVydmFsVG9WYWx1ZXMocHJlY2lzaW9uLCBpbnRlcnZhbCkpKSxcbiAgICApO1xuICAgIHJldHVybiB2YWx1ZXM7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHNwbGl0SW50ZXJ2YWxUb1ZhbHVlcyhwcmVjaXNpb246IG51bWJlciwgaW50ZXJ2YWw6IGFueSk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCB2YWx1ZXMgPSBbXTtcbiAgICBmb3IgKGxldCBpID0gaW50ZXJ2YWwubWluOyBpIDw9IGludGVydmFsLm1heDsgaSArPSBwcmVjaXNpb24pIHtcbiAgICAgIHZhbHVlcy5wdXNoKGkpO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWVzO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBmaW5kTGluZUl0ZW1zQnlQYXRoKHJ1bnRpbWVNb2RlbDogUnVudGltZU1vZGVsLCBsaW5lSXRlbTogTGluZUl0ZW0sIHBhdGg6IFNlY3Rpb25QYXRoKTogTGluZUl0ZW1bXSB7XG4gICAgaWYgKCFydW50aW1lTW9kZWwuaXNFcXVhbHMobGluZUl0ZW0udHlwZSwgcGF0aC50eXBlc1swXSkpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gICAgbGV0IGxpbmVJdGVtcyA9IFtsaW5lSXRlbV07XG4gICAgZm9yIChsZXQgaSA9IDE7IGkgPCBwYXRoLnR5cGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBwb3J0TmFtZSA9IHBhdGgucG9ydHNbaSAtIDFdO1xuICAgICAgY29uc3QgdHlwZU5hbWUgPSBwYXRoLnR5cGVzW2ldO1xuICAgICAgbGluZUl0ZW1zID0gTGluZUl0ZW1VdGlsLmZpbmRMaW5lSXRlbUNoaWxkcmVuKHJ1bnRpbWVNb2RlbCwgbGluZUl0ZW1zLCBwb3J0TmFtZSwgdHlwZU5hbWUpO1xuICAgIH1cbiAgICByZXR1cm4gbGluZUl0ZW1zO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBmaW5kTGluZUl0ZW1DaGlsZHJlbihcbiAgICBydW50aW1lTW9kZWw6IFJ1bnRpbWVNb2RlbCxcbiAgICBsaW5lSXRlbXM6IExpbmVJdGVtW10sXG4gICAgcG9ydE5hbWU6IHN0cmluZyxcbiAgICB0eXBlTmFtZTogc3RyaW5nLFxuICApOiBMaW5lSXRlbVtdIHtcbiAgICBjb25zdCByZXN1bHQgPSBbXTtcbiAgICBmb3IgKGNvbnN0IGxpbmVJdGVtIG9mIGxpbmVJdGVtcykge1xuICAgICAgZm9yIChjb25zdCBjaGlsZEl0ZW0gb2YgbGluZUl0ZW0ubGluZUl0ZW1zKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBjaGlsZEl0ZW0ucG9ydD8udG9Mb3dlckNhc2UoKSA9PT0gcG9ydE5hbWUudG9Mb3dlckNhc2UoKSAmJlxuICAgICAgICAgIHJ1bnRpbWVNb2RlbC5pc0VxdWFscyhjaGlsZEl0ZW0udHlwZSwgdHlwZU5hbWUpXG4gICAgICAgICkge1xuICAgICAgICAgIHJlc3VsdC5wdXNoKGNoaWxkSXRlbSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZmluZExpbmVJdGVtc0J5VHlwZShydW50aW1lTW9kZWw6IFJ1bnRpbWVNb2RlbCwgbGluZUl0ZW06IExpbmVJdGVtLCB0eXBlTmFtZTogc3RyaW5nKTogTGluZUl0ZW1bXSB7XG4gICAgY29uc3QgcmVzdWx0ID0gW107XG4gICAgbGV0IGxpbmVJdGVtcyA9IFtsaW5lSXRlbV07XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsaW5lSXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGxpbmVJdGVtID0gbGluZUl0ZW1zW2ldO1xuICAgICAgaWYgKHJ1bnRpbWVNb2RlbC5pc0VxdWFscyhsaW5lSXRlbS50eXBlLCB0eXBlTmFtZSkpIHtcbiAgICAgICAgcmVzdWx0LnB1c2gobGluZUl0ZW0pO1xuICAgICAgfVxuICAgICAgbGluZUl0ZW1zID0gbGluZUl0ZW1zLmNvbmNhdChsaW5lSXRlbS5saW5lSXRlbXMpO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGZpbmRMaW5lSXRlbUZvclZhbHVlKG1vZGVsOiBMaW5lSXRlbSwgdmFsdWVPcHRpb246IHN0cmluZyk6IExpbmVJdGVtIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoIUVudGl0eVV0aWwuaXNQcmVzZW50KG1vZGVsKSB8fCAhRW50aXR5VXRpbC5pc1ByZXNlbnQobW9kZWwubGluZUl0ZW1zKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHJldHVybiBtb2RlbC5saW5lSXRlbXMuZmluZChsaSA9PiBsaS50eXBlICYmIGxpLnR5cGUudG9Mb3dlckNhc2UoKSA9PT0gdmFsdWVPcHRpb24udG9Mb3dlckNhc2UoKSk7XG4gIH1cblxuICAvLyBUT0RPOiBhZGQgUHJvZHVjdCB0eXBpbmdzXG4gIHB1YmxpYyBzdGF0aWMgY3JlYXRlKHByb2R1Y3Q6IGFueSwgcXR5PzogbnVtYmVyKTogTGluZUl0ZW0ge1xuICAgIHJldHVybiB7XG4gICAgICBpZDogVVVJRC5VVUlEKCksXG4gICAgICB0eXBlOiBwcm9kdWN0LnR5cGVOYW1lLFxuICAgICAgbmFtZTogcHJvZHVjdC5wcm9wZXJ0aWVzPy5kaXNwbGF5TmFtZSB8fCBwcm9kdWN0Lm5hbWUsXG4gICAgICBwcm9kdWN0TmFtZTogcHJvZHVjdC5uYW1lLFxuICAgICAgcHJvZHVjdElkOiBwcm9kdWN0LmlkLFxuICAgICAgY2ZnU3RhdHVzOiAnVXNlcicsXG4gICAgICBhY3Rpb25Db2RlOiAnQUREJyxcbiAgICAgIHF0eTogcXR5IHx8IDEsXG4gICAgfSBhcyBMaW5lSXRlbTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgdXBzZXJ0KHZhbHVlOiBMaW5lSXRlbSwgY29sbGVjdGlvbjogTGluZUl0ZW1bXSk6IHZvaWQge1xuICAgIGNvbnN0IGluZGV4ID0gY29sbGVjdGlvbi5maW5kSW5kZXgoaXRlbSA9PiBpdGVtLmlkID09PSB2YWx1ZS5pZCk7XG4gICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgIGNvbGxlY3Rpb25baW5kZXhdID0gdmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbGxlY3Rpb24ucHVzaCh2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHN0YXRpYyBjb21wYXJlU29ydE9yZGVyKGE6IExpbmVJdGVtLCBiOiBMaW5lSXRlbSk6IG51bWJlciB7XG4gICAgY29uc3Qgb3JkZXJBID0gTnVtYmVyKGEucHJvcGVydGllc1snU29ydE9yZGVyJ10pO1xuICAgIGNvbnN0IG9yZGVyQiA9IE51bWJlcihiLnByb3BlcnRpZXNbJ1NvcnRPcmRlciddKTtcbiAgICBpZiAoIW9yZGVyQSAmJiAhb3JkZXJCKSB7XG4gICAgICByZXR1cm4gTGluZUl0ZW1VdGlsLmNvbXBhcmVQcm9kdWN0TmFtZShhLCBiKTtcbiAgICB9XG4gICAgaWYgKCFvcmRlckEpIHtcbiAgICAgIHJldHVybiAxO1xuICAgIH0gZWxzZSBpZiAoIW9yZGVyQikge1xuICAgICAgcmV0dXJuIC0xO1xuICAgIH1cbiAgICBjb25zdCByZXN1bHQgPSBvcmRlckEgLSBvcmRlckI7XG4gICAgaWYgKHJlc3VsdCA9PT0gMCkge1xuICAgICAgcmV0dXJuIExpbmVJdGVtVXRpbC5jb21wYXJlUHJvZHVjdE5hbWUoYSwgYik7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHNvcnQobGluZUl0ZW1zOiBMaW5lSXRlbVtdKTogdm9pZCB7XG4gICAgaWYgKGxpbmVJdGVtcykge1xuICAgICAgbGluZUl0ZW1zLnNvcnQoKGEsIGIpID0+IExpbmVJdGVtVXRpbC5jb21wYXJlU29ydE9yZGVyKGEsIGIpKTtcbiAgICAgIGxpbmVJdGVtcy5mb3JFYWNoKGkgPT4gTGluZUl0ZW1VdGlsLnNvcnQoaS5saW5lSXRlbXMpKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBjb21wYXJlUHJvZHVjdE5hbWUoYTogTGluZUl0ZW0sIGI6IExpbmVJdGVtKTogbnVtYmVyIHtcbiAgICBpZiAoYS5wcm9kdWN0TmFtZSkge1xuICAgICAgcmV0dXJuIChhLnByb2R1Y3ROYW1lID8/ICcnKS5sb2NhbGVDb21wYXJlKGIucHJvZHVjdE5hbWUgPz8gJycpO1xuICAgIH0gZWxzZSBpZiAoYi5wcm9kdWN0TmFtZSkge1xuICAgICAgcmV0dXJuIDE7XG4gICAgfVxuICAgIHJldHVybiAwO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,26 @@
1
+ import { EntityUtil } from '@veloceapps/core';
2
+ export const getSectionTree = (src) => {
3
+ const sections = EntityUtil.clone(src);
4
+ const sectionIdMap = new Map();
5
+ sections.forEach(section => sectionIdMap.set(section.id, section));
6
+ const sectionTree = [];
7
+ sections.forEach(section => {
8
+ if (section.parentId) {
9
+ const parentSection = sectionIdMap.get(section.parentId);
10
+ if (parentSection) {
11
+ const sectionFromMap = sectionIdMap.get(section.id);
12
+ if (sectionFromMap) {
13
+ parentSection.addChild(sectionFromMap);
14
+ }
15
+ }
16
+ }
17
+ else {
18
+ const s = sectionIdMap.get(section.id);
19
+ if (s) {
20
+ sectionTree.push(s);
21
+ }
22
+ }
23
+ });
24
+ return sectionTree;
25
+ };
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3J1bnRpbWUvdXRpbHMvc2VjdGlvbi51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFXLE1BQU0sa0JBQWtCLENBQUM7QUFFdkQsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLENBQUMsR0FBYyxFQUFhLEVBQUU7SUFDMUQsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUV2QyxNQUFNLFlBQVksR0FBRyxJQUFJLEdBQUcsRUFBbUIsQ0FBQztJQUVoRCxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFFbkUsTUFBTSxXQUFXLEdBQWMsRUFBRSxDQUFDO0lBQ2xDLFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7UUFDekIsSUFBSSxPQUFPLENBQUMsUUFBUSxFQUFFO1lBQ3BCLE1BQU0sYUFBYSxHQUFHLFlBQVksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3pELElBQUksYUFBYSxFQUFFO2dCQUNqQixNQUFNLGNBQWMsR0FBRyxZQUFZLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDcEQsSUFBSSxjQUFjLEVBQUU7b0JBQ2xCLGFBQWEsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7aUJBQ3hDO2FBQ0Y7U0FDRjthQUFNO1lBQ0wsTUFBTSxDQUFDLEdBQUcsWUFBWSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDdkMsSUFBSSxDQUFDLEVBQUU7Z0JBQ0wsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNyQjtTQUNGO0lBQ0gsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLFdBQVcsQ0FBQztBQUNyQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnRpdHlVdGlsLCBTZWN0aW9uIH0gZnJvbSAnQHZlbG9jZWFwcHMvY29yZSc7XG5cbmV4cG9ydCBjb25zdCBnZXRTZWN0aW9uVHJlZSA9IChzcmM6IFNlY3Rpb25bXSk6IFNlY3Rpb25bXSA9PiB7XG4gIGNvbnN0IHNlY3Rpb25zID0gRW50aXR5VXRpbC5jbG9uZShzcmMpO1xuXG4gIGNvbnN0IHNlY3Rpb25JZE1hcCA9IG5ldyBNYXA8c3RyaW5nLCBTZWN0aW9uPigpO1xuXG4gIHNlY3Rpb25zLmZvckVhY2goc2VjdGlvbiA9PiBzZWN0aW9uSWRNYXAuc2V0KHNlY3Rpb24uaWQsIHNlY3Rpb24pKTtcblxuICBjb25zdCBzZWN0aW9uVHJlZTogU2VjdGlvbltdID0gW107XG4gIHNlY3Rpb25zLmZvckVhY2goc2VjdGlvbiA9PiB7XG4gICAgaWYgKHNlY3Rpb24ucGFyZW50SWQpIHtcbiAgICAgIGNvbnN0IHBhcmVudFNlY3Rpb24gPSBzZWN0aW9uSWRNYXAuZ2V0KHNlY3Rpb24ucGFyZW50SWQpO1xuICAgICAgaWYgKHBhcmVudFNlY3Rpb24pIHtcbiAgICAgICAgY29uc3Qgc2VjdGlvbkZyb21NYXAgPSBzZWN0aW9uSWRNYXAuZ2V0KHNlY3Rpb24uaWQpO1xuICAgICAgICBpZiAoc2VjdGlvbkZyb21NYXApIHtcbiAgICAgICAgICBwYXJlbnRTZWN0aW9uLmFkZENoaWxkKHNlY3Rpb25Gcm9tTWFwKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBzID0gc2VjdGlvbklkTWFwLmdldChzZWN0aW9uLmlkKTtcbiAgICAgIGlmIChzKSB7XG4gICAgICAgIHNlY3Rpb25UcmVlLnB1c2gocyk7XG4gICAgICB9XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gc2VjdGlvblRyZWU7XG59O1xuIl19