@veloceapps/sdk 8.0.0-8 → 8.0.0-81

Sign up to get free protection for your applications and to get access to all the features.
Files changed (240) hide show
  1. package/README.md +0 -1
  2. package/cms/utils/element.utils.d.ts +1 -0
  3. package/cms/vendor-map.d.ts +2 -1
  4. package/core/modules/configuration/services/configuration-runtime.service.d.ts +1 -1
  5. package/core/modules/configuration/services/configuration.service.d.ts +6 -1
  6. package/core/modules/flow-configuration/types/update.types.d.ts +1 -1
  7. package/core/pipes/action-code.pipe.d.ts +8 -0
  8. package/core/pipes/index.d.ts +1 -0
  9. package/core/pipes/pipes.module.d.ts +2 -1
  10. package/core/services/context.service.d.ts +1 -0
  11. package/core/services/runtime-settings.service.d.ts +4 -1
  12. package/core/types/formatting-settings.types.d.ts +2 -0
  13. package/esm2020/cms/components/element-children/element-children.component.mjs +3 -3
  14. package/esm2020/cms/components/element-children/element-children.module.mjs +4 -4
  15. package/esm2020/cms/components/element-drop-handle/element-drop-handle.component.mjs +3 -3
  16. package/esm2020/cms/components/element-drop-handle/element-drop-handle.module.mjs +4 -4
  17. package/esm2020/cms/components/element-renderer/element-renderer.component.mjs +3 -3
  18. package/esm2020/cms/components/element-renderer/element-renderer.module.mjs +4 -4
  19. package/esm2020/cms/components/element-tools-panel/element-tools-panel.component.mjs +5 -5
  20. package/esm2020/cms/components/plugin.component.mjs +3 -3
  21. package/esm2020/cms/components/preview/preview.component.mjs +3 -3
  22. package/esm2020/cms/components/preview/preview.module.mjs +4 -4
  23. package/esm2020/cms/directives/custom-template.directive.mjs +7 -7
  24. package/esm2020/cms/launcher.module.mjs +4 -4
  25. package/esm2020/cms/modules/federated/federated-host.directive.mjs +3 -3
  26. package/esm2020/cms/modules/federated/federated.component.mjs +3 -3
  27. package/esm2020/cms/modules/federated/federated.module.mjs +4 -4
  28. package/esm2020/cms/modules/migrations/migrations.module.mjs +4 -4
  29. package/esm2020/cms/modules/migrations/services/migrations.service.mjs +3 -3
  30. package/esm2020/cms/modules/runtime/runtime.module.mjs +4 -4
  31. package/esm2020/cms/modules/runtime/services/compilation.service.mjs +3 -3
  32. package/esm2020/cms/modules/runtime/services/runtime-editor.service.mjs +3 -3
  33. package/esm2020/cms/modules/runtime/services/runtime.service.mjs +3 -3
  34. package/esm2020/cms/plugins/configuration.plugin.mjs +3 -3
  35. package/esm2020/cms/plugins/element-hover.plugin.mjs +3 -3
  36. package/esm2020/cms/plugins/io.plugin.mjs +8 -7
  37. package/esm2020/cms/plugins/page.plugin.mjs +3 -3
  38. package/esm2020/cms/plugins/region.plugin.mjs +3 -3
  39. package/esm2020/cms/plugins/script.plugin.mjs +3 -3
  40. package/esm2020/cms/services/element-context.service.mjs +3 -3
  41. package/esm2020/cms/services/integration.state.mjs +3 -3
  42. package/esm2020/cms/services/io-provider.service.mjs +3 -3
  43. package/esm2020/cms/services/resources.service.mjs +3 -3
  44. package/esm2020/cms/services/templates.service.mjs +3 -3
  45. package/esm2020/cms/utils/element.utils.mjs +10 -3
  46. package/esm2020/cms/utils/elements-resolver.mjs +2 -2
  47. package/esm2020/cms/vendor-map.mjs +3 -2
  48. package/esm2020/core/core.module.mjs +7 -6
  49. package/esm2020/core/directives/directives.module.mjs +4 -4
  50. package/esm2020/core/directives/primeng-calendar.directive.mjs +3 -3
  51. package/esm2020/core/modules/configuration/configuration.module.mjs +4 -4
  52. package/esm2020/core/modules/configuration/services/configuration-runtime.service.mjs +11 -14
  53. package/esm2020/core/modules/configuration/services/configuration.service.mjs +28 -9
  54. package/esm2020/core/modules/configuration/services/configuration.state.mjs +3 -3
  55. package/esm2020/core/modules/configuration/services/runtime-context.service.mjs +9 -9
  56. package/esm2020/core/modules/flow-configuration/flow-configuration.module.mjs +4 -4
  57. package/esm2020/core/modules/flow-configuration/services/flow-configuration.service.mjs +3 -3
  58. package/esm2020/core/modules/flow-configuration/services/flow-update.service.mjs +7 -14
  59. package/esm2020/core/modules/flow-configuration/types/update.types.mjs +1 -1
  60. package/esm2020/core/pipes/action-code.pipe.mjs +20 -0
  61. package/esm2020/core/pipes/date.pipe.mjs +3 -3
  62. package/esm2020/core/pipes/index.mjs +2 -1
  63. package/esm2020/core/pipes/number.pipe.mjs +3 -3
  64. package/esm2020/core/pipes/pipes.module.mjs +8 -7
  65. package/esm2020/core/pipes/price.pipe.mjs +3 -3
  66. package/esm2020/core/services/context.service.mjs +17 -5
  67. package/esm2020/core/services/metric-calculation/metric-calculation.service.mjs +3 -3
  68. package/esm2020/core/services/product-images.service.mjs +3 -3
  69. package/esm2020/core/services/quote-draft.service.mjs +3 -3
  70. package/esm2020/core/services/runtime-settings.service.mjs +20 -5
  71. package/esm2020/core/types/formatting-settings.types.mjs +1 -1
  72. package/esm2020/src/components/dialog/dialog.component.mjs +3 -3
  73. package/esm2020/src/components/dialog/dialog.module.mjs +4 -4
  74. package/esm2020/src/components/doc-gen/doc-gen.component.mjs +11 -15
  75. package/esm2020/src/components/doc-gen/doc-gen.module.mjs +4 -4
  76. package/esm2020/src/components/guided-selling/guided-selling.component.mjs +10 -13
  77. package/esm2020/src/components/guided-selling/guided-selling.module.mjs +4 -4
  78. package/esm2020/src/components/header/cart-overlay/cart-preview.component.mjs +3 -3
  79. package/esm2020/src/components/header/cart-overlay/cart-preview.module.mjs +4 -4
  80. package/esm2020/src/components/header/header.component.mjs +4 -4
  81. package/esm2020/src/components/header/header.module.mjs +4 -4
  82. package/esm2020/src/components/header/metrics/metrics.component.mjs +4 -4
  83. package/esm2020/src/components/header/metrics/metrics.module.mjs +4 -4
  84. package/esm2020/src/flow-routing.module.mjs +5 -22
  85. package/esm2020/src/flow.component.mjs +11 -9
  86. package/esm2020/src/flow.module.mjs +4 -4
  87. package/esm2020/src/guards/context.guard.mjs +3 -3
  88. package/esm2020/src/guards/product-unload.guard.mjs +7 -4
  89. package/esm2020/src/guards/root.guard.mjs +3 -3
  90. package/esm2020/src/pages/assets/assets.component.mjs +3 -3
  91. package/esm2020/src/pages/assets/assets.module.mjs +4 -4
  92. package/esm2020/src/pages/catalog/catalog.component.mjs +3 -3
  93. package/esm2020/src/pages/catalog/catalog.module.mjs +4 -4
  94. package/esm2020/src/pages/debug/debug.component.mjs +3 -3
  95. package/esm2020/src/pages/debug/debug.module.mjs +4 -4
  96. package/esm2020/src/pages/empty-account/empty-account.component.mjs +3 -3
  97. package/esm2020/src/pages/empty-account/empty-account.module.mjs +4 -4
  98. package/esm2020/src/pages/product/product.component.mjs +5 -6
  99. package/esm2020/src/pages/product/product.module.mjs +4 -4
  100. package/esm2020/src/pages/record-not-found/record-not-found.component.mjs +3 -3
  101. package/esm2020/src/pages/record-not-found/record-not-found.module.mjs +4 -4
  102. package/esm2020/src/pages/remote/remote.component.mjs +8 -9
  103. package/esm2020/src/pages/remote/remote.module.mjs +4 -4
  104. package/esm2020/src/pages/shopping-cart/shopping-cart.component.mjs +3 -3
  105. package/esm2020/src/pages/shopping-cart/shopping-cart.module.mjs +4 -4
  106. package/esm2020/src/resolvers/flow.resolver.mjs +3 -3
  107. package/esm2020/src/resolvers/quote.resolver.mjs +3 -3
  108. package/esm2020/src/services/doc-gen.service.mjs +3 -3
  109. package/esm2020/src/services/flow-dialog.service.mjs +3 -3
  110. package/esm2020/src/services/flow-router.service.mjs +5 -5
  111. package/esm2020/src/services/flow.service.mjs +13 -5
  112. package/esm2020/src/services/guided-selling.service.mjs +3 -3
  113. package/fesm2015/veloceapps-sdk-cms.mjs +123 -114
  114. package/fesm2015/veloceapps-sdk-cms.mjs.map +1 -1
  115. package/fesm2015/veloceapps-sdk-core.mjs +1053 -1000
  116. package/fesm2015/veloceapps-sdk-core.mjs.map +1 -1
  117. package/fesm2015/veloceapps-sdk.mjs +226 -367
  118. package/fesm2015/veloceapps-sdk.mjs.map +1 -1
  119. package/fesm2020/veloceapps-sdk-cms.mjs +123 -114
  120. package/fesm2020/veloceapps-sdk-cms.mjs.map +1 -1
  121. package/fesm2020/veloceapps-sdk-core.mjs +578 -527
  122. package/fesm2020/veloceapps-sdk-core.mjs.map +1 -1
  123. package/fesm2020/veloceapps-sdk.mjs +223 -368
  124. package/fesm2020/veloceapps-sdk.mjs.map +1 -1
  125. package/package.json +3 -11
  126. package/src/components/doc-gen/doc-gen.component.d.ts +3 -6
  127. package/src/components/guided-selling/guided-selling.component.d.ts +2 -4
  128. package/src/flow-routing.module.d.ts +6 -7
  129. package/src/flow.component.d.ts +3 -2
  130. package/src/guards/product-unload.guard.d.ts +2 -2
  131. package/esm2020/runtime/components/component-preview/component-preview.component.mjs +0 -125
  132. package/esm2020/runtime/components/index.mjs +0 -5
  133. package/esm2020/runtime/components/section-renderer/section-renderer.component.mjs +0 -67
  134. package/esm2020/runtime/components/ui-runtime/runtime.component.mjs +0 -440
  135. package/esm2020/runtime/components/ui-runtime-preview/runtime-preview.component.mjs +0 -108
  136. package/esm2020/runtime/execution/components/children-placeholder/children-placeholder.component.mjs +0 -60
  137. package/esm2020/runtime/execution/components/context-provider/context-provider.component.mjs +0 -39
  138. package/esm2020/runtime/execution/components/execution-section-renderer/execution-section-renderer.component.mjs +0 -67
  139. package/esm2020/runtime/execution/components/federated/federated.component.mjs +0 -74
  140. package/esm2020/runtime/execution/components/velo-attribute/velo-attribute.component.mjs +0 -60
  141. package/esm2020/runtime/execution/components/velo-multiselect/velo-multiselect.component.mjs +0 -130
  142. package/esm2020/runtime/execution/components/velo-port-checkbox/velo-port-checkbox.component.mjs +0 -72
  143. package/esm2020/runtime/execution/components/velo-port-dropdown/velo-port-dropdown.component.mjs +0 -97
  144. package/esm2020/runtime/execution/components/velo-port-radio/velo-port-radio.component.mjs +0 -142
  145. package/esm2020/runtime/execution/components/velo-type/velo-type.component.mjs +0 -119
  146. package/esm2020/runtime/execution/directives/section-script.directive.mjs +0 -247
  147. package/esm2020/runtime/execution/directives/sf-query.directive.mjs +0 -35
  148. package/esm2020/runtime/execution/directives/velo-attribute.directive.mjs +0 -88
  149. package/esm2020/runtime/execution/directives/velo-port.directive.mjs +0 -376
  150. package/esm2020/runtime/execution/directives/vl-approval.directive.mjs +0 -23
  151. package/esm2020/runtime/execution/directives/vl-document-attachments.directive.mjs +0 -36
  152. package/esm2020/runtime/execution/directives/vl-document-templates.directive.mjs +0 -60
  153. package/esm2020/runtime/execution/directives/vl-quote.directive.mjs +0 -42
  154. package/esm2020/runtime/execution/directives/vl-ramp.directive.mjs +0 -55
  155. package/esm2020/runtime/execution/runtime-execution.module.mjs +0 -133
  156. package/esm2020/runtime/execution/utils/federated.util.mjs +0 -32
  157. package/esm2020/runtime/index.mjs +0 -5
  158. package/esm2020/runtime/runtime.module.mjs +0 -74
  159. package/esm2020/runtime/services/cart.service.mjs +0 -29
  160. package/esm2020/runtime/services/collapsible-state.service.mjs +0 -34
  161. package/esm2020/runtime/services/configuration.service.mjs +0 -119
  162. package/esm2020/runtime/services/current-state.service.mjs +0 -17
  163. package/esm2020/runtime/services/form-scope.service.mjs +0 -30
  164. package/esm2020/runtime/services/index.mjs +0 -4
  165. package/esm2020/runtime/services/product-model-cache.service.mjs +0 -31
  166. package/esm2020/runtime/services/runtime-context.service.mjs +0 -60
  167. package/esm2020/runtime/services/runtime-form.service.mjs +0 -219
  168. package/esm2020/runtime/services/runtime.service.mjs +0 -115
  169. package/esm2020/runtime/services/section-helper.service.mjs +0 -27
  170. package/esm2020/runtime/services/section-scope.service.mjs +0 -36
  171. package/esm2020/runtime/services/section-store.service.mjs +0 -22
  172. package/esm2020/runtime/services/section.service.mjs +0 -117
  173. package/esm2020/runtime/types/bound-data.types.mjs +0 -7
  174. package/esm2020/runtime/types/index.mjs +0 -3
  175. package/esm2020/runtime/types/quote-states.types.mjs +0 -2
  176. package/esm2020/runtime/types/runtime.types.mjs +0 -2
  177. package/esm2020/runtime/types/script-registry.types.mjs +0 -51
  178. package/esm2020/runtime/utils/line-item.util.mjs +0 -270
  179. package/esm2020/runtime/utils/section.utils.mjs +0 -26
  180. package/esm2020/runtime/utils/sections-binder.helper.mjs +0 -105
  181. package/esm2020/runtime/veloceapps-sdk-runtime.mjs +0 -5
  182. package/esm2020/src/pages/legacy-product/legacy-product.component.mjs +0 -137
  183. package/esm2020/src/pages/legacy-product/legacy-product.module.mjs +0 -19
  184. package/fesm2015/veloceapps-sdk-runtime.mjs +0 -3770
  185. package/fesm2015/veloceapps-sdk-runtime.mjs.map +0 -1
  186. package/fesm2020/veloceapps-sdk-runtime.mjs +0 -3767
  187. package/fesm2020/veloceapps-sdk-runtime.mjs.map +0 -1
  188. package/runtime/README.md +0 -5
  189. package/runtime/components/component-preview/component-preview.component.d.ts +0 -27
  190. package/runtime/components/index.d.ts +0 -4
  191. package/runtime/components/section-renderer/section-renderer.component.d.ts +0 -25
  192. package/runtime/components/ui-runtime/runtime.component.d.ts +0 -53
  193. package/runtime/components/ui-runtime-preview/runtime-preview.component.d.ts +0 -27
  194. package/runtime/execution/components/children-placeholder/children-placeholder.component.d.ts +0 -30
  195. package/runtime/execution/components/context-provider/context-provider.component.d.ts +0 -14
  196. package/runtime/execution/components/execution-section-renderer/execution-section-renderer.component.d.ts +0 -25
  197. package/runtime/execution/components/federated/federated.component.d.ts +0 -36
  198. package/runtime/execution/components/velo-attribute/velo-attribute.component.d.ts +0 -19
  199. package/runtime/execution/components/velo-multiselect/velo-multiselect.component.d.ts +0 -35
  200. package/runtime/execution/components/velo-port-checkbox/velo-port-checkbox.component.d.ts +0 -22
  201. package/runtime/execution/components/velo-port-dropdown/velo-port-dropdown.component.d.ts +0 -22
  202. package/runtime/execution/components/velo-port-radio/velo-port-radio.component.d.ts +0 -28
  203. package/runtime/execution/components/velo-type/velo-type.component.d.ts +0 -31
  204. package/runtime/execution/directives/section-script.directive.d.ts +0 -59
  205. package/runtime/execution/directives/sf-query.directive.d.ts +0 -15
  206. package/runtime/execution/directives/velo-attribute.directive.d.ts +0 -26
  207. package/runtime/execution/directives/velo-port.directive.d.ts +0 -74
  208. package/runtime/execution/directives/vl-approval.directive.d.ts +0 -10
  209. package/runtime/execution/directives/vl-document-attachments.directive.d.ts +0 -15
  210. package/runtime/execution/directives/vl-document-templates.directive.d.ts +0 -33
  211. package/runtime/execution/directives/vl-quote.directive.d.ts +0 -14
  212. package/runtime/execution/directives/vl-ramp.directive.d.ts +0 -15
  213. package/runtime/execution/runtime-execution.module.d.ts +0 -25
  214. package/runtime/execution/utils/federated.util.d.ts +0 -6
  215. package/runtime/index.d.ts +0 -4
  216. package/runtime/runtime.module.d.ts +0 -16
  217. package/runtime/services/cart.service.d.ts +0 -15
  218. package/runtime/services/collapsible-state.service.d.ts +0 -15
  219. package/runtime/services/configuration.service.d.ts +0 -20
  220. package/runtime/services/current-state.service.d.ts +0 -8
  221. package/runtime/services/form-scope.service.d.ts +0 -20
  222. package/runtime/services/index.d.ts +0 -3
  223. package/runtime/services/product-model-cache.service.d.ts +0 -14
  224. package/runtime/services/runtime-context.service.d.ts +0 -16
  225. package/runtime/services/runtime-form.service.d.ts +0 -24
  226. package/runtime/services/runtime.service.d.ts +0 -44
  227. package/runtime/services/section-helper.service.d.ts +0 -8
  228. package/runtime/services/section-scope.service.d.ts +0 -14
  229. package/runtime/services/section-store.service.d.ts +0 -11
  230. package/runtime/services/section.service.d.ts +0 -30
  231. package/runtime/types/bound-data.types.d.ts +0 -13
  232. package/runtime/types/index.d.ts +0 -2
  233. package/runtime/types/quote-states.types.d.ts +0 -6
  234. package/runtime/types/runtime.types.d.ts +0 -19
  235. package/runtime/types/script-registry.types.d.ts +0 -13
  236. package/runtime/utils/line-item.util.d.ts +0 -34
  237. package/runtime/utils/section.utils.d.ts +0 -2
  238. package/runtime/utils/sections-binder.helper.d.ts +0 -16
  239. package/src/pages/legacy-product/legacy-product.component.d.ts +0 -37
  240. package/src/pages/legacy-product/legacy-product.module.d.ts +0 -9
@@ -1,108 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
2
- import { ConfigurationApiService } from '@veloceapps/api';
3
- import { ConfigurationContextMode, EntityUtil, RuntimeModel, SectionPathUtil, } from '@veloceapps/core';
4
- import { ContextService, RuntimeMode } from '@veloceapps/sdk/core';
5
- import { Subject, combineLatest } from 'rxjs';
6
- import { takeUntil } from 'rxjs/operators';
7
- import { ProductModelCacheService } from '../../services/product-model-cache.service';
8
- import { RuntimeService } from '../../services/runtime.service';
9
- import * as i0 from "@angular/core";
10
- import * as i1 from "../../services/runtime.service";
11
- import * as i2 from "../../services/product-model-cache.service";
12
- import * as i3 from "@veloceapps/api";
13
- import * as i4 from "@veloceapps/sdk/core";
14
- import * as i5 from "../ui-runtime/runtime.component";
15
- export class RuntimePreviewComponent {
16
- set uiDefinition(value) {
17
- this._uiDefinition = value;
18
- this.initDefinition(value);
19
- }
20
- constructor(runtimeService, modelCacheService, configurationApiService, contextService) {
21
- this.runtimeService = runtimeService;
22
- this.modelCacheService = modelCacheService;
23
- this.configurationApiService = configurationApiService;
24
- this.contextService = contextService;
25
- this.destroy$ = new Subject();
26
- }
27
- ngOnInit() {
28
- if (!this.modelId) {
29
- return;
30
- }
31
- this.modelCacheService
32
- .getProductModel(this.modelId)
33
- .pipe(takeUntil(this.destroy$))
34
- .subscribe(container => {
35
- this.productModelContainer = container;
36
- if (this._uiDefinition) {
37
- this.initDefinition(this._uiDefinition);
38
- }
39
- });
40
- }
41
- ngOnDestroy() {
42
- this.destroy$.next();
43
- this.destroy$.complete();
44
- }
45
- initDefinition(uiDefinition) {
46
- if (!this.productModelContainer) {
47
- return;
48
- }
49
- const initialisedUiDefinition = EntityUtil.clone(uiDefinition);
50
- const externals = this.productModelContainer.main.externals;
51
- if (externals) {
52
- initialisedUiDefinition.externals = externals.reduce((trunk, variable) => {
53
- return {
54
- ...trunk,
55
- [variable.name]: initialisedUiDefinition.externals?.[variable.name] ?? '',
56
- };
57
- }, {});
58
- }
59
- else {
60
- delete initialisedUiDefinition.externals;
61
- }
62
- this.initialisedUiDefinition = initialisedUiDefinition;
63
- this.launchRuntime();
64
- }
65
- onSolutionUpdated(lineItem) {
66
- this.runtimeService.updateRuntime({ configurableRamp: lineItem });
67
- }
68
- launchRuntime() {
69
- if (!this.modelId || !this.initialisedUiDefinition) {
70
- return;
71
- }
72
- SectionPathUtil.updateSectionsPath(this.initialisedUiDefinition.sections);
73
- const uiDefinition = EntityUtil.clone(this.initialisedUiDefinition);
74
- combineLatest([
75
- this.configurationApiService.getRuntimeDataByModelId(this.modelId),
76
- this.contextService.create('TestId', ConfigurationContextMode.TEST),
77
- ]).subscribe(([runtimeData]) => {
78
- const runtimeModel = RuntimeModel.create(runtimeData.types, runtimeData.products);
79
- const rootType = Array.from(runtimeModel.components.values()).find(c => uiDefinition.rootType &&
80
- runtimeModel.isEquals(c.typeName, uiDefinition.rootType) &&
81
- EntityUtil.isPresent(c.productId));
82
- if (rootType?.typeName) {
83
- uiDefinition.rootType = rootType.typeName;
84
- }
85
- const contextProductId = rootType ? rootType.productId : undefined;
86
- const context = {
87
- modelId: this.modelId ?? '',
88
- uiDefinition: uiDefinition,
89
- runtimeModel,
90
- runtimeMode: RuntimeMode.TEST,
91
- productId: contextProductId,
92
- properties: uiDefinition.externals,
93
- };
94
- this.runtimeService.startRuntime(context, {});
95
- });
96
- }
97
- }
98
- RuntimePreviewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: RuntimePreviewComponent, deps: [{ token: i1.RuntimeService }, { token: i2.ProductModelCacheService }, { token: i3.ConfigurationApiService }, { token: i4.ContextService }], target: i0.ɵɵFactoryTarget.Component });
99
- RuntimePreviewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: RuntimePreviewComponent, selector: "vl-runtime-preview", inputs: { modelId: "modelId", uiDefinition: "uiDefinition" }, ngImport: i0, template: "<vl-runtime (solutionUpdated)=\"onSolutionUpdated($event)\"></vl-runtime>\n", styles: [":host{flex-grow:1}\n"], dependencies: [{ kind: "component", type: i5.RuntimeComponent, selector: "vl-runtime", outputs: ["solutionUpdated"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
100
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: RuntimePreviewComponent, decorators: [{
101
- type: Component,
102
- args: [{ selector: 'vl-runtime-preview', changeDetection: ChangeDetectionStrategy.OnPush, template: "<vl-runtime (solutionUpdated)=\"onSolutionUpdated($event)\"></vl-runtime>\n", styles: [":host{flex-grow:1}\n"] }]
103
- }], ctorParameters: function () { return [{ type: i1.RuntimeService }, { type: i2.ProductModelCacheService }, { type: i3.ConfigurationApiService }, { type: i4.ContextService }]; }, propDecorators: { modelId: [{
104
- type: Input
105
- }], uiDefinition: [{
106
- type: Input
107
- }] } });
108
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS1wcmV2aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3J1bnRpbWUvY29tcG9uZW50cy91aS1ydW50aW1lLXByZXZpZXcvcnVudGltZS1wcmV2aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3J1bnRpbWUvY29tcG9uZW50cy91aS1ydW50aW1lLXByZXZpZXcvcnVudGltZS1wcmV2aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUM3RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxRCxPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLFVBQVUsRUFLVixZQUFZLEVBQ1osZUFBZSxHQUNoQixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFbkUsT0FBTyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7Ozs7OztBQVNoRSxNQUFNLE9BQU8sdUJBQXVCO0lBRWxDLElBQW9CLFlBQVksQ0FBQyxLQUF5QjtRQUN4RCxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztRQUMzQixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFRRCxZQUNVLGNBQThCLEVBQzlCLGlCQUEyQyxFQUMzQyx1QkFBZ0QsRUFDaEQsY0FBOEI7UUFIOUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBMEI7UUFDM0MsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUF5QjtRQUNoRCxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFOaEMsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFPcEMsQ0FBQztJQUVHLFFBQVE7UUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNqQixPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsaUJBQWlCO2FBQ25CLGVBQWUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO2FBQzdCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQzlCLFNBQVMsQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUNyQixJQUFJLENBQUMscUJBQXFCLEdBQUcsU0FBUyxDQUFDO1lBRXZDLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtnQkFDdEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7YUFDekM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRU0sY0FBYyxDQUFDLFlBQWdDO1FBQ3BELElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUU7WUFDL0IsT0FBTztTQUNSO1FBRUQsTUFBTSx1QkFBdUIsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRS9ELE1BQU0sU0FBUyxHQUE0QixJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUNyRixJQUFJLFNBQVMsRUFBRTtZQUNiLHVCQUF1QixDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFxQixDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsRUFBRTtnQkFDM0YsT0FBTztvQkFDTCxHQUFHLEtBQUs7b0JBQ1IsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsdUJBQXVCLENBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUU7aUJBQzFFLENBQUM7WUFDSixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FDUjthQUFNO1lBQ0wsT0FBTyx1QkFBdUIsQ0FBQyxTQUFTLENBQUM7U0FDMUM7UUFFRCxJQUFJLENBQUMsdUJBQXVCLEdBQUcsdUJBQXVCLENBQUM7UUFFdkQsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFTSxpQkFBaUIsQ0FBQyxRQUFrQjtRQUN6QyxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVPLGFBQWE7UUFDbkIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsdUJBQXVCLEVBQUU7WUFDbEQsT0FBTztTQUNSO1FBRUQsZUFBZSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUUxRSxNQUFNLFlBQVksR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBRXBFLGFBQWEsQ0FBQztZQUNaLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1lBQ2xFLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSx3QkFBd0IsQ0FBQyxJQUFJLENBQUM7U0FDcEUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEVBQUUsRUFBRTtZQUM3QixNQUFNLFlBQVksR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2xGLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FDaEUsQ0FBQyxDQUFDLEVBQUUsQ0FDRixZQUFZLENBQUMsUUFBUTtnQkFDckIsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLFlBQVksQ0FBQyxRQUFRLENBQUM7Z0JBQ3hELFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUNwQyxDQUFDO1lBRUYsSUFBSSxRQUFRLEVBQUUsUUFBUSxFQUFFO2dCQUN0QixZQUFZLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUM7YUFDM0M7WUFFRCxNQUFNLGdCQUFnQixHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1lBRW5FLE1BQU0sT0FBTyxHQUF5QjtnQkFDcEMsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLElBQUksRUFBRTtnQkFDM0IsWUFBWSxFQUFFLFlBQVk7Z0JBQzFCLFlBQVk7Z0JBQ1osV0FBVyxFQUFFLFdBQVcsQ0FBQyxJQUFJO2dCQUM3QixTQUFTLEVBQUUsZ0JBQWdCO2dCQUMzQixVQUFVLEVBQUUsWUFBWSxDQUFDLFNBQVM7YUFDbkMsQ0FBQztZQUVGLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNoRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7O29IQTVHVSx1QkFBdUI7d0dBQXZCLHVCQUF1Qix3SEMxQnBDLDZFQUNBOzJGRHlCYSx1QkFBdUI7a0JBTm5DLFNBQVM7K0JBQ0Usb0JBQW9CLG1CQUdiLHVCQUF1QixDQUFDLE1BQU07K01BRy9CLE9BQU87c0JBQXRCLEtBQUs7Z0JBQ2MsWUFBWTtzQkFBL0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29uZmlndXJhdGlvbkFwaVNlcnZpY2UgfSBmcm9tICdAdmVsb2NlYXBwcy9hcGknO1xuaW1wb3J0IHtcbiAgQ29uZmlndXJhdGlvbkNvbnRleHRNb2RlLFxuICBFbnRpdHlVdGlsLFxuICBMZWdhY3lVSURlZmluaXRpb24sXG4gIExpbmVJdGVtLFxuICBQcm9kdWN0TW9kZWxBdHRyaWJ1dGUsXG4gIFByb2R1Y3RNb2RlbHNDb250YWluZXIsXG4gIFJ1bnRpbWVNb2RlbCxcbiAgU2VjdGlvblBhdGhVdGlsLFxufSBmcm9tICdAdmVsb2NlYXBwcy9jb3JlJztcbmltcG9ydCB7IENvbnRleHRTZXJ2aWNlLCBSdW50aW1lTW9kZSB9IGZyb20gJ0B2ZWxvY2VhcHBzL3Nkay9jb3JlJztcbmltcG9ydCB7IERpY3Rpb25hcnkgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgU3ViamVjdCwgY29tYmluZUxhdGVzdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgUHJvZHVjdE1vZGVsQ2FjaGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcHJvZHVjdC1tb2RlbC1jYWNoZS5zZXJ2aWNlJztcbmltcG9ydCB7IFJ1bnRpbWVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcnVudGltZS5zZXJ2aWNlJztcbmltcG9ydCB7IExlZ2FjeVJ1bnRpbWVDb250ZXh0IH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2bC1ydW50aW1lLXByZXZpZXcnLFxuICB0ZW1wbGF0ZVVybDogJ3J1bnRpbWUtcHJldmlldy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWydydW50aW1lLXByZXZpZXcuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFJ1bnRpbWVQcmV2aWV3Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBwdWJsaWMgbW9kZWxJZD86IHN0cmluZztcbiAgQElucHV0KCkgcHVibGljIHNldCB1aURlZmluaXRpb24odmFsdWU6IExlZ2FjeVVJRGVmaW5pdGlvbikge1xuICAgIHRoaXMuX3VpRGVmaW5pdGlvbiA9IHZhbHVlO1xuICAgIHRoaXMuaW5pdERlZmluaXRpb24odmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBfdWlEZWZpbml0aW9uPzogTGVnYWN5VUlEZWZpbml0aW9uO1xuICBwcml2YXRlIGluaXRpYWxpc2VkVWlEZWZpbml0aW9uPzogTGVnYWN5VUlEZWZpbml0aW9uO1xuICBwcml2YXRlIHByb2R1Y3RNb2RlbENvbnRhaW5lcj86IFByb2R1Y3RNb2RlbHNDb250YWluZXI7XG5cbiAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBydW50aW1lU2VydmljZTogUnVudGltZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBtb2RlbENhY2hlU2VydmljZTogUHJvZHVjdE1vZGVsQ2FjaGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29uZmlndXJhdGlvbkFwaVNlcnZpY2U6IENvbmZpZ3VyYXRpb25BcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29udGV4dFNlcnZpY2U6IENvbnRleHRTZXJ2aWNlLFxuICApIHt9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5tb2RlbElkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5tb2RlbENhY2hlU2VydmljZVxuICAgICAgLmdldFByb2R1Y3RNb2RlbCh0aGlzLm1vZGVsSWQpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAuc3Vic2NyaWJlKGNvbnRhaW5lciA9PiB7XG4gICAgICAgIHRoaXMucHJvZHVjdE1vZGVsQ29udGFpbmVyID0gY29udGFpbmVyO1xuXG4gICAgICAgIGlmICh0aGlzLl91aURlZmluaXRpb24pIHtcbiAgICAgICAgICB0aGlzLmluaXREZWZpbml0aW9uKHRoaXMuX3VpRGVmaW5pdGlvbik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBpbml0RGVmaW5pdGlvbih1aURlZmluaXRpb246IExlZ2FjeVVJRGVmaW5pdGlvbik6IHZvaWQge1xuICAgIGlmICghdGhpcy5wcm9kdWN0TW9kZWxDb250YWluZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBpbml0aWFsaXNlZFVpRGVmaW5pdGlvbiA9IEVudGl0eVV0aWwuY2xvbmUodWlEZWZpbml0aW9uKTtcblxuICAgIGNvbnN0IGV4dGVybmFsczogUHJvZHVjdE1vZGVsQXR0cmlidXRlW10gPSB0aGlzLnByb2R1Y3RNb2RlbENvbnRhaW5lci5tYWluLmV4dGVybmFscztcbiAgICBpZiAoZXh0ZXJuYWxzKSB7XG4gICAgICBpbml0aWFsaXNlZFVpRGVmaW5pdGlvbi5leHRlcm5hbHMgPSBleHRlcm5hbHMucmVkdWNlPERpY3Rpb25hcnk8c3RyaW5nPj4oKHRydW5rLCB2YXJpYWJsZSkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLnRydW5rLFxuICAgICAgICAgIFt2YXJpYWJsZS5uYW1lXTogaW5pdGlhbGlzZWRVaURlZmluaXRpb24uZXh0ZXJuYWxzPy5bdmFyaWFibGUubmFtZV0gPz8gJycsXG4gICAgICAgIH07XG4gICAgICB9LCB7fSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRlbGV0ZSBpbml0aWFsaXNlZFVpRGVmaW5pdGlvbi5leHRlcm5hbHM7XG4gICAgfVxuXG4gICAgdGhpcy5pbml0aWFsaXNlZFVpRGVmaW5pdGlvbiA9IGluaXRpYWxpc2VkVWlEZWZpbml0aW9uO1xuXG4gICAgdGhpcy5sYXVuY2hSdW50aW1lKCk7XG4gIH1cblxuICBwdWJsaWMgb25Tb2x1dGlvblVwZGF0ZWQobGluZUl0ZW06IExpbmVJdGVtKTogdm9pZCB7XG4gICAgdGhpcy5ydW50aW1lU2VydmljZS51cGRhdGVSdW50aW1lKHsgY29uZmlndXJhYmxlUmFtcDogbGluZUl0ZW0gfSk7XG4gIH1cblxuICBwcml2YXRlIGxhdW5jaFJ1bnRpbWUoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm1vZGVsSWQgfHwgIXRoaXMuaW5pdGlhbGlzZWRVaURlZmluaXRpb24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBTZWN0aW9uUGF0aFV0aWwudXBkYXRlU2VjdGlvbnNQYXRoKHRoaXMuaW5pdGlhbGlzZWRVaURlZmluaXRpb24uc2VjdGlvbnMpO1xuXG4gICAgY29uc3QgdWlEZWZpbml0aW9uID0gRW50aXR5VXRpbC5jbG9uZSh0aGlzLmluaXRpYWxpc2VkVWlEZWZpbml0aW9uKTtcblxuICAgIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5jb25maWd1cmF0aW9uQXBpU2VydmljZS5nZXRSdW50aW1lRGF0YUJ5TW9kZWxJZCh0aGlzLm1vZGVsSWQpLFxuICAgICAgdGhpcy5jb250ZXh0U2VydmljZS5jcmVhdGUoJ1Rlc3RJZCcsIENvbmZpZ3VyYXRpb25Db250ZXh0TW9kZS5URVNUKSxcbiAgICBdKS5zdWJzY3JpYmUoKFtydW50aW1lRGF0YV0pID0+IHtcbiAgICAgIGNvbnN0IHJ1bnRpbWVNb2RlbCA9IFJ1bnRpbWVNb2RlbC5jcmVhdGUocnVudGltZURhdGEudHlwZXMsIHJ1bnRpbWVEYXRhLnByb2R1Y3RzKTtcbiAgICAgIGNvbnN0IHJvb3RUeXBlID0gQXJyYXkuZnJvbShydW50aW1lTW9kZWwuY29tcG9uZW50cy52YWx1ZXMoKSkuZmluZChcbiAgICAgICAgYyA9PlxuICAgICAgICAgIHVpRGVmaW5pdGlvbi5yb290VHlwZSAmJlxuICAgICAgICAgIHJ1bnRpbWVNb2RlbC5pc0VxdWFscyhjLnR5cGVOYW1lLCB1aURlZmluaXRpb24ucm9vdFR5cGUpICYmXG4gICAgICAgICAgRW50aXR5VXRpbC5pc1ByZXNlbnQoYy5wcm9kdWN0SWQpLFxuICAgICAgKTtcblxuICAgICAgaWYgKHJvb3RUeXBlPy50eXBlTmFtZSkge1xuICAgICAgICB1aURlZmluaXRpb24ucm9vdFR5cGUgPSByb290VHlwZS50eXBlTmFtZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgY29udGV4dFByb2R1Y3RJZCA9IHJvb3RUeXBlID8gcm9vdFR5cGUucHJvZHVjdElkIDogdW5kZWZpbmVkO1xuXG4gICAgICBjb25zdCBjb250ZXh0OiBMZWdhY3lSdW50aW1lQ29udGV4dCA9IHtcbiAgICAgICAgbW9kZWxJZDogdGhpcy5tb2RlbElkID8/ICcnLFxuICAgICAgICB1aURlZmluaXRpb246IHVpRGVmaW5pdGlvbixcbiAgICAgICAgcnVudGltZU1vZGVsLFxuICAgICAgICBydW50aW1lTW9kZTogUnVudGltZU1vZGUuVEVTVCxcbiAgICAgICAgcHJvZHVjdElkOiBjb250ZXh0UHJvZHVjdElkLFxuICAgICAgICBwcm9wZXJ0aWVzOiB1aURlZmluaXRpb24uZXh0ZXJuYWxzLFxuICAgICAgfTtcblxuICAgICAgdGhpcy5ydW50aW1lU2VydmljZS5zdGFydFJ1bnRpbWUoY29udGV4dCwge30pO1xuICAgIH0pO1xuICB9XG59XG4iLCI8dmwtcnVudGltZSAoc29sdXRpb25VcGRhdGVkKT1cIm9uU29sdXRpb25VcGRhdGVkKCRldmVudClcIj48L3ZsLXJ1bnRpbWU+XG4iXX0=
@@ -1,60 +0,0 @@
1
- import { Component, Input } from '@angular/core';
2
- import { OrderByPipe } from '@veloceapps/core';
3
- import { CollapsibleStateService } from '../../../services/collapsible-state.service';
4
- import { FormScopeService } from '../../../services/form-scope.service';
5
- import { SectionScopeService } from '../../../services/section-scope.service';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "../../../services/section-scope.service";
8
- import * as i2 from "../../../services/form-scope.service";
9
- import * as i3 from "../../../services/collapsible-state.service";
10
- import * as i4 from "@angular/common";
11
- import * as i5 from "../execution-section-renderer/execution-section-renderer.component";
12
- export class ChildrenPlaceholderComponent {
13
- constructor(sectionScope, formScope, collapsibleState) {
14
- this.sectionScope = sectionScope;
15
- this.formScope = formScope;
16
- this.collapsibleState = collapsibleState;
17
- this._children = [];
18
- this.collapsed = false;
19
- }
20
- ngOnInit() {
21
- this.section = this.sectionScope.section;
22
- this.form = this.formScope.form;
23
- this.collapsed = this.section.model ? this.collapsibleState.isCollapsedSection(this.section.model.id) : true;
24
- this.sub = this.collapsibleState.collapseSectionEvent.subscribe(e => {
25
- const lineItemId = e[0];
26
- if (this.section.model?.id === lineItemId) {
27
- this.collapsed = e[1];
28
- }
29
- });
30
- this.setChildren();
31
- }
32
- ngOnChanges(changes) {
33
- if (!this.children || changes['children']?.currentValue !== changes['children']?.previousValue) {
34
- this.setChildren();
35
- }
36
- }
37
- setChildren() {
38
- this._children = this.children ? this.children : this.section.children;
39
- }
40
- ngOnDestroy() {
41
- this.sub.unsubscribe();
42
- }
43
- }
44
- ChildrenPlaceholderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ChildrenPlaceholderComponent, deps: [{ token: i1.SectionScopeService }, { token: i2.FormScopeService }, { token: i3.CollapsibleStateService }], target: i0.ɵɵFactoryTarget.Component });
45
- ChildrenPlaceholderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: ChildrenPlaceholderComponent, selector: "children-placeholder", inputs: { children: "children" }, providers: [OrderByPipe], usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"!collapsed\">\n <ng-container *ngFor=\"let child of _children\">\n <section-renderer [section]=\"child\" [form]=\"form\" *ngIf=\"!child.hidden\"></section-renderer>\n </ng-container>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.ExecutionSectionRendererComponent, selector: "section-renderer", inputs: ["section", "form"] }] });
46
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ChildrenPlaceholderComponent, decorators: [{
47
- type: Component,
48
- args: [{ selector: 'children-placeholder', providers: [OrderByPipe], template: "<ng-container *ngIf=\"!collapsed\">\n <ng-container *ngFor=\"let child of _children\">\n <section-renderer [section]=\"child\" [form]=\"form\" *ngIf=\"!child.hidden\"></section-renderer>\n </ng-container>\n</ng-container>\n" }]
49
- }], ctorParameters: function () { return [{ type: i1.SectionScopeService }, { type: i2.FormScopeService }, { type: i3.CollapsibleStateService }]; }, propDecorators: { children: [{
50
- type: Input
51
- }] } });
52
- export class TemplateComponent extends ChildrenPlaceholderComponent {
53
- }
54
- TemplateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: TemplateComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
55
- TemplateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: TemplateComponent, selector: "template-component", usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"!collapsed\">\n <ng-container *ngFor=\"let child of _children\">\n <section-renderer [section]=\"child\" [form]=\"form\" *ngIf=\"!child.hidden\"></section-renderer>\n </ng-container>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.ExecutionSectionRendererComponent, selector: "section-renderer", inputs: ["section", "form"] }] });
56
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: TemplateComponent, decorators: [{
57
- type: Component,
58
- args: [{ selector: 'template-component', template: "<ng-container *ngIf=\"!collapsed\">\n <ng-container *ngFor=\"let child of _children\">\n <section-renderer [section]=\"child\" [form]=\"form\" *ngIf=\"!child.hidden\"></section-renderer>\n </ng-container>\n</ng-container>\n" }]
59
- }] });
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpbGRyZW4tcGxhY2Vob2xkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvcnVudGltZS9leGVjdXRpb24vY29tcG9uZW50cy9jaGlsZHJlbi1wbGFjZWhvbGRlci9jaGlsZHJlbi1wbGFjZWhvbGRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9ydW50aW1lL2V4ZWN1dGlvbi9jb21wb25lbnRzL2NoaWxkcmVuLXBsYWNlaG9sZGVyL2NoaWxkcmVuLXBsYWNlaG9sZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUErQyxNQUFNLGVBQWUsQ0FBQztBQUU5RixPQUFPLEVBQUUsV0FBVyxFQUFXLE1BQU0sa0JBQWtCLENBQUM7QUFFeEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDdEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDeEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUNBQXlDLENBQUM7Ozs7Ozs7QUFROUUsTUFBTSxPQUFPLDRCQUE0QjtJQWN2QyxZQUNVLFlBQWlDLEVBQ2pDLFNBQTJCLEVBQzNCLGdCQUF5QztRQUZ6QyxpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFDakMsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0IscUJBQWdCLEdBQWhCLGdCQUFnQixDQUF5QjtRQWI1QyxjQUFTLEdBQWMsRUFBRSxDQUFDO1FBUTFCLGNBQVMsR0FBRyxLQUFLLENBQUM7SUFNdEIsQ0FBQztJQUVHLFFBQVE7UUFDYixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUM7UUFFaEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFFN0csSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsb0JBQW9CLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ2xFLE1BQU0sVUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUV4QixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxVQUFVLEVBQUU7Z0JBQ3pDLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3ZCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVNLFdBQVcsQ0FBQyxPQUFzQjtRQUN2QyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUUsWUFBWSxLQUFLLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBRSxhQUFhLEVBQUU7WUFDOUYsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3BCO0lBQ0gsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztJQUN6RSxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3pCLENBQUM7O3lIQWpEVSw0QkFBNEI7NkdBQTVCLDRCQUE0QixpRkFGNUIsQ0FBQyxXQUFXLENBQUMsK0NDWjFCLHNPQUtBOzJGRFNhLDRCQUE0QjtrQkFOeEMsU0FBUzsrQkFFRSxzQkFBc0IsYUFFckIsQ0FBQyxXQUFXLENBQUM7K0tBSWpCLFFBQVE7c0JBRGQsS0FBSzs7QUF3RFIsTUFBTSxPQUFPLGlCQUFrQixTQUFRLDRCQUE0Qjs7OEdBQXRELGlCQUFpQjtrR0FBakIsaUJBQWlCLGlGQ3ZFOUIsc09BS0E7MkZEa0VhLGlCQUFpQjtrQkFMN0IsU0FBUzsrQkFFRSxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT25Jbml0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBPcmRlckJ5UGlwZSwgU2VjdGlvbiB9IGZyb20gJ0B2ZWxvY2VhcHBzL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDb2xsYXBzaWJsZVN0YXRlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2NvbGxhcHNpYmxlLXN0YXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgRm9ybVNjb3BlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Zvcm0tc2NvcGUuc2VydmljZSc7XG5pbXBvcnQgeyBTZWN0aW9uU2NvcGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvc2VjdGlvbi1zY29wZS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnY2hpbGRyZW4tcGxhY2Vob2xkZXInLFxuICB0ZW1wbGF0ZVVybDogJ2NoaWxkcmVuLXBsYWNlaG9sZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgcHJvdmlkZXJzOiBbT3JkZXJCeVBpcGVdLFxufSlcbmV4cG9ydCBjbGFzcyBDaGlsZHJlblBsYWNlaG9sZGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBjaGlsZHJlbj86IFNlY3Rpb25bXTtcblxuICBwdWJsaWMgX2NoaWxkcmVuOiBTZWN0aW9uW10gPSBbXTtcblxuICBwdWJsaWMgc2VjdGlvbiE6IFNlY3Rpb247XG5cbiAgcHVibGljIGZvcm0hOiBGb3JtR3JvdXA7XG5cbiAgcHVibGljIHN1YiE6IFN1YnNjcmlwdGlvbjtcblxuICBwdWJsaWMgY29sbGFwc2VkID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzZWN0aW9uU2NvcGU6IFNlY3Rpb25TY29wZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBmb3JtU2NvcGU6IEZvcm1TY29wZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb2xsYXBzaWJsZVN0YXRlOiBDb2xsYXBzaWJsZVN0YXRlU2VydmljZSxcbiAgKSB7fVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNlY3Rpb24gPSB0aGlzLnNlY3Rpb25TY29wZS5zZWN0aW9uO1xuICAgIHRoaXMuZm9ybSA9IHRoaXMuZm9ybVNjb3BlLmZvcm07XG5cbiAgICB0aGlzLmNvbGxhcHNlZCA9IHRoaXMuc2VjdGlvbi5tb2RlbCA/IHRoaXMuY29sbGFwc2libGVTdGF0ZS5pc0NvbGxhcHNlZFNlY3Rpb24odGhpcy5zZWN0aW9uLm1vZGVsLmlkKSA6IHRydWU7XG5cbiAgICB0aGlzLnN1YiA9IHRoaXMuY29sbGFwc2libGVTdGF0ZS5jb2xsYXBzZVNlY3Rpb25FdmVudC5zdWJzY3JpYmUoZSA9PiB7XG4gICAgICBjb25zdCBsaW5lSXRlbUlkID0gZVswXTtcblxuICAgICAgaWYgKHRoaXMuc2VjdGlvbi5tb2RlbD8uaWQgPT09IGxpbmVJdGVtSWQpIHtcbiAgICAgICAgdGhpcy5jb2xsYXBzZWQgPSBlWzFdO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5zZXRDaGlsZHJlbigpO1xuICB9XG5cbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuY2hpbGRyZW4gfHwgY2hhbmdlc1snY2hpbGRyZW4nXT8uY3VycmVudFZhbHVlICE9PSBjaGFuZ2VzWydjaGlsZHJlbiddPy5wcmV2aW91c1ZhbHVlKSB7XG4gICAgICB0aGlzLnNldENoaWxkcmVuKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNldENoaWxkcmVuKCk6IHZvaWQge1xuICAgIHRoaXMuX2NoaWxkcmVuID0gdGhpcy5jaGlsZHJlbiA/IHRoaXMuY2hpbGRyZW4gOiB0aGlzLnNlY3Rpb24uY2hpbGRyZW47XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zdWIudW5zdWJzY3JpYmUoKTtcbiAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICd0ZW1wbGF0ZS1jb21wb25lbnQnLFxuICB0ZW1wbGF0ZVVybDogJ2NoaWxkcmVuLXBsYWNlaG9sZGVyLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgVGVtcGxhdGVDb21wb25lbnQgZXh0ZW5kcyBDaGlsZHJlblBsYWNlaG9sZGVyQ29tcG9uZW50IHt9XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiIWNvbGxhcHNlZFwiPlxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjaGlsZCBvZiBfY2hpbGRyZW5cIj5cbiAgICA8c2VjdGlvbi1yZW5kZXJlciBbc2VjdGlvbl09XCJjaGlsZFwiIFtmb3JtXT1cImZvcm1cIiAqbmdJZj1cIiFjaGlsZC5oaWRkZW5cIj48L3NlY3Rpb24tcmVuZGVyZXI+XG4gIDwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
@@ -1,39 +0,0 @@
1
- import { Component, Inject, Input } from '@angular/core';
2
- import { RuntimeModel } from '@veloceapps/core';
3
- import { RuntimeService } from '../../../services/runtime.service';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "../../../services/runtime.service";
6
- export class ContextProviderComponent {
7
- constructor(runtimeService) {
8
- this.runtimeService = runtimeService;
9
- this.types = [];
10
- this.products = {};
11
- }
12
- ngOnInit() {
13
- const context = this.runtimeService.getRuntimeContext();
14
- if (!context) {
15
- return;
16
- }
17
- this.runtimeService.setRuntimeContext({
18
- ...context,
19
- runtimeModel: RuntimeModel.create(this.types, this.products),
20
- });
21
- }
22
- }
23
- ContextProviderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ContextProviderComponent, deps: [{ token: RuntimeService }], target: i0.ɵɵFactoryTarget.Component });
24
- ContextProviderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: ContextProviderComponent, selector: "vl-context-provider", inputs: { types: "types", products: "products" }, ngImport: i0, template: '', isInline: true });
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ContextProviderComponent, decorators: [{
26
- type: Component,
27
- args: [{
28
- selector: 'vl-context-provider',
29
- template: '',
30
- }]
31
- }], ctorParameters: function () { return [{ type: i1.RuntimeService, decorators: [{
32
- type: Inject,
33
- args: [RuntimeService]
34
- }] }]; }, propDecorators: { types: [{
35
- type: Input
36
- }], products: [{
37
- type: Input
38
- }] } });
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1wcm92aWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9ydW50aW1lL2V4ZWN1dGlvbi9jb21wb25lbnRzL2NvbnRleHQtcHJvdmlkZXIvY29udGV4dC1wcm92aWRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxZQUFZLEVBQStCLE1BQU0sa0JBQWtCLENBQUM7QUFFN0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7QUFNbkUsTUFBTSxPQUFPLHdCQUF3QjtJQUluQyxZQUE0QyxjQUE4QjtRQUE5QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFIMUQsVUFBSyxHQUFrQixFQUFFLENBQUM7UUFDMUIsYUFBUSxHQUFpQyxFQUFFLENBQUM7SUFFaUIsQ0FBQztJQUV2RSxRQUFRO1FBQ2IsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBRXhELElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDWixPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsY0FBYyxDQUFDLGlCQUFpQixDQUFDO1lBQ3BDLEdBQUcsT0FBTztZQUNWLFlBQVksRUFBRSxZQUFZLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQztTQUM3RCxDQUFDLENBQUM7SUFDTCxDQUFDOztxSEFqQlUsd0JBQXdCLGtCQUlmLGNBQWM7eUdBSnZCLHdCQUF3Qiw2R0FGekIsRUFBRTsyRkFFRCx3QkFBd0I7a0JBSnBDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsUUFBUSxFQUFFLEVBQUU7aUJBQ2I7OzBCQUtjLE1BQU07MkJBQUMsY0FBYzs0Q0FIbEIsS0FBSztzQkFBcEIsS0FBSztnQkFDVSxRQUFRO3NCQUF2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJ1bnRpbWVNb2RlbCwgUnVudGltZVByb2R1Y3QsIFJ1bnRpbWVUeXBlIH0gZnJvbSAnQHZlbG9jZWFwcHMvY29yZSc7XG5pbXBvcnQgeyBEaWN0aW9uYXJ5IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IFJ1bnRpbWVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcnVudGltZS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmwtY29udGV4dC1wcm92aWRlcicsXG4gIHRlbXBsYXRlOiAnJyxcbn0pXG5leHBvcnQgY2xhc3MgQ29udGV4dFByb3ZpZGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgcHVibGljIHR5cGVzOiBSdW50aW1lVHlwZVtdID0gW107XG4gIEBJbnB1dCgpIHB1YmxpYyBwcm9kdWN0czogRGljdGlvbmFyeTxSdW50aW1lUHJvZHVjdFtdPiA9IHt9O1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoUnVudGltZVNlcnZpY2UpIHByaXZhdGUgcnVudGltZVNlcnZpY2U6IFJ1bnRpbWVTZXJ2aWNlKSB7fVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5ydW50aW1lU2VydmljZS5nZXRSdW50aW1lQ29udGV4dCgpO1xuXG4gICAgaWYgKCFjb250ZXh0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5ydW50aW1lU2VydmljZS5zZXRSdW50aW1lQ29udGV4dCh7XG4gICAgICAuLi5jb250ZXh0LFxuICAgICAgcnVudGltZU1vZGVsOiBSdW50aW1lTW9kZWwuY3JlYXRlKHRoaXMudHlwZXMsIHRoaXMucHJvZHVjdHMpLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -1,67 +0,0 @@
1
- import { Component, Injector, Input, NgModuleRef, ViewChild, ViewContainerRef, } from '@angular/core';
2
- import { FormGroup } from '@angular/forms';
3
- import { Section } from '@veloceapps/core';
4
- import { SectionScopeService } from '../../../services/section-scope.service';
5
- import { SectionStoreService } from '../../../services/section-store.service';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "../../../services/section-scope.service";
8
- import * as i2 from "../../../services/section-store.service";
9
- export class ExecutionSectionRendererComponent {
10
- set section(value) {
11
- this._section = value;
12
- this.sectionScope.section = value;
13
- }
14
- get section() {
15
- return this._section;
16
- }
17
- constructor(_injector, _m, sectionScope, sectionStore) {
18
- this._injector = _injector;
19
- this._m = _m;
20
- this.sectionScope = sectionScope;
21
- this.sectionStore = sectionStore;
22
- this.componentRef = null;
23
- }
24
- ngOnInit() {
25
- this.renderSection();
26
- }
27
- ngAfterViewInit() {
28
- if (this.componentRef) {
29
- this.sectionScope.templates.next(this.componentRef.instance['templates']?.toArray() ?? []);
30
- }
31
- }
32
- ngOnDestroy() {
33
- if (this.componentRef) {
34
- this.componentRef.destroy();
35
- this.componentRef = null;
36
- }
37
- }
38
- renderSection() {
39
- if (this.componentRef) {
40
- this.componentRef.destroy();
41
- this.componentRef = null;
42
- }
43
- const componentFactory = this.sectionStore.getComponentFactory(this._section);
44
- if (!componentFactory) {
45
- return;
46
- }
47
- this.componentRef = componentFactory.create(this._injector, [], null, this._m);
48
- this.componentRef.location.nativeElement.setAttribute('sectionId', `${this._section.model?.id}${this._section.label}`);
49
- this.componentRef.instance['form'] = this.form;
50
- this.componentRef.instance['section'] = this.section;
51
- this.container.insert(this.componentRef.hostView);
52
- }
53
- }
54
- ExecutionSectionRendererComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ExecutionSectionRendererComponent, deps: [{ token: i0.Injector }, { token: i0.NgModuleRef }, { token: i1.SectionScopeService }, { token: i2.SectionStoreService }], target: i0.ɵɵFactoryTarget.Component });
55
- ExecutionSectionRendererComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: ExecutionSectionRendererComponent, selector: "section-renderer", inputs: { section: "section", form: "form" }, providers: [SectionScopeService], viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: "<ng-template #container></ng-template>", styles: [":host{display:contents}\n"] });
56
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ExecutionSectionRendererComponent, decorators: [{
57
- type: Component,
58
- args: [{ selector: 'section-renderer', providers: [SectionScopeService], template: "<ng-template #container></ng-template>", styles: [":host{display:contents}\n"] }]
59
- }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.NgModuleRef }, { type: i1.SectionScopeService }, { type: i2.SectionStoreService }]; }, propDecorators: { section: [{
60
- type: Input
61
- }], form: [{
62
- type: Input
63
- }], container: [{
64
- type: ViewChild,
65
- args: ['container', { read: ViewContainerRef, static: true }]
66
- }] } });
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlY3V0aW9uLXNlY3Rpb24tcmVuZGVyZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvcnVudGltZS9leGVjdXRpb24vY29tcG9uZW50cy9leGVjdXRpb24tc2VjdGlvbi1yZW5kZXJlci9leGVjdXRpb24tc2VjdGlvbi1yZW5kZXJlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9ydW50aW1lL2V4ZWN1dGlvbi9jb21wb25lbnRzL2V4ZWN1dGlvbi1zZWN0aW9uLXJlbmRlcmVyL2V4ZWN1dGlvbi1zZWN0aW9uLXJlbmRlcmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBRVQsUUFBUSxFQUNSLEtBQUssRUFDTCxXQUFXLEVBR1gsU0FBUyxFQUNULGdCQUFnQixHQUNqQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDOzs7O0FBUzlFLE1BQU0sT0FBTyxpQ0FBaUM7SUFHNUMsSUFDVyxPQUFPLENBQUMsS0FBYztRQUMvQixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDcEMsQ0FBQztJQUVELElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUtELFlBQ1UsU0FBbUIsRUFDbkIsRUFBb0IsRUFDcEIsWUFBaUMsRUFDakMsWUFBaUM7UUFIakMsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQUNuQixPQUFFLEdBQUYsRUFBRSxDQUFrQjtRQUNwQixpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFDakMsaUJBQVksR0FBWixZQUFZLENBQXFCO1FBTW5DLGlCQUFZLEdBQTZCLElBQUksQ0FBQztJQUxuRCxDQUFDO0lBT0csUUFBUTtRQUNiLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRU0sZUFBZTtRQUNwQixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDckIsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1NBQzVGO0lBQ0gsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3JCLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7U0FDMUI7SUFDSCxDQUFDO0lBRU0sYUFBYTtRQUNsQixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDckIsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztTQUMxQjtRQUVELE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDOUUsSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3JCLE9BQU87U0FDUjtRQUVELElBQUksQ0FBQyxZQUFZLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDL0UsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FDbkQsV0FBVyxFQUNYLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQ25ELENBQUM7UUFDRixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQy9DLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDckQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNwRCxDQUFDOzs4SEFoRVUsaUNBQWlDO2tIQUFqQyxpQ0FBaUMseUZBRmpDLENBQUMsbUJBQW1CLENBQUMsNkdBeUJBLGdCQUFnQiwyQ0MvQ2xELHdDQUFzQzsyRkR3QnpCLGlDQUFpQztrQkFQN0MsU0FBUzsrQkFFRSxrQkFBa0IsYUFHakIsQ0FBQyxtQkFBbUIsQ0FBQzs2TEFNckIsT0FBTztzQkFEakIsS0FBSztnQkFXQyxJQUFJO3NCQURWLEtBQUs7Z0JBV0MsU0FBUztzQkFEZixTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBDb21wb25lbnRSZWYsXG4gIEluamVjdG9yLFxuICBJbnB1dCxcbiAgTmdNb2R1bGVSZWYsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU2VjdGlvbiB9IGZyb20gJ0B2ZWxvY2VhcHBzL2NvcmUnO1xuaW1wb3J0IHsgU2VjdGlvblNjb3BlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3NlY3Rpb24tc2NvcGUuc2VydmljZSc7XG5pbXBvcnQgeyBTZWN0aW9uU3RvcmVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvc2VjdGlvbi1zdG9yZS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnc2VjdGlvbi1yZW5kZXJlcicsXG4gIHRlbXBsYXRlVXJsOiAnZXhlY3V0aW9uLXNlY3Rpb24tcmVuZGVyZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnZXhlY3V0aW9uLXNlY3Rpb24tcmVuZGVyZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbU2VjdGlvblNjb3BlU2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIEV4ZWN1dGlvblNlY3Rpb25SZW5kZXJlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBfc2VjdGlvbiE6IFNlY3Rpb247XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBzZWN0aW9uKHZhbHVlOiBTZWN0aW9uKSB7XG4gICAgdGhpcy5fc2VjdGlvbiA9IHZhbHVlO1xuICAgIHRoaXMuc2VjdGlvblNjb3BlLnNlY3Rpb24gPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc2VjdGlvbigpOiBTZWN0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5fc2VjdGlvbjtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmb3JtITogRm9ybUdyb3VwO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX2luamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIF9tOiBOZ01vZHVsZVJlZjxhbnk+LFxuICAgIHByaXZhdGUgc2VjdGlvblNjb3BlOiBTZWN0aW9uU2NvcGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgc2VjdGlvblN0b3JlOiBTZWN0aW9uU3RvcmVTZXJ2aWNlLFxuICApIHt9XG5cbiAgQFZpZXdDaGlsZCgnY29udGFpbmVyJywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmLCBzdGF0aWM6IHRydWUgfSlcbiAgcHVibGljIGNvbnRhaW5lciE6IFZpZXdDb250YWluZXJSZWY7XG5cbiAgcHJpdmF0ZSBjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxhbnk+IHwgbnVsbCA9IG51bGw7XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMucmVuZGVyU2VjdGlvbigpO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jb21wb25lbnRSZWYpIHtcbiAgICAgIHRoaXMuc2VjdGlvblNjb3BlLnRlbXBsYXRlcy5uZXh0KHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlWyd0ZW1wbGF0ZXMnXT8udG9BcnJheSgpID8/IFtdKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY29tcG9uZW50UmVmKSB7XG4gICAgICB0aGlzLmNvbXBvbmVudFJlZi5kZXN0cm95KCk7XG4gICAgICB0aGlzLmNvbXBvbmVudFJlZiA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlbmRlclNlY3Rpb24oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY29tcG9uZW50UmVmKSB7XG4gICAgICB0aGlzLmNvbXBvbmVudFJlZi5kZXN0cm95KCk7XG4gICAgICB0aGlzLmNvbXBvbmVudFJlZiA9IG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QgY29tcG9uZW50RmFjdG9yeSA9IHRoaXMuc2VjdGlvblN0b3JlLmdldENvbXBvbmVudEZhY3RvcnkodGhpcy5fc2VjdGlvbik7XG4gICAgaWYgKCFjb21wb25lbnRGYWN0b3J5KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5jb21wb25lbnRSZWYgPSBjb21wb25lbnRGYWN0b3J5LmNyZWF0ZSh0aGlzLl9pbmplY3RvciwgW10sIG51bGwsIHRoaXMuX20pO1xuICAgIHRoaXMuY29tcG9uZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQuc2V0QXR0cmlidXRlKFxuICAgICAgJ3NlY3Rpb25JZCcsXG4gICAgICBgJHt0aGlzLl9zZWN0aW9uLm1vZGVsPy5pZH0ke3RoaXMuX3NlY3Rpb24ubGFiZWx9YCxcbiAgICApO1xuICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlWydmb3JtJ10gPSB0aGlzLmZvcm07XG4gICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2VbJ3NlY3Rpb24nXSA9IHRoaXMuc2VjdGlvbjtcbiAgICB0aGlzLmNvbnRhaW5lci5pbnNlcnQodGhpcy5jb21wb25lbnRSZWYuaG9zdFZpZXcpO1xuICB9XG59XG4iLCI8bmctdGVtcGxhdGUgI2NvbnRhaW5lcj48L25nLXRlbXBsYXRlPiJdfQ==
@@ -1,74 +0,0 @@
1
- import { ApplicationRef, ChangeDetectionStrategy, Compiler, Component, ElementRef, EventEmitter, Injector, Input, Output, Renderer2, TemplateRef, ViewChild, ViewContainerRef, } from '@angular/core';
2
- import { loadRemoteModule } from '../../utils/federated.util';
3
- import * as i0 from "@angular/core";
4
- var IntegrationEvent;
5
- (function (IntegrationEvent) {
6
- IntegrationEvent["Init"] = "Init";
7
- })(IntegrationEvent || (IntegrationEvent = {}));
8
- export class FederatedComponent {
9
- constructor(injector, compiler, appRef, renderer) {
10
- this.injector = injector;
11
- this.compiler = compiler;
12
- this.appRef = appRef;
13
- this.renderer = renderer;
14
- this.integrationEvent = new EventEmitter();
15
- this.moduleReady = false;
16
- }
17
- ngAfterViewInit() {
18
- if (!this.remoteEntry || !this.remoteName || !this.exposedModule) {
19
- return;
20
- }
21
- loadRemoteModule({
22
- remoteEntry: this.remoteEntry,
23
- remoteName: this.remoteName,
24
- exposedModule: this.exposedModule,
25
- }).then(federated => {
26
- this.compiler.compileModuleAsync(federated[this.exposedModule]).then(moduleFactory => {
27
- const rootModuleRef = moduleFactory.create(this.injector);
28
- const rootComponentFactory = rootModuleRef.componentFactoryResolver.resolveComponentFactory(federated[this.exposedModule].rootComponent);
29
- const node = document.createElement('div');
30
- const { instance, hostView } = rootComponentFactory.create(this.injector, [], node);
31
- this.instance = instance;
32
- this.instance.data = this.data;
33
- this.instance.eventData = this.eventData;
34
- this.instance.integrationEvent = this.integrationEvent;
35
- this.renderer.appendChild(this.moduleHostRef?.nativeElement, node);
36
- this.appRef.attachView(hostView);
37
- });
38
- });
39
- }
40
- ngOnChanges(changes) {
41
- if (!this.instance) {
42
- return;
43
- }
44
- this.instance.ngOnChanges(changes);
45
- }
46
- }
47
- FederatedComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: FederatedComponent, deps: [{ token: i0.Injector }, { token: i0.Compiler }, { token: i0.ApplicationRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
48
- FederatedComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: FederatedComponent, selector: "veloce-host-federated", inputs: { remoteEntry: "remoteEntry", remoteName: "remoteName", exposedModule: "exposedModule", data: "data", eventData: "eventData" }, outputs: { integrationEvent: "integrationEvent" }, viewQueries: [{ propertyName: "federatedComponent", first: true, predicate: ["federatedComponent"], descendants: true, read: ViewContainerRef }, { propertyName: "foo", first: true, predicate: ["foo"], descendants: true, read: TemplateRef }, { propertyName: "moduleHostRef", first: true, predicate: ["moduleHost"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div #moduleHost></div>\n", styles: [":host{display:block}div{height:100%}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
49
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: FederatedComponent, decorators: [{
50
- type: Component,
51
- args: [{ selector: 'veloce-host-federated', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div #moduleHost></div>\n", styles: [":host{display:block}div{height:100%}\n"] }]
52
- }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.Compiler }, { type: i0.ApplicationRef }, { type: i0.Renderer2 }]; }, propDecorators: { federatedComponent: [{
53
- type: ViewChild,
54
- args: ['federatedComponent', { read: ViewContainerRef }]
55
- }], foo: [{
56
- type: ViewChild,
57
- args: ['foo', { read: TemplateRef }]
58
- }], moduleHostRef: [{
59
- type: ViewChild,
60
- args: ['moduleHost', { static: false }]
61
- }], remoteEntry: [{
62
- type: Input
63
- }], remoteName: [{
64
- type: Input
65
- }], exposedModule: [{
66
- type: Input
67
- }], data: [{
68
- type: Input
69
- }], eventData: [{
70
- type: Input
71
- }], integrationEvent: [{
72
- type: Output
73
- }] } });
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVkZXJhdGVkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3J1bnRpbWUvZXhlY3V0aW9uL2NvbXBvbmVudHMvZmVkZXJhdGVkL2ZlZGVyYXRlZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9ydW50aW1lL2V4ZWN1dGlvbi9jb21wb25lbnRzL2ZlZGVyYXRlZC9mZWRlcmF0ZWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLGNBQWMsRUFDZCx1QkFBdUIsRUFDdkIsUUFBUSxFQUNSLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFFBQVEsRUFDUixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFFVCxXQUFXLEVBQ1gsU0FBUyxFQUNULGdCQUFnQixHQUNqQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFFOUQsSUFBSyxnQkFFSjtBQUZELFdBQUssZ0JBQWdCO0lBQ25CLGlDQUFhLENBQUE7QUFDZixDQUFDLEVBRkksZ0JBQWdCLEtBQWhCLGdCQUFnQixRQUVwQjtBQXlCRCxNQUFNLE9BQU8sa0JBQWtCO0lBZ0I3QixZQUNVLFFBQWtCLEVBQ2xCLFFBQWtCLEVBQ2xCLE1BQXNCLEVBQ3RCLFFBQW1CO1FBSG5CLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixXQUFNLEdBQU4sTUFBTSxDQUFnQjtRQUN0QixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBVlgscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQTJCLENBQUM7UUFFMUUsZ0JBQVcsR0FBRyxLQUFLLENBQUM7SUFTeEIsQ0FBQztJQUVHLGVBQWU7UUFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUNoRSxPQUFPO1NBQ1I7UUFFRCxnQkFBZ0IsQ0FBQztZQUNmLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3QixVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7WUFDM0IsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhO1NBQ2xDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDbEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQXVCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRTtnQkFDN0YsTUFBTSxhQUFhLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQzFELE1BQU0sb0JBQW9CLEdBQUcsYUFBYSxDQUFDLHdCQUF3QixDQUFDLHVCQUF1QixDQUN6RixTQUFTLENBQUMsSUFBSSxDQUFDLGFBQXVCLENBQUMsQ0FBQyxhQUFhLENBQ3RELENBQUM7Z0JBQ0YsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDM0MsTUFBTSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsR0FBRyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBRXBGLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBdUMsQ0FBQztnQkFDeEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztnQkFDL0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztnQkFDekMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7Z0JBRXZELElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsYUFBYSxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUNuRSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNuQyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLFdBQVcsQ0FBQyxPQUFzQjtRQUN2QyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNsQixPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNyQyxDQUFDOzsrR0ExRFUsa0JBQWtCO21HQUFsQixrQkFBa0IsNlZBQ1ksZ0JBQWdCLHFGQUMvQixXQUFXLGdKQ2xEdkMsMkJBQ0E7MkZEK0NhLGtCQUFrQjtrQkFQOUIsU0FBUzsrQkFFRSx1QkFBdUIsbUJBR2hCLHVCQUF1QixDQUFDLE1BQU07MktBR3FCLGtCQUFrQjtzQkFBckYsU0FBUzt1QkFBQyxvQkFBb0IsRUFBRSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRTtnQkFDWCxHQUFHO3NCQUFsRCxTQUFTO3VCQUFDLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7Z0JBQ1ksYUFBYTtzQkFBL0QsU0FBUzt1QkFBQyxZQUFZLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUUxQixXQUFXO3NCQUExQixLQUFLO2dCQUNVLFVBQVU7c0JBQXpCLEtBQUs7Z0JBQ1UsYUFBYTtzQkFBNUIsS0FBSztnQkFDVSxJQUFJO3NCQUFuQixLQUFLO2dCQUNVLFNBQVM7c0JBQXhCLEtBQUs7Z0JBQ1ksZ0JBQWdCO3NCQUFqQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQXBwbGljYXRpb25SZWYsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21waWxlcixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEluamVjdG9yLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPdXRwdXQsXG4gIFJlbmRlcmVyMixcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMaW5lSXRlbSB9IGZyb20gJ0B2ZWxvY2VhcHBzL2NvcmUnO1xuaW1wb3J0IHsgbG9hZFJlbW90ZU1vZHVsZSB9IGZyb20gJy4uLy4uL3V0aWxzL2ZlZGVyYXRlZC51dGlsJztcblxuZW51bSBJbnRlZ3JhdGlvbkV2ZW50IHtcbiAgSW5pdCA9ICdJbml0Jyxcbn1cblxuaW50ZXJmYWNlIElucHV0RGF0YSB7XG4gIHJvb3RMaW5lSXRlbTogTGluZUl0ZW07XG59XG5cbmludGVyZmFjZSBJbnRlZ3JhdGlvbkV2ZW50UGF5bG9hZCB7XG4gIHR5cGU6IEludGVncmF0aW9uRXZlbnQ7XG4gIHBheWxvYWQ/OiB1bmtub3duO1xufVxuXG5pbnRlcmZhY2UgSW5lZ3JhdGlvbkNvbXBvbmVudEluc3RhbmNlIGV4dGVuZHMgT25DaGFuZ2VzIHtcbiAgaW50ZWdyYXRpb25FdmVudDogRXZlbnRFbWl0dGVyPEludGVncmF0aW9uRXZlbnRQYXlsb2FkPjtcbiAgaW50ZWdyYXRpb25BcHBSZWY6IEFwcGxpY2F0aW9uUmVmO1xuICBkYXRhPzogSW5wdXREYXRhO1xuICBldmVudERhdGE/OiBJbnRlZ3JhdGlvbkV2ZW50UGF5bG9hZDtcbn1cblxuQENvbXBvbmVudCh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAndmVsb2NlLWhvc3QtZmVkZXJhdGVkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZlZGVyYXRlZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ZlZGVyYXRlZC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRmVkZXJhdGVkQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzIHtcbiAgQFZpZXdDaGlsZCgnZmVkZXJhdGVkQ29tcG9uZW50JywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pIHB1YmxpYyBmZWRlcmF0ZWRDb21wb25lbnQ/OiBWaWV3Q29udGFpbmVyUmVmO1xuICBAVmlld0NoaWxkKCdmb28nLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pIHB1YmxpYyBmb28/OiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcbiAgQFZpZXdDaGlsZCgnbW9kdWxlSG9zdCcsIHsgc3RhdGljOiBmYWxzZSB9KSBwdWJsaWMgbW9kdWxlSG9zdFJlZj86IEVsZW1lbnRSZWY7XG5cbiAgQElucHV0KCkgcHVibGljIHJlbW90ZUVudHJ5Pzogc3RyaW5nO1xuICBASW5wdXQoKSBwdWJsaWMgcmVtb3RlTmFtZT86IHN0cmluZztcbiAgQElucHV0KCkgcHVibGljIGV4cG9zZWRNb2R1bGU/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHB1YmxpYyBkYXRhPzogSW5wdXREYXRhO1xuICBASW5wdXQoKSBwdWJsaWMgZXZlbnREYXRhPzogSW50ZWdyYXRpb25FdmVudFBheWxvYWQ7XG4gIEBPdXRwdXQoKSBwcml2YXRlIGludGVncmF0aW9uRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPEludGVncmF0aW9uRXZlbnRQYXlsb2FkPigpO1xuXG4gIHB1YmxpYyBtb2R1bGVSZWFkeSA9IGZhbHNlO1xuXG4gIHByaXZhdGUgaW5zdGFuY2U/OiBJbmVncmF0aW9uQ29tcG9uZW50SW5zdGFuY2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJpdmF0ZSBjb21waWxlcjogQ29tcGlsZXIsXG4gICAgcHJpdmF0ZSBhcHBSZWY6IEFwcGxpY2F0aW9uUmVmLFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgKSB7fVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnJlbW90ZUVudHJ5IHx8ICF0aGlzLnJlbW90ZU5hbWUgfHwgIXRoaXMuZXhwb3NlZE1vZHVsZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxvYWRSZW1vdGVNb2R1bGUoe1xuICAgICAgcmVtb3RlRW50cnk6IHRoaXMucmVtb3RlRW50cnksXG4gICAgICByZW1vdGVOYW1lOiB0aGlzLnJlbW90ZU5hbWUsXG4gICAgICBleHBvc2VkTW9kdWxlOiB0aGlzLmV4cG9zZWRNb2R1bGUsXG4gICAgfSkudGhlbihmZWRlcmF0ZWQgPT4ge1xuICAgICAgdGhpcy5jb21waWxlci5jb21waWxlTW9kdWxlQXN5bmMoZmVkZXJhdGVkW3RoaXMuZXhwb3NlZE1vZHVsZSBhcyBzdHJpbmddKS50aGVuKG1vZHVsZUZhY3RvcnkgPT4ge1xuICAgICAgICBjb25zdCByb290TW9kdWxlUmVmID0gbW9kdWxlRmFjdG9yeS5jcmVhdGUodGhpcy5pbmplY3Rvcik7XG4gICAgICAgIGNvbnN0IHJvb3RDb21wb25lbnRGYWN0b3J5ID0gcm9vdE1vZHVsZVJlZi5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoXG4gICAgICAgICAgZmVkZXJhdGVkW3RoaXMuZXhwb3NlZE1vZHVsZSBhcyBzdHJpbmddLnJvb3RDb21wb25lbnQsXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IG5vZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgY29uc3QgeyBpbnN0YW5jZSwgaG9zdFZpZXcgfSA9IHJvb3RDb21wb25lbnRGYWN0b3J5LmNyZWF0ZSh0aGlzLmluamVjdG9yLCBbXSwgbm9kZSk7XG5cbiAgICAgICAgdGhpcy5pbnN0YW5jZSA9IGluc3RhbmNlIGFzIEluZWdyYXRpb25Db21wb25lbnRJbnN0YW5jZTtcbiAgICAgICAgdGhpcy5pbnN0YW5jZS5kYXRhID0gdGhpcy5kYXRhO1xuICAgICAgICB0aGlzLmluc3RhbmNlLmV2ZW50RGF0YSA9IHRoaXMuZXZlbnREYXRhO1xuICAgICAgICB0aGlzLmluc3RhbmNlLmludGVncmF0aW9uRXZlbnQgPSB0aGlzLmludGVncmF0aW9uRXZlbnQ7XG5cbiAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLm1vZHVsZUhvc3RSZWY/Lm5hdGl2ZUVsZW1lbnQsIG5vZGUpO1xuICAgICAgICB0aGlzLmFwcFJlZi5hdHRhY2hWaWV3KGhvc3RWaWV3KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaW5zdGFuY2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmluc3RhbmNlLm5nT25DaGFuZ2VzKGNoYW5nZXMpO1xuICB9XG59XG4iLCI8ZGl2ICNtb2R1bGVIb3N0PjwvZGl2PlxuIl19
@@ -1,60 +0,0 @@
1
- import { Component } from '@angular/core';
2
- import { FormScopeService } from '../../../services/form-scope.service';
3
- import { SectionScopeService } from '../../../services/section-scope.service';
4
- import { VeloAttributeDirective } from '../../directives/velo-attribute.directive';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "../../../services/form-scope.service";
7
- import * as i2 from "../../../services/section-scope.service";
8
- import * as i3 from "@angular/common";
9
- import * as i4 from "@angular/forms";
10
- import * as i5 from "../velo-multiselect/velo-multiselect.component";
11
- export class VeloAttributeComponent extends VeloAttributeDirective {
12
- constructor(formScope, sectionScope) {
13
- super(formScope, sectionScope);
14
- this.controlName = this.section.id;
15
- this.displayName = this.getDisplayName();
16
- this.isMultiselect =
17
- this.section.model?.attributes.find(attr => attr.name === this.section.boundData.entity.name)?.type ===
18
- 'MULTIPLE';
19
- }
20
- getValueOptions(valueOptions) {
21
- return this.isBooleanType(valueOptions) ? [0, 1] : valueOptions;
22
- }
23
- getValueText(valueOptions, value) {
24
- if (this.isBooleanType(valueOptions)) {
25
- return value === 0 ? 'False' : 'True';
26
- }
27
- return value;
28
- }
29
- handleMultiselectChange(value) {
30
- const formControl = this.form.get(this.controlName);
31
- if (!formControl) {
32
- return;
33
- }
34
- const currentValue = formControl.value ?? [];
35
- const newValue = currentValue.includes(value) ? currentValue.filter(v => v !== value) : [...currentValue, value];
36
- formControl.setValue(newValue);
37
- super.handleChange();
38
- }
39
- handleMultipleDropdownChange(event) {
40
- const formControl = this.form.get(this.controlName);
41
- if (!formControl) {
42
- return;
43
- }
44
- formControl.setValue(event);
45
- super.handleChange();
46
- }
47
- isBooleanType(value) {
48
- return Array.isArray(value) && value.length === 1 && value[0].min === 0 && value[0].max === 1;
49
- }
50
- getDisplayName() {
51
- return ((this.section.model?.properties && this.section.model.properties['displayName']) || this.section.model?.type || '');
52
- }
53
- }
54
- VeloAttributeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: VeloAttributeComponent, deps: [{ token: i1.FormScopeService }, { token: i2.SectionScopeService }], target: i0.ɵɵFactoryTarget.Component });
55
- VeloAttributeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: VeloAttributeComponent, selector: "velo-attribute", usesInheritance: true, ngImport: i0, template: "<div class=\"form-group div-inline\" [formGroup]=\"form\">\n <div class=\"input-form-input div-inline\" [class.input-form-input--required]=\"section.required\">\n <label>\n <ng-container *ngIf=\"section.required\"> * </ng-container>\n\n {{ section.label }}\n </label>\n <div [ngSwitch]=\"section.controlType\" class=\"form-control-wrapper\">\n <div *ngSwitchCase=\"'DROPDOWN'\">\n <select\n [id]=\"controlName\"\n [formControlName]=\"controlName\"\n class=\"form-control\"\n (change)=\"handleChange()\"\n [attr.disabled]=\"section.readOnly ? true : null\"\n >\n <option\n *ngFor=\"let valueOption of getValueOptions(section.sectionValue?.valueOptions) || []\"\n [ngValue]=\"valueOption\"\n >\n {{ getValueText(section.sectionValue?.valueOptions, valueOption) }}\n </option>\n </select>\n </div>\n\n <div *ngSwitchCase=\"'MULTISELECT'\">\n <velo-multiselect\n [id]=\"controlName\"\n [formControlName]=\"controlName\"\n [options]=\"getValueOptions(section.sectionValue?.valueOptions)\"\n [attr.disabled]=\"section.readOnly ? true : null\"\n (selectionChange)=\"handleMultipleDropdownChange($event)\"\n ></velo-multiselect>\n </div>\n\n <div *ngSwitchCase=\"'RADIO'\">\n <div\n *ngFor=\"let valueOption of getValueOptions(section.sectionValue?.valueOptions)\"\n class=\"radio-button\"\n [attr.disabled]=\"section.readOnly ? true : null\"\n >\n <label>\n <input\n type=\"radio\"\n [id]=\"controlName\"\n [formControlName]=\"controlName\"\n [value]=\"valueOption\"\n (change)=\"handleChange()\"\n [attr.disabled]=\"section.readOnly ? true : null\"\n />\n <i class=\"input-helper\"></i>\n {{ getValueText(section.sectionValue?.valueOptions, valueOption) }}\n </label>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'CHECKBOX'\">\n <ng-container *ngIf=\"!isMultiselect; else multiselect\">\n <div class=\"checkbox-select\" [attr.disabled]=\"section.readOnly ? true : null\">\n <label>\n <input\n type=\"checkbox\"\n [id]=\"controlName\"\n [formControlName]=\"controlName\"\n [checked]=\"section.sectionValue?.value === 1\"\n (change)=\"handleChange()\"\n [attr.disabled]=\"section.readOnly ? true : null\"\n />\n\n <i class=\"input-helper\"></i>\n &nbsp;\n </label>\n </div>\n </ng-container>\n\n <ng-template #multiselect>\n <div\n *ngFor=\"let valueOption of getValueOptions(section.sectionValue?.valueOptions)\"\n class=\"checkbox-select\"\n [attr.disabled]=\"section.readOnly ? true : null\"\n >\n <label>\n <input\n type=\"checkbox\"\n [id]=\"controlName\"\n [checked]=\"section.sectionValue?.value.includes(valueOption)\"\n (change)=\"handleMultiselectChange(valueOption)\"\n [value]=\"valueOption\"\n [attr.disabled]=\"section.readOnly ? true : null\"\n />\n\n <i class=\"input-helper\"></i>\n {{ valueOption }}\n </label>\n </div>\n </ng-template>\n </div>\n\n <div *ngSwitchCase=\"'DATE'\">\n <input\n type=\"text\"\n class=\"form-control\"\n [id]=\"controlName\"\n [formControlName]=\"controlName\"\n [attr.disabled]=\"section.readOnly ? true : null\"\n (bsValueChange)=\"handleChangDate($event)\"\n bsDatepicker\n />\n </div>\n\n <div *ngSwitchDefault>\n <input\n type=\"text\"\n class=\"form-control\"\n [id]=\"controlName\"\n [formControlName]=\"controlName\"\n (blur)=\"form.controls[controlName].dirty && handleChange()\"\n [attr.disabled]=\"section.readOnly ? true : null\"\n />\n </div>\n\n <!-- Add validation messages -->\n <!-- <div validation-messages [form]=\"form\" [controlId]=\"controlName\" [showForPristine]=\"true\"></div> -->\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i3.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i4.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i4.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i4.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5.MultiselectComponent, selector: "velo-multiselect", inputs: ["options"], outputs: ["selectionChange"] }] });
56
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: VeloAttributeComponent, decorators: [{
57
- type: Component,
58
- args: [{ selector: 'velo-attribute', template: "<div class=\"form-group div-inline\" [formGroup]=\"form\">\n <div class=\"input-form-input div-inline\" [class.input-form-input--required]=\"section.required\">\n <label>\n <ng-container *ngIf=\"section.required\"> * </ng-container>\n\n {{ section.label }}\n </label>\n <div [ngSwitch]=\"section.controlType\" class=\"form-control-wrapper\">\n <div *ngSwitchCase=\"'DROPDOWN'\">\n <select\n [id]=\"controlName\"\n [formControlName]=\"controlName\"\n class=\"form-control\"\n (change)=\"handleChange()\"\n [attr.disabled]=\"section.readOnly ? true : null\"\n >\n <option\n *ngFor=\"let valueOption of getValueOptions(section.sectionValue?.valueOptions) || []\"\n [ngValue]=\"valueOption\"\n >\n {{ getValueText(section.sectionValue?.valueOptions, valueOption) }}\n </option>\n </select>\n </div>\n\n <div *ngSwitchCase=\"'MULTISELECT'\">\n <velo-multiselect\n [id]=\"controlName\"\n [formControlName]=\"controlName\"\n [options]=\"getValueOptions(section.sectionValue?.valueOptions)\"\n [attr.disabled]=\"section.readOnly ? true : null\"\n (selectionChange)=\"handleMultipleDropdownChange($event)\"\n ></velo-multiselect>\n </div>\n\n <div *ngSwitchCase=\"'RADIO'\">\n <div\n *ngFor=\"let valueOption of getValueOptions(section.sectionValue?.valueOptions)\"\n class=\"radio-button\"\n [attr.disabled]=\"section.readOnly ? true : null\"\n >\n <label>\n <input\n type=\"radio\"\n [id]=\"controlName\"\n [formControlName]=\"controlName\"\n [value]=\"valueOption\"\n (change)=\"handleChange()\"\n [attr.disabled]=\"section.readOnly ? true : null\"\n />\n <i class=\"input-helper\"></i>\n {{ getValueText(section.sectionValue?.valueOptions, valueOption) }}\n </label>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'CHECKBOX'\">\n <ng-container *ngIf=\"!isMultiselect; else multiselect\">\n <div class=\"checkbox-select\" [attr.disabled]=\"section.readOnly ? true : null\">\n <label>\n <input\n type=\"checkbox\"\n [id]=\"controlName\"\n [formControlName]=\"controlName\"\n [checked]=\"section.sectionValue?.value === 1\"\n (change)=\"handleChange()\"\n [attr.disabled]=\"section.readOnly ? true : null\"\n />\n\n <i class=\"input-helper\"></i>\n &nbsp;\n </label>\n </div>\n </ng-container>\n\n <ng-template #multiselect>\n <div\n *ngFor=\"let valueOption of getValueOptions(section.sectionValue?.valueOptions)\"\n class=\"checkbox-select\"\n [attr.disabled]=\"section.readOnly ? true : null\"\n >\n <label>\n <input\n type=\"checkbox\"\n [id]=\"controlName\"\n [checked]=\"section.sectionValue?.value.includes(valueOption)\"\n (change)=\"handleMultiselectChange(valueOption)\"\n [value]=\"valueOption\"\n [attr.disabled]=\"section.readOnly ? true : null\"\n />\n\n <i class=\"input-helper\"></i>\n {{ valueOption }}\n </label>\n </div>\n </ng-template>\n </div>\n\n <div *ngSwitchCase=\"'DATE'\">\n <input\n type=\"text\"\n class=\"form-control\"\n [id]=\"controlName\"\n [formControlName]=\"controlName\"\n [attr.disabled]=\"section.readOnly ? true : null\"\n (bsValueChange)=\"handleChangDate($event)\"\n bsDatepicker\n />\n </div>\n\n <div *ngSwitchDefault>\n <input\n type=\"text\"\n class=\"form-control\"\n [id]=\"controlName\"\n [formControlName]=\"controlName\"\n (blur)=\"form.controls[controlName].dirty && handleChange()\"\n [attr.disabled]=\"section.readOnly ? true : null\"\n />\n </div>\n\n <!-- Add validation messages -->\n <!-- <div validation-messages [form]=\"form\" [controlId]=\"controlName\" [showForPristine]=\"true\"></div> -->\n </div>\n </div>\n</div>\n" }]
59
- }], ctorParameters: function () { return [{ type: i1.FormScopeService }, { type: i2.SectionScopeService }]; } });
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVsby1hdHRyaWJ1dGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvcnVudGltZS9leGVjdXRpb24vY29tcG9uZW50cy92ZWxvLWF0dHJpYnV0ZS92ZWxvLWF0dHJpYnV0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9ydW50aW1lL2V4ZWN1dGlvbi9jb21wb25lbnRzL3ZlbG8tYXR0cmlidXRlL3ZlbG8tYXR0cmlidXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDeEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDOUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7Ozs7Ozs7QUFPbkYsTUFBTSxPQUFPLHNCQUF1QixTQUFRLHNCQUFzQjtJQUtoRSxZQUFZLFNBQTJCLEVBQUUsWUFBaUM7UUFDeEUsS0FBSyxDQUFDLFNBQVMsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUUvQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ25DLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxhQUFhO1lBQ2hCLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJO2dCQUNuRyxVQUFVLENBQUM7SUFDZixDQUFDO0lBRU0sZUFBZSxDQUFDLFlBQXFCO1FBQzFDLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFFLFlBQXlCLENBQUM7SUFDaEYsQ0FBQztJQUVNLFlBQVksQ0FBQyxZQUFxQixFQUFFLEtBQXNCO1FBQy9ELElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsRUFBRTtZQUNwQyxPQUFPLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO1NBQ3ZDO1FBQ0QsT0FBTyxLQUFlLENBQUM7SUFDekIsQ0FBQztJQUVNLHVCQUF1QixDQUFDLEtBQXNCO1FBQ25ELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUVwRCxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ2hCLE9BQU87U0FDUjtRQUVELE1BQU0sWUFBWSxHQUF3QixXQUFXLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUNsRSxNQUFNLFFBQVEsR0FBRyxZQUFZLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsWUFBWSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ2pILFdBQVcsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFL0IsS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFTSw0QkFBNEIsQ0FBQyxLQUFVO1FBQzVDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUVwRCxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ2hCLE9BQU87U0FDUjtRQUVELFdBQVcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUIsS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFTyxhQUFhLENBQUMsS0FBVTtRQUM5QixPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUM7SUFDaEcsQ0FBQztJQUVPLGNBQWM7UUFDcEIsT0FBTyxDQUNMLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsVUFBVSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLElBQUksSUFBSSxFQUFFLENBQ25ILENBQUM7SUFDSixDQUFDOzttSEEzRFUsc0JBQXNCO3VHQUF0QixzQkFBc0IsNkVDVm5DLHU2SUE4SEE7MkZEcEhhLHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFFRSxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybVNjb3BlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Zvcm0tc2NvcGUuc2VydmljZSc7XG5pbXBvcnQgeyBTZWN0aW9uU2NvcGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvc2VjdGlvbi1zY29wZS5zZXJ2aWNlJztcbmltcG9ydCB7IFZlbG9BdHRyaWJ1dGVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL3ZlbG8tYXR0cmlidXRlLmRpcmVjdGl2ZSc7XG5cbkBDb21wb25lbnQoe1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICBzZWxlY3RvcjogJ3ZlbG8tYXR0cmlidXRlJyxcbiAgdGVtcGxhdGVVcmw6ICd2ZWxvLWF0dHJpYnV0ZS5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIFZlbG9BdHRyaWJ1dGVDb21wb25lbnQgZXh0ZW5kcyBWZWxvQXR0cmlidXRlRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHVibGljIGNvbnRyb2xOYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyBkaXNwbGF5TmFtZTogc3RyaW5nO1xuICBwdWJsaWMgaXNNdWx0aXNlbGVjdDogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3Rvcihmb3JtU2NvcGU6IEZvcm1TY29wZVNlcnZpY2UsIHNlY3Rpb25TY29wZTogU2VjdGlvblNjb3BlU2VydmljZSkge1xuICAgIHN1cGVyKGZvcm1TY29wZSwgc2VjdGlvblNjb3BlKTtcblxuICAgIHRoaXMuY29udHJvbE5hbWUgPSB0aGlzLnNlY3Rpb24uaWQ7XG4gICAgdGhpcy5kaXNwbGF5TmFtZSA9IHRoaXMuZ2V0RGlzcGxheU5hbWUoKTtcbiAgICB0aGlzLmlzTXVsdGlzZWxlY3QgPVxuICAgICAgdGhpcy5zZWN0aW9uLm1vZGVsPy5hdHRyaWJ1dGVzLmZpbmQoYXR0ciA9PiBhdHRyLm5hbWUgPT09IHRoaXMuc2VjdGlvbi5ib3VuZERhdGEuZW50aXR5Lm5hbWUpPy50eXBlID09PVxuICAgICAgJ01VTFRJUExFJztcbiAgfVxuXG4gIHB1YmxpYyBnZXRWYWx1ZU9wdGlvbnModmFsdWVPcHRpb25zOiB1bmtub3duKTogKHN0cmluZyB8IG51bWJlcilbXSB7XG4gICAgcmV0dXJuIHRoaXMuaXNCb29sZWFuVHlwZSh2YWx1ZU9wdGlvbnMpID8gWzAsIDFdIDogKHZhbHVlT3B0aW9ucyBhcyBzdHJpbmdbXSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0VmFsdWVUZXh0KHZhbHVlT3B0aW9uczogdW5rbm93biwgdmFsdWU6IHN0cmluZyB8IG51bWJlcik6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuaXNCb29sZWFuVHlwZSh2YWx1ZU9wdGlvbnMpKSB7XG4gICAgICByZXR1cm4gdmFsdWUgPT09IDAgPyAnRmFsc2UnIDogJ1RydWUnO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWUgYXMgc3RyaW5nO1xuICB9XG5cbiAgcHVibGljIGhhbmRsZU11bHRpc2VsZWN0Q2hhbmdlKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCBmb3JtQ29udHJvbCA9IHRoaXMuZm9ybS5nZXQodGhpcy5jb250cm9sTmFtZSk7XG5cbiAgICBpZiAoIWZvcm1Db250cm9sKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgY3VycmVudFZhbHVlOiAoc3RyaW5nIHwgbnVtYmVyKVtdID0gZm9ybUNvbnRyb2wudmFsdWUgPz8gW107XG4gICAgY29uc3QgbmV3VmFsdWUgPSBjdXJyZW50VmFsdWUuaW5jbHVkZXModmFsdWUpID8gY3VycmVudFZhbHVlLmZpbHRlcih2ID0+IHYgIT09IHZhbHVlKSA6IFsuLi5jdXJyZW50VmFsdWUsIHZhbHVlXTtcbiAgICBmb3JtQ29udHJvbC5zZXRWYWx1ZShuZXdWYWx1ZSk7XG5cbiAgICBzdXBlci5oYW5kbGVDaGFuZ2UoKTtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVNdWx0aXBsZURyb3Bkb3duQ2hhbmdlKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCBmb3JtQ29udHJvbCA9IHRoaXMuZm9ybS5nZXQodGhpcy5jb250cm9sTmFtZSk7XG5cbiAgICBpZiAoIWZvcm1Db250cm9sKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZm9ybUNvbnRyb2wuc2V0VmFsdWUoZXZlbnQpO1xuICAgIHN1cGVyLmhhbmRsZUNoYW5nZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0Jvb2xlYW5UeXBlKHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUubGVuZ3RoID09PSAxICYmIHZhbHVlWzBdLm1pbiA9PT0gMCAmJiB2YWx1ZVswXS5tYXggPT09IDE7XG4gIH1cblxuICBwcml2YXRlIGdldERpc3BsYXlOYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIChcbiAgICAgICh0aGlzLnNlY3Rpb24ubW9kZWw/LnByb3BlcnRpZXMgJiYgdGhpcy5zZWN0aW9uLm1vZGVsLnByb3BlcnRpZXNbJ2Rpc3BsYXlOYW1lJ10pIHx8IHRoaXMuc2VjdGlvbi5tb2RlbD8udHlwZSB8fCAnJ1xuICAgICk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIGRpdi1pbmxpbmVcIiBbZm9ybUdyb3VwXT1cImZvcm1cIj5cbiAgPGRpdiBjbGFzcz1cImlucHV0LWZvcm0taW5wdXQgZGl2LWlubGluZVwiIFtjbGFzcy5pbnB1dC1mb3JtLWlucHV0LS1yZXF1aXJlZF09XCJzZWN0aW9uLnJlcXVpcmVkXCI+XG4gICAgPGxhYmVsPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlY3Rpb24ucmVxdWlyZWRcIj4gKiA8L25nLWNvbnRhaW5lcj5cblxuICAgICAge3sgc2VjdGlvbi5sYWJlbCB9fVxuICAgIDwvbGFiZWw+XG4gICAgPGRpdiBbbmdTd2l0Y2hdPVwic2VjdGlvbi5jb250cm9sVHlwZVwiIGNsYXNzPVwiZm9ybS1jb250cm9sLXdyYXBwZXJcIj5cbiAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidEUk9QRE9XTidcIj5cbiAgICAgICAgPHNlbGVjdFxuICAgICAgICAgIFtpZF09XCJjb250cm9sTmFtZVwiXG4gICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjb250cm9sTmFtZVwiXG4gICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgIChjaGFuZ2UpPVwiaGFuZGxlQ2hhbmdlKClcIlxuICAgICAgICAgIFthdHRyLmRpc2FibGVkXT1cInNlY3Rpb24ucmVhZE9ubHkgPyB0cnVlIDogbnVsbFwiXG4gICAgICAgID5cbiAgICAgICAgICA8b3B0aW9uXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgdmFsdWVPcHRpb24gb2YgZ2V0VmFsdWVPcHRpb25zKHNlY3Rpb24uc2VjdGlvblZhbHVlPy52YWx1ZU9wdGlvbnMpIHx8IFtdXCJcbiAgICAgICAgICAgIFtuZ1ZhbHVlXT1cInZhbHVlT3B0aW9uXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyBnZXRWYWx1ZVRleHQoc2VjdGlvbi5zZWN0aW9uVmFsdWU/LnZhbHVlT3B0aW9ucywgdmFsdWVPcHRpb24pIH19XG4gICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgIDwvc2VsZWN0PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidNVUxUSVNFTEVDVCdcIj5cbiAgICAgICAgPHZlbG8tbXVsdGlzZWxlY3RcbiAgICAgICAgICBbaWRdPVwiY29udHJvbE5hbWVcIlxuICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29udHJvbE5hbWVcIlxuICAgICAgICAgIFtvcHRpb25zXT1cImdldFZhbHVlT3B0aW9ucyhzZWN0aW9uLnNlY3Rpb25WYWx1ZT8udmFsdWVPcHRpb25zKVwiXG4gICAgICAgICAgW2F0dHIuZGlzYWJsZWRdPVwic2VjdGlvbi5yZWFkT25seSA/IHRydWUgOiBudWxsXCJcbiAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cImhhbmRsZU11bHRpcGxlRHJvcGRvd25DaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgID48L3ZlbG8tbXVsdGlzZWxlY3Q+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ1JBRElPJ1wiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgKm5nRm9yPVwibGV0IHZhbHVlT3B0aW9uIG9mIGdldFZhbHVlT3B0aW9ucyhzZWN0aW9uLnNlY3Rpb25WYWx1ZT8udmFsdWVPcHRpb25zKVwiXG4gICAgICAgICAgY2xhc3M9XCJyYWRpby1idXR0b25cIlxuICAgICAgICAgIFthdHRyLmRpc2FibGVkXT1cInNlY3Rpb24ucmVhZE9ubHkgPyB0cnVlIDogbnVsbFwiXG4gICAgICAgID5cbiAgICAgICAgICA8bGFiZWw+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgICAgICAgW2lkXT1cImNvbnRyb2xOYW1lXCJcbiAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjb250cm9sTmFtZVwiXG4gICAgICAgICAgICAgIFt2YWx1ZV09XCJ2YWx1ZU9wdGlvblwiXG4gICAgICAgICAgICAgIChjaGFuZ2UpPVwiaGFuZGxlQ2hhbmdlKClcIlxuICAgICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJzZWN0aW9uLnJlYWRPbmx5ID8gdHJ1ZSA6IG51bGxcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwiaW5wdXQtaGVscGVyXCI+PC9pPlxuICAgICAgICAgICAge3sgZ2V0VmFsdWVUZXh0KHNlY3Rpb24uc2VjdGlvblZhbHVlPy52YWx1ZU9wdGlvbnMsIHZhbHVlT3B0aW9uKSB9fVxuICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidDSEVDS0JPWCdcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc011bHRpc2VsZWN0OyBlbHNlIG11bHRpc2VsZWN0XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrYm94LXNlbGVjdFwiIFthdHRyLmRpc2FibGVkXT1cInNlY3Rpb24ucmVhZE9ubHkgPyB0cnVlIDogbnVsbFwiPlxuICAgICAgICAgICAgPGxhYmVsPlxuICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICAgIFtpZF09XCJjb250cm9sTmFtZVwiXG4gICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjb250cm9sTmFtZVwiXG4gICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwic2VjdGlvbi5zZWN0aW9uVmFsdWU/LnZhbHVlID09PSAxXCJcbiAgICAgICAgICAgICAgICAoY2hhbmdlKT1cImhhbmRsZUNoYW5nZSgpXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJzZWN0aW9uLnJlYWRPbmx5ID8gdHJ1ZSA6IG51bGxcIlxuICAgICAgICAgICAgICAvPlxuXG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwiaW5wdXQtaGVscGVyXCI+PC9pPlxuICAgICAgICAgICAgICAmbmJzcDtcbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjbXVsdGlzZWxlY3Q+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IHZhbHVlT3B0aW9uIG9mIGdldFZhbHVlT3B0aW9ucyhzZWN0aW9uLnNlY3Rpb25WYWx1ZT8udmFsdWVPcHRpb25zKVwiXG4gICAgICAgICAgICBjbGFzcz1cImNoZWNrYm94LXNlbGVjdFwiXG4gICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJzZWN0aW9uLnJlYWRPbmx5ID8gdHJ1ZSA6IG51bGxcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxsYWJlbD5cbiAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgICBbaWRdPVwiY29udHJvbE5hbWVcIlxuICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cInNlY3Rpb24uc2VjdGlvblZhbHVlPy52YWx1ZS5pbmNsdWRlcyh2YWx1ZU9wdGlvbilcIlxuICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiaGFuZGxlTXVsdGlzZWxlY3RDaGFuZ2UodmFsdWVPcHRpb24pXCJcbiAgICAgICAgICAgICAgICBbdmFsdWVdPVwidmFsdWVPcHRpb25cIlxuICAgICAgICAgICAgICAgIFthdHRyLmRpc2FibGVkXT1cInNlY3Rpb24ucmVhZE9ubHkgPyB0cnVlIDogbnVsbFwiXG4gICAgICAgICAgICAgIC8+XG5cbiAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpbnB1dC1oZWxwZXJcIj48L2k+XG4gICAgICAgICAgICAgIHt7IHZhbHVlT3B0aW9uIH19XG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidEQVRFJ1wiPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgIFtpZF09XCJjb250cm9sTmFtZVwiXG4gICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjb250cm9sTmFtZVwiXG4gICAgICAgICAgW2F0dHIuZGlzYWJsZWRdPVwic2VjdGlvbi5yZWFkT25seSA/IHRydWUgOiBudWxsXCJcbiAgICAgICAgICAoYnNWYWx1ZUNoYW5nZSk9XCJoYW5kbGVDaGFuZ0RhdGUoJGV2ZW50KVwiXG4gICAgICAgICAgYnNEYXRlcGlja2VyXG4gICAgICAgIC8+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiAqbmdTd2l0Y2hEZWZhdWx0PlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgIFtpZF09XCJjb250cm9sTmFtZVwiXG4gICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjb250cm9sTmFtZVwiXG4gICAgICAgICAgKGJsdXIpPVwiZm9ybS5jb250cm9sc1tjb250cm9sTmFtZV0uZGlydHkgJiYgaGFuZGxlQ2hhbmdlKClcIlxuICAgICAgICAgIFthdHRyLmRpc2FibGVkXT1cInNlY3Rpb24ucmVhZE9ubHkgPyB0cnVlIDogbnVsbFwiXG4gICAgICAgIC8+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSBBZGQgdmFsaWRhdGlvbiBtZXNzYWdlcyAtLT5cbiAgICAgIDwhLS0gPGRpdiB2YWxpZGF0aW9uLW1lc3NhZ2VzIFtmb3JtXT1cImZvcm1cIiBbY29udHJvbElkXT1cImNvbnRyb2xOYW1lXCIgW3Nob3dGb3JQcmlzdGluZV09XCJ0cnVlXCI+PC9kaXY+IC0tPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19