@veloceapps/sdk 8.0.0-134 → 8.0.0-136
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-state.service.d.ts +3 -1
- package/core/services/context.service.d.ts +1 -0
- package/core/services/flow-info.service.d.ts +1 -0
- package/core/services/flow-state.service.d.ts +1 -0
- package/esm2020/core/modules/configuration/services/configuration-state.service.mjs +29 -13
- package/esm2020/core/services/context.service.mjs +12 -11
- package/esm2020/core/services/flow-info.service.mjs +4 -1
- package/esm2020/core/services/flow-state.service.mjs +16 -10
- package/esm2020/src/pages/product/product.component.mjs +2 -2
- package/esm2020/src/services/flow-router.service.mjs +3 -3
- package/esm2020/src/services/flow.service.mjs +7 -6
- package/fesm2015/veloceapps-sdk-core.mjs +61 -34
- package/fesm2015/veloceapps-sdk-core.mjs.map +1 -1
- package/fesm2015/veloceapps-sdk.mjs +9 -8
- package/fesm2015/veloceapps-sdk.mjs.map +1 -1
- package/fesm2020/veloceapps-sdk-core.mjs +56 -30
- package/fesm2020/veloceapps-sdk-core.mjs.map +1 -1
- package/fesm2020/veloceapps-sdk.mjs +9 -8
- package/fesm2020/veloceapps-sdk.mjs.map +1 -1
- package/package.json +1 -1
- package/src/services/flow.service.d.ts +1 -1
|
@@ -103,16 +103,17 @@ class ContextService {
|
|
|
103
103
|
return this.resolve().properties.mode;
|
|
104
104
|
}
|
|
105
105
|
get isEditMode$() {
|
|
106
|
-
return this.resolve$().pipe(map(() =>
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
return
|
|
115
|
-
}
|
|
106
|
+
return this.resolve$().pipe(map(() => this.isEditMode));
|
|
107
|
+
}
|
|
108
|
+
get isEditMode() {
|
|
109
|
+
const context = this.resolve();
|
|
110
|
+
if (context.mode === ConfigurationContextMode.ACCOUNT) {
|
|
111
|
+
return true;
|
|
112
|
+
}
|
|
113
|
+
if (context.mode === ConfigurationContextMode.QUOTE) {
|
|
114
|
+
return context.properties.Status === 'Draft';
|
|
115
|
+
}
|
|
116
|
+
return false;
|
|
116
117
|
}
|
|
117
118
|
resolve() {
|
|
118
119
|
if (!this.context.value) {
|
|
@@ -202,6 +203,9 @@ class FlowInfoService {
|
|
|
202
203
|
get isLegacy() {
|
|
203
204
|
return !!this.flow && this.flow?.properties.stateful == null;
|
|
204
205
|
}
|
|
206
|
+
get isStateful() {
|
|
207
|
+
return !!this.flow?.properties.stateful;
|
|
208
|
+
}
|
|
205
209
|
constructor(flowsApiService, templatesApiService, customizationService) {
|
|
206
210
|
this.flowsApiService = flowsApiService;
|
|
207
211
|
this.templatesApiService = templatesApiService;
|
|
@@ -802,6 +806,7 @@ class FlowStateService {
|
|
|
802
806
|
this.toastService = toastService;
|
|
803
807
|
this.customizationService = customizationService;
|
|
804
808
|
this.NOT_INITIALIZED = Symbol();
|
|
809
|
+
this.executedFunctions = {};
|
|
805
810
|
this._hasStatefulUnsavedChanges = false;
|
|
806
811
|
this.stateId$ = new BehaviorSubject(null);
|
|
807
812
|
this.processors = {};
|
|
@@ -1159,27 +1164,32 @@ class FlowStateService {
|
|
|
1159
1164
|
return forkJoin(owners$).pipe(map$1(noop));
|
|
1160
1165
|
}
|
|
1161
1166
|
executeActionScript(request, executable) {
|
|
1162
|
-
const
|
|
1163
|
-
if (!script) {
|
|
1167
|
+
const configurationProcessor = this.processors[executable.ownerId]?.[executable.apiName];
|
|
1168
|
+
if (!configurationProcessor?.script) {
|
|
1164
1169
|
const scope = this.getScopeByOwnerId(executable.ownerId);
|
|
1165
1170
|
const scopeText = scope ? ` in ${scope}` : '';
|
|
1166
1171
|
throw `ConfigurationProcessor ${executable.apiName}${scopeText} not found`;
|
|
1167
1172
|
}
|
|
1168
|
-
return this.executeProcessorScript(request,
|
|
1173
|
+
return this.executeProcessorScript(request, configurationProcessor, executable.inputData);
|
|
1169
1174
|
}
|
|
1170
1175
|
executeSelectorScript(request, executable) {
|
|
1171
|
-
const
|
|
1172
|
-
if (!script) {
|
|
1176
|
+
const configurationProcessor = this.processors[executable.ownerId]?.[executable.apiName];
|
|
1177
|
+
if (!configurationProcessor?.script) {
|
|
1173
1178
|
const scope = this.getScopeByOwnerId(executable.ownerId);
|
|
1174
1179
|
const scopeText = scope ? ` in ${scope}` : '';
|
|
1175
1180
|
throw `ConfigurationProcessor ${executable.apiName}${scopeText} not found`;
|
|
1176
1181
|
}
|
|
1177
|
-
return this.executeProcessorScript(request,
|
|
1182
|
+
return this.executeProcessorScript(request, configurationProcessor, executable.inputData);
|
|
1178
1183
|
}
|
|
1179
|
-
executeProcessorScript(request,
|
|
1180
|
-
|
|
1184
|
+
executeProcessorScript(request, configurationProcessor, inputData) {
|
|
1185
|
+
let functionToExecute = this.executedFunctions[configurationProcessor.apiName];
|
|
1186
|
+
if (!functionToExecute) {
|
|
1187
|
+
functionToExecute = new Function(`${configurationProcessor.script}\nreturn transform;`)();
|
|
1188
|
+
this.executedFunctions[configurationProcessor.apiName] = functionToExecute;
|
|
1189
|
+
}
|
|
1190
|
+
return functionToExecute({
|
|
1181
1191
|
request,
|
|
1182
|
-
inputData
|
|
1192
|
+
inputData,
|
|
1183
1193
|
});
|
|
1184
1194
|
}
|
|
1185
1195
|
generateRequestId(scope, selectorName, inputData) {
|
|
@@ -2161,10 +2171,12 @@ class ConfigurationStateService {
|
|
|
2161
2171
|
this.flowStateApiService = flowStateApiService;
|
|
2162
2172
|
this.quoteApiService = quoteApiService;
|
|
2163
2173
|
this.NOT_INITIALIZED = Symbol();
|
|
2174
|
+
this.executedFunctions = {};
|
|
2164
2175
|
this.stateId = null;
|
|
2165
2176
|
this.ownerId = '';
|
|
2166
2177
|
this.subscriptions = {};
|
|
2167
2178
|
this.isInitialized$ = new BehaviorSubject(false);
|
|
2179
|
+
this.canceledConfiguration$ = new Subject();
|
|
2168
2180
|
}
|
|
2169
2181
|
init$() {
|
|
2170
2182
|
let request$;
|
|
@@ -2174,7 +2186,10 @@ class ConfigurationStateService {
|
|
|
2174
2186
|
else {
|
|
2175
2187
|
request$ = this.initStateless$();
|
|
2176
2188
|
}
|
|
2177
|
-
return request$.pipe(finalize(() =>
|
|
2189
|
+
return request$.pipe(finalize(() => {
|
|
2190
|
+
this.isInitialized$.next(true);
|
|
2191
|
+
this.canceledConfiguration$ = new Subject();
|
|
2192
|
+
}));
|
|
2178
2193
|
}
|
|
2179
2194
|
cleanup() {
|
|
2180
2195
|
this.stateId = null;
|
|
@@ -2243,10 +2258,13 @@ class ConfigurationStateService {
|
|
|
2243
2258
|
}
|
|
2244
2259
|
}
|
|
2245
2260
|
return this.subscriptions[requestId].data$.pipe(filter$1(data => data != this.NOT_INITIALIZED), map$1(data => data), finalize(() => {
|
|
2261
|
+
if (!this.subscriptions[requestId]) {
|
|
2262
|
+
return;
|
|
2263
|
+
}
|
|
2246
2264
|
if (!this.subscriptions[requestId].data$.observed) {
|
|
2247
2265
|
delete this.subscriptions[requestId];
|
|
2248
2266
|
}
|
|
2249
|
-
}));
|
|
2267
|
+
}), takeUntil(this.canceledConfiguration$));
|
|
2250
2268
|
}
|
|
2251
2269
|
saveConfiguration(quoteId, flow) {
|
|
2252
2270
|
if (this.isStatefulConfiguration) {
|
|
@@ -2289,6 +2307,9 @@ class ConfigurationStateService {
|
|
|
2289
2307
|
if (!this.isInitialized$.value) {
|
|
2290
2308
|
return of(undefined);
|
|
2291
2309
|
}
|
|
2310
|
+
this.canceledConfiguration$.next();
|
|
2311
|
+
this.canceledConfiguration$.complete();
|
|
2312
|
+
this.subscriptions = {};
|
|
2292
2313
|
this.isInitialized$.next(false);
|
|
2293
2314
|
if (!this.isInitialized$.value || !this.isStatefulConfiguration) {
|
|
2294
2315
|
return of(undefined);
|
|
@@ -2372,24 +2393,29 @@ class ConfigurationStateService {
|
|
|
2372
2393
|
}
|
|
2373
2394
|
executeActionScript(request, processor) {
|
|
2374
2395
|
const { actions } = this.configurationRuntimeService.runtimeContext?.uiDefinitionContainer ?? {};
|
|
2375
|
-
const
|
|
2376
|
-
if (!script) {
|
|
2396
|
+
const configurationProcessor = actions?.find(action => action.apiName === processor.apiName);
|
|
2397
|
+
if (!configurationProcessor?.script) {
|
|
2377
2398
|
return request;
|
|
2378
2399
|
}
|
|
2379
|
-
return this.executeProcessorScript(request,
|
|
2400
|
+
return this.executeProcessorScript(request, configurationProcessor, processor.inputData);
|
|
2380
2401
|
}
|
|
2381
2402
|
executeSelectorScript(request, processor) {
|
|
2382
2403
|
const { selectors } = this.configurationRuntimeService.runtimeContext?.uiDefinitionContainer ?? {};
|
|
2383
|
-
const
|
|
2384
|
-
if (!script) {
|
|
2404
|
+
const configurationProcessor = selectors?.find(selector => selector.apiName === processor.apiName);
|
|
2405
|
+
if (!configurationProcessor?.script) {
|
|
2385
2406
|
return null;
|
|
2386
2407
|
}
|
|
2387
|
-
return this.executeProcessorScript(request,
|
|
2408
|
+
return this.executeProcessorScript(request, configurationProcessor, processor.inputData);
|
|
2388
2409
|
}
|
|
2389
|
-
executeProcessorScript(request,
|
|
2390
|
-
|
|
2410
|
+
executeProcessorScript(request, configurationProcessor, inputData) {
|
|
2411
|
+
let functionToExecute = this.executedFunctions[configurationProcessor.apiName];
|
|
2412
|
+
if (!functionToExecute) {
|
|
2413
|
+
functionToExecute = new Function(`${configurationProcessor.script}\nreturn transform;`)();
|
|
2414
|
+
this.executedFunctions[configurationProcessor.apiName] = functionToExecute;
|
|
2415
|
+
}
|
|
2416
|
+
return functionToExecute({
|
|
2391
2417
|
request,
|
|
2392
|
-
inputData
|
|
2418
|
+
inputData,
|
|
2393
2419
|
});
|
|
2394
2420
|
}
|
|
2395
2421
|
}
|