@veloceapps/sdk 7.0.0-9 → 7.0.1-0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (436) hide show
  1. package/cms/README.md +45 -0
  2. package/cms/cms.actions.d.ts +10 -0
  3. package/cms/components/element-children/element-children.component.d.ts +1 -1
  4. package/cms/components/element-drop-handle/element-drop-handle.component.d.ts +1 -1
  5. package/cms/components/element-renderer/element-renderer.component.d.ts +1 -1
  6. package/cms/components/plugin.component.d.ts +2 -2
  7. package/cms/components/preview/preview.component.d.ts +4 -3
  8. package/cms/directives/custom-template.directive.d.ts +1 -1
  9. package/cms/modules/federated/federated-host.directive.d.ts +8 -0
  10. package/cms/modules/federated/federated.component.d.ts +5 -7
  11. package/cms/modules/federated/federated.module.d.ts +4 -3
  12. package/cms/modules/federated/federated.types.d.ts +1 -5
  13. package/cms/modules/migrations/types/migrations.types.d.ts +1 -1
  14. package/cms/plugins/configuration.plugin.d.ts +1 -1
  15. package/cms/plugins/io.plugin.d.ts +1 -1
  16. package/cms/plugins/region.plugin.d.ts +1 -1
  17. package/cms/plugins/script.plugin.d.ts +1 -1
  18. package/cms/services/templates.service.d.ts +1 -1
  19. package/cms/types/common.types.d.ts +2 -2
  20. package/cms/types/elements.types.d.ts +1 -1
  21. package/cms/types/integration.types.d.ts +1 -1
  22. package/cms/types/layouts.types.d.ts +1 -1
  23. package/cms/utils/element.utils.d.ts +2 -2
  24. package/cms/vendor-map.d.ts +2 -1
  25. package/core/README.md +5 -0
  26. package/core/modules/flow-configuration/types/update.types.d.ts +2 -2
  27. package/core/services/metric-calculation/metric-calculation.types.d.ts +1 -1
  28. package/core/types/ui-definition.types.d.ts +2 -2
  29. package/esm2020/cms/cms.actions.mjs +56 -0
  30. package/esm2020/cms/components/element-children/element-children.component.mjs +35 -0
  31. package/esm2020/cms/components/element-children/element-children.module.mjs +20 -0
  32. package/esm2020/cms/components/element-drop-handle/element-drop-handle.component.mjs +28 -0
  33. package/esm2020/cms/components/element-drop-handle/element-drop-handle.module.mjs +19 -0
  34. package/esm2020/cms/components/element-renderer/element-renderer.component.mjs +160 -0
  35. package/{esm2015/cms/components/element-renderer/element-renderer.module.js → esm2020/cms/components/element-renderer/element-renderer.module.mjs} +5 -5
  36. package/esm2020/cms/components/element.component.mjs +45 -0
  37. package/esm2020/cms/components/plugin.component.mjs +17 -0
  38. package/esm2020/cms/components/preview/preview.component.mjs +103 -0
  39. package/esm2020/cms/components/preview/preview.module.mjs +24 -0
  40. package/esm2020/cms/directives/custom-template.directive.mjs +26 -0
  41. package/esm2020/cms/engine/models/entity.mjs +17 -0
  42. package/esm2020/cms/launcher.module.mjs +24 -0
  43. package/esm2020/cms/modules/federated/federated-host.directive.mjs +16 -0
  44. package/esm2020/cms/modules/federated/federated.component.mjs +64 -0
  45. package/esm2020/cms/modules/federated/federated.module.mjs +20 -0
  46. package/esm2020/cms/modules/federated/federated.types.mjs +2 -0
  47. package/esm2020/cms/modules/migrations/migrations.mjs +15 -0
  48. package/{esm2015/cms/modules/migrations/migrations.module.js → esm2020/cms/modules/migrations/migrations.module.mjs} +5 -5
  49. package/esm2020/cms/modules/migrations/services/migrations.service.mjs +43 -0
  50. package/{esm2015/cms/modules/runtime/runtime.module.js → esm2020/cms/modules/runtime/runtime.module.mjs} +6 -6
  51. package/esm2020/cms/modules/runtime/services/compilation.service.mjs +83 -0
  52. package/esm2020/cms/modules/runtime/services/runtime-editor.service.mjs +28 -0
  53. package/esm2020/cms/modules/runtime/services/runtime.service.mjs +74 -0
  54. package/esm2020/cms/plugins/configuration.plugin.mjs +105 -0
  55. package/esm2020/cms/plugins/io.plugin.mjs +36 -0
  56. package/esm2020/cms/plugins/region.plugin.mjs +58 -0
  57. package/esm2020/cms/plugins/script.plugin.mjs +65 -0
  58. package/{esm2015/cms/services/element-context.service.js → esm2020/cms/services/element-context.service.mjs} +4 -4
  59. package/esm2020/cms/services/integration.state.mjs +40 -0
  60. package/esm2020/cms/services/io-provider.service.mjs +50 -0
  61. package/esm2020/cms/services/resources.service.mjs +49 -0
  62. package/{esm2015/cms/services/templates.service.js → esm2020/cms/services/templates.service.mjs} +4 -4
  63. package/esm2020/cms/utils/element.utils.mjs +160 -0
  64. package/esm2020/cms/utils/elements-resolver.mjs +189 -0
  65. package/esm2020/cms/utils/path.utils.mjs +53 -0
  66. package/esm2020/cms/utils/ui-definition.utils.mjs +87 -0
  67. package/esm2020/cms/vendor-map.mjs +67 -0
  68. package/esm2020/core/core.module.mjs +18 -0
  69. package/{esm2015/core/modules/configuration/configuration.module.js → esm2020/core/modules/configuration/configuration.module.mjs} +6 -6
  70. package/esm2020/core/modules/configuration/helpers.mjs +18 -0
  71. package/esm2020/core/modules/configuration/services/configuration-runtime.service.mjs +106 -0
  72. package/esm2020/core/modules/configuration/services/configuration.service.mjs +183 -0
  73. package/esm2020/core/modules/configuration/services/runtime-context.service.mjs +50 -0
  74. package/esm2020/core/modules/flow-configuration/flow-configuration.module.mjs +18 -0
  75. package/esm2020/core/modules/flow-configuration/services/flow-configuration.service.mjs +150 -0
  76. package/esm2020/core/modules/flow-configuration/services/flow-update.service.mjs +129 -0
  77. package/esm2020/core/services/context.service.mjs +64 -0
  78. package/esm2020/core/services/metric-calculation/metric-calculation.service.mjs +85 -0
  79. package/esm2020/core/services/product-images.service.mjs +31 -0
  80. package/esm2020/core/services/quote-draft.service.mjs +232 -0
  81. package/esm2020/core/utils/line-item.utils.mjs +161 -0
  82. package/esm2020/core/utils/line-item.worker.mjs +19 -0
  83. package/esm2020/runtime/components/component-preview/component-preview.component.mjs +125 -0
  84. package/esm2020/runtime/components/section-renderer/section-renderer.component.mjs +67 -0
  85. package/esm2020/runtime/components/ui-runtime/runtime.component.mjs +440 -0
  86. package/esm2020/runtime/components/ui-runtime-preview/runtime-preview.component.mjs +108 -0
  87. package/esm2020/runtime/execution/components/children-placeholder/children-placeholder.component.mjs +60 -0
  88. package/esm2020/runtime/execution/components/context-provider/context-provider.component.mjs +39 -0
  89. package/esm2020/runtime/execution/components/execution-section-renderer/execution-section-renderer.component.mjs +67 -0
  90. package/esm2020/runtime/execution/components/federated/federated.component.mjs +74 -0
  91. package/esm2020/runtime/execution/components/velo-attribute/velo-attribute.component.mjs +60 -0
  92. package/esm2020/runtime/execution/components/velo-multiselect/velo-multiselect.component.mjs +130 -0
  93. package/esm2020/runtime/execution/components/velo-port-checkbox/velo-port-checkbox.component.mjs +72 -0
  94. package/esm2020/runtime/execution/components/velo-port-dropdown/velo-port-dropdown.component.mjs +97 -0
  95. package/esm2020/runtime/execution/components/velo-port-radio/velo-port-radio.component.mjs +142 -0
  96. package/esm2020/runtime/execution/components/velo-type/velo-type.component.mjs +119 -0
  97. package/esm2020/runtime/execution/directives/section-script.directive.mjs +247 -0
  98. package/esm2020/runtime/execution/directives/sf-query.directive.mjs +35 -0
  99. package/esm2020/runtime/execution/directives/velo-attribute.directive.mjs +88 -0
  100. package/esm2020/runtime/execution/directives/velo-port.directive.mjs +376 -0
  101. package/esm2020/runtime/execution/directives/vl-approval.directive.mjs +23 -0
  102. package/esm2020/runtime/execution/directives/vl-document-attachments.directive.mjs +36 -0
  103. package/esm2020/runtime/execution/directives/vl-document-templates.directive.mjs +60 -0
  104. package/esm2020/runtime/execution/directives/vl-quote.directive.mjs +42 -0
  105. package/esm2020/runtime/execution/directives/vl-ramp.directive.mjs +55 -0
  106. package/esm2020/runtime/execution/runtime-execution.module.mjs +133 -0
  107. package/esm2020/runtime/execution/utils/federated.util.mjs +32 -0
  108. package/esm2020/runtime/runtime.module.mjs +74 -0
  109. package/esm2020/runtime/services/cart.service.mjs +29 -0
  110. package/{esm2015/runtime/services/collapsible-state.service.js → esm2020/runtime/services/collapsible-state.service.mjs} +4 -4
  111. package/esm2020/runtime/services/configuration.service.mjs +119 -0
  112. package/{esm2015/runtime/services/current-state.service.js → esm2020/runtime/services/current-state.service.mjs} +4 -4
  113. package/{esm2015/runtime/services/form-scope.service.js → esm2020/runtime/services/form-scope.service.mjs} +4 -4
  114. package/esm2020/runtime/services/product-model-cache.service.mjs +31 -0
  115. package/esm2020/runtime/services/runtime-context.service.mjs +57 -0
  116. package/esm2020/runtime/services/runtime-form.service.mjs +219 -0
  117. package/esm2020/runtime/services/runtime.service.mjs +115 -0
  118. package/{esm2015/runtime/services/section-helper.service.js → esm2020/runtime/services/section-helper.service.mjs} +4 -4
  119. package/{esm2015/runtime/services/section-scope.service.js → esm2020/runtime/services/section-scope.service.mjs} +4 -4
  120. package/{esm2015/runtime/services/section-store.service.js → esm2020/runtime/services/section-store.service.mjs} +4 -4
  121. package/esm2020/runtime/services/section.service.mjs +117 -0
  122. package/esm2020/runtime/types/script-registry.types.mjs +51 -0
  123. package/esm2020/runtime/utils/line-item.util.mjs +270 -0
  124. package/esm2020/src/components/dialog/dialog.component.mjs +36 -0
  125. package/esm2020/src/components/dialog/dialog.module.mjs +19 -0
  126. package/esm2020/src/components/doc-gen/doc-gen.component.mjs +107 -0
  127. package/esm2020/src/components/doc-gen/doc-gen.module.mjs +19 -0
  128. package/esm2020/src/components/header/cart-overlay/cart-preview.component.mjs +120 -0
  129. package/{esm2015/src/components/header/cart-overlay/cart-preview.module.js → esm2020/src/components/header/cart-overlay/cart-preview.module.mjs} +11 -13
  130. package/esm2020/src/components/header/header.component.mjs +333 -0
  131. package/{esm2015/src/components/header/header.module.js → esm2020/src/components/header/header.module.mjs} +12 -14
  132. package/esm2020/src/components/header/metrics/metrics.component.mjs +227 -0
  133. package/{esm2015/src/components/header/metrics/metrics.module.js → esm2020/src/components/header/metrics/metrics.module.mjs} +17 -19
  134. package/{esm2015/src/flow-routing.module.js → esm2020/src/flow-routing.module.mjs} +12 -14
  135. package/esm2020/src/flow.component.mjs +45 -0
  136. package/esm2020/src/flow.module.mjs +58 -0
  137. package/esm2020/src/guards/context.guard.mjs +93 -0
  138. package/esm2020/src/guards/product-unload.guard.mjs +46 -0
  139. package/esm2020/src/guards/root.guard.mjs +42 -0
  140. package/esm2020/src/pages/assets/assets.component.mjs +111 -0
  141. package/esm2020/src/pages/assets/assets.module.mjs +20 -0
  142. package/esm2020/src/pages/catalog/catalog.component.mjs +111 -0
  143. package/esm2020/src/pages/catalog/catalog.module.mjs +20 -0
  144. package/esm2020/src/pages/debug/debug.component.mjs +62 -0
  145. package/{esm2015/src/pages/debug/debug.module.js → esm2020/src/pages/debug/debug.module.mjs} +12 -14
  146. package/esm2020/src/pages/empty-account/empty-account.component.mjs +12 -0
  147. package/esm2020/src/pages/empty-account/empty-account.module.mjs +20 -0
  148. package/esm2020/src/pages/legacy-product/legacy-product.component.mjs +137 -0
  149. package/esm2020/src/pages/legacy-product/legacy-product.module.mjs +19 -0
  150. package/esm2020/src/pages/product/product.component.mjs +94 -0
  151. package/esm2020/src/pages/product/product.module.mjs +20 -0
  152. package/esm2020/src/pages/record-not-found/record-not-found.component.mjs +25 -0
  153. package/esm2020/src/pages/record-not-found/record-not-found.module.mjs +20 -0
  154. package/esm2020/src/pages/remote/remote.component.mjs +342 -0
  155. package/esm2020/src/pages/remote/remote.module.mjs +20 -0
  156. package/esm2020/src/pages/shopping-cart/shopping-cart.component.mjs +111 -0
  157. package/esm2020/src/pages/shopping-cart/shopping-cart.module.mjs +20 -0
  158. package/esm2020/src/resolvers/flow.resolver.mjs +70 -0
  159. package/esm2020/src/resolvers/quote.resolver.mjs +90 -0
  160. package/esm2020/src/services/doc-gen.service.mjs +33 -0
  161. package/esm2020/src/services/flow-dialog.service.mjs +126 -0
  162. package/esm2020/src/services/flow-router.service.mjs +144 -0
  163. package/esm2020/src/services/flow.service.mjs +86 -0
  164. package/esm2020/src/utils/flow.utils.mjs +21 -0
  165. package/fesm2015/{veloceapps-sdk-cms.js → veloceapps-sdk-cms.mjs} +178 -207
  166. package/fesm2015/veloceapps-sdk-cms.mjs.map +1 -0
  167. package/fesm2015/{veloceapps-sdk-core.js → veloceapps-sdk-core.mjs} +76 -76
  168. package/fesm2015/veloceapps-sdk-core.mjs.map +1 -0
  169. package/fesm2015/{veloceapps-sdk-runtime.js → veloceapps-sdk-runtime.mjs} +242 -370
  170. package/fesm2015/veloceapps-sdk-runtime.mjs.map +1 -0
  171. package/fesm2015/veloceapps-sdk.mjs +2877 -0
  172. package/fesm2015/veloceapps-sdk.mjs.map +1 -0
  173. package/fesm2020/veloceapps-sdk-cms.mjs +2036 -0
  174. package/fesm2020/veloceapps-sdk-cms.mjs.map +1 -0
  175. package/fesm2020/veloceapps-sdk-core.mjs +1289 -0
  176. package/fesm2020/veloceapps-sdk-core.mjs.map +1 -0
  177. package/fesm2020/veloceapps-sdk-runtime.mjs +3764 -0
  178. package/fesm2020/veloceapps-sdk-runtime.mjs.map +1 -0
  179. package/fesm2020/veloceapps-sdk.mjs +2857 -0
  180. package/fesm2020/veloceapps-sdk.mjs.map +1 -0
  181. package/package.json +59 -33
  182. package/runtime/README.md +5 -0
  183. package/runtime/components/component-preview/component-preview.component.d.ts +2 -2
  184. package/runtime/components/section-renderer/section-renderer.component.d.ts +1 -1
  185. package/runtime/components/ui-runtime/runtime.component.d.ts +1 -1
  186. package/runtime/components/ui-runtime-preview/runtime-preview.component.d.ts +1 -1
  187. package/runtime/execution/components/children-placeholder/children-placeholder.component.d.ts +2 -2
  188. package/runtime/execution/components/context-provider/context-provider.component.d.ts +1 -1
  189. package/runtime/execution/components/execution-section-renderer/execution-section-renderer.component.d.ts +1 -1
  190. package/runtime/execution/components/federated/federated.component.d.ts +1 -1
  191. package/runtime/execution/components/velo-attribute/velo-attribute.component.d.ts +1 -1
  192. package/runtime/execution/components/velo-multiselect/velo-multiselect.component.d.ts +1 -1
  193. package/runtime/execution/components/velo-port-checkbox/velo-port-checkbox.component.d.ts +1 -1
  194. package/runtime/execution/components/velo-port-dropdown/velo-port-dropdown.component.d.ts +1 -1
  195. package/runtime/execution/components/velo-port-radio/velo-port-radio.component.d.ts +1 -1
  196. package/runtime/execution/components/velo-type/velo-type.component.d.ts +1 -1
  197. package/runtime/execution/directives/section-script.directive.d.ts +1 -1
  198. package/runtime/execution/directives/sf-query.directive.d.ts +1 -1
  199. package/runtime/execution/directives/velo-attribute.directive.d.ts +1 -1
  200. package/runtime/execution/directives/velo-port.directive.d.ts +6 -6
  201. package/runtime/execution/directives/vl-approval.directive.d.ts +1 -1
  202. package/runtime/execution/directives/vl-document-attachments.directive.d.ts +1 -1
  203. package/runtime/execution/directives/vl-document-templates.directive.d.ts +1 -1
  204. package/runtime/execution/directives/vl-quote.directive.d.ts +1 -1
  205. package/runtime/execution/directives/vl-ramp.directive.d.ts +1 -1
  206. package/runtime/execution/runtime-execution.module.d.ts +3 -5
  207. package/runtime/execution/utils/federated.util.d.ts +1 -1
  208. package/runtime/runtime.module.d.ts +3 -5
  209. package/runtime/services/section.service.d.ts +1 -1
  210. package/src/components/dialog/dialog.component.d.ts +1 -1
  211. package/src/components/doc-gen/doc-gen.component.d.ts +1 -1
  212. package/src/components/header/cart-overlay/cart-preview.component.d.ts +2 -2
  213. package/src/components/header/header.component.d.ts +1 -1
  214. package/src/components/header/metrics/metrics.component.d.ts +1 -1
  215. package/src/flow.component.d.ts +1 -1
  216. package/src/pages/assets/assets.component.d.ts +1 -1
  217. package/src/pages/catalog/catalog.component.d.ts +1 -1
  218. package/src/pages/debug/debug.component.d.ts +5 -3
  219. package/src/pages/empty-account/empty-account.component.d.ts +1 -1
  220. package/src/pages/legacy-product/legacy-product.component.d.ts +1 -1
  221. package/src/pages/legacy-product/legacy-product.module.d.ts +1 -2
  222. package/src/pages/product/product.component.d.ts +1 -1
  223. package/src/pages/record-not-found/record-not-found.component.d.ts +1 -1
  224. package/src/pages/remote/remote.component.d.ts +1 -1
  225. package/src/pages/shopping-cart/shopping-cart.component.d.ts +1 -1
  226. package/bundles/veloceapps-sdk-cms.umd.js +0 -2531
  227. package/bundles/veloceapps-sdk-cms.umd.js.map +0 -1
  228. package/bundles/veloceapps-sdk-core.umd.js +0 -1916
  229. package/bundles/veloceapps-sdk-core.umd.js.map +0 -1
  230. package/bundles/veloceapps-sdk-runtime.umd.js +0 -4415
  231. package/bundles/veloceapps-sdk-runtime.umd.js.map +0 -1
  232. package/bundles/veloceapps-sdk.umd.js +0 -3583
  233. package/bundles/veloceapps-sdk.umd.js.map +0 -1
  234. package/cms/modules/federated/federated.utils.d.ts +0 -1
  235. package/cms/package.json +0 -10
  236. package/cms/veloceapps-sdk-cms.d.ts +0 -5
  237. package/core/package.json +0 -10
  238. package/core/veloceapps-sdk-core.d.ts +0 -5
  239. package/esm2015/cms/cms.actions.js +0 -42
  240. package/esm2015/cms/components/element-children/element-children.component.js +0 -39
  241. package/esm2015/cms/components/element-children/element-children.module.js +0 -20
  242. package/esm2015/cms/components/element-drop-handle/element-drop-handle.component.js +0 -32
  243. package/esm2015/cms/components/element-drop-handle/element-drop-handle.module.js +0 -19
  244. package/esm2015/cms/components/element-renderer/element-renderer.component.js +0 -169
  245. package/esm2015/cms/components/element.component.js +0 -44
  246. package/esm2015/cms/components/plugin.component.js +0 -16
  247. package/esm2015/cms/components/preview/preview.component.js +0 -93
  248. package/esm2015/cms/components/preview/preview.module.js +0 -24
  249. package/esm2015/cms/directives/custom-template.directive.js +0 -25
  250. package/esm2015/cms/engine/models/entity.js +0 -18
  251. package/esm2015/cms/launcher.module.js +0 -24
  252. package/esm2015/cms/modules/federated/federated.component.js +0 -82
  253. package/esm2015/cms/modules/federated/federated.module.js +0 -19
  254. package/esm2015/cms/modules/federated/federated.types.js +0 -2
  255. package/esm2015/cms/modules/federated/federated.utils.js +0 -37
  256. package/esm2015/cms/modules/migrations/migrations.js +0 -11
  257. package/esm2015/cms/modules/migrations/services/migrations.service.js +0 -43
  258. package/esm2015/cms/modules/runtime/services/compilation.service.js +0 -84
  259. package/esm2015/cms/modules/runtime/services/runtime-editor.service.js +0 -27
  260. package/esm2015/cms/modules/runtime/services/runtime.service.js +0 -74
  261. package/esm2015/cms/plugins/configuration.plugin.js +0 -106
  262. package/esm2015/cms/plugins/io.plugin.js +0 -37
  263. package/esm2015/cms/plugins/region.plugin.js +0 -58
  264. package/esm2015/cms/plugins/script.plugin.js +0 -66
  265. package/esm2015/cms/services/integration.state.js +0 -40
  266. package/esm2015/cms/services/io-provider.service.js +0 -51
  267. package/esm2015/cms/services/resources.service.js +0 -50
  268. package/esm2015/cms/utils/element.utils.js +0 -157
  269. package/esm2015/cms/utils/elements-resolver.js +0 -163
  270. package/esm2015/cms/utils/path.utils.js +0 -56
  271. package/esm2015/cms/utils/ui-definition.utils.js +0 -82
  272. package/esm2015/cms/vendor-map.js +0 -51
  273. package/esm2015/core/core.module.js +0 -18
  274. package/esm2015/core/modules/configuration/helpers.js +0 -10
  275. package/esm2015/core/modules/configuration/services/configuration-runtime.service.js +0 -87
  276. package/esm2015/core/modules/configuration/services/configuration.service.js +0 -177
  277. package/esm2015/core/modules/configuration/services/runtime-context.service.js +0 -51
  278. package/esm2015/core/modules/flow-configuration/flow-configuration.module.js +0 -18
  279. package/esm2015/core/modules/flow-configuration/services/flow-configuration.service.js +0 -150
  280. package/esm2015/core/modules/flow-configuration/services/flow-update.service.js +0 -129
  281. package/esm2015/core/services/context.service.js +0 -53
  282. package/esm2015/core/services/metric-calculation/metric-calculation.service.js +0 -83
  283. package/esm2015/core/services/product-images.service.js +0 -30
  284. package/esm2015/core/services/quote-draft.service.js +0 -217
  285. package/esm2015/core/utils/line-item.utils.js +0 -143
  286. package/esm2015/core/utils/line-item.worker.js +0 -19
  287. package/esm2015/runtime/components/component-preview/component-preview.component.js +0 -125
  288. package/esm2015/runtime/components/section-renderer/section-renderer.component.js +0 -71
  289. package/esm2015/runtime/components/ui-runtime/runtime.component.js +0 -429
  290. package/esm2015/runtime/components/ui-runtime-preview/runtime-preview.component.js +0 -109
  291. package/esm2015/runtime/execution/components/children-placeholder/children-placeholder.component.js +0 -68
  292. package/esm2015/runtime/execution/components/context-provider/context-provider.component.js +0 -36
  293. package/esm2015/runtime/execution/components/execution-section-renderer/execution-section-renderer.component.js +0 -72
  294. package/esm2015/runtime/execution/components/federated/federated.component.js +0 -81
  295. package/esm2015/runtime/execution/components/velo-attribute/velo-attribute.component.js +0 -65
  296. package/esm2015/runtime/execution/components/velo-multiselect/velo-multiselect.component.js +0 -136
  297. package/esm2015/runtime/execution/components/velo-port-checkbox/velo-port-checkbox.component.js +0 -80
  298. package/esm2015/runtime/execution/components/velo-port-dropdown/velo-port-dropdown.component.js +0 -101
  299. package/esm2015/runtime/execution/components/velo-port-radio/velo-port-radio.component.js +0 -150
  300. package/esm2015/runtime/execution/components/velo-type/velo-type.component.js +0 -121
  301. package/esm2015/runtime/execution/directives/section-script.directive.js +0 -242
  302. package/esm2015/runtime/execution/directives/sf-query.directive.js +0 -34
  303. package/esm2015/runtime/execution/directives/velo-attribute.directive.js +0 -86
  304. package/esm2015/runtime/execution/directives/velo-port.directive.js +0 -373
  305. package/esm2015/runtime/execution/directives/vl-approval.directive.js +0 -22
  306. package/esm2015/runtime/execution/directives/vl-document-attachments.directive.js +0 -35
  307. package/esm2015/runtime/execution/directives/vl-document-templates.directive.js +0 -59
  308. package/esm2015/runtime/execution/directives/vl-quote.directive.js +0 -41
  309. package/esm2015/runtime/execution/directives/vl-ramp.directive.js +0 -51
  310. package/esm2015/runtime/execution/runtime-execution.module.js +0 -163
  311. package/esm2015/runtime/execution/utils/federated.util.js +0 -37
  312. package/esm2015/runtime/runtime.module.js +0 -104
  313. package/esm2015/runtime/services/cart.service.js +0 -27
  314. package/esm2015/runtime/services/configuration.service.js +0 -101
  315. package/esm2015/runtime/services/product-model-cache.service.js +0 -30
  316. package/esm2015/runtime/services/runtime-context.service.js +0 -56
  317. package/esm2015/runtime/services/runtime-form.service.js +0 -224
  318. package/esm2015/runtime/services/runtime.service.js +0 -108
  319. package/esm2015/runtime/services/section.service.js +0 -124
  320. package/esm2015/runtime/types/script-registry.types.js +0 -51
  321. package/esm2015/runtime/utils/line-item.util.js +0 -273
  322. package/esm2015/src/components/dialog/dialog.component.js +0 -40
  323. package/esm2015/src/components/dialog/dialog.module.js +0 -19
  324. package/esm2015/src/components/doc-gen/doc-gen.component.js +0 -109
  325. package/esm2015/src/components/doc-gen/doc-gen.module.js +0 -19
  326. package/esm2015/src/components/header/cart-overlay/cart-preview.component.js +0 -122
  327. package/esm2015/src/components/header/header.component.js +0 -336
  328. package/esm2015/src/components/header/metrics/metrics.component.js +0 -232
  329. package/esm2015/src/flow.component.js +0 -45
  330. package/esm2015/src/flow.module.js +0 -60
  331. package/esm2015/src/guards/context.guard.js +0 -84
  332. package/esm2015/src/guards/product-unload.guard.js +0 -43
  333. package/esm2015/src/guards/root.guard.js +0 -41
  334. package/esm2015/src/pages/assets/assets.component.js +0 -117
  335. package/esm2015/src/pages/assets/assets.module.js +0 -20
  336. package/esm2015/src/pages/catalog/catalog.component.js +0 -117
  337. package/esm2015/src/pages/catalog/catalog.module.js +0 -20
  338. package/esm2015/src/pages/debug/debug.component.js +0 -61
  339. package/esm2015/src/pages/empty-account/empty-account.component.js +0 -17
  340. package/esm2015/src/pages/empty-account/empty-account.module.js +0 -20
  341. package/esm2015/src/pages/legacy-product/legacy-product.component.js +0 -132
  342. package/esm2015/src/pages/legacy-product/legacy-product.module.js +0 -21
  343. package/esm2015/src/pages/product/product.component.js +0 -101
  344. package/esm2015/src/pages/product/product.module.js +0 -20
  345. package/esm2015/src/pages/record-not-found/record-not-found.component.js +0 -29
  346. package/esm2015/src/pages/record-not-found/record-not-found.module.js +0 -20
  347. package/esm2015/src/pages/remote/remote.component.js +0 -350
  348. package/esm2015/src/pages/remote/remote.module.js +0 -20
  349. package/esm2015/src/pages/shopping-cart/shopping-cart.component.js +0 -117
  350. package/esm2015/src/pages/shopping-cart/shopping-cart.module.js +0 -20
  351. package/esm2015/src/resolvers/flow.resolver.js +0 -62
  352. package/esm2015/src/resolvers/quote.resolver.js +0 -88
  353. package/esm2015/src/services/doc-gen.service.js +0 -33
  354. package/esm2015/src/services/flow-dialog.service.js +0 -124
  355. package/esm2015/src/services/flow-router.service.js +0 -144
  356. package/esm2015/src/services/flow.service.js +0 -84
  357. package/esm2015/src/utils/flow.utils.js +0 -22
  358. package/fesm2015/veloceapps-sdk-cms.js.map +0 -1
  359. package/fesm2015/veloceapps-sdk-core.js.map +0 -1
  360. package/fesm2015/veloceapps-sdk-runtime.js.map +0 -1
  361. package/fesm2015/veloceapps-sdk.js +0 -2953
  362. package/fesm2015/veloceapps-sdk.js.map +0 -1
  363. package/runtime/package.json +0 -10
  364. package/runtime/veloceapps-sdk-runtime.d.ts +0 -5
  365. package/veloceapps-sdk.d.ts +0 -5
  366. /package/{esm2015/cms/cms.default.js → esm2020/cms/cms.default.mjs} +0 -0
  367. /package/{esm2015/cms/cms.elements.js → esm2020/cms/cms.elements.mjs} +0 -0
  368. /package/{esm2015/cms/cms.layouts.js → esm2020/cms/cms.layouts.mjs} +0 -0
  369. /package/{esm2015/cms/components/index.js → esm2020/cms/components/index.mjs} +0 -0
  370. /package/{esm2015/cms/components/preview/index.js → esm2020/cms/components/preview/index.mjs} +0 -0
  371. /package/{esm2015/cms/components/preview/preview.types.js → esm2020/cms/components/preview/preview.types.mjs} +0 -0
  372. /package/{esm2015/cms/decorators/element.decorator.js → esm2020/cms/decorators/element.decorator.mjs} +0 -0
  373. /package/{esm2015/cms/decorators/index.js → esm2020/cms/decorators/index.mjs} +0 -0
  374. /package/{esm2015/cms/engine/models/plugin.js → esm2020/cms/engine/models/plugin.mjs} +0 -0
  375. /package/{esm2015/cms/index.js → esm2020/cms/index.mjs} +0 -0
  376. /package/{esm2015/cms/injection-tokens.js → esm2020/cms/injection-tokens.mjs} +0 -0
  377. /package/{esm2015/cms/modules/federated/default-options.js → esm2020/cms/modules/federated/default-options.mjs} +0 -0
  378. /package/{esm2015/cms/modules/federated/export.js → esm2020/cms/modules/federated/export.mjs} +0 -0
  379. /package/{esm2015/cms/modules/migrations/index.js → esm2020/cms/modules/migrations/index.mjs} +0 -0
  380. /package/{esm2015/cms/modules/migrations/types/migrations.types.js → esm2020/cms/modules/migrations/types/migrations.types.mjs} +0 -0
  381. /package/{esm2015/cms/modules/runtime/index.js → esm2020/cms/modules/runtime/index.mjs} +0 -0
  382. /package/{esm2015/cms/modules/runtime/tokens.js → esm2020/cms/modules/runtime/tokens.mjs} +0 -0
  383. /package/{esm2015/cms/modules/runtime/types/compilation.types.js → esm2020/cms/modules/runtime/types/compilation.types.mjs} +0 -0
  384. /package/{esm2015/cms/modules/runtime/types/runtime.actions.js → esm2020/cms/modules/runtime/types/runtime.actions.mjs} +0 -0
  385. /package/{esm2015/cms/services/index.js → esm2020/cms/services/index.mjs} +0 -0
  386. /package/{esm2015/cms/types/common.types.js → esm2020/cms/types/common.types.mjs} +0 -0
  387. /package/{esm2015/cms/types/configuration.types.js → esm2020/cms/types/configuration.types.mjs} +0 -0
  388. /package/{esm2015/cms/types/elements.types.js → esm2020/cms/types/elements.types.mjs} +0 -0
  389. /package/{esm2015/cms/types/index.js → esm2020/cms/types/index.mjs} +0 -0
  390. /package/{esm2015/cms/types/integration.types.js → esm2020/cms/types/integration.types.mjs} +0 -0
  391. /package/{esm2015/cms/types/layouts.types.js → esm2020/cms/types/layouts.types.mjs} +0 -0
  392. /package/{esm2015/cms/types/path.types.js → esm2020/cms/types/path.types.mjs} +0 -0
  393. /package/{esm2015/cms/utils/index.js → esm2020/cms/utils/index.mjs} +0 -0
  394. /package/{esm2015/cms/veloceapps-sdk-cms.js → esm2020/cms/veloceapps-sdk-cms.mjs} +0 -0
  395. /package/{esm2015/core/index.js → esm2020/core/index.mjs} +0 -0
  396. /package/{esm2015/core/modules/configuration/index.js → esm2020/core/modules/configuration/index.mjs} +0 -0
  397. /package/{esm2015/core/modules/configuration/types/configuration-runtime.types.js → esm2020/core/modules/configuration/types/configuration-runtime.types.mjs} +0 -0
  398. /package/{esm2015/core/modules/flow-configuration/index.js → esm2020/core/modules/flow-configuration/index.mjs} +0 -0
  399. /package/{esm2015/core/modules/flow-configuration/types/update.types.js → esm2020/core/modules/flow-configuration/types/update.types.mjs} +0 -0
  400. /package/{esm2015/core/modules/index.js → esm2020/core/modules/index.mjs} +0 -0
  401. /package/{esm2015/core/services/index.js → esm2020/core/services/index.mjs} +0 -0
  402. /package/{esm2015/core/services/metric-calculation/metric-calculation.types.js → esm2020/core/services/metric-calculation/metric-calculation.types.mjs} +0 -0
  403. /package/{esm2015/core/services/metric-calculation/metric-calculation.utils.js → esm2020/core/services/metric-calculation/metric-calculation.utils.mjs} +0 -0
  404. /package/{esm2015/core/types/index.js → esm2020/core/types/index.mjs} +0 -0
  405. /package/{esm2015/core/types/runtime.types.js → esm2020/core/types/runtime.types.mjs} +0 -0
  406. /package/{esm2015/core/types/ui-definition.types.js → esm2020/core/types/ui-definition.types.mjs} +0 -0
  407. /package/{esm2015/core/utils/index.js → esm2020/core/utils/index.mjs} +0 -0
  408. /package/{esm2015/core/utils/ui-definition.utils.js → esm2020/core/utils/ui-definition.utils.mjs} +0 -0
  409. /package/{esm2015/core/veloceapps-sdk-core.js → esm2020/core/veloceapps-sdk-core.mjs} +0 -0
  410. /package/{esm2015/index.js → esm2020/index.mjs} +0 -0
  411. /package/{esm2015/runtime/components/index.js → esm2020/runtime/components/index.mjs} +0 -0
  412. /package/{esm2015/runtime/index.js → esm2020/runtime/index.mjs} +0 -0
  413. /package/{esm2015/runtime/services/index.js → esm2020/runtime/services/index.mjs} +0 -0
  414. /package/{esm2015/runtime/types/bound-data.types.js → esm2020/runtime/types/bound-data.types.mjs} +0 -0
  415. /package/{esm2015/runtime/types/index.js → esm2020/runtime/types/index.mjs} +0 -0
  416. /package/{esm2015/runtime/types/quote-states.types.js → esm2020/runtime/types/quote-states.types.mjs} +0 -0
  417. /package/{esm2015/runtime/types/runtime.types.js → esm2020/runtime/types/runtime.types.mjs} +0 -0
  418. /package/{esm2015/runtime/utils/section.utils.js → esm2020/runtime/utils/section.utils.mjs} +0 -0
  419. /package/{esm2015/runtime/utils/sections-binder.helper.js → esm2020/runtime/utils/sections-binder.helper.mjs} +0 -0
  420. /package/{esm2015/runtime/veloceapps-sdk-runtime.js → esm2020/runtime/veloceapps-sdk-runtime.mjs} +0 -0
  421. /package/{esm2015/src/components/dialog/dialog.types.js → esm2020/src/components/dialog/dialog.types.mjs} +0 -0
  422. /package/{esm2015/src/components/header/header.types.js → esm2020/src/components/header/header.types.mjs} +0 -0
  423. /package/{esm2015/src/components/header/metrics/index.js → esm2020/src/components/header/metrics/index.mjs} +0 -0
  424. /package/{esm2015/src/components/header/metrics/metrics.definitions.js → esm2020/src/components/header/metrics/metrics.definitions.mjs} +0 -0
  425. /package/{esm2015/src/constants.js → esm2020/src/constants.mjs} +0 -0
  426. /package/{esm2015/src/guards/index.js → esm2020/src/guards/index.mjs} +0 -0
  427. /package/{esm2015/src/index.js → esm2020/src/index.mjs} +0 -0
  428. /package/{esm2015/src/pages/remote/remote.types.js → esm2020/src/pages/remote/remote.types.mjs} +0 -0
  429. /package/{esm2015/src/services/index.js → esm2020/src/services/index.mjs} +0 -0
  430. /package/{esm2015/src/types/context-route.types.js → esm2020/src/types/context-route.types.mjs} +0 -0
  431. /package/{esm2015/src/types/flow-customization.types.js → esm2020/src/types/flow-customization.types.mjs} +0 -0
  432. /package/{esm2015/src/types/index.js → esm2020/src/types/index.mjs} +0 -0
  433. /package/{esm2015/src/types/metrics.types.js → esm2020/src/types/metrics.types.mjs} +0 -0
  434. /package/{esm2015/src/types/route.types.js → esm2020/src/types/route.types.mjs} +0 -0
  435. /package/{esm2015/src/utils/index.js → esm2020/src/utils/index.mjs} +0 -0
  436. /package/{esm2015/veloceapps-sdk.js → esm2020/veloceapps-sdk.mjs} +0 -0
@@ -1,56 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { RuntimeModel, SectionPathUtil } from '@veloceapps/core';
3
- import { RuntimeMode } from '@veloceapps/sdk/core';
4
- import { map } from 'rxjs/operators';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@veloceapps/api";
7
- import * as i2 from "primeng/api";
8
- import * as i3 from "@veloceapps/sdk/core";
9
- export class RuntimeContextService {
10
- constructor(configurationApiService, messageService, contextService) {
11
- this.configurationApiService = configurationApiService;
12
- this.messageService = messageService;
13
- this.contextService = contextService;
14
- }
15
- getRuntimeContext(productId, offeringId) {
16
- return this.configurationApiService.getRuntimeDataByProductId(productId, offeringId).pipe(map(runtimeData => {
17
- var _a;
18
- const uiDefinition = this.getUIDefinition(runtimeData.uiDefinitions);
19
- const runtimeModel = RuntimeModel.create(runtimeData.types, runtimeData.products);
20
- const { productName, properties } = (_a = Array.from(runtimeModel.components.values()).find(c => c.productId === productId)) !== null && _a !== void 0 ? _a : {};
21
- return {
22
- modelId: runtimeData.modelId,
23
- uiDefinition: uiDefinition,
24
- runtimeModel: runtimeModel,
25
- runtimeMode: RuntimeMode.PROD,
26
- productId: productId,
27
- productType: (properties === null || properties === void 0 ? void 0 : properties.displayName) || productName,
28
- offeringId: offeringId,
29
- properties: {
30
- PricingEnabled: uiDefinition.pricingEnabled ? 'true' : 'false',
31
- },
32
- };
33
- }));
34
- }
35
- getUIDefinition(uiDefinitions = []) {
36
- const { uiDefinitionId } = this.contextService.resolve();
37
- const findByFn = (uiDef) => (uiDefinitionId ? uiDefinitionId === uiDef.id : uiDef.primary);
38
- const uiDefinition = uiDefinitions.find(findByFn) || (uiDefinitions.length === 1 && Object.assign({}, uiDefinitions[0]));
39
- if (!uiDefinition) {
40
- const errMsg = `Unable to find ${uiDefinitionId ? uiDefinitionId : 'Default'} UI`;
41
- this.messageService.add({
42
- severity: 'error',
43
- summary: 'ERROR',
44
- });
45
- throw new Error(errMsg);
46
- }
47
- SectionPathUtil.updateSectionsPath(uiDefinition.sections);
48
- return uiDefinition;
49
- }
50
- }
51
- RuntimeContextService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: RuntimeContextService, deps: [{ token: i1.ConfigurationApiService }, { token: i2.MessageService }, { token: i3.ContextService }], target: i0.ɵɵFactoryTarget.Injectable });
52
- RuntimeContextService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: RuntimeContextService });
53
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: RuntimeContextService, decorators: [{
54
- type: Injectable
55
- }], ctorParameters: function () { return [{ type: i1.ConfigurationApiService }, { type: i2.MessageService }, { type: i3.ContextService }]; } });
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS1jb250ZXh0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9ydW50aW1lL3NlcnZpY2VzL3J1bnRpbWUtY29udGV4dC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQWdCLE1BQU0sa0JBQWtCLENBQUM7QUFDL0UsT0FBTyxFQUFrQixXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUduRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBSXJDLE1BQU0sT0FBTyxxQkFBcUI7SUFDaEMsWUFDVSx1QkFBZ0QsRUFDaEQsY0FBOEIsRUFDOUIsY0FBOEI7UUFGOUIsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUF5QjtRQUNoRCxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO0lBQ3JDLENBQUM7SUFFRyxpQkFBaUIsQ0FBQyxTQUFpQixFQUFFLFVBQW1CO1FBQzdELE9BQU8sSUFBSSxDQUFDLHVCQUF1QixDQUFDLHlCQUF5QixDQUFDLFNBQVMsRUFBRSxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQ3ZGLEdBQUcsQ0FBQyxXQUFXLENBQUMsRUFBRTs7WUFDaEIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDckUsTUFBTSxZQUFZLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNsRixNQUFNLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxHQUMvQixNQUFBLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLEtBQUssU0FBUyxDQUFDLG1DQUFJLEVBQUUsQ0FBQztZQUUxRixPQUFPO2dCQUNMLE9BQU8sRUFBRSxXQUFXLENBQUMsT0FBTztnQkFDNUIsWUFBWSxFQUFFLFlBQVk7Z0JBQzFCLFlBQVksRUFBRSxZQUFZO2dCQUMxQixXQUFXLEVBQUUsV0FBVyxDQUFDLElBQUk7Z0JBQzdCLFNBQVMsRUFBRSxTQUFTO2dCQUNwQixXQUFXLEVBQUUsQ0FBQSxVQUFVLGFBQVYsVUFBVSx1QkFBVixVQUFVLENBQUUsV0FBVyxLQUFJLFdBQVc7Z0JBQ25ELFVBQVUsRUFBRSxVQUFVO2dCQUN0QixVQUFVLEVBQUU7b0JBQ1YsY0FBYyxFQUFFLFlBQVksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTztpQkFDL0Q7YUFDRixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFTyxlQUFlLENBQUMsZ0JBQWdDLEVBQUU7UUFDeEQsTUFBTSxFQUFFLGNBQWMsRUFBRSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUM7UUFFekQsTUFBTSxRQUFRLEdBQUcsQ0FBQyxLQUFtQixFQUFXLEVBQUUsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsY0FBYyxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVsSCxNQUFNLFlBQVksR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sS0FBSyxDQUFDLHNCQUFTLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBRSxDQUFDLENBQUM7UUFFN0csSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNqQixNQUFNLE1BQU0sR0FBRyxrQkFBa0IsY0FBYyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLFNBQVMsS0FBSyxDQUFDO1lBRWxGLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDO2dCQUN0QixRQUFRLEVBQUUsT0FBTztnQkFDakIsT0FBTyxFQUFFLE9BQU87YUFDakIsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUN6QjtRQUVELGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFMUQsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQzs7bUhBbkRVLHFCQUFxQjt1SEFBckIscUJBQXFCOzRGQUFyQixxQkFBcUI7a0JBRGpDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb25maWd1cmF0aW9uQXBpU2VydmljZSB9IGZyb20gJ0B2ZWxvY2VhcHBzL2FwaSc7XG5pbXBvcnQgeyBSdW50aW1lTW9kZWwsIFNlY3Rpb25QYXRoVXRpbCwgVUlEZWZpbml0aW9uIH0gZnJvbSAnQHZlbG9jZWFwcHMvY29yZSc7XG5pbXBvcnQgeyBDb250ZXh0U2VydmljZSwgUnVudGltZU1vZGUgfSBmcm9tICdAdmVsb2NlYXBwcy9zZGsvY29yZSc7XG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IExlZ2FjeVJ1bnRpbWVDb250ZXh0IH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUnVudGltZUNvbnRleHRTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjb25maWd1cmF0aW9uQXBpU2VydmljZTogQ29uZmlndXJhdGlvbkFwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb250ZXh0U2VydmljZTogQ29udGV4dFNlcnZpY2UsXG4gICkge31cblxuICBwdWJsaWMgZ2V0UnVudGltZUNvbnRleHQocHJvZHVjdElkOiBzdHJpbmcsIG9mZmVyaW5nSWQ/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPExlZ2FjeVJ1bnRpbWVDb250ZXh0PiB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlndXJhdGlvbkFwaVNlcnZpY2UuZ2V0UnVudGltZURhdGFCeVByb2R1Y3RJZChwcm9kdWN0SWQsIG9mZmVyaW5nSWQpLnBpcGUoXG4gICAgICBtYXAocnVudGltZURhdGEgPT4ge1xuICAgICAgICBjb25zdCB1aURlZmluaXRpb24gPSB0aGlzLmdldFVJRGVmaW5pdGlvbihydW50aW1lRGF0YS51aURlZmluaXRpb25zKTtcbiAgICAgICAgY29uc3QgcnVudGltZU1vZGVsID0gUnVudGltZU1vZGVsLmNyZWF0ZShydW50aW1lRGF0YS50eXBlcywgcnVudGltZURhdGEucHJvZHVjdHMpO1xuICAgICAgICBjb25zdCB7IHByb2R1Y3ROYW1lLCBwcm9wZXJ0aWVzIH0gPVxuICAgICAgICAgIEFycmF5LmZyb20ocnVudGltZU1vZGVsLmNvbXBvbmVudHMudmFsdWVzKCkpLmZpbmQoYyA9PiBjLnByb2R1Y3RJZCA9PT0gcHJvZHVjdElkKSA/PyB7fTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIG1vZGVsSWQ6IHJ1bnRpbWVEYXRhLm1vZGVsSWQsXG4gICAgICAgICAgdWlEZWZpbml0aW9uOiB1aURlZmluaXRpb24sXG4gICAgICAgICAgcnVudGltZU1vZGVsOiBydW50aW1lTW9kZWwsXG4gICAgICAgICAgcnVudGltZU1vZGU6IFJ1bnRpbWVNb2RlLlBST0QsXG4gICAgICAgICAgcHJvZHVjdElkOiBwcm9kdWN0SWQsXG4gICAgICAgICAgcHJvZHVjdFR5cGU6IHByb3BlcnRpZXM/LmRpc3BsYXlOYW1lIHx8IHByb2R1Y3ROYW1lLFxuICAgICAgICAgIG9mZmVyaW5nSWQ6IG9mZmVyaW5nSWQsXG4gICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgUHJpY2luZ0VuYWJsZWQ6IHVpRGVmaW5pdGlvbi5wcmljaW5nRW5hYmxlZCA/ICd0cnVlJyA6ICdmYWxzZScsXG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGdldFVJRGVmaW5pdGlvbih1aURlZmluaXRpb25zOiBVSURlZmluaXRpb25bXSA9IFtdKTogVUlEZWZpbml0aW9uIHtcbiAgICBjb25zdCB7IHVpRGVmaW5pdGlvbklkIH0gPSB0aGlzLmNvbnRleHRTZXJ2aWNlLnJlc29sdmUoKTtcblxuICAgIGNvbnN0IGZpbmRCeUZuID0gKHVpRGVmOiBVSURlZmluaXRpb24pOiBib29sZWFuID0+ICh1aURlZmluaXRpb25JZCA/IHVpRGVmaW5pdGlvbklkID09PSB1aURlZi5pZCA6IHVpRGVmLnByaW1hcnkpO1xuXG4gICAgY29uc3QgdWlEZWZpbml0aW9uID0gdWlEZWZpbml0aW9ucy5maW5kKGZpbmRCeUZuKSB8fCAodWlEZWZpbml0aW9ucy5sZW5ndGggPT09IDEgJiYgeyAuLi51aURlZmluaXRpb25zWzBdIH0pO1xuXG4gICAgaWYgKCF1aURlZmluaXRpb24pIHtcbiAgICAgIGNvbnN0IGVyck1zZyA9IGBVbmFibGUgdG8gZmluZCAke3VpRGVmaW5pdGlvbklkID8gdWlEZWZpbml0aW9uSWQgOiAnRGVmYXVsdCd9IFVJYDtcblxuICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoe1xuICAgICAgICBzZXZlcml0eTogJ2Vycm9yJyxcbiAgICAgICAgc3VtbWFyeTogJ0VSUk9SJyxcbiAgICAgIH0pO1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGVyck1zZyk7XG4gICAgfVxuXG4gICAgU2VjdGlvblBhdGhVdGlsLnVwZGF0ZVNlY3Rpb25zUGF0aCh1aURlZmluaXRpb24uc2VjdGlvbnMpO1xuXG4gICAgcmV0dXJuIHVpRGVmaW5pdGlvbjtcbiAgfVxufVxuIl19
@@ -1,224 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { FormControl, FormGroup } from '@angular/forms';
3
- import { EntityUtil, TypeValidators } from '@veloceapps/core';
4
- import { isNull, isString, isUndefined, keys } from 'lodash';
5
- import { BoundDataType } from '../types/bound-data.types';
6
- import { LineItemUtil } from '../utils/line-item.util';
7
- import { SectionsBinderHelper } from '../utils/sections-binder.helper';
8
- import * as i0 from "@angular/core";
9
- export class RuntimeFormService {
10
- constructor() {
11
- this.sections = [];
12
- }
13
- initForm(sections, solutionLineItem) {
14
- this.sections = sections;
15
- this.solutionLineItem = solutionLineItem;
16
- const form = new FormGroup({});
17
- sections
18
- .filter(section => section.model && section.template && section.boundData)
19
- .forEach(section => {
20
- this.populateSectionValue(section);
21
- this.populateSectionPrice(section);
22
- this.populateFormControls(section, form);
23
- });
24
- return form;
25
- }
26
- populateSectionValue(section) {
27
- var _a, _b, _c, _d, _e, _f, _g;
28
- let value;
29
- let valueOptions = [];
30
- let displayValues = {};
31
- let properties = {};
32
- if (FormServiceUtils.isPortSection(section)) {
33
- const portDomain = (_a = section.model) === null || _a === void 0 ? void 0 : _a.portDomains[section.boundData.name];
34
- valueOptions = (_b = portDomain === null || portDomain === void 0 ? void 0 : portDomain.domainTypes.map(dt => dt.name)) !== null && _b !== void 0 ? _b : [];
35
- properties =
36
- (_c = portDomain === null || portDomain === void 0 ? void 0 : portDomain.domainTypes.reduce(function (map, dt) {
37
- map[dt.name] = dt.properties;
38
- return map;
39
- }, {})) !== null && _c !== void 0 ? _c : {};
40
- displayValues =
41
- (_d = portDomain === null || portDomain === void 0 ? void 0 : portDomain.domainTypes.reduce(function (map, dt) {
42
- map[dt.name] = dt.displayName;
43
- return map;
44
- }, {})) !== null && _d !== void 0 ? _d : {};
45
- value = (_e = section.model) === null || _e === void 0 ? void 0 : _e.lineItems.map(li => li.type);
46
- }
47
- if (FormServiceUtils.isAttributeSection(section)) {
48
- const attribute = (_f = section.model) === null || _f === void 0 ? void 0 : _f.attributes.find(attr => attr.name.toLowerCase() === section.boundData.name.toLowerCase());
49
- if (attribute) {
50
- value = attribute.value;
51
- }
52
- const attributeDomain = (_g = section.model) === null || _g === void 0 ? void 0 : _g.attributeDomains[section.boundData.name];
53
- if (!(attribute === null || attribute === void 0 ? void 0 : attribute.type.match('GENERIC|BOOLEAN')) && attributeDomain) {
54
- const count = attribute && attribute.scale != null
55
- ? LineItemUtil.countAttributeValues(attribute.scale, attributeDomain)
56
- : undefined;
57
- if (attribute && attribute.scale != null && count && count <= 100) {
58
- valueOptions = LineItemUtil.splitDomainToValues(attribute.scale, attributeDomain);
59
- }
60
- else {
61
- valueOptions = attributeDomain;
62
- }
63
- }
64
- else if (attributeDomain) {
65
- valueOptions = attributeDomain;
66
- }
67
- }
68
- if (!EntityUtil.isPresent(value)) {
69
- value = '';
70
- }
71
- section.sectionValue = {
72
- value,
73
- valueOptions,
74
- displayValues,
75
- properties,
76
- };
77
- }
78
- populateSectionPrice(section) {
79
- var _a;
80
- const priceValue = { priceOptions: {} };
81
- if (FormServiceUtils.isPortSection(section)) {
82
- const portDomain = (_a = section.model) === null || _a === void 0 ? void 0 : _a.portDomains[section.boundData.name];
83
- if (portDomain) {
84
- portDomain.domainTypes.forEach(dt => {
85
- if (dt.recommendedPrices && dt.recommendedPrices.length > 0) {
86
- priceValue.priceOptions[dt.name] = dt.recommendedPrices;
87
- }
88
- else {
89
- delete priceValue.priceOptions[dt.name];
90
- }
91
- });
92
- }
93
- }
94
- section.priceValue = priceValue;
95
- }
96
- populateFormControls(section, form) {
97
- form.controls[section.id] = this.createFormControl(section);
98
- if (FormServiceUtils.isPortSection(section) || FormServiceUtils.isTypeSection(section)) {
99
- form.controls[section.id.concat('qty')] = this.createQtyControl(section);
100
- }
101
- }
102
- createFormControl(section) {
103
- var _a;
104
- const value = FormServiceUtils.isPortSection(section) ? void 0 : (_a = section.sectionValue) === null || _a === void 0 ? void 0 : _a.value;
105
- return new FormControl(value, this.getFormControlValidators(section));
106
- }
107
- createQtyControl(section) {
108
- var _a, _b, _c;
109
- const isTypeSection = FormServiceUtils.isTypeSection(section);
110
- const validators = [];
111
- const maxAllowed = this.getMaxAllowed(section);
112
- //TODO TEMPORARY SOLUTION (WILL BE DISABLED ONCE RADIO CONTROLS IMPLEMENTED)
113
- if (maxAllowed > 0) {
114
- validators.push(this.getQuantityValidator(maxAllowed, isTypeSection ? (_b = (_a = section.model) === null || _a === void 0 ? void 0 : _a.qty) !== null && _b !== void 0 ? _b : 0 : 0));
115
- }
116
- const qtyValue = isTypeSection ? (_c = section.model) === null || _c === void 0 ? void 0 : _c.qty : 1;
117
- return new FormControl(qtyValue, validators);
118
- }
119
- getMaxAllowed(section) {
120
- let lineItem = section.model;
121
- let portName = section.boundData.name;
122
- if (FormServiceUtils.isTypeSection(section)) {
123
- if (section.model && EntityUtil.isPresent(section.model.parentId) && this.solutionLineItem) {
124
- if (section.model.parentId) {
125
- lineItem = LineItemUtil.findById(section.model.parentId, [this.solutionLineItem]);
126
- }
127
- portName = section.model.port;
128
- }
129
- else {
130
- return 0;
131
- }
132
- }
133
- if (!lineItem) {
134
- return 0;
135
- }
136
- return SectionsBinderHelper.getMaxAllowed(lineItem, portName);
137
- }
138
- //TODO ALE TO SUPPORT EMPTY VALUES FOR INTERVAL ATTRIBUTES OUT OF DOMAIN
139
- getFormControlValidators(section) {
140
- if (!FormServiceUtils.isAttributeSection(section)) {
141
- return null;
142
- }
143
- const validators = [];
144
- const parentLineItem = section.model && this.solutionLineItem && FormServiceUtils.findParent(section.model.id, [this.solutionLineItem]);
145
- const attribute = parentLineItem &&
146
- parentLineItem.attributes.find(attr => attr.name.toLowerCase() === section.boundData.name.toLowerCase());
147
- if (!attribute || !attribute.type) {
148
- return null;
149
- }
150
- const primitiveTypesValidators = {
151
- INT: TypeValidators.integerValidator(),
152
- 'DOUBLE|DECIMAL': TypeValidators.decimalValidator(10),
153
- };
154
- keys(primitiveTypesValidators).forEach(types => {
155
- if (types.match(attribute.type)) {
156
- const validator = primitiveTypesValidators[types];
157
- validators.push(validator);
158
- }
159
- });
160
- if (!attribute.type.match('GENERIC|BOOLEAN|MULTIPLE')) {
161
- const sectionLabel = section.label;
162
- const intervalValidator = function (control) {
163
- var _a;
164
- if (isUndefined(control.value) || isNull(control.value) || isNaN(+control.value)) {
165
- return { interval: { message: sectionLabel + ' is not in domain' } };
166
- }
167
- if (!isUndefined(control.value) && isString(control.value) && control.value.length === 0) {
168
- return null;
169
- }
170
- const attributeDomain = (_a = section.model) === null || _a === void 0 ? void 0 : _a.attributeDomains[section.boundData.name];
171
- const valid = attributeDomain === null || attributeDomain === void 0 ? void 0 : attributeDomain.some(valueOption => {
172
- const min = +valueOption.min;
173
- const max = +valueOption.max;
174
- return +control.value <= max && +control.value >= min;
175
- });
176
- if (!valid) {
177
- return { interval: { message: sectionLabel + ' is not in domain' } };
178
- }
179
- return null;
180
- };
181
- validators.push(intervalValidator);
182
- }
183
- if (section.required) {
184
- validators.push(TypeValidators.requiredValidator(section.label + ' is required '));
185
- }
186
- return validators.length !== 0 ? validators : null;
187
- }
188
- getQuantityValidator(max, originalQty) {
189
- return (control) => {
190
- if (!control.value) {
191
- return { quantity: { message: 'Required' } };
192
- }
193
- else if (isNaN(+control.value) || +control.value < 1) {
194
- return { quantity: { message: 'Invalid value' } };
195
- }
196
- else if (+control.value > max + originalQty) {
197
- return { quantity: { message: 'Max quantity ' + (max + originalQty) } };
198
- }
199
- else {
200
- return null;
201
- }
202
- };
203
- }
204
- }
205
- RuntimeFormService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: RuntimeFormService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
206
- RuntimeFormService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: RuntimeFormService });
207
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: RuntimeFormService, decorators: [{
208
- type: Injectable
209
- }] });
210
- export class FormServiceUtils {
211
- static isPortSection(section) {
212
- return section && section.boundData && section.boundData.entityType === BoundDataType[BoundDataType.PORT];
213
- }
214
- static isTypeSection(section) {
215
- return section && section.boundData && section.boundData.entityType === BoundDataType[BoundDataType.TYPE];
216
- }
217
- static isAttributeSection(section) {
218
- return section && section.boundData && section.boundData.entityType === BoundDataType[BoundDataType.ATTRIBUTE];
219
- }
220
- static findParent(parentId, lineItems) {
221
- return EntityUtil.findByFieldHierarchically('id', parentId, lineItems, 'lineItems');
222
- }
223
- }
224
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS1mb3JtLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9ydW50aW1lL3NlcnZpY2VzL3J1bnRpbWUtZm9ybS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQWlDLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkYsT0FBTyxFQUFFLFVBQVUsRUFBaUMsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDN0YsT0FBTyxFQUFjLE1BQU0sRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUN6RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOztBQUd2RSxNQUFNLE9BQU8sa0JBQWtCO0lBRC9CO1FBRVMsYUFBUSxHQUFjLEVBQUUsQ0FBQztLQTRPakM7SUF6T1EsUUFBUSxDQUFDLFFBQW1CLEVBQUUsZ0JBQTBCO1FBQzdELElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQztRQUV6QyxNQUFNLElBQUksR0FBRyxJQUFJLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUUvQixRQUFRO2FBQ0wsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssSUFBSSxPQUFPLENBQUMsUUFBUSxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUM7YUFDekUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ2pCLElBQUksQ0FBQyxvQkFBb0Is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O1FBQ0gsQ0FBQyxDQUFDO0lBQ0osQ0FBQzs7Z0hBNU9VLGtCQUFrQjtvSEFBbEIsa0JBQWtCOzRGQUFsQixrQkFBa0I7a0JBRDlCLFVBQVU7O0FBZ1BYLE1BQU0sT0FBTyxnQkFBZ0I7SUFDcEIsTUFBTSxDQUFDLGFBQWEsQ0FBQyxPQUFnQjtRQUMxQyxPQUFPLE9BQU8sSUFBSSxPQUFPLENBQUMsU0FBUyxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsVUFBVSxLQUFLLGFBQWEsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUcsQ0FBQztJQUVNLE1BQU0sQ0FBQyxhQUFhLENBQUMsT0FBZ0I7UUFDMUMsT0FBTyxPQUFPLElBQUksT0FBTyxDQUFDLFNBQVMsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLFVBQVUsS0FBSyxhQUFhLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVHLENBQUM7SUFFTSxNQUFNLENBQUMsa0JBQWtCLENBQUMsT0FBZ0I7UUFDL0MsT0FBTyxPQUFPLElBQUksT0FBTyxDQUFDLFNBQVMsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLFVBQVUsS0FBSyxhQUFhLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2pILENBQUM7SUFFTSxNQUFNLENBQUMsVUFBVSxDQUFDLFFBQWdCLEVBQUUsU0FBcUI7UUFDOUQsT0FBTyxVQUFVLENBQUMseUJBQXlCLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDdEYsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdGlvbkVycm9ycywgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBFbnRpdHlVdGlsLCBMaW5lSXRlbSwgUHJpY2VWYWx1ZSwgU2VjdGlvbiwgVHlwZVZhbGlkYXRvcnMgfSBmcm9tICdAdmVsb2NlYXBwcy9jb3JlJztcbmltcG9ydCB7IERpY3Rpb25hcnksIGlzTnVsbCwgaXNTdHJpbmcsIGlzVW5kZWZpbmVkLCBrZXlzIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IEJvdW5kRGF0YVR5cGUgfSBmcm9tICcuLi90eXBlcy9ib3VuZC1kYXRhLnR5cGVzJztcbmltcG9ydCB7IExpbmVJdGVtVXRpbCB9IGZyb20gJy4uL3V0aWxzL2xpbmUtaXRlbS51dGlsJztcbmltcG9ydCB7IFNlY3Rpb25zQmluZGVySGVscGVyIH0gZnJvbSAnLi4vdXRpbHMvc2VjdGlvbnMtYmluZGVyLmhlbHBlcic7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBSdW50aW1lRm9ybVNlcnZpY2Uge1xuICBwdWJsaWMgc2VjdGlvbnM6IFNlY3Rpb25bXSA9IFtdO1xuICBwdWJsaWMgc29sdXRpb25MaW5lSXRlbT86IExpbmVJdGVtO1xuXG4gIHB1YmxpYyBpbml0Rm9ybShzZWN0aW9uczogU2VjdGlvbltdLCBzb2x1dGlvbkxpbmVJdGVtOiBMaW5lSXRlbSk6IEZvcm1Hcm91cCB7XG4gICAgdGhpcy5zZWN0aW9ucyA9IHNlY3Rpb25zO1xuICAgIHRoaXMuc29sdXRpb25MaW5lSXRlbSA9IHNvbHV0aW9uTGluZUl0ZW07XG5cbiAgICBjb25zdCBmb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XG5cbiAgICBzZWN0aW9uc1xuICAgICAgLmZpbHRlcihzZWN0aW9uID0+IHNlY3Rpb24ubW9kZWwgJiYgc2VjdGlvbi50ZW1wbGF0ZSAmJiBzZWN0aW9uLmJvdW5kRGF0YSlcbiAgICAgIC5mb3JFYWNoKHNlY3Rpb24gPT4ge1xuICAgICAgICB0aGlzLnBvcHVsYXRlU2VjdGlvblZhbHVlKHNlY3Rpb24pO1xuICAgICAgICB0aGlzLnBvcHVsYXRlU2VjdGlvblByaWNlKHNlY3Rpb24pO1xuICAgICAgICB0aGlzLnBvcHVsYXRlRm9ybUNvbnRyb2xzKHNlY3Rpb24sIGZvcm0pO1xuICAgICAgfSk7XG5cbiAgICByZXR1cm4gZm9ybTtcbiAgfVxuXG4gIHByaXZhdGUgcG9wdWxhdGVTZWN0aW9uVmFsdWUoc2VjdGlvbjogU2VjdGlvbik6IHZvaWQge1xuICAgIGxldCB2YWx1ZTtcbiAgICBsZXQgdmFsdWVPcHRpb25zOiBzdHJpbmdbXSA9IFtdO1xuICAgIGxldCBkaXNwbGF5VmFsdWVzOiBEaWN0aW9uYXJ5PHN0cmluZz4gPSB7fTtcbiAgICBsZXQgcHJvcGVydGllczogRGljdGlvbmFyeTxhbnk+ID0ge307XG5cbiAgICBpZiAoRm9ybVNlcnZpY2VVdGlscy5pc1BvcnRTZWN0aW9uKHNlY3Rpb24pKSB7XG4gICAgICBjb25zdCBwb3J0RG9tYWluID0gc2VjdGlvbi5tb2RlbD8ucG9ydERvbWFpbnNbc2VjdGlvbi5ib3VuZERhdGEubmFtZV07XG5cbiAgICAgIHZhbHVlT3B0aW9ucyA9IHBvcnREb21haW4/LmRvbWFpblR5cGVzLm1hcChkdCA9PiBkdC5uYW1lKSA/PyBbXTtcbiAgICAgIHByb3BlcnRpZXMgPVxuICAgICAgICBwb3J0RG9tYWluPy5kb21haW5UeXBlcy5yZWR1Y2U8RGljdGlvbmFyeTxhbnk+PihmdW5jdGlvbiAobWFwLCBkdCkge1xuICAgICAgICAgIG1hcFtkdC5uYW1lXSA9IGR0LnByb3BlcnRpZXM7XG4gICAgICAgICAgcmV0dXJuIG1hcDtcbiAgICAgICAgfSwge30pID8/IHt9O1xuICAgICAgZGlzcGxheVZhbHVlcyA9XG4gICAgICAgIHBvcnREb21haW4/LmRvbWFpblR5cGVzLnJlZHVjZTxEaWN0aW9uYXJ5PHN0cmluZz4+KGZ1bmN0aW9uIChtYXAsIGR0KSB7XG4gICAgICAgICAgbWFwW2R0Lm5hbWVdID0gZHQuZGlzcGxheU5hbWU7XG4gICAgICAgICAgcmV0dXJuIG1hcDtcbiAgICAgICAgfSwge30pID8/IHt9O1xuXG4gICAgICB2YWx1ZSA9IHNlY3Rpb24ubW9kZWw/LmxpbmVJdGVtcy5tYXAobGkgPT4gbGkudHlwZSk7XG4gICAgfVxuXG4gICAgaWYgKEZvcm1TZXJ2aWNlVXRpbHMuaXNBdHRyaWJ1dGVTZWN0aW9uKHNlY3Rpb24pKSB7XG4gICAgICBjb25zdCBhdHRyaWJ1dGUgPSBzZWN0aW9uLm1vZGVsPy5hdHRyaWJ1dGVzLmZpbmQoXG4gICAgICAgIGF0dHIgPT4gYXR0ci5uYW1lLnRvTG93ZXJDYXNlKCkgPT09IHNlY3Rpb24uYm91bmREYXRhLm5hbWUudG9Mb3dlckNhc2UoKSxcbiAgICAgICk7XG4gICAgICBpZiAoYXR0cmlidXRlKSB7XG4gICAgICAgIHZhbHVlID0gYXR0cmlidXRlLnZhbHVlO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBhdHRyaWJ1dGVEb21haW4gPSBzZWN0aW9uLm1vZGVsPy5hdHRyaWJ1dGVEb21haW5zW3NlY3Rpb24uYm91bmREYXRhLm5hbWVdO1xuXG4gICAgICBpZiAoIWF0dHJpYnV0ZT8udHlwZS5tYXRjaCgnR0VORVJJQ3xCT09MRUFOJykgJiYgYXR0cmlidXRlRG9tYWluKSB7XG4gICAgICAgIGNvbnN0IGNvdW50ID1cbiAgICAgICAgICBhdHRyaWJ1dGUgJiYgYXR0cmlidXRlLnNjYWxlICE9IG51bGxcbiAgICAgICAgICAgID8gTGluZUl0ZW1VdGlsLmNvdW50QXR0cmlidXRlVmFsdWVzKGF0dHJpYnV0ZS5zY2FsZSwgYXR0cmlidXRlRG9tYWluKVxuICAgICAgICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICAgICAgaWYgKGF0dHJpYnV0ZSAmJiBhdHRyaWJ1dGUuc2NhbGUgIT0gbnVsbCAmJiBjb3VudCAmJiBjb3VudCA8PSAxMDApIHtcbiAgICAgICAgICB2YWx1ZU9wdGlvbnMgPSBMaW5lSXRlbVV0aWwuc3BsaXREb21haW5Ub1ZhbHVlcyhhdHRyaWJ1dGUuc2NhbGUsIGF0dHJpYnV0ZURvbWFpbik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdmFsdWVPcHRpb25zID0gYXR0cmlidXRlRG9tYWluO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGF0dHJpYnV0ZURvbWFpbikge1xuICAgICAgICB2YWx1ZU9wdGlvbnMgPSBhdHRyaWJ1dGVEb21haW47XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCFFbnRpdHlVdGlsLmlzUHJlc2VudCh2YWx1ZSkpIHtcbiAgICAgIHZhbHVlID0gJyc7XG4gICAgfVxuXG4gICAgc2VjdGlvbi5zZWN0aW9uVmFsdWUgPSB7XG4gICAgICB2YWx1ZSxcbiAgICAgIHZhbHVlT3B0aW9ucyxcbiAgICAgIGRpc3BsYXlWYWx1ZXMsXG4gICAgICBwcm9wZXJ0aWVzLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHBvcHVsYXRlU2VjdGlvblByaWNlKHNlY3Rpb246IFNlY3Rpb24pOiB2b2lkIHtcbiAgICBjb25zdCBwcmljZVZhbHVlOiBQcmljZVZhbHVlID0geyBwcmljZU9wdGlvbnM6IHt9IH07XG5cbiAgICBpZiAoRm9ybVNlcnZpY2VVdGlscy5pc1BvcnRTZWN0aW9uKHNlY3Rpb24pKSB7XG4gICAgICBjb25zdCBwb3J0RG9tYWluID0gc2VjdGlvbi5tb2RlbD8ucG9ydERvbWFpbnNbc2VjdGlvbi5ib3VuZERhdGEubmFtZV07XG5cbiAgICAgIGlmIChwb3J0RG9tYWluKSB7XG4gICAgICAgIHBvcnREb21haW4uZG9tYWluVHlwZXMuZm9yRWFjaChkdCA9PiB7XG4gICAgICAgICAgaWYgKGR0LnJlY29tbWVuZGVkUHJpY2VzICYmIGR0LnJlY29tbWVuZGVkUHJpY2VzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHByaWNlVmFsdWUucHJpY2VPcHRpb25zW2R0Lm5hbWVdID0gZHQucmVjb21tZW5kZWRQcmljZXM7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGRlbGV0ZSBwcmljZVZhbHVlLnByaWNlT3B0aW9uc1tkdC5uYW1lXTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHNlY3Rpb24ucHJpY2VWYWx1ZSA9IHByaWNlVmFsdWU7XG4gIH1cblxuICBwcml2YXRlIHBvcHVsYXRlRm9ybUNvbnRyb2xzKHNlY3Rpb246IFNlY3Rpb24sIGZvcm06IEZvcm1Hcm91cCk6IHZvaWQge1xuICAgIGZvcm0uY29udHJvbHNbc2VjdGlvbi5pZF0gPSB0aGlzLmNyZWF0ZUZvcm1Db250cm9sKHNlY3Rpb24pO1xuXG4gICAgaWYgKEZvcm1TZXJ2aWNlVXRpbHMuaXNQb3J0U2VjdGlvbihzZWN0aW9uKSB8fCBGb3JtU2VydmljZVV0aWxzLmlzVHlwZVNlY3Rpb24oc2VjdGlvbikpIHtcbiAgICAgIGZvcm0uY29udHJvbHNbc2VjdGlvbi5pZC5jb25jYXQoJ3F0eScpXSA9IHRoaXMuY3JlYXRlUXR5Q29udHJvbChzZWN0aW9uKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUZvcm1Db250cm9sKHNlY3Rpb246IFNlY3Rpb24pOiBGb3JtQ29udHJvbCB7XG4gICAgY29uc3QgdmFsdWUgPSBGb3JtU2VydmljZVV0aWxzLmlzUG9ydFNlY3Rpb24oc2VjdGlvbikgPyB2b2lkIDAgOiBzZWN0aW9uLnNlY3Rpb25WYWx1ZT8udmFsdWU7XG5cbiAgICByZXR1cm4gbmV3IEZvcm1Db250cm9sKHZhbHVlLCB0aGlzLmdldEZvcm1Db250cm9sVmFsaWRhdG9ycyhzZWN0aW9uKSk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVF0eUNvbnRyb2woc2VjdGlvbjogU2VjdGlvbik6IEZvcm1Db250cm9sIHtcbiAgICBjb25zdCBpc1R5cGVTZWN0aW9uID0gRm9ybVNlcnZpY2VVdGlscy5pc1R5cGVTZWN0aW9uKHNlY3Rpb24pO1xuXG4gICAgY29uc3QgdmFsaWRhdG9ycyA9IFtdO1xuXG4gICAgY29uc3QgbWF4QWxsb3dlZCA9IHRoaXMuZ2V0TWF4QWxsb3dlZChzZWN0aW9uKTtcblxuICAgIC8vVE9ETyBURU1QT1JBUlkgU09MVVRJT04gKFdJTEwgQkUgRElTQUJMRUQgT05DRSBSQURJTyBDT05UUk9MUyBJTVBMRU1FTlRFRClcbiAgICBpZiAobWF4QWxsb3dlZCA+IDApIHtcbiAgICAgIHZhbGlkYXRvcnMucHVzaCh0aGlzLmdldFF1YW50aXR5VmFsaWRhdG9yKG1heEFsbG93ZWQsIGlzVHlwZVNlY3Rpb24gPyBzZWN0aW9uLm1vZGVsPy5xdHkgPz8gMCA6IDApKTtcbiAgICB9XG5cbiAgICBjb25zdCBxdHlWYWx1ZSA9IGlzVHlwZVNlY3Rpb24gPyBzZWN0aW9uLm1vZGVsPy5xdHkgOiAxO1xuXG4gICAgcmV0dXJuIG5ldyBGb3JtQ29udHJvbChxdHlWYWx1ZSwgdmFsaWRhdG9ycyk7XG4gIH1cblxuICBwcml2YXRlIGdldE1heEFsbG93ZWQoc2VjdGlvbjogU2VjdGlvbik6IG51bWJlciB7XG4gICAgbGV0IGxpbmVJdGVtID0gc2VjdGlvbi5tb2RlbDtcbiAgICBsZXQgcG9ydE5hbWUgPSBzZWN0aW9uLmJvdW5kRGF0YS5uYW1lO1xuXG4gICAgaWYgKEZvcm1TZXJ2aWNlVXRpbHMuaXNUeXBlU2VjdGlvbihzZWN0aW9uKSkge1xuICAgICAgaWYgKHNlY3Rpb24ubW9kZWwgJiYgRW50aXR5VXRpbC5pc1ByZXNlbnQoc2VjdGlvbi5tb2RlbC5wYXJlbnRJZCkgJiYgdGhpcy5zb2x1dGlvbkxpbmVJdGVtKSB7XG4gICAgICAgIGlmIChzZWN0aW9uLm1vZGVsLnBhcmVudElkKSB7XG4gICAgICAgICAgbGluZUl0ZW0gPSBMaW5lSXRlbVV0aWwuZmluZEJ5SWQoc2VjdGlvbi5tb2RlbC5wYXJlbnRJZCwgW3RoaXMuc29sdXRpb25MaW5lSXRlbV0pO1xuICAgICAgICB9XG4gICAgICAgIHBvcnROYW1lID0gc2VjdGlvbi5tb2RlbC5wb3J0O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCFsaW5lSXRlbSkge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuXG4gICAgcmV0dXJuIFNlY3Rpb25zQmluZGVySGVscGVyLmdldE1heEFsbG93ZWQobGluZUl0ZW0sIHBvcnROYW1lKTtcbiAgfVxuXG4gIC8vVE9ETyBBTEUgVE8gU1VQUE9SVCBFTVBUWSBWQUxVRVMgRk9SIElOVEVSVkFMIEFUVFJJQlVURVMgT1VUIE9GIERPTUFJTlxuICBwcml2YXRlIGdldEZvcm1Db250cm9sVmFsaWRhdG9ycyhzZWN0aW9uOiBTZWN0aW9uKTogVmFsaWRhdG9yRm5bXSB8IG51bGwge1xuICAgIGlmICghRm9ybVNlcnZpY2VVdGlscy5pc0F0dHJpYnV0ZVNlY3Rpb24oc2VjdGlvbikpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IHZhbGlkYXRvcnMgPSBbXTtcbiAgICBjb25zdCBwYXJlbnRMaW5lSXRlbSA9XG4gICAgICBzZWN0aW9uLm1vZGVsICYmIHRoaXMuc29sdXRpb25MaW5lSXRlbSAmJiBGb3JtU2VydmljZVV0aWxzLmZpbmRQYXJlbnQoc2VjdGlvbi5tb2RlbC5pZCwgW3RoaXMuc29sdXRpb25MaW5lSXRlbV0pO1xuICAgIGNvbnN0IGF0dHJpYnV0ZSA9XG4gICAgICBwYXJlbnRMaW5lSXRlbSAmJlxuICAgICAgcGFyZW50TGluZUl0ZW0uYXR0cmlidXRlcy5maW5kKGF0dHIgPT4gYXR0ci5uYW1lLnRvTG93ZXJDYXNlKCkgPT09IHNlY3Rpb24uYm91bmREYXRhLm5hbWUudG9Mb3dlckNhc2UoKSk7XG5cbiAgICBpZiAoIWF0dHJpYnV0ZSB8fCAhYXR0cmlidXRlLnR5cGUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IHByaW1pdGl2ZVR5cGVzVmFsaWRhdG9yczogYW55ID0ge1xuICAgICAgSU5UOiBUeXBlVmFsaWRhdG9ycy5pbnRlZ2VyVmFsaWRhdG9yKCksXG4gICAgICAnRE9VQkxFfERFQ0lNQUwnOiBUeXBlVmFsaWRhdG9ycy5kZWNpbWFsVmFsaWRhdG9yKDEwKSxcbiAgICB9O1xuXG4gICAga2V5cyhwcmltaXRpdmVUeXBlc1ZhbGlkYXRvcnMpLmZvckVhY2godHlwZXMgPT4ge1xuICAgICAgaWYgKHR5cGVzLm1hdGNoKGF0dHJpYnV0ZS50eXBlKSkge1xuICAgICAgICBjb25zdCB2YWxpZGF0b3IgPSBwcmltaXRpdmVUeXBlc1ZhbGlkYXRvcnNbdHlwZXNdO1xuXG4gICAgICAgIHZhbGlkYXRvcnMucHVzaCh2YWxpZGF0b3IpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKCFhdHRyaWJ1dGUudHlwZS5tYXRjaCgnR0VORVJJQ3xCT09MRUFOfE1VTFRJUExFJykpIHtcbiAgICAgIGNvbnN0IHNlY3Rpb25MYWJlbCA9IHNlY3Rpb24ubGFiZWw7XG5cbiAgICAgIGNvbnN0IGludGVydmFsVmFsaWRhdG9yOiBWYWxpZGF0b3JGbiA9IGZ1bmN0aW9uIChjb250cm9sKSB7XG4gICAgICAgIGlmIChpc1VuZGVmaW5lZChjb250cm9sLnZhbHVlKSB8fCBpc051bGwoY29udHJvbC52YWx1ZSkgfHwgaXNOYU4oK2NvbnRyb2wudmFsdWUpKSB7XG4gICAgICAgICAgcmV0dXJuIHsgaW50ZXJ2YWw6IHsgbWVzc2FnZTogc2VjdGlvbkxhYmVsICsgJyBpcyBub3QgaW4gZG9tYWluJyB9IH07XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWlzVW5kZWZpbmVkKGNvbnRyb2wudmFsdWUpICYmIGlzU3RyaW5nKGNvbnRyb2wudmFsdWUpICYmIGNvbnRyb2wudmFsdWUubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBhdHRyaWJ1dGVEb21haW4gPSBzZWN0aW9uLm1vZGVsPy5hdHRyaWJ1dGVEb21haW5zW3NlY3Rpb24uYm91bmREYXRhLm5hbWVdO1xuXG4gICAgICAgIGNvbnN0IHZhbGlkID0gYXR0cmlidXRlRG9tYWluPy5zb21lKHZhbHVlT3B0aW9uID0+IHtcbiAgICAgICAgICBjb25zdCBtaW4gPSArdmFsdWVPcHRpb24ubWluO1xuICAgICAgICAgIGNvbnN0IG1heCA9ICt2YWx1ZU9wdGlvbi5tYXg7XG5cbiAgICAgICAgICByZXR1cm4gK2NvbnRyb2wudmFsdWUgPD0gbWF4ICYmICtjb250cm9sLnZhbHVlID49IG1pbjtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKCF2YWxpZCkge1xuICAgICAgICAgIHJldHVybiB7IGludGVydmFsOiB7IG1lc3NhZ2U6IHNlY3Rpb25MYWJlbCArICcgaXMgbm90IGluIGRvbWFpbicgfSB9O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9O1xuXG4gICAgICB2YWxpZGF0b3JzLnB1c2goaW50ZXJ2YWxWYWxpZGF0b3IpO1xuICAgIH1cblxuICAgIGlmIChzZWN0aW9uLnJlcXVpcmVkKSB7XG4gICAgICB2YWxpZGF0b3JzLnB1c2goVHlwZVZhbGlkYXRvcnMucmVxdWlyZWRWYWxpZGF0b3Ioc2VjdGlvbi5sYWJlbCArICcgaXMgcmVxdWlyZWQgJykpO1xuICAgIH1cblxuICAgIHJldHVybiB2YWxpZGF0b3JzLmxlbmd0aCAhPT0gMCA/IHZhbGlkYXRvcnMgOiBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRRdWFudGl0eVZhbGlkYXRvcihtYXg6IG51bWJlciwgb3JpZ2luYWxRdHk6IG51bWJlcik6IFZhbGlkYXRvckZuIHtcbiAgICByZXR1cm4gKGNvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgICBpZiAoIWNvbnRyb2wudmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIHsgcXVhbnRpdHk6IHsgbWVzc2FnZTogJ1JlcXVpcmVkJyB9IH07XG4gICAgICB9IGVsc2UgaWYgKGlzTmFOKCtjb250cm9sLnZhbHVlKSB8fCArY29udHJvbC52YWx1ZSA8IDEpIHtcbiAgICAgICAgcmV0dXJuIHsgcXVhbnRpdHk6IHsgbWVzc2FnZTogJ0ludmFsaWQgdmFsdWUnIH0gfTtcbiAgICAgIH0gZWxzZSBpZiAoK2NvbnRyb2wudmFsdWUgPiBtYXggKyBvcmlnaW5hbFF0eSkge1xuICAgICAgICByZXR1cm4geyBxdWFudGl0eTogeyBtZXNzYWdlOiAnTWF4IHF1YW50aXR5ICAnICsgKG1heCArIG9yaWdpbmFsUXR5KSB9IH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICB9O1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBGb3JtU2VydmljZVV0aWxzIHtcbiAgcHVibGljIHN0YXRpYyBpc1BvcnRTZWN0aW9uKHNlY3Rpb246IFNlY3Rpb24pOiBib29sZWFuIHtcbiAgICByZXR1cm4gc2VjdGlvbiAmJiBzZWN0aW9uLmJvdW5kRGF0YSAmJiBzZWN0aW9uLmJvdW5kRGF0YS5lbnRpdHlUeXBlID09PSBCb3VuZERhdGFUeXBlW0JvdW5kRGF0YVR5cGUuUE9SVF07XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGlzVHlwZVNlY3Rpb24oc2VjdGlvbjogU2VjdGlvbik6IGJvb2xlYW4ge1xuICAgIHJldHVybiBzZWN0aW9uICYmIHNlY3Rpb24uYm91bmREYXRhICYmIHNlY3Rpb24uYm91bmREYXRhLmVudGl0eVR5cGUgPT09IEJvdW5kRGF0YVR5cGVbQm91bmREYXRhVHlwZS5UWVBFXTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgaXNBdHRyaWJ1dGVTZWN0aW9uKHNlY3Rpb246IFNlY3Rpb24pOiBib29sZWFuIHtcbiAgICByZXR1cm4gc2VjdGlvbiAmJiBzZWN0aW9uLmJvdW5kRGF0YSAmJiBzZWN0aW9uLmJvdW5kRGF0YS5lbnRpdHlUeXBlID09PSBCb3VuZERhdGFUeXBlW0JvdW5kRGF0YVR5cGUuQVRUUklCVVRFXTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZmluZFBhcmVudChwYXJlbnRJZDogc3RyaW5nLCBsaW5lSXRlbXM6IExpbmVJdGVtW10pOiBMaW5lSXRlbSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIEVudGl0eVV0aWwuZmluZEJ5RmllbGRIaWVyYXJjaGljYWxseSgnaWQnLCBwYXJlbnRJZCwgbGluZUl0ZW1zLCAnbGluZUl0ZW1zJyk7XG4gIH1cbn1cbiJdfQ==
@@ -1,108 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { RuntimeStep } from '@veloceapps/sdk/core';
3
- import { Subject } from 'rxjs';
4
- import { take } from 'rxjs/operators';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "./configuration.service";
7
- import * as i2 from "@veloceapps/sdk/core";
8
- import * as i3 from "primeng/api";
9
- export class RuntimeService {
10
- constructor(configurationService, contextService, messageService) {
11
- this.configurationService = configurationService;
12
- this.contextService = contextService;
13
- this.messageService = messageService;
14
- this.solutionReadySubject = new Subject();
15
- this.onSolutionReadyEvent = this.solutionReadySubject.asObservable();
16
- this.solutionUpdateStartedSubject = new Subject();
17
- this.onSolutionUpdateStartedEvent = this.solutionUpdateStartedSubject.asObservable();
18
- this.solutionUpdatedSubject = new Subject();
19
- this.onSolutionUpdatedEvent = this.solutionUpdatedSubject.asObservable();
20
- this.solutionProcessedSubject = new Subject();
21
- this.onSolutionProcessed = this.solutionProcessedSubject.asObservable();
22
- this.solutionStopSubject = new Subject();
23
- this.onSolutionStopEvent = this.solutionStopSubject.asObservable();
24
- this.solutionCancelSubject = new Subject();
25
- this.onSolutionCancelEvent = this.solutionCancelSubject.asObservable();
26
- this.uiRefreshSubject = new Subject();
27
- this.onUIRefreshEvent = this.uiRefreshSubject.asObservable();
28
- }
29
- displayErrorMessage(error) {
30
- var _a;
31
- this.messageService.add({
32
- severity: 'error',
33
- summary: ((_a = error.error) === null || _a === void 0 ? void 0 : _a.message) || error.message || JSON.stringify(error),
34
- });
35
- }
36
- startRuntime(context, states, resolve) {
37
- this.setRuntimeContext(context);
38
- this.setRuntimeStep(RuntimeStep.START);
39
- this.configurationService
40
- .configure(context, states, resolve)
41
- .pipe(take(1))
42
- .subscribe(lineItem => {
43
- this.solutionReadySubject.next(lineItem);
44
- }, error => {
45
- this.displayErrorMessage(error);
46
- this.solutionUpdatedSubject.next(error);
47
- });
48
- }
49
- updateRuntime(states, configurationContextProperties) {
50
- if (!this.runtimeContext) {
51
- return;
52
- }
53
- this.solutionUpdateStartedSubject.next();
54
- this.setRuntimeStep(RuntimeStep.UPDATE);
55
- this.updateRuntimeContext(configurationContextProperties);
56
- this.configurationService
57
- .configure(this.runtimeContext, states)
58
- .pipe(take(1))
59
- .subscribe(lineItem => {
60
- const context = this.contextService.resolve();
61
- this.updateRuntimeContext(context.properties);
62
- this.solutionUpdatedSubject.next(lineItem);
63
- }, error => {
64
- this.displayErrorMessage(error);
65
- this.solutionUpdatedSubject.next(error);
66
- });
67
- }
68
- stopRuntime(solutionLineItem) {
69
- this.solutionStopSubject.next(solutionLineItem);
70
- }
71
- cancelRuntime() {
72
- this.solutionCancelSubject.next();
73
- }
74
- setRuntimeContext(runtimeContext) {
75
- this.runtimeContext = runtimeContext;
76
- }
77
- getRuntimeContext() {
78
- return this.runtimeContext;
79
- }
80
- solutionProcessed(lineItem) {
81
- this.solutionProcessedSubject.next(lineItem);
82
- }
83
- refreshUI(uiDefinition) {
84
- if (!this.runtimeContext) {
85
- return;
86
- }
87
- this.runtimeContext = Object.assign(Object.assign({}, this.runtimeContext), { uiDefinition });
88
- this.uiRefreshSubject.next();
89
- }
90
- updateRuntimeContext(configurationContextProperties) {
91
- if (!this.runtimeContext || !configurationContextProperties) {
92
- return;
93
- }
94
- this.runtimeContext = Object.assign(Object.assign({}, this.runtimeContext), { properties: configurationContextProperties });
95
- }
96
- setRuntimeStep(runtimeStep) {
97
- if (!this.runtimeContext) {
98
- return;
99
- }
100
- this.runtimeContext.invocationContext = Object.assign(Object.assign({}, this.runtimeContext.invocationContext), { runtimeStep });
101
- }
102
- }
103
- RuntimeService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: RuntimeService, deps: [{ token: i1.ConfigurationService }, { token: i2.ContextService }, { token: i3.MessageService }], target: i0.ɵɵFactoryTarget.Injectable });
104
- RuntimeService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: RuntimeService });
105
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: RuntimeService, decorators: [{
106
- type: Injectable
107
- }], ctorParameters: function () { return [{ type: i1.ConfigurationService }, { type: i2.ContextService }, { type: i3.MessageService }]; } });
108
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvcnVudGltZS9zZXJ2aWNlcy9ydW50aW1lLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQWtCLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRW5FLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7OztBQU10QyxNQUFNLE9BQU8sY0FBYztJQXdCekIsWUFDVSxvQkFBMEMsRUFDMUMsY0FBOEIsRUFDOUIsY0FBOEI7UUFGOUIseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQUMxQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBeEJoQyx5QkFBb0IsR0FBRyxJQUFJLE9BQU8sRUFBWSxDQUFDO1FBQ2hELHlCQUFvQixHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUUvRCxpQ0FBNEIsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQ3BELGlDQUE0QixHQUFHLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUUvRSwyQkFBc0IsR0FBRyxJQUFJLE9BQU8sRUFBZ0MsQ0FBQztRQUN0RSwyQkFBc0IsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFbkUsNkJBQXdCLEdBQUcsSUFBSSxPQUFPLEVBQVksQ0FBQztRQUNwRCx3QkFBbUIsR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFbEUsd0JBQW1CLEdBQUcsSUFBSSxPQUFPLEVBQVksQ0FBQztRQUMvQyx3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UUFDM0QsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUM7SUFDdkMsQ0FBQztJQUVNLGlCQUFpQjtRQUN0QixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDN0IsQ0FBQztJQUVNLGlCQUFpQixDQUFDLFFBQWtCO1FBQ3pDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVNLFNBQVMsQ0FBQyxZQUEwQjtRQUN6QyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUN4QixPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsY0FBYyxtQ0FDZCxJQUFJLENBQUMsY0FBYyxLQUN0QixZQUFZLEdBQ2IsQ0FBQztRQUNGLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRU8sb0JBQW9CLENBQUMsOEJBQTREO1FBQ3ZGLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxJQUFJLENBQUMsOEJBQThCLEVBQUU7WUFDM0QsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLGNBQWMsbUNBQVEsSUFBSSxDQUFDLGNBQWMsS0FBRSxVQUFVLEVBQUUsOEJBQThCLEdBQUUsQ0FBQztJQUMvRixDQUFDO0lBRU8sY0FBYyxDQUFDLFdBQXdCO1FBQzdDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3hCLE9BQU87U0FDUjtRQUVELElBQUksQ0FBQyxjQUFjLENBQUMsaUJBQWlCLG1DQUNoQyxJQUFJLENBQUMsY0FBYyxDQUFDLGlCQUFpQixLQUN4QyxXQUFXLEdBQ1osQ0FBQztJQUNKLENBQUM7OzRHQWhJVSxjQUFjO2dIQUFkLGNBQWM7NEZBQWQsY0FBYztrQkFEMUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTGluZUl0ZW0sIFVJRGVmaW5pdGlvbiB9IGZyb20gJ0B2ZWxvY2VhcHBzL2NvcmUnO1xuaW1wb3J0IHsgQ29udGV4dFNlcnZpY2UsIFJ1bnRpbWVTdGVwIH0gZnJvbSAnQHZlbG9jZWFwcHMvc2RrL2NvcmUnO1xuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTGVnYWN5UnVudGltZUNvbnRleHQgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBRdW90ZVN0YXRlcyB9IGZyb20gJy4uL3R5cGVzL3F1b3RlLXN0YXRlcy50eXBlcyc7XG5pbXBvcnQgeyBDb25maWd1cmF0aW9uU2VydmljZSB9IGZyb20gJy4vY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFJ1bnRpbWVTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBydW50aW1lQ29udGV4dDogTGVnYWN5UnVudGltZUNvbnRleHQgfCB1bmRlZmluZWQ7XG5cbiAgcHJpdmF0ZSBzb2x1dGlvblJlYWR5U3ViamVjdCA9IG5ldyBTdWJqZWN0PExpbmVJdGVtPigpO1xuICBwdWJsaWMgb25Tb2x1dGlvblJlYWR5RXZlbnQgPSB0aGlzLnNvbHV0aW9uUmVhZHlTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuXG4gIHByaXZhdGUgc29sdXRpb25VcGRhdGVTdGFydGVkU3ViamVjdCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHB1YmxpYyBvblNvbHV0aW9uVXBkYXRlU3RhcnRlZEV2ZW50ID0gdGhpcy5zb2x1dGlvblVwZGF0ZVN0YXJ0ZWRTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuXG4gIHByaXZhdGUgc29sdXRpb25VcGRhdGVkU3ViamVjdCA9IG5ldyBTdWJqZWN0PExpbmVJdGVtIHwgSHR0cEVycm9yUmVzcG9uc2U+KCk7XG4gIHB1YmxpYyBvblNvbHV0aW9uVXBkYXRlZEV2ZW50ID0gdGhpcy5zb2x1dGlvblVwZGF0ZWRTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuXG4gIHByaXZhdGUgc29sdXRpb25Qcm9jZXNzZWRTdWJqZWN0ID0gbmV3IFN1YmplY3Q8TGluZUl0ZW0+KCk7XG4gIHB1YmxpYyBvblNvbHV0aW9uUHJvY2Vzc2VkID0gdGhpcy5zb2x1dGlvblByb2Nlc3NlZFN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG5cbiAgcHJpdmF0ZSBzb2x1dGlvblN0b3BTdWJqZWN0ID0gbmV3IFN1YmplY3Q8TGluZUl0ZW0+KCk7XG4gIHB1YmxpYyBvblNvbHV0aW9uU3RvcEV2ZW50ID0gdGhpcy5zb2x1dGlvblN0b3BTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuXG4gIHByaXZhdGUgc29sdXRpb25DYW5jZWxTdWJqZWN0ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHVibGljIG9uU29sdXRpb25DYW5jZWxFdmVudCA9IHRoaXMuc29sdXRpb25DYW5jZWxTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuXG4gIHByaXZhdGUgdWlSZWZyZXNoU3ViamVjdCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHB1YmxpYyBvblVJUmVmcmVzaEV2ZW50ID0gdGhpcy51aVJlZnJlc2hTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY29uZmlndXJhdGlvblNlcnZpY2U6IENvbmZpZ3VyYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgY29udGV4dFNlcnZpY2U6IENvbnRleHRTZXJ2aWNlLFxuICAgIHByaXZhdGUgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLFxuICApIHt9XG5cbiAgcHJpdmF0ZSBkaXNwbGF5RXJyb3JNZXNzYWdlKGVycm9yOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7XG4gICAgICBzZXZlcml0eTogJ2Vycm9yJyxcbiAgICAgIHN1bW1hcnk6IGVycm9yLmVycm9yPy5tZXNzYWdlIHx8IGVycm9yLm1lc3NhZ2UgfHwgSlNPTi5zdHJpbmdpZnkoZXJyb3IpLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHN0YXJ0UnVudGltZShjb250ZXh0OiBMZWdhY3lSdW50aW1lQ29udGV4dCwgc3RhdGVzOiBRdW90ZVN0YXRlcywgcmVzb2x2ZT86IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLnNldFJ1bnRpbWVDb250ZXh0KGNvbnRleHQpO1xuICAgIHRoaXMuc2V0UnVudGltZVN0ZXAoUnVudGltZVN0ZXAuU1RBUlQpO1xuICAgIHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2VcbiAgICAgIC5jb25maWd1cmUoY29udGV4dCwgc3RhdGVzLCByZXNvbHZlKVxuICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgIGxpbmVJdGVtID0+IHtcbiAgICAgICAgICB0aGlzLnNvbHV0aW9uUmVhZHlTdWJqZWN0Lm5leHQobGluZUl0ZW0pO1xuICAgICAgICB9LFxuICAgICAgICBlcnJvciA9PiB7XG4gICAgICAgICAgdGhpcy5kaXNwbGF5RXJyb3JNZXNzYWdlKGVycm9yKTtcbiAgICAgICAgICB0aGlzLnNvbHV0aW9uVXBkYXRlZFN1YmplY3QubmV4dChlcnJvcik7XG4gICAgICAgIH0sXG4gICAgICApO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZVJ1bnRpbWUoc3RhdGVzOiBRdW90ZVN0YXRlcywgY29uZmlndXJhdGlvbkNvbnRleHRQcm9wZXJ0aWVzPzogeyBbaW5kZXg6IHN0cmluZ106IHN0cmluZyB9KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnJ1bnRpbWVDb250ZXh0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zb2x1dGlvblVwZGF0ZVN0YXJ0ZWRTdWJqZWN0Lm5leHQoKTtcbiAgICB0aGlzLnNldFJ1bnRpbWVTdGVwKFJ1bnRpbWVTdGVwLlVQREFURSk7XG4gICAgdGhpcy51cGRhdGVSdW50aW1lQ29udGV4dChjb25maWd1cmF0aW9uQ29udGV4dFByb3BlcnRpZXMpO1xuICAgIHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2VcbiAgICAgIC5jb25maWd1cmUodGhpcy5ydW50aW1lQ29udGV4dCwgc3RhdGVzKVxuICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgIGxpbmVJdGVtID0+IHtcbiAgICAgICAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5jb250ZXh0U2VydmljZS5yZXNvbHZlKCk7XG5cbiAgICAgICAgICB0aGlzLnVwZGF0ZVJ1bnRpbWVDb250ZXh0KGNvbnRleHQucHJvcGVydGllcyk7XG4gICAgICAgICAgdGhpcy5zb2x1dGlvblVwZGF0ZWRTdWJqZWN0Lm5leHQobGluZUl0ZW0pO1xuICAgICAgICB9LFxuICAgICAgICBlcnJvciA9PiB7XG4gICAgICAgICAgdGhpcy5kaXNwbGF5RXJyb3JNZXNzYWdlKGVycm9yKTtcbiAgICAgICAgICB0aGlzLnNvbHV0aW9uVXBkYXRlZFN1YmplY3QubmV4dChlcnJvcik7XG4gICAgICAgIH0sXG4gICAgICApO1xuICB9XG5cbiAgcHVibGljIHN0b3BSdW50aW1lKHNvbHV0aW9uTGluZUl0ZW06IExpbmVJdGVtKTogdm9pZCB7XG4gICAgdGhpcy5zb2x1dGlvblN0b3BTdWJqZWN0Lm5leHQoc29sdXRpb25MaW5lSXRlbSk7XG4gIH1cblxuICBwdWJsaWMgY2FuY2VsUnVudGltZSgpOiB2b2lkIHtcbiAgICB0aGlzLnNvbHV0aW9uQ2FuY2VsU3ViamVjdC5uZXh0KCk7XG4gIH1cblxuICBwdWJsaWMgc2V0UnVudGltZUNvbnRleHQocnVudGltZUNvbnRleHQ6IExlZ2FjeVJ1bnRpbWVDb250ZXh0KTogdm9pZCB7XG4gICAgdGhpcy5ydW50aW1lQ29udGV4dCA9IHJ1bnRpbWVDb250ZXh0O1xuICB9XG5cbiAgcHVibGljIGdldFJ1bnRpbWVDb250ZXh0KCk6IExlZ2FjeVJ1bnRpbWVDb250ZXh0IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5ydW50aW1lQ29udGV4dDtcbiAgfVxuXG4gIHB1YmxpYyBzb2x1dGlvblByb2Nlc3NlZChsaW5lSXRlbTogTGluZUl0ZW0pOiB2b2lkIHtcbiAgICB0aGlzLnNvbHV0aW9uUHJvY2Vzc2VkU3ViamVjdC5uZXh0KGxpbmVJdGVtKTtcbiAgfVxuXG4gIHB1YmxpYyByZWZyZXNoVUkodWlEZWZpbml0aW9uOiBVSURlZmluaXRpb24pOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucnVudGltZUNvbnRleHQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnJ1bnRpbWVDb250ZXh0ID0ge1xuICAgICAgLi4udGhpcy5ydW50aW1lQ29udGV4dCxcbiAgICAgIHVpRGVmaW5pdGlvbixcbiAgICB9O1xuICAgIHRoaXMudWlSZWZyZXNoU3ViamVjdC5uZXh0KCk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVJ1bnRpbWVDb250ZXh0KGNvbmZpZ3VyYXRpb25Db250ZXh0UHJvcGVydGllcz86IHsgW2luZGV4OiBzdHJpbmddOiBzdHJpbmcgfSk6IHZvaWQge1xuICAgIGlmICghdGhpcy5ydW50aW1lQ29udGV4dCB8fCAhY29uZmlndXJhdGlvbkNvbnRleHRQcm9wZXJ0aWVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5ydW50aW1lQ29udGV4dCA9IHsgLi4udGhpcy5ydW50aW1lQ29udGV4dCwgcHJvcGVydGllczogY29uZmlndXJhdGlvbkNvbnRleHRQcm9wZXJ0aWVzIH07XG4gIH1cblxuICBwcml2YXRlIHNldFJ1bnRpbWVTdGVwKHJ1bnRpbWVTdGVwOiBSdW50aW1lU3RlcCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5ydW50aW1lQ29udGV4dCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMucnVudGltZUNvbnRleHQuaW52b2NhdGlvbkNvbnRleHQgPSB7XG4gICAgICAuLi50aGlzLnJ1bnRpbWVDb250ZXh0Lmludm9jYXRpb25Db250ZXh0LFxuICAgICAgcnVudGltZVN0ZXAsXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -1,124 +0,0 @@
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 { CoreModule, EntityUtil, UUID } from '@veloceapps/core';
8
- import { VeloceElementsModule } from '@veloceapps/elements';
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.17", ngImport: i0, type: BaseSectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
18
- BaseSectionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", 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.17", 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.17", 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.17", ngImport: i0, type: SectionsService });
121
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvcnVudGltZS9zZXJ2aWNlcy9zZWN0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxlQUFlLElBQUksMkJBQTJCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNyRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxFQUVMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsS0FBSyxFQUVMLFFBQVEsRUFLUixZQUFZLEVBQ1osaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFXLElBQUksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzVELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7QUFHaEUsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0FBR3pCLE1BQU0sT0FBTyxvQkFBb0I7O2tIQUFwQixvQkFBb0I7c0dBQXBCLG9CQUFvQixrTUFEVixFQUFFOzRGQUNaLG9CQUFvQjtrQkFEaEMsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUU7OEJBR2xCLElBQUk7c0JBRFYsS0FBSztnQkFJQyxPQUFPO3NCQURiLEtBQUs7Z0JBR29DLFNBQVM7c0JBQWxELFlBQVk7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LENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBRXRFLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7WUFDckYsUUFBUSxHQUFHLG1DQUFtQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUNqRTtRQUVELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7OzZHQXBHVSxlQUFlO2lIQUFmLGVBQWU7NEZBQWYsZUFBZTtrQkFEM0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNjcm9sbGluZ01vZHVsZSBhcyBFeHBlcmltZW50YWxTY3JvbGxpbmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGstZXhwZXJpbWVudGFsL3Njcm9sbGluZyc7XG5pbXBvcnQgeyBTY3JvbGxpbmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvc2Nyb2xsaW5nJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgJ0Bhbmd1bGFyL2NvbXBpbGVyJztcbmltcG9ydCB7XG4gIENvbXBpbGVyLFxuICBDb21wb25lbnQsXG4gIEluamVjdGFibGUsXG4gIElucHV0LFxuICBNb2R1bGVXaXRoQ29tcG9uZW50RmFjdG9yaWVzLFxuICBOZ01vZHVsZSxcbiAgTmdNb2R1bGVSZWYsXG4gIFF1ZXJ5TGlzdCxcbiAgVGVtcGxhdGVSZWYsXG4gIFR5cGUsXG4gIFZpZXdDaGlsZHJlbixcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ29yZU1vZHVsZSwgRW50aXR5VXRpbCwgU2VjdGlvbiwgVVVJRCB9IGZyb20gJ0B2ZWxvY2VhcHBzL2NvcmUnO1xuaW1wb3J0IHsgVmVsb2NlRWxlbWVudHNNb2R1bGUgfSBmcm9tICdAdmVsb2NlYXBwcy9lbGVtZW50cyc7XG5pbXBvcnQgeyBzZXQsIHZhbHVlcyB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBSdW50aW1lRXhlY3V0aW9uTW9kdWxlIH0gZnJvbSAnLi4vZXhlY3V0aW9uL3J1bnRpbWUtZXhlY3V0aW9uLm1vZHVsZSc7XG5pbXBvcnQgeyBTZWN0aW9uSGVscGVyU2VydmljZSB9IGZyb20gJy4vc2VjdGlvbi1oZWxwZXIuc2VydmljZSc7XG5pbXBvcnQgeyBTZWN0aW9uU3RvcmVTZXJ2aWNlIH0gZnJvbSAnLi9zZWN0aW9uLXN0b3JlLnNlcnZpY2UnO1xuXG5jb25zdCBTSEExID0gVVVJRC5TSEExKCk7XG5cbkBDb21wb25lbnQoeyB0ZW1wbGF0ZTogJycgfSlcbmV4cG9ydCBjbGFzcyBCYXNlU2VjdGlvbkNvbXBvbmVudCB7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmb3JtITogRm9ybUdyb3VwO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZWN0aW9uITogU2VjdGlvbjtcblxuICBAVmlld0NoaWxkcmVuKCdjdXN0b21UZW1wbGF0ZScpIHByb3RlY3RlZCB0ZW1wbGF0ZXMhOiBRdWVyeUxpc3Q8VGVtcGxhdGVSZWY8YW55Pj47XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTZWN0aW9uc1NlcnZpY2Uge1xuICBwcml2YXRlIG1vZHVsZVR5cGU6IFR5cGU8YW55PiB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIG1vZHVsZUluc3RhbmNlOiBNb2R1bGVXaXRoQ29tcG9uZW50RmFjdG9yaWVzPGFueT4gfCBudWxsID0gbnVsbDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbXBpbGVyOiBDb21waWxlciwgcHJpdmF0ZSBtOiBOZ01vZHVsZVJlZjxhbnk+LCBwcml2YXRlIHNlY3Rpb25TdG9yZTogU2VjdGlvblN0b3JlU2VydmljZSkge31cblxuICBwdWJsaWMgY29tcGlsZU1vZHVsZShzZWN0aW9uczogU2VjdGlvbltdLCBpc1ZpZXdFbmNhcHN1bGF0ZWQ/OiBib29sZWFuKTogdm9pZCB7XG4gICAgY29uc3QgdW5pcXVlU2VjdGlvbnMgPSB0aGlzLmdldFVuaXF1ZVNlY3Rpb25zKHNlY3Rpb25zKTtcblxuICAgIHRoaXMubW9kdWxlVHlwZSA9IHRoaXMuZ2V0TW9kdWxlVHlwZSh1bmlxdWVTZWN0aW9ucywgaXNWaWV3RW5jYXBzdWxhdGVkKTtcbiAgICB0aGlzLm1vZHVsZUluc3RhbmNlID0gdGhpcy5jb21waWxlci5jb21waWxlTW9kdWxlQW5kQWxsQ29tcG9uZW50c1N5bmModGhpcy5tb2R1bGVUeXBlKTtcblxuICAgIHRoaXMuc2VjdGlvblN0b3JlLmNvbXBvbmVudEZhY3RvcmllcyA9IHRoaXMubW9kdWxlSW5zdGFuY2UuY29tcG9uZW50RmFjdG9yaWVzO1xuICB9XG5cbiAgcHVibGljIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubW9kdWxlSW5zdGFuY2UpIHtcbiAgICAgIHRoaXMuc2VjdGlvblN0b3JlLmNvbXBvbmVudEZhY3RvcmllcyA9IFtdO1xuICAgICAgdGhpcy5tb2R1bGVJbnN0YW5jZSA9IG51bGw7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMubW9kdWxlVHlwZSkge1xuICAgICAgdGhpcy5jb21waWxlci5jbGVhckNhY2hlRm9yKHRoaXMubW9kdWxlVHlwZSk7XG4gICAgICB0aGlzLm1vZHVsZVR5cGUgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0RGVjb3JhdGVkQ29tcG9uZW50cyhzZWN0aW9uczogU2VjdGlvbltdLCBpc1ZpZXdFbmNhcHN1bGF0ZWQ6IGJvb2xlYW4gPSBmYWxzZSk6IGFueVtdIHtcbiAgICBjb25zdCByZXN1bHQ6IGFueVtdID0gW107XG5cbiAgICBzZWN0aW9ucy5mb3JFYWNoKHNlY3Rpb24gPT4ge1xuICAgICAgY29uc3QgdHJhbnNwaWxlZFRlbXBsYXRlID0gdGhpcy5nZXRUcmFuc3BpbGVkVGVtcGxhdGUoc2VjdGlvbik7XG5cbiAgICAgIGNvbnN0IER5bmFtaWNDb21wb25lbnQgPSBDb21wb25lbnQoe1xuICAgICAgICBzZWxlY3Rvcjogc2VjdGlvbi5keW5hbWljU2VsZWN0b3IsXG4gICAgICAgIHRlbXBsYXRlOiB0cmFuc3BpbGVkVGVtcGxhdGUsXG4gICAgICAgIHN0eWxlczogW2F0b2Ioc2VjdGlvbi5zdHlsZXMgfHwgJycpXSxcbiAgICAgICAgcHJvdmlkZXJzOiBbU2VjdGlvbkhlbHBlclNlcnZpY2VdLFxuICAgICAgICBlbmNhcHN1bGF0aW9uOiBpc1ZpZXdFbmNhcHN1bGF0ZWQgPyBWaWV3RW5jYXBzdWxhdGlvbi5TaGFkb3dEb20gOiBWaWV3RW5jYXBzdWxhdGlvbi5FbXVsYXRlZCxcbiAgICAgICAgaml0OiB0cnVlLFxuICAgICAgfSkoY2xhc3MgQyBleHRlbmRzIEJhc2VTZWN0aW9uQ29tcG9uZW50IHt9KTtcblxuICAgICAgdGhpcy5hcHBseVNlbGVjdG9yRmllbGQoRHluYW1pY0NvbXBvbmVudCwgc2VjdGlvbi5keW5hbWljU2VsZWN0b3IgPz8gJycpO1xuICAgICAgcmVzdWx0LnB1c2goRHluYW1pY0NvbXBvbmVudCk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRNb2R1bGVUeXBlKHNlY3Rpb25zOiBTZWN0aW9uW10sIGlzVmlld0VuY2Fwc3VsYXRlZD86IGJvb2xlYW4pOiBUeXBlPGFueT4ge1xuICAgIGNvbnN0IGRlY29yYXRlZENvbXBvbmVudHMgPSB0aGlzLmdldERlY29yYXRlZENvbXBvbmVudHMoc2VjdGlvbnMsIGlzVmlld0VuY2Fwc3VsYXRlZCk7XG5cbiAgICBATmdNb2R1bGUoe1xuICAgICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIFJ1bnRpbWVFeGVjdXRpb25Nb2R1bGUsXG4gICAgICAgIENvcmVNb2R1bGUsXG4gICAgICAgIFZlbG9jZUVsZW1lbnRzTW9kdWxlLFxuICAgICAgICBTY3JvbGxpbmdNb2R1bGUsXG4gICAgICAgIEV4cGVyaW1lbnRhbFNjcm9sbGluZ01vZHVsZSxcbiAgICAgIF0sXG4gICAgICBkZWNsYXJhdGlvbnM6IFtkZWNvcmF0ZWRDb21wb25lbnRzXSxcbiAgICAgIGppdDogdHJ1ZSxcbiAgICB9KVxuICAgIGNsYXNzIER5bmFtaWNNb2R1bGUge31cblxuICAgIHJldHVybiBEeW5hbWljTW9kdWxlO1xuICB9XG5cbiAgcHJpdmF0ZSBhcHBseVNlbGVjdG9yRmllbGQodGFyZ2V0OiBhbnksIGR5bmFtaWNTZWxlY3Rvcjogc3RyaW5nKTogdm9pZCB7XG4gICAgc2V0KHRhcmdldCwgJyQkZHluYW1pY1NlbGVjdG9yJywgZHluYW1pY1NlbGVjdG9yKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VW5pcXVlU2VjdGlvbnMoc2VjdGlvbnM6IFNlY3Rpb25bXSk6IFNlY3Rpb25bXSB7XG4gICAgY29uc3QgdW5pcXVlU2VjdGlvbnM6IHsgW2luZGV4OiBzdHJpbmddOiBTZWN0aW9uIH0gPSB7fTtcblxuICAgIHNlY3Rpb25zLmZvckVhY2goc2VjdGlvbiA9PiB7XG4gICAgICBzZWN0aW9uLmhhc2ggPSBTSEExLmhleChzZWN0aW9uLnRlbXBsYXRlKTtcblxuICAgICAgY29uc3QgZXhpc3RpbmdTZWN0aW9uID0gc2VjdGlvbi5oYXNoID8gdW5pcXVlU2VjdGlvbnNbc2VjdGlvbi5oYXNoXSA6IHVuZGVmaW5lZDtcbiAgICAgIGlmIChleGlzdGluZ1NlY3Rpb24gJiYgZXhpc3RpbmdTZWN0aW9uLnRlbXBsYXRlID09PSBzZWN0aW9uLnRlbXBsYXRlKSB7XG4gICAgICAgIHNlY3Rpb24uZHluYW1pY1NlbGVjdG9yID0gZXhpc3RpbmdTZWN0aW9uLmR5bmFtaWNTZWxlY3RvcjtcbiAgICAgIH0gZWxzZSBpZiAoc2VjdGlvbi5oYXNoKSB7XG4gICAgICAgIHNlY3Rpb24uZHluYW1pY1NlbGVjdG9yID0gYHNlY3Rpb24tJHtzZWN0aW9uLmlkfWA7XG5cbiAgICAgICAgdW5pcXVlU2VjdGlvbnNbc2VjdGlvbi5oYXNoXSA9IHNlY3Rpb247XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gdmFsdWVzKHVuaXF1ZVNlY3Rpb25zKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VHJhbnNwaWxlZFRlbXBsYXRlKHNlY3Rpb246IFNlY3Rpb24pOiBzdHJpbmcge1xuICAgIGxldCB0ZW1wbGF0ZTogc3RyaW5nID0gc2VjdGlvbi50ZW1wbGF0ZSA/IGF0b2Ioc2VjdGlvbi50ZW1wbGF0ZSkgOiAnJztcblxuICAgIGlmICghRW50aXR5VXRpbC5pc0VtcHR5KHNlY3Rpb24uc2NyaXB0KSAmJiB0ZW1wbGF0ZS5pbmRleE9mKCc8c2VjdGlvbi1zY3JpcHQnKSA9PT0gLTEpIHtcbiAgICAgIHRlbXBsYXRlID0gYDxzZWN0aW9uLXNjcmlwdD48L3NlY3Rpb24tc2NyaXB0PmAuY29uY2F0KHRlbXBsYXRlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGVtcGxhdGU7XG4gIH1cbn1cbiJdfQ==