@veloceapps/sdk 6.0.0-9 → 6.0.0-91

Sign up to get free protection for your applications and to get access to all the features.
Files changed (227) hide show
  1. package/README.md +10 -2
  2. package/bundles/veloceapps-sdk-cms.umd.js +1268 -798
  3. package/bundles/veloceapps-sdk-cms.umd.js.map +1 -1
  4. package/bundles/veloceapps-sdk-core.umd.js +821 -713
  5. package/bundles/veloceapps-sdk-core.umd.js.map +1 -1
  6. package/bundles/veloceapps-sdk-runtime.umd.js +216 -150
  7. package/bundles/veloceapps-sdk-runtime.umd.js.map +1 -1
  8. package/bundles/veloceapps-sdk.umd.js +385 -302
  9. package/bundles/veloceapps-sdk.umd.js.map +1 -1
  10. package/cms/cms.actions.d.ts +2 -4
  11. package/cms/components/element-children/element-children.component.d.ts +13 -3
  12. package/cms/components/element-children/element-children.module.d.ts +4 -2
  13. package/cms/components/element-drop-handle/element-drop-handle.component.d.ts +12 -0
  14. package/cms/components/element-drop-handle/element-drop-handle.module.d.ts +9 -0
  15. package/cms/components/element-renderer/element-renderer.component.d.ts +3 -3
  16. package/cms/components/preview/index.d.ts +1 -0
  17. package/cms/components/preview/preview.component.d.ts +9 -8
  18. package/cms/components/preview/preview.module.d.ts +2 -1
  19. package/cms/components/preview/preview.types.d.ts +11 -0
  20. package/cms/index.d.ts +2 -0
  21. package/cms/launcher.module.d.ts +3 -1
  22. package/cms/modules/migrations/index.d.ts +2 -0
  23. package/cms/modules/migrations/migrations.d.ts +2 -0
  24. package/cms/modules/migrations/migrations.module.d.ts +6 -0
  25. package/cms/modules/migrations/services/migrations.service.d.ts +10 -0
  26. package/cms/modules/migrations/types/migrations.types.d.ts +2 -0
  27. package/cms/modules/runtime/index.d.ts +2 -0
  28. package/cms/modules/runtime/runtime.module.d.ts +8 -0
  29. package/cms/modules/runtime/services/compilation.service.d.ts +18 -0
  30. package/cms/modules/runtime/services/runtime-editor.service.d.ts +18 -0
  31. package/cms/modules/runtime/services/runtime.service.d.ts +27 -0
  32. package/cms/modules/runtime/tokens.d.ts +3 -0
  33. package/cms/{types → modules/runtime/types}/compilation.types.d.ts +1 -1
  34. package/cms/modules/runtime/types/runtime.actions.d.ts +9 -0
  35. package/cms/services/index.d.ts +1 -1
  36. package/cms/services/io-provider.service.d.ts +3 -3
  37. package/cms/services/resources.service.d.ts +10 -0
  38. package/cms/types/common.types.d.ts +1 -1
  39. package/cms/types/configuration.types.d.ts +1 -0
  40. package/cms/types/index.d.ts +1 -1
  41. package/cms/utils/elements-resolver.d.ts +3 -2
  42. package/cms/utils/index.d.ts +1 -0
  43. package/cms/utils/path.utils.d.ts +0 -1
  44. package/cms/utils/ui-definition.utils.d.ts +6 -0
  45. package/cms/vendor-map.d.ts +50 -31
  46. package/core/modules/configuration/services/configuration-runtime.service.d.ts +2 -4
  47. package/core/modules/configuration/services/configuration.service.d.ts +6 -4
  48. package/core/modules/configuration/types/configuration-runtime.types.d.ts +0 -2
  49. package/core/modules/flow-configuration/services/flow-configuration.service.d.ts +3 -2
  50. package/core/modules/flow-configuration/services/flow-update.service.d.ts +3 -2
  51. package/core/services/metric-calculation/metric-calculation.service.d.ts +5 -1
  52. package/core/services/quote-draft.service.d.ts +2 -2
  53. package/core/types/index.d.ts +0 -1
  54. package/core/types/ui-definition.types.d.ts +19 -4
  55. package/core/utils/index.d.ts +1 -0
  56. package/core/utils/line-item.utils.d.ts +2 -0
  57. package/core/utils/ui-definition.utils.d.ts +2 -0
  58. package/esm2015/cms/cms.actions.js +1 -6
  59. package/esm2015/cms/components/element-children/element-children.component.js +24 -8
  60. package/esm2015/cms/components/element-children/element-children.module.js +8 -6
  61. package/esm2015/cms/components/element-drop-handle/element-drop-handle.component.js +32 -0
  62. package/esm2015/cms/components/element-drop-handle/element-drop-handle.module.js +19 -0
  63. package/esm2015/cms/components/element-renderer/element-renderer.component.js +9 -9
  64. package/esm2015/cms/components/element-renderer/element-renderer.module.js +4 -4
  65. package/esm2015/cms/components/plugin.component.js +3 -3
  66. package/esm2015/cms/components/preview/index.js +2 -1
  67. package/esm2015/cms/components/preview/preview.component.js +21 -36
  68. package/esm2015/cms/components/preview/preview.module.js +7 -6
  69. package/esm2015/cms/components/preview/preview.types.js +2 -0
  70. package/esm2015/cms/directives/custom-template.directive.js +3 -3
  71. package/esm2015/cms/index.js +3 -1
  72. package/esm2015/cms/launcher.module.js +11 -10
  73. package/esm2015/cms/modules/federated/federated.component.js +3 -3
  74. package/esm2015/cms/modules/federated/federated.module.js +4 -4
  75. package/esm2015/cms/modules/migrations/index.js +3 -0
  76. package/esm2015/cms/modules/migrations/migrations.js +11 -0
  77. package/esm2015/cms/modules/migrations/migrations.module.js +15 -0
  78. package/esm2015/cms/modules/migrations/services/migrations.service.js +43 -0
  79. package/esm2015/cms/modules/migrations/types/migrations.types.js +2 -0
  80. package/esm2015/cms/modules/runtime/index.js +3 -0
  81. package/esm2015/cms/modules/runtime/runtime.module.js +32 -0
  82. package/esm2015/cms/modules/runtime/services/compilation.service.js +84 -0
  83. package/esm2015/cms/modules/runtime/services/runtime-editor.service.js +27 -0
  84. package/esm2015/cms/modules/runtime/services/runtime.service.js +74 -0
  85. package/esm2015/cms/modules/runtime/tokens.js +3 -0
  86. package/esm2015/cms/modules/runtime/types/compilation.types.js +2 -0
  87. package/esm2015/cms/modules/runtime/types/runtime.actions.js +2 -0
  88. package/esm2015/cms/plugins/configuration.plugin.js +12 -4
  89. package/esm2015/cms/plugins/io.plugin.js +3 -3
  90. package/esm2015/cms/plugins/script.plugin.js +3 -3
  91. package/esm2015/cms/services/element-context.service.js +3 -3
  92. package/esm2015/cms/services/index.js +2 -2
  93. package/esm2015/cms/services/integration.state.js +3 -3
  94. package/esm2015/cms/services/io-provider.service.js +9 -9
  95. package/esm2015/cms/services/resources.service.js +50 -0
  96. package/esm2015/cms/services/templates.service.js +3 -3
  97. package/esm2015/cms/types/common.types.js +1 -1
  98. package/esm2015/cms/types/configuration.types.js +1 -1
  99. package/esm2015/cms/types/index.js +2 -2
  100. package/esm2015/cms/utils/elements-resolver.js +18 -8
  101. package/esm2015/cms/utils/index.js +2 -1
  102. package/esm2015/cms/utils/path.utils.js +2 -13
  103. package/esm2015/cms/utils/ui-definition.utils.js +82 -0
  104. package/esm2015/cms/vendor-map.js +25 -10
  105. package/esm2015/core/core.module.js +4 -4
  106. package/esm2015/core/modules/configuration/configuration.module.js +4 -4
  107. package/esm2015/core/modules/configuration/services/configuration-runtime.service.js +5 -10
  108. package/esm2015/core/modules/configuration/services/configuration.service.js +38 -34
  109. package/esm2015/core/modules/configuration/services/runtime-context.service.js +3 -3
  110. package/esm2015/core/modules/configuration/types/configuration-runtime.types.js +1 -1
  111. package/esm2015/core/modules/flow-configuration/flow-configuration.module.js +4 -4
  112. package/esm2015/core/modules/flow-configuration/services/flow-configuration.service.js +11 -10
  113. package/esm2015/core/modules/flow-configuration/services/flow-update.service.js +9 -9
  114. package/esm2015/core/services/context.service.js +3 -3
  115. package/esm2015/core/services/metric-calculation/metric-calculation.service.js +18 -9
  116. package/esm2015/core/services/product-images.service.js +3 -3
  117. package/esm2015/core/services/quote-draft.service.js +7 -7
  118. package/esm2015/core/types/index.js +1 -2
  119. package/esm2015/core/types/ui-definition.types.js +2 -2
  120. package/esm2015/core/utils/index.js +2 -1
  121. package/esm2015/core/utils/line-item.utils.js +27 -11
  122. package/esm2015/core/utils/ui-definition.utils.js +9 -0
  123. package/esm2015/runtime/components/component-preview/component-preview.component.js +4 -4
  124. package/esm2015/runtime/components/section-renderer/section-renderer.component.js +3 -3
  125. package/esm2015/runtime/components/ui-runtime/runtime.component.js +3 -3
  126. package/esm2015/runtime/components/ui-runtime-preview/runtime-preview.component.js +3 -3
  127. package/esm2015/runtime/execution/components/children-placeholder/children-placeholder.component.js +6 -6
  128. package/esm2015/runtime/execution/components/context-provider/context-provider.component.js +3 -3
  129. package/esm2015/runtime/execution/components/execution-section-renderer/execution-section-renderer.component.js +3 -3
  130. package/esm2015/runtime/execution/components/federated/federated.component.js +3 -3
  131. package/esm2015/runtime/execution/components/velo-attribute/velo-attribute.component.js +3 -3
  132. package/esm2015/runtime/execution/components/velo-multiselect/velo-multiselect.component.js +3 -3
  133. package/esm2015/runtime/execution/components/velo-port-checkbox/velo-port-checkbox.component.js +3 -3
  134. package/esm2015/runtime/execution/components/velo-port-dropdown/velo-port-dropdown.component.js +3 -3
  135. package/esm2015/runtime/execution/components/velo-port-radio/velo-port-radio.component.js +3 -3
  136. package/esm2015/runtime/execution/components/velo-type/velo-type.component.js +3 -3
  137. package/esm2015/runtime/execution/directives/section-script.directive.js +3 -3
  138. package/esm2015/runtime/execution/directives/sf-query.directive.js +3 -3
  139. package/esm2015/runtime/execution/directives/velo-attribute.directive.js +3 -3
  140. package/esm2015/runtime/execution/directives/velo-port.directive.js +18 -18
  141. package/esm2015/runtime/execution/directives/vl-approval.directive.js +3 -3
  142. package/esm2015/runtime/execution/directives/vl-document-attachments.directive.js +3 -3
  143. package/esm2015/runtime/execution/directives/vl-document-templates.directive.js +3 -3
  144. package/esm2015/runtime/execution/directives/vl-quote.directive.js +4 -4
  145. package/esm2015/runtime/execution/directives/vl-ramp.directive.js +3 -3
  146. package/esm2015/runtime/execution/runtime-execution.module.js +4 -4
  147. package/esm2015/runtime/runtime.module.js +4 -4
  148. package/esm2015/runtime/services/cart.service.js +3 -3
  149. package/esm2015/runtime/services/collapsible-state.service.js +3 -3
  150. package/esm2015/runtime/services/configuration.service.js +11 -12
  151. package/esm2015/runtime/services/current-state.service.js +3 -3
  152. package/esm2015/runtime/services/form-scope.service.js +3 -3
  153. package/esm2015/runtime/services/product-model-cache.service.js +3 -3
  154. package/esm2015/runtime/services/runtime-context.service.js +3 -3
  155. package/esm2015/runtime/services/runtime-form.service.js +3 -3
  156. package/esm2015/runtime/services/runtime.service.js +4 -4
  157. package/esm2015/runtime/services/section-helper.service.js +3 -3
  158. package/esm2015/runtime/services/section-scope.service.js +3 -3
  159. package/esm2015/runtime/services/section-store.service.js +3 -3
  160. package/esm2015/runtime/services/section.service.js +6 -6
  161. package/esm2015/runtime/types/index.js +2 -1
  162. package/esm2015/runtime/types/quote-states.types.js +2 -0
  163. package/esm2015/src/components/dialog/dialog.component.js +16 -6
  164. package/esm2015/src/components/dialog/dialog.module.js +4 -4
  165. package/esm2015/src/components/dialog/dialog.types.js +1 -1
  166. package/esm2015/src/components/doc-gen/doc-gen.component.js +3 -3
  167. package/esm2015/src/components/doc-gen/doc-gen.module.js +4 -4
  168. package/esm2015/src/components/header/cart-overlay/cart-preview.component.js +3 -3
  169. package/esm2015/src/components/header/cart-overlay/cart-preview.module.js +4 -4
  170. package/esm2015/src/components/header/header.component.js +20 -12
  171. package/esm2015/src/components/header/header.module.js +4 -4
  172. package/esm2015/src/components/header/metrics/metrics.component.js +79 -67
  173. package/esm2015/src/components/header/metrics/metrics.definitions.js +1 -8
  174. package/esm2015/src/components/header/metrics/metrics.module.js +4 -4
  175. package/esm2015/src/flow-routing.module.js +4 -4
  176. package/esm2015/src/flow.component.js +3 -3
  177. package/esm2015/src/flow.module.js +4 -4
  178. package/esm2015/src/guards/context.guard.js +3 -3
  179. package/esm2015/src/guards/product-unload.guard.js +5 -5
  180. package/esm2015/src/guards/root.guard.js +3 -3
  181. package/esm2015/src/pages/catalog/catalog.component.js +3 -3
  182. package/esm2015/src/pages/catalog/catalog.module.js +4 -4
  183. package/esm2015/src/pages/debug/debug.component.js +3 -3
  184. package/esm2015/src/pages/debug/debug.module.js +4 -4
  185. package/esm2015/src/pages/empty-account/empty-account.component.js +3 -3
  186. package/esm2015/src/pages/empty-account/empty-account.module.js +4 -4
  187. package/esm2015/src/pages/legacy-product/legacy-product.component.js +4 -4
  188. package/esm2015/src/pages/legacy-product/legacy-product.module.js +4 -4
  189. package/esm2015/src/pages/product/product.component.js +5 -12
  190. package/esm2015/src/pages/product/product.module.js +4 -4
  191. package/esm2015/src/pages/record-not-found/record-not-found.component.js +3 -3
  192. package/esm2015/src/pages/record-not-found/record-not-found.module.js +4 -4
  193. package/esm2015/src/pages/remote/remote.component.js +5 -8
  194. package/esm2015/src/pages/remote/remote.module.js +4 -4
  195. package/esm2015/src/pages/shopping-cart/shopping-cart.component.js +3 -3
  196. package/esm2015/src/pages/shopping-cart/shopping-cart.module.js +4 -4
  197. package/esm2015/src/resolvers/flow.resolver.js +3 -3
  198. package/esm2015/src/resolvers/quote.resolver.js +8 -8
  199. package/esm2015/src/services/doc-gen.service.js +3 -3
  200. package/esm2015/src/services/flow-dialog.service.js +5 -4
  201. package/esm2015/src/services/flow-router.service.js +3 -3
  202. package/esm2015/src/services/flow.service.js +3 -3
  203. package/esm2015/src/utils/flow.utils.js +3 -3
  204. package/fesm2015/veloceapps-sdk-cms.js +1072 -718
  205. package/fesm2015/veloceapps-sdk-cms.js.map +1 -1
  206. package/fesm2015/veloceapps-sdk-core.js +568 -534
  207. package/fesm2015/veloceapps-sdk-core.js.map +1 -1
  208. package/fesm2015/veloceapps-sdk-runtime.js +145 -146
  209. package/fesm2015/veloceapps-sdk-runtime.js.map +1 -1
  210. package/fesm2015/veloceapps-sdk.js +270 -255
  211. package/fesm2015/veloceapps-sdk.js.map +1 -1
  212. package/package.json +5 -3
  213. package/runtime/services/configuration.service.d.ts +2 -1
  214. package/runtime/services/runtime.service.d.ts +2 -1
  215. package/runtime/types/index.d.ts +1 -0
  216. package/src/components/dialog/dialog.types.d.ts +1 -0
  217. package/src/components/header/header.component.d.ts +4 -2
  218. package/src/components/header/metrics/metrics.component.d.ts +15 -6
  219. package/src/components/header/metrics/metrics.definitions.d.ts +0 -3
  220. package/src/pages/product/product.component.d.ts +0 -1
  221. package/cms/services/dynamic-module.service.d.ts +0 -15
  222. package/cms/services/launcher.service.d.ts +0 -18
  223. package/esm2015/cms/services/dynamic-module.service.js +0 -33
  224. package/esm2015/cms/services/launcher.service.js +0 -58
  225. package/esm2015/cms/types/compilation.types.js +0 -2
  226. package/esm2015/core/types/quote-states.types.js +0 -2
  227. /package/{core → runtime}/types/quote-states.types.d.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"veloceapps-sdk-runtime.umd.js","sources":["../../../../libs/sdk/runtime/services/collapsible-state.service.ts","../../../../libs/sdk/runtime/types/script-registry.types.ts","../../../../libs/sdk/runtime/services/form-scope.service.ts","../../../../libs/sdk/runtime/types/bound-data.types.ts","../../../../node_modules/tslib/tslib.es6.js","../../../../libs/sdk/runtime/utils/line-item.util.ts","../../../../libs/sdk/runtime/utils/sections-binder.helper.ts","../../../../libs/sdk/runtime/services/runtime-form.service.ts","../../../../libs/sdk/runtime/services/configuration.service.ts","../../../../libs/sdk/runtime/services/runtime.service.ts","../../../../libs/sdk/runtime/services/cart.service.ts","../../../../libs/sdk/runtime/services/current-state.service.ts","../../../../libs/sdk/runtime/services/product-model-cache.service.ts","../../../../libs/sdk/runtime/services/runtime-context.service.ts","../../../../libs/sdk/runtime/services/section-store.service.ts","../../../../libs/sdk/runtime/services/section-scope.service.ts","../../../../libs/sdk/runtime/execution/components/execution-section-renderer/execution-section-renderer.component.ts","../../../../libs/sdk/runtime/execution/components/execution-section-renderer/execution-section-renderer.component.html","../../../../libs/sdk/runtime/execution/components/children-placeholder/children-placeholder.component.ts","../../../../libs/sdk/runtime/execution/components/children-placeholder/children-placeholder.component.html","../../../../libs/sdk/runtime/execution/components/context-provider/context-provider.component.ts","../../../../libs/sdk/runtime/execution/utils/federated.util.ts","../../../../libs/sdk/runtime/execution/components/federated/federated.component.ts","../../../../libs/sdk/runtime/execution/components/federated/federated.component.html","../../../../libs/sdk/runtime/execution/directives/velo-attribute.directive.ts","../../../../libs/sdk/runtime/execution/components/velo-multiselect/velo-multiselect.component.ts","../../../../libs/sdk/runtime/execution/components/velo-multiselect/velo-multiselect.component.html","../../../../libs/sdk/runtime/execution/components/velo-attribute/velo-attribute.component.ts","../../../../libs/sdk/runtime/execution/components/velo-attribute/velo-attribute.component.html","../../../../libs/sdk/runtime/execution/components/velo-port-checkbox/velo-port-checkbox.component.ts","../../../../libs/sdk/runtime/execution/components/velo-port-checkbox/velo-port-checkbox.component.html","../../../../libs/sdk/runtime/execution/components/velo-port-dropdown/velo-port-dropdown.component.ts","../../../../libs/sdk/runtime/execution/components/velo-port-dropdown/velo-port-dropdown.component.html","../../../../libs/sdk/runtime/execution/components/velo-port-radio/velo-port-radio.component.ts","../../../../libs/sdk/runtime/execution/components/velo-port-radio/velo-port-radio.component.html","../../../../libs/sdk/runtime/execution/components/velo-type/velo-type.component.ts","../../../../libs/sdk/runtime/execution/components/velo-type/velo-type.component.html","../../../../libs/sdk/runtime/execution/directives/sf-query.directive.ts","../../../../libs/sdk/runtime/services/section-helper.service.ts","../../../../libs/sdk/runtime/execution/directives/velo-port.directive.ts","../../../../libs/sdk/runtime/execution/directives/vl-approval.directive.ts","../../../../libs/sdk/runtime/execution/directives/vl-document-attachments.directive.ts","../../../../libs/sdk/runtime/execution/directives/vl-document-templates.directive.ts","../../../../libs/sdk/runtime/execution/directives/vl-quote.directive.ts","../../../../libs/sdk/runtime/execution/directives/vl-ramp.directive.ts","../../../../libs/sdk/runtime/execution/directives/section-script.directive.ts","../../../../libs/sdk/runtime/execution/runtime-execution.module.ts","../../../../libs/sdk/runtime/services/section.service.ts","../../../../libs/sdk/runtime/components/section-renderer/section-renderer.component.ts","../../../../libs/sdk/runtime/components/section-renderer/section-renderer.component.html","../../../../libs/sdk/runtime/components/component-preview/component-preview.component.ts","../../../../libs/sdk/runtime/components/component-preview/component-preview.component.html","../../../../libs/sdk/runtime/utils/section.utils.ts","../../../../libs/sdk/runtime/components/ui-runtime/runtime.component.ts","../../../../libs/sdk/runtime/components/ui-runtime/runtime.component.html","../../../../libs/sdk/runtime/components/ui-runtime-preview/runtime-preview.component.ts","../../../../libs/sdk/runtime/components/ui-runtime-preview/runtime-preview.component.html","../../../../libs/sdk/runtime/runtime.module.ts","../../../../libs/sdk/runtime/veloceapps-sdk-runtime.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\n\n@Injectable()\nexport class CollapsibleStateService {\n public collapseSectionEvent: Observable<any>;\n private _collapsedSections: { [index: string]: boolean } = {}; // By Line Item Id\n\n private collapseSectionSubject = new Subject<any>();\n\n constructor() {\n this.collapseSectionEvent = this.collapseSectionSubject.asObservable();\n }\n\n public toggleCollapse(sectionId: string, silently?: boolean): void {\n this._collapsedSections[sectionId] = !this.isCollapsedSection(sectionId);\n\n if (!silently) {\n this.collapseSectionSubject.next([sectionId, this._collapsedSections[sectionId]]);\n }\n }\n\n public collapse(sectionId: string): void {\n this._collapsedSections[sectionId] = true;\n }\n\n public expand(sectionId: string): void {\n this._collapsedSections[sectionId] = false;\n }\n\n public clearState(sectionId: string): void {\n delete this._collapsedSections[sectionId];\n }\n\n public isCollapsedSection(sectionId: string): boolean {\n return this._collapsedSections[sectionId];\n }\n}\n","import { EntityUtil } from '@veloceapps/core';\n\nexport class ScriptRegistry {\n public scope: Map<string, any>;\n private store: Map<string, string[]>;\n\n constructor() {\n this.store = new Map();\n this.scope = new Map();\n }\n\n public exists(scriptId: string): boolean {\n const sectionIds = this.store.get(scriptId);\n\n return !EntityUtil.isEmpty(sectionIds);\n }\n\n public isRegistered(scriptId: string, sectionId: string): boolean {\n const sectionIds = this.store.get(scriptId);\n\n return !EntityUtil.isEmpty(sectionIds) && sectionIds?.findIndex(entryId => entryId === sectionId) !== -1;\n }\n\n public doRegister(scriptId: string, sectionId: string): void {\n const sectionIds = this.store.get(scriptId);\n\n if (!EntityUtil.isPresent(sectionIds)) {\n this.store.set(scriptId, [sectionId]);\n } else if (sectionIds?.findIndex(entryId => entryId === sectionId) === -1) {\n sectionIds.push(sectionId);\n }\n }\n\n public unRegister(scriptId: string, sectionId: string): void {\n const sectionIds = this.store.get(scriptId);\n\n if (!sectionIds) {\n return;\n }\n\n const index = sectionIds?.findIndex(entryId => entryId === sectionId);\n\n if (index !== -1) {\n sectionIds.splice(index, 1);\n\n // Remove orphan\n if (sectionIds.length < 1) {\n this.store.delete(scriptId);\n }\n }\n }\n\n public hasGlobalForScript(globalId: string): boolean {\n return this.scope.has(globalId);\n }\n\n public getGlobalForScript(globalId: string): any {\n return this.scope.get(globalId);\n }\n\n public setGlobalForScript(globalId: string, globalVariable: any): void {\n this.scope.set(globalId, globalVariable);\n }\n\n public removeGlobalForScript(globalId: string): void {\n this.scope.delete(globalId);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { Observable, Subject } from 'rxjs';\nimport { UpdateData } from '../types';\nimport { ScriptRegistry } from '../types/script-registry.types';\n\n@Injectable()\n// TODO ALE RENAME TO SESSION SCOPE\nexport class FormScopeService {\n public formSubmitEvent: Observable<UpdateData>;\n\n public scriptRegistry: ScriptRegistry = new ScriptRegistry();\n public scriptSessionScope: { [index: string]: any } = {};\n\n private formSubmitSubject = new Subject<UpdateData>();\n\n private _form = new FormGroup({});\n\n constructor() {\n this.formSubmitEvent = this.formSubmitSubject.asObservable();\n }\n\n public get form(): FormGroup {\n return this._form;\n }\n\n public set form(value: FormGroup) {\n this._form = value;\n }\n\n public publishFormUpdate(value: UpdateData): void {\n this.formSubmitSubject.next(value);\n }\n}\n","import { ProductModelAttribute, ProductPort, ProductType, SectionPath } from '@veloceapps/core';\n\nexport enum BoundDataType {\n TYPE,\n ATTRIBUTE,\n PORT,\n}\n\nexport interface BoundData {\n name: string;\n entity: ProductType | ProductModelAttribute | ProductPort;\n entityType: string;\n host?: string;\n path: SectionPath;\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { EntityUtil, LineItem, RuntimeModel, SectionPath, UUID } from '@veloceapps/core';\n\nexport class LineItemPath {\n public path: string;\n private _relativePath = '';\n private _relativeAbstractPath = '';\n private _abstractPath = '';\n\n public set relativePath(relativePath: string) {\n this._relativePath = relativePath.toLowerCase();\n }\n\n public get relativePath(): string {\n return this._relativePath;\n }\n\n public set abstractPath(abstractPath: string) {\n this._abstractPath = abstractPath.toLowerCase();\n }\n\n public get abstractPath(): string {\n return this._abstractPath || this.path;\n }\n\n public set relativeAbstractPath(relativeAbstractPath: string) {\n this._relativeAbstractPath = relativeAbstractPath.toLowerCase();\n }\n\n constructor(path: string) {\n this.path = path.toLowerCase();\n }\n\n public isEqualTo(sectionPath: SectionPath): boolean {\n if (!sectionPath || !this.path || !sectionPath.path) {\n return false;\n }\n\n const otherPath = sectionPath.path.toLowerCase();\n const isEqual =\n this.path === otherPath || this._relativePath === otherPath || this._relativeAbstractPath === otherPath;\n\n //TODO ALE SORT OUT SEARCH\n if (!isEqual) {\n const abstractPathMatch = this._abstractPath === sectionPath.abstractPath.toLowerCase();\n const relativePathMatch = this._relativePath\n ? this._relativePath === sectionPath.relativePath.toLowerCase()\n : false;\n const relativeAbstractPathMatch =\n this._relativeAbstractPath && sectionPath.relativeAbstractPath\n ? sectionPath.relativeAbstractPath.toLowerCase() === sectionPath.relativePath.toLowerCase() &&\n this._relativeAbstractPath === sectionPath.relativePath.toLowerCase()\n : false;\n return abstractPathMatch && (relativePathMatch || relativeAbstractPathMatch);\n }\n\n return isEqual;\n }\n}\n\nexport class LineItemUtil {\n public static removeDeletedItems(original: LineItem): LineItem {\n const root = EntityUtil.clone(original);\n\n if (root) {\n let items = [root];\n\n for (let i = 0; i < items.length; i++) {\n const item = items[i];\n item.lineItems = (item.lineItems ?? []).filter(l => l.actionCode !== 'DELETE');\n items = items.concat(item.lineItems);\n }\n }\n\n return root;\n }\n\n public static replaceLineItemKeys(rootLineItem: LineItem): void {\n const replaceFn = (item: LineItem): void => {\n item.id = item.id ? 'DUMMY-' + item.id : item.id;\n item.rootId = item.rootId ? 'DUMMY-' + item.rootId : item.rootId;\n item.parentId = item.parentId ? 'DUMMY-' + item.parentId : item.parentId;\n item.offeringInstanceId = item.offeringInstanceId ? 'DUMMY-' + item.offeringInstanceId : void 0;\n item.offeringItemId = item.offeringItemId ? 'DUMMY-' + item.offeringItemId : void 0;\n item.rampInstanceId = item.rampInstanceId ? 'DUMMY-' + item.rampInstanceId : void 0;\n };\n\n const traverseFn = (lineItem: LineItem, callbackFn: any): void => {\n if (lineItem.lineItems && lineItem.lineItems.length > 0) {\n lineItem.lineItems.forEach(childLineItem => {\n callbackFn.apply(null, [childLineItem]);\n traverseFn.apply(null, [childLineItem, callbackFn]);\n });\n }\n };\n\n replaceFn.apply(null, [rootLineItem]);\n // rootLineItem.rootId = rootLineItem.id;\n\n traverseFn.apply(null, [rootLineItem, replaceFn]);\n }\n\n public static enrichPricingInfo(source: LineItem, pricingDto?: LineItem): LineItem {\n const result: LineItem = {\n ...source,\n };\n\n if (pricingDto) {\n result.productName = pricingDto.properties?.displayName || pricingDto.productName;\n result.type = pricingDto.type;\n result.rootId = pricingDto.rootId;\n result.assetId = pricingDto.assetId;\n result.openOrderLineItemId = pricingDto.openOrderLineItemId;\n result.activated = pricingDto.activated;\n result.actionCode = pricingDto.actionCode;\n result.serviceStartDate = pricingDto.serviceStartDate;\n result.effectiveDate = pricingDto.effectiveDate;\n result.startDate = pricingDto.startDate;\n result.endDate = pricingDto.endDate;\n result.offeringId = pricingDto.offeringId;\n result.offeringItemId = pricingDto.offeringItemId;\n result.offeringInstanceId = pricingDto.offeringInstanceId;\n result.rampInstanceId = pricingDto.rampInstanceId;\n result.planId = pricingDto.planId;\n\n if (!result.chargeItems) {\n result.chargeItems = pricingDto.chargeItems;\n }\n result.chargeGroupItems = [];\n }\n\n if (source.lineItems && source.lineItems.length > 0) {\n result.lineItems = [];\n\n source.lineItems.forEach((childSource: LineItem) => {\n const childDto = pricingDto && pricingDto.lineItems && pricingDto.lineItems.find(c => childSource.id === c.id);\n\n const childItem = LineItemUtil.enrichPricingInfo(childSource, childDto);\n\n result.lineItems.push(childItem);\n });\n }\n\n return result;\n }\n\n public static getLineItemPath(lineItem: LineItem, rootLineItem: LineItem): LineItemPath {\n let path: LineItemPath;\n\n if (!lineItem.parentId) {\n path = new LineItemPath('/' + lineItem.type);\n\n path.abstractPath = path.path;\n path.relativePath = path.path;\n path.relativeAbstractPath = path.path;\n } else {\n //TOODO ALE SORT OUT PATENT ITEM\n const parentItem = EntityUtil.findByFieldHierarchically<LineItem>(\n 'id',\n lineItem.parentId,\n [rootLineItem],\n 'lineItems',\n );\n\n const portType = lineItem.port && parentItem?.portDomains[lineItem.port].type;\n\n const parentPath = parentItem && LineItemUtil.getLineItemPath(parentItem, rootLineItem);\n\n if (parentPath) {\n path = new LineItemPath(parentPath.path + '/ports/' + lineItem.port + '/' + lineItem.type);\n\n path.abstractPath = parentPath.abstractPath + '/ports/' + (lineItem.port + '/' + portType);\n path.relativePath = '/' + lineItem.type;\n path.relativeAbstractPath = '/' + portType;\n } else {\n throw 'Could not construct line item path';\n }\n }\n\n return path;\n }\n\n public static findById(parentId: string, lineItems: LineItem[]): LineItem | undefined {\n return EntityUtil.findByFieldHierarchically('id', parentId, lineItems, 'lineItems');\n }\n\n public static countAttributeValues(scale: number, attributeDomain: any[]): number {\n const precision = LineItemUtil.precision(scale);\n let count = 0;\n attributeDomain.forEach(d => (count += d.max - d.min + precision));\n return count;\n }\n\n public static precision(scale: number): number {\n if (!scale) {\n return 1;\n }\n let s = '1';\n while (s.length < scale) {\n s = '0' + s;\n }\n return Number('0.' + s);\n }\n\n public static splitDomainToValues(scale: number, attributeDomain: any[]): string[] {\n const precision = this.precision(scale);\n let values: string[] = [];\n attributeDomain.forEach(\n interval => (values = values.concat(LineItemUtil.splitIntervalToValues(precision, interval))),\n );\n return values;\n }\n\n public static splitIntervalToValues(precision: number, interval: any): string[] {\n const values = [];\n for (let i = interval.min; i <= interval.max; i += precision) {\n values.push(i);\n }\n return values;\n }\n\n public static findLineItemsByPath(runtimeModel: RuntimeModel, lineItem: LineItem, path: SectionPath): LineItem[] {\n if (!runtimeModel.isEquals(lineItem.type, path.types[0])) {\n return [];\n }\n let lineItems = [lineItem];\n for (let i = 1; i < path.types.length; i++) {\n const portName = path.ports[i - 1];\n const typeName = path.types[i];\n lineItems = LineItemUtil.findLineItemChildren(runtimeModel, lineItems, portName, typeName);\n }\n return lineItems;\n }\n\n public static findLineItemChildren(\n runtimeModel: RuntimeModel,\n lineItems: LineItem[],\n portName: string,\n typeName: string,\n ): LineItem[] {\n const result = [];\n for (const lineItem of lineItems) {\n for (const childItem of lineItem.lineItems) {\n if (\n childItem.port?.toLowerCase() === portName.toLowerCase() &&\n runtimeModel.isEquals(childItem.type, typeName)\n ) {\n result.push(childItem);\n }\n }\n }\n return result;\n }\n\n public static findLineItemsByType(runtimeModel: RuntimeModel, lineItem: LineItem, typeName: string): LineItem[] {\n const result = [];\n let lineItems = [lineItem];\n for (let i = 0; i < lineItems.length; i++) {\n const lineItem = lineItems[i];\n if (runtimeModel.isEquals(lineItem.type, typeName)) {\n result.push(lineItem);\n }\n lineItems = lineItems.concat(lineItem.lineItems);\n }\n\n return result;\n }\n\n public static findLineItemForValue(model: LineItem, valueOption: string): LineItem | undefined {\n if (!EntityUtil.isPresent(model) || !EntityUtil.isPresent(model.lineItems)) {\n return;\n }\n\n return model.lineItems.find(li => li.type && li.type.toLowerCase() === valueOption.toLowerCase());\n }\n\n // TODO: add Product typings\n public static create(product: any, qty?: number): LineItem {\n return {\n id: UUID.UUID(),\n type: product.typeName,\n name: product.properties?.displayName || product.name,\n productName: product.name,\n productId: product.id,\n cfgStatus: 'User',\n actionCode: 'ADD',\n qty: qty || 1,\n } as LineItem;\n }\n\n public static upsert(value: LineItem, collection: LineItem[]): void {\n const index = collection.findIndex(item => item.id === value.id);\n if (index > -1) {\n collection[index] = value;\n } else {\n collection.push(value);\n }\n }\n\n public static compareSortOrder(a: LineItem, b: LineItem): number {\n const orderA = Number(a.properties['SortOrder']);\n const orderB = Number(b.properties['SortOrder']);\n if (!orderA && !orderB) {\n return LineItemUtil.compareProductName(a, b);\n }\n if (!orderA) {\n return 1;\n } else if (!orderB) {\n return -1;\n }\n const result = orderA - orderB;\n if (result === 0) {\n return LineItemUtil.compareProductName(a, b);\n }\n return result;\n }\n\n public static sort(lineItems: LineItem[]): void {\n if (lineItems) {\n lineItems.sort((a, b) => LineItemUtil.compareSortOrder(a, b));\n lineItems.forEach(i => LineItemUtil.sort(i.lineItems));\n }\n }\n\n private static compareProductName(a: LineItem, b: LineItem): number {\n if (a.productName) {\n return (a.productName ?? '').localeCompare(b.productName ?? '');\n } else if (b.productName) {\n return 1;\n }\n return 0;\n }\n}\n","import { EntityUtil, LineItem, RuntimeModel, Section, SectionPath, SectionPathUtil, UUID } from '@veloceapps/core';\nimport { BoundDataType } from '../types/bound-data.types';\nimport { LineItemUtil } from './line-item.util';\n\nexport class SectionsBinderHelper {\n public static setLineItemsPath(\n runtimeModel: RuntimeModel,\n rootLineItem: LineItem,\n sections: Section[],\n sourceSections: Section[],\n filterFn: any,\n pricingEnabled: boolean,\n ): Section[] {\n const filtered = sections.filter(filterFn);\n\n filtered.forEach(section => {\n const path: SectionPath = section.boundData.path;\n let foundLineItems: LineItem[];\n if (path.relative) {\n foundLineItems = LineItemUtil.findLineItemsByType(runtimeModel, rootLineItem, path.types[0]);\n } else {\n const remainder = rootLineItem.path ? SectionPathUtil.cut(runtimeModel, path, rootLineItem.path) : undefined;\n if (!remainder) {\n return [];\n }\n foundLineItems = LineItemUtil.findLineItemsByPath(runtimeModel, rootLineItem, remainder);\n }\n\n if (section.boundData.entityType === BoundDataType[BoundDataType.TYPE]) {\n SectionsBinderHelper.bindMatchingLineItems(\n runtimeModel,\n foundLineItems,\n section,\n sections,\n sourceSections,\n pricingEnabled,\n );\n } else if (section.boundData.entityType === BoundDataType[BoundDataType.ATTRIBUTE]) {\n foundLineItems = foundLineItems.filter(\n item =>\n item.attributes &&\n item.attributes.findIndex(a => a.name.toLowerCase() === section.boundData.name.toLowerCase()) !== -1,\n );\n\n foundLineItems.forEach(lineItem => {\n SectionsBinderHelper.bindLineItem(section, sections, sourceSections, lineItem, pricingEnabled);\n });\n } else if (section.boundData.entityType === BoundDataType[BoundDataType.PORT]) {\n foundLineItems = foundLineItems.filter(item => item.portDomains && item.portDomains[section.boundData.name]);\n\n SectionsBinderHelper.bindMatchingLineItems(\n runtimeModel,\n foundLineItems,\n section,\n sections,\n sourceSections,\n pricingEnabled,\n );\n }\n\n return;\n });\n\n return sections;\n }\n\n public static isAddAllowed(model: LineItem, portName: string, quantityToAdd: number = 1): boolean {\n const quantity = this.getQuantity(model, portName);\n\n return quantity + quantityToAdd <= +this.getPortMax(model, portName);\n }\n\n public static isRemoveAllowed(model: LineItem, portName: string, quantityToRemove: number = 1): boolean {\n const quantity = this.getQuantity(model, portName);\n\n return quantity - quantityToRemove >= +this.getPortMin(model, portName);\n }\n\n public static getMaxAllowed(lineItem: LineItem, portName: string): number {\n return +this.getPortMax(lineItem, portName) - this.getQuantity(lineItem, portName);\n }\n\n public static getQuantityGroupByValue(model: LineItem, portName: string): { [index: string]: number } {\n const quantities: { [index: string]: number } = {};\n\n if (model && portName) {\n model.lineItems\n .filter(li => li.port === portName)\n .forEach(li => {\n let quantity = (EntityUtil.isPresent(li.qty) && li.qty) || 1;\n\n if (EntityUtil.isPresent(quantities[li.type])) {\n quantity += quantities[li.type];\n }\n\n quantities[li.type] = quantity;\n });\n }\n\n return quantities;\n }\n\n private static bindMatchingLineItems(\n runtimeModel: RuntimeModel,\n foundLineItems: LineItem[],\n section: Section,\n sections: Section[],\n sourceSections: Section[],\n pricingEnabled: boolean,\n ): void {\n foundLineItems.forEach(lineItem => {\n const boundSection = SectionsBinderHelper.bindLineItem(\n section,\n sections,\n sourceSections,\n lineItem,\n pricingEnabled,\n );\n\n SectionsBinderHelper.setLineItemsPath(\n runtimeModel,\n lineItem,\n sections,\n sourceSections,\n (sec: any) => {\n return sec.boundData && sec.parentId === boundSection.id;\n },\n pricingEnabled,\n );\n });\n }\n\n private static bindLineItem(\n section: Section,\n sections: Section[],\n sourceSections: Section[],\n lineItem: LineItem,\n pricingEnabled: boolean,\n ): Section {\n const boundSection = section.model ? SectionsBinderHelper.doClone(section, sections, sourceSections) : section;\n\n boundSection.model = lineItem;\n boundSection.pricingEnabled = pricingEnabled;\n\n return boundSection;\n }\n\n private static doClone(source: Section, sections: Section[], sourceSections: Section[], parent?: Section): Section {\n const sourceClass = sourceSections.find(s => s.classId === source.classId) as Section;\n\n const clone = EntityUtil.clone(sourceClass);\n\n clone.id = UUID.UUID();\n clone.parentId = parent ? parent.id : source.parentId;\n\n sections.splice(sections.findIndex(s => s.id === source.id) + 1, 0, clone);\n sourceSections\n .filter(s => s.parentId === sourceClass.id)\n .forEach(s => SectionsBinderHelper.doClone(s, sections, sourceSections, clone));\n\n return clone;\n }\n\n private static getQuantity(model: LineItem, portName: string): number {\n let quantity = 0;\n\n model.lineItems\n .filter(li => li.port === portName)\n .forEach(li => {\n quantity += li.qty;\n });\n\n return quantity;\n }\n\n private static getPortMax(model: LineItem, portName: string): number {\n return model.portDomains[portName].maxCard;\n }\n\n private static getPortMin(model: LineItem, portName: string): number {\n return model.portDomains[portName].minCard;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { FormControl, FormGroup, ValidationErrors, ValidatorFn } from '@angular/forms';\nimport { EntityUtil, LineItem, PriceValue, Section, TypeValidators } from '@veloceapps/core';\nimport { Dictionary, isNull, isString, isUndefined, keys } from 'lodash';\nimport { BoundDataType } from '../types/bound-data.types';\nimport { LineItemUtil } from '../utils/line-item.util';\nimport { SectionsBinderHelper } from '../utils/sections-binder.helper';\n\n@Injectable()\nexport class RuntimeFormService {\n public sections: Section[] = [];\n public solutionLineItem?: LineItem;\n\n public initForm(sections: Section[], solutionLineItem: LineItem): FormGroup {\n this.sections = sections;\n this.solutionLineItem = solutionLineItem;\n\n const form = new FormGroup({});\n\n sections\n .filter(section => section.model && section.template && section.boundData)\n .forEach(section => {\n this.populateSectionValue(section);\n this.populateSectionPrice(section);\n this.populateFormControls(section, form);\n });\n\n return form;\n }\n\n private populateSectionValue(section: Section): void {\n let value;\n let valueOptions: string[] = [];\n let displayValues: Dictionary<string> = {};\n let properties: Dictionary<any> = {};\n\n if (FormServiceUtils.isPortSection(section)) {\n const portDomain = section.model?.portDomains[section.boundData.name];\n\n valueOptions = portDomain?.domainTypes.map(dt => dt.name) ?? [];\n properties =\n portDomain?.domainTypes.reduce<Dictionary<any>>(function (map, dt) {\n map[dt.name] = dt.properties;\n return map;\n }, {}) ?? {};\n displayValues =\n portDomain?.domainTypes.reduce<Dictionary<string>>(function (map, dt) {\n map[dt.name] = dt.displayName;\n return map;\n }, {}) ?? {};\n\n value = section.model?.lineItems.map(li => li.type);\n }\n\n if (FormServiceUtils.isAttributeSection(section)) {\n const attribute = section.model?.attributes.find(\n attr => attr.name.toLowerCase() === section.boundData.name.toLowerCase(),\n );\n if (attribute) {\n value = attribute.value;\n }\n\n const attributeDomain = section.model?.attributeDomains[section.boundData.name];\n\n if (!attribute?.type.match('GENERIC|BOOLEAN') && attributeDomain) {\n const count =\n attribute && attribute.scale != null\n ? LineItemUtil.countAttributeValues(attribute.scale, attributeDomain)\n : undefined;\n\n if (attribute && attribute.scale != null && count && count <= 100) {\n valueOptions = LineItemUtil.splitDomainToValues(attribute.scale, attributeDomain);\n } else {\n valueOptions = attributeDomain;\n }\n } else if (attributeDomain) {\n valueOptions = attributeDomain;\n }\n }\n\n if (!EntityUtil.isPresent(value)) {\n value = '';\n }\n\n section.sectionValue = {\n value,\n valueOptions,\n displayValues,\n properties,\n };\n }\n\n private populateSectionPrice(section: Section): void {\n const priceValue: PriceValue = { priceOptions: {} };\n\n if (FormServiceUtils.isPortSection(section)) {\n const portDomain = section.model?.portDomains[section.boundData.name];\n\n if (portDomain) {\n portDomain.domainTypes.forEach(dt => {\n if (dt.recommendedPrices && dt.recommendedPrices.length > 0) {\n priceValue.priceOptions[dt.name] = dt.recommendedPrices;\n } else {\n delete priceValue.priceOptions[dt.name];\n }\n });\n }\n }\n\n section.priceValue = priceValue;\n }\n\n private populateFormControls(section: Section, form: FormGroup): void {\n form.controls[section.id] = this.createFormControl(section);\n\n if (FormServiceUtils.isPortSection(section) || FormServiceUtils.isTypeSection(section)) {\n form.controls[section.id.concat('qty')] = this.createQtyControl(section);\n }\n }\n\n private createFormControl(section: Section): FormControl {\n const value = FormServiceUtils.isPortSection(section) ? void 0 : section.sectionValue?.value;\n\n return new FormControl(value, this.getFormControlValidators(section));\n }\n\n private createQtyControl(section: Section): FormControl {\n const isTypeSection = FormServiceUtils.isTypeSection(section);\n\n const validators = [];\n\n const maxAllowed = this.getMaxAllowed(section);\n\n //TODO TEMPORARY SOLUTION (WILL BE DISABLED ONCE RADIO CONTROLS IMPLEMENTED)\n if (maxAllowed > 0) {\n validators.push(this.getQuantityValidator(maxAllowed, isTypeSection ? section.model?.qty ?? 0 : 0));\n }\n\n const qtyValue = isTypeSection ? section.model?.qty : 1;\n\n return new FormControl(qtyValue, validators);\n }\n\n private getMaxAllowed(section: Section): number {\n let lineItem = section.model;\n let portName = section.boundData.name;\n\n if (FormServiceUtils.isTypeSection(section)) {\n if (section.model && EntityUtil.isPresent(section.model.parentId) && this.solutionLineItem) {\n if (section.model.parentId) {\n lineItem = LineItemUtil.findById(section.model.parentId, [this.solutionLineItem]);\n }\n portName = section.model.port;\n } else {\n return 0;\n }\n }\n\n if (!lineItem) {\n return 0;\n }\n\n return SectionsBinderHelper.getMaxAllowed(lineItem, portName);\n }\n\n //TODO ALE TO SUPPORT EMPTY VALUES FOR INTERVAL ATTRIBUTES OUT OF DOMAIN\n private getFormControlValidators(section: Section): ValidatorFn[] | null {\n if (!FormServiceUtils.isAttributeSection(section)) {\n return null;\n }\n\n const validators = [];\n const parentLineItem =\n section.model && this.solutionLineItem && FormServiceUtils.findParent(section.model.id, [this.solutionLineItem]);\n const attribute =\n parentLineItem &&\n parentLineItem.attributes.find(attr => attr.name.toLowerCase() === section.boundData.name.toLowerCase());\n\n if (!attribute || !attribute.type) {\n return null;\n }\n\n const primitiveTypesValidators: any = {\n INT: TypeValidators.integerValidator(),\n 'DOUBLE|DECIMAL': TypeValidators.decimalValidator(10),\n };\n\n keys(primitiveTypesValidators).forEach(types => {\n if (types.match(attribute.type)) {\n const validator = primitiveTypesValidators[types];\n\n validators.push(validator);\n }\n });\n\n if (!attribute.type.match('GENERIC|BOOLEAN|MULTIPLE')) {\n const sectionLabel = section.label;\n\n const intervalValidator: ValidatorFn = function (control) {\n if (isUndefined(control.value) || isNull(control.value) || isNaN(+control.value)) {\n return { interval: { message: sectionLabel + ' is not in domain' } };\n }\n\n if (!isUndefined(control.value) && isString(control.value) && control.value.length === 0) {\n return null;\n }\n\n const attributeDomain = section.model?.attributeDomains[section.boundData.name];\n\n const valid = attributeDomain?.some(valueOption => {\n const min = +valueOption.min;\n const max = +valueOption.max;\n\n return +control.value <= max && +control.value >= min;\n });\n\n if (!valid) {\n return { interval: { message: sectionLabel + ' is not in domain' } };\n }\n\n return null;\n };\n\n validators.push(intervalValidator);\n }\n\n if (section.required) {\n validators.push(TypeValidators.requiredValidator(section.label + ' is required '));\n }\n\n return validators.length !== 0 ? validators : null;\n }\n\n private getQuantityValidator(max: number, originalQty: number): ValidatorFn {\n return (control): ValidationErrors | null => {\n if (!control.value) {\n return { quantity: { message: 'Required' } };\n } else if (isNaN(+control.value) || +control.value < 1) {\n return { quantity: { message: 'Invalid value' } };\n } else if (+control.value > max + originalQty) {\n return { quantity: { message: 'Max quantity ' + (max + originalQty) } };\n } else {\n return null;\n }\n };\n }\n}\n\nexport class FormServiceUtils {\n public static isPortSection(section: Section): boolean {\n return section && section.boundData && section.boundData.entityType === BoundDataType[BoundDataType.PORT];\n }\n\n public static isTypeSection(section: Section): boolean {\n return section && section.boundData && section.boundData.entityType === BoundDataType[BoundDataType.TYPE];\n }\n\n public static isAttributeSection(section: Section): boolean {\n return section && section.boundData && section.boundData.entityType === BoundDataType[BoundDataType.ATTRIBUTE];\n }\n\n public static findParent(parentId: string, lineItems: LineItem[]): LineItem | undefined {\n return EntityUtil.findByFieldHierarchically('id', parentId, lineItems, 'lineItems');\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ConfigurationApiService } from '@veloceapps/api';\nimport { ConfirmationComponent } from '@veloceapps/components';\nimport { ConfigurationMode, ConfigurationRequest, LineItem, UUID, VlWindow } from '@veloceapps/core';\nimport { ContextService, QuoteStates, RuntimeMode } from '@veloceapps/sdk/core';\nimport { Dictionary } from 'lodash';\nimport { DialogService } from 'primeng/dynamicdialog';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { LegacyRuntimeContext } from '../types';\n\ndeclare const window: VlWindow;\n\n@Injectable()\nexport class ConfigurationService {\n constructor(\n private configurationApiService: ConfigurationApiService,\n private contextService: ContextService,\n private dialogService: DialogService,\n ) {}\n\n public configure(runtimeContext: LegacyRuntimeContext, states: QuoteStates, resolve?: boolean): Observable<LineItem> {\n const lineItem = (states && states.configurableRamp) || this.getDefaultLineItem(runtimeContext);\n const configurationMode = resolve ? ConfigurationMode.RESOLVE : ConfigurationMode.SEARCH;\n const configurationRequest = this.createRequest(lineItem, runtimeContext, configurationMode);\n configurationRequest.lineItems = states.currentState || [];\n configurationRequest.asset = states.asset;\n const runtimeModel = runtimeContext.runtimeModel;\n const pricingEnabled = runtimeContext.uiDefinition?.pricingEnabled;\n return this.configurationApiService\n .configureLineItem({\n configurationRequest,\n runtimeModel,\n pricingEnabled,\n })\n .pipe(\n map(({ lineItem, context, deletedLineItems }) => {\n if (context) {\n this.contextService.update({ properties: context.properties });\n }\n if (deletedLineItems?.length) {\n this.showInactiveProductsConfirmation();\n }\n return lineItem;\n }),\n );\n }\n\n private createRequest(\n lineItem: LineItem,\n runtimeContext: LegacyRuntimeContext,\n configurationMode: ConfigurationMode,\n ): ConfigurationRequest {\n if (runtimeContext.runtimeMode === RuntimeMode.TEST) {\n const properties: Dictionary<any> = {\n ...runtimeContext.properties,\n ModelId: runtimeContext.modelId,\n RuntimeMode: 'TEST',\n PricingEnabled: String(runtimeContext.uiDefinition?.pricingEnabled),\n StartDate: runtimeContext.properties?.StartDate ?? new Date().toISOString().substring(0, 10),\n PriceListId: runtimeContext.uiDefinition?.priceList,\n };\n\n this.contextService.update({ properties });\n } else {\n const context = this.contextService.resolve();\n\n if (context.properties && runtimeContext.properties?.StartDate) {\n this.contextService.update({\n properties: {\n ...context.properties,\n ...runtimeContext.properties,\n },\n });\n }\n }\n\n return {\n lineItem,\n mode: configurationMode,\n step: runtimeContext.invocationContext && runtimeContext.invocationContext.runtimeStep,\n attributeDomainMode: 'ALL',\n context: this.contextService.resolve(),\n };\n }\n\n private getDefaultLineItem(context: LegacyRuntimeContext): LineItem {\n const id = UUID.UUID();\n\n const lineItem: LineItem = {\n id,\n type: context.uiDefinition?.rootType ?? '',\n cfgStatus: 'Default',\n qty: 1,\n productName: context.properties?.displayName || context.productName,\n productId: context.productId ?? '',\n offeringId: context.offeringId,\n ...(context.offeringId\n ? { offeringId: context.offeringId, offeringInstanceId: context.offeringInstanceId || id }\n : {}),\n } as LineItem;\n\n return lineItem;\n }\n\n private showInactiveProductsConfirmation(): void {\n this.dialogService\n .open(ConfirmationComponent, {\n dismissableMask: false,\n closeOnEscape: false,\n closable: false,\n showHeader: true,\n header: `Inactive Products in Quote`,\n width: '440px',\n data: {\n confirmationConfig: {\n title: ' ',\n description: 'This quote contains inactive products. Do you want to remove them?',\n submitBtn: 'Remove products',\n cancelBtn: 'Back to Quote',\n },\n },\n })\n .onClose.subscribe(result => {\n if (!result) {\n const context = this.contextService.resolve();\n window['VELO_BACK_FN'].apply(null, [context.headerId]);\n }\n });\n }\n}\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { LineItem, UIDefinition } from '@veloceapps/core';\nimport { ContextService, QuoteStates, RuntimeStep } from '@veloceapps/sdk/core';\nimport { MessageService } from 'primeng/api';\nimport { Subject } from 'rxjs';\nimport { take } from 'rxjs/operators';\nimport { LegacyRuntimeContext } from '../types';\nimport { ConfigurationService } from './configuration.service';\n\n@Injectable()\nexport class RuntimeService {\n private runtimeContext: LegacyRuntimeContext | undefined;\n\n private solutionReadySubject = new Subject<LineItem>();\n public onSolutionReadyEvent = this.solutionReadySubject.asObservable();\n\n private solutionUpdateStartedSubject = new Subject<void>();\n public onSolutionUpdateStartedEvent = this.solutionUpdateStartedSubject.asObservable();\n\n private solutionUpdatedSubject = new Subject<LineItem | HttpErrorResponse>();\n public onSolutionUpdatedEvent = this.solutionUpdatedSubject.asObservable();\n\n private solutionProcessedSubject = new Subject<LineItem>();\n public onSolutionProcessed = this.solutionProcessedSubject.asObservable();\n\n private solutionStopSubject = new Subject<LineItem>();\n public onSolutionStopEvent = this.solutionStopSubject.asObservable();\n\n private solutionCancelSubject = new Subject<void>();\n public onSolutionCancelEvent = this.solutionCancelSubject.asObservable();\n\n private uiRefreshSubject = new Subject<void>();\n public onUIRefreshEvent = this.uiRefreshSubject.asObservable();\n\n constructor(\n private configurationService: ConfigurationService,\n private contextService: ContextService,\n private messageService: MessageService,\n ) {}\n\n private displayErrorMessage(error: any): void {\n this.messageService.add({\n severity: 'error',\n summary: error.error?.message || error.message || JSON.stringify(error),\n });\n }\n\n public startRuntime(context: LegacyRuntimeContext, states: QuoteStates, resolve?: boolean): void {\n this.setRuntimeContext(context);\n this.setRuntimeStep(RuntimeStep.START);\n this.configurationService\n .configure(context, states, resolve)\n .pipe(take(1))\n .subscribe(\n lineItem => {\n this.solutionReadySubject.next(lineItem);\n },\n error => {\n this.displayErrorMessage(error);\n this.solutionUpdatedSubject.next(error);\n },\n );\n }\n\n public updateRuntime(states: QuoteStates, configurationContextProperties?: { [index: string]: string }): void {\n if (!this.runtimeContext) {\n return;\n }\n\n this.solutionUpdateStartedSubject.next();\n this.setRuntimeStep(RuntimeStep.UPDATE);\n this.updateRuntimeContext(configurationContextProperties);\n this.configurationService\n .configure(this.runtimeContext, states)\n .pipe(take(1))\n .subscribe(\n lineItem => {\n const context = this.contextService.resolve();\n\n this.updateRuntimeContext(context.properties);\n this.solutionUpdatedSubject.next(lineItem);\n },\n error => {\n this.displayErrorMessage(error);\n this.solutionUpdatedSubject.next(error);\n },\n );\n }\n\n public stopRuntime(solutionLineItem: LineItem): void {\n this.solutionStopSubject.next(solutionLineItem);\n }\n\n public cancelRuntime(): void {\n this.solutionCancelSubject.next();\n }\n\n public setRuntimeContext(runtimeContext: LegacyRuntimeContext): void {\n this.runtimeContext = runtimeContext;\n }\n\n public getRuntimeContext(): LegacyRuntimeContext | undefined {\n return this.runtimeContext;\n }\n\n public solutionProcessed(lineItem: LineItem): void {\n this.solutionProcessedSubject.next(lineItem);\n }\n\n public refreshUI(uiDefinition: UIDefinition): void {\n if (!this.runtimeContext) {\n return;\n }\n\n this.runtimeContext = {\n ...this.runtimeContext,\n uiDefinition,\n };\n this.uiRefreshSubject.next();\n }\n\n private updateRuntimeContext(configurationContextProperties?: { [index: string]: string }): void {\n if (!this.runtimeContext || !configurationContextProperties) {\n return;\n }\n\n this.runtimeContext = { ...this.runtimeContext, properties: configurationContextProperties };\n }\n\n private setRuntimeStep(runtimeStep: RuntimeStep): void {\n if (!this.runtimeContext) {\n return;\n }\n\n this.runtimeContext.invocationContext = {\n ...this.runtimeContext.invocationContext,\n runtimeStep,\n };\n }\n}\n","import { Injectable } from '@angular/core';\nimport { PriceApiService } from '@veloceapps/api';\nimport { LineItem, PriceSummary } from '@veloceapps/core';\nimport { ContextService, QuoteDraftService } from '@veloceapps/sdk/core';\nimport { Observable } from 'rxjs';\nimport { take, tap } from 'rxjs/operators';\n\n@Injectable()\nexport class ShoppingCartService {\n constructor(\n private priceApiService: PriceApiService,\n private contextService: ContextService,\n private quoteService: QuoteDraftService,\n ) {}\n\n public setCartExternally(currentState: LineItem[]): Observable<PriceSummary> {\n const context = this.contextService.resolve();\n\n return this.priceApiService.calculate({ context, currentState }).pipe(\n take(1),\n tap(({ lineItems }: PriceSummary) => {\n this.quoteService.setCurrentLineItemState(lineItems);\n }),\n );\n }\n\n public getCurrentState(): LineItem[] {\n return this.quoteService.currentState;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { LineItem } from '@veloceapps/core';\n\n@Injectable({ providedIn: 'root' })\nexport class CurrentStateService {\n public currentState: LineItem[] = [];\n\n public update(state: LineItem[]): void {\n this.currentState = state;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ProductModelApiService } from '@veloceapps/api';\nimport { ProductModelsContainer } from '@veloceapps/core';\nimport { Observable } from 'rxjs';\nimport { shareReplay } from 'rxjs/operators';\n\n@Injectable()\nexport class ProductModelCacheService {\n constructor(private productModelApiService: ProductModelApiService) {}\n\n private cachedModel: Map<string, Observable<ProductModelsContainer>> = new Map();\n\n public getProductModel(currentModelId: string, version?: string): Observable<ProductModelsContainer> {\n if (!this.cachedModel.has(currentModelId) || version) {\n this.clearCache();\n\n this.cachedModel.set(\n currentModelId,\n this.productModelApiService.load(currentModelId, version).pipe(shareReplay(1)),\n );\n }\n\n return this.cachedModel.get(currentModelId) as Observable<ProductModelsContainer>;\n }\n\n public getCachedModel(): Observable<ProductModelsContainer> {\n const ids = Array.from(this.cachedModel.keys());\n\n return this.cachedModel.get(ids[0]) as Observable<ProductModelsContainer>;\n }\n\n public clearCache(): void {\n this.cachedModel.clear();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ConfigurationApiService } from '@veloceapps/api';\nimport { RuntimeModel, SectionPathUtil, UIDefinition } from '@veloceapps/core';\nimport { ContextService, RuntimeMode } from '@veloceapps/sdk/core';\nimport { MessageService } from 'primeng/api';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { LegacyRuntimeContext } from '../types';\n\n@Injectable()\nexport class RuntimeContextService {\n constructor(\n private configurationApiService: ConfigurationApiService,\n private messageService: MessageService,\n private contextService: ContextService,\n ) {}\n\n public getRuntimeContext(productId: string, offeringId?: string): Observable<LegacyRuntimeContext> {\n return this.configurationApiService.getRuntimeDataByProductId(productId, offeringId).pipe(\n map(runtimeData => {\n const uiDefinition = this.getUIDefinition(runtimeData.uiDefinitions);\n const runtimeModel = RuntimeModel.create(runtimeData.types, runtimeData.products);\n const { productName, properties } =\n Array.from(runtimeModel.components.values()).find(c => c.productId === productId) ?? {};\n\n return {\n modelId: runtimeData.modelId,\n uiDefinition: uiDefinition,\n runtimeModel: runtimeModel,\n runtimeMode: RuntimeMode.PROD,\n productId: productId,\n productType: properties?.displayName || productName,\n offeringId: offeringId,\n properties: {\n PricingEnabled: uiDefinition.pricingEnabled ? 'true' : 'false',\n },\n };\n }),\n );\n }\n\n private getUIDefinition(uiDefinitions: UIDefinition[] = []): UIDefinition {\n const { uiDefinitionId } = this.contextService.resolve();\n\n const findByFn = (uiDef: UIDefinition): boolean => (uiDefinitionId ? uiDefinitionId === uiDef.id : uiDef.primary);\n\n const uiDefinition = uiDefinitions.find(findByFn) || (uiDefinitions.length === 1 && { ...uiDefinitions[0] });\n\n if (!uiDefinition) {\n const errMsg = `Unable to find ${uiDefinitionId ? uiDefinitionId : 'Default'} UI`;\n\n this.messageService.add({\n severity: 'error',\n summary: 'ERROR',\n });\n throw new Error(errMsg);\n }\n\n SectionPathUtil.updateSectionsPath(uiDefinition.sections);\n\n return uiDefinition;\n }\n}\n","import { ComponentFactory, Injectable } from '@angular/core';\nimport { Section } from '@veloceapps/core';\n\n@Injectable()\nexport class SectionStoreService {\n private _componentFactories: ComponentFactory<any>[] = [];\n\n public set componentFactories(data: ComponentFactory<any>[]) {\n this._componentFactories = data;\n }\n\n public get componentFactories(): ComponentFactory<any>[] {\n return this._componentFactories;\n }\n\n public getComponentFactory(section: Section): ComponentFactory<any> | undefined {\n return this.componentFactories.find(f => f.selector === section.dynamicSelector);\n }\n}\n","import { Injectable, TemplateRef } from '@angular/core';\nimport { Section } from '@veloceapps/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable()\nexport class SectionScopeService {\n public get section(): Section {\n return this._section;\n }\n\n public set section(value: Section) {\n this._section = value;\n this.indent = this.getIndent(value);\n }\n public indent = 1;\n private _section!: Section;\n\n public templates = new BehaviorSubject<TemplateRef<any>[]>([]);\n\n private getIndent(section: Section): number {\n if (!section || !section.parentId) {\n return 1;\n } else {\n let current = section;\n\n let indent = 1;\n\n while (current && current.parent) {\n current = current.parent;\n\n indent++;\n }\n\n return indent;\n }\n }\n}\n","import {\n AfterViewInit,\n Component,\n ComponentRef,\n Injector,\n Input,\n NgModuleRef,\n OnDestroy,\n OnInit,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { Section } from '@veloceapps/core';\nimport { SectionScopeService } from '../../../services/section-scope.service';\nimport { SectionStoreService } from '../../../services/section-store.service';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'section-renderer',\n templateUrl: 'execution-section-renderer.component.html',\n styleUrls: ['execution-section-renderer.component.scss'],\n providers: [SectionScopeService],\n})\nexport class ExecutionSectionRendererComponent implements OnInit, AfterViewInit, OnDestroy {\n private _section!: Section;\n\n @Input()\n public set section(value: Section) {\n this._section = value;\n this.sectionScope.section = value;\n }\n\n public get section(): Section {\n return this._section;\n }\n\n @Input()\n public form!: FormGroup;\n\n constructor(\n private _injector: Injector,\n private _m: NgModuleRef<any>,\n private sectionScope: SectionScopeService,\n private sectionStore: SectionStoreService,\n ) {}\n\n @ViewChild('container', { read: ViewContainerRef, static: true })\n public container!: ViewContainerRef;\n\n private componentRef: ComponentRef<any> | null = null;\n\n public ngOnInit(): void {\n this.renderSection();\n }\n\n public ngAfterViewInit(): void {\n if (this.componentRef) {\n this.sectionScope.templates.next(this.componentRef.instance['templates']?.toArray() ?? []);\n }\n }\n\n public ngOnDestroy(): void {\n if (this.componentRef) {\n this.componentRef.destroy();\n this.componentRef = null;\n }\n }\n\n public renderSection(): void {\n if (this.componentRef) {\n this.componentRef.destroy();\n this.componentRef = null;\n }\n\n const componentFactory = this.sectionStore.getComponentFactory(this._section);\n if (!componentFactory) {\n return;\n }\n\n this.componentRef = componentFactory.create(this._injector, [], null, this._m);\n this.componentRef.location.nativeElement.setAttribute(\n 'sectionId',\n `${this._section.model?.id}${this._section.label}`,\n );\n this.componentRef.instance['form'] = this.form;\n this.componentRef.instance['section'] = this.section;\n this.container.insert(this.componentRef.hostView);\n }\n}\n","<ng-template #container></ng-template>","import { Component, Input, OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { OrderByPipe, Section } from '@veloceapps/core';\nimport { Subscription } from 'rxjs';\nimport { CollapsibleStateService } from '../../../services/collapsible-state.service';\nimport { FormScopeService } from '../../../services/form-scope.service';\nimport { SectionScopeService } from '../../../services/section-scope.service';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'children-placeholder',\n templateUrl: 'children-placeholder.component.html',\n providers: [OrderByPipe],\n})\nexport class ChildrenPlaceholderComponent implements OnInit, OnChanges, OnDestroy {\n @Input()\n public children?: Section[];\n\n public _children: Section[] = [];\n\n public section!: Section;\n\n public form!: FormGroup;\n\n public sub!: Subscription;\n\n public collapsed = false;\n\n constructor(\n private sectionScope: SectionScopeService,\n private formScope: FormScopeService,\n private collapsibleState: CollapsibleStateService,\n ) {}\n\n public ngOnInit(): void {\n this.section = this.sectionScope.section;\n this.form = this.formScope.form;\n\n this.collapsed = this.section.model ? this.collapsibleState.isCollapsedSection(this.section.model.id) : true;\n\n this.sub = this.collapsibleState.collapseSectionEvent.subscribe(e => {\n const lineItemId = e[0];\n\n if (this.section.model?.id === lineItemId) {\n this.collapsed = e[1];\n }\n });\n\n this.setChildren();\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (!this.children || changes.children?.currentValue !== changes.children?.previousValue) {\n this.setChildren();\n }\n }\n\n public setChildren(): void {\n this._children = this.children ? this.children : this.section.children;\n }\n\n public ngOnDestroy(): void {\n this.sub.unsubscribe();\n }\n}\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'template-component',\n templateUrl: 'children-placeholder.component.html',\n})\nexport class TemplateComponent extends ChildrenPlaceholderComponent {}\n","<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","import { Component, Inject, Input, OnInit } from '@angular/core';\nimport { RuntimeModel, RuntimeProduct, RuntimeType } from '@veloceapps/core';\nimport { Dictionary } from 'lodash';\nimport { RuntimeService } from '../../../services/runtime.service';\n\n@Component({\n selector: 'vl-context-provider',\n template: '',\n})\nexport class ContextProviderComponent implements OnInit {\n @Input() public types: RuntimeType[] = [];\n @Input() public products: Dictionary<RuntimeProduct[]> = {};\n\n constructor(@Inject(RuntimeService) private runtimeService: RuntimeService) {}\n\n public ngOnInit(): void {\n const context = this.runtimeService.getRuntimeContext();\n\n if (!context) {\n return;\n }\n\n this.runtimeService.setRuntimeContext({\n ...context,\n runtimeModel: RuntimeModel.create(this.types, this.products),\n });\n }\n}\n","import { Dictionary } from 'lodash';\n\ntype Scope = unknown;\ntype Factory = () => any;\n\ntype Container = {\n init(shareScope: Scope): void;\n get(module: string): Factory;\n};\n\ndeclare const __webpack_init_sharing__: (shareScope: string) => Promise<void>;\ndeclare const __webpack_share_scopes__: { default: Scope };\n\nconst moduleMap: Dictionary<boolean> = {};\n\nfunction loadRemoteEntry(remoteEntry: string): Promise<void> {\n return new Promise<void>((resolve, reject) => {\n if (moduleMap[remoteEntry]) {\n resolve();\n return;\n }\n\n const script = document.createElement('script');\n script.src = remoteEntry;\n\n script.onerror = reject;\n\n script.onload = (): void => {\n moduleMap[remoteEntry] = true;\n resolve(); // window is the global namespace\n };\n\n document.body.append(script);\n });\n}\n\nasync function lookupExposedModule<T>(remoteName: string, exposedModule: string): Promise<T> {\n // Initializes the share scope. This fills it with known provided modules from this build and all remotes\n await __webpack_init_sharing__('default');\n const container = (window as any)[remoteName] as Container; // or get the container somewhere else\n // Initialize the container, it may provide shared modules\n\n await container.init(__webpack_share_scopes__.default);\n const factory = await container.get(exposedModule);\n const Module = factory();\n return Module as T;\n}\n\nexport type LoadRemoteModuleOptions = {\n remoteEntry: string;\n remoteName: string;\n exposedModule: string;\n};\n\nexport async function loadRemoteModule(options: LoadRemoteModuleOptions): Promise<any> {\n await loadRemoteEntry(options.remoteEntry);\n\n return await lookupExposedModule<any>(options.remoteName, options.exposedModule);\n}\n","import {\n AfterViewInit,\n ApplicationRef,\n ChangeDetectionStrategy,\n Compiler,\n Component,\n ElementRef,\n EventEmitter,\n Injector,\n Input,\n OnChanges,\n Output,\n Renderer2,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { LineItem } from '@veloceapps/core';\nimport { loadRemoteModule } from '../../utils/federated.util';\n\nenum IntegrationEvent {\n Init = 'Init',\n}\n\ninterface InputData {\n rootLineItem: LineItem;\n}\n\ninterface IntegrationEventPayload {\n type: IntegrationEvent;\n payload?: unknown;\n}\n\ninterface InegrationComponentInstance extends OnChanges {\n integrationEvent: EventEmitter<IntegrationEventPayload>;\n integrationAppRef: ApplicationRef;\n data?: InputData;\n eventData?: IntegrationEventPayload;\n}\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'veloce-host-federated',\n templateUrl: './federated.component.html',\n styleUrls: ['./federated.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FederatedComponent implements AfterViewInit, OnChanges {\n @ViewChild('federatedComponent', { read: ViewContainerRef }) public federatedComponent?: ViewContainerRef;\n @ViewChild('foo', { read: TemplateRef }) public foo?: TemplateRef<unknown>;\n @ViewChild('moduleHost', { static: false }) public moduleHostRef?: ElementRef;\n\n @Input() public remoteEntry?: string;\n @Input() public remoteName?: string;\n @Input() public exposedModule?: string;\n @Input() public data?: InputData;\n @Input() public eventData?: IntegrationEventPayload;\n @Output() private integrationEvent = new EventEmitter<IntegrationEventPayload>();\n\n public moduleReady = false;\n\n private instance?: InegrationComponentInstance;\n\n constructor(\n private injector: Injector,\n private compiler: Compiler,\n private appRef: ApplicationRef,\n private renderer: Renderer2,\n ) {}\n\n public ngAfterViewInit(): void {\n if (!this.remoteEntry || !this.remoteName || !this.exposedModule) {\n return;\n }\n\n loadRemoteModule({\n remoteEntry: this.remoteEntry,\n remoteName: this.remoteName,\n exposedModule: this.exposedModule,\n }).then(federated => {\n this.compiler.compileModuleAsync(federated[this.exposedModule as string]).then(moduleFactory => {\n const rootModuleRef = moduleFactory.create(this.injector);\n const rootComponentFactory = rootModuleRef.componentFactoryResolver.resolveComponentFactory(\n federated[this.exposedModule as string].rootComponent,\n );\n const node = document.createElement('div');\n const { instance, hostView } = rootComponentFactory.create(this.injector, [], node);\n\n this.instance = instance as InegrationComponentInstance;\n this.instance.data = this.data;\n this.instance.eventData = this.eventData;\n this.instance.integrationEvent = this.integrationEvent;\n\n this.renderer.appendChild(this.moduleHostRef?.nativeElement, node);\n this.appRef.attachView(hostView);\n });\n });\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (!this.instance) {\n return;\n }\n\n this.instance.ngOnChanges(changes);\n }\n}\n","<div #moduleHost></div>\n","import { Directive, OnInit } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { EntityUtil, Section } from '@veloceapps/core';\nimport { isDate } from 'lodash';\nimport { FormScopeService } from '../../services/form-scope.service';\nimport { SectionScopeService } from '../../services/section-scope.service';\nimport { UpdateData } from '../../types';\nimport { SectionsBinderHelper } from '../../utils/sections-binder.helper';\n\n//TODO ALE WE ARE EXTENDING COMPONENT HERE IN PORTS WE ARE EXTENDING DEDICATED CLASS!! TYPES HANDLER IS NO IMPLEMENTED YET\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'velo-attribute-directive',\n exportAs: 'attributeApi',\n})\nexport class VeloAttributeDirective implements OnInit {\n public valueQuantities: { [index: string]: number } = {};\n\n public form: FormGroup;\n public section: Section;\n\n constructor(private formScope: FormScopeService, private sectionScope: SectionScopeService) {\n this.form = this.formScope.form;\n this.section = this.sectionScope.section;\n }\n\n public ngOnInit(): void {\n this.initQuantity();\n }\n\n public handleChange(valueOption?: any): void {\n const updateData: UpdateData = {\n id: this.section.id,\n action: 'update',\n valueOption,\n };\n\n this.formScope.publishFormUpdate(updateData);\n }\n\n public handleChangDate(valueOption: any): void {\n const oldValue = this.form.controls[this.section.id].value || '';\n\n const newValue = isDate(valueOption) ? valueOption.toLocaleDateString('en-us') : '';\n\n if (oldValue !== newValue) {\n this.handleChange(newValue);\n }\n }\n\n public handleRemove(): void {\n const updateData: UpdateData = {\n id: this.section.id,\n action: 'remove',\n };\n\n this.formScope.publishFormUpdate(updateData);\n }\n\n // TODO ALE THIS IS SPECIFIC STEPPER FUNCTIONS\n public nextVal(): void {\n const currentIndex = this.getCurrentValueIndex();\n const nextValIndex = currentIndex + 1;\n\n if (\n currentIndex != -1 &&\n this.section.sectionValue &&\n this.section.sectionValue.valueOptions.length >= nextValIndex\n ) {\n this.handleChange(this.section.sectionValue.valueOptions[nextValIndex]);\n }\n }\n\n public prevVal(): void {\n const currentIndex = this.getCurrentValueIndex();\n const prevValIndex = currentIndex - 1;\n\n if (\n currentIndex != -1 &&\n this.section.sectionValue &&\n this.section.sectionValue.valueOptions.length >= prevValIndex\n ) {\n this.handleChange(this.section.sectionValue.valueOptions[prevValIndex]);\n }\n }\n\n private initQuantity(): void {\n this.valueQuantities = this.section.model\n ? SectionsBinderHelper.getQuantityGroupByValue(this.section.model, this.section.boundData.name)\n : {};\n }\n\n private getCurrentValueIndex(): number {\n const index = -1;\n\n const valueOptions = this.section.sectionValue && this.section.sectionValue.valueOptions;\n const currentValue = this.form.controls[this.section.id].value;\n\n if (valueOptions && EntityUtil.isPresent(currentValue)) {\n return valueOptions.findIndex(valueOption => currentValue === valueOption);\n }\n\n return index;\n }\n}\n","import { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport {\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnDestroy,\n Output,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { merge, Observable, of, Subscription } from 'rxjs';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'velo-multiselect',\n templateUrl: 'velo-multiselect.component.html',\n styleUrls: ['./velo-multiselect.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: MultiselectComponent,\n },\n ],\n})\nexport class MultiselectComponent implements ControlValueAccessor, OnDestroy {\n @Input() public options?: any[];\n @Output() public selectionChange: EventEmitter<string[]> = new EventEmitter<string[]>();\n public selected: string[] = [];\n public displayValue = '';\n public touched = false;\n public disabled = false;\n\n @ViewChild('overlayTemplate') public overlayTemplate!: TemplateRef<any>;\n\n @HostBinding('class.opened')\n public opened = false;\n\n private overlayRef?: OverlayRef;\n private dropdownClosingActionsSub?: Subscription;\n\n public onChange: (selected: string[]) => void = () => {\n return;\n };\n public onTouched: () => void = () => {\n return;\n };\n\n constructor(private elRef: ElementRef, private viewContainerRef: ViewContainerRef, private overlay: Overlay) {}\n\n public ngOnDestroy(): void {\n this.destroyDropdown();\n }\n\n public writeValue(selected: string[]): void {\n this.selected = selected;\n\n this.getDisplayValue();\n }\n\n public registerOnChange(onChange: any): void {\n this.onChange = onChange;\n }\n\n public registerOnTouched(onTouched: any): void {\n this.onTouched = onTouched;\n }\n\n public setDisabledState(disabled: boolean): void {\n this.disabled = disabled;\n }\n\n public handleSelection(value: any): void {\n const selectedItem = this.selected.find(item => item === value);\n\n if (selectedItem) {\n this.selected = this.selected.filter(item => item !== value);\n } else {\n this.selected = [...this.selected, value];\n }\n\n this.getDisplayValue();\n this.selectionChange.emit(this.selected);\n this.onChange(this.selected);\n }\n\n public toggleOpened(): void {\n this.opened ? this.destroyDropdown() : this.openDropdown();\n }\n\n private getDisplayValue(): void {\n const joinedValue = this.selected.join(', ');\n this.displayValue = joinedValue.length > 24 ? `${this.selected.length} options selected` : joinedValue;\n }\n\n private openDropdown(): void {\n this.opened = true;\n this.overlayRef = this.overlay.create({\n hasBackdrop: true,\n backdropClass: 'cdk-overlay-transparent-backdrop',\n scrollStrategy: this.overlay.scrollStrategies.close(),\n positionStrategy: this.overlay\n .position()\n .flexibleConnectedTo(this.elRef)\n .withPositions([\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n offsetY: 8,\n },\n ]),\n });\n\n const templatePortal = new TemplatePortal(this.overlayTemplate, this.viewContainerRef);\n this.overlayRef.attach(templatePortal);\n\n this.dropdownClosingActionsSub = this.dropdownClosingActions().subscribe(() => this.destroyDropdown());\n }\n\n private dropdownClosingActions(): Observable<MouseEvent | void> {\n if (!this.overlayRef) {\n return of();\n }\n\n const backdropClick$ = this.overlayRef.backdropClick();\n const detachment$ = this.overlayRef.detachments();\n\n return merge(backdropClick$, detachment$);\n }\n\n private destroyDropdown(): void {\n if (!this.overlayRef || !this.opened) {\n return;\n }\n\n this.dropdownClosingActionsSub?.unsubscribe();\n this.opened = false;\n this.overlayRef.detach();\n }\n}\n","<div class=\"value-wrapper\" (click)=\"toggleOpened()\">\n <span class=\"value\">{{ displayValue }}</span>\n <i class=\"fa fa-chevron-down\"></i>\n</div>\n\n<ng-template #overlayTemplate>\n <div class=\"dropdown\">\n <div class=\"checkbox-select\" *ngFor=\"let option of options\">\n <label>\n <input\n type=\"checkbox\"\n [checked]=\"selected.includes(option)\"\n (change)=\"handleSelection(option)\"\n [value]=\"option\"\n />\n\n <i class=\"input-helper\"></i>\n {{ option }}\n </label>\n </div>\n </div>\n</ng-template>\n","import { Component, OnInit } from '@angular/core';\nimport { FormScopeService } from '../../../services/form-scope.service';\nimport { SectionScopeService } from '../../../services/section-scope.service';\nimport { VeloAttributeDirective } from '../../directives/velo-attribute.directive';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'velo-attribute',\n templateUrl: 'velo-attribute.component.html',\n})\nexport class VeloAttributeComponent extends VeloAttributeDirective implements OnInit {\n public controlName: string;\n public displayName: string;\n public isMultiselect: boolean;\n\n constructor(formScope: FormScopeService, sectionScope: SectionScopeService) {\n super(formScope, sectionScope);\n\n this.controlName = this.section.id;\n this.displayName = this.getDisplayName();\n this.isMultiselect =\n this.section.model?.attributes.find(attr => attr.name === this.section.boundData.entity.name)?.type ===\n 'MULTIPLE';\n }\n\n public getValueOptions(valueOptions: unknown): (string | number)[] {\n return this.isBooleanType(valueOptions) ? [0, 1] : (valueOptions as string[]);\n }\n\n public getValueText(valueOptions: unknown, value: string | number): string {\n if (this.isBooleanType(valueOptions)) {\n return value === 0 ? 'False' : 'True';\n }\n return value as string;\n }\n\n public handleMultiselectChange(value: string | number): void {\n const formControl = this.form.get(this.controlName);\n\n if (!formControl) {\n return;\n }\n\n const currentValue: (string | number)[] = formControl.value ?? [];\n const newValue = currentValue.includes(value) ? currentValue.filter(v => v !== value) : [...currentValue, value];\n formControl.setValue(newValue);\n\n super.handleChange();\n }\n\n public handleMultipleDropdownChange(event: any): void {\n const formControl = this.form.get(this.controlName);\n\n if (!formControl) {\n return;\n }\n\n formControl.setValue(event);\n super.handleChange();\n }\n\n private isBooleanType(value: any): boolean {\n return Array.isArray(value) && value.length === 1 && value[0].min === 0 && value[0].max === 1;\n }\n\n private getDisplayName(): string {\n return (\n (this.section.model?.properties && this.section.model.properties['displayName']) || this.section.model?.type || ''\n );\n }\n}\n","<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","import { Component, Input } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { LineItem, Section } from '@veloceapps/core';\nimport { FormScopeService } from '../../../services/form-scope.service';\nimport { SectionScopeService } from '../../../services/section-scope.service';\nimport { UpdateData } from '../../../types';\nimport { SectionsBinderHelper } from '../../../utils/sections-binder.helper';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'velo-port-checkbox',\n templateUrl: 'velo-port-checkbox.component.html',\n})\nexport class VeloPortCheckBoxComponent {\n public controlName: string;\n\n public form: FormGroup;\n public section: Section;\n\n @Input() public showSelectAll = false;\n\n constructor(private formScope: FormScopeService, private sectionScope: SectionScopeService) {\n this.form = this.formScope.form;\n this.section = this.sectionScope.section;\n\n this.controlName = this.section.id;\n\n this.section.sectionValue?.valueOptions.forEach(item => {\n if (this.hasValueFor(item)) {\n this.form.controls[this.controlName].setValue(item);\n }\n });\n }\n\n public handleChange(valueOption: string): void {\n const updateData: UpdateData = {\n id: this.section.id,\n action: this.hasValueFor(valueOption)\n ? 'remove'\n : this.section.model && SectionsBinderHelper.isAddAllowed(this.section.model, this.section.boundData.name)\n ? 'create'\n : 'update',\n valueOption,\n };\n\n this.formScope.publishFormUpdate(updateData);\n }\n\n public hasValueFor(valueOption: string): boolean {\n return !!this.findLineItemForValue(valueOption);\n }\n\n public selectAllChange(): void {\n const portDomain = this.section.model?.portDomains[this.section.boundData.name];\n\n const updateData: UpdateData = {\n id: this.section.id,\n action: 'upsert',\n selectedValueOptions: this.isAllSelected() ? [] : portDomain ? portDomain.domainTypes.map(t => t.name) : [],\n };\n\n this.formScope.publishFormUpdate(updateData);\n }\n\n public isAllSelected(): boolean {\n const selected: LineItem[] | undefined = this.section.model?.lineItems.filter(\n li => li.port && li.port === this.section.boundData.name,\n );\n\n const portDomain = this.section.model?.portDomains[this.section.boundData.name];\n\n return portDomain ? portDomain.domainTypes.length === selected?.length : false;\n }\n\n public getMessages(valueOption: string): string[] {\n if (this.section.model?.lineItems) {\n return this.findLineItemForValue(valueOption)?.messages ?? [];\n }\n return [];\n }\n\n private findLineItemForValue(valueOption: string): LineItem | undefined {\n return (\n this.section.model?.lineItems &&\n this.section.model.lineItems.find(li => li.type && li.type.toLowerCase() === valueOption.toLowerCase())\n );\n }\n}\n","<div [formGroup]=\"form\">\n <!--TODO ALE replace divs with ng-templates-->\n <div *ngIf=\"showSelectAll\">\n <div class=\"row no-gutter clearfix\">\n <div class=\"col-md-12\">\n <div class=\"content\">\n <div class=\"container-box container-box-bordered container-box-checkbox collapsed\">\n <div class=\"box-title\">\n <div class=\"header clearfix\">\n <div class=\"checkbox-select\">\n <label>\n <input type=\"checkbox\" (change)=\"selectAllChange()\" [checked]=\"isAllSelected()\" />\n\n <i class=\"input-helper\"></i>\n Select All\n </label>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div *ngFor=\"let valueOption of section.sectionValue?.valueOptions\">\n <div class=\"unchecked\">\n <div class=\"row no-gutter clearfix\">\n <div class=\"col-md-12\">\n <div class=\"content\">\n <div class=\"container-box container-box-bordered container-box-checkbox collapsed\">\n <div class=\"box-title\" (click)=\"handleChange(valueOption)\">\n <div class=\"header clearfix\">\n <div class=\"checkbox-select\">\n <label>\n <input\n type=\"checkbox\"\n [class.checkbox--checked]=\"valueOption === form.controls[controlName].value\"\n />\n\n <i class=\"input-helper\"></i>\n {{section.sectionValue?.displayValues?.[valueOption] || valueOption}}\n </label>\n </div>\n </div>\n\n <div class=\"box-actions\" *ngIf=\"hasValueFor(valueOption)\">\n <ng-template #msgTemplate>\n <div class=\"runtime-info-message\">\n <ul class=\"message-text\">\n <li *ngFor=\"let message of getMessages(valueOption)\">{{ message }}</li>\n </ul>\n </div>\n </ng-template>\n <div\n class=\"box-action-button\"\n *ngIf=\"getMessages(valueOption).length > 0\"\n [popover]=\"msgTemplate\"\n placement=\"left\"\n container=\"body\"\n [isOpen]=\"true\"\n >\n <a href=\"javascript:void(0);\">\n <i class=\"fa fa-info check-icon\"></i>\n </a>\n </div>\n </div>\n </div>\n <div class=\"box-content-wrapper\">\n <div class=\"box-content\">&nbsp;</div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n<ng-content></ng-content>\n","import { Component } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { EntityUtil, RecommendedPrice, Section } from '@veloceapps/core';\nimport { Dictionary } from 'lodash';\nimport { FormScopeService } from '../../../services/form-scope.service';\nimport { SectionScopeService } from '../../../services/section-scope.service';\nimport { UpdateData } from '../../../types';\nimport { SectionsBinderHelper } from '../../../utils/sections-binder.helper';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'velo-port-dropdown',\n templateUrl: 'velo-port-dropdown.component.html',\n})\nexport class VeloPortDropdownComponent {\n public controlName: string;\n public qtyControlName: string;\n\n public form: FormGroup;\n public section: Section;\n public prices: Dictionary<any> = {};\n\n constructor(private formScope: FormScopeService, private sectionScope: SectionScopeService) {\n this.form = this.formScope.form;\n this.section = this.sectionScope.section;\n\n this.controlName = this.section.id;\n this.qtyControlName = this.section.id + 'qty';\n\n if (this.section.pricingEnabled) {\n this.section.sectionValue?.valueOptions.forEach(valueOption => {\n this.prices[valueOption] = this.findPriceItemsForValue(valueOption);\n });\n }\n }\n\n public isAddAllowed(): boolean {\n if (!EntityUtil.isPresent(this.form.controls[this.controlName].value)) {\n return false;\n }\n\n return this.section.model\n ? SectionsBinderHelper.isAddAllowed(this.section.model, this.section.boundData.name)\n : false;\n }\n\n public handleCreate(): void {\n if (this.form.invalid || !this.isAddAllowed()) {\n return;\n }\n\n const updateData: UpdateData = {\n id: this.section.id,\n action: 'create',\n };\n\n this.formScope.publishFormUpdate(updateData);\n }\n\n private findPriceItemsForValue(valueOption: string): RecommendedPrice[] {\n let prices: RecommendedPrice[] = [];\n if (valueOption) {\n const portDomain = this.section.model?.portDomains[this.section.boundData.name];\n const domainType = portDomain?.domainTypes.find(d => d.name.toLowerCase() === valueOption.toLowerCase());\n if (domainType && domainType.recommendedPrices) {\n prices = domainType.recommendedPrices;\n }\n }\n\n const oneTime: RecommendedPrice = {\n chargeMethod: 'ONE_TIME',\n netPrice: 0,\n listPrice: 0,\n chargeType: '',\n };\n\n const recurring: RecommendedPrice = {\n chargeMethod: 'RECURRING',\n netPrice: 0,\n listPrice: 0,\n chargeType: '',\n };\n\n prices.forEach(p => {\n if (p.chargeMethod === oneTime.chargeMethod) {\n this.add(oneTime, p);\n }\n if (p.chargeMethod === recurring.chargeMethod) {\n this.add(recurring, p);\n }\n });\n\n const result: RecommendedPrice[] = [];\n if (oneTime.listPrice > 0) {\n result.push(oneTime);\n }\n if (recurring.listPrice > 0) {\n result.push(recurring);\n }\n\n return result;\n }\n\n private add(target: RecommendedPrice, src: RecommendedPrice): void {\n target.netPrice = target.netPrice + src.netPrice;\n target.listPrice = target.listPrice + src.listPrice;\n if (src.explanation) {\n target.explanation = src.explanation;\n }\n }\n}\n","<div class=\"form-group col-md-12\" [formGroup]=\"form\">\n <div class=\"input-form-input div-inline\">\n <label [for]=\"controlName\">{{ section.label }}</label>\n <div class=\"form-control-wrapper\">\n <select [id]=\"controlName\" [formControlName]=\"controlName\" class=\"form-control\">\n <option *ngFor=\"let valueOption of section.sectionValue?.valueOptions\" [ngValue]=\"valueOption\">\n {{section.sectionValue?.displayValues?.[valueOption] || valueOption}}\n <span *ngIf=\"prices[valueOption] && prices[valueOption].length > 0\">\n <span>${{ prices[valueOption][0].netPrice }}</span>\n <span *ngIf=\"prices[valueOption].length > 1\">\n <span>, </span>\n <span>${{ prices[valueOption][1].netPrice }}</span>\n </span>\n </span>\n </option>\n </select>\n </div>\n </div>\n <div class=\"input-form-input div-inline quantity-form-input\">\n <label [for]=\"qtyControlName\"> Quantity </label>\n <div class=\"form-control-wrapper\">\n <input [id]=\"qtyControlName\" [formControlName]=\"qtyControlName\" type=\"text\" class=\"form-control\" size=\"3\" />\n\n <div\n class=\"validation-message\"\n [hidden]=\"form.controls[qtyControlName].valid || form.controls[qtyControlName].pristine\"\n >\n <div *ngFor=\"let key of form.controls[qtyControlName].errors | values\">\n <span> {{form.controls[qtyControlName]?.errors?.[key].message}}</span>\n </div>\n </div>\n\n <a href=\"javascript:void(0);\" (click)=\"handleCreate()\">\n <div class=\"add-config-control\" [attr.disabled]=\"form.valid && isAddAllowed() ? null : true\">\n <i class=\"fa fa-plus plus-icon\"></i>\n </div>\n </a>\n </div>\n </div>\n</div>\n<ng-content></ng-content>\n","import { Component, OnInit } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { LineItem, RecommendedPrice, Section } from '@veloceapps/core';\nimport { Dictionary } from 'lodash';\nimport { FormScopeService } from '../../../services/form-scope.service';\nimport { SectionScopeService } from '../../../services/section-scope.service';\nimport { UpdateData } from '../../../types';\nimport { LineItemUtil } from '../../../utils/line-item.util';\n\n@Component({\n // tslint:disable-next-line:component-selector\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'velo-port-radio',\n templateUrl: 'velo-port-radio.component.html',\n})\nexport class VeloPortRadioComponent implements OnInit {\n public controlName: string;\n\n public form: FormGroup;\n public section: Section;\n\n public prices: Dictionary<any> = {};\n\n constructor(private formScope: FormScopeService, private sectionScope: SectionScopeService) {\n this.form = this.formScope.form;\n this.section = this.sectionScope.section;\n\n this.controlName = this.section.id;\n }\n\n public ngOnInit(): void {\n this.initPriceItems();\n\n this.section.sectionValue?.valueOptions.forEach(item => {\n if (this.hasValueFor(item)) {\n this.form.controls[this.controlName].setValue(item);\n }\n });\n }\n\n public handleChange(event: any, valueOption: any): void {\n event.preventDefault();\n event.stopPropagation();\n\n const updateData: UpdateData = {\n id: this.section.id,\n action: this.hasPreviousValue() ? 'update' : 'create',\n valueOption,\n };\n\n this.form.controls[this.controlName].setValue(valueOption);\n this.form.controls[this.controlName].markAsDirty();\n\n this.formScope.publishFormUpdate(updateData);\n }\n\n public hasValueFor(valueOption: string): boolean {\n return !!this.findLineItemForValue(valueOption);\n }\n\n public getMessages(valueOption: string): LineItem['messages'] {\n const lineItem = this.findLineItemForValue(valueOption);\n\n if (this.section.model?.lineItems && lineItem) {\n return lineItem.messages;\n }\n\n return [];\n }\n\n public toString(price: RecommendedPrice): string {\n let result = '';\n if (price.listPrice > price.netPrice) {\n result += '<strike>' + price.listPrice + '</strike>';\n }\n result += price.netPrice;\n if (price.explanation) {\n result += '(' + price.explanation + ')';\n }\n return result;\n }\n\n private hasPreviousValue(): boolean {\n const previous = this.section.model?.lineItems.filter(li => li.port && li.port === this.section.boundData.name);\n\n return previous ? previous.length > 0 : false;\n }\n\n private findLineItemForValue(valueOption: string): LineItem | undefined {\n return this.section.model ? LineItemUtil.findLineItemForValue(this.section.model, valueOption) : undefined;\n }\n\n private initPriceItems(): void {\n this.prices = {};\n if (this.section.pricingEnabled) {\n this.section.sectionValue?.valueOptions.forEach(valueOption => {\n this.prices[valueOption] = this.findPriceItemsForValue(valueOption);\n });\n }\n }\n\n private findPriceItemsForValue(valueOption: string): RecommendedPrice[] {\n let prices: RecommendedPrice[] = [];\n if (valueOption) {\n const lineItem =\n this.section.model?.lineItems &&\n this.section.model.lineItems.find(li => li.type && li.type.toLowerCase() === valueOption.toLowerCase());\n if (lineItem && lineItem.chargeItems) {\n prices = lineItem.chargeItems.map(pi => {\n const price: RecommendedPrice = {\n listPrice: pi.listPrice,\n netPrice: pi.netPrice,\n chargeMethod: pi.chargeMethod,\n chargeType: pi.chargeType,\n };\n return price;\n });\n } else {\n const portDomain = this.section.model?.portDomains[this.section.boundData.name];\n const domainType = portDomain?.domainTypes.find(d => d.name.toLowerCase() === valueOption.toLowerCase());\n if (domainType && domainType.recommendedPrices) {\n prices = domainType.recommendedPrices;\n }\n }\n }\n\n const oneTime: RecommendedPrice = {\n chargeMethod: 'ONE_TIME',\n netPrice: 0,\n listPrice: 0,\n chargeType: '',\n };\n\n const recurring: RecommendedPrice = {\n chargeMethod: 'RECURRING',\n netPrice: 0,\n listPrice: 0,\n chargeType: '',\n };\n\n prices.forEach(p => {\n if (p.chargeMethod === oneTime.chargeMethod) {\n this.add(oneTime, p);\n }\n if (p.chargeMethod === recurring.chargeMethod) {\n this.add(recurring, p);\n }\n });\n\n const result: RecommendedPrice[] = [];\n if (oneTime.listPrice > 0) {\n result.push(oneTime);\n }\n if (recurring.listPrice > 0) {\n result.push(recurring);\n }\n return result;\n }\n\n private add(target: RecommendedPrice, src: RecommendedPrice): void {\n target.netPrice = target.netPrice + src.netPrice;\n target.listPrice = target.listPrice + src.listPrice;\n if (src.explanation) {\n target.explanation = src.explanation;\n }\n }\n}\n","<div [formGroup]=\"form\">\n <!--TODO ALE replace divs with ng-templates-->\n <ng-container *ngFor=\"let valueOption of section.sectionValue?.valueOptions\">\n <div class=\"unchecked\">\n <div class=\"row no-gutter clearfix\">\n <div class=\"col-md-12\">\n <div class=\"content\">\n <div class=\"container-box container-box-bordered container-box-radio\">\n <div class=\"box-title\" (click)=\"handleChange($event, valueOption)\">\n <div class=\"header clearfix\">\n <div class=\"radio-button\">\n <label>\n <input type=\"radio\" [id]=\"controlName\" [value]=\"valueOption\" [formControlName]=\"controlName\" />\n\n <i class=\"input-helper\"></i>\n\n {{ section.sectionValue?.displayValues?.[valueOption] || valueOption }}\n\n <span *ngIf=\"prices[valueOption] && prices[valueOption].length > 0\">\n <span>${{ prices[valueOption][0].netPrice }}</span>\n\n <span *ngIf=\"prices[valueOption].length > 1\">\n <span>, </span>\n\n <span>${{ prices[valueOption][1].netPrice }}</span>\n </span>\n </span>\n </label>\n <span *ngIf=\"prices[valueOption] && prices[valueOption].length > 0\">\n <div>{{ prices[valueOption][0].explanation }}</div>\n\n <span *ngIf=\"prices[valueOption].length > 1 && prices[valueOption][1].explanation\">\n <div>{{ prices[valueOption][1].explanation }}</div>\n </span>\n </span>\n </div>\n </div>\n </div>\n </div>\n\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n</div>\n<ng-content></ng-content>\n","import { Component, OnInit } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { RecommendedPrice, Section } from '@veloceapps/core';\nimport { MessageService } from 'primeng/api';\nimport { CollapsibleStateService } from '../../../services/collapsible-state.service';\nimport { FormScopeService } from '../../../services/form-scope.service';\nimport { SectionScopeService } from '../../../services/section-scope.service';\nimport { UpdateData } from '../../../types';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'velo-type',\n templateUrl: 'velo-type.component.html',\n})\nexport class VeloTypeComponent implements OnInit {\n public readonly messageBucketId = 'ui-runtime';\n\n public controlName: string;\n public qtyControlName: string;\n public displayName: string;\n public indent = 1;\n\n public form: FormGroup;\n public section: Section;\n\n public prices: RecommendedPrice[] = [];\n\n constructor(\n private formScope: FormScopeService,\n private collapsibleState: CollapsibleStateService,\n private sectionScope: SectionScopeService,\n private messageService: MessageService,\n ) {\n this.form = this.formScope.form;\n this.section = this.sectionScope.section;\n this.indent = this.sectionScope.indent;\n\n this.controlName = this.section.id;\n this.qtyControlName = this.section.id + 'qty';\n this.displayName =\n (this.section.model?.properties && this.section.model.properties.displayName) || this.section.model?.type || '';\n }\n\n public ngOnInit(): void {\n if (this.section.pricingEnabled) {\n this.prices = this.getPrices();\n }\n\n if (this.section.controlType === 'MESSAGE') {\n this.messageService.clear(this.messageBucketId);\n\n this.section.model?.messages?.forEach(message => {\n this.messageService.add({ key: this.messageBucketId, summary: message });\n });\n }\n }\n\n public handleRemove(): void {\n const updateData: UpdateData = {\n id: this.section.id,\n action: 'remove',\n };\n\n this.formScope.publishFormUpdate(updateData);\n }\n\n public handleQuantityUpdate(): void {\n const updateData: UpdateData = {\n id: this.section.id,\n action: 'qtyUpdate',\n };\n\n this.formScope.publishFormUpdate(updateData);\n }\n\n public toggleCollapse(): void {\n if (this.section.model) {\n this.collapsibleState.toggleCollapse(this.section.model.id);\n }\n }\n\n public getPrices(): RecommendedPrice[] {\n let prices: RecommendedPrice[] = [];\n if (this.section.model?.chargeItems) {\n prices = this.section.model.chargeItems.map(pi => {\n const price: RecommendedPrice = {\n listPrice: pi.listPrice,\n netPrice: pi.netPrice,\n chargeMethod: pi.chargeMethod,\n chargeType: pi.chargeType,\n };\n\n return price;\n });\n }\n\n const oneTime: RecommendedPrice = {\n chargeMethod: 'ONE_TIME',\n netPrice: 0,\n listPrice: 0,\n chargeType: '',\n };\n\n const recurring: RecommendedPrice = {\n chargeMethod: 'RECURRING',\n netPrice: 0,\n listPrice: 0,\n chargeType: '',\n };\n\n prices.forEach(p => {\n if (p.chargeMethod === oneTime.chargeMethod) {\n this.add(oneTime, p);\n }\n if (p.chargeMethod === recurring.chargeMethod) {\n this.add(recurring, p);\n }\n });\n\n const result: RecommendedPrice[] = [];\n if (oneTime.listPrice > 0) {\n result.push(oneTime);\n }\n if (recurring.listPrice > 0) {\n result.push(recurring);\n }\n\n return result;\n }\n\n private add(target: RecommendedPrice, src: RecommendedPrice): void {\n target.netPrice = target.netPrice + src.netPrice;\n target.listPrice = target.listPrice + src.listPrice;\n if (src.explanation) {\n target.explanation = src.explanation;\n }\n }\n}\n","<div class=\"container-box div-block collapsed container-box-bordered\" [formGroup]=\"form\">\n <div class=\"box-title\">\n <div class=\"header clearfix\">\n <div>\n <div class=\"header-label div-inline\">\n {{ displayName }}\n <span *ngIf=\"prices.length > 0\">\n <span>${{ prices[0].netPrice }}</span>\n <span *ngIf=\"prices.length > 1\">\n <span>, </span>\n <span>${{ prices[1].netPrice }}</span>\n </span>\n </span>\n </div>\n\n <div class=\"header-qty-container input-form-input\">\n <input\n [id]=\"qtyControlName\"\n [formControlName]=\"qtyControlName\"\n (blur)=\"form.controls[qtyControlName].valid && handleQuantityUpdate()\"\n type=\"text\"\n class=\"form-control\"\n size=\"3\"\n />\n <div class=\"validation-message\">\n <div *ngFor=\"let key of form.controls[qtyControlName].errors | values\">\n <span>\n {{ form.controls[qtyControlName]?.errors?.[key].message }}\n </span>\n </div>\n <span *ngIf=\"form.controls[qtyControlName].valid\"> &nbsp; </span>\n </div>\n <span *ngIf=\"prices.length > 0\">\n <div>{{ prices[0].explanation }}</div>\n <span *ngIf=\"prices.length > 1 && prices[1].explanation\">\n <div>{{ prices[1].explanation }}</div>\n </span>\n </span>\n </div>\n </div>\n </div>\n\n <div class=\"box-actions\">\n <ng-container *ngIf=\"section.controlType !== 'MESSAGE'\">\n <ng-template #msgTemplate>\n <div class=\"runtime-info-message\">\n <ul class=\"message-text\">\n <li *ngFor=\"let message of section.model?.messages\">{{ message }}</li>\n </ul>\n </div>\n </ng-template>\n\n <div\n class=\"box-action-button\"\n *ngIf=\"(section.model?.messages?.length ?? 0) > 0\"\n [popover]=\"msgTemplate\"\n placement=\"left\"\n container=\"body\"\n [isOpen]=\"true\"\n >\n <a href=\"javascript:void(0);\">\n <i class=\"fa fa-info check-icon\"></i>\n </a>\n </div>\n </ng-container>\n\n <div\n class=\"box-action-button\"\n (click)=\"toggleCollapse()\"\n [hidden]=\"!section.children || section.children.length < 1\"\n >\n <a><i class=\"fa fa-chevron-down check-icon\"></i></a>\n </div>\n\n <div class=\"box-action-button\" (click)=\"handleRemove()\">\n <a><i class=\"fa fa-trash-o check-icon\"></i></a>\n </div>\n </div>\n </div>\n\n <ng-content></ng-content>\n</div>\n","import { HttpParams } from '@angular/common/http';\nimport { Directive } from '@angular/core';\nimport { SalesforceApiService } from '@veloceapps/api';\nimport { SearchRequest } from '@veloceapps/core';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'sf-query',\n exportAs: 'sfApi',\n})\nexport class SfQueryDirective {\n constructor(private apiService: SalesforceApiService) {}\n\n public query(searchRequest: SearchRequest, objectName: string): Promise<any> {\n return this.apiService.query(searchRequest, objectName).toPromise();\n }\n\n public describe(objectName: string, fieldName?: string): Promise<any> {\n return this.apiService.describe(objectName, fieldName).toPromise();\n }\n\n public describe2(objectName: string, fieldsNames: string[]): Promise<any> {\n return this.apiService.describe2(objectName, fieldsNames).toPromise();\n }\n\n public apexGetRequest<T = unknown>(path: string, params: HttpParams): Promise<T> {\n return this.apiService.apexGetRequest<T>(path, params).toPromise() as Promise<T>;\n }\n\n public apexPostRequest<T = unknown, S = unknown>(path: string, body: S): Promise<T> {\n return this.apiService.apexPostRequest<T, S>(path, body).toPromise() as Promise<T>;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { EntityUtil, PricingUtils, Section } from '@veloceapps/core';\n\n@Injectable()\nexport class SectionHelperService {\n public static findSectionForValue(section: Section, valueOption: string): Section | undefined {\n if (!EntityUtil.isPresent(section) || !EntityUtil.isPresent(section.children) || EntityUtil.isBlank(valueOption)) {\n return;\n }\n\n const found = EntityUtil.filterHierarchically(\n section.children,\n 'children',\n ({ model }: Section) => model && model.type.toLowerCase() === valueOption.toLowerCase(),\n );\n\n return found && found.pop();\n }\n\n public getTotalPrices(section: Section): Map<string, number> {\n if (!section || !section.model || !section.model.chargeGroupItems) {\n return new Map();\n }\n\n return PricingUtils.sumPriceByProperty(section.model.chargeGroupItems, 'netPrice', [\n 'chargeMethod',\n 'sellingFrequency',\n ]);\n }\n}\n","import { Component, Directive, OnInit } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { EntityUtil, LineItem, Section } from '@veloceapps/core';\nimport { take } from 'rxjs/operators';\nimport { ConfigurationService } from '../../services/configuration.service';\nimport { FormScopeService } from '../../services/form-scope.service';\nimport { SectionHelperService } from '../../services/section-helper.service';\nimport { SectionScopeService } from '../../services/section-scope.service';\nimport { LegacyRuntimeContext, UpdateData } from '../../types';\nimport { SectionsBinderHelper } from '../../utils/sections-binder.helper';\n\n@Directive()\nexport class SectionContextAware implements OnInit {\n public controlName!: string;\n public qtyControlName!: string;\n\n // @Input()\n public form!: FormGroup;\n public section!: Section;\n\n constructor(protected formScope: FormScopeService, protected sectionScope: SectionScopeService) {}\n\n public ngOnInit(): void {\n this.form = this.formScope.form;\n this.section = this.sectionScope.section;\n\n this.initControlNames();\n }\n\n public initControlNames(): void {\n this.controlName = this.section.id;\n this.qtyControlName = this.section.id + 'qty';\n }\n\n //TODO ALE CONSIDER STORE INSTEAD OF CALCULATE EVERY TIME\n public isAddAllowed(quantityToAdd: number = 1): boolean {\n return this.section.model\n ? SectionsBinderHelper.isAddAllowed(this.section.model, this.section.boundData.name, quantityToAdd)\n : false;\n }\n\n public isRemoveAllowed(quantityToRemove: number = 1): boolean {\n return this.section.model\n ? SectionsBinderHelper.isRemoveAllowed(this.section.model, this.section.boundData.name, quantityToRemove)\n : false;\n }\n\n public handleCreate(valueOption?: any): void {\n if (!this.isAddAllowed()) {\n return;\n }\n\n const updateData: UpdateData = {\n id: this.section.id,\n action: 'create',\n valueOption: EntityUtil.isPresent(valueOption) ? valueOption : void 0,\n };\n\n this.formScope.publishFormUpdate(updateData);\n }\n\n public handleChange(valueOption?: any): void {\n const updateData: UpdateData = {\n id: this.section.id,\n action: 'update',\n valueOption: EntityUtil.isPresent(valueOption) ? valueOption : void 0,\n };\n\n this.formScope.publishFormUpdate(updateData);\n }\n\n public handleQtyChange(valueOption: any): void {\n const updateData: UpdateData = {\n id: this.section.id,\n action: 'qtyUpdate',\n valueOption: valueOption,\n };\n\n this.formScope.publishFormUpdate(updateData);\n }\n\n public handleRemove(valueOption: string): void {\n const updateData: UpdateData = {\n id: this.section.id,\n action: 'remove',\n valueOption: valueOption,\n };\n\n this.formScope.publishFormUpdate(updateData);\n }\n\n public handleCopy(valueOption: string): void {\n const updateData: UpdateData = {\n id: this.section.id,\n action: 'copy',\n valueOption: valueOption,\n };\n\n this.formScope.publishFormUpdate(updateData);\n }\n}\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'line-item',\n exportAs: 'liApi',\n})\nexport class LineItemDirective implements OnInit {\n public section!: Section;\n public lineItem?: LineItem;\n\n constructor(\n private formScope: FormScopeService,\n private sectionScope: SectionScopeService,\n private configurationService: ConfigurationService,\n ) {}\n\n public ngOnInit(): void {\n this.section = this.sectionScope.section;\n this.lineItem = this.section.model;\n }\n\n public handlePatch(rootLineItem: any): void {\n const updateData: UpdateData = {\n id: this.sectionScope.section.id,\n action: 'patch',\n valueOption: rootLineItem,\n };\n\n this.formScope.publishFormUpdate(updateData);\n }\n\n public configure(runtimeContext: LegacyRuntimeContext, configurableRamp: LineItem): Promise<LineItem> {\n return this.configurationService\n .configure(runtimeContext, { configurableRamp })\n .pipe(take(1))\n .toPromise() as Promise<LineItem>;\n }\n}\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'velo-port',\n exportAs: 'portApi',\n})\nexport class VeloPortDirective extends SectionContextAware implements OnInit {\n public valueQuantities: { [index: string]: number } = {};\n\n constructor(formScope: FormScopeService, sectionScope: SectionScopeService) {\n super(formScope, sectionScope);\n }\n\n private handlePriceAdjustment(action: string, valueOption: string, amount: number): void {\n const updateData: UpdateData = {\n id: this.section.id,\n action,\n valueOption,\n options: { amount },\n };\n\n this.formScope.publishFormUpdate(updateData);\n }\n\n public ngOnInit(): void {\n super.ngOnInit();\n\n this.initQuantity();\n }\n\n public handleUpsert(valueOption?: any, event?: Event): void {\n if (EntityUtil.isPresent(this.valueQuantities[valueOption]) && EntityUtil.isPresent(event)) {\n event?.preventDefault();\n return;\n } else if (Object.keys(this.valueQuantities).length > 0) {\n this.handleChange(valueOption);\n } else {\n this.handleCreate(valueOption);\n }\n }\n\n public isActive(valueOption?: any): boolean {\n return EntityUtil.isPresent(this.valueQuantities[valueOption]);\n }\n\n private initQuantity(): void {\n this.valueQuantities = this.section.model\n ? SectionsBinderHelper.getQuantityGroupByValue(this.section.model, this.section.boundData.name)\n : {};\n }\n\n //Quantity Stepper Functions\n public handleNextVal(valueOption: string): void {\n let initQty = this.valueQuantities[valueOption] || 0;\n\n if (this.isAddAllowed()) {\n if (initQty > 0) {\n const typeSection = SectionHelperService.findSectionForValue(this.section, valueOption);\n\n if (typeSection) {\n this.form.controls[typeSection.id + 'qty'].setValue(++initQty);\n\n this.handleQtyChange(valueOption);\n }\n } else {\n this.handleCreate(valueOption);\n }\n }\n }\n\n public handlePrevVal(valueOption: string): void {\n let initQty = this.valueQuantities[valueOption] || 0;\n\n if (this.isRemoveAllowed()) {\n if (initQty < 2) {\n this.handleRemove(valueOption);\n } else {\n const typeSection = SectionHelperService.findSectionForValue(this.section, valueOption);\n\n if (typeSection) {\n this.form.controls[typeSection.id + 'qty'].setValue(--initQty);\n\n this.handleQtyChange(valueOption);\n }\n }\n }\n }\n\n public handleManualQtyChange(valueOption: string, qtyVal: any): void {\n const initQty = this.valueQuantities[valueOption] || 0;\n if (isNaN(+qtyVal) || +qtyVal < 0 || initQty === +qtyVal) {\n return;\n }\n\n const newQty = +qtyVal;\n\n if (initQty === 0) {\n if (this.isAddAllowed(newQty)) {\n this.form.controls[this.qtyControlName].setValue(newQty);\n this.handleCreate(valueOption);\n }\n } else if (newQty === 0) {\n if (this.isRemoveAllowed()) {\n this.handleRemove(valueOption);\n }\n } else {\n const typeSection = SectionHelperService.findSectionForValue(this.section, valueOption);\n\n if (typeSection) {\n const dif = newQty - initQty;\n\n const isAllowed = dif > 0 ? this.isAddAllowed(dif) : this.isRemoveAllowed(dif * -1);\n\n if (isAllowed) {\n this.form.controls[typeSection.id + 'qty'].setValue(newQty);\n this.handleQtyChange(valueOption);\n }\n }\n }\n }\n\n public handleNetPriceAdjustment(valueOption: string, amount: number): void {\n this.handlePriceAdjustment('adjustNetPrice', valueOption, amount);\n }\n\n public handleListPriceAdjustment(valueOption: string, amount: number): void {\n this.handlePriceAdjustment('adjustListPrice', valueOption, amount);\n }\n}\n\n@Component({\n moduleId: module.id,\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'velo-dropdown',\n template: `\n <div class=\"input-form-input div-inline\" [formGroup]=\"form\">\n <label [for]=\"controlName\">{{ section.label }}</label>\n <div class=\"form-control-wrapper\">\n <select [id]=\"controlName\" [formControlName]=\"controlName\" class=\"form-control\">\n <option *ngFor=\"let valueOption of section.sectionValue?.valueOptions\" [ngValue]=\"valueOption\">\n {{ section.sectionValue?.displayValues?.[valueOption] || valueOption }}\n </option>\n </select>\n </div>\n </div>\n `,\n})\nexport class VeloDropdownComponent extends SectionContextAware {\n constructor(formScope: FormScopeService, sectionScope: SectionScopeService) {\n super(formScope, sectionScope);\n }\n}\n\n@Component({\n moduleId: module.id,\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'velo-quantity',\n template: `\n <div class=\"input-form-input div-inline quantity-form-input\" [formGroup]=\"form\">\n <label [for]=\"qtyControlName\"> Quantity </label>\n <div class=\"form-control-wrapper\">\n <input\n [id]=\"controlName\"\n [formControlName]=\"qtyControlName\"\n [attr.disabled]=\"isAddAllowed() === true ? null : true\"\n type=\"text\"\n class=\"form-control\"\n size=\"3\"\n />\n\n <div\n class=\"validation-message\"\n [hidden]=\"form.controls[qtyControlName].valid || form.controls[qtyControlName].pristine\"\n >\n <div *ngFor=\"let key of form.controls[qtyControlName].errors | values\">\n <span> {{ form.controls[qtyControlName].errors?.[key].message }}</span>\n </div>\n </div>\n </div>\n </div>\n `,\n})\nexport class VeloQuantityComponent extends SectionContextAware {\n constructor(formScope: FormScopeService, sectionScope: SectionScopeService) {\n super(formScope, sectionScope);\n }\n}\n\n@Component({\n moduleId: module.id,\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'velo-quantity-button',\n template: `\n <div class=\"input-form-input div-inline quantity-form-input\">\n <div class=\"form-control-wrapper\">\n <a href=\"javascript:void(0);\" (click)=\"handleCreate()\">\n <div class=\"add-config-control\" [attr.disabled]=\"isAddAllowed() === true ? null : true\">\n <i class=\"fa fa-plus plus-icon\"></i>\n </div>\n </a>\n </div>\n </div>\n `,\n})\nexport class VeloQuantityButtonComponent extends SectionContextAware {\n constructor(formScope: FormScopeService, sectionScope: SectionScopeService) {\n super(formScope, sectionScope);\n }\n}\n","import { Directive } from '@angular/core';\nimport { QuoteApiService } from '@veloceapps/api';\nimport { QuoteDraft } from '@veloceapps/core';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'vl-approval',\n exportAs: 'approvalApi',\n})\nexport class VlApprovalDirective {\n constructor(private repo: QuoteApiService) {}\n\n public submitQuote(quoteDraft: QuoteDraft): Promise<any> {\n return this.repo.submitQuote(quoteDraft).toPromise();\n }\n}\n","import { Directive } from '@angular/core';\nimport { DocumentAttachmentApiService } from '@veloceapps/api';\nimport { Attachment, TemplateAttachmentSearchRequest } from '@veloceapps/core';\nimport { Observable } from 'rxjs';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'vl-document-attachments',\n exportAs: 'documentAttachmentsApi',\n})\nexport class VlDocumentAttachmentsDirective {\n constructor(private service: DocumentAttachmentApiService) {}\n\n public getAttachments(searchRequest: TemplateAttachmentSearchRequest): Promise<Attachment[]> {\n return this.service.getAttachments(searchRequest).toPromise() as Promise<Attachment[]>;\n }\n\n public createAttachment(\n attachment: Attachment,\n file?: File,\n reportProgress?: boolean,\n ): Promise<Attachment> | Observable<Attachment> {\n const observable = this.service.createAttachment(attachment, file, reportProgress);\n return reportProgress ? observable : (observable.toPromise() as Promise<Attachment>);\n }\n\n public updateAttachment(id: string, attachment: Attachment): Promise<Attachment> {\n return this.service.updateAttachment(id, attachment).toPromise() as Promise<Attachment>;\n }\n\n public getAttachmentFile(id: string, isPreventDownload?: boolean): Promise<any> {\n return this.service.getAttachmentFile(id, isPreventDownload).toPromise();\n }\n\n public removeAttachment(id: string): Promise<unknown> {\n return this.service.removeAttachment(id).toPromise();\n }\n}\n","import { Directive } from '@angular/core';\nimport { DocumentTemplatesApiService } from '@veloceapps/api';\nimport { Attachment, DocumentTemplate, QuoteDraft, TemplateAttachmentSearchRequest } from '@veloceapps/core';\nimport { Observable } from 'rxjs';\nimport { take } from 'rxjs/operators';\n\n@Directive({\n selector: '[vlQuoteTemplates]',\n exportAs: 'quoteTemplateApi',\n})\nexport class VlDocumentTemplatesDirective {\n constructor(private documentTemplatesApiService: DocumentTemplatesApiService) {}\n\n public getTemplates(tag?: string): Promise<DocumentTemplate[]> {\n return this.documentTemplatesApiService.getTemplates(tag).toPromise() as Promise<DocumentTemplate[]>;\n }\n\n public upsertTemplate(template: DocumentTemplate, templateFile: File): Promise<DocumentTemplate> {\n return this.documentTemplatesApiService\n .upsertTemplate(template, templateFile)\n .toPromise() as Promise<DocumentTemplate>;\n }\n\n public removeTemplate(id: string): Promise<DocumentTemplate> {\n return this.documentTemplatesApiService.removeTemplate(id).toPromise() as Promise<DocumentTemplate>;\n }\n\n public cloneTemplate(id: string): Promise<{ clonedRecordId: string }> {\n return this.documentTemplatesApiService.cloneTemplate(id).toPromise() as Promise<{ clonedRecordId: string }>;\n }\n\n public downloadTemplate(id: string): Promise<Blob> {\n return this.documentTemplatesApiService.downloadTemplateFile(id).toPromise() as Promise<Blob>;\n }\n\n public generateDocument(\n template: DocumentTemplate,\n quoteDraft: QuoteDraft,\n params?: { [param: string]: string | boolean },\n ): Observable<any> {\n return this.documentTemplatesApiService.generateDocument(template, quoteDraft, params).pipe(take(1));\n }\n\n /**\n * @deprecated Use `generateDocument` instead\n */\n // eslint-disable-next-line @typescript-eslint/member-ordering\n public generateDocumentNew = this.generateDocument;\n\n public generateDocumentData(\n template: DocumentTemplate,\n quoteDraft: QuoteDraft,\n params?: { [param: string]: boolean },\n ): Observable<any> {\n return this.documentTemplatesApiService.generateDocumentData(template, quoteDraft, params).pipe(take(1));\n }\n\n public getAttachments(searchRequest: TemplateAttachmentSearchRequest): Promise<any> {\n return this.documentTemplatesApiService.getAttachments(searchRequest).toPromise();\n }\n\n public getAttachmentFile(id: string): Promise<any> {\n return this.documentTemplatesApiService.getAttachmentFile(id).toPromise();\n }\n\n public createAttachment(attachment: Attachment, file?: File): Promise<any> {\n return this.documentTemplatesApiService.createAttachment(attachment, file).toPromise();\n }\n\n public removeAttachment(id: string): Promise<any> {\n return this.documentTemplatesApiService.removeAttachment(id).toPromise();\n }\n}\n","import { Directive } from '@angular/core';\nimport { QuoteApiService } from '@veloceapps/api';\nimport { EntityUtil, QuoteDraft } from '@veloceapps/core';\nimport { QuoteStates } from '@veloceapps/sdk/core';\nimport { RuntimeService } from '../../services/runtime.service';\nimport { LineItemUtil } from '../../utils/line-item.util';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'vl-quote',\n exportAs: 'quoteApi',\n})\nexport class VlQuoteDirective {\n constructor(private quoteApiService: QuoteApiService, private runtimeService: RuntimeService) {}\n\n public getQuote(quoteId: string): Promise<QuoteDraft> {\n return this.quoteApiService.getQuoteDraft(quoteId).toPromise() as Promise<QuoteDraft>;\n }\n\n public upsertQuote(quoteDraft: QuoteDraft): Promise<any> {\n return this.quoteApiService.upsertQuote(quoteDraft).toPromise();\n }\n\n public configureQuote(quoteDraft: QuoteDraft, rootLineItemId: string): void {\n const rootLineItem = EntityUtil.findById(rootLineItemId, quoteDraft.currentState);\n const asset = quoteDraft.initialState?.find(a => a.id === rootLineItem.assetId);\n const { context } = quoteDraft;\n\n const states: QuoteStates = {\n configurableRamp: LineItemUtil.removeDeletedItems(rootLineItem),\n currentState: quoteDraft.currentState,\n asset,\n };\n\n this.runtimeService.updateRuntime(states, context.properties);\n }\n}\n","import { Directive } from '@angular/core';\nimport { PriceApiService, RampApiService } from '@veloceapps/api';\nimport { LineItem } from '@veloceapps/core';\nimport { ContextService } from '@veloceapps/sdk/core';\nimport { tap } from 'rxjs/operators';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'vl-ramp',\n exportAs: 'rampApi',\n})\nexport class VlRampDirective {\n constructor(\n private contextService: ContextService,\n private rampApiService: RampApiService,\n private priceApiService: PriceApiService,\n ) {}\n\n public createRamp(sourceItems: string[], currentRamps: LineItem[], term: number): Promise<any> {\n const context = this.contextService.resolve();\n\n return this.rampApiService\n .next({\n context,\n sourceItems,\n currentItems: currentRamps || [],\n term,\n })\n .pipe(\n tap(data => {\n if (data.context) {\n this.contextService.update({\n properties: {\n ...data.context.properties,\n },\n });\n }\n }),\n )\n .toPromise();\n }\n\n public calculateRampTermByEndDate(lineItem: LineItem, endDate: string): Promise<any> {\n return this.priceApiService\n .getSellingTermByEndDate(\n lineItem.planId,\n lineItem.offeringId,\n lineItem.startDate,\n endDate,\n lineItem.sellingFrequencyUnit,\n lineItem.sellingFrequencyDuration,\n )\n .toPromise();\n }\n\n public calculateRampTermByTerm(lineItem: LineItem, term: number): Promise<any> {\n return this.priceApiService\n .getSellingTermByTerm(\n lineItem.planId,\n lineItem.offeringId,\n lineItem.startDate,\n term,\n lineItem.sellingFrequencyUnit,\n lineItem.sellingFrequencyDuration,\n )\n .toPromise();\n }\n}\n","import { CurrencyPipe, DOCUMENT } from '@angular/common';\nimport { AfterViewInit, ChangeDetectorRef, Directive, Inject, OnDestroy, OnInit, Renderer2 } from '@angular/core';\nimport { FormBuilder } from '@angular/forms';\nimport { EntityUtil, PagedEntity, Section, UUID } from '@veloceapps/core';\nimport { ContextService, QuoteDraftService } from '@veloceapps/sdk/core';\nimport * as _ from 'lodash';\nimport * as moment from 'moment';\nimport * as rxjs from 'rxjs';\nimport * as rxjsOperators from 'rxjs/operators';\nimport { ShoppingCartService } from '../../services/cart.service';\nimport { CurrentStateService } from '../../services/current-state.service';\nimport { FormScopeService } from '../../services/form-scope.service';\nimport { RuntimeService } from '../../services/runtime.service';\nimport { SectionScopeService } from '../../services/section-scope.service';\nimport { ScriptRegistry } from '../../types/script-registry.types';\nimport { SfQueryDirective } from './sf-query.directive';\nimport { LineItemDirective } from './velo-port.directive';\nimport { VlApprovalDirective } from './vl-approval.directive';\nimport { VlDocumentAttachmentsDirective } from './vl-document-attachments.directive';\nimport { VlDocumentTemplatesDirective } from './vl-document-templates.directive';\nimport { VlQuoteDirective } from './vl-quote.directive';\nimport { VlRampDirective } from './vl-ramp.directive';\n\nconst SHA1 = UUID.SHA1();\nconst SCRIPT_GLOBAL_NAME = `$velo`;\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'section-script',\n exportAs: 'scriptApi',\n providers: [\n SfQueryDirective,\n LineItemDirective,\n VlQuoteDirective,\n VlDocumentTemplatesDirective,\n VlRampDirective,\n VlApprovalDirective,\n VlDocumentAttachmentsDirective,\n ],\n})\nexport class SectionScriptDirective implements OnInit, AfterViewInit, OnDestroy {\n private scriptElement: any;\n private scriptId = '';\n private registry!: ScriptRegistry;\n private sessionScope: { [index: string]: any } = {};\n\n constructor(\n @Inject(DOCUMENT) private _document: Document,\n @Inject(SfQueryDirective) private sfQueryDirective: SfQueryDirective,\n @Inject(LineItemDirective) private lineItemDirective: LineItemDirective,\n @Inject(VlQuoteDirective) private quoteDirective: VlQuoteDirective,\n @Inject(VlDocumentTemplatesDirective) private documentTemplatesDirective: VlDocumentTemplatesDirective,\n @Inject(VlRampDirective) private rampDirective: VlRampDirective,\n @Inject(VlApprovalDirective) private approvalDirective: VlApprovalDirective,\n @Inject(VlDocumentAttachmentsDirective) private documentAttachmentsDirective: VlDocumentAttachmentsDirective,\n private formScope: FormScopeService,\n private sectionScope: SectionScopeService,\n private renderer: Renderer2,\n private formBuilder: FormBuilder,\n private runtimeService: RuntimeService,\n private cdr: ChangeDetectorRef,\n private cartService: ShoppingCartService,\n private contextService: ContextService,\n private currentStateService: CurrentStateService,\n private quoteService: QuoteDraftService,\n ) {}\n\n public ngOnInit(): void {\n if (!this.scriptExists()) {\n return;\n }\n\n this.scriptId = this.generateScriptId();\n this.registry = this.getScriptRegistry();\n this.sessionScope = this.getSessionScope();\n\n if (!this.registry.exists(this.scriptId)) {\n this.appendScriptElementToDom();\n }\n\n this.initScript();\n\n this.registry.doRegister(this.scriptId, this.sectionScope.section.id);\n }\n\n public ngAfterViewInit(): void {\n const sharedScriptGlobal = this.registry?.getGlobalForScript(this.sectionScope.section.id);\n\n if (sharedScriptGlobal) {\n this.methodApply('afterViewInit', sharedScriptGlobal);\n }\n }\n\n public ngOnDestroy(): void {\n if (!this.scriptId) {\n return;\n }\n\n this.registry.unRegister(this.scriptId, this.sectionScope.section.id);\n\n if (!this.registry.exists(this.scriptId)) {\n this.removeScript();\n this.registry.removeGlobalForScript(this.scriptId);\n }\n }\n\n public get scope(): any {\n if (!this.scriptId || !this.sectionScope.section) {\n return {};\n }\n\n return Object.assign({}, this.registry.getGlobalForScript(this.sectionScope.section.id) || {}, this.sessionScope);\n }\n\n private scriptExists(): boolean {\n return (this.sectionScope?.section?.script?.length ?? 0) > 0;\n }\n\n private encodeScriptBody(): string {\n return this.sectionScope.section.script ? atob(this.sectionScope.section.script) : '';\n }\n\n private generateScriptId(): string {\n return '_' + SHA1.hex(this.encodeScriptBody());\n }\n\n private getScriptRegistry(): ScriptRegistry {\n return this.formScope.scriptRegistry;\n }\n\n private getSessionScope(): { [index: string]: any } {\n return this.formScope.scriptSessionScope;\n }\n\n private initScript(): void {\n let sharedScriptGlobal = this.registry.getGlobalForScript(this.sectionScope.section.id);\n\n if (!EntityUtil.isPresent(sharedScriptGlobal)) {\n sharedScriptGlobal = {};\n this.registry.setGlobalForScript(this.sectionScope.section.id, sharedScriptGlobal);\n }\n\n this.methodApply('init', sharedScriptGlobal);\n }\n\n private removeScript(): void {\n const sharedScriptGlobal = this.registry.getGlobalForScript(this.sectionScope.section.id);\n\n this.methodApply('destroy', sharedScriptGlobal);\n\n this.removeScriptElementFromDom();\n }\n\n private appendScriptElementToDom(): void {\n const script = this.scriptFromTemplate(this.encodeScriptBody(), this.scriptId, this.sectionScope.section);\n\n this.scriptElement = this.renderer.createElement('script');\n this.scriptElement.type = `text/javascript`;\n this.scriptElement.text = script;\n\n this.scriptElement.setAttribute('id', this.scriptId);\n\n this.renderer.appendChild(this._document.body, this.scriptElement);\n }\n\n private removeScriptElementFromDom(): void {\n if (!this.scriptElement) {\n this.scriptElement = this._document.getElementById(this.scriptId);\n }\n\n this.scriptElement.remove();\n }\n\n private scriptFromTemplate(scriptBody: string, scriptId: string, section: Section): string {\n return `var ${scriptId} = (function (${SCRIPT_GLOBAL_NAME}, form, { section, templates }, sessionScope, formBuilder, runtimeContext, cdr, apis) {\n ${SCRIPT_GLOBAL_NAME}[\"form\"] = form;\n ${SCRIPT_GLOBAL_NAME}[\"section\"] = section;\n ${SCRIPT_GLOBAL_NAME}[\"templates\"] = templates;\n ${SCRIPT_GLOBAL_NAME}[\"sessionScope\"] = sessionScope;\n ${SCRIPT_GLOBAL_NAME}[\"formBuilder\"] = formBuilder;\n ${SCRIPT_GLOBAL_NAME}[\"runtimeContext\"] = runtimeContext;\n ${SCRIPT_GLOBAL_NAME}[\"cdr\"] = cdr;\n ${SCRIPT_GLOBAL_NAME}[\"apis\"] = apis;\n\n ${scriptBody}\n return ${SCRIPT_GLOBAL_NAME};\n });\n\n //# sourceURL=${_.kebabCase(section.label)}.js`;\n }\n\n private methodApply(methodName: string, sharedScriptGlobal: any): void {\n const args = [\n sharedScriptGlobal,\n this.formScope.form,\n this.sectionScope,\n this.sessionScope,\n this.formBuilder,\n this.runtimeService.getRuntimeContext(),\n this.cdr,\n this.getExposedApis(),\n ];\n\n const fnInit = (window as any)[`${this.scriptId}`](...args);\n\n fnInit && fnInit[methodName] && fnInit[methodName].apply();\n }\n\n private getExposedApis(): any {\n return {\n 'sf-query': this.sfQueryDirective,\n 'line-item': this.lineItemDirective,\n 'quote-directive': this.quoteDirective,\n 'templates-directive': this.documentTemplatesDirective,\n 'attachments-directive': this.documentAttachmentsDirective,\n 'ramp-directive': this.rampDirective,\n 'approval-directive': this.approvalDirective,\n entityUtil: EntityUtil,\n moment,\n lodash: _,\n rxjs: { ...rxjsOperators, ...rxjs },\n PagedEntity,\n pipes: {\n currency: CurrencyPipe,\n },\n solutionUpdateStarted: this.runtimeService.onSolutionUpdateStartedEvent,\n solutionUpdated: this.runtimeService.onSolutionProcessed,\n cartService: this.cartService,\n configurationContextService: this.contextService,\n quoteDraft: this.quoteService.quoteDraft,\n currentStateService: this.currentStateService,\n };\n }\n}\n","import { CommonModule, DatePipe } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { ApiModule } from '@veloceapps/api';\nimport { LoaderModule } from '@veloceapps/components';\nimport { CoreModule } from '@veloceapps/core';\nimport { VeloceElementsModule } from '@veloceapps/elements';\nimport { SdkCoreModule } from '@veloceapps/sdk/core';\nimport { PopoverModule } from 'ngx-bootstrap/popover';\nimport { ShoppingCartService } from '../services/cart.service';\nimport { ConfigurationService } from '../services/configuration.service';\nimport { CurrentStateService } from '../services/current-state.service';\nimport { ProductModelCacheService } from '../services/product-model-cache.service';\nimport { RuntimeContextService } from '../services/runtime-context.service';\nimport { RuntimeFormService } from '../services/runtime-form.service';\nimport { RuntimeService } from '../services/runtime.service';\nimport { SectionStoreService } from '../services/section-store.service';\nimport {\n ChildrenPlaceholderComponent,\n TemplateComponent,\n} from './components/children-placeholder/children-placeholder.component';\nimport { ContextProviderComponent } from './components/context-provider/context-provider.component';\nimport { ExecutionSectionRendererComponent } from './components/execution-section-renderer/execution-section-renderer.component';\nimport { FederatedComponent } from './components/federated/federated.component';\nimport { VeloAttributeComponent } from './components/velo-attribute/velo-attribute.component';\nimport { MultiselectComponent } from './components/velo-multiselect/velo-multiselect.component';\nimport { VeloPortCheckBoxComponent } from './components/velo-port-checkbox/velo-port-checkbox.component';\nimport { VeloPortDropdownComponent } from './components/velo-port-dropdown/velo-port-dropdown.component';\nimport { VeloPortRadioComponent } from './components/velo-port-radio/velo-port-radio.component';\nimport { VeloTypeComponent } from './components/velo-type/velo-type.component';\nimport { SectionScriptDirective } from './directives/section-script.directive';\nimport { VeloAttributeDirective } from './directives/velo-attribute.directive';\nimport {\n LineItemDirective,\n VeloDropdownComponent,\n VeloPortDirective,\n VeloQuantityButtonComponent,\n VeloQuantityComponent,\n} from './directives/velo-port.directive';\n\n@NgModule({\n declarations: [\n ExecutionSectionRendererComponent,\n ChildrenPlaceholderComponent,\n SectionScriptDirective,\n VeloPortDirective,\n LineItemDirective,\n VeloDropdownComponent,\n VeloQuantityButtonComponent,\n VeloQuantityComponent,\n VeloAttributeDirective,\n MultiselectComponent,\n VeloAttributeComponent,\n VeloPortRadioComponent,\n VeloTypeComponent,\n VeloPortDropdownComponent,\n VeloPortCheckBoxComponent,\n FederatedComponent,\n TemplateComponent,\n ContextProviderComponent,\n ],\n providers: [\n ShoppingCartService,\n RuntimeService,\n ConfigurationService,\n RuntimeContextService,\n RuntimeFormService,\n CurrentStateService,\n ProductModelCacheService,\n DatePipe,\n SectionStoreService,\n ],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n CoreModule,\n ApiModule,\n VeloceElementsModule,\n PopoverModule,\n LoaderModule,\n SdkCoreModule,\n ],\n exports: [\n FormsModule,\n ReactiveFormsModule,\n ChildrenPlaceholderComponent,\n SectionScriptDirective,\n LineItemDirective,\n VeloPortDirective,\n VeloAttributeDirective,\n MultiselectComponent,\n VeloAttributeComponent,\n VeloPortRadioComponent,\n VeloTypeComponent,\n VeloPortDropdownComponent,\n VeloPortCheckBoxComponent,\n FederatedComponent,\n TemplateComponent,\n ContextProviderComponent,\n ],\n})\nexport class RuntimeExecutionModule {}\n","import { ScrollingModule as ExperimentalScrollingModule } from '@angular/cdk-experimental/scrolling';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { CommonModule } from '@angular/common';\nimport '@angular/compiler';\nimport {\n Compiler,\n Component,\n Injectable,\n Input,\n ModuleWithComponentFactories,\n NgModule,\n NgModuleRef,\n QueryList,\n TemplateRef,\n Type,\n ViewChildren,\n ViewEncapsulation,\n} from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { CoreModule, EntityUtil, Section, UUID } from '@veloceapps/core';\nimport { VeloceElementsModule } from '@veloceapps/elements';\nimport { set, values } from 'lodash';\nimport { RuntimeExecutionModule } from '../execution/runtime-execution.module';\nimport { SectionHelperService } from './section-helper.service';\nimport { SectionStoreService } from './section-store.service';\n\nconst SHA1 = UUID.SHA1();\n\n@Component({ template: '' })\nexport class BaseSectionComponent {\n @Input()\n public form!: FormGroup;\n\n @Input()\n public section!: Section;\n\n @ViewChildren('customTemplate') protected templates!: QueryList<TemplateRef<any>>;\n}\n\n@Injectable()\nexport class SectionsService {\n private moduleType: Type<any> | null = null;\n private moduleInstance: ModuleWithComponentFactories<any> | null = null;\n\n constructor(private compiler: Compiler, private m: NgModuleRef<any>, private sectionStore: SectionStoreService) {}\n\n public compileModule(sections: Section[], isViewEncapsulated?: boolean): void {\n const uniqueSections = this.getUniqueSections(sections);\n\n this.moduleType = this.getModuleType(uniqueSections, isViewEncapsulated);\n this.moduleInstance = this.compiler.compileModuleAndAllComponentsSync(this.moduleType);\n\n this.sectionStore.componentFactories = this.moduleInstance.componentFactories;\n }\n\n public destroy(): void {\n if (this.moduleInstance) {\n this.sectionStore.componentFactories = [];\n this.moduleInstance = null;\n }\n\n if (this.moduleType) {\n this.compiler.clearCacheFor(this.moduleType);\n this.moduleType = null;\n }\n }\n\n private getDecoratedComponents(sections: Section[], isViewEncapsulated: boolean = false): any[] {\n const result: any[] = [];\n\n sections.forEach(section => {\n const transpiledTemplate = this.getTranspiledTemplate(section);\n\n const DynamicComponent = Component({\n selector: section.dynamicSelector,\n template: transpiledTemplate,\n styles: [atob(section.styles || '')],\n providers: [SectionHelperService],\n encapsulation: isViewEncapsulated ? ViewEncapsulation.ShadowDom : ViewEncapsulation.Emulated,\n jit: true,\n })(class C extends BaseSectionComponent {});\n\n this.applySelectorField(DynamicComponent, section.dynamicSelector ?? '');\n result.push(DynamicComponent);\n });\n\n return result;\n }\n\n private getModuleType(sections: Section[], isViewEncapsulated?: boolean): Type<any> {\n const decoratedComponents = this.getDecoratedComponents(sections, isViewEncapsulated);\n\n @NgModule({\n imports: [\n CommonModule,\n RuntimeExecutionModule,\n CoreModule,\n VeloceElementsModule,\n ScrollingModule,\n ExperimentalScrollingModule,\n ],\n declarations: [decoratedComponents],\n jit: true,\n })\n class DynamicModule {}\n\n return DynamicModule;\n }\n\n private applySelectorField(target: any, dynamicSelector: string): void {\n set(target, '$$dynamicSelector', dynamicSelector);\n }\n\n private getUniqueSections(sections: Section[]): Section[] {\n const uniqueSections: { [index: string]: Section } = {};\n\n sections.forEach(section => {\n section.hash = SHA1.hex(section.template);\n\n const existingSection = section.hash ? uniqueSections[section.hash] : undefined;\n if (existingSection && existingSection.template === section.template) {\n section.dynamicSelector = existingSection.dynamicSelector;\n } else if (section.hash) {\n section.dynamicSelector = `section-${section.id}`;\n\n uniqueSections[section.hash] = section;\n }\n });\n\n return values(uniqueSections);\n }\n\n private getTranspiledTemplate(section: Section): string {\n let template: string = section.template ? atob(section.template) : '';\n\n if (!EntityUtil.isEmpty(section.script) && template.indexOf('<section-script') === -1) {\n template = `<section-script></section-script>`.concat(template);\n }\n\n return template;\n }\n}\n","import {\n AfterViewInit,\n Component,\n ComponentRef,\n Injector,\n Input,\n NgModuleRef,\n OnDestroy,\n OnInit,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { Section } from '@veloceapps/core';\nimport { SectionScopeService } from '../../services/section-scope.service';\nimport { SectionStoreService } from '../../services/section-store.service';\n\n@Component({\n selector: 'vl-section-renderer',\n templateUrl: 'section-renderer.component.html',\n styleUrls: ['section-renderer.component.scss'],\n providers: [SectionScopeService],\n})\nexport class SectionRendererComponent implements OnInit, AfterViewInit, OnDestroy {\n private _section!: Section;\n\n @Input()\n public set section(value: Section) {\n this._section = value;\n this.sectionScope.section = value;\n }\n\n public get section(): Section {\n return this._section;\n }\n\n @Input()\n public form!: FormGroup;\n\n constructor(\n private _injector: Injector,\n private _m: NgModuleRef<any>,\n private sectionScope: SectionScopeService,\n private sectionStore: SectionStoreService,\n ) {}\n\n @ViewChild('container', { read: ViewContainerRef, static: true })\n public container!: ViewContainerRef;\n\n private componentRef: ComponentRef<any> | null = null;\n\n public ngOnInit(): void {\n this.renderSection();\n }\n\n public ngAfterViewInit(): void {\n if (this.componentRef) {\n this.sectionScope.templates.next(this.componentRef.instance['templates']?.toArray() ?? []);\n }\n }\n\n public ngOnDestroy(): void {\n if (this.componentRef) {\n this.componentRef.destroy();\n this.componentRef = null;\n }\n }\n\n public renderSection(): void {\n if (this.componentRef) {\n this.componentRef.destroy();\n this.componentRef = null;\n }\n\n const componentFactory = this.sectionStore.getComponentFactory(this._section);\n if (!componentFactory) {\n return;\n }\n\n this.componentRef = componentFactory.create(this._injector, [], null, this._m);\n this.componentRef.location.nativeElement.setAttribute(\n 'sectionId',\n `${this._section.model?.id}${this._section.label}`,\n );\n this.componentRef.instance['form'] = this.form;\n this.componentRef.instance['section'] = this.section;\n\n this.container.insert(this.componentRef.hostView);\n }\n}\n","<ng-template #container></ng-template>","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { ComponentStoryPreview, EntityUtil, LineItem, RuntimeModel, Section, UUID } from '@veloceapps/core';\nimport { RuntimeMode } from '@veloceapps/sdk/core';\nimport { CollapsibleStateService } from '../../services/collapsible-state.service';\nimport { FormScopeService } from '../../services/form-scope.service';\nimport { RuntimeFormService } from '../../services/runtime-form.service';\nimport { RuntimeService } from '../../services/runtime.service';\nimport { SectionsService } from '../../services/section.service';\nimport { LegacyRuntimeContext } from '../../types';\n\nconst defaultTemplate = btoa('<template-component></template-component>');\n\n@Component({\n selector: 'vl-component-preview',\n templateUrl: './component-preview.component.html',\n styleUrls: ['../ui-runtime/runtime-legacy-styles.scss', './component-preview.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n SectionsService,\n FormScopeService,\n CollapsibleStateService,\n RuntimeFormService,\n FormScopeService,\n RuntimeService,\n ],\n})\nexport class ComponentPreviewComponent implements OnChanges {\n @Input() public data?: ComponentStoryPreview;\n\n public form = new FormGroup({});\n public section?: Section;\n\n public showPreview = false;\n public isNoPreviewAvailable = false;\n public isPreviewFailed = false;\n\n constructor(\n private sectionsService: SectionsService,\n private runtimeFormService: RuntimeFormService,\n private formScope: FormScopeService,\n private runtimeService: RuntimeService,\n private cdr: ChangeDetectorRef,\n ) {}\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes.data) {\n this.sectionsService.destroy();\n this.showPreview = false;\n this.isNoPreviewAvailable = false;\n this.isPreviewFailed = false;\n\n setTimeout(() => {\n try {\n this.runPreview(this.data as ComponentStoryPreview);\n this.cdr.detectChanges();\n } catch (e: any) {\n console.error(e?.stack ?? e?.error ?? 'Error occured');\n this.showPreview = false;\n this.isPreviewFailed = true;\n this.cdr.detectChanges();\n }\n });\n }\n }\n\n public runPreview(data: ComponentStoryPreview): void {\n const section = data.section && (JSON.parse(data.section) as Section);\n\n if (!section) {\n this.isNoPreviewAvailable = true;\n return;\n }\n\n const model: LineItem = {\n ...(section?.model ?? {\n attributes: [],\n lineItems: [],\n }),\n id: UUID.UUID(),\n } as LineItem;\n\n const componentSection: Section = {\n ...section,\n script: data.componentScript ? btoa(data.componentScript) : '',\n styles: data.componentStyles ? btoa(data.componentStyles) : '',\n template: data.componentTemplate ? btoa(data.componentTemplate) : '',\n properties: data.componentProperties ? JSON.stringify(data.componentProperties) : {},\n id: UUID.UUID(),\n model,\n } as Section;\n\n const storySection: Section = {\n id: UUID.UUID(),\n template: data.template ? btoa(data.template) : defaultTemplate,\n styles: data.styles ? btoa(data.styles) : '',\n script: data.script ? btoa(data.script) : '',\n children: [componentSection],\n model,\n } as Section;\n\n const sections = [storySection, componentSection];\n\n this.form = this.formScope.form = this.runtimeFormService.initForm(sections, model);\n\n this.createRuntimeContext(componentSection);\n this.sectionsService.compileModule(sections);\n\n this.section = storySection;\n this.showPreview = true;\n }\n\n public createRuntimeContext(section: Section): void {\n const runtimeModel = RuntimeModel.create([], {});\n const rootType = Array.from(runtimeModel.components.values()).find(\n c =>\n section.model?.type &&\n runtimeModel.isEquals(c.typeName, section.model.type) &&\n EntityUtil.isPresent(c.productId),\n );\n\n const contextProductId = rootType ? rootType.productId : undefined;\n\n const context: LegacyRuntimeContext = {\n modelId: '',\n runtimeModel,\n runtimeMode: RuntimeMode.TEST,\n productId: contextProductId,\n properties: {},\n } as LegacyRuntimeContext;\n\n this.runtimeService.setRuntimeContext(context);\n }\n}\n","<ng-container *ngIf=\"showPreview\">\n <vl-section-renderer [section]=\"section!\" [form]=\"form\"></vl-section-renderer>\n</ng-container>\n\n<span class=\"info\" *ngIf=\"isNoPreviewAvailable\">No preview available</span>\n<span class=\"info error\" *ngIf=\"isPreviewFailed\">Preview has failed</span>\n","import { EntityUtil, Section } from '@veloceapps/core';\n\nexport const getSectionTree = (src: Section[]): Section[] => {\n const sections = EntityUtil.clone(src);\n\n const sectionIdMap = new Map<string, Section>();\n\n sections.forEach(section => sectionIdMap.set(section.id, section));\n\n const sectionTree: Section[] = [];\n sections.forEach(section => {\n if (section.parentId) {\n const parentSection = sectionIdMap.get(section.parentId);\n if (parentSection) {\n const sectionFromMap = sectionIdMap.get(section.id);\n if (sectionFromMap) {\n parentSection.addChild(sectionFromMap);\n }\n }\n } else {\n const s = sectionIdMap.get(section.id);\n if (s) {\n sectionTree.push(s);\n }\n }\n });\n\n return sectionTree;\n};\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { ChangeDetectorRef, Component, EventEmitter, Inject, OnDestroy, OnInit, Output } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport {\n Attribute,\n ChargeItem,\n EntityUtil,\n LineItem,\n OrderByPipe,\n PriceAdjustment,\n SalesforceIdUtils,\n SearchFilterPipe,\n Section,\n SectionPath,\n UITab,\n UUID,\n} from '@veloceapps/core';\nimport { ContextService } from '@veloceapps/sdk/core';\nimport { Dictionary } from 'lodash';\nimport { MessageService } from 'primeng/api';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { CollapsibleStateService } from '../../services/collapsible-state.service';\nimport { FormScopeService } from '../../services/form-scope.service';\nimport { RuntimeFormService } from '../../services/runtime-form.service';\nimport { RuntimeService } from '../../services/runtime.service';\nimport { SectionHelperService } from '../../services/section-helper.service';\nimport { SectionsService } from '../../services/section.service';\nimport { LegacyRuntimeContext, SolutionReadyAware, UpdateData } from '../../types';\nimport { BoundDataType } from '../../types/bound-data.types';\nimport { LineItemUtil } from '../../utils/line-item.util';\nimport { getSectionTree } from '../../utils/section.utils';\nimport { SectionsBinderHelper } from '../../utils/sections-binder.helper';\n\n@Component({\n selector: 'vl-runtime',\n moduleId: module.id,\n templateUrl: 'runtime.component.html',\n styleUrls: ['./runtime-legacy-styles.scss', 'runtime.component.scss'],\n providers: [FormScopeService, CollapsibleStateService, OrderByPipe, SearchFilterPipe],\n})\nexport class RuntimeComponent implements OnInit, OnDestroy, SolutionReadyAware {\n public readonly messageBucketId = 'ui.runtime';\n\n public sortedSections: Section[] = [];\n public staticSections: Section[] = [];\n\n public runtimeContext!: LegacyRuntimeContext;\n public solutionLineItem!: LineItem;\n public form: FormGroup = new FormGroup({});\n\n public activeUITab?: UITab;\n\n public solutionIsReady = false;\n\n private readonly unsubscribe = new Subject<void>();\n\n @Output() private readonly solutionUpdated = new EventEmitter<any>();\n\n constructor(\n private sectionsService: SectionsService,\n private formScope: FormScopeService,\n private collapsibleState: CollapsibleStateService,\n private formService: RuntimeFormService,\n private runtimeService: RuntimeService,\n @Inject(MessageService) private messageService: MessageService,\n private contextService: ContextService,\n private orderByPipe: OrderByPipe,\n private searchFilterPipe: SearchFilterPipe,\n private cdr: ChangeDetectorRef,\n ) {}\n\n private adjustPrice(\n valueOption: string | undefined,\n section: Section,\n solutionLineItem: LineItem,\n patch: Dictionary<PriceAdjustment>,\n ): void {\n const parentLineItem = section.model && LineItemUtil.findById(section.model.id, [solutionLineItem]);\n\n if (!parentLineItem) {\n return;\n }\n\n parentLineItem.lineItems = parentLineItem.lineItems.map(lineItem => {\n const { productId, chargeItems } = lineItem;\n\n if (productId !== valueOption) {\n return lineItem;\n }\n\n const chargeItem = chargeItems.shift();\n const updatedChargeItem = {\n ...chargeItem,\n ...patch,\n } as ChargeItem;\n\n return {\n ...lineItem,\n chargeItems: [updatedChargeItem, ...chargeItems],\n };\n });\n\n this.updateRuntime(solutionLineItem);\n }\n\n public ngOnInit(): void {\n this.formScope.formSubmitEvent.pipe(takeUntil(this.unsubscribe)).subscribe((e: UpdateData) => {\n try {\n this.form.updateValueAndValidity();\n const solutionLineItem = EntityUtil.clone(this.solutionLineItem);\n\n const section = this.findSection(e.id);\n\n if (!section) {\n throw 'Section not found';\n }\n const entityType = section.boundData.entityType;\n\n if (entityType === BoundDataType[BoundDataType.PORT] || entityType === BoundDataType[BoundDataType.TYPE]) {\n if (e.action === 'patch' && EntityUtil.isPresent(e.valueOption)) {\n const valueOption: any = e['valueOption'];\n\n if (!section.model?.parentId) {\n this.collapsibleState.clearState(section.id);\n this.updateRuntime(valueOption);\n } else {\n const parentLineItem = LineItemUtil.findById(section.model.parentId, [solutionLineItem]);\n\n if (parentLineItem) {\n const indx = parentLineItem.lineItems.findIndex(item => item.id === section.model?.id);\n\n parentLineItem.lineItems.splice(indx, 1, valueOption);\n\n this.collapsibleState.clearState(section.id);\n this.updateRuntime(solutionLineItem);\n }\n }\n }\n }\n\n if (entityType === BoundDataType[BoundDataType.PORT]) {\n if (e.action === 'upsert') {\n const parentLineItem = section.model && LineItemUtil.findById(section.model.id, [solutionLineItem]);\n\n if (parentLineItem) {\n parentLineItem.lineItems.forEach(i => {\n if (\n e.selectedValueOptions &&\n e.selectedValueOptions.findIndex(v => v.toLowerCase() === i.type.toLowerCase()) < 0\n ) {\n this.updateCardinalityVariable(parentLineItem, i, 0);\n }\n });\n const lineItems = parentLineItem?.lineItems.filter(\n i =>\n e.selectedValueOptions &&\n e.selectedValueOptions.findIndex(v => v.toLowerCase() === i.type.toLowerCase()) > -1,\n );\n e.selectedValueOptions?.forEach(v => {\n if (lineItems?.findIndex(item => item.type.toLowerCase() === v.toLowerCase()) === -1) {\n const lineItem = this.createLineItem(section, v, parentLineItem);\n this.updateCardinalityVariable(parentLineItem, lineItem);\n lineItems.push(lineItem);\n }\n });\n\n this.updateRuntime(solutionLineItem);\n }\n }\n\n if (e.action === 'create') {\n const parentLineItem = section.model && LineItemUtil.findById(section.model.id, [solutionLineItem]);\n\n if (parentLineItem) {\n const valueOption = e.valueOption;\n const lineItem = this.createLineItem(section, valueOption, parentLineItem);\n parentLineItem.lineItems.push(lineItem);\n this.updateCardinalityVariable(parentLineItem, lineItem);\n\n this.updateRuntime(solutionLineItem);\n }\n }\n\n if (e.action === 'copy') {\n const parentLineItem = section.model && LineItemUtil.findById(section.model.id, [solutionLineItem]);\n\n if (parentLineItem) {\n const valueOption = e.valueOption;\n const lineItemToCopy = parentLineItem.lineItems.find(li => li.id === valueOption);\n if (lineItemToCopy) {\n const lineItem: LineItem = { ...lineItemToCopy, id: '' };\n parentLineItem.lineItems.push(lineItem);\n this.updateCardinalityVariable(parentLineItem, lineItem);\n\n this.updateRuntime(solutionLineItem);\n }\n }\n }\n\n if (e.action === 'update') {\n const parentLineItem = section.model && LineItemUtil.findById(section.model.id, [solutionLineItem]);\n\n if (parentLineItem) {\n //Assuming that radio control is the only control, that 'updates' values\n const previous = section.model?.lineItems.filter(li => li.port && li.port === section.boundData.name)[0];\n\n if (previous) {\n this.updateCardinalityVariable(parentLineItem, previous, 0);\n }\n\n const index = parentLineItem.lineItems.findIndex(li => li.id === previous?.id);\n\n const lineItem: LineItem = {\n id: UUID.UUID(),\n qty: previous?.qty,\n port: previous?.port,\n type: EntityUtil.isPresent(e.valueOption) ? e.valueOption : this.form.controls[e.id].value,\n cfgStatus: 'New',\n parentId: previous?.parentId,\n } as LineItem;\n\n this.updateCardinalityVariable(parentLineItem, lineItem);\n parentLineItem.lineItems[index] = lineItem;\n\n this.updateRuntime(solutionLineItem);\n }\n }\n\n if (e.action === 'remove') {\n const parentLineItem = section.model && LineItemUtil.findById(section.model.id, [solutionLineItem]);\n\n if (\n parentLineItem &&\n SectionsBinderHelper.isRemoveAllowed(parentLineItem, section.boundData.name, section.model?.qty)\n ) {\n const index = parentLineItem.lineItems.findIndex(\n item => item.type.toLowerCase() === e.valueOption?.toLowerCase(),\n );\n if (index > -1) {\n const removed = parentLineItem.lineItems.splice(index, 1)[0];\n this.updateCardinalityVariable(parentLineItem, removed, 0);\n this.updateRuntime(solutionLineItem);\n }\n }\n }\n\n if (e.action === 'qtyUpdate') {\n const typeSection = e.valueOption\n ? SectionHelperService.findSectionForValue(section, e.valueOption)\n : undefined;\n\n const typeLineItem = typeSection?.model && LineItemUtil.findById(typeSection.model.id, [solutionLineItem]);\n if (typeSection && typeLineItem) {\n typeLineItem.qty = +this.form.controls[typeSection.id + 'qty'].value;\n typeLineItem.cfgStatus = 'User';\n this.updateRuntime(solutionLineItem);\n }\n }\n\n if (e.action === 'adjustNetPrice') {\n const { valueOption, options } = e;\n const { amount } = options ?? {};\n\n const priceAdjustment: PriceAdjustment = {\n type: 'OVERRIDE_AMOUNT',\n explanation: 'Manual net price adjustment',\n formula: '',\n amount,\n };\n\n this.adjustPrice(valueOption, section, solutionLineItem, { priceAdjustment });\n }\n\n if (e.action === 'adjustListPrice') {\n const { valueOption, options } = e;\n const { amount } = options ?? {};\n\n const listPriceAdjustment: PriceAdjustment = {\n type: 'OVERRIDE_AMOUNT',\n explanation: 'Manual list price adjustment',\n formula: '',\n amount,\n };\n\n this.adjustPrice(valueOption, section, solutionLineItem, { listPriceAdjustment });\n }\n }\n\n if (entityType === BoundDataType[BoundDataType.TYPE]) {\n if (e.action === 'remove') {\n const parentLineItem =\n section.model?.parentId && LineItemUtil.findById(section.model.parentId, [solutionLineItem]);\n\n if (\n parentLineItem &&\n section.model &&\n section.model.port &&\n SectionsBinderHelper.isRemoveAllowed(parentLineItem, section.model.port, section.model?.qty)\n ) {\n const index = parentLineItem.lineItems.findIndex(item => item.id === section.model?.id);\n if (index > -1) {\n const removed = parentLineItem.lineItems.splice(index, 1)[0];\n this.updateCardinalityVariable(parentLineItem, removed, 0);\n this.collapsibleState.clearState(section.id);\n this.updateRuntime(solutionLineItem);\n }\n }\n }\n\n if (e.action === 'qtyUpdate') {\n const typeLineItem = section.model && LineItemUtil.findById(section.model.id, [solutionLineItem]);\n\n if (typeLineItem) {\n const qty = +this.form.controls[e.id + 'qty'].value;\n if (typeLineItem.parentId) {\n const parentLineItem = LineItemUtil.findById(typeLineItem.parentId, [solutionLineItem]);\n\n if (parentLineItem) {\n this.updateCardinalityVariable(parentLineItem, typeLineItem, qty);\n }\n }\n typeLineItem.qty = qty;\n typeLineItem.cfgStatus = 'User';\n this.updateRuntime(solutionLineItem);\n }\n }\n }\n\n if (entityType === BoundDataType[BoundDataType.ATTRIBUTE]) {\n if (e.action === 'update') {\n const parentLineItem = section.model && LineItemUtil.findById(section.model.id, [solutionLineItem]);\n const attribute = parentLineItem?.attributes.find(\n attr => attr.name.toLowerCase() === section.boundData.name.toLowerCase(),\n );\n\n if (attribute) {\n //Explicitly set value always win\n let value = typeof e.valueOption !== 'undefined' ? e.valueOption : this.form.controls[e.id].value;\n\n if (attribute.type === 'BOOLEAN') {\n value = value ? 1 : 0;\n }\n\n attribute.value = value;\n attribute.cfgStatus = 'User';\n\n this.updateRuntime(solutionLineItem);\n }\n }\n }\n } catch (e) {\n console.log(e);\n this.messageService.add({ key: this.messageBucketId, summary: `Configuration failed ${(e as any)?.message}` });\n }\n });\n\n this.runtimeService.onSolutionReadyEvent\n .pipe(takeUntil(this.unsubscribe))\n .subscribe(lineItem => this.onSolutionReady(lineItem));\n\n this.runtimeService.onSolutionUpdatedEvent\n .pipe(takeUntil(this.unsubscribe))\n .subscribe((data: LineItem | HttpErrorResponse) => {\n if (!(data instanceof HttpErrorResponse)) {\n return this.handleSolutionUpdate(data);\n }\n\n this.handleSolutionFailedUpdate(data);\n });\n\n this.runtimeService.onUIRefreshEvent.pipe(takeUntil(this.unsubscribe)).subscribe(() => {\n const { uiDefinition } = this.runtimeService.getRuntimeContext() ?? {};\n this.runtimeContext.uiDefinition = uiDefinition as any;\n this.formScope.scriptSessionScope = {};\n this.startRuntime();\n });\n }\n\n public onSolutionReady(lineItem: LineItem): void {\n const context = this.runtimeService.getRuntimeContext() as LegacyRuntimeContext;\n const configurationContext = this.contextService.resolve();\n\n const mergeContext: LegacyRuntimeContext = {\n ...context,\n properties: {\n ...context.properties,\n ...configurationContext.properties,\n },\n };\n\n const accountId = mergeContext.properties?.AccountId;\n if (accountId && accountId.length === 15) {\n this.runtimeContext = {\n ...mergeContext,\n properties: {\n ...mergeContext.properties,\n AccountId: SalesforceIdUtils.generateId18FromId15(accountId),\n },\n } as any;\n } else {\n this.runtimeContext = mergeContext as any;\n }\n\n this.solutionLineItem = lineItem;\n this.runtimeService.setRuntimeContext(this.runtimeContext);\n\n this.startRuntime();\n }\n\n private handleSolutionUpdate(updatedLineItem: LineItem): void {\n this.solutionLineItem = updatedLineItem;\n this.processSolution(true);\n this.runtimeService.solutionProcessed(this.solutionLineItem);\n this.cdr.detectChanges();\n }\n\n private handleSolutionFailedUpdate(error: HttpErrorResponse): void {\n const hasErrorMessage = EntityUtil.isPresent(error.error) && EntityUtil.isPresent(error.error.message);\n const message = hasErrorMessage ? error.error.message : 'Configuration failed';\n const { isHandlingConfigurationErrors } = this.runtimeContext.uiDefinition ?? {};\n\n if (isHandlingConfigurationErrors) {\n this.messageService.add({ key: this.messageBucketId, summary: message });\n }\n\n this.solutionLineItem = {\n ...this.solutionLineItem,\n messages: [...this.solutionLineItem.messages, `E:${message}`],\n };\n this.processSolution(true, true);\n this.runtimeService.solutionProcessed(this.solutionLineItem);\n\n this.cdr.detectChanges();\n }\n\n private updateCardinalityVariable(parent: LineItem, updated: LineItem, newQuantity?: number): void {\n const portDomain = updated.port ? parent.portDomains[updated.port] : undefined;\n const domainType = portDomain?.domainTypes.find(t => t.name === updated.type);\n const cardinality = domainType?.cardinality ?? 0;\n\n let qty;\n if (!Number.isFinite(domainType?.cardinality)) {\n qty = Number.isFinite(newQuantity) ? newQuantity : updated.qty;\n } else {\n qty = EntityUtil.isPresent(newQuantity)\n ? cardinality - updated.qty + (newQuantity as number)\n : cardinality + updated.qty;\n }\n\n const cardinalityName = '#CV-' + updated.type + '@' + updated.port;\n\n let cardinalityVariable = parent.attributes.find(a => a.name === cardinalityName);\n if (!cardinalityVariable) {\n cardinalityVariable = {\n id: UUID.UUID(),\n name: cardinalityName,\n } as Attribute;\n parent.attributes.push(cardinalityVariable);\n }\n cardinalityVariable.value = qty;\n cardinalityVariable.cfgStatus = 'User';\n }\n\n private createLineItem(section: Section, valueOption?: string, parentLineItem?: LineItem): LineItem {\n return {\n qty: +this.form.controls[section.id + 'qty'].value,\n port: section.boundData.name,\n type: EntityUtil.isPresent(valueOption) ? valueOption : this.form.controls[section.id].value,\n cfgStatus: 'New',\n parentId: parentLineItem?.id,\n } as LineItem;\n }\n\n public ngOnDestroy(): void {\n this.unsubscribe.next();\n\n this.sectionsService.destroy();\n }\n\n private startRuntime(): void {\n const uiDefinition = this.runtimeContext.uiDefinition;\n\n const defaultTab = uiDefinition?.tabs?.find(tab => tab.isDefault);\n this.activeUITab = EntityUtil.isPresent(defaultTab) ? defaultTab : uiDefinition?.tabs?.[0];\n\n this.sectionsService.compileModule(uiDefinition?.sections ?? [], uiDefinition?.isViewEncapsulated);\n\n this.processSolution();\n\n this.solutionIsReady = true;\n\n this.cdr.detectChanges();\n }\n\n private updateRuntime(lineItem: LineItem): void {\n this.solutionUpdated.emit(lineItem);\n }\n\n public addToCart(): void {\n const lineItem = EntityUtil.clone(this.solutionLineItem);\n\n this.runtimeService.stopRuntime(lineItem);\n }\n\n public processSolution(isUpdate?: boolean, isError?: boolean): void {\n //1. Bind sections to solution\n let sections = EntityUtil.clone(this.runtimeContext.uiDefinition?.sections) ?? [];\n const sourceSections = EntityUtil.clone(this.runtimeContext.uiDefinition?.sections) ?? [];\n this.updateLineItemsSectionPath(this.solutionLineItem);\n SectionsBinderHelper.setLineItemsPath(\n this.runtimeContext.runtimeModel,\n this.solutionLineItem,\n sections,\n sourceSections,\n (sec: any) => !sec.parentId && sec.boundData,\n this.runtimeContext.uiDefinition?.pricingEnabled ?? false,\n );\n\n sections = sections.filter(s => s.model && s.template);\n\n //2. Init form\n this.form = this.formService.initForm(sections, this.solutionLineItem);\n this.formScope.form = this.form;\n\n this.sortedSections = this.filterAndSort(getSectionTree(sections.filter(s => !s.isStatic)));\n\n if (!isUpdate) {\n this.staticSections = this.filterAndSort(getSectionTree(sections.filter(s => s.isStatic)));\n }\n\n if (!isError) {\n this.messageService.clear(this.messageBucketId);\n }\n }\n\n public hideModal(): void {\n this.runtimeService.cancelRuntime();\n }\n\n private updateLineItemsSectionPath(lineItem: LineItem, parent?: SectionPath): void {\n const path: SectionPath = {\n types: parent ? parent.types.concat([lineItem.type]) : [lineItem.type],\n ports: parent ? parent.ports.concat(lineItem.port ? [lineItem.port] : []) : [],\n } as SectionPath;\n\n lineItem.path = path;\n\n for (const child of lineItem.lineItems) {\n this.updateLineItemsSectionPath(child, lineItem.path);\n }\n }\n\n private filterAndSort(sections: Section[]): Section[] {\n const filtered = this.searchFilterPipe.transform(sections, this.activeUITab?.id, 'page');\n const ordered = this.orderByPipe.transform(filtered, 'order', 'asc');\n\n return ordered;\n }\n\n private findSection(id: string): Section | undefined {\n return EntityUtil.findByFieldHierarchically('id', id, [...this.sortedSections, ...this.staticSections], 'children');\n }\n}\n","<vl-loader label=\"Loading UI\" *ngIf=\"!solutionIsReady; else content\"></vl-loader>\n\n<ng-template #content>\n <div\n class=\"sidebar-tabs\"\n [ngClass]=\"{ hidden: !runtimeContext?.uiDefinition?.defaultPanels }\"\n #uiTabs=\"sidebarTabs\"\n sidebarTabs=\"{{ activeUITab?.id }}\"\n id=\"vl-default-sidebar-tabs\"\n >\n <ul>\n <li\n *ngFor=\"let tab of runtimeContext?.uiDefinition?.tabs | orderBy: 'order':'asc'\"\n [ngClass]=\"{ active: uiTabs.activeTab === tab.id }\"\n (click)=\"uiTabs.switchTab(tab.id)\"\n >\n <a href=\"javascript:void(0);\">{{ tab.name }}</a>\n </li>\n </ul>\n </div>\n\n <div class=\"sections-wrapper\">\n <form role=\"form\" name=\"form\" class=\"form-horizontal\" [formGroup]=\"form\" novalidate autocomplete=\"off\">\n <ng-container *ngFor=\"let section of staticSections; let i = index\">\n <ng-container *ngIf=\"section.model && section.template && !section.hidden\">\n <vl-section-renderer [section]=\"section\" [form]=\"form\"></vl-section-renderer>\n </ng-container>\n </ng-container>\n\n <ng-container *ngFor=\"let section of sortedSections; let i = index\">\n <ng-container *ngIf=\"section.model && section.template && !section.hidden\">\n <vl-section-renderer [section]=\"section\" [form]=\"form\"></vl-section-renderer>\n </ng-container>\n </ng-container>\n </form>\n\n <div\n class=\"modal-footer\"\n *ngIf=\"runtimeContext?.runtimeMode === 1\"\n id=\"vl-runtime-default-footer\"\n [ngClass]=\"{ hidden: !runtimeContext?.uiDefinition?.defaultPanels }\"\n >\n <div class=\"col-md-12 input-form-input\">\n <a href=\"javascript:void(0);\" class=\"btn btn-default\" (click)=\"form.valid && addToCart()\" id=\"add-to-cart-btn\"\n >Add to cart</a\n >\n <a href=\"javascript:void(0);\" class=\"btn btn-link\" (click)=\"hideModal()\" id=\"cancel-btn\">Cancel</a>\n </div>\n </div>\n </div>\n</ng-template>\n","import { ChangeDetectionStrategy, Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport { ConfigurationApiService } from '@veloceapps/api';\nimport {\n ConfigurationContextMode,\n EntityUtil,\n LineItem,\n ProductModelAttribute,\n ProductModelsContainer,\n RuntimeModel,\n SectionPathUtil,\n UIDefinition,\n} from '@veloceapps/core';\nimport { ContextService, RuntimeMode } from '@veloceapps/sdk/core';\nimport { Dictionary } from 'lodash';\nimport { combineLatest, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { ProductModelCacheService } from '../../services/product-model-cache.service';\nimport { RuntimeService } from '../../services/runtime.service';\nimport { LegacyRuntimeContext } from '../../types';\n\n@Component({\n selector: 'vl-runtime-preview',\n templateUrl: 'runtime-preview.component.html',\n styleUrls: ['runtime-preview.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RuntimePreviewComponent implements OnInit, OnDestroy {\n @Input() public modelId?: string;\n @Input() public set uiDefinition(value: UIDefinition) {\n this._uiDefinition = value;\n this.initDefinition(value);\n }\n\n private _uiDefinition?: UIDefinition;\n private initialisedUiDefinition?: UIDefinition;\n private productModelContainer?: ProductModelsContainer;\n\n private destroy$ = new Subject<void>();\n\n constructor(\n private runtimeService: RuntimeService,\n private modelCacheService: ProductModelCacheService,\n private configurationApiService: ConfigurationApiService,\n private contextService: ContextService,\n ) {}\n\n public ngOnInit(): void {\n if (!this.modelId) {\n return;\n }\n\n this.modelCacheService\n .getProductModel(this.modelId)\n .pipe(takeUntil(this.destroy$))\n .subscribe(container => {\n this.productModelContainer = container;\n\n if (this._uiDefinition) {\n this.initDefinition(this._uiDefinition);\n }\n });\n }\n\n public ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n public initDefinition(uiDefinition: UIDefinition): void {\n if (!this.productModelContainer) {\n return;\n }\n\n const initialisedUiDefinition = EntityUtil.clone(uiDefinition);\n\n const externals: ProductModelAttribute[] = this.productModelContainer.main.externals;\n if (externals) {\n initialisedUiDefinition.externals = externals.reduce<Dictionary<string>>((trunk, variable) => {\n return {\n ...trunk,\n [variable.name]: initialisedUiDefinition.externals?.[variable.name] ?? '',\n };\n }, {});\n } else {\n delete initialisedUiDefinition.externals;\n }\n\n this.initialisedUiDefinition = initialisedUiDefinition;\n\n this.launchRuntime();\n }\n\n public onSolutionUpdated(lineItem: LineItem): void {\n this.runtimeService.updateRuntime({ configurableRamp: lineItem });\n }\n\n private launchRuntime(): void {\n if (!this.modelId || !this.initialisedUiDefinition) {\n return;\n }\n\n SectionPathUtil.updateSectionsPath(this.initialisedUiDefinition.sections);\n\n const uiDefinition = EntityUtil.clone(this.initialisedUiDefinition);\n\n combineLatest([\n this.configurationApiService.getRuntimeDataByModelId(this.modelId),\n this.contextService.create('TestId', ConfigurationContextMode.TEST),\n ]).subscribe(([runtimeData]) => {\n const runtimeModel = RuntimeModel.create(runtimeData.types, runtimeData.products);\n const rootType = Array.from(runtimeModel.components.values()).find(\n c =>\n uiDefinition.rootType &&\n runtimeModel.isEquals(c.typeName, uiDefinition.rootType) &&\n EntityUtil.isPresent(c.productId),\n );\n\n if (rootType?.typeName) {\n uiDefinition.rootType = rootType.typeName;\n }\n\n const contextProductId = rootType ? rootType.productId : undefined;\n\n const context: LegacyRuntimeContext = {\n modelId: this.modelId ?? '',\n uiDefinition: uiDefinition,\n runtimeModel,\n runtimeMode: RuntimeMode.TEST,\n productId: contextProductId,\n properties: uiDefinition.externals,\n };\n\n this.runtimeService.startRuntime(context, {});\n });\n }\n}\n","<vl-runtime (solutionUpdated)=\"onSolutionUpdated($event)\"></vl-runtime>\n","import { CommonModule, DatePipe } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { ApiModule } from '@veloceapps/api';\nimport { LoaderModule } from '@veloceapps/components';\nimport { CoreModule } from '@veloceapps/core';\nimport { VeloceElementsModule } from '@veloceapps/elements';\nimport { SdkCoreModule } from '@veloceapps/sdk/core';\nimport { PopoverModule } from 'ngx-bootstrap/popover';\nimport { DialogService } from 'primeng/dynamicdialog';\nimport { ComponentPreviewComponent } from './components';\nimport { SectionRendererComponent } from './components/section-renderer/section-renderer.component';\nimport { RuntimePreviewComponent } from './components/ui-runtime-preview/runtime-preview.component';\nimport { RuntimeComponent } from './components/ui-runtime/runtime.component';\nimport { ShoppingCartService } from './services/cart.service';\nimport { ConfigurationService } from './services/configuration.service';\nimport { CurrentStateService } from './services/current-state.service';\nimport { ProductModelCacheService } from './services/product-model-cache.service';\nimport { RuntimeContextService } from './services/runtime-context.service';\nimport { RuntimeFormService } from './services/runtime-form.service';\nimport { RuntimeService } from './services/runtime.service';\nimport { SectionStoreService } from './services/section-store.service';\nimport { SectionsService } from './services/section.service';\n\n@NgModule({\n declarations: [RuntimeComponent, RuntimePreviewComponent, SectionRendererComponent, ComponentPreviewComponent],\n providers: [\n ShoppingCartService,\n RuntimeService,\n ConfigurationService,\n RuntimeContextService,\n RuntimeFormService,\n CurrentStateService,\n ProductModelCacheService,\n DatePipe,\n SectionsService,\n SectionStoreService,\n DialogService,\n ],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n CoreModule,\n ApiModule,\n VeloceElementsModule,\n PopoverModule,\n LoaderModule,\n SdkCoreModule,\n ],\n exports: [\n FormsModule,\n ReactiveFormsModule,\n RuntimeComponent,\n RuntimePreviewComponent,\n SectionRendererComponent,\n ComponentPreviewComponent,\n ],\n})\nexport class RuntimeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["Subject","Injectable","EntityUtil","FormGroup","UUID","SectionPathUtil","FormControl","TypeValidators","keys","isUndefined","isNull","isString","ConfigurationMode","map","RuntimeMode","ConfirmationComponent","RuntimeStep","take","tap","shareReplay","RuntimeModel","BehaviorSubject","ViewContainerRef","Component","Input","ViewChild","OrderByPipe","Inject","EventEmitter","TemplateRef","ChangeDetectionStrategy","Output","isDate","Directive","TemplatePortal","of","merge","NG_VALUE_ACCESSOR","HostBinding","PricingUtils","SHA1","_","rxjsOperators","rxjs","CurrencyPipe","DOCUMENT","CommonModule","FormsModule","ReactiveFormsModule","CoreModule","ApiModule","VeloceElementsModule","PopoverModule","LoaderModule","SdkCoreModule","DatePipe","NgModule","ViewChildren","ViewEncapsulation","ScrollingModule","ExperimentalScrollingModule","set","values","takeUntil","HttpErrorResponse","SalesforceIdUtils","MessageService","SearchFilterPipe","combineLatest","ConfigurationContextMode","DialogService"],"mappings":"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"}
1
+ {"version":3,"file":"veloceapps-sdk-runtime.umd.js","sources":["../../../../libs/sdk/runtime/services/collapsible-state.service.ts","../../../../libs/sdk/runtime/types/script-registry.types.ts","../../../../libs/sdk/runtime/services/form-scope.service.ts","../../../../libs/sdk/runtime/types/bound-data.types.ts","../../../../node_modules/tslib/tslib.es6.js","../../../../libs/sdk/runtime/utils/line-item.util.ts","../../../../libs/sdk/runtime/utils/sections-binder.helper.ts","../../../../libs/sdk/runtime/services/runtime-form.service.ts","../../../../libs/sdk/runtime/services/configuration.service.ts","../../../../libs/sdk/runtime/services/runtime.service.ts","../../../../libs/sdk/runtime/services/cart.service.ts","../../../../libs/sdk/runtime/services/current-state.service.ts","../../../../libs/sdk/runtime/services/product-model-cache.service.ts","../../../../libs/sdk/runtime/services/runtime-context.service.ts","../../../../libs/sdk/runtime/services/section-store.service.ts","../../../../libs/sdk/runtime/services/section-scope.service.ts","../../../../libs/sdk/runtime/execution/components/execution-section-renderer/execution-section-renderer.component.ts","../../../../libs/sdk/runtime/execution/components/execution-section-renderer/execution-section-renderer.component.html","../../../../libs/sdk/runtime/execution/components/children-placeholder/children-placeholder.component.ts","../../../../libs/sdk/runtime/execution/components/children-placeholder/children-placeholder.component.html","../../../../libs/sdk/runtime/execution/components/context-provider/context-provider.component.ts","../../../../libs/sdk/runtime/execution/utils/federated.util.ts","../../../../libs/sdk/runtime/execution/components/federated/federated.component.ts","../../../../libs/sdk/runtime/execution/components/federated/federated.component.html","../../../../libs/sdk/runtime/execution/directives/velo-attribute.directive.ts","../../../../libs/sdk/runtime/execution/components/velo-multiselect/velo-multiselect.component.ts","../../../../libs/sdk/runtime/execution/components/velo-multiselect/velo-multiselect.component.html","../../../../libs/sdk/runtime/execution/components/velo-attribute/velo-attribute.component.ts","../../../../libs/sdk/runtime/execution/components/velo-attribute/velo-attribute.component.html","../../../../libs/sdk/runtime/execution/components/velo-port-checkbox/velo-port-checkbox.component.ts","../../../../libs/sdk/runtime/execution/components/velo-port-checkbox/velo-port-checkbox.component.html","../../../../libs/sdk/runtime/execution/components/velo-port-dropdown/velo-port-dropdown.component.ts","../../../../libs/sdk/runtime/execution/components/velo-port-dropdown/velo-port-dropdown.component.html","../../../../libs/sdk/runtime/execution/components/velo-port-radio/velo-port-radio.component.ts","../../../../libs/sdk/runtime/execution/components/velo-port-radio/velo-port-radio.component.html","../../../../libs/sdk/runtime/execution/components/velo-type/velo-type.component.ts","../../../../libs/sdk/runtime/execution/components/velo-type/velo-type.component.html","../../../../libs/sdk/runtime/execution/directives/sf-query.directive.ts","../../../../libs/sdk/runtime/services/section-helper.service.ts","../../../../libs/sdk/runtime/execution/directives/velo-port.directive.ts","../../../../libs/sdk/runtime/execution/directives/vl-approval.directive.ts","../../../../libs/sdk/runtime/execution/directives/vl-document-attachments.directive.ts","../../../../libs/sdk/runtime/execution/directives/vl-document-templates.directive.ts","../../../../libs/sdk/runtime/execution/directives/vl-quote.directive.ts","../../../../libs/sdk/runtime/execution/directives/vl-ramp.directive.ts","../../../../libs/sdk/runtime/execution/directives/section-script.directive.ts","../../../../libs/sdk/runtime/execution/runtime-execution.module.ts","../../../../libs/sdk/runtime/services/section.service.ts","../../../../libs/sdk/runtime/components/section-renderer/section-renderer.component.ts","../../../../libs/sdk/runtime/components/section-renderer/section-renderer.component.html","../../../../libs/sdk/runtime/components/component-preview/component-preview.component.ts","../../../../libs/sdk/runtime/components/component-preview/component-preview.component.html","../../../../libs/sdk/runtime/utils/section.utils.ts","../../../../libs/sdk/runtime/components/ui-runtime/runtime.component.ts","../../../../libs/sdk/runtime/components/ui-runtime/runtime.component.html","../../../../libs/sdk/runtime/components/ui-runtime-preview/runtime-preview.component.ts","../../../../libs/sdk/runtime/components/ui-runtime-preview/runtime-preview.component.html","../../../../libs/sdk/runtime/runtime.module.ts","../../../../libs/sdk/runtime/veloceapps-sdk-runtime.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\n\n@Injectable()\nexport class CollapsibleStateService {\n public collapseSectionEvent: Observable<any>;\n private _collapsedSections: { [index: string]: boolean } = {}; // By Line Item Id\n\n private collapseSectionSubject = new Subject<any>();\n\n constructor() {\n this.collapseSectionEvent = this.collapseSectionSubject.asObservable();\n }\n\n public toggleCollapse(sectionId: string, silently?: boolean): void {\n this._collapsedSections[sectionId] = !this.isCollapsedSection(sectionId);\n\n if (!silently) {\n this.collapseSectionSubject.next([sectionId, this._collapsedSections[sectionId]]);\n }\n }\n\n public collapse(sectionId: string): void {\n this._collapsedSections[sectionId] = true;\n }\n\n public expand(sectionId: string): void {\n this._collapsedSections[sectionId] = false;\n }\n\n public clearState(sectionId: string): void {\n delete this._collapsedSections[sectionId];\n }\n\n public isCollapsedSection(sectionId: string): boolean {\n return this._collapsedSections[sectionId];\n }\n}\n","import { EntityUtil } from '@veloceapps/core';\n\nexport class ScriptRegistry {\n public scope: Map<string, any>;\n private store: Map<string, string[]>;\n\n constructor() {\n this.store = new Map();\n this.scope = new Map();\n }\n\n public exists(scriptId: string): boolean {\n const sectionIds = this.store.get(scriptId);\n\n return !EntityUtil.isEmpty(sectionIds);\n }\n\n public isRegistered(scriptId: string, sectionId: string): boolean {\n const sectionIds = this.store.get(scriptId);\n\n return !EntityUtil.isEmpty(sectionIds) && sectionIds?.findIndex(entryId => entryId === sectionId) !== -1;\n }\n\n public doRegister(scriptId: string, sectionId: string): void {\n const sectionIds = this.store.get(scriptId);\n\n if (!EntityUtil.isPresent(sectionIds)) {\n this.store.set(scriptId, [sectionId]);\n } else if (sectionIds?.findIndex(entryId => entryId === sectionId) === -1) {\n sectionIds.push(sectionId);\n }\n }\n\n public unRegister(scriptId: string, sectionId: string): void {\n const sectionIds = this.store.get(scriptId);\n\n if (!sectionIds) {\n return;\n }\n\n const index = sectionIds?.findIndex(entryId => entryId === sectionId);\n\n if (index !== -1) {\n sectionIds.splice(index, 1);\n\n // Remove orphan\n if (sectionIds.length < 1) {\n this.store.delete(scriptId);\n }\n }\n }\n\n public hasGlobalForScript(globalId: string): boolean {\n return this.scope.has(globalId);\n }\n\n public getGlobalForScript(globalId: string): any {\n return this.scope.get(globalId);\n }\n\n public setGlobalForScript(globalId: string, globalVariable: any): void {\n this.scope.set(globalId, globalVariable);\n }\n\n public removeGlobalForScript(globalId: string): void {\n this.scope.delete(globalId);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { Observable, Subject } from 'rxjs';\nimport { UpdateData } from '../types';\nimport { ScriptRegistry } from '../types/script-registry.types';\n\n@Injectable()\n// TODO ALE RENAME TO SESSION SCOPE\nexport class FormScopeService {\n public formSubmitEvent: Observable<UpdateData>;\n\n public scriptRegistry: ScriptRegistry = new ScriptRegistry();\n public scriptSessionScope: { [index: string]: any } = {};\n\n private formSubmitSubject = new Subject<UpdateData>();\n\n private _form = new FormGroup({});\n\n constructor() {\n this.formSubmitEvent = this.formSubmitSubject.asObservable();\n }\n\n public get form(): FormGroup {\n return this._form;\n }\n\n public set form(value: FormGroup) {\n this._form = value;\n }\n\n public publishFormUpdate(value: UpdateData): void {\n this.formSubmitSubject.next(value);\n }\n}\n","import { ProductModelAttribute, ProductPort, ProductType, SectionPath } from '@veloceapps/core';\n\nexport enum BoundDataType {\n TYPE,\n ATTRIBUTE,\n PORT,\n}\n\nexport interface BoundData {\n name: string;\n entity: ProductType | ProductModelAttribute | ProductPort;\n entityType: string;\n host?: string;\n path: SectionPath;\n}\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.push(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.push(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","import { EntityUtil, LineItem, RuntimeModel, SectionPath, UUID } from '@veloceapps/core';\n\nexport class LineItemPath {\n public path: string;\n private _relativePath = '';\n private _relativeAbstractPath = '';\n private _abstractPath = '';\n\n public set relativePath(relativePath: string) {\n this._relativePath = relativePath.toLowerCase();\n }\n\n public get relativePath(): string {\n return this._relativePath;\n }\n\n public set abstractPath(abstractPath: string) {\n this._abstractPath = abstractPath.toLowerCase();\n }\n\n public get abstractPath(): string {\n return this._abstractPath || this.path;\n }\n\n public set relativeAbstractPath(relativeAbstractPath: string) {\n this._relativeAbstractPath = relativeAbstractPath.toLowerCase();\n }\n\n constructor(path: string) {\n this.path = path.toLowerCase();\n }\n\n public isEqualTo(sectionPath: SectionPath): boolean {\n if (!sectionPath || !this.path || !sectionPath.path) {\n return false;\n }\n\n const otherPath = sectionPath.path.toLowerCase();\n const isEqual =\n this.path === otherPath || this._relativePath === otherPath || this._relativeAbstractPath === otherPath;\n\n //TODO ALE SORT OUT SEARCH\n if (!isEqual) {\n const abstractPathMatch = this._abstractPath === sectionPath.abstractPath.toLowerCase();\n const relativePathMatch = this._relativePath\n ? this._relativePath === sectionPath.relativePath.toLowerCase()\n : false;\n const relativeAbstractPathMatch =\n this._relativeAbstractPath && sectionPath.relativeAbstractPath\n ? sectionPath.relativeAbstractPath.toLowerCase() === sectionPath.relativePath.toLowerCase() &&\n this._relativeAbstractPath === sectionPath.relativePath.toLowerCase()\n : false;\n return abstractPathMatch && (relativePathMatch || relativeAbstractPathMatch);\n }\n\n return isEqual;\n }\n}\n\nexport class LineItemUtil {\n public static removeDeletedItems(original: LineItem): LineItem {\n const root = EntityUtil.clone(original);\n\n if (root) {\n let items = [root];\n\n for (let i = 0; i < items.length; i++) {\n const item = items[i];\n item.lineItems = (item.lineItems ?? []).filter(l => l.actionCode !== 'DELETE');\n items = items.concat(item.lineItems);\n }\n }\n\n return root;\n }\n\n public static replaceLineItemKeys(rootLineItem: LineItem): void {\n const replaceFn = (item: LineItem): void => {\n item.id = item.id ? 'DUMMY-' + item.id : item.id;\n item.rootId = item.rootId ? 'DUMMY-' + item.rootId : item.rootId;\n item.parentId = item.parentId ? 'DUMMY-' + item.parentId : item.parentId;\n item.offeringInstanceId = item.offeringInstanceId ? 'DUMMY-' + item.offeringInstanceId : void 0;\n item.offeringItemId = item.offeringItemId ? 'DUMMY-' + item.offeringItemId : void 0;\n item.rampInstanceId = item.rampInstanceId ? 'DUMMY-' + item.rampInstanceId : void 0;\n };\n\n const traverseFn = (lineItem: LineItem, callbackFn: any): void => {\n if (lineItem.lineItems && lineItem.lineItems.length > 0) {\n lineItem.lineItems.forEach(childLineItem => {\n callbackFn.apply(null, [childLineItem]);\n traverseFn.apply(null, [childLineItem, callbackFn]);\n });\n }\n };\n\n replaceFn.apply(null, [rootLineItem]);\n // rootLineItem.rootId = rootLineItem.id;\n\n traverseFn.apply(null, [rootLineItem, replaceFn]);\n }\n\n public static enrichPricingInfo(source: LineItem, pricingDto?: LineItem): LineItem {\n const result: LineItem = {\n ...source,\n };\n\n if (pricingDto) {\n result.productName = pricingDto.properties?.displayName || pricingDto.productName;\n result.type = pricingDto.type;\n result.rootId = pricingDto.rootId;\n result.assetId = pricingDto.assetId;\n result.openOrderLineItemId = pricingDto.openOrderLineItemId;\n result.activated = pricingDto.activated;\n result.actionCode = pricingDto.actionCode;\n result.serviceStartDate = pricingDto.serviceStartDate;\n result.effectiveDate = pricingDto.effectiveDate;\n result.startDate = pricingDto.startDate;\n result.endDate = pricingDto.endDate;\n result.offeringId = pricingDto.offeringId;\n result.offeringItemId = pricingDto.offeringItemId;\n result.offeringInstanceId = pricingDto.offeringInstanceId;\n result.rampInstanceId = pricingDto.rampInstanceId;\n result.planId = pricingDto.planId;\n\n if (!result.chargeItems) {\n result.chargeItems = pricingDto.chargeItems;\n }\n result.chargeGroupItems = [];\n }\n\n if (source.lineItems && source.lineItems.length > 0) {\n result.lineItems = [];\n\n source.lineItems.forEach((childSource: LineItem) => {\n const childDto = pricingDto && pricingDto.lineItems && pricingDto.lineItems.find(c => childSource.id === c.id);\n\n const childItem = LineItemUtil.enrichPricingInfo(childSource, childDto);\n\n result.lineItems.push(childItem);\n });\n }\n\n return result;\n }\n\n public static getLineItemPath(lineItem: LineItem, rootLineItem: LineItem): LineItemPath {\n let path: LineItemPath;\n\n if (!lineItem.parentId) {\n path = new LineItemPath('/' + lineItem.type);\n\n path.abstractPath = path.path;\n path.relativePath = path.path;\n path.relativeAbstractPath = path.path;\n } else {\n //TOODO ALE SORT OUT PATENT ITEM\n const parentItem = EntityUtil.findByFieldHierarchically<LineItem>(\n 'id',\n lineItem.parentId,\n [rootLineItem],\n 'lineItems',\n );\n\n const portType = lineItem.port && parentItem?.portDomains[lineItem.port].type;\n\n const parentPath = parentItem && LineItemUtil.getLineItemPath(parentItem, rootLineItem);\n\n if (parentPath) {\n path = new LineItemPath(parentPath.path + '/ports/' + lineItem.port + '/' + lineItem.type);\n\n path.abstractPath = parentPath.abstractPath + '/ports/' + (lineItem.port + '/' + portType);\n path.relativePath = '/' + lineItem.type;\n path.relativeAbstractPath = '/' + portType;\n } else {\n throw 'Could not construct line item path';\n }\n }\n\n return path;\n }\n\n public static findById(parentId: string, lineItems: LineItem[]): LineItem | undefined {\n return EntityUtil.findByFieldHierarchically('id', parentId, lineItems, 'lineItems');\n }\n\n public static countAttributeValues(scale: number, attributeDomain: any[]): number {\n const precision = LineItemUtil.precision(scale);\n let count = 0;\n attributeDomain.forEach(d => (count += d.max - d.min + precision));\n return count;\n }\n\n public static precision(scale: number): number {\n if (!scale) {\n return 1;\n }\n let s = '1';\n while (s.length < scale) {\n s = '0' + s;\n }\n return Number('0.' + s);\n }\n\n public static splitDomainToValues(scale: number, attributeDomain: any[]): string[] {\n const precision = this.precision(scale);\n let values: string[] = [];\n attributeDomain.forEach(\n interval => (values = values.concat(LineItemUtil.splitIntervalToValues(precision, interval))),\n );\n return values;\n }\n\n public static splitIntervalToValues(precision: number, interval: any): string[] {\n const values = [];\n for (let i = interval.min; i <= interval.max; i += precision) {\n values.push(i);\n }\n return values;\n }\n\n public static findLineItemsByPath(runtimeModel: RuntimeModel, lineItem: LineItem, path: SectionPath): LineItem[] {\n if (!runtimeModel.isEquals(lineItem.type, path.types[0])) {\n return [];\n }\n let lineItems = [lineItem];\n for (let i = 1; i < path.types.length; i++) {\n const portName = path.ports[i - 1];\n const typeName = path.types[i];\n lineItems = LineItemUtil.findLineItemChildren(runtimeModel, lineItems, portName, typeName);\n }\n return lineItems;\n }\n\n public static findLineItemChildren(\n runtimeModel: RuntimeModel,\n lineItems: LineItem[],\n portName: string,\n typeName: string,\n ): LineItem[] {\n const result = [];\n for (const lineItem of lineItems) {\n for (const childItem of lineItem.lineItems) {\n if (\n childItem.port?.toLowerCase() === portName.toLowerCase() &&\n runtimeModel.isEquals(childItem.type, typeName)\n ) {\n result.push(childItem);\n }\n }\n }\n return result;\n }\n\n public static findLineItemsByType(runtimeModel: RuntimeModel, lineItem: LineItem, typeName: string): LineItem[] {\n const result = [];\n let lineItems = [lineItem];\n for (let i = 0; i < lineItems.length; i++) {\n const lineItem = lineItems[i];\n if (runtimeModel.isEquals(lineItem.type, typeName)) {\n result.push(lineItem);\n }\n lineItems = lineItems.concat(lineItem.lineItems);\n }\n\n return result;\n }\n\n public static findLineItemForValue(model: LineItem, valueOption: string): LineItem | undefined {\n if (!EntityUtil.isPresent(model) || !EntityUtil.isPresent(model.lineItems)) {\n return;\n }\n\n return model.lineItems.find(li => li.type && li.type.toLowerCase() === valueOption.toLowerCase());\n }\n\n // TODO: add Product typings\n public static create(product: any, qty?: number): LineItem {\n return {\n id: UUID.UUID(),\n type: product.typeName,\n name: product.properties?.displayName || product.name,\n productName: product.name,\n productId: product.id,\n cfgStatus: 'User',\n actionCode: 'ADD',\n qty: qty || 1,\n } as LineItem;\n }\n\n public static upsert(value: LineItem, collection: LineItem[]): void {\n const index = collection.findIndex(item => item.id === value.id);\n if (index > -1) {\n collection[index] = value;\n } else {\n collection.push(value);\n }\n }\n\n public static compareSortOrder(a: LineItem, b: LineItem): number {\n const orderA = Number(a.properties['SortOrder']);\n const orderB = Number(b.properties['SortOrder']);\n if (!orderA && !orderB) {\n return LineItemUtil.compareProductName(a, b);\n }\n if (!orderA) {\n return 1;\n } else if (!orderB) {\n return -1;\n }\n const result = orderA - orderB;\n if (result === 0) {\n return LineItemUtil.compareProductName(a, b);\n }\n return result;\n }\n\n public static sort(lineItems: LineItem[]): void {\n if (lineItems) {\n lineItems.sort((a, b) => LineItemUtil.compareSortOrder(a, b));\n lineItems.forEach(i => LineItemUtil.sort(i.lineItems));\n }\n }\n\n private static compareProductName(a: LineItem, b: LineItem): number {\n if (a.productName) {\n return (a.productName ?? '').localeCompare(b.productName ?? '');\n } else if (b.productName) {\n return 1;\n }\n return 0;\n }\n}\n","import { EntityUtil, LineItem, RuntimeModel, Section, SectionPath, SectionPathUtil, UUID } from '@veloceapps/core';\nimport { BoundDataType } from '../types/bound-data.types';\nimport { LineItemUtil } from './line-item.util';\n\nexport class SectionsBinderHelper {\n public static setLineItemsPath(\n runtimeModel: RuntimeModel,\n rootLineItem: LineItem,\n sections: Section[],\n sourceSections: Section[],\n filterFn: any,\n pricingEnabled: boolean,\n ): Section[] {\n const filtered = sections.filter(filterFn);\n\n filtered.forEach(section => {\n const path: SectionPath = section.boundData.path;\n let foundLineItems: LineItem[];\n if (path.relative) {\n foundLineItems = LineItemUtil.findLineItemsByType(runtimeModel, rootLineItem, path.types[0]);\n } else {\n const remainder = rootLineItem.path ? SectionPathUtil.cut(runtimeModel, path, rootLineItem.path) : undefined;\n if (!remainder) {\n return [];\n }\n foundLineItems = LineItemUtil.findLineItemsByPath(runtimeModel, rootLineItem, remainder);\n }\n\n if (section.boundData.entityType === BoundDataType[BoundDataType.TYPE]) {\n SectionsBinderHelper.bindMatchingLineItems(\n runtimeModel,\n foundLineItems,\n section,\n sections,\n sourceSections,\n pricingEnabled,\n );\n } else if (section.boundData.entityType === BoundDataType[BoundDataType.ATTRIBUTE]) {\n foundLineItems = foundLineItems.filter(\n item =>\n item.attributes &&\n item.attributes.findIndex(a => a.name.toLowerCase() === section.boundData.name.toLowerCase()) !== -1,\n );\n\n foundLineItems.forEach(lineItem => {\n SectionsBinderHelper.bindLineItem(section, sections, sourceSections, lineItem, pricingEnabled);\n });\n } else if (section.boundData.entityType === BoundDataType[BoundDataType.PORT]) {\n foundLineItems = foundLineItems.filter(item => item.portDomains && item.portDomains[section.boundData.name]);\n\n SectionsBinderHelper.bindMatchingLineItems(\n runtimeModel,\n foundLineItems,\n section,\n sections,\n sourceSections,\n pricingEnabled,\n );\n }\n\n return;\n });\n\n return sections;\n }\n\n public static isAddAllowed(model: LineItem, portName: string, quantityToAdd: number = 1): boolean {\n const quantity = this.getQuantity(model, portName);\n\n return quantity + quantityToAdd <= +this.getPortMax(model, portName);\n }\n\n public static isRemoveAllowed(model: LineItem, portName: string, quantityToRemove: number = 1): boolean {\n const quantity = this.getQuantity(model, portName);\n\n return quantity - quantityToRemove >= +this.getPortMin(model, portName);\n }\n\n public static getMaxAllowed(lineItem: LineItem, portName: string): number {\n return +this.getPortMax(lineItem, portName) - this.getQuantity(lineItem, portName);\n }\n\n public static getQuantityGroupByValue(model: LineItem, portName: string): { [index: string]: number } {\n const quantities: { [index: string]: number } = {};\n\n if (model && portName) {\n model.lineItems\n .filter(li => li.port === portName)\n .forEach(li => {\n let quantity = (EntityUtil.isPresent(li.qty) && li.qty) || 1;\n\n if (EntityUtil.isPresent(quantities[li.type])) {\n quantity += quantities[li.type];\n }\n\n quantities[li.type] = quantity;\n });\n }\n\n return quantities;\n }\n\n private static bindMatchingLineItems(\n runtimeModel: RuntimeModel,\n foundLineItems: LineItem[],\n section: Section,\n sections: Section[],\n sourceSections: Section[],\n pricingEnabled: boolean,\n ): void {\n foundLineItems.forEach(lineItem => {\n const boundSection = SectionsBinderHelper.bindLineItem(\n section,\n sections,\n sourceSections,\n lineItem,\n pricingEnabled,\n );\n\n SectionsBinderHelper.setLineItemsPath(\n runtimeModel,\n lineItem,\n sections,\n sourceSections,\n (sec: any) => {\n return sec.boundData && sec.parentId === boundSection.id;\n },\n pricingEnabled,\n );\n });\n }\n\n private static bindLineItem(\n section: Section,\n sections: Section[],\n sourceSections: Section[],\n lineItem: LineItem,\n pricingEnabled: boolean,\n ): Section {\n const boundSection = section.model ? SectionsBinderHelper.doClone(section, sections, sourceSections) : section;\n\n boundSection.model = lineItem;\n boundSection.pricingEnabled = pricingEnabled;\n\n return boundSection;\n }\n\n private static doClone(source: Section, sections: Section[], sourceSections: Section[], parent?: Section): Section {\n const sourceClass = sourceSections.find(s => s.classId === source.classId) as Section;\n\n const clone = EntityUtil.clone(sourceClass);\n\n clone.id = UUID.UUID();\n clone.parentId = parent ? parent.id : source.parentId;\n\n sections.splice(sections.findIndex(s => s.id === source.id) + 1, 0, clone);\n sourceSections\n .filter(s => s.parentId === sourceClass.id)\n .forEach(s => SectionsBinderHelper.doClone(s, sections, sourceSections, clone));\n\n return clone;\n }\n\n private static getQuantity(model: LineItem, portName: string): number {\n let quantity = 0;\n\n model.lineItems\n .filter(li => li.port === portName)\n .forEach(li => {\n quantity += li.qty;\n });\n\n return quantity;\n }\n\n private static getPortMax(model: LineItem, portName: string): number {\n return model.portDomains[portName].maxCard;\n }\n\n private static getPortMin(model: LineItem, portName: string): number {\n return model.portDomains[portName].minCard;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { FormControl, FormGroup, ValidationErrors, ValidatorFn } from '@angular/forms';\nimport { EntityUtil, LineItem, PriceValue, Section, TypeValidators } from '@veloceapps/core';\nimport { Dictionary, isNull, isString, isUndefined, keys } from 'lodash';\nimport { BoundDataType } from '../types/bound-data.types';\nimport { LineItemUtil } from '../utils/line-item.util';\nimport { SectionsBinderHelper } from '../utils/sections-binder.helper';\n\n@Injectable()\nexport class RuntimeFormService {\n public sections: Section[] = [];\n public solutionLineItem?: LineItem;\n\n public initForm(sections: Section[], solutionLineItem: LineItem): FormGroup {\n this.sections = sections;\n this.solutionLineItem = solutionLineItem;\n\n const form = new FormGroup({});\n\n sections\n .filter(section => section.model && section.template && section.boundData)\n .forEach(section => {\n this.populateSectionValue(section);\n this.populateSectionPrice(section);\n this.populateFormControls(section, form);\n });\n\n return form;\n }\n\n private populateSectionValue(section: Section): void {\n let value;\n let valueOptions: string[] = [];\n let displayValues: Dictionary<string> = {};\n let properties: Dictionary<any> = {};\n\n if (FormServiceUtils.isPortSection(section)) {\n const portDomain = section.model?.portDomains[section.boundData.name];\n\n valueOptions = portDomain?.domainTypes.map(dt => dt.name) ?? [];\n properties =\n portDomain?.domainTypes.reduce<Dictionary<any>>(function (map, dt) {\n map[dt.name] = dt.properties;\n return map;\n }, {}) ?? {};\n displayValues =\n portDomain?.domainTypes.reduce<Dictionary<string>>(function (map, dt) {\n map[dt.name] = dt.displayName;\n return map;\n }, {}) ?? {};\n\n value = section.model?.lineItems.map(li => li.type);\n }\n\n if (FormServiceUtils.isAttributeSection(section)) {\n const attribute = section.model?.attributes.find(\n attr => attr.name.toLowerCase() === section.boundData.name.toLowerCase(),\n );\n if (attribute) {\n value = attribute.value;\n }\n\n const attributeDomain = section.model?.attributeDomains[section.boundData.name];\n\n if (!attribute?.type.match('GENERIC|BOOLEAN') && attributeDomain) {\n const count =\n attribute && attribute.scale != null\n ? LineItemUtil.countAttributeValues(attribute.scale, attributeDomain)\n : undefined;\n\n if (attribute && attribute.scale != null && count && count <= 100) {\n valueOptions = LineItemUtil.splitDomainToValues(attribute.scale, attributeDomain);\n } else {\n valueOptions = attributeDomain;\n }\n } else if (attributeDomain) {\n valueOptions = attributeDomain;\n }\n }\n\n if (!EntityUtil.isPresent(value)) {\n value = '';\n }\n\n section.sectionValue = {\n value,\n valueOptions,\n displayValues,\n properties,\n };\n }\n\n private populateSectionPrice(section: Section): void {\n const priceValue: PriceValue = { priceOptions: {} };\n\n if (FormServiceUtils.isPortSection(section)) {\n const portDomain = section.model?.portDomains[section.boundData.name];\n\n if (portDomain) {\n portDomain.domainTypes.forEach(dt => {\n if (dt.recommendedPrices && dt.recommendedPrices.length > 0) {\n priceValue.priceOptions[dt.name] = dt.recommendedPrices;\n } else {\n delete priceValue.priceOptions[dt.name];\n }\n });\n }\n }\n\n section.priceValue = priceValue;\n }\n\n private populateFormControls(section: Section, form: FormGroup): void {\n form.controls[section.id] = this.createFormControl(section);\n\n if (FormServiceUtils.isPortSection(section) || FormServiceUtils.isTypeSection(section)) {\n form.controls[section.id.concat('qty')] = this.createQtyControl(section);\n }\n }\n\n private createFormControl(section: Section): FormControl {\n const value = FormServiceUtils.isPortSection(section) ? void 0 : section.sectionValue?.value;\n\n return new FormControl(value, this.getFormControlValidators(section));\n }\n\n private createQtyControl(section: Section): FormControl {\n const isTypeSection = FormServiceUtils.isTypeSection(section);\n\n const validators = [];\n\n const maxAllowed = this.getMaxAllowed(section);\n\n //TODO TEMPORARY SOLUTION (WILL BE DISABLED ONCE RADIO CONTROLS IMPLEMENTED)\n if (maxAllowed > 0) {\n validators.push(this.getQuantityValidator(maxAllowed, isTypeSection ? section.model?.qty ?? 0 : 0));\n }\n\n const qtyValue = isTypeSection ? section.model?.qty : 1;\n\n return new FormControl(qtyValue, validators);\n }\n\n private getMaxAllowed(section: Section): number {\n let lineItem = section.model;\n let portName = section.boundData.name;\n\n if (FormServiceUtils.isTypeSection(section)) {\n if (section.model && EntityUtil.isPresent(section.model.parentId) && this.solutionLineItem) {\n if (section.model.parentId) {\n lineItem = LineItemUtil.findById(section.model.parentId, [this.solutionLineItem]);\n }\n portName = section.model.port;\n } else {\n return 0;\n }\n }\n\n if (!lineItem) {\n return 0;\n }\n\n return SectionsBinderHelper.getMaxAllowed(lineItem, portName);\n }\n\n //TODO ALE TO SUPPORT EMPTY VALUES FOR INTERVAL ATTRIBUTES OUT OF DOMAIN\n private getFormControlValidators(section: Section): ValidatorFn[] | null {\n if (!FormServiceUtils.isAttributeSection(section)) {\n return null;\n }\n\n const validators = [];\n const parentLineItem =\n section.model && this.solutionLineItem && FormServiceUtils.findParent(section.model.id, [this.solutionLineItem]);\n const attribute =\n parentLineItem &&\n parentLineItem.attributes.find(attr => attr.name.toLowerCase() === section.boundData.name.toLowerCase());\n\n if (!attribute || !attribute.type) {\n return null;\n }\n\n const primitiveTypesValidators: any = {\n INT: TypeValidators.integerValidator(),\n 'DOUBLE|DECIMAL': TypeValidators.decimalValidator(10),\n };\n\n keys(primitiveTypesValidators).forEach(types => {\n if (types.match(attribute.type)) {\n const validator = primitiveTypesValidators[types];\n\n validators.push(validator);\n }\n });\n\n if (!attribute.type.match('GENERIC|BOOLEAN|MULTIPLE')) {\n const sectionLabel = section.label;\n\n const intervalValidator: ValidatorFn = function (control) {\n if (isUndefined(control.value) || isNull(control.value) || isNaN(+control.value)) {\n return { interval: { message: sectionLabel + ' is not in domain' } };\n }\n\n if (!isUndefined(control.value) && isString(control.value) && control.value.length === 0) {\n return null;\n }\n\n const attributeDomain = section.model?.attributeDomains[section.boundData.name];\n\n const valid = attributeDomain?.some(valueOption => {\n const min = +valueOption.min;\n const max = +valueOption.max;\n\n return +control.value <= max && +control.value >= min;\n });\n\n if (!valid) {\n return { interval: { message: sectionLabel + ' is not in domain' } };\n }\n\n return null;\n };\n\n validators.push(intervalValidator);\n }\n\n if (section.required) {\n validators.push(TypeValidators.requiredValidator(section.label + ' is required '));\n }\n\n return validators.length !== 0 ? validators : null;\n }\n\n private getQuantityValidator(max: number, originalQty: number): ValidatorFn {\n return (control): ValidationErrors | null => {\n if (!control.value) {\n return { quantity: { message: 'Required' } };\n } else if (isNaN(+control.value) || +control.value < 1) {\n return { quantity: { message: 'Invalid value' } };\n } else if (+control.value > max + originalQty) {\n return { quantity: { message: 'Max quantity ' + (max + originalQty) } };\n } else {\n return null;\n }\n };\n }\n}\n\nexport class FormServiceUtils {\n public static isPortSection(section: Section): boolean {\n return section && section.boundData && section.boundData.entityType === BoundDataType[BoundDataType.PORT];\n }\n\n public static isTypeSection(section: Section): boolean {\n return section && section.boundData && section.boundData.entityType === BoundDataType[BoundDataType.TYPE];\n }\n\n public static isAttributeSection(section: Section): boolean {\n return section && section.boundData && section.boundData.entityType === BoundDataType[BoundDataType.ATTRIBUTE];\n }\n\n public static findParent(parentId: string, lineItems: LineItem[]): LineItem | undefined {\n return EntityUtil.findByFieldHierarchically('id', parentId, lineItems, 'lineItems');\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ConfigurationApiService } from '@veloceapps/api';\nimport { ConfirmationComponent, ConfirmationConfig } from '@veloceapps/components';\nimport { ConfigurationMode, ConfigurationRequest, LineItem, UUID, VlWindow } from '@veloceapps/core';\nimport { ContextService, RuntimeMode } from '@veloceapps/sdk/core';\nimport { Dictionary } from 'lodash';\nimport { DialogService } from 'primeng/dynamicdialog';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { LegacyRuntimeContext } from '../types';\nimport { QuoteStates } from '../types/quote-states.types';\n\ndeclare const window: VlWindow;\n\n@Injectable()\nexport class ConfigurationService {\n constructor(\n private configurationApiService: ConfigurationApiService,\n private contextService: ContextService,\n private dialogService: DialogService,\n ) {}\n\n public configure(runtimeContext: LegacyRuntimeContext, states: QuoteStates, resolve?: boolean): Observable<LineItem> {\n const lineItem = (states && states.configurableRamp) || this.getDefaultLineItem(runtimeContext);\n const configurationMode = resolve ? ConfigurationMode.RESOLVE : ConfigurationMode.SEARCH;\n const configurationRequest = this.createRequest(lineItem, runtimeContext, configurationMode);\n configurationRequest.lineItems = states.currentState || [];\n configurationRequest.asset = states.asset;\n const runtimeModel = runtimeContext.runtimeModel;\n const pricingEnabled = runtimeContext.uiDefinition?.pricingEnabled;\n return this.configurationApiService\n .configureLineItem({\n configurationRequest,\n runtimeModel,\n pricingEnabled,\n })\n .pipe(\n map(({ lineItem, context, deletedLineItems }) => {\n if (context) {\n this.contextService.update({ properties: context.properties });\n }\n if (deletedLineItems?.length) {\n this.showInactiveProductsConfirmation();\n }\n return lineItem;\n }),\n );\n }\n\n private createRequest(\n lineItem: LineItem,\n runtimeContext: LegacyRuntimeContext,\n configurationMode: ConfigurationMode,\n ): ConfigurationRequest {\n if (runtimeContext.runtimeMode === RuntimeMode.TEST) {\n const properties: Dictionary<any> = {\n ...runtimeContext.properties,\n ModelId: runtimeContext.modelId,\n RuntimeMode: 'TEST',\n PricingEnabled: String(runtimeContext.uiDefinition?.pricingEnabled),\n StartDate: runtimeContext.properties?.StartDate ?? new Date().toISOString().substring(0, 10),\n PriceListId: runtimeContext.uiDefinition?.priceList,\n };\n\n this.contextService.update({ properties });\n } else {\n const context = this.contextService.resolve();\n\n if (context.properties && runtimeContext.properties?.StartDate) {\n this.contextService.update({\n properties: {\n ...context.properties,\n ...runtimeContext.properties,\n },\n });\n }\n }\n\n return {\n lineItem,\n mode: configurationMode,\n step: runtimeContext.invocationContext && runtimeContext.invocationContext.runtimeStep,\n attributeDomainMode: 'ALL',\n context: this.contextService.resolve(),\n };\n }\n\n private getDefaultLineItem(context: LegacyRuntimeContext): LineItem {\n const id = UUID.UUID();\n\n const lineItem: LineItem = {\n id,\n type: context.uiDefinition?.rootType ?? '',\n cfgStatus: 'Default',\n qty: 1,\n productName: context.properties?.displayName || context.productName,\n productId: context.productId ?? '',\n offeringId: context.offeringId,\n ...(context.offeringId\n ? { offeringId: context.offeringId, offeringInstanceId: context.offeringInstanceId || id }\n : {}),\n } as LineItem;\n\n return lineItem;\n }\n\n private showInactiveProductsConfirmation(): void {\n const confirmationConfig: ConfirmationConfig = {\n title: ' ',\n description: 'This quote contains inactive products. Do you want to remove them?',\n primaryButtonLabel: 'Remove products',\n secondaryButtonLabel: 'Back to Quote',\n };\n\n this.dialogService\n .open(ConfirmationComponent, {\n dismissableMask: false,\n closeOnEscape: false,\n closable: false,\n showHeader: true,\n header: `Inactive Products in Quote`,\n width: '440px',\n data: { confirmationConfig },\n })\n .onClose.subscribe(result => {\n if (!result) {\n const context = this.contextService.resolve();\n window['VELO_BACK_FN'].apply(null, [context.headerId]);\n }\n });\n }\n}\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { LineItem, UIDefinition } from '@veloceapps/core';\nimport { ContextService, RuntimeStep } from '@veloceapps/sdk/core';\nimport { MessageService } from 'primeng/api';\nimport { Subject } from 'rxjs';\nimport { take } from 'rxjs/operators';\nimport { LegacyRuntimeContext } from '../types';\nimport { QuoteStates } from '../types/quote-states.types';\nimport { ConfigurationService } from './configuration.service';\n\n@Injectable()\nexport class RuntimeService {\n private runtimeContext: LegacyRuntimeContext | undefined;\n\n private solutionReadySubject = new Subject<LineItem>();\n public onSolutionReadyEvent = this.solutionReadySubject.asObservable();\n\n private solutionUpdateStartedSubject = new Subject<void>();\n public onSolutionUpdateStartedEvent = this.solutionUpdateStartedSubject.asObservable();\n\n private solutionUpdatedSubject = new Subject<LineItem | HttpErrorResponse>();\n public onSolutionUpdatedEvent = this.solutionUpdatedSubject.asObservable();\n\n private solutionProcessedSubject = new Subject<LineItem>();\n public onSolutionProcessed = this.solutionProcessedSubject.asObservable();\n\n private solutionStopSubject = new Subject<LineItem>();\n public onSolutionStopEvent = this.solutionStopSubject.asObservable();\n\n private solutionCancelSubject = new Subject<void>();\n public onSolutionCancelEvent = this.solutionCancelSubject.asObservable();\n\n private uiRefreshSubject = new Subject<void>();\n public onUIRefreshEvent = this.uiRefreshSubject.asObservable();\n\n constructor(\n private configurationService: ConfigurationService,\n private contextService: ContextService,\n private messageService: MessageService,\n ) {}\n\n private displayErrorMessage(error: any): void {\n this.messageService.add({\n severity: 'error',\n summary: error.error?.message || error.message || JSON.stringify(error),\n });\n }\n\n public startRuntime(context: LegacyRuntimeContext, states: QuoteStates, resolve?: boolean): void {\n this.setRuntimeContext(context);\n this.setRuntimeStep(RuntimeStep.START);\n this.configurationService\n .configure(context, states, resolve)\n .pipe(take(1))\n .subscribe(\n lineItem => {\n this.solutionReadySubject.next(lineItem);\n },\n error => {\n this.displayErrorMessage(error);\n this.solutionUpdatedSubject.next(error);\n },\n );\n }\n\n public updateRuntime(states: QuoteStates, configurationContextProperties?: { [index: string]: string }): void {\n if (!this.runtimeContext) {\n return;\n }\n\n this.solutionUpdateStartedSubject.next();\n this.setRuntimeStep(RuntimeStep.UPDATE);\n this.updateRuntimeContext(configurationContextProperties);\n this.configurationService\n .configure(this.runtimeContext, states)\n .pipe(take(1))\n .subscribe(\n lineItem => {\n const context = this.contextService.resolve();\n\n this.updateRuntimeContext(context.properties);\n this.solutionUpdatedSubject.next(lineItem);\n },\n error => {\n this.displayErrorMessage(error);\n this.solutionUpdatedSubject.next(error);\n },\n );\n }\n\n public stopRuntime(solutionLineItem: LineItem): void {\n this.solutionStopSubject.next(solutionLineItem);\n }\n\n public cancelRuntime(): void {\n this.solutionCancelSubject.next();\n }\n\n public setRuntimeContext(runtimeContext: LegacyRuntimeContext): void {\n this.runtimeContext = runtimeContext;\n }\n\n public getRuntimeContext(): LegacyRuntimeContext | undefined {\n return this.runtimeContext;\n }\n\n public solutionProcessed(lineItem: LineItem): void {\n this.solutionProcessedSubject.next(lineItem);\n }\n\n public refreshUI(uiDefinition: UIDefinition): void {\n if (!this.runtimeContext) {\n return;\n }\n\n this.runtimeContext = {\n ...this.runtimeContext,\n uiDefinition,\n };\n this.uiRefreshSubject.next();\n }\n\n private updateRuntimeContext(configurationContextProperties?: { [index: string]: string }): void {\n if (!this.runtimeContext || !configurationContextProperties) {\n return;\n }\n\n this.runtimeContext = { ...this.runtimeContext, properties: configurationContextProperties };\n }\n\n private setRuntimeStep(runtimeStep: RuntimeStep): void {\n if (!this.runtimeContext) {\n return;\n }\n\n this.runtimeContext.invocationContext = {\n ...this.runtimeContext.invocationContext,\n runtimeStep,\n };\n }\n}\n","import { Injectable } from '@angular/core';\nimport { PriceApiService } from '@veloceapps/api';\nimport { LineItem, PriceSummary } from '@veloceapps/core';\nimport { ContextService, QuoteDraftService } from '@veloceapps/sdk/core';\nimport { Observable } from 'rxjs';\nimport { take, tap } from 'rxjs/operators';\n\n@Injectable()\nexport class ShoppingCartService {\n constructor(\n private priceApiService: PriceApiService,\n private contextService: ContextService,\n private quoteService: QuoteDraftService,\n ) {}\n\n public setCartExternally(currentState: LineItem[]): Observable<PriceSummary> {\n const context = this.contextService.resolve();\n\n return this.priceApiService.calculate({ context, currentState }).pipe(\n take(1),\n tap(({ lineItems }: PriceSummary) => {\n this.quoteService.setCurrentLineItemState(lineItems);\n }),\n );\n }\n\n public getCurrentState(): LineItem[] {\n return this.quoteService.currentState;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { LineItem } from '@veloceapps/core';\n\n@Injectable({ providedIn: 'root' })\nexport class CurrentStateService {\n public currentState: LineItem[] = [];\n\n public update(state: LineItem[]): void {\n this.currentState = state;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ProductModelApiService } from '@veloceapps/api';\nimport { ProductModelsContainer } from '@veloceapps/core';\nimport { Observable } from 'rxjs';\nimport { shareReplay } from 'rxjs/operators';\n\n@Injectable()\nexport class ProductModelCacheService {\n constructor(private productModelApiService: ProductModelApiService) {}\n\n private cachedModel: Map<string, Observable<ProductModelsContainer>> = new Map();\n\n public getProductModel(currentModelId: string, version?: string): Observable<ProductModelsContainer> {\n if (!this.cachedModel.has(currentModelId) || version) {\n this.clearCache();\n\n this.cachedModel.set(\n currentModelId,\n this.productModelApiService.load(currentModelId, version).pipe(shareReplay(1)),\n );\n }\n\n return this.cachedModel.get(currentModelId) as Observable<ProductModelsContainer>;\n }\n\n public getCachedModel(): Observable<ProductModelsContainer> {\n const ids = Array.from(this.cachedModel.keys());\n\n return this.cachedModel.get(ids[0]) as Observable<ProductModelsContainer>;\n }\n\n public clearCache(): void {\n this.cachedModel.clear();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ConfigurationApiService } from '@veloceapps/api';\nimport { RuntimeModel, SectionPathUtil, UIDefinition } from '@veloceapps/core';\nimport { ContextService, RuntimeMode } from '@veloceapps/sdk/core';\nimport { MessageService } from 'primeng/api';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { LegacyRuntimeContext } from '../types';\n\n@Injectable()\nexport class RuntimeContextService {\n constructor(\n private configurationApiService: ConfigurationApiService,\n private messageService: MessageService,\n private contextService: ContextService,\n ) {}\n\n public getRuntimeContext(productId: string, offeringId?: string): Observable<LegacyRuntimeContext> {\n return this.configurationApiService.getRuntimeDataByProductId(productId, offeringId).pipe(\n map(runtimeData => {\n const uiDefinition = this.getUIDefinition(runtimeData.uiDefinitions);\n const runtimeModel = RuntimeModel.create(runtimeData.types, runtimeData.products);\n const { productName, properties } =\n Array.from(runtimeModel.components.values()).find(c => c.productId === productId) ?? {};\n\n return {\n modelId: runtimeData.modelId,\n uiDefinition: uiDefinition,\n runtimeModel: runtimeModel,\n runtimeMode: RuntimeMode.PROD,\n productId: productId,\n productType: properties?.displayName || productName,\n offeringId: offeringId,\n properties: {\n PricingEnabled: uiDefinition.pricingEnabled ? 'true' : 'false',\n },\n };\n }),\n );\n }\n\n private getUIDefinition(uiDefinitions: UIDefinition[] = []): UIDefinition {\n const { uiDefinitionId } = this.contextService.resolve();\n\n const findByFn = (uiDef: UIDefinition): boolean => (uiDefinitionId ? uiDefinitionId === uiDef.id : uiDef.primary);\n\n const uiDefinition = uiDefinitions.find(findByFn) || (uiDefinitions.length === 1 && { ...uiDefinitions[0] });\n\n if (!uiDefinition) {\n const errMsg = `Unable to find ${uiDefinitionId ? uiDefinitionId : 'Default'} UI`;\n\n this.messageService.add({\n severity: 'error',\n summary: 'ERROR',\n });\n throw new Error(errMsg);\n }\n\n SectionPathUtil.updateSectionsPath(uiDefinition.sections);\n\n return uiDefinition;\n }\n}\n","import { ComponentFactory, Injectable } from '@angular/core';\nimport { Section } from '@veloceapps/core';\n\n@Injectable()\nexport class SectionStoreService {\n private _componentFactories: ComponentFactory<any>[] = [];\n\n public set componentFactories(data: ComponentFactory<any>[]) {\n this._componentFactories = data;\n }\n\n public get componentFactories(): ComponentFactory<any>[] {\n return this._componentFactories;\n }\n\n public getComponentFactory(section: Section): ComponentFactory<any> | undefined {\n return this.componentFactories.find(f => f.selector === section.dynamicSelector);\n }\n}\n","import { Injectable, TemplateRef } from '@angular/core';\nimport { Section } from '@veloceapps/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable()\nexport class SectionScopeService {\n public get section(): Section {\n return this._section;\n }\n\n public set section(value: Section) {\n this._section = value;\n this.indent = this.getIndent(value);\n }\n public indent = 1;\n private _section!: Section;\n\n public templates = new BehaviorSubject<TemplateRef<any>[]>([]);\n\n private getIndent(section: Section): number {\n if (!section || !section.parentId) {\n return 1;\n } else {\n let current = section;\n\n let indent = 1;\n\n while (current && current.parent) {\n current = current.parent;\n\n indent++;\n }\n\n return indent;\n }\n }\n}\n","import {\n AfterViewInit,\n Component,\n ComponentRef,\n Injector,\n Input,\n NgModuleRef,\n OnDestroy,\n OnInit,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { Section } from '@veloceapps/core';\nimport { SectionScopeService } from '../../../services/section-scope.service';\nimport { SectionStoreService } from '../../../services/section-store.service';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'section-renderer',\n templateUrl: 'execution-section-renderer.component.html',\n styleUrls: ['execution-section-renderer.component.scss'],\n providers: [SectionScopeService],\n})\nexport class ExecutionSectionRendererComponent implements OnInit, AfterViewInit, OnDestroy {\n private _section!: Section;\n\n @Input()\n public set section(value: Section) {\n this._section = value;\n this.sectionScope.section = value;\n }\n\n public get section(): Section {\n return this._section;\n }\n\n @Input()\n public form!: FormGroup;\n\n constructor(\n private _injector: Injector,\n private _m: NgModuleRef<any>,\n private sectionScope: SectionScopeService,\n private sectionStore: SectionStoreService,\n ) {}\n\n @ViewChild('container', { read: ViewContainerRef, static: true })\n public container!: ViewContainerRef;\n\n private componentRef: ComponentRef<any> | null = null;\n\n public ngOnInit(): void {\n this.renderSection();\n }\n\n public ngAfterViewInit(): void {\n if (this.componentRef) {\n this.sectionScope.templates.next(this.componentRef.instance['templates']?.toArray() ?? []);\n }\n }\n\n public ngOnDestroy(): void {\n if (this.componentRef) {\n this.componentRef.destroy();\n this.componentRef = null;\n }\n }\n\n public renderSection(): void {\n if (this.componentRef) {\n this.componentRef.destroy();\n this.componentRef = null;\n }\n\n const componentFactory = this.sectionStore.getComponentFactory(this._section);\n if (!componentFactory) {\n return;\n }\n\n this.componentRef = componentFactory.create(this._injector, [], null, this._m);\n this.componentRef.location.nativeElement.setAttribute(\n 'sectionId',\n `${this._section.model?.id}${this._section.label}`,\n );\n this.componentRef.instance['form'] = this.form;\n this.componentRef.instance['section'] = this.section;\n this.container.insert(this.componentRef.hostView);\n }\n}\n","<ng-template #container></ng-template>","import { Component, Input, OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { OrderByPipe, Section } from '@veloceapps/core';\nimport { Subscription } from 'rxjs';\nimport { CollapsibleStateService } from '../../../services/collapsible-state.service';\nimport { FormScopeService } from '../../../services/form-scope.service';\nimport { SectionScopeService } from '../../../services/section-scope.service';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'children-placeholder',\n templateUrl: 'children-placeholder.component.html',\n providers: [OrderByPipe],\n})\nexport class ChildrenPlaceholderComponent implements OnInit, OnChanges, OnDestroy {\n @Input()\n public children?: Section[];\n\n public _children: Section[] = [];\n\n public section!: Section;\n\n public form!: FormGroup;\n\n public sub!: Subscription;\n\n public collapsed = false;\n\n constructor(\n private sectionScope: SectionScopeService,\n private formScope: FormScopeService,\n private collapsibleState: CollapsibleStateService,\n ) {}\n\n public ngOnInit(): void {\n this.section = this.sectionScope.section;\n this.form = this.formScope.form;\n\n this.collapsed = this.section.model ? this.collapsibleState.isCollapsedSection(this.section.model.id) : true;\n\n this.sub = this.collapsibleState.collapseSectionEvent.subscribe(e => {\n const lineItemId = e[0];\n\n if (this.section.model?.id === lineItemId) {\n this.collapsed = e[1];\n }\n });\n\n this.setChildren();\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (!this.children || changes.children?.currentValue !== changes.children?.previousValue) {\n this.setChildren();\n }\n }\n\n public setChildren(): void {\n this._children = this.children ? this.children : this.section.children;\n }\n\n public ngOnDestroy(): void {\n this.sub.unsubscribe();\n }\n}\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'template-component',\n templateUrl: 'children-placeholder.component.html',\n})\nexport class TemplateComponent extends ChildrenPlaceholderComponent {}\n","<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","import { Component, Inject, Input, OnInit } from '@angular/core';\nimport { RuntimeModel, RuntimeProduct, RuntimeType } from '@veloceapps/core';\nimport { Dictionary } from 'lodash';\nimport { RuntimeService } from '../../../services/runtime.service';\n\n@Component({\n selector: 'vl-context-provider',\n template: '',\n})\nexport class ContextProviderComponent implements OnInit {\n @Input() public types: RuntimeType[] = [];\n @Input() public products: Dictionary<RuntimeProduct[]> = {};\n\n constructor(@Inject(RuntimeService) private runtimeService: RuntimeService) {}\n\n public ngOnInit(): void {\n const context = this.runtimeService.getRuntimeContext();\n\n if (!context) {\n return;\n }\n\n this.runtimeService.setRuntimeContext({\n ...context,\n runtimeModel: RuntimeModel.create(this.types, this.products),\n });\n }\n}\n","import { Dictionary } from 'lodash';\n\ntype Scope = unknown;\ntype Factory = () => any;\n\ntype Container = {\n init(shareScope: Scope): void;\n get(module: string): Factory;\n};\n\ndeclare const __webpack_init_sharing__: (shareScope: string) => Promise<void>;\ndeclare const __webpack_share_scopes__: { default: Scope };\n\nconst moduleMap: Dictionary<boolean> = {};\n\nfunction loadRemoteEntry(remoteEntry: string): Promise<void> {\n return new Promise<void>((resolve, reject) => {\n if (moduleMap[remoteEntry]) {\n resolve();\n return;\n }\n\n const script = document.createElement('script');\n script.src = remoteEntry;\n\n script.onerror = reject;\n\n script.onload = (): void => {\n moduleMap[remoteEntry] = true;\n resolve(); // window is the global namespace\n };\n\n document.body.append(script);\n });\n}\n\nasync function lookupExposedModule<T>(remoteName: string, exposedModule: string): Promise<T> {\n // Initializes the share scope. This fills it with known provided modules from this build and all remotes\n await __webpack_init_sharing__('default');\n const container = (window as any)[remoteName] as Container; // or get the container somewhere else\n // Initialize the container, it may provide shared modules\n\n await container.init(__webpack_share_scopes__.default);\n const factory = await container.get(exposedModule);\n const Module = factory();\n return Module as T;\n}\n\nexport type LoadRemoteModuleOptions = {\n remoteEntry: string;\n remoteName: string;\n exposedModule: string;\n};\n\nexport async function loadRemoteModule(options: LoadRemoteModuleOptions): Promise<any> {\n await loadRemoteEntry(options.remoteEntry);\n\n return await lookupExposedModule<any>(options.remoteName, options.exposedModule);\n}\n","import {\n AfterViewInit,\n ApplicationRef,\n ChangeDetectionStrategy,\n Compiler,\n Component,\n ElementRef,\n EventEmitter,\n Injector,\n Input,\n OnChanges,\n Output,\n Renderer2,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { LineItem } from '@veloceapps/core';\nimport { loadRemoteModule } from '../../utils/federated.util';\n\nenum IntegrationEvent {\n Init = 'Init',\n}\n\ninterface InputData {\n rootLineItem: LineItem;\n}\n\ninterface IntegrationEventPayload {\n type: IntegrationEvent;\n payload?: unknown;\n}\n\ninterface InegrationComponentInstance extends OnChanges {\n integrationEvent: EventEmitter<IntegrationEventPayload>;\n integrationAppRef: ApplicationRef;\n data?: InputData;\n eventData?: IntegrationEventPayload;\n}\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'veloce-host-federated',\n templateUrl: './federated.component.html',\n styleUrls: ['./federated.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FederatedComponent implements AfterViewInit, OnChanges {\n @ViewChild('federatedComponent', { read: ViewContainerRef }) public federatedComponent?: ViewContainerRef;\n @ViewChild('foo', { read: TemplateRef }) public foo?: TemplateRef<unknown>;\n @ViewChild('moduleHost', { static: false }) public moduleHostRef?: ElementRef;\n\n @Input() public remoteEntry?: string;\n @Input() public remoteName?: string;\n @Input() public exposedModule?: string;\n @Input() public data?: InputData;\n @Input() public eventData?: IntegrationEventPayload;\n @Output() private integrationEvent = new EventEmitter<IntegrationEventPayload>();\n\n public moduleReady = false;\n\n private instance?: InegrationComponentInstance;\n\n constructor(\n private injector: Injector,\n private compiler: Compiler,\n private appRef: ApplicationRef,\n private renderer: Renderer2,\n ) {}\n\n public ngAfterViewInit(): void {\n if (!this.remoteEntry || !this.remoteName || !this.exposedModule) {\n return;\n }\n\n loadRemoteModule({\n remoteEntry: this.remoteEntry,\n remoteName: this.remoteName,\n exposedModule: this.exposedModule,\n }).then(federated => {\n this.compiler.compileModuleAsync(federated[this.exposedModule as string]).then(moduleFactory => {\n const rootModuleRef = moduleFactory.create(this.injector);\n const rootComponentFactory = rootModuleRef.componentFactoryResolver.resolveComponentFactory(\n federated[this.exposedModule as string].rootComponent,\n );\n const node = document.createElement('div');\n const { instance, hostView } = rootComponentFactory.create(this.injector, [], node);\n\n this.instance = instance as InegrationComponentInstance;\n this.instance.data = this.data;\n this.instance.eventData = this.eventData;\n this.instance.integrationEvent = this.integrationEvent;\n\n this.renderer.appendChild(this.moduleHostRef?.nativeElement, node);\n this.appRef.attachView(hostView);\n });\n });\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (!this.instance) {\n return;\n }\n\n this.instance.ngOnChanges(changes);\n }\n}\n","<div #moduleHost></div>\n","import { Directive, OnInit } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { EntityUtil, Section } from '@veloceapps/core';\nimport { isDate } from 'lodash';\nimport { FormScopeService } from '../../services/form-scope.service';\nimport { SectionScopeService } from '../../services/section-scope.service';\nimport { UpdateData } from '../../types';\nimport { SectionsBinderHelper } from '../../utils/sections-binder.helper';\n\n//TODO ALE WE ARE EXTENDING COMPONENT HERE IN PORTS WE ARE EXTENDING DEDICATED CLASS!! TYPES HANDLER IS NO IMPLEMENTED YET\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'velo-attribute-directive',\n exportAs: 'attributeApi',\n})\nexport class VeloAttributeDirective implements OnInit {\n public valueQuantities: { [index: string]: number } = {};\n\n public form: FormGroup;\n public section: Section;\n\n constructor(private formScope: FormScopeService, private sectionScope: SectionScopeService) {\n this.form = this.formScope.form;\n this.section = this.sectionScope.section;\n }\n\n public ngOnInit(): void {\n this.initQuantity();\n }\n\n public handleChange(valueOption?: any): void {\n const updateData: UpdateData = {\n id: this.section.id,\n action: 'update',\n valueOption,\n };\n\n this.formScope.publishFormUpdate(updateData);\n }\n\n public handleChangDate(valueOption: any): void {\n const oldValue = this.form.controls[this.section.id].value || '';\n\n const newValue = isDate(valueOption) ? valueOption.toLocaleDateString('en-us') : '';\n\n if (oldValue !== newValue) {\n this.handleChange(newValue);\n }\n }\n\n public handleRemove(): void {\n const updateData: UpdateData = {\n id: this.section.id,\n action: 'remove',\n };\n\n this.formScope.publishFormUpdate(updateData);\n }\n\n // TODO ALE THIS IS SPECIFIC STEPPER FUNCTIONS\n public nextVal(): void {\n const currentIndex = this.getCurrentValueIndex();\n const nextValIndex = currentIndex + 1;\n\n if (\n currentIndex != -1 &&\n this.section.sectionValue &&\n this.section.sectionValue.valueOptions.length >= nextValIndex\n ) {\n this.handleChange(this.section.sectionValue.valueOptions[nextValIndex]);\n }\n }\n\n public prevVal(): void {\n const currentIndex = this.getCurrentValueIndex();\n const prevValIndex = currentIndex - 1;\n\n if (\n currentIndex != -1 &&\n this.section.sectionValue &&\n this.section.sectionValue.valueOptions.length >= prevValIndex\n ) {\n this.handleChange(this.section.sectionValue.valueOptions[prevValIndex]);\n }\n }\n\n private initQuantity(): void {\n this.valueQuantities = this.section.model\n ? SectionsBinderHelper.getQuantityGroupByValue(this.section.model, this.section.boundData.name)\n : {};\n }\n\n private getCurrentValueIndex(): number {\n const index = -1;\n\n const valueOptions = this.section.sectionValue && this.section.sectionValue.valueOptions;\n const currentValue = this.form.controls[this.section.id].value;\n\n if (valueOptions && EntityUtil.isPresent(currentValue)) {\n return valueOptions.findIndex(valueOption => currentValue === valueOption);\n }\n\n return index;\n }\n}\n","import { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport {\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnDestroy,\n Output,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { merge, Observable, of, Subscription } from 'rxjs';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'velo-multiselect',\n templateUrl: 'velo-multiselect.component.html',\n styleUrls: ['./velo-multiselect.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: MultiselectComponent,\n },\n ],\n})\nexport class MultiselectComponent implements ControlValueAccessor, OnDestroy {\n @Input() public options?: any[];\n @Output() public selectionChange: EventEmitter<string[]> = new EventEmitter<string[]>();\n public selected: string[] = [];\n public displayValue = '';\n public touched = false;\n public disabled = false;\n\n @ViewChild('overlayTemplate') public overlayTemplate!: TemplateRef<any>;\n\n @HostBinding('class.opened')\n public opened = false;\n\n private overlayRef?: OverlayRef;\n private dropdownClosingActionsSub?: Subscription;\n\n public onChange: (selected: string[]) => void = () => {\n return;\n };\n public onTouched: () => void = () => {\n return;\n };\n\n constructor(private elRef: ElementRef, private viewContainerRef: ViewContainerRef, private overlay: Overlay) {}\n\n public ngOnDestroy(): void {\n this.destroyDropdown();\n }\n\n public writeValue(selected: string[]): void {\n this.selected = selected;\n\n this.getDisplayValue();\n }\n\n public registerOnChange(onChange: any): void {\n this.onChange = onChange;\n }\n\n public registerOnTouched(onTouched: any): void {\n this.onTouched = onTouched;\n }\n\n public setDisabledState(disabled: boolean): void {\n this.disabled = disabled;\n }\n\n public handleSelection(value: any): void {\n const selectedItem = this.selected.find(item => item === value);\n\n if (selectedItem) {\n this.selected = this.selected.filter(item => item !== value);\n } else {\n this.selected = [...this.selected, value];\n }\n\n this.getDisplayValue();\n this.selectionChange.emit(this.selected);\n this.onChange(this.selected);\n }\n\n public toggleOpened(): void {\n this.opened ? this.destroyDropdown() : this.openDropdown();\n }\n\n private getDisplayValue(): void {\n const joinedValue = this.selected.join(', ');\n this.displayValue = joinedValue.length > 24 ? `${this.selected.length} options selected` : joinedValue;\n }\n\n private openDropdown(): void {\n this.opened = true;\n this.overlayRef = this.overlay.create({\n hasBackdrop: true,\n backdropClass: 'cdk-overlay-transparent-backdrop',\n scrollStrategy: this.overlay.scrollStrategies.close(),\n positionStrategy: this.overlay\n .position()\n .flexibleConnectedTo(this.elRef)\n .withPositions([\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n offsetY: 8,\n },\n ]),\n });\n\n const templatePortal = new TemplatePortal(this.overlayTemplate, this.viewContainerRef);\n this.overlayRef.attach(templatePortal);\n\n this.dropdownClosingActionsSub = this.dropdownClosingActions().subscribe(() => this.destroyDropdown());\n }\n\n private dropdownClosingActions(): Observable<MouseEvent | void> {\n if (!this.overlayRef) {\n return of();\n }\n\n const backdropClick$ = this.overlayRef.backdropClick();\n const detachment$ = this.overlayRef.detachments();\n\n return merge(backdropClick$, detachment$);\n }\n\n private destroyDropdown(): void {\n if (!this.overlayRef || !this.opened) {\n return;\n }\n\n this.dropdownClosingActionsSub?.unsubscribe();\n this.opened = false;\n this.overlayRef.detach();\n }\n}\n","<div class=\"value-wrapper\" (click)=\"toggleOpened()\">\n <span class=\"value\">{{ displayValue }}</span>\n <i class=\"fa fa-chevron-down\"></i>\n</div>\n\n<ng-template #overlayTemplate>\n <div class=\"dropdown\">\n <div class=\"checkbox-select\" *ngFor=\"let option of options\">\n <label>\n <input\n type=\"checkbox\"\n [checked]=\"selected.includes(option)\"\n (change)=\"handleSelection(option)\"\n [value]=\"option\"\n />\n\n <i class=\"input-helper\"></i>\n {{ option }}\n </label>\n </div>\n </div>\n</ng-template>\n","import { Component, OnInit } from '@angular/core';\nimport { FormScopeService } from '../../../services/form-scope.service';\nimport { SectionScopeService } from '../../../services/section-scope.service';\nimport { VeloAttributeDirective } from '../../directives/velo-attribute.directive';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'velo-attribute',\n templateUrl: 'velo-attribute.component.html',\n})\nexport class VeloAttributeComponent extends VeloAttributeDirective implements OnInit {\n public controlName: string;\n public displayName: string;\n public isMultiselect: boolean;\n\n constructor(formScope: FormScopeService, sectionScope: SectionScopeService) {\n super(formScope, sectionScope);\n\n this.controlName = this.section.id;\n this.displayName = this.getDisplayName();\n this.isMultiselect =\n this.section.model?.attributes.find(attr => attr.name === this.section.boundData.entity.name)?.type ===\n 'MULTIPLE';\n }\n\n public getValueOptions(valueOptions: unknown): (string | number)[] {\n return this.isBooleanType(valueOptions) ? [0, 1] : (valueOptions as string[]);\n }\n\n public getValueText(valueOptions: unknown, value: string | number): string {\n if (this.isBooleanType(valueOptions)) {\n return value === 0 ? 'False' : 'True';\n }\n return value as string;\n }\n\n public handleMultiselectChange(value: string | number): void {\n const formControl = this.form.get(this.controlName);\n\n if (!formControl) {\n return;\n }\n\n const currentValue: (string | number)[] = formControl.value ?? [];\n const newValue = currentValue.includes(value) ? currentValue.filter(v => v !== value) : [...currentValue, value];\n formControl.setValue(newValue);\n\n super.handleChange();\n }\n\n public handleMultipleDropdownChange(event: any): void {\n const formControl = this.form.get(this.controlName);\n\n if (!formControl) {\n return;\n }\n\n formControl.setValue(event);\n super.handleChange();\n }\n\n private isBooleanType(value: any): boolean {\n return Array.isArray(value) && value.length === 1 && value[0].min === 0 && value[0].max === 1;\n }\n\n private getDisplayName(): string {\n return (\n (this.section.model?.properties && this.section.model.properties['displayName']) || this.section.model?.type || ''\n );\n }\n}\n","<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","import { Component, Input } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { LineItem, Section } from '@veloceapps/core';\nimport { FormScopeService } from '../../../services/form-scope.service';\nimport { SectionScopeService } from '../../../services/section-scope.service';\nimport { UpdateData } from '../../../types';\nimport { SectionsBinderHelper } from '../../../utils/sections-binder.helper';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'velo-port-checkbox',\n templateUrl: 'velo-port-checkbox.component.html',\n})\nexport class VeloPortCheckBoxComponent {\n public controlName: string;\n\n public form: FormGroup;\n public section: Section;\n\n @Input() public showSelectAll = false;\n\n constructor(private formScope: FormScopeService, private sectionScope: SectionScopeService) {\n this.form = this.formScope.form;\n this.section = this.sectionScope.section;\n\n this.controlName = this.section.id;\n\n this.section.sectionValue?.valueOptions.forEach(item => {\n if (this.hasValueFor(item)) {\n this.form.controls[this.controlName].setValue(item);\n }\n });\n }\n\n public handleChange(valueOption: string): void {\n const updateData: UpdateData = {\n id: this.section.id,\n action: this.hasValueFor(valueOption)\n ? 'remove'\n : this.section.model && SectionsBinderHelper.isAddAllowed(this.section.model, this.section.boundData.name)\n ? 'create'\n : 'update',\n valueOption,\n };\n\n this.formScope.publishFormUpdate(updateData);\n }\n\n public hasValueFor(valueOption: string): boolean {\n return !!this.findLineItemForValue(valueOption);\n }\n\n public selectAllChange(): void {\n const portDomain = this.section.model?.portDomains[this.section.boundData.name];\n\n const updateData: UpdateData = {\n id: this.section.id,\n action: 'upsert',\n selectedValueOptions: this.isAllSelected() ? [] : portDomain ? portDomain.domainTypes.map(t => t.name) : [],\n };\n\n this.formScope.publishFormUpdate(updateData);\n }\n\n public isAllSelected(): boolean {\n const selected: LineItem[] | undefined = this.section.model?.lineItems.filter(\n li => li.port && li.port === this.section.boundData.name,\n );\n\n const portDomain = this.section.model?.portDomains[this.section.boundData.name];\n\n return portDomain ? portDomain.domainTypes.length === selected?.length : false;\n }\n\n public getMessages(valueOption: string): string[] {\n if (this.section.model?.lineItems) {\n return this.findLineItemForValue(valueOption)?.messages ?? [];\n }\n return [];\n }\n\n private findLineItemForValue(valueOption: string): LineItem | undefined {\n return (\n this.section.model?.lineItems &&\n this.section.model.lineItems.find(li => li.type && li.type.toLowerCase() === valueOption.toLowerCase())\n );\n }\n}\n","<div [formGroup]=\"form\">\n <!--TODO ALE replace divs with ng-templates-->\n <div *ngIf=\"showSelectAll\">\n <div class=\"row no-gutter clearfix\">\n <div class=\"col-md-12\">\n <div class=\"content\">\n <div class=\"container-box container-box-bordered container-box-checkbox collapsed\">\n <div class=\"box-title\">\n <div class=\"header clearfix\">\n <div class=\"checkbox-select\">\n <label>\n <input type=\"checkbox\" (change)=\"selectAllChange()\" [checked]=\"isAllSelected()\" />\n\n <i class=\"input-helper\"></i>\n Select All\n </label>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div *ngFor=\"let valueOption of section.sectionValue?.valueOptions\">\n <div class=\"unchecked\">\n <div class=\"row no-gutter clearfix\">\n <div class=\"col-md-12\">\n <div class=\"content\">\n <div class=\"container-box container-box-bordered container-box-checkbox collapsed\">\n <div class=\"box-title\" (click)=\"handleChange(valueOption)\">\n <div class=\"header clearfix\">\n <div class=\"checkbox-select\">\n <label>\n <input\n type=\"checkbox\"\n [class.checkbox--checked]=\"valueOption === form.controls[controlName].value\"\n />\n\n <i class=\"input-helper\"></i>\n {{section.sectionValue?.displayValues?.[valueOption] || valueOption}}\n </label>\n </div>\n </div>\n\n <div class=\"box-actions\" *ngIf=\"hasValueFor(valueOption)\">\n <ng-template #msgTemplate>\n <div class=\"runtime-info-message\">\n <ul class=\"message-text\">\n <li *ngFor=\"let message of getMessages(valueOption)\">{{ message }}</li>\n </ul>\n </div>\n </ng-template>\n <div\n class=\"box-action-button\"\n *ngIf=\"getMessages(valueOption).length > 0\"\n [popover]=\"msgTemplate\"\n placement=\"left\"\n container=\"body\"\n [isOpen]=\"true\"\n >\n <a href=\"javascript:void(0);\">\n <i class=\"fa fa-info check-icon\"></i>\n </a>\n </div>\n </div>\n </div>\n <div class=\"box-content-wrapper\">\n <div class=\"box-content\">&nbsp;</div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n<ng-content></ng-content>\n","import { Component } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { EntityUtil, RecommendedPrice, Section } from '@veloceapps/core';\nimport { Dictionary } from 'lodash';\nimport { FormScopeService } from '../../../services/form-scope.service';\nimport { SectionScopeService } from '../../../services/section-scope.service';\nimport { UpdateData } from '../../../types';\nimport { SectionsBinderHelper } from '../../../utils/sections-binder.helper';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'velo-port-dropdown',\n templateUrl: 'velo-port-dropdown.component.html',\n})\nexport class VeloPortDropdownComponent {\n public controlName: string;\n public qtyControlName: string;\n\n public form: FormGroup;\n public section: Section;\n public prices: Dictionary<any> = {};\n\n constructor(private formScope: FormScopeService, private sectionScope: SectionScopeService) {\n this.form = this.formScope.form;\n this.section = this.sectionScope.section;\n\n this.controlName = this.section.id;\n this.qtyControlName = this.section.id + 'qty';\n\n if (this.section.pricingEnabled) {\n this.section.sectionValue?.valueOptions.forEach(valueOption => {\n this.prices[valueOption] = this.findPriceItemsForValue(valueOption);\n });\n }\n }\n\n public isAddAllowed(): boolean {\n if (!EntityUtil.isPresent(this.form.controls[this.controlName].value)) {\n return false;\n }\n\n return this.section.model\n ? SectionsBinderHelper.isAddAllowed(this.section.model, this.section.boundData.name)\n : false;\n }\n\n public handleCreate(): void {\n if (this.form.invalid || !this.isAddAllowed()) {\n return;\n }\n\n const updateData: UpdateData = {\n id: this.section.id,\n action: 'create',\n };\n\n this.formScope.publishFormUpdate(updateData);\n }\n\n private findPriceItemsForValue(valueOption: string): RecommendedPrice[] {\n let prices: RecommendedPrice[] = [];\n if (valueOption) {\n const portDomain = this.section.model?.portDomains[this.section.boundData.name];\n const domainType = portDomain?.domainTypes.find(d => d.name.toLowerCase() === valueOption.toLowerCase());\n if (domainType && domainType.recommendedPrices) {\n prices = domainType.recommendedPrices;\n }\n }\n\n const oneTime: RecommendedPrice = {\n chargeMethod: 'ONE_TIME',\n netPrice: 0,\n listPrice: 0,\n chargeType: '',\n };\n\n const recurring: RecommendedPrice = {\n chargeMethod: 'RECURRING',\n netPrice: 0,\n listPrice: 0,\n chargeType: '',\n };\n\n prices.forEach(p => {\n if (p.chargeMethod === oneTime.chargeMethod) {\n this.add(oneTime, p);\n }\n if (p.chargeMethod === recurring.chargeMethod) {\n this.add(recurring, p);\n }\n });\n\n const result: RecommendedPrice[] = [];\n if (oneTime.listPrice > 0) {\n result.push(oneTime);\n }\n if (recurring.listPrice > 0) {\n result.push(recurring);\n }\n\n return result;\n }\n\n private add(target: RecommendedPrice, src: RecommendedPrice): void {\n target.netPrice = target.netPrice + src.netPrice;\n target.listPrice = target.listPrice + src.listPrice;\n if (src.explanation) {\n target.explanation = src.explanation;\n }\n }\n}\n","<div class=\"form-group col-md-12\" [formGroup]=\"form\">\n <div class=\"input-form-input div-inline\">\n <label [for]=\"controlName\">{{ section.label }}</label>\n <div class=\"form-control-wrapper\">\n <select [id]=\"controlName\" [formControlName]=\"controlName\" class=\"form-control\">\n <option *ngFor=\"let valueOption of section.sectionValue?.valueOptions\" [ngValue]=\"valueOption\">\n {{section.sectionValue?.displayValues?.[valueOption] || valueOption}}\n <span *ngIf=\"prices[valueOption] && prices[valueOption].length > 0\">\n <span>${{ prices[valueOption][0].netPrice }}</span>\n <span *ngIf=\"prices[valueOption].length > 1\">\n <span>, </span>\n <span>${{ prices[valueOption][1].netPrice }}</span>\n </span>\n </span>\n </option>\n </select>\n </div>\n </div>\n <div class=\"input-form-input div-inline quantity-form-input\">\n <label [for]=\"qtyControlName\"> Quantity </label>\n <div class=\"form-control-wrapper\">\n <input [id]=\"qtyControlName\" [formControlName]=\"qtyControlName\" type=\"text\" class=\"form-control\" size=\"3\" />\n\n <div\n class=\"validation-message\"\n [hidden]=\"form.controls[qtyControlName].valid || form.controls[qtyControlName].pristine\"\n >\n <div *ngFor=\"let key of form.controls[qtyControlName].errors | values\">\n <span> {{form.controls[qtyControlName]?.errors?.[key].message}}</span>\n </div>\n </div>\n\n <a href=\"javascript:void(0);\" (click)=\"handleCreate()\">\n <div class=\"add-config-control\" [attr.disabled]=\"form.valid && isAddAllowed() ? null : true\">\n <i class=\"fa fa-plus plus-icon\"></i>\n </div>\n </a>\n </div>\n </div>\n</div>\n<ng-content></ng-content>\n","import { Component, OnInit } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { LineItem, RecommendedPrice, Section } from '@veloceapps/core';\nimport { Dictionary } from 'lodash';\nimport { FormScopeService } from '../../../services/form-scope.service';\nimport { SectionScopeService } from '../../../services/section-scope.service';\nimport { UpdateData } from '../../../types';\nimport { LineItemUtil } from '../../../utils/line-item.util';\n\n@Component({\n // tslint:disable-next-line:component-selector\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'velo-port-radio',\n templateUrl: 'velo-port-radio.component.html',\n})\nexport class VeloPortRadioComponent implements OnInit {\n public controlName: string;\n\n public form: FormGroup;\n public section: Section;\n\n public prices: Dictionary<any> = {};\n\n constructor(private formScope: FormScopeService, private sectionScope: SectionScopeService) {\n this.form = this.formScope.form;\n this.section = this.sectionScope.section;\n\n this.controlName = this.section.id;\n }\n\n public ngOnInit(): void {\n this.initPriceItems();\n\n this.section.sectionValue?.valueOptions.forEach(item => {\n if (this.hasValueFor(item)) {\n this.form.controls[this.controlName].setValue(item);\n }\n });\n }\n\n public handleChange(event: any, valueOption: any): void {\n event.preventDefault();\n event.stopPropagation();\n\n const updateData: UpdateData = {\n id: this.section.id,\n action: this.hasPreviousValue() ? 'update' : 'create',\n valueOption,\n };\n\n this.form.controls[this.controlName].setValue(valueOption);\n this.form.controls[this.controlName].markAsDirty();\n\n this.formScope.publishFormUpdate(updateData);\n }\n\n public hasValueFor(valueOption: string): boolean {\n return !!this.findLineItemForValue(valueOption);\n }\n\n public getMessages(valueOption: string): LineItem['messages'] {\n const lineItem = this.findLineItemForValue(valueOption);\n\n if (this.section.model?.lineItems && lineItem) {\n return lineItem.messages;\n }\n\n return [];\n }\n\n public toString(price: RecommendedPrice): string {\n let result = '';\n if (price.listPrice > price.netPrice) {\n result += '<strike>' + price.listPrice + '</strike>';\n }\n result += price.netPrice;\n if (price.explanation) {\n result += '(' + price.explanation + ')';\n }\n return result;\n }\n\n private hasPreviousValue(): boolean {\n const previous = this.section.model?.lineItems.filter(li => li.port && li.port === this.section.boundData.name);\n\n return previous ? previous.length > 0 : false;\n }\n\n private findLineItemForValue(valueOption: string): LineItem | undefined {\n return this.section.model ? LineItemUtil.findLineItemForValue(this.section.model, valueOption) : undefined;\n }\n\n private initPriceItems(): void {\n this.prices = {};\n if (this.section.pricingEnabled) {\n this.section.sectionValue?.valueOptions.forEach(valueOption => {\n this.prices[valueOption] = this.findPriceItemsForValue(valueOption);\n });\n }\n }\n\n private findPriceItemsForValue(valueOption: string): RecommendedPrice[] {\n let prices: RecommendedPrice[] = [];\n if (valueOption) {\n const lineItem =\n this.section.model?.lineItems &&\n this.section.model.lineItems.find(li => li.type && li.type.toLowerCase() === valueOption.toLowerCase());\n if (lineItem && lineItem.chargeItems) {\n prices = lineItem.chargeItems.map(pi => {\n const price: RecommendedPrice = {\n listPrice: pi.listPrice,\n netPrice: pi.netPrice,\n chargeMethod: pi.chargeMethod,\n chargeType: pi.chargeType,\n };\n return price;\n });\n } else {\n const portDomain = this.section.model?.portDomains[this.section.boundData.name];\n const domainType = portDomain?.domainTypes.find(d => d.name.toLowerCase() === valueOption.toLowerCase());\n if (domainType && domainType.recommendedPrices) {\n prices = domainType.recommendedPrices;\n }\n }\n }\n\n const oneTime: RecommendedPrice = {\n chargeMethod: 'ONE_TIME',\n netPrice: 0,\n listPrice: 0,\n chargeType: '',\n };\n\n const recurring: RecommendedPrice = {\n chargeMethod: 'RECURRING',\n netPrice: 0,\n listPrice: 0,\n chargeType: '',\n };\n\n prices.forEach(p => {\n if (p.chargeMethod === oneTime.chargeMethod) {\n this.add(oneTime, p);\n }\n if (p.chargeMethod === recurring.chargeMethod) {\n this.add(recurring, p);\n }\n });\n\n const result: RecommendedPrice[] = [];\n if (oneTime.listPrice > 0) {\n result.push(oneTime);\n }\n if (recurring.listPrice > 0) {\n result.push(recurring);\n }\n return result;\n }\n\n private add(target: RecommendedPrice, src: RecommendedPrice): void {\n target.netPrice = target.netPrice + src.netPrice;\n target.listPrice = target.listPrice + src.listPrice;\n if (src.explanation) {\n target.explanation = src.explanation;\n }\n }\n}\n","<div [formGroup]=\"form\">\n <!--TODO ALE replace divs with ng-templates-->\n <ng-container *ngFor=\"let valueOption of section.sectionValue?.valueOptions\">\n <div class=\"unchecked\">\n <div class=\"row no-gutter clearfix\">\n <div class=\"col-md-12\">\n <div class=\"content\">\n <div class=\"container-box container-box-bordered container-box-radio\">\n <div class=\"box-title\" (click)=\"handleChange($event, valueOption)\">\n <div class=\"header clearfix\">\n <div class=\"radio-button\">\n <label>\n <input type=\"radio\" [id]=\"controlName\" [value]=\"valueOption\" [formControlName]=\"controlName\" />\n\n <i class=\"input-helper\"></i>\n\n {{ section.sectionValue?.displayValues?.[valueOption] || valueOption }}\n\n <span *ngIf=\"prices[valueOption] && prices[valueOption].length > 0\">\n <span>${{ prices[valueOption][0].netPrice }}</span>\n\n <span *ngIf=\"prices[valueOption].length > 1\">\n <span>, </span>\n\n <span>${{ prices[valueOption][1].netPrice }}</span>\n </span>\n </span>\n </label>\n <span *ngIf=\"prices[valueOption] && prices[valueOption].length > 0\">\n <div>{{ prices[valueOption][0].explanation }}</div>\n\n <span *ngIf=\"prices[valueOption].length > 1 && prices[valueOption][1].explanation\">\n <div>{{ prices[valueOption][1].explanation }}</div>\n </span>\n </span>\n </div>\n </div>\n </div>\n </div>\n\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n</div>\n<ng-content></ng-content>\n","import { Component, OnInit } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { RecommendedPrice, Section } from '@veloceapps/core';\nimport { MessageService } from 'primeng/api';\nimport { CollapsibleStateService } from '../../../services/collapsible-state.service';\nimport { FormScopeService } from '../../../services/form-scope.service';\nimport { SectionScopeService } from '../../../services/section-scope.service';\nimport { UpdateData } from '../../../types';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'velo-type',\n templateUrl: 'velo-type.component.html',\n})\nexport class VeloTypeComponent implements OnInit {\n public readonly messageBucketId = 'ui-runtime';\n\n public controlName: string;\n public qtyControlName: string;\n public displayName: string;\n public indent = 1;\n\n public form: FormGroup;\n public section: Section;\n\n public prices: RecommendedPrice[] = [];\n\n constructor(\n private formScope: FormScopeService,\n private collapsibleState: CollapsibleStateService,\n private sectionScope: SectionScopeService,\n private messageService: MessageService,\n ) {\n this.form = this.formScope.form;\n this.section = this.sectionScope.section;\n this.indent = this.sectionScope.indent;\n\n this.controlName = this.section.id;\n this.qtyControlName = this.section.id + 'qty';\n this.displayName =\n (this.section.model?.properties && this.section.model.properties.displayName) || this.section.model?.type || '';\n }\n\n public ngOnInit(): void {\n if (this.section.pricingEnabled) {\n this.prices = this.getPrices();\n }\n\n if (this.section.controlType === 'MESSAGE') {\n this.messageService.clear(this.messageBucketId);\n\n this.section.model?.messages?.forEach(message => {\n this.messageService.add({ key: this.messageBucketId, summary: message });\n });\n }\n }\n\n public handleRemove(): void {\n const updateData: UpdateData = {\n id: this.section.id,\n action: 'remove',\n };\n\n this.formScope.publishFormUpdate(updateData);\n }\n\n public handleQuantityUpdate(): void {\n const updateData: UpdateData = {\n id: this.section.id,\n action: 'qtyUpdate',\n };\n\n this.formScope.publishFormUpdate(updateData);\n }\n\n public toggleCollapse(): void {\n if (this.section.model) {\n this.collapsibleState.toggleCollapse(this.section.model.id);\n }\n }\n\n public getPrices(): RecommendedPrice[] {\n let prices: RecommendedPrice[] = [];\n if (this.section.model?.chargeItems) {\n prices = this.section.model.chargeItems.map(pi => {\n const price: RecommendedPrice = {\n listPrice: pi.listPrice,\n netPrice: pi.netPrice,\n chargeMethod: pi.chargeMethod,\n chargeType: pi.chargeType,\n };\n\n return price;\n });\n }\n\n const oneTime: RecommendedPrice = {\n chargeMethod: 'ONE_TIME',\n netPrice: 0,\n listPrice: 0,\n chargeType: '',\n };\n\n const recurring: RecommendedPrice = {\n chargeMethod: 'RECURRING',\n netPrice: 0,\n listPrice: 0,\n chargeType: '',\n };\n\n prices.forEach(p => {\n if (p.chargeMethod === oneTime.chargeMethod) {\n this.add(oneTime, p);\n }\n if (p.chargeMethod === recurring.chargeMethod) {\n this.add(recurring, p);\n }\n });\n\n const result: RecommendedPrice[] = [];\n if (oneTime.listPrice > 0) {\n result.push(oneTime);\n }\n if (recurring.listPrice > 0) {\n result.push(recurring);\n }\n\n return result;\n }\n\n private add(target: RecommendedPrice, src: RecommendedPrice): void {\n target.netPrice = target.netPrice + src.netPrice;\n target.listPrice = target.listPrice + src.listPrice;\n if (src.explanation) {\n target.explanation = src.explanation;\n }\n }\n}\n","<div class=\"container-box div-block collapsed container-box-bordered\" [formGroup]=\"form\">\n <div class=\"box-title\">\n <div class=\"header clearfix\">\n <div>\n <div class=\"header-label div-inline\">\n {{ displayName }}\n <span *ngIf=\"prices.length > 0\">\n <span>${{ prices[0].netPrice }}</span>\n <span *ngIf=\"prices.length > 1\">\n <span>, </span>\n <span>${{ prices[1].netPrice }}</span>\n </span>\n </span>\n </div>\n\n <div class=\"header-qty-container input-form-input\">\n <input\n [id]=\"qtyControlName\"\n [formControlName]=\"qtyControlName\"\n (blur)=\"form.controls[qtyControlName].valid && handleQuantityUpdate()\"\n type=\"text\"\n class=\"form-control\"\n size=\"3\"\n />\n <div class=\"validation-message\">\n <div *ngFor=\"let key of form.controls[qtyControlName].errors | values\">\n <span>\n {{ form.controls[qtyControlName]?.errors?.[key].message }}\n </span>\n </div>\n <span *ngIf=\"form.controls[qtyControlName].valid\"> &nbsp; </span>\n </div>\n <span *ngIf=\"prices.length > 0\">\n <div>{{ prices[0].explanation }}</div>\n <span *ngIf=\"prices.length > 1 && prices[1].explanation\">\n <div>{{ prices[1].explanation }}</div>\n </span>\n </span>\n </div>\n </div>\n </div>\n\n <div class=\"box-actions\">\n <ng-container *ngIf=\"section.controlType !== 'MESSAGE'\">\n <ng-template #msgTemplate>\n <div class=\"runtime-info-message\">\n <ul class=\"message-text\">\n <li *ngFor=\"let message of section.model?.messages\">{{ message }}</li>\n </ul>\n </div>\n </ng-template>\n\n <div\n class=\"box-action-button\"\n *ngIf=\"(section.model?.messages?.length ?? 0) > 0\"\n [popover]=\"msgTemplate\"\n placement=\"left\"\n container=\"body\"\n [isOpen]=\"true\"\n >\n <a href=\"javascript:void(0);\">\n <i class=\"fa fa-info check-icon\"></i>\n </a>\n </div>\n </ng-container>\n\n <div\n class=\"box-action-button\"\n (click)=\"toggleCollapse()\"\n [hidden]=\"!section.children || section.children.length < 1\"\n >\n <a><i class=\"fa fa-chevron-down check-icon\"></i></a>\n </div>\n\n <div class=\"box-action-button\" (click)=\"handleRemove()\">\n <a><i class=\"fa fa-trash-o check-icon\"></i></a>\n </div>\n </div>\n </div>\n\n <ng-content></ng-content>\n</div>\n","import { HttpParams } from '@angular/common/http';\nimport { Directive } from '@angular/core';\nimport { SalesforceApiService } from '@veloceapps/api';\nimport { SearchRequest } from '@veloceapps/core';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'sf-query',\n exportAs: 'sfApi',\n})\nexport class SfQueryDirective {\n constructor(private apiService: SalesforceApiService) {}\n\n public query(searchRequest: SearchRequest, objectName: string): Promise<any> {\n return this.apiService.query(searchRequest, objectName).toPromise();\n }\n\n public describe(objectName: string, fieldName?: string): Promise<any> {\n return this.apiService.describe(objectName, fieldName).toPromise();\n }\n\n public describe2(objectName: string, fieldsNames: string[]): Promise<any> {\n return this.apiService.describe2(objectName, fieldsNames).toPromise();\n }\n\n public apexGetRequest<T = unknown>(path: string, params: HttpParams): Promise<T> {\n return this.apiService.apexGetRequest<T>(path, params).toPromise() as Promise<T>;\n }\n\n public apexPostRequest<T = unknown, S = unknown>(path: string, body: S): Promise<T> {\n return this.apiService.apexPostRequest<T, S>(path, body).toPromise() as Promise<T>;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { EntityUtil, PricingUtils, Section } from '@veloceapps/core';\n\n@Injectable()\nexport class SectionHelperService {\n public static findSectionForValue(section: Section, valueOption: string): Section | undefined {\n if (!EntityUtil.isPresent(section) || !EntityUtil.isPresent(section.children) || EntityUtil.isBlank(valueOption)) {\n return;\n }\n\n const found = EntityUtil.filterHierarchically(\n section.children,\n 'children',\n ({ model }: Section) => model && model.type.toLowerCase() === valueOption.toLowerCase(),\n );\n\n return found && found.pop();\n }\n\n public getTotalPrices(section: Section): Map<string, number> {\n if (!section || !section.model || !section.model.chargeGroupItems) {\n return new Map();\n }\n\n return PricingUtils.sumPriceByProperty(section.model.chargeGroupItems, 'netPrice', [\n 'chargeMethod',\n 'sellingFrequency',\n ]);\n }\n}\n","import { Component, Directive, OnInit } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { EntityUtil, LineItem, Section } from '@veloceapps/core';\nimport { take } from 'rxjs/operators';\nimport { ConfigurationService } from '../../services/configuration.service';\nimport { FormScopeService } from '../../services/form-scope.service';\nimport { SectionHelperService } from '../../services/section-helper.service';\nimport { SectionScopeService } from '../../services/section-scope.service';\nimport { LegacyRuntimeContext, UpdateData } from '../../types';\nimport { SectionsBinderHelper } from '../../utils/sections-binder.helper';\n\n@Directive()\nexport class SectionContextAware implements OnInit {\n public controlName!: string;\n public qtyControlName!: string;\n\n // @Input()\n public form!: FormGroup;\n public section!: Section;\n\n constructor(protected formScope: FormScopeService, protected sectionScope: SectionScopeService) {}\n\n public ngOnInit(): void {\n this.form = this.formScope.form;\n this.section = this.sectionScope.section;\n\n this.initControlNames();\n }\n\n public initControlNames(): void {\n this.controlName = this.section.id;\n this.qtyControlName = this.section.id + 'qty';\n }\n\n //TODO ALE CONSIDER STORE INSTEAD OF CALCULATE EVERY TIME\n public isAddAllowed(quantityToAdd: number = 1): boolean {\n return this.section.model\n ? SectionsBinderHelper.isAddAllowed(this.section.model, this.section.boundData.name, quantityToAdd)\n : false;\n }\n\n public isRemoveAllowed(quantityToRemove: number = 1): boolean {\n return this.section.model\n ? SectionsBinderHelper.isRemoveAllowed(this.section.model, this.section.boundData.name, quantityToRemove)\n : false;\n }\n\n public handleCreate(valueOption?: any): void {\n if (!this.isAddAllowed()) {\n return;\n }\n\n const updateData: UpdateData = {\n id: this.section.id,\n action: 'create',\n valueOption: EntityUtil.isPresent(valueOption) ? valueOption : void 0,\n };\n\n this.formScope.publishFormUpdate(updateData);\n }\n\n public handleChange(valueOption?: any): void {\n const updateData: UpdateData = {\n id: this.section.id,\n action: 'update',\n valueOption: EntityUtil.isPresent(valueOption) ? valueOption : void 0,\n };\n\n this.formScope.publishFormUpdate(updateData);\n }\n\n public handleQtyChange(valueOption: any): void {\n const updateData: UpdateData = {\n id: this.section.id,\n action: 'qtyUpdate',\n valueOption: valueOption,\n };\n\n this.formScope.publishFormUpdate(updateData);\n }\n\n public handleRemove(valueOption: string): void {\n const updateData: UpdateData = {\n id: this.section.id,\n action: 'remove',\n valueOption: valueOption,\n };\n\n this.formScope.publishFormUpdate(updateData);\n }\n\n public handleCopy(valueOption: string): void {\n const updateData: UpdateData = {\n id: this.section.id,\n action: 'copy',\n valueOption: valueOption,\n };\n\n this.formScope.publishFormUpdate(updateData);\n }\n}\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'line-item',\n exportAs: 'liApi',\n})\nexport class LineItemDirective implements OnInit {\n public section!: Section;\n public lineItem?: LineItem;\n\n constructor(\n private formScope: FormScopeService,\n private sectionScope: SectionScopeService,\n private configurationService: ConfigurationService,\n ) {}\n\n public ngOnInit(): void {\n this.section = this.sectionScope.section;\n this.lineItem = this.section.model;\n }\n\n public handlePatch(rootLineItem: any): void {\n const updateData: UpdateData = {\n id: this.sectionScope.section.id,\n action: 'patch',\n valueOption: rootLineItem,\n };\n\n this.formScope.publishFormUpdate(updateData);\n }\n\n public configure(runtimeContext: LegacyRuntimeContext, configurableRamp: LineItem): Promise<LineItem> {\n return this.configurationService\n .configure(runtimeContext, { configurableRamp })\n .pipe(take(1))\n .toPromise() as Promise<LineItem>;\n }\n}\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'velo-port',\n exportAs: 'portApi',\n})\nexport class VeloPortDirective extends SectionContextAware implements OnInit {\n public valueQuantities: { [index: string]: number } = {};\n\n constructor(formScope: FormScopeService, sectionScope: SectionScopeService) {\n super(formScope, sectionScope);\n }\n\n private handlePriceAdjustment(action: string, valueOption: string, amount: number): void {\n const updateData: UpdateData = {\n id: this.section.id,\n action,\n valueOption,\n options: { amount },\n };\n\n this.formScope.publishFormUpdate(updateData);\n }\n\n public ngOnInit(): void {\n super.ngOnInit();\n\n this.initQuantity();\n }\n\n public handleUpsert(valueOption?: any, event?: Event): void {\n if (EntityUtil.isPresent(this.valueQuantities[valueOption]) && EntityUtil.isPresent(event)) {\n event?.preventDefault();\n return;\n } else if (Object.keys(this.valueQuantities).length > 0) {\n this.handleChange(valueOption);\n } else {\n this.handleCreate(valueOption);\n }\n }\n\n public isActive(valueOption?: any): boolean {\n return EntityUtil.isPresent(this.valueQuantities[valueOption]);\n }\n\n private initQuantity(): void {\n this.valueQuantities = this.section.model\n ? SectionsBinderHelper.getQuantityGroupByValue(this.section.model, this.section.boundData.name)\n : {};\n }\n\n //Quantity Stepper Functions\n public handleNextVal(valueOption: string): void {\n let initQty = this.valueQuantities[valueOption] || 0;\n\n if (this.isAddAllowed()) {\n if (initQty > 0) {\n const typeSection = SectionHelperService.findSectionForValue(this.section, valueOption);\n\n if (typeSection) {\n this.form.controls[typeSection.id + 'qty'].setValue(++initQty);\n\n this.handleQtyChange(valueOption);\n }\n } else {\n this.handleCreate(valueOption);\n }\n }\n }\n\n public handlePrevVal(valueOption: string): void {\n let initQty = this.valueQuantities[valueOption] || 0;\n\n if (this.isRemoveAllowed()) {\n if (initQty < 2) {\n this.handleRemove(valueOption);\n } else {\n const typeSection = SectionHelperService.findSectionForValue(this.section, valueOption);\n\n if (typeSection) {\n this.form.controls[typeSection.id + 'qty'].setValue(--initQty);\n\n this.handleQtyChange(valueOption);\n }\n }\n }\n }\n\n public handleManualQtyChange(valueOption: string, qtyVal: any): void {\n const initQty = this.valueQuantities[valueOption] || 0;\n if (isNaN(+qtyVal) || +qtyVal < 0 || initQty === +qtyVal) {\n return;\n }\n\n const newQty = +qtyVal;\n\n if (initQty === 0) {\n if (this.isAddAllowed(newQty)) {\n this.form.controls[this.qtyControlName].setValue(newQty);\n this.handleCreate(valueOption);\n }\n } else if (newQty === 0) {\n if (this.isRemoveAllowed()) {\n this.handleRemove(valueOption);\n }\n } else {\n const typeSection = SectionHelperService.findSectionForValue(this.section, valueOption);\n\n if (typeSection) {\n const dif = newQty - initQty;\n\n const isAllowed = dif > 0 ? this.isAddAllowed(dif) : this.isRemoveAllowed(dif * -1);\n\n if (isAllowed) {\n this.form.controls[typeSection.id + 'qty'].setValue(newQty);\n this.handleQtyChange(valueOption);\n }\n }\n }\n }\n\n public handleNetPriceAdjustment(valueOption: string, amount: number): void {\n this.handlePriceAdjustment('adjustNetPrice', valueOption, amount);\n }\n\n public handleListPriceAdjustment(valueOption: string, amount: number): void {\n this.handlePriceAdjustment('adjustListPrice', valueOption, amount);\n }\n}\n\n@Component({\n moduleId: module.id,\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'velo-dropdown',\n template: `\n <div class=\"input-form-input div-inline\" [formGroup]=\"form\">\n <label [for]=\"controlName\">{{ section.label }}</label>\n <div class=\"form-control-wrapper\">\n <select [id]=\"controlName\" [formControlName]=\"controlName\" class=\"form-control\">\n <option *ngFor=\"let valueOption of section.sectionValue?.valueOptions\" [ngValue]=\"valueOption\">\n {{ section.sectionValue?.displayValues?.[valueOption] || valueOption }}\n </option>\n </select>\n </div>\n </div>\n `,\n})\nexport class VeloDropdownComponent extends SectionContextAware {\n constructor(formScope: FormScopeService, sectionScope: SectionScopeService) {\n super(formScope, sectionScope);\n }\n}\n\n@Component({\n moduleId: module.id,\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'velo-quantity',\n template: `\n <div class=\"input-form-input div-inline quantity-form-input\" [formGroup]=\"form\">\n <label [for]=\"qtyControlName\"> Quantity </label>\n <div class=\"form-control-wrapper\">\n <input\n [id]=\"controlName\"\n [formControlName]=\"qtyControlName\"\n [attr.disabled]=\"isAddAllowed() === true ? null : true\"\n type=\"text\"\n class=\"form-control\"\n size=\"3\"\n />\n\n <div\n class=\"validation-message\"\n [hidden]=\"form.controls[qtyControlName].valid || form.controls[qtyControlName].pristine\"\n >\n <div *ngFor=\"let key of form.controls[qtyControlName].errors | values\">\n <span> {{ form.controls[qtyControlName].errors?.[key].message }}</span>\n </div>\n </div>\n </div>\n </div>\n `,\n})\nexport class VeloQuantityComponent extends SectionContextAware {\n constructor(formScope: FormScopeService, sectionScope: SectionScopeService) {\n super(formScope, sectionScope);\n }\n}\n\n@Component({\n moduleId: module.id,\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'velo-quantity-button',\n template: `\n <div class=\"input-form-input div-inline quantity-form-input\">\n <div class=\"form-control-wrapper\">\n <a href=\"javascript:void(0);\" (click)=\"handleCreate()\">\n <div class=\"add-config-control\" [attr.disabled]=\"isAddAllowed() === true ? null : true\">\n <i class=\"fa fa-plus plus-icon\"></i>\n </div>\n </a>\n </div>\n </div>\n `,\n})\nexport class VeloQuantityButtonComponent extends SectionContextAware {\n constructor(formScope: FormScopeService, sectionScope: SectionScopeService) {\n super(formScope, sectionScope);\n }\n}\n","import { Directive } from '@angular/core';\nimport { QuoteApiService } from '@veloceapps/api';\nimport { QuoteDraft } from '@veloceapps/core';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'vl-approval',\n exportAs: 'approvalApi',\n})\nexport class VlApprovalDirective {\n constructor(private repo: QuoteApiService) {}\n\n public submitQuote(quoteDraft: QuoteDraft): Promise<any> {\n return this.repo.submitQuote(quoteDraft).toPromise();\n }\n}\n","import { Directive } from '@angular/core';\nimport { DocumentAttachmentApiService } from '@veloceapps/api';\nimport { Attachment, TemplateAttachmentSearchRequest } from '@veloceapps/core';\nimport { Observable } from 'rxjs';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'vl-document-attachments',\n exportAs: 'documentAttachmentsApi',\n})\nexport class VlDocumentAttachmentsDirective {\n constructor(private service: DocumentAttachmentApiService) {}\n\n public getAttachments(searchRequest: TemplateAttachmentSearchRequest): Promise<Attachment[]> {\n return this.service.getAttachments(searchRequest).toPromise() as Promise<Attachment[]>;\n }\n\n public createAttachment(\n attachment: Attachment,\n file?: File,\n reportProgress?: boolean,\n ): Promise<Attachment> | Observable<Attachment> {\n const observable = this.service.createAttachment(attachment, file, reportProgress);\n return reportProgress ? observable : (observable.toPromise() as Promise<Attachment>);\n }\n\n public updateAttachment(id: string, attachment: Attachment): Promise<Attachment> {\n return this.service.updateAttachment(id, attachment).toPromise() as Promise<Attachment>;\n }\n\n public getAttachmentFile(id: string, isPreventDownload?: boolean): Promise<any> {\n return this.service.getAttachmentFile(id, isPreventDownload).toPromise();\n }\n\n public removeAttachment(id: string): Promise<unknown> {\n return this.service.removeAttachment(id).toPromise();\n }\n}\n","import { Directive } from '@angular/core';\nimport { DocumentTemplatesApiService } from '@veloceapps/api';\nimport { Attachment, DocumentTemplate, QuoteDraft, TemplateAttachmentSearchRequest } from '@veloceapps/core';\nimport { Observable } from 'rxjs';\nimport { take } from 'rxjs/operators';\n\n@Directive({\n selector: '[vlQuoteTemplates]',\n exportAs: 'quoteTemplateApi',\n})\nexport class VlDocumentTemplatesDirective {\n constructor(private documentTemplatesApiService: DocumentTemplatesApiService) {}\n\n public getTemplates(tag?: string): Promise<DocumentTemplate[]> {\n return this.documentTemplatesApiService.getTemplates(tag).toPromise() as Promise<DocumentTemplate[]>;\n }\n\n public upsertTemplate(template: DocumentTemplate, templateFile: File): Promise<DocumentTemplate> {\n return this.documentTemplatesApiService\n .upsertTemplate(template, templateFile)\n .toPromise() as Promise<DocumentTemplate>;\n }\n\n public removeTemplate(id: string): Promise<DocumentTemplate> {\n return this.documentTemplatesApiService.removeTemplate(id).toPromise() as Promise<DocumentTemplate>;\n }\n\n public cloneTemplate(id: string): Promise<{ clonedRecordId: string }> {\n return this.documentTemplatesApiService.cloneTemplate(id).toPromise() as Promise<{ clonedRecordId: string }>;\n }\n\n public downloadTemplate(id: string): Promise<Blob> {\n return this.documentTemplatesApiService.downloadTemplateFile(id).toPromise() as Promise<Blob>;\n }\n\n public generateDocument(\n template: DocumentTemplate,\n quoteDraft: QuoteDraft,\n params?: { [param: string]: string | boolean },\n ): Observable<any> {\n return this.documentTemplatesApiService.generateDocument(template, quoteDraft, params).pipe(take(1));\n }\n\n /**\n * @deprecated Use `generateDocument` instead\n */\n // eslint-disable-next-line @typescript-eslint/member-ordering\n public generateDocumentNew = this.generateDocument;\n\n public generateDocumentData(\n template: DocumentTemplate,\n quoteDraft: QuoteDraft,\n params?: { [param: string]: boolean },\n ): Observable<any> {\n return this.documentTemplatesApiService.generateDocumentData(template, quoteDraft, params).pipe(take(1));\n }\n\n public getAttachments(searchRequest: TemplateAttachmentSearchRequest): Promise<any> {\n return this.documentTemplatesApiService.getAttachments(searchRequest).toPromise();\n }\n\n public getAttachmentFile(id: string): Promise<any> {\n return this.documentTemplatesApiService.getAttachmentFile(id).toPromise();\n }\n\n public createAttachment(attachment: Attachment, file?: File): Promise<any> {\n return this.documentTemplatesApiService.createAttachment(attachment, file).toPromise();\n }\n\n public removeAttachment(id: string): Promise<any> {\n return this.documentTemplatesApiService.removeAttachment(id).toPromise();\n }\n}\n","import { Directive } from '@angular/core';\nimport { QuoteApiService } from '@veloceapps/api';\nimport { EntityUtil, QuoteDraft } from '@veloceapps/core';\nimport { RuntimeService } from '../../services/runtime.service';\nimport { QuoteStates } from '../../types/quote-states.types';\nimport { LineItemUtil } from '../../utils/line-item.util';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'vl-quote',\n exportAs: 'quoteApi',\n})\nexport class VlQuoteDirective {\n constructor(private quoteApiService: QuoteApiService, private runtimeService: RuntimeService) {}\n\n public getQuote(quoteId: string): Promise<QuoteDraft> {\n return this.quoteApiService.getQuoteDraft(quoteId).toPromise() as Promise<QuoteDraft>;\n }\n\n public upsertQuote(quoteDraft: QuoteDraft): Promise<any> {\n return this.quoteApiService.upsertQuote(quoteDraft).toPromise();\n }\n\n public configureQuote(quoteDraft: QuoteDraft, rootLineItemId: string): void {\n const rootLineItem = EntityUtil.findById(rootLineItemId, quoteDraft.currentState);\n const asset = quoteDraft.initialState?.find(a => a.id === rootLineItem.assetId);\n const { context } = quoteDraft;\n\n const states: QuoteStates = {\n configurableRamp: LineItemUtil.removeDeletedItems(rootLineItem),\n currentState: quoteDraft.currentState,\n asset,\n };\n\n this.runtimeService.updateRuntime(states, context.properties);\n }\n}\n","import { Directive } from '@angular/core';\nimport { PriceApiService, RampApiService } from '@veloceapps/api';\nimport { LineItem } from '@veloceapps/core';\nimport { ContextService } from '@veloceapps/sdk/core';\nimport { tap } from 'rxjs/operators';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'vl-ramp',\n exportAs: 'rampApi',\n})\nexport class VlRampDirective {\n constructor(\n private contextService: ContextService,\n private rampApiService: RampApiService,\n private priceApiService: PriceApiService,\n ) {}\n\n public createRamp(sourceItems: string[], currentRamps: LineItem[], term: number): Promise<any> {\n const context = this.contextService.resolve();\n\n return this.rampApiService\n .next({\n context,\n sourceItems,\n currentItems: currentRamps || [],\n term,\n })\n .pipe(\n tap(data => {\n if (data.context) {\n this.contextService.update({\n properties: {\n ...data.context.properties,\n },\n });\n }\n }),\n )\n .toPromise();\n }\n\n public calculateRampTermByEndDate(lineItem: LineItem, endDate: string): Promise<any> {\n return this.priceApiService\n .getSellingTermByEndDate(\n lineItem.planId,\n lineItem.offeringId,\n lineItem.startDate,\n endDate,\n lineItem.sellingFrequencyUnit,\n lineItem.sellingFrequencyDuration,\n )\n .toPromise();\n }\n\n public calculateRampTermByTerm(lineItem: LineItem, term: number): Promise<any> {\n return this.priceApiService\n .getSellingTermByTerm(\n lineItem.planId,\n lineItem.offeringId,\n lineItem.startDate,\n term,\n lineItem.sellingFrequencyUnit,\n lineItem.sellingFrequencyDuration,\n )\n .toPromise();\n }\n}\n","import { CurrencyPipe, DOCUMENT } from '@angular/common';\nimport { AfterViewInit, ChangeDetectorRef, Directive, Inject, OnDestroy, OnInit, Renderer2 } from '@angular/core';\nimport { FormBuilder } from '@angular/forms';\nimport { EntityUtil, PagedEntity, Section, UUID } from '@veloceapps/core';\nimport { ContextService, QuoteDraftService } from '@veloceapps/sdk/core';\nimport * as _ from 'lodash';\nimport * as moment from 'moment';\nimport * as rxjs from 'rxjs';\nimport * as rxjsOperators from 'rxjs/operators';\nimport { ShoppingCartService } from '../../services/cart.service';\nimport { CurrentStateService } from '../../services/current-state.service';\nimport { FormScopeService } from '../../services/form-scope.service';\nimport { RuntimeService } from '../../services/runtime.service';\nimport { SectionScopeService } from '../../services/section-scope.service';\nimport { ScriptRegistry } from '../../types/script-registry.types';\nimport { SfQueryDirective } from './sf-query.directive';\nimport { LineItemDirective } from './velo-port.directive';\nimport { VlApprovalDirective } from './vl-approval.directive';\nimport { VlDocumentAttachmentsDirective } from './vl-document-attachments.directive';\nimport { VlDocumentTemplatesDirective } from './vl-document-templates.directive';\nimport { VlQuoteDirective } from './vl-quote.directive';\nimport { VlRampDirective } from './vl-ramp.directive';\n\nconst SHA1 = UUID.SHA1();\nconst SCRIPT_GLOBAL_NAME = `$velo`;\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'section-script',\n exportAs: 'scriptApi',\n providers: [\n SfQueryDirective,\n LineItemDirective,\n VlQuoteDirective,\n VlDocumentTemplatesDirective,\n VlRampDirective,\n VlApprovalDirective,\n VlDocumentAttachmentsDirective,\n ],\n})\nexport class SectionScriptDirective implements OnInit, AfterViewInit, OnDestroy {\n private scriptElement: any;\n private scriptId = '';\n private registry!: ScriptRegistry;\n private sessionScope: { [index: string]: any } = {};\n\n constructor(\n @Inject(DOCUMENT) private _document: Document,\n @Inject(SfQueryDirective) private sfQueryDirective: SfQueryDirective,\n @Inject(LineItemDirective) private lineItemDirective: LineItemDirective,\n @Inject(VlQuoteDirective) private quoteDirective: VlQuoteDirective,\n @Inject(VlDocumentTemplatesDirective) private documentTemplatesDirective: VlDocumentTemplatesDirective,\n @Inject(VlRampDirective) private rampDirective: VlRampDirective,\n @Inject(VlApprovalDirective) private approvalDirective: VlApprovalDirective,\n @Inject(VlDocumentAttachmentsDirective) private documentAttachmentsDirective: VlDocumentAttachmentsDirective,\n private formScope: FormScopeService,\n private sectionScope: SectionScopeService,\n private renderer: Renderer2,\n private formBuilder: FormBuilder,\n private runtimeService: RuntimeService,\n private cdr: ChangeDetectorRef,\n private cartService: ShoppingCartService,\n private contextService: ContextService,\n private currentStateService: CurrentStateService,\n private quoteService: QuoteDraftService,\n ) {}\n\n public ngOnInit(): void {\n if (!this.scriptExists()) {\n return;\n }\n\n this.scriptId = this.generateScriptId();\n this.registry = this.getScriptRegistry();\n this.sessionScope = this.getSessionScope();\n\n if (!this.registry.exists(this.scriptId)) {\n this.appendScriptElementToDom();\n }\n\n this.initScript();\n\n this.registry.doRegister(this.scriptId, this.sectionScope.section.id);\n }\n\n public ngAfterViewInit(): void {\n const sharedScriptGlobal = this.registry?.getGlobalForScript(this.sectionScope.section.id);\n\n if (sharedScriptGlobal) {\n this.methodApply('afterViewInit', sharedScriptGlobal);\n }\n }\n\n public ngOnDestroy(): void {\n if (!this.scriptId) {\n return;\n }\n\n this.registry.unRegister(this.scriptId, this.sectionScope.section.id);\n\n if (!this.registry.exists(this.scriptId)) {\n this.removeScript();\n this.registry.removeGlobalForScript(this.scriptId);\n }\n }\n\n public get scope(): any {\n if (!this.scriptId || !this.sectionScope.section) {\n return {};\n }\n\n return Object.assign({}, this.registry.getGlobalForScript(this.sectionScope.section.id) || {}, this.sessionScope);\n }\n\n private scriptExists(): boolean {\n return (this.sectionScope?.section?.script?.length ?? 0) > 0;\n }\n\n private encodeScriptBody(): string {\n return this.sectionScope.section.script ? atob(this.sectionScope.section.script) : '';\n }\n\n private generateScriptId(): string {\n return '_' + SHA1.hex(this.encodeScriptBody());\n }\n\n private getScriptRegistry(): ScriptRegistry {\n return this.formScope.scriptRegistry;\n }\n\n private getSessionScope(): { [index: string]: any } {\n return this.formScope.scriptSessionScope;\n }\n\n private initScript(): void {\n let sharedScriptGlobal = this.registry.getGlobalForScript(this.sectionScope.section.id);\n\n if (!EntityUtil.isPresent(sharedScriptGlobal)) {\n sharedScriptGlobal = {};\n this.registry.setGlobalForScript(this.sectionScope.section.id, sharedScriptGlobal);\n }\n\n this.methodApply('init', sharedScriptGlobal);\n }\n\n private removeScript(): void {\n const sharedScriptGlobal = this.registry.getGlobalForScript(this.sectionScope.section.id);\n\n this.methodApply('destroy', sharedScriptGlobal);\n\n this.removeScriptElementFromDom();\n }\n\n private appendScriptElementToDom(): void {\n const script = this.scriptFromTemplate(this.encodeScriptBody(), this.scriptId, this.sectionScope.section);\n\n this.scriptElement = this.renderer.createElement('script');\n this.scriptElement.type = `text/javascript`;\n this.scriptElement.text = script;\n\n this.scriptElement.setAttribute('id', this.scriptId);\n\n this.renderer.appendChild(this._document.body, this.scriptElement);\n }\n\n private removeScriptElementFromDom(): void {\n if (!this.scriptElement) {\n this.scriptElement = this._document.getElementById(this.scriptId);\n }\n\n this.scriptElement.remove();\n }\n\n private scriptFromTemplate(scriptBody: string, scriptId: string, section: Section): string {\n return `var ${scriptId} = (function (${SCRIPT_GLOBAL_NAME}, form, { section, templates }, sessionScope, formBuilder, runtimeContext, cdr, apis) {\n ${SCRIPT_GLOBAL_NAME}[\"form\"] = form;\n ${SCRIPT_GLOBAL_NAME}[\"section\"] = section;\n ${SCRIPT_GLOBAL_NAME}[\"templates\"] = templates;\n ${SCRIPT_GLOBAL_NAME}[\"sessionScope\"] = sessionScope;\n ${SCRIPT_GLOBAL_NAME}[\"formBuilder\"] = formBuilder;\n ${SCRIPT_GLOBAL_NAME}[\"runtimeContext\"] = runtimeContext;\n ${SCRIPT_GLOBAL_NAME}[\"cdr\"] = cdr;\n ${SCRIPT_GLOBAL_NAME}[\"apis\"] = apis;\n\n ${scriptBody}\n return ${SCRIPT_GLOBAL_NAME};\n });\n\n //# sourceURL=${_.kebabCase(section.label)}.js`;\n }\n\n private methodApply(methodName: string, sharedScriptGlobal: any): void {\n const args = [\n sharedScriptGlobal,\n this.formScope.form,\n this.sectionScope,\n this.sessionScope,\n this.formBuilder,\n this.runtimeService.getRuntimeContext(),\n this.cdr,\n this.getExposedApis(),\n ];\n\n const fnInit = (window as any)[`${this.scriptId}`](...args);\n\n fnInit && fnInit[methodName] && fnInit[methodName].apply();\n }\n\n private getExposedApis(): any {\n return {\n 'sf-query': this.sfQueryDirective,\n 'line-item': this.lineItemDirective,\n 'quote-directive': this.quoteDirective,\n 'templates-directive': this.documentTemplatesDirective,\n 'attachments-directive': this.documentAttachmentsDirective,\n 'ramp-directive': this.rampDirective,\n 'approval-directive': this.approvalDirective,\n entityUtil: EntityUtil,\n moment,\n lodash: _,\n rxjs: { ...rxjsOperators, ...rxjs },\n PagedEntity,\n pipes: {\n currency: CurrencyPipe,\n },\n solutionUpdateStarted: this.runtimeService.onSolutionUpdateStartedEvent,\n solutionUpdated: this.runtimeService.onSolutionProcessed,\n cartService: this.cartService,\n configurationContextService: this.contextService,\n quoteDraft: this.quoteService.quoteDraft,\n currentStateService: this.currentStateService,\n };\n }\n}\n","import { CommonModule, DatePipe } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { ApiModule } from '@veloceapps/api';\nimport { LoaderModule } from '@veloceapps/components';\nimport { CoreModule } from '@veloceapps/core';\nimport { VeloceElementsModule } from '@veloceapps/elements';\nimport { SdkCoreModule } from '@veloceapps/sdk/core';\nimport { PopoverModule } from 'ngx-bootstrap/popover';\nimport { ShoppingCartService } from '../services/cart.service';\nimport { ConfigurationService } from '../services/configuration.service';\nimport { CurrentStateService } from '../services/current-state.service';\nimport { ProductModelCacheService } from '../services/product-model-cache.service';\nimport { RuntimeContextService } from '../services/runtime-context.service';\nimport { RuntimeFormService } from '../services/runtime-form.service';\nimport { RuntimeService } from '../services/runtime.service';\nimport { SectionStoreService } from '../services/section-store.service';\nimport {\n ChildrenPlaceholderComponent,\n TemplateComponent,\n} from './components/children-placeholder/children-placeholder.component';\nimport { ContextProviderComponent } from './components/context-provider/context-provider.component';\nimport { ExecutionSectionRendererComponent } from './components/execution-section-renderer/execution-section-renderer.component';\nimport { FederatedComponent } from './components/federated/federated.component';\nimport { VeloAttributeComponent } from './components/velo-attribute/velo-attribute.component';\nimport { MultiselectComponent } from './components/velo-multiselect/velo-multiselect.component';\nimport { VeloPortCheckBoxComponent } from './components/velo-port-checkbox/velo-port-checkbox.component';\nimport { VeloPortDropdownComponent } from './components/velo-port-dropdown/velo-port-dropdown.component';\nimport { VeloPortRadioComponent } from './components/velo-port-radio/velo-port-radio.component';\nimport { VeloTypeComponent } from './components/velo-type/velo-type.component';\nimport { SectionScriptDirective } from './directives/section-script.directive';\nimport { VeloAttributeDirective } from './directives/velo-attribute.directive';\nimport {\n LineItemDirective,\n VeloDropdownComponent,\n VeloPortDirective,\n VeloQuantityButtonComponent,\n VeloQuantityComponent,\n} from './directives/velo-port.directive';\n\n@NgModule({\n declarations: [\n ExecutionSectionRendererComponent,\n ChildrenPlaceholderComponent,\n SectionScriptDirective,\n VeloPortDirective,\n LineItemDirective,\n VeloDropdownComponent,\n VeloQuantityButtonComponent,\n VeloQuantityComponent,\n VeloAttributeDirective,\n MultiselectComponent,\n VeloAttributeComponent,\n VeloPortRadioComponent,\n VeloTypeComponent,\n VeloPortDropdownComponent,\n VeloPortCheckBoxComponent,\n FederatedComponent,\n TemplateComponent,\n ContextProviderComponent,\n ],\n providers: [\n ShoppingCartService,\n RuntimeService,\n ConfigurationService,\n RuntimeContextService,\n RuntimeFormService,\n CurrentStateService,\n ProductModelCacheService,\n DatePipe,\n SectionStoreService,\n ],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n CoreModule,\n ApiModule,\n VeloceElementsModule,\n PopoverModule,\n LoaderModule,\n SdkCoreModule,\n ],\n exports: [\n FormsModule,\n ReactiveFormsModule,\n ChildrenPlaceholderComponent,\n SectionScriptDirective,\n LineItemDirective,\n VeloPortDirective,\n VeloAttributeDirective,\n MultiselectComponent,\n VeloAttributeComponent,\n VeloPortRadioComponent,\n VeloTypeComponent,\n VeloPortDropdownComponent,\n VeloPortCheckBoxComponent,\n FederatedComponent,\n TemplateComponent,\n ContextProviderComponent,\n ],\n})\nexport class RuntimeExecutionModule {}\n","import { ScrollingModule as ExperimentalScrollingModule } from '@angular/cdk-experimental/scrolling';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { CommonModule } from '@angular/common';\nimport '@angular/compiler';\nimport {\n Compiler,\n Component,\n Injectable,\n Input,\n ModuleWithComponentFactories,\n NgModule,\n NgModuleRef,\n QueryList,\n TemplateRef,\n Type,\n ViewChildren,\n ViewEncapsulation,\n} from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { CoreModule, EntityUtil, Section, UUID } from '@veloceapps/core';\nimport { VeloceElementsModule } from '@veloceapps/elements';\nimport { set, values } from 'lodash';\nimport { RuntimeExecutionModule } from '../execution/runtime-execution.module';\nimport { SectionHelperService } from './section-helper.service';\nimport { SectionStoreService } from './section-store.service';\n\nconst SHA1 = UUID.SHA1();\n\n@Component({ template: '' })\nexport class BaseSectionComponent {\n @Input()\n public form!: FormGroup;\n\n @Input()\n public section!: Section;\n\n @ViewChildren('customTemplate') protected templates!: QueryList<TemplateRef<any>>;\n}\n\n@Injectable()\nexport class SectionsService {\n private moduleType: Type<any> | null = null;\n private moduleInstance: ModuleWithComponentFactories<any> | null = null;\n\n constructor(private compiler: Compiler, private m: NgModuleRef<any>, private sectionStore: SectionStoreService) {}\n\n public compileModule(sections: Section[], isViewEncapsulated?: boolean): void {\n const uniqueSections = this.getUniqueSections(sections);\n\n this.moduleType = this.getModuleType(uniqueSections, isViewEncapsulated);\n this.moduleInstance = this.compiler.compileModuleAndAllComponentsSync(this.moduleType);\n\n this.sectionStore.componentFactories = this.moduleInstance.componentFactories;\n }\n\n public destroy(): void {\n if (this.moduleInstance) {\n this.sectionStore.componentFactories = [];\n this.moduleInstance = null;\n }\n\n if (this.moduleType) {\n this.compiler.clearCacheFor(this.moduleType);\n this.moduleType = null;\n }\n }\n\n private getDecoratedComponents(sections: Section[], isViewEncapsulated: boolean = false): any[] {\n const result: any[] = [];\n\n sections.forEach(section => {\n const transpiledTemplate = this.getTranspiledTemplate(section);\n\n const DynamicComponent = Component({\n selector: section.dynamicSelector,\n template: transpiledTemplate,\n styles: [atob(section.styles || '')],\n providers: [SectionHelperService],\n encapsulation: isViewEncapsulated ? ViewEncapsulation.ShadowDom : ViewEncapsulation.Emulated,\n jit: true,\n })(class C extends BaseSectionComponent {});\n\n this.applySelectorField(DynamicComponent, section.dynamicSelector ?? '');\n result.push(DynamicComponent);\n });\n\n return result;\n }\n\n private getModuleType(sections: Section[], isViewEncapsulated?: boolean): Type<any> {\n const decoratedComponents = this.getDecoratedComponents(sections, isViewEncapsulated);\n\n @NgModule({\n imports: [\n CommonModule,\n RuntimeExecutionModule,\n CoreModule,\n VeloceElementsModule,\n ScrollingModule,\n ExperimentalScrollingModule,\n ],\n declarations: [decoratedComponents],\n jit: true,\n })\n class DynamicModule {}\n\n return DynamicModule;\n }\n\n private applySelectorField(target: any, dynamicSelector: string): void {\n set(target, '$$dynamicSelector', dynamicSelector);\n }\n\n private getUniqueSections(sections: Section[]): Section[] {\n const uniqueSections: { [index: string]: Section } = {};\n\n sections.forEach(section => {\n section.hash = SHA1.hex(section.template);\n\n const existingSection = section.hash ? uniqueSections[section.hash] : undefined;\n if (existingSection && existingSection.template === section.template) {\n section.dynamicSelector = existingSection.dynamicSelector;\n } else if (section.hash) {\n section.dynamicSelector = `section-${section.id}`;\n\n uniqueSections[section.hash] = section;\n }\n });\n\n return values(uniqueSections);\n }\n\n private getTranspiledTemplate(section: Section): string {\n let template: string = section.template ? atob(section.template) : '';\n\n if (!EntityUtil.isEmpty(section.script) && template.indexOf('<section-script') === -1) {\n template = `<section-script></section-script>`.concat(template);\n }\n\n return template;\n }\n}\n","import {\n AfterViewInit,\n Component,\n ComponentRef,\n Injector,\n Input,\n NgModuleRef,\n OnDestroy,\n OnInit,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { Section } from '@veloceapps/core';\nimport { SectionScopeService } from '../../services/section-scope.service';\nimport { SectionStoreService } from '../../services/section-store.service';\n\n@Component({\n selector: 'vl-section-renderer',\n templateUrl: 'section-renderer.component.html',\n styleUrls: ['section-renderer.component.scss'],\n providers: [SectionScopeService],\n})\nexport class SectionRendererComponent implements OnInit, AfterViewInit, OnDestroy {\n private _section!: Section;\n\n @Input()\n public set section(value: Section) {\n this._section = value;\n this.sectionScope.section = value;\n }\n\n public get section(): Section {\n return this._section;\n }\n\n @Input()\n public form!: FormGroup;\n\n constructor(\n private _injector: Injector,\n private _m: NgModuleRef<any>,\n private sectionScope: SectionScopeService,\n private sectionStore: SectionStoreService,\n ) {}\n\n @ViewChild('container', { read: ViewContainerRef, static: true })\n public container!: ViewContainerRef;\n\n private componentRef: ComponentRef<any> | null = null;\n\n public ngOnInit(): void {\n this.renderSection();\n }\n\n public ngAfterViewInit(): void {\n if (this.componentRef) {\n this.sectionScope.templates.next(this.componentRef.instance['templates']?.toArray() ?? []);\n }\n }\n\n public ngOnDestroy(): void {\n if (this.componentRef) {\n this.componentRef.destroy();\n this.componentRef = null;\n }\n }\n\n public renderSection(): void {\n if (this.componentRef) {\n this.componentRef.destroy();\n this.componentRef = null;\n }\n\n const componentFactory = this.sectionStore.getComponentFactory(this._section);\n if (!componentFactory) {\n return;\n }\n\n this.componentRef = componentFactory.create(this._injector, [], null, this._m);\n this.componentRef.location.nativeElement.setAttribute(\n 'sectionId',\n `${this._section.model?.id}${this._section.label}`,\n );\n this.componentRef.instance['form'] = this.form;\n this.componentRef.instance['section'] = this.section;\n\n this.container.insert(this.componentRef.hostView);\n }\n}\n","<ng-template #container></ng-template>","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { ComponentStoryPreview, EntityUtil, LineItem, RuntimeModel, Section, UUID } from '@veloceapps/core';\nimport { RuntimeMode } from '@veloceapps/sdk/core';\nimport { CollapsibleStateService } from '../../services/collapsible-state.service';\nimport { FormScopeService } from '../../services/form-scope.service';\nimport { RuntimeFormService } from '../../services/runtime-form.service';\nimport { RuntimeService } from '../../services/runtime.service';\nimport { SectionsService } from '../../services/section.service';\nimport { LegacyRuntimeContext } from '../../types';\n\nconst defaultTemplate = btoa('<template-component></template-component>');\n\n@Component({\n selector: 'vl-component-preview',\n templateUrl: './component-preview.component.html',\n styleUrls: ['../ui-runtime/runtime-legacy-styles.scss', './component-preview.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n SectionsService,\n FormScopeService,\n CollapsibleStateService,\n RuntimeFormService,\n FormScopeService,\n RuntimeService,\n ],\n})\nexport class ComponentPreviewComponent implements OnChanges {\n @Input() public data?: ComponentStoryPreview;\n\n public form = new FormGroup({});\n public section?: Section;\n\n public showPreview = false;\n public isNoPreviewAvailable = false;\n public isPreviewFailed = false;\n\n constructor(\n private sectionsService: SectionsService,\n private runtimeFormService: RuntimeFormService,\n private formScope: FormScopeService,\n private runtimeService: RuntimeService,\n private cdr: ChangeDetectorRef,\n ) {}\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes.data) {\n this.sectionsService.destroy();\n this.showPreview = false;\n this.isNoPreviewAvailable = false;\n this.isPreviewFailed = false;\n\n setTimeout(() => {\n try {\n this.runPreview(this.data as ComponentStoryPreview);\n this.cdr.detectChanges();\n } catch (e: any) {\n console.error(e?.stack ?? e?.error ?? 'Error occured');\n this.showPreview = false;\n this.isPreviewFailed = true;\n this.cdr.detectChanges();\n }\n });\n }\n }\n\n public runPreview(data: ComponentStoryPreview): void {\n const section = data.section && (JSON.parse(data.section) as Section);\n\n if (!section) {\n this.isNoPreviewAvailable = true;\n return;\n }\n\n const model: LineItem = {\n ...(section?.model ?? {\n attributes: [],\n lineItems: [],\n }),\n id: UUID.UUID(),\n } as LineItem;\n\n const componentSection: Section = {\n ...section,\n script: data.componentScript ? btoa(data.componentScript) : '',\n styles: data.componentStyles ? btoa(data.componentStyles) : '',\n template: data.componentTemplate ? btoa(data.componentTemplate) : '',\n properties: data.componentProperties ? JSON.stringify(data.componentProperties) : {},\n id: UUID.UUID(),\n model,\n } as Section;\n\n const storySection: Section = {\n id: UUID.UUID(),\n template: data.template ? btoa(data.template) : defaultTemplate,\n styles: data.styles ? btoa(data.styles) : '',\n script: data.script ? btoa(data.script) : '',\n children: [componentSection],\n model,\n } as Section;\n\n const sections = [storySection, componentSection];\n\n this.form = this.formScope.form = this.runtimeFormService.initForm(sections, model);\n\n this.createRuntimeContext(componentSection);\n this.sectionsService.compileModule(sections);\n\n this.section = storySection;\n this.showPreview = true;\n }\n\n public createRuntimeContext(section: Section): void {\n const runtimeModel = RuntimeModel.create([], {});\n const rootType = Array.from(runtimeModel.components.values()).find(\n c =>\n section.model?.type &&\n runtimeModel.isEquals(c.typeName, section.model.type) &&\n EntityUtil.isPresent(c.productId),\n );\n\n const contextProductId = rootType ? rootType.productId : undefined;\n\n const context: LegacyRuntimeContext = {\n modelId: '',\n runtimeModel,\n runtimeMode: RuntimeMode.TEST,\n productId: contextProductId,\n properties: {},\n } as LegacyRuntimeContext;\n\n this.runtimeService.setRuntimeContext(context);\n }\n}\n","<ng-container *ngIf=\"showPreview\">\n <vl-section-renderer [section]=\"section!\" [form]=\"form\"></vl-section-renderer>\n</ng-container>\n\n<span class=\"info\" *ngIf=\"isNoPreviewAvailable\">No preview available</span>\n<span class=\"info error\" *ngIf=\"isPreviewFailed\">Preview has failed</span>\n","import { EntityUtil, Section } from '@veloceapps/core';\n\nexport const getSectionTree = (src: Section[]): Section[] => {\n const sections = EntityUtil.clone(src);\n\n const sectionIdMap = new Map<string, Section>();\n\n sections.forEach(section => sectionIdMap.set(section.id, section));\n\n const sectionTree: Section[] = [];\n sections.forEach(section => {\n if (section.parentId) {\n const parentSection = sectionIdMap.get(section.parentId);\n if (parentSection) {\n const sectionFromMap = sectionIdMap.get(section.id);\n if (sectionFromMap) {\n parentSection.addChild(sectionFromMap);\n }\n }\n } else {\n const s = sectionIdMap.get(section.id);\n if (s) {\n sectionTree.push(s);\n }\n }\n });\n\n return sectionTree;\n};\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { ChangeDetectorRef, Component, EventEmitter, Inject, OnDestroy, OnInit, Output } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport {\n Attribute,\n ChargeItem,\n EntityUtil,\n LineItem,\n OrderByPipe,\n PriceAdjustment,\n SalesforceIdUtils,\n SearchFilterPipe,\n Section,\n SectionPath,\n UITab,\n UUID,\n} from '@veloceapps/core';\nimport { ContextService } from '@veloceapps/sdk/core';\nimport { Dictionary } from 'lodash';\nimport { MessageService } from 'primeng/api';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { CollapsibleStateService } from '../../services/collapsible-state.service';\nimport { FormScopeService } from '../../services/form-scope.service';\nimport { RuntimeFormService } from '../../services/runtime-form.service';\nimport { RuntimeService } from '../../services/runtime.service';\nimport { SectionHelperService } from '../../services/section-helper.service';\nimport { SectionsService } from '../../services/section.service';\nimport { LegacyRuntimeContext, SolutionReadyAware, UpdateData } from '../../types';\nimport { BoundDataType } from '../../types/bound-data.types';\nimport { LineItemUtil } from '../../utils/line-item.util';\nimport { getSectionTree } from '../../utils/section.utils';\nimport { SectionsBinderHelper } from '../../utils/sections-binder.helper';\n\n@Component({\n selector: 'vl-runtime',\n moduleId: module.id,\n templateUrl: 'runtime.component.html',\n styleUrls: ['./runtime-legacy-styles.scss', 'runtime.component.scss'],\n providers: [FormScopeService, CollapsibleStateService, OrderByPipe, SearchFilterPipe],\n})\nexport class RuntimeComponent implements OnInit, OnDestroy, SolutionReadyAware {\n public readonly messageBucketId = 'ui.runtime';\n\n public sortedSections: Section[] = [];\n public staticSections: Section[] = [];\n\n public runtimeContext!: LegacyRuntimeContext;\n public solutionLineItem!: LineItem;\n public form: FormGroup = new FormGroup({});\n\n public activeUITab?: UITab;\n\n public solutionIsReady = false;\n\n private readonly unsubscribe = new Subject<void>();\n\n @Output() private readonly solutionUpdated = new EventEmitter<any>();\n\n constructor(\n private sectionsService: SectionsService,\n private formScope: FormScopeService,\n private collapsibleState: CollapsibleStateService,\n private formService: RuntimeFormService,\n private runtimeService: RuntimeService,\n @Inject(MessageService) private messageService: MessageService,\n private contextService: ContextService,\n private orderByPipe: OrderByPipe,\n private searchFilterPipe: SearchFilterPipe,\n private cdr: ChangeDetectorRef,\n ) {}\n\n private adjustPrice(\n valueOption: string | undefined,\n section: Section,\n solutionLineItem: LineItem,\n patch: Dictionary<PriceAdjustment>,\n ): void {\n const parentLineItem = section.model && LineItemUtil.findById(section.model.id, [solutionLineItem]);\n\n if (!parentLineItem) {\n return;\n }\n\n parentLineItem.lineItems = parentLineItem.lineItems.map(lineItem => {\n const { productId, chargeItems } = lineItem;\n\n if (productId !== valueOption) {\n return lineItem;\n }\n\n const chargeItem = chargeItems.shift();\n const updatedChargeItem = {\n ...chargeItem,\n ...patch,\n } as ChargeItem;\n\n return {\n ...lineItem,\n chargeItems: [updatedChargeItem, ...chargeItems],\n };\n });\n\n this.updateRuntime(solutionLineItem);\n }\n\n public ngOnInit(): void {\n this.formScope.formSubmitEvent.pipe(takeUntil(this.unsubscribe)).subscribe((e: UpdateData) => {\n try {\n this.form.updateValueAndValidity();\n const solutionLineItem = EntityUtil.clone(this.solutionLineItem);\n\n const section = this.findSection(e.id);\n\n if (!section) {\n throw 'Section not found';\n }\n const entityType = section.boundData.entityType;\n\n if (entityType === BoundDataType[BoundDataType.PORT] || entityType === BoundDataType[BoundDataType.TYPE]) {\n if (e.action === 'patch' && EntityUtil.isPresent(e.valueOption)) {\n const valueOption: any = e['valueOption'];\n\n if (!section.model?.parentId) {\n this.collapsibleState.clearState(section.id);\n this.updateRuntime(valueOption);\n } else {\n const parentLineItem = LineItemUtil.findById(section.model.parentId, [solutionLineItem]);\n\n if (parentLineItem) {\n const indx = parentLineItem.lineItems.findIndex(item => item.id === section.model?.id);\n\n parentLineItem.lineItems.splice(indx, 1, valueOption);\n\n this.collapsibleState.clearState(section.id);\n this.updateRuntime(solutionLineItem);\n }\n }\n }\n }\n\n if (entityType === BoundDataType[BoundDataType.PORT]) {\n if (e.action === 'upsert') {\n const parentLineItem = section.model && LineItemUtil.findById(section.model.id, [solutionLineItem]);\n\n if (parentLineItem) {\n parentLineItem.lineItems.forEach(i => {\n if (\n e.selectedValueOptions &&\n e.selectedValueOptions.findIndex(v => v.toLowerCase() === i.type.toLowerCase()) < 0\n ) {\n this.updateCardinalityVariable(parentLineItem, i, 0);\n }\n });\n const lineItems = parentLineItem?.lineItems.filter(\n i =>\n e.selectedValueOptions &&\n e.selectedValueOptions.findIndex(v => v.toLowerCase() === i.type.toLowerCase()) > -1,\n );\n e.selectedValueOptions?.forEach(v => {\n if (lineItems?.findIndex(item => item.type.toLowerCase() === v.toLowerCase()) === -1) {\n const lineItem = this.createLineItem(section, v, parentLineItem);\n this.updateCardinalityVariable(parentLineItem, lineItem);\n lineItems.push(lineItem);\n }\n });\n\n this.updateRuntime(solutionLineItem);\n }\n }\n\n if (e.action === 'create') {\n const parentLineItem = section.model && LineItemUtil.findById(section.model.id, [solutionLineItem]);\n\n if (parentLineItem) {\n const valueOption = e.valueOption;\n const lineItem = this.createLineItem(section, valueOption, parentLineItem);\n parentLineItem.lineItems.push(lineItem);\n this.updateCardinalityVariable(parentLineItem, lineItem);\n\n this.updateRuntime(solutionLineItem);\n }\n }\n\n if (e.action === 'copy') {\n const parentLineItem = section.model && LineItemUtil.findById(section.model.id, [solutionLineItem]);\n\n if (parentLineItem) {\n const valueOption = e.valueOption;\n const lineItemToCopy = parentLineItem.lineItems.find(li => li.id === valueOption);\n if (lineItemToCopy) {\n const lineItem: LineItem = { ...lineItemToCopy, id: '' };\n parentLineItem.lineItems.push(lineItem);\n this.updateCardinalityVariable(parentLineItem, lineItem);\n\n this.updateRuntime(solutionLineItem);\n }\n }\n }\n\n if (e.action === 'update') {\n const parentLineItem = section.model && LineItemUtil.findById(section.model.id, [solutionLineItem]);\n\n if (parentLineItem) {\n //Assuming that radio control is the only control, that 'updates' values\n const previous = section.model?.lineItems.filter(li => li.port && li.port === section.boundData.name)[0];\n\n if (previous) {\n this.updateCardinalityVariable(parentLineItem, previous, 0);\n }\n\n const index = parentLineItem.lineItems.findIndex(li => li.id === previous?.id);\n\n const lineItem: LineItem = {\n id: UUID.UUID(),\n qty: previous?.qty,\n port: previous?.port,\n type: EntityUtil.isPresent(e.valueOption) ? e.valueOption : this.form.controls[e.id].value,\n cfgStatus: 'New',\n parentId: previous?.parentId,\n } as LineItem;\n\n this.updateCardinalityVariable(parentLineItem, lineItem);\n parentLineItem.lineItems[index] = lineItem;\n\n this.updateRuntime(solutionLineItem);\n }\n }\n\n if (e.action === 'remove') {\n const parentLineItem = section.model && LineItemUtil.findById(section.model.id, [solutionLineItem]);\n\n if (\n parentLineItem &&\n SectionsBinderHelper.isRemoveAllowed(parentLineItem, section.boundData.name, section.model?.qty)\n ) {\n const index = parentLineItem.lineItems.findIndex(\n item => item.type.toLowerCase() === e.valueOption?.toLowerCase(),\n );\n if (index > -1) {\n const removed = parentLineItem.lineItems.splice(index, 1)[0];\n this.updateCardinalityVariable(parentLineItem, removed, 0);\n this.updateRuntime(solutionLineItem);\n }\n }\n }\n\n if (e.action === 'qtyUpdate') {\n const typeSection = e.valueOption\n ? SectionHelperService.findSectionForValue(section, e.valueOption)\n : undefined;\n\n const typeLineItem = typeSection?.model && LineItemUtil.findById(typeSection.model.id, [solutionLineItem]);\n if (typeSection && typeLineItem) {\n typeLineItem.qty = +this.form.controls[typeSection.id + 'qty'].value;\n typeLineItem.cfgStatus = 'User';\n this.updateRuntime(solutionLineItem);\n }\n }\n\n if (e.action === 'adjustNetPrice') {\n const { valueOption, options } = e;\n const { amount } = options ?? {};\n\n const priceAdjustment: PriceAdjustment = {\n type: 'OVERRIDE_AMOUNT',\n explanation: 'Manual net price adjustment',\n formula: '',\n amount,\n };\n\n this.adjustPrice(valueOption, section, solutionLineItem, { priceAdjustment });\n }\n\n if (e.action === 'adjustListPrice') {\n const { valueOption, options } = e;\n const { amount } = options ?? {};\n\n const listPriceAdjustment: PriceAdjustment = {\n type: 'OVERRIDE_AMOUNT',\n explanation: 'Manual list price adjustment',\n formula: '',\n amount,\n };\n\n this.adjustPrice(valueOption, section, solutionLineItem, { listPriceAdjustment });\n }\n }\n\n if (entityType === BoundDataType[BoundDataType.TYPE]) {\n if (e.action === 'remove') {\n const parentLineItem =\n section.model?.parentId && LineItemUtil.findById(section.model.parentId, [solutionLineItem]);\n\n if (\n parentLineItem &&\n section.model &&\n section.model.port &&\n SectionsBinderHelper.isRemoveAllowed(parentLineItem, section.model.port, section.model?.qty)\n ) {\n const index = parentLineItem.lineItems.findIndex(item => item.id === section.model?.id);\n if (index > -1) {\n const removed = parentLineItem.lineItems.splice(index, 1)[0];\n this.updateCardinalityVariable(parentLineItem, removed, 0);\n this.collapsibleState.clearState(section.id);\n this.updateRuntime(solutionLineItem);\n }\n }\n }\n\n if (e.action === 'qtyUpdate') {\n const typeLineItem = section.model && LineItemUtil.findById(section.model.id, [solutionLineItem]);\n\n if (typeLineItem) {\n const qty = +this.form.controls[e.id + 'qty'].value;\n if (typeLineItem.parentId) {\n const parentLineItem = LineItemUtil.findById(typeLineItem.parentId, [solutionLineItem]);\n\n if (parentLineItem) {\n this.updateCardinalityVariable(parentLineItem, typeLineItem, qty);\n }\n }\n typeLineItem.qty = qty;\n typeLineItem.cfgStatus = 'User';\n this.updateRuntime(solutionLineItem);\n }\n }\n }\n\n if (entityType === BoundDataType[BoundDataType.ATTRIBUTE]) {\n if (e.action === 'update') {\n const parentLineItem = section.model && LineItemUtil.findById(section.model.id, [solutionLineItem]);\n const attribute = parentLineItem?.attributes.find(\n attr => attr.name.toLowerCase() === section.boundData.name.toLowerCase(),\n );\n\n if (attribute) {\n //Explicitly set value always win\n let value = typeof e.valueOption !== 'undefined' ? e.valueOption : this.form.controls[e.id].value;\n\n if (attribute.type === 'BOOLEAN') {\n value = value ? 1 : 0;\n }\n\n attribute.value = value;\n attribute.cfgStatus = 'User';\n\n this.updateRuntime(solutionLineItem);\n }\n }\n }\n } catch (e) {\n console.log(e);\n this.messageService.add({ key: this.messageBucketId, summary: `Configuration failed ${(e as any)?.message}` });\n }\n });\n\n this.runtimeService.onSolutionReadyEvent\n .pipe(takeUntil(this.unsubscribe))\n .subscribe(lineItem => this.onSolutionReady(lineItem));\n\n this.runtimeService.onSolutionUpdatedEvent\n .pipe(takeUntil(this.unsubscribe))\n .subscribe((data: LineItem | HttpErrorResponse) => {\n if (!(data instanceof HttpErrorResponse)) {\n return this.handleSolutionUpdate(data);\n }\n\n this.handleSolutionFailedUpdate(data);\n });\n\n this.runtimeService.onUIRefreshEvent.pipe(takeUntil(this.unsubscribe)).subscribe(() => {\n const { uiDefinition } = this.runtimeService.getRuntimeContext() ?? {};\n this.runtimeContext.uiDefinition = uiDefinition as any;\n this.formScope.scriptSessionScope = {};\n this.startRuntime();\n });\n }\n\n public onSolutionReady(lineItem: LineItem): void {\n const context = this.runtimeService.getRuntimeContext() as LegacyRuntimeContext;\n const configurationContext = this.contextService.resolve();\n\n const mergeContext: LegacyRuntimeContext = {\n ...context,\n properties: {\n ...context.properties,\n ...configurationContext.properties,\n },\n };\n\n const accountId = mergeContext.properties?.AccountId;\n if (accountId && accountId.length === 15) {\n this.runtimeContext = {\n ...mergeContext,\n properties: {\n ...mergeContext.properties,\n AccountId: SalesforceIdUtils.generateId18FromId15(accountId),\n },\n } as any;\n } else {\n this.runtimeContext = mergeContext as any;\n }\n\n this.solutionLineItem = lineItem;\n this.runtimeService.setRuntimeContext(this.runtimeContext);\n\n this.startRuntime();\n }\n\n private handleSolutionUpdate(updatedLineItem: LineItem): void {\n this.solutionLineItem = updatedLineItem;\n this.processSolution(true);\n this.runtimeService.solutionProcessed(this.solutionLineItem);\n this.cdr.detectChanges();\n }\n\n private handleSolutionFailedUpdate(error: HttpErrorResponse): void {\n const hasErrorMessage = EntityUtil.isPresent(error.error) && EntityUtil.isPresent(error.error.message);\n const message = hasErrorMessage ? error.error.message : 'Configuration failed';\n const { isHandlingConfigurationErrors } = this.runtimeContext.uiDefinition ?? {};\n\n if (isHandlingConfigurationErrors) {\n this.messageService.add({ key: this.messageBucketId, summary: message });\n }\n\n this.solutionLineItem = {\n ...this.solutionLineItem,\n messages: [...this.solutionLineItem.messages, `E:${message}`],\n };\n this.processSolution(true, true);\n this.runtimeService.solutionProcessed(this.solutionLineItem);\n\n this.cdr.detectChanges();\n }\n\n private updateCardinalityVariable(parent: LineItem, updated: LineItem, newQuantity?: number): void {\n const portDomain = updated.port ? parent.portDomains[updated.port] : undefined;\n const domainType = portDomain?.domainTypes.find(t => t.name === updated.type);\n const cardinality = domainType?.cardinality ?? 0;\n\n let qty;\n if (!Number.isFinite(domainType?.cardinality)) {\n qty = Number.isFinite(newQuantity) ? newQuantity : updated.qty;\n } else {\n qty = EntityUtil.isPresent(newQuantity)\n ? cardinality - updated.qty + (newQuantity as number)\n : cardinality + updated.qty;\n }\n\n const cardinalityName = '#CV-' + updated.type + '@' + updated.port;\n\n let cardinalityVariable = parent.attributes.find(a => a.name === cardinalityName);\n if (!cardinalityVariable) {\n cardinalityVariable = {\n id: UUID.UUID(),\n name: cardinalityName,\n } as Attribute;\n parent.attributes.push(cardinalityVariable);\n }\n cardinalityVariable.value = qty;\n cardinalityVariable.cfgStatus = 'User';\n }\n\n private createLineItem(section: Section, valueOption?: string, parentLineItem?: LineItem): LineItem {\n return {\n qty: +this.form.controls[section.id + 'qty'].value,\n port: section.boundData.name,\n type: EntityUtil.isPresent(valueOption) ? valueOption : this.form.controls[section.id].value,\n cfgStatus: 'New',\n parentId: parentLineItem?.id,\n } as LineItem;\n }\n\n public ngOnDestroy(): void {\n this.unsubscribe.next();\n\n this.sectionsService.destroy();\n }\n\n private startRuntime(): void {\n const uiDefinition = this.runtimeContext.uiDefinition;\n\n const defaultTab = uiDefinition?.tabs?.find(tab => tab.isDefault);\n this.activeUITab = EntityUtil.isPresent(defaultTab) ? defaultTab : uiDefinition?.tabs?.[0];\n\n this.sectionsService.compileModule(uiDefinition?.sections ?? [], uiDefinition?.isViewEncapsulated);\n\n this.processSolution();\n\n this.solutionIsReady = true;\n\n this.cdr.detectChanges();\n }\n\n private updateRuntime(lineItem: LineItem): void {\n this.solutionUpdated.emit(lineItem);\n }\n\n public addToCart(): void {\n const lineItem = EntityUtil.clone(this.solutionLineItem);\n\n this.runtimeService.stopRuntime(lineItem);\n }\n\n public processSolution(isUpdate?: boolean, isError?: boolean): void {\n //1. Bind sections to solution\n let sections = EntityUtil.clone(this.runtimeContext.uiDefinition?.sections) ?? [];\n const sourceSections = EntityUtil.clone(this.runtimeContext.uiDefinition?.sections) ?? [];\n this.updateLineItemsSectionPath(this.solutionLineItem);\n SectionsBinderHelper.setLineItemsPath(\n this.runtimeContext.runtimeModel,\n this.solutionLineItem,\n sections,\n sourceSections,\n (sec: any) => !sec.parentId && sec.boundData,\n this.runtimeContext.uiDefinition?.pricingEnabled ?? false,\n );\n\n sections = sections.filter(s => s.model && s.template);\n\n //2. Init form\n this.form = this.formService.initForm(sections, this.solutionLineItem);\n this.formScope.form = this.form;\n\n this.sortedSections = this.filterAndSort(getSectionTree(sections.filter(s => !s.isStatic)));\n\n if (!isUpdate) {\n this.staticSections = this.filterAndSort(getSectionTree(sections.filter(s => s.isStatic)));\n }\n\n if (!isError) {\n this.messageService.clear(this.messageBucketId);\n }\n }\n\n public hideModal(): void {\n this.runtimeService.cancelRuntime();\n }\n\n private updateLineItemsSectionPath(lineItem: LineItem, parent?: SectionPath): void {\n const path: SectionPath = {\n types: parent ? parent.types.concat([lineItem.type]) : [lineItem.type],\n ports: parent ? parent.ports.concat(lineItem.port ? [lineItem.port] : []) : [],\n } as SectionPath;\n\n lineItem.path = path;\n\n for (const child of lineItem.lineItems) {\n this.updateLineItemsSectionPath(child, lineItem.path);\n }\n }\n\n private filterAndSort(sections: Section[]): Section[] {\n const filtered = this.searchFilterPipe.transform(sections, this.activeUITab?.id, 'page');\n const ordered = this.orderByPipe.transform(filtered, 'order', 'asc');\n\n return ordered;\n }\n\n private findSection(id: string): Section | undefined {\n return EntityUtil.findByFieldHierarchically('id', id, [...this.sortedSections, ...this.staticSections], 'children');\n }\n}\n","<vl-loader label=\"Loading UI\" *ngIf=\"!solutionIsReady; else content\"></vl-loader>\n\n<ng-template #content>\n <div\n class=\"sidebar-tabs\"\n [ngClass]=\"{ hidden: !runtimeContext?.uiDefinition?.defaultPanels }\"\n #uiTabs=\"sidebarTabs\"\n sidebarTabs=\"{{ activeUITab?.id }}\"\n id=\"vl-default-sidebar-tabs\"\n >\n <ul>\n <li\n *ngFor=\"let tab of runtimeContext?.uiDefinition?.tabs | orderBy: 'order':'asc'\"\n [ngClass]=\"{ active: uiTabs.activeTab === tab.id }\"\n (click)=\"uiTabs.switchTab(tab.id)\"\n >\n <a href=\"javascript:void(0);\">{{ tab.name }}</a>\n </li>\n </ul>\n </div>\n\n <div class=\"sections-wrapper\">\n <form role=\"form\" name=\"form\" class=\"form-horizontal\" [formGroup]=\"form\" novalidate autocomplete=\"off\">\n <ng-container *ngFor=\"let section of staticSections; let i = index\">\n <ng-container *ngIf=\"section.model && section.template && !section.hidden\">\n <vl-section-renderer [section]=\"section\" [form]=\"form\"></vl-section-renderer>\n </ng-container>\n </ng-container>\n\n <ng-container *ngFor=\"let section of sortedSections; let i = index\">\n <ng-container *ngIf=\"section.model && section.template && !section.hidden\">\n <vl-section-renderer [section]=\"section\" [form]=\"form\"></vl-section-renderer>\n </ng-container>\n </ng-container>\n </form>\n\n <div\n class=\"modal-footer\"\n *ngIf=\"runtimeContext?.runtimeMode === 1\"\n id=\"vl-runtime-default-footer\"\n [ngClass]=\"{ hidden: !runtimeContext?.uiDefinition?.defaultPanels }\"\n >\n <div class=\"col-md-12 input-form-input\">\n <a href=\"javascript:void(0);\" class=\"btn btn-default\" (click)=\"form.valid && addToCart()\" id=\"add-to-cart-btn\"\n >Add to cart</a\n >\n <a href=\"javascript:void(0);\" class=\"btn btn-link\" (click)=\"hideModal()\" id=\"cancel-btn\">Cancel</a>\n </div>\n </div>\n </div>\n</ng-template>\n","import { ChangeDetectionStrategy, Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport { ConfigurationApiService } from '@veloceapps/api';\nimport {\n ConfigurationContextMode,\n EntityUtil,\n LineItem,\n ProductModelAttribute,\n ProductModelsContainer,\n RuntimeModel,\n SectionPathUtil,\n UIDefinition,\n} from '@veloceapps/core';\nimport { ContextService, RuntimeMode } from '@veloceapps/sdk/core';\nimport { Dictionary } from 'lodash';\nimport { combineLatest, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { ProductModelCacheService } from '../../services/product-model-cache.service';\nimport { RuntimeService } from '../../services/runtime.service';\nimport { LegacyRuntimeContext } from '../../types';\n\n@Component({\n selector: 'vl-runtime-preview',\n templateUrl: 'runtime-preview.component.html',\n styleUrls: ['runtime-preview.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RuntimePreviewComponent implements OnInit, OnDestroy {\n @Input() public modelId?: string;\n @Input() public set uiDefinition(value: UIDefinition) {\n this._uiDefinition = value;\n this.initDefinition(value);\n }\n\n private _uiDefinition?: UIDefinition;\n private initialisedUiDefinition?: UIDefinition;\n private productModelContainer?: ProductModelsContainer;\n\n private destroy$ = new Subject<void>();\n\n constructor(\n private runtimeService: RuntimeService,\n private modelCacheService: ProductModelCacheService,\n private configurationApiService: ConfigurationApiService,\n private contextService: ContextService,\n ) {}\n\n public ngOnInit(): void {\n if (!this.modelId) {\n return;\n }\n\n this.modelCacheService\n .getProductModel(this.modelId)\n .pipe(takeUntil(this.destroy$))\n .subscribe(container => {\n this.productModelContainer = container;\n\n if (this._uiDefinition) {\n this.initDefinition(this._uiDefinition);\n }\n });\n }\n\n public ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n public initDefinition(uiDefinition: UIDefinition): void {\n if (!this.productModelContainer) {\n return;\n }\n\n const initialisedUiDefinition = EntityUtil.clone(uiDefinition);\n\n const externals: ProductModelAttribute[] = this.productModelContainer.main.externals;\n if (externals) {\n initialisedUiDefinition.externals = externals.reduce<Dictionary<string>>((trunk, variable) => {\n return {\n ...trunk,\n [variable.name]: initialisedUiDefinition.externals?.[variable.name] ?? '',\n };\n }, {});\n } else {\n delete initialisedUiDefinition.externals;\n }\n\n this.initialisedUiDefinition = initialisedUiDefinition;\n\n this.launchRuntime();\n }\n\n public onSolutionUpdated(lineItem: LineItem): void {\n this.runtimeService.updateRuntime({ configurableRamp: lineItem });\n }\n\n private launchRuntime(): void {\n if (!this.modelId || !this.initialisedUiDefinition) {\n return;\n }\n\n SectionPathUtil.updateSectionsPath(this.initialisedUiDefinition.sections);\n\n const uiDefinition = EntityUtil.clone(this.initialisedUiDefinition);\n\n combineLatest([\n this.configurationApiService.getRuntimeDataByModelId(this.modelId),\n this.contextService.create('TestId', ConfigurationContextMode.TEST),\n ]).subscribe(([runtimeData]) => {\n const runtimeModel = RuntimeModel.create(runtimeData.types, runtimeData.products);\n const rootType = Array.from(runtimeModel.components.values()).find(\n c =>\n uiDefinition.rootType &&\n runtimeModel.isEquals(c.typeName, uiDefinition.rootType) &&\n EntityUtil.isPresent(c.productId),\n );\n\n if (rootType?.typeName) {\n uiDefinition.rootType = rootType.typeName;\n }\n\n const contextProductId = rootType ? rootType.productId : undefined;\n\n const context: LegacyRuntimeContext = {\n modelId: this.modelId ?? '',\n uiDefinition: uiDefinition,\n runtimeModel,\n runtimeMode: RuntimeMode.TEST,\n productId: contextProductId,\n properties: uiDefinition.externals,\n };\n\n this.runtimeService.startRuntime(context, {});\n });\n }\n}\n","<vl-runtime (solutionUpdated)=\"onSolutionUpdated($event)\"></vl-runtime>\n","import { CommonModule, DatePipe } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { ApiModule } from '@veloceapps/api';\nimport { LoaderModule } from '@veloceapps/components';\nimport { CoreModule } from '@veloceapps/core';\nimport { VeloceElementsModule } from '@veloceapps/elements';\nimport { SdkCoreModule } from '@veloceapps/sdk/core';\nimport { PopoverModule } from 'ngx-bootstrap/popover';\nimport { DialogService } from 'primeng/dynamicdialog';\nimport { ComponentPreviewComponent } from './components';\nimport { SectionRendererComponent } from './components/section-renderer/section-renderer.component';\nimport { RuntimePreviewComponent } from './components/ui-runtime-preview/runtime-preview.component';\nimport { RuntimeComponent } from './components/ui-runtime/runtime.component';\nimport { ShoppingCartService } from './services/cart.service';\nimport { ConfigurationService } from './services/configuration.service';\nimport { CurrentStateService } from './services/current-state.service';\nimport { ProductModelCacheService } from './services/product-model-cache.service';\nimport { RuntimeContextService } from './services/runtime-context.service';\nimport { RuntimeFormService } from './services/runtime-form.service';\nimport { RuntimeService } from './services/runtime.service';\nimport { SectionStoreService } from './services/section-store.service';\nimport { SectionsService } from './services/section.service';\n\n@NgModule({\n declarations: [RuntimeComponent, RuntimePreviewComponent, SectionRendererComponent, ComponentPreviewComponent],\n providers: [\n ShoppingCartService,\n RuntimeService,\n ConfigurationService,\n RuntimeContextService,\n RuntimeFormService,\n CurrentStateService,\n ProductModelCacheService,\n DatePipe,\n SectionsService,\n SectionStoreService,\n DialogService,\n ],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n CoreModule,\n ApiModule,\n VeloceElementsModule,\n PopoverModule,\n LoaderModule,\n SdkCoreModule,\n ],\n exports: [\n FormsModule,\n ReactiveFormsModule,\n RuntimeComponent,\n RuntimePreviewComponent,\n SectionRendererComponent,\n ComponentPreviewComponent,\n ],\n})\nexport class RuntimeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["Subject","i0","Injectable","EntityUtil","FormGroup","UUID","SectionPathUtil","FormControl","TypeValidators","keys","isUndefined","isNull","isString","ConfigurationMode","map","RuntimeMode","ConfirmationComponent","i1","i2","i3","RuntimeStep","take","i1.ConfigurationService","tap","shareReplay","RuntimeModel","BehaviorSubject","i1.SectionScopeService","i2.SectionStoreService","ViewContainerRef","Component","Input","ViewChild","i2.FormScopeService","i3.CollapsibleStateService","OrderByPipe","i4.ExecutionSectionRendererComponent","i5","Inject","EventEmitter","TemplateRef","ChangeDetectionStrategy","Output","isDate","i1.FormScopeService","i2.SectionScopeService","Directive","TemplatePortal","of","merge","NG_VALUE_ACCESSOR","HostBinding","i3.MultiselectComponent","i4","i2.CollapsibleStateService","i3.SectionScopeService","i6","i7","i8","PricingUtils","i3.ConfigurationService","i2.RuntimeService","SHA1","_","moment","rxjsOperators","rxjs","PagedEntity","CurrencyPipe","DOCUMENT","i4.RuntimeService","i5.ShoppingCartService","i7.CurrentStateService","CommonModule","FormsModule","ReactiveFormsModule","CoreModule","ApiModule","VeloceElementsModule","PopoverModule","LoaderModule","SdkCoreModule","DatePipe","NgModule","ViewChildren","ViewEncapsulation","ScrollingModule","ExperimentalScrollingModule","set","values","i1.SectionStoreService","i1.SectionsService","i2.RuntimeFormService","i3.FormScopeService","i5.SectionRendererComponent","takeUntil","HttpErrorResponse","SalesforceIdUtils","MessageService","SearchFilterPipe","i9.SectionRendererComponent","i10","i11","combineLatest","ConfigurationContextMode","i1.RuntimeService","i2.ProductModelCacheService","i5.RuntimeComponent","DialogService"],"mappings":"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"}