@veloceapps/sdk 11.0.0-82 → 11.0.0-84
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/cms/vendor-map.d.ts +2 -1
- package/core/modules/configuration/index.d.ts +1 -0
- package/core/modules/configuration/services/configuration.service.d.ts +4 -6
- package/core/modules/configuration/services/guided-selling.service.d.ts +13 -0
- package/core/services/flow-state-configuration.service.d.ts +8 -1
- package/esm2020/cms/vendor-map.mjs +3 -2
- package/esm2020/core/modules/configuration/configuration.module.mjs +4 -1
- package/esm2020/core/modules/configuration/index.mjs +2 -1
- package/esm2020/core/modules/configuration/services/configuration-state.service.mjs +3 -3
- package/esm2020/core/modules/configuration/services/configuration.service.mjs +29 -32
- package/esm2020/core/modules/configuration/services/guided-selling.service.mjs +47 -0
- package/esm2020/core/modules/configuration/services/test-mode-configuration.service.mjs +2 -2
- package/esm2020/core/services/flow-state-configuration.service.mjs +48 -6
- package/esm2020/core/services/flow-state.service.mjs +2 -2
- package/esm2020/src/services/flow-dialog.service.mjs +3 -24
- package/fesm2015/veloceapps-sdk-cms.mjs +2 -1
- package/fesm2015/veloceapps-sdk-cms.mjs.map +1 -1
- package/fesm2015/veloceapps-sdk-core.mjs +101 -40
- package/fesm2015/veloceapps-sdk-core.mjs.map +1 -1
- package/fesm2015/veloceapps-sdk.mjs +2 -23
- package/fesm2015/veloceapps-sdk.mjs.map +1 -1
- package/fesm2020/veloceapps-sdk-cms.mjs +2 -1
- package/fesm2020/veloceapps-sdk-cms.mjs.map +1 -1
- package/fesm2020/veloceapps-sdk-core.mjs +179 -103
- package/fesm2020/veloceapps-sdk-core.mjs.map +1 -1
- package/fesm2020/veloceapps-sdk.mjs +2 -23
- package/fesm2020/veloceapps-sdk.mjs.map +1 -1
- package/package.json +1 -1
- package/src/services/flow-dialog.service.d.ts +1 -4
@@ -1,6 +1,6 @@
|
|
1
1
|
import { Injectable } from '@angular/core';
|
2
2
|
import { OrchestrationsApiService } from '@veloceapps/api/v2';
|
3
|
-
import { extractErrorDetails, isDefined
|
3
|
+
import { extractErrorDetails, isDefined } from '@veloceapps/core';
|
4
4
|
import { cloneDeep } from 'lodash';
|
5
5
|
import { MessageService } from 'primeng/api';
|
6
6
|
import { BehaviorSubject, noop, of, throwError } from 'rxjs';
|
@@ -14,6 +14,18 @@ import * as i2 from "primeng/api";
|
|
14
14
|
import * as i3 from "./configuration-runtime.service";
|
15
15
|
import * as i4 from "@veloceapps/api/v2";
|
16
16
|
export class ConfigurationService {
|
17
|
+
constructor(flowInfoService, messageService, configurationRuntimeService, salesTransactionService, orchestrationsApiService) {
|
18
|
+
this.flowInfoService = flowInfoService;
|
19
|
+
this.messageService = messageService;
|
20
|
+
this.configurationRuntimeService = configurationRuntimeService;
|
21
|
+
this.salesTransactionService = salesTransactionService;
|
22
|
+
this.orchestrationsApiService = orchestrationsApiService;
|
23
|
+
this.hasUnsavedChanges = false;
|
24
|
+
this.configurationStateSubj$ = new BehaviorSubject(null);
|
25
|
+
this.previousConfigurationStateSubj$ = new BehaviorSubject(null);
|
26
|
+
this.isLoadingSubj$ = new BehaviorSubject(false);
|
27
|
+
this.isLoading$ = this.isLoadingSubj$.asObservable();
|
28
|
+
}
|
17
29
|
get state$() {
|
18
30
|
return this.configurationStateSubj$.asObservable().pipe(filter(isDefined));
|
19
31
|
}
|
@@ -29,18 +41,6 @@ export class ConfigurationService {
|
|
29
41
|
get root() {
|
30
42
|
return this.configurationStateSubj$.getValue()?.salesTransaction.salesTransactionItems[0] ?? null;
|
31
43
|
}
|
32
|
-
constructor(flowInfoService, messageService, configurationRuntimeService, salesTransactionService, orchestrationsApiService) {
|
33
|
-
this.flowInfoService = flowInfoService;
|
34
|
-
this.messageService = messageService;
|
35
|
-
this.configurationRuntimeService = configurationRuntimeService;
|
36
|
-
this.salesTransactionService = salesTransactionService;
|
37
|
-
this.orchestrationsApiService = orchestrationsApiService;
|
38
|
-
this.hasUnsavedChanges = false;
|
39
|
-
this.configurationStateSubj$ = new BehaviorSubject(null);
|
40
|
-
this.previousConfigurationStateSubj$ = new BehaviorSubject(null);
|
41
|
-
this.isLoadingSubj$ = new BehaviorSubject(false);
|
42
|
-
this.isLoading$ = this.isLoadingSubj$.asObservable();
|
43
|
-
}
|
44
44
|
reset() {
|
45
45
|
this.hasUnsavedChanges = false;
|
46
46
|
this.configurationStateSubj$.next(null);
|
@@ -69,7 +69,7 @@ export class ConfigurationService {
|
|
69
69
|
salesTransactionItems: transactionItem ? [transactionItem] : [],
|
70
70
|
},
|
71
71
|
};
|
72
|
-
return (isRootGenerated ? this.
|
72
|
+
return (isRootGenerated ? this.configure$(configurationState) : of(configurationState)).pipe(tap(configurationState => {
|
73
73
|
this.configurationStateSubj$.next(configurationState);
|
74
74
|
this.previousConfigurationStateSubj$.next(configurationState);
|
75
75
|
}), map(noop));
|
@@ -90,7 +90,7 @@ export class ConfigurationService {
|
|
90
90
|
salesTransactionItems: [newRoot],
|
91
91
|
},
|
92
92
|
};
|
93
|
-
return this.
|
93
|
+
return this.configure$(newTransactionContext).pipe(catchError(error => {
|
94
94
|
console.error(error);
|
95
95
|
if (!this.configurationRuntimeService.uiDefinitionProps.suppressToastMessages) {
|
96
96
|
this.messageService.add({ severity: 'error', summary: error });
|
@@ -105,34 +105,31 @@ export class ConfigurationService {
|
|
105
105
|
patch(transactionItem) {
|
106
106
|
this.patch$(transactionItem).subscribe();
|
107
107
|
}
|
108
|
-
|
109
|
-
const request = {
|
110
|
-
transactionContext,
|
111
|
-
flowId: this.flowInfoService.flow.id,
|
112
|
-
};
|
108
|
+
configure$(transactionContext) {
|
113
109
|
this.isLoadingSubj$.next(true);
|
114
|
-
return this.
|
110
|
+
return this.justConfigureRequest$(transactionContext).pipe(tap(result => {
|
115
111
|
this.configurationStateSubj$.next(result);
|
116
112
|
this.previousConfigurationStateSubj$.next(cloneDeep(result));
|
117
|
-
}), catchError(
|
113
|
+
}), catchError(e => {
|
118
114
|
const resetState = this.previousConfigurationStateSubj$.getValue();
|
119
115
|
if (resetState) {
|
120
116
|
this.previousConfigurationStateSubj$.next(cloneDeep(resetState));
|
121
117
|
this.configurationStateSubj$.next(resetState);
|
122
118
|
}
|
119
|
+
return throwError(() => e);
|
120
|
+
}), finalize(() => this.isLoadingSubj$.next(false)));
|
121
|
+
}
|
122
|
+
justConfigureRequest$(transactionContext) {
|
123
|
+
const request = {
|
124
|
+
transactionContext,
|
125
|
+
flowId: this.flowInfoService.flow.id,
|
126
|
+
};
|
127
|
+
return this.orchestrationsApiService.apply$(request).pipe(catchError(error => throwError(() => {
|
123
128
|
if (error.error) {
|
124
129
|
return extractErrorDetails(error.error).join('. ');
|
125
130
|
}
|
126
131
|
return error.message || JSON.stringify(error);
|
127
|
-
}))
|
128
|
-
}
|
129
|
-
configureExternal$(props) {
|
130
|
-
// TODO: implement
|
131
|
-
throw new Error('Not implemented');
|
132
|
-
}
|
133
|
-
configureGuidedSelling$(data) {
|
134
|
-
// TODO: implement
|
135
|
-
throw new Error('Not implemented');
|
132
|
+
})));
|
136
133
|
}
|
137
134
|
getPCMModel() {
|
138
135
|
const pcmModel = this.configurationRuntimeService.pcmModel;
|
@@ -147,4 +144,4 @@ ConfigurationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0",
|
|
147
144
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ConfigurationService, decorators: [{
|
148
145
|
type: Injectable
|
149
146
|
}], ctorParameters: function () { return [{ type: i1.FlowInfoService }, { type: i2.MessageService }, { type: i3.ConfigurationRuntimeService }, { type: i1.SalesTransactionService }, { type: i4.OrchestrationsApiService }]; } });
|
150
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvY29yZS9tb2R1bGVzL2NvbmZpZ3VyYXRpb24vc2VydmljZXMvY29uZmlndXJhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLHdCQUF3QixFQUF5QixNQUFNLG9CQUFvQixDQUFDO0FBQ3JGLE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsU0FBUyxHQUtWLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNuQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFjLEVBQUUsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDekUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZUFBZSxFQUFFLHVCQUF1QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDN0UsT0FBTyxFQUFFLHVCQUF1QixFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFaEYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0saUNBQWlDLENBQUM7Ozs7OztBQUc5RSxNQUFNLE9BQU8sb0JBQW9CO0lBUS9CLElBQVcsTUFBTTtRQUNmLE9BQU8sSUFBSSxDQUFDLHVCQUF1QixDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBRUQsSUFBVyxLQUFLO1FBQ2QsT0FBTyxJQUFJ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QzNELElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDYixNQUFNLElBQUksS0FBSyxDQUFDLDJCQUEyQixDQUFDLENBQUM7U0FDOUM7UUFFRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDOztpSEFoTFUsb0JBQW9CO3FIQUFwQixvQkFBb0I7MkZBQXBCLG9CQUFvQjtrQkFEaEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9yY2hlc3RyYXRpb25zQXBpU2VydmljZSwgUHJvY2VkdXJlQXBwbHlSZXF1ZXN0IH0gZnJvbSAnQHZlbG9jZWFwcHMvYXBpL3YyJztcbmltcG9ydCB7XG4gIGV4dHJhY3RFcnJvckRldGFpbHMsXG4gIGlzRGVmaW5lZCxcbiAgUENNTW9kZWwsXG4gIFNhbGVzVHJhbnNhY3Rpb24sXG4gIFNhbGVzVHJhbnNhY3Rpb25JdGVtLFxuICBUcmFuc2FjdGlvbkNvbnRleHQsXG59IGZyb20gJ0B2ZWxvY2VhcHBzL2NvcmUnO1xuaW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAncHJpbWVuZy9hcGknO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBub29wLCBPYnNlcnZhYmxlLCBvZiwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZmlsdGVyLCBmaW5hbGl6ZSwgbWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBGbG93SW5mb1NlcnZpY2UsIFNhbGVzVHJhbnNhY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgZ2VuZXJhdGVUcmFuc2FjdGlvbkl0ZW0sIFRyYW5zYWN0aW9uSXRlbVdvcmtlciB9IGZyb20gJy4uLy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IEV4dGVybmFsQ29uZmlndXJhdGlvblByb3BzLCBHdWlkZWRTZWxsaW5nU3VibWl0RGF0YSB9IGZyb20gJy4uL3R5cGVzL2NvbmZpZ3VyYXRpb24udHlwZXMnO1xuaW1wb3J0IHsgQ29uZmlndXJhdGlvblJ1bnRpbWVTZXJ2aWNlIH0gZnJvbSAnLi9jb25maWd1cmF0aW9uLXJ1bnRpbWUuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDb25maWd1cmF0aW9uU2VydmljZSB7XG4gIHB1YmxpYyBpc0xvYWRpbmckOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBwdWJsaWMgaGFzVW5zYXZlZENoYW5nZXMgPSBmYWxzZTtcblxuICBwcml2YXRlIGNvbmZpZ3VyYXRpb25TdGF0ZVN1YmokID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUcmFuc2FjdGlvbkNvbnRleHQgfCBudWxsPihudWxsKTtcbiAgcHJpdmF0ZSBwcmV2aW91c0NvbmZpZ3VyYXRpb25TdGF0ZVN1YmokID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUcmFuc2FjdGlvbkNvbnRleHQgfCBudWxsPihudWxsKTtcbiAgcHJpdmF0ZSBpc0xvYWRpbmdTdWJqJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuXG4gIHB1YmxpYyBnZXQgc3RhdGUkKCk6IE9ic2VydmFibGU8VHJhbnNhY3Rpb25Db250ZXh0PiB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlndXJhdGlvblN0YXRlU3ViaiQuYXNPYnNlcnZhYmxlKCkucGlwZShmaWx0ZXIoaXNEZWZpbmVkKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHN0YXRlKCk6IFRyYW5zYWN0aW9uQ29udGV4dCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZ3VyYXRpb25TdGF0ZVN1YmokLmdldFZhbHVlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHByZXZpb3VzU3RhdGUoKTogVHJhbnNhY3Rpb25Db250ZXh0IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMucHJldmlvdXNDb25maWd1cmF0aW9uU3RhdGVTdWJqJC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCByb290JCgpOiBPYnNlcnZhYmxlPFNhbGVzVHJhbnNhY3Rpb25JdGVtPiB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGUkLnBpcGUoXG4gICAgICBtYXAoc3RhdGUgPT4gc3RhdGUuc2FsZXNUcmFuc2FjdGlvbi5zYWxlc1RyYW5zYWN0aW9uSXRlbXNbMF0pLFxuICAgICAgZmlsdGVyKGlzRGVmaW5lZCksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcm9vdCgpOiBTYWxlc1RyYW5zYWN0aW9uSXRlbSB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZ3VyYXRpb25TdGF0ZVN1YmokLmdldFZhbHVlKCk/LnNhbGVzVHJhbnNhY3Rpb24uc2FsZXNUcmFuc2FjdGlvbkl0ZW1zWzBdID8/IG51bGw7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZsb3dJbmZvU2VydmljZTogRmxvd0luZm9TZXJ2aWNlLFxuICAgIHByaXZhdGUgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29uZmlndXJhdGlvblJ1bnRpbWVTZXJ2aWNlOiBDb25maWd1cmF0aW9uUnVudGltZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzYWxlc1RyYW5zYWN0aW9uU2VydmljZTogU2FsZXNUcmFuc2FjdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBvcmNoZXN0cmF0aW9uc0FwaVNlcnZpY2U6IE9yY2hlc3RyYXRpb25zQXBpU2VydmljZSxcbiAgKSB7XG4gICAgdGhpcy5pc0xvYWRpbmckID0gdGhpcy5pc0xvYWRpbmdTdWJqJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyByZXNldCgpOiB2b2lkIHtcbiAgICB0aGlzLmhhc1Vuc2F2ZWRDaGFuZ2VzID0gZmFsc2U7XG5cbiAgICB0aGlzLmNvbmZpZ3VyYXRpb25TdGF0ZVN1YmokLm5leHQobnVsbCk7XG4gICAgdGhpcy5wcmV2aW91c0NvbmZpZ3VyYXRpb25TdGF0ZVN1YmokLm5leHQobnVsbCk7XG4gIH1cblxuICBwdWJsaWMgaW5pdCQoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgY29uc3QgeyBzdGF0ZSB9ID0gdGhpcy5zYWxlc1RyYW5zYWN0aW9uU2VydmljZTtcbiAgICBjb25zdCB7IHByb2R1Y3RJZCwgdHJhbnNhY3Rpb25JdGVtSWQgfSA9IHRoaXMuZmxvd0luZm9TZXJ2aWNlLmNvbnRleHQ7XG5cbiAgICBpZiAoIXN0YXRlIHx8ICFwcm9kdWN0SWQpIHtcbiAgICAgIHJldHVybiBvZih1bmRlZmluZWQpO1xuICAgIH1cblxuICAgIGNvbnN0IHNhbGVzVHJhbnNhY3Rpb25JdGVtcyA9IHN0YXRlPy5zYWxlc1RyYW5zYWN0aW9uLnNhbGVzVHJhbnNhY3Rpb25JdGVtcyA/PyBbXTtcbiAgICBsZXQgaXNSb290R2VuZXJhdGVkID0gZmFsc2U7XG4gICAgbGV0IHRyYW5zYWN0aW9uSXRlbSA9IHNhbGVzVHJhbnNhY3Rpb25JdGVtcy5maW5kKGl0ZW0gPT4gaXRlbS5pZCA9PT0gdHJhbnNhY3Rpb25JdGVtSWQpO1xuICAgIGlmICghdHJhbnNhY3Rpb25JdGVtKSB7XG4gICAgICB0cmFuc2FjdGlvbkl0ZW0gPSBzYWxlc1RyYW5zYWN0aW9uSXRlbXMuZmluZChpdGVtID0+IGl0ZW0ucHJvZHVjdElkID09PSBwcm9kdWN0SWQpO1xuICAgIH1cblxuICAgIGlmICghdHJhbnNhY3Rpb25JdGVtKSB7XG4gICAgICB0cmFuc2FjdGlvbkl0ZW0gPSBnZW5lcmF0ZVRyYW5zYWN0aW9uSXRlbShwcm9kdWN0SWQpO1xuICAgICAgaXNSb290R2VuZXJhdGVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBjb25zdCBjb25maWd1cmF0aW9uU3RhdGU6IFRyYW5zYWN0aW9uQ29udGV4dCA9IHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgc2FsZXNUcmFuc2FjdGlvbjoge1xuICAgICAgICAuLi5zdGF0ZS5zYWxlc1RyYW5zYWN0aW9uLFxuICAgICAgICBzYWxlc1RyYW5zYWN0aW9uSXRlbXM6IHRyYW5zYWN0aW9uSXRlbSA/IFt0cmFuc2FjdGlvbkl0ZW1dIDogW10sXG4gICAgICB9LFxuICAgIH07XG5cbiAgICByZXR1cm4gKGlzUm9vdEdlbmVyYXRlZCA/IHRoaXMuY29uZmlndXJlUmVxdWVzdCQoY29uZmlndXJhdGlvblN0YXRlKSA6IG9mKGNvbmZpZ3VyYXRpb25TdGF0ZSkpLnBpcGUoXG4gICAgICB0YXAoY29uZmlndXJhdGlvblN0YXRlID0+IHtcbiAgICAgICAgdGhpcy5jb25maWd1cmF0aW9uU3RhdGVTdWJqJC5uZXh0KGNvbmZpZ3VyYXRpb25TdGF0ZSk7XG4gICAgICAgIHRoaXMucHJldmlvdXNDb25maWd1cmF0aW9uU3RhdGVTdWJqJC5uZXh0KGNvbmZpZ3VyYXRpb25TdGF0ZSk7XG4gICAgICB9KSxcbiAgICAgIG1hcChub29wKSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHBhdGNoJCh0cmFuc2FjdGlvbkl0ZW06IFNhbGVzVHJhbnNhY3Rpb25JdGVtKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgY29uc3QgeyBzdGF0ZSwgcm9vdCB9ID0gdGhpcztcblxuICAgIGlmICghc3RhdGUpIHtcbiAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IG5ldyBFcnJvcihgQ29uZmlndXJhdGlvbiBTdGF0ZSBpcyBub3QgaW5pdGlhbGl6ZWRgKSk7XG4gICAgfVxuICAgIGlmICghcm9vdCkge1xuICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKGBSb290IFNhbGVzVHJhbnNhY3Rpb25JdGVtIG5vdCBmb3VuZGApKTtcbiAgICB9XG5cbiAgICBjb25zdCBuZXdSb290ID0gbmV3IFRyYW5zYWN0aW9uSXRlbVdvcmtlcihyb290KS5yZXBsYWNlKHRyYW5zYWN0aW9uSXRlbSkudGk7XG4gICAgY29uc3QgbmV3VHJhbnNhY3Rpb25Db250ZXh0OiBUcmFuc2FjdGlvbkNvbnRleHQgPSB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIHNhbGVzVHJhbnNhY3Rpb246IHtcbiAgICAgICAgLi4uc3RhdGUuc2FsZXNUcmFuc2FjdGlvbixcbiAgICAgICAgc2FsZXNUcmFuc2FjdGlvbkl0ZW1zOiBbbmV3Um9vdF0sXG4gICAgICB9LFxuICAgIH07XG5cbiAgICByZXR1cm4gdGhpcy5jb25maWd1cmVSZXF1ZXN0JChuZXdUcmFuc2FjdGlvbkNvbnRleHQpLnBpcGUoXG4gICAgICBjYXRjaEVycm9yKGVycm9yID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG5cbiAgICAgICAgaWYgKCF0aGlzLmNvbmZpZ3VyYXRpb25SdW50aW1lU2VydmljZS51aURlZmluaXRpb25Qcm9wcy5zdXBwcmVzc1RvYXN0TWVzc2FnZXMpIHtcbiAgICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnZXJyb3InLCBzdW1tYXJ5OiBlcnJvciB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IGVycm9yKTtcbiAgICAgIH0pLFxuICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLmhhc1Vuc2F2ZWRDaGFuZ2VzKSB7XG4gICAgICAgICAgdGhpcy5oYXNVbnNhdmVkQ2hhbmdlcyA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgICAgbWFwKG5vb3ApLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgcGF0Y2godHJhbnNhY3Rpb25JdGVtOiBTYWxlc1RyYW5zYWN0aW9uSXRlbSk6IHZvaWQge1xuICAgIHRoaXMucGF0Y2gkKHRyYW5zYWN0aW9uSXRlbSkuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgY29uZmlndXJlUmVxdWVzdCQodHJhbnNhY3Rpb25Db250ZXh0OiBUcmFuc2FjdGlvbkNvbnRleHQpOiBPYnNlcnZhYmxlPFRyYW5zYWN0aW9uQ29udGV4dD4ge1xuICAgIGNvbnN0IHJlcXVlc3Q6IFByb2NlZHVyZUFwcGx5UmVxdWVzdCA9IHtcbiAgICAgIHRyYW5zYWN0aW9uQ29udGV4dCxcbiAgICAgIGZsb3dJZDogdGhpcy5mbG93SW5mb1NlcnZpY2UuZmxvdy5pZCxcbiAgICB9O1xuXG4gICAgdGhpcy5pc0xvYWRpbmdTdWJqJC5uZXh0KHRydWUpO1xuXG4gICAgcmV0dXJuIHRoaXMub3JjaGVzdHJhdGlvbnNBcGlTZXJ2aWNlLmFwcGx5JChyZXF1ZXN0KS5waXBlKFxuICAgICAgdGFwKHJlc3VsdCA9PiB7XG4gICAgICAgIHRoaXMuY29uZmlndXJhdGlvblN0YXRlU3ViaiQubmV4dChyZXN1bHQpO1xuICAgICAgICB0aGlzLnByZXZpb3VzQ29uZmlndXJhdGlvblN0YXRlU3ViaiQubmV4dChjbG9uZURlZXAocmVzdWx0KSk7XG4gICAgICB9KSxcbiAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT5cbiAgICAgICAgdGhyb3dFcnJvcigoKSA9PiB7XG4gICAgICAgICAgY29uc3QgcmVzZXRTdGF0ZSA9IHRoaXMucHJldmlvdXNDb25maWd1cmF0aW9uU3RhdGVTdWJqJC5nZXRWYWx1ZSgpO1xuICAgICAgICAgIGlmIChyZXNldFN0YXRlKSB7XG4gICAgICAgICAgICB0aGlzLnByZXZpb3VzQ29uZmlndXJhdGlvblN0YXRlU3ViaiQubmV4dChjbG9uZURlZXAocmVzZXRTdGF0ZSkpO1xuICAgICAgICAgICAgdGhpcy5jb25maWd1cmF0aW9uU3RhdGVTdWJqJC5uZXh0KHJlc2V0U3RhdGUpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChlcnJvci5lcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIGV4dHJhY3RFcnJvckRldGFpbHMoZXJyb3IuZXJyb3IpLmpvaW4oJy4gJyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIGVycm9yLm1lc3NhZ2UgfHwgSlNPTi5zdHJpbmdpZnkoZXJyb3IpO1xuICAgICAgICB9KSxcbiAgICAgICksXG4gICAgICBmaW5hbGl6ZSgoKSA9PiB0aGlzLmlzTG9hZGluZ1N1YmokLm5leHQoZmFsc2UpKSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGNvbmZpZ3VyZUV4dGVybmFsJChwcm9wczogRXh0ZXJuYWxDb25maWd1cmF0aW9uUHJvcHMpOiBPYnNlcnZhYmxlPFNhbGVzVHJhbnNhY3Rpb24+IHtcbiAgICAvLyBUT0RPOiBpbXBsZW1lbnRcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpO1xuICB9XG5cbiAgcHVibGljIGNvbmZpZ3VyZUd1aWRlZFNlbGxpbmckKGRhdGE6IEd1aWRlZFNlbGxpbmdTdWJtaXREYXRhKTogT2JzZXJ2YWJsZTxTYWxlc1RyYW5zYWN0aW9uPiB7XG4gICAgLy8gVE9ETzogaW1wbGVtZW50XG4gICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRQQ01Nb2RlbCgpOiBQQ01Nb2RlbCB7XG4gICAgY29uc3QgcGNtTW9kZWwgPSB0aGlzLmNvbmZpZ3VyYXRpb25SdW50aW1lU2VydmljZS5wY21Nb2RlbDtcbiAgICBpZiAoIXBjbU1vZGVsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1BDTSBtb2RlbCBub3QgaW5pdGlhbGl6ZWQnKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcGNtTW9kZWw7XG4gIH1cbn1cbiJdfQ==
|
147
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvY29yZS9tb2R1bGVzL2NvbmZpZ3VyYXRpb24vc2VydmljZXMvY29uZmlndXJhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLHdCQUF3QixFQUF5QixNQUFNLG9CQUFvQixDQUFDO0FBQ3JGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxTQUFTLEVBQXNELE1BQU0sa0JBQWtCLENBQUM7QUFDdEgsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNuQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFjLEVBQUUsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDekUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZUFBZSxFQUFFLHVCQUF1QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDN0UsT0FBTyxFQUFFLHVCQUF1QixFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0saUNBQWlDLENBQUM7Ozs7OztBQUc5RSxNQUFNLE9BQU8sb0JBQW9CO0lBUS9CLFlBQ1UsZUFBZ0MsRUFDaEMsY0FBOEIsRUFDOUIsMkJBQXdELEVBQ3hELHVCQUFnRCxFQUNoRCx3QkFBa0Q7UUFKbEQsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixnQ0FBMkIsR0FBM0Is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LENBQUM7UUFDM0QsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNiLE1BQU0sSUFBSSxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQztTQUM5QztRQUVELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7O2lIQTlLVSxvQkFBb0I7cUhBQXBCLG9CQUFvQjsyRkFBcEIsb0JBQW9CO2tCQURoQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT3JjaGVzdHJhdGlvbnNBcGlTZXJ2aWNlLCBQcm9jZWR1cmVBcHBseVJlcXVlc3QgfSBmcm9tICdAdmVsb2NlYXBwcy9hcGkvdjInO1xuaW1wb3J0IHsgZXh0cmFjdEVycm9yRGV0YWlscywgaXNEZWZpbmVkLCBQQ01Nb2RlbCwgU2FsZXNUcmFuc2FjdGlvbkl0ZW0sIFRyYW5zYWN0aW9uQ29udGV4dCB9IGZyb20gJ0B2ZWxvY2VhcHBzL2NvcmUnO1xuaW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAncHJpbWVuZy9hcGknO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBub29wLCBPYnNlcnZhYmxlLCBvZiwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZmlsdGVyLCBmaW5hbGl6ZSwgbWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBGbG93SW5mb1NlcnZpY2UsIFNhbGVzVHJhbnNhY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgZ2VuZXJhdGVUcmFuc2FjdGlvbkl0ZW0sIFRyYW5zYWN0aW9uSXRlbVdvcmtlciB9IGZyb20gJy4uLy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25SdW50aW1lU2VydmljZSB9IGZyb20gJy4vY29uZmlndXJhdGlvbi1ydW50aW1lLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ29uZmlndXJhdGlvblNlcnZpY2Uge1xuICBwdWJsaWMgaXNMb2FkaW5nJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgcHVibGljIGhhc1Vuc2F2ZWRDaGFuZ2VzID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBjb25maWd1cmF0aW9uU3RhdGVTdWJqJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VHJhbnNhY3Rpb25Db250ZXh0IHwgbnVsbD4obnVsbCk7XG4gIHByaXZhdGUgcHJldmlvdXNDb25maWd1cmF0aW9uU3RhdGVTdWJqJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VHJhbnNhY3Rpb25Db250ZXh0IHwgbnVsbD4obnVsbCk7XG4gIHByaXZhdGUgaXNMb2FkaW5nU3ViaiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZsb3dJbmZvU2VydmljZTogRmxvd0luZm9TZXJ2aWNlLFxuICAgIHByaXZhdGUgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29uZmlndXJhdGlvblJ1bnRpbWVTZXJ2aWNlOiBDb25maWd1cmF0aW9uUnVudGltZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzYWxlc1RyYW5zYWN0aW9uU2VydmljZTogU2FsZXNUcmFuc2FjdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBvcmNoZXN0cmF0aW9uc0FwaVNlcnZpY2U6IE9yY2hlc3RyYXRpb25zQXBpU2VydmljZSxcbiAgKSB7XG4gICAgdGhpcy5pc0xvYWRpbmckID0gdGhpcy5pc0xvYWRpbmdTdWJqJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc3RhdGUkKCk6IE9ic2VydmFibGU8VHJhbnNhY3Rpb25Db250ZXh0PiB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlndXJhdGlvblN0YXRlU3ViaiQuYXNPYnNlcnZhYmxlKCkucGlwZShmaWx0ZXIoaXNEZWZpbmVkKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHN0YXRlKCk6IFRyYW5zYWN0aW9uQ29udGV4dCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZ3VyYXRpb25TdGF0ZVN1YmokLmdldFZhbHVlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHByZXZpb3VzU3RhdGUoKTogVHJhbnNhY3Rpb25Db250ZXh0IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMucHJldmlvdXNDb25maWd1cmF0aW9uU3RhdGVTdWJqJC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCByb290JCgpOiBPYnNlcnZhYmxlPFNhbGVzVHJhbnNhY3Rpb25JdGVtPiB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGUkLnBpcGUoXG4gICAgICBtYXAoc3RhdGUgPT4gc3RhdGUuc2FsZXNUcmFuc2FjdGlvbi5zYWxlc1RyYW5zYWN0aW9uSXRlbXNbMF0pLFxuICAgICAgZmlsdGVyKGlzRGVmaW5lZCksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcm9vdCgpOiBTYWxlc1RyYW5zYWN0aW9uSXRlbSB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZ3VyYXRpb25TdGF0ZVN1YmokLmdldFZhbHVlKCk/LnNhbGVzVHJhbnNhY3Rpb24uc2FsZXNUcmFuc2FjdGlvbkl0ZW1zWzBdID8/IG51bGw7XG4gIH1cblxuICBwdWJsaWMgcmVzZXQoKTogdm9pZCB7XG4gICAgdGhpcy5oYXNVbnNhdmVkQ2hhbmdlcyA9IGZhbHNlO1xuXG4gICAgdGhpcy5jb25maWd1cmF0aW9uU3RhdGVTdWJqJC5uZXh0KG51bGwpO1xuICAgIHRoaXMucHJldmlvdXNDb25maWd1cmF0aW9uU3RhdGVTdWJqJC5uZXh0KG51bGwpO1xuICB9XG5cbiAgcHVibGljIGluaXQkKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIGNvbnN0IHsgc3RhdGUgfSA9IHRoaXMuc2FsZXNUcmFuc2FjdGlvblNlcnZpY2U7XG4gICAgY29uc3QgeyBwcm9kdWN0SWQsIHRyYW5zYWN0aW9uSXRlbUlkIH0gPSB0aGlzLmZsb3dJbmZvU2VydmljZS5jb250ZXh0O1xuXG4gICAgaWYgKCFzdGF0ZSB8fCAhcHJvZHVjdElkKSB7XG4gICAgICByZXR1cm4gb2YodW5kZWZpbmVkKTtcbiAgICB9XG5cbiAgICBjb25zdCBzYWxlc1RyYW5zYWN0aW9uSXRlbXMgPSBzdGF0ZT8uc2FsZXNUcmFuc2FjdGlvbi5zYWxlc1RyYW5zYWN0aW9uSXRlbXMgPz8gW107XG4gICAgbGV0IGlzUm9vdEdlbmVyYXRlZCA9IGZhbHNlO1xuICAgIGxldCB0cmFuc2FjdGlvbkl0ZW0gPSBzYWxlc1RyYW5zYWN0aW9uSXRlbXMuZmluZChpdGVtID0+IGl0ZW0uaWQgPT09IHRyYW5zYWN0aW9uSXRlbUlkKTtcbiAgICBpZiAoIXRyYW5zYWN0aW9uSXRlbSkge1xuICAgICAgdHJhbnNhY3Rpb25JdGVtID0gc2FsZXNUcmFuc2FjdGlvbkl0ZW1zLmZpbmQoaXRlbSA9PiBpdGVtLnByb2R1Y3RJZCA9PT0gcHJvZHVjdElkKTtcbiAgICB9XG5cbiAgICBpZiAoIXRyYW5zYWN0aW9uSXRlbSkge1xuICAgICAgdHJhbnNhY3Rpb25JdGVtID0gZ2VuZXJhdGVUcmFuc2FjdGlvbkl0ZW0ocHJvZHVjdElkKTtcbiAgICAgIGlzUm9vdEdlbmVyYXRlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgY29uc3QgY29uZmlndXJhdGlvblN0YXRlOiBUcmFuc2FjdGlvbkNvbnRleHQgPSB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIHNhbGVzVHJhbnNhY3Rpb246IHtcbiAgICAgICAgLi4uc3RhdGUuc2FsZXNUcmFuc2FjdGlvbixcbiAgICAgICAgc2FsZXNUcmFuc2FjdGlvbkl0ZW1zOiB0cmFuc2FjdGlvbkl0ZW0gPyBbdHJhbnNhY3Rpb25JdGVtXSA6IFtdLFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIChpc1Jvb3RHZW5lcmF0ZWQgPyB0aGlzLmNvbmZpZ3VyZSQoY29uZmlndXJhdGlvblN0YXRlKSA6IG9mKGNvbmZpZ3VyYXRpb25TdGF0ZSkpLnBpcGUoXG4gICAgICB0YXAoY29uZmlndXJhdGlvblN0YXRlID0+IHtcbiAgICAgICAgdGhpcy5jb25maWd1cmF0aW9uU3RhdGVTdWJqJC5uZXh0KGNvbmZpZ3VyYXRpb25TdGF0ZSk7XG4gICAgICAgIHRoaXMucHJldmlvdXNDb25maWd1cmF0aW9uU3RhdGVTdWJqJC5uZXh0KGNvbmZpZ3VyYXRpb25TdGF0ZSk7XG4gICAgICB9KSxcbiAgICAgIG1hcChub29wKSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHBhdGNoJCh0cmFuc2FjdGlvbkl0ZW06IFNhbGVzVHJhbnNhY3Rpb25JdGVtKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgY29uc3QgeyBzdGF0ZSwgcm9vdCB9ID0gdGhpcztcblxuICAgIGlmICghc3RhdGUpIHtcbiAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IG5ldyBFcnJvcihgQ29uZmlndXJhdGlvbiBTdGF0ZSBpcyBub3QgaW5pdGlhbGl6ZWRgKSk7XG4gICAgfVxuICAgIGlmICghcm9vdCkge1xuICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKGBSb290IFNhbGVzVHJhbnNhY3Rpb25JdGVtIG5vdCBmb3VuZGApKTtcbiAgICB9XG5cbiAgICBjb25zdCBuZXdSb290ID0gbmV3IFRyYW5zYWN0aW9uSXRlbVdvcmtlcihyb290KS5yZXBsYWNlKHRyYW5zYWN0aW9uSXRlbSkudGk7XG4gICAgY29uc3QgbmV3VHJhbnNhY3Rpb25Db250ZXh0OiBUcmFuc2FjdGlvbkNvbnRleHQgPSB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIHNhbGVzVHJhbnNhY3Rpb246IHtcbiAgICAgICAgLi4uc3RhdGUuc2FsZXNUcmFuc2FjdGlvbixcbiAgICAgICAgc2FsZXNUcmFuc2FjdGlvbkl0ZW1zOiBbbmV3Um9vdF0sXG4gICAgICB9LFxuICAgIH07XG5cbiAgICByZXR1cm4gdGhpcy5jb25maWd1cmUkKG5ld1RyYW5zYWN0aW9uQ29udGV4dCkucGlwZShcbiAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcblxuICAgICAgICBpZiAoIXRoaXMuY29uZmlndXJhdGlvblJ1bnRpbWVTZXJ2aWNlLnVpRGVmaW5pdGlvblByb3BzLnN1cHByZXNzVG9hc3RNZXNzYWdlcykge1xuICAgICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHsgc2V2ZXJpdHk6ICdlcnJvcicsIHN1bW1hcnk6IGVycm9yIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZXJyb3IpO1xuICAgICAgfSksXG4gICAgICB0YXAoKCkgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuaGFzVW5zYXZlZENoYW5nZXMpIHtcbiAgICAgICAgICB0aGlzLmhhc1Vuc2F2ZWRDaGFuZ2VzID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgICBtYXAobm9vcCksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBwYXRjaCh0cmFuc2FjdGlvbkl0ZW06IFNhbGVzVHJhbnNhY3Rpb25JdGVtKTogdm9pZCB7XG4gICAgdGhpcy5wYXRjaCQodHJhbnNhY3Rpb25JdGVtKS5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBjb25maWd1cmUkKHRyYW5zYWN0aW9uQ29udGV4dDogVHJhbnNhY3Rpb25Db250ZXh0KTogT2JzZXJ2YWJsZTxUcmFuc2FjdGlvbkNvbnRleHQ+IHtcbiAgICB0aGlzLmlzTG9hZGluZ1N1YmokLm5leHQodHJ1ZSk7XG5cbiAgICByZXR1cm4gdGhpcy5qdXN0Q29uZmlndXJlUmVxdWVzdCQodHJhbnNhY3Rpb25Db250ZXh0KS5waXBlKFxuICAgICAgdGFwKHJlc3VsdCA9PiB7XG4gICAgICAgIHRoaXMuY29uZmlndXJhdGlvblN0YXRlU3ViaiQubmV4dChyZXN1bHQpO1xuICAgICAgICB0aGlzLnByZXZpb3VzQ29uZmlndXJhdGlvblN0YXRlU3ViaiQubmV4dChjbG9uZURlZXAocmVzdWx0KSk7XG4gICAgICB9KSxcbiAgICAgIGNhdGNoRXJyb3IoZSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc2V0U3RhdGUgPSB0aGlzLnByZXZpb3VzQ29uZmlndXJhdGlvblN0YXRlU3ViaiQuZ2V0VmFsdWUoKTtcbiAgICAgICAgaWYgKHJlc2V0U3RhdGUpIHtcbiAgICAgICAgICB0aGlzLnByZXZpb3VzQ29uZmlndXJhdGlvblN0YXRlU3ViaiQubmV4dChjbG9uZURlZXAocmVzZXRTdGF0ZSkpO1xuICAgICAgICAgIHRoaXMuY29uZmlndXJhdGlvblN0YXRlU3ViaiQubmV4dChyZXNldFN0YXRlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IGUpO1xuICAgICAgfSksXG4gICAgICBmaW5hbGl6ZSgoKSA9PiB0aGlzLmlzTG9hZGluZ1N1YmokLm5leHQoZmFsc2UpKSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGp1c3RDb25maWd1cmVSZXF1ZXN0JCh0cmFuc2FjdGlvbkNvbnRleHQ6IFRyYW5zYWN0aW9uQ29udGV4dCk6IE9ic2VydmFibGU8VHJhbnNhY3Rpb25Db250ZXh0PiB7XG4gICAgY29uc3QgcmVxdWVzdDogUHJvY2VkdXJlQXBwbHlSZXF1ZXN0ID0ge1xuICAgICAgdHJhbnNhY3Rpb25Db250ZXh0LFxuICAgICAgZmxvd0lkOiB0aGlzLmZsb3dJbmZvU2VydmljZS5mbG93LmlkLFxuICAgIH07XG5cbiAgICByZXR1cm4gdGhpcy5vcmNoZXN0cmF0aW9uc0FwaVNlcnZpY2UuYXBwbHkkKHJlcXVlc3QpLnBpcGUoXG4gICAgICBjYXRjaEVycm9yKGVycm9yID0+XG4gICAgICAgIHRocm93RXJyb3IoKCkgPT4ge1xuICAgICAgICAgIGlmIChlcnJvci5lcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIGV4dHJhY3RFcnJvckRldGFpbHMoZXJyb3IuZXJyb3IpLmpvaW4oJy4gJyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIGVycm9yLm1lc3NhZ2UgfHwgSlNPTi5zdHJpbmdpZnkoZXJyb3IpO1xuICAgICAgICB9KSxcbiAgICAgICksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRQQ01Nb2RlbCgpOiBQQ01Nb2RlbCB7XG4gICAgY29uc3QgcGNtTW9kZWwgPSB0aGlzLmNvbmZpZ3VyYXRpb25SdW50aW1lU2VydmljZS5wY21Nb2RlbDtcbiAgICBpZiAoIXBjbU1vZGVsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1BDTSBtb2RlbCBub3QgaW5pdGlhbGl6ZWQnKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcGNtTW9kZWw7XG4gIH1cbn1cbiJdfQ==
|
@@ -0,0 +1,47 @@
|
|
1
|
+
import { Injectable } from '@angular/core';
|
2
|
+
import { UUID } from '@veloceapps/core';
|
3
|
+
import { OrchestrationsApiService } from '@veloceapps/api/v2';
|
4
|
+
import * as i0 from "@angular/core";
|
5
|
+
import * as i1 from "@veloceapps/api/v2";
|
6
|
+
export class GuidedSellingService {
|
7
|
+
constructor(orchestrationsApiService) {
|
8
|
+
this.orchestrationsApiService = orchestrationsApiService;
|
9
|
+
}
|
10
|
+
configureGuidedSelling$(data) {
|
11
|
+
return this.orchestrationsApiService.apply$({
|
12
|
+
transactionContext: this.getTransactionContext(data.attributesMap),
|
13
|
+
orchestrationName: data.orchestrationName,
|
14
|
+
});
|
15
|
+
}
|
16
|
+
getTransactionContext(guidedSellingAttributes) {
|
17
|
+
const testTransaction = {
|
18
|
+
id: UUID.UUID(),
|
19
|
+
businessObjectType: 'Quote',
|
20
|
+
salesTransactionItems: [],
|
21
|
+
tagAttributes: {},
|
22
|
+
};
|
23
|
+
return {
|
24
|
+
salesTransaction: testTransaction,
|
25
|
+
transactionId: UUID.UUID(),
|
26
|
+
businessObjectType: 'Quote',
|
27
|
+
childNodes: {
|
28
|
+
GuidedSelling: [
|
29
|
+
{
|
30
|
+
id: UUID.UUID(),
|
31
|
+
tagAttributes: {},
|
32
|
+
childNodes: {},
|
33
|
+
properties: { guidedSellingAttributes },
|
34
|
+
},
|
35
|
+
],
|
36
|
+
},
|
37
|
+
id: UUID.UUID(),
|
38
|
+
tagAttributes: {},
|
39
|
+
};
|
40
|
+
}
|
41
|
+
}
|
42
|
+
GuidedSellingService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: GuidedSellingService, deps: [{ token: i1.OrchestrationsApiService }], target: i0.ɵɵFactoryTarget.Injectable });
|
43
|
+
GuidedSellingService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: GuidedSellingService });
|
44
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: GuidedSellingService, decorators: [{
|
45
|
+
type: Injectable
|
46
|
+
}], ctorParameters: function () { return [{ type: i1.OrchestrationsApiService }]; } });
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3VpZGVkLXNlbGxpbmcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2NvcmUvbW9kdWxlcy9jb25maWd1cmF0aW9uL3NlcnZpY2VzL2d1aWRlZC1zZWxsaW5nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQThELElBQUksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBR3BHLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7QUFHOUQsTUFBTSxPQUFPLG9CQUFvQjtJQUMvQixZQUFvQix3QkFBa0Q7UUFBbEQsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtJQUFHLENBQUM7SUFFbkUsdUJBQXVCLENBQUMsSUFBNkI7UUFDMUQsT0FBTyxJQUFJLENBQUMsd0JBQXdCLENBQUMsTUFBTSxDQUFDO1lBQzFDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDO1lBQ2xFLGlCQUFpQixFQUFFLElBQUksQ0FBQyxpQkFBaUI7U0FDMUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLHFCQUFxQixDQUFDLHVCQUE0QztRQUN4RSxNQUFNLGVBQWUsR0FBRztZQUN0QixFQUFFLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNmLGtCQUFrQixFQUFFLE9BQU87WUFDM0IscUJBQXFCLEVBQUUsRUFBNEI7WUFDbkQsYUFBYSxFQUFFLEVBQUU7U0FDRSxDQUFDO1FBRXRCLE9BQU87WUFDTCxnQkFBZ0IsRUFBRSxlQUFlO1lBQ2pDLGFBQWEsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQzFCLGtCQUFrQixFQUFFLE9BQU87WUFDM0IsVUFBVSxFQUFFO2dCQUNWLGFBQWEsRUFBRTtvQkFDYjt3QkFDRSxFQUFFLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRTt3QkFDZixhQUFhLEVBQUUsRUFBRTt3QkFDakIsVUFBVSxFQUFFLEVBQUU7d0JBQ2QsVUFBVSxFQUFFLEVBQUUsdUJBQXVCLEVBQUU7cUJBQ3hDO2lCQUNGO2FBQ0Y7WUFDRCxFQUFFLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNmLGFBQWEsRUFBRSxFQUFFO1NBQ2xCLENBQUM7SUFDSixDQUFDOztpSEFuQ1Usb0JBQW9CO3FIQUFwQixvQkFBb0I7MkZBQXBCLG9CQUFvQjtrQkFEaEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNhbGVzVHJhbnNhY3Rpb24sIFNhbGVzVHJhbnNhY3Rpb25JdGVtLCBUcmFuc2FjdGlvbkNvbnRleHQsIFVVSUQgfSBmcm9tICdAdmVsb2NlYXBwcy9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEd1aWRlZFNlbGxpbmdTdWJtaXREYXRhIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgT3JjaGVzdHJhdGlvbnNBcGlTZXJ2aWNlIH0gZnJvbSAnQHZlbG9jZWFwcHMvYXBpL3YyJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEd1aWRlZFNlbGxpbmdTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBvcmNoZXN0cmF0aW9uc0FwaVNlcnZpY2U6IE9yY2hlc3RyYXRpb25zQXBpU2VydmljZSkge31cblxuICBwdWJsaWMgY29uZmlndXJlR3VpZGVkU2VsbGluZyQoZGF0YTogR3VpZGVkU2VsbGluZ1N1Ym1pdERhdGEpOiBPYnNlcnZhYmxlPFRyYW5zYWN0aW9uQ29udGV4dD4ge1xuICAgIHJldHVybiB0aGlzLm9yY2hlc3RyYXRpb25zQXBpU2VydmljZS5hcHBseSQoe1xuICAgICAgdHJhbnNhY3Rpb25Db250ZXh0OiB0aGlzLmdldFRyYW5zYWN0aW9uQ29udGV4dChkYXRhLmF0dHJpYnV0ZXNNYXApLFxuICAgICAgb3JjaGVzdHJhdGlvbk5hbWU6IGRhdGEub3JjaGVzdHJhdGlvbk5hbWUsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldFRyYW5zYWN0aW9uQ29udGV4dChndWlkZWRTZWxsaW5nQXR0cmlidXRlczogUmVjb3JkPHN0cmluZywgYW55Pik6IFRyYW5zYWN0aW9uQ29udGV4dCB7XG4gICAgY29uc3QgdGVzdFRyYW5zYWN0aW9uID0ge1xuICAgICAgaWQ6IFVVSUQuVVVJRCgpLFxuICAgICAgYnVzaW5lc3NPYmplY3RUeXBlOiAnUXVvdGUnLFxuICAgICAgc2FsZXNUcmFuc2FjdGlvbkl0ZW1zOiBbXSBhcyBTYWxlc1RyYW5zYWN0aW9uSXRlbVtdLFxuICAgICAgdGFnQXR0cmlidXRlczoge30sXG4gICAgfSBhcyBTYWxlc1RyYW5zYWN0aW9uO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHNhbGVzVHJhbnNhY3Rpb246IHRlc3RUcmFuc2FjdGlvbixcbiAgICAgIHRyYW5zYWN0aW9uSWQ6IFVVSUQuVVVJRCgpLFxuICAgICAgYnVzaW5lc3NPYmplY3RUeXBlOiAnUXVvdGUnLFxuICAgICAgY2hpbGROb2Rlczoge1xuICAgICAgICBHdWlkZWRTZWxsaW5nOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWQ6IFVVSUQuVVVJRCgpLFxuICAgICAgICAgICAgdGFnQXR0cmlidXRlczoge30sXG4gICAgICAgICAgICBjaGlsZE5vZGVzOiB7fSxcbiAgICAgICAgICAgIHByb3BlcnRpZXM6IHsgZ3VpZGVkU2VsbGluZ0F0dHJpYnV0ZXMgfSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICAgIGlkOiBVVUlELlVVSUQoKSxcbiAgICAgIHRhZ0F0dHJpYnV0ZXM6IHt9LFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
@@ -44,7 +44,7 @@ export class TestModeConfigurationService {
|
|
44
44
|
initConfiguration$(quoteId) {
|
45
45
|
this.salesTransactionService.setState(this.getTestTransactionContext(quoteId));
|
46
46
|
return this.configurationService.init$().pipe(switchMap(() => this.configurationService.state
|
47
|
-
? this.configurationService.
|
47
|
+
? this.configurationService.configure$(this.configurationService.state)
|
48
48
|
: of(undefined)), map(noop));
|
49
49
|
}
|
50
50
|
getTestTransactionContext(quoteId) {
|
@@ -71,4 +71,4 @@ TestModeConfigurationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "
|
|
71
71
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TestModeConfigurationService, decorators: [{
|
72
72
|
type: Injectable
|
73
73
|
}], ctorParameters: function () { return [{ type: i1.FlowInfoService }, { type: i2.ConfigurationService }, { type: i3.ConfigurationRuntimeService }, { type: i1.SalesTransactionService }, { type: i1.RuntimeSettingsService }]; } });
|
74
|
-
//# sourceMappingURL=data:application/json;base64,
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC1tb2RlLWNvbmZpZ3VyYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2NvcmUvbW9kdWxlcy9jb25maWd1cmF0aW9uL3NlcnZpY2VzL3Rlc3QtbW9kZS1jb25maWd1cmF0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBTUwsSUFBSSxHQUNMLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQWMsRUFBRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdFLE9BQU8sRUFBRSxlQUFlLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVyRyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7QUFHL0QsTUFBTSxPQUFPLDRCQUE0QjtJQUl2QyxZQUNVLGVBQWdDLEVBQ2hDLG9CQUEwQyxFQUMxQywyQkFBd0QsRUFDeEQsdUJBQWdELEVBQ2hELHNCQUE4QztRQUo5QyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQUMxQyxnQ0FBMkIsR0FBM0IsMkJBQTJCLENBQTZCO1FBQ3hELDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBeUI7UUFDaEQsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQVJoRCxrQkFBYSxHQUFHLEtBQUssQ0FBQztJQVMzQixDQUFDO0lBRUcsYUFBYSxDQUNsQixxQkFBNEMsRUFDNUMsT0FBc0M7UUFFdEMsSUFBSSxDQUFDLDJCQUEyQixDQUFDLHFC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QUU7WUFDZixhQUFhLEVBQUUsRUFBRTtTQUNsQixDQUFDO0lBQ0osQ0FBQztJQUVPLGdCQUFnQixDQUFDLHFCQUE0QztRQUNuRSxPQUFPLElBQUksQ0FBQyxhQUFhLElBQUksQ0FBQyxDQUFDLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsZ0JBQWdCLENBQUM7SUFDM0YsQ0FBQzs7eUhBcEZVLDRCQUE0Qjs2SEFBNUIsNEJBQTRCOzJGQUE1Qiw0QkFBNEI7a0JBRHhDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBQQ01Nb2RlbCxcbiAgU2FsZXNUcmFuc2FjdGlvbixcbiAgU2FsZXNUcmFuc2FjdGlvbkl0ZW0sXG4gIFRyYW5zYWN0aW9uQ29udGV4dCxcbiAgVUlEZWZpbml0aW9uQ29udGFpbmVyLFxuICBVVUlELFxufSBmcm9tICdAdmVsb2NlYXBwcy9jb3JlJztcbmltcG9ydCB7IG1hcCwgbm9vcCwgT2JzZXJ2YWJsZSwgb2YsIHN3aXRjaE1hcCwgdGFwLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGbG93SW5mb1NlcnZpY2UsIFJ1bnRpbWVTZXR0aW5nc1NlcnZpY2UsIFNhbGVzVHJhbnNhY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgVGVzdE1vZGVDb25maWd1cmF0aW9uT3B0aW9ucyB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25SdW50aW1lU2VydmljZSB9IGZyb20gJy4vY29uZmlndXJhdGlvbi1ydW50aW1lLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29uZmlndXJhdGlvblNlcnZpY2UgfSBmcm9tICcuL2NvbmZpZ3VyYXRpb24uc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBUZXN0TW9kZUNvbmZpZ3VyYXRpb25TZXJ2aWNlIHtcbiAgcHJpdmF0ZSBpc0luaXRpYWxpemVkID0gZmFsc2U7XG4gIHByaXZhdGUgcGNtTW9kZWw/OiBQQ01Nb2RlbDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZsb3dJbmZvU2VydmljZTogRmxvd0luZm9TZXJ2aWNlLFxuICAgIHByaXZhdGUgY29uZmlndXJhdGlvblNlcnZpY2U6IENvbmZpZ3VyYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgY29uZmlndXJhdGlvblJ1bnRpbWVTZXJ2aWNlOiBDb25maWd1cmF0aW9uUnVudGltZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzYWxlc1RyYW5zYWN0aW9uU2VydmljZTogU2FsZXNUcmFuc2FjdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBydW50aW1lU2V0dGluZ3NTZXJ2aWNlOiBSdW50aW1lU2V0dGluZ3NTZXJ2aWNlLFxuICApIHt9XG5cbiAgcHVibGljIGluaXRUZXN0TW9kZSQoXG4gICAgdWlEZWZpbml0aW9uQ29udGFpbmVyOiBVSURlZmluaXRpb25Db250YWluZXIsXG4gICAgb3B0aW9ucz86IFRlc3RNb2RlQ29uZmlndXJhdGlvbk9wdGlvbnMsXG4gICk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHRoaXMuY29uZmlndXJhdGlvblJ1bnRpbWVTZXJ2aWNlLnVpRGVmaW5pdGlvbkNvbnRhaW5lciA9IHVpRGVmaW5pdGlvbkNvbnRhaW5lcjtcblxuICAgIGlmICh0aGlzLmNoZWNrSW5pdGlhbGl6ZWQodWlEZWZpbml0aW9uQ29udGFpbmVyKSkge1xuICAgICAgdGhpcy5jb25maWd1cmF0aW9uUnVudGltZVNlcnZpY2UucGNtTW9kZWwgPSB0aGlzLnBjbU1vZGVsO1xuICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZCk7XG4gICAgfVxuICAgIHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2UucmVzZXQoKTtcblxuICAgIGNvbnN0IHsgcHJvZHVjdElkLCBxdW90ZUlkLCBmbG93SWQgfSA9IHVpRGVmaW5pdGlvbkNvbnRhaW5lci5zb3VyY2UucHJvcGVydGllcyA/PyB7fTtcblxuICAgIGlmICghcHJvZHVjdElkKSB7XG4gICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiAnVW5hYmxlIHRvIHN0YXJ0IHRoZSBDb25maWd1cmF0aW9uIFByZXZpZXc6IFByb2R1Y3QgaXMgbWlzc2luZy4nKTtcbiAgICB9XG4gICAgaWYgKCFxdW90ZUlkKSB7XG4gICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBgVW5hYmxlIHRvIHN0YXJ0IHRoZSBDb25maWd1cmF0aW9uIFByZXZpZXc6IFF1b3RlIGlzIG1pc3NpbmcuYCk7XG4gICAgfVxuICAgIGlmICghZmxvd0lkKSB7XG4gICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBgVW5hYmxlIHRvIHN0YXJ0IHRoZSBDb25maWd1cmF0aW9uIFByZXZpZXc6IEZsb3cgaXMgbWlzc2luZy5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5ydW50aW1lU2V0dGluZ3NTZXJ2aWNlLmNyZWF0ZSgpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5mbG93SW5mb1NlcnZpY2UuaW5pdCQoZmxvd0lkLCB7IHByb2R1Y3RJZCwgaGVhZGVySWQ6IHF1b3RlSWQgfSkpLFxuICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuY29uZmlndXJhdGlvblJ1bnRpbWVTZXJ2aWNlLmluaXQkKHsgcHJvZHVjdElkIH0pKSxcbiAgICAgIHRhcChwY21Nb2RlbCA9PiAodGhpcy5wY21Nb2RlbCA9IHBjbU1vZGVsKSksXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4ge1xuICAgICAgICBpZiAob3B0aW9ucz8uY3VzdG9taXphdGlvbk1vZGUpIHtcbiAgICAgICAgICByZXR1cm4gb2YodW5kZWZpbmVkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmluaXRDb25maWd1cmF0aW9uJChxdW90ZUlkKTtcbiAgICAgIH0pLFxuICAgICAgdGFwKCgpID0+ICh0aGlzLmlzSW5pdGlhbGl6ZWQgPSB0cnVlKSksXG4gICAgICBtYXAobm9vcCksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdENvbmZpZ3VyYXRpb24kKHF1b3RlSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHRoaXMuc2FsZXNUcmFuc2FjdGlvblNlcnZpY2Uuc2V0U3RhdGUodGhpcy5nZXRUZXN0VHJhbnNhY3Rpb25Db250ZXh0KHF1b3RlSWQpKTtcblxuICAgIHJldHVybiB0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlLmluaXQkKCkucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoKSA9PlxuICAgICAgICB0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlLnN0YXRlXG4gICAgICAgICAgPyB0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlLmNvbmZpZ3VyZSQodGhpcy5jb25maWd1cmF0aW9uU2VydmljZS5zdGF0ZSlcbiAgICAgICAgICA6IG9mKHVuZGVmaW5lZCksXG4gICAgICApLFxuICAgICAgbWFwKG5vb3ApLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGdldFRlc3RUcmFuc2FjdGlvbkNvbnRleHQocXVvdGVJZDogc3RyaW5nKTogVHJhbnNhY3Rpb25Db250ZXh0IHtcbiAgICBjb25zdCB0ZXN0VHJhbnNhY3Rpb24gPSB7XG4gICAgICBpZDogcXVvdGVJZCxcbiAgICAgIGJ1c2luZXNzT2JqZWN0VHlwZTogJ1F1b3RlJyxcbiAgICAgIHNhbGVzVHJhbnNhY3Rpb25JdGVtczogW10gYXMgU2FsZXNUcmFuc2FjdGlvbkl0ZW1bXSxcbiAgICB9IGFzIFNhbGVzVHJhbnNhY3Rpb247XG5cbiAgICByZXR1cm4ge1xuICAgICAgc2FsZXNUcmFuc2FjdGlvbjogdGVzdFRyYW5zYWN0aW9uLFxuICAgICAgdHJhbnNhY3Rpb25JZDogcXVvdGVJZCxcbiAgICAgIGJ1c2luZXNzT2JqZWN0VHlwZTogJ1F1b3RlJyxcbiAgICAgIGNoaWxkTm9kZXM6IHt9LFxuICAgICAgaWQ6IFVVSUQuVVVJRCgpLFxuICAgICAgdGFnQXR0cmlidXRlczoge30sXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tJbml0aWFsaXplZCh1aURlZmluaXRpb25Db250YWluZXI6IFVJRGVmaW5pdGlvbkNvbnRhaW5lcik6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzSW5pdGlhbGl6ZWQgJiYgISF1aURlZmluaXRpb25Db250YWluZXIuc291cmNlLnByb3BlcnRpZXM/LnBlcnNpc3RUZXN0U3RhdGU7XG4gIH1cbn1cbiJdfQ==
|
@@ -1,14 +1,24 @@
|
|
1
1
|
import { Injectable } from '@angular/core';
|
2
2
|
import { map, noop, of, switchMap } from 'rxjs';
|
3
|
+
import { ConfigurationService } from '../modules/configuration/services/configuration.service';
|
4
|
+
import { FlowConfigurationService } from '../modules/flow-configuration/services/flow-configuration.service';
|
5
|
+
import { generateTransactionItem } from '../utils/transaction-item.utils';
|
3
6
|
import { FlowInfoService } from './flow-info.service';
|
4
7
|
import { FlowStateService } from './flow-state.service';
|
8
|
+
import { SalesTransactionService } from './sales-transaction.service';
|
5
9
|
import * as i0 from "@angular/core";
|
6
10
|
import * as i1 from "./flow-info.service";
|
7
11
|
import * as i2 from "./flow-state.service";
|
12
|
+
import * as i3 from "../modules/configuration/services/configuration.service";
|
13
|
+
import * as i4 from "./sales-transaction.service";
|
14
|
+
import * as i5 from "../modules/flow-configuration/services/flow-configuration.service";
|
8
15
|
export class FlowStateConfigurationService {
|
9
|
-
constructor(flowInfoService, flowStateService) {
|
16
|
+
constructor(flowInfoService, flowStateService, configurationService, salesTransactionService, flowConfigurationService) {
|
10
17
|
this.flowInfoService = flowInfoService;
|
11
18
|
this.flowStateService = flowStateService;
|
19
|
+
this.configurationService = configurationService;
|
20
|
+
this.salesTransactionService = salesTransactionService;
|
21
|
+
this.flowConfigurationService = flowConfigurationService;
|
12
22
|
}
|
13
23
|
addToCart$(props) {
|
14
24
|
let request$;
|
@@ -24,15 +34,47 @@ export class FlowStateConfigurationService {
|
|
24
34
|
}
|
25
35
|
}
|
26
36
|
else {
|
27
|
-
|
28
|
-
request$ = of();
|
37
|
+
request$ = this.configureExternal$(props);
|
29
38
|
}
|
30
39
|
return request$.pipe(switchMap(() => this.flowStateService.executeRequest$({}, true)), map(noop));
|
31
40
|
}
|
41
|
+
configureExternal$(props) {
|
42
|
+
const { state } = this.salesTransactionService;
|
43
|
+
if (!state) {
|
44
|
+
return of();
|
45
|
+
}
|
46
|
+
const stateToConfigure = {
|
47
|
+
...state,
|
48
|
+
salesTransaction: {
|
49
|
+
...state.salesTransaction,
|
50
|
+
salesTransactionItems: [
|
51
|
+
{
|
52
|
+
...generateTransactionItem(props.productId),
|
53
|
+
qty: props.qty ?? 1,
|
54
|
+
tagAttributes: props.attributesMap ?? {},
|
55
|
+
},
|
56
|
+
],
|
57
|
+
},
|
58
|
+
};
|
59
|
+
return this.configurationService.justConfigureRequest$(stateToConfigure).pipe(switchMap(configurationResult => {
|
60
|
+
const state = this.salesTransactionService.state;
|
61
|
+
const addedProduct = configurationResult.salesTransaction.salesTransactionItems[0];
|
62
|
+
if (!state || !addedProduct) {
|
63
|
+
return of();
|
64
|
+
}
|
65
|
+
return this.flowConfigurationService.calculate$({
|
66
|
+
...state,
|
67
|
+
salesTransaction: {
|
68
|
+
...state.salesTransaction,
|
69
|
+
salesTransactionItems: [...state.salesTransaction.salesTransactionItems, addedProduct],
|
70
|
+
},
|
71
|
+
});
|
72
|
+
}));
|
73
|
+
}
|
32
74
|
}
|
33
|
-
FlowStateConfigurationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FlowStateConfigurationService, deps: [{ token: i1.FlowInfoService }, { token: i2.FlowStateService }], target: i0.ɵɵFactoryTarget.Injectable });
|
75
|
+
FlowStateConfigurationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FlowStateConfigurationService, deps: [{ token: i1.FlowInfoService }, { token: i2.FlowStateService }, { token: i3.ConfigurationService }, { token: i4.SalesTransactionService }, { token: i5.FlowConfigurationService }], target: i0.ɵɵFactoryTarget.Injectable });
|
34
76
|
FlowStateConfigurationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FlowStateConfigurationService });
|
35
77
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FlowStateConfigurationService, decorators: [{
|
36
78
|
type: Injectable
|
37
|
-
}], ctorParameters: function () { return [{ type: i1.FlowInfoService }, { type: i2.FlowStateService }]; } });
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
79
|
+
}], ctorParameters: function () { return [{ type: i1.FlowInfoService }, { type: i2.FlowStateService }, { type: i3.ConfigurationService }, { type: i4.SalesTransactionService }, { type: i5.FlowConfigurationService }]; } });
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvdy1zdGF0ZS1jb25maWd1cmF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jb3JlL3NlcnZpY2VzL2Zsb3ctc3RhdGUtY29uZmlndXJhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQWMsRUFBRSxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUUvRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxtRUFBbUUsQ0FBQztBQUM3RyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7Ozs7Ozs7QUFHdEUsTUFBTSxPQUFPLDZCQUE2QjtJQUN4QyxZQUNVLGVBQWdDLEVBQ2hDLGdCQUFrQyxFQUNsQyxvQkFBMEMsRUFDMUMsdUJBQWdELEVBQ2hELHdCQUFrRDtRQUpsRCxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBQzFDLDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBeUI7UUFDaEQsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtJQUN6RCxDQUFDO0lBRUcsVUFBVSxDQUFDLEtBQTRCO1FBQzVDLElBQUksUUFBNkIsQ0FBQztRQUNsQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1FBQ2hFLElBQUksUUFBUSxFQUFFO1lBQ1osTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQztZQUM5QyxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNaLFFBQVEsR0FBRyxFQUFFLEVBQUUsQ0FBQzthQUNqQjtpQkFBTTtnQkFDTCxrQkFBa0I7Z0JBQ2xCLFFBQVEsR0FBRyxFQUFFLEVBQUUsQ0FBQzthQUNqQjtTQUNGO2FBQU07WUFDTCxRQUFRLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzNDO1FBRUQsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUNsQixTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFDaEUsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUNWLENBQUM7SUFDSixDQUFDO0lBRU8sa0JBQWtCLENBQUMsS0FBNEI7UUFDckQsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQztRQUMvQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsT0FBTyxFQUFFLEVBQUUsQ0FBQztTQUNiO1FBQ0QsTUFBTSxnQkFBZ0IsR0FBdUI7WUFDM0MsR0FBRyxLQUFLO1lBQ1IsZ0JBQWdCLEVBQUU7Z0JBQ2hCLEdBQUcsS0FBSyxDQUFDLGdCQUFnQjtnQkFDekIscUJBQXFCLEVBQUU7b0JBQ3JCO3dCQUNFLEdBQUcsdUJBQXVCLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQzt3QkFDM0MsR0FBRyxFQUFFLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQzt3QkFDbkIsYUFBYSxFQUFFLEtBQUssQ0FBQyxhQUFhLElBQUksRUFBRTtxQkFDekM7aUJBQ0Y7YUFDRjtTQUNGLENBQUM7UUFFRixPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxxQkFBcUIsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLElBQUksQ0FDM0UsU0FBUyxDQUFDLG1CQUFtQixDQUFDLEVBQUU7WUFDOUIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEtBQUssQ0FBQztZQUNqRCxNQUFNLFlBQVksR0FBRyxtQkFBbUIsQ0FBQyxnQkFBZ0IsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNuRixJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsWUFBWSxFQUFFO2dCQUMzQixPQUFPLEVBQUUsRUFBRSxDQUFDO2FBQ2I7WUFFRCxPQUFPLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxVQUFVLENBQUM7Z0JBQzlDLEdBQUcsS0FBSztnQkFDUixnQkFBZ0IsRUFBRTtvQkFDaEIsR0FBRyxLQUFLLENBQUMsZ0JBQWdCO29CQUN6QixxQkFBcUIsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLGdCQUFnQixDQUFDLHFCQUFxQixFQUFFLFlBQVksQ0FBQztpQkFDdkY7YUFDRixDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQzs7MEhBbEVVLDZCQUE2Qjs4SEFBN0IsNkJBQTZCOzJGQUE3Qiw2QkFBNkI7a0JBRHpDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkNvbnRleHQgfSBmcm9tICdAdmVsb2NlYXBwcy9jb3JlJztcbmltcG9ydCB7IG1hcCwgbm9vcCwgT2JzZXJ2YWJsZSwgb2YsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ29uZmlndXJhdGlvblNlcnZpY2UgfSBmcm9tICcuLi9tb2R1bGVzL2NvbmZpZ3VyYXRpb24vc2VydmljZXMvY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IE5ld0NvbmZpZ3VyYXRpb25Qcm9wcyB9IGZyb20gJy4uL21vZHVsZXMvY29uZmlndXJhdGlvbi90eXBlcy9jb25maWd1cmF0aW9uLnR5cGVzJztcbmltcG9ydCB7IEZsb3dDb25maWd1cmF0aW9uU2VydmljZSB9IGZyb20gJy4uL21vZHVsZXMvZmxvdy1jb25maWd1cmF0aW9uL3NlcnZpY2VzL2Zsb3ctY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IGdlbmVyYXRlVHJhbnNhY3Rpb25JdGVtIH0gZnJvbSAnLi4vdXRpbHMvdHJhbnNhY3Rpb24taXRlbS51dGlscyc7XG5pbXBvcnQgeyBGbG93SW5mb1NlcnZpY2UgfSBmcm9tICcuL2Zsb3ctaW5mby5zZXJ2aWNlJztcbmltcG9ydCB7IEZsb3dTdGF0ZVNlcnZpY2UgfSBmcm9tICcuL2Zsb3ctc3RhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBTYWxlc1RyYW5zYWN0aW9uU2VydmljZSB9IGZyb20gJy4vc2FsZXMtdHJhbnNhY3Rpb24uc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBGbG93U3RhdGVDb25maWd1cmF0aW9uU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZmxvd0luZm9TZXJ2aWNlOiBGbG93SW5mb1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBmbG93U3RhdGVTZXJ2aWNlOiBGbG93U3RhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29uZmlndXJhdGlvblNlcnZpY2U6IENvbmZpZ3VyYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgc2FsZXNUcmFuc2FjdGlvblNlcnZpY2U6IFNhbGVzVHJhbnNhY3Rpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgZmxvd0NvbmZpZ3VyYXRpb25TZXJ2aWNlOiBGbG93Q29uZmlndXJhdGlvblNlcnZpY2UsXG4gICkge31cblxuICBwdWJsaWMgYWRkVG9DYXJ0JChwcm9wczogTmV3Q29uZmlndXJhdGlvblByb3BzKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgbGV0IHJlcXVlc3QkOiBPYnNlcnZhYmxlPHVua25vd24+O1xuICAgIGNvbnN0IHN0YXRlZnVsID0gdGhpcy5mbG93SW5mb1NlcnZpY2UuZmxvdz8ucHJvcGVydGllcy5zdGF0ZWZ1bDtcbiAgICBpZiAoc3RhdGVmdWwpIHtcbiAgICAgIGNvbnN0IHN0YXRlSWQgPSB0aGlzLmZsb3dTdGF0ZVNlcnZpY2Uuc3RhdGVJZDtcbiAgICAgIGlmICghc3RhdGVJZCkge1xuICAgICAgICByZXF1ZXN0JCA9IG9mKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBUT0RPOiBJbXBsZW1lbnRcbiAgICAgICAgcmVxdWVzdCQgPSBvZigpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXF1ZXN0JCA9IHRoaXMuY29uZmlndXJlRXh0ZXJuYWwkKHByb3BzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVxdWVzdCQucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLmZsb3dTdGF0ZVNlcnZpY2UuZXhlY3V0ZVJlcXVlc3QkKHt9LCB0cnVlKSksXG4gICAgICBtYXAobm9vcCksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgY29uZmlndXJlRXh0ZXJuYWwkKHByb3BzOiBOZXdDb25maWd1cmF0aW9uUHJvcHMpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICBjb25zdCB7IHN0YXRlIH0gPSB0aGlzLnNhbGVzVHJhbnNhY3Rpb25TZXJ2aWNlO1xuICAgIGlmICghc3RhdGUpIHtcbiAgICAgIHJldHVybiBvZigpO1xuICAgIH1cbiAgICBjb25zdCBzdGF0ZVRvQ29uZmlndXJlOiBUcmFuc2FjdGlvbkNvbnRleHQgPSB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIHNhbGVzVHJhbnNhY3Rpb246IHtcbiAgICAgICAgLi4uc3RhdGUuc2FsZXNUcmFuc2FjdGlvbixcbiAgICAgICAgc2FsZXNUcmFuc2FjdGlvbkl0ZW1zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgLi4uZ2VuZXJhdGVUcmFuc2FjdGlvbkl0ZW0ocHJvcHMucHJvZHVjdElkKSxcbiAgICAgICAgICAgIHF0eTogcHJvcHMucXR5ID8/IDEsXG4gICAgICAgICAgICB0YWdBdHRyaWJ1dGVzOiBwcm9wcy5hdHRyaWJ1dGVzTWFwID8/IHt9LFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH07XG5cbiAgICByZXR1cm4gdGhpcy5jb25maWd1cmF0aW9uU2VydmljZS5qdXN0Q29uZmlndXJlUmVxdWVzdCQoc3RhdGVUb0NvbmZpZ3VyZSkucGlwZShcbiAgICAgIHN3aXRjaE1hcChjb25maWd1cmF0aW9uUmVzdWx0ID0+IHtcbiAgICAgICAgY29uc3Qgc3RhdGUgPSB0aGlzLnNhbGVzVHJhbnNhY3Rpb25TZXJ2aWNlLnN0YXRlO1xuICAgICAgICBjb25zdCBhZGRlZFByb2R1Y3QgPSBjb25maWd1cmF0aW9uUmVzdWx0LnNhbGVzVHJhbnNhY3Rpb24uc2FsZXNUcmFuc2FjdGlvbkl0ZW1zWzBdO1xuICAgICAgICBpZiAoIXN0YXRlIHx8ICFhZGRlZFByb2R1Y3QpIHtcbiAgICAgICAgICByZXR1cm4gb2YoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmZsb3dDb25maWd1cmF0aW9uU2VydmljZS5jYWxjdWxhdGUkKHtcbiAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICBzYWxlc1RyYW5zYWN0aW9uOiB7XG4gICAgICAgICAgICAuLi5zdGF0ZS5zYWxlc1RyYW5zYWN0aW9uLFxuICAgICAgICAgICAgc2FsZXNUcmFuc2FjdGlvbkl0ZW1zOiBbLi4uc3RhdGUuc2FsZXNUcmFuc2FjdGlvbi5zYWxlc1RyYW5zYWN0aW9uSXRlbXMsIGFkZGVkUHJvZHVjdF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG59XG4iXX0=
|