@veloceapps/sdk 11.0.0-26 → 11.0.0-27
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.
- package/core/modules/configuration/services/configuration-runtime.service.d.ts +9 -1
- package/core/modules/configuration/services/configuration.service.d.ts +2 -2
- package/core/modules/configuration/types/configuration-runtime.types.d.ts +3 -0
- package/core/services/flow-info.service.d.ts +1 -0
- package/core/services/sales-transaction.service.d.ts +0 -1
- package/esm2020/core/modules/configuration/services/configuration-runtime.service.mjs +14 -4
- package/esm2020/core/modules/configuration/services/configuration.service.mjs +12 -9
- package/esm2020/core/modules/configuration/types/configuration-runtime.types.mjs +2 -0
- package/esm2020/core/services/flow-info.service.mjs +14 -1
- package/esm2020/core/services/flow-state.service.mjs +2 -7
- package/esm2020/core/services/sales-transaction.service.mjs +1 -4
- package/esm2020/src/flow-routing.module.mjs +3 -2
- package/esm2020/src/resolvers/pcm-model.resolver.mjs +12 -0
- package/esm2020/src/resolvers/sales-transaction.resolver.mjs +3 -3
- package/fesm2015/veloceapps-sdk-core.mjs +37 -23
- package/fesm2015/veloceapps-sdk-core.mjs.map +1 -1
- package/fesm2015/veloceapps-sdk.mjs +13 -3
- package/fesm2015/veloceapps-sdk.mjs.map +1 -1
- package/fesm2020/veloceapps-sdk-core.mjs +35 -20
- package/fesm2020/veloceapps-sdk-core.mjs.map +1 -1
- package/fesm2020/veloceapps-sdk.mjs +13 -3
- package/fesm2020/veloceapps-sdk.mjs.map +1 -1
- package/package.json +1 -1
- package/src/resolvers/pcm-model.resolver.d.ts +3 -0
@@ -5,9 +5,9 @@ import * as i1 from '@veloceapps/api';
|
|
5
5
|
import { ApiModule } from '@veloceapps/api';
|
6
6
|
import * as i6 from '@veloceapps/components';
|
7
7
|
import { ToastType, ConfirmationDialogModule } from '@veloceapps/components';
|
8
|
+
import { tap, BehaviorSubject, map, switchMap, of, forkJoin, throwError, noop, filter as filter$1, Subject, catchError as catchError$1, combineLatest, finalize as finalize$1, buffer, debounceTime, share, take, distinctUntilChanged, shareReplay, takeUntil } from 'rxjs';
|
8
9
|
import * as i4 from '@veloceapps/api/v2';
|
9
10
|
import { uniqBy, flatten, omit, cloneDeep, assign, isEqual } from 'lodash';
|
10
|
-
import { BehaviorSubject, map, tap, switchMap, of, forkJoin, throwError, noop, filter as filter$1, Subject, catchError as catchError$1, combineLatest, finalize as finalize$1, buffer, debounceTime, share, take, distinctUntilChanged, shareReplay, takeUntil } from 'rxjs';
|
11
11
|
import * as i2 from 'primeng/api';
|
12
12
|
import { filter, map as map$1, catchError, tap as tap$1, finalize } from 'rxjs/operators';
|
13
13
|
import { NgControl } from '@angular/forms';
|
@@ -15,7 +15,8 @@ import 'primeng/calendar';
|
|
15
15
|
import { DATE_PIPE_DEFAULT_OPTIONS, formatDate } from '@angular/common';
|
16
16
|
|
17
17
|
class ConfigurationRuntimeService {
|
18
|
-
constructor() {
|
18
|
+
constructor(pcmApiService) {
|
19
|
+
this.pcmApiService = pcmApiService;
|
19
20
|
this.uiDefinitionContainer = null;
|
20
21
|
}
|
21
22
|
get uiDefinitionProps() {
|
@@ -23,13 +24,19 @@ class ConfigurationRuntimeService {
|
|
23
24
|
}
|
24
25
|
reset() {
|
25
26
|
this.uiDefinitionContainer = null;
|
27
|
+
this.initializationProps = undefined;
|
28
|
+
this.pcmModel = undefined;
|
29
|
+
}
|
30
|
+
init$(props) {
|
31
|
+
this.initializationProps = props;
|
32
|
+
return this.pcmApiService.fetchPCMByProductId(props.productId).pipe(tap(pcmModel => (this.pcmModel = pcmModel)));
|
26
33
|
}
|
27
34
|
}
|
28
|
-
ConfigurationRuntimeService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ConfigurationRuntimeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
35
|
+
ConfigurationRuntimeService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ConfigurationRuntimeService, deps: [{ token: i1.PCMApiService }], target: i0.ɵɵFactoryTarget.Injectable });
|
29
36
|
ConfigurationRuntimeService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ConfigurationRuntimeService });
|
30
37
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ConfigurationRuntimeService, decorators: [{
|
31
38
|
type: Injectable
|
32
|
-
}] });
|
39
|
+
}], ctorParameters: function () { return [{ type: i1.PCMApiService }]; } });
|
33
40
|
|
34
41
|
const FLOW_CUSTOMIZATION = new InjectionToken('FLOW_CUSTOMIZATION');
|
35
42
|
|
@@ -184,6 +191,19 @@ class FlowInfoService {
|
|
184
191
|
init$(flowId, routeQueryParams) {
|
185
192
|
return this.initFlow$(flowId, routeQueryParams).pipe(switchMap(() => this.initFlowTemplates$()));
|
186
193
|
}
|
194
|
+
initTestFlow$(productId) {
|
195
|
+
this.contextSubj$.next({
|
196
|
+
mode: 'QUOTE',
|
197
|
+
headerId: '0Q0-test-quote-id',
|
198
|
+
productId,
|
199
|
+
});
|
200
|
+
this.flowSubj$.next({
|
201
|
+
id: 'preview-flow-id',
|
202
|
+
properties: { entryPath: '/product', queryParams: {} },
|
203
|
+
version: 2,
|
204
|
+
});
|
205
|
+
return of(undefined);
|
206
|
+
}
|
187
207
|
updateContext(update) {
|
188
208
|
this.contextSubj$.next({
|
189
209
|
...this.context,
|
@@ -363,9 +383,6 @@ class ConfigurationService {
|
|
363
383
|
get previousState() {
|
364
384
|
return this.previousConfigurationStateSubj$.getValue();
|
365
385
|
}
|
366
|
-
get asset() {
|
367
|
-
return this.state?.assets[0] ?? null;
|
368
|
-
}
|
369
386
|
get root$() {
|
370
387
|
return this.state$.pipe(map$1(state => state.salesTransactionItems[0]), filter(isDefined));
|
371
388
|
}
|
@@ -396,14 +413,13 @@ class ConfigurationService {
|
|
396
413
|
return of(undefined);
|
397
414
|
}
|
398
415
|
let transactionItem = state?.salesTransactionItems.find(item => item.id === transactionItemId);
|
399
|
-
if (!transactionItem) {
|
400
|
-
transactionItem =
|
416
|
+
if (!transactionItem && productId) {
|
417
|
+
transactionItem =
|
418
|
+
state.salesTransactionItems.find(item => item.productId === productId) ?? generateTransactionItem(productId);
|
401
419
|
}
|
402
|
-
const assetItem = transactionItem ? state?.assets.find(item => item.id === transactionItem?.assetId) : undefined;
|
403
420
|
const configurationState = {
|
404
421
|
...state,
|
405
422
|
salesTransactionItems: transactionItem ? [transactionItem] : [],
|
406
|
-
assets: assetItem ? [assetItem] : [],
|
407
423
|
};
|
408
424
|
this.configurationStateSubj$.next(configurationState);
|
409
425
|
this.previousConfigurationStateSubj$.next(configurationState);
|
@@ -466,6 +482,13 @@ class ConfigurationService {
|
|
466
482
|
// TODO: implement
|
467
483
|
throw new Error('Not implemented');
|
468
484
|
}
|
485
|
+
getPCMModel() {
|
486
|
+
const pcmModel = this.configurationRuntimeService.pcmModel;
|
487
|
+
if (!pcmModel) {
|
488
|
+
throw new Error('PCM model not initialized');
|
489
|
+
}
|
490
|
+
return pcmModel;
|
491
|
+
}
|
469
492
|
}
|
470
493
|
ConfigurationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ConfigurationService, deps: [{ token: FlowInfoService }, { token: i2.MessageService }, { token: ConfigurationRuntimeService }, { token: SalesTransactionService }, { token: i4.ProceduresApiService }], target: i0.ɵɵFactoryTarget.Injectable });
|
471
494
|
ConfigurationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ConfigurationService });
|
@@ -492,9 +515,6 @@ class SalesTransactionService {
|
|
492
515
|
get state() {
|
493
516
|
return this.stateSubj$.getValue();
|
494
517
|
}
|
495
|
-
get hasAssets() {
|
496
|
-
return Boolean(this.state?.assets.length);
|
497
|
-
}
|
498
518
|
get hasProducts() {
|
499
519
|
return Boolean(this.state?.salesTransactionItems.length);
|
500
520
|
}
|
@@ -859,12 +879,7 @@ class FlowStateService {
|
|
859
879
|
])), map(([response]) => response), take(1));
|
860
880
|
}
|
861
881
|
initStateless$() {
|
862
|
-
return this.salesTransactionService.init(this.flowInfoService.context.headerId, this.flowInfoService.context).pipe(tap(() =>
|
863
|
-
const assets = this.salesTransactionService.state?.assets;
|
864
|
-
if (assets) {
|
865
|
-
this.flowStore = { ...this.flowStore, assets };
|
866
|
-
}
|
867
|
-
}), switchMap(state => this.flowConfiguration.calculate$(state)), tap(() => this.salesTransactionService.finalizeInit()), map(noop));
|
882
|
+
return this.salesTransactionService.init(this.flowInfoService.context.headerId, this.flowInfoService.context).pipe(switchMap(state => this.flowConfiguration.calculate$(state)), tap(() => this.salesTransactionService.finalizeInit()), map(noop));
|
868
883
|
}
|
869
884
|
executeStateless$(request) {
|
870
885
|
this.executionInProgress$.next(true);
|