@veloceapps/sdk 7.0.2-72 → 7.0.2-74

Sign up to get free protection for your applications and to get access to all the features.
Files changed (50) hide show
  1. package/cms/components/preview/preview.component.d.ts +6 -9
  2. package/cms/components/preview/preview.types.d.ts +5 -0
  3. package/cms/services/resources.service.d.ts +9 -0
  4. package/cms/utils/encoding.utils.d.ts +2 -0
  5. package/cms/vendor-map.d.ts +2 -1
  6. package/core/modules/configuration/index.d.ts +1 -0
  7. package/core/modules/configuration/services/configuration-runtime.service.d.ts +4 -3
  8. package/core/modules/configuration/services/configuration.service.d.ts +6 -4
  9. package/core/modules/configuration/services/configuration.state.d.ts +30 -0
  10. package/core/modules/configuration/services/runtime-context.service.d.ts +1 -1
  11. package/core/types/runtime.types.d.ts +2 -2
  12. package/esm2020/cms/components/preview/preview.component.mjs +17 -37
  13. package/esm2020/cms/components/preview/preview.types.mjs +1 -1
  14. package/esm2020/cms/services/resources.service.mjs +19 -1
  15. package/esm2020/cms/utils/element.utils.mjs +8 -8
  16. package/esm2020/cms/utils/encoding.utils.mjs +28 -0
  17. package/esm2020/cms/vendor-map.mjs +3 -2
  18. package/esm2020/core/modules/configuration/configuration.module.mjs +4 -1
  19. package/esm2020/core/modules/configuration/index.mjs +2 -1
  20. package/esm2020/core/modules/configuration/services/configuration-runtime.service.mjs +27 -19
  21. package/esm2020/core/modules/configuration/services/configuration.service.mjs +41 -29
  22. package/esm2020/core/modules/configuration/services/configuration.state.mjs +142 -0
  23. package/esm2020/core/modules/configuration/services/runtime-context.service.mjs +10 -11
  24. package/esm2020/core/services/quote-draft.service.mjs +1 -1
  25. package/esm2020/core/types/runtime.types.mjs +1 -1
  26. package/esm2020/src/components/doc-gen/doc-gen.component.mjs +1 -1
  27. package/esm2020/src/components/guided-selling/guided-selling.component.mjs +1 -1
  28. package/esm2020/src/pages/assets/assets.component.mjs +1 -1
  29. package/esm2020/src/pages/catalog/catalog.component.mjs +1 -1
  30. package/esm2020/src/pages/legacy-product/legacy-product.component.mjs +4 -4
  31. package/esm2020/src/pages/product/product.component.mjs +50 -66
  32. package/esm2020/src/pages/remote/remote.component.mjs +19 -19
  33. package/esm2020/src/pages/shopping-cart/shopping-cart.component.mjs +1 -1
  34. package/esm2020/src/types/flow-customization.types.mjs +1 -1
  35. package/fesm2015/veloceapps-sdk-cms.mjs +79 -50
  36. package/fesm2015/veloceapps-sdk-cms.mjs.map +1 -1
  37. package/fesm2015/veloceapps-sdk-core.mjs +214 -59
  38. package/fesm2015/veloceapps-sdk-core.mjs.map +1 -1
  39. package/fesm2015/veloceapps-sdk.mjs +67 -80
  40. package/fesm2015/veloceapps-sdk.mjs.map +1 -1
  41. package/fesm2020/veloceapps-sdk-cms.mjs +76 -50
  42. package/fesm2020/veloceapps-sdk-cms.mjs.map +1 -1
  43. package/fesm2020/veloceapps-sdk-core.mjs +206 -55
  44. package/fesm2020/veloceapps-sdk-core.mjs.map +1 -1
  45. package/fesm2020/veloceapps-sdk.mjs +64 -76
  46. package/fesm2020/veloceapps-sdk.mjs.map +1 -1
  47. package/package.json +1 -1
  48. package/src/pages/product/product.component.d.ts +10 -21
  49. package/src/pages/remote/remote.component.d.ts +3 -4
  50. package/src/types/flow-customization.types.d.ts +3 -3
@@ -0,0 +1,142 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { StatefulConfigurationApiService } from '@veloceapps/api';
3
+ import { ToastService, ToastType } from '@veloceapps/components';
4
+ import { EntityUtil, UUID, } from '@veloceapps/core';
5
+ import { omit } from 'lodash';
6
+ import { BehaviorSubject, map, of, switchMap, tap } from 'rxjs';
7
+ import { ConfigurationRuntimeService } from './configuration-runtime.service';
8
+ import { ConfigurationService } from './configuration.service';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "@veloceapps/api";
11
+ import * as i2 from "./configuration-runtime.service";
12
+ import * as i3 from "./configuration.service";
13
+ import * as i4 from "@veloceapps/components";
14
+ export class ConfigurationState {
15
+ constructor(statefulConfigurationApiService, runtimeService, configurationService, toastService) {
16
+ this.statefulConfigurationApiService = statefulConfigurationApiService;
17
+ this.runtimeService = runtimeService;
18
+ this.configurationService = configurationService;
19
+ this.toastService = toastService;
20
+ this.stateSubj$ = new BehaviorSubject({});
21
+ this.state$ = this.stateSubj$.asObservable();
22
+ this.stateId = null;
23
+ }
24
+ init$() {
25
+ return this.configurationService.configure().pipe(switchMap(() => {
26
+ if (!this.isStatefulConfiguration) {
27
+ return of(undefined);
28
+ }
29
+ const { actions, selectors } = this.runtimeService.runtimeContext?.uiDefinitionContainer ?? {};
30
+ return this.statefulConfigurationApiService.init({
31
+ request: this.configurationService.generateRequest(),
32
+ actions: actions?.map(action => ({ name: action.apiName, script: action.script })),
33
+ selectors: selectors?.map(selector => ({ name: selector.apiName, script: selector.script })),
34
+ });
35
+ }), tap(stateId => (this.stateId = stateId || null)), map(() => undefined));
36
+ }
37
+ cleanup() {
38
+ this.stateId = null;
39
+ this.configurationService.reset();
40
+ this.stateSubj$.next({});
41
+ }
42
+ execute$(req) {
43
+ if (this.isStatefulConfiguration) {
44
+ return this.executeStateful$(req);
45
+ }
46
+ else {
47
+ return this.executeStateless$(req);
48
+ }
49
+ }
50
+ dispatch$(actionName, inputData) {
51
+ return this.execute$({ actions: [{ name: actionName, inputData }] });
52
+ }
53
+ select$(selectorName, inputData) {
54
+ const requestId = UUID.UUID();
55
+ return this.execute$({
56
+ selectors: {
57
+ [requestId]: {
58
+ name: selectorName,
59
+ inputData,
60
+ },
61
+ },
62
+ }).pipe(map(() => this.stateSubj$.value[requestId]), tap(() => this.stateSubj$.next(omit(this.stateSubj$.value, requestId))));
63
+ }
64
+ get isStatefulConfiguration() {
65
+ return this.runtimeService.uiDefinitionProperties.statefulConfigurationEnabled ?? false;
66
+ }
67
+ executeStateless$(request) {
68
+ return of(undefined).pipe(switchMap(() => {
69
+ // Apply actions and execute configuration/price call
70
+ // No need to run configuration if no actions in the request
71
+ if (!request.actions?.length) {
72
+ return of(undefined);
73
+ }
74
+ let configurationRequest = this.configurationService.generateRequest();
75
+ request.actions.forEach(action => {
76
+ configurationRequest = this.executeActionScript(configurationRequest, action) ?? configurationRequest;
77
+ });
78
+ return this.configurationService.configureRequest$(configurationRequest);
79
+ }), tap(() => {
80
+ if (!request.selectors) {
81
+ return;
82
+ }
83
+ // Run selectors and apply them to the state
84
+ const finalConfigurationRequest = this.configurationService.generateRequest();
85
+ const selectorsResult = EntityUtil.entries(request.selectors).reduce((trunk, [key, selector]) => {
86
+ trunk[key] = this.executeSelectorScript(finalConfigurationRequest, selector);
87
+ return trunk;
88
+ }, {});
89
+ this.stateSubj$.next({
90
+ ...this.stateSubj$.value,
91
+ ...selectorsResult,
92
+ });
93
+ }), map(() => undefined));
94
+ }
95
+ executeStateful$(request) {
96
+ if (!this.stateId) {
97
+ return of(undefined);
98
+ }
99
+ return this.statefulConfigurationApiService.execute(this.stateId, request).pipe(tap(response => {
100
+ this.stateId = response.stateId;
101
+ const updatedState = this.stateSubj$.value;
102
+ EntityUtil.entries(response.selectors).forEach(([key, value]) => {
103
+ if (!value.success) {
104
+ if (!this.runtimeService.uiDefinitionProperties.suppressToastMessages) {
105
+ this.toastService.add({ summary: value.errorMessage, severity: ToastType.error });
106
+ }
107
+ return;
108
+ }
109
+ updatedState[key] = value.result;
110
+ });
111
+ this.stateSubj$.next(updatedState);
112
+ }), map(() => undefined));
113
+ }
114
+ executeActionScript(request, processor) {
115
+ const { actions } = this.runtimeService.runtimeContext?.uiDefinitionContainer ?? {};
116
+ const script = actions?.find(action => action.apiName === processor.name)?.script;
117
+ if (!script) {
118
+ return null;
119
+ }
120
+ return this.executeProcessorScript(request, script, processor.inputData);
121
+ }
122
+ executeSelectorScript(request, processor) {
123
+ const { selectors } = this.runtimeService.runtimeContext?.uiDefinitionContainer ?? {};
124
+ const script = selectors?.find(selector => selector.apiName === processor.name)?.script;
125
+ if (!script) {
126
+ return null;
127
+ }
128
+ return this.executeProcessorScript(request, script, processor.inputData);
129
+ }
130
+ executeProcessorScript(request, script, inputData) {
131
+ return new Function(`${script}\nreturn transform;`)()({
132
+ request,
133
+ inputData: inputData,
134
+ });
135
+ }
136
+ }
137
+ ConfigurationState.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ConfigurationState, deps: [{ token: i1.StatefulConfigurationApiService }, { token: i2.ConfigurationRuntimeService }, { token: i3.ConfigurationService }, { token: i4.ToastService }], target: i0.ɵɵFactoryTarget.Injectable });
138
+ ConfigurationState.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ConfigurationState });
139
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ConfigurationState, decorators: [{
140
+ type: Injectable
141
+ }], ctorParameters: function () { return [{ type: i1.StatefulConfigurationApiService }, { type: i2.ConfigurationRuntimeService }, { type: i3.ConfigurationService }, { type: i4.ToastService }]; } });
142
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi5zdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2NvcmUvbW9kdWxlcy9jb25maWd1cmF0aW9uL3NlcnZpY2VzL2NvbmZpZ3VyYXRpb24uc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pFLE9BQU8sRUFLTCxVQUFVLEVBQ1YsSUFBSSxHQUNMLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUM5QixPQUFPLEVBQUUsZUFBZSxFQUFjLEdBQUcsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1RSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7O0FBRy9ELE1BQU0sT0FBTyxrQkFBa0I7SUFPN0IsWUFDVSwrQkFBZ0UsRUFDaEUsY0FBMkMsRUFDM0Msb0JBQTBDLEVBQzFDLFlBQTBCO1FBSDFCLG9DQUErQixHQUEvQiwrQkFBK0IsQ0FBaUM7UUFDaEUsbUJBQWMsR0FBZCxjQUFjLENBQTZCO1FBQzNDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFDMUMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFWbkIsZUFBVSxHQUFHLElBQUksZUFBZSxDQUEwQixFQUFFLENBQUMsQ0FBQztRQUV4RSxXQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUV2QyxZ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QzNFLENBQUM7SUFFTyxzQkFBc0IsQ0FBQyxPQUE2QixFQUFFLE1BQWMsRUFBRSxTQUFrQjtRQUM5RixPQUFPLElBQUksUUFBUSxDQUFDLEdBQUcsTUFBTSxxQkFBcUIsQ0FBQyxFQUFFLENBQUM7WUFDcEQsT0FBTztZQUNQLFNBQVMsRUFBRSxTQUFTO1NBQ3JCLENBQUMsQ0FBQztJQUNMLENBQUM7OytHQXhLVSxrQkFBa0I7bUhBQWxCLGtCQUFrQjsyRkFBbEIsa0JBQWtCO2tCQUQ5QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3RhdGVmdWxDb25maWd1cmF0aW9uQXBpU2VydmljZSB9IGZyb20gJ0B2ZWxvY2VhcHBzL2FwaSc7XG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UsIFRvYXN0VHlwZSB9IGZyb20gJ0B2ZWxvY2VhcHBzL2NvbXBvbmVudHMnO1xuaW1wb3J0IHtcbiAgQ29uZmlndXJhdGlvbkV4ZWN1dGVSZXF1ZXN0LFxuICBDb25maWd1cmF0aW9uUmVxdWVzdCxcbiAgQ29uZmlndXJhdGlvblJlcXVlc3RBY3Rpb24sXG4gIENvbmZpZ3VyYXRpb25SZXF1ZXN0U2VsZWN0b3IsXG4gIEVudGl0eVV0aWwsXG4gIFVVSUQsXG59IGZyb20gJ0B2ZWxvY2VhcHBzL2NvcmUnO1xuaW1wb3J0IHsgb21pdCB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIG1hcCwgb2YsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDb25maWd1cmF0aW9uUnVudGltZVNlcnZpY2UgfSBmcm9tICcuL2NvbmZpZ3VyYXRpb24tcnVudGltZS5zZXJ2aWNlJztcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9jb25maWd1cmF0aW9uLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ29uZmlndXJhdGlvblN0YXRlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBzdGF0ZVN1YmokID0gbmV3IEJlaGF2aW9yU3ViamVjdDxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4oe30pO1xuXG4gIHB1YmxpYyBzdGF0ZSQgPSB0aGlzLnN0YXRlU3ViaiQuYXNPYnNlcnZhYmxlKCk7XG5cbiAgcHJpdmF0ZSBzdGF0ZUlkOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHN0YXRlZnVsQ29uZmlndXJhdGlvbkFwaVNlcnZpY2U6IFN0YXRlZnVsQ29uZmlndXJhdGlvbkFwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBydW50aW1lU2VydmljZTogQ29uZmlndXJhdGlvblJ1bnRpbWVTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29uZmlndXJhdGlvblNlcnZpY2U6IENvbmZpZ3VyYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgdG9hc3RTZXJ2aWNlOiBUb2FzdFNlcnZpY2UsXG4gICkge31cblxuICBwdWJsaWMgaW5pdCQoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2UuY29uZmlndXJlKCkucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5pc1N0YXRlZnVsQ29uZmlndXJhdGlvbikge1xuICAgICAgICAgIHJldHVybiBvZih1bmRlZmluZWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgeyBhY3Rpb25zLCBzZWxlY3RvcnMgfSA9IHRoaXMucnVudGltZVNlcnZpY2UucnVudGltZUNvbnRleHQ/LnVpRGVmaW5pdGlvbkNvbnRhaW5lciA/PyB7fTtcblxuICAgICAgICByZXR1cm4gdGhpcy5zdGF0ZWZ1bENvbmZpZ3VyYXRpb25BcGlTZXJ2aWNlLmluaXQoe1xuICAgICAgICAgIHJlcXVlc3Q6IHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2UuZ2VuZXJhdGVSZXF1ZXN0KCksXG4gICAgICAgICAgYWN0aW9uczogYWN0aW9ucz8ubWFwKGFjdGlvbiA9PiAoeyBuYW1lOiBhY3Rpb24uYXBpTmFtZSwgc2NyaXB0OiBhY3Rpb24uc2NyaXB0IH0pKSxcbiAgICAgICAgICBzZWxlY3RvcnM6IHNlbGVjdG9ycz8ubWFwKHNlbGVjdG9yID0+ICh7IG5hbWU6IHNlbGVjdG9yLmFwaU5hbWUsIHNjcmlwdDogc2VsZWN0b3Iuc2NyaXB0IH0pKSxcbiAgICAgICAgfSk7XG4gICAgICB9KSxcbiAgICAgIHRhcChzdGF0ZUlkID0+ICh0aGlzLnN0YXRlSWQgPSBzdGF0ZUlkIHx8IG51bGwpKSxcbiAgICAgIG1hcCgoKSA9PiB1bmRlZmluZWQpLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgY2xlYW51cCgpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlSWQgPSBudWxsO1xuICAgIHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2UucmVzZXQoKTtcbiAgICB0aGlzLnN0YXRlU3ViaiQubmV4dCh7fSk7XG4gIH1cblxuICBwdWJsaWMgZXhlY3V0ZSQocmVxOiBDb25maWd1cmF0aW9uRXhlY3V0ZVJlcXVlc3QpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy5pc1N0YXRlZnVsQ29uZmlndXJhdGlvbikge1xuICAgICAgcmV0dXJuIHRoaXMuZXhlY3V0ZVN0YXRlZnVsJChyZXEpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5leGVjdXRlU3RhdGVsZXNzJChyZXEpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBkaXNwYXRjaCQoYWN0aW9uTmFtZTogc3RyaW5nLCBpbnB1dERhdGE6IHVua25vd24pOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5leGVjdXRlJCh7IGFjdGlvbnM6IFt7IG5hbWU6IGFjdGlvbk5hbWUsIGlucHV0RGF0YSB9XSB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3QkKHNlbGVjdG9yTmFtZTogc3RyaW5nLCBpbnB1dERhdGE6IHVua25vd24pOiBPYnNlcnZhYmxlPHVua25vd24+IHtcbiAgICBjb25zdCByZXF1ZXN0SWQgPSBVVUlELlVVSUQoKTtcblxuICAgIHJldHVybiB0aGlzLmV4ZWN1dGUkKHtcbiAgICAgIHNlbGVjdG9yczoge1xuICAgICAgICBbcmVxdWVzdElkXToge1xuICAgICAgICAgIG5hbWU6IHNlbGVjdG9yTmFtZSxcbiAgICAgICAgICBpbnB1dERhdGEsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pLnBpcGUoXG4gICAgICBtYXAoKCkgPT4gdGhpcy5zdGF0ZVN1YmokLnZhbHVlW3JlcXVlc3RJZF0pLFxuICAgICAgdGFwKCgpID0+IHRoaXMuc3RhdGVTdWJqJC5uZXh0KG9taXQodGhpcy5zdGF0ZVN1YmokLnZhbHVlLCByZXF1ZXN0SWQpKSksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGlzU3RhdGVmdWxDb25maWd1cmF0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnJ1bnRpbWVTZXJ2aWNlLnVpRGVmaW5pdGlvblByb3BlcnRpZXMuc3RhdGVmdWxDb25maWd1cmF0aW9uRW5hYmxlZCA/PyBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgZXhlY3V0ZVN0YXRlbGVzcyQocmVxdWVzdDogQ29uZmlndXJhdGlvbkV4ZWN1dGVSZXF1ZXN0KTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIG9mKHVuZGVmaW5lZCkucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiB7XG4gICAgICAgIC8vIEFwcGx5IGFjdGlvbnMgYW5kIGV4ZWN1dGUgY29uZmlndXJhdGlvbi9wcmljZSBjYWxsXG4gICAgICAgIC8vIE5vIG5lZWQgdG8gcnVuIGNvbmZpZ3VyYXRpb24gaWYgbm8gYWN0aW9ucyBpbiB0aGUgcmVxdWVzdFxuICAgICAgICBpZiAoIXJlcXVlc3QuYWN0aW9ucz8ubGVuZ3RoKSB7XG4gICAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZCk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgY29uZmlndXJhdGlvblJlcXVlc3QgPSB0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlLmdlbmVyYXRlUmVxdWVzdCgpO1xuICAgICAgICByZXF1ZXN0LmFjdGlvbnMuZm9yRWFjaChhY3Rpb24gPT4ge1xuICAgICAgICAgIGNvbmZpZ3VyYXRpb25SZXF1ZXN0ID0gdGhpcy5leGVjdXRlQWN0aW9uU2NyaXB0KGNvbmZpZ3VyYXRpb25SZXF1ZXN0LCBhY3Rpb24pID8/IGNvbmZpZ3VyYXRpb25SZXF1ZXN0O1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gdGhpcy5jb25maWd1cmF0aW9uU2VydmljZS5jb25maWd1cmVSZXF1ZXN0JChjb25maWd1cmF0aW9uUmVxdWVzdCk7XG4gICAgICB9KSxcbiAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgIGlmICghcmVxdWVzdC5zZWxlY3RvcnMpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBSdW4gc2VsZWN0b3JzIGFuZCBhcHBseSB0aGVtIHRvIHRoZSBzdGF0ZVxuICAgICAgICBjb25zdCBmaW5hbENvbmZpZ3VyYXRpb25SZXF1ZXN0ID0gdGhpcy5jb25maWd1cmF0aW9uU2VydmljZS5nZW5lcmF0ZVJlcXVlc3QoKTtcbiAgICAgICAgY29uc3Qgc2VsZWN0b3JzUmVzdWx0ID0gRW50aXR5VXRpbC5lbnRyaWVzKHJlcXVlc3Quc2VsZWN0b3JzKS5yZWR1Y2UoXG4gICAgICAgICAgKHRydW5rOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiwgW2tleSwgc2VsZWN0b3JdKSA9PiB7XG4gICAgICAgICAgICB0cnVua1trZXldID0gdGhpcy5leGVjdXRlU2VsZWN0b3JTY3JpcHQoZmluYWxDb25maWd1cmF0aW9uUmVxdWVzdCwgc2VsZWN0b3IpO1xuICAgICAgICAgICAgcmV0dXJuIHRydW5rO1xuICAgICAgICAgIH0sXG4gICAgICAgICAge30sXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5zdGF0ZVN1YmokLm5leHQoe1xuICAgICAgICAgIC4uLnRoaXMuc3RhdGVTdWJqJC52YWx1ZSxcbiAgICAgICAgICAuLi5zZWxlY3RvcnNSZXN1bHQsXG4gICAgICAgIH0pO1xuICAgICAgfSksXG4gICAgICBtYXAoKCkgPT4gdW5kZWZpbmVkKSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBleGVjdXRlU3RhdGVmdWwkKHJlcXVlc3Q6IENvbmZpZ3VyYXRpb25FeGVjdXRlUmVxdWVzdCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIGlmICghdGhpcy5zdGF0ZUlkKSB7XG4gICAgICByZXR1cm4gb2YodW5kZWZpbmVkKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5zdGF0ZWZ1bENvbmZpZ3VyYXRpb25BcGlTZXJ2aWNlLmV4ZWN1dGUodGhpcy5zdGF0ZUlkLCByZXF1ZXN0KS5waXBlKFxuICAgICAgdGFwKHJlc3BvbnNlID0+IHtcbiAgICAgICAgdGhpcy5zdGF0ZUlkID0gcmVzcG9uc2Uuc3RhdGVJZDtcbiAgICAgICAgY29uc3QgdXBkYXRlZFN0YXRlID0gdGhpcy5zdGF0ZVN1YmokLnZhbHVlO1xuXG4gICAgICAgIEVudGl0eVV0aWwuZW50cmllcyhyZXNwb25zZS5zZWxlY3RvcnMpLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgICAgIGlmICghdmFsdWUuc3VjY2Vzcykge1xuICAgICAgICAgICAgaWYgKCF0aGlzLnJ1bnRpbWVTZXJ2aWNlLnVpRGVmaW5pdGlvblByb3BlcnRpZXMuc3VwcHJlc3NUb2FzdE1lc3NhZ2VzKSB7XG4gICAgICAgICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLmFkZCh7IHN1bW1hcnk6IHZhbHVlLmVycm9yTWVzc2FnZSwgc2V2ZXJpdHk6IFRvYXN0VHlwZS5lcnJvciB9KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHVwZGF0ZWRTdGF0ZVtrZXldID0gdmFsdWUucmVzdWx0O1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLnN0YXRlU3ViaiQubmV4dCh1cGRhdGVkU3RhdGUpO1xuICAgICAgfSksXG4gICAgICBtYXAoKCkgPT4gdW5kZWZpbmVkKSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBleGVjdXRlQWN0aW9uU2NyaXB0KFxuICAgIHJlcXVlc3Q6IENvbmZpZ3VyYXRpb25SZXF1ZXN0LFxuICAgIHByb2Nlc3NvcjogQ29uZmlndXJhdGlvblJlcXVlc3RBY3Rpb24sXG4gICk6IENvbmZpZ3VyYXRpb25SZXF1ZXN0IHwgbnVsbCB7XG4gICAgY29uc3QgeyBhY3Rpb25zIH0gPSB0aGlzLnJ1bnRpbWVTZXJ2aWNlLnJ1bnRpbWVDb250ZXh0Py51aURlZmluaXRpb25Db250YWluZXIgPz8ge307XG4gICAgY29uc3Qgc2NyaXB0ID0gYWN0aW9ucz8uZmluZChhY3Rpb24gPT4gYWN0aW9uLmFwaU5hbWUgPT09IHByb2Nlc3Nvci5uYW1lKT8uc2NyaXB0O1xuICAgIGlmICghc2NyaXB0KSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5leGVjdXRlUHJvY2Vzc29yU2NyaXB0KHJlcXVlc3QsIHNjcmlwdCwgcHJvY2Vzc29yLmlucHV0RGF0YSkgYXMgQ29uZmlndXJhdGlvblJlcXVlc3Q7XG4gIH1cblxuICBwcml2YXRlIGV4ZWN1dGVTZWxlY3RvclNjcmlwdChyZXF1ZXN0OiBDb25maWd1cmF0aW9uUmVxdWVzdCwgcHJvY2Vzc29yOiBDb25maWd1cmF0aW9uUmVxdWVzdFNlbGVjdG9yKTogdW5rbm93biB7XG4gICAgY29uc3QgeyBzZWxlY3RvcnMgfSA9IHRoaXMucnVudGltZVNlcnZpY2UucnVudGltZUNvbnRleHQ/LnVpRGVmaW5pdGlvbkNvbnRhaW5lciA/PyB7fTtcbiAgICBjb25zdCBzY3JpcHQgPSBzZWxlY3RvcnM/LmZpbmQoc2VsZWN0b3IgPT4gc2VsZWN0b3IuYXBpTmFtZSA9PT0gcHJvY2Vzc29yLm5hbWUpPy5zY3JpcHQ7XG4gICAgaWYgKCFzY3JpcHQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmV4ZWN1dGVQcm9jZXNzb3JTY3JpcHQocmVxdWVzdCwgc2NyaXB0LCBwcm9jZXNzb3IuaW5wdXREYXRhKTtcbiAgfVxuXG4gIHByaXZhdGUgZXhlY3V0ZVByb2Nlc3NvclNjcmlwdChyZXF1ZXN0OiBDb25maWd1cmF0aW9uUmVxdWVzdCwgc2NyaXB0OiBzdHJpbmcsIGlucHV0RGF0YTogdW5rbm93bik6IHVua25vd24ge1xuICAgIHJldHVybiBuZXcgRnVuY3Rpb24oYCR7c2NyaXB0fVxcbnJldHVybiB0cmFuc2Zvcm07YCkoKSh7XG4gICAgICByZXF1ZXN0LFxuICAgICAgaW5wdXREYXRhOiBpbnB1dERhdGEsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,6 +1,6 @@
1
1
  import { Injectable } from '@angular/core';
2
2
  import { ConfigurationApiService } from '@veloceapps/api';
3
- import { RuntimeModel, isLegacyUIDefinition } from '@veloceapps/core';
3
+ import { RuntimeModel, getUIDefinitionProperties, isLegacyUIDefinition, } from '@veloceapps/core';
4
4
  import { map } from 'rxjs/operators';
5
5
  import { RuntimeMode } from '../../../types';
6
6
  import * as i0 from "@angular/core";
@@ -11,29 +11,28 @@ export class RuntimeContextService {
11
11
  }
12
12
  getRuntimeContext(productId, offeringId) {
13
13
  return this.configurationApiService.getRuntimeDataByProductId(productId, offeringId).pipe(map(runtimeData => {
14
- const uiDefinition = this.getUIDefinition(runtimeData);
14
+ const uiDefinitionContainer = this.getUIDefinitionContainer(runtimeData);
15
15
  const runtimeModel = RuntimeModel.create(runtimeData.types, runtimeData.products);
16
16
  const { productName, properties } = Array.from(runtimeModel.components.values()).find(c => c.productId === productId) ?? {};
17
+ const uiDefinitionProperties = getUIDefinitionProperties(uiDefinitionContainer);
17
18
  return {
18
19
  modelId: runtimeData.modelId,
19
- uiDefinition: uiDefinition,
20
+ uiDefinitionContainer: uiDefinitionContainer,
20
21
  runtimeModel: runtimeModel,
21
22
  runtimeMode: RuntimeMode.PROD,
22
23
  productId: productId,
23
24
  productType: properties?.['displayName'] || productName,
24
25
  offeringId: offeringId,
25
26
  properties: {
26
- PricingEnabled: uiDefinition?.properties?.pricingEnabled ? 'true' : 'false',
27
- PriceListId: uiDefinition?.properties?.priceList,
27
+ PricingEnabled: uiDefinitionProperties.pricingEnabled ? 'true' : 'false',
28
+ PriceListId: uiDefinitionProperties.priceList,
28
29
  },
29
30
  };
30
31
  }));
31
32
  }
32
- getUIDefinition(runtimeData) {
33
- const uiDefinitions = runtimeData.uiDefinitions
34
- .map(({ source }) => source)
35
- .filter((uiDefinition) => !isLegacyUIDefinition(uiDefinition));
36
- return uiDefinitions.find(uiDef => uiDef.primary) ?? uiDefinitions[0];
33
+ getUIDefinitionContainer(runtimeData) {
34
+ const containers = runtimeData.uiDefinitions.filter(container => !isLegacyUIDefinition(container.source));
35
+ return containers.find(container => container.source.primary) ?? containers[0];
37
36
  }
38
37
  }
39
38
  RuntimeContextService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: RuntimeContextService, deps: [{ token: i1.ConfigurationApiService }], target: i0.ɵɵFactoryTarget.Injectable });
@@ -41,4 +40,4 @@ RuntimeContextService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0"
41
40
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: RuntimeContextService, decorators: [{
42
41
  type: Injectable
43
42
  }], ctorParameters: function () { return [{ type: i1.ConfigurationApiService }]; } });
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS1jb250ZXh0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jb3JlL21vZHVsZXMvY29uZmlndXJhdGlvbi9zZXJ2aWNlcy9ydW50aW1lLWNvbnRleHQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFELE9BQU8sRUFBZSxZQUFZLEVBQWdCLG9CQUFvQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFakcsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBa0IsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQUc3RCxNQUFNLE9BQU8scUJBQXFCO0lBQ2hDLFlBQW9CLHVCQUFnRDtRQUFoRCw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXlCO0lBQUcsQ0FBQztJQUVqRSxpQkFBaUIsQ0FBQyxTQUFpQixFQUFFLFVBQW1CO1FBQzdELE9BQU8sSUFBSSxDQUFDLHVCQUF1QixDQUFDLHlCQUF5QixDQUFDLFNBQVMsRUFBRSxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQ3ZGLEdBQUcsQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUNoQixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3ZELE1BQU0sWUFBWSxHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDbEYsTUFBTSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsR0FDL0IsS0FBSyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7WUFFMUYsT0FBTztnQkFDTCxPQUFPLEVBQUUsV0FBVyxDQUFDLE9BQU87Z0JBQzVCLFlBQVksRUFBRSxZQUFZO2dCQUMxQixZQUFZLEVBQUUsWUFBWTtnQkFDMUIsV0FBVyxFQUFFLFdBQVcsQ0FBQyxJQUFJO2dCQUM3QixTQUFTLEVBQUUsU0FBUztnQkFDcEIsV0FBVyxFQUFFLFVBQVUsRUFBRSxDQUFDLGFBQWEsQ0FBQyxJQUFJLFdBQVc7Z0JBQ3ZELFVBQVUsRUFBRSxVQUFVO2dCQUN0QixVQUFVLEVBQUU7b0JBQ1YsY0FBYyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU87b0JBQzNFLFdBQVcsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLFNBQVM7aUJBQ2pEO2FBQ0YsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRU8sZUFBZSxDQUFDLFdBQXdCO1FBQzlDLE1BQU0sYUFBYSxHQUFHLFdBQVcsQ0FBQyxhQUFhO2FBQzVDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQzthQUMzQixNQUFNLENBQUMsQ0FBQyxZQUFZLEVBQWdDLEVBQUUsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7UUFFL0YsT0FBTyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4RSxDQUFDOztrSEFsQ1UscUJBQXFCO3NIQUFyQixxQkFBcUI7MkZBQXJCLHFCQUFxQjtrQkFEakMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25BcGlTZXJ2aWNlIH0gZnJvbSAnQHZlbG9jZWFwcHMvYXBpJztcbmltcG9ydCB7IFJ1bnRpbWVEYXRhLCBSdW50aW1lTW9kZWwsIFVJRGVmaW5pdGlvbiwgaXNMZWdhY3lVSURlZmluaXRpb24gfSBmcm9tICdAdmVsb2NlYXBwcy9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFJ1bnRpbWVDb250ZXh0LCBSdW50aW1lTW9kZSB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFJ1bnRpbWVDb250ZXh0U2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29uZmlndXJhdGlvbkFwaVNlcnZpY2U6IENvbmZpZ3VyYXRpb25BcGlTZXJ2aWNlKSB7fVxuXG4gIHB1YmxpYyBnZXRSdW50aW1lQ29udGV4dChwcm9kdWN0SWQ6IHN0cmluZywgb2ZmZXJpbmdJZD86IHN0cmluZyk6IE9ic2VydmFibGU8UnVudGltZUNvbnRleHQ+IHtcbiAgICByZXR1cm4gdGhpcy5jb25maWd1cmF0aW9uQXBpU2VydmljZS5nZXRSdW50aW1lRGF0YUJ5UHJvZHVjdElkKHByb2R1Y3RJZCwgb2ZmZXJpbmdJZCkucGlwZShcbiAgICAgIG1hcChydW50aW1lRGF0YSA9PiB7XG4gICAgICAgIGNvbnN0IHVpRGVmaW5pdGlvbiA9IHRoaXMuZ2V0VUlEZWZpbml0aW9uKHJ1bnRpbWVEYXRhKTtcbiAgICAgICAgY29uc3QgcnVudGltZU1vZGVsID0gUnVudGltZU1vZGVsLmNyZWF0ZShydW50aW1lRGF0YS50eXBlcywgcnVudGltZURhdGEucHJvZHVjdHMpO1xuICAgICAgICBjb25zdCB7IHByb2R1Y3ROYW1lLCBwcm9wZXJ0aWVzIH0gPVxuICAgICAgICAgIEFycmF5LmZyb20ocnVudGltZU1vZGVsLmNvbXBvbmVudHMudmFsdWVzKCkpLmZpbmQoYyA9PiBjLnByb2R1Y3RJZCA9PT0gcHJvZHVjdElkKSA/PyB7fTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIG1vZGVsSWQ6IHJ1bnRpbWVEYXRhLm1vZGVsSWQsXG4gICAgICAgICAgdWlEZWZpbml0aW9uOiB1aURlZmluaXRpb24sXG4gICAgICAgICAgcnVudGltZU1vZGVsOiBydW50aW1lTW9kZWwsXG4gICAgICAgICAgcnVudGltZU1vZGU6IFJ1bnRpbWVNb2RlLlBST0QsXG4gICAgICAgICAgcHJvZHVjdElkOiBwcm9kdWN0SWQsXG4gICAgICAgICAgcHJvZHVjdFR5cGU6IHByb3BlcnRpZXM/LlsnZGlzcGxheU5hbWUnXSB8fCBwcm9kdWN0TmFtZSxcbiAgICAgICAgICBvZmZlcmluZ0lkOiBvZmZlcmluZ0lkLFxuICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgIFByaWNpbmdFbmFibGVkOiB1aURlZmluaXRpb24/LnByb3BlcnRpZXM/LnByaWNpbmdFbmFibGVkID8gJ3RydWUnIDogJ2ZhbHNlJyxcbiAgICAgICAgICAgIFByaWNlTGlzdElkOiB1aURlZmluaXRpb24/LnByb3BlcnRpZXM/LnByaWNlTGlzdCxcbiAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VUlEZWZpbml0aW9uKHJ1bnRpbWVEYXRhOiBSdW50aW1lRGF0YSk6IFVJRGVmaW5pdGlvbiB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgdWlEZWZpbml0aW9ucyA9IHJ1bnRpbWVEYXRhLnVpRGVmaW5pdGlvbnNcbiAgICAgIC5tYXAoKHsgc291cmNlIH0pID0+IHNvdXJjZSlcbiAgICAgIC5maWx0ZXIoKHVpRGVmaW5pdGlvbik6IHVpRGVmaW5pdGlvbiBpcyBVSURlZmluaXRpb24gPT4gIWlzTGVnYWN5VUlEZWZpbml0aW9uKHVpRGVmaW5pdGlvbikpO1xuXG4gICAgcmV0dXJuIHVpRGVmaW5pdGlvbnMuZmluZCh1aURlZiA9PiB1aURlZi5wcmltYXJ5KSA/PyB1aURlZmluaXRpb25zWzBdO1xuICB9XG59XG4iXX0=
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS1jb250ZXh0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jb3JlL21vZHVsZXMvY29uZmlndXJhdGlvbi9zZXJ2aWNlcy9ydW50aW1lLWNvbnRleHQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFELE9BQU8sRUFFTCxZQUFZLEVBRVoseUJBQXlCLEVBQ3pCLG9CQUFvQixHQUNyQixNQUFNLGtCQUFrQixDQUFDO0FBRTFCLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQWtCLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFHN0QsTUFBTSxPQUFPLHFCQUFxQjtJQUNoQyxZQUFvQix1QkFBZ0Q7UUFBaEQsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUF5QjtJQUFHLENBQUM7SUFFakUsaUJBQWlCLENBQUMsU0FBaUIsRUFBRSxVQUFtQjtRQUM3RCxPQUFPLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyx5QkFBeUIsQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUN2RixHQUFHLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDaEIsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDekUsTUFBTSxZQUFZLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNsRixNQUFNLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxHQUMvQixLQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUUxRixNQUFNLHNCQUFzQixHQUFHLHlCQUF5QixDQUFDLHFCQUFxQixDQUFDLENBQUM7WUFFaEYsT0FBTztnQkFDTCxPQUFPLEVBQUUsV0FBVyxDQUFDLE9BQU87Z0JBQzVCLHFCQUFxQixFQUFFLHFCQUFxQjtnQkFDNUMsWUFBWSxFQUFFLFlBQVk7Z0JBQzFCLFdBQVcsRUFBRSxXQUFXLENBQUMsSUFBSTtnQkFDN0IsU0FBUyxFQUFFLFNBQVM7Z0JBQ3BCLFdBQVcsRUFBRSxVQUFVLEVBQUUsQ0FBQyxhQUFhLENBQUMsSUFBSSxXQUFXO2dCQUN2RCxVQUFVLEVBQUUsVUFBVTtnQkFDdEIsVUFBVSxFQUFFO29CQUNWLGNBQWMsRUFBRSxzQkFBc0IsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTztvQkFDeEUsV0FBVyxFQUFFLHNCQUFzQixDQUFDLFNBQVM7aUJBQzlDO2FBQ3VCLENBQUM7UUFDN0IsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFTyx3QkFBd0IsQ0FBQyxXQUF3QjtRQUN2RCxNQUFNLFVBQVUsR0FBRyxXQUFXLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsb0JBQW9CLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDMUcsT0FBTyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakYsQ0FBQzs7a0hBakNVLHFCQUFxQjtzSEFBckIscUJBQXFCOzJGQUFyQixxQkFBcUI7a0JBRGpDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb25maWd1cmF0aW9uQXBpU2VydmljZSB9IGZyb20gJ0B2ZWxvY2VhcHBzL2FwaSc7XG5pbXBvcnQge1xuICBSdW50aW1lRGF0YSxcbiAgUnVudGltZU1vZGVsLFxuICBVSURlZmluaXRpb25Db250YWluZXIsXG4gIGdldFVJRGVmaW5pdGlvblByb3BlcnRpZXMsXG4gIGlzTGVnYWN5VUlEZWZpbml0aW9uLFxufSBmcm9tICdAdmVsb2NlYXBwcy9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFJ1bnRpbWVDb250ZXh0LCBSdW50aW1lTW9kZSB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFJ1bnRpbWVDb250ZXh0U2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29uZmlndXJhdGlvbkFwaVNlcnZpY2U6IENvbmZpZ3VyYXRpb25BcGlTZXJ2aWNlKSB7fVxuXG4gIHB1YmxpYyBnZXRSdW50aW1lQ29udGV4dChwcm9kdWN0SWQ6IHN0cmluZywgb2ZmZXJpbmdJZD86IHN0cmluZyk6IE9ic2VydmFibGU8UnVudGltZUNvbnRleHQ+IHtcbiAgICByZXR1cm4gdGhpcy5jb25maWd1cmF0aW9uQXBpU2VydmljZS5nZXRSdW50aW1lRGF0YUJ5UHJvZHVjdElkKHByb2R1Y3RJZCwgb2ZmZXJpbmdJZCkucGlwZShcbiAgICAgIG1hcChydW50aW1lRGF0YSA9PiB7XG4gICAgICAgIGNvbnN0IHVpRGVmaW5pdGlvbkNvbnRhaW5lciA9IHRoaXMuZ2V0VUlEZWZpbml0aW9uQ29udGFpbmVyKHJ1bnRpbWVEYXRhKTtcbiAgICAgICAgY29uc3QgcnVudGltZU1vZGVsID0gUnVudGltZU1vZGVsLmNyZWF0ZShydW50aW1lRGF0YS50eXBlcywgcnVudGltZURhdGEucHJvZHVjdHMpO1xuICAgICAgICBjb25zdCB7IHByb2R1Y3ROYW1lLCBwcm9wZXJ0aWVzIH0gPVxuICAgICAgICAgIEFycmF5LmZyb20ocnVudGltZU1vZGVsLmNvbXBvbmVudHMudmFsdWVzKCkpLmZpbmQoYyA9PiBjLnByb2R1Y3RJZCA9PT0gcHJvZHVjdElkKSA/PyB7fTtcblxuICAgICAgICBjb25zdCB1aURlZmluaXRpb25Qcm9wZXJ0aWVzID0gZ2V0VUlEZWZpbml0aW9uUHJvcGVydGllcyh1aURlZmluaXRpb25Db250YWluZXIpO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgbW9kZWxJZDogcnVudGltZURhdGEubW9kZWxJZCxcbiAgICAgICAgICB1aURlZmluaXRpb25Db250YWluZXI6IHVpRGVmaW5pdGlvbkNvbnRhaW5lcixcbiAgICAgICAgICBydW50aW1lTW9kZWw6IHJ1bnRpbWVNb2RlbCxcbiAgICAgICAgICBydW50aW1lTW9kZTogUnVudGltZU1vZGUuUFJPRCxcbiAgICAgICAgICBwcm9kdWN0SWQ6IHByb2R1Y3RJZCxcbiAgICAgICAgICBwcm9kdWN0VHlwZTogcHJvcGVydGllcz8uWydkaXNwbGF5TmFtZSddIHx8IHByb2R1Y3ROYW1lLFxuICAgICAgICAgIG9mZmVyaW5nSWQ6IG9mZmVyaW5nSWQsXG4gICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgUHJpY2luZ0VuYWJsZWQ6IHVpRGVmaW5pdGlvblByb3BlcnRpZXMucHJpY2luZ0VuYWJsZWQgPyAndHJ1ZScgOiAnZmFsc2UnLFxuICAgICAgICAgICAgUHJpY2VMaXN0SWQ6IHVpRGVmaW5pdGlvblByb3BlcnRpZXMucHJpY2VMaXN0LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0gc2F0aXNmaWVzIFJ1bnRpbWVDb250ZXh0O1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VUlEZWZpbml0aW9uQ29udGFpbmVyKHJ1bnRpbWVEYXRhOiBSdW50aW1lRGF0YSk6IFVJRGVmaW5pdGlvbkNvbnRhaW5lciB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgY29udGFpbmVycyA9IHJ1bnRpbWVEYXRhLnVpRGVmaW5pdGlvbnMuZmlsdGVyKGNvbnRhaW5lciA9PiAhaXNMZWdhY3lVSURlZmluaXRpb24oY29udGFpbmVyLnNvdXJjZSkpO1xuICAgIHJldHVybiBjb250YWluZXJzLmZpbmQoY29udGFpbmVyID0+IGNvbnRhaW5lci5zb3VyY2UucHJpbWFyeSkgPz8gY29udGFpbmVyc1swXTtcbiAgfVxufVxuIl19
@@ -229,4 +229,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
229
229
  type: Injectable,
230
230
  args: [{ providedIn: 'root' }]
231
231
  }], ctorParameters: function () { return [{ type: i1.ContextService }, { type: i2.QuoteApiService }, { type: i2.PriceApiService }]; } });
232
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVvdGUtZHJhZnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2NvcmUvc2VydmljZXMvcXVvdGUtZHJhZnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkUsT0FBTyxFQUFFLHdCQUF3QixFQUFpRCxNQUFNLGtCQUFrQixDQUFDO0FBQzNHLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFjLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3RSxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7O0FBR25ELE1BQU0sT0FBTyxpQkFBaUI7SUFPNUIsSUFBVyxhQUFhO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzVDLENBQUM7SUFDRCxJQUFXLGFBQWEsQ0FBQyxLQUFjO1FBQ3JDLElBQUksSUFBSSxDQUFDLGFBQWEsS0FBSyxLQUFLLEVBQUU7WUFDaEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNyQztJQUNILENBQUM7SUFFRCxJQUFXLGlCQUFpQjtRQUMxQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztJQUNqQyxDQUFDO0lBQ0QsSUFBVyxpQkFBaUIsQ0FBQyxLQUFjO1FBQ3pDLElBQUksQ0FBQyxr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Q0osQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQ1Y7SUFDSCxDQUFDO0lBRU8sdUJBQXVCLENBQUMsU0FBcUI7UUFDbkQsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUVuQyxPQUFPLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDLFdBQVcsS0FBSyxHQUFHLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2xHLENBQUM7SUFFTyxhQUFhLENBQUMsS0FBd0I7UUFDNUMsSUFBSSxLQUFLLEVBQUUsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEtBQUssd0JBQXdCLENBQUMsT0FBTyxFQUFFO1lBQ3ZFLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxLQUFLLE9BQU8sQ0FBQyxDQUFDO1NBQ2hHO2FBQU07WUFDTCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLEtBQUssRUFBRSxZQUFZLENBQUMsQ0FBQztTQUNsRjtJQUNILENBQUM7OzhHQTdSVSxpQkFBaUI7a0hBQWpCLGlCQUFpQixjQURKLE1BQU07MkZBQ25CLGlCQUFpQjtrQkFEN0IsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQcmljZUFwaVNlcnZpY2UsIFF1b3RlQXBpU2VydmljZSB9IGZyb20gJ0B2ZWxvY2VhcHBzL2FwaSc7XG5pbXBvcnQgeyBDb25maWd1cmF0aW9uQ29udGV4dE1vZGUsIExpbmVJdGVtLCBQcmljZUxpc3QsIFByaWNlU3VtbWFyeSwgUXVvdGVEcmFmdCB9IGZyb20gJ0B2ZWxvY2VhcHBzL2NvcmUnO1xuaW1wb3J0IHsgRGljdGlvbmFyeSwgaXNFcXVhbCB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIG5vb3AsIE9ic2VydmFibGUsIHppcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAsIHNoYXJlUmVwbGF5LCBza2lwLCBzd2l0Y2hNYXAsIHRha2UsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IENvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi9jb250ZXh0LnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFF1b3RlRHJhZnRTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBxdW90ZVN1YmokID0gbmV3IEJlaGF2aW9yU3ViamVjdDxRdW90ZURyYWZ0IHwgbnVsbD4obnVsbCk7XG4gIHByaXZhdGUgcmVzZXRTdWJqJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSk7XG4gIHByaXZhdGUgaXNJbml0aWFsaXplZFN1YmokID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIHByaXZhdGUgaW5pdGlhbEN1cnJlbnRTdGF0ZTogTGluZUl0ZW1bXSA9IFtdO1xuICBwcml2YXRlIF9oYXNVbnNhdmVkQ2hhbmdlcyA9IGZhbHNlO1xuXG4gIHB1YmxpYyBnZXQgaXNJbml0aWFsaXplZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc0luaXRpYWxpemVkU3ViaiQuZ2V0VmFsdWUoKTtcbiAgfVxuICBwdWJsaWMgc2V0IGlzSW5pdGlhbGl6ZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAodGhpcy5pc0luaXRpYWxpemVkICE9PSB2YWx1ZSkge1xuICAgICAgdGhpcy5pc0luaXRpYWxpemVkU3ViaiQubmV4dCh2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBoYXNVbnNhdmVkQ2hhbmdlcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5faGFzVW5zYXZlZENoYW5nZXM7XG4gIH1cbiAgcHVibGljIHNldCBoYXNVbnNhdmVkQ2hhbmdlcyh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2hhc1Vuc2F2ZWRDaGFuZ2VzID0gdmFsdWU7XG5cbiAgICBpZiAoIXRoaXMuX2hhc1Vuc2F2ZWRDaGFuZ2VzKSB7XG4gICAgICB0aGlzLmluaXRpYWxDdXJyZW50U3RhdGUgPSB0aGlzLnF1b3RlRHJhZnQ/LmN1cnJlbnRTdGF0ZSA/PyBbXTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGhhc1Byb2R1Y3RzJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5xdW90ZVN1YmokLnBpcGUobWFwKCgpID0+IHRoaXMuaGFzUHJvZHVjdHMpKTtcbiAgfVxuICBwdWJsaWMgZ2V0IGhhc1Byb2R1Y3RzKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHF1b3RlRHJhZnQgPSB0aGlzLnF1b3RlU3ViaiQudmFsdWU7XG4gICAgcmV0dXJuIEJvb2xlYW4ocXVvdGVEcmFmdCAmJiBxdW90ZURyYWZ0LmN1cnJlbnRTdGF0ZS5sZW5ndGggPiAwKTtcbiAgfVxuXG4gIHB1YmxpYyBhbGxQcmljZUxpc3RzOiBQcmljZUxpc3RbXSA9IFtdO1xuICBwdWJsaWMgYXNzZXRQcmljZUxpc3RzOiBQcmljZUxpc3RbXSA9IFtdO1xuICBwdWJsaWMgcmVzZXQkID0gdGhpcy5yZXNldFN1YmokLmFzT2JzZXJ2YWJsZSgpO1xuICBwdWJsaWMgYWN0aXZlUHJpY2VMaXN0JDogT2JzZXJ2YWJsZTxQcmljZUxpc3QgfCBudWxsPjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNvbnRleHQ6IENvbnRleHRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcXVvdGVBcGlTZXJ2aWNlOiBRdW90ZUFwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwcmljZUFwaVNlcnZpY2U6IFByaWNlQXBpU2VydmljZSxcbiAgKSB7XG4gICAgdGhpcy5hY3RpdmVQcmljZUxpc3QkID0gdGhpcy5jb250ZXh0LnJlc29sdmUkKCkucGlwZShcbiAgICAgIG1hcChjdHggPT4gdGhpcy5hbGxQcmljZUxpc3RzLmZpbmQocHJpY2VMaXN0ID0+IHByaWNlTGlzdC5pZCA9PT0gY3R4LnByb3BlcnRpZXMuUHJpY2VMaXN0SWQpKSxcbiAgICAgIG1hcChwcmljZUxpc3QgPT4gcHJpY2VMaXN0ID8/IG51bGwpLFxuICAgICk7XG5cbiAgICB0aGlzLmlzSW5pdGlhbGl6ZWRTdWJqJFxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcihpc0luaXRpYWxpemVkID0+IGlzSW5pdGlhbGl6ZWQpLFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5xdW90ZVN1YmokLmFzT2JzZXJ2YWJsZSgpKSxcbiAgICAgICAgc2tpcCgxKSxcbiAgICAgICAgdGFwKHF1b3RlID0+IHRoaXMubWFya0FzVXBkYXRlZChxdW90ZSkpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIHJlc2V0KCk6IHZvaWQge1xuICAgIHRoaXMucmVzZXRTdWJqJC5uZXh0KHRydWUpO1xuICAgIHRoaXMucXVvdGVTdWJqJC5uZXh0KG51bGwpO1xuICAgIHRoaXMuaGFzVW5zYXZlZENoYW5nZXMgPSBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBpbml0KHF1b3RlSWQ6IHN0cmluZywgcGFyYW1zOiBEaWN0aW9uYXJ5PHN0cmluZz4pOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gemlwKHRoaXMucXVvdGVBcGlTZXJ2aWNlLmdldFF1b3RlRHJhZnQocXVvdGVJZCwgcGFyYW1zKSwgdGhpcy5wcmljZUFwaVNlcnZpY2UuZ2V0UHJpY2VMaXN0cygpKS5waXBlKFxuICAgICAgdGFwKChbcXVvdGUsIGFsbFByaWNlTGlzdHNdKSA9PiB7XG4gICAgICAgIHRoaXMuYWxsUHJpY2VMaXN0cyA9IGFsbFByaWNlTGlzdHM7XG4gICAgICAgIHRoaXMucXVvdGVTdWJqJC5uZXh0KHF1b3RlKTtcblxuICAgICAgICB0aGlzLmNvbnRleHQudXBkYXRlKHF1b3RlLmNvbnRleHQpO1xuXG4gICAgICAgIHRoaXMucG9wdWxhdGVBY3RpdmVQcmljZUxpc3RzJCgpO1xuICAgICAgfSksXG4gICAgICBtYXAoKCkgPT4gbm9vcCgpKSxcbiAgICAgIHRha2UoMSksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRDdXJyZW50TGluZUl0ZW1TdGF0ZShsaW5lSXRlbXM6IExpbmVJdGVtW10pOiB2b2lkIHtcbiAgICBjb25zdCBxdW90ZURyYWZ0ID0gdGhpcy5xdW90ZVN1YmokLnZhbHVlO1xuXG4gICAgaWYgKCFxdW90ZURyYWZ0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5xdW90ZVN1YmokLm5leHQoe1xuICAgICAgLi4ucXVvdGVEcmFmdCxcbiAgICAgIGN1cnJlbnRTdGF0ZTogbGluZUl0ZW1zLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZVF1b3RlRHJhZnQodXBkYXRlOiBQYXJ0aWFsPFF1b3RlRHJhZnQ+KTogdm9pZCB7XG4gICAgY29uc3QgcXVvdGVEcmFmdCA9IHRoaXMucXVvdGVTdWJqJC52YWx1ZTtcblxuICAgIGlmICghcXVvdGVEcmFmdCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh1cGRhdGUuY29udGV4dCkge1xuICAgICAgdGhpcy5jb250ZXh0LnNldCh1cGRhdGUuY29udGV4dCk7XG4gICAgfVxuXG4gICAgdGhpcy5xdW90ZVN1YmokLm5leHQoe1xuICAgICAgLi4ucXVvdGVEcmFmdCxcbiAgICAgIC4uLnVwZGF0ZSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVCeVByaWNlU3VtbWFyeShwcmljZVN1bW1hcnk6IFByaWNlU3VtbWFyeSk6IHZvaWQge1xuICAgIGNvbnN0IHF1b3RlRHJhZnQgPSB0aGlzLnF1b3RlU3ViaiQudmFsdWU7XG5cbiAgICBpZiAoIXF1b3RlRHJhZnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB1cGRhdGVkQ3VycmVudFN0YXRlID0gdGhpcy5jdXJyZW50U3RhdGUubWFwKGxpbmVJdGVtID0+IHtcbiAgICAgIGNvbnN0IHVwZGF0ZWQgPSBwcmljZVN1bW1hcnkubGluZUl0ZW1zLmZpbmQobGkgPT4gbGkuaWQgPT09IGxpbmVJdGVtLmlkKTtcbiAgICAgIHJldHVybiB1cGRhdGVkID8/IGxpbmVJdGVtO1xuICAgIH0pO1xuXG4gICAgdGhpcy5xdW90ZVN1YmokLm5leHQoe1xuICAgICAgLi4ucXVvdGVEcmFmdCxcbiAgICAgIGN1cnJlbnRTdGF0ZTogdXBkYXRlZEN1cnJlbnRTdGF0ZSxcbiAgICAgIHRvdGFsUHJpY2VzOiBwcmljZVN1bW1hcnkudG90YWxQcmljZXMsXG4gICAgICBhcHByb3ZhbEl0ZW1zOiBwcmljZVN1bW1hcnkuYXBwcm92YWxJdGVtcyxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcXVvdGVEcmFmdCQoKTogT2JzZXJ2YWJsZTxRdW90ZURyYWZ0PiB7XG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW3RoaXMucXVvdGVTdWJqJCwgdGhpcy5jb250ZXh0LnJlc29sdmUkKCldKS5waXBlKFxuICAgICAgbWFwKCgpID0+IHRoaXMucXVvdGVEcmFmdCksXG4gICAgICBmaWx0ZXIoKHF1b3RlKTogcXVvdGUgaXMgUXVvdGVEcmFmdCA9PiBCb29sZWFuKHF1b3RlKSksXG4gICAgICBzaGFyZVJlcGxheSgpLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHF1b3RlRHJhZnQoKTogUXVvdGVEcmFmdCB8IG51bGwge1xuICAgIGNvbnN0IHF1b3RlID0gdGhpcy5xdW90ZVN1YmokLnZhbHVlO1xuXG4gICAgaWYgKCFxdW90ZSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnF1b3RlLFxuICAgICAgY29udGV4dDogdGhpcy5jb250ZXh0LnJlc29sdmUoKSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGdldCBxdW90ZURyYWZ0Rm9yQWN0aXZlUHJpY2VMaXN0KCk6IFF1b3RlRHJhZnQgfCBudWxsIHtcbiAgICBjb25zdCBxdW90ZURyYWZ0ID0gdGhpcy5xdW90ZURyYWZ0O1xuXG4gICAgaWYgKCFxdW90ZURyYWZ0KSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4ucXVvdGVEcmFmdCxcbiAgICAgIGluaXRpYWxTdGF0ZTogdGhpcy5maWx0ZXJCeUFjdGl2ZVByaWNlTGlzdChxdW90ZURyYWZ0LmluaXRpYWxTdGF0ZSksXG4gICAgICBjdXJyZW50U3RhdGU6IHRoaXMuZmlsdGVyQnlBY3RpdmVQcmljZUxpc3QocXVvdGVEcmFmdC5jdXJyZW50U3RhdGUpLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgZ2V0IGN1cnJlbnRTdGF0ZSQoKTogT2JzZXJ2YWJsZTxMaW5lSXRlbVtdPiB7XG4gICAgcmV0dXJuIHRoaXMucXVvdGVEcmFmdCQucGlwZShtYXAocXVvdGUgPT4gcXVvdGUuY3VycmVudFN0YXRlKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGN1cnJlbnRTdGF0ZSgpOiBMaW5lSXRlbVtdIHtcbiAgICByZXR1cm4gdGhpcy5xdW90ZURyYWZ0Py5jdXJyZW50U3RhdGUgPz8gW107XG4gIH1cblxuICAvKipcbiAgICogU3RyZWFtIG9mIGFjdGl2ZUN1cnJlbnRTdGF0ZVxuICAgKi9cbiAgcHVibGljIGdldCBhY3RpdmVDdXJyZW50U3RhdGUkKCk6IE9ic2VydmFibGU8TGluZUl0ZW1bXT4ge1xuICAgIHJldHVybiB0aGlzLnF1b3RlRHJhZnQkLnBpcGUobWFwKCgpID0+IHRoaXMuYWN0aXZlQ3VycmVudFN0YXRlKSk7XG4gIH1cblxuICAvKipcbiAgICogYWN0aXZlQ3VycmVudFN0YXRlIGlzIGN1cnJlbnRTdGF0ZSBwYXNzZWQgdGhyb3VnaCBhZGRpdGlvbmFsIGZpbHRlcnNcbiAgICovXG4gIHB1YmxpYyBnZXQgYWN0aXZlQ3VycmVudFN0YXRlKCk6IExpbmVJdGVtW10ge1xuICAgIGxldCBjdXJyZW50U3RhdGUgPSB0aGlzLnF1b3RlRHJhZnQ/LmN1cnJlbnRTdGF0ZSA/PyBbXTtcblxuICAgIGN1cnJlbnRTdGF0ZSA9IHRoaXMuZmlsdGVyQnlBY3RpdmVQcmljZUxpc3QoY3VycmVudFN0YXRlKTtcblxuICAgIHJldHVybiBjdXJyZW50U3RhdGU7XG4gIH1cblxuICAvKipcbiAgICogU3RyZWFtIG9mIGFjdGl2ZUluaXRpYWxTdGF0ZVxuICAgKi9cbiAgcHVibGljIGdldCBhY3RpdmVJbml0aWFsU3RhdGUkKCk6IE9ic2VydmFibGU8TGluZUl0ZW1bXT4ge1xuICAgIHJldHVybiB0aGlzLnF1b3RlRHJhZnQkLnBpcGUobWFwKCgpID0+IHRoaXMuYWN0aXZlSW5pdGlhbFN0YXRlKSk7XG4gIH1cblxuICAvKipcbiAgICogYWN0aXZlSW5pdGlhbFN0YXRlIGlzIGluaXRpYWxTdGF0ZSBwYXNzZWQgdGhyb3VnaCBhZGRpdGlvbmFsIGZpbHRlcnNcbiAgICovXG4gIHB1YmxpYyBnZXQgYWN0aXZlSW5pdGlhbFN0YXRlKCk6IExpbmVJdGVtW10ge1xuICAgIGNvbnN0IGN0eCA9IHRoaXMuY29udGV4dC5yZXNvbHZlKCk7XG4gICAgbGV0IGluaXRpYWxTdGF0ZSA9IHRoaXMucXVvdGVEcmFmdD8uaW5pdGlhbFN0YXRlID8/IFtdO1xuXG4gICAgaWYgKGN0eC5tb2RlID09PSBDb25maWd1cmF0aW9uQ29udGV4dE1vZGUuQUNDT1VOVCkge1xuICAgICAgaW5pdGlhbFN0YXRlID0gdGhpcy5maWx0ZXJCeUFjdGl2ZVByaWNlTGlzdChpbml0aWFsU3RhdGUpO1xuICAgIH1cblxuICAgIHJldHVybiBpbml0aWFsU3RhdGU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzU3RhbmRhbG9uZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jb250ZXh0LnJlc29sdmUoKS5wcm9wZXJ0aWVzLnN0YW5kYWxvbmUgPT09ICd0cnVlJztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNTdGFuZGFsb25lJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5jb250ZXh0LnJlc29sdmUkKCkucGlwZShtYXAoKCkgPT4gdGhpcy5pc1N0YW5kYWxvbmUpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRJbml0aWFsQ3VycmVudFN0YXRlKCk6IExpbmVJdGVtW10ge1xuICAgIHJldHVybiB0aGlzLmluaXRpYWxDdXJyZW50U3RhdGU7XG4gIH1cblxuICBwdWJsaWMgaXNFZGl0TW9kZSQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuY29udGV4dC5yZXNvbHZlJCgpLnBpcGUobWFwKCgpID0+IHRoaXMuaXNFZGl0TW9kZSgpKSk7XG4gIH1cblxuICBwdWJsaWMgaXNFZGl0TW9kZSgpOiBib29sZWFuIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5jb250ZXh0LnJlc29sdmUoKTtcblxuICAgIGlmIChjb250ZXh0Lm1vZGUgPT09IENvbmZpZ3VyYXRpb25Db250ZXh0TW9kZS5BQ0NPVU5UKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoY29udGV4dC5tb2RlID09PSBDb25maWd1cmF0aW9uQ29udGV4dE1vZGUuUVVPVEUpIHtcbiAgICAgIHJldHVybiBjb250ZXh0LnByb3BlcnRpZXMuU3RhdHVzID09PSAnRHJhZnQnO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVBY3RpdmVQcmljZUxpc3QocHJpY2VMaXN0SWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuY29udGV4dC51cGRhdGUoeyBwcm9wZXJ0aWVzOiB7IFByaWNlTGlzdElkOiBwcmljZUxpc3RJZCB9IH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBwb3B1bGF0ZUFjdGl2ZVByaWNlTGlzdHMkKCk6IHZvaWQge1xuICAgIGNvbnN0IGN0eCA9IHRoaXMuY29udGV4dC5yZXNvbHZlKCk7XG4gICAgY29uc3QgcXVvdGVEcmFmdCA9IHRoaXMucXVvdGVEcmFmdDtcblxuICAgIGlmICghcXVvdGVEcmFmdCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIEluIEFDQ09VTlQgbW9kZSBwb3B1bGF0ZSBwcmljZSBsaXN0cyBmcm9tIHJlbGF0ZWQgYXNzZXRzXG4gICAgaWYgKGN0eC5tb2RlID09PSBDb25maWd1cmF0aW9uQ29udGV4dE1vZGUuQUNDT1VOVCkge1xuICAgICAgLy8gUG9wdWxhdGUgbGlzdCBvZiBwcmljZSBsaXN0c1xuICAgICAgdGhpcy5hc3NldFByaWNlTGlzdHMgPSBxdW90ZURyYWZ0LmN1cnJlbnRTdGF0ZVxuICAgICAgICAubWFwKCh7IHByaWNlTGlzdElkIH0pID0+IHByaWNlTGlzdElkKVxuICAgICAgICAucmVkdWNlPFByaWNlTGlzdFtdPigodHJ1bmssIHByaWNlTGlzdElkKSA9PiB7XG4gICAgICAgICAgaWYgKCFwcmljZUxpc3RJZCB8fCB0cnVuay5zb21lKGl0ZW0gPT4gaXRlbS5pZCA9PT0gcHJpY2VMaXN0SWQpKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1bms7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIC4uLnRydW5rLFxuICAgICAgICAgICAgeyBpZDogcHJpY2VMaXN0SWQsIG5hbWU6IHRoaXMuYWxsUHJpY2VMaXN0cy5maW5kKGl0ZW0gPT4gaXRlbS5pZCA9PT0gcHJpY2VMaXN0SWQpPy5uYW1lID8/ICcnIH0sXG4gICAgICAgICAgXTtcbiAgICAgICAgfSwgW10pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZmlsdGVyQnlBY3RpdmVQcmljZUxpc3QobGluZUl0ZW1zOiBMaW5lSXRlbVtdKTogTGluZUl0ZW1bXSB7XG4gICAgY29uc3QgY3R4ID0gdGhpcy5jb250ZXh0LnJlc29sdmUoKTtcblxuICAgIHJldHVybiBsaW5lSXRlbXMuZmlsdGVyKGxpID0+ICFsaS5wcmljZUxpc3RJZCB8fCBsaS5wcmljZUxpc3RJZCA9PT0gY3R4LnByb3BlcnRpZXMuUHJpY2VMaXN0SWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBtYXJrQXNVcGRhdGVkKHF1b3RlOiBRdW90ZURyYWZ0IHwgbnVsbCk6IHZvaWQge1xuICAgIGlmIChxdW90ZT8uY29udGV4dC5wcm9wZXJ0aWVzLm1vZGUgPT09IENvbmZpZ3VyYXRpb25Db250ZXh0TW9kZS5BQ0NPVU5UKSB7XG4gICAgICB0aGlzLmhhc1Vuc2F2ZWRDaGFuZ2VzID0gISFxdW90ZSAmJiAhcXVvdGUuY3VycmVudFN0YXRlLmV2ZXJ5KGxpID0+IGxpLmFjdGlvbkNvZGUgPT09ICdFWElTVCcpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmhhc1Vuc2F2ZWRDaGFuZ2VzID0gIWlzRXF1YWwodGhpcy5pbml0aWFsQ3VycmVudFN0YXRlLCBxdW90ZT8uY3VycmVudFN0YXRlKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
232
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVvdGUtZHJhZnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2NvcmUvc2VydmljZXMvcXVvdGUtZHJhZnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkUsT0FBTyxFQUFFLHdCQUF3QixFQUFpRCxNQUFNLGtCQUFrQixDQUFDO0FBQzNHLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBYyxhQUFhLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3RSxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7O0FBR25ELE1BQU0sT0FBTyxpQkFBaUI7SUFPNUIsSUFBVyxhQUFhO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzVDLENBQUM7SUFDRCxJQUFXLGFBQWEsQ0FBQyxLQUFjO1FBQ3JDLElBQUksSUFBSSxDQUFDLGFBQWEsS0FBSyxLQUFLLEVBQUU7WUFDaEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNyQztJQUNILENBQUM7SUFFRCxJQUFXLGlCQUFpQjtRQUMxQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztJQUNqQyxDQUFDO0lBQ0QsSUFBVyxpQkFBaUIsQ0FBQyxLQUFjO1FBQ3pDLElBQUksQ0FBQyxr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Q0osQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQ1Y7SUFDSCxDQUFDO0lBRU8sdUJBQXVCLENBQUMsU0FBcUI7UUFDbkQsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUVuQyxPQUFPLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDLFdBQVcsS0FBSyxHQUFHLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2xHLENBQUM7SUFFTyxhQUFhLENBQUMsS0FBd0I7UUFDNUMsSUFBSSxLQUFLLEVBQUUsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEtBQUssd0JBQXdCLENBQUMsT0FBTyxFQUFFO1lBQ3ZFLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxLQUFLLE9BQU8sQ0FBQyxDQUFDO1NBQ2hHO2FBQU07WUFDTCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLEtBQUssRUFBRSxZQUFZLENBQUMsQ0FBQztTQUNsRjtJQUNILENBQUM7OzhHQTdSVSxpQkFBaUI7a0hBQWpCLGlCQUFpQixjQURKLE1BQU07MkZBQ25CLGlCQUFpQjtrQkFEN0IsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQcmljZUFwaVNlcnZpY2UsIFF1b3RlQXBpU2VydmljZSB9IGZyb20gJ0B2ZWxvY2VhcHBzL2FwaSc7XG5pbXBvcnQgeyBDb25maWd1cmF0aW9uQ29udGV4dE1vZGUsIExpbmVJdGVtLCBQcmljZUxpc3QsIFByaWNlU3VtbWFyeSwgUXVvdGVEcmFmdCB9IGZyb20gJ0B2ZWxvY2VhcHBzL2NvcmUnO1xuaW1wb3J0IHsgRGljdGlvbmFyeSwgaXNFcXVhbCB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIGNvbWJpbmVMYXRlc3QsIG5vb3AsIHppcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAsIHNoYXJlUmVwbGF5LCBza2lwLCBzd2l0Y2hNYXAsIHRha2UsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IENvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi9jb250ZXh0LnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFF1b3RlRHJhZnRTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBxdW90ZVN1YmokID0gbmV3IEJlaGF2aW9yU3ViamVjdDxRdW90ZURyYWZ0IHwgbnVsbD4obnVsbCk7XG4gIHByaXZhdGUgcmVzZXRTdWJqJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSk7XG4gIHByaXZhdGUgaXNJbml0aWFsaXplZFN1YmokID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIHByaXZhdGUgaW5pdGlhbEN1cnJlbnRTdGF0ZTogTGluZUl0ZW1bXSA9IFtdO1xuICBwcml2YXRlIF9oYXNVbnNhdmVkQ2hhbmdlcyA9IGZhbHNlO1xuXG4gIHB1YmxpYyBnZXQgaXNJbml0aWFsaXplZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc0luaXRpYWxpemVkU3ViaiQuZ2V0VmFsdWUoKTtcbiAgfVxuICBwdWJsaWMgc2V0IGlzSW5pdGlhbGl6ZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAodGhpcy5pc0luaXRpYWxpemVkICE9PSB2YWx1ZSkge1xuICAgICAgdGhpcy5pc0luaXRpYWxpemVkU3ViaiQubmV4dCh2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBoYXNVbnNhdmVkQ2hhbmdlcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5faGFzVW5zYXZlZENoYW5nZXM7XG4gIH1cbiAgcHVibGljIHNldCBoYXNVbnNhdmVkQ2hhbmdlcyh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2hhc1Vuc2F2ZWRDaGFuZ2VzID0gdmFsdWU7XG5cbiAgICBpZiAoIXRoaXMuX2hhc1Vuc2F2ZWRDaGFuZ2VzKSB7XG4gICAgICB0aGlzLmluaXRpYWxDdXJyZW50U3RhdGUgPSB0aGlzLnF1b3RlRHJhZnQ/LmN1cnJlbnRTdGF0ZSA/PyBbXTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGhhc1Byb2R1Y3RzJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5xdW90ZVN1YmokLnBpcGUobWFwKCgpID0+IHRoaXMuaGFzUHJvZHVjdHMpKTtcbiAgfVxuICBwdWJsaWMgZ2V0IGhhc1Byb2R1Y3RzKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHF1b3RlRHJhZnQgPSB0aGlzLnF1b3RlU3ViaiQudmFsdWU7XG4gICAgcmV0dXJuIEJvb2xlYW4ocXVvdGVEcmFmdCAmJiBxdW90ZURyYWZ0LmN1cnJlbnRTdGF0ZS5sZW5ndGggPiAwKTtcbiAgfVxuXG4gIHB1YmxpYyBhbGxQcmljZUxpc3RzOiBQcmljZUxpc3RbXSA9IFtdO1xuICBwdWJsaWMgYXNzZXRQcmljZUxpc3RzOiBQcmljZUxpc3RbXSA9IFtdO1xuICBwdWJsaWMgcmVzZXQkID0gdGhpcy5yZXNldFN1YmokLmFzT2JzZXJ2YWJsZSgpO1xuICBwdWJsaWMgYWN0aXZlUHJpY2VMaXN0JDogT2JzZXJ2YWJsZTxQcmljZUxpc3QgfCBudWxsPjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNvbnRleHQ6IENvbnRleHRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcXVvdGVBcGlTZXJ2aWNlOiBRdW90ZUFwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwcmljZUFwaVNlcnZpY2U6IFByaWNlQXBpU2VydmljZSxcbiAgKSB7XG4gICAgdGhpcy5hY3RpdmVQcmljZUxpc3QkID0gdGhpcy5jb250ZXh0LnJlc29sdmUkKCkucGlwZShcbiAgICAgIG1hcChjdHggPT4gdGhpcy5hbGxQcmljZUxpc3RzLmZpbmQocHJpY2VMaXN0ID0+IHByaWNlTGlzdC5pZCA9PT0gY3R4LnByb3BlcnRpZXMuUHJpY2VMaXN0SWQpKSxcbiAgICAgIG1hcChwcmljZUxpc3QgPT4gcHJpY2VMaXN0ID8/IG51bGwpLFxuICAgICk7XG5cbiAgICB0aGlzLmlzSW5pdGlhbGl6ZWRTdWJqJFxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcihpc0luaXRpYWxpemVkID0+IGlzSW5pdGlhbGl6ZWQpLFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5xdW90ZVN1YmokLmFzT2JzZXJ2YWJsZSgpKSxcbiAgICAgICAgc2tpcCgxKSxcbiAgICAgICAgdGFwKHF1b3RlID0+IHRoaXMubWFya0FzVXBkYXRlZChxdW90ZSkpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIHJlc2V0KCk6IHZvaWQge1xuICAgIHRoaXMucmVzZXRTdWJqJC5uZXh0KHRydWUpO1xuICAgIHRoaXMucXVvdGVTdWJqJC5uZXh0KG51bGwpO1xuICAgIHRoaXMuaGFzVW5zYXZlZENoYW5nZXMgPSBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBpbml0KHF1b3RlSWQ6IHN0cmluZywgcGFyYW1zOiBEaWN0aW9uYXJ5PHN0cmluZz4pOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gemlwKHRoaXMucXVvdGVBcGlTZXJ2aWNlLmdldFF1b3RlRHJhZnQocXVvdGVJZCwgcGFyYW1zKSwgdGhpcy5wcmljZUFwaVNlcnZpY2UuZ2V0UHJpY2VMaXN0cygpKS5waXBlKFxuICAgICAgdGFwKChbcXVvdGUsIGFsbFByaWNlTGlzdHNdKSA9PiB7XG4gICAgICAgIHRoaXMuYWxsUHJpY2VMaXN0cyA9IGFsbFByaWNlTGlzdHM7XG4gICAgICAgIHRoaXMucXVvdGVTdWJqJC5uZXh0KHF1b3RlKTtcblxuICAgICAgICB0aGlzLmNvbnRleHQudXBkYXRlKHF1b3RlLmNvbnRleHQpO1xuXG4gICAgICAgIHRoaXMucG9wdWxhdGVBY3RpdmVQcmljZUxpc3RzJCgpO1xuICAgICAgfSksXG4gICAgICBtYXAoKCkgPT4gbm9vcCgpKSxcbiAgICAgIHRha2UoMSksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRDdXJyZW50TGluZUl0ZW1TdGF0ZShsaW5lSXRlbXM6IExpbmVJdGVtW10pOiB2b2lkIHtcbiAgICBjb25zdCBxdW90ZURyYWZ0ID0gdGhpcy5xdW90ZVN1YmokLnZhbHVlO1xuXG4gICAgaWYgKCFxdW90ZURyYWZ0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5xdW90ZVN1YmokLm5leHQoe1xuICAgICAgLi4ucXVvdGVEcmFmdCxcbiAgICAgIGN1cnJlbnRTdGF0ZTogbGluZUl0ZW1zLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZVF1b3RlRHJhZnQodXBkYXRlOiBQYXJ0aWFsPFF1b3RlRHJhZnQ+KTogdm9pZCB7XG4gICAgY29uc3QgcXVvdGVEcmFmdCA9IHRoaXMucXVvdGVTdWJqJC52YWx1ZTtcblxuICAgIGlmICghcXVvdGVEcmFmdCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh1cGRhdGUuY29udGV4dCkge1xuICAgICAgdGhpcy5jb250ZXh0LnNldCh1cGRhdGUuY29udGV4dCk7XG4gICAgfVxuXG4gICAgdGhpcy5xdW90ZVN1YmokLm5leHQoe1xuICAgICAgLi4ucXVvdGVEcmFmdCxcbiAgICAgIC4uLnVwZGF0ZSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVCeVByaWNlU3VtbWFyeShwcmljZVN1bW1hcnk6IFByaWNlU3VtbWFyeSk6IHZvaWQge1xuICAgIGNvbnN0IHF1b3RlRHJhZnQgPSB0aGlzLnF1b3RlU3ViaiQudmFsdWU7XG5cbiAgICBpZiAoIXF1b3RlRHJhZnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB1cGRhdGVkQ3VycmVudFN0YXRlID0gdGhpcy5jdXJyZW50U3RhdGUubWFwKGxpbmVJdGVtID0+IHtcbiAgICAgIGNvbnN0IHVwZGF0ZWQgPSBwcmljZVN1bW1hcnkubGluZUl0ZW1zLmZpbmQobGkgPT4gbGkuaWQgPT09IGxpbmVJdGVtLmlkKTtcbiAgICAgIHJldHVybiB1cGRhdGVkID8/IGxpbmVJdGVtO1xuICAgIH0pO1xuXG4gICAgdGhpcy5xdW90ZVN1YmokLm5leHQoe1xuICAgICAgLi4ucXVvdGVEcmFmdCxcbiAgICAgIGN1cnJlbnRTdGF0ZTogdXBkYXRlZEN1cnJlbnRTdGF0ZSxcbiAgICAgIHRvdGFsUHJpY2VzOiBwcmljZVN1bW1hcnkudG90YWxQcmljZXMsXG4gICAgICBhcHByb3ZhbEl0ZW1zOiBwcmljZVN1bW1hcnkuYXBwcm92YWxJdGVtcyxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcXVvdGVEcmFmdCQoKTogT2JzZXJ2YWJsZTxRdW90ZURyYWZ0PiB7XG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW3RoaXMucXVvdGVTdWJqJCwgdGhpcy5jb250ZXh0LnJlc29sdmUkKCldKS5waXBlKFxuICAgICAgbWFwKCgpID0+IHRoaXMucXVvdGVEcmFmdCksXG4gICAgICBmaWx0ZXIoKHF1b3RlKTogcXVvdGUgaXMgUXVvdGVEcmFmdCA9PiBCb29sZWFuKHF1b3RlKSksXG4gICAgICBzaGFyZVJlcGxheSgpLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHF1b3RlRHJhZnQoKTogUXVvdGVEcmFmdCB8IG51bGwge1xuICAgIGNvbnN0IHF1b3RlID0gdGhpcy5xdW90ZVN1YmokLnZhbHVlO1xuXG4gICAgaWYgKCFxdW90ZSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnF1b3RlLFxuICAgICAgY29udGV4dDogdGhpcy5jb250ZXh0LnJlc29sdmUoKSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGdldCBxdW90ZURyYWZ0Rm9yQWN0aXZlUHJpY2VMaXN0KCk6IFF1b3RlRHJhZnQgfCBudWxsIHtcbiAgICBjb25zdCBxdW90ZURyYWZ0ID0gdGhpcy5xdW90ZURyYWZ0O1xuXG4gICAgaWYgKCFxdW90ZURyYWZ0KSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4ucXVvdGVEcmFmdCxcbiAgICAgIGluaXRpYWxTdGF0ZTogdGhpcy5maWx0ZXJCeUFjdGl2ZVByaWNlTGlzdChxdW90ZURyYWZ0LmluaXRpYWxTdGF0ZSksXG4gICAgICBjdXJyZW50U3RhdGU6IHRoaXMuZmlsdGVyQnlBY3RpdmVQcmljZUxpc3QocXVvdGVEcmFmdC5jdXJyZW50U3RhdGUpLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgZ2V0IGN1cnJlbnRTdGF0ZSQoKTogT2JzZXJ2YWJsZTxMaW5lSXRlbVtdPiB7XG4gICAgcmV0dXJuIHRoaXMucXVvdGVEcmFmdCQucGlwZShtYXAocXVvdGUgPT4gcXVvdGUuY3VycmVudFN0YXRlKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGN1cnJlbnRTdGF0ZSgpOiBMaW5lSXRlbVtdIHtcbiAgICByZXR1cm4gdGhpcy5xdW90ZURyYWZ0Py5jdXJyZW50U3RhdGUgPz8gW107XG4gIH1cblxuICAvKipcbiAgICogU3RyZWFtIG9mIGFjdGl2ZUN1cnJlbnRTdGF0ZVxuICAgKi9cbiAgcHVibGljIGdldCBhY3RpdmVDdXJyZW50U3RhdGUkKCk6IE9ic2VydmFibGU8TGluZUl0ZW1bXT4ge1xuICAgIHJldHVybiB0aGlzLnF1b3RlRHJhZnQkLnBpcGUobWFwKCgpID0+IHRoaXMuYWN0aXZlQ3VycmVudFN0YXRlKSk7XG4gIH1cblxuICAvKipcbiAgICogYWN0aXZlQ3VycmVudFN0YXRlIGlzIGN1cnJlbnRTdGF0ZSBwYXNzZWQgdGhyb3VnaCBhZGRpdGlvbmFsIGZpbHRlcnNcbiAgICovXG4gIHB1YmxpYyBnZXQgYWN0aXZlQ3VycmVudFN0YXRlKCk6IExpbmVJdGVtW10ge1xuICAgIGxldCBjdXJyZW50U3RhdGUgPSB0aGlzLnF1b3RlRHJhZnQ/LmN1cnJlbnRTdGF0ZSA/PyBbXTtcblxuICAgIGN1cnJlbnRTdGF0ZSA9IHRoaXMuZmlsdGVyQnlBY3RpdmVQcmljZUxpc3QoY3VycmVudFN0YXRlKTtcblxuICAgIHJldHVybiBjdXJyZW50U3RhdGU7XG4gIH1cblxuICAvKipcbiAgICogU3RyZWFtIG9mIGFjdGl2ZUluaXRpYWxTdGF0ZVxuICAgKi9cbiAgcHVibGljIGdldCBhY3RpdmVJbml0aWFsU3RhdGUkKCk6IE9ic2VydmFibGU8TGluZUl0ZW1bXT4ge1xuICAgIHJldHVybiB0aGlzLnF1b3RlRHJhZnQkLnBpcGUobWFwKCgpID0+IHRoaXMuYWN0aXZlSW5pdGlhbFN0YXRlKSk7XG4gIH1cblxuICAvKipcbiAgICogYWN0aXZlSW5pdGlhbFN0YXRlIGlzIGluaXRpYWxTdGF0ZSBwYXNzZWQgdGhyb3VnaCBhZGRpdGlvbmFsIGZpbHRlcnNcbiAgICovXG4gIHB1YmxpYyBnZXQgYWN0aXZlSW5pdGlhbFN0YXRlKCk6IExpbmVJdGVtW10ge1xuICAgIGNvbnN0IGN0eCA9IHRoaXMuY29udGV4dC5yZXNvbHZlKCk7XG4gICAgbGV0IGluaXRpYWxTdGF0ZSA9IHRoaXMucXVvdGVEcmFmdD8uaW5pdGlhbFN0YXRlID8/IFtdO1xuXG4gICAgaWYgKGN0eC5tb2RlID09PSBDb25maWd1cmF0aW9uQ29udGV4dE1vZGUuQUNDT1VOVCkge1xuICAgICAgaW5pdGlhbFN0YXRlID0gdGhpcy5maWx0ZXJCeUFjdGl2ZVByaWNlTGlzdChpbml0aWFsU3RhdGUpO1xuICAgIH1cblxuICAgIHJldHVybiBpbml0aWFsU3RhdGU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzU3RhbmRhbG9uZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jb250ZXh0LnJlc29sdmUoKS5wcm9wZXJ0aWVzLnN0YW5kYWxvbmUgPT09ICd0cnVlJztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNTdGFuZGFsb25lJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5jb250ZXh0LnJlc29sdmUkKCkucGlwZShtYXAoKCkgPT4gdGhpcy5pc1N0YW5kYWxvbmUpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRJbml0aWFsQ3VycmVudFN0YXRlKCk6IExpbmVJdGVtW10ge1xuICAgIHJldHVybiB0aGlzLmluaXRpYWxDdXJyZW50U3RhdGU7XG4gIH1cblxuICBwdWJsaWMgaXNFZGl0TW9kZSQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuY29udGV4dC5yZXNvbHZlJCgpLnBpcGUobWFwKCgpID0+IHRoaXMuaXNFZGl0TW9kZSgpKSk7XG4gIH1cblxuICBwdWJsaWMgaXNFZGl0TW9kZSgpOiBib29sZWFuIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5jb250ZXh0LnJlc29sdmUoKTtcblxuICAgIGlmIChjb250ZXh0Lm1vZGUgPT09IENvbmZpZ3VyYXRpb25Db250ZXh0TW9kZS5BQ0NPVU5UKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoY29udGV4dC5tb2RlID09PSBDb25maWd1cmF0aW9uQ29udGV4dE1vZGUuUVVPVEUpIHtcbiAgICAgIHJldHVybiBjb250ZXh0LnByb3BlcnRpZXMuU3RhdHVzID09PSAnRHJhZnQnO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVBY3RpdmVQcmljZUxpc3QocHJpY2VMaXN0SWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuY29udGV4dC51cGRhdGUoeyBwcm9wZXJ0aWVzOiB7IFByaWNlTGlzdElkOiBwcmljZUxpc3RJZCB9IH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBwb3B1bGF0ZUFjdGl2ZVByaWNlTGlzdHMkKCk6IHZvaWQge1xuICAgIGNvbnN0IGN0eCA9IHRoaXMuY29udGV4dC5yZXNvbHZlKCk7XG4gICAgY29uc3QgcXVvdGVEcmFmdCA9IHRoaXMucXVvdGVEcmFmdDtcblxuICAgIGlmICghcXVvdGVEcmFmdCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIEluIEFDQ09VTlQgbW9kZSBwb3B1bGF0ZSBwcmljZSBsaXN0cyBmcm9tIHJlbGF0ZWQgYXNzZXRzXG4gICAgaWYgKGN0eC5tb2RlID09PSBDb25maWd1cmF0aW9uQ29udGV4dE1vZGUuQUNDT1VOVCkge1xuICAgICAgLy8gUG9wdWxhdGUgbGlzdCBvZiBwcmljZSBsaXN0c1xuICAgICAgdGhpcy5hc3NldFByaWNlTGlzdHMgPSBxdW90ZURyYWZ0LmN1cnJlbnRTdGF0ZVxuICAgICAgICAubWFwKCh7IHByaWNlTGlzdElkIH0pID0+IHByaWNlTGlzdElkKVxuICAgICAgICAucmVkdWNlPFByaWNlTGlzdFtdPigodHJ1bmssIHByaWNlTGlzdElkKSA9PiB7XG4gICAgICAgICAgaWYgKCFwcmljZUxpc3RJZCB8fCB0cnVuay5zb21lKGl0ZW0gPT4gaXRlbS5pZCA9PT0gcHJpY2VMaXN0SWQpKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1bms7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIC4uLnRydW5rLFxuICAgICAgICAgICAgeyBpZDogcHJpY2VMaXN0SWQsIG5hbWU6IHRoaXMuYWxsUHJpY2VMaXN0cy5maW5kKGl0ZW0gPT4gaXRlbS5pZCA9PT0gcHJpY2VMaXN0SWQpPy5uYW1lID8/ICcnIH0sXG4gICAgICAgICAgXTtcbiAgICAgICAgfSwgW10pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZmlsdGVyQnlBY3RpdmVQcmljZUxpc3QobGluZUl0ZW1zOiBMaW5lSXRlbVtdKTogTGluZUl0ZW1bXSB7XG4gICAgY29uc3QgY3R4ID0gdGhpcy5jb250ZXh0LnJlc29sdmUoKTtcblxuICAgIHJldHVybiBsaW5lSXRlbXMuZmlsdGVyKGxpID0+ICFsaS5wcmljZUxpc3RJZCB8fCBsaS5wcmljZUxpc3RJZCA9PT0gY3R4LnByb3BlcnRpZXMuUHJpY2VMaXN0SWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBtYXJrQXNVcGRhdGVkKHF1b3RlOiBRdW90ZURyYWZ0IHwgbnVsbCk6IHZvaWQge1xuICAgIGlmIChxdW90ZT8uY29udGV4dC5wcm9wZXJ0aWVzLm1vZGUgPT09IENvbmZpZ3VyYXRpb25Db250ZXh0TW9kZS5BQ0NPVU5UKSB7XG4gICAgICB0aGlzLmhhc1Vuc2F2ZWRDaGFuZ2VzID0gISFxdW90ZSAmJiAhcXVvdGUuY3VycmVudFN0YXRlLmV2ZXJ5KGxpID0+IGxpLmFjdGlvbkNvZGUgPT09ICdFWElTVCcpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmhhc1Vuc2F2ZWRDaGFuZ2VzID0gIWlzRXF1YWwodGhpcy5pbml0aWFsQ3VycmVudFN0YXRlLCBxdW90ZT8uY3VycmVudFN0YXRlKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -13,4 +13,4 @@ export var RuntimeStep;
13
13
  RuntimeStep["START"] = "START";
14
14
  RuntimeStep["UPDATE"] = "UPDATE";
15
15
  })(RuntimeStep || (RuntimeStep = {}));
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2NvcmUvdHlwZXMvcnVudGltZS50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQU4sSUFBWSxXQUdYO0FBSEQsV0FBWSxXQUFXO0lBQ3JCLDZDQUFJLENBQUE7SUFDSiw2Q0FBSSxDQUFBO0FBQ04sQ0FBQyxFQUhXLFdBQVcsS0FBWCxXQUFXLFFBR3RCO0FBRUQsTUFBTSxDQUFOLElBQVksZ0JBR1g7QUFIRCxXQUFZLGdCQUFnQjtJQUMxQixpQ0FBYSxDQUFBO0lBQ2IscUNBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQUhXLGdCQUFnQixLQUFoQixnQkFBZ0IsUUFHM0I7QUFFRCxNQUFNLENBQU4sSUFBWSxXQUdYO0FBSEQsV0FBWSxXQUFXO0lBQ3JCLDhCQUFlLENBQUE7SUFDZixnQ0FBaUIsQ0FBQTtBQUNuQixDQUFDLEVBSFcsV0FBVyxLQUFYLFdBQVcsUUFHdEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb250ZXh0UHJvcGVydGllcywgUnVudGltZU1vZGVsLCBVSURlZmluaXRpb24gfSBmcm9tICdAdmVsb2NlYXBwcy9jb3JlJztcblxuZXhwb3J0IGVudW0gUnVudGltZU1vZGUge1xuICBURVNULFxuICBQUk9ELFxufVxuXG5leHBvcnQgZW51bSBSdW50aW1lT3BlcmF0aW9uIHtcbiAgSU5JVCA9ICdJTklUJyxcbiAgVVBEQVRFID0gJ1VQREFURScsXG59XG5cbmV4cG9ydCBlbnVtIFJ1bnRpbWVTdGVwIHtcbiAgU1RBUlQgPSAnU1RBUlQnLFxuICBVUERBVEUgPSAnVVBEQVRFJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbnZvY2F0aW9uQ29udGV4dCB7XG4gIHJ1bnRpbWVPcGVyYXRpb24/OiBSdW50aW1lT3BlcmF0aW9uO1xuICBydW50aW1lU3RlcD86IFJ1bnRpbWVTdGVwO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJ1bnRpbWVDb250ZXh0IHtcbiAgbW9kZWxJZDogc3RyaW5nO1xuICBydW50aW1lTW9kZTogUnVudGltZU1vZGU7XG4gIHJ1bnRpbWVNb2RlbDogUnVudGltZU1vZGVsO1xuICB1aURlZmluaXRpb24/OiBVSURlZmluaXRpb247XG4gIHByb2R1Y3RJZD86IHN0cmluZztcbiAgcHJvZHVjdE5hbWU/OiBzdHJpbmc7XG4gIHByb2R1Y3RUeXBlPzogc3RyaW5nO1xuICBwcm9wZXJ0aWVzPzogQ29udGV4dFByb3BlcnRpZXM7XG4gIG9mZmVyaW5nSWQ/OiBzdHJpbmc7XG4gIG9mZmVyaW5nSW5zdGFuY2VJZD86IHN0cmluZztcbiAgaW52b2NhdGlvbkNvbnRleHQ/OiBJbnZvY2F0aW9uQ29udGV4dDtcbn1cbiJdfQ==
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2NvcmUvdHlwZXMvcnVudGltZS50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQU4sSUFBWSxXQUdYO0FBSEQsV0FBWSxXQUFXO0lBQ3JCLDZDQUFJLENBQUE7SUFDSiw2Q0FBSSxDQUFBO0FBQ04sQ0FBQyxFQUhXLFdBQVcsS0FBWCxXQUFXLFFBR3RCO0FBRUQsTUFBTSxDQUFOLElBQVksZ0JBR1g7QUFIRCxXQUFZLGdCQUFnQjtJQUMxQixpQ0FBYSxDQUFBO0lBQ2IscUNBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQUhXLGdCQUFnQixLQUFoQixnQkFBZ0IsUUFHM0I7QUFFRCxNQUFNLENBQU4sSUFBWSxXQUdYO0FBSEQsV0FBWSxXQUFXO0lBQ3JCLDhCQUFlLENBQUE7SUFDZixnQ0FBaUIsQ0FBQTtBQUNuQixDQUFDLEVBSFcsV0FBVyxLQUFYLFdBQVcsUUFHdEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb250ZXh0UHJvcGVydGllcywgUnVudGltZU1vZGVsLCBVSURlZmluaXRpb25Db250YWluZXIgfSBmcm9tICdAdmVsb2NlYXBwcy9jb3JlJztcblxuZXhwb3J0IGVudW0gUnVudGltZU1vZGUge1xuICBURVNULFxuICBQUk9ELFxufVxuXG5leHBvcnQgZW51bSBSdW50aW1lT3BlcmF0aW9uIHtcbiAgSU5JVCA9ICdJTklUJyxcbiAgVVBEQVRFID0gJ1VQREFURScsXG59XG5cbmV4cG9ydCBlbnVtIFJ1bnRpbWVTdGVwIHtcbiAgU1RBUlQgPSAnU1RBUlQnLFxuICBVUERBVEUgPSAnVVBEQVRFJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbnZvY2F0aW9uQ29udGV4dCB7XG4gIHJ1bnRpbWVPcGVyYXRpb24/OiBSdW50aW1lT3BlcmF0aW9uO1xuICBydW50aW1lU3RlcD86IFJ1bnRpbWVTdGVwO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJ1bnRpbWVDb250ZXh0IHtcbiAgbW9kZWxJZDogc3RyaW5nO1xuICBydW50aW1lTW9kZTogUnVudGltZU1vZGU7XG4gIHJ1bnRpbWVNb2RlbDogUnVudGltZU1vZGVsO1xuICB1aURlZmluaXRpb25Db250YWluZXI/OiBVSURlZmluaXRpb25Db250YWluZXI7XG4gIHByb2R1Y3RJZD86IHN0cmluZztcbiAgcHJvZHVjdE5hbWU/OiBzdHJpbmc7XG4gIHByb2R1Y3RUeXBlPzogc3RyaW5nO1xuICBwcm9wZXJ0aWVzPzogQ29udGV4dFByb3BlcnRpZXM7XG4gIG9mZmVyaW5nSWQ/OiBzdHJpbmc7XG4gIG9mZmVyaW5nSW5zdGFuY2VJZD86IHN0cmluZztcbiAgaW52b2NhdGlvbkNvbnRleHQ/OiBJbnZvY2F0aW9uQ29udGV4dDtcbn1cbiJdfQ==
@@ -117,7 +117,7 @@ export class DocGenComponent {
117
117
  }
118
118
  }
119
119
  DocGenComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: DocGenComponent, deps: [{ token: i1.QuoteDraftService }, { token: i1.ContextService }, { token: i2.UITemplatesApiService }, { token: i3.FlowDocGenService }, { token: i4.ToastService }, { token: FLOW_CUSTOMIZATION, optional: true }], target: i0.ɵɵFactoryTarget.Component });
120
- DocGenComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: DocGenComponent, selector: "vl-flow-doc-gen", ngImport: i0, template: "<ng-container *ngIf=\"isVisible$ | async\">\n <ng-container *ngIf=\"uiDefinition$ | async as uiDefinition\">\n <vl-cms-preview [uiDefinition]=\"uiDefinition\"></vl-cms-preview>\n </ng-container>\n</ng-container>\n", styles: [":host,vl-cms-preview{display:contents}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.PreviewComponent, selector: "vl-cms-preview", inputs: ["modelId", "uiDefinition", "config"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
120
+ DocGenComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: DocGenComponent, selector: "vl-flow-doc-gen", ngImport: i0, template: "<ng-container *ngIf=\"isVisible$ | async\">\n <ng-container *ngIf=\"uiDefinition$ | async as uiDefinition\">\n <vl-cms-preview [uiDefinition]=\"uiDefinition\"></vl-cms-preview>\n </ng-container>\n</ng-container>\n", styles: [":host,vl-cms-preview{display:contents}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.PreviewComponent, selector: "vl-cms-preview", inputs: ["uiDefinition", "config"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
121
121
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: DocGenComponent, decorators: [{
122
122
  type: Component,
123
123
  args: [{ selector: 'vl-flow-doc-gen', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"isVisible$ | async\">\n <ng-container *ngIf=\"uiDefinition$ | async as uiDefinition\">\n <vl-cms-preview [uiDefinition]=\"uiDefinition\"></vl-cms-preview>\n </ng-container>\n</ng-container>\n", styles: [":host,vl-cms-preview{display:contents}\n"] }]
@@ -104,7 +104,7 @@ export class GuidedSellingComponent {
104
104
  }
105
105
  }
106
106
  GuidedSellingComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: GuidedSellingComponent, deps: [{ token: i1.QuoteDraftService }, { token: i1.ContextService }, { token: i2.UITemplatesApiService }, { token: i3.FlowGuidedSellingService }, { token: i4.ToastService }, { token: FLOW_CUSTOMIZATION, optional: true }], target: i0.ɵɵFactoryTarget.Component });
107
- GuidedSellingComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: GuidedSellingComponent, selector: "vl-flow-guided-selling", ngImport: i0, template: "<ng-container *ngIf=\"uiDefinition$ | async as uiDefinition\">\n <vl-cms-preview [uiDefinition]=\"uiDefinition\"></vl-cms-preview>\n</ng-container>\n", styles: [":host,vl-cms-preview{display:contents}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.PreviewComponent, selector: "vl-cms-preview", inputs: ["modelId", "uiDefinition", "config"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
107
+ GuidedSellingComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: GuidedSellingComponent, selector: "vl-flow-guided-selling", ngImport: i0, template: "<ng-container *ngIf=\"uiDefinition$ | async as uiDefinition\">\n <vl-cms-preview [uiDefinition]=\"uiDefinition\"></vl-cms-preview>\n</ng-container>\n", styles: [":host,vl-cms-preview{display:contents}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.PreviewComponent, selector: "vl-cms-preview", inputs: ["uiDefinition", "config"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
108
108
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: GuidedSellingComponent, decorators: [{
109
109
  type: Component,
110
110
  args: [{ selector: 'vl-flow-guided-selling', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"uiDefinition$ | async as uiDefinition\">\n <vl-cms-preview [uiDefinition]=\"uiDefinition\"></vl-cms-preview>\n</ng-container>\n", styles: [":host,vl-cms-preview{display:contents}\n"] }]
@@ -98,7 +98,7 @@ export class AssetsComponent {
98
98
  }
99
99
  }
100
100
  AssetsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: AssetsComponent, deps: [{ token: i1.UITemplatesApiService }, { token: i2.ContextService }, { token: i0.ChangeDetectorRef }, { token: i3.ToastService }, { token: FLOW_CUSTOMIZATION, optional: true }], target: i0.ɵɵFactoryTarget.Component });
101
- AssetsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: AssetsComponent, selector: "vl-flow-assets", ngImport: i0, template: "<ng-container *ngIf=\"state$ | async as state\">\n <vl-loader *ngIf=\"state.loading; else content\" [label]=\"'Loading UI'\"></vl-loader>\n\n <ng-template #content>\n <ng-container *ngIf=\"!state.failure\">\n <vl-cms-preview [uiDefinition]=\"uiDefinition\"></vl-cms-preview>\n </ng-container>\n </ng-template>\n</ng-container>\n", styles: [""], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.PreviewComponent, selector: "vl-cms-preview", inputs: ["modelId", "uiDefinition", "config"] }, { kind: "component", type: i3.LoaderComponent, selector: "vl-loader", inputs: ["label", "overlayVisible"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
101
+ AssetsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: AssetsComponent, selector: "vl-flow-assets", ngImport: i0, template: "<ng-container *ngIf=\"state$ | async as state\">\n <vl-loader *ngIf=\"state.loading; else content\" [label]=\"'Loading UI'\"></vl-loader>\n\n <ng-template #content>\n <ng-container *ngIf=\"!state.failure\">\n <vl-cms-preview [uiDefinition]=\"uiDefinition\"></vl-cms-preview>\n </ng-container>\n </ng-template>\n</ng-container>\n", styles: [""], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.PreviewComponent, selector: "vl-cms-preview", inputs: ["uiDefinition", "config"] }, { kind: "component", type: i3.LoaderComponent, selector: "vl-loader", inputs: ["label", "overlayVisible"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
102
102
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: AssetsComponent, decorators: [{
103
103
  type: Component,
104
104
  args: [{ selector: 'vl-flow-assets', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"state$ | async as state\">\n <vl-loader *ngIf=\"state.loading; else content\" [label]=\"'Loading UI'\"></vl-loader>\n\n <ng-template #content>\n <ng-container *ngIf=\"!state.failure\">\n <vl-cms-preview [uiDefinition]=\"uiDefinition\"></vl-cms-preview>\n </ng-container>\n </ng-template>\n</ng-container>\n" }]
@@ -98,7 +98,7 @@ export class CatalogComponent {
98
98
  }
99
99
  }
100
100
  CatalogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: CatalogComponent, deps: [{ token: i1.UITemplatesApiService }, { token: i2.ContextService }, { token: i0.ChangeDetectorRef }, { token: i3.ToastService }, { token: FLOW_CUSTOMIZATION, optional: true }], target: i0.ɵɵFactoryTarget.Component });
101
- CatalogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: CatalogComponent, selector: "vl-flow-catalog", ngImport: i0, template: "<ng-container *ngIf=\"state$ | async as state\">\n <vl-loader *ngIf=\"state.loading; else content\" [label]=\"'Loading UI'\"></vl-loader>\n\n <ng-template #content>\n <ng-container *ngIf=\"!state.failure\">\n <vl-cms-preview [uiDefinition]=\"uiDefinition\"></vl-cms-preview>\n </ng-container>\n </ng-template>\n</ng-container>\n", styles: [""], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.PreviewComponent, selector: "vl-cms-preview", inputs: ["modelId", "uiDefinition", "config"] }, { kind: "component", type: i3.LoaderComponent, selector: "vl-loader", inputs: ["label", "overlayVisible"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
101
+ CatalogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: CatalogComponent, selector: "vl-flow-catalog", ngImport: i0, template: "<ng-container *ngIf=\"state$ | async as state\">\n <vl-loader *ngIf=\"state.loading; else content\" [label]=\"'Loading UI'\"></vl-loader>\n\n <ng-template #content>\n <ng-container *ngIf=\"!state.failure\">\n <vl-cms-preview [uiDefinition]=\"uiDefinition\"></vl-cms-preview>\n </ng-container>\n </ng-template>\n</ng-container>\n", styles: [""], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.PreviewComponent, selector: "vl-cms-preview", inputs: ["uiDefinition", "config"] }, { kind: "component", type: i3.LoaderComponent, selector: "vl-loader", inputs: ["label", "overlayVisible"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
102
102
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: CatalogComponent, decorators: [{
103
103
  type: Component,
104
104
  args: [{ selector: 'vl-flow-catalog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"state$ | async as state\">\n <vl-loader *ngIf=\"state.loading; else content\" [label]=\"'Loading UI'\"></vl-loader>\n\n <ng-template #content>\n <ng-container *ngIf=\"!state.failure\">\n <vl-cms-preview [uiDefinition]=\"uiDefinition\"></vl-cms-preview>\n </ng-container>\n </ng-template>\n</ng-container>\n" }]
@@ -4,7 +4,7 @@ import { QuoteApiService } from '@veloceapps/api';
4
4
  import { EntityUtil } from '@veloceapps/core';
5
5
  import { ContextService, QuoteDraftService, RuntimeOperation } from '@veloceapps/sdk/core';
6
6
  import { CurrentStateService, RuntimeContextService, RuntimeService, } from '@veloceapps/sdk/runtime';
7
- import { of, Subject } from 'rxjs';
7
+ import { Subject, of } from 'rxjs';
8
8
  import { first, map, switchMap, take, takeUntil } from 'rxjs/operators';
9
9
  import { FLOW_CUSTOMIZATION } from '../../types';
10
10
  import * as i0 from "@angular/core";
@@ -111,9 +111,9 @@ export class LegacyProductComponent {
111
111
  if (!this.customizationService?.getLegacyUiDefinition) {
112
112
  return of(context);
113
113
  }
114
- return this.customizationService.getLegacyUiDefinition(productId).pipe(map(uiDef => ({
114
+ return this.customizationService.getLegacyUiDefinition(productId).pipe(map(uiDefinitionContainer => ({
115
115
  ...context,
116
- uiDefinition: uiDef ?? context.uiDefinition,
116
+ uiDefinitionContainer: uiDefinitionContainer ?? undefined,
117
117
  })));
118
118
  }
119
119
  getRuntimeContext(productId, offeringId, runtimeOperation) {
@@ -134,4 +134,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
134
134
  type: Inject,
135
135
  args: [FLOW_CUSTOMIZATION]
136
136
  }] }]; } });
137
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVnYWN5LXByb2R1Y3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvc3JjL3BhZ2VzL2xlZ2FjeS1wcm9kdWN0L2xlZ2FjeS1wcm9kdWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3NyYy9wYWdlcy9sZWdhY3ktcHJvZHVjdC9sZWdhY3ktcHJvZHVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBcUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxjQUFjLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBa0MsTUFBTSxrQkFBa0IsQ0FBQztBQUM5RSxPQUFPLEVBQUUsY0FBYyxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0YsT0FBTyxFQUNMLG1CQUFtQixFQUduQixxQkFBcUIsRUFDckIsY0FBYyxHQUdmLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUFjLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0MsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RSxPQUFPLEVBQXFCLGtCQUFrQixFQUFFLE1BQU0sYUFBYSxDQUFDOzs7Ozs7QUFRcEUsTUFBTSxPQUFPLHNCQUFzQjtJQUtqQyxZQUNVLEtBQXFCLEVBQ3JCLGlCQUFvQyxFQUNwQyxlQUFnQyxFQUNoQyxjQUE4QixFQUM5QixxQkFBNEMsRUFDNUMsY0FBOEIsRUFDOUIsbUJBQXdDLEVB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N0UsR0FBRyxDQUFDLGNBQWMsQ0FBQyxFQUFFO1lBQ25CLGNBQWMsQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQztZQUM1RixPQUFPLGNBQWMsQ0FBQztRQUN4QixDQUFDLENBQUMsRUFDRixTQUFTLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLGNBQWMsQ0FBQyxDQUFDLENBQzlFLENBQUM7SUFDSixDQUFDOzttSEF6SlUsc0JBQXNCLG9QQWFYLGtCQUFrQjt1R0FiN0Isc0JBQXNCLG9EQ3hCbkMsMEZBQ0E7MkZEdUJhLHNCQUFzQjtrQkFKbEMsU0FBUzs7OzBCQWlCTCxRQUFROzswQkFBSSxNQUFNOzJCQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgUXVvdGVBcGlTZXJ2aWNlIH0gZnJvbSAnQHZlbG9jZWFwcHMvYXBpJztcbmltcG9ydCB7IEVudGl0eVV0aWwsIExpbmVJdGVtLCBRdW90ZURyYWZ0LCBWbFdpbmRvdyB9IGZyb20gJ0B2ZWxvY2VhcHBzL2NvcmUnO1xuaW1wb3J0IHsgQ29udGV4dFNlcnZpY2UsIFF1b3RlRHJhZnRTZXJ2aWNlLCBSdW50aW1lT3BlcmF0aW9uIH0gZnJvbSAnQHZlbG9jZWFwcHMvc2RrL2NvcmUnO1xuaW1wb3J0IHtcbiAgQ3VycmVudFN0YXRlU2VydmljZSxcbiAgTGVnYWN5UnVudGltZUNvbnRleHQsXG4gIFF1b3RlU3RhdGVzLFxuICBSdW50aW1lQ29udGV4dFNlcnZpY2UsXG4gIFJ1bnRpbWVTZXJ2aWNlLFxuICBTb2x1dGlvblJlYWR5QXdhcmUsXG4gIFNvbHV0aW9uVXBkYXRlZEF3YXJlLFxufSBmcm9tICdAdmVsb2NlYXBwcy9zZGsvcnVudGltZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlyc3QsIG1hcCwgc3dpdGNoTWFwLCB0YWtlLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBGbG93Q3VzdG9taXphdGlvbiwgRkxPV19DVVNUT01JWkFUSU9OIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuXG5kZWNsYXJlIGNvbnN0IHdpbmRvdzogVmxXaW5kb3c7XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZVVybDogJy4vbGVnYWN5LXByb2R1Y3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9sZWdhY3ktcHJvZHVjdC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBMZWdhY3lQcm9kdWN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIFNvbHV0aW9uVXBkYXRlZEF3YXJlLCBTb2x1dGlvblJlYWR5QXdhcmUge1xuICBwcml2YXRlIGRlc3Ryb3llZCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHByaXZhdGUgYXNzZXRzPzogTGluZUl0ZW1bXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHF1b3RlRHJhZnRTZXJ2aWNlOiBRdW90ZURyYWZ0U2VydmljZSxcbiAgICBwcml2YXRlIHF1b3RlQXBpU2VydmljZTogUXVvdGVBcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29udGV4dFNlcnZpY2U6IENvbnRleHRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcnVudGltZUNvbnRleHRTZXJ2aWNlOiBSdW50aW1lQ29udGV4dFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBydW50aW1lU2VydmljZTogUnVudGltZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjdXJyZW50U3RhdGVTZXJ2aWNlOiBDdXJyZW50U3RhdGVTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoRkxPV19DVVNUT01JWkFUSU9OKSBwcml2YXRlIGN1c3RvbWl6YXRpb25TZXJ2aWNlPzogRmxvd0N1c3RvbWl6YXRpb24sXG4gICkge31cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5xdW90ZURyYWZ0U2VydmljZS5xdW90ZURyYWZ0JFxuICAgICAgLnBpcGUoZmlyc3QoKSwgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCkpXG4gICAgICAuc3Vic2NyaWJlKHF1b3RlID0+IHRoaXMuaW5pdChxdW90ZSwgdGhpcy5yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcykpO1xuXG4gICAgdGhpcy5ydW50aW1lU2VydmljZS5vblNvbHV0aW9uU3RvcEV2ZW50LnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKGxpbmVJdGVtID0+IHRoaXMub25Tb2x1dGlvblN0b3AobGluZUl0ZW0pKTtcblxuICAgIHRoaXMucnVudGltZVNlcnZpY2Uub25Tb2x1dGlvblJlYWR5RXZlbnQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoZXZlbnQgPT4gdGhpcy5vblNvbHV0aW9uUmVhZHkoZXZlbnQpKTtcblxuICAgIHRoaXMucnVudGltZVNlcnZpY2Uub25Tb2x1dGlvbkNhbmNlbEV2ZW50LnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMub25Tb2x1dGlvbkNhbmNlbCgpKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3llZCQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveWVkJC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHVibGljIG9uU29sdXRpb25SZWFkeShsaW5lSXRlbTogTGluZUl0ZW0pOiB2b2lkIHtcbiAgICBsaW5lSXRlbS5hY3Rpb25Db2RlID0gbGluZUl0ZW0uYWN0aW9uQ29kZSA/PyAnQUREJztcbiAgfVxuXG4gIHB1YmxpYyBvblNvbHV0aW9uQ2FuY2VsKCk6IHZvaWQge1xuICAgIHRoaXMucXVvdGVEcmFmdFNlcnZpY2UucXVvdGVEcmFmdCQucGlwZShmaXJzdCgpLCB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSkuc3Vic2NyaWJlKHF1b3RlID0+IHtcbiAgICAgIHdpbmRvd1snVkVMT19CQUNLX0ZOJ10uYXBwbHkobnVsbCwgW3F1b3RlLnF1b3RlSWRdKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvblNvbHV0aW9uVXBkYXRlZChsaW5lSXRlbTogTGluZUl0ZW0pOiB2b2lkIHtcbiAgICBjb25zdCBzdGF0ZXM6IFF1b3RlU3RhdGVzID0ge1xuICAgICAgY29uZmlndXJhYmxlUmFtcDogbGluZUl0ZW0sXG4gICAgICBjdXJyZW50U3RhdGU6IHRoaXMuY3VycmVudFN0YXRlU2VydmljZS5jdXJyZW50U3RhdGUsXG4gICAgICBhc3NldDogdGhpcy5nZXRBc3NldChsaW5lSXRlbSksXG4gICAgfTtcblxuICAgIHRoaXMucnVudGltZVNlcnZpY2UudXBkYXRlUnVudGltZShzdGF0ZXMpO1xuICB9XG5cbiAgcHVibGljIG9uU29sdXRpb25TdG9wKGxpbmVJdGVtOiBMaW5lSXRlbSk6IHZvaWQge1xuICAgIHRoaXMucXVvdGVEcmFmdFNlcnZpY2UucXVvdGVEcmFmdCQucGlwZShmaXJzdCgpLCB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSkuc3Vic2NyaWJlKHF1b3RlID0+IHtcbiAgICAgIGNvbnN0IHF1b3RlVG9VcHNlcnQ6IFF1b3RlRHJhZnQgPSB7XG4gICAgICAgIC4uLnF1b3RlLFxuICAgICAgICBjb250ZXh0OiB0aGlzLmNvbnRleHRTZXJ2aWNlLnJlc29sdmUoKSxcbiAgICAgICAgY3VycmVudFN0YXRlOiBbLi4uKHRoaXMuY3VycmVudFN0YXRlU2VydmljZS5jdXJyZW50U3RhdGUgfHwgW10pLmZpbHRlcihsaSA9PiBsaS5pZCAhPT0gbGluZUl0ZW0uaWQpLCBsaW5lSXRlbV0sXG4gICAgICB9O1xuXG4gICAgICB0aGlzLnF1b3RlQXBpU2VydmljZVxuICAgICAgICAudXBzZXJ0UXVvdGUocXVvdGVUb1Vwc2VydClcbiAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgLnN1YnNjcmliZShxdW90ZSA9PiB7XG4gICAgICAgICAgd2luZG93WydWRUxPX0JBQ0tfRk4nXS5hcHBseShudWxsLCBbcXVvdGUucXVvdGVJZF0pO1xuICAgICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdChxdW90ZTogUXVvdGVEcmFmdCwgcXVlcnlQYXJhbXM6IFBhcmFtcyk6IHZvaWQge1xuICAgIGNvbnN0IHByb2R1Y3RJZCA9IHF1ZXJ5UGFyYW1zWydwcm9kdWN0SWQnXTtcbiAgICBjb25zdCBsaW5lSXRlbUlkID0gdGhpcy5nZXRMaW5lSXRlbUlkKHF1b3RlLCBxdWVyeVBhcmFtcyk7XG4gICAgdGhpcy5hc3NldHMgPSBxdW90ZS5pbml0aWFsU3RhdGU7XG5cbiAgICBsaW5lSXRlbUlkICYmIHF1b3RlLmN1cnJlbnRTdGF0ZSA/IHRoaXMucmVDb25maWd1cmUobGluZUl0ZW1JZCwgcXVvdGUuY3VycmVudFN0YXRlKSA6IHRoaXMuY29uZmlndXJlKHByb2R1Y3RJZCk7XG4gIH1cblxuICBwcml2YXRlIGdldExpbmVJdGVtSWQocXVvdGU6IFF1b3RlRHJhZnQsIHF1ZXJ5UGFyYW1zOiBQYXJhbXMpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGlmIChFbnRpdHlVdGlsLmlzUHJlc2VudChxdWVyeVBhcmFtc1snbGluZUl0ZW1JZCddKSkge1xuICAgICAgcmV0dXJuIHF1ZXJ5UGFyYW1zWydsaW5lSXRlbUlkJ107XG4gICAgfVxuXG4gICAgcmV0dXJuIHF1b3RlLmN1cnJlbnRTdGF0ZVxuICAgICAgLmZpbHRlcihsaW5lSXRlbSA9PiBsaW5lSXRlbS5wcm9kdWN0SWQgPT09IHF1ZXJ5UGFyYW1zWydwcm9kdWN0SWQnXSlcbiAgICAgIC5tYXAobGluZUl0ZW0gPT4gbGluZUl0ZW0uaWQpXG4gICAgICAuZmluZChpZCA9PiBpZCk7XG4gIH1cblxuICBwcml2YXRlIGNvbmZpZ3VyZShwcm9kdWN0SWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IHJ1bnRpbWVDb250ZXh0ID0gdGhpcy5nZXRSdW50aW1lQ29udGV4dChwcm9kdWN0SWQsICcnLCBSdW50aW1lT3BlcmF0aW9uLklOSVQpO1xuXG4gICAgdGhpcy5zdGFydFJ1bnRpbWUoe30sIHJ1bnRpbWVDb250ZXh0KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVDb25maWd1cmUobGluZUl0ZW1JZDogc3RyaW5nLCBjdXJyZW50U3RhdGU6IExpbmVJdGVtW10pOiB2b2lkIHtcbiAgICBjb25zdCBjdXJyZW50U3RhdGVJdGVtID0gRW50aXR5VXRpbC5maW5kQnlJZChsaW5lSXRlbUlkLCBjdXJyZW50U3RhdGUpO1xuICAgIGNvbnN0IHJ1bnRpbWVDb250ZXh0ID0gdGhpcy5nZXRSdW50aW1lQ29udGV4dChcbiAgICAgIGN1cnJlbnRTdGF0ZUl0ZW0ucHJvZHVjdElkLFxuICAgICAgY3VycmVudFN0YXRlSXRlbS5vZmZlcmluZ0lkLFxuICAgICAgUnVudGltZU9wZXJhdGlvbi5VUERBVEUsXG4gICAgKTtcblxuICAgIGNvbnN0IHN0YXRlczogUXVvdGVTdGF0ZXMgPSB7XG4gICAgICBjb25maWd1cmFibGVSYW1wOiBjdXJyZW50U3RhdGVJdGVtLFxuICAgICAgY3VycmVudFN0YXRlLFxuICAgICAgYXNzZXQ6IHRoaXMuZ2V0QXNzZXQoY3VycmVudFN0YXRlSXRlbSksXG4gICAgfTtcblxuICAgIHRoaXMuY3VycmVudFN0YXRlU2VydmljZS51cGRhdGUoY3VycmVudFN0YXRlKTtcbiAgICB0aGlzLnN0YXJ0UnVudGltZShzdGF0ZXMsIHJ1bnRpbWVDb250ZXh0KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0QXNzZXQobGluZUl0ZW06IExpbmVJdGVtKTogTGluZUl0ZW0gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmFzc2V0cyAmJiB0aGlzLmFzc2V0cy5maW5kKGEgPT4gYS5pZCA9PT0gbGluZUl0ZW0ub3Blbk9yZGVyTGluZUl0ZW1JZCB8fCBhLmlkID09PSBsaW5lSXRlbS5hc3NldElkKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhcnRSdW50aW1lKHN0YXRlczogUXVvdGVTdGF0ZXMsIHJ1bnRpbWVDb250ZXh0JDogT2JzZXJ2YWJsZTxMZWdhY3lSdW50aW1lQ29udGV4dD4pOiB2b2lkIHtcbiAgICBydW50aW1lQ29udGV4dCRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlKDEpLFxuICAgICAgICBtYXAocnVudGltZUNvbnRleHQgPT4ge1xuICAgICAgICAgIHRoaXMucnVudGltZVNlcnZpY2Uuc3RhcnRSdW50aW1lKHJ1bnRpbWVDb250ZXh0LCBzdGF0ZXMpO1xuICAgICAgICB9KSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgY3VzdG9taXplQ29udGV4dChwcm9kdWN0SWQ6IHN0cmluZywgY29udGV4dDogTGVnYWN5UnVudGltZUNvbnRleHQpOiBPYnNlcnZhYmxlPExlZ2FjeVJ1bnRpbWVDb250ZXh0PiB7XG4gICAgaWYgKCF0aGlzLmN1c3RvbWl6YXRpb25TZXJ2aWNlPy5nZXRMZWdhY3lVaURlZmluaXRpb24pIHtcbiAgICAgIHJldHVybiBvZihjb250ZXh0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5jdXN0b21pemF0aW9uU2VydmljZS5nZXRMZWdhY3lVaURlZmluaXRpb24ocHJvZHVjdElkKS5waXBlKFxuICAgICAgbWFwKHVpRGVmID0+ICh7XG4gICAgICAgIC4uLmNvbnRleHQsXG4gICAgICAgIHVpRGVmaW5pdGlvbjogdWlEZWYgPz8gY29udGV4dC51aURlZmluaXRpb24sXG4gICAgICB9KSksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UnVudGltZUNvbnRleHQoXG4gICAgcHJvZHVjdElkOiBzdHJpbmcsXG4gICAgb2ZmZXJpbmdJZDogc3RyaW5nLFxuICAgIHJ1bnRpbWVPcGVyYXRpb246IFJ1bnRpbWVPcGVyYXRpb24sXG4gICk6IE9ic2VydmFibGU8TGVnYWN5UnVudGltZUNvbnRleHQ+IHtcbiAgICByZXR1cm4gdGhpcy5ydW50aW1lQ29udGV4dFNlcnZpY2UuZ2V0UnVudGltZUNvbnRleHQocHJvZHVjdElkLCBvZmZlcmluZ0lkKS5waXBlKFxuICAgICAgbWFwKHJ1bnRpbWVDb250ZXh0ID0+IHtcbiAgICAgICAgcnVudGltZUNvbnRleHQuaW52b2NhdGlvbkNvbnRleHQgPSB7IHJ1bnRpbWVPcGVyYXRpb246IFJ1bnRpbWVPcGVyYXRpb25bcnVudGltZU9wZXJhdGlvbl0gfTtcbiAgICAgICAgcmV0dXJuIHJ1bnRpbWVDb250ZXh0O1xuICAgICAgfSksXG4gICAgICBzd2l0Y2hNYXAocnVudGltZUNvbnRleHQgPT4gdGhpcy5jdXN0b21pemVDb250ZXh0KHByb2R1Y3RJZCwgcnVudGltZUNvbnRleHQpKSxcbiAgICApO1xuICB9XG59XG4iLCI8dmwtcnVudGltZSAjcnVudGltZVZpZXcgKHNvbHV0aW9uVXBkYXRlZCk9XCJvblNvbHV0aW9uVXBkYXRlZCgkZXZlbnQpXCI+PC92bC1ydW50aW1lPlxuIl19
137
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVnYWN5LXByb2R1Y3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvc3JjL3BhZ2VzL2xlZ2FjeS1wcm9kdWN0L2xlZ2FjeS1wcm9kdWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3NyYy9wYWdlcy9sZWdhY3ktcHJvZHVjdC9sZWdhY3ktcHJvZHVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBcUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxjQUFjLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBa0MsTUFBTSxrQkFBa0IsQ0FBQztBQUM5RSxPQUFPLEVBQUUsY0FBYyxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0YsT0FBTyxFQUNMLG1CQUFtQixFQUduQixxQkFBcUIsRUFDckIsY0FBYyxHQUdmLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUFjLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0MsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RSxPQUFPLEVBQUUsa0JBQWtCLEVBQXFCLE1BQU0sYUFBYSxDQUFDOzs7Ozs7QUFRcEUsTUFBTSxPQUFPLHNCQUFzQjtJQUtqQyxZQUNVLEtBQXFCLEVBQ3JCLGlCQUFvQyxFQUNwQyxlQUFnQyxFQUNoQyxjQUE4QixFQUM5QixxQkFBNEMsRUFDNUMsY0FBOEIsRUFDOUIsbUJBQXdDLEVB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R0FBRyxDQUFDLGNBQWMsQ0FBQyxFQUFFO1lBQ25CLGNBQWMsQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQztZQUM1RixPQUFPLGNBQWMsQ0FBQztRQUN4QixDQUFDLENBQUMsRUFDRixTQUFTLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLGNBQWMsQ0FBQyxDQUFDLENBQzlFLENBQUM7SUFDSixDQUFDOzttSEF6SlUsc0JBQXNCLG9QQWFYLGtCQUFrQjt1R0FiN0Isc0JBQXNCLG9EQ3hCbkMsMEZBQ0E7MkZEdUJhLHNCQUFzQjtrQkFKbEMsU0FBUzs7OzBCQWlCTCxRQUFROzswQkFBSSxNQUFNOzJCQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgUXVvdGVBcGlTZXJ2aWNlIH0gZnJvbSAnQHZlbG9jZWFwcHMvYXBpJztcbmltcG9ydCB7IEVudGl0eVV0aWwsIExpbmVJdGVtLCBRdW90ZURyYWZ0LCBWbFdpbmRvdyB9IGZyb20gJ0B2ZWxvY2VhcHBzL2NvcmUnO1xuaW1wb3J0IHsgQ29udGV4dFNlcnZpY2UsIFF1b3RlRHJhZnRTZXJ2aWNlLCBSdW50aW1lT3BlcmF0aW9uIH0gZnJvbSAnQHZlbG9jZWFwcHMvc2RrL2NvcmUnO1xuaW1wb3J0IHtcbiAgQ3VycmVudFN0YXRlU2VydmljZSxcbiAgTGVnYWN5UnVudGltZUNvbnRleHQsXG4gIFF1b3RlU3RhdGVzLFxuICBSdW50aW1lQ29udGV4dFNlcnZpY2UsXG4gIFJ1bnRpbWVTZXJ2aWNlLFxuICBTb2x1dGlvblJlYWR5QXdhcmUsXG4gIFNvbHV0aW9uVXBkYXRlZEF3YXJlLFxufSBmcm9tICdAdmVsb2NlYXBwcy9zZGsvcnVudGltZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0LCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlyc3QsIG1hcCwgc3dpdGNoTWFwLCB0YWtlLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBGTE9XX0NVU1RPTUlaQVRJT04sIEZsb3dDdXN0b21pemF0aW9uIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuXG5kZWNsYXJlIGNvbnN0IHdpbmRvdzogVmxXaW5kb3c7XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZVVybDogJy4vbGVnYWN5LXByb2R1Y3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9sZWdhY3ktcHJvZHVjdC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBMZWdhY3lQcm9kdWN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIFNvbHV0aW9uVXBkYXRlZEF3YXJlLCBTb2x1dGlvblJlYWR5QXdhcmUge1xuICBwcml2YXRlIGRlc3Ryb3llZCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHByaXZhdGUgYXNzZXRzPzogTGluZUl0ZW1bXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHF1b3RlRHJhZnRTZXJ2aWNlOiBRdW90ZURyYWZ0U2VydmljZSxcbiAgICBwcml2YXRlIHF1b3RlQXBpU2VydmljZTogUXVvdGVBcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29udGV4dFNlcnZpY2U6IENvbnRleHRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcnVudGltZUNvbnRleHRTZXJ2aWNlOiBSdW50aW1lQ29udGV4dFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBydW50aW1lU2VydmljZTogUnVudGltZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjdXJyZW50U3RhdGVTZXJ2aWNlOiBDdXJyZW50U3RhdGVTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoRkxPV19DVVNUT01JWkFUSU9OKSBwcml2YXRlIGN1c3RvbWl6YXRpb25TZXJ2aWNlPzogRmxvd0N1c3RvbWl6YXRpb24sXG4gICkge31cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5xdW90ZURyYWZ0U2VydmljZS5xdW90ZURyYWZ0JFxuICAgICAgLnBpcGUoZmlyc3QoKSwgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCkpXG4gICAgICAuc3Vic2NyaWJlKHF1b3RlID0+IHRoaXMuaW5pdChxdW90ZSwgdGhpcy5yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcykpO1xuXG4gICAgdGhpcy5ydW50aW1lU2VydmljZS5vblNvbHV0aW9uU3RvcEV2ZW50LnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKGxpbmVJdGVtID0+IHRoaXMub25Tb2x1dGlvblN0b3AobGluZUl0ZW0pKTtcblxuICAgIHRoaXMucnVudGltZVNlcnZpY2Uub25Tb2x1dGlvblJlYWR5RXZlbnQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoZXZlbnQgPT4gdGhpcy5vblNvbHV0aW9uUmVhZHkoZXZlbnQpKTtcblxuICAgIHRoaXMucnVudGltZVNlcnZpY2Uub25Tb2x1dGlvbkNhbmNlbEV2ZW50LnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMub25Tb2x1dGlvbkNhbmNlbCgpKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3llZCQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveWVkJC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHVibGljIG9uU29sdXRpb25SZWFkeShsaW5lSXRlbTogTGluZUl0ZW0pOiB2b2lkIHtcbiAgICBsaW5lSXRlbS5hY3Rpb25Db2RlID0gbGluZUl0ZW0uYWN0aW9uQ29kZSA/PyAnQUREJztcbiAgfVxuXG4gIHB1YmxpYyBvblNvbHV0aW9uQ2FuY2VsKCk6IHZvaWQge1xuICAgIHRoaXMucXVvdGVEcmFmdFNlcnZpY2UucXVvdGVEcmFmdCQucGlwZShmaXJzdCgpLCB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSkuc3Vic2NyaWJlKHF1b3RlID0+IHtcbiAgICAgIHdpbmRvd1snVkVMT19CQUNLX0ZOJ10uYXBwbHkobnVsbCwgW3F1b3RlLnF1b3RlSWRdKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvblNvbHV0aW9uVXBkYXRlZChsaW5lSXRlbTogTGluZUl0ZW0pOiB2b2lkIHtcbiAgICBjb25zdCBzdGF0ZXM6IFF1b3RlU3RhdGVzID0ge1xuICAgICAgY29uZmlndXJhYmxlUmFtcDogbGluZUl0ZW0sXG4gICAgICBjdXJyZW50U3RhdGU6IHRoaXMuY3VycmVudFN0YXRlU2VydmljZS5jdXJyZW50U3RhdGUsXG4gICAgICBhc3NldDogdGhpcy5nZXRBc3NldChsaW5lSXRlbSksXG4gICAgfTtcblxuICAgIHRoaXMucnVudGltZVNlcnZpY2UudXBkYXRlUnVudGltZShzdGF0ZXMpO1xuICB9XG5cbiAgcHVibGljIG9uU29sdXRpb25TdG9wKGxpbmVJdGVtOiBMaW5lSXRlbSk6IHZvaWQge1xuICAgIHRoaXMucXVvdGVEcmFmdFNlcnZpY2UucXVvdGVEcmFmdCQucGlwZShmaXJzdCgpLCB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSkuc3Vic2NyaWJlKHF1b3RlID0+IHtcbiAgICAgIGNvbnN0IHF1b3RlVG9VcHNlcnQ6IFF1b3RlRHJhZnQgPSB7XG4gICAgICAgIC4uLnF1b3RlLFxuICAgICAgICBjb250ZXh0OiB0aGlzLmNvbnRleHRTZXJ2aWNlLnJlc29sdmUoKSxcbiAgICAgICAgY3VycmVudFN0YXRlOiBbLi4uKHRoaXMuY3VycmVudFN0YXRlU2VydmljZS5jdXJyZW50U3RhdGUgfHwgW10pLmZpbHRlcihsaSA9PiBsaS5pZCAhPT0gbGluZUl0ZW0uaWQpLCBsaW5lSXRlbV0sXG4gICAgICB9O1xuXG4gICAgICB0aGlzLnF1b3RlQXBpU2VydmljZVxuICAgICAgICAudXBzZXJ0UXVvdGUocXVvdGVUb1Vwc2VydClcbiAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgLnN1YnNjcmliZShxdW90ZSA9PiB7XG4gICAgICAgICAgd2luZG93WydWRUxPX0JBQ0tfRk4nXS5hcHBseShudWxsLCBbcXVvdGUucXVvdGVJZF0pO1xuICAgICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdChxdW90ZTogUXVvdGVEcmFmdCwgcXVlcnlQYXJhbXM6IFBhcmFtcyk6IHZvaWQge1xuICAgIGNvbnN0IHByb2R1Y3RJZCA9IHF1ZXJ5UGFyYW1zWydwcm9kdWN0SWQnXTtcbiAgICBjb25zdCBsaW5lSXRlbUlkID0gdGhpcy5nZXRMaW5lSXRlbUlkKHF1b3RlLCBxdWVyeVBhcmFtcyk7XG4gICAgdGhpcy5hc3NldHMgPSBxdW90ZS5pbml0aWFsU3RhdGU7XG5cbiAgICBsaW5lSXRlbUlkICYmIHF1b3RlLmN1cnJlbnRTdGF0ZSA/IHRoaXMucmVDb25maWd1cmUobGluZUl0ZW1JZCwgcXVvdGUuY3VycmVudFN0YXRlKSA6IHRoaXMuY29uZmlndXJlKHByb2R1Y3RJZCk7XG4gIH1cblxuICBwcml2YXRlIGdldExpbmVJdGVtSWQocXVvdGU6IFF1b3RlRHJhZnQsIHF1ZXJ5UGFyYW1zOiBQYXJhbXMpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGlmIChFbnRpdHlVdGlsLmlzUHJlc2VudChxdWVyeVBhcmFtc1snbGluZUl0ZW1JZCddKSkge1xuICAgICAgcmV0dXJuIHF1ZXJ5UGFyYW1zWydsaW5lSXRlbUlkJ107XG4gICAgfVxuXG4gICAgcmV0dXJuIHF1b3RlLmN1cnJlbnRTdGF0ZVxuICAgICAgLmZpbHRlcihsaW5lSXRlbSA9PiBsaW5lSXRlbS5wcm9kdWN0SWQgPT09IHF1ZXJ5UGFyYW1zWydwcm9kdWN0SWQnXSlcbiAgICAgIC5tYXAobGluZUl0ZW0gPT4gbGluZUl0ZW0uaWQpXG4gICAgICAuZmluZChpZCA9PiBpZCk7XG4gIH1cblxuICBwcml2YXRlIGNvbmZpZ3VyZShwcm9kdWN0SWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IHJ1bnRpbWVDb250ZXh0ID0gdGhpcy5nZXRSdW50aW1lQ29udGV4dChwcm9kdWN0SWQsICcnLCBSdW50aW1lT3BlcmF0aW9uLklOSVQpO1xuXG4gICAgdGhpcy5zdGFydFJ1bnRpbWUoe30sIHJ1bnRpbWVDb250ZXh0KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVDb25maWd1cmUobGluZUl0ZW1JZDogc3RyaW5nLCBjdXJyZW50U3RhdGU6IExpbmVJdGVtW10pOiB2b2lkIHtcbiAgICBjb25zdCBjdXJyZW50U3RhdGVJdGVtID0gRW50aXR5VXRpbC5maW5kQnlJZChsaW5lSXRlbUlkLCBjdXJyZW50U3RhdGUpO1xuICAgIGNvbnN0IHJ1bnRpbWVDb250ZXh0ID0gdGhpcy5nZXRSdW50aW1lQ29udGV4dChcbiAgICAgIGN1cnJlbnRTdGF0ZUl0ZW0ucHJvZHVjdElkLFxuICAgICAgY3VycmVudFN0YXRlSXRlbS5vZmZlcmluZ0lkLFxuICAgICAgUnVudGltZU9wZXJhdGlvbi5VUERBVEUsXG4gICAgKTtcblxuICAgIGNvbnN0IHN0YXRlczogUXVvdGVTdGF0ZXMgPSB7XG4gICAgICBjb25maWd1cmFibGVSYW1wOiBjdXJyZW50U3RhdGVJdGVtLFxuICAgICAgY3VycmVudFN0YXRlLFxuICAgICAgYXNzZXQ6IHRoaXMuZ2V0QXNzZXQoY3VycmVudFN0YXRlSXRlbSksXG4gICAgfTtcblxuICAgIHRoaXMuY3VycmVudFN0YXRlU2VydmljZS51cGRhdGUoY3VycmVudFN0YXRlKTtcbiAgICB0aGlzLnN0YXJ0UnVudGltZShzdGF0ZXMsIHJ1bnRpbWVDb250ZXh0KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0QXNzZXQobGluZUl0ZW06IExpbmVJdGVtKTogTGluZUl0ZW0gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmFzc2V0cyAmJiB0aGlzLmFzc2V0cy5maW5kKGEgPT4gYS5pZCA9PT0gbGluZUl0ZW0ub3Blbk9yZGVyTGluZUl0ZW1JZCB8fCBhLmlkID09PSBsaW5lSXRlbS5hc3NldElkKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhcnRSdW50aW1lKHN0YXRlczogUXVvdGVTdGF0ZXMsIHJ1bnRpbWVDb250ZXh0JDogT2JzZXJ2YWJsZTxMZWdhY3lSdW50aW1lQ29udGV4dD4pOiB2b2lkIHtcbiAgICBydW50aW1lQ29udGV4dCRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlKDEpLFxuICAgICAgICBtYXAocnVudGltZUNvbnRleHQgPT4ge1xuICAgICAgICAgIHRoaXMucnVudGltZVNlcnZpY2Uuc3RhcnRSdW50aW1lKHJ1bnRpbWVDb250ZXh0LCBzdGF0ZXMpO1xuICAgICAgICB9KSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgY3VzdG9taXplQ29udGV4dChwcm9kdWN0SWQ6IHN0cmluZywgY29udGV4dDogTGVnYWN5UnVudGltZUNvbnRleHQpOiBPYnNlcnZhYmxlPExlZ2FjeVJ1bnRpbWVDb250ZXh0PiB7XG4gICAgaWYgKCF0aGlzLmN1c3RvbWl6YXRpb25TZXJ2aWNlPy5nZXRMZWdhY3lVaURlZmluaXRpb24pIHtcbiAgICAgIHJldHVybiBvZihjb250ZXh0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5jdXN0b21pemF0aW9uU2VydmljZS5nZXRMZWdhY3lVaURlZmluaXRpb24ocHJvZHVjdElkKS5waXBlKFxuICAgICAgbWFwKHVpRGVmaW5pdGlvbkNvbnRhaW5lciA9PiAoe1xuICAgICAgICAuLi5jb250ZXh0LFxuICAgICAgICB1aURlZmluaXRpb25Db250YWluZXI6IHVpRGVmaW5pdGlvbkNvbnRhaW5lciA/PyB1bmRlZmluZWQsXG4gICAgICB9KSksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UnVudGltZUNvbnRleHQoXG4gICAgcHJvZHVjdElkOiBzdHJpbmcsXG4gICAgb2ZmZXJpbmdJZDogc3RyaW5nLFxuICAgIHJ1bnRpbWVPcGVyYXRpb246IFJ1bnRpbWVPcGVyYXRpb24sXG4gICk6IE9ic2VydmFibGU8TGVnYWN5UnVudGltZUNvbnRleHQ+IHtcbiAgICByZXR1cm4gdGhpcy5ydW50aW1lQ29udGV4dFNlcnZpY2UuZ2V0UnVudGltZUNvbnRleHQocHJvZHVjdElkLCBvZmZlcmluZ0lkKS5waXBlKFxuICAgICAgbWFwKHJ1bnRpbWVDb250ZXh0ID0+IHtcbiAgICAgICAgcnVudGltZUNvbnRleHQuaW52b2NhdGlvbkNvbnRleHQgPSB7IHJ1bnRpbWVPcGVyYXRpb246IFJ1bnRpbWVPcGVyYXRpb25bcnVudGltZU9wZXJhdGlvbl0gfTtcbiAgICAgICAgcmV0dXJuIHJ1bnRpbWVDb250ZXh0O1xuICAgICAgfSksXG4gICAgICBzd2l0Y2hNYXAocnVudGltZUNvbnRleHQgPT4gdGhpcy5jdXN0b21pemVDb250ZXh0KHByb2R1Y3RJZCwgcnVudGltZUNvbnRleHQpKSxcbiAgICApO1xuICB9XG59XG4iLCI8dmwtcnVudGltZSAjcnVudGltZVZpZXcgKHNvbHV0aW9uVXBkYXRlZCk9XCJvblNvbHV0aW9uVXBkYXRlZCgkZXZlbnQpXCI+PC92bC1ydW50aW1lPlxuIl19