@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
@@ -0,0 +1,108 @@
1
+ import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
2
+ import { ConfigurationApiService } from '@veloceapps/api';
3
+ import { ConfigurationContextMode, EntityUtil, RuntimeModel, SectionPathUtil, } from '@veloceapps/core';
4
+ import { ContextService, RuntimeMode } from '@veloceapps/sdk/core';
5
+ import { combineLatest, Subject } from 'rxjs';
6
+ import { takeUntil } from 'rxjs/operators';
7
+ import { ProductModelCacheService } from '../../services/product-model-cache.service';
8
+ import { RuntimeService } from '../../services/runtime.service';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "../../services/runtime.service";
11
+ import * as i2 from "../../services/product-model-cache.service";
12
+ import * as i3 from "@veloceapps/api";
13
+ import * as i4 from "@veloceapps/sdk/core";
14
+ import * as i5 from "../ui-runtime/runtime.component";
15
+ export class RuntimePreviewComponent {
16
+ set uiDefinition(value) {
17
+ this._uiDefinition = value;
18
+ this.initDefinition(value);
19
+ }
20
+ constructor(runtimeService, modelCacheService, configurationApiService, contextService) {
21
+ this.runtimeService = runtimeService;
22
+ this.modelCacheService = modelCacheService;
23
+ this.configurationApiService = configurationApiService;
24
+ this.contextService = contextService;
25
+ this.destroy$ = new Subject();
26
+ }
27
+ ngOnInit() {
28
+ if (!this.modelId) {
29
+ return;
30
+ }
31
+ this.modelCacheService
32
+ .getProductModel(this.modelId)
33
+ .pipe(takeUntil(this.destroy$))
34
+ .subscribe(container => {
35
+ this.productModelContainer = container;
36
+ if (this._uiDefinition) {
37
+ this.initDefinition(this._uiDefinition);
38
+ }
39
+ });
40
+ }
41
+ ngOnDestroy() {
42
+ this.destroy$.next();
43
+ this.destroy$.complete();
44
+ }
45
+ initDefinition(uiDefinition) {
46
+ if (!this.productModelContainer) {
47
+ return;
48
+ }
49
+ const initialisedUiDefinition = EntityUtil.clone(uiDefinition);
50
+ const externals = this.productModelContainer.main.externals;
51
+ if (externals) {
52
+ initialisedUiDefinition.externals = externals.reduce((trunk, variable) => {
53
+ return {
54
+ ...trunk,
55
+ [variable.name]: initialisedUiDefinition.externals?.[variable.name] ?? '',
56
+ };
57
+ }, {});
58
+ }
59
+ else {
60
+ delete initialisedUiDefinition.externals;
61
+ }
62
+ this.initialisedUiDefinition = initialisedUiDefinition;
63
+ this.launchRuntime();
64
+ }
65
+ onSolutionUpdated(lineItem) {
66
+ this.runtimeService.updateRuntime({ configurableRamp: lineItem });
67
+ }
68
+ launchRuntime() {
69
+ if (!this.modelId || !this.initialisedUiDefinition) {
70
+ return;
71
+ }
72
+ SectionPathUtil.updateSectionsPath(this.initialisedUiDefinition.sections);
73
+ const uiDefinition = EntityUtil.clone(this.initialisedUiDefinition);
74
+ combineLatest([
75
+ this.configurationApiService.getRuntimeDataByModelId(this.modelId),
76
+ this.contextService.create('TestId', ConfigurationContextMode.TEST),
77
+ ]).subscribe(([runtimeData]) => {
78
+ const runtimeModel = RuntimeModel.create(runtimeData.types, runtimeData.products);
79
+ const rootType = Array.from(runtimeModel.components.values()).find(c => uiDefinition.rootType &&
80
+ runtimeModel.isEquals(c.typeName, uiDefinition.rootType) &&
81
+ EntityUtil.isPresent(c.productId));
82
+ if (rootType?.typeName) {
83
+ uiDefinition.rootType = rootType.typeName;
84
+ }
85
+ const contextProductId = rootType ? rootType.productId : undefined;
86
+ const context = {
87
+ modelId: this.modelId ?? '',
88
+ uiDefinition: uiDefinition,
89
+ runtimeModel,
90
+ runtimeMode: RuntimeMode.TEST,
91
+ productId: contextProductId,
92
+ properties: uiDefinition.externals,
93
+ };
94
+ this.runtimeService.startRuntime(context, {});
95
+ });
96
+ }
97
+ }
98
+ RuntimePreviewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: RuntimePreviewComponent, deps: [{ token: i1.RuntimeService }, { token: i2.ProductModelCacheService }, { token: i3.ConfigurationApiService }, { token: i4.ContextService }], target: i0.ɵɵFactoryTarget.Component });
99
+ RuntimePreviewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: RuntimePreviewComponent, selector: "vl-runtime-preview", inputs: { modelId: "modelId", uiDefinition: "uiDefinition" }, ngImport: i0, template: "<vl-runtime (solutionUpdated)=\"onSolutionUpdated($event)\"></vl-runtime>\n", styles: [":host{flex-grow:1}\n"], dependencies: [{ kind: "component", type: i5.RuntimeComponent, selector: "vl-runtime", outputs: ["solutionUpdated"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
100
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: RuntimePreviewComponent, decorators: [{
101
+ type: Component,
102
+ args: [{ selector: 'vl-runtime-preview', changeDetection: ChangeDetectionStrategy.OnPush, template: "<vl-runtime (solutionUpdated)=\"onSolutionUpdated($event)\"></vl-runtime>\n", styles: [":host{flex-grow:1}\n"] }]
103
+ }], ctorParameters: function () { return [{ type: i1.RuntimeService }, { type: i2.ProductModelCacheService }, { type: i3.ConfigurationApiService }, { type: i4.ContextService }]; }, propDecorators: { modelId: [{
104
+ type: Input
105
+ }], uiDefinition: [{
106
+ type: Input
107
+ }] } });
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS1wcmV2aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3J1bnRpbWUvY29tcG9uZW50cy91aS1ydW50aW1lLXByZXZpZXcvcnVudGltZS1wcmV2aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3J1bnRpbWUvY29tcG9uZW50cy91aS1ydW50aW1lLXByZXZpZXcvcnVudGltZS1wcmV2aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUM3RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxRCxPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLFVBQVUsRUFJVixZQUFZLEVBQ1osZUFBZSxHQUVoQixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFbkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7Ozs7OztBQVNoRSxNQUFNLE9BQU8sdUJBQXVCO0lBRWxDLElBQW9CLFlBQVksQ0FBQyxLQUFtQjtRQUNsRCxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztRQUMzQixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFRRCxZQUNVLGNBQThCLEVBQzlCLGlCQUEyQyxFQUMzQyx1QkFBZ0QsRUFDaEQsY0FBOEI7UUFIOUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBMEI7UUFDM0MsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUF5QjtRQUNoRCxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFOaEMsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFPcEMsQ0FBQztJQUVHLFFBQVE7UUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNqQixPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsaUJBQWlCO2FBQ25CLGVBQWUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO2FBQzdCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQzlCLFNBQVMsQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUNyQixJQUFJLENBQUMscUJBQXFCLEdBQUcsU0FBUyxDQUFDO1lBRXZDLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtnQkFDdEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7YUFDekM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRU0sY0FBYyxDQUFDLFlBQTBCO1FBQzlDLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUU7WUFDL0IsT0FBTztTQUNSO1FBRUQsTUFBTSx1QkFBdUIsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRS9ELE1BQU0sU0FBUyxHQUE0QixJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUNyRixJQUFJLFNBQVMsRUFBRTtZQUNiLHVCQUF1QixDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFxQixDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsRUFBRTtnQkFDM0YsT0FBTztvQkFDTCxHQUFHLEtBQUs7b0JBQ1IsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsdUJBQXVCLENBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUU7aUJBQzFFLENBQUM7WUFDSixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FDUjthQUFNO1lBQ0wsT0FBTyx1QkFBdUIsQ0FBQyxTQUFTLENBQUM7U0FDMUM7UUFFRCxJQUFJLENBQUMsdUJBQXVCLEdBQUcsdUJBQXVCLENBQUM7UUFFdkQsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFTSxpQkFBaUIsQ0FBQyxRQUFrQjtRQUN6QyxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVPLGFBQWE7UUFDbkIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsdUJBQXVCLEVBQUU7WUFDbEQsT0FBTztTQUNSO1FBRUQsZUFBZSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUUxRSxNQUFNLFlBQVksR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBRXBFLGFBQWEsQ0FBQztZQUNaLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1lBQ2xFLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSx3QkFBd0IsQ0FBQyxJQUFJLENBQUM7U0FDcEUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEVBQUUsRUFBRTtZQUM3QixNQUFNLFlBQVksR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2xGLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FDaEUsQ0FBQyxDQUFDLEVBQUUsQ0FDRixZQUFZLENBQUMsUUFBUTtnQkFDckIsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLFlBQVksQ0FBQyxRQUFRLENBQUM7Z0JBQ3hELFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUNwQyxDQUFDO1lBRUYsSUFBSSxRQUFRLEVBQUUsUUFBUSxFQUFFO2dCQUN0QixZQUFZLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUM7YUFDM0M7WUFFRCxNQUFNLGdCQUFnQixHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1lBRW5FLE1BQU0sT0FBTyxHQUF5QjtnQkFDcEMsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLElBQUksRUFBRTtnQkFDM0IsWUFBWSxFQUFFLFlBQVk7Z0JBQzFCLFlBQVk7Z0JBQ1osV0FBVyxFQUFFLFdBQVcsQ0FBQyxJQUFJO2dCQUM3QixTQUFTLEVBQUUsZ0JBQWdCO2dCQUMzQixVQUFVLEVBQUUsWUFBWSxDQUFDLFNBQVM7YUFDbkMsQ0FBQztZQUVGLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNoRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7O29IQTVHVSx1QkFBdUI7d0dBQXZCLHVCQUF1Qix3SEMxQnBDLDZFQUNBOzJGRHlCYSx1QkFBdUI7a0JBTm5DLFNBQVM7K0JBQ0Usb0JBQW9CLG1CQUdiLHVCQUF1QixDQUFDLE1BQU07K01BRy9CLE9BQU87c0JBQXRCLEtBQUs7Z0JBQ2MsWUFBWTtzQkFBL0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29uZmlndXJhdGlvbkFwaVNlcnZpY2UgfSBmcm9tICdAdmVsb2NlYXBwcy9hcGknO1xuaW1wb3J0IHtcbiAgQ29uZmlndXJhdGlvbkNvbnRleHRNb2RlLFxuICBFbnRpdHlVdGlsLFxuICBMaW5lSXRlbSxcbiAgUHJvZHVjdE1vZGVsQXR0cmlidXRlLFxuICBQcm9kdWN0TW9kZWxzQ29udGFpbmVyLFxuICBSdW50aW1lTW9kZWwsXG4gIFNlY3Rpb25QYXRoVXRpbCxcbiAgVUlEZWZpbml0aW9uLFxufSBmcm9tICdAdmVsb2NlYXBwcy9jb3JlJztcbmltcG9ydCB7IENvbnRleHRTZXJ2aWNlLCBSdW50aW1lTW9kZSB9IGZyb20gJ0B2ZWxvY2VhcHBzL3Nkay9jb3JlJztcbmltcG9ydCB7IERpY3Rpb25hcnkgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgUHJvZHVjdE1vZGVsQ2FjaGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcHJvZHVjdC1tb2RlbC1jYWNoZS5zZXJ2aWNlJztcbmltcG9ydCB7IFJ1bnRpbWVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcnVudGltZS5zZXJ2aWNlJztcbmltcG9ydCB7IExlZ2FjeVJ1bnRpbWVDb250ZXh0IH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2bC1ydW50aW1lLXByZXZpZXcnLFxuICB0ZW1wbGF0ZVVybDogJ3J1bnRpbWUtcHJldmlldy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWydydW50aW1lLXByZXZpZXcuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFJ1bnRpbWVQcmV2aWV3Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBwdWJsaWMgbW9kZWxJZD86IHN0cmluZztcbiAgQElucHV0KCkgcHVibGljIHNldCB1aURlZmluaXRpb24odmFsdWU6IFVJRGVmaW5pdGlvbikge1xuICAgIHRoaXMuX3VpRGVmaW5pdGlvbiA9IHZhbHVlO1xuICAgIHRoaXMuaW5pdERlZmluaXRpb24odmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBfdWlEZWZpbml0aW9uPzogVUlEZWZpbml0aW9uO1xuICBwcml2YXRlIGluaXRpYWxpc2VkVWlEZWZpbml0aW9uPzogVUlEZWZpbml0aW9uO1xuICBwcml2YXRlIHByb2R1Y3RNb2RlbENvbnRhaW5lcj86IFByb2R1Y3RNb2RlbHNDb250YWluZXI7XG5cbiAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBydW50aW1lU2VydmljZTogUnVudGltZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBtb2RlbENhY2hlU2VydmljZTogUHJvZHVjdE1vZGVsQ2FjaGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29uZmlndXJhdGlvbkFwaVNlcnZpY2U6IENvbmZpZ3VyYXRpb25BcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29udGV4dFNlcnZpY2U6IENvbnRleHRTZXJ2aWNlLFxuICApIHt9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5tb2RlbElkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5tb2RlbENhY2hlU2VydmljZVxuICAgICAgLmdldFByb2R1Y3RNb2RlbCh0aGlzLm1vZGVsSWQpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAuc3Vic2NyaWJlKGNvbnRhaW5lciA9PiB7XG4gICAgICAgIHRoaXMucHJvZHVjdE1vZGVsQ29udGFpbmVyID0gY29udGFpbmVyO1xuXG4gICAgICAgIGlmICh0aGlzLl91aURlZmluaXRpb24pIHtcbiAgICAgICAgICB0aGlzLmluaXREZWZpbml0aW9uKHRoaXMuX3VpRGVmaW5pdGlvbik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBpbml0RGVmaW5pdGlvbih1aURlZmluaXRpb246IFVJRGVmaW5pdGlvbik6IHZvaWQge1xuICAgIGlmICghdGhpcy5wcm9kdWN0TW9kZWxDb250YWluZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBpbml0aWFsaXNlZFVpRGVmaW5pdGlvbiA9IEVudGl0eVV0aWwuY2xvbmUodWlEZWZpbml0aW9uKTtcblxuICAgIGNvbnN0IGV4dGVybmFsczogUHJvZHVjdE1vZGVsQXR0cmlidXRlW10gPSB0aGlzLnByb2R1Y3RNb2RlbENvbnRhaW5lci5tYWluLmV4dGVybmFscztcbiAgICBpZiAoZXh0ZXJuYWxzKSB7XG4gICAgICBpbml0aWFsaXNlZFVpRGVmaW5pdGlvbi5leHRlcm5hbHMgPSBleHRlcm5hbHMucmVkdWNlPERpY3Rpb25hcnk8c3RyaW5nPj4oKHRydW5rLCB2YXJpYWJsZSkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLnRydW5rLFxuICAgICAgICAgIFt2YXJpYWJsZS5uYW1lXTogaW5pdGlhbGlzZWRVaURlZmluaXRpb24uZXh0ZXJuYWxzPy5bdmFyaWFibGUubmFtZV0gPz8gJycsXG4gICAgICAgIH07XG4gICAgICB9LCB7fSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRlbGV0ZSBpbml0aWFsaXNlZFVpRGVmaW5pdGlvbi5leHRlcm5hbHM7XG4gICAgfVxuXG4gICAgdGhpcy5pbml0aWFsaXNlZFVpRGVmaW5pdGlvbiA9IGluaXRpYWxpc2VkVWlEZWZpbml0aW9uO1xuXG4gICAgdGhpcy5sYXVuY2hSdW50aW1lKCk7XG4gIH1cblxuICBwdWJsaWMgb25Tb2x1dGlvblVwZGF0ZWQobGluZUl0ZW06IExpbmVJdGVtKTogdm9pZCB7XG4gICAgdGhpcy5ydW50aW1lU2VydmljZS51cGRhdGVSdW50aW1lKHsgY29uZmlndXJhYmxlUmFtcDogbGluZUl0ZW0gfSk7XG4gIH1cblxuICBwcml2YXRlIGxhdW5jaFJ1bnRpbWUoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm1vZGVsSWQgfHwgIXRoaXMuaW5pdGlhbGlzZWRVaURlZmluaXRpb24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBTZWN0aW9uUGF0aFV0aWwudXBkYXRlU2VjdGlvbnNQYXRoKHRoaXMuaW5pdGlhbGlzZWRVaURlZmluaXRpb24uc2VjdGlvbnMpO1xuXG4gICAgY29uc3QgdWlEZWZpbml0aW9uID0gRW50aXR5VXRpbC5jbG9uZSh0aGlzLmluaXRpYWxpc2VkVWlEZWZpbml0aW9uKTtcblxuICAgIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5jb25maWd1cmF0aW9uQXBpU2VydmljZS5nZXRSdW50aW1lRGF0YUJ5TW9kZWxJZCh0aGlzLm1vZGVsSWQpLFxuICAgICAgdGhpcy5jb250ZXh0U2VydmljZS5jcmVhdGUoJ1Rlc3RJZCcsIENvbmZpZ3VyYXRpb25Db250ZXh0TW9kZS5URVNUKSxcbiAgICBdKS5zdWJzY3JpYmUoKFtydW50aW1lRGF0YV0pID0+IHtcbiAgICAgIGNvbnN0IHJ1bnRpbWVNb2RlbCA9IFJ1bnRpbWVNb2RlbC5jcmVhdGUocnVudGltZURhdGEudHlwZXMsIHJ1bnRpbWVEYXRhLnByb2R1Y3RzKTtcbiAgICAgIGNvbnN0IHJvb3RUeXBlID0gQXJyYXkuZnJvbShydW50aW1lTW9kZWwuY29tcG9uZW50cy52YWx1ZXMoKSkuZmluZChcbiAgICAgICAgYyA9PlxuICAgICAgICAgIHVpRGVmaW5pdGlvbi5yb290VHlwZSAmJlxuICAgICAgICAgIHJ1bnRpbWVNb2RlbC5pc0VxdWFscyhjLnR5cGVOYW1lLCB1aURlZmluaXRpb24ucm9vdFR5cGUpICYmXG4gICAgICAgICAgRW50aXR5VXRpbC5pc1ByZXNlbnQoYy5wcm9kdWN0SWQpLFxuICAgICAgKTtcblxuICAgICAgaWYgKHJvb3RUeXBlPy50eXBlTmFtZSkge1xuICAgICAgICB1aURlZmluaXRpb24ucm9vdFR5cGUgPSByb290VHlwZS50eXBlTmFtZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgY29udGV4dFByb2R1Y3RJZCA9IHJvb3RUeXBlID8gcm9vdFR5cGUucHJvZHVjdElkIDogdW5kZWZpbmVkO1xuXG4gICAgICBjb25zdCBjb250ZXh0OiBMZWdhY3lSdW50aW1lQ29udGV4dCA9IHtcbiAgICAgICAgbW9kZWxJZDogdGhpcy5tb2RlbElkID8/ICcnLFxuICAgICAgICB1aURlZmluaXRpb246IHVpRGVmaW5pdGlvbixcbiAgICAgICAgcnVudGltZU1vZGVsLFxuICAgICAgICBydW50aW1lTW9kZTogUnVudGltZU1vZGUuVEVTVCxcbiAgICAgICAgcHJvZHVjdElkOiBjb250ZXh0UHJvZHVjdElkLFxuICAgICAgICBwcm9wZXJ0aWVzOiB1aURlZmluaXRpb24uZXh0ZXJuYWxzLFxuICAgICAgfTtcblxuICAgICAgdGhpcy5ydW50aW1lU2VydmljZS5zdGFydFJ1bnRpbWUoY29udGV4dCwge30pO1xuICAgIH0pO1xuICB9XG59XG4iLCI8dmwtcnVudGltZSAoc29sdXRpb25VcGRhdGVkKT1cIm9uU29sdXRpb25VcGRhdGVkKCRldmVudClcIj48L3ZsLXJ1bnRpbWU+XG4iXX0=
@@ -0,0 +1,60 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { OrderByPipe } from '@veloceapps/core';
3
+ import { CollapsibleStateService } from '../../../services/collapsible-state.service';
4
+ import { FormScopeService } from '../../../services/form-scope.service';
5
+ import { SectionScopeService } from '../../../services/section-scope.service';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "../../../services/section-scope.service";
8
+ import * as i2 from "../../../services/form-scope.service";
9
+ import * as i3 from "../../../services/collapsible-state.service";
10
+ import * as i4 from "@angular/common";
11
+ import * as i5 from "../execution-section-renderer/execution-section-renderer.component";
12
+ export class ChildrenPlaceholderComponent {
13
+ constructor(sectionScope, formScope, collapsibleState) {
14
+ this.sectionScope = sectionScope;
15
+ this.formScope = formScope;
16
+ this.collapsibleState = collapsibleState;
17
+ this._children = [];
18
+ this.collapsed = false;
19
+ }
20
+ ngOnInit() {
21
+ this.section = this.sectionScope.section;
22
+ this.form = this.formScope.form;
23
+ this.collapsed = this.section.model ? this.collapsibleState.isCollapsedSection(this.section.model.id) : true;
24
+ this.sub = this.collapsibleState.collapseSectionEvent.subscribe(e => {
25
+ const lineItemId = e[0];
26
+ if (this.section.model?.id === lineItemId) {
27
+ this.collapsed = e[1];
28
+ }
29
+ });
30
+ this.setChildren();
31
+ }
32
+ ngOnChanges(changes) {
33
+ if (!this.children || changes['children']?.currentValue !== changes['children']?.previousValue) {
34
+ this.setChildren();
35
+ }
36
+ }
37
+ setChildren() {
38
+ this._children = this.children ? this.children : this.section.children;
39
+ }
40
+ ngOnDestroy() {
41
+ this.sub.unsubscribe();
42
+ }
43
+ }
44
+ ChildrenPlaceholderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ChildrenPlaceholderComponent, deps: [{ token: i1.SectionScopeService }, { token: i2.FormScopeService }, { token: i3.CollapsibleStateService }], target: i0.ɵɵFactoryTarget.Component });
45
+ ChildrenPlaceholderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: ChildrenPlaceholderComponent, selector: "children-placeholder", inputs: { children: "children" }, providers: [OrderByPipe], usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"!collapsed\">\n <ng-container *ngFor=\"let child of _children\">\n <section-renderer [section]=\"child\" [form]=\"form\" *ngIf=\"!child.hidden\"></section-renderer>\n </ng-container>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.ExecutionSectionRendererComponent, selector: "section-renderer", inputs: ["section", "form"] }] });
46
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ChildrenPlaceholderComponent, decorators: [{
47
+ type: Component,
48
+ args: [{ selector: 'children-placeholder', providers: [OrderByPipe], template: "<ng-container *ngIf=\"!collapsed\">\n <ng-container *ngFor=\"let child of _children\">\n <section-renderer [section]=\"child\" [form]=\"form\" *ngIf=\"!child.hidden\"></section-renderer>\n </ng-container>\n</ng-container>\n" }]
49
+ }], ctorParameters: function () { return [{ type: i1.SectionScopeService }, { type: i2.FormScopeService }, { type: i3.CollapsibleStateService }]; }, propDecorators: { children: [{
50
+ type: Input
51
+ }] } });
52
+ export class TemplateComponent extends ChildrenPlaceholderComponent {
53
+ }
54
+ TemplateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: TemplateComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
55
+ TemplateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: TemplateComponent, selector: "template-component", usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"!collapsed\">\n <ng-container *ngFor=\"let child of _children\">\n <section-renderer [section]=\"child\" [form]=\"form\" *ngIf=\"!child.hidden\"></section-renderer>\n </ng-container>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.ExecutionSectionRendererComponent, selector: "section-renderer", inputs: ["section", "form"] }] });
56
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: TemplateComponent, decorators: [{
57
+ type: Component,
58
+ args: [{ selector: 'template-component', template: "<ng-container *ngIf=\"!collapsed\">\n <ng-container *ngFor=\"let child of _children\">\n <section-renderer [section]=\"child\" [form]=\"form\" *ngIf=\"!child.hidden\"></section-renderer>\n </ng-container>\n</ng-container>\n" }]
59
+ }] });
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpbGRyZW4tcGxhY2Vob2xkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvcnVudGltZS9leGVjdXRpb24vY29tcG9uZW50cy9jaGlsZHJlbi1wbGFjZWhvbGRlci9jaGlsZHJlbi1wbGFjZWhvbGRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9ydW50aW1lL2V4ZWN1dGlvbi9jb21wb25lbnRzL2NoaWxkcmVuLXBsYWNlaG9sZGVyL2NoaWxkcmVuLXBsYWNlaG9sZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUErQyxNQUFNLGVBQWUsQ0FBQztBQUU5RixPQUFPLEVBQUUsV0FBVyxFQUFXLE1BQU0sa0JBQWtCLENBQUM7QUFFeEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDdEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDeEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUNBQXlDLENBQUM7Ozs7Ozs7QUFROUUsTUFBTSxPQUFPLDRCQUE0QjtJQWN2QyxZQUNVLFlBQWlDLEVBQ2pDLFNBQTJCLEVBQzNCLGdCQUF5QztRQUZ6QyxpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFDakMsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0IscUJBQWdCLEdBQWhCLGdCQUFnQixDQUF5QjtRQWI1QyxjQUFTLEdBQWMsRUFBRSxDQUFDO1FBUTFCLGNBQVMsR0FBRyxLQUFLLENBQUM7SUFNdEIsQ0FBQztJQUVHLFFBQVE7UUFDYixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUM7UUFFaEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFFN0csSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsb0JBQW9CLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ2xFLE1BQU0sVUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUV4QixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxVQUFVLEVBQUU7Z0JBQ3pDLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3ZCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVNLFdBQVcsQ0FBQyxPQUFzQjtRQUN2QyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUUsWUFBWSxLQUFLLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBRSxhQUFhLEVBQUU7WUFDOUYsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3BCO0lBQ0gsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztJQUN6RSxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3pCLENBQUM7O3lIQWpEVSw0QkFBNEI7NkdBQTVCLDRCQUE0QixpRkFGNUIsQ0FBQyxXQUFXLENBQUMsK0NDWjFCLHNPQUtBOzJGRFNhLDRCQUE0QjtrQkFOeEMsU0FBUzsrQkFFRSxzQkFBc0IsYUFFckIsQ0FBQyxXQUFXLENBQUM7K0tBSWpCLFFBQVE7c0JBRGQsS0FBSzs7QUF3RFIsTUFBTSxPQUFPLGlCQUFrQixTQUFRLDRCQUE0Qjs7OEdBQXRELGlCQUFpQjtrR0FBakIsaUJBQWlCLGlGQ3ZFOUIsc09BS0E7MkZEa0VhLGlCQUFpQjtrQkFMN0IsU0FBUzsrQkFFRSxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT25Jbml0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBPcmRlckJ5UGlwZSwgU2VjdGlvbiB9IGZyb20gJ0B2ZWxvY2VhcHBzL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDb2xsYXBzaWJsZVN0YXRlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2NvbGxhcHNpYmxlLXN0YXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgRm9ybVNjb3BlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Zvcm0tc2NvcGUuc2VydmljZSc7XG5pbXBvcnQgeyBTZWN0aW9uU2NvcGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvc2VjdGlvbi1zY29wZS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnY2hpbGRyZW4tcGxhY2Vob2xkZXInLFxuICB0ZW1wbGF0ZVVybDogJ2NoaWxkcmVuLXBsYWNlaG9sZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgcHJvdmlkZXJzOiBbT3JkZXJCeVBpcGVdLFxufSlcbmV4cG9ydCBjbGFzcyBDaGlsZHJlblBsYWNlaG9sZGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBjaGlsZHJlbj86IFNlY3Rpb25bXTtcblxuICBwdWJsaWMgX2NoaWxkcmVuOiBTZWN0aW9uW10gPSBbXTtcblxuICBwdWJsaWMgc2VjdGlvbiE6IFNlY3Rpb247XG5cbiAgcHVibGljIGZvcm0hOiBGb3JtR3JvdXA7XG5cbiAgcHVibGljIHN1YiE6IFN1YnNjcmlwdGlvbjtcblxuICBwdWJsaWMgY29sbGFwc2VkID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzZWN0aW9uU2NvcGU6IFNlY3Rpb25TY29wZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBmb3JtU2NvcGU6IEZvcm1TY29wZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb2xsYXBzaWJsZVN0YXRlOiBDb2xsYXBzaWJsZVN0YXRlU2VydmljZSxcbiAgKSB7fVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNlY3Rpb24gPSB0aGlzLnNlY3Rpb25TY29wZS5zZWN0aW9uO1xuICAgIHRoaXMuZm9ybSA9IHRoaXMuZm9ybVNjb3BlLmZvcm07XG5cbiAgICB0aGlzLmNvbGxhcHNlZCA9IHRoaXMuc2VjdGlvbi5tb2RlbCA/IHRoaXMuY29sbGFwc2libGVTdGF0ZS5pc0NvbGxhcHNlZFNlY3Rpb24odGhpcy5zZWN0aW9uLm1vZGVsLmlkKSA6IHRydWU7XG5cbiAgICB0aGlzLnN1YiA9IHRoaXMuY29sbGFwc2libGVTdGF0ZS5jb2xsYXBzZVNlY3Rpb25FdmVudC5zdWJzY3JpYmUoZSA9PiB7XG4gICAgICBjb25zdCBsaW5lSXRlbUlkID0gZVswXTtcblxuICAgICAgaWYgKHRoaXMuc2VjdGlvbi5tb2RlbD8uaWQgPT09IGxpbmVJdGVtSWQpIHtcbiAgICAgICAgdGhpcy5jb2xsYXBzZWQgPSBlWzFdO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5zZXRDaGlsZHJlbigpO1xuICB9XG5cbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuY2hpbGRyZW4gfHwgY2hhbmdlc1snY2hpbGRyZW4nXT8uY3VycmVudFZhbHVlICE9PSBjaGFuZ2VzWydjaGlsZHJlbiddPy5wcmV2aW91c1ZhbHVlKSB7XG4gICAgICB0aGlzLnNldENoaWxkcmVuKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNldENoaWxkcmVuKCk6IHZvaWQge1xuICAgIHRoaXMuX2NoaWxkcmVuID0gdGhpcy5jaGlsZHJlbiA/IHRoaXMuY2hpbGRyZW4gOiB0aGlzLnNlY3Rpb24uY2hpbGRyZW47XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zdWIudW5zdWJzY3JpYmUoKTtcbiAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICd0ZW1wbGF0ZS1jb21wb25lbnQnLFxuICB0ZW1wbGF0ZVVybDogJ2NoaWxkcmVuLXBsYWNlaG9sZGVyLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgVGVtcGxhdGVDb21wb25lbnQgZXh0ZW5kcyBDaGlsZHJlblBsYWNlaG9sZGVyQ29tcG9uZW50IHt9XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiIWNvbGxhcHNlZFwiPlxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjaGlsZCBvZiBfY2hpbGRyZW5cIj5cbiAgICA8c2VjdGlvbi1yZW5kZXJlciBbc2VjdGlvbl09XCJjaGlsZFwiIFtmb3JtXT1cImZvcm1cIiAqbmdJZj1cIiFjaGlsZC5oaWRkZW5cIj48L3NlY3Rpb24tcmVuZGVyZXI+XG4gIDwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
@@ -0,0 +1,39 @@
1
+ import { Component, Inject, Input } from '@angular/core';
2
+ import { RuntimeModel } from '@veloceapps/core';
3
+ import { RuntimeService } from '../../../services/runtime.service';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../../../services/runtime.service";
6
+ export class ContextProviderComponent {
7
+ constructor(runtimeService) {
8
+ this.runtimeService = runtimeService;
9
+ this.types = [];
10
+ this.products = {};
11
+ }
12
+ ngOnInit() {
13
+ const context = this.runtimeService.getRuntimeContext();
14
+ if (!context) {
15
+ return;
16
+ }
17
+ this.runtimeService.setRuntimeContext({
18
+ ...context,
19
+ runtimeModel: RuntimeModel.create(this.types, this.products),
20
+ });
21
+ }
22
+ }
23
+ ContextProviderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ContextProviderComponent, deps: [{ token: RuntimeService }], target: i0.ɵɵFactoryTarget.Component });
24
+ ContextProviderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: ContextProviderComponent, selector: "vl-context-provider", inputs: { types: "types", products: "products" }, ngImport: i0, template: '', isInline: true });
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ContextProviderComponent, decorators: [{
26
+ type: Component,
27
+ args: [{
28
+ selector: 'vl-context-provider',
29
+ template: '',
30
+ }]
31
+ }], ctorParameters: function () { return [{ type: i1.RuntimeService, decorators: [{
32
+ type: Inject,
33
+ args: [RuntimeService]
34
+ }] }]; }, propDecorators: { types: [{
35
+ type: Input
36
+ }], products: [{
37
+ type: Input
38
+ }] } });
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1wcm92aWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9ydW50aW1lL2V4ZWN1dGlvbi9jb21wb25lbnRzL2NvbnRleHQtcHJvdmlkZXIvY29udGV4dC1wcm92aWRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxZQUFZLEVBQStCLE1BQU0sa0JBQWtCLENBQUM7QUFFN0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7QUFNbkUsTUFBTSxPQUFPLHdCQUF3QjtJQUluQyxZQUE0QyxjQUE4QjtRQUE5QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFIMUQsVUFBSyxHQUFrQixFQUFFLENBQUM7UUFDMUIsYUFBUSxHQUFpQyxFQUFFLENBQUM7SUFFaUIsQ0FBQztJQUV2RSxRQUFRO1FBQ2IsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBRXhELElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDWixPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsY0FBYyxDQUFDLGlCQUFpQixDQUFDO1lBQ3BDLEdBQUcsT0FBTztZQUNWLFlBQVksRUFBRSxZQUFZLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQztTQUM3RCxDQUFDLENBQUM7SUFDTCxDQUFDOztxSEFqQlUsd0JBQXdCLGtCQUlmLGNBQWM7eUdBSnZCLHdCQUF3Qiw2R0FGekIsRUFBRTsyRkFFRCx3QkFBd0I7a0JBSnBDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsUUFBUSxFQUFFLEVBQUU7aUJBQ2I7OzBCQUtjLE1BQU07MkJBQUMsY0FBYzs0Q0FIbEIsS0FBSztzQkFBcEIsS0FBSztnQkFDVSxRQUFRO3NCQUF2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJ1bnRpbWVNb2RlbCwgUnVudGltZVByb2R1Y3QsIFJ1bnRpbWVUeXBlIH0gZnJvbSAnQHZlbG9jZWFwcHMvY29yZSc7XG5pbXBvcnQgeyBEaWN0aW9uYXJ5IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IFJ1bnRpbWVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcnVudGltZS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmwtY29udGV4dC1wcm92aWRlcicsXG4gIHRlbXBsYXRlOiAnJyxcbn0pXG5leHBvcnQgY2xhc3MgQ29udGV4dFByb3ZpZGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgcHVibGljIHR5cGVzOiBSdW50aW1lVHlwZVtdID0gW107XG4gIEBJbnB1dCgpIHB1YmxpYyBwcm9kdWN0czogRGljdGlvbmFyeTxSdW50aW1lUHJvZHVjdFtdPiA9IHt9O1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoUnVudGltZVNlcnZpY2UpIHByaXZhdGUgcnVudGltZVNlcnZpY2U6IFJ1bnRpbWVTZXJ2aWNlKSB7fVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5ydW50aW1lU2VydmljZS5nZXRSdW50aW1lQ29udGV4dCgpO1xuXG4gICAgaWYgKCFjb250ZXh0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5ydW50aW1lU2VydmljZS5zZXRSdW50aW1lQ29udGV4dCh7XG4gICAgICAuLi5jb250ZXh0LFxuICAgICAgcnVudGltZU1vZGVsOiBSdW50aW1lTW9kZWwuY3JlYXRlKHRoaXMudHlwZXMsIHRoaXMucHJvZHVjdHMpLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,67 @@
1
+ import { Component, Injector, Input, NgModuleRef, ViewChild, ViewContainerRef, } from '@angular/core';
2
+ import { FormGroup } from '@angular/forms';
3
+ import { Section } from '@veloceapps/core';
4
+ import { SectionScopeService } from '../../../services/section-scope.service';
5
+ import { SectionStoreService } from '../../../services/section-store.service';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "../../../services/section-scope.service";
8
+ import * as i2 from "../../../services/section-store.service";
9
+ export class ExecutionSectionRendererComponent {
10
+ set section(value) {
11
+ this._section = value;
12
+ this.sectionScope.section = value;
13
+ }
14
+ get section() {
15
+ return this._section;
16
+ }
17
+ constructor(_injector, _m, sectionScope, sectionStore) {
18
+ this._injector = _injector;
19
+ this._m = _m;
20
+ this.sectionScope = sectionScope;
21
+ this.sectionStore = sectionStore;
22
+ this.componentRef = null;
23
+ }
24
+ ngOnInit() {
25
+ this.renderSection();
26
+ }
27
+ ngAfterViewInit() {
28
+ if (this.componentRef) {
29
+ this.sectionScope.templates.next(this.componentRef.instance['templates']?.toArray() ?? []);
30
+ }
31
+ }
32
+ ngOnDestroy() {
33
+ if (this.componentRef) {
34
+ this.componentRef.destroy();
35
+ this.componentRef = null;
36
+ }
37
+ }
38
+ renderSection() {
39
+ if (this.componentRef) {
40
+ this.componentRef.destroy();
41
+ this.componentRef = null;
42
+ }
43
+ const componentFactory = this.sectionStore.getComponentFactory(this._section);
44
+ if (!componentFactory) {
45
+ return;
46
+ }
47
+ this.componentRef = componentFactory.create(this._injector, [], null, this._m);
48
+ this.componentRef.location.nativeElement.setAttribute('sectionId', `${this._section.model?.id}${this._section.label}`);
49
+ this.componentRef.instance['form'] = this.form;
50
+ this.componentRef.instance['section'] = this.section;
51
+ this.container.insert(this.componentRef.hostView);
52
+ }
53
+ }
54
+ ExecutionSectionRendererComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ExecutionSectionRendererComponent, deps: [{ token: i0.Injector }, { token: i0.NgModuleRef }, { token: i1.SectionScopeService }, { token: i2.SectionStoreService }], target: i0.ɵɵFactoryTarget.Component });
55
+ ExecutionSectionRendererComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: ExecutionSectionRendererComponent, selector: "section-renderer", inputs: { section: "section", form: "form" }, providers: [SectionScopeService], viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: "<ng-template #container></ng-template>", styles: [":host{display:contents}\n"] });
56
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ExecutionSectionRendererComponent, decorators: [{
57
+ type: Component,
58
+ args: [{ selector: 'section-renderer', providers: [SectionScopeService], template: "<ng-template #container></ng-template>", styles: [":host{display:contents}\n"] }]
59
+ }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.NgModuleRef }, { type: i1.SectionScopeService }, { type: i2.SectionStoreService }]; }, propDecorators: { section: [{
60
+ type: Input
61
+ }], form: [{
62
+ type: Input
63
+ }], container: [{
64
+ type: ViewChild,
65
+ args: ['container', { read: ViewContainerRef, static: true }]
66
+ }] } });
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlY3V0aW9uLXNlY3Rpb24tcmVuZGVyZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvcnVudGltZS9leGVjdXRpb24vY29tcG9uZW50cy9leGVjdXRpb24tc2VjdGlvbi1yZW5kZXJlci9leGVjdXRpb24tc2VjdGlvbi1yZW5kZXJlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9ydW50aW1lL2V4ZWN1dGlvbi9jb21wb25lbnRzL2V4ZWN1dGlvbi1zZWN0aW9uLXJlbmRlcmVyL2V4ZWN1dGlvbi1zZWN0aW9uLXJlbmRlcmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBRVQsUUFBUSxFQUNSLEtBQUssRUFDTCxXQUFXLEVBR1gsU0FBUyxFQUNULGdCQUFnQixHQUNqQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDOzs7O0FBUzlFLE1BQU0sT0FBTyxpQ0FBaUM7SUFHNUMsSUFDVyxPQUFPLENBQUMsS0FBYztRQUMvQixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDcEMsQ0FBQztJQUVELElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUtELFlBQ1UsU0FBbUIsRUFDbkIsRUFBb0IsRUFDcEIsWUFBaUMsRUFDakMsWUFBaUM7UUFIakMsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQUNuQixPQUFFLEdBQUYsRUFBRSxDQUFrQjtRQUNwQixpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFDakMsaUJBQVksR0FBWixZQUFZLENBQXFCO1FBTW5DLGlCQUFZLEdBQTZCLElBQUksQ0FBQztJQUxuRCxDQUFDO0lBT0csUUFBUTtRQUNiLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRU0sZUFBZTtRQUNwQixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDckIsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1NBQzVGO0lBQ0gsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3JCLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7U0FDMUI7SUFDSCxDQUFDO0lBRU0sYUFBYTtRQUNsQixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDckIsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztTQUMxQjtRQUVELE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDOUUsSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3JCLE9BQU87U0FDUjtRQUVELElBQUksQ0FBQyxZQUFZLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDL0UsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FDbkQsV0FBVyxFQUNYLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQ25ELENBQUM7UUFDRixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQy9DLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDckQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNwRCxDQUFDOzs4SEFoRVUsaUNBQWlDO2tIQUFqQyxpQ0FBaUMseUZBRmpDLENBQUMsbUJBQW1CLENBQUMsNkdBeUJBLGdCQUFnQiwyQ0MvQ2xELHdDQUFzQzsyRkR3QnpCLGlDQUFpQztrQkFQN0MsU0FBUzsrQkFFRSxrQkFBa0IsYUFHakIsQ0FBQyxtQkFBbUIsQ0FBQzs2TEFNckIsT0FBTztzQkFEakIsS0FBSztnQkFXQyxJQUFJO3NCQURWLEtBQUs7Z0JBV0MsU0FBUztzQkFEZixTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBDb21wb25lbnRSZWYsXG4gIEluamVjdG9yLFxuICBJbnB1dCxcbiAgTmdNb2R1bGVSZWYsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU2VjdGlvbiB9IGZyb20gJ0B2ZWxvY2VhcHBzL2NvcmUnO1xuaW1wb3J0IHsgU2VjdGlvblNjb3BlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3NlY3Rpb24tc2NvcGUuc2VydmljZSc7XG5pbXBvcnQgeyBTZWN0aW9uU3RvcmVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvc2VjdGlvbi1zdG9yZS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnc2VjdGlvbi1yZW5kZXJlcicsXG4gIHRlbXBsYXRlVXJsOiAnZXhlY3V0aW9uLXNlY3Rpb24tcmVuZGVyZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnZXhlY3V0aW9uLXNlY3Rpb24tcmVuZGVyZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbU2VjdGlvblNjb3BlU2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIEV4ZWN1dGlvblNlY3Rpb25SZW5kZXJlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBfc2VjdGlvbiE6IFNlY3Rpb247XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBzZWN0aW9uKHZhbHVlOiBTZWN0aW9uKSB7XG4gICAgdGhpcy5fc2VjdGlvbiA9IHZhbHVlO1xuICAgIHRoaXMuc2VjdGlvblNjb3BlLnNlY3Rpb24gPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc2VjdGlvbigpOiBTZWN0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5fc2VjdGlvbjtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmb3JtITogRm9ybUdyb3VwO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX2luamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIF9tOiBOZ01vZHVsZVJlZjxhbnk+LFxuICAgIHByaXZhdGUgc2VjdGlvblNjb3BlOiBTZWN0aW9uU2NvcGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgc2VjdGlvblN0b3JlOiBTZWN0aW9uU3RvcmVTZXJ2aWNlLFxuICApIHt9XG5cbiAgQFZpZXdDaGlsZCgnY29udGFpbmVyJywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmLCBzdGF0aWM6IHRydWUgfSlcbiAgcHVibGljIGNvbnRhaW5lciE6IFZpZXdDb250YWluZXJSZWY7XG5cbiAgcHJpdmF0ZSBjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxhbnk+IHwgbnVsbCA9IG51bGw7XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMucmVuZGVyU2VjdGlvbigpO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jb21wb25lbnRSZWYpIHtcbiAgICAgIHRoaXMuc2VjdGlvblNjb3BlLnRlbXBsYXRlcy5uZXh0KHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlWyd0ZW1wbGF0ZXMnXT8udG9BcnJheSgpID8/IFtdKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY29tcG9uZW50UmVmKSB7XG4gICAgICB0aGlzLmNvbXBvbmVudFJlZi5kZXN0cm95KCk7XG4gICAgICB0aGlzLmNvbXBvbmVudFJlZiA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlbmRlclNlY3Rpb24oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY29tcG9uZW50UmVmKSB7XG4gICAgICB0aGlzLmNvbXBvbmVudFJlZi5kZXN0cm95KCk7XG4gICAgICB0aGlzLmNvbXBvbmVudFJlZiA9IG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QgY29tcG9uZW50RmFjdG9yeSA9IHRoaXMuc2VjdGlvblN0b3JlLmdldENvbXBvbmVudEZhY3RvcnkodGhpcy5fc2VjdGlvbik7XG4gICAgaWYgKCFjb21wb25lbnRGYWN0b3J5KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5jb21wb25lbnRSZWYgPSBjb21wb25lbnRGYWN0b3J5LmNyZWF0ZSh0aGlzLl9pbmplY3RvciwgW10sIG51bGwsIHRoaXMuX20pO1xuICAgIHRoaXMuY29tcG9uZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQuc2V0QXR0cmlidXRlKFxuICAgICAgJ3NlY3Rpb25JZCcsXG4gICAgICBgJHt0aGlzLl9zZWN0aW9uLm1vZGVsPy5pZH0ke3RoaXMuX3NlY3Rpb24ubGFiZWx9YCxcbiAgICApO1xuICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlWydmb3JtJ10gPSB0aGlzLmZvcm07XG4gICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2VbJ3NlY3Rpb24nXSA9IHRoaXMuc2VjdGlvbjtcbiAgICB0aGlzLmNvbnRhaW5lci5pbnNlcnQodGhpcy5jb21wb25lbnRSZWYuaG9zdFZpZXcpO1xuICB9XG59XG4iLCI8bmctdGVtcGxhdGUgI2NvbnRhaW5lcj48L25nLXRlbXBsYXRlPiJdfQ==
@@ -0,0 +1,74 @@
1
+ import { ApplicationRef, ChangeDetectionStrategy, Compiler, Component, ElementRef, EventEmitter, Injector, Input, Output, Renderer2, TemplateRef, ViewChild, ViewContainerRef, } from '@angular/core';
2
+ import { loadRemoteModule } from '../../utils/federated.util';
3
+ import * as i0 from "@angular/core";
4
+ var IntegrationEvent;
5
+ (function (IntegrationEvent) {
6
+ IntegrationEvent["Init"] = "Init";
7
+ })(IntegrationEvent || (IntegrationEvent = {}));
8
+ export class FederatedComponent {
9
+ constructor(injector, compiler, appRef, renderer) {
10
+ this.injector = injector;
11
+ this.compiler = compiler;
12
+ this.appRef = appRef;
13
+ this.renderer = renderer;
14
+ this.integrationEvent = new EventEmitter();
15
+ this.moduleReady = false;
16
+ }
17
+ ngAfterViewInit() {
18
+ if (!this.remoteEntry || !this.remoteName || !this.exposedModule) {
19
+ return;
20
+ }
21
+ loadRemoteModule({
22
+ remoteEntry: this.remoteEntry,
23
+ remoteName: this.remoteName,
24
+ exposedModule: this.exposedModule,
25
+ }).then(federated => {
26
+ this.compiler.compileModuleAsync(federated[this.exposedModule]).then(moduleFactory => {
27
+ const rootModuleRef = moduleFactory.create(this.injector);
28
+ const rootComponentFactory = rootModuleRef.componentFactoryResolver.resolveComponentFactory(federated[this.exposedModule].rootComponent);
29
+ const node = document.createElement('div');
30
+ const { instance, hostView } = rootComponentFactory.create(this.injector, [], node);
31
+ this.instance = instance;
32
+ this.instance.data = this.data;
33
+ this.instance.eventData = this.eventData;
34
+ this.instance.integrationEvent = this.integrationEvent;
35
+ this.renderer.appendChild(this.moduleHostRef?.nativeElement, node);
36
+ this.appRef.attachView(hostView);
37
+ });
38
+ });
39
+ }
40
+ ngOnChanges(changes) {
41
+ if (!this.instance) {
42
+ return;
43
+ }
44
+ this.instance.ngOnChanges(changes);
45
+ }
46
+ }
47
+ FederatedComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: FederatedComponent, deps: [{ token: i0.Injector }, { token: i0.Compiler }, { token: i0.ApplicationRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
48
+ FederatedComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: FederatedComponent, selector: "veloce-host-federated", inputs: { remoteEntry: "remoteEntry", remoteName: "remoteName", exposedModule: "exposedModule", data: "data", eventData: "eventData" }, outputs: { integrationEvent: "integrationEvent" }, viewQueries: [{ propertyName: "federatedComponent", first: true, predicate: ["federatedComponent"], descendants: true, read: ViewContainerRef }, { propertyName: "foo", first: true, predicate: ["foo"], descendants: true, read: TemplateRef }, { propertyName: "moduleHostRef", first: true, predicate: ["moduleHost"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div #moduleHost></div>\n", styles: [":host{display:block}div{height:100%}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
49
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: FederatedComponent, decorators: [{
50
+ type: Component,
51
+ args: [{ selector: 'veloce-host-federated', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div #moduleHost></div>\n", styles: [":host{display:block}div{height:100%}\n"] }]
52
+ }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.Compiler }, { type: i0.ApplicationRef }, { type: i0.Renderer2 }]; }, propDecorators: { federatedComponent: [{
53
+ type: ViewChild,
54
+ args: ['federatedComponent', { read: ViewContainerRef }]
55
+ }], foo: [{
56
+ type: ViewChild,
57
+ args: ['foo', { read: TemplateRef }]
58
+ }], moduleHostRef: [{
59
+ type: ViewChild,
60
+ args: ['moduleHost', { static: false }]
61
+ }], remoteEntry: [{
62
+ type: Input
63
+ }], remoteName: [{
64
+ type: Input
65
+ }], exposedModule: [{
66
+ type: Input
67
+ }], data: [{
68
+ type: Input
69
+ }], eventData: [{
70
+ type: Input
71
+ }], integrationEvent: [{
72
+ type: Output
73
+ }] } });
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVkZXJhdGVkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3J1bnRpbWUvZXhlY3V0aW9uL2NvbXBvbmVudHMvZmVkZXJhdGVkL2ZlZGVyYXRlZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9ydW50aW1lL2V4ZWN1dGlvbi9jb21wb25lbnRzL2ZlZGVyYXRlZC9mZWRlcmF0ZWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLGNBQWMsRUFDZCx1QkFBdUIsRUFDdkIsUUFBUSxFQUNSLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFFBQVEsRUFDUixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFFVCxXQUFXLEVBQ1gsU0FBUyxFQUNULGdCQUFnQixHQUNqQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFFOUQsSUFBSyxnQkFFSjtBQUZELFdBQUssZ0JBQWdCO0lBQ25CLGlDQUFhLENBQUE7QUFDZixDQUFDLEVBRkksZ0JBQWdCLEtBQWhCLGdCQUFnQixRQUVwQjtBQXlCRCxNQUFNLE9BQU8sa0JBQWtCO0lBZ0I3QixZQUNVLFFBQWtCLEVBQ2xCLFFBQWtCLEVBQ2xCLE1BQXNCLEVBQ3RCLFFBQW1CO1FBSG5CLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixXQUFNLEdBQU4sTUFBTSxDQUFnQjtRQUN0QixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBVlgscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQTJCLENBQUM7UUFFMUUsZ0JBQVcsR0FBRyxLQUFLLENBQUM7SUFTeEIsQ0FBQztJQUVHLGVBQWU7UUFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUNoRSxPQUFPO1NBQ1I7UUFFRCxnQkFBZ0IsQ0FBQztZQUNmLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3QixVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7WUFDM0IsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhO1NBQ2xDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDbEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQXVCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRTtnQkFDN0YsTUFBTSxhQUFhLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQzFELE1BQU0sb0JBQW9CLEdBQUcsYUFBYSxDQUFDLHdCQUF3QixDQUFDLHVCQUF1QixDQUN6RixTQUFTLENBQUMsSUFBSSxDQUFDLGFBQXVCLENBQUMsQ0FBQyxhQUFhLENBQ3RELENBQUM7Z0JBQ0YsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDM0MsTUFBTSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsR0FBRyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBRXBGLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBdUMsQ0FBQztnQkFDeEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztnQkFDL0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztnQkFDekMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7Z0JBRXZELElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsYUFBYSxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUNuRSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNuQyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLFdBQVcsQ0FBQyxPQUFzQjtRQUN2QyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNsQixPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNyQyxDQUFDOzsrR0ExRFUsa0JBQWtCO21HQUFsQixrQkFBa0IsNlZBQ1ksZ0JBQWdCLHFGQUMvQixXQUFXLGdKQ2xEdkMsMkJBQ0E7MkZEK0NhLGtCQUFrQjtrQkFQOUIsU0FBUzsrQkFFRSx1QkFBdUIsbUJBR2hCLHVCQUF1QixDQUFDLE1BQU07MktBR3FCLGtCQUFrQjtzQkFBckYsU0FBUzt1QkFBQyxvQkFBb0IsRUFBRSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRTtnQkFDWCxHQUFHO3NCQUFsRCxTQUFTO3VCQUFDLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7Z0JBQ1ksYUFBYTtzQkFBL0QsU0FBUzt1QkFBQyxZQUFZLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUUxQixXQUFXO3NCQUExQixLQUFLO2dCQUNVLFVBQVU7c0JBQXpCLEtBQUs7Z0JBQ1UsYUFBYTtzQkFBNUIsS0FBSztnQkFDVSxJQUFJO3NCQUFuQixLQUFLO2dCQUNVLFNBQVM7c0JBQXhCLEtBQUs7Z0JBQ1ksZ0JBQWdCO3NCQUFqQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQXBwbGljYXRpb25SZWYsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21waWxlcixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEluamVjdG9yLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPdXRwdXQsXG4gIFJlbmRlcmVyMixcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMaW5lSXRlbSB9IGZyb20gJ0B2ZWxvY2VhcHBzL2NvcmUnO1xuaW1wb3J0IHsgbG9hZFJlbW90ZU1vZHVsZSB9IGZyb20gJy4uLy4uL3V0aWxzL2ZlZGVyYXRlZC51dGlsJztcblxuZW51bSBJbnRlZ3JhdGlvbkV2ZW50IHtcbiAgSW5pdCA9ICdJbml0Jyxcbn1cblxuaW50ZXJmYWNlIElucHV0RGF0YSB7XG4gIHJvb3RMaW5lSXRlbTogTGluZUl0ZW07XG59XG5cbmludGVyZmFjZSBJbnRlZ3JhdGlvbkV2ZW50UGF5bG9hZCB7XG4gIHR5cGU6IEludGVncmF0aW9uRXZlbnQ7XG4gIHBheWxvYWQ/OiB1bmtub3duO1xufVxuXG5pbnRlcmZhY2UgSW5lZ3JhdGlvbkNvbXBvbmVudEluc3RhbmNlIGV4dGVuZHMgT25DaGFuZ2VzIHtcbiAgaW50ZWdyYXRpb25FdmVudDogRXZlbnRFbWl0dGVyPEludGVncmF0aW9uRXZlbnRQYXlsb2FkPjtcbiAgaW50ZWdyYXRpb25BcHBSZWY6IEFwcGxpY2F0aW9uUmVmO1xuICBkYXRhPzogSW5wdXREYXRhO1xuICBldmVudERhdGE/OiBJbnRlZ3JhdGlvbkV2ZW50UGF5bG9hZDtcbn1cblxuQENvbXBvbmVudCh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAndmVsb2NlLWhvc3QtZmVkZXJhdGVkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZlZGVyYXRlZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ZlZGVyYXRlZC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRmVkZXJhdGVkQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzIHtcbiAgQFZpZXdDaGlsZCgnZmVkZXJhdGVkQ29tcG9uZW50JywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pIHB1YmxpYyBmZWRlcmF0ZWRDb21wb25lbnQ/OiBWaWV3Q29udGFpbmVyUmVmO1xuICBAVmlld0NoaWxkKCdmb28nLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pIHB1YmxpYyBmb28/OiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcbiAgQFZpZXdDaGlsZCgnbW9kdWxlSG9zdCcsIHsgc3RhdGljOiBmYWxzZSB9KSBwdWJsaWMgbW9kdWxlSG9zdFJlZj86IEVsZW1lbnRSZWY7XG5cbiAgQElucHV0KCkgcHVibGljIHJlbW90ZUVudHJ5Pzogc3RyaW5nO1xuICBASW5wdXQoKSBwdWJsaWMgcmVtb3RlTmFtZT86IHN0cmluZztcbiAgQElucHV0KCkgcHVibGljIGV4cG9zZWRNb2R1bGU/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHB1YmxpYyBkYXRhPzogSW5wdXREYXRhO1xuICBASW5wdXQoKSBwdWJsaWMgZXZlbnREYXRhPzogSW50ZWdyYXRpb25FdmVudFBheWxvYWQ7XG4gIEBPdXRwdXQoKSBwcml2YXRlIGludGVncmF0aW9uRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPEludGVncmF0aW9uRXZlbnRQYXlsb2FkPigpO1xuXG4gIHB1YmxpYyBtb2R1bGVSZWFkeSA9IGZhbHNlO1xuXG4gIHByaXZhdGUgaW5zdGFuY2U/OiBJbmVncmF0aW9uQ29tcG9uZW50SW5zdGFuY2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJpdmF0ZSBjb21waWxlcjogQ29tcGlsZXIsXG4gICAgcHJpdmF0ZSBhcHBSZWY6IEFwcGxpY2F0aW9uUmVmLFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgKSB7fVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnJlbW90ZUVudHJ5IHx8ICF0aGlzLnJlbW90ZU5hbWUgfHwgIXRoaXMuZXhwb3NlZE1vZHVsZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxvYWRSZW1vdGVNb2R1bGUoe1xuICAgICAgcmVtb3RlRW50cnk6IHRoaXMucmVtb3RlRW50cnksXG4gICAgICByZW1vdGVOYW1lOiB0aGlzLnJlbW90ZU5hbWUsXG4gICAgICBleHBvc2VkTW9kdWxlOiB0aGlzLmV4cG9zZWRNb2R1bGUsXG4gICAgfSkudGhlbihmZWRlcmF0ZWQgPT4ge1xuICAgICAgdGhpcy5jb21waWxlci5jb21waWxlTW9kdWxlQXN5bmMoZmVkZXJhdGVkW3RoaXMuZXhwb3NlZE1vZHVsZSBhcyBzdHJpbmddKS50aGVuKG1vZHVsZUZhY3RvcnkgPT4ge1xuICAgICAgICBjb25zdCByb290TW9kdWxlUmVmID0gbW9kdWxlRmFjdG9yeS5jcmVhdGUodGhpcy5pbmplY3Rvcik7XG4gICAgICAgIGNvbnN0IHJvb3RDb21wb25lbnRGYWN0b3J5ID0gcm9vdE1vZHVsZVJlZi5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoXG4gICAgICAgICAgZmVkZXJhdGVkW3RoaXMuZXhwb3NlZE1vZHVsZSBhcyBzdHJpbmddLnJvb3RDb21wb25lbnQsXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IG5vZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgY29uc3QgeyBpbnN0YW5jZSwgaG9zdFZpZXcgfSA9IHJvb3RDb21wb25lbnRGYWN0b3J5LmNyZWF0ZSh0aGlzLmluamVjdG9yLCBbXSwgbm9kZSk7XG5cbiAgICAgICAgdGhpcy5pbnN0YW5jZSA9IGluc3RhbmNlIGFzIEluZWdyYXRpb25Db21wb25lbnRJbnN0YW5jZTtcbiAgICAgICAgdGhpcy5pbnN0YW5jZS5kYXRhID0gdGhpcy5kYXRhO1xuICAgICAgICB0aGlzLmluc3RhbmNlLmV2ZW50RGF0YSA9IHRoaXMuZXZlbnREYXRhO1xuICAgICAgICB0aGlzLmluc3RhbmNlLmludGVncmF0aW9uRXZlbnQgPSB0aGlzLmludGVncmF0aW9uRXZlbnQ7XG5cbiAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLm1vZHVsZUhvc3RSZWY/Lm5hdGl2ZUVsZW1lbnQsIG5vZGUpO1xuICAgICAgICB0aGlzLmFwcFJlZi5hdHRhY2hWaWV3KGhvc3RWaWV3KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaW5zdGFuY2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmluc3RhbmNlLm5nT25DaGFuZ2VzKGNoYW5nZXMpO1xuICB9XG59XG4iLCI8ZGl2ICNtb2R1bGVIb3N0PjwvZGl2PlxuIl19
@@ -0,0 +1,60 @@
1
+ import { Component } from '@angular/core';
2
+ import { FormScopeService } from '../../../services/form-scope.service';
3
+ import { SectionScopeService } from '../../../services/section-scope.service';
4
+ import { VeloAttributeDirective } from '../../directives/velo-attribute.directive';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../../../services/form-scope.service";
7
+ import * as i2 from "../../../services/section-scope.service";
8
+ import * as i3 from "@angular/common";
9
+ import * as i4 from "@angular/forms";
10
+ import * as i5 from "../velo-multiselect/velo-multiselect.component";
11
+ export class VeloAttributeComponent extends VeloAttributeDirective {
12
+ constructor(formScope, sectionScope) {
13
+ super(formScope, sectionScope);
14
+ this.controlName = this.section.id;
15
+ this.displayName = this.getDisplayName();
16
+ this.isMultiselect =
17
+ this.section.model?.attributes.find(attr => attr.name === this.section.boundData.entity.name)?.type ===
18
+ 'MULTIPLE';
19
+ }
20
+ getValueOptions(valueOptions) {
21
+ return this.isBooleanType(valueOptions) ? [0, 1] : valueOptions;
22
+ }
23
+ getValueText(valueOptions, value) {
24
+ if (this.isBooleanType(valueOptions)) {
25
+ return value === 0 ? 'False' : 'True';
26
+ }
27
+ return value;
28
+ }
29
+ handleMultiselectChange(value) {
30
+ const formControl = this.form.get(this.controlName);
31
+ if (!formControl) {
32
+ return;
33
+ }
34
+ const currentValue = formControl.value ?? [];
35
+ const newValue = currentValue.includes(value) ? currentValue.filter(v => v !== value) : [...currentValue, value];
36
+ formControl.setValue(newValue);
37
+ super.handleChange();
38
+ }
39
+ handleMultipleDropdownChange(event) {
40
+ const formControl = this.form.get(this.controlName);
41
+ if (!formControl) {
42
+ return;
43
+ }
44
+ formControl.setValue(event);
45
+ super.handleChange();
46
+ }
47
+ isBooleanType(value) {
48
+ return Array.isArray(value) && value.length === 1 && value[0].min === 0 && value[0].max === 1;
49
+ }
50
+ getDisplayName() {
51
+ return ((this.section.model?.properties && this.section.model.properties['displayName']) || this.section.model?.type || '');
52
+ }
53
+ }
54
+ VeloAttributeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: VeloAttributeComponent, deps: [{ token: i1.FormScopeService }, { token: i2.SectionScopeService }], target: i0.ɵɵFactoryTarget.Component });
55
+ VeloAttributeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: VeloAttributeComponent, selector: "velo-attribute", usesInheritance: true, ngImport: i0, template: "<div class=\"form-group div-inline\" [formGroup]=\"form\">\n <div class=\"input-form-input div-inline\" [class.input-form-input--required]=\"section.required\">\n <label>\n <ng-container *ngIf=\"section.required\"> * </ng-container>\n\n {{ section.label }}\n </label>\n <div [ngSwitch]=\"section.controlType\" class=\"form-control-wrapper\">\n <div *ngSwitchCase=\"'DROPDOWN'\">\n <select\n [id]=\"controlName\"\n [formControlName]=\"controlName\"\n class=\"form-control\"\n (change)=\"handleChange()\"\n [attr.disabled]=\"section.readOnly ? true : null\"\n >\n <option\n *ngFor=\"let valueOption of getValueOptions(section.sectionValue?.valueOptions) || []\"\n [ngValue]=\"valueOption\"\n >\n {{ getValueText(section.sectionValue?.valueOptions, valueOption) }}\n </option>\n </select>\n </div>\n\n <div *ngSwitchCase=\"'MULTISELECT'\">\n <velo-multiselect\n [id]=\"controlName\"\n [formControlName]=\"controlName\"\n [options]=\"getValueOptions(section.sectionValue?.valueOptions)\"\n [attr.disabled]=\"section.readOnly ? true : null\"\n (selectionChange)=\"handleMultipleDropdownChange($event)\"\n ></velo-multiselect>\n </div>\n\n <div *ngSwitchCase=\"'RADIO'\">\n <div\n *ngFor=\"let valueOption of getValueOptions(section.sectionValue?.valueOptions)\"\n class=\"radio-button\"\n [attr.disabled]=\"section.readOnly ? true : null\"\n >\n <label>\n <input\n type=\"radio\"\n [id]=\"controlName\"\n [formControlName]=\"controlName\"\n [value]=\"valueOption\"\n (change)=\"handleChange()\"\n [attr.disabled]=\"section.readOnly ? true : null\"\n />\n <i class=\"input-helper\"></i>\n {{ getValueText(section.sectionValue?.valueOptions, valueOption) }}\n </label>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'CHECKBOX'\">\n <ng-container *ngIf=\"!isMultiselect; else multiselect\">\n <div class=\"checkbox-select\" [attr.disabled]=\"section.readOnly ? true : null\">\n <label>\n <input\n type=\"checkbox\"\n [id]=\"controlName\"\n [formControlName]=\"controlName\"\n [checked]=\"section.sectionValue?.value === 1\"\n (change)=\"handleChange()\"\n [attr.disabled]=\"section.readOnly ? true : null\"\n />\n\n <i class=\"input-helper\"></i>\n &nbsp;\n </label>\n </div>\n </ng-container>\n\n <ng-template #multiselect>\n <div\n *ngFor=\"let valueOption of getValueOptions(section.sectionValue?.valueOptions)\"\n class=\"checkbox-select\"\n [attr.disabled]=\"section.readOnly ? true : null\"\n >\n <label>\n <input\n type=\"checkbox\"\n [id]=\"controlName\"\n [checked]=\"section.sectionValue?.value.includes(valueOption)\"\n (change)=\"handleMultiselectChange(valueOption)\"\n [value]=\"valueOption\"\n [attr.disabled]=\"section.readOnly ? true : null\"\n />\n\n <i class=\"input-helper\"></i>\n {{ valueOption }}\n </label>\n </div>\n </ng-template>\n </div>\n\n <div *ngSwitchCase=\"'DATE'\">\n <input\n type=\"text\"\n class=\"form-control\"\n [id]=\"controlName\"\n [formControlName]=\"controlName\"\n [attr.disabled]=\"section.readOnly ? true : null\"\n (bsValueChange)=\"handleChangDate($event)\"\n bsDatepicker\n />\n </div>\n\n <div *ngSwitchDefault>\n <input\n type=\"text\"\n class=\"form-control\"\n [id]=\"controlName\"\n [formControlName]=\"controlName\"\n (blur)=\"form.controls[controlName].dirty && handleChange()\"\n [attr.disabled]=\"section.readOnly ? true : null\"\n />\n </div>\n\n <!-- Add validation messages -->\n <!-- <div validation-messages [form]=\"form\" [controlId]=\"controlName\" [showForPristine]=\"true\"></div> -->\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i3.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i4.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i4.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i4.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5.MultiselectComponent, selector: "velo-multiselect", inputs: ["options"], outputs: ["selectionChange"] }] });
56
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: VeloAttributeComponent, decorators: [{
57
+ type: Component,
58
+ args: [{ selector: 'velo-attribute', template: "<div class=\"form-group div-inline\" [formGroup]=\"form\">\n <div class=\"input-form-input div-inline\" [class.input-form-input--required]=\"section.required\">\n <label>\n <ng-container *ngIf=\"section.required\"> * </ng-container>\n\n {{ section.label }}\n </label>\n <div [ngSwitch]=\"section.controlType\" class=\"form-control-wrapper\">\n <div *ngSwitchCase=\"'DROPDOWN'\">\n <select\n [id]=\"controlName\"\n [formControlName]=\"controlName\"\n class=\"form-control\"\n (change)=\"handleChange()\"\n [attr.disabled]=\"section.readOnly ? true : null\"\n >\n <option\n *ngFor=\"let valueOption of getValueOptions(section.sectionValue?.valueOptions) || []\"\n [ngValue]=\"valueOption\"\n >\n {{ getValueText(section.sectionValue?.valueOptions, valueOption) }}\n </option>\n </select>\n </div>\n\n <div *ngSwitchCase=\"'MULTISELECT'\">\n <velo-multiselect\n [id]=\"controlName\"\n [formControlName]=\"controlName\"\n [options]=\"getValueOptions(section.sectionValue?.valueOptions)\"\n [attr.disabled]=\"section.readOnly ? true : null\"\n (selectionChange)=\"handleMultipleDropdownChange($event)\"\n ></velo-multiselect>\n </div>\n\n <div *ngSwitchCase=\"'RADIO'\">\n <div\n *ngFor=\"let valueOption of getValueOptions(section.sectionValue?.valueOptions)\"\n class=\"radio-button\"\n [attr.disabled]=\"section.readOnly ? true : null\"\n >\n <label>\n <input\n type=\"radio\"\n [id]=\"controlName\"\n [formControlName]=\"controlName\"\n [value]=\"valueOption\"\n (change)=\"handleChange()\"\n [attr.disabled]=\"section.readOnly ? true : null\"\n />\n <i class=\"input-helper\"></i>\n {{ getValueText(section.sectionValue?.valueOptions, valueOption) }}\n </label>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'CHECKBOX'\">\n <ng-container *ngIf=\"!isMultiselect; else multiselect\">\n <div class=\"checkbox-select\" [attr.disabled]=\"section.readOnly ? true : null\">\n <label>\n <input\n type=\"checkbox\"\n [id]=\"controlName\"\n [formControlName]=\"controlName\"\n [checked]=\"section.sectionValue?.value === 1\"\n (change)=\"handleChange()\"\n [attr.disabled]=\"section.readOnly ? true : null\"\n />\n\n <i class=\"input-helper\"></i>\n &nbsp;\n </label>\n </div>\n </ng-container>\n\n <ng-template #multiselect>\n <div\n *ngFor=\"let valueOption of getValueOptions(section.sectionValue?.valueOptions)\"\n class=\"checkbox-select\"\n [attr.disabled]=\"section.readOnly ? true : null\"\n >\n <label>\n <input\n type=\"checkbox\"\n [id]=\"controlName\"\n [checked]=\"section.sectionValue?.value.includes(valueOption)\"\n (change)=\"handleMultiselectChange(valueOption)\"\n [value]=\"valueOption\"\n [attr.disabled]=\"section.readOnly ? true : null\"\n />\n\n <i class=\"input-helper\"></i>\n {{ valueOption }}\n </label>\n </div>\n </ng-template>\n </div>\n\n <div *ngSwitchCase=\"'DATE'\">\n <input\n type=\"text\"\n class=\"form-control\"\n [id]=\"controlName\"\n [formControlName]=\"controlName\"\n [attr.disabled]=\"section.readOnly ? true : null\"\n (bsValueChange)=\"handleChangDate($event)\"\n bsDatepicker\n />\n </div>\n\n <div *ngSwitchDefault>\n <input\n type=\"text\"\n class=\"form-control\"\n [id]=\"controlName\"\n [formControlName]=\"controlName\"\n (blur)=\"form.controls[controlName].dirty && handleChange()\"\n [attr.disabled]=\"section.readOnly ? true : null\"\n />\n </div>\n\n <!-- Add validation messages -->\n <!-- <div validation-messages [form]=\"form\" [controlId]=\"controlName\" [showForPristine]=\"true\"></div> -->\n </div>\n </div>\n</div>\n" }]
59
+ }], ctorParameters: function () { return [{ type: i1.FormScopeService }, { type: i2.SectionScopeService }]; } });
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVsby1hdHRyaWJ1dGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvcnVudGltZS9leGVjdXRpb24vY29tcG9uZW50cy92ZWxvLWF0dHJpYnV0ZS92ZWxvLWF0dHJpYnV0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9ydW50aW1lL2V4ZWN1dGlvbi9jb21wb25lbnRzL3ZlbG8tYXR0cmlidXRlL3ZlbG8tYXR0cmlidXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDeEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDOUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7Ozs7Ozs7QUFPbkYsTUFBTSxPQUFPLHNCQUF1QixTQUFRLHNCQUFzQjtJQUtoRSxZQUFZLFNBQTJCLEVBQUUsWUFBaUM7UUFDeEUsS0FBSyxDQUFDLFNBQVMsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUUvQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ25DLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxhQUFhO1lBQ2hCLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJO2dCQUNuRyxVQUFVLENBQUM7SUFDZixDQUFDO0lBRU0sZUFBZSxDQUFDLFlBQXFCO1FBQzFDLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFFLFlBQXlCLENBQUM7SUFDaEYsQ0FBQztJQUVNLFlBQVksQ0FBQyxZQUFxQixFQUFFLEtBQXNCO1FBQy9ELElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsRUFBRTtZQUNwQyxPQUFPLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO1NBQ3ZDO1FBQ0QsT0FBTyxLQUFlLENBQUM7SUFDekIsQ0FBQztJQUVNLHVCQUF1QixDQUFDLEtBQXNCO1FBQ25ELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUVwRCxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ2hCLE9BQU87U0FDUjtRQUVELE1BQU0sWUFBWSxHQUF3QixXQUFXLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUNsRSxNQUFNLFFBQVEsR0FBRyxZQUFZLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsWUFBWSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ2pILFdBQVcsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFL0IsS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFTSw0QkFBNEIsQ0FBQyxLQUFVO1FBQzVDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUVwRCxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ2hCLE9BQU87U0FDUjtRQUVELFdBQVcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUIsS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFTyxhQUFhLENBQUMsS0FBVTtRQUM5QixPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUM7SUFDaEcsQ0FBQztJQUVPLGNBQWM7UUFDcEIsT0FBTyxDQUNMLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsVUFBVSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLElBQUksSUFBSSxFQUFFLENBQ25ILENBQUM7SUFDSixDQUFDOzttSEEzRFUsc0JBQXNCO3VHQUF0QixzQkFBc0IsNkVDVm5DLHU2SUE4SEE7MkZEcEhhLHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFFRSxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybVNjb3BlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Zvcm0tc2NvcGUuc2VydmljZSc7XG5pbXBvcnQgeyBTZWN0aW9uU2NvcGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvc2VjdGlvbi1zY29wZS5zZXJ2aWNlJztcbmltcG9ydCB7IFZlbG9BdHRyaWJ1dGVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL3ZlbG8tYXR0cmlidXRlLmRpcmVjdGl2ZSc7XG5cbkBDb21wb25lbnQoe1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICBzZWxlY3RvcjogJ3ZlbG8tYXR0cmlidXRlJyxcbiAgdGVtcGxhdGVVcmw6ICd2ZWxvLWF0dHJpYnV0ZS5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIFZlbG9BdHRyaWJ1dGVDb21wb25lbnQgZXh0ZW5kcyBWZWxvQXR0cmlidXRlRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHVibGljIGNvbnRyb2xOYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyBkaXNwbGF5TmFtZTogc3RyaW5nO1xuICBwdWJsaWMgaXNNdWx0aXNlbGVjdDogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3Rvcihmb3JtU2NvcGU6IEZvcm1TY29wZVNlcnZpY2UsIHNlY3Rpb25TY29wZTogU2VjdGlvblNjb3BlU2VydmljZSkge1xuICAgIHN1cGVyKGZvcm1TY29wZSwgc2VjdGlvblNjb3BlKTtcblxuICAgIHRoaXMuY29udHJvbE5hbWUgPSB0aGlzLnNlY3Rpb24uaWQ7XG4gICAgdGhpcy5kaXNwbGF5TmFtZSA9IHRoaXMuZ2V0RGlzcGxheU5hbWUoKTtcbiAgICB0aGlzLmlzTXVsdGlzZWxlY3QgPVxuICAgICAgdGhpcy5zZWN0aW9uLm1vZGVsPy5hdHRyaWJ1dGVzLmZpbmQoYXR0ciA9PiBhdHRyLm5hbWUgPT09IHRoaXMuc2VjdGlvbi5ib3VuZERhdGEuZW50aXR5Lm5hbWUpPy50eXBlID09PVxuICAgICAgJ01VTFRJUExFJztcbiAgfVxuXG4gIHB1YmxpYyBnZXRWYWx1ZU9wdGlvbnModmFsdWVPcHRpb25zOiB1bmtub3duKTogKHN0cmluZyB8IG51bWJlcilbXSB7XG4gICAgcmV0dXJuIHRoaXMuaXNCb29sZWFuVHlwZSh2YWx1ZU9wdGlvbnMpID8gWzAsIDFdIDogKHZhbHVlT3B0aW9ucyBhcyBzdHJpbmdbXSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0VmFsdWVUZXh0KHZhbHVlT3B0aW9uczogdW5rbm93biwgdmFsdWU6IHN0cmluZyB8IG51bWJlcik6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuaXNCb29sZWFuVHlwZSh2YWx1ZU9wdGlvbnMpKSB7XG4gICAgICByZXR1cm4gdmFsdWUgPT09IDAgPyAnRmFsc2UnIDogJ1RydWUnO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWUgYXMgc3RyaW5nO1xuICB9XG5cbiAgcHVibGljIGhhbmRsZU11bHRpc2VsZWN0Q2hhbmdlKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCBmb3JtQ29udHJvbCA9IHRoaXMuZm9ybS5nZXQodGhpcy5jb250cm9sTmFtZSk7XG5cbiAgICBpZiAoIWZvcm1Db250cm9sKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgY3VycmVudFZhbHVlOiAoc3RyaW5nIHwgbnVtYmVyKVtdID0gZm9ybUNvbnRyb2wudmFsdWUgPz8gW107XG4gICAgY29uc3QgbmV3VmFsdWUgPSBjdXJyZW50VmFsdWUuaW5jbHVkZXModmFsdWUpID8gY3VycmVudFZhbHVlLmZpbHRlcih2ID0+IHYgIT09IHZhbHVlKSA6IFsuLi5jdXJyZW50VmFsdWUsIHZhbHVlXTtcbiAgICBmb3JtQ29udHJvbC5zZXRWYWx1ZShuZXdWYWx1ZSk7XG5cbiAgICBzdXBlci5oYW5kbGVDaGFuZ2UoKTtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVNdWx0aXBsZURyb3Bkb3duQ2hhbmdlKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCBmb3JtQ29udHJvbCA9IHRoaXMuZm9ybS5nZXQodGhpcy5jb250cm9sTmFtZSk7XG5cbiAgICBpZiAoIWZvcm1Db250cm9sKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZm9ybUNvbnRyb2wuc2V0VmFsdWUoZXZlbnQpO1xuICAgIHN1cGVyLmhhbmRsZUNoYW5nZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0Jvb2xlYW5UeXBlKHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUubGVuZ3RoID09PSAxICYmIHZhbHVlWzBdLm1pbiA9PT0gMCAmJiB2YWx1ZVswXS5tYXggPT09IDE7XG4gIH1cblxuICBwcml2YXRlIGdldERpc3BsYXlOYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIChcbiAgICAgICh0aGlzLnNlY3Rpb24ubW9kZWw/LnByb3BlcnRpZXMgJiYgdGhpcy5zZWN0aW9uLm1vZGVsLnByb3BlcnRpZXNbJ2Rpc3BsYXlOYW1lJ10pIHx8IHRoaXMuc2VjdGlvbi5tb2RlbD8udHlwZSB8fCAnJ1xuICAgICk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIGRpdi1pbmxpbmVcIiBbZm9ybUdyb3VwXT1cImZvcm1cIj5cbiAgPGRpdiBjbGFzcz1cImlucHV0LWZvcm0taW5wdXQgZGl2LWlubGluZVwiIFtjbGFzcy5pbnB1dC1mb3JtLWlucHV0LS1yZXF1aXJlZF09XCJzZWN0aW9uLnJlcXVpcmVkXCI+XG4gICAgPGxhYmVsPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlY3Rpb24ucmVxdWlyZWRcIj4gKiA8L25nLWNvbnRhaW5lcj5cblxuICAgICAge3sgc2VjdGlvbi5sYWJlbCB9fVxuICAgIDwvbGFiZWw+XG4gICAgPGRpdiBbbmdTd2l0Y2hdPVwic2VjdGlvbi5jb250cm9sVHlwZVwiIGNsYXNzPVwiZm9ybS1jb250cm9sLXdyYXBwZXJcIj5cbiAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidEUk9QRE9XTidcIj5cbiAgICAgICAgPHNlbGVjdFxuICAgICAgICAgIFtpZF09XCJjb250cm9sTmFtZVwiXG4gICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjb250cm9sTmFtZVwiXG4gICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgIChjaGFuZ2UpPVwiaGFuZGxlQ2hhbmdlKClcIlxuICAgICAgICAgIFthdHRyLmRpc2FibGVkXT1cInNlY3Rpb24ucmVhZE9ubHkgPyB0cnVlIDogbnVsbFwiXG4gICAgICAgID5cbiAgICAgICAgICA8b3B0aW9uXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgdmFsdWVPcHRpb24gb2YgZ2V0VmFsdWVPcHRpb25zKHNlY3Rpb24uc2VjdGlvblZhbHVlPy52YWx1ZU9wdGlvbnMpIHx8IFtdXCJcbiAgICAgICAgICAgIFtuZ1ZhbHVlXT1cInZhbHVlT3B0aW9uXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyBnZXRWYWx1ZVRleHQoc2VjdGlvbi5zZWN0aW9uVmFsdWU/LnZhbHVlT3B0aW9ucywgdmFsdWVPcHRpb24pIH19XG4gICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgIDwvc2VsZWN0PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidNVUxUSVNFTEVDVCdcIj5cbiAgICAgICAgPHZlbG8tbXVsdGlzZWxlY3RcbiAgICAgICAgICBbaWRdPVwiY29udHJvbE5hbWVcIlxuICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29udHJvbE5hbWVcIlxuICAgICAgICAgIFtvcHRpb25zXT1cImdldFZhbHVlT3B0aW9ucyhzZWN0aW9uLnNlY3Rpb25WYWx1ZT8udmFsdWVPcHRpb25zKVwiXG4gICAgICAgICAgW2F0dHIuZGlzYWJsZWRdPVwic2VjdGlvbi5yZWFkT25seSA/IHRydWUgOiBudWxsXCJcbiAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cImhhbmRsZU11bHRpcGxlRHJvcGRvd25DaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgID48L3ZlbG8tbXVsdGlzZWxlY3Q+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ1JBRElPJ1wiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgKm5nRm9yPVwibGV0IHZhbHVlT3B0aW9uIG9mIGdldFZhbHVlT3B0aW9ucyhzZWN0aW9uLnNlY3Rpb25WYWx1ZT8udmFsdWVPcHRpb25zKVwiXG4gICAgICAgICAgY2xhc3M9XCJyYWRpby1idXR0b25cIlxuICAgICAgICAgIFthdHRyLmRpc2FibGVkXT1cInNlY3Rpb24ucmVhZE9ubHkgPyB0cnVlIDogbnVsbFwiXG4gICAgICAgID5cbiAgICAgICAgICA8bGFiZWw+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgICAgICAgW2lkXT1cImNvbnRyb2xOYW1lXCJcbiAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjb250cm9sTmFtZVwiXG4gICAgICAgICAgICAgIFt2YWx1ZV09XCJ2YWx1ZU9wdGlvblwiXG4gICAgICAgICAgICAgIChjaGFuZ2UpPVwiaGFuZGxlQ2hhbmdlKClcIlxuICAgICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJzZWN0aW9uLnJlYWRPbmx5ID8gdHJ1ZSA6IG51bGxcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwiaW5wdXQtaGVscGVyXCI+PC9pPlxuICAgICAgICAgICAge3sgZ2V0VmFsdWVUZXh0KHNlY3Rpb24uc2VjdGlvblZhbHVlPy52YWx1ZU9wdGlvbnMsIHZhbHVlT3B0aW9uKSB9fVxuICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidDSEVDS0JPWCdcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc011bHRpc2VsZWN0OyBlbHNlIG11bHRpc2VsZWN0XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrYm94LXNlbGVjdFwiIFthdHRyLmRpc2FibGVkXT1cInNlY3Rpb24ucmVhZE9ubHkgPyB0cnVlIDogbnVsbFwiPlxuICAgICAgICAgICAgPGxhYmVsPlxuICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICAgIFtpZF09XCJjb250cm9sTmFtZVwiXG4gICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjb250cm9sTmFtZVwiXG4gICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwic2VjdGlvbi5zZWN0aW9uVmFsdWU/LnZhbHVlID09PSAxXCJcbiAgICAgICAgICAgICAgICAoY2hhbmdlKT1cImhhbmRsZUNoYW5nZSgpXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJzZWN0aW9uLnJlYWRPbmx5ID8gdHJ1ZSA6IG51bGxcIlxuICAgICAgICAgICAgICAvPlxuXG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwiaW5wdXQtaGVscGVyXCI+PC9pPlxuICAgICAgICAgICAgICAmbmJzcDtcbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjbXVsdGlzZWxlY3Q+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IHZhbHVlT3B0aW9uIG9mIGdldFZhbHVlT3B0aW9ucyhzZWN0aW9uLnNlY3Rpb25WYWx1ZT8udmFsdWVPcHRpb25zKVwiXG4gICAgICAgICAgICBjbGFzcz1cImNoZWNrYm94LXNlbGVjdFwiXG4gICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJzZWN0aW9uLnJlYWRPbmx5ID8gdHJ1ZSA6IG51bGxcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxsYWJlbD5cbiAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgICBbaWRdPVwiY29udHJvbE5hbWVcIlxuICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cInNlY3Rpb24uc2VjdGlvblZhbHVlPy52YWx1ZS5pbmNsdWRlcyh2YWx1ZU9wdGlvbilcIlxuICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiaGFuZGxlTXVsdGlzZWxlY3RDaGFuZ2UodmFsdWVPcHRpb24pXCJcbiAgICAgICAgICAgICAgICBbdmFsdWVdPVwidmFsdWVPcHRpb25cIlxuICAgICAgICAgICAgICAgIFthdHRyLmRpc2FibGVkXT1cInNlY3Rpb24ucmVhZE9ubHkgPyB0cnVlIDogbnVsbFwiXG4gICAgICAgICAgICAgIC8+XG5cbiAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpbnB1dC1oZWxwZXJcIj48L2k+XG4gICAgICAgICAgICAgIHt7IHZhbHVlT3B0aW9uIH19XG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidEQVRFJ1wiPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgIFtpZF09XCJjb250cm9sTmFtZVwiXG4gICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjb250cm9sTmFtZVwiXG4gICAgICAgICAgW2F0dHIuZGlzYWJsZWRdPVwic2VjdGlvbi5yZWFkT25seSA/IHRydWUgOiBudWxsXCJcbiAgICAgICAgICAoYnNWYWx1ZUNoYW5nZSk9XCJoYW5kbGVDaGFuZ0RhdGUoJGV2ZW50KVwiXG4gICAgICAgICAgYnNEYXRlcGlja2VyXG4gICAgICAgIC8+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiAqbmdTd2l0Y2hEZWZhdWx0PlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgIFtpZF09XCJjb250cm9sTmFtZVwiXG4gICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjb250cm9sTmFtZVwiXG4gICAgICAgICAgKGJsdXIpPVwiZm9ybS5jb250cm9sc1tjb250cm9sTmFtZV0uZGlydHkgJiYgaGFuZGxlQ2hhbmdlKClcIlxuICAgICAgICAgIFthdHRyLmRpc2FibGVkXT1cInNlY3Rpb24ucmVhZE9ubHkgPyB0cnVlIDogbnVsbFwiXG4gICAgICAgIC8+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSBBZGQgdmFsaWRhdGlvbiBtZXNzYWdlcyAtLT5cbiAgICAgIDwhLS0gPGRpdiB2YWxpZGF0aW9uLW1lc3NhZ2VzIFtmb3JtXT1cImZvcm1cIiBbY29udHJvbElkXT1cImNvbnRyb2xOYW1lXCIgW3Nob3dGb3JQcmlzdGluZV09XCJ0cnVlXCI+PC9kaXY+IC0tPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19