@veloceapps/sdk 11.0.0-8 → 11.0.0-80

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (181) hide show
  1. package/cms/cms.actions.d.ts +92 -29
  2. package/cms/components/element-renderer/element-renderer.component.d.ts +3 -10
  3. package/cms/components/preview/preview.component.d.ts +5 -6
  4. package/cms/components/preview/preview.types.d.ts +0 -4
  5. package/cms/services/element-context.service.d.ts +0 -1
  6. package/cms/types/common.types.d.ts +2 -0
  7. package/cms/types/index.d.ts +0 -1
  8. package/cms/utils/path.utils.d.ts +1 -2
  9. package/cms/vendor-map.d.ts +17 -40
  10. package/core/index.d.ts +1 -1
  11. package/core/modules/configuration/index.d.ts +3 -4
  12. package/core/modules/configuration/services/configuration-runtime.service.d.ts +8 -19
  13. package/core/modules/configuration/services/configuration-state.service.d.ts +8 -8
  14. package/core/modules/configuration/services/configuration.service.d.ts +23 -47
  15. package/core/modules/configuration/services/test-mode-configuration.service.d.ts +23 -0
  16. package/core/modules/configuration/types/configuration-runtime.types.d.ts +0 -5
  17. package/core/modules/configuration/types/configuration.types.d.ts +4 -2
  18. package/core/modules/configuration/types/index.d.ts +2 -0
  19. package/core/modules/flow-configuration/index.d.ts +0 -3
  20. package/core/modules/flow-configuration/services/flow-configuration.service.d.ts +11 -38
  21. package/core/operators/filter-successful-execute.operator.d.ts +3 -0
  22. package/core/operators/index.d.ts +1 -0
  23. package/core/services/catalog-products.service.d.ts +11 -0
  24. package/core/services/flow-info.service.d.ts +27 -12
  25. package/core/services/flow-state-configuration.service.d.ts +2 -8
  26. package/core/services/flow-state.service.d.ts +13 -22
  27. package/core/services/index.d.ts +3 -3
  28. package/core/services/integration.state.d.ts +1 -1
  29. package/core/services/product-images.service.d.ts +3 -3
  30. package/core/services/runtime-settings.service.d.ts +1 -1
  31. package/core/services/sales-transaction.service.d.ts +27 -0
  32. package/core/types/flow-customization.types.d.ts +2 -2
  33. package/core/types/flow-state.types.d.ts +2 -2
  34. package/core/types/index.d.ts +0 -1
  35. package/core/utils/index.d.ts +2 -2
  36. package/core/utils/transaction-item.utils.d.ts +7 -0
  37. package/core/utils/transaction-item.worker.d.ts +8 -0
  38. package/esm2020/cms/cms.actions.mjs +93 -71
  39. package/esm2020/cms/cms.default.mjs +2 -3
  40. package/esm2020/cms/components/element-renderer/element-renderer.component.mjs +7 -64
  41. package/esm2020/cms/components/element-tools-panel/element-tools-panel.component.mjs +3 -3
  42. package/esm2020/cms/components/preview/preview.component.mjs +19 -28
  43. package/esm2020/cms/components/preview/preview.types.mjs +1 -1
  44. package/esm2020/cms/services/element-context.service.mjs +1 -1
  45. package/esm2020/cms/types/common.types.mjs +1 -1
  46. package/esm2020/cms/types/index.mjs +1 -2
  47. package/esm2020/cms/utils/element.utils.mjs +3 -3
  48. package/esm2020/cms/utils/elements-resolver.mjs +16 -5
  49. package/esm2020/cms/utils/path.utils.mjs +1 -10
  50. package/esm2020/cms/vendor-map.mjs +17 -18
  51. package/esm2020/core/core.module.mjs +7 -7
  52. package/esm2020/core/index.mjs +2 -2
  53. package/esm2020/core/modules/configuration/configuration.module.mjs +14 -4
  54. package/esm2020/core/modules/configuration/index.mjs +4 -5
  55. package/esm2020/core/modules/configuration/services/configuration-runtime.service.mjs +16 -101
  56. package/esm2020/core/modules/configuration/services/configuration-state.service.mjs +65 -77
  57. package/esm2020/core/modules/configuration/services/configuration.service.mjs +109 -223
  58. package/esm2020/core/modules/configuration/services/test-mode-configuration.service.mjs +74 -0
  59. package/esm2020/core/modules/configuration/types/configuration-runtime.types.mjs +1 -1
  60. package/esm2020/core/modules/configuration/types/configuration.types.mjs +1 -1
  61. package/esm2020/core/modules/configuration/types/index.mjs +3 -0
  62. package/esm2020/core/modules/flow-configuration/flow-configuration.module.mjs +3 -4
  63. package/esm2020/core/modules/flow-configuration/index.mjs +1 -4
  64. package/esm2020/core/modules/flow-configuration/services/flow-configuration.service.mjs +44 -128
  65. package/esm2020/core/operators/filter-successful-execute.operator.mjs +5 -0
  66. package/esm2020/core/operators/index.mjs +2 -0
  67. package/esm2020/core/services/catalog-products.service.mjs +25 -0
  68. package/esm2020/core/services/flow-info.service.mjs +82 -31
  69. package/esm2020/core/services/flow-state-configuration.service.mjs +10 -25
  70. package/esm2020/core/services/flow-state.service.mjs +60 -172
  71. package/esm2020/core/services/index.mjs +4 -4
  72. package/esm2020/core/services/integration.state.mjs +2 -2
  73. package/esm2020/core/services/product-images.service.mjs +8 -8
  74. package/esm2020/core/services/runtime-settings.service.mjs +3 -3
  75. package/esm2020/core/services/sales-transaction.service.mjs +62 -0
  76. package/esm2020/core/types/flow-customization.types.mjs +1 -1
  77. package/esm2020/core/types/flow-state.types.mjs +1 -1
  78. package/esm2020/core/types/index.mjs +1 -2
  79. package/esm2020/core/utils/index.mjs +3 -3
  80. package/esm2020/core/utils/transaction-item.utils.mjs +60 -0
  81. package/esm2020/core/utils/transaction-item.worker.mjs +16 -0
  82. package/esm2020/src/components/flow-header/flow-header.component.mjs +8 -12
  83. package/esm2020/src/components/guided-selling/guided-selling.component.mjs +8 -12
  84. package/esm2020/src/flow-routing.module.mjs +12 -41
  85. package/esm2020/src/flow.component.mjs +5 -5
  86. package/esm2020/src/guards/flow.guard.mjs +13 -14
  87. package/esm2020/src/guards/product-unload.guard.mjs +7 -9
  88. package/esm2020/src/index.mjs +1 -3
  89. package/esm2020/src/pages/assets/assets.component.mjs +8 -9
  90. package/esm2020/src/pages/catalog/catalog.component.mjs +8 -9
  91. package/esm2020/src/pages/debug/debug.component.mjs +14 -23
  92. package/esm2020/src/pages/product/product.component.mjs +12 -89
  93. package/esm2020/src/pages/product/product.module.mjs +5 -5
  94. package/esm2020/src/pages/record-not-found/record-not-found.component.mjs +5 -6
  95. package/esm2020/src/pages/shopping-cart/shopping-cart.component.mjs +8 -9
  96. package/esm2020/src/resolvers/flow.resolver.mjs +10 -18
  97. package/esm2020/src/resolvers/pcm-model.resolver.mjs +12 -0
  98. package/esm2020/src/resolvers/sales-transaction.resolver.mjs +64 -0
  99. package/esm2020/src/resolvers/ui-definition.resolver.mjs +42 -0
  100. package/esm2020/src/services/flow-dialog.service.mjs +8 -8
  101. package/esm2020/src/services/flow-router.service.mjs +16 -33
  102. package/esm2020/src/services/flow.service.mjs +13 -54
  103. package/esm2020/src/types/index.mjs +2 -3
  104. package/esm2020/src/types/route.types.mjs +1 -1
  105. package/fesm2015/veloceapps-sdk-cms.mjs +162 -309
  106. package/fesm2015/veloceapps-sdk-cms.mjs.map +1 -1
  107. package/fesm2015/veloceapps-sdk-core.mjs +812 -1657
  108. package/fesm2015/veloceapps-sdk-core.mjs.map +1 -1
  109. package/fesm2015/veloceapps-sdk.mjs +188 -801
  110. package/fesm2015/veloceapps-sdk.mjs.map +1 -1
  111. package/fesm2020/veloceapps-sdk-cms.mjs +158 -300
  112. package/fesm2020/veloceapps-sdk-cms.mjs.map +1 -1
  113. package/fesm2020/veloceapps-sdk-core.mjs +875 -1741
  114. package/fesm2020/veloceapps-sdk-core.mjs.map +1 -1
  115. package/fesm2020/veloceapps-sdk.mjs +188 -795
  116. package/fesm2020/veloceapps-sdk.mjs.map +1 -1
  117. package/package.json +1 -1
  118. package/src/components/flow-header/flow-header.component.d.ts +3 -3
  119. package/src/components/guided-selling/guided-selling.component.d.ts +3 -3
  120. package/src/flow-routing.module.d.ts +1 -2
  121. package/src/flow.component.d.ts +2 -2
  122. package/src/guards/product-unload.guard.d.ts +5 -6
  123. package/src/index.d.ts +0 -2
  124. package/src/pages/assets/assets.component.d.ts +3 -3
  125. package/src/pages/catalog/catalog.component.d.ts +3 -3
  126. package/src/pages/debug/debug.component.d.ts +2 -5
  127. package/src/pages/product/product.component.d.ts +5 -14
  128. package/src/pages/product/product.module.d.ts +1 -1
  129. package/src/pages/record-not-found/record-not-found.component.d.ts +2 -3
  130. package/src/pages/shopping-cart/shopping-cart.component.d.ts +3 -3
  131. package/src/resolvers/flow.resolver.d.ts +5 -6
  132. package/src/resolvers/pcm-model.resolver.d.ts +3 -0
  133. package/src/resolvers/sales-transaction.resolver.d.ts +18 -0
  134. package/src/resolvers/ui-definition.resolver.d.ts +3 -0
  135. package/src/services/flow-dialog.service.d.ts +5 -4
  136. package/src/services/flow-router.service.d.ts +4 -6
  137. package/src/services/flow.service.d.ts +2 -7
  138. package/src/types/index.d.ts +1 -2
  139. package/src/types/route.types.d.ts +0 -5
  140. package/cms/plugins/configuration.plugin.d.ts +0 -23
  141. package/cms/types/configuration.types.d.ts +0 -21
  142. package/core/modules/configuration/helpers.d.ts +0 -6
  143. package/core/modules/configuration/services/runtime-context.service.d.ts +0 -12
  144. package/core/modules/flow-configuration/services/flow-update.service.d.ts +0 -13
  145. package/core/modules/flow-configuration/types/update.types.d.ts +0 -12
  146. package/core/services/context.service.d.ts +0 -23
  147. package/core/services/quote-draft.service.d.ts +0 -50
  148. package/core/types/runtime.types.d.ts +0 -30
  149. package/core/utils/line-item.utils.d.ts +0 -25
  150. package/core/utils/line-item.worker.d.ts +0 -9
  151. package/esm2020/cms/plugins/configuration.plugin.mjs +0 -109
  152. package/esm2020/cms/types/configuration.types.mjs +0 -2
  153. package/esm2020/core/modules/configuration/helpers.mjs +0 -73
  154. package/esm2020/core/modules/configuration/services/runtime-context.service.mjs +0 -45
  155. package/esm2020/core/modules/flow-configuration/services/flow-update.service.mjs +0 -138
  156. package/esm2020/core/modules/flow-configuration/types/update.types.mjs +0 -2
  157. package/esm2020/core/services/context.service.mjs +0 -91
  158. package/esm2020/core/services/quote-draft.service.mjs +0 -192
  159. package/esm2020/core/types/runtime.types.mjs +0 -16
  160. package/esm2020/core/utils/line-item.utils.mjs +0 -187
  161. package/esm2020/core/utils/line-item.worker.mjs +0 -19
  162. package/esm2020/src/guards/context.guard.mjs +0 -91
  163. package/esm2020/src/guards/index.mjs +0 -2
  164. package/esm2020/src/pages/remote/remote.component.mjs +0 -342
  165. package/esm2020/src/pages/remote/remote.module.mjs +0 -20
  166. package/esm2020/src/pages/remote/remote.types.mjs +0 -2
  167. package/esm2020/src/resolvers/quote.resolver.mjs +0 -82
  168. package/esm2020/src/types/context-route.types.mjs +0 -2
  169. package/esm2020/src/types/metrics.types.mjs +0 -2
  170. package/esm2020/src/utils/flow.utils.mjs +0 -25
  171. package/esm2020/src/utils/index.mjs +0 -2
  172. package/src/guards/context.guard.d.ts +0 -19
  173. package/src/guards/index.d.ts +0 -1
  174. package/src/pages/remote/remote.component.d.ts +0 -46
  175. package/src/pages/remote/remote.module.d.ts +0 -10
  176. package/src/pages/remote/remote.types.d.ts +0 -4
  177. package/src/resolvers/quote.resolver.d.ts +0 -19
  178. package/src/types/context-route.types.d.ts +0 -5
  179. package/src/types/metrics.types.d.ts +0 -5
  180. package/src/utils/flow.utils.d.ts +0 -8
  181. package/src/utils/index.d.ts +0 -1
@@ -1,5 +1,3 @@
1
- import { CustomizationChanges } from '@veloceapps/core';
2
- import { IntegrationAction } from '@veloceapps/sdk/core';
3
1
  export declare namespace FlowAction {
4
2
  const FLOW_CONFIGURE_PRODUCT = "[FLOW]_CONFIGURE_PRODUCT";
5
3
  const FLOW_NAVIGATE_BACK = "[FLOW]_NAVIGATE_BACK";
@@ -16,35 +14,84 @@ export declare namespace FlowAction {
16
14
  const SUBMIT_GUIDED_SELLING = "[FLOW]_SUBMIT_GUIDED_SELLING";
17
15
  const CLOSE_GUIDED_SELLING = "[FLOW]_CLOSE_GUIDED_SELLING";
18
16
  const OPEN_DIALOG = "[FLOW]_OPEN_DIALOG";
19
- const ConfigureProductAction: ({ lineItemId, productId, }: {
20
- lineItemId?: string | undefined;
17
+ const ConfigureProductAction: ({ transactionItemId, productId, }: {
18
+ transactionItemId?: string | undefined;
21
19
  productId?: string | undefined;
22
- }) => IntegrationAction;
23
- const NavigateBackAction: () => IntegrationAction;
24
- const NavigateToAction: (path: string, productId?: string, lineItemId?: string) => IntegrationAction;
25
- const NavigateToCatalogAction: () => IntegrationAction;
26
- const NavigateToShoppingCartAction: () => IntegrationAction;
27
- const ApplyProductConfigurationAction: () => IntegrationAction;
28
- const RemoteApplyAction: () => IntegrationAction;
29
- const RemoteCancelAction: () => IntegrationAction;
20
+ }) => {
21
+ type: string;
22
+ payload: {
23
+ transactionItemId: string | undefined;
24
+ productId: string | undefined;
25
+ };
26
+ };
27
+ const NavigateBackAction: () => {
28
+ type: string;
29
+ };
30
+ const NavigateToAction: (path: string, productId?: string, transactionItemId?: string) => {
31
+ type: string;
32
+ payload: {
33
+ path: string;
34
+ productId: string | undefined;
35
+ transactionItemId: string | undefined;
36
+ };
37
+ };
38
+ const NavigateToCatalogAction: () => {
39
+ type: string;
40
+ };
41
+ const NavigateToShoppingCartAction: () => {
42
+ type: string;
43
+ };
44
+ const ApplyProductConfigurationAction: () => {
45
+ type: string;
46
+ };
47
+ const RemoteApplyAction: () => {
48
+ type: string;
49
+ };
50
+ const RemoteCancelAction: () => {
51
+ type: string;
52
+ };
30
53
  const SwitchObjectAction: (payload: {
31
54
  id: string;
32
- }) => IntegrationAction;
55
+ }) => {
56
+ type: string;
57
+ payload: {
58
+ id: string;
59
+ };
60
+ };
33
61
  const OpenGuidedSelling: (payload: {
34
62
  guidedSellingId: string;
35
- }) => IntegrationAction;
63
+ }) => {
64
+ type: string;
65
+ payload: {
66
+ guidedSellingId: string;
67
+ };
68
+ };
36
69
  const CloseGuidedSelling: (payload?: {
37
70
  keepState?: boolean;
38
- }) => IntegrationAction;
71
+ }) => {
72
+ type: string;
73
+ payload: {
74
+ keepState?: boolean | undefined;
75
+ } | undefined;
76
+ };
39
77
  const SubmitGuidedSelling: (payload: {
40
78
  result: Record<string, any>;
41
- }) => IntegrationAction;
42
- const OpenDialog: (dialog: string) => IntegrationAction;
79
+ }) => {
80
+ type: string;
81
+ payload: {
82
+ result: Record<string, any>;
83
+ };
84
+ };
85
+ const OpenDialog: (dialog: string) => {
86
+ type: string;
87
+ payload: {
88
+ dialog: string;
89
+ };
90
+ };
43
91
  }
44
92
  export declare namespace CmsAction {
45
93
  const GO_TO_PAGE = "[CMS]_GO_TO_PAGE";
46
94
  const UPDATE_CUSTOMIZATION = "[CMS]_UPDATE_CUSTOMIZATION";
47
- const EMIT_CUSTOMIZATION_CHANGES = "[CMS]_EMIT_CUSTOMIZATION_CHANGES";
48
95
  const SHOW_OVERLAY = "[CMS]_SHOW_OVERLAY";
49
96
  const HIDE_OVERLAY = "[CMS]_HIDE_OVERLAY";
50
97
  const HIDE_ALL_OVERLAYS = "[CMS]_HIDE_ALL_OVERLAYS";
@@ -53,37 +100,53 @@ export declare namespace CmsAction {
53
100
  *
54
101
  * @param pageName name of the page
55
102
  */
56
- const GoToPage: (pageName: string) => IntegrationAction;
103
+ const GoToPage: (pageName: string) => {
104
+ type: string;
105
+ payload: {
106
+ pageName: string;
107
+ };
108
+ };
57
109
  /**
58
110
  * Update UI definition customization state
59
111
  *
60
112
  * @param pageName name of the page
61
113
  */
62
- const UpdateCustomization: (value: any) => IntegrationAction;
63
- /**
64
- * Emit customization page changes
65
- *
66
- * @param changes - object with customization page changes
67
- */
68
- const EmitCustomizationChanges: (changes: CustomizationChanges) => IntegrationAction;
114
+ const UpdateCustomization: (value: any) => {
115
+ type: string;
116
+ payload: {
117
+ value: any;
118
+ };
119
+ };
69
120
  /**
70
121
  * Show an Overlay on the selected page
71
122
  *
72
123
  * @param name - name of the overlay
73
124
  * @returns void
74
125
  */
75
- const ShowOverlay: (name: string) => IntegrationAction;
126
+ const ShowOverlay: (name: string) => {
127
+ type: string;
128
+ payload: {
129
+ name: string;
130
+ };
131
+ };
76
132
  /**
77
133
  * Hide an Overlay on the selected page
78
134
  *
79
135
  * @param name - name of the overlay
80
136
  * @returns void
81
137
  */
82
- const HideOverlay: (name: string) => IntegrationAction;
138
+ const HideOverlay: (name: string) => {
139
+ type: string;
140
+ payload: {
141
+ name: string;
142
+ };
143
+ };
83
144
  /**
84
145
  * Hide all Overlays on the selected page
85
146
  *
86
147
  * @returns void
87
148
  */
88
- const HideAllOverlays: () => IntegrationAction;
149
+ const HideAllOverlays: () => {
150
+ type: string;
151
+ };
89
152
  }
@@ -1,36 +1,29 @@
1
- import { ChangeDetectorRef, ElementRef, Injector, OnDestroy, OnInit, ViewContainerRef } from '@angular/core';
2
- import { ConfigurationService } from '@veloceapps/sdk/core';
1
+ import { ChangeDetectorRef, OnDestroy, OnInit, ViewContainerRef } from '@angular/core';
3
2
  import { RuntimeService } from '../../modules/runtime/services/runtime.service';
4
3
  import { ElementContextService } from '../../services/element-context.service';
5
4
  import { IOProviderService } from '../../services/io-provider.service';
6
5
  import { ElementMetadata } from '../../types/common.types';
7
6
  import * as i0 from "@angular/core";
8
7
  export declare class ElementRendererComponent implements OnInit, OnDestroy {
9
- private parentInjector;
10
8
  private runtimeService;
11
9
  private elementContext;
12
10
  private ioProviderService;
13
- private configurationService;
14
- private elementRef;
15
11
  private cdr;
16
12
  el?: ViewContainerRef;
17
13
  meta: ElementMetadata;
18
14
  private type?;
19
15
  private refs;
20
16
  private destroy$;
21
- constructor(parentInjector: Injector, runtimeService: RuntimeService, elementContext: ElementContextService, ioProviderService: IOProviderService, configurationService: ConfigurationService, elementRef: ElementRef, cdr: ChangeDetectorRef);
17
+ constructor(runtimeService: RuntimeService, elementContext: ElementContextService, ioProviderService: IOProviderService, cdr: ChangeDetectorRef);
22
18
  ngOnInit(): void;
23
19
  ngOnDestroy(): void;
24
20
  private createComponents;
25
21
  private createFromPath;
26
- private getModelComponent;
27
- private createFromLineItem;
28
22
  private processChildren;
29
- private getParentLineItem$;
30
23
  private createComponent;
31
24
  private updateComponent;
32
25
  private destroyComponent;
33
26
  private destroyComponents;
34
- static ɵfac: i0.ɵɵFactoryDeclaration<ElementRendererComponent, [{ skipSelf: true; }, null, null, null, null, null, null]>;
27
+ static ɵfac: i0.ɵɵFactoryDeclaration<ElementRendererComponent, never>;
35
28
  static ɵcmp: i0.ɵɵComponentDeclaration<ElementRendererComponent, "vl-cms-element-renderer", never, { "meta": "meta"; }, {}, never, never, false, never>;
36
29
  }
@@ -1,8 +1,8 @@
1
1
  import { OnDestroy, OnInit } from '@angular/core';
2
2
  import { ToastService } from '@veloceapps/components';
3
3
  import { UIDefinition } from '@veloceapps/core';
4
- import { ConfigurationStateService, IntegrationState } from '@veloceapps/sdk/core';
5
- import { BehaviorSubject, Observable } from 'rxjs';
4
+ import { IntegrationState } from '@veloceapps/sdk/core';
5
+ import { BehaviorSubject } from 'rxjs';
6
6
  import { RuntimeService } from '../../modules/runtime/services/runtime.service';
7
7
  import { ElementMetadata } from '../../types/common.types';
8
8
  import { CMSPreviewConfig } from './preview.types';
@@ -13,20 +13,19 @@ interface State {
13
13
  }
14
14
  export declare class PreviewComponent implements OnInit, OnDestroy {
15
15
  private runtimeService;
16
- private configurationState;
17
16
  private toastService;
18
17
  private integrationState;
19
18
  uiDefinition?: UIDefinition;
20
19
  config?: CMSPreviewConfig;
21
20
  state$: BehaviorSubject<State>;
22
- elements$: Observable<ElementMetadata[]>;
21
+ elements$: BehaviorSubject<ElementMetadata[]>;
23
22
  private destroy$;
24
- constructor(runtimeService: RuntimeService, configurationState: ConfigurationStateService, toastService: ToastService, integrationState: IntegrationState);
23
+ constructor(runtimeService: RuntimeService, toastService: ToastService, integrationState: IntegrationState);
25
24
  ngOnInit(): void;
26
25
  ngOnDestroy(): void;
27
26
  trackBy(_: number, el: ElementMetadata): ElementMetadata;
28
27
  private startPreview;
29
- private getPages$;
28
+ private getElements$;
30
29
  static ɵfac: i0.ɵɵFactoryDeclaration<PreviewComponent, never>;
31
30
  static ɵcmp: i0.ɵɵComponentDeclaration<PreviewComponent, "vl-cms-preview", never, { "uiDefinition": "uiDefinition"; "config": "config"; }, {}, never, never, false, never>;
32
31
  }
@@ -13,10 +13,6 @@ export interface CMSPreviewConfig {
13
13
  * When `true`, preview renders settings page (element with `type: CUSTOMIZATION_PAGE`)
14
14
  */
15
15
  customizationMode?: boolean;
16
- /**
17
- * When `true`, preview component does not clear configuration state on destroy
18
- */
19
- persistConfigurationState?: boolean;
20
16
  /**
21
17
  * Custom initialization function which will be executed before starting a preview
22
18
  */
@@ -2,7 +2,6 @@ import { ElementMetadata } from '../types/common.types';
2
2
  import * as i0 from "@angular/core";
3
3
  export declare class ElementContextService {
4
4
  metadata?: ElementMetadata;
5
- parentModelId?: string;
6
5
  static ɵfac: i0.ɵɵFactoryDeclaration<ElementContextService, never>;
7
6
  static ɵprov: i0.ɵɵInjectableDeclaration<ElementContextService>;
8
7
  }
@@ -29,6 +29,8 @@ export interface ElementModel {
29
29
  */
30
30
  path?: string;
31
31
  /**
32
+ * @deprecated
33
+ * To be removed!!!
32
34
  * Used only when `UIDefinitionType = CONFIGURATION`.
33
35
  */
34
36
  lineItem?: string;
@@ -1,6 +1,5 @@
1
1
  export * from '../modules/runtime/types/compilation.types';
2
2
  export * from './common.types';
3
- export * from './configuration.types';
4
3
  export * from './elements.types';
5
4
  export * from './layouts.types';
6
5
  export * from './pages.types';
@@ -1,4 +1,3 @@
1
- import { ElementMetadata, ElementPath, PathBlock } from '../types';
2
- export declare const parseBoundPath: (path: string) => PathBlock[];
1
+ import { ElementMetadata, ElementPath } from '../types';
3
2
  export declare const parsePath: (path: string) => ElementPath;
4
3
  export declare const getAbsolutePath: (elements: ElementMetadata[], subject: ElementMetadata, path: ElementPath) => string | undefined;
@@ -1,10 +1,11 @@
1
1
  import { DataSource } from '@angular/cdk/collections';
2
2
  import * as angularCore from '@angular/core';
3
3
  import * as angularForms from '@angular/forms';
4
- import { CatalogApiService, ConfigurationSettingsApiService, ContractedPriceApiService, DeltaApiService, DocumentAttachmentApiService, GuidedSellingApiService, PicklistsApiService, PriceApiService, QuoteApiService, RampApiService, SalesforceApiService, ShoppingCartSettingsApiService } from '@veloceapps/api';
4
+ import { ContractedPriceApiService } from '@veloceapps/api';
5
+ import { CatalogApiService, ConfigurationSettingsApiService, GuidedSellingApiService, DocumentAttachmentApiService, SalesforceApiService, SalesTransactionApiService, ShoppingCartSettingsApiService } from '@veloceapps/api/v2';
5
6
  import { ToastService, ToastType } from '@veloceapps/components';
6
- import { ConfigurationContextMode, Operator, Predicate, TokenInfoService, parseJsonSafely, parseJwt } from '@veloceapps/core';
7
- import { ActionCodePipe, ConfigurationService, ConfigurationStateService, ContextService, DatePipe, FlowConfigurationService, FlowStateConfigurationService, FlowStateService, IntegrationState, LineItemWorker, NumberPipe, PricePipe, ProductImagesService, QuoteDraftService, RuntimeSettingsService } from '@veloceapps/sdk/core';
7
+ import { Operator, parseJsonSafely, parseJwt, Predicate, TokenInfoService, UITemplateType } from '@veloceapps/core';
8
+ import { ActionCodePipe, ConfigurationService, ConfigurationStateService, DatePipe, filterSuccessfulExecute, FlowConfigurationService, FlowInfoService, FlowStateConfigurationService, FlowStateService, IntegrationState, NumberPipe, PricePipe, ProductImagesService, RuntimeSettingsService, SalesTransactionService, TransactionItemWorker } from '@veloceapps/sdk/core';
8
9
  import lodash from 'lodash';
9
10
  import * as rxjs from 'rxjs';
10
11
  import * as rxjsOperators from 'rxjs/operators';
@@ -17,73 +18,49 @@ export declare const vendorMap: {
17
18
  Operator: typeof Operator;
18
19
  Predicate: typeof Predicate;
19
20
  parseJsonSafely: typeof parseJsonSafely;
20
- ConfigurationContextMode: typeof ConfigurationContextMode;
21
21
  parseJwt: typeof parseJwt;
22
22
  TokenInfoService: typeof TokenInfoService;
23
+ UITemplateType: typeof UITemplateType;
23
24
  };
24
25
  '@veloceapps/components': {
25
26
  ToastService: typeof ToastService;
26
27
  ToastType: typeof ToastType;
27
28
  };
28
29
  '@veloceapps/api': {
29
- SalesforceApiService: typeof SalesforceApiService;
30
- QuoteApiService: typeof QuoteApiService;
31
- DocumentAttachmentApiService: typeof DocumentAttachmentApiService;
32
- RampApiService: typeof RampApiService;
30
+ ContractedPriceApiService: typeof ContractedPriceApiService;
31
+ };
32
+ '@veloceapps/api/v2': {
33
33
  CatalogApiService: typeof CatalogApiService;
34
- DeltaApiService: typeof DeltaApiService;
35
- PicklistsApiService: typeof PicklistsApiService;
36
- PriceApiService: typeof PriceApiService;
37
- ShoppingCartSettingsApiService: typeof ShoppingCartSettingsApiService;
38
34
  ConfigurationSettingsApiService: typeof ConfigurationSettingsApiService;
35
+ DocumentAttachmentApiService: typeof DocumentAttachmentApiService;
39
36
  GuidedSellingApiService: typeof GuidedSellingApiService;
40
- ContractedPriceApiService: typeof ContractedPriceApiService;
37
+ SalesforceApiService: typeof SalesforceApiService;
38
+ SalesTransactionApiService: typeof SalesTransactionApiService;
39
+ ShoppingCartSettingsApiService: typeof ShoppingCartSettingsApiService;
41
40
  };
42
41
  '@veloceapps/sdk/core': {
43
- findLineItem: (id: string, lineItems: import("@veloceapps/core").LineItem[]) => import("@veloceapps/core").LineItem | undefined;
44
- findLineItemWithComparator: (lineItems: import("@veloceapps/core").LineItem[], comparator: (li: import("@veloceapps/core").LineItem) => boolean) => import("@veloceapps/core").LineItem | undefined;
45
- insertLineItem: (lineItem: import("@veloceapps/core").LineItem, parentId: string, toInsert: import("@veloceapps/core").LineItem) => import("@veloceapps/core").LineItem;
46
- removeLineItem: (lineItem: import("@veloceapps/core").LineItem, idToRemove: string) => import("@veloceapps/core").LineItem;
47
- replaceLineItem: (lineItem: import("@veloceapps/core").LineItem, replaceTo: import("@veloceapps/core").LineItem, skipCardinalityCalculation?: boolean | undefined) => import("@veloceapps/core").LineItem;
48
- recalculateCardinalityVariables: (original: import("@veloceapps/core").LineItem, updated: import("@veloceapps/core").LineItem) => import("@veloceapps/core").LineItem;
49
- mapAttributes: (attributes: import("@veloceapps/core").Attribute[]) => lodash.Dictionary<any>;
50
- getAttributes: (attributes: import("@veloceapps/core").Attribute[], names?: string[] | undefined) => import("@veloceapps/core").Attribute[];
51
- upsertAttributes: (originalAttributes: import("@veloceapps/core").Attribute[], attributesToUpsert: import("@veloceapps/core").NewAttribute[]) => import("@veloceapps/core").Attribute[];
52
- patchAttributes: (rootLineItem: import("@veloceapps/core").LineItem, id: string, attrs: import("@veloceapps/core").NewAttribute[], skipCardinalityCalculation?: boolean | undefined) => import("@veloceapps/core").LineItem;
53
- getAttributeValue: (attributes: import("@veloceapps/core").Attribute[], name: string) => any;
54
- generateLineItem: (port: string, type: string, parentId: string, attributes?: import("@veloceapps/core").NewAttribute[] | undefined, lineItems?: import("@veloceapps/core").LineItem[] | undefined) => import("@veloceapps/core").LineItem;
55
- getRecommendedPrices: (portDomain: import("@veloceapps/core").PortDomain, type: string) => {
56
- net: number;
57
- list: number;
58
- };
59
- getOriginParent: (lineItems: import("@veloceapps/core").LineItem[], currentLineItem: import("@veloceapps/core").LineItem) => import("@veloceapps/core").LineItem | undefined;
60
- assetPredicateFn: (lineItem: import("@veloceapps/core").LineItem, assetId?: string | undefined) => boolean;
61
- multiplyLineItems: (lineItem: import("@veloceapps/core").LineItem, qty: number, split: boolean) => import("@veloceapps/core").LineItem[];
62
- isTechnicalAttribute: (name: string) => boolean;
63
- filterOutTechnicalAttributes: <T_1 extends {
64
- name: string;
65
- }>(attributes: T_1[]) => T_1[];
66
42
  ConfigurationService: typeof ConfigurationService;
67
43
  ConfigurationStateService: typeof ConfigurationStateService;
68
- QuoteDraftService: typeof QuoteDraftService;
44
+ filterSuccessfulExecute: typeof filterSuccessfulExecute;
45
+ FlowInfoService: typeof FlowInfoService;
69
46
  FlowConfigurationService: typeof FlowConfigurationService;
70
47
  IntegrationState: typeof IntegrationState;
71
48
  FlowStateService: typeof FlowStateService;
72
49
  FlowStateConfigurationService: typeof FlowStateConfigurationService;
73
- LineItemWorker: typeof LineItemWorker;
50
+ TransactionItemWorker: typeof TransactionItemWorker;
74
51
  ProductImagesService: typeof ProductImagesService;
75
- ContextService: typeof ContextService;
76
52
  RuntimeSettingsService: typeof RuntimeSettingsService;
77
53
  ActionCodePipe: typeof ActionCodePipe;
78
54
  DatePipe: typeof DatePipe;
79
55
  NumberPipe: typeof NumberPipe;
80
56
  PricePipe: typeof PricePipe;
57
+ SalesTransactionService: typeof SalesTransactionService;
81
58
  };
82
59
  '@veloceapps/sdk/cms': {
83
60
  TemplatesService: typeof TemplatesService;
84
61
  IntegrationState: typeof IntegrationState;
85
62
  ResourcesService: typeof ResourcesService;
86
- cmsInject: <T_2 = unknown>(token: string) => T_2;
63
+ cmsInject: <T_1 = unknown>(token: string) => T_1;
87
64
  FlowAction: typeof cmsActions.FlowAction;
88
65
  CmsAction: typeof cmsActions.CmsAction;
89
66
  DEFAULT_PLUGINS_TOKEN: angularCore.InjectionToken<typeof import("./engine/models/plugin").Plugin[]>;
package/core/index.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  export * from './core.module';
2
2
  export * from './directives';
3
3
  export * from './modules';
4
+ export * from './operators';
4
5
  export * from './pipes';
5
6
  export * from './services';
6
7
  export * from './types';
7
8
  export * from './utils';
8
- export * as lineItemUtils from './utils/line-item.utils';
@@ -1,6 +1,5 @@
1
- export * from './helpers';
2
1
  export * from './services/configuration-runtime.service';
3
- export * from './services/configuration.service';
4
2
  export * from './services/configuration-state.service';
5
- export * from './types/configuration-runtime.types';
6
- export * from './types/configuration.types';
3
+ export * from './services/configuration.service';
4
+ export * from './services/test-mode-configuration.service';
5
+ export * from './types';
@@ -1,28 +1,17 @@
1
- import { ConfigurationApiService } from '@veloceapps/api';
2
- import { RuntimeModel, UIDefinitionContainer, UIDefinitionProps } from '@veloceapps/core';
1
+ import { PCMApiService } from '@veloceapps/api/v2';
2
+ import { PCMModel, UIDefinitionContainer, UIDefinitionProps } from '@veloceapps/core';
3
3
  import { Observable } from 'rxjs';
4
- import { ContextService } from '../../../services';
5
- import { RuntimeContext } from '../../../types';
6
4
  import { RuntimeInitializationProps } from '../types/configuration-runtime.types';
7
- import { RuntimeContextService } from './runtime-context.service';
8
5
  import * as i0 from "@angular/core";
9
6
  export declare class ConfigurationRuntimeService {
10
- private apiService;
11
- private contextService;
12
- private runtimeContextService;
13
- private _runtimeContext?;
14
- private _isInitialized;
7
+ private pcmApiService;
8
+ uiDefinitionContainer: UIDefinitionContainer | null;
15
9
  initializationProps?: RuntimeInitializationProps;
16
- uiDefinitionProperties: UIDefinitionProps;
17
- constructor(apiService: ConfigurationApiService, contextService: ContextService, runtimeContextService: RuntimeContextService);
10
+ pcmModel?: PCMModel;
11
+ constructor(pcmApiService: PCMApiService);
12
+ get uiDefinitionProps(): UIDefinitionProps;
18
13
  reset(): void;
19
- initTestMode(uiDefinitionContainer: UIDefinitionContainer): Observable<RuntimeContext>;
20
- init(props: RuntimeInitializationProps): Observable<RuntimeContext>;
21
- overrideUIDefinition(uiDefinitionContainer: UIDefinitionContainer): void;
22
- private id15to18;
23
- get isInitialized(): boolean;
24
- get runtimeModel(): RuntimeModel | undefined;
25
- get runtimeContext(): RuntimeContext | undefined;
14
+ init$(props: RuntimeInitializationProps): Observable<PCMModel>;
26
15
  static ɵfac: i0.ɵɵFactoryDeclaration<ConfigurationRuntimeService, never>;
27
16
  static ɵprov: i0.ɵɵInjectableDeclaration<ConfigurationRuntimeService>;
28
17
  }
@@ -1,8 +1,9 @@
1
- import { FlowStateApiService, QuoteApiService, SaveQuoteResponse } from '@veloceapps/api';
1
+ import { FlowStateApiService } from '@veloceapps/api';
2
+ import { SalesTransactionApiService, SalesTransactionUpsertResponse } from '@veloceapps/api/v2';
2
3
  import { ToastService } from '@veloceapps/components';
3
4
  import { FlowStateExecutionRequest, FlowStateExecutionResult, FlowStateSelectorResponse } from '@veloceapps/core';
4
5
  import { BehaviorSubject, Observable, Subject } from 'rxjs';
5
- import { FlowInfoService, FlowStateService, QuoteDraftService } from '../../../services';
6
+ import { FlowInfoService, FlowStateService, SalesTransactionService } from '../../../services';
6
7
  import { FlowStateSubscriptionOptions } from '../../../types/flow-state.types';
7
8
  import { FlowConfigurationService } from '../../flow-configuration';
8
9
  import { ConfigurationRuntimeService } from './configuration-runtime.service';
@@ -11,13 +12,13 @@ import * as i0 from "@angular/core";
11
12
  export declare class ConfigurationStateService {
12
13
  private configurationRuntimeService;
13
14
  private configurationService;
14
- private quoteDraftService;
15
- private toastService;
16
15
  private flowStateService;
17
16
  private flowInfoService;
18
17
  private flowConfigurationService;
19
18
  private flowStateApiService;
20
- private quoteApiService;
19
+ private salesTransactionService;
20
+ private salesTransactionApiService;
21
+ private toastService;
21
22
  isInitialized$: BehaviorSubject<boolean>;
22
23
  canceledConfiguration$: Subject<void>;
23
24
  private readonly NOT_INITIALIZED;
@@ -31,7 +32,7 @@ export declare class ConfigurationStateService {
31
32
  private statefulRequestStream$;
32
33
  private statefulExecutionRequest$;
33
34
  private statelessExecutionRequest$;
34
- constructor(configurationRuntimeService: ConfigurationRuntimeService, configurationService: ConfigurationService, quoteDraftService: QuoteDraftService, toastService: ToastService, flowStateService: FlowStateService, flowInfoService: FlowInfoService, flowConfigurationService: FlowConfigurationService, flowStateApiService: FlowStateApiService, quoteApiService: QuoteApiService);
35
+ constructor(configurationRuntimeService: ConfigurationRuntimeService, configurationService: ConfigurationService, flowStateService: FlowStateService, flowInfoService: FlowInfoService, flowConfigurationService: FlowConfigurationService, flowStateApiService: FlowStateApiService, salesTransactionService: SalesTransactionService, salesTransactionApiService: SalesTransactionApiService, toastService: ToastService);
35
36
  get isExecutionInProgress$(): Observable<boolean>;
36
37
  init$(): Observable<void>;
37
38
  cleanup(): void;
@@ -39,11 +40,10 @@ export declare class ConfigurationStateService {
39
40
  dispatch$(actionName: string, inputData?: unknown): Observable<FlowStateExecutionResult>;
40
41
  select$<Response = unknown>(selectorName: string, inputData?: unknown): Observable<FlowStateSelectorResponse<Response>>;
41
42
  subscribe$<Response = unknown>(selectorName: string, inputData?: unknown, options?: FlowStateSubscriptionOptions): Observable<FlowStateSelectorResponse<Response>>;
42
- saveConfiguration(flow?: boolean): Observable<SaveQuoteResponse>;
43
+ saveConfiguration(): Observable<SalesTransactionUpsertResponse>;
43
44
  cancelConfiguration(): Observable<void>;
44
45
  private get isStatefulConfiguration();
45
46
  private initStateful$;
46
- private initStateless$;
47
47
  private execToRequest;
48
48
  private handleSelectorsResponse;
49
49
  private executeRequest$;
@@ -1,60 +1,36 @@
1
- import { ConfigurationApiService } from '@veloceapps/api';
2
- import { Charge, CompiledPricePlan, ConfigurationContext, ConfigurationRequest, ConfigurePrice, LineItem, PatchLineItemOptions, RuntimeModel } from '@veloceapps/core';
3
- import { Dictionary } from 'lodash';
1
+ import { OrchestrationsApiService } from '@veloceapps/api/v2';
2
+ import { PCMModel, SalesTransaction, SalesTransactionItem, TransactionContext } from '@veloceapps/core';
4
3
  import { MessageService } from 'primeng/api';
5
- import { DialogService } from 'primeng/dynamicdialog';
6
4
  import { Observable } from 'rxjs';
7
- import { ContextService } from '../../../services/context.service';
8
- import { QuoteDraftService } from '../../../services/quote-draft.service';
9
- import { RuntimeSettingsService } from '../../../services/runtime-settings.service';
10
- import { RuntimeContext } from '../../../types';
5
+ import { FlowInfoService, SalesTransactionService } from '../../../services';
11
6
  import { ExternalConfigurationProps, GuidedSellingSubmitData } from '../types/configuration.types';
12
7
  import { ConfigurationRuntimeService } from './configuration-runtime.service';
13
8
  import * as i0 from "@angular/core";
14
9
  export declare class ConfigurationService {
15
- private quoteDraftService;
16
- private runtimeService;
17
- private contextService;
18
- private configurationApiService;
10
+ private flowInfoService;
19
11
  private messageService;
20
- private dialogService;
21
- private runtimeSettings;
22
- private mode;
23
- private configurableRamp;
24
- private configurationState;
25
- private previousConfigurationState;
26
- private isLoadingSubj$;
12
+ private configurationRuntimeService;
13
+ private salesTransactionService;
14
+ private orchestrationsApiService;
27
15
  isLoading$: Observable<boolean>;
28
16
  hasUnsavedChanges: boolean;
29
- constructor(quoteDraftService: QuoteDraftService, runtimeService: ConfigurationRuntimeService, contextService: ContextService, configurationApiService: ConfigurationApiService, messageService: MessageService, dialogService: DialogService, runtimeSettings: RuntimeSettingsService);
17
+ private configurationStateSubj$;
18
+ private previousConfigurationStateSubj$;
19
+ private isLoadingSubj$;
20
+ get state$(): Observable<TransactionContext>;
21
+ get state(): TransactionContext | null;
22
+ get previousState(): TransactionContext | null;
23
+ get root$(): Observable<SalesTransactionItem>;
24
+ get root(): SalesTransactionItem | null;
25
+ constructor(flowInfoService: FlowInfoService, messageService: MessageService, configurationRuntimeService: ConfigurationRuntimeService, salesTransactionService: SalesTransactionService, orchestrationsApiService: OrchestrationsApiService);
30
26
  reset(): void;
31
- patch$(lineItem: LineItem, options?: PatchLineItemOptions): Observable<LineItem>;
32
- patch(lineItem: LineItem, options?: PatchLineItemOptions): void;
33
- setConfigurableRamp(lineItem: LineItem): void;
34
- get(): Observable<LineItem | undefined>;
35
- getSnapshot(): LineItem | undefined;
36
- getRuntimeModel(): RuntimeModel;
37
- getRuntimeContext(): RuntimeContext;
38
- get state$(): Observable<ConfigurePrice | null>;
39
- get stateSnapshot(): ConfigurePrice | null;
40
- get previousStateSnapshot(): ConfigurePrice | null;
41
- get contextSnapshot(): ConfigurationContext;
42
- get context$(): Observable<ConfigurationContext>;
43
- get charges$(): Observable<Dictionary<Charge>>;
44
- get chargesSnapshot(): Dictionary<Charge>;
45
- get pricePlans$(): Observable<Dictionary<CompiledPricePlan>>;
46
- get pricePlansSnapshot(): Dictionary<CompiledPricePlan>;
47
- get procedureContext$(): Observable<Dictionary<unknown>>;
48
- get procedureContextSnapshot(): Dictionary<unknown>;
49
- configure(): Observable<LineItem>;
50
- configureRequest$(configurationRequest: ConfigurationRequest): Observable<LineItem>;
51
- configureExternal$(props: ExternalConfigurationProps): Observable<LineItem>;
52
- configureGuidedSelling$(data: GuidedSellingSubmitData): Observable<ConfigurePrice>;
53
- generateRequest(lightMode?: boolean): ConfigurationRequest;
54
- generateLineItem(): LineItem;
55
- getAsset(): LineItem | undefined;
56
- private getUIDefinitionProperties;
57
- private showInactiveProductsConfirmation;
27
+ init$(): Observable<void>;
28
+ patch$(transactionItem: SalesTransactionItem): Observable<void>;
29
+ patch(transactionItem: SalesTransactionItem): void;
30
+ configureRequest$(transactionContext: TransactionContext): Observable<TransactionContext>;
31
+ configureExternal$(props: ExternalConfigurationProps): Observable<SalesTransaction>;
32
+ configureGuidedSelling$(data: GuidedSellingSubmitData): Observable<SalesTransaction>;
33
+ getPCMModel(): PCMModel;
58
34
  static ɵfac: i0.ɵɵFactoryDeclaration<ConfigurationService, never>;
59
35
  static ɵprov: i0.ɵɵInjectableDeclaration<ConfigurationService>;
60
36
  }
@@ -0,0 +1,23 @@
1
+ import { UIDefinitionContainer } from '@veloceapps/core';
2
+ import { Observable } from 'rxjs';
3
+ import { FlowInfoService, RuntimeSettingsService, SalesTransactionService } from '../../../services';
4
+ import { TestModeConfigurationOptions } from '../types';
5
+ import { ConfigurationRuntimeService } from './configuration-runtime.service';
6
+ import { ConfigurationService } from './configuration.service';
7
+ import * as i0 from "@angular/core";
8
+ export declare class TestModeConfigurationService {
9
+ private flowInfoService;
10
+ private configurationService;
11
+ private configurationRuntimeService;
12
+ private salesTransactionService;
13
+ private runtimeSettingsService;
14
+ private isInitialized;
15
+ private pcmModel?;
16
+ constructor(flowInfoService: FlowInfoService, configurationService: ConfigurationService, configurationRuntimeService: ConfigurationRuntimeService, salesTransactionService: SalesTransactionService, runtimeSettingsService: RuntimeSettingsService);
17
+ initTestMode$(uiDefinitionContainer: UIDefinitionContainer, options?: TestModeConfigurationOptions): Observable<void>;
18
+ private initConfiguration$;
19
+ private getTestTransactionContext;
20
+ private checkInitialized;
21
+ static ɵfac: i0.ɵɵFactoryDeclaration<TestModeConfigurationService, never>;
22
+ static ɵprov: i0.ɵɵInjectableDeclaration<TestModeConfigurationService>;
23
+ }
@@ -1,8 +1,3 @@
1
1
  export interface RuntimeInitializationProps {
2
2
  productId: string;
3
- offeringId?: string;
4
- defaultQty?: number;
5
- attributesMap?: Record<string, any>;
6
- defaultUIDefinitionId?: string;
7
- requiredUIDefinitionId?: string;
8
3
  }
@@ -1,7 +1,6 @@
1
1
  import { Product } from '@veloceapps/core';
2
2
  export interface GuidedSellingSubmitData {
3
- modelId: string;
4
- modelType: string;
3
+ orchestrationName: string;
5
4
  attributesMap: Record<string, any>;
6
5
  }
7
6
  export interface ExternalConfigurationProps {
@@ -12,3 +11,6 @@ export interface ExternalConfigurationProps {
12
11
  export interface NewConfigurationProps extends ExternalConfigurationProps {
13
12
  product: Product;
14
13
  }
14
+ export interface TestModeConfigurationOptions {
15
+ customizationMode?: boolean;
16
+ }