@veloceapps/sdk 6.0.0-22 → 6.0.0-24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/bundles/veloceapps-sdk-core.umd.js +19 -22
  2. package/bundles/veloceapps-sdk-core.umd.js.map +1 -1
  3. package/bundles/veloceapps-sdk-runtime.umd.js.map +1 -1
  4. package/bundles/veloceapps-sdk.umd.js +6 -16
  5. package/bundles/veloceapps-sdk.umd.js.map +1 -1
  6. package/core/modules/configuration/services/configuration-runtime.service.d.ts +1 -3
  7. package/core/modules/configuration/services/configuration.service.d.ts +4 -3
  8. package/core/modules/configuration/types/configuration-runtime.types.d.ts +0 -2
  9. package/core/services/quote-draft.service.d.ts +2 -2
  10. package/core/types/index.d.ts +0 -1
  11. package/esm2015/core/modules/configuration/services/configuration-runtime.service.js +1 -6
  12. package/esm2015/core/modules/configuration/services/configuration.service.js +17 -15
  13. package/esm2015/core/modules/configuration/types/configuration-runtime.types.js +1 -1
  14. package/esm2015/core/services/quote-draft.service.js +4 -4
  15. package/esm2015/core/types/index.js +1 -2
  16. package/esm2015/runtime/execution/directives/vl-quote.directive.js +1 -1
  17. package/esm2015/runtime/services/configuration.service.js +1 -1
  18. package/esm2015/runtime/services/runtime.service.js +1 -1
  19. package/esm2015/runtime/types/index.js +2 -1
  20. package/esm2015/runtime/types/quote-states.types.js +2 -0
  21. package/esm2015/src/components/header/header.component.js +3 -3
  22. package/esm2015/src/pages/legacy-product/legacy-product.component.js +1 -1
  23. package/esm2015/src/pages/product/product.component.js +2 -9
  24. package/esm2015/src/pages/remote/remote.component.js +2 -5
  25. package/esm2015/src/resolvers/quote.resolver.js +3 -3
  26. package/fesm2015/veloceapps-sdk-core.js +19 -22
  27. package/fesm2015/veloceapps-sdk-core.js.map +1 -1
  28. package/fesm2015/veloceapps-sdk-runtime.js.map +1 -1
  29. package/fesm2015/veloceapps-sdk.js +6 -16
  30. package/fesm2015/veloceapps-sdk.js.map +1 -1
  31. package/package.json +1 -1
  32. package/runtime/services/configuration.service.d.ts +2 -1
  33. package/runtime/services/runtime.service.d.ts +2 -1
  34. package/runtime/types/index.d.ts +1 -0
  35. package/{core → runtime}/types/quote-states.types.d.ts +0 -0
  36. package/src/pages/product/product.component.d.ts +0 -1
  37. package/esm2015/core/types/quote-states.types.js +0 -2
@@ -71,10 +71,7 @@ export class RemoteComponent {
71
71
  },
72
72
  });
73
73
  this.uiDefinition = context === null || context === void 0 ? void 0 : context.uiDefinition;
74
- this.configurationService.updateCurrentStates({
75
- configurableRamp: this.createLineItem(),
76
- currentState: quote.currentState,
77
- });
74
+ this.configurationService.setConfigurableRamp(this.createLineItem());
78
75
  }), this.throwIfNoUIDefinition(), switchMap(() => this.configurationService.configure()), tap(() => this.state$.next({ loading: false, failure: false })), catchError(error => {
79
76
  var _a, _b;
80
77
  if (!((_b = (_a = this.uiDefinition) === null || _a === void 0 ? void 0 : _a.properties) === null || _b === void 0 ? void 0 : _b.suppressToastMessages)) {
@@ -350,4 +347,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
350
347
  changeDetection: ChangeDetectionStrategy.OnPush,
351
348
  }]
352
349
  }], ctorParameters: function () { return [{ type: i1.ContextService }, { type: i1.QuoteDraftService }, { type: i2.QuoteApiService }, { type: i1.ConfigurationRuntimeService }, { type: i1.ConfigurationService }, { type: i3.MessageService }, { type: i4.IntegrationState }, { type: i5.Location }]; } });
353
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3RlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3NyYy9wYWdlcy9yZW1vdGUvcmVtb3RlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3NyYy9wYWdlcy9yZW1vdGUvcmVtb3RlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFFOUUsT0FBTyxFQVNMLElBQUksR0FFTCxNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSxVQUFVLEVBQW9CLE1BQU0scUJBQXFCLENBQUM7QUFVbkUsT0FBTyxFQUNMLGVBQWUsRUFDZixVQUFVLEVBQ1YsS0FBSyxFQUVMLEVBQUUsRUFDRixPQUFPLEVBQ1AsU0FBUyxFQUNULFNBQVMsRUFDVCxHQUFHLEVBQ0gsVUFBVSxHQUNYLE1BQU0sTUFBTSxDQUFDOzs7Ozs7OztBQWdCZCxNQUFNLE9BQU8sZUFBZTtJQVMxQixZQUNVLGNBQThCLEVBQzlCLGlCQUFvQyxFQUNwQyxlQUFnQyxFQUNoQyxjQUEyQyxFQUMzQyxvQkFBMEMsRUFDMUMsY0FBOEIsRUFDOUIsZ0JBQWtDLEVBQ2xDLFFBQWtCO1FBUGxCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxtQkFBYyxHQUFkLGNBQWMsQ0FBNkI7UUFDM0MseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQUMxQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBZnJCLFdBQU0sR0FBRyxJQUFJLGVBQWUsQ0FBUSxFQUFFLE9BQU8s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QyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQzthQUNsRztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUwsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVPLHVCQUF1QixDQUFDLE9BQW1COztRQUNqRCxNQUFNLG9CQUFvQixHQUE2QyxFQUFFLENBQUM7UUFDMUUsTUFBTSwyQkFBMkIsR0FBRyxNQUFBLE9BQU8sQ0FBQyxvQkFBb0IsbUNBQUksRUFBRSxDQUFDO1FBRXZFLE1BQU0sQ0FBQyxJQUFJLENBQUMsMkJBQTJCLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7O1lBQ25ELG9CQUFvQixDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBQSwyQkFBMkIsQ0FBQyxDQUFDLENBQUMsbUNBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUN6RSx1Q0FBWSxHQUFHLEtBQUUsUUFBUSxFQUFFLEtBQUssSUFBRztZQUNyQyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxvQkFBb0IsQ0FBQztJQUM5QixDQUFDOzs2R0ExWlUsZUFBZTtpR0FBZixlQUFlLHNEQ3BENUIsd1ZBU0E7NEZEMkNhLGVBQWU7a0JBTjNCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsV0FBVyxFQUFFLHlCQUF5QjtvQkFDdEMsU0FBUyxFQUFFLENBQUMseUJBQXlCLENBQUM7b0JBQ3RDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUXVvdGVBcGlTZXJ2aWNlIH0gZnJvbSAnQHZlbG9jZWFwcHMvYXBpJztcbmltcG9ydCB7XG4gIENoYXJnZUdyb3VwSXRlbSxcbiAgQ29udGV4dFByb3BlcnRpZXMsXG4gIExpbmVJdGVtLFxuICBScGNNZXNzYWdlLFxuICBScGNPcHRpb24sXG4gIFJwY09wdGlvbkNvbmZpZ3VyYXRpb24sXG4gIFJwY1Byb2R1Y3QsXG4gIFJwY1F1b3RlLFxuICBVVUlELFxuICBWbFdpbmRvdyxcbn0gZnJvbSAnQHZlbG9jZWFwcHMvY29yZSc7XG5pbXBvcnQgeyBGbG93QWN0aW9uLCBJbnRlZ3JhdGlvblN0YXRlIH0gZnJvbSAnQHZlbG9jZWFwcHMvc2RrL2Ntcyc7XG5pbXBvcnQge1xuICBDb25maWd1cmF0aW9uUnVudGltZVNlcnZpY2UsXG4gIENvbmZpZ3VyYXRpb25TZXJ2aWNlLFxuICBDb250ZXh0U2VydmljZSxcbiAgUXVvdGVEcmFmdFNlcnZpY2UsXG4gIFJ1bnRpbWVDb250ZXh0LFxuICBVSURlZmluaXRpb24sXG59IGZyb20gJ0B2ZWxvY2VhcHBzL3Nkay9jb3JlJztcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAncHJpbWVuZy9hcGknO1xuaW1wb3J0IHtcbiAgQmVoYXZpb3JTdWJqZWN0LFxuICBjYXRjaEVycm9yLFxuICBmaXJzdCxcbiAgT2JzZXJ2YWJsZSxcbiAgb2YsXG4gIFN1YmplY3QsXG4gIHN3aXRjaE1hcCxcbiAgdGFrZVVudGlsLFxuICB0YXAsXG4gIHRocm93RXJyb3IsXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTGluZUl0ZW1XaXRoUGFyZW50IH0gZnJvbSAnLi9yZW1vdGUudHlwZXMnO1xuXG5kZWNsYXJlIGNvbnN0IHdpbmRvdzogVmxXaW5kb3c7XG5cbmludGVyZmFjZSBTdGF0ZSB7XG4gIGxvYWRpbmc6IGJvb2xlYW47XG4gIGZhaWx1cmU6IGJvb2xlYW47XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZsLWZsb3ctcmVtb3RlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JlbW90ZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JlbW90ZS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgUmVtb3RlQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHVibGljIHVpRGVmaW5pdGlvbj86IFVJRGVmaW5pdGlvbjtcbiAgcHVibGljIHN0YXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8U3RhdGU+KHsgbG9hZGluZzogdHJ1ZSwgZmFpbHVyZTogZmFsc2UgfSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBEWU5BTUlDX09QVElPTl9QUk9EVUNUU19LRVkgPSAnRHluYW1pYyc7XG5cbiAgcHJpdmF0ZSBycGNNZXNzYWdlOiBScGNNZXNzYWdlO1xuICBwcml2YXRlIGRlc3Ryb3llZCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY29udGV4dFNlcnZpY2U6IENvbnRleHRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcXVvdGVEcmFmdFNlcnZpY2U6IFF1b3RlRHJhZnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcXVvdGVBcGlTZXJ2aWNlOiBRdW90ZUFwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBydW50aW1lU2VydmljZTogQ29uZmlndXJhdGlvblJ1bnRpbWVTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29uZmlndXJhdGlvblNlcnZpY2U6IENvbmZpZ3VyYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgaW50ZWdyYXRpb25TdGF0ZTogSW50ZWdyYXRpb25TdGF0ZSxcbiAgICBwcml2YXRlIGxvY2F0aW9uOiBMb2NhdGlvbixcbiAgKSB7XG4gICAgdGhpcy5ycGNNZXNzYWdlID0gSlNPTi5wYXJzZSh3aW5kb3cuUlBDX01FU1NBR0UgYXMgc3RyaW5nKTtcbiAgICB0aGlzLnJwY01lc3NhZ2Uub3B0aW9ucy5zb3J0KChhLCBiKSA9PiAoYS5mZWF0dXJlTnVtYmVyID8/IDk5OTk5KSAtIChiLmZlYXR1cmVOdW1iZXIgPz8gOTk5OTkpKTtcbiAgICB0aGlzLnVwZGF0ZUhhc0NoaWxkcmVuRmxhZyh0aGlzLnJwY01lc3NhZ2UucHJvZHVjdC5jb25maWd1cmVkUHJvZHVjdElkKTtcblxuICAgIC8vIHVwZGF0ZSBjb250ZXh0IHByb3BlcnRpZXNcbiAgICBpZiAodGhpcy5ycGNNZXNzYWdlLnF1b3RlKSB7XG4gICAgICBjb25zdCBwcm9wZXJ0aWVzOiBDb250ZXh0UHJvcGVydGllcyA9IHt9O1xuXG4gICAgICBpZiAodGhpcy5ycGNNZXNzYWdlLnF1b3RlLlNCUVFfX09wcG9ydHVuaXR5Ml9fYykge1xuICAgICAgICBwcm9wZXJ0aWVzLk9wcG9ydHVuaXR5SWQgPSB0aGlzLnJwY01lc3NhZ2UucXVvdGUuU0JRUV9fT3Bwb3J0dW5pdHkyX19jO1xuICAgICAgfVxuXG4gICAgICBPYmplY3QuZW50cmllcyh0aGlzLnJwY01lc3NhZ2UucXVvdGUpLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCAmJiAhKHZhbHVlIGluc3RhbmNlb2YgT2JqZWN0KSkge1xuICAgICAgICAgIHByb3BlcnRpZXNba2V5XSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgdGhpcy5jb250ZXh0U2VydmljZS51cGRhdGUoeyBwcm9wZXJ0aWVzIH0pO1xuICAgIH1cblxuICAgIHRoaXMuaW5pdFN1YnNjcmlwdGlvbnMoKTtcbiAgICB0aGlzLmluaXRDb25maWd1cmF0aW9uKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95ZWQkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3llZCQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdENvbmZpZ3VyYXRpb24oKTogdm9pZCB7XG4gICAgY29uc3QgcHJvZHVjdElkID0gdGhpcy5ycGNNZXNzYWdlLnByb2R1Y3QuY29uZmlndXJlZFByb2R1Y3RJZDtcbiAgICBjb25zdCBxdW90ZSA9IHRoaXMucXVvdGVEcmFmdFNlcnZpY2UucXVvdGVEcmFmdDtcblxuICAgIGlmICghcHJvZHVjdElkIHx8ICFxdW90ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMucnVudGltZVNlcnZpY2VcbiAgICAgIC5pbml0KHsgcHJvZHVjdElkIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgZmlyc3QoKSxcbiAgICAgICAgdGFwKGNvbnRleHQgPT4ge1xuICAgICAgICAgIGNvbnN0IHByaWNpbmdFbmFibGVkID0gY29udGV4dD8udWlEZWZpbml0aW9uPy5wcm9wZXJ0aWVzPy5wcmljaW5nRW5hYmxlZCA/ICd0cnVlJyA6ICdmYWxzZSc7XG4gICAgICAgICAgY29uc3QgcHJpY2VMaXN0SWQgPSBjb250ZXh0Py51aURlZmluaXRpb24/LnByb3BlcnRpZXM/LnByaWNlTGlzdDtcblxuICAgICAgICAgIGNvbnN0IHJ1bnRpbWVDb250ZXh0UHJvcGVydGllcyA9IHRoaXMucnVudGltZVNlcnZpY2UucnVudGltZUNvbnRleHQ/LnByb3BlcnRpZXM7XG4gICAgICAgICAgaWYgKHJ1bnRpbWVDb250ZXh0UHJvcGVydGllcykge1xuICAgICAgICAgICAgcnVudGltZUNvbnRleHRQcm9wZXJ0aWVzLlByaWNlTGlzdElkID0gcHJpY2VMaXN0SWQ7XG4gICAgICAgICAgICBydW50aW1lQ29udGV4dFByb3BlcnRpZXMuUHJpY2luZ0VuYWJsZWQgPSBwcmljaW5nRW5hYmxlZDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0aGlzLmNvbnRleHRTZXJ2aWNlLnVwZGF0ZSh7XG4gICAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgIE1vZGVsSWQ6IGNvbnRleHQ/Lm1vZGVsSWQsXG4gICAgICAgICAgICAgIFJ1bnRpbWVNb2RlOiAnVEVTVCcsXG4gICAgICAgICAgICAgIFByaWNpbmdFbmFibGVkOiBwcmljaW5nRW5hYmxlZCxcbiAgICAgICAgICAgICAgUHJpY2VMaXN0SWQ6IHByaWNlTGlzdElkLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIHRoaXMudWlEZWZpbml0aW9uID0gY29udGV4dD8udWlEZWZpbml0aW9uO1xuXG4gICAgICAgICAgdGhpcy5jb25maWd1cmF0aW9uU2VydmljZS51cGRhdGVDdXJyZW50U3RhdGVzKHtcbiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZVJhbXA6IHRoaXMuY3JlYXRlTGluZUl0ZW0oKSxcbiAgICAgICAgICAgIGN1cnJlbnRTdGF0ZTogcXVvdGUuY3VycmVudFN0YXRlLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9KSxcbiAgICAgICAgdGhpcy50aHJvd0lmTm9VSURlZmluaXRpb24oKSxcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2UuY29uZmlndXJlKCkpLFxuICAgICAgICB0YXAoKCkgPT4gdGhpcy5zdGF0ZSQubmV4dCh7IGxvYWRpbmc6IGZhbHNlLCBmYWlsdXJlOiBmYWxzZSB9KSksXG4gICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xuICAgICAgICAgIGlmICghdGhpcy51aURlZmluaXRpb24/LnByb3BlcnRpZXM/LnN1cHByZXNzVG9hc3RNZXNzYWdlcykge1xuICAgICAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ2Vycm9yJywgc3VtbWFyeTogZXJyb3IgfSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGhpcy5zdGF0ZSQubmV4dCh7IGxvYWRpbmc6IGZhbHNlLCBmYWlsdXJlOiB0cnVlIH0pO1xuICAgICAgICAgIHJldHVybiBvZigpO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIHRocm93SWZOb1VJRGVmaW5pdGlvbigpIHtcbiAgICByZXR1cm4gPFQ+KHNvdXJjZSQ6IE9ic2VydmFibGU8VD4pOiBPYnNlcnZhYmxlPFQ+ID0+IHtcbiAgICAgIHJldHVybiBzb3VyY2UkLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiB7XG4gICAgICAgICAgaWYgKCF0aGlzLnVpRGVmaW5pdGlvbikge1xuICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gJ1Byb2R1Y3QgZG9lcyBub3QgaGF2ZSBDb25maWd1cmF0aW9uIFVJJyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHNvdXJjZSQ7XG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0U3Vic2NyaXB0aW9ucygpOiB2b2lkIHtcbiAgICB0aGlzLmludGVncmF0aW9uU3RhdGVcbiAgICAgIC5saXN0ZW4kKEZsb3dBY3Rpb24uUkVNT1RFX0NBTkNFTClcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoKCkgPT4gdGhpcy5sb2NhdGlvbi5iYWNrKCkpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcblxuICAgIHRoaXMuaW50ZWdyYXRpb25TdGF0ZVxuICAgICAgLmxpc3RlbiQoRmxvd0FjdGlvbi5SRU1PVEVfQVBQTFkpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKCgpID0+IHRoaXMuc2F2ZVJwY01lc3NhZ2UoKSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVMaW5lSXRlbSgpOiBMaW5lSXRlbSB7XG4gICAgY29uc3QgW3F1b3RlRHJhZnRMaW5lSXRlbV0gPSB0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLnF1b3RlRHJhZnQ/LmN1cnJlbnRTdGF0ZSA/PyBbXTtcbiAgICBpZiAocXVvdGVEcmFmdExpbmVJdGVtICYmIChxdW90ZURyYWZ0TGluZUl0ZW0uYXR0cmlidXRlcy5sZW5ndGggPiAwIHx8IHF1b3RlRHJhZnRMaW5lSXRlbS5saW5lSXRlbXMubGVuZ3RoID4gMCkpIHtcbiAgICAgIHJldHVybiBxdW90ZURyYWZ0TGluZUl0ZW07XG4gICAgfVxuXG4gICAgY29uc3QgbGluZUl0ZW0gPSB0aGlzLmNyZWF0ZVJvb3RMaW5lSXRlbSgpO1xuICAgIGNvbnN0IGR5bmFtaWNPcHRpb25Qcm9kdWN0cyA9IHRoaXMucnBjTWVzc2FnZS5wcm9kdWN0Lm9wdGlvbkNvbmZpZ3VyYXRpb25zW3RoaXMuRFlOQU1JQ19PUFRJT05fUFJPRFVDVFNfS0VZXTtcblxuICAgIGlmIChkeW5hbWljT3B0aW9uUHJvZHVjdHMpIHtcbiAgICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLnRvUGFyZW50Q2hpbGRNYXAoZHluYW1pY09wdGlvblByb2R1Y3RzKTtcbiAgICAgIGxldCBpdGVtcyA9IFtsaW5lSXRlbV07XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IGl0ZW0gPSBpdGVtc1tpXTtcbiAgICAgICAgY29uc3QgY2hpbGRyZW4gPSBvcHRpb25zLmdldChpdGVtLmlkKTtcbiAgICAgICAgaWYgKGNoaWxkcmVuKSB7XG4gICAgICAgICAgaXRlbS5saW5lSXRlbXMgPSBjaGlsZHJlbjtcbiAgICAgICAgICBpdGVtcyA9IGl0ZW1zLmNvbmNhdChjaGlsZHJlbik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGxpbmVJdGVtO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVSb290TGluZUl0ZW0oKTogTGluZUl0ZW0ge1xuICAgIGNvbnN0IHByb2R1Y3QgPSB0aGlzLnJwY01lc3NhZ2UucHJvZHVjdDtcbiAgICBjb25zdCBydW50aW1lQ29udGV4dCA9IHRoaXMucnVudGltZVNlcnZpY2UucnVudGltZUNvbnRleHQgYXMgUnVudGltZUNvbnRleHQ7XG4gICAgY29uc3QgdmVsb2NlSW5zdGFuY2VJZCA9IHByb2R1Y3QuY29uZmlndXJhdGlvbkF0dHJpYnV0ZXMuVmVsb2NlSW5zdGFuY2VJZF9fYztcbiAgICBjb25zdCBxdW90ZUlkID0gdGhpcy5xdW90ZURyYWZ0U2VydmljZS5xdW90ZURyYWZ0Py5jdXJyZW50U3RhdGVbMF0/LmlkO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGlkOiBxdW90ZUlkIHx8IHZlbG9jZUluc3RhbmNlSWQgfHwgVVVJRC5VVUlEKCksXG4gICAgICB0eXBlOiBydW50aW1lQ29udGV4dC5wcm9kdWN0VHlwZSA/PyAnJyxcbiAgICAgIG5hbWU6IHJ1bnRpbWVDb250ZXh0LnByb3BlcnRpZXM/LmRpc3BsYXlOYW1lIHx8IHJ1bnRpbWVDb250ZXh0LnByb2R1Y3ROYW1lLFxuICAgICAgcHJvZHVjdE5hbWU6IHJ1bnRpbWVDb250ZXh0LnByb2R1Y3ROYW1lLFxuICAgICAgcHJvZHVjdElkOiBydW50aW1lQ29udGV4dC5wcm9kdWN0SWQsXG4gICAgICBjZmdTdGF0dXM6ICdEZWZhdWx0JyxcbiAgICAgIGFjdGlvbkNvZGU6ICdBREQnLFxuICAgICAgcXR5OiAxLFxuICAgIH0gYXMgTGluZUl0ZW07XG4gIH1cblxuICBwcml2YXRlIHRvUGFyZW50Q2hpbGRNYXAocmVtb3RlT3B0aW9uUHJvZHVjdHM6IFJwY09wdGlvbkNvbmZpZ3VyYXRpb25bXSk6IE1hcDxzdHJpbmcsIExpbmVJdGVtW10+IHtcbiAgICBjb25zdCByZXN1bHQgPSBuZXcgTWFwPHN0cmluZywgTGluZUl0ZW1bXT4oKTtcblxuICAgIGZvciAoY29uc3Qgb3B0aW9uIG9mIHJlbW90ZU9wdGlvblByb2R1Y3RzKSB7XG4gICAgICBjb25zdCBjb25maWd1cmF0aW9uRGF0YSA9IG9wdGlvbj8ucmVhZE9ubHk/LmxpbmU7XG4gICAgICBjb25zdCBpZCA9IGNvbmZpZ3VyYXRpb25EYXRhPy5WZWxvY2VJbnN0YW5jZUlkX19jO1xuICAgICAgY29uc3QgcGFyZW50SWQgPSBjb25maWd1cmF0aW9uRGF0YT8uVmVsb2NlUGFyZW50SW5zdGFuY2VJZF9fYztcblxuICAgICAgaWYgKCFvcHRpb24uc2VsZWN0ZWQgfHwgIWNvbmZpZ3VyYXRpb25EYXRhIHx8ICFpZCB8fCAhcGFyZW50SWQpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHByb2R1Y3RJZCA9IG9wdGlvbi5wcm9kdWN0SWQ7XG4gICAgICBjb25zdCBsaW5lSXRlbSA9IHtcbiAgICAgICAgaWQsXG4gICAgICAgIHByb2R1Y3RJZCxcbiAgICAgICAgcGFyZW50SWQsXG4gICAgICAgIHR5cGU6IGNvbmZpZ3VyYXRpb25EYXRhLk1vZGVsVHlwZV9fYyxcbiAgICAgICAgcG9ydDogY29uZmlndXJhdGlvbkRhdGEuTW9kZWxQb3J0X19jLFxuICAgICAgICBjZmdTdGF0dXM6IGNvbmZpZ3VyYXRpb25EYXRhLkNvbmZpZ3VyYXRpb25TdGF0dXNfX2MsXG4gICAgICAgIGFjdGlvbkNvZGU6IGNvbmZpZ3VyYXRpb25EYXRhLkFjdGlvbkNvZGVfX2MsXG4gICAgICAgIHF0eTogb3B0aW9uLlF1YW50aXR5LFxuICAgICAgfSBhcyBMaW5lSXRlbTtcblxuICAgICAgbGV0IHNpYmxpbmdzID0gcmVzdWx0LmdldChwcm9kdWN0SWQpO1xuICAgICAgaWYgKCFzaWJsaW5ncykge1xuICAgICAgICByZXN1bHQuc2V0KHBhcmVudElkLCAoc2libGluZ3MgPSBbXSkpO1xuICAgICAgfVxuXG4gICAgICBzaWJsaW5ncy5wdXNoKGxpbmVJdGVtKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByaXZhdGUgc2F2ZVJwY01lc3NhZ2UoKTogdm9pZCB7XG4gICAgY29uc3QgcXVvdGUgPSB0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLnF1b3RlRHJhZnQ7XG4gICAgY29uc3QgbGluZUl0ZW0gPSB0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlLmdldFNuYXBzaG90KCk7XG5cbiAgICBpZiAoIXF1b3RlIHx8ICFsaW5lSXRlbSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMucnBjTWVzc2FnZS5WZWxvY2VSZWZlcmVuY2VJZCA9IHF1b3RlLnF1b3RlSWQ7XG4gICAgdGhpcy5ycGNNZXNzYWdlLnByb2R1Y3QuY29uZmlndXJhdGlvbkRhdGEuVmVsb2NlSW5zdGFuY2VJZF9fYyA9IGxpbmVJdGVtLmlkO1xuICAgIGNvbnN0IGNoaWxkSXRlbXMgPSB0aGlzLmZsYXR0ZW5DaGlsZExpbmVJdGVtcyhsaW5lSXRlbSk7XG4gICAgY29uc3Qgc2F2aW5nTW9kZSA9IHdpbmRvdy5TYXZpbmdNb2RlO1xuXG4gICAgdGhpcy51cGRhdGVDb250ZW50RGF0YSh0aGlzLnJwY01lc3NhZ2UucHJvZHVjdCwgbGluZUl0ZW0pO1xuICAgIHRoaXMucnBjTWVzc2FnZS5xdW90ZSA9IHRoaXMubWFwQXR0cmlidXRlc1RvKCdRdW90ZScsIGxpbmVJdGVtKSBhcyBScGNRdW90ZTtcblxuICAgIGlmIChzYXZpbmdNb2RlID09PSAnQUxMJykge1xuICAgICAgY29uc3Qgb3B0aW9uQ29uZmlndXJhdGlvbnMgPSB0aGlzLmdldE9wdGlvbkNvbmZpZ3VyYXRpb25zKHRoaXMucnBjTWVzc2FnZS5wcm9kdWN0KTtcbiAgICAgIGNvbnN0IHJvb3RQcm9kdWN0T3B0aW9ucyA9IHRoaXMucnBjTWVzc2FnZS5vcHRpb25zLmZpbHRlcihwbyA9PiBwby5jb25maWd1cmVkUHJvZHVjdElkID09PSBsaW5lSXRlbS5wcm9kdWN0SWQpO1xuXG4gICAgICBjaGlsZEl0ZW1zLmZvckVhY2gobGluZUl0ZW0gPT4ge1xuICAgICAgICBjb25zdCByb290T3B0aW9uID0gcm9vdFByb2R1Y3RPcHRpb25zLmZpbmQocG8gPT4gcG8ub3B0aW9uYWxQcm9kdWN0SWQgPT09IGxpbmVJdGVtLnByb2R1Y3RJZCk7XG4gICAgICAgIGlmIChyb290T3B0aW9uKSB7XG4gICAgICAgICAgY29uc3QgZmVhdHVyZU9wdGlvbnMgPVxuICAgICAgICAgICAgb3B0aW9uQ29uZmlndXJhdGlvbnNbcm9vdE9wdGlvbi5mZWF0dXJlTmFtZV0gPz8gKG9wdGlvbkNvbmZpZ3VyYXRpb25zW3Jvb3RPcHRpb24uZmVhdHVyZU5hbWVdID0gW10pO1xuICAgICAgICAgIGNvbnN0IG9yaWdpbk9wdGlvbiA9ICFyb290T3B0aW9uLmhhc0NoaWxkcmVuXG4gICAgICAgICAgICA/IG9wdGlvbkNvbmZpZ3VyYXRpb25zW3Jvb3RPcHRpb24uZmVhdHVyZU5hbWVdLmZpbmQoKHsgb3B0aW9uSWQgfSkgPT4gb3B0aW9uSWQgPT09IHJvb3RPcHRpb24ub3B0aW9uSWQpXG4gICAgICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgICAgICBjb25zdCBvcHRpb246IFJwY09wdGlvbkNvbmZpZ3VyYXRpb24gPSBvcmlnaW5PcHRpb24gPz8gKHt9IGFzIFJwY09wdGlvbkNvbmZpZ3VyYXRpb24pO1xuXG4gICAgICAgICAgb3B0aW9uLm9wdGlvbklkID0gb3B0aW9uLm9wdGlvbklkID8/IHJvb3RPcHRpb24ub3B0aW9uSWQ7XG4gICAgICAgICAgdGhpcy51cGRhdGVDb250ZW50RGF0YShvcHRpb24sIGxpbmVJdGVtKTtcbiAgICAgICAgICBvcHRpb24uaW5kZXggPSBvcHRpb24uaW5kZXggPz8gZmVhdHVyZU9wdGlvbnMubGVuZ3RoO1xuICAgICAgICAgIG9wdGlvbi5zZWxlY3RlZCA9IHRydWU7XG5cbiAgICAgICAgICBpZiAoIW9yaWdpbk9wdGlvbikge1xuICAgICAgICAgICAgZmVhdHVyZU9wdGlvbnMucHVzaChvcHRpb24pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChsaW5lSXRlbS5wYXJlbnRMaW5lSXRlbSkge1xuICAgICAgICAgICAgY29uc3QgbmVzdGVkUHJvZHVjdE9wdGlvbiA9IHRoaXMucnBjTWVzc2FnZS5vcHRpb25zLmZpbmQoXG4gICAgICAgICAgICAgIHBvID0+XG4gICAgICAgICAgICAgICAgcG8uY29uZmlndXJlZFByb2R1Y3RJZCA9PT0gbGluZUl0ZW0ucGFyZW50TGluZUl0ZW0/LnByb2R1Y3RJZCAmJlxuICAgICAgICAgICAgICAgIHBvLm9wdGlvbmFsUHJvZHVjdElkID09PSBsaW5lSXRlbS5wcm9kdWN0SWQsXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBpZiAobmVzdGVkUHJvZHVjdE9wdGlvbikge1xuICAgICAgICAgICAgICBvcHRpb24uY29uZmlndXJhdGlvbkRhdGEgPSB7XG4gICAgICAgICAgICAgICAgLi4ub3B0aW9uLmNvbmZpZ3VyYXRpb25EYXRhLFxuICAgICAgICAgICAgICAgIFZlbG9jZVBhcmVudEluc3RhbmNlSWRfX2M6IGxpbmVJdGVtLnBhcmVudExpbmVJdGVtLmlkLFxuICAgICAgICAgICAgICAgIFZlbG9jZU5lc3RlZE9wdGlvbklkX19jOiBuZXN0ZWRQcm9kdWN0T3B0aW9uLm9wdGlvbklkLFxuICAgICAgICAgICAgICAgIFZlbG9jZU5lc3RlZEZlYXR1cmVJZF9fYzogbmVzdGVkUHJvZHVjdE9wdGlvbi5mZWF0dXJlSWQsXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMucnBjTWVzc2FnZS5keW5hbWljRmVhdHVyZXMuZm9yRWFjaChmZWF0dXJlID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGZlYXR1cmVPcHRpb25zID0gb3B0aW9uQ29uZmlndXJhdGlvbnNbZmVhdHVyZS5uYW1lXSA/PyAob3B0aW9uQ29uZmlndXJhdGlvbnNbZmVhdHVyZS5uYW1lXSA9IFtdKTtcbiAgICAgICAgICAgIGNvbnN0IG9yaWdpbk9wdGlvbiA9IGZlYXR1cmVPcHRpb25zLmZpbmQoKHsgcHJvZHVjdElkIH0pID0+IHByb2R1Y3RJZCA9PT0gbGluZUl0ZW0ucHJvZHVjdElkKTtcbiAgICAgICAgICAgIGNvbnN0IG9wdGlvbjogUnBjT3B0aW9uQ29uZmlndXJhdGlvbiA9IG9yaWdpbk9wdGlvbiA/PyAoe30gYXMgUnBjT3B0aW9uQ29uZmlndXJhdGlvbik7XG5cbiAgICAgICAgICAgIHRoaXMudXBkYXRlQ29udGVudERhdGEob3B0aW9uLCBsaW5lSXRlbSk7XG4gICAgICAgICAgICBvcHRpb24uaW5kZXggPSBvcHRpb24uaW5kZXggPz8gZmVhdHVyZU9wdGlvbnMubGVuZ3RoO1xuICAgICAgICAgICAgb3B0aW9uLnNlbGVjdGVkID0gdHJ1ZTtcblxuICAgICAgICAgICAgaWYgKCFvcmlnaW5PcHRpb24pIHtcbiAgICAgICAgICAgICAgZmVhdHVyZU9wdGlvbnMucHVzaChvcHRpb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgdGhpcy5ycGNNZXNzYWdlLnByb2R1Y3QgPSB7IC4uLnRoaXMucnBjTWVzc2FnZS5wcm9kdWN0LCBvcHRpb25Db25maWd1cmF0aW9ucyB9O1xuICAgIH1cblxuICAgIHdpbmRvdy5SUENfQlJPQURDQVNUPy5hcHBseShudWxsLCBbdGhpcy5ycGNNZXNzYWdlXSk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUhhc0NoaWxkcmVuRmxhZyhidW5kbGVQcm9kdWN0SWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGJ1bmRsZU9wdGlvbnNCeU9wdGlvbklkOiBSZWNvcmQ8c3RyaW5nLCBScGNPcHRpb24+ID0ge307XG4gICAgY29uc3Qgbm90QnVuZGxlT3B0aW9uczogUnBjT3B0aW9uW10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IHByb2R1Y3RPcHRpb24gb2YgdGhpcy5ycGNNZXNzYWdlLm9wdGlvbnMpIHtcbiAgICAgIGlmIChwcm9kdWN0T3B0aW9uLmNvbmZpZ3VyZWRQcm9kdWN0SWQgPT09IGJ1bmRsZVByb2R1Y3RJZCkge1xuICAgICAgICBidW5kbGVPcHRpb25zQnlPcHRpb25JZFtwcm9kdWN0T3B0aW9uLm9wdGlvbmFsUHJvZHVjdElkXSA9IHByb2R1Y3RPcHRpb247XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBub3RCdW5kbGVPcHRpb25zLnB1c2gocHJvZHVjdE9wdGlvbik7XG4gICAgICB9XG4gICAgfVxuICAgIGZvciAoY29uc3Qgb3B0aW9uIG9mIG5vdEJ1bmRsZU9wdGlvbnMpIHtcbiAgICAgIGlmIChidW5kbGVPcHRpb25zQnlPcHRpb25JZFtvcHRpb24uY29uZmlndXJlZFByb2R1Y3RJZF0pIHtcbiAgICAgICAgYnVuZGxlT3B0aW9uc0J5T3B0aW9uSWRbb3B0aW9uLmNvbmZpZ3VyZWRQcm9kdWN0SWRdLmhhc0NoaWxkcmVuID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZsYXR0ZW5DaGlsZExpbmVJdGVtcyhsaW5lSXRlbTogTGluZUl0ZW0pOiBMaW5lSXRlbVdpdGhQYXJlbnRbXSB7XG4gICAgbGV0IGl0ZW1zID0gbGluZUl0ZW0ubGluZUl0ZW1zID8/IFtdO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGl0ZW0gPSBpdGVtc1tpXTtcbiAgICAgIGlmIChpdGVtLmxpbmVJdGVtcykge1xuICAgICAgICBpdGVtcyA9IGl0ZW1zLmNvbmNhdChpdGVtLmxpbmVJdGVtcy5tYXAobGkgPT4gKHsgLi4ubGksIHBhcmVudExpbmVJdGVtOiBpdGVtIH0pKSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBpdGVtcztcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlQ29udGVudERhdGEoZW50aXR5OiBScGNQcm9kdWN0IHwgUnBjT3B0aW9uQ29uZmlndXJhdGlvbiwgbGluZUl0ZW06IExpbmVJdGVtKTogdm9pZCB7XG4gICAgaWYgKGxpbmVJdGVtLnByb2R1Y3RJZCkge1xuICAgICAgZW50aXR5LnByb2R1Y3RJZCA9IGxpbmVJdGVtLnByb2R1Y3RJZDtcbiAgICB9XG5cbiAgICBjb25zdCBxdWFudGl0eUF0dHJpYnV0ZSA9IGxpbmVJdGVtLnByb3BlcnRpZXMucXVhbnRpdHlBdHRyaWJ1dGU7XG4gICAgZW50aXR5LlF1YW50aXR5ID0gcXVhbnRpdHlBdHRyaWJ1dGVcbiAgICAgID8gbGluZUl0ZW0uYXR0cmlidXRlcy5maW5kKGF0dHJpYnV0ZSA9PiBhdHRyaWJ1dGUubmFtZSA9PT0gcXVhbnRpdHlBdHRyaWJ1dGUpPy52YWx1ZSA/PyAxXG4gICAgICA6IGxpbmVJdGVtLnF0eTtcblxuICAgIGNvbnN0IHRvdGFsUHJpY2UgPSB0aGlzLmNvbXB1dGVOZXRQcmljZShsaW5lSXRlbSk7XG4gICAgY29uc3QgdGFyZ2V0VG90YWxQcmljZUZpZWxkID0gbGluZUl0ZW0ucHJvcGVydGllcy5UYXJnZXRUb3RhbFByaWNlRmllbGQgfHwgJ1RvdGFsUHJpY2VfX2MnO1xuICAgIGVudGl0eS5jb25maWd1cmF0aW9uRGF0YVt0YXJnZXRUb3RhbFByaWNlRmllbGRdID0gZW50aXR5LmNvbmZpZ3VyYXRpb25EYXRhW3RhcmdldFRvdGFsUHJpY2VGaWVsZF1cbiAgICAgID8gZW50aXR5LmNvbmZpZ3VyYXRpb25EYXRhW3RhcmdldFRvdGFsUHJpY2VGaWVsZF0gKyB0b3RhbFByaWNlXG4gICAgICA6IHRvdGFsUHJpY2U7XG5cbiAgICBjb25zdCB0YXJnZXRQcmljZUZpZWxkID0gbGluZUl0ZW0ucHJvcGVydGllcy5UYXJnZXRQcmljZUZpZWxkIHx8ICdTQlFRX19MaXN0UHJpY2VfX2MnO1xuICAgIGNvbnN0IHByaWNlID0gZW50aXR5LlF1YW50aXR5ICE9IG51bGwgPyBlbnRpdHkuY29uZmlndXJhdGlvbkRhdGFbdGFyZ2V0VG90YWxQcmljZUZpZWxkXSAvIGVudGl0eS5RdWFudGl0eSB8fCAwIDogMDtcbiAgICBjb25zdCB0YXJnZXRQcmljZVZhbHVlID0gTnVtYmVyKGVudGl0eS5jb25maWd1cmF0aW9uRGF0YVt0YXJnZXRQcmljZUZpZWxkXSkgfHwgMDtcbiAgICBlbnRpdHkuY29uZmlndXJhdGlvbkRhdGFbdGFyZ2V0UHJpY2VGaWVsZF0gPSB0YXJnZXRQcmljZVZhbHVlXG4gICAgICA/ICh0YXJnZXRQcmljZVZhbHVlICsgcHJpY2UpLnRvRml4ZWQoMilcbiAgICAgIDogcHJpY2UudG9GaXhlZCgyKTtcblxuICAgIGVudGl0eS5jb25maWd1cmF0aW9uQXR0cmlidXRlcyA9IHRoaXMubWFwQXR0cmlidXRlc1RvKCdBdHRyaWJ1dGUnLCBsaW5lSXRlbSk7XG4gICAgZW50aXR5LmNvbmZpZ3VyYXRpb25EYXRhID0ge1xuICAgICAgLi4uZW50aXR5LmNvbmZpZ3VyYXRpb25EYXRhLFxuICAgICAgLi4udGhpcy5tYXBBdHRyaWJ1dGVzVG8oJ0ZpZWxkJywgbGluZUl0ZW0pLFxuICAgICAgLi4udGhpcy5tYXBBdHRyaWJ1dGVzVG8oJycsIGxpbmVJdGVtKSxcbiAgICAgIFZlbG9jZUluc3RhbmNlSWRfX2M6IGxpbmVJdGVtLmlkLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGNvbXB1dGVOZXRQcmljZShsaW5lSXRlbTogTGluZUl0ZW0pOiBudW1iZXIge1xuICAgIGlmIChsaW5lSXRlbS5wcm9wZXJ0aWVzLkdyb3VwQ2hhcmdlcykge1xuICAgICAgcmV0dXJuIHRoaXMuc3VtTmV0UHJpY2UobGluZUl0ZW0uY2hhcmdlR3JvdXBJdGVtcywgdGhpcy5nZXRDaGFyZ2VOYW1lU2V0KGxpbmVJdGVtLnByb3BlcnRpZXMuR3JvdXBDaGFyZ2VzKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuc3VtTmV0UHJpY2UobGluZUl0ZW0uY2hhcmdlSXRlbXMsIHRoaXMuZ2V0Q2hhcmdlTmFtZVNldChsaW5lSXRlbS5wcm9wZXJ0aWVzLkNoYXJnZXMpKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q2hhcmdlTmFtZVNldChwcm9wZXJ0eT86IHN0cmluZyk6IFNldDxzdHJpbmc+IHtcbiAgICBpZiAocHJvcGVydHkgJiYgcHJvcGVydHkubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIG5ldyBTZXQocHJvcGVydHkuc3BsaXQoJywnKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBTZXQoKTtcbiAgfVxuXG4gIHByaXZhdGUgc3VtTmV0UHJpY2UoY2hhcmdlSXRlbXM6IENoYXJnZUdyb3VwSXRlbVtdLCBjaGFyZ2VzOiBTZXQ8c3RyaW5nPik6IG51bWJlciB7XG4gICAgbGV0IG5ldFByaWNlID0gMDtcblxuICAgIGZvciAoY29uc3QgY2hhcmdlSXRlbSBvZiBjaGFyZ2VJdGVtcykge1xuICAgICAgaWYgKCFjaGFyZ2VzIHx8IGNoYXJnZXMuaGFzKGNoYXJnZUl0ZW0uY2hhcmdlVHlwZSkpIHtcbiAgICAgICAgbmV0UHJpY2UgKz0gY2hhcmdlSXRlbS5uZXRQcmljZSA/PyAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBuZXRQcmljZTtcbiAgfVxuXG4gIHByaXZhdGUgbWFwQXR0cmlidXRlc1RvKHRhcmdldDogc3RyaW5nLCBsaW5lSXRlbTogTGluZUl0ZW0pOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcbiAgICBjb25zdCByZXN1bHQ6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcbiAgICBjb25zdCBjb21wb25lbnQgPSB0aGlzLnJ1bnRpbWVTZXJ2aWNlLnJ1bnRpbWVNb2RlbD8uY29tcG9uZW50cy5nZXQobGluZUl0ZW0udHlwZSk7XG5cbiAgICBpZiAoIWNvbXBvbmVudCkge1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBjb25zdCBwcm9wZXJ0eU5hbWUgPSAnbWFwVG8nICsgdGFyZ2V0O1xuICAgIGNvbXBvbmVudC5hdHRyaWJ1dGVzXG4gICAgICAuZmlsdGVyKGEgPT4gYS5wcm9wZXJ0aWVzICYmIGEucHJvcGVydGllc1twcm9wZXJ0eU5hbWVdKVxuICAgICAgLmZvckVhY2gobWFwcGluZyA9PiB7XG4gICAgICAgIGNvbnN0IGF0dHJpYnV0ZSA9IGxpbmVJdGVtLmF0dHJpYnV0ZXMuZmluZChhID0+IGEubmFtZSA9PT0gbWFwcGluZy5uYW1lKTtcblxuICAgICAgICBpZiAoYXR0cmlidXRlKSB7XG4gICAgICAgICAgbmV3IFNldChtYXBwaW5nLnByb3BlcnRpZXNbcHJvcGVydHlOYW1lXS5zcGxpdCgnLCcpKS5mb3JFYWNoKGsgPT4gKHJlc3VsdFtrXSA9IGF0dHJpYnV0ZS52YWx1ZSkpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcml2YXRlIGdldE9wdGlvbkNvbmZpZ3VyYXRpb25zKHByb2R1Y3Q6IFJwY1Byb2R1Y3QpOiBSZWNvcmQ8c3RyaW5nLCBScGNPcHRpb25Db25maWd1cmF0aW9uW10+IHtcbiAgICBjb25zdCBvcHRpb25Db25maWd1cmF0aW9uczogUmVjb3JkPHN0cmluZywgUnBjT3B0aW9uQ29uZmlndXJhdGlvbltdPiA9IHt9O1xuICAgIGNvbnN0IHJlcXVlc3RPcHRpb25Db25maWd1cmF0aW9ucyA9IHByb2R1Y3Qub3B0aW9uQ29uZmlndXJhdGlvbnMgPz8ge307XG5cbiAgICBPYmplY3Qua2V5cyhyZXF1ZXN0T3B0aW9uQ29uZmlndXJhdGlvbnMpLmZvckVhY2goayA9PiB7XG4gICAgICBvcHRpb25Db25maWd1cmF0aW9uc1trXSA9IChyZXF1ZXN0T3B0aW9uQ29uZmlndXJhdGlvbnNba10gPz8gW10pLm1hcChvcHQgPT4ge1xuICAgICAgICByZXR1cm4geyAuLi5vcHQsIHNlbGVjdGVkOiBmYWxzZSB9O1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gb3B0aW9uQ29uZmlndXJhdGlvbnM7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJzdGF0ZSQgfCBhc3luYyBhcyBzdGF0ZVwiPlxuICA8dmwtbG9hZGVyICpuZ0lmPVwic3RhdGUubG9hZGluZzsgZWxzZSBjb250ZW50XCIgW2xhYmVsXT1cIidMb2FkaW5nIFVJJ1wiPjwvdmwtbG9hZGVyPlxuXG4gIDxuZy10ZW1wbGF0ZSAjY29udGVudD5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXN0YXRlLmZhaWx1cmVcIj5cbiAgICAgIDx2bC1jbXMtcHJldmlldyBbdWlEZWZpbml0aW9uXT1cInVpRGVmaW5pdGlvblwiPjwvdmwtY21zLXByZXZpZXc+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctdGVtcGxhdGU+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
350
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3RlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3NyYy9wYWdlcy9yZW1vdGUvcmVtb3RlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3NyYy9wYWdlcy9yZW1vdGUvcmVtb3RlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFFOUUsT0FBTyxFQVNMLElBQUksR0FFTCxNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSxVQUFVLEVBQW9CLE1BQU0scUJBQXFCLENBQUM7QUFVbkUsT0FBTyxFQUNMLGVBQWUsRUFDZixVQUFVLEVBQ1YsS0FBSyxFQUVMLEVBQUUsRUFDRixPQUFPLEVBQ1AsU0FBUyxFQUNULFNBQVMsRUFDVCxHQUFHLEVBQ0gsVUFBVSxHQUNYLE1BQU0sTUFBTSxDQUFDOzs7Ozs7OztBQWdCZCxNQUFNLE9BQU8sZUFBZTtJQVMxQixZQUNVLGNBQThCLEVBQzlCLGlCQUFvQyxFQUNwQyxlQUFnQyxFQUNoQyxjQUEyQyxFQUMzQyxvQkFBMEMsRUFDMUMsY0FBOEIsRUFDOUIsZ0JBQWtDLEVBQ2xDLFFBQWtCO1FBUGxCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxtQkFBYyxHQUFkLGNBQWMsQ0FBNkI7UUFDM0MseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQUMxQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBZnJCLFdBQU0sR0FBRyxJQUFJLGVBQWUsQ0FBUSxFQUFFLE9BQU8s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LENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7YUFDbEc7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVMLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFTyx1QkFBdUIsQ0FBQyxPQUFtQjs7UUFDakQsTUFBTSxvQkFBb0IsR0FBNkMsRUFBRSxDQUFDO1FBQzFFLE1BQU0sMkJBQTJCLEdBQUcsTUFBQSxPQUFPLENBQUMsb0JBQW9CLG1DQUFJLEVBQUUsQ0FBQztRQUV2RSxNQUFNLENBQUMsSUFBSSxDQUFDLDJCQUEyQixDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFOztZQUNuRCxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQUEsMkJBQTJCLENBQUMsQ0FBQyxDQUFDLG1DQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDekUsdUNBQVksR0FBRyxLQUFFLFFBQVEsRUFBRSxLQUFLLElBQUc7WUFDckMsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sb0JBQW9CLENBQUM7SUFDOUIsQ0FBQzs7NkdBdlpVLGVBQWU7aUdBQWYsZUFBZSxzRENwRDVCLHdWQVNBOzRGRDJDYSxlQUFlO2tCQU4zQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFdBQVcsRUFBRSx5QkFBeUI7b0JBQ3RDLFNBQVMsRUFBRSxDQUFDLHlCQUF5QixDQUFDO29CQUN0QyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDaEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFF1b3RlQXBpU2VydmljZSB9IGZyb20gJ0B2ZWxvY2VhcHBzL2FwaSc7XG5pbXBvcnQge1xuICBDaGFyZ2VHcm91cEl0ZW0sXG4gIENvbnRleHRQcm9wZXJ0aWVzLFxuICBMaW5lSXRlbSxcbiAgUnBjTWVzc2FnZSxcbiAgUnBjT3B0aW9uLFxuICBScGNPcHRpb25Db25maWd1cmF0aW9uLFxuICBScGNQcm9kdWN0LFxuICBScGNRdW90ZSxcbiAgVVVJRCxcbiAgVmxXaW5kb3csXG59IGZyb20gJ0B2ZWxvY2VhcHBzL2NvcmUnO1xuaW1wb3J0IHsgRmxvd0FjdGlvbiwgSW50ZWdyYXRpb25TdGF0ZSB9IGZyb20gJ0B2ZWxvY2VhcHBzL3Nkay9jbXMnO1xuaW1wb3J0IHtcbiAgQ29uZmlndXJhdGlvblJ1bnRpbWVTZXJ2aWNlLFxuICBDb25maWd1cmF0aW9uU2VydmljZSxcbiAgQ29udGV4dFNlcnZpY2UsXG4gIFF1b3RlRHJhZnRTZXJ2aWNlLFxuICBSdW50aW1lQ29udGV4dCxcbiAgVUlEZWZpbml0aW9uLFxufSBmcm9tICdAdmVsb2NlYXBwcy9zZGsvY29yZSc7XG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcbmltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgY2F0Y2hFcnJvcixcbiAgZmlyc3QsXG4gIE9ic2VydmFibGUsXG4gIG9mLFxuICBTdWJqZWN0LFxuICBzd2l0Y2hNYXAsXG4gIHRha2VVbnRpbCxcbiAgdGFwLFxuICB0aHJvd0Vycm9yLFxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7IExpbmVJdGVtV2l0aFBhcmVudCB9IGZyb20gJy4vcmVtb3RlLnR5cGVzJztcblxuZGVjbGFyZSBjb25zdCB3aW5kb3c6IFZsV2luZG93O1xuXG5pbnRlcmZhY2UgU3RhdGUge1xuICBsb2FkaW5nOiBib29sZWFuO1xuICBmYWlsdXJlOiBib29sZWFuO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2bC1mbG93LXJlbW90ZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZW1vdGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9yZW1vdGUuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFJlbW90ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHB1YmxpYyB1aURlZmluaXRpb24/OiBVSURlZmluaXRpb247XG4gIHB1YmxpYyBzdGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFN0YXRlPih7IGxvYWRpbmc6IHRydWUsIGZhaWx1cmU6IGZhbHNlIH0pO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgRFlOQU1JQ19PUFRJT05fUFJPRFVDVFNfS0VZID0gJ0R5bmFtaWMnO1xuXG4gIHByaXZhdGUgcnBjTWVzc2FnZTogUnBjTWVzc2FnZTtcbiAgcHJpdmF0ZSBkZXN0cm95ZWQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNvbnRleHRTZXJ2aWNlOiBDb250ZXh0U2VydmljZSxcbiAgICBwcml2YXRlIHF1b3RlRHJhZnRTZXJ2aWNlOiBRdW90ZURyYWZ0U2VydmljZSxcbiAgICBwcml2YXRlIHF1b3RlQXBpU2VydmljZTogUXVvdGVBcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgcnVudGltZVNlcnZpY2U6IENvbmZpZ3VyYXRpb25SdW50aW1lU2VydmljZSxcbiAgICBwcml2YXRlIGNvbmZpZ3VyYXRpb25TZXJ2aWNlOiBDb25maWd1cmF0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcbiAgICBwcml2YXRlIGludGVncmF0aW9uU3RhdGU6IEludGVncmF0aW9uU3RhdGUsXG4gICAgcHJpdmF0ZSBsb2NhdGlvbjogTG9jYXRpb24sXG4gICkge1xuICAgIHRoaXMucnBjTWVzc2FnZSA9IEpTT04ucGFyc2Uod2luZG93LlJQQ19NRVNTQUdFIGFzIHN0cmluZyk7XG4gICAgdGhpcy5ycGNNZXNzYWdlLm9wdGlvbnMuc29ydCgoYSwgYikgPT4gKGEuZmVhdHVyZU51bWJlciA/PyA5OTk5OSkgLSAoYi5mZWF0dXJlTnVtYmVyID8/IDk5OTk5KSk7XG4gICAgdGhpcy51cGRhdGVIYXNDaGlsZHJlbkZsYWcodGhpcy5ycGNNZXNzYWdlLnByb2R1Y3QuY29uZmlndXJlZFByb2R1Y3RJZCk7XG5cbiAgICAvLyB1cGRhdGUgY29udGV4dCBwcm9wZXJ0aWVzXG4gICAgaWYgKHRoaXMucnBjTWVzc2FnZS5xdW90ZSkge1xuICAgICAgY29uc3QgcHJvcGVydGllczogQ29udGV4dFByb3BlcnRpZXMgPSB7fTtcblxuICAgICAgaWYgKHRoaXMucnBjTWVzc2FnZS5xdW90ZS5TQlFRX19PcHBvcnR1bml0eTJfX2MpIHtcbiAgICAgICAgcHJvcGVydGllcy5PcHBvcnR1bml0eUlkID0gdGhpcy5ycGNNZXNzYWdlLnF1b3RlLlNCUVFfX09wcG9ydHVuaXR5Ml9fYztcbiAgICAgIH1cblxuICAgICAgT2JqZWN0LmVudHJpZXModGhpcy5ycGNNZXNzYWdlLnF1b3RlKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQgJiYgISh2YWx1ZSBpbnN0YW5jZW9mIE9iamVjdCkpIHtcbiAgICAgICAgICBwcm9wZXJ0aWVzW2tleV0gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuY29udGV4dFNlcnZpY2UudXBkYXRlKHsgcHJvcGVydGllcyB9KTtcbiAgICB9XG5cbiAgICB0aGlzLmluaXRTdWJzY3JpcHRpb25zKCk7XG4gICAgdGhpcy5pbml0Q29uZmlndXJhdGlvbigpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveWVkJC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95ZWQkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwcml2YXRlIGluaXRDb25maWd1cmF0aW9uKCk6IHZvaWQge1xuICAgIGNvbnN0IHByb2R1Y3RJZCA9IHRoaXMucnBjTWVzc2FnZS5wcm9kdWN0LmNvbmZpZ3VyZWRQcm9kdWN0SWQ7XG4gICAgY29uc3QgcXVvdGUgPSB0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLnF1b3RlRHJhZnQ7XG5cbiAgICBpZiAoIXByb2R1Y3RJZCB8fCAhcXVvdGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnJ1bnRpbWVTZXJ2aWNlXG4gICAgICAuaW5pdCh7IHByb2R1Y3RJZCB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpcnN0KCksXG4gICAgICAgIHRhcChjb250ZXh0ID0+IHtcbiAgICAgICAgICBjb25zdCBwcmljaW5nRW5hYmxlZCA9IGNvbnRleHQ/LnVpRGVmaW5pdGlvbj8ucHJvcGVydGllcz8ucHJpY2luZ0VuYWJsZWQgPyAndHJ1ZScgOiAnZmFsc2UnO1xuICAgICAgICAgIGNvbnN0IHByaWNlTGlzdElkID0gY29udGV4dD8udWlEZWZpbml0aW9uPy5wcm9wZXJ0aWVzPy5wcmljZUxpc3Q7XG5cbiAgICAgICAgICBjb25zdCBydW50aW1lQ29udGV4dFByb3BlcnRpZXMgPSB0aGlzLnJ1bnRpbWVTZXJ2aWNlLnJ1bnRpbWVDb250ZXh0Py5wcm9wZXJ0aWVzO1xuICAgICAgICAgIGlmIChydW50aW1lQ29udGV4dFByb3BlcnRpZXMpIHtcbiAgICAgICAgICAgIHJ1bnRpbWVDb250ZXh0UHJvcGVydGllcy5QcmljZUxpc3RJZCA9IHByaWNlTGlzdElkO1xuICAgICAgICAgICAgcnVudGltZUNvbnRleHRQcm9wZXJ0aWVzLlByaWNpbmdFbmFibGVkID0gcHJpY2luZ0VuYWJsZWQ7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGhpcy5jb250ZXh0U2VydmljZS51cGRhdGUoe1xuICAgICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgICBNb2RlbElkOiBjb250ZXh0Py5tb2RlbElkLFxuICAgICAgICAgICAgICBSdW50aW1lTW9kZTogJ1RFU1QnLFxuICAgICAgICAgICAgICBQcmljaW5nRW5hYmxlZDogcHJpY2luZ0VuYWJsZWQsXG4gICAgICAgICAgICAgIFByaWNlTGlzdElkOiBwcmljZUxpc3RJZCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICB0aGlzLnVpRGVmaW5pdGlvbiA9IGNvbnRleHQ/LnVpRGVmaW5pdGlvbjtcblxuICAgICAgICAgIHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2Uuc2V0Q29uZmlndXJhYmxlUmFtcCh0aGlzLmNyZWF0ZUxpbmVJdGVtKCkpO1xuICAgICAgICB9KSxcbiAgICAgICAgdGhpcy50aHJvd0lmTm9VSURlZmluaXRpb24oKSxcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2UuY29uZmlndXJlKCkpLFxuICAgICAgICB0YXAoKCkgPT4gdGhpcy5zdGF0ZSQubmV4dCh7IGxvYWRpbmc6IGZhbHNlLCBmYWlsdXJlOiBmYWxzZSB9KSksXG4gICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xuICAgICAgICAgIGlmICghdGhpcy51aURlZmluaXRpb24/LnByb3BlcnRpZXM/LnN1cHByZXNzVG9hc3RNZXNzYWdlcykge1xuICAgICAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ2Vycm9yJywgc3VtbWFyeTogZXJyb3IgfSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGhpcy5zdGF0ZSQubmV4dCh7IGxvYWRpbmc6IGZhbHNlLCBmYWlsdXJlOiB0cnVlIH0pO1xuICAgICAgICAgIHJldHVybiBvZigpO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIHRocm93SWZOb1VJRGVmaW5pdGlvbigpIHtcbiAgICByZXR1cm4gPFQ+KHNvdXJjZSQ6IE9ic2VydmFibGU8VD4pOiBPYnNlcnZhYmxlPFQ+ID0+IHtcbiAgICAgIHJldHVybiBzb3VyY2UkLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiB7XG4gICAgICAgICAgaWYgKCF0aGlzLnVpRGVmaW5pdGlvbikge1xuICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gJ1Byb2R1Y3QgZG9lcyBub3QgaGF2ZSBDb25maWd1cmF0aW9uIFVJJyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHNvdXJjZSQ7XG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0U3Vic2NyaXB0aW9ucygpOiB2b2lkIHtcbiAgICB0aGlzLmludGVncmF0aW9uU3RhdGVcbiAgICAgIC5saXN0ZW4kKEZsb3dBY3Rpb24uUkVNT1RFX0NBTkNFTClcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoKCkgPT4gdGhpcy5sb2NhdGlvbi5iYWNrKCkpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcblxuICAgIHRoaXMuaW50ZWdyYXRpb25TdGF0ZVxuICAgICAgLmxpc3RlbiQoRmxvd0FjdGlvbi5SRU1PVEVfQVBQTFkpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKCgpID0+IHRoaXMuc2F2ZVJwY01lc3NhZ2UoKSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVMaW5lSXRlbSgpOiBMaW5lSXRlbSB7XG4gICAgY29uc3QgW3F1b3RlRHJhZnRMaW5lSXRlbV0gPSB0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLnF1b3RlRHJhZnQ/LmN1cnJlbnRTdGF0ZSA/PyBbXTtcbiAgICBpZiAocXVvdGVEcmFmdExpbmVJdGVtICYmIChxdW90ZURyYWZ0TGluZUl0ZW0uYXR0cmlidXRlcy5sZW5ndGggPiAwIHx8IHF1b3RlRHJhZnRMaW5lSXRlbS5saW5lSXRlbXMubGVuZ3RoID4gMCkpIHtcbiAgICAgIHJldHVybiBxdW90ZURyYWZ0TGluZUl0ZW07XG4gICAgfVxuXG4gICAgY29uc3QgbGluZUl0ZW0gPSB0aGlzLmNyZWF0ZVJvb3RMaW5lSXRlbSgpO1xuICAgIGNvbnN0IGR5bmFtaWNPcHRpb25Qcm9kdWN0cyA9IHRoaXMucnBjTWVzc2FnZS5wcm9kdWN0Lm9wdGlvbkNvbmZpZ3VyYXRpb25zW3RoaXMuRFlOQU1JQ19PUFRJT05fUFJPRFVDVFNfS0VZXTtcblxuICAgIGlmIChkeW5hbWljT3B0aW9uUHJvZHVjdHMpIHtcbiAgICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLnRvUGFyZW50Q2hpbGRNYXAoZHluYW1pY09wdGlvblByb2R1Y3RzKTtcbiAgICAgIGxldCBpdGVtcyA9IFtsaW5lSXRlbV07XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IGl0ZW0gPSBpdGVtc1tpXTtcbiAgICAgICAgY29uc3QgY2hpbGRyZW4gPSBvcHRpb25zLmdldChpdGVtLmlkKTtcbiAgICAgICAgaWYgKGNoaWxkcmVuKSB7XG4gICAgICAgICAgaXRlbS5saW5lSXRlbXMgPSBjaGlsZHJlbjtcbiAgICAgICAgICBpdGVtcyA9IGl0ZW1zLmNvbmNhdChjaGlsZHJlbik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGxpbmVJdGVtO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVSb290TGluZUl0ZW0oKTogTGluZUl0ZW0ge1xuICAgIGNvbnN0IHByb2R1Y3QgPSB0aGlzLnJwY01lc3NhZ2UucHJvZHVjdDtcbiAgICBjb25zdCBydW50aW1lQ29udGV4dCA9IHRoaXMucnVudGltZVNlcnZpY2UucnVudGltZUNvbnRleHQgYXMgUnVudGltZUNvbnRleHQ7XG4gICAgY29uc3QgdmVsb2NlSW5zdGFuY2VJZCA9IHByb2R1Y3QuY29uZmlndXJhdGlvbkF0dHJpYnV0ZXMuVmVsb2NlSW5zdGFuY2VJZF9fYztcbiAgICBjb25zdCBxdW90ZUlkID0gdGhpcy5xdW90ZURyYWZ0U2VydmljZS5xdW90ZURyYWZ0Py5jdXJyZW50U3RhdGVbMF0/LmlkO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGlkOiBxdW90ZUlkIHx8IHZlbG9jZUluc3RhbmNlSWQgfHwgVVVJRC5VVUlEKCksXG4gICAgICB0eXBlOiBydW50aW1lQ29udGV4dC5wcm9kdWN0VHlwZSA/PyAnJyxcbiAgICAgIG5hbWU6IHJ1bnRpbWVDb250ZXh0LnByb3BlcnRpZXM/LmRpc3BsYXlOYW1lIHx8IHJ1bnRpbWVDb250ZXh0LnByb2R1Y3ROYW1lLFxuICAgICAgcHJvZHVjdE5hbWU6IHJ1bnRpbWVDb250ZXh0LnByb2R1Y3ROYW1lLFxuICAgICAgcHJvZHVjdElkOiBydW50aW1lQ29udGV4dC5wcm9kdWN0SWQsXG4gICAgICBjZmdTdGF0dXM6ICdEZWZhdWx0JyxcbiAgICAgIGFjdGlvbkNvZGU6ICdBREQnLFxuICAgICAgcXR5OiAxLFxuICAgIH0gYXMgTGluZUl0ZW07XG4gIH1cblxuICBwcml2YXRlIHRvUGFyZW50Q2hpbGRNYXAocmVtb3RlT3B0aW9uUHJvZHVjdHM6IFJwY09wdGlvbkNvbmZpZ3VyYXRpb25bXSk6IE1hcDxzdHJpbmcsIExpbmVJdGVtW10+IHtcbiAgICBjb25zdCByZXN1bHQgPSBuZXcgTWFwPHN0cmluZywgTGluZUl0ZW1bXT4oKTtcblxuICAgIGZvciAoY29uc3Qgb3B0aW9uIG9mIHJlbW90ZU9wdGlvblByb2R1Y3RzKSB7XG4gICAgICBjb25zdCBjb25maWd1cmF0aW9uRGF0YSA9IG9wdGlvbj8ucmVhZE9ubHk/LmxpbmU7XG4gICAgICBjb25zdCBpZCA9IGNvbmZpZ3VyYXRpb25EYXRhPy5WZWxvY2VJbnN0YW5jZUlkX19jO1xuICAgICAgY29uc3QgcGFyZW50SWQgPSBjb25maWd1cmF0aW9uRGF0YT8uVmVsb2NlUGFyZW50SW5zdGFuY2VJZF9fYztcblxuICAgICAgaWYgKCFvcHRpb24uc2VsZWN0ZWQgfHwgIWNvbmZpZ3VyYXRpb25EYXRhIHx8ICFpZCB8fCAhcGFyZW50SWQpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHByb2R1Y3RJZCA9IG9wdGlvbi5wcm9kdWN0SWQ7XG4gICAgICBjb25zdCBsaW5lSXRlbSA9IHtcbiAgICAgICAgaWQsXG4gICAgICAgIHByb2R1Y3RJZCxcbiAgICAgICAgcGFyZW50SWQsXG4gICAgICAgIHR5cGU6IGNvbmZpZ3VyYXRpb25EYXRhLk1vZGVsVHlwZV9fYyxcbiAgICAgICAgcG9ydDogY29uZmlndXJhdGlvbkRhdGEuTW9kZWxQb3J0X19jLFxuICAgICAgICBjZmdTdGF0dXM6IGNvbmZpZ3VyYXRpb25EYXRhLkNvbmZpZ3VyYXRpb25TdGF0dXNfX2MsXG4gICAgICAgIGFjdGlvbkNvZGU6IGNvbmZpZ3VyYXRpb25EYXRhLkFjdGlvbkNvZGVfX2MsXG4gICAgICAgIHF0eTogb3B0aW9uLlF1YW50aXR5LFxuICAgICAgfSBhcyBMaW5lSXRlbTtcblxuICAgICAgbGV0IHNpYmxpbmdzID0gcmVzdWx0LmdldChwcm9kdWN0SWQpO1xuICAgICAgaWYgKCFzaWJsaW5ncykge1xuICAgICAgICByZXN1bHQuc2V0KHBhcmVudElkLCAoc2libGluZ3MgPSBbXSkpO1xuICAgICAgfVxuXG4gICAgICBzaWJsaW5ncy5wdXNoKGxpbmVJdGVtKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByaXZhdGUgc2F2ZVJwY01lc3NhZ2UoKTogdm9pZCB7XG4gICAgY29uc3QgcXVvdGUgPSB0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLnF1b3RlRHJhZnQ7XG4gICAgY29uc3QgbGluZUl0ZW0gPSB0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlLmdldFNuYXBzaG90KCk7XG5cbiAgICBpZiAoIXF1b3RlIHx8ICFsaW5lSXRlbSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMucnBjTWVzc2FnZS5WZWxvY2VSZWZlcmVuY2VJZCA9IHF1b3RlLnF1b3RlSWQ7XG4gICAgdGhpcy5ycGNNZXNzYWdlLnByb2R1Y3QuY29uZmlndXJhdGlvbkRhdGEuVmVsb2NlSW5zdGFuY2VJZF9fYyA9IGxpbmVJdGVtLmlkO1xuICAgIGNvbnN0IGNoaWxkSXRlbXMgPSB0aGlzLmZsYXR0ZW5DaGlsZExpbmVJdGVtcyhsaW5lSXRlbSk7XG4gICAgY29uc3Qgc2F2aW5nTW9kZSA9IHdpbmRvdy5TYXZpbmdNb2RlO1xuXG4gICAgdGhpcy51cGRhdGVDb250ZW50RGF0YSh0aGlzLnJwY01lc3NhZ2UucHJvZHVjdCwgbGluZUl0ZW0pO1xuICAgIHRoaXMucnBjTWVzc2FnZS5xdW90ZSA9IHRoaXMubWFwQXR0cmlidXRlc1RvKCdRdW90ZScsIGxpbmVJdGVtKSBhcyBScGNRdW90ZTtcblxuICAgIGlmIChzYXZpbmdNb2RlID09PSAnQUxMJykge1xuICAgICAgY29uc3Qgb3B0aW9uQ29uZmlndXJhdGlvbnMgPSB0aGlzLmdldE9wdGlvbkNvbmZpZ3VyYXRpb25zKHRoaXMucnBjTWVzc2FnZS5wcm9kdWN0KTtcbiAgICAgIGNvbnN0IHJvb3RQcm9kdWN0T3B0aW9ucyA9IHRoaXMucnBjTWVzc2FnZS5vcHRpb25zLmZpbHRlcihwbyA9PiBwby5jb25maWd1cmVkUHJvZHVjdElkID09PSBsaW5lSXRlbS5wcm9kdWN0SWQpO1xuXG4gICAgICBjaGlsZEl0ZW1zLmZvckVhY2gobGluZUl0ZW0gPT4ge1xuICAgICAgICBjb25zdCByb290T3B0aW9uID0gcm9vdFByb2R1Y3RPcHRpb25zLmZpbmQocG8gPT4gcG8ub3B0aW9uYWxQcm9kdWN0SWQgPT09IGxpbmVJdGVtLnByb2R1Y3RJZCk7XG4gICAgICAgIGlmIChyb290T3B0aW9uKSB7XG4gICAgICAgICAgY29uc3QgZmVhdHVyZU9wdGlvbnMgPVxuICAgICAgICAgICAgb3B0aW9uQ29uZmlndXJhdGlvbnNbcm9vdE9wdGlvbi5mZWF0dXJlTmFtZV0gPz8gKG9wdGlvbkNvbmZpZ3VyYXRpb25zW3Jvb3RPcHRpb24uZmVhdHVyZU5hbWVdID0gW10pO1xuICAgICAgICAgIGNvbnN0IG9yaWdpbk9wdGlvbiA9ICFyb290T3B0aW9uLmhhc0NoaWxkcmVuXG4gICAgICAgICAgICA/IG9wdGlvbkNvbmZpZ3VyYXRpb25zW3Jvb3RPcHRpb24uZmVhdHVyZU5hbWVdLmZpbmQoKHsgb3B0aW9uSWQgfSkgPT4gb3B0aW9uSWQgPT09IHJvb3RPcHRpb24ub3B0aW9uSWQpXG4gICAgICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgICAgICBjb25zdCBvcHRpb246IFJwY09wdGlvbkNvbmZpZ3VyYXRpb24gPSBvcmlnaW5PcHRpb24gPz8gKHt9IGFzIFJwY09wdGlvbkNvbmZpZ3VyYXRpb24pO1xuXG4gICAgICAgICAgb3B0aW9uLm9wdGlvbklkID0gb3B0aW9uLm9wdGlvbklkID8/IHJvb3RPcHRpb24ub3B0aW9uSWQ7XG4gICAgICAgICAgdGhpcy51cGRhdGVDb250ZW50RGF0YShvcHRpb24sIGxpbmVJdGVtKTtcbiAgICAgICAgICBvcHRpb24uaW5kZXggPSBvcHRpb24uaW5kZXggPz8gZmVhdHVyZU9wdGlvbnMubGVuZ3RoO1xuICAgICAgICAgIG9wdGlvbi5zZWxlY3RlZCA9IHRydWU7XG5cbiAgICAgICAgICBpZiAoIW9yaWdpbk9wdGlvbikge1xuICAgICAgICAgICAgZmVhdHVyZU9wdGlvbnMucHVzaChvcHRpb24pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChsaW5lSXRlbS5wYXJlbnRMaW5lSXRlbSkge1xuICAgICAgICAgICAgY29uc3QgbmVzdGVkUHJvZHVjdE9wdGlvbiA9IHRoaXMucnBjTWVzc2FnZS5vcHRpb25zLmZpbmQoXG4gICAgICAgICAgICAgIHBvID0+XG4gICAgICAgICAgICAgICAgcG8uY29uZmlndXJlZFByb2R1Y3RJZCA9PT0gbGluZUl0ZW0ucGFyZW50TGluZUl0ZW0/LnByb2R1Y3RJZCAmJlxuICAgICAgICAgICAgICAgIHBvLm9wdGlvbmFsUHJvZHVjdElkID09PSBsaW5lSXRlbS5wcm9kdWN0SWQsXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBpZiAobmVzdGVkUHJvZHVjdE9wdGlvbikge1xuICAgICAgICAgICAgICBvcHRpb24uY29uZmlndXJhdGlvbkRhdGEgPSB7XG4gICAgICAgICAgICAgICAgLi4ub3B0aW9uLmNvbmZpZ3VyYXRpb25EYXRhLFxuICAgICAgICAgICAgICAgIFZlbG9jZVBhcmVudEluc3RhbmNlSWRfX2M6IGxpbmVJdGVtLnBhcmVudExpbmVJdGVtLmlkLFxuICAgICAgICAgICAgICAgIFZlbG9jZU5lc3RlZE9wdGlvbklkX19jOiBuZXN0ZWRQcm9kdWN0T3B0aW9uLm9wdGlvbklkLFxuICAgICAgICAgICAgICAgIFZlbG9jZU5lc3RlZEZlYXR1cmVJZF9fYzogbmVzdGVkUHJvZHVjdE9wdGlvbi5mZWF0dXJlSWQsXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMucnBjTWVzc2FnZS5keW5hbWljRmVhdHVyZXMuZm9yRWFjaChmZWF0dXJlID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGZlYXR1cmVPcHRpb25zID0gb3B0aW9uQ29uZmlndXJhdGlvbnNbZmVhdHVyZS5uYW1lXSA/PyAob3B0aW9uQ29uZmlndXJhdGlvbnNbZmVhdHVyZS5uYW1lXSA9IFtdKTtcbiAgICAgICAgICAgIGNvbnN0IG9yaWdpbk9wdGlvbiA9IGZlYXR1cmVPcHRpb25zLmZpbmQoKHsgcHJvZHVjdElkIH0pID0+IHByb2R1Y3RJZCA9PT0gbGluZUl0ZW0ucHJvZHVjdElkKTtcbiAgICAgICAgICAgIGNvbnN0IG9wdGlvbjogUnBjT3B0aW9uQ29uZmlndXJhdGlvbiA9IG9yaWdpbk9wdGlvbiA/PyAoe30gYXMgUnBjT3B0aW9uQ29uZmlndXJhdGlvbik7XG5cbiAgICAgICAgICAgIHRoaXMudXBkYXRlQ29udGVudERhdGEob3B0aW9uLCBsaW5lSXRlbSk7XG4gICAgICAgICAgICBvcHRpb24uaW5kZXggPSBvcHRpb24uaW5kZXggPz8gZmVhdHVyZU9wdGlvbnMubGVuZ3RoO1xuICAgICAgICAgICAgb3B0aW9uLnNlbGVjdGVkID0gdHJ1ZTtcblxuICAgICAgICAgICAgaWYgKCFvcmlnaW5PcHRpb24pIHtcbiAgICAgICAgICAgICAgZmVhdHVyZU9wdGlvbnMucHVzaChvcHRpb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgdGhpcy5ycGNNZXNzYWdlLnByb2R1Y3QgPSB7IC4uLnRoaXMucnBjTWVzc2FnZS5wcm9kdWN0LCBvcHRpb25Db25maWd1cmF0aW9ucyB9O1xuICAgIH1cblxuICAgIHdpbmRvdy5SUENfQlJPQURDQVNUPy5hcHBseShudWxsLCBbdGhpcy5ycGNNZXNzYWdlXSk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUhhc0NoaWxkcmVuRmxhZyhidW5kbGVQcm9kdWN0SWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGJ1bmRsZU9wdGlvbnNCeU9wdGlvbklkOiBSZWNvcmQ8c3RyaW5nLCBScGNPcHRpb24+ID0ge307XG4gICAgY29uc3Qgbm90QnVuZGxlT3B0aW9uczogUnBjT3B0aW9uW10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IHByb2R1Y3RPcHRpb24gb2YgdGhpcy5ycGNNZXNzYWdlLm9wdGlvbnMpIHtcbiAgICAgIGlmIChwcm9kdWN0T3B0aW9uLmNvbmZpZ3VyZWRQcm9kdWN0SWQgPT09IGJ1bmRsZVByb2R1Y3RJZCkge1xuICAgICAgICBidW5kbGVPcHRpb25zQnlPcHRpb25JZFtwcm9kdWN0T3B0aW9uLm9wdGlvbmFsUHJvZHVjdElkXSA9IHByb2R1Y3RPcHRpb247XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBub3RCdW5kbGVPcHRpb25zLnB1c2gocHJvZHVjdE9wdGlvbik7XG4gICAgICB9XG4gICAgfVxuICAgIGZvciAoY29uc3Qgb3B0aW9uIG9mIG5vdEJ1bmRsZU9wdGlvbnMpIHtcbiAgICAgIGlmIChidW5kbGVPcHRpb25zQnlPcHRpb25JZFtvcHRpb24uY29uZmlndXJlZFByb2R1Y3RJZF0pIHtcbiAgICAgICAgYnVuZGxlT3B0aW9uc0J5T3B0aW9uSWRbb3B0aW9uLmNvbmZpZ3VyZWRQcm9kdWN0SWRdLmhhc0NoaWxkcmVuID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZsYXR0ZW5DaGlsZExpbmVJdGVtcyhsaW5lSXRlbTogTGluZUl0ZW0pOiBMaW5lSXRlbVdpdGhQYXJlbnRbXSB7XG4gICAgbGV0IGl0ZW1zID0gbGluZUl0ZW0ubGluZUl0ZW1zID8/IFtdO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGl0ZW0gPSBpdGVtc1tpXTtcbiAgICAgIGlmIChpdGVtLmxpbmVJdGVtcykge1xuICAgICAgICBpdGVtcyA9IGl0ZW1zLmNvbmNhdChpdGVtLmxpbmVJdGVtcy5tYXAobGkgPT4gKHsgLi4ubGksIHBhcmVudExpbmVJdGVtOiBpdGVtIH0pKSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBpdGVtcztcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlQ29udGVudERhdGEoZW50aXR5OiBScGNQcm9kdWN0IHwgUnBjT3B0aW9uQ29uZmlndXJhdGlvbiwgbGluZUl0ZW06IExpbmVJdGVtKTogdm9pZCB7XG4gICAgaWYgKGxpbmVJdGVtLnByb2R1Y3RJZCkge1xuICAgICAgZW50aXR5LnByb2R1Y3RJZCA9IGxpbmVJdGVtLnByb2R1Y3RJZDtcbiAgICB9XG5cbiAgICBjb25zdCBxdWFudGl0eUF0dHJpYnV0ZSA9IGxpbmVJdGVtLnByb3BlcnRpZXMucXVhbnRpdHlBdHRyaWJ1dGU7XG4gICAgZW50aXR5LlF1YW50aXR5ID0gcXVhbnRpdHlBdHRyaWJ1dGVcbiAgICAgID8gbGluZUl0ZW0uYXR0cmlidXRlcy5maW5kKGF0dHJpYnV0ZSA9PiBhdHRyaWJ1dGUubmFtZSA9PT0gcXVhbnRpdHlBdHRyaWJ1dGUpPy52YWx1ZSA/PyAxXG4gICAgICA6IGxpbmVJdGVtLnF0eTtcblxuICAgIGNvbnN0IHRvdGFsUHJpY2UgPSB0aGlzLmNvbXB1dGVOZXRQcmljZShsaW5lSXRlbSk7XG4gICAgY29uc3QgdGFyZ2V0VG90YWxQcmljZUZpZWxkID0gbGluZUl0ZW0ucHJvcGVydGllcy5UYXJnZXRUb3RhbFByaWNlRmllbGQgfHwgJ1RvdGFsUHJpY2VfX2MnO1xuICAgIGVudGl0eS5jb25maWd1cmF0aW9uRGF0YVt0YXJnZXRUb3RhbFByaWNlRmllbGRdID0gZW50aXR5LmNvbmZpZ3VyYXRpb25EYXRhW3RhcmdldFRvdGFsUHJpY2VGaWVsZF1cbiAgICAgID8gZW50aXR5LmNvbmZpZ3VyYXRpb25EYXRhW3RhcmdldFRvdGFsUHJpY2VGaWVsZF0gKyB0b3RhbFByaWNlXG4gICAgICA6IHRvdGFsUHJpY2U7XG5cbiAgICBjb25zdCB0YXJnZXRQcmljZUZpZWxkID0gbGluZUl0ZW0ucHJvcGVydGllcy5UYXJnZXRQcmljZUZpZWxkIHx8ICdTQlFRX19MaXN0UHJpY2VfX2MnO1xuICAgIGNvbnN0IHByaWNlID0gZW50aXR5LlF1YW50aXR5ICE9IG51bGwgPyBlbnRpdHkuY29uZmlndXJhdGlvbkRhdGFbdGFyZ2V0VG90YWxQcmljZUZpZWxkXSAvIGVudGl0eS5RdWFudGl0eSB8fCAwIDogMDtcbiAgICBjb25zdCB0YXJnZXRQcmljZVZhbHVlID0gTnVtYmVyKGVudGl0eS5jb25maWd1cmF0aW9uRGF0YVt0YXJnZXRQcmljZUZpZWxkXSkgfHwgMDtcbiAgICBlbnRpdHkuY29uZmlndXJhdGlvbkRhdGFbdGFyZ2V0UHJpY2VGaWVsZF0gPSB0YXJnZXRQcmljZVZhbHVlXG4gICAgICA/ICh0YXJnZXRQcmljZVZhbHVlICsgcHJpY2UpLnRvRml4ZWQoMilcbiAgICAgIDogcHJpY2UudG9GaXhlZCgyKTtcblxuICAgIGVudGl0eS5jb25maWd1cmF0aW9uQXR0cmlidXRlcyA9IHRoaXMubWFwQXR0cmlidXRlc1RvKCdBdHRyaWJ1dGUnLCBsaW5lSXRlbSk7XG4gICAgZW50aXR5LmNvbmZpZ3VyYXRpb25EYXRhID0ge1xuICAgICAgLi4uZW50aXR5LmNvbmZpZ3VyYXRpb25EYXRhLFxuICAgICAgLi4udGhpcy5tYXBBdHRyaWJ1dGVzVG8oJ0ZpZWxkJywgbGluZUl0ZW0pLFxuICAgICAgLi4udGhpcy5tYXBBdHRyaWJ1dGVzVG8oJycsIGxpbmVJdGVtKSxcbiAgICAgIFZlbG9jZUluc3RhbmNlSWRfX2M6IGxpbmVJdGVtLmlkLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGNvbXB1dGVOZXRQcmljZShsaW5lSXRlbTogTGluZUl0ZW0pOiBudW1iZXIge1xuICAgIGlmIChsaW5lSXRlbS5wcm9wZXJ0aWVzLkdyb3VwQ2hhcmdlcykge1xuICAgICAgcmV0dXJuIHRoaXMuc3VtTmV0UHJpY2UobGluZUl0ZW0uY2hhcmdlR3JvdXBJdGVtcywgdGhpcy5nZXRDaGFyZ2VOYW1lU2V0KGxpbmVJdGVtLnByb3BlcnRpZXMuR3JvdXBDaGFyZ2VzKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuc3VtTmV0UHJpY2UobGluZUl0ZW0uY2hhcmdlSXRlbXMsIHRoaXMuZ2V0Q2hhcmdlTmFtZVNldChsaW5lSXRlbS5wcm9wZXJ0aWVzLkNoYXJnZXMpKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q2hhcmdlTmFtZVNldChwcm9wZXJ0eT86IHN0cmluZyk6IFNldDxzdHJpbmc+IHtcbiAgICBpZiAocHJvcGVydHkgJiYgcHJvcGVydHkubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIG5ldyBTZXQocHJvcGVydHkuc3BsaXQoJywnKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBTZXQoKTtcbiAgfVxuXG4gIHByaXZhdGUgc3VtTmV0UHJpY2UoY2hhcmdlSXRlbXM6IENoYXJnZUdyb3VwSXRlbVtdLCBjaGFyZ2VzOiBTZXQ8c3RyaW5nPik6IG51bWJlciB7XG4gICAgbGV0IG5ldFByaWNlID0gMDtcblxuICAgIGZvciAoY29uc3QgY2hhcmdlSXRlbSBvZiBjaGFyZ2VJdGVtcykge1xuICAgICAgaWYgKCFjaGFyZ2VzIHx8IGNoYXJnZXMuaGFzKGNoYXJnZUl0ZW0uY2hhcmdlVHlwZSkpIHtcbiAgICAgICAgbmV0UHJpY2UgKz0gY2hhcmdlSXRlbS5uZXRQcmljZSA/PyAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBuZXRQcmljZTtcbiAgfVxuXG4gIHByaXZhdGUgbWFwQXR0cmlidXRlc1RvKHRhcmdldDogc3RyaW5nLCBsaW5lSXRlbTogTGluZUl0ZW0pOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcbiAgICBjb25zdCByZXN1bHQ6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcbiAgICBjb25zdCBjb21wb25lbnQgPSB0aGlzLnJ1bnRpbWVTZXJ2aWNlLnJ1bnRpbWVNb2RlbD8uY29tcG9uZW50cy5nZXQobGluZUl0ZW0udHlwZSk7XG5cbiAgICBpZiAoIWNvbXBvbmVudCkge1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBjb25zdCBwcm9wZXJ0eU5hbWUgPSAnbWFwVG8nICsgdGFyZ2V0O1xuICAgIGNvbXBvbmVudC5hdHRyaWJ1dGVzXG4gICAgICAuZmlsdGVyKGEgPT4gYS5wcm9wZXJ0aWVzICYmIGEucHJvcGVydGllc1twcm9wZXJ0eU5hbWVdKVxuICAgICAgLmZvckVhY2gobWFwcGluZyA9PiB7XG4gICAgICAgIGNvbnN0IGF0dHJpYnV0ZSA9IGxpbmVJdGVtLmF0dHJpYnV0ZXMuZmluZChhID0+IGEubmFtZSA9PT0gbWFwcGluZy5uYW1lKTtcblxuICAgICAgICBpZiAoYXR0cmlidXRlKSB7XG4gICAgICAgICAgbmV3IFNldChtYXBwaW5nLnByb3BlcnRpZXNbcHJvcGVydHlOYW1lXS5zcGxpdCgnLCcpKS5mb3JFYWNoKGsgPT4gKHJlc3VsdFtrXSA9IGF0dHJpYnV0ZS52YWx1ZSkpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcml2YXRlIGdldE9wdGlvbkNvbmZpZ3VyYXRpb25zKHByb2R1Y3Q6IFJwY1Byb2R1Y3QpOiBSZWNvcmQ8c3RyaW5nLCBScGNPcHRpb25Db25maWd1cmF0aW9uW10+IHtcbiAgICBjb25zdCBvcHRpb25Db25maWd1cmF0aW9uczogUmVjb3JkPHN0cmluZywgUnBjT3B0aW9uQ29uZmlndXJhdGlvbltdPiA9IHt9O1xuICAgIGNvbnN0IHJlcXVlc3RPcHRpb25Db25maWd1cmF0aW9ucyA9IHByb2R1Y3Qub3B0aW9uQ29uZmlndXJhdGlvbnMgPz8ge307XG5cbiAgICBPYmplY3Qua2V5cyhyZXF1ZXN0T3B0aW9uQ29uZmlndXJhdGlvbnMpLmZvckVhY2goayA9PiB7XG4gICAgICBvcHRpb25Db25maWd1cmF0aW9uc1trXSA9IChyZXF1ZXN0T3B0aW9uQ29uZmlndXJhdGlvbnNba10gPz8gW10pLm1hcChvcHQgPT4ge1xuICAgICAgICByZXR1cm4geyAuLi5vcHQsIHNlbGVjdGVkOiBmYWxzZSB9O1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gb3B0aW9uQ29uZmlndXJhdGlvbnM7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJzdGF0ZSQgfCBhc3luYyBhcyBzdGF0ZVwiPlxuICA8dmwtbG9hZGVyICpuZ0lmPVwic3RhdGUubG9hZGluZzsgZWxzZSBjb250ZW50XCIgW2xhYmVsXT1cIidMb2FkaW5nIFVJJ1wiPjwvdmwtbG9hZGVyPlxuXG4gIDxuZy10ZW1wbGF0ZSAjY29udGVudD5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXN0YXRlLmZhaWx1cmVcIj5cbiAgICAgIDx2bC1jbXMtcHJldmlldyBbdWlEZWZpbml0aW9uXT1cInVpRGVmaW5pdGlvblwiPjwvdmwtY21zLXByZXZpZXc+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctdGVtcGxhdGU+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
@@ -37,7 +37,7 @@ export class QuoteResolver {
37
37
  if (this.accountHasNotAssets()) {
38
38
  this.changeNavigation('/empty', route);
39
39
  }
40
- else if (!this.quoteDraftService.isInitialized && this.quoteDraftService.hasAssets) {
40
+ else if (!this.quoteDraftService.isInitialized && this.quoteDraftService.hasProducts) {
41
41
  this.changeNavigation('/cart', route);
42
42
  }
43
43
  }
@@ -63,7 +63,7 @@ export class QuoteResolver {
63
63
  accountHasNotAssets() {
64
64
  var _a;
65
65
  return (((_a = this.quoteDraftService.quoteDraft) === null || _a === void 0 ? void 0 : _a.context.properties.mode) === ConfigurationContextMode.ACCOUNT &&
66
- !this.quoteDraftService.hasAssets);
66
+ !this.quoteDraftService.hasProducts);
67
67
  }
68
68
  }
69
69
  QuoteResolver.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: QuoteResolver, deps: [{ token: i1.Router }, { token: i2.QuoteDraftService }, { token: i3.FlowRouterService }, { token: i2.ContextService }, { token: i2.FlowConfigurationService }], target: i0.ɵɵFactoryTarget.Injectable });
@@ -71,4 +71,4 @@ QuoteResolver.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", versio
71
71
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: QuoteResolver, decorators: [{
72
72
  type: Injectable
73
73
  }], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.QuoteDraftService }, { type: i3.FlowRouterService }, { type: i2.ContextService }, { type: i2.FlowConfigurationService }]; } });
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVvdGUucmVzb2x2ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9zcmMvcmVzb2x2ZXJzL3F1b3RlLnJlc29sdmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLHdCQUF3QixFQUFtQixNQUFNLGtCQUFrQixDQUFDO0FBRTdFLE9BQU8sRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFjLEVBQUUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7OztBQUl4RSxNQUFNLE9BQU8sYUFBYTtJQUN4QixZQUNVLE1BQWMsRUFDZCxpQkFBb0MsRUFDcEMsYUFBZ0MsRUFDaEMsY0FBOEIsRUFDOUIsaUJBQTJDO1FBSjNDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLGtCQUFhLEdBQWIsYUFBYSxDQUFtQjtRQUNoQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUEwQjtJQUNsRCxDQUFDO0lBRUksV0FBVyxDQUFDLEtBQTZCLEVBQUUsT0FBZTtRQUNoRSxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1RCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFFTyxVQUFVO1FBQ2hCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FB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QkFBaUIsQ0FBQyxVQUFVLDBDQUFFLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxNQUFLLHdCQUF3QixDQUFDLE9BQU87WUFDL0YsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUNsQyxDQUFDO0lBQ0osQ0FBQzs7MkdBMUVVLGFBQWE7K0dBQWIsYUFBYTs0RkFBYixhQUFhO2tCQUR6QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBSZXNvbHZlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQ29uZmlndXJhdGlvbkNvbnRleHRNb2RlLCBGbG93Um91dGVQYXJhbXMgfSBmcm9tICdAdmVsb2NlYXBwcy9jb3JlJztcbmltcG9ydCB7IENvbnRleHRTZXJ2aWNlLCBGbG93Q29uZmlndXJhdGlvblNlcnZpY2UsIFF1b3RlRHJhZnRTZXJ2aWNlIH0gZnJvbSAnQHZlbG9jZWFwcHMvc2RrL2NvcmUnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZnJvbSwgT2JzZXJ2YWJsZSwgb2YsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGbG93Um91dGVyU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2Zsb3ctcm91dGVyLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUXVvdGVSZXNvbHZlciBpbXBsZW1lbnRzIFJlc29sdmU8dm9pZCB8IGJvb2xlYW4+IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHF1b3RlRHJhZnRTZXJ2aWNlOiBRdW90ZURyYWZ0U2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlclNlcnZpY2U6IEZsb3dSb3V0ZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29udGV4dFNlcnZpY2U6IENvbnRleHRTZXJ2aWNlLFxuICAgIHByaXZhdGUgZmxvd0NvbmZpZ3VyYXRpb246IEZsb3dDb25maWd1cmF0aW9uU2VydmljZSxcbiAgKSB7fVxuXG4gIHByaXZhdGUgaGFuZGxlRXJyb3Iocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIG1lc3NhZ2U6IHN0cmluZyk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IHBhcmVudFVybCA9IHRoaXMucm91dGVyU2VydmljZS5nZXRGbG93Um9vdFBhdGgocm91dGUpO1xuICAgIHJldHVybiBmcm9tKHRoaXMucm91dGVyLm5hdmlnYXRlKFtwYXJlbnRVcmwsICc0MDQnXSwgeyBzdGF0ZTogeyBtZXNzYWdlIH0gfSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBjYWxjdWxhdGUkKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIGNvbnN0IHF1b3RlRHJhZnQgPSB0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLnF1b3RlRHJhZnQ7XG5cbiAgICBpZiAoIXRoaXMucXVvdGVEcmFmdFNlcnZpY2UuaXNTdGFuZGFsb25lICYmIHF1b3RlRHJhZnQgJiYgIXRoaXMuYWNjb3VudEhhc05vdEFzc2V0cygpKSB7XG4gICAgICByZXR1cm4gdGhpcy5mbG93Q29uZmlndXJhdGlvbi5jYWxjdWxhdGUkKHF1b3RlRHJhZnQpO1xuICAgIH1cblxuICAgIHJldHVybiBvZih1bmRlZmluZWQpO1xuICB9XG5cbiAgcHVibGljIHJlc29sdmUocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpOiBPYnNlcnZhYmxlPHZvaWQgfCBib29sZWFuPiB7XG4gICAgY29uc3QgeyBoZWFkZXJJZCB9ID0gdGhpcy5jb250ZXh0U2VydmljZS5yZXNvbHZlKCk7XG4gICAgY29uc3QgcXVvdGUgPSB0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLnF1b3RlRHJhZnQ7XG5cbiAgICBpZiAocXVvdGUgJiYgcXVvdGUucXVvdGVJZCA9PT0gaGVhZGVySWQpIHtcbiAgICAgIHJldHVybiBvZih0cnVlKTtcbiAgICB9XG5cbiAgICBjb25zdCBxdWVyeVBhcmFtcyA9IHJvdXRlLnF1ZXJ5UGFyYW1zIGFzIEZsb3dSb3V0ZVBhcmFtcztcblxuICAgIHJldHVybiB0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLmluaXQoaGVhZGVySWQsIHF1ZXJ5UGFyYW1zKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuY2FsY3VsYXRlJCgpKSxcbiAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5xdW90ZURyYWZ0U2VydmljZS5pc1N0YW5kYWxvbmUgJiYgcXVlcnlQYXJhbXMuc3VwcHJlc3NJbml0aWFsTmF2aWdhdGlvbiAhPT0gJ3RydWUnKSB7XG4gICAgICAgICAgaWYgKHRoaXMuYWNjb3VudEhhc05vdEFzc2V0cygpKSB7XG4gICAgICAgICAgICB0aGlzLmNoYW5nZU5hdmlnYXRpb24oJy9lbXB0eScsIHJvdXRlKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKCF0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLmlzSW5pdGlhbGl6ZWQgJiYgdGhpcy5xdW90ZURyYWZ0U2VydmljZS5oYXNBc3NldHMpIHtcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlTmF2aWdhdGlvbignL2NhcnQnLCByb3V0ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5xdW90ZURyYWZ0U2VydmljZS5pc0luaXRpYWxpemVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5xdW90ZURyYWZ0U2VydmljZS5oYXNVbnNhdmVkQ2hhbmdlcyA9IGZhbHNlO1xuICAgICAgfSksXG4gICAgICBjYXRjaEVycm9yKGUgPT4ge1xuICAgICAgICBjb25zdCBtZXNzYWdlID0gZSBpbnN0YW5jZW9mIEh0dHBFcnJvclJlc3BvbnNlID8gZS5lcnJvci5tZXNzYWdlIDogZTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlRXJyb3Iocm91dGUsIG1lc3NhZ2UpO1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgY2hhbmdlTmF2aWdhdGlvbihwYXRoOiBzdHJpbmcsIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KTogdm9pZCB7XG4gICAgY29uc3QgcGFyZW50VXJsID0gdGhpcy5yb3V0ZXJTZXJ2aWNlLmdldEZsb3dSb290UGF0aChyb3V0ZSk7XG5cbiAgICB0aGlzLnJvdXRlclxuICAgICAgLm5hdmlnYXRlKFtwYXJlbnRVcmwgKyBwYXRoXSwge1xuICAgICAgICBxdWVyeVBhcmFtczogcm91dGUucXVlcnlQYXJhbXMsXG4gICAgICAgIHJlcGxhY2VVcmw6IHRydWUsXG4gICAgICB9KVxuICAgICAgLmNhdGNoKGUgPT4ge1xuICAgICAgICBjb25zdCBtZXNzYWdlID0gZSBpbnN0YW5jZW9mIEh0dHBFcnJvclJlc3BvbnNlID8gZS5lcnJvci5tZXNzYWdlIDogZTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlRXJyb3Iocm91dGUsIG1lc3NhZ2UpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFjY291bnRIYXNOb3RBc3NldHMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMucXVvdGVEcmFmdFNlcnZpY2UucXVvdGVEcmFmdD8uY29udGV4dC5wcm9wZXJ0aWVzLm1vZGUgPT09IENvbmZpZ3VyYXRpb25Db250ZXh0TW9kZS5BQ0NPVU5UICYmXG4gICAgICAhdGhpcy5xdW90ZURyYWZ0U2VydmljZS5oYXNBc3NldHNcbiAgICApO1xuICB9XG59XG4iXX0=
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVvdGUucmVzb2x2ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9zcmMvcmVzb2x2ZXJzL3F1b3RlLnJlc29sdmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLHdCQUF3QixFQUFtQixNQUFNLGtCQUFrQixDQUFDO0FBRTdFLE9BQU8sRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFjLEVBQUUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7OztBQUl4RSxNQUFNLE9BQU8sYUFBYTtJQUN4QixZQUNVLE1BQWMsRUFDZCxpQkFBb0MsRUFDcEMsYUFBZ0MsRUFDaEMsY0FBOEIsRUFDOUIsaUJBQTJDO1FBSjNDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLGtCQUFhLEdBQWIsYUFBYSxDQUFtQjtRQUNoQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUEwQjtJQUNsRCxDQUFDO0lBRUksV0FBVyxDQUFDLEtBQTZCLEVBQUUsT0FBZTtRQUNoRSxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1RCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFFTyxVQUFVO1FBQ2hCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FB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QkFBaUIsQ0FBQyxVQUFVLDBDQUFFLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxNQUFLLHdCQUF3QixDQUFDLE9BQU87WUFDL0YsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUNwQyxDQUFDO0lBQ0osQ0FBQzs7MkdBMUVVLGFBQWE7K0dBQWIsYUFBYTs0RkFBYixhQUFhO2tCQUR6QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBSZXNvbHZlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQ29uZmlndXJhdGlvbkNvbnRleHRNb2RlLCBGbG93Um91dGVQYXJhbXMgfSBmcm9tICdAdmVsb2NlYXBwcy9jb3JlJztcbmltcG9ydCB7IENvbnRleHRTZXJ2aWNlLCBGbG93Q29uZmlndXJhdGlvblNlcnZpY2UsIFF1b3RlRHJhZnRTZXJ2aWNlIH0gZnJvbSAnQHZlbG9jZWFwcHMvc2RrL2NvcmUnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZnJvbSwgT2JzZXJ2YWJsZSwgb2YsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGbG93Um91dGVyU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2Zsb3ctcm91dGVyLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUXVvdGVSZXNvbHZlciBpbXBsZW1lbnRzIFJlc29sdmU8dm9pZCB8IGJvb2xlYW4+IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHF1b3RlRHJhZnRTZXJ2aWNlOiBRdW90ZURyYWZ0U2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlclNlcnZpY2U6IEZsb3dSb3V0ZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29udGV4dFNlcnZpY2U6IENvbnRleHRTZXJ2aWNlLFxuICAgIHByaXZhdGUgZmxvd0NvbmZpZ3VyYXRpb246IEZsb3dDb25maWd1cmF0aW9uU2VydmljZSxcbiAgKSB7fVxuXG4gIHByaXZhdGUgaGFuZGxlRXJyb3Iocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIG1lc3NhZ2U6IHN0cmluZyk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IHBhcmVudFVybCA9IHRoaXMucm91dGVyU2VydmljZS5nZXRGbG93Um9vdFBhdGgocm91dGUpO1xuICAgIHJldHVybiBmcm9tKHRoaXMucm91dGVyLm5hdmlnYXRlKFtwYXJlbnRVcmwsICc0MDQnXSwgeyBzdGF0ZTogeyBtZXNzYWdlIH0gfSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBjYWxjdWxhdGUkKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIGNvbnN0IHF1b3RlRHJhZnQgPSB0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLnF1b3RlRHJhZnQ7XG5cbiAgICBpZiAoIXRoaXMucXVvdGVEcmFmdFNlcnZpY2UuaXNTdGFuZGFsb25lICYmIHF1b3RlRHJhZnQgJiYgIXRoaXMuYWNjb3VudEhhc05vdEFzc2V0cygpKSB7XG4gICAgICByZXR1cm4gdGhpcy5mbG93Q29uZmlndXJhdGlvbi5jYWxjdWxhdGUkKHF1b3RlRHJhZnQpO1xuICAgIH1cblxuICAgIHJldHVybiBvZih1bmRlZmluZWQpO1xuICB9XG5cbiAgcHVibGljIHJlc29sdmUocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpOiBPYnNlcnZhYmxlPHZvaWQgfCBib29sZWFuPiB7XG4gICAgY29uc3QgeyBoZWFkZXJJZCB9ID0gdGhpcy5jb250ZXh0U2VydmljZS5yZXNvbHZlKCk7XG4gICAgY29uc3QgcXVvdGUgPSB0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLnF1b3RlRHJhZnQ7XG5cbiAgICBpZiAocXVvdGUgJiYgcXVvdGUucXVvdGVJZCA9PT0gaGVhZGVySWQpIHtcbiAgICAgIHJldHVybiBvZih0cnVlKTtcbiAgICB9XG5cbiAgICBjb25zdCBxdWVyeVBhcmFtcyA9IHJvdXRlLnF1ZXJ5UGFyYW1zIGFzIEZsb3dSb3V0ZVBhcmFtcztcblxuICAgIHJldHVybiB0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLmluaXQoaGVhZGVySWQsIHF1ZXJ5UGFyYW1zKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuY2FsY3VsYXRlJCgpKSxcbiAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5xdW90ZURyYWZ0U2VydmljZS5pc1N0YW5kYWxvbmUgJiYgcXVlcnlQYXJhbXMuc3VwcHJlc3NJbml0aWFsTmF2aWdhdGlvbiAhPT0gJ3RydWUnKSB7XG4gICAgICAgICAgaWYgKHRoaXMuYWNjb3VudEhhc05vdEFzc2V0cygpKSB7XG4gICAgICAgICAgICB0aGlzLmNoYW5nZU5hdmlnYXRpb24oJy9lbXB0eScsIHJvdXRlKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKCF0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLmlzSW5pdGlhbGl6ZWQgJiYgdGhpcy5xdW90ZURyYWZ0U2VydmljZS5oYXNQcm9kdWN0cykge1xuICAgICAgICAgICAgdGhpcy5jaGFuZ2VOYXZpZ2F0aW9uKCcvY2FydCcsIHJvdXRlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLmlzSW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLmhhc1Vuc2F2ZWRDaGFuZ2VzID0gZmFsc2U7XG4gICAgICB9KSxcbiAgICAgIGNhdGNoRXJyb3IoZSA9PiB7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBlIGluc3RhbmNlb2YgSHR0cEVycm9yUmVzcG9uc2UgPyBlLmVycm9yLm1lc3NhZ2UgOiBlO1xuICAgICAgICByZXR1cm4gdGhpcy5oYW5kbGVFcnJvcihyb3V0ZSwgbWVzc2FnZSk7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBjaGFuZ2VOYXZpZ2F0aW9uKHBhdGg6IHN0cmluZywgcm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpOiB2b2lkIHtcbiAgICBjb25zdCBwYXJlbnRVcmwgPSB0aGlzLnJvdXRlclNlcnZpY2UuZ2V0Rmxvd1Jvb3RQYXRoKHJvdXRlKTtcblxuICAgIHRoaXMucm91dGVyXG4gICAgICAubmF2aWdhdGUoW3BhcmVudFVybCArIHBhdGhdLCB7XG4gICAgICAgIHF1ZXJ5UGFyYW1zOiByb3V0ZS5xdWVyeVBhcmFtcyxcbiAgICAgICAgcmVwbGFjZVVybDogdHJ1ZSxcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goZSA9PiB7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBlIGluc3RhbmNlb2YgSHR0cEVycm9yUmVzcG9uc2UgPyBlLmVycm9yLm1lc3NhZ2UgOiBlO1xuICAgICAgICByZXR1cm4gdGhpcy5oYW5kbGVFcnJvcihyb3V0ZSwgbWVzc2FnZSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYWNjb3VudEhhc05vdEFzc2V0cygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5xdW90ZURyYWZ0U2VydmljZS5xdW90ZURyYWZ0Py5jb250ZXh0LnByb3BlcnRpZXMubW9kZSA9PT0gQ29uZmlndXJhdGlvbkNvbnRleHRNb2RlLkFDQ09VTlQgJiZcbiAgICAgICF0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLmhhc1Byb2R1Y3RzXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -135,7 +135,6 @@ class ConfigurationRuntimeService {
135
135
  reset() {
136
136
  this._isInitialized = false;
137
137
  this._runtimeContext = undefined;
138
- this._assets = undefined;
139
138
  this.initializationProps = undefined;
140
139
  this.uiDefinitionProperties = {};
141
140
  }
@@ -161,7 +160,6 @@ class ConfigurationRuntimeService {
161
160
  }
162
161
  init(props) {
163
162
  this.initializationProps = props;
164
- this._assets = props.assets;
165
163
  const context = this.contextService.resolve();
166
164
  return this.runtimeContextService.getRuntimeContext(props.productId, props.offeringId).pipe(tap(runtimeContext => {
167
165
  var _a, _b, _c, _d;
@@ -187,9 +185,6 @@ class ConfigurationRuntimeService {
187
185
  source[propertyName] = SalesforceIdUtils.generateId18FromId15(value);
188
186
  }
189
187
  }
190
- getAsset(lineItem) {
191
- return this._assets && this._assets.find(a => a.id === lineItem.openOrderLineItemId || a.id === lineItem.assetId);
192
- }
193
188
  get isInitialized() {
194
189
  return this._isInitialized;
195
190
  }
@@ -387,10 +382,10 @@ class QuoteDraftService {
387
382
  this.initialCurrentState = (_b = (_a = this.quoteDraft) === null || _a === void 0 ? void 0 : _a.currentState) !== null && _b !== void 0 ? _b : [];
388
383
  }
389
384
  }
390
- get hasAssets$() {
391
- return this.quoteSubj$.pipe(map(() => this.hasAssets));
385
+ get hasProducts$() {
386
+ return this.quoteSubj$.pipe(map(() => this.hasProducts));
392
387
  }
393
- get hasAssets() {
388
+ get hasProducts() {
394
389
  const quoteDraft = this.quoteSubj$.value;
395
390
  return Boolean(quoteDraft && quoteDraft.currentState.length > 0);
396
391
  }
@@ -569,7 +564,6 @@ class ConfigurationService {
569
564
  this.messageService = messageService;
570
565
  this.dialogService = dialogService;
571
566
  this.mode = ConfigurationMode.SEARCH;
572
- this.states = {};
573
567
  this.lineItem = new BehaviorSubject(undefined);
574
568
  this.charges = new BehaviorSubject({});
575
569
  this.pricePlans = new BehaviorSubject({});
@@ -578,7 +572,7 @@ class ConfigurationService {
578
572
  reset() {
579
573
  this.hasUnsavedChanges = false;
580
574
  this.runtimeService.reset();
581
- this.states = {};
575
+ this.configurableRamp = undefined;
582
576
  this.lineItem.next(undefined);
583
577
  this.charges.next({});
584
578
  this.pricePlans.next({});
@@ -587,10 +581,7 @@ class ConfigurationService {
587
581
  if (!this.lineItem.value) {
588
582
  return throwError(() => new Error(`Source LineItem not found`));
589
583
  }
590
- this.states.configurableRamp = new LineItemWorker(this.lineItem.value).replace(lineItem).li;
591
- this.states.asset = this.states.configurableRamp
592
- ? this.runtimeService.getAsset(this.states.configurableRamp)
593
- : undefined;
584
+ this.configurableRamp = new LineItemWorker(this.lineItem.value).replace(lineItem).li;
594
585
  return this.configure().pipe(catchError(error => {
595
586
  console.error(error);
596
587
  if (!this.runtimeService.uiDefinitionProperties.suppressToastMessages) {
@@ -608,8 +599,8 @@ class ConfigurationService {
608
599
  patch(lineItem) {
609
600
  this.patch$(lineItem).subscribe();
610
601
  }
611
- updateCurrentStates(update) {
612
- this.states = Object.assign(Object.assign({}, this.states), update);
602
+ setConfigurableRamp(lineItem) {
603
+ this.configurableRamp = lineItem;
613
604
  }
614
605
  get() {
615
606
  return this.lineItem.asObservable().pipe(shareReplay$1());
@@ -650,7 +641,7 @@ class ConfigurationService {
650
641
  }
651
642
  const uiDefinitionProperties = Object.assign(Object.assign({}, ((_b = (_a = runtimeContext.uiDefinition) === null || _a === void 0 ? void 0 : _a.properties) !== null && _b !== void 0 ? _b : {})), ((_c = this.runtimeService.uiDefinitionProperties) !== null && _c !== void 0 ? _c : {}));
652
643
  const qty = (_d = this.runtimeService.initializationProps) === null || _d === void 0 ? void 0 : _d.defaultQty;
653
- const lineItem = (_e = this.states.configurableRamp) !== null && _e !== void 0 ? _e : getDefaultLineItem(runtimeContext, uiDefinitionProperties, qty);
644
+ const lineItem = (_e = this.configurableRamp) !== null && _e !== void 0 ? _e : getDefaultLineItem(runtimeContext, uiDefinitionProperties, qty);
654
645
  const configurationRequest = this.createRequest(lineItem);
655
646
  const mainPricingEnabled = (_f = runtimeContext.properties) === null || _f === void 0 ? void 0 : _f.PricingEnabled;
656
647
  const pricingEnabled = mainPricingEnabled ? mainPricingEnabled === 'true' : uiDefinitionProperties.pricingEnabled;
@@ -668,23 +659,21 @@ class ConfigurationService {
668
659
  .pipe(tap(lineItem => lineItem && this.lineItem.next(lineItem)), catchError(error => throwError(() => { var _a; return new Error(((_a = error.error) === null || _a === void 0 ? void 0 : _a.message) || error.message || JSON.stringify(error)); })));
669
660
  }
670
661
  configureExternal$(productId, qty) {
671
- this.updateCurrentStates({
672
- currentState: this.quoteDraftService.currentState,
673
- });
674
662
  return this.runtimeService.init({ productId, defaultQty: qty }).pipe(switchMap(() => this.configure()), first(), catchError(error => {
675
663
  this.messageService.add({ severity: ToastType.error, summary: error });
676
664
  throw error;
677
665
  }), finalize(() => this.reset()));
678
666
  }
679
667
  createRequest(lineItem) {
668
+ var _a;
680
669
  return {
681
670
  lineItem,
682
671
  mode: this.mode,
683
672
  step: !this.lineItem.value ? RuntimeStep.START : RuntimeStep.UPDATE,
684
673
  attributeDomainMode: 'ALL',
685
674
  context: this.contextService.resolve(),
686
- lineItems: this.states.currentState || [],
687
- asset: this.states.asset,
675
+ lineItems: ((_a = this.quoteDraftService.quoteDraft) === null || _a === void 0 ? void 0 : _a.currentState) || [],
676
+ asset: this.getAsset(),
688
677
  };
689
678
  }
690
679
  showInactiveProductsConfirmation() {
@@ -712,6 +701,14 @@ class ConfigurationService {
712
701
  }
713
702
  });
714
703
  }
704
+ getAsset() {
705
+ var _a;
706
+ const lineItem = this.configurableRamp;
707
+ if (!lineItem) {
708
+ return;
709
+ }
710
+ return (_a = this.quoteDraftService.quoteDraft) === null || _a === void 0 ? void 0 : _a.initialState.find(a => a.id === lineItem.openOrderLineItemId || a.id === lineItem.assetId);
711
+ }
715
712
  }
716
713
  ConfigurationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ConfigurationService, deps: [{ token: QuoteDraftService }, { token: ConfigurationRuntimeService }, { token: ContextService }, { token: i1.ConfigurationApiService }, { token: i5.MessageService }, { token: i6.DialogService }], target: i0.ɵɵFactoryTarget.Injectable });
717
714
  ConfigurationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ConfigurationService });