@veloceapps/sdk 3.0.14 → 3.0.15

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.
@@ -18,8 +18,8 @@ export declare class FlowConfigurationService {
18
18
  reset(): void;
19
19
  calculate$(currentState: LineItem[]): Observable<PriceSummary>;
20
20
  calculate(currentState: LineItem[]): void;
21
- update$(params: FlowUpdateParams): Observable<PriceSummary>;
22
- update(params: FlowUpdateParams): void;
21
+ update$(updates: FlowUpdateParams[]): Observable<PriceSummary>;
22
+ update(updates: FlowUpdateParams[]): void;
23
23
  delete$(ids: string[]): Observable<PriceSummary>;
24
24
  delete(ids: string[]): void;
25
25
  get(): Observable<LineItem[]>;
@@ -2,12 +2,11 @@ import { LineItem } from '@veloce/core';
2
2
  import { FlowUpdateParams } from '../types/update.types';
3
3
  import * as i0 from "@angular/core";
4
4
  export declare class FlowUpdateService {
5
- update(rootLineItem: LineItem, params: FlowUpdateParams): LineItem;
5
+ update(rootLineItems: LineItem[], updates: FlowUpdateParams[]): void;
6
6
  delete(lineItems: LineItem[], id: string): LineItem[];
7
- private updateQty;
8
- private updateEffectiveStartDate;
9
- private updateEndDate;
10
- private updatePriceAdjustment;
7
+ private applyLineItemUpdate;
8
+ private applyChargeUpdate;
9
+ private applyChargeGroupUpdate;
11
10
  static ɵfac: i0.ɵɵFactoryDeclaration<FlowUpdateService, never>;
12
11
  static ɵprov: i0.ɵɵInjectableDeclaration<FlowUpdateService>;
13
12
  }
@@ -1,4 +1,5 @@
1
1
  import { Injectable } from '@angular/core';
2
+ import { cloneDeep } from 'lodash';
2
3
  import { BehaviorSubject, catchError, map, of, shareReplay, switchMap, tap, throwError } from 'rxjs';
3
4
  import * as i0 from "@angular/core";
4
5
  import * as i1 from "@veloce/api";
@@ -31,11 +32,12 @@ export class FlowConfigurationService {
31
32
  calculate(currentState) {
32
33
  this.calculate$(currentState).subscribe();
33
34
  }
34
- update$(params) {
35
- return of([]).pipe(map(() => this.lineItems.value.map(li => this.updateService.update(li, params))), this.handleError(), switchMap(currentState => this.calculate$(currentState)));
35
+ update$(updates) {
36
+ const lineItems = cloneDeep(this.lineItems.value);
37
+ return of([]).pipe(tap(() => this.updateService.update(lineItems, updates)), this.handleError(), switchMap(() => this.calculate$(lineItems)));
36
38
  }
37
- update(params) {
38
- this.update$(params).subscribe();
39
+ update(updates) {
40
+ this.update$(updates).subscribe();
39
41
  }
40
42
  delete$(ids) {
41
43
  return of([]).pipe(map(() => ids.reduce((result, id) => this.updateService.delete(result, id), this.lineItems.value)), this.handleError(), switchMap(currentState => this.calculate$(currentState)));
@@ -78,4 +80,4 @@ FlowConfigurationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0
78
80
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FlowConfigurationService, decorators: [{
79
81
  type: Injectable
80
82
  }], ctorParameters: function () { return [{ type: i1.PriceApiService }, { type: i2.ContextService }, { type: i3.MessageService }, { type: i4.FlowUpdateService }]; } });
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvdy1jb25maWd1cmF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jbXMvbW9kdWxlcy9mbG93LWNvbmZpZ3VyYXRpb24vc2VydmljZXMvZmxvdy1jb25maWd1cmF0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU0zQyxPQUFPLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQWMsRUFBRSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7O0FBS2pILE1BQU0sT0FBTyx3QkFBd0I7SUFJbkMsWUFDVSxlQUFnQyxFQUNoQyxjQUE4QixFQUM5QixjQUE4QixFQUM5QixhQUFnQztRQUhoQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixrQkFBYSxHQUFiLGFBQWEsQ0FBbUI7UUFQbEMsY0FBUyxHQUFHLElBQUksZUFBZSxDQUFhLEVBQUUsQ0FBQyxDQUFDO1FBQ2hELFlBQU8sR0FBRyxJQUFJLGVBQWUsQ0FBOEIsRUFBRSxDQUFDLENBQUM7SUFPcEUsQ0FBQztJQUVHLEtBQUs7UUFDVixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN4QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRUQsVUFBVSxDQUFDLFlBQXdCO1FBQ2pDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUM7UUFFOUMsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxFQUFF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LEVBQWlCLEVBQUU7WUFDbEQsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUNqQixVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ2pCLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztnQkFFL0QsK0NBQStDO2dCQUMvQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO2dCQUVsRCxPQUFPLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNqQyxDQUFDLENBQUMsQ0FDSCxDQUFDO1FBQ0osQ0FBQyxDQUFDO0lBQ0osQ0FBQzs7c0hBbEdVLHdCQUF3QjswSEFBeEIsd0JBQXdCOzRGQUF4Qix3QkFBd0I7a0JBRHBDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQcmljZUFwaVNlcnZpY2UgfSBmcm9tICdAdmVsb2NlL2FwaSc7XG5pbXBvcnQgeyBDb25maWd1cmF0aW9uQ29udGV4dCwgTGluZUl0ZW0sIFByaWNlUGxhbkNoYXJnZSwgUHJpY2VTdW1tYXJ5IH0gZnJvbSAnQHZlbG9jZS9jb3JlJztcbmltcG9ydCB7IENvbnRleHRTZXJ2aWNlIH0gZnJvbSAnQHZlbG9jZS9zZGsvcnVudGltZSc7XG5pbXBvcnQgeyBEaWN0aW9uYXJ5IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAncHJpbWVuZy9hcGknO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjYXRjaEVycm9yLCBtYXAsIE9ic2VydmFibGUsIG9mLCBzaGFyZVJlcGxheSwgc3dpdGNoTWFwLCB0YXAsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZsb3dVcGRhdGVQYXJhbXMgfSBmcm9tICcuLi90eXBlcy91cGRhdGUudHlwZXMnO1xuaW1wb3J0IHsgRmxvd1VwZGF0ZVNlcnZpY2UgfSBmcm9tICcuL2Zsb3ctdXBkYXRlLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRmxvd0NvbmZpZ3VyYXRpb25TZXJ2aWNlIHtcbiAgcHJpdmF0ZSBsaW5lSXRlbXMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PExpbmVJdGVtW10+KFtdKTtcbiAgcHJpdmF0ZSBjaGFyZ2VzID0gbmV3IEJlaGF2aW9yU3ViamVjdDxEaWN0aW9uYXJ5PFByaWNlUGxhbkNoYXJnZT4+KHt9KTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHByaWNlQXBpU2VydmljZTogUHJpY2VBcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29udGV4dFNlcnZpY2U6IENvbnRleHRTZXJ2aWNlLFxuICAgIHByaXZhdGUgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgdXBkYXRlU2VydmljZTogRmxvd1VwZGF0ZVNlcnZpY2UsXG4gICkge31cblxuICBwdWJsaWMgcmVzZXQoKSB7XG4gICAgdGhpcy5saW5lSXRlbXMubmV4dChbXSk7XG4gICAgdGhpcy5jaGFyZ2VzLm5leHQoe30pO1xuICB9XG5cbiAgY2FsY3VsYXRlJChjdXJyZW50U3RhdGU6IExpbmVJdGVtW10pOiBPYnNlcnZhYmxlPFByaWNlU3VtbWFyeT4ge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmNvbnRleHRTZXJ2aWNlLnJlc29sdmUoKTtcblxuICAgIHJldHVybiB0aGlzLnByaWNlQXBpU2VydmljZS5jYWxjdWxhdGUoeyBjb250ZXh0LCBjdXJyZW50U3RhdGUgfSkucGlwZShcbiAgICAgIHRhcCgocmVzdWx0OiBQcmljZVN1bW1hcnkpID0+IHtcbiAgICAgICAgdGhpcy5saW5lSXRlbXMubmV4dChyZXN1bHQubGluZUl0ZW1zKTtcbiAgICAgICAgdGhpcy5jaGFyZ2VzLm5leHQocmVzdWx0LmNoYXJnZXMpO1xuXG4gICAgICAgIGlmIChjb250ZXh0KSB7XG4gICAgICAgICAgdGhpcy5jb250ZXh0U2VydmljZS51cGRhdGUoeyBwcm9wZXJ0aWVzOiBjb250ZXh0LnByb3BlcnRpZXMgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgICAgdGhpcy5oYW5kbGVFcnJvcigpLFxuICAgICk7XG4gIH1cblxuICBjYWxjdWxhdGUoY3VycmVudFN0YXRlOiBMaW5lSXRlbVtdKTogdm9pZCB7XG4gICAgdGhpcy5jYWxjdWxhdGUkKGN1cnJlbnRTdGF0ZSkuc3Vic2NyaWJlKCk7XG4gIH1cblxuICB1cGRhdGUkKHBhcmFtczogRmxvd1VwZGF0ZVBhcmFtcyk6IE9ic2VydmFibGU8UHJpY2VTdW1tYXJ5PiB7XG4gICAgcmV0dXJuIG9mKFtdKS5waXBlKFxuICAgICAgbWFwKCgpID0+IHRoaXMubGluZUl0ZW1zLnZhbHVlLm1hcChsaSA9PiB0aGlzLnVwZGF0ZVNlcnZpY2UudXBkYXRlKGxpLCBwYXJhbXMpKSksXG4gICAgICB0aGlzLmhhbmRsZUVycm9yKCksXG4gICAgICBzd2l0Y2hNYXAoY3VycmVudFN0YXRlID0+IHRoaXMuY2FsY3VsYXRlJChjdXJyZW50U3RhdGUpKSxcbiAgICApO1xuICB9XG5cbiAgdXBkYXRlKHBhcmFtczogRmxvd1VwZGF0ZVBhcmFtcyk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlJChwYXJhbXMpLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgZGVsZXRlJChpZHM6IHN0cmluZ1tdKTogT2JzZXJ2YWJsZTxQcmljZVN1bW1hcnk+IHtcbiAgICByZXR1cm4gb2YoW10pLnBpcGUoXG4gICAgICBtYXAoKCkgPT4gaWRzLnJlZHVjZSgocmVzdWx0LCBpZCkgPT4gdGhpcy51cGRhdGVTZXJ2aWNlLmRlbGV0ZShyZXN1bHQsIGlkKSwgdGhpcy5saW5lSXRlbXMudmFsdWUpKSxcbiAgICAgIHRoaXMuaGFuZGxlRXJyb3IoKSxcbiAgICAgIHN3aXRjaE1hcChjdXJyZW50U3RhdGUgPT4gdGhpcy5jYWxjdWxhdGUkKGN1cnJlbnRTdGF0ZSkpLFxuICAgICk7XG4gIH1cblxuICBkZWxldGUoaWRzOiBzdHJpbmdbXSk6IHZvaWQge1xuICAgIHRoaXMuZGVsZXRlJChpZHMpLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCgpOiBPYnNlcnZhYmxlPExpbmVJdGVtW10+IHtcbiAgICByZXR1cm4gdGhpcy5saW5lSXRlbXMuYXNPYnNlcnZhYmxlKCkucGlwZShzaGFyZVJlcGxheSgpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRTbmFwc2hvdCgpOiBMaW5lSXRlbVtdIHtcbiAgICByZXR1cm4gdGhpcy5saW5lSXRlbXMudmFsdWUuc2xpY2UoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY2hhcmdlcyQoKTogT2JzZXJ2YWJsZTxEaWN0aW9uYXJ5PFByaWNlUGxhbkNoYXJnZT4+IHtcbiAgICByZXR1cm4gdGhpcy5jaGFyZ2VzLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBjaGFyZ2VzU25hcHNob3QoKTogRGljdGlvbmFyeTxQcmljZVBsYW5DaGFyZ2U+IHtcbiAgICByZXR1cm4gdGhpcy5jaGFyZ2VzLnZhbHVlO1xuICB9XG5cbiAgcHVibGljIGdldCBjb250ZXh0U25hcHNob3QoKTogQ29uZmlndXJhdGlvbkNvbnRleHQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5jb250ZXh0U2VydmljZS5yZXNvbHZlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNvbnRleHQkKCk6IE9ic2VydmFibGU8Q29uZmlndXJhdGlvbkNvbnRleHQgfCBudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMuY29udGV4dFNlcnZpY2UucmVzb2x2ZSQoKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlRXJyb3IoKSB7XG4gICAgcmV0dXJuIDxUPihzb3VyY2UkOiBPYnNlcnZhYmxlPFQ+KTogT2JzZXJ2YWJsZTxUPiA9PiB7XG4gICAgICByZXR1cm4gc291cmNlJC5waXBlKFxuICAgICAgICBjYXRjaEVycm9yKGVycm9yID0+IHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnZXJyb3InLCBzdW1tYXJ5OiBlcnJvciB9KTtcblxuICAgICAgICAgIC8vIGJvdW5jZSBiYWNrIGlmIGNvbmZpZ3VyYXRpb24gY2FsbCBoYXMgZmFpbGVkXG4gICAgICAgICAgdGhpcy5saW5lSXRlbXMubmV4dCh0aGlzLmxpbmVJdGVtcy52YWx1ZS5zbGljZSgpKTtcblxuICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IGVycm9yKTtcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIH07XG4gIH1cbn1cbiJdfQ==
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvdy1jb25maWd1cmF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jbXMvbW9kdWxlcy9mbG93LWNvbmZpZ3VyYXRpb24vc2VydmljZXMvZmxvdy1jb25maWd1cmF0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUkzQyxPQUFPLEVBQUUsU0FBUyxFQUFjLE1BQU0sUUFBUSxDQUFDO0FBRS9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7QUFLakgsTUFBTSxPQUFPLHdCQUF3QjtJQUluQyxZQUNVLGVBQWdDLEVBQ2hDLGNBQThCLEVBQzlCLGNBQThCLEVBQzlCLGFBQWdDO1FBSGhDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGtCQUFhLEdBQWIsYUFBYSxDQUFtQjtRQVBsQyxjQUFTLEdBQUcsSUFBSSxlQUFlLENBQWEsRUFBRSxDQUFDLENBQUM7UUFDaEQsWUFBTyxHQUFHLElBQUksZUFBZSxDQUE4QixFQUFFLENBQUMsQ0FBQztJQU9wRSxDQUFDO0lBRUcsS0FBSztRQUNWLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxVQUFVLENBQUMsWUFBd0I7UUFDakMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUU5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LENBQUM7SUFFTyxXQUFXO1FBQ2pCLE9BQU8sQ0FBSSxPQUFzQixFQUFpQixFQUFFO1lBQ2xELE9BQU8sT0FBTyxDQUFDLElBQUksQ0FDakIsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNqQixPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNyQixJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7Z0JBRS9ELCtDQUErQztnQkFDL0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztnQkFFbEQsT0FBTyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDakMsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUNKLENBQUMsQ0FBQztJQUNKLENBQUM7O3NIQXBHVSx3QkFBd0I7MEhBQXhCLHdCQUF3Qjs0RkFBeEIsd0JBQXdCO2tCQURwQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUHJpY2VBcGlTZXJ2aWNlIH0gZnJvbSAnQHZlbG9jZS9hcGknO1xuaW1wb3J0IHsgQ29uZmlndXJhdGlvbkNvbnRleHQsIExpbmVJdGVtLCBQcmljZVBsYW5DaGFyZ2UsIFByaWNlU3VtbWFyeSB9IGZyb20gJ0B2ZWxvY2UvY29yZSc7XG5pbXBvcnQgeyBDb250ZXh0U2VydmljZSB9IGZyb20gJ0B2ZWxvY2Uvc2RrL3J1bnRpbWUnO1xuaW1wb3J0IHsgY2xvbmVEZWVwLCBEaWN0aW9uYXJ5IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAncHJpbWVuZy9hcGknO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjYXRjaEVycm9yLCBtYXAsIE9ic2VydmFibGUsIG9mLCBzaGFyZVJlcGxheSwgc3dpdGNoTWFwLCB0YXAsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZsb3dVcGRhdGVQYXJhbXMgfSBmcm9tICcuLi90eXBlcy91cGRhdGUudHlwZXMnO1xuaW1wb3J0IHsgRmxvd1VwZGF0ZVNlcnZpY2UgfSBmcm9tICcuL2Zsb3ctdXBkYXRlLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRmxvd0NvbmZpZ3VyYXRpb25TZXJ2aWNlIHtcbiAgcHJpdmF0ZSBsaW5lSXRlbXMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PExpbmVJdGVtW10+KFtdKTtcbiAgcHJpdmF0ZSBjaGFyZ2VzID0gbmV3IEJlaGF2aW9yU3ViamVjdDxEaWN0aW9uYXJ5PFByaWNlUGxhbkNoYXJnZT4+KHt9KTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHByaWNlQXBpU2VydmljZTogUHJpY2VBcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29udGV4dFNlcnZpY2U6IENvbnRleHRTZXJ2aWNlLFxuICAgIHByaXZhdGUgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgdXBkYXRlU2VydmljZTogRmxvd1VwZGF0ZVNlcnZpY2UsXG4gICkge31cblxuICBwdWJsaWMgcmVzZXQoKSB7XG4gICAgdGhpcy5saW5lSXRlbXMubmV4dChbXSk7XG4gICAgdGhpcy5jaGFyZ2VzLm5leHQoe30pO1xuICB9XG5cbiAgY2FsY3VsYXRlJChjdXJyZW50U3RhdGU6IExpbmVJdGVtW10pOiBPYnNlcnZhYmxlPFByaWNlU3VtbWFyeT4ge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmNvbnRleHRTZXJ2aWNlLnJlc29sdmUoKTtcblxuICAgIHJldHVybiB0aGlzLnByaWNlQXBpU2VydmljZS5jYWxjdWxhdGUoeyBjb250ZXh0LCBjdXJyZW50U3RhdGUgfSkucGlwZShcbiAgICAgIHRhcCgocmVzdWx0OiBQcmljZVN1bW1hcnkpID0+IHtcbiAgICAgICAgdGhpcy5saW5lSXRlbXMubmV4dChyZXN1bHQubGluZUl0ZW1zKTtcbiAgICAgICAgdGhpcy5jaGFyZ2VzLm5leHQocmVzdWx0LmNoYXJnZXMpO1xuXG4gICAgICAgIGlmIChjb250ZXh0KSB7XG4gICAgICAgICAgdGhpcy5jb250ZXh0U2VydmljZS51cGRhdGUoeyBwcm9wZXJ0aWVzOiBjb250ZXh0LnByb3BlcnRpZXMgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgICAgdGhpcy5oYW5kbGVFcnJvcigpLFxuICAgICk7XG4gIH1cblxuICBjYWxjdWxhdGUoY3VycmVudFN0YXRlOiBMaW5lSXRlbVtdKTogdm9pZCB7XG4gICAgdGhpcy5jYWxjdWxhdGUkKGN1cnJlbnRTdGF0ZSkuc3Vic2NyaWJlKCk7XG4gIH1cblxuICB1cGRhdGUkKHVwZGF0ZXM6IEZsb3dVcGRhdGVQYXJhbXNbXSk6IE9ic2VydmFibGU8UHJpY2VTdW1tYXJ5PiB7XG4gICAgY29uc3QgbGluZUl0ZW1zID0gY2xvbmVEZWVwKHRoaXMubGluZUl0ZW1zLnZhbHVlKTtcblxuICAgIHJldHVybiBvZihbXSkucGlwZShcbiAgICAgIHRhcCgoKSA9PiB0aGlzLnVwZGF0ZVNlcnZpY2UudXBkYXRlKGxpbmVJdGVtcywgdXBkYXRlcykpLFxuICAgICAgdGhpcy5oYW5kbGVFcnJvcigpLFxuICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuY2FsY3VsYXRlJChsaW5lSXRlbXMpKSxcbiAgICApO1xuICB9XG5cbiAgdXBkYXRlKHVwZGF0ZXM6IEZsb3dVcGRhdGVQYXJhbXNbXSk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlJCh1cGRhdGVzKS5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIGRlbGV0ZSQoaWRzOiBzdHJpbmdbXSk6IE9ic2VydmFibGU8UHJpY2VTdW1tYXJ5PiB7XG4gICAgcmV0dXJuIG9mKFtdKS5waXBlKFxuICAgICAgbWFwKCgpID0+IGlkcy5yZWR1Y2UoKHJlc3VsdCwgaWQpID0+IHRoaXMudXBkYXRlU2VydmljZS5kZWxldGUocmVzdWx0LCBpZCksIHRoaXMubGluZUl0ZW1zLnZhbHVlKSksXG4gICAgICB0aGlzLmhhbmRsZUVycm9yKCksXG4gICAgICBzd2l0Y2hNYXAoY3VycmVudFN0YXRlID0+IHRoaXMuY2FsY3VsYXRlJChjdXJyZW50U3RhdGUpKSxcbiAgICApO1xuICB9XG5cbiAgZGVsZXRlKGlkczogc3RyaW5nW10pOiB2b2lkIHtcbiAgICB0aGlzLmRlbGV0ZSQoaWRzKS5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQoKTogT2JzZXJ2YWJsZTxMaW5lSXRlbVtdPiB7XG4gICAgcmV0dXJuIHRoaXMubGluZUl0ZW1zLmFzT2JzZXJ2YWJsZSgpLnBpcGUoc2hhcmVSZXBsYXkoKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0U25hcHNob3QoKTogTGluZUl0ZW1bXSB7XG4gICAgcmV0dXJuIHRoaXMubGluZUl0ZW1zLnZhbHVlLnNsaWNlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNoYXJnZXMkKCk6IE9ic2VydmFibGU8RGljdGlvbmFyeTxQcmljZVBsYW5DaGFyZ2U+PiB7XG4gICAgcmV0dXJuIHRoaXMuY2hhcmdlcy5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY2hhcmdlc1NuYXBzaG90KCk6IERpY3Rpb25hcnk8UHJpY2VQbGFuQ2hhcmdlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2hhcmdlcy52YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY29udGV4dFNuYXBzaG90KCk6IENvbmZpZ3VyYXRpb25Db250ZXh0IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuY29udGV4dFNlcnZpY2UucmVzb2x2ZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBjb250ZXh0JCgpOiBPYnNlcnZhYmxlPENvbmZpZ3VyYXRpb25Db250ZXh0IHwgbnVsbD4ge1xuICAgIHJldHVybiB0aGlzLmNvbnRleHRTZXJ2aWNlLnJlc29sdmUkKCk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUVycm9yKCkge1xuICAgIHJldHVybiA8VD4oc291cmNlJDogT2JzZXJ2YWJsZTxUPik6IE9ic2VydmFibGU8VD4gPT4ge1xuICAgICAgcmV0dXJuIHNvdXJjZSQucGlwZShcbiAgICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ2Vycm9yJywgc3VtbWFyeTogZXJyb3IgfSk7XG5cbiAgICAgICAgICAvLyBib3VuY2UgYmFjayBpZiBjb25maWd1cmF0aW9uIGNhbGwgaGFzIGZhaWxlZFxuICAgICAgICAgIHRoaXMubGluZUl0ZW1zLm5leHQodGhpcy5saW5lSXRlbXMudmFsdWUuc2xpY2UoKSk7XG5cbiAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBlcnJvcik7XG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -1,21 +1,38 @@
1
1
  import { Injectable } from '@angular/core';
2
+ import { flatten } from 'lodash';
2
3
  import moment from 'moment';
3
4
  import { LineItemWorker } from '../../../types/line-item.types';
4
- import { findLineItem, findLineItemWithComparator } from '../../../utils/line-item.utils';
5
5
  import * as i0 from "@angular/core";
6
6
  export class FlowUpdateService {
7
- update(rootLineItem, params) {
8
- switch (params.attributeType) {
9
- case 'QTY':
10
- return this.updateQty(rootLineItem, params);
11
- case 'EFFECTIVE_START_DATE':
12
- return this.updateEffectiveStartDate(rootLineItem, params);
13
- case 'END_DATE':
14
- return this.updateEndDate(rootLineItem, params);
15
- case 'PRICE_ADJUSTMENT':
16
- return this.updatePriceAdjustment(rootLineItem, params);
17
- default:
18
- return rootLineItem;
7
+ update(rootLineItems, updates) {
8
+ let remainingUpdates = [...updates];
9
+ let currentLevel = rootLineItems;
10
+ while (currentLevel.length && remainingUpdates.length) {
11
+ currentLevel.forEach(li => {
12
+ const unhandledUpdates = [];
13
+ remainingUpdates.forEach(update => {
14
+ let updated = false;
15
+ switch (update.dataType) {
16
+ case 'LINEITEM':
17
+ updated = this.applyLineItemUpdate(li, update);
18
+ break;
19
+ case 'CHARGE':
20
+ updated = this.applyChargeUpdate(li, update);
21
+ break;
22
+ case 'GROUP_CHARGE':
23
+ updated = this.applyChargeGroupUpdate(li, update);
24
+ break;
25
+ default:
26
+ // Unknown dataType. Do not try to handle it anymore
27
+ updated = true;
28
+ }
29
+ if (!updated) {
30
+ unhandledUpdates.push(update);
31
+ }
32
+ });
33
+ remainingUpdates = unhandledUpdates;
34
+ });
35
+ currentLevel = flatten(currentLevel.map(parent => parent.lineItems));
19
36
  }
20
37
  }
21
38
  delete(lineItems, id) {
@@ -35,71 +52,58 @@ export class FlowUpdateService {
35
52
  const filtered = lineItems.filter(lineItem => !idsToRemove.includes(lineItem.id));
36
53
  return filtered.map(lineItem => new LineItemWorker(lineItem).remove(id).li);
37
54
  }
38
- updateQty(rootLineItem, params) {
39
- // change quantity allowed only for lineItem
40
- if (params.dataType !== 'LINEITEM') {
41
- return rootLineItem;
42
- }
43
- const lineItem = findLineItem(params.id, [rootLineItem]);
44
- if (!lineItem) {
45
- return rootLineItem;
55
+ applyLineItemUpdate(lineItem, update) {
56
+ if (lineItem.id !== update.id) {
57
+ return false;
46
58
  }
47
- if (lineItem.id !== rootLineItem.id) {
48
- throw new Error('Quantity can be changed only for root product');
49
- }
50
- const updated = new LineItemWorker(rootLineItem).replace(Object.assign(Object.assign({}, lineItem), { qty: params.newValue }));
51
- return updated.li;
52
- }
53
- updateEffectiveStartDate(rootLineItem, params) {
54
- const lineItem = findLineItem(params.id, [rootLineItem]);
55
- if (!lineItem) {
56
- return rootLineItem;
59
+ switch (update.attributeType) {
60
+ case 'QTY':
61
+ lineItem.qty = update.newValue;
62
+ break;
63
+ case 'EFFECTIVE_START_DATE':
64
+ lineItem.effectiveStartDate = moment(update.newValue).format('YYYY-MM-DD');
65
+ break;
66
+ case 'END_DATE':
67
+ lineItem.endDate = moment(update.newValue).format('YYYY-MM-DD');
68
+ break;
69
+ case 'PRICE_ADJUSTMENT':
70
+ {
71
+ const [charge] = lineItem.chargeItems;
72
+ if (charge) {
73
+ charge.priceAdjustment = update.newValue;
74
+ }
75
+ }
76
+ break;
77
+ default:
78
+ throw new Error(`Not suppored AttributeType for LineItem update: ${update.attributeType}`);
57
79
  }
58
- const updated = new LineItemWorker(rootLineItem).replace(Object.assign(Object.assign({}, lineItem), { effectiveStartDate: moment(params.newValue).format('YYYY-MM-DD') }));
59
- return updated.li;
80
+ return true;
60
81
  }
61
- updateEndDate(rootLineItem, params) {
62
- const lineItem = findLineItem(params.id, [rootLineItem]);
63
- if (!lineItem) {
64
- return rootLineItem;
82
+ applyChargeUpdate(lineItem, update) {
83
+ const foundCharge = lineItem.chargeItems.find(({ id }) => id === update.id);
84
+ if (!foundCharge) {
85
+ return false;
65
86
  }
66
- const updated = new LineItemWorker(rootLineItem).replace(Object.assign(Object.assign({}, lineItem), { endDate: moment(params.newValue).format('YYYY-MM-DD') }));
67
- return updated.li;
68
- }
69
- updatePriceAdjustment(rootLineItem, params) {
70
- const comparator = params.dataType === 'LINEITEM'
71
- ? (li) => li.id === params.id
72
- : params.dataType === 'CHARGE'
73
- ? (li) => li.chargeItems.some(({ id }) => id === params.id)
74
- : params.dataType === 'GROUP_CHARGE'
75
- ? (li) => li.chargeGroupItems.some(({ id }) => id === params.id)
76
- : undefined;
77
- if (!comparator) {
78
- return rootLineItem;
87
+ if (update.attributeType === 'PRICE_ADJUSTMENT') {
88
+ foundCharge.priceAdjustment = update.newValue;
79
89
  }
80
- const lineItem = findLineItemWithComparator([rootLineItem], comparator);
81
- if (!lineItem) {
82
- return rootLineItem;
90
+ else {
91
+ throw new Error(`Not suppored AttributeType for Charge Item update: ${update.attributeType}`);
83
92
  }
84
- let updated;
85
- if (params.dataType === 'LINEITEM') {
86
- updated = Object.assign(Object.assign({}, lineItem), { chargeItems: lineItem.chargeItems.map((chargeItem, index) => {
87
- return index === 0 ? Object.assign(Object.assign({}, chargeItem), { priceAdjustment: params.newValue }) : chargeItem;
88
- }) });
93
+ return true;
94
+ }
95
+ applyChargeGroupUpdate(lineItem, update) {
96
+ const foundChargeGroup = lineItem.chargeGroupItems.find(({ id }) => id === update.id);
97
+ if (!foundChargeGroup) {
98
+ return false;
89
99
  }
90
- else if (params.dataType === 'CHARGE') {
91
- updated = Object.assign(Object.assign({}, lineItem), { chargeItems: lineItem.chargeItems.map(chargeItem => {
92
- return chargeItem.id === params.id ? Object.assign(Object.assign({}, chargeItem), { priceAdjustment: params.newValue }) : chargeItem;
93
- }) });
100
+ if (update.attributeType === 'PRICE_ADJUSTMENT') {
101
+ foundChargeGroup.priceAdjustment = update.newValue;
94
102
  }
95
- else if (params.dataType === 'GROUP_CHARGE') {
96
- updated = Object.assign(Object.assign({}, lineItem), { chargeGroupItems: lineItem.chargeGroupItems.map(chargeGroupItem => {
97
- return chargeGroupItem.id === params.id
98
- ? Object.assign(Object.assign({}, chargeGroupItem), { priceAdjustment: params.newValue }) : chargeGroupItem;
99
- }) });
103
+ else {
104
+ throw new Error(`Not suppored AttributeType for Charge Group Item update: ${update.attributeType}`);
100
105
  }
101
- const updatedRootLineItem = updated ? new LineItemWorker(rootLineItem).replace(updated).li : rootLineItem;
102
- return updatedRootLineItem;
106
+ return true;
103
107
  }
104
108
  }
105
109
  FlowUpdateService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FlowUpdateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
@@ -107,4 +111,4 @@ FlowUpdateService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", ve
107
111
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FlowUpdateService, decorators: [{
108
112
  type: Injectable
109
113
  }] });
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvdy11cGRhdGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2Ntcy9tb2R1bGVzL2Zsb3ctY29uZmlndXJhdGlvbi9zZXJ2aWNlcy9mbG93LXVwZGF0ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRSxPQUFPLEVBQUUsWUFBWSxFQUFFLDBCQUEwQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7O0FBSTFGLE1BQU0sT0FBTyxpQkFBaUI7SUFDckIsTUFBTSxDQUFDLFlBQXNCLEVBQUUsTUFBd0I7UUFDNUQsUUFBUSxNQUFNLENBQUMsYUFBYSxFQUFFO1lBQzVCLEtBQUssS0FBSztnQkFDUixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQzlDLEtBQUssc0JBQXNCO2dCQUN6QixPQUFPLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDN0QsS0FBSyxVQUFVO2dCQUNiLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDbEQsS0FBSyxrQkFBa0I7Z0JBQ3JCLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDLFlBQVksRUFBRSxNQUFNLENBQUMsQ0FBQztZQUMxRDtnQkFDRSxPQUFPLFlBQVksQ0FBQztTQUN2QjtJQUNILENBQUM7SUFFTSxNQUFNLENBQUMsU0FBcUIsRUFBRSxFQUFVO1FBQzdDLE1BQU0sV0FBVyxHQUFhLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbkMsTUFBTSxnQkFBZ0IsR0FBRyxTQUFTLENBQUMsSUFB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QVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMaW5lSXRlbSB9IGZyb20gJ0B2ZWxvY2UvY29yZSc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyBMaW5lSXRlbVdvcmtlciB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL2xpbmUtaXRlbS50eXBlcyc7XG5pbXBvcnQgeyBmaW5kTGluZUl0ZW0sIGZpbmRMaW5lSXRlbVdpdGhDb21wYXJhdG9yIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvbGluZS1pdGVtLnV0aWxzJztcbmltcG9ydCB7IEZsb3dVcGRhdGVQYXJhbXMgfSBmcm9tICcuLi90eXBlcy91cGRhdGUudHlwZXMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRmxvd1VwZGF0ZVNlcnZpY2Uge1xuICBwdWJsaWMgdXBkYXRlKHJvb3RMaW5lSXRlbTogTGluZUl0ZW0sIHBhcmFtczogRmxvd1VwZGF0ZVBhcmFtcyk6IExpbmVJdGVtIHtcbiAgICBzd2l0Y2ggKHBhcmFtcy5hdHRyaWJ1dGVUeXBlKSB7XG4gICAgICBjYXNlICdRVFknOlxuICAgICAgICByZXR1cm4gdGhpcy51cGRhdGVRdHkocm9vdExpbmVJdGVtLCBwYXJhbXMpO1xuICAgICAgY2FzZSAnRUZGRUNUSVZFX1NUQVJUX0RBVEUnOlxuICAgICAgICByZXR1cm4gdGhpcy51cGRhdGVFZmZlY3RpdmVTdGFydERhdGUocm9vdExpbmVJdGVtLCBwYXJhbXMpO1xuICAgICAgY2FzZSAnRU5EX0RBVEUnOlxuICAgICAgICByZXR1cm4gdGhpcy51cGRhdGVFbmREYXRlKHJvb3RMaW5lSXRlbSwgcGFyYW1zKTtcbiAgICAgIGNhc2UgJ1BSSUNFX0FESlVTVE1FTlQnOlxuICAgICAgICByZXR1cm4gdGhpcy51cGRhdGVQcmljZUFkanVzdG1lbnQocm9vdExpbmVJdGVtLCBwYXJhbXMpO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHJvb3RMaW5lSXRlbTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZGVsZXRlKGxpbmVJdGVtczogTGluZUl0ZW1bXSwgaWQ6IHN0cmluZyk6IExpbmVJdGVtW10ge1xuICAgIGNvbnN0IGlkc1RvUmVtb3ZlOiBzdHJpbmdbXSA9IFtpZF07XG4gICAgY29uc3QgdG9wTGV2ZWxMaW5lSXRlbSA9IGxpbmVJdGVtcy5maW5kKGxpID0+IGxpLmlkID09PSBpZCk7XG5cbiAgICBpZiAodG9wTGV2ZWxMaW5lSXRlbSkge1xuICAgICAgLy8gZmluZCB0ZXJtLXJlbGF0ZWQgbGluZSBpdGVtcyAod2hpY2ggYXJlIG9ubHkgdG9wIGxldmVsKVxuICAgICAgLy8gZXhwaXJlZCB0ZXJtIGxpbmUgaXRlbXMgd29uJ3QgYmUgZGVsZXRlZFxuICAgICAgbGV0IGZvdW5kVGVybUxpbmVJdGVtOiBMaW5lSXRlbSB8IHVuZGVmaW5lZCA9IHRvcExldmVsTGluZUl0ZW07XG5cbiAgICAgIHdoaWxlIChmb3VuZFRlcm1MaW5lSXRlbSkge1xuICAgICAgICBmb3VuZFRlcm1MaW5lSXRlbSA9IGxpbmVJdGVtcy5maW5kKGxpID0+IGZvdW5kVGVybUxpbmVJdGVtICYmIGxpLnJhbXBJbnN0YW5jZUlkID09PSBmb3VuZFRlcm1MaW5lSXRlbS5pZCk7XG4gICAgICAgIGlmIChmb3VuZFRlcm1MaW5lSXRlbSkge1xuICAgICAgICAgIGlkc1RvUmVtb3ZlLnB1c2goZm91bmRUZXJtTGluZUl0ZW0uaWQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgZmlsdGVyZWQgPSBsaW5lSXRlbXMuZmlsdGVyKGxpbmVJdGVtID0+ICFpZHNUb1JlbW92ZS5pbmNsdWRlcyhsaW5lSXRlbS5pZCkpO1xuICAgIHJldHVybiBmaWx0ZXJlZC5tYXAobGluZUl0ZW0gPT4gbmV3IExpbmVJdGVtV29ya2VyKGxpbmVJdGVtKS5yZW1vdmUoaWQpLmxpKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlUXR5KHJvb3RMaW5lSXRlbTogTGluZUl0ZW0sIHBhcmFtczogRmxvd1VwZGF0ZVBhcmFtcyk6IExpbmVJdGVtIHtcbiAgICAvLyBjaGFuZ2UgcXVhbnRpdHkgYWxsb3dlZCBvbmx5IGZvciBsaW5lSXRlbVxuICAgIGlmIChwYXJhbXMuZGF0YVR5cGUgIT09ICdMSU5FSVRFTScpIHtcbiAgICAgIHJldHVybiByb290TGluZUl0ZW07XG4gICAgfVxuXG4gICAgY29uc3QgbGluZUl0ZW0gPSBmaW5kTGluZUl0ZW0ocGFyYW1zLmlkLCBbcm9vdExpbmVJdGVtXSk7XG5cbiAgICBpZiAoIWxpbmVJdGVtKSB7XG4gICAgICByZXR1cm4gcm9vdExpbmVJdGVtO1xuICAgIH1cblxuICAgIGlmIChsaW5lSXRlbS5pZCAhPT0gcm9vdExpbmVJdGVtLmlkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1F1YW50aXR5IGNhbiBiZSBjaGFuZ2VkIG9ubHkgZm9yIHJvb3QgcHJvZHVjdCcpO1xuICAgIH1cblxuICAgIGNvbnN0IHVwZGF0ZWQgPSBuZXcgTGluZUl0ZW1Xb3JrZXIocm9vdExpbmVJdGVtKS5yZXBsYWNlKHsgLi4ubGluZUl0ZW0sIHF0eTogcGFyYW1zLm5ld1ZhbHVlIH0pO1xuICAgIHJldHVybiB1cGRhdGVkLmxpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVFZmZlY3RpdmVTdGFydERhdGUocm9vdExpbmVJdGVtOiBMaW5lSXRlbSwgcGFyYW1zOiBGbG93VXBkYXRlUGFyYW1zKTogTGluZUl0ZW0ge1xuICAgIGNvbnN0IGxpbmVJdGVtID0gZmluZExpbmVJdGVtKHBhcmFtcy5pZCwgW3Jvb3RMaW5lSXRlbV0pO1xuXG4gICAgaWYgKCFsaW5lSXRlbSkge1xuICAgICAgcmV0dXJuIHJvb3RMaW5lSXRlbTtcbiAgICB9XG5cbiAgICBjb25zdCB1cGRhdGVkID0gbmV3IExpbmVJdGVtV29ya2VyKHJvb3RMaW5lSXRlbSkucmVwbGFjZSh7XG4gICAgICAuLi5saW5lSXRlbSxcbiAgICAgIGVmZmVjdGl2ZVN0YXJ0RGF0ZTogbW9tZW50KHBhcmFtcy5uZXdWYWx1ZSkuZm9ybWF0KCdZWVlZLU1NLUREJyksXG4gICAgfSk7XG4gICAgcmV0dXJuIHVwZGF0ZWQubGk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUVuZERhdGUocm9vdExpbmVJdGVtOiBMaW5lSXRlbSwgcGFyYW1zOiBGbG93VXBkYXRlUGFyYW1zKTogTGluZUl0ZW0ge1xuICAgIGNvbnN0IGxpbmVJdGVtID0gZmluZExpbmVJdGVtKHBhcmFtcy5pZCwgW3Jvb3RMaW5lSXRlbV0pO1xuXG4gICAgaWYgKCFsaW5lSXRlbSkge1xuICAgICAgcmV0dXJuIHJvb3RMaW5lSXRlbTtcbiAgICB9XG5cbiAgICBjb25zdCB1cGRhdGVkID0gbmV3IExpbmVJdGVtV29ya2VyKHJvb3RMaW5lSXRlbSkucmVwbGFjZSh7XG4gICAgICAuLi5saW5lSXRlbSxcbiAgICAgIGVuZERhdGU6IG1vbWVudChwYXJhbXMubmV3VmFsdWUpLmZvcm1hdCgnWVlZWS1NTS1ERCcpLFxuICAgIH0pO1xuICAgIHJldHVybiB1cGRhdGVkLmxpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVQcmljZUFkanVzdG1lbnQocm9vdExpbmVJdGVtOiBMaW5lSXRlbSwgcGFyYW1zOiBGbG93VXBkYXRlUGFyYW1zKTogTGluZUl0ZW0ge1xuICAgIGNvbnN0IGNvbXBhcmF0b3IgPVxuICAgICAgcGFyYW1zLmRhdGFUeXBlID09PSAnTElORUlURU0nXG4gICAgICAgID8gKGxpOiBMaW5lSXRlbSkgPT4gbGkuaWQgPT09IHBhcmFtcy5pZFxuICAgICAgICA6IHBhcmFtcy5kYXRhVHlwZSA9PT0gJ0NIQVJHRSdcbiAgICAgICAgPyAobGk6IExpbmVJdGVtKSA9PiBsaS5jaGFyZ2VJdGVtcy5zb21lKCh7IGlkIH0pID0+IGlkID09PSBwYXJhbXMuaWQpXG4gICAgICAgIDogcGFyYW1zLmRhdGFUeXBlID09PSAnR1JPVVBfQ0hBUkdFJ1xuICAgICAgICA/IChsaTogTGluZUl0ZW0pID0+IGxpLmNoYXJnZUdyb3VwSXRlbXMuc29tZSgoeyBpZCB9KSA9PiBpZCA9PT0gcGFyYW1zLmlkKVxuICAgICAgICA6IHVuZGVmaW5lZDtcblxuICAgIGlmICghY29tcGFyYXRvcikge1xuICAgICAgcmV0dXJuIHJvb3RMaW5lSXRlbTtcbiAgICB9XG5cbiAgICBjb25zdCBsaW5lSXRlbSA9IGZpbmRMaW5lSXRlbVdpdGhDb21wYXJhdG9yKFtyb290TGluZUl0ZW1dLCBjb21wYXJhdG9yKTtcbiAgICBpZiAoIWxpbmVJdGVtKSB7XG4gICAgICByZXR1cm4gcm9vdExpbmVJdGVtO1xuICAgIH1cblxuICAgIGxldCB1cGRhdGVkOiBMaW5lSXRlbSB8IHVuZGVmaW5lZDtcbiAgICBpZiAocGFyYW1zLmRhdGFUeXBlID09PSAnTElORUlURU0nKSB7XG4gICAgICB1cGRhdGVkID0ge1xuICAgICAgICAuLi5saW5lSXRlbSxcbiAgICAgICAgY2hhcmdlSXRlbXM6IGxpbmVJdGVtLmNoYXJnZUl0ZW1zLm1hcCgoY2hhcmdlSXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICByZXR1cm4gaW5kZXggPT09IDAgPyB7IC4uLmNoYXJnZUl0ZW0sIHByaWNlQWRqdXN0bWVudDogcGFyYW1zLm5ld1ZhbHVlIH0gOiBjaGFyZ2VJdGVtO1xuICAgICAgICB9KSxcbiAgICAgIH07XG4gICAgfSBlbHNlIGlmIChwYXJhbXMuZGF0YVR5cGUgPT09ICdDSEFSR0UnKSB7XG4gICAgICB1cGRhdGVkID0ge1xuICAgICAgICAuLi5saW5lSXRlbSxcbiAgICAgICAgY2hhcmdlSXRlbXM6IGxpbmVJdGVtLmNoYXJnZUl0ZW1zLm1hcChjaGFyZ2VJdGVtID0+IHtcbiAgICAgICAgICByZXR1cm4gY2hhcmdlSXRlbS5pZCA9PT0gcGFyYW1zLmlkID8geyAuLi5jaGFyZ2VJdGVtLCBwcmljZUFkanVzdG1lbnQ6IHBhcmFtcy5uZXdWYWx1ZSB9IDogY2hhcmdlSXRlbTtcbiAgICAgICAgfSksXG4gICAgICB9O1xuICAgIH0gZWxzZSBpZiAocGFyYW1zLmRhdGFUeXBlID09PSAnR1JPVVBfQ0hBUkdFJykge1xuICAgICAgdXBkYXRlZCA9IHtcbiAgICAgICAgLi4ubGluZUl0ZW0sXG4gICAgICAgIGNoYXJnZUdyb3VwSXRlbXM6IGxpbmVJdGVtLmNoYXJnZUdyb3VwSXRlbXMubWFwKGNoYXJnZUdyb3VwSXRlbSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGNoYXJnZUdyb3VwSXRlbS5pZCA9PT0gcGFyYW1zLmlkXG4gICAgICAgICAgICA/IHsgLi4uY2hhcmdlR3JvdXBJdGVtLCBwcmljZUFkanVzdG1lbnQ6IHBhcmFtcy5uZXdWYWx1ZSB9XG4gICAgICAgICAgICA6IGNoYXJnZUdyb3VwSXRlbTtcbiAgICAgICAgfSksXG4gICAgICB9O1xuICAgIH1cblxuICAgIGNvbnN0IHVwZGF0ZWRSb290TGluZUl0ZW0gPSB1cGRhdGVkID8gbmV3IExpbmVJdGVtV29ya2VyKHJvb3RMaW5lSXRlbSkucmVwbGFjZSh1cGRhdGVkKS5saSA6IHJvb3RMaW5lSXRlbTtcblxuICAgIHJldHVybiB1cGRhdGVkUm9vdExpbmVJdGVtO1xuICB9XG59XG4iXX0=
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvdy11cGRhdGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2Ntcy9tb2R1bGVzL2Zsb3ctY29uZmlndXJhdGlvbi9zZXJ2aWNlcy9mbG93LXVwZGF0ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNqQyxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFDNUIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOztBQUloRSxNQUFNLE9BQU8saUJBQWlCO0lBQ3JCLE1BQU0sQ0FBQyxhQUF5QixFQUFFLE9BQTJCO1FBQ2xFLElBQUksZ0JBQWdCLEdBQUcsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDO1FBQ3BDLElBQUksWUFBWSxHQUFHLGFBQWEsQ0FBQztRQUVqQyxPQUFPLFlBQVksQ0FBQyxNQUFNLElBQUksZ0JBQWdCLENBQUMsTUFBTSxFQUFFO1lBQ3JELFlBQVksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUU7Z0JBQ3hCLE1BQU0sZ0JBQWdCLEdBQXVCLEVBQUUsQ0FBQztnQkFFaEQsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO29CQUNoQyxJQUFJLE9BQU8sR0FBRyxLQUFLLENBQUM7b0JBRXBCLFFBQVEsTUFBTSxDQUFDLFFBQVEsRUFBRTt3QkFDdkIsS0FBSyxVQUFVOzRCQUNiLE9BQU8sR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDOzRCQUMvQyxNQUFNO3dCQUNSLEtBQUssUUFBUTs0QkFDWCxPQUFPLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQzs0QkFDN0Ms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QixpQkFBaUI7NEZBQWpCLGlCQUFpQjtrQkFEN0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExpbmVJdGVtIH0gZnJvbSAnQHZlbG9jZS9jb3JlJztcbmltcG9ydCB7IGZsYXR0ZW4gfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHsgTGluZUl0ZW1Xb3JrZXIgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9saW5lLWl0ZW0udHlwZXMnO1xuaW1wb3J0IHsgRmxvd1VwZGF0ZVBhcmFtcyB9IGZyb20gJy4uL3R5cGVzL3VwZGF0ZS50eXBlcyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBGbG93VXBkYXRlU2VydmljZSB7XG4gIHB1YmxpYyB1cGRhdGUocm9vdExpbmVJdGVtczogTGluZUl0ZW1bXSwgdXBkYXRlczogRmxvd1VwZGF0ZVBhcmFtc1tdKSB7XG4gICAgbGV0IHJlbWFpbmluZ1VwZGF0ZXMgPSBbLi4udXBkYXRlc107XG4gICAgbGV0IGN1cnJlbnRMZXZlbCA9IHJvb3RMaW5lSXRlbXM7XG5cbiAgICB3aGlsZSAoY3VycmVudExldmVsLmxlbmd0aCAmJiByZW1haW5pbmdVcGRhdGVzLmxlbmd0aCkge1xuICAgICAgY3VycmVudExldmVsLmZvckVhY2gobGkgPT4ge1xuICAgICAgICBjb25zdCB1bmhhbmRsZWRVcGRhdGVzOiBGbG93VXBkYXRlUGFyYW1zW10gPSBbXTtcblxuICAgICAgICByZW1haW5pbmdVcGRhdGVzLmZvckVhY2godXBkYXRlID0+IHtcbiAgICAgICAgICBsZXQgdXBkYXRlZCA9IGZhbHNlO1xuXG4gICAgICAgICAgc3dpdGNoICh1cGRhdGUuZGF0YVR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ0xJTkVJVEVNJzpcbiAgICAgICAgICAgICAgdXBkYXRlZCA9IHRoaXMuYXBwbHlMaW5lSXRlbVVwZGF0ZShsaSwgdXBkYXRlKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdDSEFSR0UnOlxuICAgICAgICAgICAgICB1cGRhdGVkID0gdGhpcy5hcHBseUNoYXJnZVVwZGF0ZShsaSwgdXBkYXRlKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdHUk9VUF9DSEFSR0UnOlxuICAgICAgICAgICAgICB1cGRhdGVkID0gdGhpcy5hcHBseUNoYXJnZUdyb3VwVXBkYXRlKGxpLCB1cGRhdGUpO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgIC8vIFVua25vd24gZGF0YVR5cGUuIERvIG5vdCB0cnkgdG8gaGFuZGxlIGl0IGFueW1vcmVcbiAgICAgICAgICAgICAgdXBkYXRlZCA9IHRydWU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKCF1cGRhdGVkKSB7XG4gICAgICAgICAgICB1bmhhbmRsZWRVcGRhdGVzLnB1c2godXBkYXRlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJlbWFpbmluZ1VwZGF0ZXMgPSB1bmhhbmRsZWRVcGRhdGVzO1xuICAgICAgfSk7XG5cbiAgICAgIGN1cnJlbnRMZXZlbCA9IGZsYXR0ZW4oY3VycmVudExldmVsLm1hcChwYXJlbnQgPT4gcGFyZW50LmxpbmVJdGVtcykpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBkZWxldGUobGluZUl0ZW1zOiBMaW5lSXRlbVtdLCBpZDogc3RyaW5nKTogTGluZUl0ZW1bXSB7XG4gICAgY29uc3QgaWRzVG9SZW1vdmU6IHN0cmluZ1tdID0gW2lkXTtcbiAgICBjb25zdCB0b3BMZXZlbExpbmVJdGVtID0gbGluZUl0ZW1zLmZpbmQobGkgPT4gbGkuaWQgPT09IGlkKTtcblxuICAgIGlmICh0b3BMZXZlbExpbmVJdGVtKSB7XG4gICAgICAvLyBmaW5kIHRlcm0tcmVsYXRlZCBsaW5lIGl0ZW1zICh3aGljaCBhcmUgb25seSB0b3AgbGV2ZWwpXG4gICAgICAvLyBleHBpcmVkIHRlcm0gbGluZSBpdGVtcyB3b24ndCBiZSBkZWxldGVkXG4gICAgICBsZXQgZm91bmRUZXJtTGluZUl0ZW06IExpbmVJdGVtIHwgdW5kZWZpbmVkID0gdG9wTGV2ZWxMaW5lSXRlbTtcblxuICAgICAgd2hpbGUgKGZvdW5kVGVybUxpbmVJdGVtKSB7XG4gICAgICAgIGZvdW5kVGVybUxpbmVJdGVtID0gbGluZUl0ZW1zLmZpbmQobGkgPT4gZm91bmRUZXJtTGluZUl0ZW0gJiYgbGkucmFtcEluc3RhbmNlSWQgPT09IGZvdW5kVGVybUxpbmVJdGVtLmlkKTtcbiAgICAgICAgaWYgKGZvdW5kVGVybUxpbmVJdGVtKSB7XG4gICAgICAgICAgaWRzVG9SZW1vdmUucHVzaChmb3VuZFRlcm1MaW5lSXRlbS5pZCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBmaWx0ZXJlZCA9IGxpbmVJdGVtcy5maWx0ZXIobGluZUl0ZW0gPT4gIWlkc1RvUmVtb3ZlLmluY2x1ZGVzKGxpbmVJdGVtLmlkKSk7XG4gICAgcmV0dXJuIGZpbHRlcmVkLm1hcChsaW5lSXRlbSA9PiBuZXcgTGluZUl0ZW1Xb3JrZXIobGluZUl0ZW0pLnJlbW92ZShpZCkubGkpO1xuICB9XG5cbiAgcHJpdmF0ZSBhcHBseUxpbmVJdGVtVXBkYXRlKGxpbmVJdGVtOiBMaW5lSXRlbSwgdXBkYXRlOiBGbG93VXBkYXRlUGFyYW1zKTogYm9vbGVhbiB7XG4gICAgaWYgKGxpbmVJdGVtLmlkICE9PSB1cGRhdGUuaWQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBzd2l0Y2ggKHVwZGF0ZS5hdHRyaWJ1dGVUeXBlKSB7XG4gICAgICBjYXNlICdRVFknOlxuICAgICAgICBsaW5lSXRlbS5xdHkgPSB1cGRhdGUubmV3VmFsdWU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnRUZGRUNUSVZFX1NUQVJUX0RBVEUnOlxuICAgICAgICBsaW5lSXRlbS5lZmZlY3RpdmVTdGFydERhdGUgPSBtb21lbnQodXBkYXRlLm5ld1ZhbHVlKS5mb3JtYXQoJ1lZWVktTU0tREQnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdFTkRfREFURSc6XG4gICAgICAgIGxpbmVJdGVtLmVuZERhdGUgPSBtb21lbnQodXBkYXRlLm5ld1ZhbHVlKS5mb3JtYXQoJ1lZWVktTU0tREQnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdQUklDRV9BREpVU1RNRU5UJzpcbiAgICAgICAge1xuICAgICAgICAgIGNvbnN0IFtjaGFyZ2VdID0gbGluZUl0ZW0uY2hhcmdlSXRlbXM7XG4gICAgICAgICAgaWYgKGNoYXJnZSkge1xuICAgICAgICAgICAgY2hhcmdlLnByaWNlQWRqdXN0bWVudCA9IHVwZGF0ZS5uZXdWYWx1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vdCBzdXBwb3JlZCBBdHRyaWJ1dGVUeXBlIGZvciBMaW5lSXRlbSB1cGRhdGU6ICR7dXBkYXRlLmF0dHJpYnV0ZVR5cGV9YCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBwcml2YXRlIGFwcGx5Q2hhcmdlVXBkYXRlKGxpbmVJdGVtOiBMaW5lSXRlbSwgdXBkYXRlOiBGbG93VXBkYXRlUGFyYW1zKTogYm9vbGVhbiB7XG4gICAgY29uc3QgZm91bmRDaGFyZ2UgPSBsaW5lSXRlbS5jaGFyZ2VJdGVtcy5maW5kKCh7IGlkIH0pID0+IGlkID09PSB1cGRhdGUuaWQpO1xuICAgIGlmICghZm91bmRDaGFyZ2UpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAodXBkYXRlLmF0dHJpYnV0ZVR5cGUgPT09ICdQUklDRV9BREpVU1RNRU5UJykge1xuICAgICAgZm91bmRDaGFyZ2UucHJpY2VBZGp1c3RtZW50ID0gdXBkYXRlLm5ld1ZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vdCBzdXBwb3JlZCBBdHRyaWJ1dGVUeXBlIGZvciBDaGFyZ2UgSXRlbSB1cGRhdGU6ICR7dXBkYXRlLmF0dHJpYnV0ZVR5cGV9YCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBwcml2YXRlIGFwcGx5Q2hhcmdlR3JvdXBVcGRhdGUobGluZUl0ZW06IExpbmVJdGVtLCB1cGRhdGU6IEZsb3dVcGRhdGVQYXJhbXMpOiBib29sZWFuIHtcbiAgICBjb25zdCBmb3VuZENoYXJnZUdyb3VwID0gbGluZUl0ZW0uY2hhcmdlR3JvdXBJdGVtcy5maW5kKCh7IGlkIH0pID0+IGlkID09PSB1cGRhdGUuaWQpO1xuICAgIGlmICghZm91bmRDaGFyZ2VHcm91cCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmICh1cGRhdGUuYXR0cmlidXRlVHlwZSA9PT0gJ1BSSUNFX0FESlVTVE1FTlQnKSB7XG4gICAgICBmb3VuZENoYXJnZUdyb3VwLnByaWNlQWRqdXN0bWVudCA9IHVwZGF0ZS5uZXdWYWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBOb3Qgc3VwcG9yZWQgQXR0cmlidXRlVHlwZSBmb3IgQ2hhcmdlIEdyb3VwIEl0ZW0gdXBkYXRlOiAke3VwZGF0ZS5hdHRyaWJ1dGVUeXBlfWApO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG4iXX0=
@@ -62,12 +62,14 @@ export class HeaderCartOverlayComponent {
62
62
  if (control.invalid) {
63
63
  return;
64
64
  }
65
- this.flowConfiguration.update({
66
- dataType: 'LINEITEM',
67
- attributeType: 'QTY',
68
- id: product.id,
69
- newValue: control.value,
70
- });
65
+ this.flowConfiguration.update([
66
+ {
67
+ dataType: 'LINEITEM',
68
+ attributeType: 'QTY',
69
+ id: product.id,
70
+ newValue: control.value,
71
+ },
72
+ ]);
71
73
  }
72
74
  deleteHandler(product) {
73
75
  this.flowConfiguration.delete([product.id]);
@@ -128,4 +130,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImpo
128
130
  }], products: [{
129
131
  type: Input
130
132
  }] } });
131
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FydC1vdmVybGF5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3NyYy9jb21wb25lbnRzL2hlYWRlci9jYXJ0LW92ZXJsYXkvY2FydC1vdmVybGF5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3NyYy9jb21wb25lbnRzL2hlYWRlci9jYXJ0LW92ZXJsYXkvY2FydC1vdmVybGF5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULEtBQUssRUFJTCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUl4RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEQsT0FBTyxFQUNMLGVBQWUsRUFDZixVQUFVLEVBQ1YsYUFBYSxFQUNiLG9CQUFvQixFQUNwQixNQUFNLEVBQ04sR0FBRyxFQUNILElBQUksRUFFSixFQUFFLEVBQ0YsT0FBTyxFQUNQLFNBQVMsRUFDVCxHQUFHLEdBQ0osTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7OztBQVVkLE1BQU0sT0FBTywwQkFBMEI7SUFZckMsWUFDVSxlQUFnQyxFQUNoQyxpQkFBMkMsRUFDM0MsYUFBZ0M7UUFGaEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBMEI7UUFDM0Msa0JBQWEsR0FBYixhQUFhLENBQW1CO1FBVm5DLFNBQUksR0FBRyxJQUFJLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUd4QixrQkFBYSxHQUFHLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFDLGVBQVUsR0FBRyxJQUFJLGVBQWUsQ0FBcUIsRUFBRSxD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LFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHdCQUF3QjtvQkFDbEMsV0FBVyxFQUFFLCtCQUErQjtvQkFDNUMsU0FBUyxFQUFFLENBQUMsK0JBQStCLENBQUM7b0JBQzVDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRDs2S0FFMEIsWUFBWTtzQkFBcEMsU0FBUzt1QkFBQyxZQUFZO2dCQUVkLFFBQVE7c0JBQWhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQmFzZUh0dHBTZXJ2aWNlIH0gZnJvbSAnQHZlbG9jZS9jb3JlJztcbmltcG9ydCB7IEZsb3dDb25maWd1cmF0aW9uU2VydmljZSB9IGZyb20gJ0B2ZWxvY2Uvc2RrL2Ntcyc7XG5pbXBvcnQgeyBEaWN0aW9uYXJ5IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IE92ZXJsYXlQYW5lbCB9IGZyb20gJ3ByaW1lbmcvb3ZlcmxheXBhbmVsJztcbmltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgY2F0Y2hFcnJvcixcbiAgY29tYmluZUxhdGVzdCxcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIGZpbHRlcixcbiAgbWFwLFxuICBub29wLFxuICBPYnNlcnZhYmxlLFxuICBvZixcbiAgU3ViamVjdCxcbiAgdGFrZVVudGlsLFxuICB0YXAsXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRmxvd1JvdXRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9mbG93LXJvdXRlci5zZXJ2aWNlJztcbmltcG9ydCB7IEhlYWRlclByb2R1Y3QgfSBmcm9tICcuLi9oZWFkZXIudHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2bC1oZWFkZXItY2FydC1vdmVybGF5JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NhcnQtb3ZlcmxheS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NhcnQtb3ZlcmxheS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgSGVhZGVyQ2FydE92ZXJsYXlDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIEBWaWV3Q2hpbGQoT3ZlcmxheVBhbmVsKSBvdmVybGF5UGFuZWwhOiBPdmVybGF5UGFuZWw7XG5cbiAgQElucHV0KCkgcHJvZHVjdHMhOiBIZWFkZXJQcm9kdWN0W107XG5cbiAgcHVibGljIGZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcbiAgcHVibGljIHJlYWRvbmx5UHJvZHVjdElkJDogT2JzZXJ2YWJsZTxzdHJpbmcgfCBudWxsPjtcblxuICBwcml2YXRlIHNob3VsZFVwZGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRydWUpO1xuICBwcml2YXRlIGltYWdlc01hcCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PERpY3Rpb25hcnk8c3RyaW5nPj4oe30pO1xuICBwcml2YXRlIGRlc3Ryb3llZCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYmFzZUh0dHBTZXJ2aWNlOiBCYXNlSHR0cFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBmbG93Q29uZmlndXJhdGlvbjogRmxvd0NvbmZpZ3VyYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGVyU2VydmljZTogRmxvd1JvdXRlclNlcnZpY2UsXG4gICkge1xuICAgIHRoaXMucmVhZG9ubHlQcm9kdWN0SWQkID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLnJvdXRlclNlcnZpY2Uucm91dGUkLFxuICAgICAgdGhpcy5yb3V0ZXJTZXJ2aWNlLmlzQ29uZmlndXJhdGlvblJvdXRlJCgpLFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoKFtyb3V0ZSwgaXNDb25maWd1cmF0aW9uUm91dGVdKSA9PiB7XG4gICAgICAgIGlmICghaXNDb25maWd1cmF0aW9uUm91dGUpIHtcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByb3V0ZS5xdWVyeVBhcmFtcy5wcm9kdWN0SWQ7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzLnByb2R1Y3RzKSB7XG4gICAgICB0aGlzLnNob3VsZFVwZGF0ZSQubmV4dCh0cnVlKTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgY29tYmluZUxhdGVzdChbdGhpcy5yZWFkb25seVByb2R1Y3RJZCQsIHRoaXMuc2hvdWxkVXBkYXRlJCwgdGhpcy5vdmVybGF5UGFuZWwub25TaG93XSlcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKCkgPT4gdGhpcy5vdmVybGF5UGFuZWwub3ZlcmxheVZpc2libGUpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKFtyZWFkb25seVByb2R1Y3RJZF0pID0+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
133
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FydC1vdmVybGF5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3NyYy9jb21wb25lbnRzL2hlYWRlci9jYXJ0LW92ZXJsYXkvY2FydC1vdmVybGF5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3NyYy9jb21wb25lbnRzL2hlYWRlci9jYXJ0LW92ZXJsYXkvY2FydC1vdmVybGF5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULEtBQUssRUFJTCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUl4RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEQsT0FBTyxFQUNMLGVBQWUsRUFDZixVQUFVLEVBQ1YsYUFBYSxFQUNiLG9CQUFvQixFQUNwQixNQUFNLEVBQ04sR0FBRyxFQUNILElBQUksRUFFSixFQUFFLEVBQ0YsT0FBTyxFQUNQLFNBQVMsRUFDVCxHQUFHLEdBQ0osTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7OztBQVVkLE1BQU0sT0FBTywwQkFBMEI7SUFZckMsWUFDVSxlQUFnQyxFQUNoQyxpQkFBMkMsRUFDM0MsYUFBZ0M7UUFGaEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBMEI7UUFDM0Msa0JBQWEsR0FBYixhQUFhLENBQW1CO1FBVm5DLFNBQUksR0FBRyxJQUFJLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUd4QixrQkFBYSxHQUFHLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFDLGVBQVUsR0FBRyxJQUFJLGVBQWUsQ0FBcUIsRUFBRSxD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LDBCQUEwQjtrQkFOdEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsd0JBQXdCO29CQUNsQyxXQUFXLEVBQUUsK0JBQStCO29CQUM1QyxTQUFTLEVBQUUsQ0FBQywrQkFBK0IsQ0FBQztvQkFDNUMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEOzZLQUUwQixZQUFZO3NCQUFwQyxTQUFTO3VCQUFDLFlBQVk7Z0JBRWQsUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBCYXNlSHR0cFNlcnZpY2UgfSBmcm9tICdAdmVsb2NlL2NvcmUnO1xuaW1wb3J0IHsgRmxvd0NvbmZpZ3VyYXRpb25TZXJ2aWNlIH0gZnJvbSAnQHZlbG9jZS9zZGsvY21zJztcbmltcG9ydCB7IERpY3Rpb25hcnkgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgT3ZlcmxheVBhbmVsIH0gZnJvbSAncHJpbWVuZy9vdmVybGF5cGFuZWwnO1xuaW1wb3J0IHtcbiAgQmVoYXZpb3JTdWJqZWN0LFxuICBjYXRjaEVycm9yLFxuICBjb21iaW5lTGF0ZXN0LFxuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcbiAgZmlsdGVyLFxuICBtYXAsXG4gIG5vb3AsXG4gIE9ic2VydmFibGUsXG4gIG9mLFxuICBTdWJqZWN0LFxuICB0YWtlVW50aWwsXG4gIHRhcCxcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGbG93Um91dGVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Zsb3ctcm91dGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgSGVhZGVyUHJvZHVjdCB9IGZyb20gJy4uL2hlYWRlci50eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZsLWhlYWRlci1jYXJ0LW92ZXJsYXknLFxuICB0ZW1wbGF0ZVVybDogJy4vY2FydC1vdmVybGF5LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2FydC1vdmVybGF5LmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBIZWFkZXJDYXJ0T3ZlcmxheUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgQFZpZXdDaGlsZChPdmVybGF5UGFuZWwpIG92ZXJsYXlQYW5lbCE6IE92ZXJsYXlQYW5lbDtcblxuICBASW5wdXQoKSBwcm9kdWN0cyE6IEhlYWRlclByb2R1Y3RbXTtcblxuICBwdWJsaWMgZm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xuICBwdWJsaWMgcmVhZG9ubHlQcm9kdWN0SWQkOiBPYnNlcnZhYmxlPHN0cmluZyB8IG51bGw+O1xuXG4gIHByaXZhdGUgc2hvdWxkVXBkYXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3QodHJ1ZSk7XG4gIHByaXZhdGUgaW1hZ2VzTWFwJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RGljdGlvbmFyeTxzdHJpbmc+Pih7fSk7XG4gIHByaXZhdGUgZGVzdHJveWVkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBiYXNlSHR0cFNlcnZpY2U6IEJhc2VIdHRwU2VydmljZSxcbiAgICBwcml2YXRlIGZsb3dDb25maWd1cmF0aW9uOiBGbG93Q29uZmlndXJhdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXJTZXJ2aWNlOiBGbG93Um91dGVyU2VydmljZSxcbiAgKSB7XG4gICAgdGhpcy5yZWFkb25seVByb2R1Y3RJZCQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMucm91dGVyU2VydmljZS5yb3V0ZSQsXG4gICAgICB0aGlzLnJvdXRlclNlcnZpY2UuaXNDb25maWd1cmF0aW9uUm91dGUkKCksXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW3JvdXRlLCBpc0NvbmZpZ3VyYXRpb25Sb3V0ZV0pID0+IHtcbiAgICAgICAgaWYgKCFpc0NvbmZpZ3VyYXRpb25Sb3V0ZSkge1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJvdXRlLnF1ZXJ5UGFyYW1zLnByb2R1Y3RJZDtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKGNoYW5nZXMucHJvZHVjdHMpIHtcbiAgICAgIHRoaXMuc2hvdWxkVXBkYXRlJC5uZXh0KHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLnJlYWRvbmx5UHJvZHVjdElkJCwgdGhpcy5zaG91bGRVcGRhdGUkLCB0aGlzLm92ZXJsYXlQYW5lbC5vblNob3ddKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigoKSA9PiB0aGlzLm92ZXJsYXlQYW5lbC5vdmVybGF5VmlzaWJsZSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoW3JlYWRvbmx5UHJvZHVjdElkXSkgPT4gdGhpcy51cGRhdGVDb250cm9scyh0aGlzLnByb2R1Y3RzLCByZWFkb25seVByb2R1Y3RJZCkpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveWVkJC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95ZWQkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0SW1hZ2VVcmwocHJvZHVjdElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICAgIGlmICh0aGlzLmltYWdlc01hcCQudmFsdWVbcHJvZHVjdElkXSA9PSBudWxsKSB7XG4gICAgICB0aGlzLmltYWdlc01hcCQubmV4dCh7IC4uLnRoaXMuaW1hZ2VzTWFwJC52YWx1ZSwgW3Byb2R1Y3RJZF06ICcnIH0pO1xuICAgICAgdGhpcy5mZXRjaFByb2R1Y3RJbWFnZShwcm9kdWN0SWQpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmltYWdlc01hcCQucGlwZShcbiAgICAgIG1hcChpbWFnZXNNYXAgPT4gaW1hZ2VzTWFwW3Byb2R1Y3RJZF0pLFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIG5hdmlnYXRlVG9Qcm9kdWN0Q29uZmlndXJhdGlvbihwcm9kdWN0SWQ6IHN0cmluZykge1xuICAgIHRoaXMub3ZlcmxheVBhbmVsLmhpZGUoKTtcbiAgICB0aGlzLnJvdXRlclNlcnZpY2UubmF2aWdhdGVUb1Byb2R1Y3RDb25maWd1cmF0aW9uKHByb2R1Y3RJZCk7XG4gIH1cblxuICBwdWJsaWMgY29udHJvbEJsdXJIYW5kbGVyKHByb2R1Y3Q6IEhlYWRlclByb2R1Y3QpOiB2b2lkIHtcbiAgICBjb25zdCBjb250cm9sID0gdGhpcy5mb3JtLmNvbnRyb2xzW3Byb2R1Y3QuaWRdO1xuICAgIGlmIChjb250cm9sLmludmFsaWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmZsb3dDb25maWd1cmF0aW9uLnVwZGF0ZShbXG4gICAgICB7XG4gICAgICAgIGRhdGFUeXBlOiAnTElORUlURU0nLFxuICAgICAgICBhdHRyaWJ1dGVUeXBlOiAnUVRZJyxcbiAgICAgICAgaWQ6IHByb2R1Y3QuaWQsXG4gICAgICAgIG5ld1ZhbHVlOiBjb250cm9sLnZhbHVlLFxuICAgICAgfSxcbiAgICBdKTtcbiAgfVxuXG4gIHB1YmxpYyBkZWxldGVIYW5kbGVyKHByb2R1Y3Q6IEhlYWRlclByb2R1Y3QpOiB2b2lkIHtcbiAgICB0aGlzLmZsb3dDb25maWd1cmF0aW9uLmRlbGV0ZShbcHJvZHVjdC5pZF0pO1xuICB9XG5cbiAgcHVibGljIGRlbGV0ZUFsbEhhbmRsZXIoKTogdm9pZCB7XG4gICAgY29uc3QgcHJvZHVjdElkcyA9IHRoaXMucHJvZHVjdHMubWFwKHByb2R1Y3QgPT4gcHJvZHVjdC5pZCk7XG4gICAgdGhpcy5mbG93Q29uZmlndXJhdGlvbi5kZWxldGUocHJvZHVjdElkcyk7XG4gIH1cblxuICBwcml2YXRlIGZldGNoUHJvZHVjdEltYWdlKHByb2R1Y3RJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5iYXNlSHR0cFNlcnZpY2VcbiAgICAgIC5hcGk8QmxvYj4oe1xuICAgICAgICB1cmw6IGAvcHJvZHVjdHMvJHtwcm9kdWN0SWR9L2ltYWdlYCxcbiAgICAgICAgbWV0aG9kOiAnZ2V0JyxcbiAgICAgICAgcmVzcG9uc2VUeXBlOiAnYmxvYicsXG4gICAgICAgIGVycm9ySGFuZGxlcjogbm9vcCxcbiAgICAgIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKGZpbGUgPT4gVVJMLmNyZWF0ZU9iamVjdFVSTChmaWxlKSksXG4gICAgICAgIGNhdGNoRXJyb3IoKCkgPT4gb2YoJycpKSxcbiAgICAgICAgdGFwKHVybCA9PiB0aGlzLmltYWdlc01hcCQubmV4dCh7IC4uLnRoaXMuaW1hZ2VzTWFwJC52YWx1ZSwgW3Byb2R1Y3RJZF06IHVybCB9KSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVDb250cm9scyhwcm9kdWN0czogSGVhZGVyUHJvZHVjdFtdLCByZWFkb25seVByb2R1Y3RJZDogc3RyaW5nIHwgbnVsbCk6IHZvaWQge1xuICAgIGNvbnN0IGlkczogc3RyaW5nW10gPSBbXTtcblxuICAgIHByb2R1Y3RzLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICBpZiAoIWl0ZW0uaWQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZHMucHVzaChpdGVtLmlkKTtcblxuICAgICAgaWYgKCF0aGlzLmZvcm0uY29udHJvbHNbaXRlbS5pZF0pIHtcbiAgICAgICAgdGhpcy5mb3JtLmFkZENvbnRyb2woaXRlbS5pZCwgbmV3IEZvcm1Db250cm9sKGl0ZW0ucXR5LCBbXSkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW2l0ZW0uaWRdPy5zZXRWYWx1ZShpdGVtLnF0eSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChpdGVtLnByb2R1Y3RJZCA9PT0gcmVhZG9ubHlQcm9kdWN0SWQpIHtcbiAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW2l0ZW0uaWRdLmRpc2FibGUoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZm9ybS5jb250cm9sc1tpdGVtLmlkXS5lbmFibGUoKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGNvbnN0IHJlbW92ZWRJZHMgPSBPYmplY3Qua2V5cyh0aGlzLmZvcm0uY29udHJvbHMpLmZpbHRlcihpZCA9PiAhaWRzLmluY2x1ZGVzKGlkKSk7XG4gICAgcmVtb3ZlZElkcy5mb3JFYWNoKGlkID0+IHRoaXMuZm9ybS5yZW1vdmVDb250cm9sKGlkKSk7XG4gIH1cbn1cbiIsIjxwLW92ZXJsYXlQYW5lbFxuICBzdHlsZUNsYXNzPVwibmF2aWdhdGlvbi1zZXR0aW5ncy1vdmVybGF5IGZsb3ctaGVhZGVyLW92ZXJsYXkgY2VudGVyXCJcbiAgc2hvd1RyYW5zaXRpb25PcHRpb25zPVwiMG1zXCJcbiAgaGlkZVRyYW5zaXRpb25PcHRpb25zPVwiMG1zXCJcbj5cbiAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT5cbiAgICA8ZGl2IGNsYXNzPVwiZmxvdy1oZWFkZXItb3ZlcmxheV9fd3JhcHBlclwiICp2bExldD1cInJlYWRvbmx5UHJvZHVjdElkJCB8IGFzeW5jIGFzIHJlYWRvbmx5UHJvZHVjdElkXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicHJvZHVjdHMubGVuZ3RoID4gMDsgZWxzZSBlbXB0eVwiPlxuICAgICAgICA8aDIgY2xhc3M9XCJmbG93LWhlYWRlci1vdmVybGF5X190aXRsZVwiPlxuICAgICAgICAgIDxzcGFuPlByb2R1Y3RzICh7eyBwcm9kdWN0cy5sZW5ndGggfX0pPC9zcGFuPlxuICAgICAgICAgIDxpIGNsYXNzPVwidmwtaWNvbiB2bC1pY29uLWNsb3NlIGNsb3NlLWljb25cIiAoY2xpY2spPVwib3ZlcmxheVBhbmVsLmhpZGUoKVwiPjwvaT5cbiAgICAgICAgPC9oMj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwicHJvZHVjdCBoZWFkZXJcIj5cbiAgICAgICAgICA8c3Bhbj5Qcm9kdWN0PC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1yaWdodFwiPlF0eTwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtcmlnaHRcIj5NUlI8L3NwYW4+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXJpZ2h0XCI+TlJSPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwic2Nyb2xsYWJsZS13cmFwcGVyXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInByb2R1Y3RcIiAqbmdGb3I9XCJsZXQgcHJvZHVjdCBvZiBwcm9kdWN0c1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb2R1Y3RfX2luZm9cIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb2R1Y3RfX2ltYWdlLXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAqbmdJZj1cImdldEltYWdlVXJsKHByb2R1Y3QucHJvZHVjdElkKSB8IGFzeW5jIGFzIGltYWdlVXJsOyBlbHNlIG5vSW1hZ2VcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwcm9kdWN0X19pbWFnZVwiXG4gICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7ICdiYWNrZ3JvdW5kLWltYWdlJzogJ3VybCgnICsgaW1hZ2VVcmwgKyAnKScgfVwiXG4gICAgICAgICAgICAgICAgPjwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2x1bW4ganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3b3JkLWJyZWFrXCI+e3sgcHJvZHVjdC5uYW1lIH19PC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgIDxwLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBsYWJlbD1cIkNvbmZpZ3VyZVwiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhcHJvZHVjdC5jb25maWd1cmFibGUgfHwgcmVhZG9ubHlQcm9kdWN0SWQgPT09IHByb2R1Y3QucHJvZHVjdElkXCJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGVDbGFzcz1cInAtYnV0dG9uLWxpbmsgcC1idXR0b24tc20gcGwtMFwiXG4gICAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cIm5hdmlnYXRlVG9Qcm9kdWN0Q29uZmlndXJhdGlvbihwcm9kdWN0LnByb2R1Y3RJZClcIlxuICAgICAgICAgICAgICAgICAgPjwvcC1idXR0b24+XG4gICAgICAgICAgICAgICAgICA8cC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgbGFiZWw9XCJEZWxldGVcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwicmVhZG9ubHlQcm9kdWN0SWQgPT09IHByb2R1Y3QucHJvZHVjdElkXCJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGVDbGFzcz1cInAtYnV0dG9uLWxpbmsgcC1idXR0b24tc20gcC1idXR0b24tZGFuZ2VyIHBsLTAgcHItMFwiXG4gICAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cImRlbGV0ZUhhbmRsZXIocHJvZHVjdClcIlxuICAgICAgICAgICAgICAgICAgPjwvcC1idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgICA8cC1pbnB1dE51bWJlclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiZm9ybS5jb250cm9sc1twcm9kdWN0LmlkXSBhcyBjb250cm9sXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInF0eS1jb250cm9sXCJcbiAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiJGFueShjb250cm9sKVwiXG4gICAgICAgICAgICAgICAgW21pbl09XCIxXCJcbiAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgKG9uQmx1cik9XCJjb250cm9sQmx1ckhhbmRsZXIocHJvZHVjdClcIlxuICAgICAgICAgICAgICA+PC9wLWlucHV0TnVtYmVyPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXJpZ2h0IHB0LTNcIj4kMC4wMDwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1yaWdodCBwdC0zXCI+JDAuMDA8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI25vSW1hZ2U+XG4gICAgICAgICAgICA8aSBjbGFzcz1cInZsLWljb24gdmwtaWNvbi1uby1pbWFnZSBuby1pbWFnZS1pY29uXCI+PC9pPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktY29udGVudC1lbmQgbXQtM1wiPlxuICAgICAgICAgIDxwLWJ1dHRvblxuICAgICAgICAgICAgbGFiZWw9XCJDbGVhciBjYXJ0XCJcbiAgICAgICAgICAgIHN0eWxlQ2xhc3M9XCJwLWJ1dHRvbi1saW5rIHAtYnV0dG9uLXNtIHAtYnV0dG9uLWRhbmdlciBwbC0wIHByLTBcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cInJlYWRvbmx5UHJvZHVjdElkXCJcbiAgICAgICAgICAgIChvbkNsaWNrKT1cImRlbGV0ZUFsbEhhbmRsZXIoKVwiXG4gICAgICAgICAgPjwvcC1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjZW1wdHk+XG4gICAgICAgIDxoMiBjbGFzcz1cImZsb3ctaGVhZGVyLW92ZXJsYXlfX3RpdGxlXCI+XG4gICAgICAgICAgPHNwYW4+RW1wdHkgQ2FydDwvc3Bhbj5cbiAgICAgICAgICA8aSBjbGFzcz1cInZsLWljb24gdmwtaWNvbi1jbG9zZSBjbG9zZS1pY29uXCIgKGNsaWNrKT1cIm92ZXJsYXlQYW5lbC5oaWRlKClcIj48L2k+XG4gICAgICAgIDwvaDI+XG5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJlbXB0eS1zdGF0ZVwiPlRoZXJlIGFyZSBubyBwcm9kdWN0cyBhZGRlZCB0byB0aGUgU2hvcHBpbmcgQ2FydCB5ZXQuPC9zcGFuPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvcC1vdmVybGF5UGFuZWw+XG4iXX0=
@@ -10,7 +10,7 @@ import { DragDropModule } from '@angular/cdk/drag-drop';
10
10
  import * as angularForms from '@angular/forms';
11
11
  import { FormsModule, ReactiveFormsModule } from '@angular/forms';
12
12
  import * as lodash from 'lodash';
13
- import { compact, flatten, sortBy, isArray, pull, set } from 'lodash';
13
+ import { compact, flatten, sortBy, isArray, pull, cloneDeep, set } from 'lodash';
14
14
  import * as i6 from '@veloce/components';
15
15
  import { ConfirmationComponent, LoaderModule, ConfirmationDialogModule } from '@veloce/components';
16
16
  import * as i2 from '@veloce/sdk/runtime';
@@ -1299,18 +1299,35 @@ const DEFAULT_PLUGINS = {
1299
1299
  };
1300
1300
 
1301
1301
  class FlowUpdateService {
1302
- update(rootLineItem, params) {
1303
- switch (params.attributeType) {
1304
- case 'QTY':
1305
- return this.updateQty(rootLineItem, params);
1306
- case 'EFFECTIVE_START_DATE':
1307
- return this.updateEffectiveStartDate(rootLineItem, params);
1308
- case 'END_DATE':
1309
- return this.updateEndDate(rootLineItem, params);
1310
- case 'PRICE_ADJUSTMENT':
1311
- return this.updatePriceAdjustment(rootLineItem, params);
1312
- default:
1313
- return rootLineItem;
1302
+ update(rootLineItems, updates) {
1303
+ let remainingUpdates = [...updates];
1304
+ let currentLevel = rootLineItems;
1305
+ while (currentLevel.length && remainingUpdates.length) {
1306
+ currentLevel.forEach(li => {
1307
+ const unhandledUpdates = [];
1308
+ remainingUpdates.forEach(update => {
1309
+ let updated = false;
1310
+ switch (update.dataType) {
1311
+ case 'LINEITEM':
1312
+ updated = this.applyLineItemUpdate(li, update);
1313
+ break;
1314
+ case 'CHARGE':
1315
+ updated = this.applyChargeUpdate(li, update);
1316
+ break;
1317
+ case 'GROUP_CHARGE':
1318
+ updated = this.applyChargeGroupUpdate(li, update);
1319
+ break;
1320
+ default:
1321
+ // Unknown dataType. Do not try to handle it anymore
1322
+ updated = true;
1323
+ }
1324
+ if (!updated) {
1325
+ unhandledUpdates.push(update);
1326
+ }
1327
+ });
1328
+ remainingUpdates = unhandledUpdates;
1329
+ });
1330
+ currentLevel = flatten(currentLevel.map(parent => parent.lineItems));
1314
1331
  }
1315
1332
  }
1316
1333
  delete(lineItems, id) {
@@ -1330,71 +1347,58 @@ class FlowUpdateService {
1330
1347
  const filtered = lineItems.filter(lineItem => !idsToRemove.includes(lineItem.id));
1331
1348
  return filtered.map(lineItem => new LineItemWorker(lineItem).remove(id).li);
1332
1349
  }
1333
- updateQty(rootLineItem, params) {
1334
- // change quantity allowed only for lineItem
1335
- if (params.dataType !== 'LINEITEM') {
1336
- return rootLineItem;
1337
- }
1338
- const lineItem = findLineItem(params.id, [rootLineItem]);
1339
- if (!lineItem) {
1340
- return rootLineItem;
1350
+ applyLineItemUpdate(lineItem, update) {
1351
+ if (lineItem.id !== update.id) {
1352
+ return false;
1341
1353
  }
1342
- if (lineItem.id !== rootLineItem.id) {
1343
- throw new Error('Quantity can be changed only for root product');
1344
- }
1345
- const updated = new LineItemWorker(rootLineItem).replace(Object.assign(Object.assign({}, lineItem), { qty: params.newValue }));
1346
- return updated.li;
1347
- }
1348
- updateEffectiveStartDate(rootLineItem, params) {
1349
- const lineItem = findLineItem(params.id, [rootLineItem]);
1350
- if (!lineItem) {
1351
- return rootLineItem;
1354
+ switch (update.attributeType) {
1355
+ case 'QTY':
1356
+ lineItem.qty = update.newValue;
1357
+ break;
1358
+ case 'EFFECTIVE_START_DATE':
1359
+ lineItem.effectiveStartDate = moment(update.newValue).format('YYYY-MM-DD');
1360
+ break;
1361
+ case 'END_DATE':
1362
+ lineItem.endDate = moment(update.newValue).format('YYYY-MM-DD');
1363
+ break;
1364
+ case 'PRICE_ADJUSTMENT':
1365
+ {
1366
+ const [charge] = lineItem.chargeItems;
1367
+ if (charge) {
1368
+ charge.priceAdjustment = update.newValue;
1369
+ }
1370
+ }
1371
+ break;
1372
+ default:
1373
+ throw new Error(`Not suppored AttributeType for LineItem update: ${update.attributeType}`);
1352
1374
  }
1353
- const updated = new LineItemWorker(rootLineItem).replace(Object.assign(Object.assign({}, lineItem), { effectiveStartDate: moment(params.newValue).format('YYYY-MM-DD') }));
1354
- return updated.li;
1375
+ return true;
1355
1376
  }
1356
- updateEndDate(rootLineItem, params) {
1357
- const lineItem = findLineItem(params.id, [rootLineItem]);
1358
- if (!lineItem) {
1359
- return rootLineItem;
1377
+ applyChargeUpdate(lineItem, update) {
1378
+ const foundCharge = lineItem.chargeItems.find(({ id }) => id === update.id);
1379
+ if (!foundCharge) {
1380
+ return false;
1360
1381
  }
1361
- const updated = new LineItemWorker(rootLineItem).replace(Object.assign(Object.assign({}, lineItem), { endDate: moment(params.newValue).format('YYYY-MM-DD') }));
1362
- return updated.li;
1363
- }
1364
- updatePriceAdjustment(rootLineItem, params) {
1365
- const comparator = params.dataType === 'LINEITEM'
1366
- ? (li) => li.id === params.id
1367
- : params.dataType === 'CHARGE'
1368
- ? (li) => li.chargeItems.some(({ id }) => id === params.id)
1369
- : params.dataType === 'GROUP_CHARGE'
1370
- ? (li) => li.chargeGroupItems.some(({ id }) => id === params.id)
1371
- : undefined;
1372
- if (!comparator) {
1373
- return rootLineItem;
1382
+ if (update.attributeType === 'PRICE_ADJUSTMENT') {
1383
+ foundCharge.priceAdjustment = update.newValue;
1374
1384
  }
1375
- const lineItem = findLineItemWithComparator([rootLineItem], comparator);
1376
- if (!lineItem) {
1377
- return rootLineItem;
1385
+ else {
1386
+ throw new Error(`Not suppored AttributeType for Charge Item update: ${update.attributeType}`);
1378
1387
  }
1379
- let updated;
1380
- if (params.dataType === 'LINEITEM') {
1381
- updated = Object.assign(Object.assign({}, lineItem), { chargeItems: lineItem.chargeItems.map((chargeItem, index) => {
1382
- return index === 0 ? Object.assign(Object.assign({}, chargeItem), { priceAdjustment: params.newValue }) : chargeItem;
1383
- }) });
1388
+ return true;
1389
+ }
1390
+ applyChargeGroupUpdate(lineItem, update) {
1391
+ const foundChargeGroup = lineItem.chargeGroupItems.find(({ id }) => id === update.id);
1392
+ if (!foundChargeGroup) {
1393
+ return false;
1384
1394
  }
1385
- else if (params.dataType === 'CHARGE') {
1386
- updated = Object.assign(Object.assign({}, lineItem), { chargeItems: lineItem.chargeItems.map(chargeItem => {
1387
- return chargeItem.id === params.id ? Object.assign(Object.assign({}, chargeItem), { priceAdjustment: params.newValue }) : chargeItem;
1388
- }) });
1395
+ if (update.attributeType === 'PRICE_ADJUSTMENT') {
1396
+ foundChargeGroup.priceAdjustment = update.newValue;
1389
1397
  }
1390
- else if (params.dataType === 'GROUP_CHARGE') {
1391
- updated = Object.assign(Object.assign({}, lineItem), { chargeGroupItems: lineItem.chargeGroupItems.map(chargeGroupItem => {
1392
- return chargeGroupItem.id === params.id
1393
- ? Object.assign(Object.assign({}, chargeGroupItem), { priceAdjustment: params.newValue }) : chargeGroupItem;
1394
- }) });
1398
+ else {
1399
+ throw new Error(`Not suppored AttributeType for Charge Group Item update: ${update.attributeType}`);
1395
1400
  }
1396
- const updatedRootLineItem = updated ? new LineItemWorker(rootLineItem).replace(updated).li : rootLineItem;
1397
- return updatedRootLineItem;
1401
+ return true;
1398
1402
  }
1399
1403
  }
1400
1404
  FlowUpdateService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FlowUpdateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
@@ -1429,11 +1433,12 @@ class FlowConfigurationService {
1429
1433
  calculate(currentState) {
1430
1434
  this.calculate$(currentState).subscribe();
1431
1435
  }
1432
- update$(params) {
1433
- return of([]).pipe(map$1(() => this.lineItems.value.map(li => this.updateService.update(li, params))), this.handleError(), switchMap(currentState => this.calculate$(currentState)));
1436
+ update$(updates) {
1437
+ const lineItems = cloneDeep(this.lineItems.value);
1438
+ return of([]).pipe(tap$1(() => this.updateService.update(lineItems, updates)), this.handleError(), switchMap(() => this.calculate$(lineItems)));
1434
1439
  }
1435
- update(params) {
1436
- this.update$(params).subscribe();
1440
+ update(updates) {
1441
+ this.update$(updates).subscribe();
1437
1442
  }
1438
1443
  delete$(ids) {
1439
1444
  return of([]).pipe(map$1(() => ids.reduce((result, id) => this.updateService.delete(result, id), this.lineItems.value)), this.handleError(), switchMap(currentState => this.calculate$(currentState)));