@veloceapps/sdk 6.0.0-77 → 6.0.0-78

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,8 +1,9 @@
1
- import { LineItem } from '@veloceapps/core';
1
+ import { Charge, LineItem } from '@veloceapps/core';
2
+ import { Dictionary } from 'lodash';
2
3
  import { FlowUpdateParams } from '../types/update.types';
3
4
  import * as i0 from "@angular/core";
4
5
  export declare class FlowUpdateService {
5
- update(rootLineItems: LineItem[], updates: FlowUpdateParams[]): void;
6
+ update(rootLineItems: LineItem[], updates: FlowUpdateParams[], charges?: Dictionary<Charge>): void;
6
7
  delete(lineItems: LineItem[], id: string): LineItem[];
7
8
  private applyLineItemUpdate;
8
9
  private applyChargeUpdate;
@@ -36,7 +36,7 @@ export class FlowConfigurationService {
36
36
  }
37
37
  return of([]).pipe(map(() => {
38
38
  const updatedState = cloneDeep(quoteDraft.currentState);
39
- this.updateService.update(updatedState, updates);
39
+ this.updateService.update(updatedState, updates, quoteDraft.charges);
40
40
  return updatedState;
41
41
  }), switchMap(updatedState => this.calculate$(Object.assign(Object.assign({}, quoteDraft), { currentState: updatedState }))), map(() => this.quoteDraftService.quoteDraft), this.handleErrorAndBounceBack());
42
42
  }
@@ -147,4 +147,4 @@ FlowConfigurationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0
147
147
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FlowConfigurationService, decorators: [{
148
148
  type: Injectable
149
149
  }], ctorParameters: function () { return [{ type: i1.ProceduresApiService }, { type: i2.ContextService }, { type: i3.QuoteDraftService }, { type: i4.FlowUpdateService }, { type: i5.ConfigurationService }]; } });
150
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvdy1jb25maWd1cmF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jb3JlL21vZHVsZXMvZmxvdy1jb25maWd1cmF0aW9uL3NlcnZpY2VzL2Zsb3ctY29uZmlndXJhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxFQUFFLFNBQVMsRUFBYyxNQUFNLFFBQVEsQ0FBQztBQUMvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQWMsRUFBRSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUd0RyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7Ozs7OztBQU1uRSxNQUFNLE9BQU8sd0JBQXdCO0lBQ25DLFlBQ1Usb0JBQTBDLEVBQzFDLGNBQThCLEVBQzlCLGlCQUFvQyxFQUNwQyxhQUFnQyxFQUNoQyxvQkFBMEM7UUFKMUMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQUMxQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxrQkFBYSxHQUFiLGFBQWEsQ0FBbUI7UUFDaEMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtJQUNqRCxDQUFDO0lBRUcsVUFBVSxDQUFDLFVBQXNCO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQ3RELEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNYLHVFQUF1RTtZQUN2RSxNQUFNLGVBQWUsR0FBRyxVQUFVLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxD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SSxDQUNqQixVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ2pCLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBRXJCLCtDQUErQztnQkFDL0MsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQztnQkFDckQsSUFBSSxVQUFVLEVBQUU7b0JBQ2QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFDO2lCQUNyRDtnQkFFRCxPQUFPLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNqQyxDQUFDLENBQUMsQ0FDSCxDQUFDO1FBQ0osQ0FBQyxDQUFDO0lBQ0osQ0FBQzs7c0hBdk1VLHdCQUF3QjswSEFBeEIsd0JBQXdCOzRGQUF4Qix3QkFBd0I7a0JBRHBDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQcm9jZWR1cmVzQXBpU2VydmljZSB9IGZyb20gJ0B2ZWxvY2VhcHBzL2FwaSc7XG5pbXBvcnQgeyBDaGFyZ2UsIENvbXBpbGVkUHJpY2VQbGFuLCBDb25maWd1cmF0aW9uQ29udGV4dCwgTGluZUl0ZW0sIE1ldHJpY1J1bGUsIFF1b3RlRHJhZnQgfSBmcm9tICdAdmVsb2NlYXBwcy9jb3JlJztcbmltcG9ydCB7IGNsb25lRGVlcCwgRGljdGlvbmFyeSB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAsIG5vb3AsIE9ic2VydmFibGUsIG9mLCBzaGFyZVJlcGxheSwgc3dpdGNoTWFwLCB0YXAsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvY29udGV4dC5zZXJ2aWNlJztcbmltcG9ydCB7IFF1b3RlRHJhZnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcXVvdGUtZHJhZnQuc2VydmljZSc7XG5pbXBvcnQgeyBtdWx0aXBseUxpbmVJdGVtcyB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2xpbmUtaXRlbS51dGlscyc7XG5pbXBvcnQgeyBDb25maWd1cmF0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL2NvbmZpZ3VyYXRpb24vc2VydmljZXMvY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IEZsb3dVcGRhdGVQYXJhbXMgfSBmcm9tICcuLi90eXBlcy91cGRhdGUudHlwZXMnO1xuaW1wb3J0IHsgRmxvd1VwZGF0ZVNlcnZpY2UgfSBmcm9tICcuL2Zsb3ctdXBkYXRlLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRmxvd0NvbmZpZ3VyYXRpb25TZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBwcm9jZWR1cmVzQXBpU2VydmljZTogUHJvY2VkdXJlc0FwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb250ZXh0U2VydmljZTogQ29udGV4dFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBxdW90ZURyYWZ0U2VydmljZTogUXVvdGVEcmFmdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSB1cGRhdGVTZXJ2aWNlOiBGbG93VXBkYXRlU2VydmljZSxcbiAgICBwcml2YXRlIGNvbmZpZ3VyYXRpb25TZXJ2aWNlOiBDb25maWd1cmF0aW9uU2VydmljZSxcbiAgKSB7fVxuXG4gIHB1YmxpYyBjYWxjdWxhdGUkKHF1b3RlRHJhZnQ6IFF1b3RlRHJhZnQpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5wcm9jZWR1cmVzQXBpU2VydmljZS5hcHBseSQocXVvdGVEcmFmdCkucGlwZShcbiAgICAgIHRhcChyZXN1bHQgPT4ge1xuICAgICAgICAvLyBzb3J0IHRoZSByZXN1bHQgY3VycmVudCBzdGF0ZSBiYXNlZCBvbiB0aGUgcXVvdGUgZHJhZnQgaW5pdGlhbCBzdGF0ZVxuICAgICAgICBjb25zdCBpbml0aWFsU3RhdGVJZHMgPSBxdW90ZURyYWZ0LmluaXRpYWxTdGF0ZS5tYXAobGluZUl0ZW0gPT4gbGluZUl0ZW0uaW50ZWdyYXRpb25JZCk7XG4gICAgICAgIHJlc3VsdC5jdXJyZW50U3RhdGUgPSByZXN1bHQuY3VycmVudFN0YXRlXG4gICAgICAgICAgLnNsaWNlKClcbiAgICAgICAgICAuc29ydCgoYSwgYikgPT4gaW5pdGlhbFN0YXRlSWRzLmluZGV4T2YoYS5pbnRlZ3JhdGlvbklkKSAtIGluaXRpYWxTdGF0ZUlkcy5pbmRleE9mKGIuaW50ZWdyYXRpb25JZCkpO1xuICAgICAgICB0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLnVwZGF0ZVF1b3RlRHJhZnQocmVzdWx0KTtcbiAgICAgIH0pLFxuICAgICAgbWFwKG5vb3ApLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgY2FsY3VsYXRlKHF1b3RlRHJhZnQ6IFF1b3RlRHJhZnQpOiB2b2lkIHtcbiAgICB0aGlzLmNhbGN1bGF0ZSQocXVvdGVEcmFmdCkuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlJCh1cGRhdGVzOiBGbG93VXBkYXRlUGFyYW1zW10pOiBPYnNlcnZhYmxlPFF1b3RlRHJhZnQgfCBudWxsPiB7XG4gICAgY29uc3QgcXVvdGVEcmFmdCA9IHRoaXMucXVvdGVEcmFmdFNlcnZpY2UucXVvdGVEcmFmdDtcblxuICAgIGlmICghcXVvdGVEcmFmdCkge1xuICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgIH1cblxuICAgIHJldHVybiBvZihbXSkucGlwZShcbiAgICAgIG1hcCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHVwZGF0ZWRTdGF0ZSA9IGNsb25lRGVlcChxdW90ZURyYWZ0LmN1cnJlbnRTdGF0ZSk7XG4gICAgICAgIHRoaXMudXBkYXRlU2VydmljZS51cGRhdGUodXBkYXRlZFN0YXRlLCB1cGRhdGVzKTtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZWRTdGF0ZTtcbiAgICAgIH0pLFxuICAgICAgc3dpdGNoTWFwKHVwZGF0ZWRTdGF0ZSA9PiB0aGlzLmNhbGN1bGF0ZSQoeyAuLi5xdW90ZURyYWZ0LCBjdXJyZW50U3RhdGU6IHVwZGF0ZWRTdGF0ZSB9KSksXG4gICAgICBtYXAoKCkgPT4gdGhpcy5xdW90ZURyYWZ0U2VydmljZS5xdW90ZURyYWZ0KSxcbiAgICAgIHRoaXMuaGFuZGxlRXJyb3JBbmRCb3VuY2VCYWNrKCksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGUodXBkYXRlczogRmxvd1VwZGF0ZVBhcmFtc1tdKTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGUkKHVwZGF0ZXMpLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIHJldmVydCQobGluZUl0ZW1JZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxRdW90ZURyYWZ0IHwgbnVsbD4ge1xuICAgIGNvbnN0IHF1b3RlRHJhZnQgPSB0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLnF1b3RlRHJhZnQ7XG4gICAgY29uc3QgaW5pdGlhbEN1cnJlbnRTdGF0ZSA9IHRoaXMucXVvdGVEcmFmdFNlcnZpY2UuZ2V0SW5pdGlhbEN1cnJlbnRTdGF0ZSgpO1xuICAgIGNvbnN0IGN1cnJlbnRTdGF0ZSA9IHRoaXMucXVvdGVEcmFmdFNlcnZpY2UuYWN0aXZlQ3VycmVudFN0YXRlO1xuXG4gICAgY29uc3QgY3VycmVudExpbmVJdGVtSW5kZXggPSBjdXJyZW50U3RhdGUuZmluZEluZGV4KCh7IGlkIH0pID0+IGlkID09PSBsaW5lSXRlbUlkKTtcbiAgICBjb25zdCBjdXJyZW50TGluZUl0ZW0gPSBjdXJyZW50U3RhdGVbY3VycmVudExpbmVJdGVtSW5kZXhdO1xuXG4gICAgY29uc3QgaW5pdGlhbExpbmVJdGVtID0gaW5pdGlhbEN1cnJlbnRTdGF0ZS5maW5kKFxuICAgICAgKHsgaW50ZWdyYXRpb25JZCB9KSA9PiBpbnRlZ3JhdGlvbklkID09PSBjdXJyZW50TGluZUl0ZW0/LmludGVncmF0aW9uSWQsXG4gICAgKTtcblxuICAgIGlmICghcXVvdGVEcmFmdCB8fCAhY3VycmVudExpbmVJdGVtIHx8ICFpbml0aWFsTGluZUl0ZW0pIHtcbiAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICB9XG5cbiAgICBjb25zdCB1cGRhdGVkU3RhdGUgPSBjbG9uZURlZXAoY3VycmVudFN0YXRlKTtcbiAgICB1cGRhdGVkU3RhdGUuc3BsaWNlKGN1cnJlbnRMaW5lSXRlbUluZGV4LCAxLCBpbml0aWFsTGluZUl0ZW0pO1xuXG4gICAgcmV0dXJuIG9mKFtdKS5waXBlKFxuICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgdGhpcy5xdW90ZURyYWZ0U2VydmljZS5zZXRDdXJyZW50TGluZUl0ZW1TdGF0ZSh1cGRhdGVkU3RhdGUpO1xuICAgICAgfSksXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5jYWxjdWxhdGUkKHsgLi4ucXVvdGVEcmFmdCwgY3VycmVudFN0YXRlOiB1cGRhdGVkU3RhdGUgfSkpLFxuICAgICAgbWFwKCgpID0+IHRoaXMucXVvdGVEcmFmdFNlcnZpY2UucXVvdGVEcmFmdCksXG4gICAgICB0aGlzLmhhbmRsZUVycm9yQW5kQm91bmNlQmFjaygpLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgcmV2ZXJ0KGxpbmVJdGVtSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMucmV2ZXJ0JChsaW5lSXRlbUlkKS5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBkZWxldGUkKGlkczogc3RyaW5nW10pOiBPYnNlcnZhYmxlPFF1b3RlRHJhZnQgfCBudWxsPiB7XG4gICAgY29uc3QgcXVvdGVEcmFmdCA9IHRoaXMucXVvdGVEcmFmdFNlcnZpY2UucXVvdGVEcmFmdDtcbiAgICBjb25zdCBjdXJyZW50U3RhdGUgPSB0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLmN1cnJlbnRTdGF0ZTtcblxuICAgIGlmICghcXVvdGVEcmFmdCkge1xuICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgIH1cblxuICAgIHJldHVybiBvZihbXSkucGlwZShcbiAgICAgIG1hcCgoKSA9PiBpZHMucmVkdWNlKChyZXN1bHQsIGlkKSA9PiB0aGlzLnVwZGF0ZVNlcnZpY2UuZGVsZXRlKHJlc3VsdCwgaWQpLCBjdXJyZW50U3RhdGUpKSxcbiAgICAgIHN3aXRjaE1hcCh1cGRhdGVkU3RhdGUgPT4gdGhpcy5jYWxjdWxhdGUkKHsgLi4ucXVvdGVEcmFmdCwgY3VycmVudFN0YXRlOiB1cGRhdGVkU3RhdGUgfSkpLFxuICAgICAgbWFwKCgpID0+IHRoaXMucXVvdGVEcmFmdFNlcnZpY2UucXVvdGVEcmFmdCksXG4gICAgICB0aGlzLmhhbmRsZUVycm9yQW5kQm91bmNlQmFjaygpLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZGVsZXRlKGlkczogc3RyaW5nW10pOiB2b2lkIHtcbiAgICB0aGlzLmRlbGV0ZSQoaWRzKS5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRUZXJtJCh0ZXJtOiBMaW5lSXRlbSk6IE9ic2VydmFibGU8UXVvdGVEcmFmdCB8IG51bGw+IHtcbiAgICBjb25zdCBxdW90ZURyYWZ0ID0gdGhpcy5xdW90ZURyYWZ0U2VydmljZS5xdW90ZURyYWZ0O1xuXG4gICAgaWYgKCFxdW90ZURyYWZ0KSB7XG4gICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgfVxuXG4gICAgY29uc3QgdXBkYXRlZFN0YXRlID0gWy4uLnF1b3RlRHJhZnQuY3VycmVudFN0YXRlLCB0ZXJtXTtcblxuICAgIHJldHVybiBvZihbXSkucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLmNhbGN1bGF0ZSQoeyAuLi5xdW90ZURyYWZ0LCBjdXJyZW50U3RhdGU6IHVwZGF0ZWRTdGF0ZSB9KSksXG4gICAgICBtYXAoKCkgPT4gdGhpcy5xdW90ZURyYWZ0U2VydmljZS5xdW90ZURyYWZ0KSxcbiAgICAgIHRoaXMuaGFuZGxlRXJyb3JBbmRCb3VuY2VCYWNrKCksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRUb0NhcnQkKHByb2R1Y3RJZDogc3RyaW5nLCBxdHk/OiBudW1iZXIpOiBPYnNlcnZhYmxlPFF1b3RlRHJhZnQgfCBudWxsPiB7XG4gICAgY29uc3QgcXVvdGVEcmFmdCA9IHRoaXMucXVvdGVEcmFmdFNlcnZpY2UucXVvdGVEcmFmdDtcblxuICAgIGlmICghcXVvdGVEcmFmdCkge1xuICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlLmNvbmZpZ3VyZUV4dGVybmFsJChwcm9kdWN0SWQsIHF0eSkucGlwZShcbiAgICAgIG1hcChsaW5lSXRlbSA9PiB7XG4gICAgICAgIGNvbnN0IG1vZGVsID0gdGhpcy5jb25maWd1cmF0aW9uU2VydmljZS5nZXRSdW50aW1lTW9kZWwoKTtcbiAgICAgICAgY29uc3Qgc3BsaXQgPSBtb2RlbD8udHlwZXMuZmluZCh0eXBlID0+IHR5cGUubmFtZSA9PT0gbGluZUl0ZW0udHlwZSk/LnNwbGl0ID8/IGZhbHNlO1xuICAgICAgICBjb25zdCBsaW5lSXRlbXMgPSBtdWx0aXBseUxpbmVJdGVtcyhsaW5lSXRlbSwgcXR5ID8/IDEsIHNwbGl0KTtcblxuICAgICAgICByZXR1cm4gWy4uLnF1b3RlRHJhZnQuY3VycmVudFN0YXRlLCAuLi5saW5lSXRlbXNdO1xuICAgICAgfSksXG4gICAgICBzd2l0Y2hNYXAodXBkYXRlZFN0YXRlID0+IHRoaXMuY2FsY3VsYXRlJCh7IC4uLnF1b3RlRHJhZnQsIGN1cnJlbnRTdGF0ZTogdXBkYXRlZFN0YXRlIH0pKSxcbiAgICAgIG1hcCgoKSA9PiB0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLnF1b3RlRHJhZnQpLFxuICAgICAgdGhpcy5oYW5kbGVFcnJvckFuZEJvdW5jZUJhY2soKSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldCgpOiBPYnNlcnZhYmxlPExpbmVJdGVtW10+IHtcbiAgICByZXR1cm4gdGhpcy5xdW90ZURyYWZ0U2VydmljZS5xdW90ZURyYWZ0JC5waXBlKFxuICAgICAgbWFwKCgpID0+IHRoaXMucXVvdGVEcmFmdFNlcnZpY2UuYWN0aXZlQ3VycmVudFN0YXRlKSxcbiAgICAgIHNoYXJlUmVwbGF5KCksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRTbmFwc2hvdCgpOiBMaW5lSXRlbVtdIHtcbiAgICByZXR1cm4gdGhpcy5xdW90ZURyYWZ0U2VydmljZT8uY3VycmVudFN0YXRlLnNsaWNlKCkgPz8gW107XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNoYXJnZXMkKCk6IE9ic2VydmFibGU8RGljdGlvbmFyeTxDaGFyZ2U+PiB7XG4gICAgcmV0dXJuIHRoaXMucXVvdGVEcmFmdFNlcnZpY2UucXVvdGVEcmFmdCQucGlwZShtYXAoKHsgY2hhcmdlcyB9KSA9PiBjaGFyZ2VzKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHByaWNlUGxhbnMkKCk6IE9ic2VydmFibGU8RGljdGlvbmFyeTxDb21waWxlZFByaWNlUGxhbj4+IHtcbiAgICByZXR1cm4gdGhpcy5xdW90ZURyYWZ0U2VydmljZS5xdW90ZURyYWZ0JC5waXBlKG1hcCgoeyBwcmljZVBsYW5zIH0pID0+IHByaWNlUGxhbnMpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYWN0aXZlTWV0cmljcyQoKTogT2JzZXJ2YWJsZTxNZXRyaWNSdWxlW10+IHtcbiAgICByZXR1cm4gdGhpcy5xdW90ZURyYWZ0U2VydmljZS5xdW90ZURyYWZ0JC5waXBlKG1hcCgoeyBhY3RpdmVNZXRyaWNzIH0pID0+IGFjdGl2ZU1ldHJpY3MpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY2hhcmdlc1NuYXBzaG90KCk6IERpY3Rpb25hcnk8Q2hhcmdlPiB7XG4gICAgcmV0dXJuIHRoaXMucXVvdGVEcmFmdFNlcnZpY2UucXVvdGVEcmFmdD8uY2hhcmdlcyA/PyB7fTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcHJpY2VQbGFuc1NuYXBzaG90KCk6IERpY3Rpb25hcnk8Q29tcGlsZWRQcmljZVBsYW4+IHtcbiAgICByZXR1cm4gdGhpcy5xdW90ZURyYWZ0U2VydmljZS5xdW90ZURyYWZ0Py5wcmljZVBsYW5zID8/IHt9O1xuICB9XG5cbiAgcHVibGljIGdldCBhY3RpdmVNZXRyaWNzU25hcHNob3QoKTogTWV0cmljUnVsZVtdIHtcbiAgICByZXR1cm4gdGhpcy5xdW90ZURyYWZ0U2VydmljZS5xdW90ZURyYWZ0Py5hY3RpdmVNZXRyaWNzID8/IFtdO1xuICB9XG5cbiAgcHVibGljIGdldCBjb250ZXh0U25hcHNob3QoKTogQ29uZmlndXJhdGlvbkNvbnRleHQge1xuICAgIHJldHVybiB0aGlzLmNvbnRleHRTZXJ2aWNlLnJlc29sdmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY29udGV4dCQoKTogT2JzZXJ2YWJsZTxDb25maWd1cmF0aW9uQ29udGV4dD4ge1xuICAgIHJldHVybiB0aGlzLmNvbnRleHRTZXJ2aWNlLnJlc29sdmUkKCk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUVycm9yQW5kQm91bmNlQmFjaygpIHtcbiAgICByZXR1cm4gPFQ+KHNvdXJjZSQ6IE9ic2VydmFibGU8VD4pOiBPYnNlcnZhYmxlPFQ+ID0+IHtcbiAgICAgIHJldHVybiBzb3VyY2UkLnBpcGUoXG4gICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuXG4gICAgICAgICAgLy8gYm91bmNlIGJhY2sgaWYgY29uZmlndXJhdGlvbiBjYWxsIGhhcyBmYWlsZWRcbiAgICAgICAgICBjb25zdCBxdW90ZURyYWZ0ID0gdGhpcy5xdW90ZURyYWZ0U2VydmljZS5xdW90ZURyYWZ0O1xuICAgICAgICAgIGlmIChxdW90ZURyYWZ0KSB7XG4gICAgICAgICAgICB0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLnVwZGF0ZVF1b3RlRHJhZnQocXVvdGVEcmFmdCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZXJyb3IpO1xuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfTtcbiAgfVxufVxuIl19
150
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvdy1jb25maWd1cmF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jb3JlL21vZHVsZXMvZmxvdy1jb25maWd1cmF0aW9uL3NlcnZpY2VzL2Zsb3ctY29uZmlndXJhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxFQUFFLFNBQVMsRUFBYyxNQUFNLFFBQVEsQ0FBQztBQUMvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQWMsRUFBRSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUd0RyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7Ozs7OztBQU1uRSxNQUFNLE9BQU8sd0JBQXdCO0lBQ25DLFlBQ1Usb0JBQTBDLEVBQzFDLGNBQThCLEVBQzlCLGlCQUFvQyxFQUNwQyxhQUFnQyxFQUNoQyxvQkFBMEM7UUFKMUMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQUMxQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxrQkFBYSxHQUFiLGFBQWEsQ0FBbUI7UUFDaEMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtJQUNqRCxDQUFDO0lBRUcsVUFBVSxDQUFDLFVBQXNCO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQ3RELEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNYLHVFQUF1RTtZQUN2RSxNQUFNLGVBQWUsR0FBRyxVQUFVLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxD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RCxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQ2pCLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDakIsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFFckIsK0NBQStDO2dCQUMvQyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDO2dCQUNyRCxJQUFJLFVBQVUsRUFBRTtvQkFDZCxJQUFJLENBQUMsaUJBQWlCLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLENBQUM7aUJBQ3JEO2dCQUVELE9BQU8sVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2pDLENBQUMsQ0FBQyxDQUNILENBQUM7UUFDSixDQUFDLENBQUM7SUFDSixDQUFDOztzSEF2TVUsd0JBQXdCOzBIQUF4Qix3QkFBd0I7NEZBQXhCLHdCQUF3QjtrQkFEcEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFByb2NlZHVyZXNBcGlTZXJ2aWNlIH0gZnJvbSAnQHZlbG9jZWFwcHMvYXBpJztcbmltcG9ydCB7IENoYXJnZSwgQ29tcGlsZWRQcmljZVBsYW4sIENvbmZpZ3VyYXRpb25Db250ZXh0LCBMaW5lSXRlbSwgTWV0cmljUnVsZSwgUXVvdGVEcmFmdCB9IGZyb20gJ0B2ZWxvY2VhcHBzL2NvcmUnO1xuaW1wb3J0IHsgY2xvbmVEZWVwLCBEaWN0aW9uYXJ5IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCwgbm9vcCwgT2JzZXJ2YWJsZSwgb2YsIHNoYXJlUmVwbGF5LCBzd2l0Y2hNYXAsIHRhcCwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ29udGV4dFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9jb250ZXh0LnNlcnZpY2UnO1xuaW1wb3J0IHsgUXVvdGVEcmFmdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9xdW90ZS1kcmFmdC5zZXJ2aWNlJztcbmltcG9ydCB7IG11bHRpcGx5TGluZUl0ZW1zIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvbGluZS1pdGVtLnV0aWxzJztcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29uZmlndXJhdGlvbi9zZXJ2aWNlcy9jb25maWd1cmF0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgRmxvd1VwZGF0ZVBhcmFtcyB9IGZyb20gJy4uL3R5cGVzL3VwZGF0ZS50eXBlcyc7XG5pbXBvcnQgeyBGbG93VXBkYXRlU2VydmljZSB9IGZyb20gJy4vZmxvdy11cGRhdGUuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBGbG93Q29uZmlndXJhdGlvblNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHByb2NlZHVyZXNBcGlTZXJ2aWNlOiBQcm9jZWR1cmVzQXBpU2VydmljZSxcbiAgICBwcml2YXRlIGNvbnRleHRTZXJ2aWNlOiBDb250ZXh0U2VydmljZSxcbiAgICBwcml2YXRlIHF1b3RlRHJhZnRTZXJ2aWNlOiBRdW90ZURyYWZ0U2VydmljZSxcbiAgICBwcml2YXRlIHVwZGF0ZVNlcnZpY2U6IEZsb3dVcGRhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29uZmlndXJhdGlvblNlcnZpY2U6IENvbmZpZ3VyYXRpb25TZXJ2aWNlLFxuICApIHt9XG5cbiAgcHVibGljIGNhbGN1bGF0ZSQocXVvdGVEcmFmdDogUXVvdGVEcmFmdCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLnByb2NlZHVyZXNBcGlTZXJ2aWNlLmFwcGx5JChxdW90ZURyYWZ0KS5waXBlKFxuICAgICAgdGFwKHJlc3VsdCA9PiB7XG4gICAgICAgIC8vIHNvcnQgdGhlIHJlc3VsdCBjdXJyZW50IHN0YXRlIGJhc2VkIG9uIHRoZSBxdW90ZSBkcmFmdCBpbml0aWFsIHN0YXRlXG4gICAgICAgIGNvbnN0IGluaXRpYWxTdGF0ZUlkcyA9IHF1b3RlRHJhZnQuaW5pdGlhbFN0YXRlLm1hcChsaW5lSXRlbSA9PiBsaW5lSXRlbS5pbnRlZ3JhdGlvbklkKTtcbiAgICAgICAgcmVzdWx0LmN1cnJlbnRTdGF0ZSA9IHJlc3VsdC5jdXJyZW50U3RhdGVcbiAgICAgICAgICAuc2xpY2UoKVxuICAgICAgICAgIC5zb3J0KChhLCBiKSA9PiBpbml0aWFsU3RhdGVJZHMuaW5kZXhPZihhLmludGVncmF0aW9uSWQpIC0gaW5pdGlhbFN0YXRlSWRzLmluZGV4T2YoYi5pbnRlZ3JhdGlvbklkKSk7XG4gICAgICAgIHRoaXMucXVvdGVEcmFmdFNlcnZpY2UudXBkYXRlUXVvdGVEcmFmdChyZXN1bHQpO1xuICAgICAgfSksXG4gICAgICBtYXAobm9vcCksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBjYWxjdWxhdGUocXVvdGVEcmFmdDogUXVvdGVEcmFmdCk6IHZvaWQge1xuICAgIHRoaXMuY2FsY3VsYXRlJChxdW90ZURyYWZ0KS5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGUkKHVwZGF0ZXM6IEZsb3dVcGRhdGVQYXJhbXNbXSk6IE9ic2VydmFibGU8UXVvdGVEcmFmdCB8IG51bGw+IHtcbiAgICBjb25zdCBxdW90ZURyYWZ0ID0gdGhpcy5xdW90ZURyYWZ0U2VydmljZS5xdW90ZURyYWZ0O1xuXG4gICAgaWYgKCFxdW90ZURyYWZ0KSB7XG4gICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG9mKFtdKS5waXBlKFxuICAgICAgbWFwKCgpID0+IHtcbiAgICAgICAgY29uc3QgdXBkYXRlZFN0YXRlID0gY2xvbmVEZWVwKHF1b3RlRHJhZnQuY3VycmVudFN0YXRlKTtcbiAgICAgICAgdGhpcy51cGRhdGVTZXJ2aWNlLnVwZGF0ZSh1cGRhdGVkU3RhdGUsIHVwZGF0ZXMsIHF1b3RlRHJhZnQuY2hhcmdlcyk7XG4gICAgICAgIHJldHVybiB1cGRhdGVkU3RhdGU7XG4gICAgICB9KSxcbiAgICAgIHN3aXRjaE1hcCh1cGRhdGVkU3RhdGUgPT4gdGhpcy5jYWxjdWxhdGUkKHsgLi4ucXVvdGVEcmFmdCwgY3VycmVudFN0YXRlOiB1cGRhdGVkU3RhdGUgfSkpLFxuICAgICAgbWFwKCgpID0+IHRoaXMucXVvdGVEcmFmdFNlcnZpY2UucXVvdGVEcmFmdCksXG4gICAgICB0aGlzLmhhbmRsZUVycm9yQW5kQm91bmNlQmFjaygpLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlKHVwZGF0ZXM6IEZsb3dVcGRhdGVQYXJhbXNbXSk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlJCh1cGRhdGVzKS5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyByZXZlcnQkKGxpbmVJdGVtSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8UXVvdGVEcmFmdCB8IG51bGw+IHtcbiAgICBjb25zdCBxdW90ZURyYWZ0ID0gdGhpcy5xdW90ZURyYWZ0U2VydmljZS5xdW90ZURyYWZ0O1xuICAgIGNvbnN0IGluaXRpYWxDdXJyZW50U3RhdGUgPSB0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLmdldEluaXRpYWxDdXJyZW50U3RhdGUoKTtcbiAgICBjb25zdCBjdXJyZW50U3RhdGUgPSB0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLmFjdGl2ZUN1cnJlbnRTdGF0ZTtcblxuICAgIGNvbnN0IGN1cnJlbnRMaW5lSXRlbUluZGV4ID0gY3VycmVudFN0YXRlLmZpbmRJbmRleCgoeyBpZCB9KSA9PiBpZCA9PT0gbGluZUl0ZW1JZCk7XG4gICAgY29uc3QgY3VycmVudExpbmVJdGVtID0gY3VycmVudFN0YXRlW2N1cnJlbnRMaW5lSXRlbUluZGV4XTtcblxuICAgIGNvbnN0IGluaXRpYWxMaW5lSXRlbSA9IGluaXRpYWxDdXJyZW50U3RhdGUuZmluZChcbiAgICAgICh7IGludGVncmF0aW9uSWQgfSkgPT4gaW50ZWdyYXRpb25JZCA9PT0gY3VycmVudExpbmVJdGVtPy5pbnRlZ3JhdGlvbklkLFxuICAgICk7XG5cbiAgICBpZiAoIXF1b3RlRHJhZnQgfHwgIWN1cnJlbnRMaW5lSXRlbSB8fCAhaW5pdGlhbExpbmVJdGVtKSB7XG4gICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgfVxuXG4gICAgY29uc3QgdXBkYXRlZFN0YXRlID0gY2xvbmVEZWVwKGN1cnJlbnRTdGF0ZSk7XG4gICAgdXBkYXRlZFN0YXRlLnNwbGljZShjdXJyZW50TGluZUl0ZW1JbmRleCwgMSwgaW5pdGlhbExpbmVJdGVtKTtcblxuICAgIHJldHVybiBvZihbXSkucGlwZShcbiAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgIHRoaXMucXVvdGVEcmFmdFNlcnZpY2Uuc2V0Q3VycmVudExpbmVJdGVtU3RhdGUodXBkYXRlZFN0YXRlKTtcbiAgICAgIH0pLFxuICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuY2FsY3VsYXRlJCh7IC4uLnF1b3RlRHJhZnQsIGN1cnJlbnRTdGF0ZTogdXBkYXRlZFN0YXRlIH0pKSxcbiAgICAgIG1hcCgoKSA9PiB0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLnF1b3RlRHJhZnQpLFxuICAgICAgdGhpcy5oYW5kbGVFcnJvckFuZEJvdW5jZUJhY2soKSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHJldmVydChsaW5lSXRlbUlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnJldmVydCQobGluZUl0ZW1JZCkuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgZGVsZXRlJChpZHM6IHN0cmluZ1tdKTogT2JzZXJ2YWJsZTxRdW90ZURyYWZ0IHwgbnVsbD4ge1xuICAgIGNvbnN0IHF1b3RlRHJhZnQgPSB0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLnF1b3RlRHJhZnQ7XG4gICAgY29uc3QgY3VycmVudFN0YXRlID0gdGhpcy5xdW90ZURyYWZ0U2VydmljZS5jdXJyZW50U3RhdGU7XG5cbiAgICBpZiAoIXF1b3RlRHJhZnQpIHtcbiAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICB9XG5cbiAgICByZXR1cm4gb2YoW10pLnBpcGUoXG4gICAgICBtYXAoKCkgPT4gaWRzLnJlZHVjZSgocmVzdWx0LCBpZCkgPT4gdGhpcy51cGRhdGVTZXJ2aWNlLmRlbGV0ZShyZXN1bHQsIGlkKSwgY3VycmVudFN0YXRlKSksXG4gICAgICBzd2l0Y2hNYXAodXBkYXRlZFN0YXRlID0+IHRoaXMuY2FsY3VsYXRlJCh7IC4uLnF1b3RlRHJhZnQsIGN1cnJlbnRTdGF0ZTogdXBkYXRlZFN0YXRlIH0pKSxcbiAgICAgIG1hcCgoKSA9PiB0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLnF1b3RlRHJhZnQpLFxuICAgICAgdGhpcy5oYW5kbGVFcnJvckFuZEJvdW5jZUJhY2soKSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGRlbGV0ZShpZHM6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgdGhpcy5kZWxldGUkKGlkcykuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgYWRkVGVybSQodGVybTogTGluZUl0ZW0pOiBPYnNlcnZhYmxlPFF1b3RlRHJhZnQgfCBudWxsPiB7XG4gICAgY29uc3QgcXVvdGVEcmFmdCA9IHRoaXMucXVvdGVEcmFmdFNlcnZpY2UucXVvdGVEcmFmdDtcblxuICAgIGlmICghcXVvdGVEcmFmdCkge1xuICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgIH1cblxuICAgIGNvbnN0IHVwZGF0ZWRTdGF0ZSA9IFsuLi5xdW90ZURyYWZ0LmN1cnJlbnRTdGF0ZSwgdGVybV07XG5cbiAgICByZXR1cm4gb2YoW10pLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5jYWxjdWxhdGUkKHsgLi4ucXVvdGVEcmFmdCwgY3VycmVudFN0YXRlOiB1cGRhdGVkU3RhdGUgfSkpLFxuICAgICAgbWFwKCgpID0+IHRoaXMucXVvdGVEcmFmdFNlcnZpY2UucXVvdGVEcmFmdCksXG4gICAgICB0aGlzLmhhbmRsZUVycm9yQW5kQm91bmNlQmFjaygpLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgYWRkVG9DYXJ0JChwcm9kdWN0SWQ6IHN0cmluZywgcXR5PzogbnVtYmVyKTogT2JzZXJ2YWJsZTxRdW90ZURyYWZ0IHwgbnVsbD4ge1xuICAgIGNvbnN0IHF1b3RlRHJhZnQgPSB0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLnF1b3RlRHJhZnQ7XG5cbiAgICBpZiAoIXF1b3RlRHJhZnQpIHtcbiAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5jb25maWd1cmF0aW9uU2VydmljZS5jb25maWd1cmVFeHRlcm5hbCQocHJvZHVjdElkLCBxdHkpLnBpcGUoXG4gICAgICBtYXAobGluZUl0ZW0gPT4ge1xuICAgICAgICBjb25zdCBtb2RlbCA9IHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2UuZ2V0UnVudGltZU1vZGVsKCk7XG4gICAgICAgIGNvbnN0IHNwbGl0ID0gbW9kZWw/LnR5cGVzLmZpbmQodHlwZSA9PiB0eXBlLm5hbWUgPT09IGxpbmVJdGVtLnR5cGUpPy5zcGxpdCA/PyBmYWxzZTtcbiAgICAgICAgY29uc3QgbGluZUl0ZW1zID0gbXVsdGlwbHlMaW5lSXRlbXMobGluZUl0ZW0sIHF0eSA/PyAxLCBzcGxpdCk7XG5cbiAgICAgICAgcmV0dXJuIFsuLi5xdW90ZURyYWZ0LmN1cnJlbnRTdGF0ZSwgLi4ubGluZUl0ZW1zXTtcbiAgICAgIH0pLFxuICAgICAgc3dpdGNoTWFwKHVwZGF0ZWRTdGF0ZSA9PiB0aGlzLmNhbGN1bGF0ZSQoeyAuLi5xdW90ZURyYWZ0LCBjdXJyZW50U3RhdGU6IHVwZGF0ZWRTdGF0ZSB9KSksXG4gICAgICBtYXAoKCkgPT4gdGhpcy5xdW90ZURyYWZ0U2VydmljZS5xdW90ZURyYWZ0KSxcbiAgICAgIHRoaXMuaGFuZGxlRXJyb3JBbmRCb3VuY2VCYWNrKCksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQoKTogT2JzZXJ2YWJsZTxMaW5lSXRlbVtdPiB7XG4gICAgcmV0dXJuIHRoaXMucXVvdGVEcmFmdFNlcnZpY2UucXVvdGVEcmFmdCQucGlwZShcbiAgICAgIG1hcCgoKSA9PiB0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLmFjdGl2ZUN1cnJlbnRTdGF0ZSksXG4gICAgICBzaGFyZVJlcGxheSgpLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0U25hcHNob3QoKTogTGluZUl0ZW1bXSB7XG4gICAgcmV0dXJuIHRoaXMucXVvdGVEcmFmdFNlcnZpY2U/LmN1cnJlbnRTdGF0ZS5zbGljZSgpID8/IFtdO1xuICB9XG5cbiAgcHVibGljIGdldCBjaGFyZ2VzJCgpOiBPYnNlcnZhYmxlPERpY3Rpb25hcnk8Q2hhcmdlPj4ge1xuICAgIHJldHVybiB0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLnF1b3RlRHJhZnQkLnBpcGUobWFwKCh7IGNoYXJnZXMgfSkgPT4gY2hhcmdlcykpO1xuICB9XG5cbiAgcHVibGljIGdldCBwcmljZVBsYW5zJCgpOiBPYnNlcnZhYmxlPERpY3Rpb25hcnk8Q29tcGlsZWRQcmljZVBsYW4+PiB7XG4gICAgcmV0dXJuIHRoaXMucXVvdGVEcmFmdFNlcnZpY2UucXVvdGVEcmFmdCQucGlwZShtYXAoKHsgcHJpY2VQbGFucyB9KSA9PiBwcmljZVBsYW5zKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGFjdGl2ZU1ldHJpY3MkKCk6IE9ic2VydmFibGU8TWV0cmljUnVsZVtdPiB7XG4gICAgcmV0dXJuIHRoaXMucXVvdGVEcmFmdFNlcnZpY2UucXVvdGVEcmFmdCQucGlwZShtYXAoKHsgYWN0aXZlTWV0cmljcyB9KSA9PiBhY3RpdmVNZXRyaWNzKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNoYXJnZXNTbmFwc2hvdCgpOiBEaWN0aW9uYXJ5PENoYXJnZT4ge1xuICAgIHJldHVybiB0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLnF1b3RlRHJhZnQ/LmNoYXJnZXMgPz8ge307XG4gIH1cblxuICBwdWJsaWMgZ2V0IHByaWNlUGxhbnNTbmFwc2hvdCgpOiBEaWN0aW9uYXJ5PENvbXBpbGVkUHJpY2VQbGFuPiB7XG4gICAgcmV0dXJuIHRoaXMucXVvdGVEcmFmdFNlcnZpY2UucXVvdGVEcmFmdD8ucHJpY2VQbGFucyA/PyB7fTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYWN0aXZlTWV0cmljc1NuYXBzaG90KCk6IE1ldHJpY1J1bGVbXSB7XG4gICAgcmV0dXJuIHRoaXMucXVvdGVEcmFmdFNlcnZpY2UucXVvdGVEcmFmdD8uYWN0aXZlTWV0cmljcyA/PyBbXTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY29udGV4dFNuYXBzaG90KCk6IENvbmZpZ3VyYXRpb25Db250ZXh0IHtcbiAgICByZXR1cm4gdGhpcy5jb250ZXh0U2VydmljZS5yZXNvbHZlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNvbnRleHQkKCk6IE9ic2VydmFibGU8Q29uZmlndXJhdGlvbkNvbnRleHQ+IHtcbiAgICByZXR1cm4gdGhpcy5jb250ZXh0U2VydmljZS5yZXNvbHZlJCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVFcnJvckFuZEJvdW5jZUJhY2soKSB7XG4gICAgcmV0dXJuIDxUPihzb3VyY2UkOiBPYnNlcnZhYmxlPFQ+KTogT2JzZXJ2YWJsZTxUPiA9PiB7XG4gICAgICByZXR1cm4gc291cmNlJC5waXBlKFxuICAgICAgICBjYXRjaEVycm9yKGVycm9yID0+IHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcblxuICAgICAgICAgIC8vIGJvdW5jZSBiYWNrIGlmIGNvbmZpZ3VyYXRpb24gY2FsbCBoYXMgZmFpbGVkXG4gICAgICAgICAgY29uc3QgcXVvdGVEcmFmdCA9IHRoaXMucXVvdGVEcmFmdFNlcnZpY2UucXVvdGVEcmFmdDtcbiAgICAgICAgICBpZiAocXVvdGVEcmFmdCkge1xuICAgICAgICAgICAgdGhpcy5xdW90ZURyYWZ0U2VydmljZS51cGRhdGVRdW90ZURyYWZ0KHF1b3RlRHJhZnQpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IGVycm9yKTtcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIH07XG4gIH1cbn1cbiJdfQ==
@@ -5,7 +5,7 @@ import moment from 'moment';
5
5
  import { LineItemWorker } from '../../../utils';
6
6
  import * as i0 from "@angular/core";
7
7
  export class FlowUpdateService {
8
- update(rootLineItems, updates) {
8
+ update(rootLineItems, updates, charges) {
9
9
  let remainingUpdates = [...updates];
10
10
  let currentLevel = rootLineItems;
11
11
  while (currentLevel.length && remainingUpdates.length) {
@@ -15,7 +15,7 @@ export class FlowUpdateService {
15
15
  let updated = false;
16
16
  switch (update.dataType) {
17
17
  case 'LINEITEM':
18
- updated = this.applyLineItemUpdate(li, update);
18
+ updated = this.applyLineItemUpdate(li, update, charges);
19
19
  break;
20
20
  case 'CHARGE':
21
21
  updated = this.applyChargeUpdate(li, update);
@@ -53,7 +53,7 @@ export class FlowUpdateService {
53
53
  const filtered = lineItems.filter(lineItem => !idsToRemove.includes(lineItem.id));
54
54
  return filtered.map(lineItem => new LineItemWorker(lineItem).remove(id).li);
55
55
  }
56
- applyLineItemUpdate(lineItem, update) {
56
+ applyLineItemUpdate(lineItem, update, charges) {
57
57
  if (lineItem.id !== update.id) {
58
58
  return false;
59
59
  }
@@ -69,7 +69,7 @@ export class FlowUpdateService {
69
69
  break;
70
70
  case 'PRICE_ADJUSTMENT':
71
71
  {
72
- const [charge] = lineItem.chargeItems;
72
+ const charge = lineItem.chargeItems.find(charge => { var _a; return (_a = (charges || {})[charge.chargeId]) === null || _a === void 0 ? void 0 : _a.main; });
73
73
  if (charge) {
74
74
  charge.priceAdjustment = update.newValue;
75
75
  }
@@ -77,7 +77,7 @@ export class FlowUpdateService {
77
77
  break;
78
78
  case 'LIST_PRICE_ADJUSTMENT':
79
79
  {
80
- const [charge] = lineItem.chargeItems;
80
+ const charge = lineItem.chargeItems.find(charge => { var _a; return (_a = (charges || {})[charge.chargeId]) === null || _a === void 0 ? void 0 : _a.main; });
81
81
  if (charge) {
82
82
  charge.listPriceAdjustment = update.newValue;
83
83
  }
@@ -126,4 +126,4 @@ FlowUpdateService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", ve
126
126
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FlowUpdateService, decorators: [{
127
127
  type: Injectable
128
128
  }] });
129
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvdy11cGRhdGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2NvcmUvbW9kdWxlcy9mbG93LWNvbmZpZ3VyYXRpb24vc2VydmljZXMvZmxvdy11cGRhdGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBWSxNQUFNLGtCQUFrQixDQUFDO0FBQzlELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDakMsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFJaEQsTUFBTSxPQUFPLGlCQUFpQjtJQUNyQixNQUFNLENBQUMsYUFBeUIsRUFBRSxPQUEyQjtRQUNsRSxJQUFJLGdCQUFnQixHQUFHLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQztRQUNwQyxJQUFJLFlBQVksR0FBRyxhQUFhLENBQUM7UUFFakMsT0FBTyxZQUFZLENBQUMsTUFBTSxJQUFJLGdCQUFnQixDQUFDLE1BQU0sRUFBRTtZQUNyRCxZQUFZLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFO2dCQUN4QixNQUFNLGdCQUFnQixHQUF1QixFQUFFLENBQUM7Z0JBRWhELGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtvQkFDaEMsSUFBSSxPQUFPLEdBQUcsS0FBSyxDQUFDO29CQUVwQixRQUFRLE1BQU0sQ0FBQyxRQUFRLEVBQUU7d0JBQ3ZCLEtBQUssVUFBVTs0QkFDYixPQUFPLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQzs0QkFDL0MsTUFBTTt3QkFDUixLQUFLLFFBQVE7NEJBQ1gsT0FBTyxHQUFHLElBQUksQ0FB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QVEsQ0FBQyxDQUFDO1FBQ25GLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUNyQixPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsSUFBSSxNQUFNLENBQUMsYUFBYSxLQUFLLGtCQUFrQixFQUFFO1lBQy9DLGdCQUFnQixDQUFDLGVBQWUsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDO1NBQ3BEO2FBQU0sSUFBSSxNQUFNLENBQUMsYUFBYSxLQUFLLHVCQUF1QixFQUFFO1lBQzNELGdCQUFnQixDQUFDLG1CQUFtQixHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUM7U0FDeEQ7YUFBTTtZQUNMLE1BQU0sSUFBSSxLQUFLLENBQUMsNERBQTRELE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1NBQ3JHO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOzsrR0FsSVUsaUJBQWlCO21IQUFqQixpQkFBaUI7NEZBQWpCLGlCQUFpQjtrQkFEN0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENoYXJnZUdyb3VwVXRpbHMsIExpbmVJdGVtIH0gZnJvbSAnQHZlbG9jZWFwcHMvY29yZSc7XG5pbXBvcnQgeyBmbGF0dGVuIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCB7IExpbmVJdGVtV29ya2VyIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgRmxvd1VwZGF0ZVBhcmFtcyB9IGZyb20gJy4uL3R5cGVzL3VwZGF0ZS50eXBlcyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBGbG93VXBkYXRlU2VydmljZSB7XG4gIHB1YmxpYyB1cGRhdGUocm9vdExpbmVJdGVtczogTGluZUl0ZW1bXSwgdXBkYXRlczogRmxvd1VwZGF0ZVBhcmFtc1tdKTogdm9pZCB7XG4gICAgbGV0IHJlbWFpbmluZ1VwZGF0ZXMgPSBbLi4udXBkYXRlc107XG4gICAgbGV0IGN1cnJlbnRMZXZlbCA9IHJvb3RMaW5lSXRlbXM7XG5cbiAgICB3aGlsZSAoY3VycmVudExldmVsLmxlbmd0aCAmJiByZW1haW5pbmdVcGRhdGVzLmxlbmd0aCkge1xuICAgICAgY3VycmVudExldmVsLmZvckVhY2gobGkgPT4ge1xuICAgICAgICBjb25zdCB1bmhhbmRsZWRVcGRhdGVzOiBGbG93VXBkYXRlUGFyYW1zW10gPSBbXTtcblxuICAgICAgICByZW1haW5pbmdVcGRhdGVzLmZvckVhY2godXBkYXRlID0+IHtcbiAgICAgICAgICBsZXQgdXBkYXRlZCA9IGZhbHNlO1xuXG4gICAgICAgICAgc3dpdGNoICh1cGRhdGUuZGF0YVR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ0xJTkVJVEVNJzpcbiAgICAgICAgICAgICAgdXBkYXRlZCA9IHRoaXMuYXBwbHlMaW5lSXRlbVVwZGF0ZShsaSwgdXBkYXRlKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdDSEFSR0UnOlxuICAgICAgICAgICAgICB1cGRhdGVkID0gdGhpcy5hcHBseUNoYXJnZVVwZGF0ZShsaSwgdXBkYXRlKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdHUk9VUF9DSEFSR0UnOlxuICAgICAgICAgICAgICB1cGRhdGVkID0gdGhpcy5hcHBseUNoYXJnZUdyb3VwVXBkYXRlKGxpLCB1cGRhdGUpO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgIC8vIFVua25vd24gZGF0YVR5cGUuIERvIG5vdCB0cnkgdG8gaGFuZGxlIGl0IGFueW1vcmVcbiAgICAgICAgICAgICAgdXBkYXRlZCA9IHRydWU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKCF1cGRhdGVkKSB7XG4gICAgICAgICAgICB1bmhhbmRsZWRVcGRhdGVzLnB1c2godXBkYXRlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJlbWFpbmluZ1VwZGF0ZXMgPSB1bmhhbmRsZWRVcGRhdGVzO1xuICAgICAgfSk7XG5cbiAgICAgIGN1cnJlbnRMZXZlbCA9IGZsYXR0ZW4oY3VycmVudExldmVsLm1hcChwYXJlbnQgPT4gcGFyZW50LmxpbmVJdGVtcykpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBkZWxldGUobGluZUl0ZW1zOiBMaW5lSXRlbVtdLCBpZDogc3RyaW5nKTogTGluZUl0ZW1bXSB7XG4gICAgY29uc3QgaWRzVG9SZW1vdmU6IHN0cmluZ1tdID0gW2lkXTtcbiAgICBjb25zdCB0b3BMZXZlbExpbmVJdGVtID0gbGluZUl0ZW1zLmZpbmQobGkgPT4gbGkuaWQgPT09IGlkKTtcblxuICAgIGlmICh0b3BMZXZlbExpbmVJdGVtKSB7XG4gICAgICAvLyBmaW5kIHRlcm0tcmVsYXRlZCBsaW5lIGl0ZW1zICh3aGljaCBhcmUgb25seSB0b3AgbGV2ZWwpXG4gICAgICAvLyBleHBpcmVkIHRlcm0gbGluZSBpdGVtcyB3b24ndCBiZSBkZWxldGVkXG4gICAgICBsZXQgZm91bmRUZXJtTGluZUl0ZW06IExpbmVJdGVtIHwgdW5kZWZpbmVkID0gdG9wTGV2ZWxMaW5lSXRlbTtcblxuICAgICAgd2hpbGUgKGZvdW5kVGVybUxpbmVJdGVtKSB7XG4gICAgICAgIGZvdW5kVGVybUxpbmVJdGVtID0gbGluZUl0ZW1zLmZpbmQobGkgPT4gZm91bmRUZXJtTGluZUl0ZW0gJiYgbGkucmFtcEluc3RhbmNlSWQgPT09IGZvdW5kVGVybUxpbmVJdGVtLmlkKTtcbiAgICAgICAgaWYgKGZvdW5kVGVybUxpbmVJdGVtKSB7XG4gICAgICAgICAgaWRzVG9SZW1vdmUucHVzaChmb3VuZFRlcm1MaW5lSXRlbS5pZCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBmaWx0ZXJlZCA9IGxpbmVJdGVtcy5maWx0ZXIobGluZUl0ZW0gPT4gIWlkc1RvUmVtb3ZlLmluY2x1ZGVzKGxpbmVJdGVtLmlkKSk7XG4gICAgcmV0dXJuIGZpbHRlcmVkLm1hcChsaW5lSXRlbSA9PiBuZXcgTGluZUl0ZW1Xb3JrZXIobGluZUl0ZW0pLnJlbW92ZShpZCkubGkpO1xuICB9XG5cbiAgcHJpdmF0ZSBhcHBseUxpbmVJdGVtVXBkYXRlKGxpbmVJdGVtOiBMaW5lSXRlbSwgdXBkYXRlOiBGbG93VXBkYXRlUGFyYW1zKTogYm9vbGVhbiB7XG4gICAgaWYgKGxpbmVJdGVtLmlkICE9PSB1cGRhdGUuaWQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBzd2l0Y2ggKHVwZGF0ZS5hdHRyaWJ1dGVUeXBlKSB7XG4gICAgICBjYXNlICdRVFknOlxuICAgICAgICBsaW5lSXRlbS5xdHkgPSB1cGRhdGUubmV3VmFsdWU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnRUZGRUNUSVZFX1NUQVJUX0RBVEUnOlxuICAgICAgICBsaW5lSXRlbS5wcm9wZXJ0aWVzLlN0YXJ0RGF0ZSA9IG1vbWVudCh1cGRhdGUubmV3VmFsdWUpLmZvcm1hdCgnWVlZWS1NTS1ERCcpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0VORF9EQVRFJzpcbiAgICAgICAgbGluZUl0ZW0ucHJvcGVydGllcy5FbmREYXRlID0gbW9tZW50KHVwZGF0ZS5uZXdWYWx1ZSkuZm9ybWF0KCdZWVlZLU1NLUREJyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnUFJJQ0VfQURKVVNUTUVOVCc6XG4gICAgICAgIHtcbiAgICAgICAgICBjb25zdCBbY2hhcmdlXSA9IGxpbmVJdGVtLmNoYXJnZUl0ZW1zO1xuICAgICAgICAgIGlmIChjaGFyZ2UpIHtcbiAgICAgICAgICAgIGNoYXJnZS5wcmljZUFkanVzdG1lbnQgPSB1cGRhdGUubmV3VmFsdWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnTElTVF9QUklDRV9BREpVU1RNRU5UJzpcbiAgICAgICAge1xuICAgICAgICAgIGNvbnN0IFtjaGFyZ2VdID0gbGluZUl0ZW0uY2hhcmdlSXRlbXM7XG4gICAgICAgICAgaWYgKGNoYXJnZSkge1xuICAgICAgICAgICAgY2hhcmdlLmxpc3RQcmljZUFkanVzdG1lbnQgPSB1cGRhdGUubmV3VmFsdWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBOb3Qgc3VwcG9yZWQgQXR0cmlidXRlVHlwZSBmb3IgTGluZUl0ZW0gdXBkYXRlOiAke3VwZGF0ZS5hdHRyaWJ1dGVUeXBlfWApO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcHJpdmF0ZSBhcHBseUNoYXJnZVVwZGF0ZShsaW5lSXRlbTogTGluZUl0ZW0sIHVwZGF0ZTogRmxvd1VwZGF0ZVBhcmFtcyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGZvdW5kQ2hhcmdlID0gbGluZUl0ZW0uY2hhcmdlSXRlbXMuZmluZCgoeyBpZCB9KSA9PiBpZCA9PT0gdXBkYXRlLmlkKTtcbiAgICBpZiAoIWZvdW5kQ2hhcmdlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKHVwZGF0ZS5hdHRyaWJ1dGVUeXBlID09PSAnUFJJQ0VfQURKVVNUTUVOVCcpIHtcbiAgICAgIGZvdW5kQ2hhcmdlLnByaWNlQWRqdXN0bWVudCA9IHVwZGF0ZS5uZXdWYWx1ZTtcbiAgICB9IGVsc2UgaWYgKHVwZGF0ZS5hdHRyaWJ1dGVUeXBlID09PSAnTElTVF9QUklDRV9BREpVU1RNRU5UJykge1xuICAgICAgZm91bmRDaGFyZ2UubGlzdFByaWNlQWRqdXN0bWVudCA9IHVwZGF0ZS5uZXdWYWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBOb3Qgc3VwcG9yZWQgQXR0cmlidXRlVHlwZSBmb3IgQ2hhcmdlIEl0ZW0gdXBkYXRlOiAke3VwZGF0ZS5hdHRyaWJ1dGVUeXBlfWApO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcHJpdmF0ZSBhcHBseUNoYXJnZUdyb3VwVXBkYXRlKGxpbmVJdGVtOiBMaW5lSXRlbSwgdXBkYXRlOiBGbG93VXBkYXRlUGFyYW1zKTogYm9vbGVhbiB7XG4gICAgY29uc3QgZm91bmRDaGFyZ2VHcm91cCA9IENoYXJnZUdyb3VwVXRpbHMuZmluZENoYXJnZUdyb3VwQnlJZCh1cGRhdGUuaWQsIGxpbmVJdGVtKTtcbiAgICBpZiAoIWZvdW5kQ2hhcmdlR3JvdXApIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAodXBkYXRlLmF0dHJpYnV0ZVR5cGUgPT09ICdQUklDRV9BREpVU1RNRU5UJykge1xuICAgICAgZm91bmRDaGFyZ2VHcm91cC5wcmljZUFkanVzdG1lbnQgPSB1cGRhdGUubmV3VmFsdWU7XG4gICAgfSBlbHNlIGlmICh1cGRhdGUuYXR0cmlidXRlVHlwZSA9PT0gJ0xJU1RfUFJJQ0VfQURKVVNUTUVOVCcpIHtcbiAgICAgIGZvdW5kQ2hhcmdlR3JvdXAubGlzdFByaWNlQWRqdXN0bWVudCA9IHVwZGF0ZS5uZXdWYWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBOb3Qgc3VwcG9yZWQgQXR0cmlidXRlVHlwZSBmb3IgQ2hhcmdlIEdyb3VwIEl0ZW0gdXBkYXRlOiAke3VwZGF0ZS5hdHRyaWJ1dGVUeXBlfWApO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG4iXX0=
129
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvdy11cGRhdGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2NvcmUvbW9kdWxlcy9mbG93LWNvbmZpZ3VyYXRpb24vc2VydmljZXMvZmxvdy11cGRhdGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBVSxnQkFBZ0IsRUFBWSxNQUFNLGtCQUFrQixDQUFDO0FBQ3RFLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDN0MsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFJaEQsTUFBTSxPQUFPLGlCQUFpQjtJQUNyQixNQUFNLENBQUMsYUFBeUIsRUFBRSxPQUEyQixFQUFFLE9BQTRCO1FBQ2hHLElBQUksZ0JBQWdCLEdBQUcsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDO1FBQ3BDLElBQUksWUFBWSxHQUFHLGFBQWEsQ0FBQztRQUVqQyxPQUFPLFlBQVksQ0FBQyxNQUFNLElBQUksZ0JBQWdCLENBQUMsTUFBTSxFQUFFO1lBQ3JELFlBQVksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUU7Z0JBQ3hCLE1BQU0sZ0JBQWdCLEdBQXVCLEVBQUUsQ0FBQztnQkFFaEQsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO29CQUNoQyxJQUFJLE9BQU8sR0FBRyxLQUFLLENBQUM7b0JBRXBCLFFBQVEsTUFBTSxDQUFDLFFBQVEsRUFBRTt3QkFDdkIsS0FBSyxVQUFVOzRCQUNiLE9BQU8sR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQzs0QkFDeEQsTUFBTTt3QkFDUixLQUFLLFFBQVE7NEJB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V0FBVyxDQUFDLG1CQUFtQixHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUM7U0FDbkQ7YUFBTTtZQUNMLE1BQU0sSUFBSSxLQUFLLENBQUMsc0RBQXNELE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1NBQy9GO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRU8sc0JBQXNCLENBQUMsUUFBa0IsRUFBRSxNQUF3QjtRQUN6RSxNQUFNLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDbkYsSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3JCLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxJQUFJLE1BQU0sQ0FBQyxhQUFhLEtBQUssa0JBQWtCLEVBQUU7WUFDL0MsZ0JBQWdCLENBQUMsZUFBZSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUM7U0FDcEQ7YUFBTSxJQUFJLE1BQU0sQ0FBQyxhQUFhLEtBQUssdUJBQXVCLEVBQUU7WUFDM0QsZ0JBQWdCLENBQUMsbUJBQW1CLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQztTQUN4RDthQUFNO1lBQ0wsTUFBTSxJQUFJLEtBQUssQ0FBQyw0REFBNEQsTUFBTSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7U0FDckc7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7OytHQWxJVSxpQkFBaUI7bUhBQWpCLGlCQUFpQjs0RkFBakIsaUJBQWlCO2tCQUQ3QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2hhcmdlLCBDaGFyZ2VHcm91cFV0aWxzLCBMaW5lSXRlbSB9IGZyb20gJ0B2ZWxvY2VhcHBzL2NvcmUnO1xuaW1wb3J0IHsgRGljdGlvbmFyeSwgZmxhdHRlbiB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyBMaW5lSXRlbVdvcmtlciB9IGZyb20gJy4uLy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IEZsb3dVcGRhdGVQYXJhbXMgfSBmcm9tICcuLi90eXBlcy91cGRhdGUudHlwZXMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRmxvd1VwZGF0ZVNlcnZpY2Uge1xuICBwdWJsaWMgdXBkYXRlKHJvb3RMaW5lSXRlbXM6IExpbmVJdGVtW10sIHVwZGF0ZXM6IEZsb3dVcGRhdGVQYXJhbXNbXSwgY2hhcmdlcz86IERpY3Rpb25hcnk8Q2hhcmdlPik6IHZvaWQge1xuICAgIGxldCByZW1haW5pbmdVcGRhdGVzID0gWy4uLnVwZGF0ZXNdO1xuICAgIGxldCBjdXJyZW50TGV2ZWwgPSByb290TGluZUl0ZW1zO1xuXG4gICAgd2hpbGUgKGN1cnJlbnRMZXZlbC5sZW5ndGggJiYgcmVtYWluaW5nVXBkYXRlcy5sZW5ndGgpIHtcbiAgICAgIGN1cnJlbnRMZXZlbC5mb3JFYWNoKGxpID0+IHtcbiAgICAgICAgY29uc3QgdW5oYW5kbGVkVXBkYXRlczogRmxvd1VwZGF0ZVBhcmFtc1tdID0gW107XG5cbiAgICAgICAgcmVtYWluaW5nVXBkYXRlcy5mb3JFYWNoKHVwZGF0ZSA9PiB7XG4gICAgICAgICAgbGV0IHVwZGF0ZWQgPSBmYWxzZTtcblxuICAgICAgICAgIHN3aXRjaCAodXBkYXRlLmRhdGFUeXBlKSB7XG4gICAgICAgICAgICBjYXNlICdMSU5FSVRFTSc6XG4gICAgICAgICAgICAgIHVwZGF0ZWQgPSB0aGlzLmFwcGx5TGluZUl0ZW1VcGRhdGUobGksIHVwZGF0ZSwgY2hhcmdlcyk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnQ0hBUkdFJzpcbiAgICAgICAgICAgICAgdXBkYXRlZCA9IHRoaXMuYXBwbHlDaGFyZ2VVcGRhdGUobGksIHVwZGF0ZSk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnR1JPVVBfQ0hBUkdFJzpcbiAgICAgICAgICAgICAgdXBkYXRlZCA9IHRoaXMuYXBwbHlDaGFyZ2VHcm91cFVwZGF0ZShsaSwgdXBkYXRlKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAvLyBVbmtub3duIGRhdGFUeXBlLiBEbyBub3QgdHJ5IHRvIGhhbmRsZSBpdCBhbnltb3JlXG4gICAgICAgICAgICAgIHVwZGF0ZWQgPSB0cnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICghdXBkYXRlZCkge1xuICAgICAgICAgICAgdW5oYW5kbGVkVXBkYXRlcy5wdXNoKHVwZGF0ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICByZW1haW5pbmdVcGRhdGVzID0gdW5oYW5kbGVkVXBkYXRlcztcbiAgICAgIH0pO1xuXG4gICAgICBjdXJyZW50TGV2ZWwgPSBmbGF0dGVuKGN1cnJlbnRMZXZlbC5tYXAocGFyZW50ID0+IHBhcmVudC5saW5lSXRlbXMpKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZGVsZXRlKGxpbmVJdGVtczogTGluZUl0ZW1bXSwgaWQ6IHN0cmluZyk6IExpbmVJdGVtW10ge1xuICAgIGNvbnN0IGlkc1RvUmVtb3ZlOiBzdHJpbmdbXSA9IFtpZF07XG4gICAgY29uc3QgdG9wTGV2ZWxMaW5lSXRlbSA9IGxpbmVJdGVtcy5maW5kKGxpID0+IGxpLmlkID09PSBpZCk7XG5cbiAgICBpZiAodG9wTGV2ZWxMaW5lSXRlbSkge1xuICAgICAgLy8gZmluZCB0ZXJtLXJlbGF0ZWQgbGluZSBpdGVtcyAod2hpY2ggYXJlIG9ubHkgdG9wIGxldmVsKVxuICAgICAgLy8gZXhwaXJlZCB0ZXJtIGxpbmUgaXRlbXMgd29uJ3QgYmUgZGVsZXRlZFxuICAgICAgbGV0IGZvdW5kVGVybUxpbmVJdGVtOiBMaW5lSXRlbSB8IHVuZGVmaW5lZCA9IHRvcExldmVsTGluZUl0ZW07XG5cbiAgICAgIHdoaWxlIChmb3VuZFRlcm1MaW5lSXRlbSkge1xuICAgICAgICBmb3VuZFRlcm1MaW5lSXRlbSA9IGxpbmVJdGVtcy5maW5kKGxpID0+IGZvdW5kVGVybUxpbmVJdGVtICYmIGxpLnJhbXBJbnN0YW5jZUlkID09PSBmb3VuZFRlcm1MaW5lSXRlbS5pZCk7XG4gICAgICAgIGlmIChmb3VuZFRlcm1MaW5lSXRlbSkge1xuICAgICAgICAgIGlkc1RvUmVtb3ZlLnB1c2goZm91bmRUZXJtTGluZUl0ZW0uaWQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgZmlsdGVyZWQgPSBsaW5lSXRlbXMuZmlsdGVyKGxpbmVJdGVtID0+ICFpZHNUb1JlbW92ZS5pbmNsdWRlcyhsaW5lSXRlbS5pZCkpO1xuICAgIHJldHVybiBmaWx0ZXJlZC5tYXAobGluZUl0ZW0gPT4gbmV3IExpbmVJdGVtV29ya2VyKGxpbmVJdGVtKS5yZW1vdmUoaWQpLmxpKTtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlMaW5lSXRlbVVwZGF0ZShsaW5lSXRlbTogTGluZUl0ZW0sIHVwZGF0ZTogRmxvd1VwZGF0ZVBhcmFtcywgY2hhcmdlcz86IERpY3Rpb25hcnk8Q2hhcmdlPik6IGJvb2xlYW4ge1xuICAgIGlmIChsaW5lSXRlbS5pZCAhPT0gdXBkYXRlLmlkKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgc3dpdGNoICh1cGRhdGUuYXR0cmlidXRlVHlwZSkge1xuICAgICAgY2FzZSAnUVRZJzpcbiAgICAgICAgbGluZUl0ZW0ucXR5ID0gdXBkYXRlLm5ld1ZhbHVlO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0VGRkVDVElWRV9TVEFSVF9EQVRFJzpcbiAgICAgICAgbGluZUl0ZW0ucHJvcGVydGllcy5TdGFydERhdGUgPSBtb21lbnQodXBkYXRlLm5ld1ZhbHVlKS5mb3JtYXQoJ1lZWVktTU0tREQnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdFTkRfREFURSc6XG4gICAgICAgIGxpbmVJdGVtLnByb3BlcnRpZXMuRW5kRGF0ZSA9IG1vbWVudCh1cGRhdGUubmV3VmFsdWUpLmZvcm1hdCgnWVlZWS1NTS1ERCcpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ1BSSUNFX0FESlVTVE1FTlQnOlxuICAgICAgICB7XG4gICAgICAgICAgY29uc3QgY2hhcmdlID0gbGluZUl0ZW0uY2hhcmdlSXRlbXMuZmluZChjaGFyZ2UgPT4gKGNoYXJnZXMgfHwge30pW2NoYXJnZS5jaGFyZ2VJZF0/Lm1haW4pO1xuICAgICAgICAgIGlmIChjaGFyZ2UpIHtcbiAgICAgICAgICAgIGNoYXJnZS5wcmljZUFkanVzdG1lbnQgPSB1cGRhdGUubmV3VmFsdWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnTElTVF9QUklDRV9BREpVU1RNRU5UJzpcbiAgICAgICAge1xuICAgICAgICAgIGNvbnN0IGNoYXJnZSA9IGxpbmVJdGVtLmNoYXJnZUl0ZW1zLmZpbmQoY2hhcmdlID0+IChjaGFyZ2VzIHx8IHt9KVtjaGFyZ2UuY2hhcmdlSWRdPy5tYWluKTtcbiAgICAgICAgICBpZiAoY2hhcmdlKSB7XG4gICAgICAgICAgICBjaGFyZ2UubGlzdFByaWNlQWRqdXN0bWVudCA9IHVwZGF0ZS5uZXdWYWx1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vdCBzdXBwb3JlZCBBdHRyaWJ1dGVUeXBlIGZvciBMaW5lSXRlbSB1cGRhdGU6ICR7dXBkYXRlLmF0dHJpYnV0ZVR5cGV9YCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBwcml2YXRlIGFwcGx5Q2hhcmdlVXBkYXRlKGxpbmVJdGVtOiBMaW5lSXRlbSwgdXBkYXRlOiBGbG93VXBkYXRlUGFyYW1zKTogYm9vbGVhbiB7XG4gICAgY29uc3QgZm91bmRDaGFyZ2UgPSBsaW5lSXRlbS5jaGFyZ2VJdGVtcy5maW5kKCh7IGlkIH0pID0+IGlkID09PSB1cGRhdGUuaWQpO1xuICAgIGlmICghZm91bmRDaGFyZ2UpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAodXBkYXRlLmF0dHJpYnV0ZVR5cGUgPT09ICdQUklDRV9BREpVU1RNRU5UJykge1xuICAgICAgZm91bmRDaGFyZ2UucHJpY2VBZGp1c3RtZW50ID0gdXBkYXRlLm5ld1ZhbHVlO1xuICAgIH0gZWxzZSBpZiAodXBkYXRlLmF0dHJpYnV0ZVR5cGUgPT09ICdMSVNUX1BSSUNFX0FESlVTVE1FTlQnKSB7XG4gICAgICBmb3VuZENoYXJnZS5saXN0UHJpY2VBZGp1c3RtZW50ID0gdXBkYXRlLm5ld1ZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vdCBzdXBwb3JlZCBBdHRyaWJ1dGVUeXBlIGZvciBDaGFyZ2UgSXRlbSB1cGRhdGU6ICR7dXBkYXRlLmF0dHJpYnV0ZVR5cGV9YCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBwcml2YXRlIGFwcGx5Q2hhcmdlR3JvdXBVcGRhdGUobGluZUl0ZW06IExpbmVJdGVtLCB1cGRhdGU6IEZsb3dVcGRhdGVQYXJhbXMpOiBib29sZWFuIHtcbiAgICBjb25zdCBmb3VuZENoYXJnZUdyb3VwID0gQ2hhcmdlR3JvdXBVdGlscy5maW5kQ2hhcmdlR3JvdXBCeUlkKHVwZGF0ZS5pZCwgbGluZUl0ZW0pO1xuICAgIGlmICghZm91bmRDaGFyZ2VHcm91cCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmICh1cGRhdGUuYXR0cmlidXRlVHlwZSA9PT0gJ1BSSUNFX0FESlVTVE1FTlQnKSB7XG4gICAgICBmb3VuZENoYXJnZUdyb3VwLnByaWNlQWRqdXN0bWVudCA9IHVwZGF0ZS5uZXdWYWx1ZTtcbiAgICB9IGVsc2UgaWYgKHVwZGF0ZS5hdHRyaWJ1dGVUeXBlID09PSAnTElTVF9QUklDRV9BREpVU1RNRU5UJykge1xuICAgICAgZm91bmRDaGFyZ2VHcm91cC5saXN0UHJpY2VBZGp1c3RtZW50ID0gdXBkYXRlLm5ld1ZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vdCBzdXBwb3JlZCBBdHRyaWJ1dGVUeXBlIGZvciBDaGFyZ2UgR3JvdXAgSXRlbSB1cGRhdGU6ICR7dXBkYXRlLmF0dHJpYnV0ZVR5cGV9YCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn1cbiJdfQ==
@@ -744,7 +744,7 @@ function extractMetadata(uiDefinition) {
744
744
  }
745
745
 
746
746
  class FlowUpdateService {
747
- update(rootLineItems, updates) {
747
+ update(rootLineItems, updates, charges) {
748
748
  let remainingUpdates = [...updates];
749
749
  let currentLevel = rootLineItems;
750
750
  while (currentLevel.length && remainingUpdates.length) {
@@ -754,7 +754,7 @@ class FlowUpdateService {
754
754
  let updated = false;
755
755
  switch (update.dataType) {
756
756
  case 'LINEITEM':
757
- updated = this.applyLineItemUpdate(li, update);
757
+ updated = this.applyLineItemUpdate(li, update, charges);
758
758
  break;
759
759
  case 'CHARGE':
760
760
  updated = this.applyChargeUpdate(li, update);
@@ -792,7 +792,7 @@ class FlowUpdateService {
792
792
  const filtered = lineItems.filter(lineItem => !idsToRemove.includes(lineItem.id));
793
793
  return filtered.map(lineItem => new LineItemWorker(lineItem).remove(id).li);
794
794
  }
795
- applyLineItemUpdate(lineItem, update) {
795
+ applyLineItemUpdate(lineItem, update, charges) {
796
796
  if (lineItem.id !== update.id) {
797
797
  return false;
798
798
  }
@@ -808,7 +808,7 @@ class FlowUpdateService {
808
808
  break;
809
809
  case 'PRICE_ADJUSTMENT':
810
810
  {
811
- const [charge] = lineItem.chargeItems;
811
+ const charge = lineItem.chargeItems.find(charge => { var _a; return (_a = (charges || {})[charge.chargeId]) === null || _a === void 0 ? void 0 : _a.main; });
812
812
  if (charge) {
813
813
  charge.priceAdjustment = update.newValue;
814
814
  }
@@ -816,7 +816,7 @@ class FlowUpdateService {
816
816
  break;
817
817
  case 'LIST_PRICE_ADJUSTMENT':
818
818
  {
819
- const [charge] = lineItem.chargeItems;
819
+ const charge = lineItem.chargeItems.find(charge => { var _a; return (_a = (charges || {})[charge.chargeId]) === null || _a === void 0 ? void 0 : _a.main; });
820
820
  if (charge) {
821
821
  charge.listPriceAdjustment = update.newValue;
822
822
  }
@@ -894,7 +894,7 @@ class FlowConfigurationService {
894
894
  }
895
895
  return of([]).pipe(map$2(() => {
896
896
  const updatedState = cloneDeep(quoteDraft.currentState);
897
- this.updateService.update(updatedState, updates);
897
+ this.updateService.update(updatedState, updates, quoteDraft.charges);
898
898
  return updatedState;
899
899
  }), switchMap$1(updatedState => this.calculate$(Object.assign(Object.assign({}, quoteDraft), { currentState: updatedState }))), map$2(() => this.quoteDraftService.quoteDraft), this.handleErrorAndBounceBack());
900
900
  }