@veloceapps/sdk 4.0.14 → 4.0.16
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.
- package/bundles/veloce-sdk.umd.js +65 -42
- package/bundles/veloce-sdk.umd.js.map +1 -1
- package/esm2015/src/components/header/cart-overlay/cart-preview.component.js +13 -9
- package/esm2015/src/components/header/cart-overlay/cart-preview.module.js +27 -4
- package/esm2015/src/pages/debug/debug.component.js +12 -16
- package/esm2015/src/utils/flow.utils.js +4 -2
- package/fesm2015/veloce-sdk.js +45 -21
- package/fesm2015/veloce-sdk.js.map +1 -1
- package/package.json +1 -1
- package/src/components/header/cart-overlay/cart-preview.component.d.ts +4 -2
- package/src/components/header/cart-overlay/cart-preview.module.d.ts +2 -1
- package/src/pages/debug/debug.component.d.ts +2 -4
- package/src/utils/flow.utils.d.ts +1 -1
@@ -6,22 +6,25 @@ import * as i0 from "@angular/core";
|
|
6
6
|
import * as i1 from "@veloce/sdk/core";
|
7
7
|
import * as i2 from "../../../services/flow-router.service";
|
8
8
|
import * as i3 from "primeng/overlaypanel";
|
9
|
-
import * as i4 from "primeng/
|
10
|
-
import * as i5 from "primeng/
|
11
|
-
import * as i6 from "primeng/
|
12
|
-
import * as i7 from "
|
13
|
-
import * as i8 from "@
|
14
|
-
import * as i9 from "@angular/
|
9
|
+
import * as i4 from "primeng/virtualscroller";
|
10
|
+
import * as i5 from "primeng/button";
|
11
|
+
import * as i6 from "primeng/inputnumber";
|
12
|
+
import * as i7 from "primeng/api";
|
13
|
+
import * as i8 from "@veloce/components";
|
14
|
+
import * as i9 from "@angular/common";
|
15
|
+
import * as i10 from "@angular/forms";
|
15
16
|
export class CartPreviewComponent {
|
16
17
|
constructor(flowConfiguration, routerService, productImagesService, quoteDraftService) {
|
17
18
|
this.flowConfiguration = flowConfiguration;
|
18
19
|
this.routerService = routerService;
|
19
20
|
this.productImagesService = productImagesService;
|
20
21
|
this.quoteDraftService = quoteDraftService;
|
22
|
+
this.productRowHeight = 97;
|
21
23
|
this.form = new FormGroup({});
|
24
|
+
this.hasTermInProducts = false;
|
25
|
+
this.scrollHeight = 0;
|
22
26
|
this.shouldUpdate$ = new BehaviorSubject(true);
|
23
27
|
this.destroyed$ = new Subject();
|
24
|
-
this.hasTermInProducts = false;
|
25
28
|
this.lockedProductId$ = combineLatest([this.routerService.route$, this.routerService.isConfigurationRoute$()]).pipe(map(([route, isConfigurationRoute]) => {
|
26
29
|
if (!isConfigurationRoute) {
|
27
30
|
return null;
|
@@ -34,6 +37,7 @@ export class CartPreviewComponent {
|
|
34
37
|
const { products } = changes;
|
35
38
|
if (products) {
|
36
39
|
this.shouldUpdate$.next(true);
|
40
|
+
this.scrollHeight = Math.min(this.products.length * this.productRowHeight, 460);
|
37
41
|
}
|
38
42
|
}
|
39
43
|
ngAfterViewInit() {
|
@@ -100,7 +104,7 @@ export class CartPreviewComponent {
|
|
100
104
|
}
|
101
105
|
}
|
102
106
|
CartPreviewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: CartPreviewComponent, deps: [{ token: i1.FlowConfigurationService }, { token: i2.FlowRouterService }, { token: i1.ProductImagesService }, { token: i1.QuoteDraftService }], target: i0.ɵɵFactoryTarget.Component });
|
103
|
-
CartPreviewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: CartPreviewComponent, selector: "vl-cart-preview", inputs: { products: "products" }, viewQueries: [{ propertyName: "overlayPanel", first: true, predicate: OverlayPanel, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<p-overlayPanel\n styleClass=\"navigation-settings-overlay flow-header-overlay center no-padding\"\n showTransitionOptions=\"0ms\"\n hideTransitionOptions=\"0ms\"\n>\n <ng-template pTemplate>\n <div class=\"flow-header-overlay__wrapper\" *vlLet=\"lockedProductId$ | async as lockedProductId\">\n <ng-container *vlLet=\"isEditMode$ | async as isEditMode\">\n <ng-container *ngIf=\"products.length > 0; else empty\">\n <h2 class=\"flow-header-overlay__title\">\n <span>Products ({{ products.length }})</span>\n <i class=\"vl-icon vl-icon-close close-icon\" (click)=\"overlayPanel.hide()\"></i>\n </h2>\n\n <
|
107
|
+
CartPreviewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: CartPreviewComponent, selector: "vl-cart-preview", inputs: { products: "products" }, viewQueries: [{ propertyName: "overlayPanel", first: true, predicate: OverlayPanel, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<p-overlayPanel\n styleClass=\"navigation-settings-overlay flow-header-overlay center no-padding\"\n showTransitionOptions=\"0ms\"\n hideTransitionOptions=\"0ms\"\n>\n <ng-template pTemplate>\n <div class=\"flow-header-overlay__wrapper\" *vlLet=\"lockedProductId$ | async as lockedProductId\">\n <ng-container *vlLet=\"isEditMode$ | async as isEditMode\">\n <ng-container *ngIf=\"products.length > 0; else empty\">\n <h2 class=\"flow-header-overlay__title\">\n <span>Products ({{ products.length }})</span>\n <i class=\"vl-icon vl-icon-close close-icon\" (click)=\"overlayPanel.hide()\"></i>\n </h2>\n\n <p-virtualScroller [value]=\"products\" scrollHeight=\"{{ scrollHeight }}px\" [itemSize]=\"productRowHeight\">\n <ng-template pTemplate=\"header\">\n <div class=\"product header\">\n <span>Product</span>\n <span class=\"text-right\">Qty</span>\n <span class=\"text-right\">MRR</span>\n <span class=\"text-right\">NRR</span>\n </div>\n </ng-template>\n\n <ng-template pTemplate=\"item\" let-product>\n <div\n class=\"product item\"\n *vlLet=\"!isEditMode || product.deleted as isReadonlyProduct\"\n [class.readonly]=\"isReadonlyProduct\"\n [class.deleted]=\"product.deleted\"\n >\n <ng-container *vlLet=\"lockedProductId === product.productId as isLockedProduct\">\n <div class=\"product__info\">\n <div class=\"product__image-wrapper\">\n <div\n *ngIf=\"getImageUrl(product.productId) | async as imageUrl; else noImage\"\n class=\"product__image\"\n [ngStyle]=\"{ 'background-image': 'url(' + imageUrl + ')' }\"\n ></div>\n </div>\n <div class=\"flex flex-column justify-content-center\">\n <div class=\"word-break\" [class.line-through]=\"product.deleted\">{{ product.name }}</div>\n <div *ngIf=\"!isReadonlyProduct\">\n <p-button\n label=\"Configure\"\n [disabled]=\"isLockedProduct || !product.configurable || product.hasTerm\"\n styleClass=\"p-button-link p-button-sm p-2 pl-0\"\n (onClick)=\"navigateToProductConfiguration(product.productId, product.id)\"\n ></p-button>\n <p-button\n label=\"Delete\"\n [disabled]=\"isLockedProduct || product.hasTerm\"\n styleClass=\"p-button-link p-button-sm p-button-danger p-2 pr-0\"\n (onClick)=\"deleteHandler(product)\"\n ></p-button>\n </div>\n </div>\n </div>\n\n <ng-container *ngIf=\"form.controls[product.id] as control\">\n <span class=\"pt-2\" *ngIf=\"!isReadonlyProduct; else readonlyQty\">\n <p-inputNumber\n class=\"qty-control\"\n [formControl]=\"$any(control)\"\n [min]=\"1\"\n [required]=\"true\"\n (onBlur)=\"controlBlurHandler(product)\"\n ></p-inputNumber>\n </span>\n <ng-template #readonlyQty\n ><span class=\"text-right\">{{ control.value }}</span></ng-template\n >\n </ng-container>\n\n <span class=\"text-right\" [class.pt-3]=\"!isReadonlyProduct\">${{ product.mrr }}</span>\n <span class=\"text-right\" [class.pt-3]=\"!isReadonlyProduct\">${{ product.nrr }}</span>\n </ng-container>\n </div>\n </ng-template>\n </p-virtualScroller>\n\n <ng-template #noImage>\n <i class=\"vl-icon vl-icon-no-image no-image-icon\"></i>\n </ng-template>\n\n <div class=\"flex justify-content-end footer\">\n <p-button\n label=\"Clear cart\"\n styleClass=\"p-button-link p-button-sm p-button-danger pl-0 pr-0\"\n [disabled]=\"!isEditMode || !!lockedProductId || hasTermInProducts\"\n (onClick)=\"deleteAllHandler()\"\n ></p-button>\n </div>\n </ng-container>\n </ng-container>\n\n <ng-template #empty>\n <h2 class=\"flow-header-overlay__title\">\n <span>Empty Cart</span>\n <i class=\"vl-icon vl-icon-close close-icon\" (click)=\"overlayPanel.hide()\"></i>\n </h2>\n\n <span class=\"empty-state\">There are no products added to the Shopping Cart yet.</span>\n </ng-template>\n </div>\n </ng-template>\n</p-overlayPanel>\n", styles: ["p-virtualscroller ::ng-deep .p-virtualscroller-header{background:none;padding:0;border:none;font-weight:unset}p-virtualscroller ::ng-deep cdk-virtual-scroll-viewport{overflow-y:scroll}.flow-header-overlay__wrapper{display:flex;flex-direction:column;width:460px;max-height:600px}.flow-header-overlay__wrapper .close-icon{cursor:pointer}.flow-header-overlay__title{display:flex;justify-content:space-between;align-items:center;margin:0;padding:16px}.empty-state{color:var(--vl-text-color-deep-accent);padding:0 16px 16px}.product{display:grid;grid-template-columns:auto 60px 70px 70px;padding:16px;border-bottom:1px solid var(--vl-border-color)}.product.readonly{align-items:center}.product.deleted{opacity:.5}.product.header{position:-webkit-sticky;position:sticky;top:0;background-color:var(--surface-card);z-index:1;color:var(--vl-text-color-deep-accent);padding-bottom:0;border-bottom:none;overflow-y:scroll}.product .item{height:97px;overflow:hidden}.product__info{display:flex;grid-gap:16px;gap:16px}.product__image-wrapper{flex-shrink:0;height:64px;width:64px;display:flex;justify-content:center;align-items:center;background:var(--vl-primary-nav-overlay-bg);border-radius:4px}.product__image{background-size:contain;background-repeat:no-repeat;background-position:center;height:calc(100% - 12px);width:calc(100% - 12px)}.product .qty-control ::ng-deep .p-inputnumber-input{align-self:flex-start;text-align:right;height:24px;width:100%}.footer{padding:12px 16px}.word-break{word-break:break-word}.no-image-icon{color:#b4d1ef;height:18px;width:18px}:host ::ng-deep .p-overlaypanel.navigation-settings-overlay{margin-top:20px}\n"], components: [{ type: i3.OverlayPanel, selector: "p-overlayPanel", inputs: ["dismissable", "showCloseIcon", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { type: i4.VirtualScroller, selector: "p-virtualScroller", inputs: ["value", "itemSize", "style", "styleClass", "scrollHeight", "lazy", "rows", "minBufferPx", "maxBufferPx", "delay", "trackBy", "totalRecords", "first", "cache"], outputs: ["onLazyLoad"] }, { type: i5.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "style", "styleClass", "badgeClass"], outputs: ["onClick", "onFocus", "onBlur"] }, { type: i6.InputNumber, selector: "p-inputNumber", inputs: ["showButtons", "format", "buttonLayout", "inputId", "styleClass", "style", "placeholder", "size", "maxlength", "tabindex", "title", "ariaLabel", "ariaRequired", "name", "required", "autocomplete", "min", "max", "incrementButtonClass", "decrementButtonClass", "incrementButtonIcon", "decrementButtonIcon", "readonly", "step", "allowEmpty", "locale", "localeMatcher", "mode", "currency", "currencyDisplay", "useGrouping", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "inputStyle", "inputStyleClass", "disabled"], outputs: ["onInput", "onFocus", "onBlur", "onKeyDown"] }], directives: [{ type: i7.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { type: i8.LetDirective, selector: "[vlLet]", inputs: ["vlLet"] }, { type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i10.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i10.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i10.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }], pipes: { "async": i9.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
104
108
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: CartPreviewComponent, decorators: [{
|
105
109
|
type: Component,
|
106
110
|
args: [{
|
@@ -115,4 +119,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImpo
|
|
115
119
|
}], products: [{
|
116
120
|
type: Input
|
117
121
|
}] } });
|
118
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FydC1wcmV2aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3NyYy9jb21wb25lbnRzL2hlYWRlci9jYXJ0LW92ZXJsYXkvY2FydC1wcmV2aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3NyYy9jb21wb25lbnRzL2hlYWRlci9jYXJ0LW92ZXJsYXkvY2FydC1wcmV2aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULEtBQUssRUFJTCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBYyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7OztBQVVuRyxNQUFNLE9BQU8sb0JBQW9CO0lBYy9CLFlBQ1UsaUJBQTJDLEVBQzNDLGFBQWdDLEVBQ2hDLG9CQUEwQyxFQUMxQyxpQkFBb0M7UUFIcEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUEwQjtRQUMzQyxrQkFBYSxHQUFiLGFBQWEsQ0FBbUI7UUFDaEMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQUMxQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBYnZDLFNBQUksR0FBRyxJQUFJLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUd4QixrQkFBYSxHQUFHLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFDLGVBQVUsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBR2xD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QyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ25GLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBbUIsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2hGLENBQUM7O2tIQW5IVSxvQkFBb0I7c0dBQXBCLG9CQUFvQix1SUFDcEIsWUFBWSxxRUN4QnpCLG8wSkF3R0E7NEZEakZhLG9CQUFvQjtrQkFOaEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixXQUFXLEVBQUUsK0JBQStCO29CQUM1QyxTQUFTLEVBQUUsQ0FBQywrQkFBK0IsQ0FBQztvQkFDNUMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEO2tOQUUwQixZQUFZO3NCQUFwQyxTQUFTO3VCQUFDLFlBQVk7Z0JBRWQsUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGbG93Q29uZmlndXJhdGlvblNlcnZpY2UsIFByb2R1Y3RJbWFnZXNTZXJ2aWNlLCBRdW90ZURyYWZ0U2VydmljZSB9IGZyb20gJ0B2ZWxvY2Uvc2RrL2NvcmUnO1xuaW1wb3J0IHsgT3ZlcmxheVBhbmVsIH0gZnJvbSAncHJpbWVuZy9vdmVybGF5cGFuZWwnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBmaWx0ZXIsIG1hcCwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGbG93Um91dGVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Zsb3ctcm91dGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgSGVhZGVyUHJvZHVjdCB9IGZyb20gJy4uL2hlYWRlci50eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZsLWNhcnQtcHJldmlldycsXG4gIHRlbXBsYXRlVXJsOiAnLi9jYXJ0LXByZXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jYXJ0LXByZXZpZXcuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIENhcnRQcmV2aWV3Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBAVmlld0NoaWxkKE92ZXJsYXlQYW5lbCkgb3ZlcmxheVBhbmVsITogT3ZlcmxheVBhbmVsO1xuXG4gIEBJbnB1dCgpIHByb2R1Y3RzITogSGVhZGVyUHJvZHVjdFtdO1xuXG4gIHB1YmxpYyBmb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XG4gIHB1YmxpYyBsb2NrZWRQcm9kdWN0SWQkOiBPYnNlcnZhYmxlPHN0cmluZyB8IG51bGw+O1xuXG4gIHByaXZhdGUgc2hvdWxkVXBkYXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3QodHJ1ZSk7XG4gIHByaXZhdGUgZGVzdHJveWVkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgcHVibGljIGlzRWRpdE1vZGUkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBwdWJsaWMgaGFzVGVybUluUHJvZHVjdHMgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZsb3dDb25maWd1cmF0aW9uOiBGbG93Q29uZmlndXJhdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXJTZXJ2aWNlOiBGbG93Um91dGVyU2VydmljZSxcbiAgICBwcml2YXRlIHByb2R1Y3RJbWFnZXNTZXJ2aWNlOiBQcm9kdWN0SW1hZ2VzU2VydmljZSxcbiAgICBwcml2YXRlIHF1b3RlRHJhZnRTZXJ2aWNlOiBRdW90ZURyYWZ0U2VydmljZSxcbiAgKSB7XG4gICAgdGhpcy5sb2NrZWRQcm9kdWN0SWQkID0gY29tYmluZUxhdGVzdChbdGhpcy5yb3V0ZXJTZXJ2aWNlLnJvdXRlJCwgdGhpcy5yb3V0ZXJTZXJ2aWNlLmlzQ29uZmlndXJhdGlvblJvdXRlJCgpXSkucGlwZShcbiAgICAgIG1hcCgoW3JvdXRlLCBpc0NvbmZpZ3VyYXRpb25Sb3V0ZV0pID0+IHtcbiAgICAgICAgaWYgKCFpc0NvbmZpZ3VyYXRpb25Sb3V0ZSkge1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJvdXRlLnF1ZXJ5UGFyYW1zLnByb2R1Y3RJZDtcbiAgICAgIH0pLFxuICAgICk7XG5cbiAgICB0aGlzLmlzRWRpdE1vZGUkID0gdGhpcy5xdW90ZURyYWZ0U2VydmljZS5pc0VkaXRNb2RlJCgpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGNvbnN0IHsgcHJvZHVjdHMgfSA9IGNoYW5nZXM7XG5cbiAgICBpZiAocHJvZHVjdHMpIHtcbiAgICAgIHRoaXMuc2hvdWxkVXBkYXRlJC5uZXh0KHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLmxvY2tlZFByb2R1Y3RJZCQsIHRoaXMuaXNFZGl0TW9kZSQsIHRoaXMuc2hvdWxkVXBkYXRlJCwgdGhpcy5vdmVybGF5UGFuZWwub25TaG93XSlcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKCkgPT4gdGhpcy5vdmVybGF5UGFuZWwub3ZlcmxheVZpc2libGUpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKFtsb2NrZWRQcm9kdWN0SWQsIGlzRWRpdE1vZGVdKSA9PiB0aGlzLnVwZGF0ZUNvbnRyb2xzKHRoaXMucHJvZHVjdHMsIGlzRWRpdE1vZGUsIGxvY2tlZFByb2R1Y3RJZCkpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveWVkJC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95ZWQkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0SW1hZ2VVcmwocHJvZHVjdElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHN0cmluZyB8IG51bGw+IHtcbiAgICByZXR1cm4gdGhpcy5wcm9kdWN0SW1hZ2VzU2VydmljZS5nZXRJbWFnZVVybCQocHJvZHVjdElkKTtcbiAgfVxuXG4gIHB1YmxpYyBuYXZpZ2F0ZVRvUHJvZHVjdENvbmZpZ3VyYXRpb24ocHJvZHVjdElkOiBzdHJpbmcsIGxpbmVJdGVtSWQ6IHN0cmluZykge1xuICAgIHRoaXMub3ZlcmxheVBhbmVsLmhpZGUoKTtcbiAgICB0aGlzLnJvdXRlclNlcnZpY2UubmF2aWdhdGVUb1Byb2R1Y3RDb25maWd1cmF0aW9uKHByb2R1Y3RJZCwgbGluZUl0ZW1JZCk7XG4gIH1cblxuICBwdWJsaWMgY29udHJvbEJsdXJIYW5kbGVyKHByb2R1Y3Q6IEhlYWRlclByb2R1Y3QpOiB2b2lkIHtcbiAgICBjb25zdCBjb250cm9sID0gdGhpcy5mb3JtLmNvbnRyb2xzW3Byb2R1Y3QuaWRdO1xuICAgIGlmIChjb250cm9sLmludmFsaWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmZsb3dDb25maWd1cmF0aW9uLnVwZGF0ZShbXG4gICAgICB7XG4gICAgICAgIGRhdGFUeXBlOiAnTElORUlURU0nLFxuICAgICAgICBhdHRyaWJ1dGVUeXBlOiAnUVRZJyxcbiAgICAgICAgaWQ6IHByb2R1Y3QuaWQsXG4gICAgICAgIG5ld1ZhbHVlOiBjb250cm9sLnZhbHVlLFxuICAgICAgfSxcbiAgICBdKTtcbiAgfVxuXG4gIHB1YmxpYyBkZWxldGVIYW5kbGVyKHByb2R1Y3Q6IEhlYWRlclByb2R1Y3QpOiB2b2lkIHtcbiAgICB0aGlzLmZsb3dDb25maWd1cmF0aW9uLmRlbGV0ZShbcHJvZHVjdC5pZF0pO1xuICB9XG5cbiAgcHVibGljIGRlbGV0ZUFsbEhhbmRsZXIoKTogdm9pZCB7XG4gICAgY29uc3QgcHJvZHVjdElkcyA9IHRoaXMucHJvZHVjdHMubWFwKHByb2R1Y3QgPT4gcHJvZHVjdC5pZCk7XG4gICAgdGhpcy5mbG93Q29uZmlndXJhdGlvbi5kZWxldGUocHJvZHVjdElkcyk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUNvbnRyb2xzKHByb2R1Y3RzOiBIZWFkZXJQcm9kdWN0W10sIGlzRWRpdE1vZGU6IGJvb2xlYW4sIGxvY2tlZFByb2R1Y3RJZDogc3RyaW5nIHwgbnVsbCk6IHZvaWQge1xuICAgIGNvbnN0IGlkczogc3RyaW5nW10gPSBbXTtcblxuICAgIHByb2R1Y3RzLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICBpZiAoIWl0ZW0uaWQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZHMucHVzaChpdGVtLmlkKTtcblxuICAgICAgaWYgKCF0aGlzLmZvcm0uY29udHJvbHNbaXRlbS5pZF0pIHtcbiAgICAgICAgdGhpcy5mb3JtLmFkZENvbnRyb2woaXRlbS5pZCwgbmV3IEZvcm1Db250cm9sKGl0ZW0ucXR5LCBbXSkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW2l0ZW0uaWRdPy5zZXRWYWx1ZShpdGVtLnF0eSk7XG4gICAgICB9XG5cbiAgICAgIGlmICghaXNFZGl0TW9kZSB8fCBpdGVtLmRlbGV0ZWQgfHwgaXRlbS5wcm9kdWN0SWQgPT09IGxvY2tlZFByb2R1Y3RJZCkge1xuICAgICAgICB0aGlzLmZvcm0uY29udHJvbHNbaXRlbS5pZF0uZGlzYWJsZSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW2l0ZW0uaWRdLmVuYWJsZSgpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgY29uc3QgcmVtb3ZlZElkcyA9IE9iamVjdC5rZXlzKHRoaXMuZm9ybS5jb250cm9scykuZmlsdGVyKGlkID0+ICFpZHMuaW5jbHVkZXMoaWQpKTtcbiAgICByZW1vdmVkSWRzLmZvckVhY2goaWQgPT4gdGhpcy5mb3JtLnJlbW92ZUNvbnRyb2woaWQpKTtcbiAgICB0aGlzLmhhc1Rlcm1JblByb2R1Y3RzID0gcHJvZHVjdHMuc29tZSgoaXRlbTogSGVhZGVyUHJvZHVjdCkgPT4gaXRlbS5oYXNUZXJtKTtcbiAgfVxufVxuIiwiPHAtb3ZlcmxheVBhbmVsXG4gIHN0eWxlQ2xhc3M9XCJuYXZpZ2F0aW9uLXNldHRpbmdzLW92ZXJsYXkgZmxvdy1oZWFkZXItb3ZlcmxheSBjZW50ZXIgbm8tcGFkZGluZ1wiXG4gIHNob3dUcmFuc2l0aW9uT3B0aW9ucz1cIjBtc1wiXG4gIGhpZGVUcmFuc2l0aW9uT3B0aW9ucz1cIjBtc1wiXG4+XG4gIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU+XG4gICAgPGRpdiBjbGFzcz1cImZsb3ctaGVhZGVyLW92ZXJsYXlfX3dyYXBwZXJcIiAqdmxMZXQ9XCJsb2NrZWRQcm9kdWN0SWQkIHwgYXN5bmMgYXMgbG9ja2VkUHJvZHVjdElkXCI+XG4gICAgICA8bmctY29udGFpbmVyICp2bExldD1cImlzRWRpdE1vZGUkIHwgYXN5bmMgYXMgaXNFZGl0TW9kZVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicHJvZHVjdHMubGVuZ3RoID4gMDsgZWxzZSBlbXB0eVwiPlxuICAgICAgICAgIDxoMiBjbGFzcz1cImZsb3ctaGVhZGVyLW92ZXJsYXlfX3RpdGxlXCI+XG4gICAgICAgICAgICA8c3Bhbj5Qcm9kdWN0cyAoe3sgcHJvZHVjdHMubGVuZ3RoIH19KTwvc3Bhbj5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwidmwtaWNvbiB2bC1pY29uLWNsb3NlIGNsb3NlLWljb25cIiAoY2xpY2spPVwib3ZlcmxheVBhbmVsLmhpZGUoKVwiPjwvaT5cbiAgICAgICAgICA8L2gyPlxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNjcm9sbGFibGUtd3JhcHBlclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb2R1Y3QgaGVhZGVyXCI+XG4gICAgICAgICAgICAgIDxzcGFuPlByb2R1Y3Q8L3NwYW4+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1yaWdodFwiPlF0eTwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXJpZ2h0XCI+TVJSPC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtcmlnaHRcIj5OUlI8L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9kdWN0LXdyYXBwZXJcIiAqbmdGb3I9XCJsZXQgcHJvZHVjdCBvZiBwcm9kdWN0c1wiPlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJwcm9kdWN0XCJcbiAgICAgICAgICAgICAgICAqdmxMZXQ9XCIhaXNFZGl0TW9kZSB8fCBwcm9kdWN0LmRlbGV0ZWQgYXMgaXNSZWFkb25seVByb2R1Y3RcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5yZWFkb25seV09XCJpc1JlYWRvbmx5UHJvZHVjdFwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmRlbGV0ZWRdPVwicHJvZHVjdC5kZWxldGVkXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKnZsTGV0PVwibG9ja2VkUHJvZHVjdElkID09PSBwcm9kdWN0LnByb2R1Y3RJZCBhcyBpc0xvY2tlZFByb2R1Y3RcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9kdWN0X19pbmZvXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9kdWN0X19pbWFnZS13cmFwcGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJnZXRJbWFnZVVybChwcm9kdWN0LnByb2R1Y3RJZCkgfCBhc3luYyBhcyBpbWFnZVVybDsgZWxzZSBub0ltYWdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicHJvZHVjdF9faW1hZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyAnYmFja2dyb3VuZC1pbWFnZSc6ICd1cmwoJyArIGltYWdlVXJsICsgJyknIH1cIlxuICAgICAgICAgICAgICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sdW1uIGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid29yZC1icmVha1wiIFtjbGFzcy5saW5lLXRocm91Z2hdPVwicHJvZHVjdC5kZWxldGVkXCI+e3sgcHJvZHVjdC5uYW1lIH19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFpc1JlYWRvbmx5UHJvZHVjdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHAtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPVwiQ29uZmlndXJlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlzTG9ja2VkUHJvZHVjdCB8fCAhcHJvZHVjdC5jb25maWd1cmFibGUgfHwgcHJvZHVjdC5oYXNUZXJtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGVDbGFzcz1cInAtYnV0dG9uLWxpbmsgcC1idXR0b24tc20gcGwtMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cIm5hdmlnYXRlVG9Qcm9kdWN0Q29uZmlndXJhdGlvbihwcm9kdWN0LnByb2R1Y3RJZCwgcHJvZHVjdC5pZClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvcC1idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9XCJEZWxldGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNMb2NrZWRQcm9kdWN0IHx8IHByb2R1Y3QuaGFzVGVybVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlQ2xhc3M9XCJwLWJ1dHRvbi1saW5rIHAtYnV0dG9uLXNtIHAtYnV0dG9uLWRhbmdlciBwbC0wIHByLTBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAob25DbGljayk9XCJkZWxldGVIYW5kbGVyKHByb2R1Y3QpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L3AtYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZm9ybS5jb250cm9sc1twcm9kdWN0LmlkXSBhcyBjb250cm9sXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicHQtMlwiICpuZ0lmPVwiIWlzUmVhZG9ubHlQcm9kdWN0OyBlbHNlIHJlYWRvbmx5UXR5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHAtaW5wdXROdW1iZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicXR5LWNvbnRyb2xcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cIiRhbnkoY29udHJvbClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW21pbl09XCIxXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChvbkJsdXIpPVwiY29udHJvbEJsdXJIYW5kbGVyKHByb2R1Y3QpXCJcbiAgICAgICAgICAgICAgICAgICAgICA+PC9wLWlucHV0TnVtYmVyPlxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjcmVhZG9ubHlRdHlcbiAgICAgICAgICAgICAgICAgICAgICA+PHNwYW4gY2xhc3M9XCJ0ZXh0LXJpZ2h0XCI+e3sgY29udHJvbC52YWx1ZSB9fTwvc3Bhbj48L25nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtcmlnaHRcIiBbY2xhc3MucHQtM109XCIhaXNSZWFkb25seVByb2R1Y3RcIj4ke3sgcHJvZHVjdC5tcnIgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtcmlnaHRcIiBbY2xhc3MucHQtM109XCIhaXNSZWFkb25seVByb2R1Y3RcIj4ke3sgcHJvZHVjdC5ucnIgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9JbWFnZT5cbiAgICAgICAgICAgICAgPGkgY2xhc3M9XCJ2bC1pY29uIHZsLWljb24tbm8taW1hZ2Ugbm8taW1hZ2UtaWNvblwiPjwvaT5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIG10LTMgZm9vdGVyXCI+XG4gICAgICAgICAgICA8cC1idXR0b25cbiAgICAgICAgICAgICAgbGFiZWw9XCJDbGVhciBjYXJ0XCJcbiAgICAgICAgICAgICAgc3R5bGVDbGFzcz1cInAtYnV0dG9uLWxpbmsgcC1idXR0b24tc20gcC1idXR0b24tZGFuZ2VyIHBsLTAgcHItMFwiXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhaXNFZGl0TW9kZSB8fCAhIWxvY2tlZFByb2R1Y3RJZCB8fCBoYXNUZXJtSW5Qcm9kdWN0c1wiXG4gICAgICAgICAgICAgIChvbkNsaWNrKT1cImRlbGV0ZUFsbEhhbmRsZXIoKVwiXG4gICAgICAgICAgICA+PC9wLWJ1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPG5nLXRlbXBsYXRlICNlbXB0eT5cbiAgICAgICAgPGgyIGNsYXNzPVwiZmxvdy1oZWFkZXItb3ZlcmxheV9fdGl0bGVcIj5cbiAgICAgICAgICA8c3Bhbj5FbXB0eSBDYXJ0PC9zcGFuPlxuICAgICAgICAgIDxpIGNsYXNzPVwidmwtaWNvbiB2bC1pY29uLWNsb3NlIGNsb3NlLWljb25cIiAoY2xpY2spPVwib3ZlcmxheVBhbmVsLmhpZGUoKVwiPjwvaT5cbiAgICAgICAgPC9oMj5cblxuICAgICAgICA8c3BhbiBjbGFzcz1cImVtcHR5LXN0YXRlXCI+VGhlcmUgYXJlIG5vIHByb2R1Y3RzIGFkZGVkIHRvIHRoZSBTaG9wcGluZyBDYXJ0IHlldC48L3NwYW4+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuPC9wLW92ZXJsYXlQYW5lbD5cbiJdfQ==
|
122
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FydC1wcmV2aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3NyYy9jb21wb25lbnRzL2hlYWRlci9jYXJ0LW92ZXJsYXkvY2FydC1wcmV2aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3NyYy9jb21wb25lbnRzL2hlYWRlci9jYXJ0LW92ZXJsYXkvY2FydC1wcmV2aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULEtBQUssRUFJTCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBYyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7Ozs7QUFVbkcsTUFBTSxPQUFPLG9CQUFvQjtJQWdCL0IsWUFDVSxpQkFBMkMsRUFDM0MsYUFBZ0MsRUFDaEMsb0JBQTBDLEVBQzFDLGlCQUFvQztRQUhwQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQTBCO1FBQzNDLGtCQUFhLEdBQWIsYUFBYSxDQUFtQjtRQUNoQyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBQzFDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFmOUIscUJBQWdCLEdBQUcsRUFBRSxDQUFDO1FBRS9CLFNBQUksR0FBRyxJQUFJLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUd6QixzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFDMUIsaUJBQVksR0FBRyxDQUFDLENBQUM7UUFF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QUMsT0FBTyxFQUFFLENBQUM7YUFDdkM7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO2FBQ3RDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbkYsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFtQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDaEYsQ0FBQzs7a0hBdEhVLG9CQUFvQjtzR0FBcEIsb0JBQW9CLHVJQUNwQixZQUFZLHFFQ3hCekIsdStKQTJHQTs0RkRwRmEsb0JBQW9CO2tCQU5oQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxpQkFBaUI7b0JBQzNCLFdBQVcsRUFBRSwrQkFBK0I7b0JBQzVDLFNBQVMsRUFBRSxDQUFDLCtCQUErQixDQUFDO29CQUM1QyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDaEQ7a05BRTBCLFlBQVk7c0JBQXBDLFNBQVM7dUJBQUMsWUFBWTtnQkFFZCxRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZsb3dDb25maWd1cmF0aW9uU2VydmljZSwgUHJvZHVjdEltYWdlc1NlcnZpY2UsIFF1b3RlRHJhZnRTZXJ2aWNlIH0gZnJvbSAnQHZlbG9jZS9zZGsvY29yZSc7XG5pbXBvcnQgeyBPdmVybGF5UGFuZWwgfSBmcm9tICdwcmltZW5nL292ZXJsYXlwYW5lbCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGZpbHRlciwgbWFwLCBPYnNlcnZhYmxlLCBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZsb3dSb3V0ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZmxvdy1yb3V0ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBIZWFkZXJQcm9kdWN0IH0gZnJvbSAnLi4vaGVhZGVyLnR5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmwtY2FydC1wcmV2aWV3JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NhcnQtcHJldmlldy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NhcnQtcHJldmlldy5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQ2FydFByZXZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIEBWaWV3Q2hpbGQoT3ZlcmxheVBhbmVsKSBvdmVybGF5UGFuZWwhOiBPdmVybGF5UGFuZWw7XG5cbiAgQElucHV0KCkgcHJvZHVjdHMhOiBIZWFkZXJQcm9kdWN0W107XG5cbiAgcHVibGljIHJlYWRvbmx5IHByb2R1Y3RSb3dIZWlnaHQgPSA5NztcblxuICBwdWJsaWMgZm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xuICBwdWJsaWMgbG9ja2VkUHJvZHVjdElkJDogT2JzZXJ2YWJsZTxzdHJpbmcgfCBudWxsPjtcbiAgcHVibGljIGlzRWRpdE1vZGUkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBwdWJsaWMgaGFzVGVybUluUHJvZHVjdHMgPSBmYWxzZTtcbiAgcHVibGljIHNjcm9sbEhlaWdodCA9IDA7XG5cbiAgcHJpdmF0ZSBzaG91bGRVcGRhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0cnVlKTtcbiAgcHJpdmF0ZSBkZXN0cm95ZWQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZsb3dDb25maWd1cmF0aW9uOiBGbG93Q29uZmlndXJhdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXJTZXJ2aWNlOiBGbG93Um91dGVyU2VydmljZSxcbiAgICBwcml2YXRlIHByb2R1Y3RJbWFnZXNTZXJ2aWNlOiBQcm9kdWN0SW1hZ2VzU2VydmljZSxcbiAgICBwcml2YXRlIHF1b3RlRHJhZnRTZXJ2aWNlOiBRdW90ZURyYWZ0U2VydmljZSxcbiAgKSB7XG4gICAgdGhpcy5sb2NrZWRQcm9kdWN0SWQkID0gY29tYmluZUxhdGVzdChbdGhpcy5yb3V0ZXJTZXJ2aWNlLnJvdXRlJCwgdGhpcy5yb3V0ZXJTZXJ2aWNlLmlzQ29uZmlndXJhdGlvblJvdXRlJCgpXSkucGlwZShcbiAgICAgIG1hcCgoW3JvdXRlLCBpc0NvbmZpZ3VyYXRpb25Sb3V0ZV0pID0+IHtcbiAgICAgICAgaWYgKCFpc0NvbmZpZ3VyYXRpb25Sb3V0ZSkge1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJvdXRlLnF1ZXJ5UGFyYW1zLnByb2R1Y3RJZDtcbiAgICAgIH0pLFxuICAgICk7XG5cbiAgICB0aGlzLmlzRWRpdE1vZGUkID0gdGhpcy5xdW90ZURyYWZ0U2VydmljZS5pc0VkaXRNb2RlJCgpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGNvbnN0IHsgcHJvZHVjdHMgfSA9IGNoYW5nZXM7XG5cbiAgICBpZiAocHJvZHVjdHMpIHtcbiAgICAgIHRoaXMuc2hvdWxkVXBkYXRlJC5uZXh0KHRydWUpO1xuICAgICAgdGhpcy5zY3JvbGxIZWlnaHQgPSBNYXRoLm1pbih0aGlzLnByb2R1Y3RzLmxlbmd0aCAqIHRoaXMucHJvZHVjdFJvd0hlaWdodCwgNDYwKTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgY29tYmluZUxhdGVzdChbdGhpcy5sb2NrZWRQcm9kdWN0SWQkLCB0aGlzLmlzRWRpdE1vZGUkLCB0aGlzLnNob3VsZFVwZGF0ZSQsIHRoaXMub3ZlcmxheVBhbmVsLm9uU2hvd10pXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKCgpID0+IHRoaXMub3ZlcmxheVBhbmVsLm92ZXJsYXlWaXNpYmxlKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChbbG9ja2VkUHJvZHVjdElkLCBpc0VkaXRNb2RlXSkgPT4gdGhpcy51cGRhdGVDb250cm9scyh0aGlzLnByb2R1Y3RzLCBpc0VkaXRNb2RlLCBsb2NrZWRQcm9kdWN0SWQpKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3llZCQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveWVkJC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHVibGljIGdldEltYWdlVXJsKHByb2R1Y3RJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxzdHJpbmcgfCBudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMucHJvZHVjdEltYWdlc1NlcnZpY2UuZ2V0SW1hZ2VVcmwkKHByb2R1Y3RJZCk7XG4gIH1cblxuICBwdWJsaWMgbmF2aWdhdGVUb1Byb2R1Y3RDb25maWd1cmF0aW9uKHByb2R1Y3RJZDogc3RyaW5nLCBsaW5lSXRlbUlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLm92ZXJsYXlQYW5lbC5oaWRlKCk7XG4gICAgdGhpcy5yb3V0ZXJTZXJ2aWNlLm5hdmlnYXRlVG9Qcm9kdWN0Q29uZmlndXJhdGlvbihwcm9kdWN0SWQsIGxpbmVJdGVtSWQpO1xuICB9XG5cbiAgcHVibGljIGNvbnRyb2xCbHVySGFuZGxlcihwcm9kdWN0OiBIZWFkZXJQcm9kdWN0KTogdm9pZCB7XG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuZm9ybS5jb250cm9sc1twcm9kdWN0LmlkXTtcbiAgICBpZiAoY29udHJvbC5pbnZhbGlkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5mbG93Q29uZmlndXJhdGlvbi51cGRhdGUoW1xuICAgICAge1xuICAgICAgICBkYXRhVHlwZTogJ0xJTkVJVEVNJyxcbiAgICAgICAgYXR0cmlidXRlVHlwZTogJ1FUWScsXG4gICAgICAgIGlkOiBwcm9kdWN0LmlkLFxuICAgICAgICBuZXdWYWx1ZTogY29udHJvbC52YWx1ZSxcbiAgICAgIH0sXG4gICAgXSk7XG4gIH1cblxuICBwdWJsaWMgZGVsZXRlSGFuZGxlcihwcm9kdWN0OiBIZWFkZXJQcm9kdWN0KTogdm9pZCB7XG4gICAgdGhpcy5mbG93Q29uZmlndXJhdGlvbi5kZWxldGUoW3Byb2R1Y3QuaWRdKTtcbiAgfVxuXG4gIHB1YmxpYyBkZWxldGVBbGxIYW5kbGVyKCk6IHZvaWQge1xuICAgIGNvbnN0IHByb2R1Y3RJZHMgPSB0aGlzLnByb2R1Y3RzLm1hcChwcm9kdWN0ID0+IHByb2R1Y3QuaWQpO1xuICAgIHRoaXMuZmxvd0NvbmZpZ3VyYXRpb24uZGVsZXRlKHByb2R1Y3RJZHMpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVDb250cm9scyhwcm9kdWN0czogSGVhZGVyUHJvZHVjdFtdLCBpc0VkaXRNb2RlOiBib29sZWFuLCBsb2NrZWRQcm9kdWN0SWQ6IHN0cmluZyB8IG51bGwpOiB2b2lkIHtcbiAgICBjb25zdCBpZHM6IHN0cmluZ1tdID0gW107XG5cbiAgICBwcm9kdWN0cy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgaWYgKCFpdGVtLmlkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWRzLnB1c2goaXRlbS5pZCk7XG5cbiAgICAgIGlmICghdGhpcy5mb3JtLmNvbnRyb2xzW2l0ZW0uaWRdKSB7XG4gICAgICAgIHRoaXMuZm9ybS5hZGRDb250cm9sKGl0ZW0uaWQsIG5ldyBGb3JtQ29udHJvbChpdGVtLnF0eSwgW10pKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZm9ybS5jb250cm9sc1tpdGVtLmlkXT8uc2V0VmFsdWUoaXRlbS5xdHkpO1xuICAgICAgfVxuXG4gICAgICBpZiAoIWlzRWRpdE1vZGUgfHwgaXRlbS5kZWxldGVkIHx8IGl0ZW0ucHJvZHVjdElkID09PSBsb2NrZWRQcm9kdWN0SWQpIHtcbiAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW2l0ZW0uaWRdLmRpc2FibGUoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZm9ybS5jb250cm9sc1tpdGVtLmlkXS5lbmFibGUoKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGNvbnN0IHJlbW92ZWRJZHMgPSBPYmplY3Qua2V5cyh0aGlzLmZvcm0uY29udHJvbHMpLmZpbHRlcihpZCA9PiAhaWRzLmluY2x1ZGVzKGlkKSk7XG4gICAgcmVtb3ZlZElkcy5mb3JFYWNoKGlkID0+IHRoaXMuZm9ybS5yZW1vdmVDb250cm9sKGlkKSk7XG4gICAgdGhpcy5oYXNUZXJtSW5Qcm9kdWN0cyA9IHByb2R1Y3RzLnNvbWUoKGl0ZW06IEhlYWRlclByb2R1Y3QpID0+IGl0ZW0uaGFzVGVybSk7XG4gIH1cbn1cbiIsIjxwLW92ZXJsYXlQYW5lbFxuICBzdHlsZUNsYXNzPVwibmF2aWdhdGlvbi1zZXR0aW5ncy1vdmVybGF5IGZsb3ctaGVhZGVyLW92ZXJsYXkgY2VudGVyIG5vLXBhZGRpbmdcIlxuICBzaG93VHJhbnNpdGlvbk9wdGlvbnM9XCIwbXNcIlxuICBoaWRlVHJhbnNpdGlvbk9wdGlvbnM9XCIwbXNcIlxuPlxuICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPlxuICAgIDxkaXYgY2xhc3M9XCJmbG93LWhlYWRlci1vdmVybGF5X193cmFwcGVyXCIgKnZsTGV0PVwibG9ja2VkUHJvZHVjdElkJCB8IGFzeW5jIGFzIGxvY2tlZFByb2R1Y3RJZFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqdmxMZXQ9XCJpc0VkaXRNb2RlJCB8IGFzeW5jIGFzIGlzRWRpdE1vZGVcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInByb2R1Y3RzLmxlbmd0aCA+IDA7IGVsc2UgZW1wdHlcIj5cbiAgICAgICAgICA8aDIgY2xhc3M9XCJmbG93LWhlYWRlci1vdmVybGF5X190aXRsZVwiPlxuICAgICAgICAgICAgPHNwYW4+UHJvZHVjdHMgKHt7IHByb2R1Y3RzLmxlbmd0aCB9fSk8L3NwYW4+XG4gICAgICAgICAgICA8aSBjbGFzcz1cInZsLWljb24gdmwtaWNvbi1jbG9zZSBjbG9zZS1pY29uXCIgKGNsaWNrKT1cIm92ZXJsYXlQYW5lbC5oaWRlKClcIj48L2k+XG4gICAgICAgICAgPC9oMj5cblxuICAgICAgICAgIDxwLXZpcnR1YWxTY3JvbGxlciBbdmFsdWVdPVwicHJvZHVjdHNcIiBzY3JvbGxIZWlnaHQ9XCJ7eyBzY3JvbGxIZWlnaHQgfX1weFwiIFtpdGVtU2l6ZV09XCJwcm9kdWN0Um93SGVpZ2h0XCI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGVyXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9kdWN0IGhlYWRlclwiPlxuICAgICAgICAgICAgICAgIDxzcGFuPlByb2R1Y3Q8L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXJpZ2h0XCI+UXR5PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1yaWdodFwiPk1SUjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtcmlnaHRcIj5OUlI8L3NwYW4+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cIml0ZW1cIiBsZXQtcHJvZHVjdD5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwicHJvZHVjdCBpdGVtXCJcbiAgICAgICAgICAgICAgICAqdmxMZXQ9XCIhaXNFZGl0TW9kZSB8fCBwcm9kdWN0LmRlbGV0ZWQgYXMgaXNSZWFkb25seVByb2R1Y3RcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5yZWFkb25seV09XCJpc1JlYWRvbmx5UHJvZHVjdFwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmRlbGV0ZWRdPVwicHJvZHVjdC5kZWxldGVkXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKnZsTGV0PVwibG9ja2VkUHJvZHVjdElkID09PSBwcm9kdWN0LnByb2R1Y3RJZCBhcyBpc0xvY2tlZFByb2R1Y3RcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9kdWN0X19pbmZvXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9kdWN0X19pbWFnZS13cmFwcGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJnZXRJbWFnZVVybChwcm9kdWN0LnByb2R1Y3RJZCkgfCBhc3luYyBhcyBpbWFnZVVybDsgZWxzZSBub0ltYWdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicHJvZHVjdF9faW1hZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyAnYmFja2dyb3VuZC1pbWFnZSc6ICd1cmwoJyArIGltYWdlVXJsICsgJyknIH1cIlxuICAgICAgICAgICAgICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sdW1uIGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid29yZC1icmVha1wiIFtjbGFzcy5saW5lLXRocm91Z2hdPVwicHJvZHVjdC5kZWxldGVkXCI+e3sgcHJvZHVjdC5uYW1lIH19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFpc1JlYWRvbmx5UHJvZHVjdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHAtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPVwiQ29uZmlndXJlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlzTG9ja2VkUHJvZHVjdCB8fCAhcHJvZHVjdC5jb25maWd1cmFibGUgfHwgcHJvZHVjdC5oYXNUZXJtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGVDbGFzcz1cInAtYnV0dG9uLWxpbmsgcC1idXR0b24tc20gcC0yIHBsLTBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAob25DbGljayk9XCJuYXZpZ2F0ZVRvUHJvZHVjdENvbmZpZ3VyYXRpb24ocHJvZHVjdC5wcm9kdWN0SWQsIHByb2R1Y3QuaWQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L3AtYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHAtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPVwiRGVsZXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlzTG9ja2VkUHJvZHVjdCB8fCBwcm9kdWN0Lmhhc1Rlcm1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZUNsYXNzPVwicC1idXR0b24tbGluayBwLWJ1dHRvbi1zbSBwLWJ1dHRvbi1kYW5nZXIgcC0yIHByLTBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAob25DbGljayk9XCJkZWxldGVIYW5kbGVyKHByb2R1Y3QpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L3AtYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZm9ybS5jb250cm9sc1twcm9kdWN0LmlkXSBhcyBjb250cm9sXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicHQtMlwiICpuZ0lmPVwiIWlzUmVhZG9ubHlQcm9kdWN0OyBlbHNlIHJlYWRvbmx5UXR5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHAtaW5wdXROdW1iZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicXR5LWNvbnRyb2xcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cIiRhbnkoY29udHJvbClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW21pbl09XCIxXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChvbkJsdXIpPVwiY29udHJvbEJsdXJIYW5kbGVyKHByb2R1Y3QpXCJcbiAgICAgICAgICAgICAgICAgICAgICA+PC9wLWlucHV0TnVtYmVyPlxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjcmVhZG9ubHlRdHlcbiAgICAgICAgICAgICAgICAgICAgICA+PHNwYW4gY2xhc3M9XCJ0ZXh0LXJpZ2h0XCI+e3sgY29udHJvbC52YWx1ZSB9fTwvc3Bhbj48L25nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtcmlnaHRcIiBbY2xhc3MucHQtM109XCIhaXNSZWFkb25seVByb2R1Y3RcIj4ke3sgcHJvZHVjdC5tcnIgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtcmlnaHRcIiBbY2xhc3MucHQtM109XCIhaXNSZWFkb25seVByb2R1Y3RcIj4ke3sgcHJvZHVjdC5ucnIgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8L3AtdmlydHVhbFNjcm9sbGVyPlxuXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNub0ltYWdlPlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJ2bC1pY29uIHZsLWljb24tbm8taW1hZ2Ugbm8taW1hZ2UtaWNvblwiPjwvaT5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1jb250ZW50LWVuZCBmb290ZXJcIj5cbiAgICAgICAgICAgIDxwLWJ1dHRvblxuICAgICAgICAgICAgICBsYWJlbD1cIkNsZWFyIGNhcnRcIlxuICAgICAgICAgICAgICBzdHlsZUNsYXNzPVwicC1idXR0b24tbGluayBwLWJ1dHRvbi1zbSBwLWJ1dHRvbi1kYW5nZXIgcGwtMCBwci0wXCJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFpc0VkaXRNb2RlIHx8ICEhbG9ja2VkUHJvZHVjdElkIHx8IGhhc1Rlcm1JblByb2R1Y3RzXCJcbiAgICAgICAgICAgICAgKG9uQ2xpY2spPVwiZGVsZXRlQWxsSGFuZGxlcigpXCJcbiAgICAgICAgICAgID48L3AtYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8bmctdGVtcGxhdGUgI2VtcHR5PlxuICAgICAgICA8aDIgY2xhc3M9XCJmbG93LWhlYWRlci1vdmVybGF5X190aXRsZVwiPlxuICAgICAgICAgIDxzcGFuPkVtcHR5IENhcnQ8L3NwYW4+XG4gICAgICAgICAgPGkgY2xhc3M9XCJ2bC1pY29uIHZsLWljb24tY2xvc2UgY2xvc2UtaWNvblwiIChjbGljayk9XCJvdmVybGF5UGFuZWwuaGlkZSgpXCI+PC9pPlxuICAgICAgICA8L2gyPlxuXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZW1wdHktc3RhdGVcIj5UaGVyZSBhcmUgbm8gcHJvZHVjdHMgYWRkZWQgdG8gdGhlIFNob3BwaW5nIENhcnQgeWV0Ljwvc3Bhbj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG48L3Atb3ZlcmxheVBhbmVsPlxuIl19
|
@@ -5,19 +5,42 @@ import { LetDirectiveModule } from '@veloce/components';
|
|
5
5
|
import { ButtonModule } from 'primeng/button';
|
6
6
|
import { InputNumberModule } from 'primeng/inputnumber';
|
7
7
|
import { OverlayPanelModule } from 'primeng/overlaypanel';
|
8
|
+
import { VirtualScrollerModule } from 'primeng/virtualscroller';
|
8
9
|
import { CartPreviewComponent } from './cart-preview.component';
|
9
10
|
import * as i0 from "@angular/core";
|
10
11
|
export class CartPreviewModule {
|
11
12
|
}
|
12
13
|
CartPreviewModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: CartPreviewModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
13
|
-
CartPreviewModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: CartPreviewModule, declarations: [CartPreviewComponent], imports: [CommonModule,
|
14
|
-
|
14
|
+
CartPreviewModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: CartPreviewModule, declarations: [CartPreviewComponent], imports: [CommonModule,
|
15
|
+
ReactiveFormsModule,
|
16
|
+
ButtonModule,
|
17
|
+
OverlayPanelModule,
|
18
|
+
LetDirectiveModule,
|
19
|
+
InputNumberModule,
|
20
|
+
VirtualScrollerModule], exports: [CartPreviewComponent] });
|
21
|
+
CartPreviewModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: CartPreviewModule, imports: [[
|
22
|
+
CommonModule,
|
23
|
+
ReactiveFormsModule,
|
24
|
+
ButtonModule,
|
25
|
+
OverlayPanelModule,
|
26
|
+
LetDirectiveModule,
|
27
|
+
InputNumberModule,
|
28
|
+
VirtualScrollerModule,
|
29
|
+
]] });
|
15
30
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: CartPreviewModule, decorators: [{
|
16
31
|
type: NgModule,
|
17
32
|
args: [{
|
18
33
|
declarations: [CartPreviewComponent],
|
19
|
-
imports: [
|
34
|
+
imports: [
|
35
|
+
CommonModule,
|
36
|
+
ReactiveFormsModule,
|
37
|
+
ButtonModule,
|
38
|
+
OverlayPanelModule,
|
39
|
+
LetDirectiveModule,
|
40
|
+
InputNumberModule,
|
41
|
+
VirtualScrollerModule,
|
42
|
+
],
|
20
43
|
exports: [CartPreviewComponent],
|
21
44
|
}]
|
22
45
|
}] });
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FydC1wcmV2aWV3Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3NyYy9jb21wb25lbnRzL2hlYWRlci9jYXJ0LW92ZXJsYXkvY2FydC1wcmV2aWV3Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDMUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDaEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBZWhFLE1BQU0sT0FBTyxpQkFBaUI7OytHQUFqQixpQkFBaUI7Z0hBQWpCLGlCQUFpQixpQkFaYixvQkFBb0IsYUFFakMsWUFBWTtRQUNaLG1CQUFtQjtRQUNuQixZQUFZO1FBQ1osa0JBQWtCO1FBQ2xCLGtCQUFrQjtRQUNsQixpQkFBaUI7UUFDakIscUJBQXFCLGFBRWIsb0JBQW9CO2dIQUVuQixpQkFBaUIsWUFYbkI7WUFDUCxZQUFZO1lBQ1osbUJBQW1CO1lBQ25CLFlBQVk7WUFDWixrQkFBa0I7WUFDbEIsa0JBQWtCO1lBQ2xCLGlCQUFpQjtZQUNqQixxQkFBcUI7U0FDdEI7NEZBR1UsaUJBQWlCO2tCQWI3QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLG9CQUFvQixDQUFDO29CQUNwQyxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixtQkFBbUI7d0JBQ25CLFlBQVk7d0JBQ1osa0JBQWtCO3dCQUNsQixrQkFBa0I7d0JBQ2xCLGlCQUFpQjt3QkFDakIscUJBQXFCO3FCQUN0QjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztpQkFDaEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBMZXREaXJlY3RpdmVNb2R1bGUgfSBmcm9tICdAdmVsb2NlL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgQnV0dG9uTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9idXR0b24nO1xuaW1wb3J0IHsgSW5wdXROdW1iZXJNb2R1bGUgfSBmcm9tICdwcmltZW5nL2lucHV0bnVtYmVyJztcbmltcG9ydCB7IE92ZXJsYXlQYW5lbE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvb3ZlcmxheXBhbmVsJztcbmltcG9ydCB7IFZpcnR1YWxTY3JvbGxlck1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvdmlydHVhbHNjcm9sbGVyJztcbmltcG9ydCB7IENhcnRQcmV2aWV3Q29tcG9uZW50IH0gZnJvbSAnLi9jYXJ0LXByZXZpZXcuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbQ2FydFByZXZpZXdDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgQnV0dG9uTW9kdWxlLFxuICAgIE92ZXJsYXlQYW5lbE1vZHVsZSxcbiAgICBMZXREaXJlY3RpdmVNb2R1bGUsXG4gICAgSW5wdXROdW1iZXJNb2R1bGUsXG4gICAgVmlydHVhbFNjcm9sbGVyTW9kdWxlLFxuICBdLFxuICBleHBvcnRzOiBbQ2FydFByZXZpZXdDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBDYXJ0UHJldmlld01vZHVsZSB7fVxuIl19
|
@@ -6,24 +6,20 @@ import * as i0 from "@angular/core";
|
|
6
6
|
import * as i1 from "@veloce/api";
|
7
7
|
import * as i2 from "@angular/router";
|
8
8
|
import * as i3 from "@veloce/sdk/core";
|
9
|
-
import * as i4 from "primeng/
|
10
|
-
import * as i5 from "primeng/
|
11
|
-
import * as i6 from "
|
12
|
-
import * as i7 from "
|
13
|
-
import * as i8 from "
|
14
|
-
import * as i9 from "@angular/common";
|
9
|
+
import * as i4 from "primeng/button";
|
10
|
+
import * as i5 from "primeng/radiobutton";
|
11
|
+
import * as i6 from "@angular/forms";
|
12
|
+
import * as i7 from "primeng/inputtext";
|
13
|
+
import * as i8 from "@angular/common";
|
15
14
|
export class DebugComponent {
|
16
|
-
constructor(flowsApiService, router, activatedRoute, context,
|
15
|
+
constructor(flowsApiService, router, activatedRoute, context, quoteDraftService) {
|
17
16
|
this.flowsApiService = flowsApiService;
|
18
17
|
this.router = router;
|
19
18
|
this.activatedRoute = activatedRoute;
|
20
19
|
this.context = context;
|
21
|
-
this.flowConfiguration = flowConfiguration;
|
22
20
|
this.quoteDraftService = quoteDraftService;
|
23
|
-
this.objectNames = ['Account', 'Quote', 'Order'];
|
24
21
|
this.form = new FormGroup({
|
25
22
|
id: new FormControl(''),
|
26
|
-
name: new FormControl('Quote'),
|
27
23
|
});
|
28
24
|
this.flows$ = this.flowsApiService.fetchFlows().pipe(map(flows => flows.map(flow => {
|
29
25
|
var _a, _b, _c;
|
@@ -37,8 +33,8 @@ export class DebugComponent {
|
|
37
33
|
})), shareReplay());
|
38
34
|
}
|
39
35
|
runFlow() {
|
40
|
-
const { id
|
41
|
-
const objectPropertyName = getFlowObjectIdPropertyName(
|
36
|
+
const { id } = this.form.value;
|
37
|
+
const objectPropertyName = getFlowObjectIdPropertyName(id);
|
42
38
|
if (!id || !this.selectedFlow) {
|
43
39
|
return;
|
44
40
|
}
|
@@ -51,8 +47,8 @@ export class DebugComponent {
|
|
51
47
|
});
|
52
48
|
}
|
53
49
|
}
|
54
|
-
DebugComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: DebugComponent, deps: [{ token: i1.FlowsApiService }, { token: i2.Router }, { token: i2.ActivatedRoute }, { token: i3.ContextService }, { token: i3.
|
55
|
-
DebugComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: DebugComponent, selector: "vl-flow-debug", ngImport: i0, template: "<form [formGroup]=\"form\">\n <div class=\"fields-container\">\n <div class=\"field\">\n <label>SF Object ID</label>\n <input formControlName=\"id\" pInputText type=\"text\" />\n </div>\n
|
50
|
+
DebugComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: DebugComponent, deps: [{ token: i1.FlowsApiService }, { token: i2.Router }, { token: i2.ActivatedRoute }, { token: i3.ContextService }, { token: i3.QuoteDraftService }], target: i0.ɵɵFactoryTarget.Component });
|
51
|
+
DebugComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: DebugComponent, selector: "vl-flow-debug", ngImport: i0, template: "<form [formGroup]=\"form\">\n <div class=\"fields-container\">\n <div class=\"field\">\n <label>SF Object ID</label>\n <input formControlName=\"id\" pInputText type=\"text\" />\n </div>\n </div>\n\n <p-button\n styleClass=\"p-button-primary\"\n label=\"Run Flow\"\n [disabled]=\"!form.value.id || !selectedFlow\"\n (onClick)=\"runFlow()\"\n ></p-button>\n</form>\n\n<table>\n <thead>\n <tr>\n <th [width]=\"30\"></th>\n <th [width]=\"160\">ID</th>\n <th [width]=\"160\">Entry Path</th>\n <th>QueryParams</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let flow of flows$ | async\" (click)=\"selectedFlow = flow\">\n <td><p-radioButton [inputId]=\"flow.id\" name=\"flow\" [value]=\"flow\" [(ngModel)]=\"selectedFlow\"></p-radioButton></td>\n <td>{{ flow.id }}</td>\n <td>{{ flow.entryPath }}</td>\n <td>{{ flow.queryParamsStr }}</td>\n </tr>\n </tbody>\n</table>\n", styles: [":host{display:block;padding:24px 54px}form{display:flex;align-items:center;justify-content:space-between}.fields-container{display:flex;grid-gap:24px;gap:24px}.field{display:flex;flex-direction:column;width:200px;flex-shrink:0}:host ::ng-deep .p-dropdown{width:100%}table{width:100%;border-collapse:collapse}tr{cursor:pointer}tr:hover{background-color:#f0f5fa}th{text-align:left;font-weight:600}th,td{padding:0 10px;height:30px;border-bottom:1px solid var(--vl-border-color);margin-right:16px}\n"], components: [{ type: i4.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "style", "styleClass", "badgeClass"], outputs: ["onClick", "onFocus", "onBlur"] }, { type: i5.RadioButton, selector: "p-radioButton", inputs: ["value", "formControlName", "name", "disabled", "label", "tabindex", "inputId", "ariaLabelledBy", "ariaLabel", "style", "styleClass", "labelStyleClass"], outputs: ["onClick", "onFocus", "onBlur"] }], directives: [{ type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i6.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i7.InputText, selector: "[pInputText]" }, { type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "async": i8.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
56
52
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: DebugComponent, decorators: [{
|
57
53
|
type: Component,
|
58
54
|
args: [{
|
@@ -61,5 +57,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImpo
|
|
61
57
|
styleUrls: ['./debug.component.scss'],
|
62
58
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
63
59
|
}]
|
64
|
-
}], ctorParameters: function () { return [{ type: i1.FlowsApiService }, { type: i2.Router }, { type: i2.ActivatedRoute }, { type: i3.ContextService }, { type: i3.
|
65
|
-
//# sourceMappingURL=data:application/json;base64,
|
60
|
+
}], ctorParameters: function () { return [{ type: i1.FlowsApiService }, { type: i2.Router }, { type: i2.ActivatedRoute }, { type: i3.ContextService }, { type: i3.QuoteDraftService }]; } });
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVidWcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvc3JjL3BhZ2VzL2RlYnVnL2RlYnVnLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3NyYy9wYWdlcy9kZWJ1Zy9kZWJ1Zy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFLeEQsT0FBTyxFQUFFLEdBQUcsRUFBYyxXQUFXLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sYUFBYSxDQUFDOzs7Ozs7Ozs7O0FBWTFELE1BQU0sT0FBTyxjQUFjO0lBUXpCLFlBQ1UsZUFBZ0MsRUFDaEMsTUFBYyxFQUNkLGNBQThCLEVBQzlCLE9BQXVCLEVBQ3ZCLGlCQUFvQztRQUpwQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUN2QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBWnZDLFNBQUksR0FBRyxJQUFJLFNBQVMsQ0FBQztZQUMxQixFQUFFLEVBQUUsSUFBSSxXQUFXLENBQUMsRUFBRSxDQUFDO1NBQ3hCLENBQUMsQ0FBQztRQVlELElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxJQUFJLENBQ2xELEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUNWLEtBQUssQ0FBQyxHQUFHLENBQW9CLElBQUksQ0FBQyxFQUFFOztZQUNsQyxNQUFNLFdBQVcsR0FBVyxNQUFBLE1BQUEsSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLFVBQVUsMENBQUUsV0FBVyxtQ0FBSSxFQUFFLENBQUM7WUFDaEUsT0FBTztnQkFDTCxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUU7Z0JBQ1gsU0FBUyxFQUFFLE1BQUEsSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLFVBQVUsMENBQUUsU0FBUztnQkFDdEMsV0FBVztnQkFDWCxjQUFjLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUM7YUFDNUMsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUNILEVBQ0QsV0FBVyxFQUFFLENBQ2QsQ0FBQztJQUNKLENBQUM7SUFFRCxPQUFPO1FBQ0wsTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQy9CLE1BQU0sa0JBQWtCLEdBQUcsMkJBQTJCLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFM0QsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDN0IsT0FBTztTQUNSO1FBRUQsNENBQTRDO1FBQzVDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxDQUFDO1FBRS9CLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxFQUFFO1lBQ3BDLFdBQVcsa0JBQ1QsTUFBTSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxFQUM1QixDQUFDLGtCQUFrQixDQUFDLEVBQUUsRUFBRSxJQUNyQixJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FDakM7WUFDRCxVQUFVLEVBQUUsSUFBSSxDQUFDLGNBQWM7U0FDaEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7NEdBbkRVLGNBQWM7Z0dBQWQsY0FBYyxxRENuQjNCLDA3QkFrQ0E7NEZEZmEsY0FBYztrQkFOMUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZUFBZTtvQkFDekIsV0FBVyxFQUFFLHdCQUF3QjtvQkFDckMsU0FBUyxFQUFFLENBQUMsd0JBQXdCLENBQUM7b0JBQ3JDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUGFyYW1zLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgRmxvd3NBcGlTZXJ2aWNlIH0gZnJvbSAnQHZlbG9jZS9hcGknO1xuaW1wb3J0IHsgRmxvd1Byb3BlcnRpZXMgfSBmcm9tICdAdmVsb2NlL2NvcmUnO1xuaW1wb3J0IHsgQ29udGV4dFNlcnZpY2UsIFF1b3RlRHJhZnRTZXJ2aWNlIH0gZnJvbSAnQHZlbG9jZS9zZGsvY29yZSc7XG5pbXBvcnQgeyBtYXAsIE9ic2VydmFibGUsIHNoYXJlUmVwbGF5IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBnZXRGbG93T2JqZWN0SWRQcm9wZXJ0eU5hbWUgfSBmcm9tICcuLi8uLi91dGlscyc7XG5cbmludGVyZmFjZSBGbG93UHJvcGVydGllc0V4dCBleHRlbmRzIEZsb3dQcm9wZXJ0aWVzIHtcbiAgcXVlcnlQYXJhbXNTdHI6IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmwtZmxvdy1kZWJ1ZycsXG4gIHRlbXBsYXRlVXJsOiAnLi9kZWJ1Zy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RlYnVnLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBEZWJ1Z0NvbXBvbmVudCB7XG4gIHB1YmxpYyBmb3JtID0gbmV3IEZvcm1Hcm91cCh7XG4gICAgaWQ6IG5ldyBGb3JtQ29udHJvbCgnJyksXG4gIH0pO1xuXG4gIHB1YmxpYyBzZWxlY3RlZEZsb3c/OiBGbG93UHJvcGVydGllc0V4dDtcbiAgcHVibGljIGZsb3dzJDogT2JzZXJ2YWJsZTxGbG93UHJvcGVydGllc0V4dFtdPjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZsb3dzQXBpU2VydmljZTogRmxvd3NBcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSBjb250ZXh0OiBDb250ZXh0U2VydmljZSxcbiAgICBwcml2YXRlIHF1b3RlRHJhZnRTZXJ2aWNlOiBRdW90ZURyYWZ0U2VydmljZSxcbiAgKSB7XG4gICAgdGhpcy5mbG93cyQgPSB0aGlzLmZsb3dzQXBpU2VydmljZS5mZXRjaEZsb3dzKCkucGlwZShcbiAgICAgIG1hcChmbG93cyA9PlxuICAgICAgICBmbG93cy5tYXA8Rmxvd1Byb3BlcnRpZXNFeHQ+KGZsb3cgPT4ge1xuICAgICAgICAgIGNvbnN0IHF1ZXJ5UGFyYW1zOiBQYXJhbXMgPSBmbG93Py5wcm9wZXJ0aWVzPy5xdWVyeVBhcmFtcyA/PyB7fTtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaWQ6IGZsb3cuaWQsXG4gICAgICAgICAgICBlbnRyeVBhdGg6IGZsb3c/LnByb3BlcnRpZXM/LmVudHJ5UGF0aCxcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1zLFxuICAgICAgICAgICAgcXVlcnlQYXJhbXNTdHI6IEpTT04uc3RyaW5naWZ5KHF1ZXJ5UGFyYW1zKSxcbiAgICAgICAgICB9O1xuICAgICAgICB9KSxcbiAgICAgICksXG4gICAgICBzaGFyZVJlcGxheSgpLFxuICAgICk7XG4gIH1cblxuICBydW5GbG93KCkge1xuICAgIGNvbnN0IHsgaWQgfSA9IHRoaXMuZm9ybS52YWx1ZTtcbiAgICBjb25zdCBvYmplY3RQcm9wZXJ0eU5hbWUgPSBnZXRGbG93T2JqZWN0SWRQcm9wZXJ0eU5hbWUoaWQpO1xuXG4gICAgaWYgKCFpZCB8fCAhdGhpcy5zZWxlY3RlZEZsb3cpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBEZWxldGUgY29udGV4dCBiZWZvcmUgc3RhcnRpbmcgYSBuZXcgZmxvd1xuICAgIHRoaXMuY29udGV4dC5kZWxldGUoKTtcbiAgICB0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLnJlc2V0KCk7XG5cbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy4uJywgJ2Zsb3dzJ10sIHtcbiAgICAgIHF1ZXJ5UGFyYW1zOiB7XG4gICAgICAgIGZsb3dJZDogdGhpcy5zZWxlY3RlZEZsb3cuaWQsXG4gICAgICAgIFtvYmplY3RQcm9wZXJ0eU5hbWVdOiBpZCxcbiAgICAgICAgLi4udGhpcy5zZWxlY3RlZEZsb3cucXVlcnlQYXJhbXMsXG4gICAgICB9LFxuICAgICAgcmVsYXRpdmVUbzogdGhpcy5hY3RpdmF0ZWRSb3V0ZSxcbiAgICB9KTtcbiAgfVxufVxuIiwiPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCI+XG4gIDxkaXYgY2xhc3M9XCJmaWVsZHMtY29udGFpbmVyXCI+XG4gICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XG4gICAgICA8bGFiZWw+U0YgT2JqZWN0IElEPC9sYWJlbD5cbiAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJpZFwiIHBJbnB1dFRleHQgdHlwZT1cInRleHRcIiAvPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8cC1idXR0b25cbiAgICBzdHlsZUNsYXNzPVwicC1idXR0b24tcHJpbWFyeVwiXG4gICAgbGFiZWw9XCJSdW4gRmxvd1wiXG4gICAgW2Rpc2FibGVkXT1cIiFmb3JtLnZhbHVlLmlkIHx8ICFzZWxlY3RlZEZsb3dcIlxuICAgIChvbkNsaWNrKT1cInJ1bkZsb3coKVwiXG4gID48L3AtYnV0dG9uPlxuPC9mb3JtPlxuXG48dGFibGU+XG4gIDx0aGVhZD5cbiAgICA8dHI+XG4gICAgICA8dGggW3dpZHRoXT1cIjMwXCI+PC90aD5cbiAgICAgIDx0aCBbd2lkdGhdPVwiMTYwXCI+SUQ8L3RoPlxuICAgICAgPHRoIFt3aWR0aF09XCIxNjBcIj5FbnRyeSBQYXRoPC90aD5cbiAgICAgIDx0aD5RdWVyeVBhcmFtczwvdGg+XG4gICAgPC90cj5cbiAgPC90aGVhZD5cbiAgPHRib2R5PlxuICAgIDx0ciAqbmdGb3I9XCJsZXQgZmxvdyBvZiBmbG93cyQgfCBhc3luY1wiIChjbGljayk9XCJzZWxlY3RlZEZsb3cgPSBmbG93XCI+XG4gICAgICA8dGQ+PHAtcmFkaW9CdXR0b24gW2lucHV0SWRdPVwiZmxvdy5pZFwiIG5hbWU9XCJmbG93XCIgW3ZhbHVlXT1cImZsb3dcIiBbKG5nTW9kZWwpXT1cInNlbGVjdGVkRmxvd1wiPjwvcC1yYWRpb0J1dHRvbj48L3RkPlxuICAgICAgPHRkPnt7IGZsb3cuaWQgfX08L3RkPlxuICAgICAgPHRkPnt7IGZsb3cuZW50cnlQYXRoIH19PC90ZD5cbiAgICAgIDx0ZD57eyBmbG93LnF1ZXJ5UGFyYW1zU3RyIH19PC90ZD5cbiAgICA8L3RyPlxuICA8L3Rib2R5PlxuPC90YWJsZT5cbiJdfQ==
|
@@ -1,4 +1,6 @@
|
|
1
|
-
|
1
|
+
import { SalesforceIdUtils } from '@veloce/core';
|
2
|
+
export const getFlowObjectIdPropertyName = (id) => {
|
3
|
+
const objectName = SalesforceIdUtils.getSfObjectNameById(id);
|
2
4
|
switch (objectName) {
|
3
5
|
case 'Account':
|
4
6
|
return 'accountId';
|
@@ -9,4 +11,4 @@ export const getFlowObjectIdPropertyName = (objectName) => {
|
|
9
11
|
return 'quoteId';
|
10
12
|
}
|
11
13
|
};
|
12
|
-
//# sourceMappingURL=data:application/json;base64,
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvdy51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3NyYy91dGlscy9mbG93LnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVqRCxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyxDQUFDLEVBQVUsRUFBVSxFQUFFO0lBQ2hFLE1BQU0sVUFBVSxHQUFHLGlCQUFpQixDQUFDLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRTdELFFBQVEsVUFBVSxFQUFFO1FBQ2xCLEtBQUssU0FBUztZQUNaLE9BQU8sV0FBVyxDQUFDO1FBQ3JCLEtBQUssT0FBTztZQUNWLE9BQU8sU0FBUyxDQUFDO1FBQ25CLEtBQUssT0FBTyxDQUFDO1FBQ2I7WUFDRSxPQUFPLFNBQVMsQ0FBQztLQUNwQjtBQUNILENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNhbGVzZm9yY2VJZFV0aWxzIH0gZnJvbSAnQHZlbG9jZS9jb3JlJztcblxuZXhwb3J0IGNvbnN0IGdldEZsb3dPYmplY3RJZFByb3BlcnR5TmFtZSA9IChpZDogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgY29uc3Qgb2JqZWN0TmFtZSA9IFNhbGVzZm9yY2VJZFV0aWxzLmdldFNmT2JqZWN0TmFtZUJ5SWQoaWQpO1xuXG4gIHN3aXRjaCAob2JqZWN0TmFtZSkge1xuICAgIGNhc2UgJ0FjY291bnQnOlxuICAgICAgcmV0dXJuICdhY2NvdW50SWQnO1xuICAgIGNhc2UgJ09yZGVyJzpcbiAgICAgIHJldHVybiAnb3JkZXJJZCc7XG4gICAgY2FzZSAnUXVvdGUnOlxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gJ3F1b3RlSWQnO1xuICB9XG59O1xuIl19
|