@veloceapps/sdk 8.0.0-131 → 8.0.0-133

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. package/cms/components/preview/preview.component.d.ts +2 -2
  2. package/cms/vendor-map.d.ts +2 -2
  3. package/core/modules/configuration/index.d.ts +1 -1
  4. package/core/modules/configuration/services/configuration-state.service.d.ts +48 -0
  5. package/core/modules/configuration/services/configuration.service.d.ts +2 -1
  6. package/core/services/flow-info.service.d.ts +1 -0
  7. package/core/services/flow-state-configuration.service.d.ts +3 -4
  8. package/esm2020/cms/components/preview/preview.component.mjs +4 -4
  9. package/esm2020/cms/vendor-map.mjs +3 -3
  10. package/esm2020/core/core.module.mjs +2 -4
  11. package/esm2020/core/modules/configuration/configuration.module.mjs +4 -4
  12. package/esm2020/core/modules/configuration/helpers.mjs +1 -1
  13. package/esm2020/core/modules/configuration/index.mjs +2 -2
  14. package/esm2020/core/modules/configuration/services/configuration-state.service.mjs +267 -0
  15. package/esm2020/core/modules/configuration/services/configuration.service.mjs +21 -15
  16. package/esm2020/core/services/flow-info.service.mjs +4 -1
  17. package/esm2020/core/services/flow-state-configuration.service.mjs +23 -21
  18. package/esm2020/core/services/flow-state.service.mjs +13 -4
  19. package/esm2020/src/guards/context.guard.mjs +1 -2
  20. package/esm2020/src/pages/product/product.component.mjs +21 -8
  21. package/esm2020/src/pages/remote/remote.component.mjs +4 -4
  22. package/esm2020/src/services/flow-router.service.mjs +30 -13
  23. package/esm2020/src/services/flow.service.mjs +48 -27
  24. package/fesm2015/veloceapps-sdk-cms.mjs +4 -4
  25. package/fesm2015/veloceapps-sdk-cms.mjs.map +1 -1
  26. package/fesm2015/veloceapps-sdk-core.mjs +251 -101
  27. package/fesm2015/veloceapps-sdk-core.mjs.map +1 -1
  28. package/fesm2015/veloceapps-sdk.mjs +94 -45
  29. package/fesm2015/veloceapps-sdk.mjs.map +1 -1
  30. package/fesm2020/veloceapps-sdk-cms.mjs +4 -4
  31. package/fesm2020/veloceapps-sdk-cms.mjs.map +1 -1
  32. package/fesm2020/veloceapps-sdk-core.mjs +240 -100
  33. package/fesm2020/veloceapps-sdk-core.mjs.map +1 -1
  34. package/fesm2020/veloceapps-sdk.mjs +93 -44
  35. package/fesm2020/veloceapps-sdk.mjs.map +1 -1
  36. package/package.json +1 -1
  37. package/src/pages/product/product.component.d.ts +6 -4
  38. package/src/pages/remote/remote.component.d.ts +2 -2
  39. package/src/services/flow-router.service.d.ts +4 -2
  40. package/src/services/flow.service.d.ts +7 -3
  41. package/core/modules/configuration/services/configuration.state.d.ts +0 -30
  42. package/esm2020/core/modules/configuration/services/configuration.state.mjs +0 -142
@@ -200,6 +200,9 @@ class FlowInfoService {
200
200
  set flow(value) {
201
201
  this.flowSubj$.next(value);
202
202
  }
203
+ get isLegacy() {
204
+ return !!this.flow && this.flow?.properties.stateful == null;
205
+ }
203
206
  constructor(flowsApiService, templatesApiService, customizationService) {
204
207
  this.flowsApiService = flowsApiService;
205
208
  this.templatesApiService = templatesApiService;
@@ -1059,8 +1062,7 @@ class FlowStateService {
1059
1062
  }
1060
1063
  initStateless$() {
1061
1064
  const { headerId } = this.contextService.resolve();
1062
- const stateInit$ = this.quoteDraftService.init(headerId, this.flowInfoService.params ?? {}).pipe(switchMap(() => this.executeRequest$(this.getDefaultExecutionRequestDTO())), switchMap(() => this.calculate$()));
1063
- return stateInit$.pipe(tap$1(() => this.quoteDraftService.finalizeInit()), map$1(noop));
1065
+ return this.quoteDraftService.init(headerId, this.flowInfoService.params ?? {}).pipe(switchMap(() => this.executeRequest$(this.getDefaultExecutionRequestDTO())), switchMap(() => this.calculate$()), tap$1(() => this.quoteDraftService.finalizeInit()), map$1(noop));
1064
1066
  }
1065
1067
  calculate$() {
1066
1068
  const flowState = this.quoteDraftService.quoteDraft;
@@ -1198,10 +1200,20 @@ class FlowStateService {
1198
1200
  }
1199
1201
  const ownerId = this.getOwnerIdByScope(UITemplateType.FLOW_ENGINE);
1200
1202
  request.actions?.push({
1201
- apiName: 'INITIALIZE_STATE',
1203
+ apiName: 'UPDATE_PRICE_LIST',
1204
+ ownerId,
1205
+ inputData: {},
1206
+ });
1207
+ request.actions?.push({
1208
+ apiName: 'UPDATE_ASSET_IDS',
1202
1209
  ownerId,
1203
1210
  inputData: {},
1204
1211
  });
1212
+ request.actions?.push({
1213
+ apiName: 'UPDATE_CONTEXT_PROPERTIES',
1214
+ ownerId,
1215
+ inputData: this.contextService.resolve().properties,
1216
+ });
1205
1217
  return request;
1206
1218
  }
1207
1219
  }
@@ -1468,10 +1480,26 @@ class ConfigurationService {
1468
1480
  throw error;
1469
1481
  }));
1470
1482
  }
1471
- generateRequest() {
1483
+ generateRequest(lightMode = true) {
1484
+ const lineItem = this.generateLineItem();
1485
+ let request = {
1486
+ lineItem,
1487
+ mode: this.mode,
1488
+ step: !this.lineItem.value ? RuntimeStep.START : RuntimeStep.UPDATE,
1489
+ attributeDomainMode: 'ALL',
1490
+ context: this.contextService.resolve(),
1491
+ lineItems: this.quoteDraftService.quoteDraft?.currentState || [],
1492
+ asset: this.getAsset(),
1493
+ };
1494
+ if (lightMode) {
1495
+ request = ConfigurationTranslatorUtils.lightenConfigurationRequest(request);
1496
+ }
1497
+ return request;
1498
+ }
1499
+ generateLineItem() {
1472
1500
  const runtimeContext = this.getRuntimeContext();
1473
1501
  const uiDefinitionProperties = this.getUIDefinitionProperties();
1474
- let lineItem = this.configurableRamp;
1502
+ let lineItem = cloneDeep(this.configurableRamp);
1475
1503
  if (!lineItem) {
1476
1504
  const { initializationProps } = this.runtimeService ?? {};
1477
1505
  lineItem = getDefaultLineItem(runtimeContext, uiDefinitionProperties, initializationProps?.defaultQty);
@@ -1481,17 +1509,7 @@ class ConfigurationService {
1481
1509
  lineItem = new LineItemWorker(lineItem).patchAttribute(attributes).li;
1482
1510
  }
1483
1511
  }
1484
- let request = {
1485
- lineItem,
1486
- mode: this.mode,
1487
- step: !this.lineItem.value ? RuntimeStep.START : RuntimeStep.UPDATE,
1488
- attributeDomainMode: 'ALL',
1489
- context: this.contextService.resolve(),
1490
- lineItems: this.quoteDraftService.quoteDraft?.currentState || [],
1491
- asset: this.getAsset(),
1492
- };
1493
- request = ConfigurationTranslatorUtils.lightenConfigurationRequest(request);
1494
- return request;
1512
+ return lineItem;
1495
1513
  }
1496
1514
  getUIDefinitionProperties() {
1497
1515
  return {
@@ -1822,43 +1840,46 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
1822
1840
  }] });
1823
1841
 
1824
1842
  class FlowStateConfigurationService {
1825
- constructor(flowStateService, flowInfoService, configurationService, flowConfigurationService, flowStateApiService) {
1826
- this.flowStateService = flowStateService;
1843
+ constructor(flowInfoService, flowConfigurationService, flowStateApiService, flowStateService) {
1827
1844
  this.flowInfoService = flowInfoService;
1828
- this.configurationService = configurationService;
1829
1845
  this.flowConfigurationService = flowConfigurationService;
1830
1846
  this.flowStateApiService = flowStateApiService;
1847
+ this.flowStateService = flowStateService;
1831
1848
  this.configurationStateId$ = new BehaviorSubject(null);
1832
1849
  }
1833
1850
  get configurationStateId() {
1834
1851
  return this.configurationStateId$.value;
1835
1852
  }
1836
1853
  addToCart$(props) {
1854
+ let request$;
1837
1855
  const stateful = this.flowInfoService.flow?.properties.stateful;
1838
1856
  if (stateful) {
1839
1857
  const stateId = this.flowStateService.stateId;
1840
1858
  if (!stateId) {
1841
- return of();
1859
+ request$ = of();
1860
+ }
1861
+ else {
1862
+ const lineItem = generateConfigurationLineItem(props, props.qty);
1863
+ request$ = this.flowStateApiService.newConfiguration(stateId, { lineItem }).pipe(tap$1(r => this.configurationStateId$.next(r.stateId)), switchMap(() => {
1864
+ if (!this.configurationStateId) {
1865
+ return of();
1866
+ }
1867
+ return this.flowStateApiService.saveConfiguration(stateId, this.configurationStateId).pipe(tap$1(() => this.configurationStateId$.next(null)), map$1(noop));
1868
+ }));
1842
1869
  }
1843
- const lineItem = generateConfigurationLineItem(props, props.qty);
1844
- return this.flowStateApiService.newConfiguration(stateId, { lineItem }).pipe(tap$1(r => this.configurationStateId$.next(r.stateId)), switchMap(() => {
1845
- if (!this.configurationStateId) {
1846
- return of();
1847
- }
1848
- return this.flowStateApiService.saveConfiguration(stateId, this.configurationStateId).pipe(switchMap(() => this.flowStateService.executeRequest$({}, true)), tap$1(() => this.configurationStateId$.next(null)), map$1(noop));
1849
- }));
1850
1870
  }
1851
1871
  else {
1852
- return this.flowConfigurationService.addToCart$(props).pipe(map$1(noop));
1872
+ request$ = this.flowConfigurationService.addToCart$(props).pipe(map$1(noop));
1853
1873
  }
1874
+ return request$.pipe(switchMap(() => this.flowStateService.executeRequest$({}, true)), map$1(noop));
1854
1875
  }
1855
1876
  }
1856
- FlowStateConfigurationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FlowStateConfigurationService, deps: [{ token: FlowStateService }, { token: FlowInfoService }, { token: ConfigurationService }, { token: FlowConfigurationService }, { token: i1.FlowStateApiService }], target: i0.ɵɵFactoryTarget.Injectable });
1877
+ FlowStateConfigurationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FlowStateConfigurationService, deps: [{ token: FlowInfoService }, { token: FlowConfigurationService }, { token: i1.FlowStateApiService }, { token: FlowStateService }], target: i0.ɵɵFactoryTarget.Injectable });
1857
1878
  FlowStateConfigurationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FlowStateConfigurationService, providedIn: 'root' });
1858
1879
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FlowStateConfigurationService, decorators: [{
1859
1880
  type: Injectable,
1860
1881
  args: [{ providedIn: 'root' }]
1861
- }], ctorParameters: function () { return [{ type: FlowStateService }, { type: FlowInfoService }, { type: ConfigurationService }, { type: FlowConfigurationService }, { type: i1.FlowStateApiService }]; } });
1882
+ }], ctorParameters: function () { return [{ type: FlowInfoService }, { type: FlowConfigurationService }, { type: i1.FlowStateApiService }, { type: FlowStateService }]; } });
1862
1883
 
1863
1884
  function calculateMetricByMethod(lineItems, metric, method) {
1864
1885
  const items = getLineItemsByMethod(lineItems, method);
@@ -2138,58 +2159,185 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
2138
2159
  type: Injectable
2139
2160
  }], ctorParameters: function () { return [{ type: i1.ConfigurationApiService }, { type: ContextService }, { type: RuntimeContextService }]; } });
2140
2161
 
2141
- class ConfigurationState {
2142
- constructor(statefulConfigurationApiService, runtimeService, configurationService, toastService) {
2143
- this.statefulConfigurationApiService = statefulConfigurationApiService;
2144
- this.runtimeService = runtimeService;
2162
+ class ConfigurationStateService {
2163
+ constructor(configurationRuntimeService, configurationService, quoteDraftService, toastService, flowStateService, flowInfoService, flowConfigurationService, flowStateApiService, quoteApiService) {
2164
+ this.configurationRuntimeService = configurationRuntimeService;
2145
2165
  this.configurationService = configurationService;
2166
+ this.quoteDraftService = quoteDraftService;
2146
2167
  this.toastService = toastService;
2147
- this.stateSubj$ = new BehaviorSubject({});
2148
- this.state$ = this.stateSubj$.asObservable();
2168
+ this.flowStateService = flowStateService;
2169
+ this.flowInfoService = flowInfoService;
2170
+ this.flowConfigurationService = flowConfigurationService;
2171
+ this.flowStateApiService = flowStateApiService;
2172
+ this.quoteApiService = quoteApiService;
2173
+ this.NOT_INITIALIZED = Symbol();
2149
2174
  this.stateId = null;
2175
+ this.ownerId = '';
2176
+ this.subscriptions = {};
2177
+ this.isInitialized$ = new BehaviorSubject(false);
2150
2178
  }
2151
2179
  init$() {
2152
- return this.configurationService.configure().pipe(switchMap(() => {
2153
- if (!this.isStatefulConfiguration) {
2154
- return of(undefined);
2155
- }
2156
- const { actions, selectors } = this.runtimeService.runtimeContext?.uiDefinitionContainer ?? {};
2157
- return this.statefulConfigurationApiService.init({
2158
- item: this.configurationService.generateRequest(),
2159
- actions: actions?.map(action => ({ name: action.apiName, script: action.script })),
2160
- selectors: selectors?.map(selector => ({ name: selector.apiName, script: selector.script })),
2161
- });
2162
- }), tap$1(stateId => (this.stateId = stateId || null)), map$1(() => undefined));
2180
+ let request$;
2181
+ if (this.flowStateService.stateId && this.isStatefulConfiguration) {
2182
+ request$ = this.initStateful$();
2183
+ }
2184
+ else {
2185
+ request$ = this.initStateless$();
2186
+ }
2187
+ return request$.pipe(finalize(() => this.isInitialized$.next(true)));
2163
2188
  }
2164
2189
  cleanup() {
2165
2190
  this.stateId = null;
2166
2191
  this.configurationService.reset();
2167
- this.stateSubj$.next({});
2168
2192
  }
2169
- execute$(req) {
2193
+ execute$(req, forceSubscriptions) {
2194
+ const fullRequest = cloneDeep(req);
2195
+ if (fullRequest.actions?.length || forceSubscriptions) {
2196
+ for (const subscription of Object.values(this.subscriptions)) {
2197
+ fullRequest.selectors = assign(fullRequest.selectors, subscription.request.selectors);
2198
+ }
2199
+ }
2200
+ let execution$;
2170
2201
  if (this.isStatefulConfiguration) {
2171
- return this.executeStateful$(req);
2202
+ execution$ = this.executeStateful$(fullRequest);
2172
2203
  }
2173
2204
  else {
2174
- return this.executeStateless$(req);
2205
+ execution$ = this.executeStateless$(fullRequest);
2175
2206
  }
2207
+ return execution$.pipe(tap$1(result => this.handleSelectorsResponse(result.selectors)));
2208
+ }
2209
+ handleSelectorsResponse(selectors) {
2210
+ Object.entries(selectors).forEach(([requestId, selectorResult]) => {
2211
+ if (!selectorResult.success) {
2212
+ this.toastService.add({ severity: ToastType.error, summary: selectorResult.errorMessage });
2213
+ }
2214
+ const subscription$ = this.subscriptions[requestId]?.data$;
2215
+ if (subscription$) {
2216
+ subscription$.next(selectorResult);
2217
+ }
2218
+ });
2176
2219
  }
2177
- dispatch$(actionName, inputData) {
2178
- return this.execute$({ actions: [{ name: actionName, inputData }] });
2220
+ dispatch$(actionName, inputData = {}) {
2221
+ return this.execute$({ actions: [{ apiName: actionName, inputData, ownerId: this.ownerId }] });
2179
2222
  }
2180
- select$(selectorName, inputData) {
2223
+ select$(selectorName, inputData = {}) {
2181
2224
  const requestId = UUID.UUID();
2182
2225
  return this.execute$({
2183
2226
  selectors: {
2184
2227
  [requestId]: {
2185
- name: selectorName,
2228
+ apiName: selectorName,
2186
2229
  inputData,
2230
+ ownerId: this.ownerId,
2187
2231
  },
2188
2232
  },
2189
- }).pipe(map$1(() => this.stateSubj$.value[requestId]), tap$1(() => this.stateSubj$.next(omit(this.stateSubj$.value, requestId))));
2233
+ }).pipe(map$1(response => response.selectors[requestId]));
2234
+ }
2235
+ subscribe$(selectorName, inputData = {}, options) {
2236
+ const requestId = UUID.UUID();
2237
+ if (!this.subscriptions[requestId]) {
2238
+ const request = {
2239
+ selectors: {
2240
+ [requestId]: {
2241
+ apiName: selectorName,
2242
+ inputData,
2243
+ ownerId: this.ownerId,
2244
+ },
2245
+ },
2246
+ };
2247
+ this.subscriptions[requestId] = {
2248
+ request,
2249
+ data$: new BehaviorSubject(this.NOT_INITIALIZED),
2250
+ };
2251
+ if (!options?.cold) {
2252
+ this.execute$(request).subscribe();
2253
+ }
2254
+ }
2255
+ return this.subscriptions[requestId].data$.pipe(filter$1(data => data != this.NOT_INITIALIZED), map$1(data => data), finalize(() => {
2256
+ if (!this.subscriptions[requestId].data$.observed) {
2257
+ delete this.subscriptions[requestId];
2258
+ }
2259
+ }));
2260
+ }
2261
+ saveConfiguration(quoteId, flow) {
2262
+ if (this.isStatefulConfiguration) {
2263
+ return this.flowStateApiService
2264
+ .saveConfiguration(this.flowStateService.stateId ?? '', this.stateId ?? '')
2265
+ .pipe(switchMap(r => this.flowStateService.executeRequest$({}, true).pipe(map$1(() => r))));
2266
+ }
2267
+ else {
2268
+ if (!flow) {
2269
+ if (!quoteId) {
2270
+ return of({ quoteId: '' });
2271
+ }
2272
+ const rootLineItem = this.configurationService.getSnapshot();
2273
+ const currentState = rootLineItem ? [rootLineItem] : [];
2274
+ return this.quoteApiService
2275
+ .getQuoteDraft(quoteId)
2276
+ .pipe(switchMap(quoteDraft => this.quoteApiService.upsertQuote({ ...quoteDraft, currentState })));
2277
+ }
2278
+ else {
2279
+ const quoteDraft = this.quoteDraftService.quoteDraft;
2280
+ const lineItem = this.configurationService.getSnapshot();
2281
+ if (!quoteDraft || !lineItem) {
2282
+ return of({ quoteId: '' });
2283
+ }
2284
+ const isNewLineItem = quoteDraft.currentState.every(li => li.id !== lineItem.id);
2285
+ let updatedState;
2286
+ if (isNewLineItem) {
2287
+ updatedState = [...quoteDraft.currentState, lineItem];
2288
+ }
2289
+ else {
2290
+ updatedState = quoteDraft.currentState.map(li => (li.id === lineItem.id ? lineItem : li));
2291
+ }
2292
+ return this.flowConfigurationService
2293
+ .calculate$({ ...quoteDraft, currentState: updatedState })
2294
+ .pipe(map$1(() => ({ quoteId: '' })));
2295
+ }
2296
+ }
2297
+ }
2298
+ cancelConfiguration() {
2299
+ if (!this.isInitialized$.value) {
2300
+ return of(undefined);
2301
+ }
2302
+ this.isInitialized$.next(false);
2303
+ if (!this.isInitialized$.value || !this.isStatefulConfiguration) {
2304
+ return of(undefined);
2305
+ }
2306
+ return this.flowStateApiService.cancelConfiguration(this.flowStateService.stateId ?? '', this.stateId ?? '');
2190
2307
  }
2191
2308
  get isStatefulConfiguration() {
2192
- return this.runtimeService.uiDefinitionProperties.statefulConfigurationEnabled ?? false;
2309
+ return this.flowInfoService.flow?.properties.stateful ?? false;
2310
+ }
2311
+ initStateful$() {
2312
+ this.ownerId = this.configurationRuntimeService.runtimeContext?.uiDefinitionContainer?.id ?? '';
2313
+ const lineItemId = this.configurationRuntimeService.runtimeContext?.properties?.lineItemId;
2314
+ if (!this.flowStateService.stateId) {
2315
+ return of(undefined);
2316
+ }
2317
+ const container = this.configurationRuntimeService.runtimeContext?.uiDefinitionContainer;
2318
+ const lineItem = this.configurationService.generateLineItem();
2319
+ let request$;
2320
+ if (!lineItemId) {
2321
+ request$ = this.flowStateApiService.newConfiguration(this.flowStateService.stateId, {
2322
+ lineItem,
2323
+ actionsOverride: container?.actions?.map(processor => ({ ...processor, ownerId: this.ownerId })),
2324
+ selectorsOverride: container?.selectors?.map(processor => ({ ...processor, ownerId: this.ownerId })),
2325
+ });
2326
+ }
2327
+ else {
2328
+ request$ = this.flowStateApiService.startConfiguration(this.flowStateService.stateId, {
2329
+ lineItemId,
2330
+ actionsOverride: container?.actions?.map(processor => ({ ...processor, ownerId: this.ownerId })),
2331
+ selectorsOverride: container?.selectors?.map(processor => ({ ...processor, ownerId: this.ownerId })),
2332
+ });
2333
+ }
2334
+ return request$.pipe(map$1(r => {
2335
+ this.stateId = r.stateId;
2336
+ return undefined;
2337
+ }));
2338
+ }
2339
+ initStateless$() {
2340
+ return this.configurationService.configure().pipe(map$1(() => undefined));
2193
2341
  }
2194
2342
  executeStateless$(request) {
2195
2343
  return of(undefined).pipe(switchMap(() => {
@@ -2203,52 +2351,46 @@ class ConfigurationState {
2203
2351
  configurationRequest = this.executeActionScript(configurationRequest, action) ?? configurationRequest;
2204
2352
  });
2205
2353
  return this.configurationService.configureRequest$(configurationRequest);
2206
- }), tap$1(() => {
2207
- if (!request.selectors) {
2208
- return;
2209
- }
2354
+ }), map$1(() => {
2210
2355
  // Run selectors and apply them to the state
2211
- const finalConfigurationRequest = this.configurationService.generateRequest();
2212
- const selectorsResult = EntityUtil.entries(request.selectors).reduce((trunk, [key, selector]) => {
2213
- trunk[key] = this.executeSelectorScript(finalConfigurationRequest, selector);
2214
- return trunk;
2215
- }, {});
2216
- this.stateSubj$.next({
2217
- ...this.stateSubj$.value,
2218
- ...selectorsResult,
2219
- });
2220
- }), map$1(() => undefined));
2356
+ const finalConfigurationRequest = this.configurationService.generateRequest(false);
2357
+ const selectorsResult = EntityUtil.entries(request.selectors ?? {}).reduce((result, [key, selector]) => {
2358
+ try {
2359
+ result.selectors[key] = {
2360
+ success: true,
2361
+ result: this.executeSelectorScript(finalConfigurationRequest, selector),
2362
+ };
2363
+ }
2364
+ catch (e) {
2365
+ result.selectors[key] = {
2366
+ success: false,
2367
+ errorMessage: String(e),
2368
+ };
2369
+ }
2370
+ return result;
2371
+ }, { stateId: '', selectors: {} });
2372
+ return selectorsResult;
2373
+ }));
2221
2374
  }
2222
2375
  executeStateful$(request) {
2223
- if (!this.stateId) {
2224
- return of(undefined);
2376
+ if (!this.flowStateService.stateId || !this.stateId) {
2377
+ return of();
2225
2378
  }
2226
- return this.statefulConfigurationApiService.execute(this.stateId, request).pipe(tap$1(response => {
2379
+ return this.flowStateApiService.executeConfiguration(this.flowStateService.stateId, this.stateId, request).pipe(tap$1(response => {
2227
2380
  this.stateId = response.stateId;
2228
- const updatedState = this.stateSubj$.value;
2229
- EntityUtil.entries(response.selectors).forEach(([key, value]) => {
2230
- if (!value.success) {
2231
- if (!this.runtimeService.uiDefinitionProperties.suppressToastMessages) {
2232
- this.toastService.add({ summary: value.errorMessage, severity: ToastType.error });
2233
- }
2234
- return;
2235
- }
2236
- updatedState[key] = value.result;
2237
- });
2238
- this.stateSubj$.next(updatedState);
2239
- }), map$1(() => undefined));
2381
+ }));
2240
2382
  }
2241
2383
  executeActionScript(request, processor) {
2242
- const { actions } = this.runtimeService.runtimeContext?.uiDefinitionContainer ?? {};
2243
- const script = actions?.find(action => action.apiName === processor.name)?.script;
2384
+ const { actions } = this.configurationRuntimeService.runtimeContext?.uiDefinitionContainer ?? {};
2385
+ const script = actions?.find(action => action.apiName === processor.apiName)?.script;
2244
2386
  if (!script) {
2245
- return null;
2387
+ return request;
2246
2388
  }
2247
2389
  return this.executeProcessorScript(request, script, processor.inputData);
2248
2390
  }
2249
2391
  executeSelectorScript(request, processor) {
2250
- const { selectors } = this.runtimeService.runtimeContext?.uiDefinitionContainer ?? {};
2251
- const script = selectors?.find(selector => selector.apiName === processor.name)?.script;
2392
+ const { selectors } = this.configurationRuntimeService.runtimeContext?.uiDefinitionContainer ?? {};
2393
+ const script = selectors?.find(selector => selector.apiName === processor.apiName)?.script;
2252
2394
  if (!script) {
2253
2395
  return null;
2254
2396
  }
@@ -2261,11 +2403,11 @@ class ConfigurationState {
2261
2403
  });
2262
2404
  }
2263
2405
  }
2264
- ConfigurationState.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ConfigurationState, deps: [{ token: i1.StatefulConfigurationApiService }, { token: ConfigurationRuntimeService }, { token: ConfigurationService }, { token: i6.ToastService }], target: i0.ɵɵFactoryTarget.Injectable });
2265
- ConfigurationState.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ConfigurationState });
2266
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ConfigurationState, decorators: [{
2406
+ ConfigurationStateService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ConfigurationStateService, deps: [{ token: ConfigurationRuntimeService }, { token: ConfigurationService }, { token: QuoteDraftService }, { token: i6.ToastService }, { token: FlowStateService }, { token: FlowInfoService }, { token: FlowConfigurationService }, { token: i1.FlowStateApiService }, { token: i1.QuoteApiService }], target: i0.ɵɵFactoryTarget.Injectable });
2407
+ ConfigurationStateService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ConfigurationStateService });
2408
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ConfigurationStateService, decorators: [{
2267
2409
  type: Injectable
2268
- }], ctorParameters: function () { return [{ type: i1.StatefulConfigurationApiService }, { type: ConfigurationRuntimeService }, { type: ConfigurationService }, { type: i6.ToastService }]; } });
2410
+ }], ctorParameters: function () { return [{ type: ConfigurationRuntimeService }, { type: ConfigurationService }, { type: QuoteDraftService }, { type: i6.ToastService }, { type: FlowStateService }, { type: FlowInfoService }, { type: FlowConfigurationService }, { type: i1.FlowStateApiService }, { type: i1.QuoteApiService }]; } });
2269
2411
 
2270
2412
  class ConfigurationModule {
2271
2413
  }
@@ -2278,7 +2420,7 @@ ConfigurationModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", ver
2278
2420
  ConfigurationRuntimeService,
2279
2421
  RuntimeContextService,
2280
2422
  ConfigurationService,
2281
- ConfigurationState,
2423
+ ConfigurationStateService,
2282
2424
  ], imports: [ConfirmationDialogModule] });
2283
2425
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ConfigurationModule, decorators: [{
2284
2426
  type: NgModule,
@@ -2291,7 +2433,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
2291
2433
  ConfigurationRuntimeService,
2292
2434
  RuntimeContextService,
2293
2435
  ConfigurationService,
2294
- ConfigurationState,
2436
+ ConfigurationStateService,
2295
2437
  ],
2296
2438
  }]
2297
2439
  }] });
@@ -2310,7 +2452,6 @@ SdkCoreModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
2310
2452
  SdkCoreModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: SdkCoreModule, imports: [ConfigurationModule, FlowConfigurationModule] });
2311
2453
  SdkCoreModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SdkCoreModule, providers: [
2312
2454
  IntegrationState,
2313
- FlowStateService,
2314
2455
  {
2315
2456
  provide: FORMATTING_SETTINGS_TOKEN,
2316
2457
  useExisting: RuntimeSettingsService,
@@ -2322,7 +2463,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
2322
2463
  imports: [ConfigurationModule, FlowConfigurationModule],
2323
2464
  providers: [
2324
2465
  IntegrationState,
2325
- FlowStateService,
2326
2466
  {
2327
2467
  provide: FORMATTING_SETTINGS_TOKEN,
2328
2468
  useExisting: RuntimeSettingsService,
@@ -2497,5 +2637,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
2497
2637
  * Generated bundle index. Do not edit.
2498
2638
  */
2499
2639
 
2500
- export { ActionCodePipe, CalendarDirective, ConfigurationRuntimeService, ConfigurationService, ConfigurationState, ContextService, DEFAULT_FORMATTING_SETTINGS, DatePipe, FLOW_CUSTOMIZATION, FORMATTING_SETTINGS_TOKEN, FlowConfigurationModule, FlowConfigurationService, FlowInfoService, FlowStateConfigurationService, FlowStateService, FlowUpdateService, IntegrationState, LineItemWorker, MetricsCalculationService, NumberPipe, PricePipe, ProductImagesService, QuoteDraftService, RuntimeMode, RuntimeOperation, RuntimeSettingsService, RuntimeStep, SdkCoreModule, SdkDirectivesModule, SdkPipesModule, UI_DEFINITION_VERSION, calculateCardinalityVariables, extractMetadata, filterOutTechnicalAttributes, findLineItem, findLineItemWithComparator, generateConfigurationLineItem, generateLineItem, generateModifiedAssetsMap, getAttributeValue, getAttributes, getDefaultLineItem, getGuidedSellingConfigurationRequest, getOriginParent, getRecommendedPrices, insertLineItem, isLineItemModified, isTechnicalAttribute, lineItem_utils as lineItemUtils, mapAttributes, multiplyLineItems, patchAttributes, recalculateCardinalityVariables, removeLineItem, replaceLineItem, upsertAttributes };
2640
+ export { ActionCodePipe, CalendarDirective, ConfigurationRuntimeService, ConfigurationService, ConfigurationStateService, ContextService, DEFAULT_FORMATTING_SETTINGS, DatePipe, FLOW_CUSTOMIZATION, FORMATTING_SETTINGS_TOKEN, FlowConfigurationModule, FlowConfigurationService, FlowInfoService, FlowStateConfigurationService, FlowStateService, FlowUpdateService, IntegrationState, LineItemWorker, MetricsCalculationService, NumberPipe, PricePipe, ProductImagesService, QuoteDraftService, RuntimeMode, RuntimeOperation, RuntimeSettingsService, RuntimeStep, SdkCoreModule, SdkDirectivesModule, SdkPipesModule, UI_DEFINITION_VERSION, calculateCardinalityVariables, extractMetadata, filterOutTechnicalAttributes, findLineItem, findLineItemWithComparator, generateConfigurationLineItem, generateLineItem, generateModifiedAssetsMap, getAttributeValue, getAttributes, getDefaultLineItem, getGuidedSellingConfigurationRequest, getOriginParent, getRecommendedPrices, insertLineItem, isLineItemModified, isTechnicalAttribute, lineItem_utils as lineItemUtils, mapAttributes, multiplyLineItems, patchAttributes, recalculateCardinalityVariables, removeLineItem, replaceLineItem, upsertAttributes };
2501
2641
  //# sourceMappingURL=veloceapps-sdk-core.mjs.map