@veloceapps/sdk 3.0.12 → 3.0.14

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.
@@ -95,9 +95,7 @@ export class ConfigurationService {
95
95
  return this.configurationApiService
96
96
  .configureLineItem({ configurationRequest, runtimeModel, pricingEnabled })
97
97
  .pipe(map(({ lineItem, context, charges, deletedLineItems }) => {
98
- if (context) {
99
- this.contextService.update({ properties: context.properties });
100
- }
98
+ this.contextService.update(context !== null && context !== void 0 ? context : {});
101
99
  this.charges.next(charges !== null && charges !== void 0 ? charges : {});
102
100
  if (deletedLineItems === null || deletedLineItems === void 0 ? void 0 : deletedLineItems.length) {
103
101
  this.showInactiveProductsConfirmation();
@@ -146,4 +144,4 @@ ConfigurationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0",
146
144
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: ConfigurationService, decorators: [{
147
145
  type: Injectable
148
146
  }], ctorParameters: function () { return [{ type: i1.ConfigurationRuntimeService }, { type: i2.ContextService }, { type: i3.ConfigurationApiService }, { type: i4.MessageService }, { type: i5.DialogService }]; } });
149
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvY21zL21vZHVsZXMvY29uZmlndXJhdGlvbi9zZXJ2aWNlcy9jb25maWd1cmF0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMzRCxPQUFPLEVBRUwsaUJBQWlCLEdBTWxCLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBK0IsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFJL0UsT0FBTyxFQUFFLGVBQWUsRUFBYyxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVFLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxZQUFZLENBQUM7Ozs7Ozs7QUFNaEQsTUFBTSxPQUFPLG9CQUFvQjtJQU8vQixZQUNVLGNBQTJDLEVBQzNDLGNBQThCLEVBQzlCLHVCQUFnRCxFQUNoRCxjQUE4QixFQUM5QixhQUE0QjtRQUo1QixtQkFBYyxHQUFkLGNBQWMsQ0FBNkI7UUFDM0MsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBeUI7UUFDaEQsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBWDlCLFNBQUksR0FBRyxpQkFBaUIsQ0FBQyxNQUFNLENBQUM7UUFDaEMsV0FBTSxHQUFnQixFQUFFLENBQUM7UUFFekIsYUFBUSxHQUFHLElBQUks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QyxDQUFDLENBQUM7YUFDL0Q7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7O2tIQXJLVSxvQkFBb0I7c0hBQXBCLG9CQUFvQjs0RkFBcEIsb0JBQW9CO2tCQURoQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29uZmlndXJhdGlvbkFwaVNlcnZpY2UgfSBmcm9tICdAdmVsb2NlL2FwaSc7XG5pbXBvcnQgeyBDb25maXJtYXRpb25Db21wb25lbnQgfSBmcm9tICdAdmVsb2NlL2NvbXBvbmVudHMnO1xuaW1wb3J0IHtcbiAgQ29uZmlndXJhdGlvbkNvbnRleHQsXG4gIENvbmZpZ3VyYXRpb25Nb2RlLFxuICBDb25maWd1cmF0aW9uUmVxdWVzdCxcbiAgTGluZUl0ZW0sXG4gIFByaWNlUGxhbkNoYXJnZSxcbiAgUnVudGltZU1vZGVsLFxuICBWbFdpbmRvdyxcbn0gZnJvbSAnQHZlbG9jZS9jb3JlJztcbmltcG9ydCB7IENvbnRleHRTZXJ2aWNlLCBRdW90ZVN0YXRlcywgUnVudGltZVN0ZXAgfSBmcm9tICdAdmVsb2NlL3Nkay9ydW50aW1lJztcbmltcG9ydCB7IERpY3Rpb25hcnkgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAncHJpbWVuZy9keW5hbWljZGlhbG9nJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgc2hhcmVSZXBsYXksIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTGluZUl0ZW1Xb3JrZXIgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9saW5lLWl0ZW0udHlwZXMnO1xuaW1wb3J0IHsgZ2V0RGVmYXVsdExpbmVJdGVtIH0gZnJvbSAnLi4vaGVscGVycyc7XG5pbXBvcnQgeyBSdW50aW1lQ29udGV4dCB9IGZyb20gJy4uL3R5cGVzL2NvbmZpZ3VyYXRpb24udHlwZXMnO1xuaW1wb3J0IHsgQ29uZmlndXJhdGlvblJ1bnRpbWVTZXJ2aWNlIH0gZnJvbSAnLi9jb25maWd1cmF0aW9uLXJ1bnRpbWUuc2VydmljZSc7XG5kZWNsYXJlIGNvbnN0IHdpbmRvdzogVmxXaW5kb3c7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDb25maWd1cmF0aW9uU2VydmljZSB7XG4gIHByaXZhdGUgbW9kZSA9IENvbmZpZ3VyYXRpb25Nb2RlLlNFQVJDSDtcbiAgcHJpdmF0ZSBzdGF0ZXM6IFF1b3RlU3RhdGVzID0ge307XG5cbiAgcHJpdmF0ZSBsaW5lSXRlbSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TGluZUl0ZW0gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHByaXZhdGUgY2hhcmdlcyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RGljdGlvbmFyeTxQcmljZVBsYW5DaGFyZ2U+Pih7fSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBydW50aW1lU2VydmljZTogQ29uZmlndXJhdGlvblJ1bnRpbWVTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29udGV4dFNlcnZpY2U6IENvbnRleHRTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29uZmlndXJhdGlvbkFwaVNlcnZpY2U6IENvbmZpZ3VyYXRpb25BcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSxcbiAgKSB7fVxuXG4gIHB1YmxpYyByZXNldCgpIHtcbiAgICB0aGlzLnJ1bnRpbWVTZXJ2aWNlLnJlc2V0KCk7XG5cbiAgICB0aGlzLnN0YXRlcyA9IHt9O1xuICAgIHRoaXMubGluZUl0ZW0ubmV4dCh1bmRlZmluZWQpO1xuICAgIHRoaXMuY2hhcmdlcy5uZXh0KHt9KTtcbiAgfVxuXG4gIHB1YmxpYyBwYXRjaCQobGluZUl0ZW06IExpbmVJdGVtKTogT2JzZXJ2YWJsZTxMaW5lSXRlbT4ge1xuICAgIGlmICghdGhpcy5saW5lSXRlbS52YWx1ZSkge1xuICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKGBTb3VyY2UgTGluZUl0ZW0gbm90IGZvdW5kYCkpO1xuICAgIH1cblxuICAgIHRoaXMuc3RhdGVzLmNvbmZpZ3VyYWJsZVJhbXAgPSBuZXcgTGluZUl0ZW1Xb3JrZXIodGhpcy5saW5lSXRlbS52YWx1ZSkucmVwbGFjZShsaW5lSXRlbSkubGk7XG4gICAgdGhpcy5zdGF0ZXMuYXNzZXQgPSB0aGlzLnN0YXRlcy5jb25maWd1cmFibGVSYW1wXG4gICAgICA/IHRoaXMucnVudGltZVNlcnZpY2UuZ2V0QXNzZXQodGhpcy5zdGF0ZXMuY29uZmlndXJhYmxlUmFtcClcbiAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgcmV0dXJuIHRoaXMuY29uZmlndXJlKCkucGlwZShcbiAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcblxuICAgICAgICBpZiAoIXRoaXMucnVudGltZVNlcnZpY2UudWlEZWZpbml0aW9uUHJvcGVydGllcy5zdXBwcmVzc1RvYXN0TWVzc2FnZXMpIHtcbiAgICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnZXJyb3InLCBzdW1tYXJ5OiBlcnJvciB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGJvdW5jZSBiYWNrIGlmIGNvbmZpZ3VyYXRpb24gY2FsbCBoYXMgZmFpbGVkXG4gICAgICAgIHRoaXMubGluZUl0ZW0ubmV4dCh0aGlzLmxpbmVJdGVtLnZhbHVlID8geyAuLi50aGlzLmxpbmVJdGVtLnZhbHVlIH0gOiB1bmRlZmluZWQpO1xuXG4gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IGVycm9yKTtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgcGF0Y2gobGluZUl0ZW06IExpbmVJdGVtKTogdm9pZCB7XG4gICAgdGhpcy5wYXRjaCQobGluZUl0ZW0pLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZUN1cnJlbnRTdGF0ZXModXBkYXRlOiBQYXJ0aWFsPFF1b3RlU3RhdGVzPikge1xuICAgIHRoaXMuc3RhdGVzID0ge1xuICAgICAgLi4udGhpcy5zdGF0ZXMsXG4gICAgICAuLi51cGRhdGUsXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQoKTogT2JzZXJ2YWJsZTxMaW5lSXRlbSB8IHVuZGVmaW5lZD4ge1xuICAgIHJldHVybiB0aGlzLmxpbmVJdGVtLmFzT2JzZXJ2YWJsZSgpLnBpcGUoc2hhcmVSZXBsYXkoKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0U25hcHNob3QoKTogTGluZUl0ZW0gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmxpbmVJdGVtLnZhbHVlID8geyAuLi50aGlzLmxpbmVJdGVtLnZhbHVlIH0gOiB1bmRlZmluZWQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0UnVudGltZU1vZGVsKCk6IFJ1bnRpbWVNb2RlbCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMucnVudGltZVNlcnZpY2UucnVudGltZU1vZGVsO1xuICB9XG5cbiAgcHVibGljIGdldFJ1bnRpbWVDb250ZXh0KCk6IFJ1bnRpbWVDb250ZXh0IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5ydW50aW1lU2VydmljZS5ydW50aW1lQ29udGV4dDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY29udGV4dFNuYXBzaG90KCk6IENvbmZpZ3VyYXRpb25Db250ZXh0IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuY29udGV4dFNlcnZpY2UucmVzb2x2ZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBjb250ZXh0JCgpOiBPYnNlcnZhYmxlPENvbmZpZ3VyYXRpb25Db250ZXh0IHwgbnVsbD4ge1xuICAgIHJldHVybiB0aGlzLmNvbnRleHRTZXJ2aWNlLnJlc29sdmUkKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNoYXJnZXMkKCk6IE9ic2VydmFibGU8RGljdGlvbmFyeTxQcmljZVBsYW5DaGFyZ2U+PiB7XG4gICAgcmV0dXJuIHRoaXMuY2hhcmdlcy5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY2hhcmdlc1NuYXBzaG90KCk6IERpY3Rpb25hcnk8UHJpY2VQbGFuQ2hhcmdlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2hhcmdlcy52YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBjb25maWd1cmUoKTogT2JzZXJ2YWJsZTxMaW5lSXRlbT4ge1xuICAgIGNvbnN0IHJ1bnRpbWVDb250ZXh0ID0gdGhpcy5nZXRSdW50aW1lQ29udGV4dCgpO1xuICAgIGNvbnN0IHJ1bnRpbWVNb2RlbCA9IHRoaXMuZ2V0UnVudGltZU1vZGVsKCk7XG4gICAgaWYgKCFydW50aW1lQ29udGV4dCB8fCAhcnVudGltZU1vZGVsKSB7XG4gICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IoJ1J1bnRpbWUgY29udGV4dC9tb2RlbCBub3QgaW5pdGlhbGl6ZWQnKSk7XG4gICAgfVxuXG4gICAgY29uc3QgdWlEZWZpbml0aW9uUHJvcGVydGllcyA9IHtcbiAgICAgIC4uLihydW50aW1lQ29udGV4dC51aURlZmluaXRpb24/LnByb3BlcnRpZXMgPz8ge30pLFxuICAgICAgLi4uKHRoaXMucnVudGltZVNlcnZpY2UudWlEZWZpbml0aW9uUHJvcGVydGllcyA/PyB7fSksXG4gICAgfTtcbiAgICBjb25zdCBsaW5lSXRlbSA9IHRoaXMuc3RhdGVzLmNvbmZpZ3VyYWJsZVJhbXAgPz8gZ2V0RGVmYXVsdExpbmVJdGVtKHJ1bnRpbWVDb250ZXh0LCB1aURlZmluaXRpb25Qcm9wZXJ0aWVzKTtcbiAgICBjb25zdCBjb25maWd1cmF0aW9uUmVxdWVzdCA9IHRoaXMuY3JlYXRlUmVxdWVzdChsaW5lSXRlbSk7XG4gICAgY29uZmlndXJhdGlvblJlcXVlc3QubGluZUl0ZW1zID0gdGhpcy5zdGF0ZXMuY3VycmVudFN0YXRlIHx8IFtdO1xuICAgIGNvbmZpZ3VyYXRpb25SZXF1ZXN0LmFzc2V0ID0gdGhpcy5zdGF0ZXMuYXNzZXQ7XG4gICAgY29uc3QgbWFpblByaWNpbmdFbmFibGVkID0gcnVudGltZUNvbnRleHQucHJvcGVydGllcz8uUHJpY2luZ0VuYWJsZWQ7XG4gICAgY29uc3QgcHJpY2luZ0VuYWJsZWQgPSBtYWluUHJpY2luZ0VuYWJsZWQgPyBtYWluUHJpY2luZ0VuYWJsZWQgPT09ICd0cnVlJyA6IHVpRGVmaW5pdGlvblByb3BlcnRpZXMucHJpY2luZ0VuYWJsZWQ7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlndXJhdGlvbkFwaVNlcnZpY2VcbiAgICAgIC5jb25maWd1cmVMaW5lSXRlbSh7IGNvbmZpZ3VyYXRpb25SZXF1ZXN0LCBydW50aW1lTW9kZWwsIHByaWNpbmdFbmFibGVkIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKCh7IGxpbmVJdGVtLCBjb250ZXh0LCBjaGFyZ2VzLCBkZWxldGVkTGluZUl0ZW1zIH0pID0+IHtcbiAgICAgICAgICBpZiAoY29udGV4dCkge1xuICAgICAgICAgICAgdGhpcy5jb250ZXh0U2VydmljZS51cGRhdGUoeyBwcm9wZXJ0aWVzOiBjb250ZXh0LnByb3BlcnRpZXMgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuY2hhcmdlcy5uZXh0KGNoYXJnZXMgPz8ge30pO1xuICAgICAgICAgIGlmIChkZWxldGVkTGluZUl0ZW1zPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuc2hvd0luYWN0aXZlUHJvZHVjdHNDb25maXJtYXRpb24oKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGxpbmVJdGVtO1xuICAgICAgICB9KSxcbiAgICAgIClcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAobGluZUl0ZW0gPT4gbGluZUl0ZW0gJiYgdGhpcy5saW5lSXRlbS5uZXh0KGxpbmVJdGVtKSksXG4gICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT5cbiAgICAgICAgICB0aHJvd0Vycm9yKCgpID0+IG5ldyBFcnJvcihlcnJvci5lcnJvcj8ubWVzc2FnZSB8fCBlcnJvci5tZXNzYWdlIHx8IEpTT04uc3RyaW5naWZ5KGVycm9yKSkpLFxuICAgICAgICApLFxuICAgICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlUmVxdWVzdChsaW5lSXRlbTogTGluZUl0ZW0pOiBDb25maWd1cmF0aW9uUmVxdWVzdCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxpbmVJdGVtLFxuICAgICAgbW9kZTogdGhpcy5tb2RlLFxuICAgICAgc3RlcDogIXRoaXMubGluZUl0ZW0udmFsdWUgPyBSdW50aW1lU3RlcC5TVEFSVCA6IFJ1bnRpbWVTdGVwLlVQREFURSxcbiAgICAgIGF0dHJpYnV0ZURvbWFpbk1vZGU6ICdBTEwnLFxuICAgICAgY29udGV4dDogdGhpcy5jb250ZXh0U2VydmljZS5yZXNvbHZlKCkgYXMgQ29uZmlndXJhdGlvbkNvbnRleHQsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgc2hvd0luYWN0aXZlUHJvZHVjdHNDb25maXJtYXRpb24oKSB7XG4gICAgdGhpcy5kaWFsb2dTZXJ2aWNlXG4gICAgICAub3BlbihDb25maXJtYXRpb25Db21wb25lbnQsIHtcbiAgICAgICAgZGlzbWlzc2FibGVNYXNrOiBmYWxzZSxcbiAgICAgICAgY2xvc2VPbkVzY2FwZTogZmFsc2UsXG4gICAgICAgIGNsb3NhYmxlOiBmYWxzZSxcbiAgICAgICAgc2hvd0hlYWRlcjogdHJ1ZSxcbiAgICAgICAgaGVhZGVyOiBgSW5hY3RpdmUgUHJvZHVjdHMgaW4gUXVvdGVgLFxuICAgICAgICB3aWR0aDogJzQ0MHB4JyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIGNvbmZpcm1hdGlvbkNvbmZpZzoge1xuICAgICAgICAgICAgdGl0bGU6ICcgJyxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnVGhpcyBxdW90ZSBjb250YWlucyBpbmFjdGl2ZSBwcm9kdWN0cy4gRG8geW91IHdhbnQgdG8gcmVtb3ZlIHRoZW0/JyxcbiAgICAgICAgICAgIHN1Ym1pdEJ0bjogJ1JlbW92ZSBwcm9kdWN0cycsXG4gICAgICAgICAgICBjYW5jZWxCdG46ICdCYWNrIHRvIFF1b3RlJyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICAgIC5vbkNsb3NlLnN1YnNjcmliZShyZXN1bHQgPT4ge1xuICAgICAgICBpZiAoIXJlc3VsdCkge1xuICAgICAgICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmNvbnRleHRTZXJ2aWNlLnJlc29sdmUoKTtcbiAgICAgICAgICB3aW5kb3dbJ1ZFTE9fQkFDS19GTiddLmFwcGx5KG51bGwsIFtjb250ZXh0Py5oZWFkZXJJZCB8fCAnJ10pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxufVxuIl19
147
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvY21zL21vZHVsZXMvY29uZmlndXJhdGlvbi9zZXJ2aWNlcy9jb25maWd1cmF0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMzRCxPQUFPLEVBRUwsaUJBQWlCLEdBTWxCLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBK0IsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFJL0UsT0FBTyxFQUFFLGVBQWUsRUFBYyxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVFLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxZQUFZLENBQUM7Ozs7Ozs7QUFNaEQsTUFBTSxPQUFPLG9CQUFvQjtJQU8vQixZQUNVLGNBQTJDLEVBQzNDLGNBQThCLEVBQzlCLHVCQUFnRCxFQUNoRCxjQUE4QixFQUM5QixhQUE0QjtRQUo1QixtQkFBYyxHQUFkLGNBQWMsQ0FBNkI7UUFDM0MsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBeUI7UUFDaEQsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBWDlCLFNBQUksR0FBRyxpQkFBaUIsQ0FBQyxNQUFNLENBQUM7UUFDaEMsV0FBTSxHQUFnQixFQUFFLENBQUM7UUFFekIsYUFBUSxHQUFHLElBQUks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QyxDQUFDLENBQUM7SUFDUCxDQUFDOztrSEFuS1Usb0JBQW9CO3NIQUFwQixvQkFBb0I7NEZBQXBCLG9CQUFvQjtrQkFEaEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25BcGlTZXJ2aWNlIH0gZnJvbSAnQHZlbG9jZS9hcGknO1xuaW1wb3J0IHsgQ29uZmlybWF0aW9uQ29tcG9uZW50IH0gZnJvbSAnQHZlbG9jZS9jb21wb25lbnRzJztcbmltcG9ydCB7XG4gIENvbmZpZ3VyYXRpb25Db250ZXh0LFxuICBDb25maWd1cmF0aW9uTW9kZSxcbiAgQ29uZmlndXJhdGlvblJlcXVlc3QsXG4gIExpbmVJdGVtLFxuICBQcmljZVBsYW5DaGFyZ2UsXG4gIFJ1bnRpbWVNb2RlbCxcbiAgVmxXaW5kb3csXG59IGZyb20gJ0B2ZWxvY2UvY29yZSc7XG5pbXBvcnQgeyBDb250ZXh0U2VydmljZSwgUXVvdGVTdGF0ZXMsIFJ1bnRpbWVTdGVwIH0gZnJvbSAnQHZlbG9jZS9zZGsvcnVudGltZSc7XG5pbXBvcnQgeyBEaWN0aW9uYXJ5IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAncHJpbWVuZy9hcGknO1xuaW1wb3J0IHsgRGlhbG9nU2VydmljZSB9IGZyb20gJ3ByaW1lbmcvZHluYW1pY2RpYWxvZyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIHNoYXJlUmVwbGF5LCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IExpbmVJdGVtV29ya2VyIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvbGluZS1pdGVtLnR5cGVzJztcbmltcG9ydCB7IGdldERlZmF1bHRMaW5lSXRlbSB9IGZyb20gJy4uL2hlbHBlcnMnO1xuaW1wb3J0IHsgUnVudGltZUNvbnRleHQgfSBmcm9tICcuLi90eXBlcy9jb25maWd1cmF0aW9uLnR5cGVzJztcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25SdW50aW1lU2VydmljZSB9IGZyb20gJy4vY29uZmlndXJhdGlvbi1ydW50aW1lLnNlcnZpY2UnO1xuZGVjbGFyZSBjb25zdCB3aW5kb3c6IFZsV2luZG93O1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ29uZmlndXJhdGlvblNlcnZpY2Uge1xuICBwcml2YXRlIG1vZGUgPSBDb25maWd1cmF0aW9uTW9kZS5TRUFSQ0g7XG4gIHByaXZhdGUgc3RhdGVzOiBRdW90ZVN0YXRlcyA9IHt9O1xuXG4gIHByaXZhdGUgbGluZUl0ZW0gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PExpbmVJdGVtIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICBwcml2YXRlIGNoYXJnZXMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PERpY3Rpb25hcnk8UHJpY2VQbGFuQ2hhcmdlPj4oe30pO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcnVudGltZVNlcnZpY2U6IENvbmZpZ3VyYXRpb25SdW50aW1lU2VydmljZSxcbiAgICBwcml2YXRlIGNvbnRleHRTZXJ2aWNlOiBDb250ZXh0U2VydmljZSxcbiAgICBwcml2YXRlIGNvbmZpZ3VyYXRpb25BcGlTZXJ2aWNlOiBDb25maWd1cmF0aW9uQXBpU2VydmljZSxcbiAgICBwcml2YXRlIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcbiAgICBwcml2YXRlIGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UsXG4gICkge31cblxuICBwdWJsaWMgcmVzZXQoKSB7XG4gICAgdGhpcy5ydW50aW1lU2VydmljZS5yZXNldCgpO1xuXG4gICAgdGhpcy5zdGF0ZXMgPSB7fTtcbiAgICB0aGlzLmxpbmVJdGVtLm5leHQodW5kZWZpbmVkKTtcbiAgICB0aGlzLmNoYXJnZXMubmV4dCh7fSk7XG4gIH1cblxuICBwdWJsaWMgcGF0Y2gkKGxpbmVJdGVtOiBMaW5lSXRlbSk6IE9ic2VydmFibGU8TGluZUl0ZW0+IHtcbiAgICBpZiAoIXRoaXMubGluZUl0ZW0udmFsdWUpIHtcbiAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IG5ldyBFcnJvcihgU291cmNlIExpbmVJdGVtIG5vdCBmb3VuZGApKTtcbiAgICB9XG5cbiAgICB0aGlzLnN0YXRlcy5jb25maWd1cmFibGVSYW1wID0gbmV3IExpbmVJdGVtV29ya2VyKHRoaXMubGluZUl0ZW0udmFsdWUpLnJlcGxhY2UobGluZUl0ZW0pLmxpO1xuICAgIHRoaXMuc3RhdGVzLmFzc2V0ID0gdGhpcy5zdGF0ZXMuY29uZmlndXJhYmxlUmFtcFxuICAgICAgPyB0aGlzLnJ1bnRpbWVTZXJ2aWNlLmdldEFzc2V0KHRoaXMuc3RhdGVzLmNvbmZpZ3VyYWJsZVJhbXApXG4gICAgICA6IHVuZGVmaW5lZDtcblxuICAgIHJldHVybiB0aGlzLmNvbmZpZ3VyZSgpLnBpcGUoXG4gICAgICBjYXRjaEVycm9yKGVycm9yID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG5cbiAgICAgICAgaWYgKCF0aGlzLnJ1bnRpbWVTZXJ2aWNlLnVpRGVmaW5pdGlvblByb3BlcnRpZXMuc3VwcHJlc3NUb2FzdE1lc3NhZ2VzKSB7XG4gICAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ2Vycm9yJywgc3VtbWFyeTogZXJyb3IgfSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBib3VuY2UgYmFjayBpZiBjb25maWd1cmF0aW9uIGNhbGwgaGFzIGZhaWxlZFxuICAgICAgICB0aGlzLmxpbmVJdGVtLm5leHQodGhpcy5saW5lSXRlbS52YWx1ZSA/IHsgLi4udGhpcy5saW5lSXRlbS52YWx1ZSB9IDogdW5kZWZpbmVkKTtcblxuICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBlcnJvcik7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHBhdGNoKGxpbmVJdGVtOiBMaW5lSXRlbSk6IHZvaWQge1xuICAgIHRoaXMucGF0Y2gkKGxpbmVJdGVtKS5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVDdXJyZW50U3RhdGVzKHVwZGF0ZTogUGFydGlhbDxRdW90ZVN0YXRlcz4pIHtcbiAgICB0aGlzLnN0YXRlcyA9IHtcbiAgICAgIC4uLnRoaXMuc3RhdGVzLFxuICAgICAgLi4udXBkYXRlLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgZ2V0KCk6IE9ic2VydmFibGU8TGluZUl0ZW0gfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gdGhpcy5saW5lSXRlbS5hc09ic2VydmFibGUoKS5waXBlKHNoYXJlUmVwbGF5KCkpO1xuICB9XG5cbiAgcHVibGljIGdldFNuYXBzaG90KCk6IExpbmVJdGVtIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5saW5lSXRlbS52YWx1ZSA/IHsgLi4udGhpcy5saW5lSXRlbS52YWx1ZSB9IDogdW5kZWZpbmVkO1xuICB9XG5cbiAgcHVibGljIGdldFJ1bnRpbWVNb2RlbCgpOiBSdW50aW1lTW9kZWwgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnJ1bnRpbWVTZXJ2aWNlLnJ1bnRpbWVNb2RlbDtcbiAgfVxuXG4gIHB1YmxpYyBnZXRSdW50aW1lQ29udGV4dCgpOiBSdW50aW1lQ29udGV4dCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMucnVudGltZVNlcnZpY2UucnVudGltZUNvbnRleHQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNvbnRleHRTbmFwc2hvdCgpOiBDb25maWd1cmF0aW9uQ29udGV4dCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmNvbnRleHRTZXJ2aWNlLnJlc29sdmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY29udGV4dCQoKTogT2JzZXJ2YWJsZTxDb25maWd1cmF0aW9uQ29udGV4dCB8IG51bGw+IHtcbiAgICByZXR1cm4gdGhpcy5jb250ZXh0U2VydmljZS5yZXNvbHZlJCgpO1xuICB9XG5cbiAgcHVibGljIGdldCBjaGFyZ2VzJCgpOiBPYnNlcnZhYmxlPERpY3Rpb25hcnk8UHJpY2VQbGFuQ2hhcmdlPj4ge1xuICAgIHJldHVybiB0aGlzLmNoYXJnZXMuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNoYXJnZXNTbmFwc2hvdCgpOiBEaWN0aW9uYXJ5PFByaWNlUGxhbkNoYXJnZT4ge1xuICAgIHJldHVybiB0aGlzLmNoYXJnZXMudmFsdWU7XG4gIH1cblxuICBwdWJsaWMgY29uZmlndXJlKCk6IE9ic2VydmFibGU8TGluZUl0ZW0+IHtcbiAgICBjb25zdCBydW50aW1lQ29udGV4dCA9IHRoaXMuZ2V0UnVudGltZUNvbnRleHQoKTtcbiAgICBjb25zdCBydW50aW1lTW9kZWwgPSB0aGlzLmdldFJ1bnRpbWVNb2RlbCgpO1xuICAgIGlmICghcnVudGltZUNvbnRleHQgfHwgIXJ1bnRpbWVNb2RlbCkge1xuICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKCdSdW50aW1lIGNvbnRleHQvbW9kZWwgbm90IGluaXRpYWxpemVkJykpO1xuICAgIH1cblxuICAgIGNvbnN0IHVpRGVmaW5pdGlvblByb3BlcnRpZXMgPSB7XG4gICAgICAuLi4ocnVudGltZUNvbnRleHQudWlEZWZpbml0aW9uPy5wcm9wZXJ0aWVzID8/IHt9KSxcbiAgICAgIC4uLih0aGlzLnJ1bnRpbWVTZXJ2aWNlLnVpRGVmaW5pdGlvblByb3BlcnRpZXMgPz8ge30pLFxuICAgIH07XG4gICAgY29uc3QgbGluZUl0ZW0gPSB0aGlzLnN0YXRlcy5jb25maWd1cmFibGVSYW1wID8/IGdldERlZmF1bHRMaW5lSXRlbShydW50aW1lQ29udGV4dCwgdWlEZWZpbml0aW9uUHJvcGVydGllcyk7XG4gICAgY29uc3QgY29uZmlndXJhdGlvblJlcXVlc3QgPSB0aGlzLmNyZWF0ZVJlcXVlc3QobGluZUl0ZW0pO1xuICAgIGNvbmZpZ3VyYXRpb25SZXF1ZXN0LmxpbmVJdGVtcyA9IHRoaXMuc3RhdGVzLmN1cnJlbnRTdGF0ZSB8fCBbXTtcbiAgICBjb25maWd1cmF0aW9uUmVxdWVzdC5hc3NldCA9IHRoaXMuc3RhdGVzLmFzc2V0O1xuICAgIGNvbnN0IG1haW5QcmljaW5nRW5hYmxlZCA9IHJ1bnRpbWVDb250ZXh0LnByb3BlcnRpZXM/LlByaWNpbmdFbmFibGVkO1xuICAgIGNvbnN0IHByaWNpbmdFbmFibGVkID0gbWFpblByaWNpbmdFbmFibGVkID8gbWFpblByaWNpbmdFbmFibGVkID09PSAndHJ1ZScgOiB1aURlZmluaXRpb25Qcm9wZXJ0aWVzLnByaWNpbmdFbmFibGVkO1xuICAgIHJldHVybiB0aGlzLmNvbmZpZ3VyYXRpb25BcGlTZXJ2aWNlXG4gICAgICAuY29uZmlndXJlTGluZUl0ZW0oeyBjb25maWd1cmF0aW9uUmVxdWVzdCwgcnVudGltZU1vZGVsLCBwcmljaW5nRW5hYmxlZCB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoeyBsaW5lSXRlbSwgY29udGV4dCwgY2hhcmdlcywgZGVsZXRlZExpbmVJdGVtcyB9KSA9PiB7XG4gICAgICAgICAgdGhpcy5jb250ZXh0U2VydmljZS51cGRhdGUoY29udGV4dCA/PyB7fSk7XG4gICAgICAgICAgdGhpcy5jaGFyZ2VzLm5leHQoY2hhcmdlcyA/PyB7fSk7XG4gICAgICAgICAgaWYgKGRlbGV0ZWRMaW5lSXRlbXM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5zaG93SW5hY3RpdmVQcm9kdWN0c0NvbmZpcm1hdGlvbigpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gbGluZUl0ZW07XG4gICAgICAgIH0pLFxuICAgICAgKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcChsaW5lSXRlbSA9PiBsaW5lSXRlbSAmJiB0aGlzLmxpbmVJdGVtLm5leHQobGluZUl0ZW0pKSxcbiAgICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PlxuICAgICAgICAgIHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKGVycm9yLmVycm9yPy5tZXNzYWdlIHx8IGVycm9yLm1lc3NhZ2UgfHwgSlNPTi5zdHJpbmdpZnkoZXJyb3IpKSksXG4gICAgICAgICksXG4gICAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVSZXF1ZXN0KGxpbmVJdGVtOiBMaW5lSXRlbSk6IENvbmZpZ3VyYXRpb25SZXF1ZXN0IHtcbiAgICByZXR1cm4ge1xuICAgICAgbGluZUl0ZW0sXG4gICAgICBtb2RlOiB0aGlzLm1vZGUsXG4gICAgICBzdGVwOiAhdGhpcy5saW5lSXRlbS52YWx1ZSA/IFJ1bnRpbWVTdGVwLlNUQVJUIDogUnVudGltZVN0ZXAuVVBEQVRFLFxuICAgICAgYXR0cmlidXRlRG9tYWluTW9kZTogJ0FMTCcsXG4gICAgICBjb250ZXh0OiB0aGlzLmNvbnRleHRTZXJ2aWNlLnJlc29sdmUoKSBhcyBDb25maWd1cmF0aW9uQ29udGV4dCxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBzaG93SW5hY3RpdmVQcm9kdWN0c0NvbmZpcm1hdGlvbigpIHtcbiAgICB0aGlzLmRpYWxvZ1NlcnZpY2VcbiAgICAgIC5vcGVuKENvbmZpcm1hdGlvbkNvbXBvbmVudCwge1xuICAgICAgICBkaXNtaXNzYWJsZU1hc2s6IGZhbHNlLFxuICAgICAgICBjbG9zZU9uRXNjYXBlOiBmYWxzZSxcbiAgICAgICAgY2xvc2FibGU6IGZhbHNlLFxuICAgICAgICBzaG93SGVhZGVyOiB0cnVlLFxuICAgICAgICBoZWFkZXI6IGBJbmFjdGl2ZSBQcm9kdWN0cyBpbiBRdW90ZWAsXG4gICAgICAgIHdpZHRoOiAnNDQwcHgnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgY29uZmlybWF0aW9uQ29uZmlnOiB7XG4gICAgICAgICAgICB0aXRsZTogJyAnLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246ICdUaGlzIHF1b3RlIGNvbnRhaW5zIGluYWN0aXZlIHByb2R1Y3RzLiBEbyB5b3Ugd2FudCB0byByZW1vdmUgdGhlbT8nLFxuICAgICAgICAgICAgc3VibWl0QnRuOiAnUmVtb3ZlIHByb2R1Y3RzJyxcbiAgICAgICAgICAgIGNhbmNlbEJ0bjogJ0JhY2sgdG8gUXVvdGUnLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9KVxuICAgICAgLm9uQ2xvc2Uuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICAgIGlmICghcmVzdWx0KSB7XG4gICAgICAgICAgY29uc3QgY29udGV4dCA9IHRoaXMuY29udGV4dFNlcnZpY2UucmVzb2x2ZSgpO1xuICAgICAgICAgIHdpbmRvd1snVkVMT19CQUNLX0ZOJ10uYXBwbHkobnVsbCwgW2NvbnRleHQ/LmhlYWRlcklkIHx8ICcnXSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -113,7 +113,7 @@ export class HeaderCartOverlayComponent {
113
113
  }
114
114
  }
115
115
  HeaderCartOverlayComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: HeaderCartOverlayComponent, deps: [{ token: i1.BaseHttpService }, { token: i2.FlowConfigurationService }, { token: i3.FlowRouterService }], target: i0.ɵɵFactoryTarget.Component });
116
- HeaderCartOverlayComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: HeaderCartOverlayComponent, selector: "vl-header-cart-overlay", inputs: { products: "products" }, viewQueries: [{ propertyName: "overlayPanel", first: true, predicate: OverlayPanel, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<p-overlayPanel\n styleClass=\"navigation-settings-overlay flow-header-overlay center\"\n showTransitionOptions=\"0ms\"\n hideTransitionOptions=\"0ms\"\n>\n <ng-template pTemplate>\n <div class=\"flow-header-overlay__wrapper\" *vlLet=\"readonlyProductId$ | async as readonlyProductId\">\n <ng-container *ngIf=\"products.length > 0; else empty\">\n <h2 class=\"flow-header-overlay__title\">\n <span>Products ({{ products.length }})</span>\n <i class=\"vl-icon vl-icon-close close-icon\" (click)=\"overlayPanel.hide()\"></i>\n </h2>\n\n <div class=\"product header\">\n <span>Product</span>\n <span class=\"text-right\">Qty</span>\n <span class=\"text-right\">MRR</span>\n <span class=\"text-right\">NRR</span>\n </div>\n\n <div class=\"scrollable-wrapper\">\n <div class=\"product\" *ngFor=\"let product of products\">\n <div class=\"product__info\">\n <div class=\"product__image-wrapper\">\n <div\n *ngIf=\"getImageUrl(product.productId) | async as imageUrl; else noImage\"\n class=\"product__image\"\n [ngStyle]=\"{ 'background-image': 'url(' + imageUrl + ')' }\"\n ></div>\n </div>\n <div class=\"flex flex-column justify-content-center\">\n <div class=\"word-break\">{{ product.name }}</div>\n <div>\n <p-button\n label=\"Configure\"\n [disabled]=\"!product.configurable || readonlyProductId === product.productId\"\n styleClass=\"p-button-link p-button-sm pl-0\"\n (click)=\"navigateToProductConfiguration(product.productId)\"\n ></p-button>\n <p-button\n label=\"Delete\"\n [disabled]=\"readonlyProductId === product.productId\"\n styleClass=\"p-button-link p-button-sm p-button-danger pl-0 pr-0\"\n (click)=\"deleteHandler(product)\"\n ></p-button>\n </div>\n </div>\n </div>\n\n <span>\n <p-inputNumber\n *ngIf=\"form.controls[product.id] as control\"\n class=\"qty-control\"\n [formControl]=\"$any(control)\"\n [min]=\"1\"\n [required]=\"true\"\n (onBlur)=\"controlBlurHandler(product)\"\n ></p-inputNumber>\n </span>\n <span class=\"text-right pt-3\">$0.00</span>\n <span class=\"text-right pt-3\">$0.00</span>\n </div>\n\n <ng-template #noImage>\n <i class=\"vl-icon vl-icon-no-image no-image-icon\"></i>\n </ng-template>\n </div>\n\n <div class=\"flex justify-content-end mt-3\">\n <p-button\n label=\"Clear cart\"\n styleClass=\"p-button-link p-button-sm p-button-danger pl-0 pr-0\"\n [disabled]=\"readonlyProductId\"\n (click)=\"deleteAllHandler()\"\n ></p-button>\n </div>\n </ng-container>\n\n <ng-template #empty>\n <h2 class=\"flow-header-overlay__title\">\n <span>Empty Cart</span>\n <i class=\"vl-icon vl-icon-close close-icon\" (click)=\"overlayPanel.hide()\"></i>\n </h2>\n\n <span class=\"empty-state\">There are no products added to the Shopping Cart yet.</span>\n </ng-template>\n </div>\n </ng-template>\n</p-overlayPanel>\n", styles: [".flow-header-overlay__wrapper{display:flex;flex-direction:column;width:460px;max-height:600px}.flow-header-overlay__wrapper .close-icon{cursor:pointer}.flow-header-overlay__title{display:flex;justify-content:space-between;align-items:center;margin:0 0 16px}.empty-state{color:var(--vl-text-color-deep-accent)}.scrollable-wrapper{overflow:auto}.product{display:grid;grid-template-columns:auto 60px 80px 80px;padding:16px 0}.product:not(.header){border-bottom:1px solid var(--vl-border-color)}.product.header{color:var(--vl-text-color-deep-accent)}.product__info{display:flex;grid-gap:16px;gap:16px}.product__image-wrapper{flex-shrink:0;height:64px;width:64px;display:flex;justify-content:center;align-items:center;background:var(--vl-primary-nav-overlay-bg);border-radius:4px}.product__image{background-size:contain;background-repeat:no-repeat;background-position:center;height:calc(100% - 12px);width:calc(100% - 12px)}.product .qty-control ::ng-deep .p-inputnumber-input{align-self:flex-start;text-align:right;width:100%}.word-break{word-break:break-word}.no-image-icon{color:#b4d1ef;height:18px;width:18px}\n"], components: [{ type: i4.OverlayPanel, selector: "p-overlayPanel", inputs: ["dismissable", "showCloseIcon", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { type: i5.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "style", "styleClass", "badgeClass"], outputs: ["onClick", "onFocus", "onBlur"] }, { type: i6.InputNumber, selector: "p-inputNumber", inputs: ["showButtons", "format", "buttonLayout", "inputId", "styleClass", "style", "placeholder", "size", "maxlength", "tabindex", "title", "ariaLabel", "ariaRequired", "name", "required", "autocomplete", "min", "max", "incrementButtonClass", "decrementButtonClass", "incrementButtonIcon", "decrementButtonIcon", "readonly", "step", "allowEmpty", "locale", "localeMatcher", "mode", "currency", "currencyDisplay", "useGrouping", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "inputStyle", "inputStyleClass", "disabled"], outputs: ["onInput", "onFocus", "onBlur", "onKeyDown"] }], directives: [{ type: i7.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { type: i8.LetDirective, selector: "[vlLet]", inputs: ["vlLet"] }, { type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i9.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i10.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i10.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i10.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }], pipes: { "async": i9.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
116
+ HeaderCartOverlayComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: HeaderCartOverlayComponent, selector: "vl-header-cart-overlay", inputs: { products: "products" }, viewQueries: [{ propertyName: "overlayPanel", first: true, predicate: OverlayPanel, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<p-overlayPanel\n styleClass=\"navigation-settings-overlay flow-header-overlay center\"\n showTransitionOptions=\"0ms\"\n hideTransitionOptions=\"0ms\"\n>\n <ng-template pTemplate>\n <div class=\"flow-header-overlay__wrapper\" *vlLet=\"readonlyProductId$ | async as readonlyProductId\">\n <ng-container *ngIf=\"products.length > 0; else empty\">\n <h2 class=\"flow-header-overlay__title\">\n <span>Products ({{ products.length }})</span>\n <i class=\"vl-icon vl-icon-close close-icon\" (click)=\"overlayPanel.hide()\"></i>\n </h2>\n\n <div class=\"product header\">\n <span>Product</span>\n <span class=\"text-right\">Qty</span>\n <span class=\"text-right\">MRR</span>\n <span class=\"text-right\">NRR</span>\n </div>\n\n <div class=\"scrollable-wrapper\">\n <div class=\"product\" *ngFor=\"let product of products\">\n <div class=\"product__info\">\n <div class=\"product__image-wrapper\">\n <div\n *ngIf=\"getImageUrl(product.productId) | async as imageUrl; else noImage\"\n class=\"product__image\"\n [ngStyle]=\"{ 'background-image': 'url(' + imageUrl + ')' }\"\n ></div>\n </div>\n <div class=\"flex flex-column justify-content-center\">\n <div class=\"word-break\">{{ product.name }}</div>\n <div>\n <p-button\n label=\"Configure\"\n [disabled]=\"!product.configurable || readonlyProductId === product.productId\"\n styleClass=\"p-button-link p-button-sm pl-0\"\n (onClick)=\"navigateToProductConfiguration(product.productId)\"\n ></p-button>\n <p-button\n label=\"Delete\"\n [disabled]=\"readonlyProductId === product.productId\"\n styleClass=\"p-button-link p-button-sm p-button-danger pl-0 pr-0\"\n (onClick)=\"deleteHandler(product)\"\n ></p-button>\n </div>\n </div>\n </div>\n\n <span>\n <p-inputNumber\n *ngIf=\"form.controls[product.id] as control\"\n class=\"qty-control\"\n [formControl]=\"$any(control)\"\n [min]=\"1\"\n [required]=\"true\"\n (onBlur)=\"controlBlurHandler(product)\"\n ></p-inputNumber>\n </span>\n <span class=\"text-right pt-3\">$0.00</span>\n <span class=\"text-right pt-3\">$0.00</span>\n </div>\n\n <ng-template #noImage>\n <i class=\"vl-icon vl-icon-no-image no-image-icon\"></i>\n </ng-template>\n </div>\n\n <div class=\"flex justify-content-end mt-3\">\n <p-button\n label=\"Clear cart\"\n styleClass=\"p-button-link p-button-sm p-button-danger pl-0 pr-0\"\n [disabled]=\"readonlyProductId\"\n (onClick)=\"deleteAllHandler()\"\n ></p-button>\n </div>\n </ng-container>\n\n <ng-template #empty>\n <h2 class=\"flow-header-overlay__title\">\n <span>Empty Cart</span>\n <i class=\"vl-icon vl-icon-close close-icon\" (click)=\"overlayPanel.hide()\"></i>\n </h2>\n\n <span class=\"empty-state\">There are no products added to the Shopping Cart yet.</span>\n </ng-template>\n </div>\n </ng-template>\n</p-overlayPanel>\n", styles: [".flow-header-overlay__wrapper{display:flex;flex-direction:column;width:460px;max-height:600px}.flow-header-overlay__wrapper .close-icon{cursor:pointer}.flow-header-overlay__title{display:flex;justify-content:space-between;align-items:center;margin:0 0 16px}.empty-state{color:var(--vl-text-color-deep-accent)}.scrollable-wrapper{overflow:auto}.product{display:grid;grid-template-columns:auto 60px 80px 80px;padding:16px 0}.product:not(.header){border-bottom:1px solid var(--vl-border-color)}.product.header{color:var(--vl-text-color-deep-accent)}.product__info{display:flex;grid-gap:16px;gap:16px}.product__image-wrapper{flex-shrink:0;height:64px;width:64px;display:flex;justify-content:center;align-items:center;background:var(--vl-primary-nav-overlay-bg);border-radius:4px}.product__image{background-size:contain;background-repeat:no-repeat;background-position:center;height:calc(100% - 12px);width:calc(100% - 12px)}.product .qty-control ::ng-deep .p-inputnumber-input{align-self:flex-start;text-align:right;width:100%}.word-break{word-break:break-word}.no-image-icon{color:#b4d1ef;height:18px;width:18px}\n"], components: [{ type: i4.OverlayPanel, selector: "p-overlayPanel", inputs: ["dismissable", "showCloseIcon", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { type: i5.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "style", "styleClass", "badgeClass"], outputs: ["onClick", "onFocus", "onBlur"] }, { type: i6.InputNumber, selector: "p-inputNumber", inputs: ["showButtons", "format", "buttonLayout", "inputId", "styleClass", "style", "placeholder", "size", "maxlength", "tabindex", "title", "ariaLabel", "ariaRequired", "name", "required", "autocomplete", "min", "max", "incrementButtonClass", "decrementButtonClass", "incrementButtonIcon", "decrementButtonIcon", "readonly", "step", "allowEmpty", "locale", "localeMatcher", "mode", "currency", "currencyDisplay", "useGrouping", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "inputStyle", "inputStyleClass", "disabled"], outputs: ["onInput", "onFocus", "onBlur", "onKeyDown"] }], directives: [{ type: i7.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { type: i8.LetDirective, selector: "[vlLet]", inputs: ["vlLet"] }, { type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i9.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i10.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i10.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i10.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }], pipes: { "async": i9.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
117
117
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: HeaderCartOverlayComponent, decorators: [{
118
118
  type: Component,
119
119
  args: [{
@@ -128,4 +128,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImpo
128
128
  }], products: [{
129
129
  type: Input
130
130
  }] } });
131
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FydC1vdmVybGF5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3NyYy9jb21wb25lbnRzL2hlYWRlci9jYXJ0LW92ZXJsYXkvY2FydC1vdmVybGF5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3NyYy9jb21wb25lbnRzL2hlYWRlci9jYXJ0LW92ZXJsYXkvY2FydC1vdmVybGF5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULEtBQUssRUFJTCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUl4RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEQsT0FBTyxFQUNMLGVBQWUsRUFDZixVQUFVLEVBQ1YsYUFBYSxFQUNiLG9CQUFvQixFQUNwQixNQUFNLEVBQ04sR0FBRyxFQUNILElBQUksRUFFSixFQUFFLEVBQ0YsT0FBTyxFQUNQLFNBQVMsRUFDVCxHQUFHLEdBQ0osTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7OztBQVVkLE1BQU0sT0FBTywwQkFBMEI7SUFZckMsWUFDVSxlQUFnQyxFQUNoQyxpQkFBMkMsRUFDM0MsYUFBZ0M7UUFGaEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBMEI7UUFDM0Msa0JBQWEsR0FBYixhQUFhLENBQW1CO1FBVm5DLFNBQUksR0FBRyxJQUFJLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUd4QixrQkFBYSxHQUFHLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFDLGVBQVUsR0FBRyxJQUFJLGVBQWUsQ0FBcUIsRUFBRSxDQUFDLENBQUM7UUFDekQsZUFBVSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFPdkMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLGFBQWEsQ0FBQztZQUN0QyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU07WUFDekIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRTtTQUMzQyxDQUFDLENBQUMsSUFBSSxDQUNMLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLG9CQUFvQixDQUFDLEVBQUUsRUFBRTtZQUNwQyxJQUFJLENBQUMsb0JBQW9CLEVBQUU7Z0JBQ3pCLE9BQU8sSUFBSSxDQUFDO2FBQ2I7WUFFRCxPQUFPLEtBQUssQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDO1FBQ3JDLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLFFBQVEsRUFBRTtZQUNwQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUMvQjtJQUNILENBQUM7SUFFRCxlQUFlO1FBQ2IsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUNuRixJQUFJLENBQ0gsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLEVBQzlDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQzNCO2FBQ0EsU0FBUyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO0lBQy9GLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRU0sV0FBVyxDQUFDLFNBQWlCO1FBQ2xDLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksSUFBSSxFQUFFO1lBQzVDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxpQ0FBTSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssS0FBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsSUFBRyxDQUFDO1lBQ3BFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUNuQztRQUVELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQ3pCLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUN0QyxvQkFBb0IsRUFBRSxDQUN2QixDQUFDO0lBQ0osQ0FBQztJQUVNLDhCQUE4QixDQUFDLFNBQWlCO1FBQ3JELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLGFBQWEsQ0FBQyw4QkFBOEIsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRU0sa0JBQWtCLENBQUMsT0FBc0I7UUFDOUMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQy9DLElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRTtZQUNuQixPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDO1lBQzVCLFFBQVEsRUFBRSxVQUFVO1lBQ3BCLGFBQWEsRUFBRSxLQUFLO1lBQ3BCLEVBQUUsRUFBRSxPQUFPLENBQUMsRUFBRTtZQUNkLFFBQVEsRUFBRSxPQUFPLENBQUMsS0FBSztTQUN4QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sYUFBYSxDQUFDLE9BQXNCO1FBQ3pDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRU0sZ0JBQWdCO1FBQ3JCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVPLGlCQUFpQixDQUFDLFNBQWlCO1FBQ3pDLElBQUksQ0FBQyxlQUFlO2FBQ2pCLEdBQUcsQ0FBTztZQUNULEdBQUcsRUFBRSxhQUFhLFNBQVMsUUFBUTtZQUNuQyxNQUFNLEVBQUUsS0FBSztZQUNiLFlBQVksRUFBRSxNQUFNO1lBQ3BCLFlBQVksRUFBRSxJQUFJO1NBQ25CLENBQUM7YUFDRCxJQUFJLENBQ0gsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUN0QyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQ3hCLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxpQ0FBTSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssS0FBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEdBQUcsSUFBRyxDQUFDLEVBQ2hGLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQzNCO2FBQ0EsU0FBUyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVPLGNBQWMsQ0FBQyxRQUF5QixFQUFFLGlCQUFnQztRQUNoRixNQUFNLEdBQUcsR0FBYSxFQUFFLENBQUM7UUFFekIsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTs7WUFDdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUU7Z0JBQ1osT0FBTzthQUNSO1lBRUQsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFFbEIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRTtnQkFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7YUFDOUQ7aUJBQU07Z0JBQ0wsTUFBQSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLDBDQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDakQ7WUFFRCxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssaUJBQWlCLEVBQUU7Z0JBQ3hDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQzthQUN2QztpQkFBTTtnQkFDTCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7YUFDdEM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNuRixVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN4RCxDQUFDOzt3SEFySVUsMEJBQTBCOzRHQUExQiwwQkFBMEIsOElBQzFCLFlBQVkscUVDdkN6QixxaUhBeUZBOzRGRG5EYSwwQkFBMEI7a0JBTnRDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHdCQUF3QjtvQkFDbEMsV0FBVyxFQUFFLCtCQUErQjtvQkFDNUMsU0FBUyxFQUFFLENBQUMsK0JBQStCLENBQUM7b0JBQzVDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRDs2S0FFMEIsWUFBWTtzQkFBcEMsU0FBUzt1QkFBQyxZQUFZO2dCQUVkLFFBQVE7c0JBQWhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQmFzZUh0dHBTZXJ2aWNlIH0gZnJvbSAnQHZlbG9jZS9jb3JlJztcbmltcG9ydCB7IEZsb3dDb25maWd1cmF0aW9uU2VydmljZSB9IGZyb20gJ0B2ZWxvY2Uvc2RrL2Ntcyc7XG5pbXBvcnQgeyBEaWN0aW9uYXJ5IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IE92ZXJsYXlQYW5lbCB9IGZyb20gJ3ByaW1lbmcvb3ZlcmxheXBhbmVsJztcbmltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgY2F0Y2hFcnJvcixcbiAgY29tYmluZUxhdGVzdCxcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIGZpbHRlcixcbiAgbWFwLFxuICBub29wLFxuICBPYnNlcnZhYmxlLFxuICBvZixcbiAgU3ViamVjdCxcbiAgdGFrZVVudGlsLFxuICB0YXAsXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRmxvd1JvdXRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9mbG93LXJvdXRlci5zZXJ2aWNlJztcbmltcG9ydCB7IEhlYWRlclByb2R1Y3QgfSBmcm9tICcuLi9oZWFkZXIudHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2bC1oZWFkZXItY2FydC1vdmVybGF5JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NhcnQtb3ZlcmxheS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NhcnQtb3ZlcmxheS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgSGVhZGVyQ2FydE92ZXJsYXlDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIEBWaWV3Q2hpbGQoT3ZlcmxheVBhbmVsKSBvdmVybGF5UGFuZWwhOiBPdmVybGF5UGFuZWw7XG5cbiAgQElucHV0KCkgcHJvZHVjdHMhOiBIZWFkZXJQcm9kdWN0W107XG5cbiAgcHVibGljIGZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcbiAgcHVibGljIHJlYWRvbmx5UHJvZHVjdElkJDogT2JzZXJ2YWJsZTxzdHJpbmcgfCBudWxsPjtcblxuICBwcml2YXRlIHNob3VsZFVwZGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRydWUpO1xuICBwcml2YXRlIGltYWdlc01hcCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PERpY3Rpb25hcnk8c3RyaW5nPj4oe30pO1xuICBwcml2YXRlIGRlc3Ryb3llZCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYmFzZUh0dHBTZXJ2aWNlOiBCYXNlSHR0cFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBmbG93Q29uZmlndXJhdGlvbjogRmxvd0NvbmZpZ3VyYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGVyU2VydmljZTogRmxvd1JvdXRlclNlcnZpY2UsXG4gICkge1xuICAgIHRoaXMucmVhZG9ubHlQcm9kdWN0SWQkID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLnJvdXRlclNlcnZpY2Uucm91dGUkLFxuICAgICAgdGhpcy5yb3V0ZXJTZXJ2aWNlLmlzQ29uZmlndXJhdGlvblJvdXRlJCgpLFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoKFtyb3V0ZSwgaXNDb25maWd1cmF0aW9uUm91dGVdKSA9PiB7XG4gICAgICAgIGlmICghaXNDb25maWd1cmF0aW9uUm91dGUpIHtcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByb3V0ZS5xdWVyeVBhcmFtcy5wcm9kdWN0SWQ7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzLnByb2R1Y3RzKSB7XG4gICAgICB0aGlzLnNob3VsZFVwZGF0ZSQubmV4dCh0cnVlKTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgY29tYmluZUxhdGVzdChbdGhpcy5yZWFkb25seVByb2R1Y3RJZCQsIHRoaXMuc2hvdWxkVXBkYXRlJCwgdGhpcy5vdmVybGF5UGFuZWwub25TaG93XSlcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKCkgPT4gdGhpcy5vdmVybGF5UGFuZWwub3ZlcmxheVZpc2libGUpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKFtyZWFkb25seVByb2R1Y3RJZF0pID0+IHRoaXMudXBkYXRlQ29udHJvbHModGhpcy5wcm9kdWN0cywgcmVhZG9ubHlQcm9kdWN0SWQpKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3llZCQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveWVkJC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHVibGljIGdldEltYWdlVXJsKHByb2R1Y3RJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICBpZiAodGhpcy5pbWFnZXNNYXAkLnZhbHVlW3Byb2R1Y3RJZF0gPT0gbnVsbCkge1xuICAgICAgdGhpcy5pbWFnZXNNYXAkLm5leHQoeyAuLi50aGlzLmltYWdlc01hcCQudmFsdWUsIFtwcm9kdWN0SWRdOiAnJyB9KTtcbiAgICAgIHRoaXMuZmV0Y2hQcm9kdWN0SW1hZ2UocHJvZHVjdElkKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5pbWFnZXNNYXAkLnBpcGUoXG4gICAgICBtYXAoaW1hZ2VzTWFwID0+IGltYWdlc01hcFtwcm9kdWN0SWRdKSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBuYXZpZ2F0ZVRvUHJvZHVjdENvbmZpZ3VyYXRpb24ocHJvZHVjdElkOiBzdHJpbmcpIHtcbiAgICB0aGlzLm92ZXJsYXlQYW5lbC5oaWRlKCk7XG4gICAgdGhpcy5yb3V0ZXJTZXJ2aWNlLm5hdmlnYXRlVG9Qcm9kdWN0Q29uZmlndXJhdGlvbihwcm9kdWN0SWQpO1xuICB9XG5cbiAgcHVibGljIGNvbnRyb2xCbHVySGFuZGxlcihwcm9kdWN0OiBIZWFkZXJQcm9kdWN0KTogdm9pZCB7XG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuZm9ybS5jb250cm9sc1twcm9kdWN0LmlkXTtcbiAgICBpZiAoY29udHJvbC5pbnZhbGlkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5mbG93Q29uZmlndXJhdGlvbi51cGRhdGUoe1xuICAgICAgZGF0YVR5cGU6ICdMSU5FSVRFTScsXG4gICAgICBhdHRyaWJ1dGVUeXBlOiAnUVRZJyxcbiAgICAgIGlkOiBwcm9kdWN0LmlkLFxuICAgICAgbmV3VmFsdWU6IGNvbnRyb2wudmFsdWUsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZGVsZXRlSGFuZGxlcihwcm9kdWN0OiBIZWFkZXJQcm9kdWN0KTogdm9pZCB7XG4gICAgdGhpcy5mbG93Q29uZmlndXJhdGlvbi5kZWxldGUoW3Byb2R1Y3QuaWRdKTtcbiAgfVxuXG4gIHB1YmxpYyBkZWxldGVBbGxIYW5kbGVyKCk6IHZvaWQge1xuICAgIGNvbnN0IHByb2R1Y3RJZHMgPSB0aGlzLnByb2R1Y3RzLm1hcChwcm9kdWN0ID0+IHByb2R1Y3QuaWQpO1xuICAgIHRoaXMuZmxvd0NvbmZpZ3VyYXRpb24uZGVsZXRlKHByb2R1Y3RJZHMpO1xuICB9XG5cbiAgcHJpdmF0ZSBmZXRjaFByb2R1Y3RJbWFnZShwcm9kdWN0SWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuYmFzZUh0dHBTZXJ2aWNlXG4gICAgICAuYXBpPEJsb2I+KHtcbiAgICAgICAgdXJsOiBgL3Byb2R1Y3RzLyR7cHJvZHVjdElkfS9pbWFnZWAsXG4gICAgICAgIG1ldGhvZDogJ2dldCcsXG4gICAgICAgIHJlc3BvbnNlVHlwZTogJ2Jsb2InLFxuICAgICAgICBlcnJvckhhbmRsZXI6IG5vb3AsXG4gICAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcChmaWxlID0+IFVSTC5jcmVhdGVPYmplY3RVUkwoZmlsZSkpLFxuICAgICAgICBjYXRjaEVycm9yKCgpID0+IG9mKCcnKSksXG4gICAgICAgIHRhcCh1cmwgPT4gdGhpcy5pbWFnZXNNYXAkLm5leHQoeyAuLi50aGlzLmltYWdlc01hcCQudmFsdWUsIFtwcm9kdWN0SWRdOiB1cmwgfSkpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlQ29udHJvbHMocHJvZHVjdHM6IEhlYWRlclByb2R1Y3RbXSwgcmVhZG9ubHlQcm9kdWN0SWQ6IHN0cmluZyB8IG51bGwpOiB2b2lkIHtcbiAgICBjb25zdCBpZHM6IHN0cmluZ1tdID0gW107XG5cbiAgICBwcm9kdWN0cy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgaWYgKCFpdGVtLmlkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWRzLnB1c2goaXRlbS5pZCk7XG5cbiAgICAgIGlmICghdGhpcy5mb3JtLmNvbnRyb2xzW2l0ZW0uaWRdKSB7XG4gICAgICAgIHRoaXMuZm9ybS5hZGRDb250cm9sKGl0ZW0uaWQsIG5ldyBGb3JtQ29udHJvbChpdGVtLnF0eSwgW10pKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZm9ybS5jb250cm9sc1tpdGVtLmlkXT8uc2V0VmFsdWUoaXRlbS5xdHkpO1xuICAgICAgfVxuXG4gICAgICBpZiAoaXRlbS5wcm9kdWN0SWQgPT09IHJlYWRvbmx5UHJvZHVjdElkKSB7XG4gICAgICAgIHRoaXMuZm9ybS5jb250cm9sc1tpdGVtLmlkXS5kaXNhYmxlKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmZvcm0uY29udHJvbHNbaXRlbS5pZF0uZW5hYmxlKCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBjb25zdCByZW1vdmVkSWRzID0gT2JqZWN0LmtleXModGhpcy5mb3JtLmNvbnRyb2xzKS5maWx0ZXIoaWQgPT4gIWlkcy5pbmNsdWRlcyhpZCkpO1xuICAgIHJlbW92ZWRJZHMuZm9yRWFjaChpZCA9PiB0aGlzLmZvcm0ucmVtb3ZlQ29udHJvbChpZCkpO1xuICB9XG59XG4iLCI8cC1vdmVybGF5UGFuZWxcbiAgc3R5bGVDbGFzcz1cIm5hdmlnYXRpb24tc2V0dGluZ3Mtb3ZlcmxheSBmbG93LWhlYWRlci1vdmVybGF5IGNlbnRlclwiXG4gIHNob3dUcmFuc2l0aW9uT3B0aW9ucz1cIjBtc1wiXG4gIGhpZGVUcmFuc2l0aW9uT3B0aW9ucz1cIjBtc1wiXG4+XG4gIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU+XG4gICAgPGRpdiBjbGFzcz1cImZsb3ctaGVhZGVyLW92ZXJsYXlfX3dyYXBwZXJcIiAqdmxMZXQ9XCJyZWFkb25seVByb2R1Y3RJZCQgfCBhc3luYyBhcyByZWFkb25seVByb2R1Y3RJZFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInByb2R1Y3RzLmxlbmd0aCA+IDA7IGVsc2UgZW1wdHlcIj5cbiAgICAgICAgPGgyIGNsYXNzPVwiZmxvdy1oZWFkZXItb3ZlcmxheV9fdGl0bGVcIj5cbiAgICAgICAgICA8c3Bhbj5Qcm9kdWN0cyAoe3sgcHJvZHVjdHMubGVuZ3RoIH19KTwvc3Bhbj5cbiAgICAgICAgICA8aSBjbGFzcz1cInZsLWljb24gdmwtaWNvbi1jbG9zZSBjbG9zZS1pY29uXCIgKGNsaWNrKT1cIm92ZXJsYXlQYW5lbC5oaWRlKClcIj48L2k+XG4gICAgICAgIDwvaDI+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cInByb2R1Y3QgaGVhZGVyXCI+XG4gICAgICAgICAgPHNwYW4+UHJvZHVjdDwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtcmlnaHRcIj5RdHk8L3NwYW4+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXJpZ2h0XCI+TVJSPC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1yaWdodFwiPk5SUjwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNjcm9sbGFibGUtd3JhcHBlclwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9kdWN0XCIgKm5nRm9yPVwibGV0IHByb2R1Y3Qgb2YgcHJvZHVjdHNcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9kdWN0X19pbmZvXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9kdWN0X19pbWFnZS13cmFwcGVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJnZXRJbWFnZVVybChwcm9kdWN0LnByb2R1Y3RJZCkgfCBhc3luYyBhcyBpbWFnZVVybDsgZWxzZSBub0ltYWdlXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwicHJvZHVjdF9faW1hZ2VcIlxuICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyAnYmFja2dyb3VuZC1pbWFnZSc6ICd1cmwoJyArIGltYWdlVXJsICsgJyknIH1cIlxuICAgICAgICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sdW1uIGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid29yZC1icmVha1wiPnt7IHByb2R1Y3QubmFtZSB9fTwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICA8cC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgbGFiZWw9XCJDb25maWd1cmVcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIXByb2R1Y3QuY29uZmlndXJhYmxlIHx8IHJlYWRvbmx5UHJvZHVjdElkID09PSBwcm9kdWN0LnByb2R1Y3RJZFwiXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlQ2xhc3M9XCJwLWJ1dHRvbi1saW5rIHAtYnV0dG9uLXNtIHBsLTBcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwibmF2aWdhdGVUb1Byb2R1Y3RDb25maWd1cmF0aW9uKHByb2R1Y3QucHJvZHVjdElkKVwiXG4gICAgICAgICAgICAgICAgICA+PC9wLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgIDxwLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBsYWJlbD1cIkRlbGV0ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJyZWFkb25seVByb2R1Y3RJZCA9PT0gcHJvZHVjdC5wcm9kdWN0SWRcIlxuICAgICAgICAgICAgICAgICAgICBzdHlsZUNsYXNzPVwicC1idXR0b24tbGluayBwLWJ1dHRvbi1zbSBwLWJ1dHRvbi1kYW5nZXIgcGwtMCBwci0wXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImRlbGV0ZUhhbmRsZXIocHJvZHVjdClcIlxuICAgICAgICAgICAgICAgICAgPjwvcC1idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgICA8cC1pbnB1dE51bWJlclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiZm9ybS5jb250cm9sc1twcm9kdWN0LmlkXSBhcyBjb250cm9sXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInF0eS1jb250cm9sXCJcbiAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiJGFueShjb250cm9sKVwiXG4gICAgICAgICAgICAgICAgW21pbl09XCIxXCJcbiAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgKG9uQmx1cik9XCJjb250cm9sQmx1ckhhbmRsZXIocHJvZHVjdClcIlxuICAgICAgICAgICAgICA+PC9wLWlucHV0TnVtYmVyPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXJpZ2h0IHB0LTNcIj4kMC4wMDwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1yaWdodCBwdC0zXCI+JDAuMDA8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI25vSW1hZ2U+XG4gICAgICAgICAgICA8aSBjbGFzcz1cInZsLWljb24gdmwtaWNvbi1uby1pbWFnZSBuby1pbWFnZS1pY29uXCI+PC9pPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktY29udGVudC1lbmQgbXQtM1wiPlxuICAgICAgICAgIDxwLWJ1dHRvblxuICAgICAgICAgICAgbGFiZWw9XCJDbGVhciBjYXJ0XCJcbiAgICAgICAgICAgIHN0eWxlQ2xhc3M9XCJwLWJ1dHRvbi1saW5rIHAtYnV0dG9uLXNtIHAtYnV0dG9uLWRhbmdlciBwbC0wIHByLTBcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cInJlYWRvbmx5UHJvZHVjdElkXCJcbiAgICAgICAgICAgIChjbGljayk9XCJkZWxldGVBbGxIYW5kbGVyKClcIlxuICAgICAgICAgID48L3AtYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8bmctdGVtcGxhdGUgI2VtcHR5PlxuICAgICAgICA8aDIgY2xhc3M9XCJmbG93LWhlYWRlci1vdmVybGF5X190aXRsZVwiPlxuICAgICAgICAgIDxzcGFuPkVtcHR5IENhcnQ8L3NwYW4+XG4gICAgICAgICAgPGkgY2xhc3M9XCJ2bC1pY29uIHZsLWljb24tY2xvc2UgY2xvc2UtaWNvblwiIChjbGljayk9XCJvdmVybGF5UGFuZWwuaGlkZSgpXCI+PC9pPlxuICAgICAgICA8L2gyPlxuXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZW1wdHktc3RhdGVcIj5UaGVyZSBhcmUgbm8gcHJvZHVjdHMgYWRkZWQgdG8gdGhlIFNob3BwaW5nIENhcnQgeWV0Ljwvc3Bhbj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG48L3Atb3ZlcmxheVBhbmVsPlxuIl19
131
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FydC1vdmVybGF5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3NyYy9jb21wb25lbnRzL2hlYWRlci9jYXJ0LW92ZXJsYXkvY2FydC1vdmVybGF5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3NyYy9jb21wb25lbnRzL2hlYWRlci9jYXJ0LW92ZXJsYXkvY2FydC1vdmVybGF5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULEtBQUssRUFJTCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUl4RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEQsT0FBTyxFQUNMLGVBQWUsRUFDZixVQUFVLEVBQ1YsYUFBYSxFQUNiLG9CQUFvQixFQUNwQixNQUFNLEVBQ04sR0FBRyxFQUNILElBQUksRUFFSixFQUFFLEVBQ0YsT0FBTyxFQUNQLFNBQVMsRUFDVCxHQUFHLEdBQ0osTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7OztBQVVkLE1BQU0sT0FBTywwQkFBMEI7SUFZckMsWUFDVSxlQUFnQyxFQUNoQyxpQkFBMkMsRUFDM0MsYUFBZ0M7UUFGaEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBMEI7UUFDM0Msa0JBQWEsR0FBYixhQUFhLENBQW1CO1FBVm5DLFNBQUksR0FBRyxJQUFJLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUd4QixrQkFBYSxHQUFHLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFDLGVBQVUsR0FBRyxJQUFJLGVBQWUsQ0FBcUIsRUFBRSxDQUFDLENBQUM7UUFDekQsZUFBVSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFPdkMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLGFBQWEsQ0FBQztZQUN0QyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU07WUFDekIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRTtTQUMzQyxDQUFDLENBQUMsSUFBSSxDQUNMLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLG9CQUFvQixDQUFDLEVBQUUsRUFBRTtZQUNwQyxJQUFJLENBQUMsb0JBQW9CLEVBQUU7Z0JBQ3pCLE9BQU8sSUFBSSxDQUFDO2FBQ2I7WUFFRCxPQUFPLEtBQUssQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDO1FBQ3JDLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLFFBQVEsRUFBRTtZQUNwQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUMvQjtJQUNILENBQUM7SUFFRCxlQUFlO1FBQ2IsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUNuRixJQUFJLENBQ0gsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLEVBQzlDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQzNCO2FBQ0EsU0FBUyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO0lBQy9GLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRU0sV0FBVyxDQUFDLFNBQWlCO1FBQ2xDLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksSUFBSSxFQUFFO1lBQzVDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxpQ0FBTSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssS0FBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsSUFBRyxDQUFDO1lBQ3BFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUNuQztRQUVELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQ3pCLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUN0QyxvQkFBb0IsRUFBRSxDQUN2QixDQUFDO0lBQ0osQ0FBQztJQUVNLDhCQUE4QixDQUFDLFNBQWlCO1FBQ3JELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLGFBQWEsQ0FBQyw4QkFBOEIsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRU0sa0JBQWtCLENBQUMsT0FBc0I7UUFDOUMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQy9DLElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRTtZQUNuQixPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDO1lBQzVCLFFBQVEsRUFBRSxVQUFVO1lBQ3BCLGFBQWEsRUFBRSxLQUFLO1lBQ3BCLEVBQUUsRUFBRSxPQUFPLENBQUMsRUFBRTtZQUNkLFFBQVEsRUFBRSxPQUFPLENBQUMsS0FBSztTQUN4QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sYUFBYSxDQUFDLE9BQXNCO1FBQ3pDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRU0sZ0JBQWdCO1FBQ3JCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVPLGlCQUFpQixDQUFDLFNBQWlCO1FBQ3pDLElBQUksQ0FBQyxlQUFlO2FBQ2pCLEdBQUcsQ0FBTztZQUNULEdBQUcsRUFBRSxhQUFhLFNBQVMsUUFBUTtZQUNuQyxNQUFNLEVBQUUsS0FBSztZQUNiLFlBQVksRUFBRSxNQUFNO1lBQ3BCLFlBQVksRUFBRSxJQUFJO1NBQ25CLENBQUM7YUFDRCxJQUFJLENBQ0gsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUN0QyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQ3hCLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxpQ0FBTSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssS0FBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEdBQUcsSUFBRyxDQUFDLEVBQ2hGLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQzNCO2FBQ0EsU0FBUyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVPLGNBQWMsQ0FBQyxRQUF5QixFQUFFLGlCQUFnQztRQUNoRixNQUFNLEdBQUcsR0FBYSxFQUFFLENBQUM7UUFFekIsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTs7WUFDdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUU7Z0JBQ1osT0FBTzthQUNSO1lBRUQsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFFbEIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRTtnQkFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7YUFDOUQ7aUJBQU07Z0JBQ0wsTUFBQSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLDBDQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDakQ7WUFFRCxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssaUJBQWlCLEVBQUU7Z0JBQ3hDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQzthQUN2QztpQkFBTTtnQkFDTCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7YUFDdEM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNuRixVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN4RCxDQUFDOzt3SEFySVUsMEJBQTBCOzRHQUExQiwwQkFBMEIsOElBQzFCLFlBQVkscUVDdkN6QiwyaUhBeUZBOzRGRG5EYSwwQkFBMEI7a0JBTnRDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHdCQUF3QjtvQkFDbEMsV0FBVyxFQUFFLCtCQUErQjtvQkFDNUMsU0FBUyxFQUFFLENBQUMsK0JBQStCLENBQUM7b0JBQzVDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRDs2S0FFMEIsWUFBWTtzQkFBcEMsU0FBUzt1QkFBQyxZQUFZO2dCQUVkLFFBQVE7c0JBQWhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQmFzZUh0dHBTZXJ2aWNlIH0gZnJvbSAnQHZlbG9jZS9jb3JlJztcbmltcG9ydCB7IEZsb3dDb25maWd1cmF0aW9uU2VydmljZSB9IGZyb20gJ0B2ZWxvY2Uvc2RrL2Ntcyc7XG5pbXBvcnQgeyBEaWN0aW9uYXJ5IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IE92ZXJsYXlQYW5lbCB9IGZyb20gJ3ByaW1lbmcvb3ZlcmxheXBhbmVsJztcbmltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgY2F0Y2hFcnJvcixcbiAgY29tYmluZUxhdGVzdCxcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIGZpbHRlcixcbiAgbWFwLFxuICBub29wLFxuICBPYnNlcnZhYmxlLFxuICBvZixcbiAgU3ViamVjdCxcbiAgdGFrZVVudGlsLFxuICB0YXAsXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRmxvd1JvdXRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9mbG93LXJvdXRlci5zZXJ2aWNlJztcbmltcG9ydCB7IEhlYWRlclByb2R1Y3QgfSBmcm9tICcuLi9oZWFkZXIudHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2bC1oZWFkZXItY2FydC1vdmVybGF5JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NhcnQtb3ZlcmxheS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NhcnQtb3ZlcmxheS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgSGVhZGVyQ2FydE92ZXJsYXlDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIEBWaWV3Q2hpbGQoT3ZlcmxheVBhbmVsKSBvdmVybGF5UGFuZWwhOiBPdmVybGF5UGFuZWw7XG5cbiAgQElucHV0KCkgcHJvZHVjdHMhOiBIZWFkZXJQcm9kdWN0W107XG5cbiAgcHVibGljIGZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcbiAgcHVibGljIHJlYWRvbmx5UHJvZHVjdElkJDogT2JzZXJ2YWJsZTxzdHJpbmcgfCBudWxsPjtcblxuICBwcml2YXRlIHNob3VsZFVwZGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRydWUpO1xuICBwcml2YXRlIGltYWdlc01hcCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PERpY3Rpb25hcnk8c3RyaW5nPj4oe30pO1xuICBwcml2YXRlIGRlc3Ryb3llZCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYmFzZUh0dHBTZXJ2aWNlOiBCYXNlSHR0cFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBmbG93Q29uZmlndXJhdGlvbjogRmxvd0NvbmZpZ3VyYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGVyU2VydmljZTogRmxvd1JvdXRlclNlcnZpY2UsXG4gICkge1xuICAgIHRoaXMucmVhZG9ubHlQcm9kdWN0SWQkID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLnJvdXRlclNlcnZpY2Uucm91dGUkLFxuICAgICAgdGhpcy5yb3V0ZXJTZXJ2aWNlLmlzQ29uZmlndXJhdGlvblJvdXRlJCgpLFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoKFtyb3V0ZSwgaXNDb25maWd1cmF0aW9uUm91dGVdKSA9PiB7XG4gICAgICAgIGlmICghaXNDb25maWd1cmF0aW9uUm91dGUpIHtcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByb3V0ZS5xdWVyeVBhcmFtcy5wcm9kdWN0SWQ7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzLnByb2R1Y3RzKSB7XG4gICAgICB0aGlzLnNob3VsZFVwZGF0ZSQubmV4dCh0cnVlKTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgY29tYmluZUxhdGVzdChbdGhpcy5yZWFkb25seVByb2R1Y3RJZCQsIHRoaXMuc2hvdWxkVXBkYXRlJCwgdGhpcy5vdmVybGF5UGFuZWwub25TaG93XSlcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKCkgPT4gdGhpcy5vdmVybGF5UGFuZWwub3ZlcmxheVZpc2libGUpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKFtyZWFkb25seVByb2R1Y3RJZF0pID0+IHRoaXMudXBkYXRlQ29udHJvbHModGhpcy5wcm9kdWN0cywgcmVhZG9ubHlQcm9kdWN0SWQpKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3llZCQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveWVkJC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHVibGljIGdldEltYWdlVXJsKHByb2R1Y3RJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICBpZiAodGhpcy5pbWFnZXNNYXAkLnZhbHVlW3Byb2R1Y3RJZF0gPT0gbnVsbCkge1xuICAgICAgdGhpcy5pbWFnZXNNYXAkLm5leHQoeyAuLi50aGlzLmltYWdlc01hcCQudmFsdWUsIFtwcm9kdWN0SWRdOiAnJyB9KTtcbiAgICAgIHRoaXMuZmV0Y2hQcm9kdWN0SW1hZ2UocHJvZHVjdElkKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5pbWFnZXNNYXAkLnBpcGUoXG4gICAgICBtYXAoaW1hZ2VzTWFwID0+IGltYWdlc01hcFtwcm9kdWN0SWRdKSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBuYXZpZ2F0ZVRvUHJvZHVjdENvbmZpZ3VyYXRpb24ocHJvZHVjdElkOiBzdHJpbmcpIHtcbiAgICB0aGlzLm92ZXJsYXlQYW5lbC5oaWRlKCk7XG4gICAgdGhpcy5yb3V0ZXJTZXJ2aWNlLm5hdmlnYXRlVG9Qcm9kdWN0Q29uZmlndXJhdGlvbihwcm9kdWN0SWQpO1xuICB9XG5cbiAgcHVibGljIGNvbnRyb2xCbHVySGFuZGxlcihwcm9kdWN0OiBIZWFkZXJQcm9kdWN0KTogdm9pZCB7XG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuZm9ybS5jb250cm9sc1twcm9kdWN0LmlkXTtcbiAgICBpZiAoY29udHJvbC5pbnZhbGlkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5mbG93Q29uZmlndXJhdGlvbi51cGRhdGUoe1xuICAgICAgZGF0YVR5cGU6ICdMSU5FSVRFTScsXG4gICAgICBhdHRyaWJ1dGVUeXBlOiAnUVRZJyxcbiAgICAgIGlkOiBwcm9kdWN0LmlkLFxuICAgICAgbmV3VmFsdWU6IGNvbnRyb2wudmFsdWUsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZGVsZXRlSGFuZGxlcihwcm9kdWN0OiBIZWFkZXJQcm9kdWN0KTogdm9pZCB7XG4gICAgdGhpcy5mbG93Q29uZmlndXJhdGlvbi5kZWxldGUoW3Byb2R1Y3QuaWRdKTtcbiAgfVxuXG4gIHB1YmxpYyBkZWxldGVBbGxIYW5kbGVyKCk6IHZvaWQge1xuICAgIGNvbnN0IHByb2R1Y3RJZHMgPSB0aGlzLnByb2R1Y3RzLm1hcChwcm9kdWN0ID0+IHByb2R1Y3QuaWQpO1xuICAgIHRoaXMuZmxvd0NvbmZpZ3VyYXRpb24uZGVsZXRlKHByb2R1Y3RJZHMpO1xuICB9XG5cbiAgcHJpdmF0ZSBmZXRjaFByb2R1Y3RJbWFnZShwcm9kdWN0SWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuYmFzZUh0dHBTZXJ2aWNlXG4gICAgICAuYXBpPEJsb2I+KHtcbiAgICAgICAgdXJsOiBgL3Byb2R1Y3RzLyR7cHJvZHVjdElkfS9pbWFnZWAsXG4gICAgICAgIG1ldGhvZDogJ2dldCcsXG4gICAgICAgIHJlc3BvbnNlVHlwZTogJ2Jsb2InLFxuICAgICAgICBlcnJvckhhbmRsZXI6IG5vb3AsXG4gICAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcChmaWxlID0+IFVSTC5jcmVhdGVPYmplY3RVUkwoZmlsZSkpLFxuICAgICAgICBjYXRjaEVycm9yKCgpID0+IG9mKCcnKSksXG4gICAgICAgIHRhcCh1cmwgPT4gdGhpcy5pbWFnZXNNYXAkLm5leHQoeyAuLi50aGlzLmltYWdlc01hcCQudmFsdWUsIFtwcm9kdWN0SWRdOiB1cmwgfSkpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlQ29udHJvbHMocHJvZHVjdHM6IEhlYWRlclByb2R1Y3RbXSwgcmVhZG9ubHlQcm9kdWN0SWQ6IHN0cmluZyB8IG51bGwpOiB2b2lkIHtcbiAgICBjb25zdCBpZHM6IHN0cmluZ1tdID0gW107XG5cbiAgICBwcm9kdWN0cy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgaWYgKCFpdGVtLmlkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWRzLnB1c2goaXRlbS5pZCk7XG5cbiAgICAgIGlmICghdGhpcy5mb3JtLmNvbnRyb2xzW2l0ZW0uaWRdKSB7XG4gICAgICAgIHRoaXMuZm9ybS5hZGRDb250cm9sKGl0ZW0uaWQsIG5ldyBGb3JtQ29udHJvbChpdGVtLnF0eSwgW10pKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZm9ybS5jb250cm9sc1tpdGVtLmlkXT8uc2V0VmFsdWUoaXRlbS5xdHkpO1xuICAgICAgfVxuXG4gICAgICBpZiAoaXRlbS5wcm9kdWN0SWQgPT09IHJlYWRvbmx5UHJvZHVjdElkKSB7XG4gICAgICAgIHRoaXMuZm9ybS5jb250cm9sc1tpdGVtLmlkXS5kaXNhYmxlKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmZvcm0uY29udHJvbHNbaXRlbS5pZF0uZW5hYmxlKCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBjb25zdCByZW1vdmVkSWRzID0gT2JqZWN0LmtleXModGhpcy5mb3JtLmNvbnRyb2xzKS5maWx0ZXIoaWQgPT4gIWlkcy5pbmNsdWRlcyhpZCkpO1xuICAgIHJlbW92ZWRJZHMuZm9yRWFjaChpZCA9PiB0aGlzLmZvcm0ucmVtb3ZlQ29udHJvbChpZCkpO1xuICB9XG59XG4iLCI8cC1vdmVybGF5UGFuZWxcbiAgc3R5bGVDbGFzcz1cIm5hdmlnYXRpb24tc2V0dGluZ3Mtb3ZlcmxheSBmbG93LWhlYWRlci1vdmVybGF5IGNlbnRlclwiXG4gIHNob3dUcmFuc2l0aW9uT3B0aW9ucz1cIjBtc1wiXG4gIGhpZGVUcmFuc2l0aW9uT3B0aW9ucz1cIjBtc1wiXG4+XG4gIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU+XG4gICAgPGRpdiBjbGFzcz1cImZsb3ctaGVhZGVyLW92ZXJsYXlfX3dyYXBwZXJcIiAqdmxMZXQ9XCJyZWFkb25seVByb2R1Y3RJZCQgfCBhc3luYyBhcyByZWFkb25seVByb2R1Y3RJZFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInByb2R1Y3RzLmxlbmd0aCA+IDA7IGVsc2UgZW1wdHlcIj5cbiAgICAgICAgPGgyIGNsYXNzPVwiZmxvdy1oZWFkZXItb3ZlcmxheV9fdGl0bGVcIj5cbiAgICAgICAgICA8c3Bhbj5Qcm9kdWN0cyAoe3sgcHJvZHVjdHMubGVuZ3RoIH19KTwvc3Bhbj5cbiAgICAgICAgICA8aSBjbGFzcz1cInZsLWljb24gdmwtaWNvbi1jbG9zZSBjbG9zZS1pY29uXCIgKGNsaWNrKT1cIm92ZXJsYXlQYW5lbC5oaWRlKClcIj48L2k+XG4gICAgICAgIDwvaDI+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cInByb2R1Y3QgaGVhZGVyXCI+XG4gICAgICAgICAgPHNwYW4+UHJvZHVjdDwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtcmlnaHRcIj5RdHk8L3NwYW4+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXJpZ2h0XCI+TVJSPC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1yaWdodFwiPk5SUjwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNjcm9sbGFibGUtd3JhcHBlclwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9kdWN0XCIgKm5nRm9yPVwibGV0IHByb2R1Y3Qgb2YgcHJvZHVjdHNcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9kdWN0X19pbmZvXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9kdWN0X19pbWFnZS13cmFwcGVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJnZXRJbWFnZVVybChwcm9kdWN0LnByb2R1Y3RJZCkgfCBhc3luYyBhcyBpbWFnZVVybDsgZWxzZSBub0ltYWdlXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwicHJvZHVjdF9faW1hZ2VcIlxuICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyAnYmFja2dyb3VuZC1pbWFnZSc6ICd1cmwoJyArIGltYWdlVXJsICsgJyknIH1cIlxuICAgICAgICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sdW1uIGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid29yZC1icmVha1wiPnt7IHByb2R1Y3QubmFtZSB9fTwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICA8cC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgbGFiZWw9XCJDb25maWd1cmVcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIXByb2R1Y3QuY29uZmlndXJhYmxlIHx8IHJlYWRvbmx5UHJvZHVjdElkID09PSBwcm9kdWN0LnByb2R1Y3RJZFwiXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlQ2xhc3M9XCJwLWJ1dHRvbi1saW5rIHAtYnV0dG9uLXNtIHBsLTBcIlxuICAgICAgICAgICAgICAgICAgICAob25DbGljayk9XCJuYXZpZ2F0ZVRvUHJvZHVjdENvbmZpZ3VyYXRpb24ocHJvZHVjdC5wcm9kdWN0SWQpXCJcbiAgICAgICAgICAgICAgICAgID48L3AtYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPHAtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsPVwiRGVsZXRlXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInJlYWRvbmx5UHJvZHVjdElkID09PSBwcm9kdWN0LnByb2R1Y3RJZFwiXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlQ2xhc3M9XCJwLWJ1dHRvbi1saW5rIHAtYnV0dG9uLXNtIHAtYnV0dG9uLWRhbmdlciBwbC0wIHByLTBcIlxuICAgICAgICAgICAgICAgICAgICAob25DbGljayk9XCJkZWxldGVIYW5kbGVyKHByb2R1Y3QpXCJcbiAgICAgICAgICAgICAgICAgID48L3AtYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgICAgPHAtaW5wdXROdW1iZXJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImZvcm0uY29udHJvbHNbcHJvZHVjdC5pZF0gYXMgY29udHJvbFwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJxdHktY29udHJvbFwiXG4gICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cIiRhbnkoY29udHJvbClcIlxuICAgICAgICAgICAgICAgIFttaW5dPVwiMVwiXG4gICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIChvbkJsdXIpPVwiY29udHJvbEJsdXJIYW5kbGVyKHByb2R1Y3QpXCJcbiAgICAgICAgICAgICAgPjwvcC1pbnB1dE51bWJlcj5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1yaWdodCBwdC0zXCI+JDAuMDA8L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtcmlnaHQgcHQtM1wiPiQwLjAwPC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNub0ltYWdlPlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJ2bC1pY29uIHZsLWljb24tbm8taW1hZ2Ugbm8taW1hZ2UtaWNvblwiPjwvaT5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIG10LTNcIj5cbiAgICAgICAgICA8cC1idXR0b25cbiAgICAgICAgICAgIGxhYmVsPVwiQ2xlYXIgY2FydFwiXG4gICAgICAgICAgICBzdHlsZUNsYXNzPVwicC1idXR0b24tbGluayBwLWJ1dHRvbi1zbSBwLWJ1dHRvbi1kYW5nZXIgcGwtMCBwci0wXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJyZWFkb25seVByb2R1Y3RJZFwiXG4gICAgICAgICAgICAob25DbGljayk9XCJkZWxldGVBbGxIYW5kbGVyKClcIlxuICAgICAgICAgID48L3AtYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8bmctdGVtcGxhdGUgI2VtcHR5PlxuICAgICAgICA8aDIgY2xhc3M9XCJmbG93LWhlYWRlci1vdmVybGF5X190aXRsZVwiPlxuICAgICAgICAgIDxzcGFuPkVtcHR5IENhcnQ8L3NwYW4+XG4gICAgICAgICAgPGkgY2xhc3M9XCJ2bC1pY29uIHZsLWljb24tY2xvc2UgY2xvc2UtaWNvblwiIChjbGljayk9XCJvdmVybGF5UGFuZWwuaGlkZSgpXCI+PC9pPlxuICAgICAgICA8L2gyPlxuXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZW1wdHktc3RhdGVcIj5UaGVyZSBhcmUgbm8gcHJvZHVjdHMgYWRkZWQgdG8gdGhlIFNob3BwaW5nIENhcnQgeWV0Ljwvc3Bhbj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG48L3Atb3ZlcmxheVBhbmVsPlxuIl19
@@ -855,9 +855,7 @@ class ConfigurationService {
855
855
  return this.configurationApiService
856
856
  .configureLineItem({ configurationRequest, runtimeModel, pricingEnabled })
857
857
  .pipe(map(({ lineItem, context, charges, deletedLineItems }) => {
858
- if (context) {
859
- this.contextService.update({ properties: context.properties });
860
- }
858
+ this.contextService.update(context !== null && context !== void 0 ? context : {});
861
859
  this.charges.next(charges !== null && charges !== void 0 ? charges : {});
862
860
  if (deletedLineItems === null || deletedLineItems === void 0 ? void 0 : deletedLineItems.length) {
863
861
  this.showInactiveProductsConfirmation();