@veloceapps/sdk 3.1.5 → 3.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/bundles/veloce-sdk-core.umd.js +41 -16
  2. package/bundles/veloce-sdk-core.umd.js.map +1 -1
  3. package/bundles/veloce-sdk-runtime.umd.js +3 -13
  4. package/bundles/veloce-sdk-runtime.umd.js.map +1 -1
  5. package/bundles/veloce-sdk.umd.js +145 -120
  6. package/bundles/veloce-sdk.umd.js.map +1 -1
  7. package/core/modules/configuration/services/configuration.service.d.ts +2 -2
  8. package/core/modules/flow-configuration/services/flow-configuration.service.d.ts +2 -2
  9. package/core/services/context.service.d.ts +4 -4
  10. package/core/services/quote-draft.service.d.ts +3 -0
  11. package/esm2015/core/modules/configuration/services/configuration-runtime.service.js +2 -5
  12. package/esm2015/core/modules/configuration/services/configuration.service.js +2 -2
  13. package/esm2015/core/modules/flow-configuration/services/flow-configuration.service.js +1 -1
  14. package/esm2015/core/services/context.service.js +13 -10
  15. package/esm2015/core/services/quote-draft.service.js +26 -5
  16. package/esm2015/runtime/components/ui-runtime/runtime.component.js +1 -4
  17. package/esm2015/runtime/execution/directives/vl-ramp.directive.js +1 -4
  18. package/esm2015/runtime/services/cart.service.js +1 -1
  19. package/esm2015/runtime/services/configuration.service.js +3 -3
  20. package/esm2015/runtime/services/runtime-context.service.js +2 -3
  21. package/esm2015/runtime/services/runtime.service.js +1 -4
  22. package/esm2015/src/components/header/header.component.js +36 -19
  23. package/esm2015/src/flow.component.js +6 -6
  24. package/esm2015/src/flow.module.js +2 -2
  25. package/esm2015/src/guards/product-unload.guard.js +7 -6
  26. package/esm2015/src/pages/catalog/catalog.component.js +3 -3
  27. package/esm2015/src/pages/legacy-product/legacy-product.component.js +1 -1
  28. package/esm2015/src/pages/product/product.component.js +2 -3
  29. package/esm2015/src/pages/shopping-cart/shopping-cart.component.js +3 -3
  30. package/esm2015/src/resolvers/context.resolver.js +7 -5
  31. package/esm2015/src/resolvers/quote.resolver.js +2 -2
  32. package/esm2015/src/services/flow-dialog.service.js +80 -0
  33. package/esm2015/src/services/flow.service.js +2 -2
  34. package/esm2015/src/utils/flow.utils.js +1 -11
  35. package/fesm2015/veloce-sdk-core.js +38 -18
  36. package/fesm2015/veloce-sdk-core.js.map +1 -1
  37. package/fesm2015/veloce-sdk-runtime.js +3 -13
  38. package/fesm2015/veloce-sdk-runtime.js.map +1 -1
  39. package/fesm2015/veloce-sdk.js +117 -92
  40. package/fesm2015/veloce-sdk.js.map +1 -1
  41. package/package.json +1 -1
  42. package/runtime/services/cart.service.d.ts +1 -1
  43. package/src/components/header/header.component.d.ts +7 -4
  44. package/src/flow.component.d.ts +3 -3
  45. package/src/guards/product-unload.guard.d.ts +4 -3
  46. package/src/services/{fow-dialog.service.d.ts → flow-dialog.service.d.ts} +2 -0
  47. package/src/utils/flow.utils.d.ts +0 -2
  48. package/esm2015/src/services/fow-dialog.service.js +0 -66
@@ -1,12 +1,11 @@
1
1
  import { ChangeDetectionStrategy, Component } from '@angular/core';
2
2
  import { ConfigurationContextMode } from '@veloce/core';
3
- import { BehaviorSubject, finalize, map, of, Subject, takeUntil, tap } from 'rxjs';
4
- import { getIsEditMode } from '../../utils';
3
+ import { BehaviorSubject, finalize, map, of, Subject, switchMap, takeUntil, tap } from 'rxjs';
5
4
  import * as i0 from "@angular/core";
6
5
  import * as i1 from "@veloce/sdk/core";
7
6
  import * as i2 from "@veloce/api";
8
7
  import * as i3 from "../../services/flow-router.service";
9
- import * as i4 from "../../services/fow-dialog.service";
8
+ import * as i4 from "../../services/flow-dialog.service";
10
9
  import * as i5 from "primeng/overlaypanel";
11
10
  import * as i6 from "./cart-overlay/cart-overlay.component";
12
11
  import * as i7 from "primeng/button";
@@ -15,9 +14,8 @@ import * as i9 from "@angular/common";
15
14
  import * as i10 from "primeng/tooltip";
16
15
  import * as i11 from "primeng/api";
17
16
  export class FlowHeaderComponent {
18
- constructor(context, quoteDraftService, quoteApiService, sfApiService, flowConfiguration, routerService, dialogService) {
19
- var _a, _b, _c;
20
- this.context = context;
17
+ constructor(contextService, quoteDraftService, quoteApiService, sfApiService, flowConfiguration, routerService, dialogService) {
18
+ this.contextService = contextService;
21
19
  this.quoteDraftService = quoteDraftService;
22
20
  this.quoteApiService = quoteApiService;
23
21
  this.sfApiService = sfApiService;
@@ -27,12 +25,14 @@ export class FlowHeaderComponent {
27
25
  this.disabledActionButtonTooltip = 'Available from the Shopping Cart';
28
26
  this.objectDetails$ = new BehaviorSubject({});
29
27
  this.isSaveInProgress$ = new BehaviorSubject(false);
28
+ this.isSubmitInProgress$ = new BehaviorSubject(false);
30
29
  this.destroyed$ = new Subject();
31
- const ctx = this.context.resolve();
32
- this.mode = ctx === null || ctx === void 0 ? void 0 : ctx.mode;
33
- this.objectName = (_b = (_a = ctx === null || ctx === void 0 ? void 0 : ctx.mode) === null || _a === void 0 ? void 0 : _a.toLowerCase()) !== null && _b !== void 0 ? _b : '';
34
- this.contextProperties = (_c = ctx === null || ctx === void 0 ? void 0 : ctx.properties) !== null && _c !== void 0 ? _c : {};
35
- this.isEditMode = ctx ? getIsEditMode(ctx) : false;
30
+ const ctx = this.contextService.resolve();
31
+ this.mode = ctx.mode;
32
+ this.objectName = ctx.mode.toLowerCase();
33
+ this.contextProperties = ctx.properties;
34
+ this.status$ = this.contextService.resolve$().pipe(map(context => { var _a; return (_a = context.properties.Status) !== null && _a !== void 0 ? _a : ''; }));
35
+ this.isEditMode$ = this.quoteDraftService.isEditMode$();
36
36
  this.products$ = this.flowConfiguration.get().pipe(map(lineItems => this.generateProducts(lineItems)));
37
37
  this.isConfigurationRoute$ = this.routerService.isConfigurationRoute$();
38
38
  this.isCartRoute$ = this.routerService.isCartRoute$();
@@ -52,8 +52,7 @@ export class FlowHeaderComponent {
52
52
  return this.mode === ConfigurationContextMode.QUOTE;
53
53
  }
54
54
  back() {
55
- var _a;
56
- const objectId = (_a = this.context.resolve()) === null || _a === void 0 ? void 0 : _a.headerId;
55
+ const objectId = this.contextService.resolve().headerId;
57
56
  if (objectId) {
58
57
  window.VELO_BACK_FN.apply(null, [objectId]);
59
58
  }
@@ -71,7 +70,7 @@ export class FlowHeaderComponent {
71
70
  this.routerService.navigateToCatalog();
72
71
  }
73
72
  saveButtonClickHandler() {
74
- if (!this.isEditMode) {
73
+ if (!this.quoteDraftService.isEditMode()) {
75
74
  if (this.mode === ConfigurationContextMode.QUOTE) {
76
75
  this.dialogService.showQuoteReadonlyModeDialog().subscribe();
77
76
  }
@@ -90,13 +89,12 @@ export class FlowHeaderComponent {
90
89
  return;
91
90
  }
92
91
  const quoteDraft = this.quoteDraftService.quoteSnapshot;
93
- const context = this.context.resolve();
94
- if (!quoteDraft || !context) {
92
+ if (!quoteDraft) {
95
93
  return;
96
94
  }
97
95
  this.isSaveInProgress$.next(true);
98
96
  this.quoteApiService
99
- .upsertQuote(Object.assign(Object.assign({}, quoteDraft), { context, currentState: lineItems }))
97
+ .upsertQuote(quoteDraft)
100
98
  .pipe(tap(() => {
101
99
  // navigate back to quote on successful save
102
100
  if (this.mode === ConfigurationContextMode.QUOTE) {
@@ -105,6 +103,25 @@ export class FlowHeaderComponent {
105
103
  }), finalize(() => this.isSaveInProgress$.next(false)))
106
104
  .subscribe();
107
105
  }
106
+ submitButtonClickHandler() {
107
+ if (this.mode === ConfigurationContextMode.QUOTE && !this.quoteDraftService.isEditMode()) {
108
+ this.dialogService.showReadonlyQuoteSubmitFailureDialog();
109
+ return;
110
+ }
111
+ if (this.mode === ConfigurationContextMode.ACCOUNT) {
112
+ this.dialogService.showAccountSubmitFailureDialog();
113
+ return;
114
+ }
115
+ const quoteDraft = this.quoteDraftService.quoteSnapshot;
116
+ if (!quoteDraft) {
117
+ return;
118
+ }
119
+ this.isSubmitInProgress$.next(true);
120
+ this.quoteApiService
121
+ .submitQuote(quoteDraft)
122
+ .pipe(switchMap(() => this.quoteApiService.getQuoteDraft(quoteDraft.quoteId)), tap(updatedQuoteDraft => this.contextService.update({ properties: updatedQuoteDraft.context.properties })), finalize(() => this.isSubmitInProgress$.next(false)), takeUntil(this.destroyed$))
123
+ .subscribe();
124
+ }
108
125
  queryName$(objectName, id) {
109
126
  if (!id) {
110
127
  return of('');
@@ -166,7 +183,7 @@ export class FlowHeaderComponent {
166
183
  }
167
184
  }
168
185
  FlowHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FlowHeaderComponent, deps: [{ token: i1.ContextService }, { token: i1.QuoteDraftService }, { token: i2.QuoteApiService }, { token: i2.SalesforceApiService }, { token: i1.FlowConfigurationService }, { token: i3.FlowRouterService }, { token: i4.FlowDialogService }], target: i0.ɵɵFactoryTarget.Component });
169
- FlowHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: FlowHeaderComponent, selector: "vl-flow-header", ngImport: i0, template: "<div class=\"flow-info\" *vlLet=\"objectDetails$ | async as details\">\n <nav class=\"nav-item nav-back\" (click)=\"back()\">\n <i class=\"nav-icon vl-icon vl-icon-arrow-left\"></i>\n\n <span> Back </span>\n <span *ngIf=\"objectName\" class=\"object-name\">&nbsp;To {{ objectName }}</span>\n </nav>\n\n <ng-container *ngIf=\"isAccountMode\">\n <span class=\"dot-separator\"></span>\n\n <span>Account name</span>\n\n <nav class=\"account-name\" [pTooltip]=\"contextProperties.Name ?? ''\" tooltipPosition=\"bottom\" [showDelay]=\"1000\">\n <a target=\"_blank\" [href]=\"getSalesforceObjectLink(contextProperties.Id)\">{{ contextProperties.Name }}</a>\n </nav>\n </ng-container>\n\n <ng-container *ngIf=\"isQuoteMode\">\n <span class=\"dot-separator\"></span>\n\n <span>Quote #{{ details.quoteNumber }}</span>\n\n <span class=\"dot-separator\"></span>\n\n <nav class=\"nav-item\" (click)=\"quoteDetails.toggle($event)\">\n <span>{{ contextProperties.Status }}</span>\n\n <i *ngIf=\"!quoteDetails.overlayVisible\" class=\"vl-icon vl-icon-chevron-down icon-with-margin\"></i>\n <i *ngIf=\"quoteDetails.overlayVisible\" class=\"vl-icon vl-icon-chevron-up icon-with-margin\"></i>\n </nav>\n\n <p-overlayPanel styleClass=\"navigation-settings-overlay flow-header-overlay center\" #quoteDetails>\n <ng-template pTemplate>\n <div class=\"flow-header-overlay__wrapper\">\n <h2 class=\"flow-header-overlay__title\">\n <span>Quote Information</span>\n <i class=\"vl-icon vl-icon-close close-icon\" (click)=\"quoteDetails.hide()\"></i>\n </h2>\n\n <ul class=\"info-list\">\n <li class=\"info-list__row\">\n <span>Account Name:</span>\n <a target=\"_blank\" [href]=\"getSalesforceObjectLink(details.accountId)\">{{ details.accountName }}</a>\n </li>\n <li class=\"info-list__row\">\n <span>Opportunity Name:</span>\n <a target=\"_blank\" [href]=\"getSalesforceObjectLink(details.opportunityId)\">{{\n details.opportunityName\n }}</a>\n </li>\n <li class=\"info-list__row\">\n <span>Quote Name:</span>\n <a target=\"_blank\" [href]=\"getSalesforceObjectLink(details.quoteId)\">{{ details.quoteName }}</a>\n </li>\n </ul>\n </div>\n </ng-template>\n </p-overlayPanel>\n </ng-container>\n</div>\n\n<div class=\"flow-navigation\">\n <nav class=\"nav-item\" [ngClass]=\"{ active: isCatalogRoute$ | async }\" (click)=\"navigateToCatalog()\">Catalog</nav>\n <nav class=\"nav-item disabled\" [ngClass]=\"{ active: isConfigurationRoute$ | async }\">Configurator</nav>\n <ng-container *vlLet=\"products$ | async as products\">\n <nav class=\"nav-item\" [ngClass]=\"{ active: isCartRoute$ | async }\" (click)=\"navigateToShoppingCart()\">\n Shopping Cart ({{ products.length }})\n </nav>\n\n <nav class=\"nav-popover-toggle active\" (click)=\"cart?.overlayPanel?.toggle($event)\">\n <i *ngIf=\"!cart?.overlayPanel?.overlayVisible\" class=\"vl-icon vl-icon-chevron-down icon-with-margin\"></i>\n <i *ngIf=\"cart?.overlayPanel?.overlayVisible\" class=\"vl-icon vl-icon-chevron-up icon-with-margin\"></i>\n </nav>\n\n <vl-header-cart-overlay #cart [products]=\"products\"></vl-header-cart-overlay>\n </ng-container>\n</div>\n\n<div class=\"flow-controls\" *vlLet=\"objectDetails$ | async as details\">\n <ng-container *ngIf=\"isQuoteMode\">\n <span *ngIf=\"details.priceListName\">{{ details.priceListName }}</span>\n <span *ngIf=\"contextProperties.StartDate\">{{ contextProperties.StartDate | date: 'MM.dd.yyyy' }}</span>\n\n <span class=\"slash-separator\"></span>\n\n <span>MRR: <span class=\"font-semibold\">$0.00</span></span>\n <span>NRR: <span class=\"font-semibold\">$0.00</span></span>\n </ng-container>\n\n <ng-container *vlLet=\"isCartRoute$ | async as isCartRoute\">\n <p-button\n label=\"Generate Doc\"\n [disabled]=\"!isCartRoute\"\n tooltipPosition=\"bottom\"\n [showDelay]=\"300\"\n [pTooltip]=\"isCartRoute ? '' : disabledActionButtonTooltip\"\n styleClass=\"p-button-outlined\"\n ></p-button>\n <p-button\n label=\"Save\"\n styleClass=\"p-button-outlined\"\n (onClick)=\"saveButtonClickHandler()\"\n [loading]=\"(isSaveInProgress$ | async) === true\"\n ></p-button>\n <p-button\n label=\"Submit For Approval\"\n [disabled]=\"!isCartRoute\"\n tooltipPosition=\"bottom\"\n [showDelay]=\"300\"\n [pTooltip]=\"isCartRoute ? '' : disabledActionButtonTooltip\"\n styleClass=\"p-button\"\n ></p-button>\n </ng-container>\n</div>\n", styles: [":host{display:flex;align-items:center;height:48px;width:100%;background-color:var(--vl-primary-color);color:#fff;padding:0 32px;flex-shrink:0}::ng-deep .p-overlaypanel.flow-header-overlay .p-overlaypanel-content{background-color:#fff;padding:16px}::ng-deep .p-overlaypanel.flow-header-overlay.left:before{left:6px!important}::ng-deep .p-overlaypanel.flow-header-overlay.right:before{right:6px!important}::ng-deep .p-overlaypanel.flow-header-overlay.left .p-overlaypanel-content{margin-left:-16px}::ng-deep .p-overlaypanel.flow-header-overlay.right .p-overlaypanel-content{margin-right:-16px}::ng-deep .p-overlaypanel.flow-header-overlay:before{background-color:#fff}:host ::ng-deep .p-button{padding:5px 15px;font-size:12px}:host ::ng-deep .p-button{color:var(--vl-primary-color);background-color:#fff;border-color:#fff}:host ::ng-deep .p-button:enabled:hover{background-color:var(--vl-primary-color);color:#fff;border-color:#fff}:host ::ng-deep .p-button.p-button-outlined{background-color:var(--vl-primary-color);color:#fff;border-color:#fff}:host ::ng-deep .p-button.p-button-outlined:enabled:hover{color:var(--vl-primary-color);background-color:#fff;border-color:#fff}:host ::ng-deep .p-button.p-button-loading .p-button-loading-icon{position:absolute;left:calc(50% - 5px)}:host ::ng-deep .p-button.p-button-loading .p-button-label{opacity:0;margin:0}.vl-icon{display:inline-block}.flow-info{flex-shrink:0;display:flex;grid-gap:8px;gap:8px;align-items:center}.flow-info .nav-popover-toggle{margin-left:-8px}.flow-info .object-name{text-transform:capitalize}.flow-info .nav-back{font-weight:bold}.flow-info .nav-item:not(.disabled):hover,.flow-info .nav-popover-toggle:not(.disabled):hover{opacity:.6}nav{display:flex;align-items:center;cursor:pointer;padding:4px 0}nav.disabled{opacity:.6;cursor:default}nav .nav-icon{margin-right:10px}nav .icon-with-margin{margin:0 4px}nav a{color:#fff}nav.account-name{margin-left:4px;display:block;max-width:200px;overflow:hidden;text-overflow:ellipsis}nav.nav-popover-toggle{width:24px;display:flex;justify-content:center}nav.nav-popover-toggle i{pointer-events:none;margin:0}nav i{pointer-events:none}.dot-separator:after{content:\"\";display:block;width:4px;height:4px;border-radius:50%;background:#fff}.slash-separator:after{content:\"\";display:block;background:#fff;width:1px;height:16px}.flow-header-overlay__wrapper{width:360px}.flow-header-overlay__wrapper .close-icon{cursor:pointer}.flow-header-overlay__wrapper .info-list{list-style:none;padding:0;font-size:12px}.flow-header-overlay__wrapper .info-list__row{padding:8px 0;display:flex;justify-content:space-between}.flow-header-overlay__title{display:flex;justify-content:space-between;align-items:center;margin:0 0 24px}.flow-navigation{flex-grow:1;display:flex;grid-gap:16px;gap:16px;justify-content:center;font-weight:600}.flow-navigation .cart-nav-container{display:flex}.flow-navigation .nav-popover-toggle{margin-left:-14px}.flow-navigation .nav-item,.flow-navigation .nav-popover-toggle{opacity:.6}.flow-navigation .nav-item.active,.flow-navigation .nav-item:not(.disabled):hover,.flow-navigation .nav-popover-toggle.active,.flow-navigation .nav-popover-toggle:not(.disabled):hover{opacity:1}.flow-controls{flex-shrink:0;display:flex;align-items:center;grid-gap:8px;gap:8px}\n"], components: [{ type: i5.OverlayPanel, selector: "p-overlayPanel", inputs: ["dismissable", "showCloseIcon", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { type: i6.HeaderCartOverlayComponent, selector: "vl-header-cart-overlay", inputs: ["products"] }, { type: i7.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "style", "styleClass", "badgeClass"], outputs: ["onClick", "onFocus", "onBlur"] }], directives: [{ type: i8.LetDirective, selector: "[vlLet]", inputs: ["vlLet"] }, { type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { type: i11.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { type: i9.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "async": i9.AsyncPipe, "date": i9.DatePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
186
+ FlowHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: FlowHeaderComponent, selector: "vl-flow-header", ngImport: i0, template: "<div class=\"flow-info\" *vlLet=\"objectDetails$ | async as details\">\n <nav class=\"nav-item nav-back\" (click)=\"back()\">\n <i class=\"nav-icon vl-icon vl-icon-arrow-left\"></i>\n\n <span> Back </span>\n <span *ngIf=\"objectName\" class=\"object-name\">&nbsp;To {{ objectName }}</span>\n </nav>\n\n <ng-container *ngIf=\"isAccountMode\">\n <span class=\"dot-separator\"></span>\n\n <span>Account name</span>\n\n <nav class=\"account-name\" [pTooltip]=\"contextProperties.Name ?? ''\" tooltipPosition=\"bottom\" [showDelay]=\"1000\">\n <a target=\"_blank\" [href]=\"getSalesforceObjectLink(contextProperties.Id)\">{{ contextProperties.Name }}</a>\n </nav>\n </ng-container>\n\n <ng-container *ngIf=\"isQuoteMode\">\n <span class=\"dot-separator\"></span>\n\n <span>Quote #{{ details.quoteNumber }}</span>\n\n <span class=\"dot-separator\"></span>\n\n <nav class=\"nav-item\" (click)=\"quoteDetails.toggle($event)\">\n <span>{{ status$ | async }}</span>\n\n <i *ngIf=\"!quoteDetails.overlayVisible\" class=\"vl-icon vl-icon-chevron-down icon-with-margin\"></i>\n <i *ngIf=\"quoteDetails.overlayVisible\" class=\"vl-icon vl-icon-chevron-up icon-with-margin\"></i>\n </nav>\n\n <p-overlayPanel styleClass=\"navigation-settings-overlay flow-header-overlay center\" #quoteDetails>\n <ng-template pTemplate>\n <div class=\"flow-header-overlay__wrapper\">\n <h2 class=\"flow-header-overlay__title\">\n <span>Quote Information</span>\n <i class=\"vl-icon vl-icon-close close-icon\" (click)=\"quoteDetails.hide()\"></i>\n </h2>\n\n <ul class=\"info-list\">\n <li class=\"info-list__row\">\n <span>Account Name:</span>\n <a target=\"_blank\" [href]=\"getSalesforceObjectLink(details.accountId)\">{{ details.accountName }}</a>\n </li>\n <li class=\"info-list__row\">\n <span>Opportunity Name:</span>\n <a target=\"_blank\" [href]=\"getSalesforceObjectLink(details.opportunityId)\">{{\n details.opportunityName\n }}</a>\n </li>\n <li class=\"info-list__row\">\n <span>Quote Name:</span>\n <a target=\"_blank\" [href]=\"getSalesforceObjectLink(details.quoteId)\">{{ details.quoteName }}</a>\n </li>\n </ul>\n </div>\n </ng-template>\n </p-overlayPanel>\n </ng-container>\n</div>\n\n<div class=\"flow-navigation\">\n <nav class=\"nav-item\" [ngClass]=\"{ active: isCatalogRoute$ | async }\" (click)=\"navigateToCatalog()\">Catalog</nav>\n <nav class=\"nav-item disabled\" [ngClass]=\"{ active: isConfigurationRoute$ | async }\">Configurator</nav>\n <ng-container *vlLet=\"products$ | async as products\">\n <nav class=\"nav-item\" [ngClass]=\"{ active: isCartRoute$ | async }\" (click)=\"navigateToShoppingCart()\">\n Shopping Cart ({{ products.length }})\n </nav>\n\n <nav class=\"nav-popover-toggle active\" (click)=\"cart?.overlayPanel?.toggle($event)\">\n <i *ngIf=\"!cart?.overlayPanel?.overlayVisible\" class=\"vl-icon vl-icon-chevron-down icon-with-margin\"></i>\n <i *ngIf=\"cart?.overlayPanel?.overlayVisible\" class=\"vl-icon vl-icon-chevron-up icon-with-margin\"></i>\n </nav>\n\n <vl-header-cart-overlay #cart [products]=\"products\"></vl-header-cart-overlay>\n </ng-container>\n</div>\n\n<div class=\"flow-controls\" *vlLet=\"objectDetails$ | async as details\">\n <ng-container *ngIf=\"isQuoteMode\">\n <span *ngIf=\"details.priceListName\">{{ details.priceListName }}</span>\n <span *ngIf=\"contextProperties.StartDate\">{{ contextProperties.StartDate | date: 'MM.dd.yyyy' }}</span>\n\n <span class=\"slash-separator\"></span>\n\n <span>MRR: <span class=\"font-semibold\">$0.00</span></span>\n <span>NRR: <span class=\"font-semibold\">$0.00</span></span>\n </ng-container>\n\n <ng-container *vlLet=\"isCartRoute$ | async as isCartRoute\">\n <p-button\n styleClass=\"p-button-outlined\"\n label=\"Generate Doc\"\n [disabled]=\"!isCartRoute\"\n tooltipPosition=\"bottom\"\n [showDelay]=\"300\"\n [pTooltip]=\"isCartRoute ? '' : disabledActionButtonTooltip\"\n ></p-button>\n\n <p-button\n *vlLet=\"isSaveInProgress$ | async as isSaveInProgress\"\n class=\"save-button\"\n styleClass=\"p-button-outlined\"\n [label]=\"isSaveInProgress ? 'Saving' : 'Save to Quote'\"\n (onClick)=\"saveButtonClickHandler()\"\n [loading]=\"isSaveInProgress\"\n ></p-button>\n\n <p-button\n *vlLet=\"isSubmitInProgress$ | async as isSubmitInProgress\"\n class=\"submit-button\"\n styleClass=\"p-button\"\n [label]=\"isSubmitInProgress ? 'Submitting' : 'Submit For Approval'\"\n [disabled]=\"!isCartRoute\"\n tooltipPosition=\"bottom\"\n [showDelay]=\"300\"\n [pTooltip]=\"isCartRoute ? '' : disabledActionButtonTooltip\"\n (onClick)=\"submitButtonClickHandler()\"\n [loading]=\"isSubmitInProgress\"\n ></p-button>\n </ng-container>\n</div>\n", styles: [":host{display:flex;align-items:center;height:48px;width:100%;background-color:var(--vl-primary-color);color:#fff;padding:0 32px;flex-shrink:0}::ng-deep .p-overlaypanel.flow-header-overlay .p-overlaypanel-content{background-color:#fff;padding:16px}::ng-deep .p-overlaypanel.flow-header-overlay.left:before{left:6px!important}::ng-deep .p-overlaypanel.flow-header-overlay.right:before{right:6px!important}::ng-deep .p-overlaypanel.flow-header-overlay.left .p-overlaypanel-content{margin-left:-16px}::ng-deep .p-overlaypanel.flow-header-overlay.right .p-overlaypanel-content{margin-right:-16px}::ng-deep .p-overlaypanel.flow-header-overlay:before{background-color:#fff}:host ::ng-deep .p-button{padding:5px 15px;font-size:12px}:host ::ng-deep .p-button{color:var(--vl-primary-color);background-color:#fff;border-color:#fff}:host ::ng-deep .p-button:enabled:hover{background-color:var(--vl-primary-color);color:#fff;border-color:#fff}:host ::ng-deep .p-button.p-button-outlined{background-color:var(--vl-primary-color);color:#fff;border-color:#fff}:host ::ng-deep .p-button.p-button-outlined:enabled:hover{color:var(--vl-primary-color);background-color:#fff;border-color:#fff}:host ::ng-deep .p-button .p-button-label{white-space:nowrap}:host ::ng-deep .save-button .p-button{width:120px}:host ::ng-deep .submit-button .p-button{width:160px}.vl-icon{display:inline-block}.flow-info{flex-shrink:0;display:flex;grid-gap:8px;gap:8px;align-items:center}.flow-info .nav-popover-toggle{margin-left:-8px}.flow-info .object-name{text-transform:capitalize}.flow-info .nav-back{font-weight:bold}.flow-info .nav-item:not(.disabled):hover,.flow-info .nav-popover-toggle:not(.disabled):hover{opacity:.6}nav{display:flex;align-items:center;cursor:pointer;padding:4px 0}nav.disabled{opacity:.6;cursor:default}nav .nav-icon{margin-right:10px}nav .icon-with-margin{margin:0 4px}nav a{color:#fff}nav.account-name{margin-left:4px;display:block;max-width:200px;overflow:hidden;text-overflow:ellipsis}nav.nav-popover-toggle{width:24px;display:flex;justify-content:center}nav.nav-popover-toggle i{pointer-events:none;margin:0}nav i{pointer-events:none}.dot-separator:after{content:\"\";display:block;width:4px;height:4px;border-radius:50%;background:#fff}.slash-separator:after{content:\"\";display:block;background:#fff;width:1px;height:16px}.flow-header-overlay__wrapper{width:360px}.flow-header-overlay__wrapper .close-icon{cursor:pointer}.flow-header-overlay__wrapper .info-list{list-style:none;padding:0;font-size:12px}.flow-header-overlay__wrapper .info-list__row{padding:8px 0;display:flex;justify-content:space-between}.flow-header-overlay__title{display:flex;justify-content:space-between;align-items:center;margin:0 0 24px}.flow-navigation{flex-grow:1;display:flex;grid-gap:16px;gap:16px;justify-content:center;font-weight:600}.flow-navigation .cart-nav-container{display:flex}.flow-navigation .nav-popover-toggle{margin-left:-14px}.flow-navigation .nav-item,.flow-navigation .nav-popover-toggle{opacity:.6}.flow-navigation .nav-item.active,.flow-navigation .nav-item:not(.disabled):hover,.flow-navigation .nav-popover-toggle.active,.flow-navigation .nav-popover-toggle:not(.disabled):hover{opacity:1}.flow-controls{flex-shrink:0;display:flex;align-items:center;grid-gap:8px;gap:8px}\n"], components: [{ type: i5.OverlayPanel, selector: "p-overlayPanel", inputs: ["dismissable", "showCloseIcon", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { type: i6.HeaderCartOverlayComponent, selector: "vl-header-cart-overlay", inputs: ["products"] }, { type: i7.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "style", "styleClass", "badgeClass"], outputs: ["onClick", "onFocus", "onBlur"] }], directives: [{ type: i8.LetDirective, selector: "[vlLet]", inputs: ["vlLet"] }, { type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { type: i11.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { type: i9.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "async": i9.AsyncPipe, "date": i9.DatePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
170
187
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FlowHeaderComponent, decorators: [{
171
188
  type: Component,
172
189
  args: [{
@@ -176,4 +193,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImpo
176
193
  changeDetection: ChangeDetectionStrategy.OnPush,
177
194
  }]
178
195
  }], ctorParameters: function () { return [{ type: i1.ContextService }, { type: i1.QuoteDraftService }, { type: i2.QuoteApiService }, { type: i2.SalesforceApiService }, { type: i1.FlowConfigurationService }, { type: i3.FlowRouterService }, { type: i4.FlowDialogService }]; } });
179
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3NyYy9jb21wb25lbnRzL2hlYWRlci9oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvc3JjL2NvbXBvbmVudHMvaGVhZGVyL2hlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUV0RixPQUFPLEVBQUUsd0JBQXdCLEVBQXdELE1BQU0sY0FBYyxDQUFDO0FBRTlHLE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHL0YsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7Ozs7Ozs7Ozs7OztBQVc1QyxNQUFNLE9BQU8sbUJBQW1CO0lBZ0I5QixZQUNVLE9BQXVCLEVBQ3ZCLGlCQUFvQyxFQUNwQyxlQUFnQyxFQUNoQyxZQUFrQyxFQUNsQyxpQkFBMkMsRUFDM0MsYUFBZ0MsRUFDaEMsYUFBZ0M7O1FBTmhDLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQ3ZCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLGlCQUFZLEdBQVosWUFBWSxDQUFzQjtRQUNsQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQTBCO1FBQzNDLGtCQUFhLEdBQWIsYUFBYSxDQUFtQjtRQUNoQyxrQkFBYSxHQUFiLGFBQWEsQ0FBbUI7UUF0QjFCLGdDQUEyQixHQUFHLGtDQUFrQyxDQUFDO1FBSTFFLG1CQUFjLEdBQUcsSUFBSSxlQUFlLENBQXNCLEVBQUUsQ0FBQyxDQUFDO1FBSzlELHNC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QWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBRdW90ZUFwaVNlcnZpY2UsIFNhbGVzZm9yY2VBcGlTZXJ2aWNlIH0gZnJvbSAnQHZlbG9jZS9hcGknO1xuaW1wb3J0IHsgQ29uZmlndXJhdGlvbkNvbnRleHRNb2RlLCBDb250ZXh0UHJvcGVydGllcywgTGluZUl0ZW0sIFNlYXJjaFJlcXVlc3QsIFZsV2luZG93IH0gZnJvbSAnQHZlbG9jZS9jb3JlJztcbmltcG9ydCB7IENvbnRleHRTZXJ2aWNlLCBGbG93Q29uZmlndXJhdGlvblNlcnZpY2UsIFF1b3RlRHJhZnRTZXJ2aWNlIH0gZnJvbSAnQHZlbG9jZS9zZGsvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGZpbmFsaXplLCBtYXAsIE9ic2VydmFibGUsIG9mLCBTdWJqZWN0LCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRmxvd1JvdXRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9mbG93LXJvdXRlci5zZXJ2aWNlJztcbmltcG9ydCB7IEZsb3dEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZm93LWRpYWxvZy5zZXJ2aWNlJztcbmltcG9ydCB7IGdldElzRWRpdE1vZGUgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgeyBIZWFkZXJPYmplY3REZXRhaWxzLCBIZWFkZXJQcm9kdWN0IH0gZnJvbSAnLi9oZWFkZXIudHlwZXMnO1xuXG5kZWNsYXJlIGNvbnN0IHdpbmRvdzogVmxXaW5kb3c7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZsLWZsb3ctaGVhZGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2hlYWRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2hlYWRlci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRmxvd0hlYWRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHVibGljIHJlYWRvbmx5IGRpc2FibGVkQWN0aW9uQnV0dG9uVG9vbHRpcCA9ICdBdmFpbGFibGUgZnJvbSB0aGUgU2hvcHBpbmcgQ2FydCc7XG5cbiAgcHVibGljIG9iamVjdE5hbWU6IHN0cmluZztcbiAgcHVibGljIGNvbnRleHRQcm9wZXJ0aWVzOiBDb250ZXh0UHJvcGVydGllcztcbiAgcHVibGljIG9iamVjdERldGFpbHMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxIZWFkZXJPYmplY3REZXRhaWxzPih7fSk7XG4gIHB1YmxpYyBwcm9kdWN0cyQ6IE9ic2VydmFibGU8SGVhZGVyUHJvZHVjdFtdPjtcbiAgcHVibGljIGlzQ29uZmlndXJhdGlvblJvdXRlJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgcHVibGljIGlzQ2FydFJvdXRlJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgcHVibGljIGlzQ2F0YWxvZ1JvdXRlJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgcHVibGljIGlzU2F2ZUluUHJvZ3Jlc3MkID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG5cbiAgcHJpdmF0ZSBtb2RlPzogQ29uZmlndXJhdGlvbkNvbnRleHRNb2RlO1xuICBwcml2YXRlIGlzRWRpdE1vZGU6IGJvb2xlYW47XG4gIHByaXZhdGUgZGVzdHJveWVkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjb250ZXh0OiBDb250ZXh0U2VydmljZSxcbiAgICBwcml2YXRlIHF1b3RlRHJhZnRTZXJ2aWNlOiBRdW90ZURyYWZ0U2VydmljZSxcbiAgICBwcml2YXRlIHF1b3RlQXBpU2VydmljZTogUXVvdGVBcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgc2ZBcGlTZXJ2aWNlOiBTYWxlc2ZvcmNlQXBpU2VydmljZSxcbiAgICBwcml2YXRlIGZsb3dDb25maWd1cmF0aW9uOiBGbG93Q29uZmlndXJhdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXJTZXJ2aWNlOiBGbG93Um91dGVyU2VydmljZSxcbiAgICBwcml2YXRlIGRpYWxvZ1NlcnZpY2U6IEZsb3dEaWFsb2dTZXJ2aWNlLFxuICApIHtcbiAgICBjb25zdCBjdHggPSB0aGlzLmNvbnRleHQucmVzb2x2ZSgpO1xuXG4gICAgdGhpcy5tb2RlID0gY3R4Py5tb2RlO1xuICAgIHRoaXMub2JqZWN0TmFtZSA9IGN0eD8ubW9kZT8udG9Mb3dlckNhc2UoKSA/PyAnJztcbiAgICB0aGlzLmNvbnRleHRQcm9wZXJ0aWVzID0gY3R4Py5wcm9wZXJ0aWVzID8/IHt9O1xuICAgIHRoaXMuaXNFZGl0TW9kZSA9IGN0eCA/IGdldElzRWRpdE1vZGUoY3R4KSA6IGZhbHNlO1xuXG4gICAgdGhpcy5wcm9kdWN0cyQgPSB0aGlzLmZsb3dDb25maWd1cmF0aW9uLmdldCgpLnBpcGUobWFwKGxpbmVJdGVtcyA9PiB0aGlzLmdlbmVyYXRlUHJvZHVjdHMobGluZUl0ZW1zKSkpO1xuICAgIHRoaXMuaXNDb25maWd1cmF0aW9uUm91dGUkID0gdGhpcy5yb3V0ZXJTZXJ2aWNlLmlzQ29uZmlndXJhdGlvblJvdXRlJCgpO1xuICAgIHRoaXMuaXNDYXJ0Um91dGUkID0gdGhpcy5yb3V0ZXJTZXJ2aWNlLmlzQ2FydFJvdXRlJCgpO1xuICAgIHRoaXMuaXNDYXRhbG9nUm91dGUkID0gdGhpcy5yb3V0ZXJTZXJ2aWNlLmlzQ2F0YWxvZ1JvdXRlJCgpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5wb3B1bGF0ZU9iamVjdERldGFpbHMoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveWVkJC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95ZWQkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzQWNjb3VudE1vZGUoKSB7XG4gICAgcmV0dXJuIHRoaXMubW9kZSA9PT0gQ29uZmlndXJhdGlvbkNvbnRleHRNb2RlLkFDQ09VTlQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzUXVvdGVNb2RlKCkge1xuICAgIHJldHVybiB0aGlzLm1vZGUgPT09IENvbmZpZ3VyYXRpb25Db250ZXh0TW9kZS5RVU9URTtcbiAgfVxuXG4gIHB1YmxpYyBiYWNrKCk6IHZvaWQge1xuICAgIGNvbnN0IG9iamVjdElkID0gdGhpcy5jb250ZXh0LnJlc29sdmUoKT8uaGVhZGVySWQ7XG5cbiAgICBpZiAob2JqZWN0SWQpIHtcbiAgICAgIHdpbmRvdy5WRUxPX0JBQ0tfRk4uYXBwbHkobnVsbCwgW29iamVjdElkXSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldFNhbGVzZm9yY2VPYmplY3RMaW5rKG9iamVjdElkPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoIW9iamVjdElkKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgcmV0dXJuIGAke3dpbmRvdy5sb2NhdGlvbi5vcmlnaW59LyR7b2JqZWN0SWR9YDtcbiAgfVxuXG4gIHB1YmxpYyBuYXZpZ2F0ZVRvU2hvcHBpbmdDYXJ0KCkge1xuICAgIHRoaXMucm91dGVyU2VydmljZS5uYXZpZ2F0ZVRvU2hvcHBpbmdDYXJ0KCk7XG4gIH1cblxuICBwdWJsaWMgbmF2aWdhdGVUb0NhdGFsb2coKSB7XG4gICAgdGhpcy5yb3V0ZXJTZXJ2aWNlLm5hdmlnYXRlVG9DYXRhbG9nKCk7XG4gIH1cblxuICBwdWJsaWMgc2F2ZUJ1dHRvbkNsaWNrSGFuZGxlcigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXNFZGl0TW9kZSkge1xuICAgICAgaWYgKHRoaXMubW9kZSA9PT0gQ29uZmlndXJhdGlvbkNvbnRleHRNb2RlLlFVT1RFKSB7XG4gICAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5zaG93UXVvdGVSZWFkb25seU1vZGVEaWFsb2coKS5zdWJzY3JpYmUoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5zaG93UmVhZG9ubHlNb2RlRGlhbG9nKCkuc3Vic2NyaWJlKCk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMubW9kZSA9PT0gQ29uZmlndXJhdGlvbkNvbnRleHRNb2RlLkFDQ09VTlQgJiYgIXRoaXMucXVvdGVEcmFmdFNlcnZpY2UuaGFzVW5zYXZlZENoYW5nZXMpIHtcbiAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5zaG93QWNjb3VudE5vQ2hhbmdlc0RpYWxvZygpLnN1YnNjcmliZSgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGxpbmVJdGVtcyA9IHRoaXMuZmxvd0NvbmZpZ3VyYXRpb24uZ2V0U25hcHNob3QoKTtcblxuICAgIGlmICghbGluZUl0ZW1zLmxlbmd0aCkge1xuICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLnNob3dFbXB0eUNhcnREaWFsb2coKS5zdWJzY3JpYmUoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBxdW90ZURyYWZ0ID0gdGhpcy5xdW90ZURyYWZ0U2VydmljZS5xdW90ZVNuYXBzaG90O1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmNvbnRleHQucmVzb2x2ZSgpO1xuICAgIGlmICghcXVvdGVEcmFmdCB8fCAhY29udGV4dCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuaXNTYXZlSW5Qcm9ncmVzcyQubmV4dCh0cnVlKTtcblxuICAgIHRoaXMucXVvdGVBcGlTZXJ2aWNlXG4gICAgICAudXBzZXJ0UXVvdGUoe1xuICAgICAgICAuLi5xdW90ZURyYWZ0LFxuICAgICAgICBjb250ZXh0LFxuICAgICAgICBjdXJyZW50U3RhdGU6IGxpbmVJdGVtcyxcbiAgICAgIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICAvLyBuYXZpZ2F0ZSBiYWNrIHRvIHF1b3RlIG9uIHN1Y2Nlc3NmdWwgc2F2ZVxuICAgICAgICAgIGlmICh0aGlzLm1vZGUgPT09IENvbmZpZ3VyYXRpb25Db250ZXh0TW9kZS5RVU9URSkge1xuICAgICAgICAgICAgdGhpcy5iYWNrKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgICAgZmluYWxpemUoKCkgPT4gdGhpcy5pc1NhdmVJblByb2dyZXNzJC5uZXh0KGZhbHNlKSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIHF1ZXJ5TmFtZSQob2JqZWN0TmFtZTogc3RyaW5nLCBpZD86IHN0cmluZyk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgaWYgKCFpZCkge1xuICAgICAgcmV0dXJuIG9mKCcnKTtcbiAgICB9XG5cbiAgICBjb25zdCBzZWFyY2hSZXF1ZXN0OiBTZWFyY2hSZXF1ZXN0ID0ge1xuICAgICAgY291bnQ6IDEsXG4gICAgICByYXdDb25kaXRpb246IGBJZCA9ICcke2lkfSdgLFxuICAgICAgZmllbGRzOiBbJ05hbWUnXSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoaXMuc2ZBcGlTZXJ2aWNlLnF1ZXJ5PGFueT4oc2VhcmNoUmVxdWVzdCwgb2JqZWN0TmFtZSkucGlwZShcbiAgICAgIG1hcChyZXN1bHQgPT4gcmVzdWx0WzBdPy5OYW1lID8/ICcnKSxcbiAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHBvcHVsYXRlT2JqZWN0RGV0YWlscygpOiB2b2lkIHtcbiAgICBjb25zdCBhY2NvdW50SWQgPSB0aGlzLmlzQWNjb3VudE1vZGUgPyB0aGlzLmNvbnRleHRQcm9wZXJ0aWVzLklkIDogdGhpcy5jb250ZXh0UHJvcGVydGllcy5BY2NvdW50SWQ7XG4gICAgY29uc3Qgb3Bwb3J0dW5pdHlJZCA9IHRoaXMuY29udGV4dFByb3BlcnRpZXMuT3Bwb3J0dW5pdHlJZDtcbiAgICBjb25zdCBxdW90ZUlkID0gdGhpcy5pc1F1b3RlTW9kZSA/IHRoaXMuY29udGV4dFByb3BlcnRpZXMuSWQgOiB1bmRlZmluZWQ7XG4gICAgY29uc3QgcXVvdGVOYW1lID0gdGhpcy5pc1F1b3RlTW9kZSA/IHRoaXMuY29udGV4dFByb3BlcnRpZXMuTmFtZSA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCBxdW90ZU51bWJlciA9IHRoaXMuaXNRdW90ZU1vZGUgPyB0aGlzLmNvbnRleHRQcm9wZXJ0aWVzLlF1b3RlTnVtYmVyPy5yZXBsYWNlKC9eMCsvLCAnJykgOiB1bmRlZmluZWQ7XG4gICAgY29uc3QgcHJpY2VMaXN0TmFtZSA9IHRoaXMucXVvdGVEcmFmdFNlcnZpY2UucXVvdGVQcmljZUxpc3Q/Lm5hbWU7XG5cbiAgICB0aGlzLm9iamVjdERldGFpbHMkLm5leHQoe1xuICAgICAgLi4udGhpcy5vYmplY3REZXRhaWxzJC52YWx1ZSxcbiAgICAgIGFjY291bnRJZCxcbiAgICAgIG9wcG9ydHVuaXR5SWQsXG4gICAgICBxdW90ZUlkLFxuICAgICAgcXVvdGVOYW1lLFxuICAgICAgcXVvdGVOdW1iZXIsXG4gICAgICBwcmljZUxpc3ROYW1lLFxuICAgIH0pO1xuXG4gICAgdGhpcy5xdWVyeU5hbWUkKCdBY2NvdW50JywgYWNjb3VudElkKS5zdWJzY3JpYmUoYWNjb3VudE5hbWUgPT5cbiAgICAgIHRoaXMub2JqZWN0RGV0YWlscyQubmV4dCh7XG4gICAgICAgIC4uLnRoaXMub2JqZWN0RGV0YWlscyQudmFsdWUsXG4gICAgICAgIGFjY291bnROYW1lLFxuICAgICAgfSksXG4gICAgKTtcbiAgICB0aGlzLnF1ZXJ5TmFtZSQoJ09wcG9ydHVuaXR5Jywgb3Bwb3J0dW5pdHlJZCkuc3Vic2NyaWJlKG9wcG9ydHVuaXR5TmFtZSA9PlxuICAgICAgdGhpcy5vYmplY3REZXRhaWxzJC5uZXh0KHtcbiAgICAgICAgLi4udGhpcy5vYmplY3REZXRhaWxzJC52YWx1ZSxcbiAgICAgICAgb3Bwb3J0dW5pdHlOYW1lLFxuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2VuZXJhdGVQcm9kdWN0cyhsaW5lSXRlbXM6IExpbmVJdGVtW10pOiBIZWFkZXJQcm9kdWN0W10ge1xuICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSgpO1xuICAgIGRhdGUuc2V0SG91cnMoMCwgMCwgMCwgMCk7XG4gICAgY29uc3Qgbm93ID0gZGF0ZS5nZXRUaW1lKCk7XG5cbiAgICByZXR1cm4gbGluZUl0ZW1zLnJlZHVjZSgocmVzdWx0OiBIZWFkZXJQcm9kdWN0W10sIGxpKSA9PiB7XG4gICAgICAvLyBmaW5kIG1haW4gdGVybSBsaW5lIGl0ZW1cbiAgICAgIGlmIChsaS5yYW1wSW5zdGFuY2VJZCkge1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuXG4gICAgICAvLyBmaW5kIGN1cnJlbnQgdGVybSBsaW5lIGl0ZW1cbiAgICAgIGxldCB0YXJnZXQ6IExpbmVJdGVtIHwgdW5kZWZpbmVkID0gbGk7XG4gICAgICB3aGlsZSAodGFyZ2V0ICYmIHRhcmdldC5lbmREYXRlICYmIG5ldyBEYXRlKHRhcmdldC5lbmREYXRlKS5nZXRUaW1lKCkgPD0gbm93KSB7XG4gICAgICAgIHRhcmdldCA9IGxpbmVJdGVtcy5maW5kKHN1YiA9PiBzdWIucmFtcEluc3RhbmNlSWQgPT09IGxpLmlkKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRhcmdldCAmJiB0YXJnZXQucHJvZHVjdElkKSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgLi4ucmVzdWx0LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiB0YXJnZXQuaWQsXG4gICAgICAgICAgICBwcm9kdWN0SWQ6IHRhcmdldC5wcm9kdWN0SWQsXG4gICAgICAgICAgICBuYW1lOiB0YXJnZXQubmFtZSxcbiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdGFyZ2V0LnByb3BlcnRpZXNbJyNjb25maWd1cmFibGUnXSA9PT0gJ3RydWUnLFxuICAgICAgICAgICAgcXR5OiB0YXJnZXQucXR5LFxuICAgICAgICAgICAgbXJyOiAwLFxuICAgICAgICAgICAgbnJyOiAwLFxuICAgICAgICAgIH0sXG4gICAgICAgIF07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSwgW10pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxvdy1pbmZvXCIgKnZsTGV0PVwib2JqZWN0RGV0YWlscyQgfCBhc3luYyBhcyBkZXRhaWxzXCI+XG4gIDxuYXYgY2xhc3M9XCJuYXYtaXRlbSBuYXYtYmFja1wiIChjbGljayk9XCJiYWNrKClcIj5cbiAgICA8aSBjbGFzcz1cIm5hdi1pY29uIHZsLWljb24gdmwtaWNvbi1hcnJvdy1sZWZ0XCI+PC9pPlxuXG4gICAgPHNwYW4+IEJhY2sgPC9zcGFuPlxuICAgIDxzcGFuICpuZ0lmPVwib2JqZWN0TmFtZVwiIGNsYXNzPVwib2JqZWN0LW5hbWVcIj4mbmJzcDtUbyB7eyBvYmplY3ROYW1lIH19PC9zcGFuPlxuICA8L25hdj5cblxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNBY2NvdW50TW9kZVwiPlxuICAgIDxzcGFuIGNsYXNzPVwiZG90LXNlcGFyYXRvclwiPjwvc3Bhbj5cblxuICAgIDxzcGFuPkFjY291bnQgbmFtZTwvc3Bhbj5cblxuICAgIDxuYXYgY2xhc3M9XCJhY2NvdW50LW5hbWVcIiBbcFRvb2x0aXBdPVwiY29udGV4dFByb3BlcnRpZXMuTmFtZSA/PyAnJ1wiIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiIFtzaG93RGVsYXldPVwiMTAwMFwiPlxuICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCIgW2hyZWZdPVwiZ2V0U2FsZXNmb3JjZU9iamVjdExpbmsoY29udGV4dFByb3BlcnRpZXMuSWQpXCI+e3sgY29udGV4dFByb3BlcnRpZXMuTmFtZSB9fTwvYT5cbiAgICA8L25hdj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzUXVvdGVNb2RlXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJkb3Qtc2VwYXJhdG9yXCI+PC9zcGFuPlxuXG4gICAgPHNwYW4+UXVvdGUgI3t7IGRldGFpbHMucXVvdGVOdW1iZXIgfX08L3NwYW4+XG5cbiAgICA8c3BhbiBjbGFzcz1cImRvdC1zZXBhcmF0b3JcIj48L3NwYW4+XG5cbiAgICA8bmF2IGNsYXNzPVwibmF2LWl0ZW1cIiAoY2xpY2spPVwicXVvdGVEZXRhaWxzLnRvZ2dsZSgkZXZlbnQpXCI+XG4gICAgICA8c3Bhbj57eyBjb250ZXh0UHJvcGVydGllcy5TdGF0dXMgfX08L3NwYW4+XG5cbiAgICAgIDxpICpuZ0lmPVwiIXF1b3RlRGV0YWlscy5vdmVybGF5VmlzaWJsZVwiIGNsYXNzPVwidmwtaWNvbiB2bC1pY29uLWNoZXZyb24tZG93biBpY29uLXdpdGgtbWFyZ2luXCI+PC9pPlxuICAgICAgPGkgKm5nSWY9XCJxdW90ZURldGFpbHMub3ZlcmxheVZpc2libGVcIiBjbGFzcz1cInZsLWljb24gdmwtaWNvbi1jaGV2cm9uLXVwIGljb24td2l0aC1tYXJnaW5cIj48L2k+XG4gICAgPC9uYXY+XG5cbiAgICA8cC1vdmVybGF5UGFuZWwgc3R5bGVDbGFzcz1cIm5hdmlnYXRpb24tc2V0dGluZ3Mtb3ZlcmxheSBmbG93LWhlYWRlci1vdmVybGF5IGNlbnRlclwiICNxdW90ZURldGFpbHM+XG4gICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxvdy1oZWFkZXItb3ZlcmxheV9fd3JhcHBlclwiPlxuICAgICAgICAgIDxoMiBjbGFzcz1cImZsb3ctaGVhZGVyLW92ZXJsYXlfX3RpdGxlXCI+XG4gICAgICAgICAgICA8c3Bhbj5RdW90ZSBJbmZvcm1hdGlvbjwvc3Bhbj5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwidmwtaWNvbiB2bC1pY29uLWNsb3NlIGNsb3NlLWljb25cIiAoY2xpY2spPVwicXVvdGVEZXRhaWxzLmhpZGUoKVwiPjwvaT5cbiAgICAgICAgICA8L2gyPlxuXG4gICAgICAgICAgPHVsIGNsYXNzPVwiaW5mby1saXN0XCI+XG4gICAgICAgICAgICA8bGkgY2xhc3M9XCJpbmZvLWxpc3RfX3Jvd1wiPlxuICAgICAgICAgICAgICA8c3Bhbj5BY2NvdW50IE5hbWU6PC9zcGFuPlxuICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIiBbaHJlZl09XCJnZXRTYWxlc2ZvcmNlT2JqZWN0TGluayhkZXRhaWxzLmFjY291bnRJZClcIj57eyBkZXRhaWxzLmFjY291bnROYW1lIH19PC9hPlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDxsaSBjbGFzcz1cImluZm8tbGlzdF9fcm93XCI+XG4gICAgICAgICAgICAgIDxzcGFuPk9wcG9ydHVuaXR5IE5hbWU6PC9zcGFuPlxuICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIiBbaHJlZl09XCJnZXRTYWxlc2ZvcmNlT2JqZWN0TGluayhkZXRhaWxzLm9wcG9ydHVuaXR5SWQpXCI+e3tcbiAgICAgICAgICAgICAgICBkZXRhaWxzLm9wcG9ydHVuaXR5TmFtZVxuICAgICAgICAgICAgICB9fTwvYT5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICA8bGkgY2xhc3M9XCJpbmZvLWxpc3RfX3Jvd1wiPlxuICAgICAgICAgICAgICA8c3Bhbj5RdW90ZSBOYW1lOjwvc3Bhbj5cbiAgICAgICAgICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCIgW2hyZWZdPVwiZ2V0U2FsZXNmb3JjZU9iamVjdExpbmsoZGV0YWlscy5xdW90ZUlkKVwiPnt7IGRldGFpbHMucXVvdGVOYW1lIH19PC9hPlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICA8L3VsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9wLW92ZXJsYXlQYW5lbD5cbiAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cImZsb3ctbmF2aWdhdGlvblwiPlxuICA8bmF2IGNsYXNzPVwibmF2LWl0ZW1cIiBbbmdDbGFzc109XCJ7IGFjdGl2ZTogaXNDYXRhbG9nUm91dGUkIHwgYXN5bmMgfVwiIChjbGljayk9XCJuYXZpZ2F0ZVRvQ2F0YWxvZygpXCI+Q2F0YWxvZzwvbmF2PlxuICA8bmF2IGNsYXNzPVwibmF2LWl0ZW0gZGlzYWJsZWRcIiBbbmdDbGFzc109XCJ7IGFjdGl2ZTogaXNDb25maWd1cmF0aW9uUm91dGUkIHwgYXN5bmMgfVwiPkNvbmZpZ3VyYXRvcjwvbmF2PlxuICA8bmctY29udGFpbmVyICp2bExldD1cInByb2R1Y3RzJCB8IGFzeW5jIGFzIHByb2R1Y3RzXCI+XG4gICAgPG5hdiBjbGFzcz1cIm5hdi1pdGVtXCIgW25nQ2xhc3NdPVwieyBhY3RpdmU6IGlzQ2FydFJvdXRlJCB8IGFzeW5jIH1cIiAoY2xpY2spPVwibmF2aWdhdGVUb1Nob3BwaW5nQ2FydCgpXCI+XG4gICAgICBTaG9wcGluZyBDYXJ0ICh7eyBwcm9kdWN0cy5sZW5ndGggfX0pXG4gICAgPC9uYXY+XG5cbiAgICA8bmF2IGNsYXNzPVwibmF2LXBvcG92ZXItdG9nZ2xlIGFjdGl2ZVwiIChjbGljayk9XCJjYXJ0Py5vdmVybGF5UGFuZWw/LnRvZ2dsZSgkZXZlbnQpXCI+XG4gICAgICA8aSAqbmdJZj1cIiFjYXJ0Py5vdmVybGF5UGFuZWw/Lm92ZXJsYXlWaXNpYmxlXCIgY2xhc3M9XCJ2bC1pY29uIHZsLWljb24tY2hldnJvbi1kb3duIGljb24td2l0aC1tYXJnaW5cIj48L2k+XG4gICAgICA8aSAqbmdJZj1cImNhcnQ/Lm92ZXJsYXlQYW5lbD8ub3ZlcmxheVZpc2libGVcIiBjbGFzcz1cInZsLWljb24gdmwtaWNvbi1jaGV2cm9uLXVwIGljb24td2l0aC1tYXJnaW5cIj48L2k+XG4gICAgPC9uYXY+XG5cbiAgICA8dmwtaGVhZGVyLWNhcnQtb3ZlcmxheSAjY2FydCBbcHJvZHVjdHNdPVwicHJvZHVjdHNcIj48L3ZsLWhlYWRlci1jYXJ0LW92ZXJsYXk+XG4gIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJmbG93LWNvbnRyb2xzXCIgKnZsTGV0PVwib2JqZWN0RGV0YWlscyQgfCBhc3luYyBhcyBkZXRhaWxzXCI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc1F1b3RlTW9kZVwiPlxuICAgIDxzcGFuICpuZ0lmPVwiZGV0YWlscy5wcmljZUxpc3ROYW1lXCI+e3sgZGV0YWlscy5wcmljZUxpc3ROYW1lIH19PC9zcGFuPlxuICAgIDxzcGFuICpuZ0lmPVwiY29udGV4dFByb3BlcnRpZXMuU3RhcnREYXRlXCI+e3sgY29udGV4dFByb3BlcnRpZXMuU3RhcnREYXRlIHwgZGF0ZTogJ01NLmRkLnl5eXknIH19PC9zcGFuPlxuXG4gICAgPHNwYW4gY2xhc3M9XCJzbGFzaC1zZXBhcmF0b3JcIj48L3NwYW4+XG5cbiAgICA8c3Bhbj5NUlI6IDxzcGFuIGNsYXNzPVwiZm9udC1zZW1pYm9sZFwiPiQwLjAwPC9zcGFuPjwvc3Bhbj5cbiAgICA8c3Bhbj5OUlI6IDxzcGFuIGNsYXNzPVwiZm9udC1zZW1pYm9sZFwiPiQwLjAwPC9zcGFuPjwvc3Bhbj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPG5nLWNvbnRhaW5lciAqdmxMZXQ9XCJpc0NhcnRSb3V0ZSQgfCBhc3luYyBhcyBpc0NhcnRSb3V0ZVwiPlxuICAgIDxwLWJ1dHRvblxuICAgICAgbGFiZWw9XCJHZW5lcmF0ZSBEb2NcIlxuICAgICAgW2Rpc2FibGVkXT1cIiFpc0NhcnRSb3V0ZVwiXG4gICAgICB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIlxuICAgICAgW3Nob3dEZWxheV09XCIzMDBcIlxuICAgICAgW3BUb29sdGlwXT1cImlzQ2FydFJvdXRlID8gJycgOiBkaXNhYmxlZEFjdGlvbkJ1dHRvblRvb2x0aXBcIlxuICAgICAgc3R5bGVDbGFzcz1cInAtYnV0dG9uLW91dGxpbmVkXCJcbiAgICA+PC9wLWJ1dHRvbj5cbiAgICA8cC1idXR0b25cbiAgICAgIGxhYmVsPVwiU2F2ZVwiXG4gICAgICBzdHlsZUNsYXNzPVwicC1idXR0b24tb3V0bGluZWRcIlxuICAgICAgKG9uQ2xpY2spPVwic2F2ZUJ1dHRvbkNsaWNrSGFuZGxlcigpXCJcbiAgICAgIFtsb2FkaW5nXT1cIihpc1NhdmVJblByb2dyZXNzJCB8IGFzeW5jKSA9PT0gdHJ1ZVwiXG4gICAgPjwvcC1idXR0b24+XG4gICAgPHAtYnV0dG9uXG4gICAgICBsYWJlbD1cIlN1Ym1pdCBGb3IgQXBwcm92YWxcIlxuICAgICAgW2Rpc2FibGVkXT1cIiFpc0NhcnRSb3V0ZVwiXG4gICAgICB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIlxuICAgICAgW3Nob3dEZWxheV09XCIzMDBcIlxuICAgICAgW3BUb29sdGlwXT1cImlzQ2FydFJvdXRlID8gJycgOiBkaXNhYmxlZEFjdGlvbkJ1dHRvblRvb2x0aXBcIlxuICAgICAgc3R5bGVDbGFzcz1cInAtYnV0dG9uXCJcbiAgICA+PC9wLWJ1dHRvbj5cbiAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cbiJdfQ==
196
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3NyYy9jb21wb25lbnRzL2hlYWRlci9oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvc3JjL2NvbXBvbmVudHMvaGVhZGVyL2hlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUV0RixPQUFPLEVBQUUsd0JBQXdCLEVBQXdELE1BQU0sY0FBYyxDQUFDO0FBRTlHLE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7Ozs7O0FBYTFHLE1BQU0sT0FBTyxtQkFBbUI7SUFrQjlCLFlBQ1UsY0FBOEIsRUFDOUIsaUJBQW9DLEVBQ3BDLGVBQWdDLEVBQ2hDLFlBQWtDLEVBQ2xDLGlCQUEyQyxFQUMzQyxhQUFnQyxFQUNoQyxhQUFnQztRQU5oQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsaUJBQVksR0FBWixZQUFZLENBQXNCO1FBQ2xDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBMEI7UUFDM0Msa0JBQWEsR0FBYixhQUFhLENBQW1CO1FBQ2hDLGtCQUFhLEdBQWIsYUFBYSxDQUFtQjtRQXhCMUIsZ0NBQTJCLEdBQUcsa0NBQWtDLENBQUM7UUFLMUUsbUJBQWMsR0FBRyxJQUFJLGVBQWUsQ0FBc0IsRUFBRSxDQUFDLENBQUM7UUFNOUQsc0JBQWlCLEdBQUcsSUFBSSxlQUFlLENBQUMsS0FBSyxD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ZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUXVvdGVBcGlTZXJ2aWNlLCBTYWxlc2ZvcmNlQXBpU2VydmljZSB9IGZyb20gJ0B2ZWxvY2UvYXBpJztcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25Db250ZXh0TW9kZSwgQ29udGV4dFByb3BlcnRpZXMsIExpbmVJdGVtLCBTZWFyY2hSZXF1ZXN0LCBWbFdpbmRvdyB9IGZyb20gJ0B2ZWxvY2UvY29yZSc7XG5pbXBvcnQgeyBDb250ZXh0U2VydmljZSwgRmxvd0NvbmZpZ3VyYXRpb25TZXJ2aWNlLCBRdW90ZURyYWZ0U2VydmljZSB9IGZyb20gJ0B2ZWxvY2Uvc2RrL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBmaW5hbGl6ZSwgbWFwLCBPYnNlcnZhYmxlLCBvZiwgU3ViamVjdCwgc3dpdGNoTWFwLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRmxvd0RpYWxvZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9mbG93LWRpYWxvZy5zZXJ2aWNlJztcbmltcG9ydCB7IEZsb3dSb3V0ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZmxvdy1yb3V0ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBIZWFkZXJPYmplY3REZXRhaWxzLCBIZWFkZXJQcm9kdWN0IH0gZnJvbSAnLi9oZWFkZXIudHlwZXMnO1xuXG5kZWNsYXJlIGNvbnN0IHdpbmRvdzogVmxXaW5kb3c7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZsLWZsb3ctaGVhZGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2hlYWRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2hlYWRlci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRmxvd0hlYWRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHVibGljIHJlYWRvbmx5IGRpc2FibGVkQWN0aW9uQnV0dG9uVG9vbHRpcCA9ICdBdmFpbGFibGUgZnJvbSB0aGUgU2hvcHBpbmcgQ2FydCc7XG5cbiAgcHVibGljIG9iamVjdE5hbWU6IHN0cmluZztcbiAgcHVibGljIGNvbnRleHRQcm9wZXJ0aWVzOiBDb250ZXh0UHJvcGVydGllcztcbiAgcHVibGljIHN0YXR1cyQ6IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgcHVibGljIG9iamVjdERldGFpbHMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxIZWFkZXJPYmplY3REZXRhaWxzPih7fSk7XG4gIHB1YmxpYyBwcm9kdWN0cyQ6IE9ic2VydmFibGU8SGVhZGVyUHJvZHVjdFtdPjtcbiAgcHVibGljIGlzQ29uZmlndXJhdGlvblJvdXRlJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgcHVibGljIGlzQ2FydFJvdXRlJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgcHVibGljIGlzQ2F0YWxvZ1JvdXRlJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgcHVibGljIGlzRWRpdE1vZGUkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBwdWJsaWMgaXNTYXZlSW5Qcm9ncmVzcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcbiAgcHVibGljIGlzU3VibWl0SW5Qcm9ncmVzcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcblxuICBwcml2YXRlIG1vZGU/OiBDb25maWd1cmF0aW9uQ29udGV4dE1vZGU7XG4gIHByaXZhdGUgZGVzdHJveWVkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjb250ZXh0U2VydmljZTogQ29udGV4dFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBxdW90ZURyYWZ0U2VydmljZTogUXVvdGVEcmFmdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBxdW90ZUFwaVNlcnZpY2U6IFF1b3RlQXBpU2VydmljZSxcbiAgICBwcml2YXRlIHNmQXBpU2VydmljZTogU2FsZXNmb3JjZUFwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBmbG93Q29uZmlndXJhdGlvbjogRmxvd0NvbmZpZ3VyYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGVyU2VydmljZTogRmxvd1JvdXRlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBkaWFsb2dTZXJ2aWNlOiBGbG93RGlhbG9nU2VydmljZSxcbiAgKSB7XG4gICAgY29uc3QgY3R4ID0gdGhpcy5jb250ZXh0U2VydmljZS5yZXNvbHZlKCk7XG5cbiAgICB0aGlzLm1vZGUgPSBjdHgubW9kZTtcbiAgICB0aGlzLm9iamVjdE5hbWUgPSBjdHgubW9kZS50b0xvd2VyQ2FzZSgpO1xuICAgIHRoaXMuY29udGV4dFByb3BlcnRpZXMgPSBjdHgucHJvcGVydGllcztcblxuICAgIHRoaXMuc3RhdHVzJCA9IHRoaXMuY29udGV4dFNlcnZpY2UucmVzb2x2ZSQoKS5waXBlKG1hcChjb250ZXh0ID0+IGNvbnRleHQucHJvcGVydGllcy5TdGF0dXMgPz8gJycpKTtcbiAgICB0aGlzLmlzRWRpdE1vZGUkID0gdGhpcy5xdW90ZURyYWZ0U2VydmljZS5pc0VkaXRNb2RlJCgpO1xuICAgIHRoaXMucHJvZHVjdHMkID0gdGhpcy5mbG93Q29uZmlndXJhdGlvbi5nZXQoKS5waXBlKG1hcChsaW5lSXRlbXMgPT4gdGhpcy5nZW5lcmF0ZVByb2R1Y3RzKGxpbmVJdGVtcykpKTtcbiAgICB0aGlzLmlzQ29uZmlndXJhdGlvblJvdXRlJCA9IHRoaXMucm91dGVyU2VydmljZS5pc0NvbmZpZ3VyYXRpb25Sb3V0ZSQoKTtcbiAgICB0aGlzLmlzQ2FydFJvdXRlJCA9IHRoaXMucm91dGVyU2VydmljZS5pc0NhcnRSb3V0ZSQoKTtcbiAgICB0aGlzLmlzQ2F0YWxvZ1JvdXRlJCA9IHRoaXMucm91dGVyU2VydmljZS5pc0NhdGFsb2dSb3V0ZSQoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMucG9wdWxhdGVPYmplY3REZXRhaWxzKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3llZCQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveWVkJC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBpc0FjY291bnRNb2RlKCkge1xuICAgIHJldHVybiB0aGlzLm1vZGUgPT09IENvbmZpZ3VyYXRpb25Db250ZXh0TW9kZS5BQ0NPVU5UO1xuICB9XG5cbiAgcHVibGljIGdldCBpc1F1b3RlTW9kZSgpIHtcbiAgICByZXR1cm4gdGhpcy5tb2RlID09PSBDb25maWd1cmF0aW9uQ29udGV4dE1vZGUuUVVPVEU7XG4gIH1cblxuICBwdWJsaWMgYmFjaygpOiB2b2lkIHtcbiAgICBjb25zdCBvYmplY3RJZCA9IHRoaXMuY29udGV4dFNlcnZpY2UucmVzb2x2ZSgpLmhlYWRlcklkO1xuXG4gICAgaWYgKG9iamVjdElkKSB7XG4gICAgICB3aW5kb3cuVkVMT19CQUNLX0ZOLmFwcGx5KG51bGwsIFtvYmplY3RJZF0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRTYWxlc2ZvcmNlT2JqZWN0TGluayhvYmplY3RJZD86IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKCFvYmplY3RJZCkge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIHJldHVybiBgJHt3aW5kb3cubG9jYXRpb24ub3JpZ2lufS8ke29iamVjdElkfWA7XG4gIH1cblxuICBwdWJsaWMgbmF2aWdhdGVUb1Nob3BwaW5nQ2FydCgpIHtcbiAgICB0aGlzLnJvdXRlclNlcnZpY2UubmF2aWdhdGVUb1Nob3BwaW5nQ2FydCgpO1xuICB9XG5cbiAgcHVibGljIG5hdmlnYXRlVG9DYXRhbG9nKCkge1xuICAgIHRoaXMucm91dGVyU2VydmljZS5uYXZpZ2F0ZVRvQ2F0YWxvZygpO1xuICB9XG5cbiAgcHVibGljIHNhdmVCdXR0b25DbGlja0hhbmRsZXIoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLmlzRWRpdE1vZGUoKSkge1xuICAgICAgaWYgKHRoaXMubW9kZSA9PT0gQ29uZmlndXJhdGlvbkNvbnRleHRNb2RlLlFVT1RFKSB7XG4gICAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5zaG93UXVvdGVSZWFkb25seU1vZGVEaWFsb2coKS5zdWJzY3JpYmUoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5zaG93UmVhZG9ubHlNb2RlRGlhbG9nKCkuc3Vic2NyaWJlKCk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMubW9kZSA9PT0gQ29uZmlndXJhdGlvbkNvbnRleHRNb2RlLkFDQ09VTlQgJiYgIXRoaXMucXVvdGVEcmFmdFNlcnZpY2UuaGFzVW5zYXZlZENoYW5nZXMpIHtcbiAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5zaG93QWNjb3VudE5vQ2hhbmdlc0RpYWxvZygpLnN1YnNjcmliZSgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGxpbmVJdGVtcyA9IHRoaXMuZmxvd0NvbmZpZ3VyYXRpb24uZ2V0U25hcHNob3QoKTtcblxuICAgIGlmICghbGluZUl0ZW1zLmxlbmd0aCkge1xuICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLnNob3dFbXB0eUNhcnREaWFsb2coKS5zdWJzY3JpYmUoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBxdW90ZURyYWZ0ID0gdGhpcy5xdW90ZURyYWZ0U2VydmljZS5xdW90ZVNuYXBzaG90O1xuICAgIGlmICghcXVvdGVEcmFmdCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuaXNTYXZlSW5Qcm9ncmVzcyQubmV4dCh0cnVlKTtcblxuICAgIHRoaXMucXVvdGVBcGlTZXJ2aWNlXG4gICAgICAudXBzZXJ0UXVvdGUocXVvdGVEcmFmdClcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIC8vIG5hdmlnYXRlIGJhY2sgdG8gcXVvdGUgb24gc3VjY2Vzc2Z1bCBzYXZlXG4gICAgICAgICAgaWYgKHRoaXMubW9kZSA9PT0gQ29uZmlndXJhdGlvbkNvbnRleHRNb2RlLlFVT1RFKSB7XG4gICAgICAgICAgICB0aGlzLmJhY2soKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgICBmaW5hbGl6ZSgoKSA9PiB0aGlzLmlzU2F2ZUluUHJvZ3Jlc3MkLm5leHQoZmFsc2UpKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzdWJtaXRCdXR0b25DbGlja0hhbmRsZXIoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubW9kZSA9PT0gQ29uZmlndXJhdGlvbkNvbnRleHRNb2RlLlFVT1RFICYmICF0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLmlzRWRpdE1vZGUoKSkge1xuICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLnNob3dSZWFkb25seVF1b3RlU3VibWl0RmFpbHVyZURpYWxvZygpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm1vZGUgPT09IENvbmZpZ3VyYXRpb25Db250ZXh0TW9kZS5BQ0NPVU5UKSB7XG4gICAgICB0aGlzLmRpYWxvZ1NlcnZpY2Uuc2hvd0FjY291bnRTdWJtaXRGYWlsdXJlRGlhbG9nKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcXVvdGVEcmFmdCA9IHRoaXMucXVvdGVEcmFmdFNlcnZpY2UucXVvdGVTbmFwc2hvdDtcbiAgICBpZiAoIXF1b3RlRHJhZnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmlzU3VibWl0SW5Qcm9ncmVzcyQubmV4dCh0cnVlKTtcblxuICAgIHRoaXMucXVvdGVBcGlTZXJ2aWNlXG4gICAgICAuc3VibWl0UXVvdGUocXVvdGVEcmFmdClcbiAgICAgIC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5xdW90ZUFwaVNlcnZpY2UuZ2V0UXVvdGVEcmFmdChxdW90ZURyYWZ0LnF1b3RlSWQpKSxcbiAgICAgICAgdGFwKHVwZGF0ZWRRdW90ZURyYWZ0ID0+IHRoaXMuY29udGV4dFNlcnZpY2UudXBkYXRlKHsgcHJvcGVydGllczogdXBkYXRlZFF1b3RlRHJhZnQuY29udGV4dC5wcm9wZXJ0aWVzIH0pKSxcbiAgICAgICAgZmluYWxpemUoKCkgPT4gdGhpcy5pc1N1Ym1pdEluUHJvZ3Jlc3MkLm5leHQoZmFsc2UpKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIHF1ZXJ5TmFtZSQob2JqZWN0TmFtZTogc3RyaW5nLCBpZD86IHN0cmluZyk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgaWYgKCFpZCkge1xuICAgICAgcmV0dXJuIG9mKCcnKTtcbiAgICB9XG5cbiAgICBjb25zdCBzZWFyY2hSZXF1ZXN0OiBTZWFyY2hSZXF1ZXN0ID0ge1xuICAgICAgY291bnQ6IDEsXG4gICAgICByYXdDb25kaXRpb246IGBJZCA9ICcke2lkfSdgLFxuICAgICAgZmllbGRzOiBbJ05hbWUnXSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoaXMuc2ZBcGlTZXJ2aWNlLnF1ZXJ5PGFueT4oc2VhcmNoUmVxdWVzdCwgb2JqZWN0TmFtZSkucGlwZShcbiAgICAgIG1hcChyZXN1bHQgPT4gcmVzdWx0WzBdPy5OYW1lID8/ICcnKSxcbiAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHBvcHVsYXRlT2JqZWN0RGV0YWlscygpOiB2b2lkIHtcbiAgICBjb25zdCBhY2NvdW50SWQgPSB0aGlzLmlzQWNjb3VudE1vZGUgPyB0aGlzLmNvbnRleHRQcm9wZXJ0aWVzLklkIDogdGhpcy5jb250ZXh0UHJvcGVydGllcy5BY2NvdW50SWQ7XG4gICAgY29uc3Qgb3Bwb3J0dW5pdHlJZCA9IHRoaXMuY29udGV4dFByb3BlcnRpZXMuT3Bwb3J0dW5pdHlJZDtcbiAgICBjb25zdCBxdW90ZUlkID0gdGhpcy5pc1F1b3RlTW9kZSA/IHRoaXMuY29udGV4dFByb3BlcnRpZXMuSWQgOiB1bmRlZmluZWQ7XG4gICAgY29uc3QgcXVvdGVOYW1lID0gdGhpcy5pc1F1b3RlTW9kZSA/IHRoaXMuY29udGV4dFByb3BlcnRpZXMuTmFtZSA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCBxdW90ZU51bWJlciA9IHRoaXMuaXNRdW90ZU1vZGUgPyB0aGlzLmNvbnRleHRQcm9wZXJ0aWVzLlF1b3RlTnVtYmVyPy5yZXBsYWNlKC9eMCsvLCAnJykgOiB1bmRlZmluZWQ7XG4gICAgY29uc3QgcHJpY2VMaXN0TmFtZSA9IHRoaXMucXVvdGVEcmFmdFNlcnZpY2UucXVvdGVQcmljZUxpc3Q/Lm5hbWU7XG5cbiAgICB0aGlzLm9iamVjdERldGFpbHMkLm5leHQoe1xuICAgICAgLi4udGhpcy5vYmplY3REZXRhaWxzJC52YWx1ZSxcbiAgICAgIGFjY291bnRJZCxcbiAgICAgIG9wcG9ydHVuaXR5SWQsXG4gICAgICBxdW90ZUlkLFxuICAgICAgcXVvdGVOYW1lLFxuICAgICAgcXVvdGVOdW1iZXIsXG4gICAgICBwcmljZUxpc3ROYW1lLFxuICAgIH0pO1xuXG4gICAgdGhpcy5xdWVyeU5hbWUkKCdBY2NvdW50JywgYWNjb3VudElkKS5zdWJzY3JpYmUoYWNjb3VudE5hbWUgPT5cbiAgICAgIHRoaXMub2JqZWN0RGV0YWlscyQubmV4dCh7XG4gICAgICAgIC4uLnRoaXMub2JqZWN0RGV0YWlscyQudmFsdWUsXG4gICAgICAgIGFjY291bnROYW1lLFxuICAgICAgfSksXG4gICAgKTtcbiAgICB0aGlzLnF1ZXJ5TmFtZSQoJ09wcG9ydHVuaXR5Jywgb3Bwb3J0dW5pdHlJZCkuc3Vic2NyaWJlKG9wcG9ydHVuaXR5TmFtZSA9PlxuICAgICAgdGhpcy5vYmplY3REZXRhaWxzJC5uZXh0KHtcbiAgICAgICAgLi4udGhpcy5vYmplY3REZXRhaWxzJC52YWx1ZSxcbiAgICAgICAgb3Bwb3J0dW5pdHlOYW1lLFxuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2VuZXJhdGVQcm9kdWN0cyhsaW5lSXRlbXM6IExpbmVJdGVtW10pOiBIZWFkZXJQcm9kdWN0W10ge1xuICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSgpO1xuICAgIGRhdGUuc2V0SG91cnMoMCwgMCwgMCwgMCk7XG4gICAgY29uc3Qgbm93ID0gZGF0ZS5nZXRUaW1lKCk7XG5cbiAgICByZXR1cm4gbGluZUl0ZW1zLnJlZHVjZSgocmVzdWx0OiBIZWFkZXJQcm9kdWN0W10sIGxpKSA9PiB7XG4gICAgICAvLyBmaW5kIG1haW4gdGVybSBsaW5lIGl0ZW1cbiAgICAgIGlmIChsaS5yYW1wSW5zdGFuY2VJZCkge1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuXG4gICAgICAvLyBmaW5kIGN1cnJlbnQgdGVybSBsaW5lIGl0ZW1cbiAgICAgIGxldCB0YXJnZXQ6IExpbmVJdGVtIHwgdW5kZWZpbmVkID0gbGk7XG4gICAgICB3aGlsZSAodGFyZ2V0ICYmIHRhcmdldC5lbmREYXRlICYmIG5ldyBEYXRlKHRhcmdldC5lbmREYXRlKS5nZXRUaW1lKCkgPD0gbm93KSB7XG4gICAgICAgIHRhcmdldCA9IGxpbmVJdGVtcy5maW5kKHN1YiA9PiBzdWIucmFtcEluc3RhbmNlSWQgPT09IGxpLmlkKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRhcmdldCAmJiB0YXJnZXQucHJvZHVjdElkKSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgLi4ucmVzdWx0LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiB0YXJnZXQuaWQsXG4gICAgICAgICAgICBwcm9kdWN0SWQ6IHRhcmdldC5wcm9kdWN0SWQsXG4gICAgICAgICAgICBuYW1lOiB0YXJnZXQubmFtZSxcbiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdGFyZ2V0LnByb3BlcnRpZXNbJyNjb25maWd1cmFibGUnXSA9PT0gJ3RydWUnLFxuICAgICAgICAgICAgcXR5OiB0YXJnZXQucXR5LFxuICAgICAgICAgICAgbXJyOiAwLFxuICAgICAgICAgICAgbnJyOiAwLFxuICAgICAgICAgIH0sXG4gICAgICAgIF07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSwgW10pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxvdy1pbmZvXCIgKnZsTGV0PVwib2JqZWN0RGV0YWlscyQgfCBhc3luYyBhcyBkZXRhaWxzXCI+XG4gIDxuYXYgY2xhc3M9XCJuYXYtaXRlbSBuYXYtYmFja1wiIChjbGljayk9XCJiYWNrKClcIj5cbiAgICA8aSBjbGFzcz1cIm5hdi1pY29uIHZsLWljb24gdmwtaWNvbi1hcnJvdy1sZWZ0XCI+PC9pPlxuXG4gICAgPHNwYW4+IEJhY2sgPC9zcGFuPlxuICAgIDxzcGFuICpuZ0lmPVwib2JqZWN0TmFtZVwiIGNsYXNzPVwib2JqZWN0LW5hbWVcIj4mbmJzcDtUbyB7eyBvYmplY3ROYW1lIH19PC9zcGFuPlxuICA8L25hdj5cblxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNBY2NvdW50TW9kZVwiPlxuICAgIDxzcGFuIGNsYXNzPVwiZG90LXNlcGFyYXRvclwiPjwvc3Bhbj5cblxuICAgIDxzcGFuPkFjY291bnQgbmFtZTwvc3Bhbj5cblxuICAgIDxuYXYgY2xhc3M9XCJhY2NvdW50LW5hbWVcIiBbcFRvb2x0aXBdPVwiY29udGV4dFByb3BlcnRpZXMuTmFtZSA/PyAnJ1wiIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiIFtzaG93RGVsYXldPVwiMTAwMFwiPlxuICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCIgW2hyZWZdPVwiZ2V0U2FsZXNmb3JjZU9iamVjdExpbmsoY29udGV4dFByb3BlcnRpZXMuSWQpXCI+e3sgY29udGV4dFByb3BlcnRpZXMuTmFtZSB9fTwvYT5cbiAgICA8L25hdj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzUXVvdGVNb2RlXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJkb3Qtc2VwYXJhdG9yXCI+PC9zcGFuPlxuXG4gICAgPHNwYW4+UXVvdGUgI3t7IGRldGFpbHMucXVvdGVOdW1iZXIgfX08L3NwYW4+XG5cbiAgICA8c3BhbiBjbGFzcz1cImRvdC1zZXBhcmF0b3JcIj48L3NwYW4+XG5cbiAgICA8bmF2IGNsYXNzPVwibmF2LWl0ZW1cIiAoY2xpY2spPVwicXVvdGVEZXRhaWxzLnRvZ2dsZSgkZXZlbnQpXCI+XG4gICAgICA8c3Bhbj57eyBzdGF0dXMkIHwgYXN5bmMgfX08L3NwYW4+XG5cbiAgICAgIDxpICpuZ0lmPVwiIXF1b3RlRGV0YWlscy5vdmVybGF5VmlzaWJsZVwiIGNsYXNzPVwidmwtaWNvbiB2bC1pY29uLWNoZXZyb24tZG93biBpY29uLXdpdGgtbWFyZ2luXCI+PC9pPlxuICAgICAgPGkgKm5nSWY9XCJxdW90ZURldGFpbHMub3ZlcmxheVZpc2libGVcIiBjbGFzcz1cInZsLWljb24gdmwtaWNvbi1jaGV2cm9uLXVwIGljb24td2l0aC1tYXJnaW5cIj48L2k+XG4gICAgPC9uYXY+XG5cbiAgICA8cC1vdmVybGF5UGFuZWwgc3R5bGVDbGFzcz1cIm5hdmlnYXRpb24tc2V0dGluZ3Mtb3ZlcmxheSBmbG93LWhlYWRlci1vdmVybGF5IGNlbnRlclwiICNxdW90ZURldGFpbHM+XG4gICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxvdy1oZWFkZXItb3ZlcmxheV9fd3JhcHBlclwiPlxuICAgICAgICAgIDxoMiBjbGFzcz1cImZsb3ctaGVhZGVyLW92ZXJsYXlfX3RpdGxlXCI+XG4gICAgICAgICAgICA8c3Bhbj5RdW90ZSBJbmZvcm1hdGlvbjwvc3Bhbj5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwidmwtaWNvbiB2bC1pY29uLWNsb3NlIGNsb3NlLWljb25cIiAoY2xpY2spPVwicXVvdGVEZXRhaWxzLmhpZGUoKVwiPjwvaT5cbiAgICAgICAgICA8L2gyPlxuXG4gICAgICAgICAgPHVsIGNsYXNzPVwiaW5mby1saXN0XCI+XG4gICAgICAgICAgICA8bGkgY2xhc3M9XCJpbmZvLWxpc3RfX3Jvd1wiPlxuICAgICAgICAgICAgICA8c3Bhbj5BY2NvdW50IE5hbWU6PC9zcGFuPlxuICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIiBbaHJlZl09XCJnZXRTYWxlc2ZvcmNlT2JqZWN0TGluayhkZXRhaWxzLmFjY291bnRJZClcIj57eyBkZXRhaWxzLmFjY291bnROYW1lIH19PC9hPlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDxsaSBjbGFzcz1cImluZm8tbGlzdF9fcm93XCI+XG4gICAgICAgICAgICAgIDxzcGFuPk9wcG9ydHVuaXR5IE5hbWU6PC9zcGFuPlxuICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIiBbaHJlZl09XCJnZXRTYWxlc2ZvcmNlT2JqZWN0TGluayhkZXRhaWxzLm9wcG9ydHVuaXR5SWQpXCI+e3tcbiAgICAgICAgICAgICAgICBkZXRhaWxzLm9wcG9ydHVuaXR5TmFtZVxuICAgICAgICAgICAgICB9fTwvYT5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICA8bGkgY2xhc3M9XCJpbmZvLWxpc3RfX3Jvd1wiPlxuICAgICAgICAgICAgICA8c3Bhbj5RdW90ZSBOYW1lOjwvc3Bhbj5cbiAgICAgICAgICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCIgW2hyZWZdPVwiZ2V0U2FsZXNmb3JjZU9iamVjdExpbmsoZGV0YWlscy5xdW90ZUlkKVwiPnt7IGRldGFpbHMucXVvdGVOYW1lIH19PC9hPlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICA8L3VsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9wLW92ZXJsYXlQYW5lbD5cbiAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cImZsb3ctbmF2aWdhdGlvblwiPlxuICA8bmF2IGNsYXNzPVwibmF2LWl0ZW1cIiBbbmdDbGFzc109XCJ7IGFjdGl2ZTogaXNDYXRhbG9nUm91dGUkIHwgYXN5bmMgfVwiIChjbGljayk9XCJuYXZpZ2F0ZVRvQ2F0YWxvZygpXCI+Q2F0YWxvZzwvbmF2PlxuICA8bmF2IGNsYXNzPVwibmF2LWl0ZW0gZGlzYWJsZWRcIiBbbmdDbGFzc109XCJ7IGFjdGl2ZTogaXNDb25maWd1cmF0aW9uUm91dGUkIHwgYXN5bmMgfVwiPkNvbmZpZ3VyYXRvcjwvbmF2PlxuICA8bmctY29udGFpbmVyICp2bExldD1cInByb2R1Y3RzJCB8IGFzeW5jIGFzIHByb2R1Y3RzXCI+XG4gICAgPG5hdiBjbGFzcz1cIm5hdi1pdGVtXCIgW25nQ2xhc3NdPVwieyBhY3RpdmU6IGlzQ2FydFJvdXRlJCB8IGFzeW5jIH1cIiAoY2xpY2spPVwibmF2aWdhdGVUb1Nob3BwaW5nQ2FydCgpXCI+XG4gICAgICBTaG9wcGluZyBDYXJ0ICh7eyBwcm9kdWN0cy5sZW5ndGggfX0pXG4gICAgPC9uYXY+XG5cbiAgICA8bmF2IGNsYXNzPVwibmF2LXBvcG92ZXItdG9nZ2xlIGFjdGl2ZVwiIChjbGljayk9XCJjYXJ0Py5vdmVybGF5UGFuZWw/LnRvZ2dsZSgkZXZlbnQpXCI+XG4gICAgICA8aSAqbmdJZj1cIiFjYXJ0Py5vdmVybGF5UGFuZWw/Lm92ZXJsYXlWaXNpYmxlXCIgY2xhc3M9XCJ2bC1pY29uIHZsLWljb24tY2hldnJvbi1kb3duIGljb24td2l0aC1tYXJnaW5cIj48L2k+XG4gICAgICA8aSAqbmdJZj1cImNhcnQ/Lm92ZXJsYXlQYW5lbD8ub3ZlcmxheVZpc2libGVcIiBjbGFzcz1cInZsLWljb24gdmwtaWNvbi1jaGV2cm9uLXVwIGljb24td2l0aC1tYXJnaW5cIj48L2k+XG4gICAgPC9uYXY+XG5cbiAgICA8dmwtaGVhZGVyLWNhcnQtb3ZlcmxheSAjY2FydCBbcHJvZHVjdHNdPVwicHJvZHVjdHNcIj48L3ZsLWhlYWRlci1jYXJ0LW92ZXJsYXk+XG4gIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJmbG93LWNvbnRyb2xzXCIgKnZsTGV0PVwib2JqZWN0RGV0YWlscyQgfCBhc3luYyBhcyBkZXRhaWxzXCI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc1F1b3RlTW9kZVwiPlxuICAgIDxzcGFuICpuZ0lmPVwiZGV0YWlscy5wcmljZUxpc3ROYW1lXCI+e3sgZGV0YWlscy5wcmljZUxpc3ROYW1lIH19PC9zcGFuPlxuICAgIDxzcGFuICpuZ0lmPVwiY29udGV4dFByb3BlcnRpZXMuU3RhcnREYXRlXCI+e3sgY29udGV4dFByb3BlcnRpZXMuU3RhcnREYXRlIHwgZGF0ZTogJ01NLmRkLnl5eXknIH19PC9zcGFuPlxuXG4gICAgPHNwYW4gY2xhc3M9XCJzbGFzaC1zZXBhcmF0b3JcIj48L3NwYW4+XG5cbiAgICA8c3Bhbj5NUlI6IDxzcGFuIGNsYXNzPVwiZm9udC1zZW1pYm9sZFwiPiQwLjAwPC9zcGFuPjwvc3Bhbj5cbiAgICA8c3Bhbj5OUlI6IDxzcGFuIGNsYXNzPVwiZm9udC1zZW1pYm9sZFwiPiQwLjAwPC9zcGFuPjwvc3Bhbj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPG5nLWNvbnRhaW5lciAqdmxMZXQ9XCJpc0NhcnRSb3V0ZSQgfCBhc3luYyBhcyBpc0NhcnRSb3V0ZVwiPlxuICAgIDxwLWJ1dHRvblxuICAgICAgc3R5bGVDbGFzcz1cInAtYnV0dG9uLW91dGxpbmVkXCJcbiAgICAgIGxhYmVsPVwiR2VuZXJhdGUgRG9jXCJcbiAgICAgIFtkaXNhYmxlZF09XCIhaXNDYXJ0Um91dGVcIlxuICAgICAgdG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tXCJcbiAgICAgIFtzaG93RGVsYXldPVwiMzAwXCJcbiAgICAgIFtwVG9vbHRpcF09XCJpc0NhcnRSb3V0ZSA/ICcnIDogZGlzYWJsZWRBY3Rpb25CdXR0b25Ub29sdGlwXCJcbiAgICA+PC9wLWJ1dHRvbj5cblxuICAgIDxwLWJ1dHRvblxuICAgICAgKnZsTGV0PVwiaXNTYXZlSW5Qcm9ncmVzcyQgfCBhc3luYyBhcyBpc1NhdmVJblByb2dyZXNzXCJcbiAgICAgIGNsYXNzPVwic2F2ZS1idXR0b25cIlxuICAgICAgc3R5bGVDbGFzcz1cInAtYnV0dG9uLW91dGxpbmVkXCJcbiAgICAgIFtsYWJlbF09XCJpc1NhdmVJblByb2dyZXNzID8gJ1NhdmluZycgOiAnU2F2ZSB0byBRdW90ZSdcIlxuICAgICAgKG9uQ2xpY2spPVwic2F2ZUJ1dHRvbkNsaWNrSGFuZGxlcigpXCJcbiAgICAgIFtsb2FkaW5nXT1cImlzU2F2ZUluUHJvZ3Jlc3NcIlxuICAgID48L3AtYnV0dG9uPlxuXG4gICAgPHAtYnV0dG9uXG4gICAgICAqdmxMZXQ9XCJpc1N1Ym1pdEluUHJvZ3Jlc3MkIHwgYXN5bmMgYXMgaXNTdWJtaXRJblByb2dyZXNzXCJcbiAgICAgIGNsYXNzPVwic3VibWl0LWJ1dHRvblwiXG4gICAgICBzdHlsZUNsYXNzPVwicC1idXR0b25cIlxuICAgICAgW2xhYmVsXT1cImlzU3VibWl0SW5Qcm9ncmVzcyA/ICdTdWJtaXR0aW5nJyA6ICdTdWJtaXQgRm9yIEFwcHJvdmFsJ1wiXG4gICAgICBbZGlzYWJsZWRdPVwiIWlzQ2FydFJvdXRlXCJcbiAgICAgIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiXG4gICAgICBbc2hvd0RlbGF5XT1cIjMwMFwiXG4gICAgICBbcFRvb2x0aXBdPVwiaXNDYXJ0Um91dGUgPyAnJyA6IGRpc2FibGVkQWN0aW9uQnV0dG9uVG9vbHRpcFwiXG4gICAgICAob25DbGljayk9XCJzdWJtaXRCdXR0b25DbGlja0hhbmRsZXIoKVwiXG4gICAgICBbbG9hZGluZ109XCJpc1N1Ym1pdEluUHJvZ3Jlc3NcIlxuICAgID48L3AtYnV0dG9uPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuIl19
@@ -9,19 +9,19 @@ import * as i5 from "@veloce/components";
9
9
  import * as i6 from "@angular/common";
10
10
  import * as i7 from "@angular/router";
11
11
  export class FlowComponent {
12
- constructor(routerService, context, flowService) {
12
+ constructor(routerService, quoteDraftService, flowService) {
13
13
  this.routerService = routerService;
14
- this.context = context;
14
+ this.quoteDraftService = quoteDraftService;
15
15
  this.flowService = flowService;
16
16
  this.isLoading$ = this.routerService.loading$;
17
- this.showHeader$ = this.routerService.route$.pipe(map(route => route.data.showHeader && !this.context.isStandalone));
17
+ this.showHeader$ = this.routerService.route$.pipe(map(route => route.data.showHeader && !this.quoteDraftService.isStandalone));
18
18
  this.flowService.initSubscriptions();
19
19
  }
20
20
  ngOnDestroy() {
21
21
  this.flowService.cleanup();
22
22
  }
23
23
  }
24
- FlowComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FlowComponent, deps: [{ token: i1.FlowRouterService }, { token: i2.ContextService }, { token: i3.FlowService }], target: i0.ɵɵFactoryTarget.Component });
24
+ FlowComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FlowComponent, deps: [{ token: i1.FlowRouterService }, { token: i2.QuoteDraftService }, { token: i3.FlowService }], target: i0.ɵɵFactoryTarget.Component });
25
25
  FlowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: FlowComponent, selector: "vl-flow", ngImport: i0, template: "<vl-flow-header *ngIf=\"showHeader$ | async\"></vl-flow-header>\n\n<div class=\"flow-content\">\n <div class=\"loading-overlay\" *ngIf=\"isLoading$ | async\">\n <vl-loader label=\"LOADING\"></vl-loader>\n </div>\n\n <router-outlet></router-outlet>\n</div>\n", styles: [":host{display:flex;flex-direction:column;height:100%}.flow-content{flex-grow:1;position:relative;overflow:hidden}.loading-overlay{position:absolute;height:100%;width:100%;left:0;right:0;top:0;bottom:0;background-color:#ffffff80;z-index:4}\n"], components: [{ type: i4.FlowHeaderComponent, selector: "vl-flow-header" }, { type: i5.LoaderComponent, selector: "vl-loader", inputs: ["label", "overlayVisible"] }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.RouterOutlet, selector: "router-outlet", outputs: ["activate", "deactivate"], exportAs: ["outlet"] }], pipes: { "async": i6.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
26
26
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FlowComponent, decorators: [{
27
27
  type: Component,
@@ -31,5 +31,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImpo
31
31
  styleUrls: ['./flow.component.scss'],
32
32
  changeDetection: ChangeDetectionStrategy.OnPush,
33
33
  }]
34
- }], ctorParameters: function () { return [{ type: i1.FlowRouterService }, { type: i2.ContextService }, { type: i3.FlowService }]; } });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvdy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9zcmMvZmxvdy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9zcmMvZmxvdy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRTlFLE9BQU8sRUFBRSxHQUFHLEVBQWMsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7OztBQVV2QyxNQUFNLE9BQU8sYUFBYTtJQUl4QixZQUNVLGFBQWdDLEVBQ2hDLE9BQXVCLEVBQ3ZCLFdBQXdCO1FBRnhCLGtCQUFhLEdBQWIsYUFBYSxDQUFtQjtRQUNoQyxZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUN2QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUVoQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDO1FBRTlDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUMvQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQ2xFLENBQUM7UUFFRixJQUFJLENBQUMsV0FBVyxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzdCLENBQUM7OzJHQXBCVSxhQUFhOytGQUFiLGFBQWEsK0NDWjFCLHlRQVNBOzRGREdhLGFBQWE7a0JBTnpCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFNBQVM7b0JBQ25CLFdBQVcsRUFBRSx1QkFBdUI7b0JBQ3BDLFNBQVMsRUFBRSxDQUFDLHVCQUF1QixDQUFDO29CQUNwQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDaEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRleHRTZXJ2aWNlIH0gZnJvbSAnQHZlbG9jZS9zZGsvY29yZSc7XG5pbXBvcnQgeyBtYXAsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZsb3dTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBGbG93Um91dGVyU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvZmxvdy1yb3V0ZXIuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZsLWZsb3cnLFxuICB0ZW1wbGF0ZVVybDogJy4vZmxvdy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Zsb3cuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEZsb3dDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwdWJsaWMgaXNMb2FkaW5nJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgcHVibGljIHNob3dIZWFkZXIkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcm91dGVyU2VydmljZTogRmxvd1JvdXRlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb250ZXh0OiBDb250ZXh0U2VydmljZSxcbiAgICBwcml2YXRlIGZsb3dTZXJ2aWNlOiBGbG93U2VydmljZSxcbiAgKSB7XG4gICAgdGhpcy5pc0xvYWRpbmckID0gdGhpcy5yb3V0ZXJTZXJ2aWNlLmxvYWRpbmckO1xuXG4gICAgdGhpcy5zaG93SGVhZGVyJCA9IHRoaXMucm91dGVyU2VydmljZS5yb3V0ZSQucGlwZShcbiAgICAgIG1hcChyb3V0ZSA9PiByb3V0ZS5kYXRhLnNob3dIZWFkZXIgJiYgIXRoaXMuY29udGV4dC5pc1N0YW5kYWxvbmUpLFxuICAgICk7XG5cbiAgICB0aGlzLmZsb3dTZXJ2aWNlLmluaXRTdWJzY3JpcHRpb25zKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmZsb3dTZXJ2aWNlLmNsZWFudXAoKTtcbiAgfVxufVxuIiwiPHZsLWZsb3ctaGVhZGVyICpuZ0lmPVwic2hvd0hlYWRlciQgfCBhc3luY1wiPjwvdmwtZmxvdy1oZWFkZXI+XG5cbjxkaXYgY2xhc3M9XCJmbG93LWNvbnRlbnRcIj5cbiAgPGRpdiBjbGFzcz1cImxvYWRpbmctb3ZlcmxheVwiICpuZ0lmPVwiaXNMb2FkaW5nJCB8IGFzeW5jXCI+XG4gICAgPHZsLWxvYWRlciBsYWJlbD1cIkxPQURJTkdcIj48L3ZsLWxvYWRlcj5cbiAgPC9kaXY+XG5cbiAgPHJvdXRlci1vdXRsZXQ+PC9yb3V0ZXItb3V0bGV0PlxuPC9kaXY+XG4iXX0=
34
+ }], ctorParameters: function () { return [{ type: i1.FlowRouterService }, { type: i2.QuoteDraftService }, { type: i3.FlowService }]; } });
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvdy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9zcmMvZmxvdy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9zcmMvZmxvdy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRTlFLE9BQU8sRUFBRSxHQUFHLEVBQWMsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7OztBQVV2QyxNQUFNLE9BQU8sYUFBYTtJQUl4QixZQUNVLGFBQWdDLEVBQ2hDLGlCQUFvQyxFQUNwQyxXQUF3QjtRQUZ4QixrQkFBYSxHQUFiLGFBQWEsQ0FBbUI7UUFDaEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUVoQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDO1FBRTlDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUMvQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsQ0FDNUUsQ0FBQztRQUVGLElBQUksQ0FBQyxXQUFXLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDN0IsQ0FBQzs7MkdBcEJVLGFBQWE7K0ZBQWIsYUFBYSwrQ0NaMUIseVFBU0E7NEZER2EsYUFBYTtrQkFOekIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsU0FBUztvQkFDbkIsV0FBVyxFQUFFLHVCQUF1QjtvQkFDcEMsU0FBUyxFQUFFLENBQUMsdUJBQXVCLENBQUM7b0JBQ3BDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUXVvdGVEcmFmdFNlcnZpY2UgfSBmcm9tICdAdmVsb2NlL3Nkay9jb3JlJztcbmltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRmxvd1NlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzJztcbmltcG9ydCB7IEZsb3dSb3V0ZXJTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9mbG93LXJvdXRlci5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmwtZmxvdycsXG4gIHRlbXBsYXRlVXJsOiAnLi9mbG93LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmxvdy5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRmxvd0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHB1YmxpYyBpc0xvYWRpbmckOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBwdWJsaWMgc2hvd0hlYWRlciQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByb3V0ZXJTZXJ2aWNlOiBGbG93Um91dGVyU2VydmljZSxcbiAgICBwcml2YXRlIHF1b3RlRHJhZnRTZXJ2aWNlOiBRdW90ZURyYWZ0U2VydmljZSxcbiAgICBwcml2YXRlIGZsb3dTZXJ2aWNlOiBGbG93U2VydmljZSxcbiAgKSB7XG4gICAgdGhpcy5pc0xvYWRpbmckID0gdGhpcy5yb3V0ZXJTZXJ2aWNlLmxvYWRpbmckO1xuXG4gICAgdGhpcy5zaG93SGVhZGVyJCA9IHRoaXMucm91dGVyU2VydmljZS5yb3V0ZSQucGlwZShcbiAgICAgIG1hcChyb3V0ZSA9PiByb3V0ZS5kYXRhLnNob3dIZWFkZXIgJiYgIXRoaXMucXVvdGVEcmFmdFNlcnZpY2UuaXNTdGFuZGFsb25lKSxcbiAgICApO1xuXG4gICAgdGhpcy5mbG93U2VydmljZS5pbml0U3Vic2NyaXB0aW9ucygpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5mbG93U2VydmljZS5jbGVhbnVwKCk7XG4gIH1cbn1cbiIsIjx2bC1mbG93LWhlYWRlciAqbmdJZj1cInNob3dIZWFkZXIkIHwgYXN5bmNcIj48L3ZsLWZsb3ctaGVhZGVyPlxuXG48ZGl2IGNsYXNzPVwiZmxvdy1jb250ZW50XCI+XG4gIDxkaXYgY2xhc3M9XCJsb2FkaW5nLW92ZXJsYXlcIiAqbmdJZj1cImlzTG9hZGluZyQgfCBhc3luY1wiPlxuICAgIDx2bC1sb2FkZXIgbGFiZWw9XCJMT0FESU5HXCI+PC92bC1sb2FkZXI+XG4gIDwvZGl2PlxuXG4gIDxyb3V0ZXItb3V0bGV0Pjwvcm91dGVyLW91dGxldD5cbjwvZGl2PlxuIl19
@@ -9,7 +9,7 @@ import { FlowHeaderModule } from './components/header/header.module';
9
9
  import { FlowRoutingModule } from './flow-routing.module';
10
10
  import { FlowComponent } from './flow.component';
11
11
  import { FlowService } from './services';
12
- import { FlowDialogService } from './services/fow-dialog.service';
12
+ import { FlowDialogService } from './services/flow-dialog.service';
13
13
  import * as i0 from "@angular/core";
14
14
  export class FlowModule {
15
15
  }
@@ -49,4 +49,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImpo
49
49
  providers: [FlowService, FlowDialogService],
50
50
  }]
51
51
  }] });
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvdy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9zcmMvZmxvdy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN4QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN6QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7QUFnQmxFLE1BQU0sT0FBTyxVQUFVOzt3R0FBVixVQUFVO3lHQUFWLFVBQVUsaUJBYk4sYUFBYSxhQUUxQixZQUFZO1FBQ1osaUJBQWlCO1FBQ2pCLFNBQVM7UUFDVCxjQUFjO1FBQ2QsWUFBWTtRQUNaLGdCQUFnQjtRQUNoQixnQkFBZ0I7UUFDaEIsYUFBYTt5R0FJSixVQUFVLGFBRlYsQ0FBQyxXQUFXLEVBQUUsaUJBQWlCLENBQUMsWUFWbEM7WUFDUCxZQUFZO1lBQ1osaUJBQWlCO1lBQ2pCLFNBQVM7WUFDVCxjQUFjO1lBQ2QsWUFBWTtZQUNaLGdCQUFnQjtZQUNoQixnQkFBZ0I7WUFDaEIsYUFBYTtTQUNkOzRGQUdVLFVBQVU7a0JBZHRCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsYUFBYSxDQUFDO29CQUM3QixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixpQkFBaUI7d0JBQ2pCLFNBQVM7d0JBQ1QsY0FBYzt3QkFDZCxZQUFZO3dCQUNaLGdCQUFnQjt3QkFDaEIsZ0JBQWdCO3dCQUNoQixhQUFhO3FCQUNkO29CQUNELFNBQVMsRUFBRSxDQUFDLFdBQVcsRUFBRSxpQkFBaUIsQ0FBQztpQkFDNUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFwaU1vZHVsZSB9IGZyb20gJ0B2ZWxvY2UvYXBpJztcbmltcG9ydCB7IExvYWRlck1vZHVsZSB9IGZyb20gJ0B2ZWxvY2UvY29tcG9uZW50cyc7XG5pbXBvcnQgeyBMYXVuY2hlck1vZHVsZSB9IGZyb20gJ0B2ZWxvY2Uvc2RrL2Ntcyc7XG5pbXBvcnQgeyBTZGtDb3JlTW9kdWxlIH0gZnJvbSAnQHZlbG9jZS9zZGsvY29yZSc7XG5pbXBvcnQgeyBGbG93RGlhbG9nTW9kdWxlIH0gZnJvbSAnLi9jb21wb25lbnRzL2RpYWxvZy9kaWFsb2cubW9kdWxlJztcbmltcG9ydCB7IEZsb3dIZWFkZXJNb2R1bGUgfSBmcm9tICcuL2NvbXBvbmVudHMvaGVhZGVyL2hlYWRlci5tb2R1bGUnO1xuaW1wb3J0IHsgRmxvd1JvdXRpbmdNb2R1bGUgfSBmcm9tICcuL2Zsb3ctcm91dGluZy5tb2R1bGUnO1xuaW1wb3J0IHsgRmxvd0NvbXBvbmVudCB9IGZyb20gJy4vZmxvdy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmxvd1NlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzJztcbmltcG9ydCB7IEZsb3dEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9mb3ctZGlhbG9nLnNlcnZpY2UnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtGbG93Q29tcG9uZW50XSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGbG93Um91dGluZ01vZHVsZSxcbiAgICBBcGlNb2R1bGUsXG4gICAgTGF1bmNoZXJNb2R1bGUsXG4gICAgTG9hZGVyTW9kdWxlLFxuICAgIEZsb3dIZWFkZXJNb2R1bGUsXG4gICAgRmxvd0RpYWxvZ01vZHVsZSxcbiAgICBTZGtDb3JlTW9kdWxlLFxuICBdLFxuICBwcm92aWRlcnM6IFtGbG93U2VydmljZSwgRmxvd0RpYWxvZ1NlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBGbG93TW9kdWxlIHt9XG4iXX0=
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvdy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9zcmMvZmxvdy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN4QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN6QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7QUFnQm5FLE1BQU0sT0FBTyxVQUFVOzt3R0FBVixVQUFVO3lHQUFWLFVBQVUsaUJBYk4sYUFBYSxhQUUxQixZQUFZO1FBQ1osaUJBQWlCO1FBQ2pCLFNBQVM7UUFDVCxjQUFjO1FBQ2QsWUFBWTtRQUNaLGdCQUFnQjtRQUNoQixnQkFBZ0I7UUFDaEIsYUFBYTt5R0FJSixVQUFVLGFBRlYsQ0FBQyxXQUFXLEVBQUUsaUJBQWlCLENBQUMsWUFWbEM7WUFDUCxZQUFZO1lBQ1osaUJBQWlCO1lBQ2pCLFNBQVM7WUFDVCxjQUFjO1lBQ2QsWUFBWTtZQUNaLGdCQUFnQjtZQUNoQixnQkFBZ0I7WUFDaEIsYUFBYTtTQUNkOzRGQUdVLFVBQVU7a0JBZHRCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsYUFBYSxDQUFDO29CQUM3QixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixpQkFBaUI7d0JBQ2pCLFNBQVM7d0JBQ1QsY0FBYzt3QkFDZCxZQUFZO3dCQUNaLGdCQUFnQjt3QkFDaEIsZ0JBQWdCO3dCQUNoQixhQUFhO3FCQUNkO29CQUNELFNBQVMsRUFBRSxDQUFDLFdBQVcsRUFBRSxpQkFBaUIsQ0FBQztpQkFDNUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFwaU1vZHVsZSB9IGZyb20gJ0B2ZWxvY2UvYXBpJztcbmltcG9ydCB7IExvYWRlck1vZHVsZSB9IGZyb20gJ0B2ZWxvY2UvY29tcG9uZW50cyc7XG5pbXBvcnQgeyBMYXVuY2hlck1vZHVsZSB9IGZyb20gJ0B2ZWxvY2Uvc2RrL2Ntcyc7XG5pbXBvcnQgeyBTZGtDb3JlTW9kdWxlIH0gZnJvbSAnQHZlbG9jZS9zZGsvY29yZSc7XG5pbXBvcnQgeyBGbG93RGlhbG9nTW9kdWxlIH0gZnJvbSAnLi9jb21wb25lbnRzL2RpYWxvZy9kaWFsb2cubW9kdWxlJztcbmltcG9ydCB7IEZsb3dIZWFkZXJNb2R1bGUgfSBmcm9tICcuL2NvbXBvbmVudHMvaGVhZGVyL2hlYWRlci5tb2R1bGUnO1xuaW1wb3J0IHsgRmxvd1JvdXRpbmdNb2R1bGUgfSBmcm9tICcuL2Zsb3ctcm91dGluZy5tb2R1bGUnO1xuaW1wb3J0IHsgRmxvd0NvbXBvbmVudCB9IGZyb20gJy4vZmxvdy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmxvd1NlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzJztcbmltcG9ydCB7IEZsb3dEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9mbG93LWRpYWxvZy5zZXJ2aWNlJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbRmxvd0NvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRmxvd1JvdXRpbmdNb2R1bGUsXG4gICAgQXBpTW9kdWxlLFxuICAgIExhdW5jaGVyTW9kdWxlLFxuICAgIExvYWRlck1vZHVsZSxcbiAgICBGbG93SGVhZGVyTW9kdWxlLFxuICAgIEZsb3dEaWFsb2dNb2R1bGUsXG4gICAgU2RrQ29yZU1vZHVsZSxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbRmxvd1NlcnZpY2UsIEZsb3dEaWFsb2dTZXJ2aWNlXSxcbn0pXG5leHBvcnQgY2xhc3MgRmxvd01vZHVsZSB7fVxuIl19
@@ -2,16 +2,17 @@ import { Injectable } from '@angular/core';
2
2
  import { map, of, tap } from 'rxjs';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "@veloce/sdk/core";
5
- import * as i2 from "../services/fow-dialog.service";
5
+ import * as i2 from "../services/flow-dialog.service";
6
6
  export class ProductUnloadGuard {
7
- constructor(contextService, configurationService, flowDialogService) {
7
+ constructor(contextService, quoteDraftService, configurationService, flowDialogService) {
8
8
  this.contextService = contextService;
9
+ this.quoteDraftService = quoteDraftService;
9
10
  this.configurationService = configurationService;
10
11
  this.flowDialogService = flowDialogService;
11
12
  }
12
13
  canDeactivate() {
13
14
  let observable = of(true);
14
- if (!this.contextService.isStandalone && this.configurationService.hasUnsavedChanges) {
15
+ if (!this.quoteDraftService.isStandalone && this.configurationService.hasUnsavedChanges) {
15
16
  observable = this.flowDialogService.showUnsavedChangesDialog().pipe(map(confirmed => !confirmed));
16
17
  }
17
18
  return observable.pipe(tap(unload => {
@@ -22,9 +23,9 @@ export class ProductUnloadGuard {
22
23
  }));
23
24
  }
24
25
  }
25
- ProductUnloadGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: ProductUnloadGuard, deps: [{ token: i1.ContextService }, { token: i1.ConfigurationService }, { token: i2.FlowDialogService }], target: i0.ɵɵFactoryTarget.Injectable });
26
+ ProductUnloadGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: ProductUnloadGuard, deps: [{ token: i1.ContextService }, { token: i1.QuoteDraftService }, { token: i1.ConfigurationService }, { token: i2.FlowDialogService }], target: i0.ɵɵFactoryTarget.Injectable });
26
27
  ProductUnloadGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: ProductUnloadGuard });
27
28
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: ProductUnloadGuard, decorators: [{
28
29
  type: Injectable
29
- }], ctorParameters: function () { return [{ type: i1.ContextService }, { type: i1.ConfigurationService }, { type: i2.FlowDialogService }]; } });
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC11bmxvYWQuZ3VhcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9zcmMvZ3VhcmRzL3Byb2R1Y3QtdW5sb2FkLmd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7O0FBSXBDLE1BQU0sT0FBTyxrQkFBa0I7SUFDN0IsWUFDVSxjQUE4QixFQUM5QixvQkFBMEMsRUFDMUMsaUJBQW9DO1FBRnBDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5Qix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBQzFDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7SUFDM0MsQ0FBQztJQUVKLGFBQWE7UUFDWCxJQUFJLFVBQVUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxpQkFBaUIsRUFBRTtZQUNwRixVQUFVLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLHdCQUF3QixFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztTQUNuRztRQUVELE9BQU8sVUFBVSxDQUFDLElBQUksQ0FDcEIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ1gsSUFBSSxNQUFNLEVBQUU7Z0JBQ1YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsRUFBRSxVQUFVLEVBQUUsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQzVGLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQzthQUNuQztRQUNILENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDOztnSEF0QlUsa0JBQWtCO29IQUFsQixrQkFBa0I7NEZBQWxCLGtCQUFrQjtrQkFEOUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENhbkRlYWN0aXZhdGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQ29uZmlndXJhdGlvblNlcnZpY2UsIENvbnRleHRTZXJ2aWNlIH0gZnJvbSAnQHZlbG9jZS9zZGsvY29yZSc7XG5pbXBvcnQgeyBtYXAsIG9mLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZsb3dEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZm93LWRpYWxvZy5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFByb2R1Y3RVbmxvYWRHdWFyZCBpbXBsZW1lbnRzIENhbkRlYWN0aXZhdGU8YW55PiB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY29udGV4dFNlcnZpY2U6IENvbnRleHRTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29uZmlndXJhdGlvblNlcnZpY2U6IENvbmZpZ3VyYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgZmxvd0RpYWxvZ1NlcnZpY2U6IEZsb3dEaWFsb2dTZXJ2aWNlLFxuICApIHt9XG5cbiAgY2FuRGVhY3RpdmF0ZSgpIHtcbiAgICBsZXQgb2JzZXJ2YWJsZSA9IG9mKHRydWUpO1xuXG4gICAgaWYgKCF0aGlzLmNvbnRleHRTZXJ2aWNlLmlzU3RhbmRhbG9uZSAmJiB0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlLmhhc1Vuc2F2ZWRDaGFuZ2VzKSB7XG4gICAgICBvYnNlcnZhYmxlID0gdGhpcy5mbG93RGlhbG9nU2VydmljZS5zaG93VW5zYXZlZENoYW5nZXNEaWFsb2coKS5waXBlKG1hcChjb25maXJtZWQgPT4gIWNvbmZpcm1lZCkpO1xuICAgIH1cblxuICAgIHJldHVybiBvYnNlcnZhYmxlLnBpcGUoXG4gICAgICB0YXAodW5sb2FkID0+IHtcbiAgICAgICAgaWYgKHVubG9hZCkge1xuICAgICAgICAgIHRoaXMuY29udGV4dFNlcnZpY2UudXBkYXRlKHsgcHJvcGVydGllczogeyBwcm9kdWN0SWQ6IHVuZGVmaW5lZCwgbGluZUl0ZW1JZDogdW5kZWZpbmVkIH0gfSk7XG4gICAgICAgICAgdGhpcy5jb25maWd1cmF0aW9uU2VydmljZS5yZXNldCgpO1xuICAgICAgICB9XG4gICAgICB9KSxcbiAgICApO1xuICB9XG59XG4iXX0=
30
+ }], ctorParameters: function () { return [{ type: i1.ContextService }, { type: i1.QuoteDraftService }, { type: i1.ConfigurationService }, { type: i2.FlowDialogService }]; } });
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC11bmxvYWQuZ3VhcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9zcmMvZ3VhcmRzL3Byb2R1Y3QtdW5sb2FkLmd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7O0FBSXBDLE1BQU0sT0FBTyxrQkFBa0I7SUFDN0IsWUFDVSxjQUE4QixFQUM5QixpQkFBb0MsRUFDcEMsb0JBQTBDLEVBQzFDLGlCQUFvQztRQUhwQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBQzFDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7SUFDM0MsQ0FBQztJQUVKLGFBQWE7UUFDWCxJQUFJLFVBQVUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLG9CQUFvQixDQUFDLGlCQUFpQixFQUFFO1lBQ3ZGLFVBQVUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsd0JBQXdCLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1NBQ25HO1FBRUQsT0FBTyxVQUFVLENBQUMsSUFBSSxDQUNwQixHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDWCxJQUFJLE1BQU0sRUFBRTtnQkFDVixJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxFQUFFLFVBQVUsRUFBRSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDNUYsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEtBQUssRUFBRSxDQUFDO2FBQ25DO1FBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7O2dIQXZCVSxrQkFBa0I7b0hBQWxCLGtCQUFrQjs0RkFBbEIsa0JBQWtCO2tCQUQ5QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2FuRGVhY3RpdmF0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBDb25maWd1cmF0aW9uU2VydmljZSwgQ29udGV4dFNlcnZpY2UsIFF1b3RlRHJhZnRTZXJ2aWNlIH0gZnJvbSAnQHZlbG9jZS9zZGsvY29yZSc7XG5pbXBvcnQgeyBtYXAsIG9mLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZsb3dEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZmxvdy1kaWFsb2cuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBQcm9kdWN0VW5sb2FkR3VhcmQgaW1wbGVtZW50cyBDYW5EZWFjdGl2YXRlPGFueT4ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNvbnRleHRTZXJ2aWNlOiBDb250ZXh0U2VydmljZSxcbiAgICBwcml2YXRlIHF1b3RlRHJhZnRTZXJ2aWNlOiBRdW90ZURyYWZ0U2VydmljZSxcbiAgICBwcml2YXRlIGNvbmZpZ3VyYXRpb25TZXJ2aWNlOiBDb25maWd1cmF0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIGZsb3dEaWFsb2dTZXJ2aWNlOiBGbG93RGlhbG9nU2VydmljZSxcbiAgKSB7fVxuXG4gIGNhbkRlYWN0aXZhdGUoKSB7XG4gICAgbGV0IG9ic2VydmFibGUgPSBvZih0cnVlKTtcblxuICAgIGlmICghdGhpcy5xdW90ZURyYWZ0U2VydmljZS5pc1N0YW5kYWxvbmUgJiYgdGhpcy5jb25maWd1cmF0aW9uU2VydmljZS5oYXNVbnNhdmVkQ2hhbmdlcykge1xuICAgICAgb2JzZXJ2YWJsZSA9IHRoaXMuZmxvd0RpYWxvZ1NlcnZpY2Uuc2hvd1Vuc2F2ZWRDaGFuZ2VzRGlhbG9nKCkucGlwZShtYXAoY29uZmlybWVkID0+ICFjb25maXJtZWQpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gb2JzZXJ2YWJsZS5waXBlKFxuICAgICAgdGFwKHVubG9hZCA9PiB7XG4gICAgICAgIGlmICh1bmxvYWQpIHtcbiAgICAgICAgICB0aGlzLmNvbnRleHRTZXJ2aWNlLnVwZGF0ZSh7IHByb3BlcnRpZXM6IHsgcHJvZHVjdElkOiB1bmRlZmluZWQsIGxpbmVJdGVtSWQ6IHVuZGVmaW5lZCB9IH0pO1xuICAgICAgICAgIHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2UucmVzZXQoKTtcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -11,7 +11,7 @@ import * as i4 from "@veloce/sdk/cms";
11
11
  import * as i5 from "@angular/common";
12
12
  export class CatalogComponent {
13
13
  constructor(templatesApi, contextService, cdr, toastService, customizationService) {
14
- var _a, _b, _c;
14
+ var _a;
15
15
  this.templatesApi = templatesApi;
16
16
  this.contextService = contextService;
17
17
  this.cdr = cdr;
@@ -21,7 +21,7 @@ export class CatalogComponent {
21
21
  this.state$ = new BehaviorSubject({ loading: true, failure: false });
22
22
  this.templateApiName = '';
23
23
  this.destroyed$ = new Subject();
24
- this.templateApiName = (_c = (_b = (_a = this.contextService.resolve()) === null || _a === void 0 ? void 0 : _a.properties) === null || _b === void 0 ? void 0 : _b.catalogTemplateApiName) !== null && _c !== void 0 ? _c : '';
24
+ this.templateApiName = (_a = this.contextService.resolve().properties.catalogTemplateApiName) !== null && _a !== void 0 ? _a : '';
25
25
  }
26
26
  ngOnInit() {
27
27
  this.generateUIDefinition$()
@@ -114,4 +114,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImpo
114
114
  type: Inject,
115
115
  args: [FLOW_CUSTOMIZATION]
116
116
  }] }]; } });
117
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9zcmMvcGFnZXMvY2F0YWxvZy9jYXRhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3NyYy9wYWdlcy9jYXRhbG9nL2NhdGFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsTUFBTSxFQUdOLFFBQVEsR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQWdCLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzdELE9BQU8sRUFJTCx1QkFBdUIsRUFDdkIsY0FBYyxHQUNmLE1BQU0sY0FBYyxDQUFDO0FBRXRCLE9BQU8sRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVHLE9BQU8sRUFBcUIsa0JBQWtCLEVBQUUsTUFBTSxhQUFhLENBQUM7Ozs7Ozs7QUFhcEUsTUFBTSxPQUFPLGdCQUFnQjtJQU8zQixZQUNVLFlBQW1DLEVBQ25DLGNBQThCLEVBQzlCLEdBQXNCLEVBQ3RCLFlBQTBCLEVBQ2Msb0JBQXdDOztRQUpoRixpQkFBWSxHQUFaLFlBQVksQ0FBdUI7UUFDbkMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQ2MseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFvQjtRQVhuRixpQkFBWSxHQUFrQixTQUFTLENBQUM7UUFDeEMsV0FBTSxHQUFHLElBQUksZUFBZSxDQUFRLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxF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YW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEluamVjdCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVJVGVtcGxhdGVzQXBpU2VydmljZSB9IGZyb20gJ0B2ZWxvY2UvYXBpJztcbmltcG9ydCB7IFRvYXN0U2VydmljZSwgVG9hc3RUeXBlIH0gZnJvbSAnQHZlbG9jZS9jb21wb25lbnRzJztcbmltcG9ydCB7XG4gIENvbXBvbmVudEF0dGFjaG1lbnRzLFxuICBUZW1wbGF0ZUNvbXBvbmVudCxcbiAgVUlUZW1wbGF0ZSxcbiAgVUlUZW1wbGF0ZUNvbXBvbmVudFR5cGUsXG4gIFVJVGVtcGxhdGVUeXBlLFxufSBmcm9tICdAdmVsb2NlL2NvcmUnO1xuaW1wb3J0IHsgQ29udGV4dFNlcnZpY2UsIFVJRGVmaW5pdGlvbiB9IGZyb20gJ0B2ZWxvY2Uvc2RrL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjYXRjaEVycm9yLCBtYXAsIE9ic2VydmFibGUsIG9mLCBTdWJqZWN0LCBzd2l0Y2hNYXAsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGbG93Q3VzdG9taXphdGlvbiwgRkxPV19DVVNUT01JWkFUSU9OIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuXG5pbnRlcmZhY2UgU3RhdGUge1xuICBsb2FkaW5nOiBib29sZWFuO1xuICBmYWlsdXJlOiBib29sZWFuO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2bC1mbG93LWNhdGFsb2cnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2F0YWxvZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NhdGFsb2cuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIENhdGFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHB1YmxpYyB1aURlZmluaXRpb24/OiBVSURlZmluaXRpb24gPSB1bmRlZmluZWQ7XG4gIHB1YmxpYyBzdGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFN0YXRlPih7IGxvYWRpbmc6IHRydWUsIGZhaWx1cmU6IGZhbHNlIH0pO1xuXG4gIHByaXZhdGUgdGVtcGxhdGVBcGlOYW1lID0gJyc7XG4gIHByaXZhdGUgZGVzdHJveWVkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB0ZW1wbGF0ZXNBcGk6IFVJVGVtcGxhdGVzQXBpU2VydmljZSxcbiAgICBwcml2YXRlIGNvbnRleHRTZXJ2aWNlOiBDb250ZXh0U2VydmljZSxcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSB0b2FzdFNlcnZpY2U6IFRvYXN0U2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KEZMT1dfQ1VTVE9NSVpBVElPTikgcHJpdmF0ZSBjdXN0b21pemF0aW9uU2VydmljZT86IEZsb3dDdXN0b21pemF0aW9uLFxuICApIHtcbiAgICB0aGlzLnRlbXBsYXRlQXBpTmFtZSA9IHRoaXMuY29udGV4dFNlcnZpY2UucmVzb2x2ZSgpPy5wcm9wZXJ0aWVzPy5jYXRhbG9nVGVtcGxhdGVBcGlOYW1lID8/ICcnO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5nZW5lcmF0ZVVJRGVmaW5pdGlvbiQoKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCh1aURlZiA9PiB7XG4gICAgICAgICAgaWYgKCF1aURlZikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb21wb25lbnQgd2l0aCBuYW1lICcke3RoaXMudGVtcGxhdGVBcGlOYW1lfScgbm90IGZvdW5kLmApO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHRoaXMudWlEZWZpbml0aW9uID0gdWlEZWY7XG4gICAgICAgICAgdGhpcy5zdGF0ZSQubmV4dCh7IGxvYWRpbmc6IGZhbHNlLCBmYWlsdXJlOiBmYWxzZSB9KTtcbiAgICAgICAgfSksXG4gICAgICAgIGNhdGNoRXJyb3IoZXJyID0+IHtcbiAgICAgICAgICBjb25zdCBtZXNzYWdlID0gJ0ZhaWxlZCB0byByZXNvbHZlIENhdGFsb2cgY29tcG9uZW50LiAnICsgKGVyci5tZXNzYWdlID8/ICcnKTtcbiAgICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5hZGQoeyBzZXZlcml0eTogVG9hc3RUeXBlLmVycm9yLCBzdW1tYXJ5OiBtZXNzYWdlLCBzdGlja3k6IHRydWUgfSk7XG5cbiAgICAgICAgICB0aGlzLnVpRGVmaW5pdGlvbiA9IHVuZGVmaW5lZDtcbiAgICAgICAgICB0aGlzLnN0YXRlJC5uZXh0KHsgbG9hZGluZzogZmFsc2UsIGZhaWx1cmU6IHRydWUgfSk7XG4gICAgICAgICAgcmV0dXJuIG9mKCk7XG4gICAgICAgIH0pLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveWVkJC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95ZWQkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwcml2YXRlIGdldFRlbXBsYXRlUm9vdENvbXBvbmVudCQodGVtcGxhdGU6IFVJVGVtcGxhdGUpOiBPYnNlcnZhYmxlPFRlbXBsYXRlQ29tcG9uZW50IHwgdW5kZWZpbmVkPiB7XG4gICAgcmV0dXJuIHRoaXMudGVtcGxhdGVzQXBpXG4gICAgICAuZmV0Y2hDb21wb25lbnRzJCh0ZW1wbGF0ZS5pZClcbiAgICAgIC5waXBlKG1hcChjb21wb25lbnRzID0+IGNvbXBvbmVudHMuZmluZChjID0+IGMudHlwZSA9PT0gVUlUZW1wbGF0ZUNvbXBvbmVudFR5cGUuUk9PVCkgPz8gdW5kZWZpbmVkKSk7XG4gIH1cblxuICBwcml2YXRlIGdldExvY2FsQ2F0YWxvZ0NvbXBvbmVudE1ldGEkKCk6IE9ic2VydmFibGU8Q29tcG9uZW50QXR0YWNobWVudHMgfCB1bmRlZmluZWQ+IHtcbiAgICBpZiAoIXRoaXMuY3VzdG9taXphdGlvblNlcnZpY2U/LmdldENhdGFsb2dDb21wb25lbnQpIHtcbiAgICAgIHJldHVybiBvZih1bmRlZmluZWQpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmN1c3RvbWl6YXRpb25TZXJ2aWNlPy5nZXRDYXRhbG9nQ29tcG9uZW50KHRoaXMudGVtcGxhdGVBcGlOYW1lKS5waXBlKFxuICAgICAgbWFwKGNvbXBvbmVudCA9PiB7XG4gICAgICAgIGlmICghY29tcG9uZW50KSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIDxDb21wb25lbnRBdHRhY2htZW50cz57XG4gICAgICAgICAgaHRtbDogY29tcG9uZW50Lmh0bWwsXG4gICAgICAgICAgY3NzOiBjb21wb25lbnQuY3NzLFxuICAgICAgICAgIGpzOiBjb21wb25lbnQuanMsXG4gICAgICAgICAganNvbjogY29tcG9uZW50Lmpzb24sXG4gICAgICAgIH07XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDYXRhbG9nQ29tcG9uZW50TWV0YSQoKSB7XG4gICAgcmV0dXJuIHRoaXMudGVtcGxhdGVzQXBpLmZldGNoVGVtcGxhdGVzJCgpLnBpcGUoXG4gICAgICBtYXA8VUlUZW1wbGF0ZVtdLCBVSVRlbXBsYXRlIHwgdW5kZWZpbmVkPih0ZW1wbGF0ZXMgPT5cbiAgICAgICAgdGVtcGxhdGVzLmZpbmQodGVtcGxhdGUgPT4gdGVtcGxhdGUudHlwZSA9PT0gVUlUZW1wbGF0ZVR5cGUuQ0FUQUxPRyAmJiB0ZW1wbGF0ZS5uYW1lID09PSB0aGlzLnRlbXBsYXRlQXBpTmFtZSksXG4gICAgICApLFxuICAgICAgc3dpdGNoTWFwKHRlbXBsYXRlID0+ICh0ZW1wbGF0ZSA/IHRoaXMuZ2V0VGVtcGxhdGVSb290Q29tcG9uZW50JCh0ZW1wbGF0ZSkgOiBvZih1bmRlZmluZWQpKSksXG4gICAgICBzd2l0Y2hNYXAoY29tcG9uZW50ID0+XG4gICAgICAgIGNvbXBvbmVudCA/IHRoaXMudGVtcGxhdGVzQXBpLmZldGNoQ29tcG9uZW50QXR0YWNobWVudHMkKGNvbXBvbmVudC51aVRlbXBsYXRlSWQsIGNvbXBvbmVudCkgOiBvZih1bmRlZmluZWQpLFxuICAgICAgKSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBnZW5lcmF0ZVVJRGVmaW5pdGlvbiQoKTogT2JzZXJ2YWJsZTxVSURlZmluaXRpb24gfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gb2YodW5kZWZpbmVkKS5waXBlKFxuICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLnRlbXBsYXRlQXBpTmFtZSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkZsb3cgUXVlcnkgcGFyYW1ldGVyICdjYXRhbG9nVGVtcGxhdGVBcGlOYW1lJyBpcyBtaXNzaW5nLlwiKTtcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5nZXRMb2NhbENhdGFsb2dDb21wb25lbnRNZXRhJCgpKSxcbiAgICAgIHN3aXRjaE1hcChtZXRhID0+IChtZXRhID8gb2YobWV0YSkgOiB0aGlzLmdldENhdGFsb2dDb21wb25lbnRNZXRhJCgpKSksXG4gICAgICBtYXAobWV0YSA9PiB7XG4gICAgICAgIGlmICghbWV0YSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHVpRGVmOiBVSURlZmluaXRpb24gPSB7XG4gICAgICAgICAgbmFtZTogJycsXG4gICAgICAgICAgY3JlYXRlZFRpbWVzdGFtcDogMCxcbiAgICAgICAgICBwcmltYXJ5OiB0cnVlLFxuICAgICAgICAgIHR5cGU6ICdERUZBVUxUJyxcbiAgICAgICAgICB2ZXJzaW9uOiAyLFxuICAgICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGNoaWxkcmVuOiBbXSxcbiAgICAgICAgICAgICAgdGVtcGxhdGU6IG1ldGEuaHRtbCAmJiBidG9hKG1ldGEuaHRtbCksXG4gICAgICAgICAgICAgIHNjcmlwdDogbWV0YS5qcyAmJiBidG9hKG1ldGEuanMpLFxuICAgICAgICAgICAgICBzdHlsZXM6IG1ldGEuY3NzICYmIGJ0b2EobWV0YS5jc3MpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiB1aURlZjtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJzdGF0ZSQgfCBhc3luYyBhcyBzdGF0ZVwiPlxuICA8dmwtbG9hZGVyICpuZ0lmPVwic3RhdGUubG9hZGluZzsgZWxzZSBjb250ZW50XCIgW2xhYmVsXT1cIidMb2FkaW5nIFVJJ1wiPjwvdmwtbG9hZGVyPlxuXG4gIDxuZy10ZW1wbGF0ZSAjY29udGVudD5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXN0YXRlLmZhaWx1cmVcIj5cbiAgICAgIDx2bC1jbXMtcHJldmlldyBbdWlEZWZpbml0aW9uXT1cInVpRGVmaW5pdGlvblwiPjwvdmwtY21zLXByZXZpZXc+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctdGVtcGxhdGU+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
117
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9zcmMvcGFnZXMvY2F0YWxvZy9jYXRhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3NyYy9wYWdlcy9jYXRhbG9nL2NhdGFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsTUFBTSxFQUdOLFFBQVEsR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQWdCLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzdELE9BQU8sRUFJTCx1QkFBdUIsRUFDdkIsY0FBYyxHQUNmLE1BQU0sY0FBYyxDQUFDO0FBRXRCLE9BQU8sRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVHLE9BQU8sRUFBcUIsa0JBQWtCLEVBQUUsTUFBTSxhQUFhLENBQUM7Ozs7Ozs7QUFhcEUsTUFBTSxPQUFPLGdCQUFnQjtJQU8zQixZQUNVLFlBQW1DLEVBQ25DLGNBQThCLEVBQzlCLEdBQXNCLEVBQ3RCLFlBQTBCLEVBQ2Msb0JBQXdDOztRQUpoRixpQkFBWSxHQUFaLFlBQVksQ0FBdUI7UUFDbkMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQ2MseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFvQjtRQVhuRixpQkFBWSxHQUFrQixTQUFTLENBQUM7UUFDeEMsV0FBTSxHQUFHLElBQUksZUFBZSxDQUFRLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxF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QUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUMsQ0FBQyxFQUN0RSxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDVCxJQUFJLENBQUMsSUFBSSxFQUFFO2dCQUNULE9BQU87YUFDUjtZQUVELE1BQU0sS0FBSyxHQUFpQjtnQkFDMUIsSUFBSSxFQUFFLEVBQUU7Z0JBQ1IsZ0JBQWdCLEVBQUUsQ0FBQztnQkFDbkIsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsT0FBTyxFQUFFLENBQUM7Z0JBQ1YsUUFBUSxFQUFFO29CQUNSO3dCQUNFLFFBQVEsRUFBRSxFQUFFO3dCQUNaLFFBQVEsRUFBRSxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO3dCQUN0QyxNQUFNLEVBQUUsSUFBSSxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQzt3QkFDaEMsTUFBTSxFQUFFLElBQUksQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7cUJBQ25DO2lCQUNGO2FBQ0YsQ0FBQztZQUVGLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7OzhHQXRIVSxnQkFBZ0Isa0pBWUwsa0JBQWtCO2tHQVo3QixnQkFBZ0IsdURDakM3Qix3VkFTQTs0RkR3QmEsZ0JBQWdCO2tCQU41QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxpQkFBaUI7b0JBQzNCLFdBQVcsRUFBRSwwQkFBMEI7b0JBQ3ZDLFNBQVMsRUFBRSxDQUFDLDBCQUEwQixDQUFDO29CQUN2QyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDaEQ7OzBCQWFJLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEluamVjdCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVJVGVtcGxhdGVzQXBpU2VydmljZSB9IGZyb20gJ0B2ZWxvY2UvYXBpJztcbmltcG9ydCB7IFRvYXN0U2VydmljZSwgVG9hc3RUeXBlIH0gZnJvbSAnQHZlbG9jZS9jb21wb25lbnRzJztcbmltcG9ydCB7XG4gIENvbXBvbmVudEF0dGFjaG1lbnRzLFxuICBUZW1wbGF0ZUNvbXBvbmVudCxcbiAgVUlUZW1wbGF0ZSxcbiAgVUlUZW1wbGF0ZUNvbXBvbmVudFR5cGUsXG4gIFVJVGVtcGxhdGVUeXBlLFxufSBmcm9tICdAdmVsb2NlL2NvcmUnO1xuaW1wb3J0IHsgQ29udGV4dFNlcnZpY2UsIFVJRGVmaW5pdGlvbiB9IGZyb20gJ0B2ZWxvY2Uvc2RrL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjYXRjaEVycm9yLCBtYXAsIE9ic2VydmFibGUsIG9mLCBTdWJqZWN0LCBzd2l0Y2hNYXAsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGbG93Q3VzdG9taXphdGlvbiwgRkxPV19DVVNUT01JWkFUSU9OIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuXG5pbnRlcmZhY2UgU3RhdGUge1xuICBsb2FkaW5nOiBib29sZWFuO1xuICBmYWlsdXJlOiBib29sZWFuO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2bC1mbG93LWNhdGFsb2cnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2F0YWxvZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NhdGFsb2cuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIENhdGFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHB1YmxpYyB1aURlZmluaXRpb24/OiBVSURlZmluaXRpb24gPSB1bmRlZmluZWQ7XG4gIHB1YmxpYyBzdGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFN0YXRlPih7IGxvYWRpbmc6IHRydWUsIGZhaWx1cmU6IGZhbHNlIH0pO1xuXG4gIHByaXZhdGUgdGVtcGxhdGVBcGlOYW1lID0gJyc7XG4gIHByaXZhdGUgZGVzdHJveWVkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB0ZW1wbGF0ZXNBcGk6IFVJVGVtcGxhdGVzQXBpU2VydmljZSxcbiAgICBwcml2YXRlIGNvbnRleHRTZXJ2aWNlOiBDb250ZXh0U2VydmljZSxcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSB0b2FzdFNlcnZpY2U6IFRvYXN0U2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KEZMT1dfQ1VTVE9NSVpBVElPTikgcHJpdmF0ZSBjdXN0b21pemF0aW9uU2VydmljZT86IEZsb3dDdXN0b21pemF0aW9uLFxuICApIHtcbiAgICB0aGlzLnRlbXBsYXRlQXBpTmFtZSA9IHRoaXMuY29udGV4dFNlcnZpY2UucmVzb2x2ZSgpLnByb3BlcnRpZXMuY2F0YWxvZ1RlbXBsYXRlQXBpTmFtZSA/PyAnJztcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZ2VuZXJhdGVVSURlZmluaXRpb24kKClcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAodWlEZWYgPT4ge1xuICAgICAgICAgIGlmICghdWlEZWYpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQ29tcG9uZW50IHdpdGggbmFtZSAnJHt0aGlzLnRlbXBsYXRlQXBpTmFtZX0nIG5vdCBmb3VuZC5gKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0aGlzLnVpRGVmaW5pdGlvbiA9IHVpRGVmO1xuICAgICAgICAgIHRoaXMuc3RhdGUkLm5leHQoeyBsb2FkaW5nOiBmYWxzZSwgZmFpbHVyZTogZmFsc2UgfSk7XG4gICAgICAgIH0pLFxuICAgICAgICBjYXRjaEVycm9yKGVyciA9PiB7XG4gICAgICAgICAgY29uc3QgbWVzc2FnZSA9ICdGYWlsZWQgdG8gcmVzb2x2ZSBDYXRhbG9nIGNvbXBvbmVudC4gJyArIChlcnIubWVzc2FnZSA/PyAnJyk7XG4gICAgICAgICAgdGhpcy50b2FzdFNlcnZpY2UuYWRkKHsgc2V2ZXJpdHk6IFRvYXN0VHlwZS5lcnJvciwgc3VtbWFyeTogbWVzc2FnZSwgc3RpY2t5OiB0cnVlIH0pO1xuXG4gICAgICAgICAgdGhpcy51aURlZmluaXRpb24gPSB1bmRlZmluZWQ7XG4gICAgICAgICAgdGhpcy5zdGF0ZSQubmV4dCh7IGxvYWRpbmc6IGZhbHNlLCBmYWlsdXJlOiB0cnVlIH0pO1xuICAgICAgICAgIHJldHVybiBvZigpO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3llZCQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveWVkJC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRUZW1wbGF0ZVJvb3RDb21wb25lbnQkKHRlbXBsYXRlOiBVSVRlbXBsYXRlKTogT2JzZXJ2YWJsZTxUZW1wbGF0ZUNvbXBvbmVudCB8IHVuZGVmaW5lZD4ge1xuICAgIHJldHVybiB0aGlzLnRlbXBsYXRlc0FwaVxuICAgICAgLmZldGNoQ29tcG9uZW50cyQodGVtcGxhdGUuaWQpXG4gICAgICAucGlwZShtYXAoY29tcG9uZW50cyA9PiBjb21wb25lbnRzLmZpbmQoYyA9PiBjLnR5cGUgPT09IFVJVGVtcGxhdGVDb21wb25lbnRUeXBlLlJPT1QpID8/IHVuZGVmaW5lZCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRMb2NhbENhdGFsb2dDb21wb25lbnRNZXRhJCgpOiBPYnNlcnZhYmxlPENvbXBvbmVudEF0dGFjaG1lbnRzIHwgdW5kZWZpbmVkPiB7XG4gICAgaWYgKCF0aGlzLmN1c3RvbWl6YXRpb25TZXJ2aWNlPy5nZXRDYXRhbG9nQ29tcG9uZW50KSB7XG4gICAgICByZXR1cm4gb2YodW5kZWZpbmVkKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5jdXN0b21pemF0aW9uU2VydmljZT8uZ2V0Q2F0YWxvZ0NvbXBvbmVudCh0aGlzLnRlbXBsYXRlQXBpTmFtZSkucGlwZShcbiAgICAgIG1hcChjb21wb25lbnQgPT4ge1xuICAgICAgICBpZiAoIWNvbXBvbmVudCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiA8Q29tcG9uZW50QXR0YWNobWVudHM+e1xuICAgICAgICAgIGh0bWw6IGNvbXBvbmVudC5odG1sLFxuICAgICAgICAgIGNzczogY29tcG9uZW50LmNzcyxcbiAgICAgICAgICBqczogY29tcG9uZW50LmpzLFxuICAgICAgICAgIGpzb246IGNvbXBvbmVudC5qc29uLFxuICAgICAgICB9O1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q2F0YWxvZ0NvbXBvbmVudE1ldGEkKCkge1xuICAgIHJldHVybiB0aGlzLnRlbXBsYXRlc0FwaS5mZXRjaFRlbXBsYXRlcyQoKS5waXBlKFxuICAgICAgbWFwPFVJVGVtcGxhdGVbXSwgVUlUZW1wbGF0ZSB8IHVuZGVmaW5lZD4odGVtcGxhdGVzID0+XG4gICAgICAgIHRlbXBsYXRlcy5maW5kKHRlbXBsYXRlID0+IHRlbXBsYXRlLnR5cGUgPT09IFVJVGVtcGxhdGVUeXBlLkNBVEFMT0cgJiYgdGVtcGxhdGUubmFtZSA9PT0gdGhpcy50ZW1wbGF0ZUFwaU5hbWUpLFxuICAgICAgKSxcbiAgICAgIHN3aXRjaE1hcCh0ZW1wbGF0ZSA9PiAodGVtcGxhdGUgPyB0aGlzLmdldFRlbXBsYXRlUm9vdENvbXBvbmVudCQodGVtcGxhdGUpIDogb2YodW5kZWZpbmVkKSkpLFxuICAgICAgc3dpdGNoTWFwKGNvbXBvbmVudCA9PlxuICAgICAgICBjb21wb25lbnQgPyB0aGlzLnRlbXBsYXRlc0FwaS5mZXRjaENvbXBvbmVudEF0dGFjaG1lbnRzJChjb21wb25lbnQudWlUZW1wbGF0ZUlkLCBjb21wb25lbnQpIDogb2YodW5kZWZpbmVkKSxcbiAgICAgICksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2VuZXJhdGVVSURlZmluaXRpb24kKCk6IE9ic2VydmFibGU8VUlEZWZpbml0aW9uIHwgdW5kZWZpbmVkPiB7XG4gICAgcmV0dXJuIG9mKHVuZGVmaW5lZCkucGlwZShcbiAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy50ZW1wbGF0ZUFwaU5hbWUpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJGbG93IFF1ZXJ5IHBhcmFtZXRlciAnY2F0YWxvZ1RlbXBsYXRlQXBpTmFtZScgaXMgbWlzc2luZy5cIik7XG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuZ2V0TG9jYWxDYXRhbG9nQ29tcG9uZW50TWV0YSQoKSksXG4gICAgICBzd2l0Y2hNYXAobWV0YSA9PiAobWV0YSA/IG9mKG1ldGEpIDogdGhpcy5nZXRDYXRhbG9nQ29tcG9uZW50TWV0YSQoKSkpLFxuICAgICAgbWFwKG1ldGEgPT4ge1xuICAgICAgICBpZiAoIW1ldGEpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB1aURlZjogVUlEZWZpbml0aW9uID0ge1xuICAgICAgICAgIG5hbWU6ICcnLFxuICAgICAgICAgIGNyZWF0ZWRUaW1lc3RhbXA6IDAsXG4gICAgICAgICAgcHJpbWFyeTogdHJ1ZSxcbiAgICAgICAgICB0eXBlOiAnREVGQVVMVCcsXG4gICAgICAgICAgdmVyc2lvbjogMixcbiAgICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBjaGlsZHJlbjogW10sXG4gICAgICAgICAgICAgIHRlbXBsYXRlOiBtZXRhLmh0bWwgJiYgYnRvYShtZXRhLmh0bWwpLFxuICAgICAgICAgICAgICBzY3JpcHQ6IG1ldGEuanMgJiYgYnRvYShtZXRhLmpzKSxcbiAgICAgICAgICAgICAgc3R5bGVzOiBtZXRhLmNzcyAmJiBidG9hKG1ldGEuY3NzKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gdWlEZWY7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwic3RhdGUkIHwgYXN5bmMgYXMgc3RhdGVcIj5cbiAgPHZsLWxvYWRlciAqbmdJZj1cInN0YXRlLmxvYWRpbmc7IGVsc2UgY29udGVudFwiIFtsYWJlbF09XCInTG9hZGluZyBVSSdcIj48L3ZsLWxvYWRlcj5cblxuICA8bmctdGVtcGxhdGUgI2NvbnRlbnQ+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFzdGF0ZS5mYWlsdXJlXCI+XG4gICAgICA8dmwtY21zLXByZXZpZXcgW3VpRGVmaW5pdGlvbl09XCJ1aURlZmluaXRpb25cIj48L3ZsLWNtcy1wcmV2aWV3PlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L25nLXRlbXBsYXRlPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
@@ -129,4 +129,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImpo
129
129
  type: Inject,
130
130
  args: [FLOW_CUSTOMIZATION]
131
131
  }] }]; } });
132
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVnYWN5LXByb2R1Y3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvc3JjL3BhZ2VzL2xlZ2FjeS1wcm9kdWN0L2xlZ2FjeS1wcm9kdWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3NyYy9wYWdlcy9sZWdhY3ktcHJvZHVjdC9sZWdhY3ktcHJvZHVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBcUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRy9FLE9BQU8sRUFBd0IsVUFBVSxFQUFrQyxNQUFNLGNBQWMsQ0FBQztBQUNoRyxPQUFPLEVBQWtELGdCQUFnQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFTcEcsT0FBTyxFQUFjLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0MsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RSxPQUFPLEVBQXFCLGtCQUFrQixFQUFFLE1BQU0sYUFBYSxDQUFDOzs7Ozs7QUFRcEUsTUFBTSxPQUFPLHNCQUFzQjtJQUtqQyxZQUNVLEtBQXFCLEVBQ3JCLGlCQUFvQyxFQUNwQyxlQUFnQyxFQUNoQyxjQUE4QixFQUM5QixxQkFBNEMsRUFDNUMsY0FBOEIsRUFDOUIsbUJBQXdDLEVBQ0Esb0JBQXdDO1FBUGhGLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QiwwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBQzVDLG1CQUFjLEdBQWQsY0FB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QWMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxjQUFjLENBQUMsQ0FBQyxDQUM5RSxDQUFDO0lBQ0osQ0FBQzs7b0hBekpVLHNCQUFzQixvUEFhWCxrQkFBa0I7d0dBYjdCLHNCQUFzQixvREN2Qm5DLDBGQUNBOzRGRHNCYSxzQkFBc0I7a0JBSmxDLFNBQVM7bUJBQUM7b0JBQ1QsV0FBVyxFQUFFLGlDQUFpQztvQkFDOUMsU0FBUyxFQUFFLENBQUMsaUNBQWlDLENBQUM7aUJBQy9DOzswQkFjSSxRQUFROzswQkFBSSxNQUFNOzJCQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgUXVvdGVBcGlTZXJ2aWNlIH0gZnJvbSAnQHZlbG9jZS9hcGknO1xuaW1wb3J0IHsgQ29uZmlndXJhdGlvbkNvbnRleHQsIEVudGl0eVV0aWwsIExpbmVJdGVtLCBRdW90ZURyYWZ0LCBWbFdpbmRvdyB9IGZyb20gJ0B2ZWxvY2UvY29yZSc7XG5pbXBvcnQgeyBDb250ZXh0U2VydmljZSwgUXVvdGVEcmFmdFNlcnZpY2UsIFF1b3RlU3RhdGVzLCBSdW50aW1lT3BlcmF0aW9uIH0gZnJvbSAnQHZlbG9jZS9zZGsvY29yZSc7XG5pbXBvcnQge1xuICBDdXJyZW50U3RhdGVTZXJ2aWNlLFxuICBMZWdhY3lSdW50aW1lQ29udGV4dCxcbiAgUnVudGltZUNvbnRleHRTZXJ2aWNlLFxuICBSdW50aW1lU2VydmljZSxcbiAgU29sdXRpb25SZWFkeUF3YXJlLFxuICBTb2x1dGlvblVwZGF0ZWRBd2FyZSxcbn0gZnJvbSAnQHZlbG9jZS9zZGsvcnVudGltZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlyc3QsIG1hcCwgc3dpdGNoTWFwLCB0YWtlLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBGbG93Q3VzdG9taXphdGlvbiwgRkxPV19DVVNUT01JWkFUSU9OIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuXG5kZWNsYXJlIGNvbnN0IHdpbmRvdzogVmxXaW5kb3c7XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZVVybDogJy4vbGVnYWN5LXByb2R1Y3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9sZWdhY3ktcHJvZHVjdC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBMZWdhY3lQcm9kdWN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIFNvbHV0aW9uVXBkYXRlZEF3YXJlLCBTb2x1dGlvblJlYWR5QXdhcmUge1xuICBwcml2YXRlIGRlc3Ryb3llZCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHByaXZhdGUgYXNzZXRzPzogTGluZUl0ZW1bXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHF1b3RlRHJhZnRTZXJ2aWNlOiBRdW90ZURyYWZ0U2VydmljZSxcbiAgICBwcml2YXRlIHF1b3RlQXBpU2VydmljZTogUXVvdGVBcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29udGV4dFNlcnZpY2U6IENvbnRleHRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcnVudGltZUNvbnRleHRTZXJ2aWNlOiBSdW50aW1lQ29udGV4dFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBydW50aW1lU2VydmljZTogUnVudGltZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjdXJyZW50U3RhdGVTZXJ2aWNlOiBDdXJyZW50U3RhdGVTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoRkxPV19DVVNUT01JWkFUSU9OKSBwcml2YXRlIGN1c3RvbWl6YXRpb25TZXJ2aWNlPzogRmxvd0N1c3RvbWl6YXRpb24sXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLnF1b3RlJFxuICAgICAgLnBpcGUoZmlyc3QoKSwgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCkpXG4gICAgICAuc3Vic2NyaWJlKHF1b3RlID0+IHRoaXMuaW5pdChxdW90ZSwgdGhpcy5yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcykpO1xuXG4gICAgdGhpcy5ydW50aW1lU2VydmljZS5vblNvbHV0aW9uU3RvcEV2ZW50LnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKGxpbmVJdGVtID0+IHRoaXMub25Tb2x1dGlvblN0b3AobGluZUl0ZW0pKTtcblxuICAgIHRoaXMucnVudGltZVNlcnZpY2Uub25Tb2x1dGlvblJlYWR5RXZlbnQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoZXZlbnQgPT4gdGhpcy5vblNvbHV0aW9uUmVhZHkoZXZlbnQpKTtcblxuICAgIHRoaXMucnVudGltZVNlcnZpY2Uub25Tb2x1dGlvbkNhbmNlbEV2ZW50LnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMub25Tb2x1dGlvbkNhbmNlbCgpKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveWVkJC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95ZWQkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBvblNvbHV0aW9uUmVhZHkobGluZUl0ZW06IExpbmVJdGVtKTogdm9pZCB7XG4gICAgbGluZUl0ZW0uYWN0aW9uQ29kZSA9IGxpbmVJdGVtLmFjdGlvbkNvZGUgPz8gJ0FERCc7XG4gIH1cblxuICBvblNvbHV0aW9uQ2FuY2VsKCk6IHZvaWQge1xuICAgIHRoaXMucXVvdGVEcmFmdFNlcnZpY2UucXVvdGUkLnBpcGUoZmlyc3QoKSwgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCkpLnN1YnNjcmliZShxdW90ZSA9PiB7XG4gICAgICB3aW5kb3dbJ1ZFTE9fQkFDS19GTiddLmFwcGx5KG51bGwsIFtxdW90ZS5xdW90ZUlkXSk7XG4gICAgfSk7XG4gIH1cblxuICBvblNvbHV0aW9uVXBkYXRlZChsaW5lSXRlbTogTGluZUl0ZW0pOiB2b2lkIHtcbiAgICBjb25zdCBzdGF0ZXM6IFF1b3RlU3RhdGVzID0ge1xuICAgICAgY29uZmlndXJhYmxlUmFtcDogbGluZUl0ZW0sXG4gICAgICBjdXJyZW50U3RhdGU6IHRoaXMuY3VycmVudFN0YXRlU2VydmljZS5jdXJyZW50U3RhdGUsXG4gICAgICBhc3NldDogdGhpcy5nZXRBc3NldChsaW5lSXRlbSksXG4gICAgfTtcblxuICAgIHRoaXMucnVudGltZVNlcnZpY2UudXBkYXRlUnVudGltZShzdGF0ZXMpO1xuICB9XG5cbiAgb25Tb2x1dGlvblN0b3AobGluZUl0ZW06IExpbmVJdGVtKTogdm9pZCB7XG4gICAgdGhpcy5xdW90ZURyYWZ0U2VydmljZS5xdW90ZSQucGlwZShmaXJzdCgpLCB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSkuc3Vic2NyaWJlKHF1b3RlID0+IHtcbiAgICAgIGNvbnN0IHF1b3RlVG9VcHNlcnQ6IFF1b3RlRHJhZnQgPSB7XG4gICAgICAgIC4uLnF1b3RlLFxuICAgICAgICBjb250ZXh0OiB0aGlzLmNvbnRleHRTZXJ2aWNlLnJlc29sdmUoKSBhcyBDb25maWd1cmF0aW9uQ29udGV4dCxcbiAgICAgICAgY3VycmVudFN0YXRlOiBbLi4uKHRoaXMuY3VycmVudFN0YXRlU2VydmljZS5jdXJyZW50U3RhdGUgfHwgW10pLmZpbHRlcihsaSA9PiBsaS5pZCAhPT0gbGluZUl0ZW0uaWQpLCBsaW5lSXRlbV0sXG4gICAgICB9O1xuXG4gICAgICB0aGlzLnF1b3RlQXBpU2VydmljZVxuICAgICAgICAudXBzZXJ0UXVvdGUocXVvdGVUb1Vwc2VydClcbiAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgLnN1YnNjcmliZShxdW90ZSA9PiB7XG4gICAgICAgICAgd2luZG93WydWRUxPX0JBQ0tfRk4nXS5hcHBseShudWxsLCBbcXVvdGUucXVvdGVJZF0pO1xuICAgICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdChxdW90ZTogUXVvdGVEcmFmdCwgcXVlcnlQYXJhbXM6IFBhcmFtcyk6IHZvaWQge1xuICAgIGNvbnN0IHByb2R1Y3RJZCA9IHF1ZXJ5UGFyYW1zWydwcm9kdWN0SWQnXTtcbiAgICBjb25zdCBsaW5lSXRlbUlkID0gdGhpcy5nZXRMaW5lSXRlbUlkKHF1b3RlLCBxdWVyeVBhcmFtcyk7XG4gICAgdGhpcy5hc3NldHMgPSBxdW90ZS5pbml0aWFsU3RhdGU7XG5cbiAgICBsaW5lSXRlbUlkICYmIHF1b3RlLmN1cnJlbnRTdGF0ZSA/IHRoaXMucmVDb25maWd1cmUobGluZUl0ZW1JZCwgcXVvdGUuY3VycmVudFN0YXRlKSA6IHRoaXMuY29uZmlndXJlKHByb2R1Y3RJZCk7XG4gIH1cblxuICBwcml2YXRlIGdldExpbmVJdGVtSWQocXVvdGU6IFF1b3RlRHJhZnQsIHF1ZXJ5UGFyYW1zOiBQYXJhbXMpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGlmIChFbnRpdHlVdGlsLmlzUHJlc2VudChxdWVyeVBhcmFtc1snbGluZUl0ZW1JZCddKSkge1xuICAgICAgcmV0dXJuIHF1ZXJ5UGFyYW1zWydsaW5lSXRlbUlkJ107XG4gICAgfVxuXG4gICAgcmV0dXJuIHF1b3RlLmN1cnJlbnRTdGF0ZVxuICAgICAgLmZpbHRlcihsaW5lSXRlbSA9PiBsaW5lSXRlbS5wcm9kdWN0SWQgPT09IHF1ZXJ5UGFyYW1zWydwcm9kdWN0SWQnXSlcbiAgICAgIC5tYXAobGluZUl0ZW0gPT4gbGluZUl0ZW0uaWQpXG4gICAgICAuZmluZChpZCA9PiBpZCk7XG4gIH1cblxuICBwcml2YXRlIGNvbmZpZ3VyZShwcm9kdWN0SWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IHJ1bnRpbWVDb250ZXh0ID0gdGhpcy5nZXRSdW50aW1lQ29udGV4dChwcm9kdWN0SWQsICcnLCBSdW50aW1lT3BlcmF0aW9uLklOSVQpO1xuXG4gICAgdGhpcy5zdGFydFJ1bnRpbWUoe30sIHJ1bnRpbWVDb250ZXh0KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVDb25maWd1cmUobGluZUl0ZW1JZDogc3RyaW5nLCBjdXJyZW50U3RhdGU6IExpbmVJdGVtW10pOiB2b2lkIHtcbiAgICBjb25zdCBjdXJyZW50U3RhdGVJdGVtID0gRW50aXR5VXRpbC5maW5kQnlJZChsaW5lSXRlbUlkLCBjdXJyZW50U3RhdGUpO1xuICAgIGNvbnN0IHJ1bnRpbWVDb250ZXh0ID0gdGhpcy5nZXRSdW50aW1lQ29udGV4dChcbiAgICAgIGN1cnJlbnRTdGF0ZUl0ZW0ucHJvZHVjdElkLFxuICAgICAgY3VycmVudFN0YXRlSXRlbS5vZmZlcmluZ0lkLFxuICAgICAgUnVudGltZU9wZXJhdGlvbi5VUERBVEUsXG4gICAgKTtcblxuICAgIGNvbnN0IHN0YXRlczogUXVvdGVTdGF0ZXMgPSB7XG4gICAgICBjb25maWd1cmFibGVSYW1wOiBjdXJyZW50U3RhdGVJdGVtLFxuICAgICAgY3VycmVudFN0YXRlLFxuICAgICAgYXNzZXQ6IHRoaXMuZ2V0QXNzZXQoY3VycmVudFN0YXRlSXRlbSksXG4gICAgfTtcblxuICAgIHRoaXMuY3VycmVudFN0YXRlU2VydmljZS51cGRhdGUoY3VycmVudFN0YXRlKTtcbiAgICB0aGlzLnN0YXJ0UnVudGltZShzdGF0ZXMsIHJ1bnRpbWVDb250ZXh0KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0QXNzZXQobGluZUl0ZW06IExpbmVJdGVtKTogTGluZUl0ZW0gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmFzc2V0cyAmJiB0aGlzLmFzc2V0cy5maW5kKGEgPT4gYS5pZCA9PT0gbGluZUl0ZW0ub3Blbk9yZGVyTGluZUl0ZW1JZCB8fCBhLmlkID09PSBsaW5lSXRlbS5hc3NldElkKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhcnRSdW50aW1lKHN0YXRlczogUXVvdGVTdGF0ZXMsIHJ1bnRpbWVDb250ZXh0JDogT2JzZXJ2YWJsZTxMZWdhY3lSdW50aW1lQ29udGV4dD4pOiB2b2lkIHtcbiAgICBydW50aW1lQ29udGV4dCRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlKDEpLFxuICAgICAgICBtYXAocnVudGltZUNvbnRleHQgPT4ge1xuICAgICAgICAgIHRoaXMucnVudGltZVNlcnZpY2Uuc3RhcnRSdW50aW1lKHJ1bnRpbWVDb250ZXh0LCBzdGF0ZXMpO1xuICAgICAgICB9KSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgY3VzdG9taXplQ29udGV4dChwcm9kdWN0SWQ6IHN0cmluZywgY29udGV4dDogTGVnYWN5UnVudGltZUNvbnRleHQpOiBPYnNlcnZhYmxlPExlZ2FjeVJ1bnRpbWVDb250ZXh0PiB7XG4gICAgaWYgKCF0aGlzLmN1c3RvbWl6YXRpb25TZXJ2aWNlPy5nZXRMZWdhY3lVaURlZmluaXRpb24pIHtcbiAgICAgIHJldHVybiBvZihjb250ZXh0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5jdXN0b21pemF0aW9uU2VydmljZS5nZXRMZWdhY3lVaURlZmluaXRpb24ocHJvZHVjdElkKS5waXBlKFxuICAgICAgbWFwKHVpRGVmID0+ICh7XG4gICAgICAgIC4uLmNvbnRleHQsXG4gICAgICAgIHVpRGVmaW5pdGlvbjogdWlEZWYgPz8gY29udGV4dC51aURlZmluaXRpb24sXG4gICAgICB9KSksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UnVudGltZUNvbnRleHQoXG4gICAgcHJvZHVjdElkOiBzdHJpbmcsXG4gICAgb2ZmZXJpbmdJZDogc3RyaW5nLFxuICAgIHJ1bnRpbWVPcGVyYXRpb246IFJ1bnRpbWVPcGVyYXRpb24sXG4gICk6IE9ic2VydmFibGU8TGVnYWN5UnVudGltZUNvbnRleHQ+IHtcbiAgICByZXR1cm4gdGhpcy5ydW50aW1lQ29udGV4dFNlcnZpY2UuZ2V0UnVudGltZUNvbnRleHQocHJvZHVjdElkLCBvZmZlcmluZ0lkKS5waXBlKFxuICAgICAgbWFwKHJ1bnRpbWVDb250ZXh0ID0+IHtcbiAgICAgICAgcnVudGltZUNvbnRleHQuaW52b2NhdGlvbkNvbnRleHQgPSB7IHJ1bnRpbWVPcGVyYXRpb246IFJ1bnRpbWVPcGVyYXRpb25bcnVudGltZU9wZXJhdGlvbl0gfTtcbiAgICAgICAgcmV0dXJuIHJ1bnRpbWVDb250ZXh0O1xuICAgICAgfSksXG4gICAgICBzd2l0Y2hNYXAocnVudGltZUNvbnRleHQgPT4gdGhpcy5jdXN0b21pemVDb250ZXh0KHByb2R1Y3RJZCwgcnVudGltZUNvbnRleHQpKSxcbiAgICApO1xuICB9XG59XG4iLCI8dmwtcnVudGltZSAjcnVudGltZVZpZXcgKHNvbHV0aW9uVXBkYXRlZCk9XCJvblNvbHV0aW9uVXBkYXRlZCgkZXZlbnQpXCI+PC92bC1ydW50aW1lPlxuIl19
132
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVnYWN5LXByb2R1Y3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvc3JjL3BhZ2VzL2xlZ2FjeS1wcm9kdWN0L2xlZ2FjeS1wcm9kdWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3NyYy9wYWdlcy9sZWdhY3ktcHJvZHVjdC9sZWdhY3ktcHJvZHVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBcUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRy9FLE9BQU8sRUFBRSxVQUFVLEVBQWtDLE1BQU0sY0FBYyxDQUFDO0FBQzFFLE9BQU8sRUFBa0QsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQVNwRyxPQUFPLEVBQWMsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hFLE9BQU8sRUFBcUIsa0JBQWtCLEVBQUUsTUFBTSxhQUFhLENBQUM7Ozs7OztBQVFwRSxNQUFNLE9BQU8sc0JBQXNCO0lBS2pDLFlBQ1UsS0FBcUIsRUFDckIsaUJBQW9DLEVBQ3BDLGVBQWdDLEVBQ2hDLGNBQThCLEVBQzlCLHFCQUE0QyxFQUM1QyxjQUE4QixFQUM5QixtQkFBd0MsRUFDQSxvQkFBd0M7UUFQaEYsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUFDNUMsbUJBQWMsR0FBZCxjQUFj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LENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FDOUUsQ0FBQztJQUNKLENBQUM7O29IQXpKVSxzQkFBc0Isb1BBYVgsa0JBQWtCO3dHQWI3QixzQkFBc0Isb0RDdkJuQywwRkFDQTs0RkRzQmEsc0JBQXNCO2tCQUpsQyxTQUFTO21CQUFDO29CQUNULFdBQVcsRUFBRSxpQ0FBaUM7b0JBQzlDLFNBQVMsRUFBRSxDQUFDLGlDQUFpQyxDQUFDO2lCQUMvQzs7MEJBY0ksUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgT25EZXN0cm95LCBPbkluaXQsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFF1b3RlQXBpU2VydmljZSB9IGZyb20gJ0B2ZWxvY2UvYXBpJztcbmltcG9ydCB7IEVudGl0eVV0aWwsIExpbmVJdGVtLCBRdW90ZURyYWZ0LCBWbFdpbmRvdyB9IGZyb20gJ0B2ZWxvY2UvY29yZSc7XG5pbXBvcnQgeyBDb250ZXh0U2VydmljZSwgUXVvdGVEcmFmdFNlcnZpY2UsIFF1b3RlU3RhdGVzLCBSdW50aW1lT3BlcmF0aW9uIH0gZnJvbSAnQHZlbG9jZS9zZGsvY29yZSc7XG5pbXBvcnQge1xuICBDdXJyZW50U3RhdGVTZXJ2aWNlLFxuICBMZWdhY3lSdW50aW1lQ29udGV4dCxcbiAgUnVudGltZUNvbnRleHRTZXJ2aWNlLFxuICBSdW50aW1lU2VydmljZSxcbiAgU29sdXRpb25SZWFkeUF3YXJlLFxuICBTb2x1dGlvblVwZGF0ZWRBd2FyZSxcbn0gZnJvbSAnQHZlbG9jZS9zZGsvcnVudGltZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlyc3QsIG1hcCwgc3dpdGNoTWFwLCB0YWtlLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBGbG93Q3VzdG9taXphdGlvbiwgRkxPV19DVVNUT01JWkFUSU9OIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuXG5kZWNsYXJlIGNvbnN0IHdpbmRvdzogVmxXaW5kb3c7XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZVVybDogJy4vbGVnYWN5LXByb2R1Y3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9sZWdhY3ktcHJvZHVjdC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBMZWdhY3lQcm9kdWN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIFNvbHV0aW9uVXBkYXRlZEF3YXJlLCBTb2x1dGlvblJlYWR5QXdhcmUge1xuICBwcml2YXRlIGRlc3Ryb3llZCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHByaXZhdGUgYXNzZXRzPzogTGluZUl0ZW1bXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHF1b3RlRHJhZnRTZXJ2aWNlOiBRdW90ZURyYWZ0U2VydmljZSxcbiAgICBwcml2YXRlIHF1b3RlQXBpU2VydmljZTogUXVvdGVBcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29udGV4dFNlcnZpY2U6IENvbnRleHRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcnVudGltZUNvbnRleHRTZXJ2aWNlOiBSdW50aW1lQ29udGV4dFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBydW50aW1lU2VydmljZTogUnVudGltZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjdXJyZW50U3RhdGVTZXJ2aWNlOiBDdXJyZW50U3RhdGVTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoRkxPV19DVVNUT01JWkFUSU9OKSBwcml2YXRlIGN1c3RvbWl6YXRpb25TZXJ2aWNlPzogRmxvd0N1c3RvbWl6YXRpb24sXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLnF1b3RlJFxuICAgICAgLnBpcGUoZmlyc3QoKSwgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCkpXG4gICAgICAuc3Vic2NyaWJlKHF1b3RlID0+IHRoaXMuaW5pdChxdW90ZSwgdGhpcy5yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcykpO1xuXG4gICAgdGhpcy5ydW50aW1lU2VydmljZS5vblNvbHV0aW9uU3RvcEV2ZW50LnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKGxpbmVJdGVtID0+IHRoaXMub25Tb2x1dGlvblN0b3AobGluZUl0ZW0pKTtcblxuICAgIHRoaXMucnVudGltZVNlcnZpY2Uub25Tb2x1dGlvblJlYWR5RXZlbnQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoZXZlbnQgPT4gdGhpcy5vblNvbHV0aW9uUmVhZHkoZXZlbnQpKTtcblxuICAgIHRoaXMucnVudGltZVNlcnZpY2Uub25Tb2x1dGlvbkNhbmNlbEV2ZW50LnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMub25Tb2x1dGlvbkNhbmNlbCgpKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveWVkJC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95ZWQkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBvblNvbHV0aW9uUmVhZHkobGluZUl0ZW06IExpbmVJdGVtKTogdm9pZCB7XG4gICAgbGluZUl0ZW0uYWN0aW9uQ29kZSA9IGxpbmVJdGVtLmFjdGlvbkNvZGUgPz8gJ0FERCc7XG4gIH1cblxuICBvblNvbHV0aW9uQ2FuY2VsKCk6IHZvaWQge1xuICAgIHRoaXMucXVvdGVEcmFmdFNlcnZpY2UucXVvdGUkLnBpcGUoZmlyc3QoKSwgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCkpLnN1YnNjcmliZShxdW90ZSA9PiB7XG4gICAgICB3aW5kb3dbJ1ZFTE9fQkFDS19GTiddLmFwcGx5KG51bGwsIFtxdW90ZS5xdW90ZUlkXSk7XG4gICAgfSk7XG4gIH1cblxuICBvblNvbHV0aW9uVXBkYXRlZChsaW5lSXRlbTogTGluZUl0ZW0pOiB2b2lkIHtcbiAgICBjb25zdCBzdGF0ZXM6IFF1b3RlU3RhdGVzID0ge1xuICAgICAgY29uZmlndXJhYmxlUmFtcDogbGluZUl0ZW0sXG4gICAgICBjdXJyZW50U3RhdGU6IHRoaXMuY3VycmVudFN0YXRlU2VydmljZS5jdXJyZW50U3RhdGUsXG4gICAgICBhc3NldDogdGhpcy5nZXRBc3NldChsaW5lSXRlbSksXG4gICAgfTtcblxuICAgIHRoaXMucnVudGltZVNlcnZpY2UudXBkYXRlUnVudGltZShzdGF0ZXMpO1xuICB9XG5cbiAgb25Tb2x1dGlvblN0b3AobGluZUl0ZW06IExpbmVJdGVtKTogdm9pZCB7XG4gICAgdGhpcy5xdW90ZURyYWZ0U2VydmljZS5xdW90ZSQucGlwZShmaXJzdCgpLCB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSkuc3Vic2NyaWJlKHF1b3RlID0+IHtcbiAgICAgIGNvbnN0IHF1b3RlVG9VcHNlcnQ6IFF1b3RlRHJhZnQgPSB7XG4gICAgICAgIC4uLnF1b3RlLFxuICAgICAgICBjb250ZXh0OiB0aGlzLmNvbnRleHRTZXJ2aWNlLnJlc29sdmUoKSxcbiAgICAgICAgY3VycmVudFN0YXRlOiBbLi4uKHRoaXMuY3VycmVudFN0YXRlU2VydmljZS5jdXJyZW50U3RhdGUgfHwgW10pLmZpbHRlcihsaSA9PiBsaS5pZCAhPT0gbGluZUl0ZW0uaWQpLCBsaW5lSXRlbV0sXG4gICAgICB9O1xuXG4gICAgICB0aGlzLnF1b3RlQXBpU2VydmljZVxuICAgICAgICAudXBzZXJ0UXVvdGUocXVvdGVUb1Vwc2VydClcbiAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgLnN1YnNjcmliZShxdW90ZSA9PiB7XG4gICAgICAgICAgd2luZG93WydWRUxPX0JBQ0tfRk4nXS5hcHBseShudWxsLCBbcXVvdGUucXVvdGVJZF0pO1xuICAgICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdChxdW90ZTogUXVvdGVEcmFmdCwgcXVlcnlQYXJhbXM6IFBhcmFtcyk6IHZvaWQge1xuICAgIGNvbnN0IHByb2R1Y3RJZCA9IHF1ZXJ5UGFyYW1zWydwcm9kdWN0SWQnXTtcbiAgICBjb25zdCBsaW5lSXRlbUlkID0gdGhpcy5nZXRMaW5lSXRlbUlkKHF1b3RlLCBxdWVyeVBhcmFtcyk7XG4gICAgdGhpcy5hc3NldHMgPSBxdW90ZS5pbml0aWFsU3RhdGU7XG5cbiAgICBsaW5lSXRlbUlkICYmIHF1b3RlLmN1cnJlbnRTdGF0ZSA/IHRoaXMucmVDb25maWd1cmUobGluZUl0ZW1JZCwgcXVvdGUuY3VycmVudFN0YXRlKSA6IHRoaXMuY29uZmlndXJlKHByb2R1Y3RJZCk7XG4gIH1cblxuICBwcml2YXRlIGdldExpbmVJdGVtSWQocXVvdGU6IFF1b3RlRHJhZnQsIHF1ZXJ5UGFyYW1zOiBQYXJhbXMpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGlmIChFbnRpdHlVdGlsLmlzUHJlc2VudChxdWVyeVBhcmFtc1snbGluZUl0ZW1JZCddKSkge1xuICAgICAgcmV0dXJuIHF1ZXJ5UGFyYW1zWydsaW5lSXRlbUlkJ107XG4gICAgfVxuXG4gICAgcmV0dXJuIHF1b3RlLmN1cnJlbnRTdGF0ZVxuICAgICAgLmZpbHRlcihsaW5lSXRlbSA9PiBsaW5lSXRlbS5wcm9kdWN0SWQgPT09IHF1ZXJ5UGFyYW1zWydwcm9kdWN0SWQnXSlcbiAgICAgIC5tYXAobGluZUl0ZW0gPT4gbGluZUl0ZW0uaWQpXG4gICAgICAuZmluZChpZCA9PiBpZCk7XG4gIH1cblxuICBwcml2YXRlIGNvbmZpZ3VyZShwcm9kdWN0SWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IHJ1bnRpbWVDb250ZXh0ID0gdGhpcy5nZXRSdW50aW1lQ29udGV4dChwcm9kdWN0SWQsICcnLCBSdW50aW1lT3BlcmF0aW9uLklOSVQpO1xuXG4gICAgdGhpcy5zdGFydFJ1bnRpbWUoe30sIHJ1bnRpbWVDb250ZXh0KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVDb25maWd1cmUobGluZUl0ZW1JZDogc3RyaW5nLCBjdXJyZW50U3RhdGU6IExpbmVJdGVtW10pOiB2b2lkIHtcbiAgICBjb25zdCBjdXJyZW50U3RhdGVJdGVtID0gRW50aXR5VXRpbC5maW5kQnlJZChsaW5lSXRlbUlkLCBjdXJyZW50U3RhdGUpO1xuICAgIGNvbnN0IHJ1bnRpbWVDb250ZXh0ID0gdGhpcy5nZXRSdW50aW1lQ29udGV4dChcbiAgICAgIGN1cnJlbnRTdGF0ZUl0ZW0ucHJvZHVjdElkLFxuICAgICAgY3VycmVudFN0YXRlSXRlbS5vZmZlcmluZ0lkLFxuICAgICAgUnVudGltZU9wZXJhdGlvbi5VUERBVEUsXG4gICAgKTtcblxuICAgIGNvbnN0IHN0YXRlczogUXVvdGVTdGF0ZXMgPSB7XG4gICAgICBjb25maWd1cmFibGVSYW1wOiBjdXJyZW50U3RhdGVJdGVtLFxuICAgICAgY3VycmVudFN0YXRlLFxuICAgICAgYXNzZXQ6IHRoaXMuZ2V0QXNzZXQoY3VycmVudFN0YXRlSXRlbSksXG4gICAgfTtcblxuICAgIHRoaXMuY3VycmVudFN0YXRlU2VydmljZS51cGRhdGUoY3VycmVudFN0YXRlKTtcbiAgICB0aGlzLnN0YXJ0UnVudGltZShzdGF0ZXMsIHJ1bnRpbWVDb250ZXh0KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0QXNzZXQobGluZUl0ZW06IExpbmVJdGVtKTogTGluZUl0ZW0gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmFzc2V0cyAmJiB0aGlzLmFzc2V0cy5maW5kKGEgPT4gYS5pZCA9PT0gbGluZUl0ZW0ub3Blbk9yZGVyTGluZUl0ZW1JZCB8fCBhLmlkID09PSBsaW5lSXRlbS5hc3NldElkKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhcnRSdW50aW1lKHN0YXRlczogUXVvdGVTdGF0ZXMsIHJ1bnRpbWVDb250ZXh0JDogT2JzZXJ2YWJsZTxMZWdhY3lSdW50aW1lQ29udGV4dD4pOiB2b2lkIHtcbiAgICBydW50aW1lQ29udGV4dCRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlKDEpLFxuICAgICAgICBtYXAocnVudGltZUNvbnRleHQgPT4ge1xuICAgICAgICAgIHRoaXMucnVudGltZVNlcnZpY2Uuc3RhcnRSdW50aW1lKHJ1bnRpbWVDb250ZXh0LCBzdGF0ZXMpO1xuICAgICAgICB9KSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgY3VzdG9taXplQ29udGV4dChwcm9kdWN0SWQ6IHN0cmluZywgY29udGV4dDogTGVnYWN5UnVudGltZUNvbnRleHQpOiBPYnNlcnZhYmxlPExlZ2FjeVJ1bnRpbWVDb250ZXh0PiB7XG4gICAgaWYgKCF0aGlzLmN1c3RvbWl6YXRpb25TZXJ2aWNlPy5nZXRMZWdhY3lVaURlZmluaXRpb24pIHtcbiAgICAgIHJldHVybiBvZihjb250ZXh0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5jdXN0b21pemF0aW9uU2VydmljZS5nZXRMZWdhY3lVaURlZmluaXRpb24ocHJvZHVjdElkKS5waXBlKFxuICAgICAgbWFwKHVpRGVmID0+ICh7XG4gICAgICAgIC4uLmNvbnRleHQsXG4gICAgICAgIHVpRGVmaW5pdGlvbjogdWlEZWYgPz8gY29udGV4dC51aURlZmluaXRpb24sXG4gICAgICB9KSksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UnVudGltZUNvbnRleHQoXG4gICAgcHJvZHVjdElkOiBzdHJpbmcsXG4gICAgb2ZmZXJpbmdJZDogc3RyaW5nLFxuICAgIHJ1bnRpbWVPcGVyYXRpb246IFJ1bnRpbWVPcGVyYXRpb24sXG4gICk6IE9ic2VydmFibGU8TGVnYWN5UnVudGltZUNvbnRleHQ+IHtcbiAgICByZXR1cm4gdGhpcy5ydW50aW1lQ29udGV4dFNlcnZpY2UuZ2V0UnVudGltZUNvbnRleHQocHJvZHVjdElkLCBvZmZlcmluZ0lkKS5waXBlKFxuICAgICAgbWFwKHJ1bnRpbWVDb250ZXh0ID0+IHtcbiAgICAgICAgcnVudGltZUNvbnRleHQuaW52b2NhdGlvbkNvbnRleHQgPSB7IHJ1bnRpbWVPcGVyYXRpb246IFJ1bnRpbWVPcGVyYXRpb25bcnVudGltZU9wZXJhdGlvbl0gfTtcbiAgICAgICAgcmV0dXJuIHJ1bnRpbWVDb250ZXh0O1xuICAgICAgfSksXG4gICAgICBzd2l0Y2hNYXAocnVudGltZUNvbnRleHQgPT4gdGhpcy5jdXN0b21pemVDb250ZXh0KHByb2R1Y3RJZCwgcnVudGltZUNvbnRleHQpKSxcbiAgICApO1xuICB9XG59XG4iLCI8dmwtcnVudGltZSAjcnVudGltZVZpZXcgKHNvbHV0aW9uVXBkYXRlZCk9XCJvblNvbHV0aW9uVXBkYXRlZCgkZXZlbnQpXCI+PC92bC1ydW50aW1lPlxuIl19