mmhglobal-dynamicform 2.22.0 → 2.23.1
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/README.md +11 -0
- package/esm2020/lib/components/datalistingfieldbase.component.mjs +5 -2
- package/esm2020/lib/embed-components/context-menu/context-menu.component.mjs +113 -0
- package/esm2020/lib/mmhglobal-dynamicform.module.mjs +13 -6
- package/esm2020/lib/virtual-scroll/virtual-scroll.component.mjs +8 -7
- package/esm2020/lib/zbuttons/zbuttons.component.mjs +9 -3
- package/esm2020/lib/zdiv/zdiv.component.mjs +7 -6
- package/esm2020/lib/zgrid/zgrid.binding.directive.mjs +21 -9
- package/esm2020/lib/zgrid/zgrid.component.mjs +14 -8
- package/esm2020/lib/zinput-container/zinput-container.component.mjs +10 -9
- package/esm2020/lib/zlabel/zlabel.component.mjs +10 -7
- package/esm2020/lib/zreport/zreport.component.mjs +31 -11
- package/esm2020/lib/ztext/ztext.component.mjs +20 -5
- package/esm2020/lib/ztextarea/ztextarea.component.mjs +3 -4
- package/esm2020/lib/ztree/ztree.component.mjs +21 -8
- package/esm2020/lib/ztreelist/ztreelist.component.mjs +12 -7
- package/esm2020/public-api.mjs +2 -1
- package/fesm2015/mmhglobal-dynamicform.mjs +281 -97
- package/fesm2015/mmhglobal-dynamicform.mjs.map +1 -1
- package/fesm2020/mmhglobal-dynamicform.mjs +279 -97
- package/fesm2020/mmhglobal-dynamicform.mjs.map +1 -1
- package/lib/components/datalistingfieldbase.component.d.ts +2 -0
- package/lib/embed-components/context-menu/context-menu.component.d.ts +28 -0
- package/lib/mmhglobal-dynamicform.module.d.ts +39 -37
- package/lib/zbuttons/zbuttons.component.d.ts +1 -0
- package/lib/zlabel/zlabel.component.d.ts +2 -0
- package/lib/ztext/ztext.component.d.ts +2 -0
- package/lib/ztree/ztree.component.d.ts +5 -2
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
|
@@ -13,10 +13,11 @@ import * as i1 from "../services/zcomponent.service";
|
|
|
13
13
|
import * as i2 from "mmhglobal-zcore";
|
|
14
14
|
import * as i3 from "@angular/cdk/scrolling";
|
|
15
15
|
import * as i4 from "@fortawesome/angular-fontawesome";
|
|
16
|
-
import * as i5 from "../
|
|
17
|
-
import * as i6 from "
|
|
18
|
-
import * as i7 from "@angular/
|
|
19
|
-
import * as i8 from "
|
|
16
|
+
import * as i5 from "../embed-components/context-menu/context-menu.component";
|
|
17
|
+
import * as i6 from "../zformcontrol/zformcontrol.component";
|
|
18
|
+
import * as i7 from "@angular/common";
|
|
19
|
+
import * as i8 from "@angular/flex-layout/extended";
|
|
20
|
+
import * as i9 from "../pipe/htmlSanitize.pipe";
|
|
20
21
|
// Approach 1: Total Count is known, get next page upon scroll. (Will only have multiple pages / pageable)
|
|
21
22
|
// Approach 2: Total Count is not known, append more data at runtime. (Will only have 1 page / not pageable)
|
|
22
23
|
export class VirtualScrollComponent extends ContainerFieldBase {
|
|
@@ -214,7 +215,7 @@ export class VirtualScrollComponent extends ContainerFieldBase {
|
|
|
214
215
|
}
|
|
215
216
|
}
|
|
216
217
|
VirtualScrollComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: VirtualScrollComponent, deps: [{ token: i1.ZComponentService }, { token: i2.FontAweSomeService }], target: i0.ɵɵFactoryTarget.Component });
|
|
217
|
-
VirtualScrollComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: VirtualScrollComponent, selector: "app-virtual-scroll", viewQueries: [{ propertyName: "viewPort", first: true, predicate: CdkVirtualScrollViewport, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\r\n *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\"\r\n class=\"container e1tag-container-style\" [style]=\"componentProperties.containerStyle.style\"\r\n [ngClass]=\"(data.ComponentStyleType || '') + ' ' + (data.Class || '')\">\r\n <cdk-virtual-scroll-viewport
|
|
218
|
+
VirtualScrollComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: VirtualScrollComponent, selector: "app-virtual-scroll", viewQueries: [{ propertyName: "viewPort", first: true, predicate: CdkVirtualScrollViewport, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\r\n *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\"\r\n class=\"container e1tag-container-style\" [style]=\"componentProperties.containerStyle.style\"\r\n [ngClass]=\"(data.ComponentStyleType || '') + ' ' + (data.Class || '')\">\r\n <cdk-virtual-scroll-viewport\r\n [itemSize]=\"options.itemSize\"\r\n [style]=\"componentProperties.containerStyle.style1\"\r\n class=\"virtual-scroll-viewport e1tag-container-style1\"\r\n [minBufferPx]=\"options.minBufferPx\"\r\n [maxBufferPx]=\"options.maxBufferPx\">\r\n <ng-container *cdkVirtualFor=\"let dataItem of dataItems; let i = index\">\r\n <div #virtualscrollcontent>\r\n <div class=\"virtual-scroll-groupby e1tag-container-style4\" [style]=\"componentProperties.containerStyle.style4\"\r\n *ngIf=\"options.isGroupByEnabled && options.groupBy && (!dataItems[i-1] || dataItem[options.groupBy] !== dataItems[i-1][options.groupBy])\"\r\n (click)=\"groupByOnClick(dataItem[options.groupBy])\" [class.groupby-collapsible]=\"options.isGroupByCollapsible\">\r\n <fa-icon class=\"virtual-scroll-groupby-arrow-icon e1tag-container-style5\"\r\n [style]=\"componentProperties.containerStyle.style5\" *ngIf=\"!!options.isGroupByCollapsible\"\r\n [icon]=\"getFontAwesome('caret-down', fontAweSomeService)\"\r\n [@rotateAnimation]=\"{value: collapsedGroupBy.includes(dataItem[options.groupBy]) ? 'rotate' : 'default', params: {degree: -90}}\">\r\n </fa-icon>\r\n <span class=\"virtual-scroll-groupby-label e1tag-container-style6\"\r\n [style]=\"componentProperties.containerStyle.style6\">\r\n {{options.groupByLabelTemplate ? getGroupByLabelTemplate(dataItem, options) : dataItem[options.groupBy]}}\r\n </span>\r\n </div>\r\n <div *ngIf=\"!options.isGroupByEnabled\" [style.height.px]=\"options.itemSize\"\r\n [style.min-height.px]=\"options.itemSize\" [style.max-height.px]=\"options.itemSize\"\r\n [style]=\"componentProperties.containerStyle.style2\" class=\"e1tag-container-style2 virtual-scroll-dataitem\"\r\n (click)=\"onClick($event, dataItem)\" [id]=\"data.Name + '_' + dataItem?.Value?.Id || ''\">\r\n <div *ngIf=\"!dataItem\" [innerHTML]=\"options.loadingLabel | htmlSanitize\"></div>\r\n <div *ngIf=\"dataItem.Label\" [innerHTML]=\"dataItem.Label | htmlSanitize\"></div>\r\n </div>\r\n <div *ngIf=\"options.isGroupByEnabled\" [style.height.px]=\"options.itemSize\"\r\n [style.min-height.px]=\"options.itemSize\" [style.max-height.px]=\"options.itemSize\"\r\n [style]=\"componentProperties.containerStyle.style2\" class=\"e1tag-container-style2 virtual-scroll-dataitem\"\r\n (click)=\"onClick($event, dataItem)\" [id]=\"data.Name + '_' + dataItem?.Value?.Id || ''\"\r\n [@collapseAnimation]=\"{value: !!options.groupBy && collapsedGroupBy.includes(dataItem[options.groupBy]) ? 'collapse' : 'default'}\"\r\n [class.groupby-value-expand]=\"groupByValueToExpand == (dataItem[options.groupBy])\">\r\n <div *ngIf=\"!dataItem\" [innerHTML]=\"options.loadingLabel | htmlSanitize\"></div>\r\n <div *ngIf=\"dataItem.Label\" [innerHTML]=\"dataItem.Label | htmlSanitize\"></div>\r\n </div>\r\n </div>\r\n <app-context-menu [data]=\"data\" [group]=\"group\" [form]=\"form\" [target]=\"virtualscrollcontent\" [selectedData]=\"dataItem\"></app-context-menu>\r\n </ng-container>\r\n <app-zformcontrol *ngFor=\"let field of footerFields\" [field]=\"field\" [containerField]=\"data\" [group]=\"group\"\r\n [form]=\"form\" [style]=\"componentProperties.containerStyle.style3\" class=\"e1tag-container-style3\">\r\n </app-zformcontrol>\r\n </cdk-virtual-scroll-viewport>\r\n</div>\r\n", styles: [".virtual-scroll-viewport{height:500px}.virtual-scroll-viewport .virtual-scroll-groupby{background:rgba(var(--ion-color-secondary-rgb),.1);font-weight:500;padding:12px 0 4px 12px;margin:1px}.virtual-scroll-viewport .virtual-scroll-groupby.groupby-collapsible{cursor:pointer;display:grid;grid-template-columns:20px auto}.virtual-scroll-viewport .virtual-scroll-groupby.groupby-collapsible:hover{background:rgba(var(--ion-color-secondary-rgb),.05)}.virtual-scroll-viewport .virtual-scroll-groupby>.virtual-scroll-groupby-arrow-icon{width:-moz-fit-content;width:fit-content}.virtual-scroll-viewport .virtual-scroll-dataitem.groupby-value-expand{transform:translateY(-10%);opacity:.2}\n"], components: [{ type: i3.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { type: i4.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }, { type: i5.ContextMenuComponent, selector: "app-context-menu", inputs: ["target", "selectedData"] }, { type: i6.ZformcontrolComponent, selector: "app-zformcontrol", inputs: ["field", "group", "form", "containerField"] }], directives: [{ type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i8.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { type: i3.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { type: i3.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "htmlSanitize": i9.HtmlSanitizePipe }, animations: [
|
|
218
219
|
collapseAnimation,
|
|
219
220
|
rotateAnimation
|
|
220
221
|
] });
|
|
@@ -223,9 +224,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
223
224
|
args: [{ selector: "app-virtual-scroll", animations: [
|
|
224
225
|
collapseAnimation,
|
|
225
226
|
rotateAnimation
|
|
226
|
-
], template: "<div\r\n *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\"\r\n class=\"container e1tag-container-style\" [style]=\"componentProperties.containerStyle.style\"\r\n [ngClass]=\"(data.ComponentStyleType || '') + ' ' + (data.Class || '')\">\r\n <cdk-virtual-scroll-viewport
|
|
227
|
+
], template: "<div\r\n *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\"\r\n class=\"container e1tag-container-style\" [style]=\"componentProperties.containerStyle.style\"\r\n [ngClass]=\"(data.ComponentStyleType || '') + ' ' + (data.Class || '')\">\r\n <cdk-virtual-scroll-viewport\r\n [itemSize]=\"options.itemSize\"\r\n [style]=\"componentProperties.containerStyle.style1\"\r\n class=\"virtual-scroll-viewport e1tag-container-style1\"\r\n [minBufferPx]=\"options.minBufferPx\"\r\n [maxBufferPx]=\"options.maxBufferPx\">\r\n <ng-container *cdkVirtualFor=\"let dataItem of dataItems; let i = index\">\r\n <div #virtualscrollcontent>\r\n <div class=\"virtual-scroll-groupby e1tag-container-style4\" [style]=\"componentProperties.containerStyle.style4\"\r\n *ngIf=\"options.isGroupByEnabled && options.groupBy && (!dataItems[i-1] || dataItem[options.groupBy] !== dataItems[i-1][options.groupBy])\"\r\n (click)=\"groupByOnClick(dataItem[options.groupBy])\" [class.groupby-collapsible]=\"options.isGroupByCollapsible\">\r\n <fa-icon class=\"virtual-scroll-groupby-arrow-icon e1tag-container-style5\"\r\n [style]=\"componentProperties.containerStyle.style5\" *ngIf=\"!!options.isGroupByCollapsible\"\r\n [icon]=\"getFontAwesome('caret-down', fontAweSomeService)\"\r\n [@rotateAnimation]=\"{value: collapsedGroupBy.includes(dataItem[options.groupBy]) ? 'rotate' : 'default', params: {degree: -90}}\">\r\n </fa-icon>\r\n <span class=\"virtual-scroll-groupby-label e1tag-container-style6\"\r\n [style]=\"componentProperties.containerStyle.style6\">\r\n {{options.groupByLabelTemplate ? getGroupByLabelTemplate(dataItem, options) : dataItem[options.groupBy]}}\r\n </span>\r\n </div>\r\n <div *ngIf=\"!options.isGroupByEnabled\" [style.height.px]=\"options.itemSize\"\r\n [style.min-height.px]=\"options.itemSize\" [style.max-height.px]=\"options.itemSize\"\r\n [style]=\"componentProperties.containerStyle.style2\" class=\"e1tag-container-style2 virtual-scroll-dataitem\"\r\n (click)=\"onClick($event, dataItem)\" [id]=\"data.Name + '_' + dataItem?.Value?.Id || ''\">\r\n <div *ngIf=\"!dataItem\" [innerHTML]=\"options.loadingLabel | htmlSanitize\"></div>\r\n <div *ngIf=\"dataItem.Label\" [innerHTML]=\"dataItem.Label | htmlSanitize\"></div>\r\n </div>\r\n <div *ngIf=\"options.isGroupByEnabled\" [style.height.px]=\"options.itemSize\"\r\n [style.min-height.px]=\"options.itemSize\" [style.max-height.px]=\"options.itemSize\"\r\n [style]=\"componentProperties.containerStyle.style2\" class=\"e1tag-container-style2 virtual-scroll-dataitem\"\r\n (click)=\"onClick($event, dataItem)\" [id]=\"data.Name + '_' + dataItem?.Value?.Id || ''\"\r\n [@collapseAnimation]=\"{value: !!options.groupBy && collapsedGroupBy.includes(dataItem[options.groupBy]) ? 'collapse' : 'default'}\"\r\n [class.groupby-value-expand]=\"groupByValueToExpand == (dataItem[options.groupBy])\">\r\n <div *ngIf=\"!dataItem\" [innerHTML]=\"options.loadingLabel | htmlSanitize\"></div>\r\n <div *ngIf=\"dataItem.Label\" [innerHTML]=\"dataItem.Label | htmlSanitize\"></div>\r\n </div>\r\n </div>\r\n <app-context-menu [data]=\"data\" [group]=\"group\" [form]=\"form\" [target]=\"virtualscrollcontent\" [selectedData]=\"dataItem\"></app-context-menu>\r\n </ng-container>\r\n <app-zformcontrol *ngFor=\"let field of footerFields\" [field]=\"field\" [containerField]=\"data\" [group]=\"group\"\r\n [form]=\"form\" [style]=\"componentProperties.containerStyle.style3\" class=\"e1tag-container-style3\">\r\n </app-zformcontrol>\r\n </cdk-virtual-scroll-viewport>\r\n</div>\r\n", styles: [".virtual-scroll-viewport{height:500px}.virtual-scroll-viewport .virtual-scroll-groupby{background:rgba(var(--ion-color-secondary-rgb),.1);font-weight:500;padding:12px 0 4px 12px;margin:1px}.virtual-scroll-viewport .virtual-scroll-groupby.groupby-collapsible{cursor:pointer;display:grid;grid-template-columns:20px auto}.virtual-scroll-viewport .virtual-scroll-groupby.groupby-collapsible:hover{background:rgba(var(--ion-color-secondary-rgb),.05)}.virtual-scroll-viewport .virtual-scroll-groupby>.virtual-scroll-groupby-arrow-icon{width:-moz-fit-content;width:fit-content}.virtual-scroll-viewport .virtual-scroll-dataitem.groupby-value-expand{transform:translateY(-10%);opacity:.2}\n"] }]
|
|
227
228
|
}], ctorParameters: function () { return [{ type: i1.ZComponentService }, { type: i2.FontAweSomeService }]; }, propDecorators: { viewPort: [{
|
|
228
229
|
type: ViewChild,
|
|
229
230
|
args: [CdkVirtualScrollViewport]
|
|
230
231
|
}] } });
|
|
231
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlydHVhbC1zY3JvbGwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvdmlydHVhbC1zY3JvbGwvdmlydHVhbC1zY3JvbGwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvdmlydHVhbC1zY3JvbGwvdmlydHVhbC1zY3JvbGwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0JBQStCO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTdELDZCQUE2QjtBQUU3Qiw4QkFBOEI7QUFFOUIsMkNBQTJDO0FBQzNDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBRWhGLE9BQU8sRUFBc0UsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2SCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNsRSxPQUFPLEVBQWMsU0FBUyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7Ozs7Ozs7Ozs7QUFZeEYsMEdBQTBHO0FBQzFHLDRHQUE0RztBQUU1RyxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsa0JBQWtCO0lBWTVELFlBQ0UsZ0JBQW1DLEVBQzVCLGtCQUFzQztRQUU3QyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUZqQix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBWnhDLHFCQUFnQixHQUFHLEVBQUUsQ0FBQyxDQUFDLGtDQUFrQztRQUN6RCx5QkFBb0IsR0FBRyxF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InNvdXJjZXNDb250ZW50IjpbIi8qKioqKioqKioqIEFuZ3VsYXIgKioqKioqKioqKi9cclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG4vKioqKioqKioqKiBJb25pYyAqKioqKioqKioqL1xyXG5cclxuLyoqKioqKioqKiogUGx1Z2luICoqKioqKioqKiovXHJcblxyXG4vKioqKioqKioqKiBDb21wb25lbnQgJiBTZXJ2aWNlICoqKioqKioqKiovXHJcbmltcG9ydCB7IENvbnRhaW5lckZpZWxkQmFzZSB9IGZyb20gXCIuLi9jb21wb25lbnRzL2NvbnRhaW5lcmZpZWxkYmFzZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgWkNvbXBvbmVudFNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvemNvbXBvbmVudC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IERhdGFTZXRSZXN1bHQsIEZvbnRBd2VTb21lU2VydmljZSwgVmlydHVhbFNjcm9sbE9wdGlvbiwgWkNvbXBvbmVudCwgWkNvbXBvbmVudEhlbHBlciB9IGZyb20gXCJtbWhnbG9iYWwtemNvcmVcIjtcclxuaW1wb3J0IHsgQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0IH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9zY3JvbGxpbmdcIjtcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgYXVkaXRUaW1lLCBkZWxheSwgZm9ya0pvaW4sIG9mLCB0YXAgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBjb2xsYXBzZUFuaW1hdGlvbiwgcm90YXRlQW5pbWF0aW9uIH0gZnJvbSBcIi4uL2FuaW1hdGlvbnMvY29tcG9uZW50LWFuaW1hdGlvbnNcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImFwcC12aXJ0dWFsLXNjcm9sbFwiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vdmlydHVhbC1zY3JvbGwuY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybHM6IFtcIi4vdmlydHVhbC1zY3JvbGwuY29tcG9uZW50LnNjc3NcIl0sXHJcbiAgYW5pbWF0aW9uczogW1xyXG4gICAgY29sbGFwc2VBbmltYXRpb24sXHJcbiAgICByb3RhdGVBbmltYXRpb25cclxuICBdXHJcbn0pXHJcblxyXG4vLyBBcHByb2FjaCAxOiBUb3RhbCBDb3VudCBpcyBrbm93biwgZ2V0IG5leHQgcGFnZSB1cG9uIHNjcm9sbC4gKFdpbGwgb25seSBoYXZlIG11bHRpcGxlIHBhZ2VzIC8gcGFnZWFibGUpXHJcbi8vIEFwcHJvYWNoIDI6IFRvdGFsIENvdW50IGlzIG5vdCBrbm93biwgYXBwZW5kIG1vcmUgZGF0YSBhdCBydW50aW1lLiAoV2lsbCBvbmx5IGhhdmUgMSBwYWdlIC8gbm90IHBhZ2VhYmxlKVxyXG5cclxuZXhwb3J0IGNsYXNzIFZpcnR1YWxTY3JvbGxDb21wb25lbnQgZXh0ZW5kcyBDb250YWluZXJGaWVsZEJhc2UgaW1wbGVtZW50cyBaQ29tcG9uZW50LCBPbkluaXQge1xyXG4gIEBWaWV3Q2hpbGQoQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0KSB2aWV3UG9ydDogQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0O1xyXG4gIHB1YmxpYyBjb2xsYXBzZWRHcm91cEJ5ID0gW107IC8vIFVzZWQgdG8gZGVmaW5lIGFuaW1hdGlvbiBzdGF0dXNcclxuICBwdWJsaWMgZ3JvdXBCeVZhbHVlVG9FeHBhbmQgPSAnJzsgIC8vIFVzZWQgdG8gZGVmaW5lIGFuaW1hdGlvbiBzdGF0dXNcclxuICBwdWJsaWMgY29sbGFwc2VkR3JvdXBCeV9GaXJzdE5vZGVJbmRleExpc3QgPSBuZXcgQXJyYXk8bnVtYmVyPigpOyAvLyBXaGVuIGNvbGxhcHNlLCBuZWVkIHRvIHJldGFpbiB0aGUgZmlyc3Qgbm9kZSBpbiB0aGUgbGlzdCBzbyB0aGF0IHRoZSBncm91cCBieSB0aXRsZSB3aWxsIG5vdCBiZSBoaWRkZW5cclxuICBwcml2YXRlIGZ1bGxEYXRhSXRlbXMgPSBbXTtcclxuICBwdWJsaWMgZGF0YUl0ZW1zOiBBcnJheTxhbnk+ID0gW107XHJcbiAgcHVibGljIHBhZ2VTaXplID0gNTA7XHJcbiAgcHVibGljIHBhZ2VGZXRjaGVkID0gW107XHJcbiAgcHVibGljIG9wdGlvbnM6IFZpcnR1YWxTY3JvbGxPcHRpb247XHJcbiAgcHVibGljIGZvb3RlckZpZWxkcyA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIGNvbXBvbmVudFNlcnZpY2U6IFpDb21wb25lbnRTZXJ2aWNlLFxyXG4gICAgcHVibGljIGZvbnRBd2VTb21lU2VydmljZTogRm9udEF3ZVNvbWVTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcihjb21wb25lbnRTZXJ2aWNlKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5zZXR1cENvbXBvbmVudCgpO1xyXG4gICAgdGhpcy5zZXR1cERhdGFJdGVtcygpO1xyXG4gICAgdGhpcy5zZXR1cEZvb3RlcigpO1xyXG4gICAgc3VwZXIuaW5pdENvbXBvbmVudCgpLnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5jb21wb25lbnRTZXJ2aWNlLmRlY3JlbWVudENvbXBvbmVudENvdW50ZXJGb3JGaWVsZCh0aGlzLmRhdGEpO1xyXG4gICAgdGhpcy52aWV3UG9ydC5zY3JvbGxlZEluZGV4Q2hhbmdlLnBpcGUoXHJcbiAgICAgIGF1ZGl0VGltZSh0aGlzLmRhdGEuU2Nyb2xsSW5kZXhDaGFuZ2VUaW1lRGVsYXkgfHwgMzAwKSxcclxuICAgICAgdGFwKChjdXJySW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICAgIHRoaXMucG9wdWxhdGVMaXN0RGF0YShjdXJySW5kZXgpO1xyXG4gICAgICB9KVxyXG4gICAgKS5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzY3JvbGxUb1RvcCgpIHtcclxuICAgIGlmICh0aGlzLnZpZXdQb3J0KSB7XHJcbiAgICAgIHRoaXMudmlld1BvcnQuc2Nyb2xsVG9JbmRleCgwKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0dXBDb21wb25lbnQoKSB7XHJcbiAgICB0aGlzLmNvbGxhcHNlZEdyb3VwQnkgPSBbXTtcclxuICAgIGlmICh0aGlzLmRhdGEuT3B0aW9ucykge1xyXG4gICAgICBpZiAodHlwZW9mIHRoaXMuZGF0YS5PcHRpb25zID09PSAnc3RyaW5nJyAmJiB0aGlzLmRhdGEuT3B0aW9ucy5zdGFydHNXaXRoKCdncm91cC4nKSkge1xyXG4gICAgICAgIHRoaXMub3B0aW9ucyA9IFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBWYWx1ZSh0aGlzLmRhdGEuT3B0aW9ucywgdGhpcy5ncm91cCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5vcHRpb25zID0gdGhpcy5kYXRhLk9wdGlvbnM7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMucGFnZVNpemUgPSB0aGlzLm9wdGlvbnMucGFnZVNpemUgPz8gNTA7XHJcbiAgICAgIHRoaXMub3B0aW9ucy5sb2FkaW5nTGFiZWwgPSB0aGlzLm9wdGlvbnMubG9hZGluZ0xhYmVsID8/ICc8ZGl2PkxvYWRpbmc8L2Rpdj4nO1xyXG4gICAgICB0aGlzLm9wdGlvbnMuaXRlbVNpemUgPSB0aGlzLm9wdGlvbnMuaXRlbVNpemUgPz8gNTA7XHJcbiAgICAgIHRoaXMub3B0aW9ucy5taW5CdWZmZXJQeCA9IHRoaXMub3B0aW9ucy5taW5CdWZmZXJQeCA/PyAodGhpcy5vcHRpb25zLnBhZ2VTaXplICogdGhpcy5vcHRpb25zLml0ZW1TaXplKTtcclxuICAgICAgdGhpcy5vcHRpb25zLm1heEJ1ZmZlclB4ID0gdGhpcy5vcHRpb25zLm1heEJ1ZmZlclB4ID8/ICh0aGlzLm9wdGlvbnMucGFnZVNpemUgKiB0aGlzLm9wdGlvbnMuaXRlbVNpemUpO1xyXG4gICAgICB0aGlzLm9wdGlvbnMuaXNHcm91cEJ5RW5hYmxlZCA9IHRoaXMub3B0aW9ucy5pc0dyb3VwQnlFbmFibGVkID8/ICEhdGhpcy5vcHRpb25zLmdyb3VwQnk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXBwZW5kRGF0YShkYXRhSXRlbXM6IEFycmF5PGFueT4pIHtcclxuICAgIHRoaXMuZnVsbERhdGFJdGVtcyA9IHRoaXMuZnVsbERhdGFJdGVtcy5jb25jYXQoZGF0YUl0ZW1zKTtcclxuICAgIHRoaXMucGFnZVNpemUgPSB0aGlzLmZ1bGxEYXRhSXRlbXMubGVuZ3RoO1xyXG4gICAgdGhpcy5jb21wdXRlRGF0YUl0ZW1zKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldHVwRGF0YUl0ZW1zKCkge1xyXG4gICAgdGhpcy5wYWdlRmV0Y2hlZCA9IFtdO1xyXG4gICAgaWYgKHRoaXMuZGF0YS5EYXRhU2V0UmVzdWx0KSB7XHJcbiAgICAgIGxldCBkYXRhU2V0UmVzdWx0ID0gdGhpcy5kYXRhLkRhdGFTZXRSZXN1bHQ7XHJcbiAgICAgIGlmICh0eXBlb2YgZGF0YVNldFJlc3VsdCA9PSAnc3RyaW5nJyAmJiBkYXRhU2V0UmVzdWx0LnN0YXJ0c1dpdGgoJ2dyb3VwLicpKSB7XHJcbiAgICAgICAgZGF0YVNldFJlc3VsdCA9IFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBWYWx1ZShkYXRhU2V0UmVzdWx0LCB0aGlzLmdyb3VwKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnNldERhdGEoZGF0YVNldFJlc3VsdCBhcyBEYXRhU2V0UmVzdWx0KTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLmRhdGFJdGVtcyA9IFtdO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldERhdGEoZGF0YVNldFJlc3VsdDogRGF0YVNldFJlc3VsdCkge1xyXG4gICAgdGhpcy5wYWdlRmV0Y2hlZCA9IFtdO1xyXG4gICAgaWYgKGRhdGFTZXRSZXN1bHQuZGF0YVNldCAmJiBBcnJheS5pc0FycmF5KGRhdGFTZXRSZXN1bHQuZGF0YVNldCkgJiYgZGF0YVNldFJlc3VsdC5kYXRhU2V0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgY29uc3QgY250ID0gZGF0YVNldFJlc3VsdC50b3RhbENvdW50IC0gZGF0YVNldFJlc3VsdC5kYXRhU2V0Lmxlbmd0aDtcclxuICAgICAgaWYgKGNudCA8IDApIHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKCdEYXRhSXRlbXMgY2Fubm90IGJlIG1vcmUgdGhhbiB0b3RhbCBjb3VudC4nKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuZGF0YUl0ZW1zID0gZGF0YVNldFJlc3VsdC5kYXRhU2V0LmNvbmNhdChBcnJheShjbnQpLmZpbGwoZmFsc2UpKTtcclxuICAgICAgY29uc3QgcGFnZU5vVG9NYXJrQXNGZXRjaCA9IE1hdGguY2VpbChkYXRhU2V0UmVzdWx0LmRhdGFTZXQubGVuZ3RoIC8gdGhpcy5wYWdlU2l6ZSkgLSAxO1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8PSBwYWdlTm9Ub01hcmtBc0ZldGNoOyBpKyspIHtcclxuICAgICAgICB0aGlzLnBhZ2VGZXRjaGVkLnB1c2goaSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGRhdGFTZXRSZXN1bHQudG90YWxDb3VudCkge1xyXG4gICAgICB0aGlzLmRhdGFJdGVtcyA9IEFycmF5KGRhdGFTZXRSZXN1bHQudG90YWxDb3VudCkuZmlsbChmYWxzZSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5kYXRhSXRlbXMgPSBbXTtcclxuICAgIH1cclxuICAgIHRoaXMuZnVsbERhdGFJdGVtcyA9IHRoaXMuZGF0YUl0ZW1zO1xyXG4gICAgdGhpcy5jb21wdXRlRGF0YUl0ZW1zKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHBvcHVsYXRlTGlzdERhdGEoY3VyckluZGV4OiBudW1iZXIpIHtcclxuICAgIGNvbnN0IHJlbmRlclJhbmdlID0gdGhpcy52aWV3UG9ydC5nZXRSZW5kZXJlZFJhbmdlKCk7XHJcbiAgICBpZiAocmVuZGVyUmFuZ2Uuc3RhcnQgPT0gcmVuZGVyUmFuZ2UuZW5kICYmIHJlbmRlclJhbmdlLmVuZCA9PSAwKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBzdGFydFBhZ2VObyA9IE1hdGguZmxvb3IocmVuZGVyUmFuZ2Uuc3RhcnQgLyB0aGlzLnBhZ2VTaXplKTtcclxuICAgIGNvbnN0IGVuZFBhZ2VObyA9IE1hdGguZmxvb3IoKHJlbmRlclJhbmdlLmVuZCAtIDEpIC8gdGhpcy5wYWdlU2l6ZSk7XHJcblxyXG4gICAgY29uc3Qgb2JzID0gbmV3IEFycmF5PE9ic2VydmFibGU8YW55Pj4oKTtcclxuICAgIGZvciAobGV0IGkgPSBzdGFydFBhZ2VObzsgaSA8PSBlbmRQYWdlTm87IGkrKykge1xyXG4gICAgICBpZiAoIXRoaXMucGFnZUZldGNoZWQuaW5jbHVkZXMoaSkpIHtcclxuICAgICAgICB0aGlzLnBhZ2VGZXRjaGVkLnB1c2goaSk7XHJcbiAgICAgICAgb2JzLnB1c2goXHJcbiAgICAgICAgICB0aGlzLmZldGNoRGF0YShpKS5waXBlKHRhcCgoW2RhdGEsIHBhZ2VOb10pID0+IHtcclxuICAgICAgICAgICAgdGhpcy51cGRhdGVEYXRhQnlJbmRleChwYWdlTm8gKiB0aGlzLnBhZ2VTaXplLCBkYXRhKTtcclxuICAgICAgICAgIH0pKVxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAob2JzLmxlbmd0aCA+IDApIHtcclxuICAgICAgZm9ya0pvaW4ob2JzKS5waXBlKHRhcChyZXMgPT4ge1xyXG4gICAgICAgIHRoaXMudXBkYXRlVmlld1BvcnREYXRhKCk7XHJcbiAgICAgIH0pKS5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZmV0Y2hEYXRhKHBhZ2VObyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBpZiAodGhpcy5kYXRhLk9uU2Nyb2xsICYmIHR5cGVvZiB0aGlzLmRhdGEuT25TY3JvbGwgPT0gJ3N0cmluZycgJiYgdGhpcy5kYXRhLk9uU2Nyb2xsLnN0YXJ0c1dpdGgoJ2dyb3VwLicpKSB7XHJcbiAgICAgIGNvbnN0IG9uU2Nyb2xsRXZlbnQgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwRXZhbFZhbHVlLmNhbGwodGhpcywgdGhpcy5kYXRhLk9uU2Nyb2xsKTtcclxuICAgICAgaWYgKHR5cGVvZiBvblNjcm9sbEV2ZW50ID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgY29uc3QgY2FsbEZ1bmMgPSBvblNjcm9sbEV2ZW50LmJpbmQodGhpcy5ncm91cC5jdHJsU2NvcGUpO1xyXG4gICAgICAgIHJldHVybiBmb3JrSm9pbihbY2FsbEZ1bmModGhpcy5ncm91cCwgeyBwYWdlTm86IHBhZ2VObywgcGFnZVNpemU6IHRoaXMucGFnZVNpemUgfSksIG9mKHBhZ2VObyldIGFzIEFycmF5PE9ic2VydmFibGU8YW55Pj4pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG9mKGZhbHNlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlRGF0YUJ5SW5kZXgoc3RhcnRpbmdJbmRleDogbnVtYmVyLCBkYXRhOiBBcnJheTxhbnk+KSB7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRhdGEubGVuZ3RoOyBpKyspIHtcclxuICAgICAgdGhpcy5kYXRhSXRlbXNbc3RhcnRpbmdJbmRleCArIGldID0gZGF0YVtpXTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlVmlld1BvcnREYXRhKCkge1xyXG4gICAgdGhpcy5kYXRhSXRlbXMgPSBbLi4udGhpcy5kYXRhSXRlbXNdO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldHVwRm9vdGVyKCkge1xyXG4gICAgaWYgKHRoaXMuZGF0YS5WYWx1ZSAmJiBBcnJheS5pc0FycmF5KHRoaXMuZGF0YS5WYWx1ZSkpIHtcclxuICAgICAgdGhpcy5mb290ZXJGaWVsZHMgPSB0aGlzLmRhdGEuVmFsdWUuZmlsdGVyKHggPT4geC5TZWN0aW9uID09PSAnZm9vdGVyJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0Q29tcG9uZW50T3B0aW9ucygpOiBWaXJ0dWFsU2Nyb2xsT3B0aW9uIHtcclxuICAgIHJldHVybiB0aGlzLm9wdGlvbnM7XHJcbiAgfVxyXG5cclxuICAvLyNyZWdpb24gR3JvdXAgQnlcclxuICBwdWJsaWMgZ2V0R3JvdXBCeUxhYmVsVGVtcGxhdGUoZGF0YUl0ZW0sIG9wdGlvbnMpOiBzdHJpbmcge1xyXG4gICAgaWYgKG9wdGlvbnMuZ3JvdXBCeUxhYmVsVGVtcGxhdGUgJiYgdHlwZW9mIG9wdGlvbnMuZ3JvdXBCeUxhYmVsVGVtcGxhdGUgPT0gJ3N0cmluZycpIHtcclxuICAgICAgaWYgKG9wdGlvbnMuZ3JvdXBCeUxhYmVsVGVtcGxhdGUuc3RhcnRzV2l0aCgnZ3JvdXAuJykpIHtcclxuICAgICAgICBjb25zdCBnZXRUZW1wbGF0ZUZ1bmMgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwRXZhbFZhbHVlLmNhbGwodGhpcywgb3B0aW9ucy5ncm91cEJ5TGFiZWxUZW1wbGF0ZSk7XHJcblxyXG4gICAgICAgIGlmIChnZXRUZW1wbGF0ZUZ1bmMpIHtcclxuICAgICAgICAgIHJldHVybiBnZXRUZW1wbGF0ZUZ1bmMoe1xyXG4gICAgICAgICAgICBkYXRhSXRlbSxcclxuICAgICAgICAgICAgb3B0aW9ucyxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICByZXR1cm4gZGF0YUl0ZW1bb3B0aW9ucy5ncm91cEJ5TGFiZWxUZW1wbGF0ZV07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBncm91cEJ5T25DbGljayhncm91cEJ5VmFsdWU6IHN0cmluZykge1xyXG4gICAgaWYgKCF0aGlzLm9wdGlvbnMuaXNHcm91cEJ5Q29sbGFwc2libGUpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIHVzZSBjb2xsYXBzZSAvIGV4cGFuZCB0byBjb250cm9sIGFuaW1hdGlvbiBzZXF1ZW5jZVxyXG4gICAgY29uc3QgaXNUb0NvbGxhcHNlID0gIXRoaXMuY29sbGFwc2VkR3JvdXBCeS5pbmNsdWRlcyhncm91cEJ5VmFsdWUpO1xyXG5cclxuICAgIGNvbnN0IGZpcnN0Tm9kZUluZGV4ID0gdGhpcy5mdWxsRGF0YUl0ZW1zLm1hcCh4ID0+IHhbdGhpcy5vcHRpb25zLmdyb3VwQnldKS5pbmRleE9mKGdyb3VwQnlWYWx1ZSk7XHJcbiAgICBpZiAoaXNUb0NvbGxhcHNlKSB7XHJcbiAgICAgIC8vIHRvIGNvbGxhcHNlIChGb3IgYW5pbWF0aW9uOiBDaGFuZ2Ugc3RhdHVzLCB0aGVuIGFwcGVuZCBkYXRhKVxyXG4gICAgICB0aGlzLmNvbGxhcHNlZEdyb3VwQnkucHVzaChncm91cEJ5VmFsdWUpO1xyXG4gICAgICB0aGlzLmNvbGxhcHNlZEdyb3VwQnlfRmlyc3ROb2RlSW5kZXhMaXN0LnB1c2goZmlyc3ROb2RlSW5kZXgpO1xyXG4gICAgICBvZih7fSkucGlwZShkZWxheSg0MDApLFxyXG4gICAgICAgIHRhcCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmNvbXB1dGVEYXRhSXRlbXMoKTtcclxuICAgICAgICB9KVxyXG4gICAgICApLnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIC8vIHRvIGV4cGFuZCAoRm9yIGFuaW1hdGlvbjogQXBwZW5kIGRhdGEsIHRoZW4gY2hhbmdlIHN0YXR1cylcclxuICAgICAgdGhpcy5jb2xsYXBzZWRHcm91cEJ5X0ZpcnN0Tm9kZUluZGV4TGlzdCA9IHRoaXMuY29sbGFwc2VkR3JvdXBCeV9GaXJzdE5vZGVJbmRleExpc3QuZmlsdGVyKHggPT4geCAhPSBmaXJzdE5vZGVJbmRleCk7XHJcbiAgICAgIGNvbnN0IHRlbXBDb2xsYXBzZWRHcm91cEJ5ID0gdGhpcy5jb2xsYXBzZWRHcm91cEJ5LmZpbHRlcih4ID0+IHggIT09IGdyb3VwQnlWYWx1ZSk7XHJcbiAgICAgIHRoaXMuZGF0YUl0ZW1zID0gdGhpcy5mdWxsRGF0YUl0ZW1zLmZpbHRlcigoeCwgaW5kZXgpID0+ICF0ZW1wQ29sbGFwc2VkR3JvdXBCeS5pbmNsdWRlcyh4W3RoaXMub3B0aW9ucy5ncm91cEJ5XSkgfHwgdGhpcy5jb2xsYXBzZWRHcm91cEJ5X0ZpcnN0Tm9kZUluZGV4TGlzdC5pbmNsdWRlcyhpbmRleCkpO1xyXG4gICAgICB0aGlzLmdyb3VwQnlWYWx1ZVRvRXhwYW5kID0gZ3JvdXBCeVZhbHVlO1xyXG4gICAgICBvZih7fSkucGlwZShkZWxheSgwKSxcclxuICAgICAgICB0YXAoKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5jb2xsYXBzZWRHcm91cEJ5ID0gdGVtcENvbGxhcHNlZEdyb3VwQnk7XHJcbiAgICAgICAgICB0aGlzLmdyb3VwQnlWYWx1ZVRvRXhwYW5kID0gZ3JvdXBCeVZhbHVlO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICkuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNvbXB1dGVEYXRhSXRlbXMoKSB7XHJcbiAgICB0aGlzLmRhdGFJdGVtcyA9IHRoaXMuZnVsbERhdGFJdGVtcy5maWx0ZXIoKHgsIGluZGV4KSA9PiAhdGhpcy5jb2xsYXBzZWRHcm91cEJ5LmluY2x1ZGVzKHhbdGhpcy5vcHRpb25zLmdyb3VwQnldKSB8fCB0aGlzLmNvbGxhcHNlZEdyb3VwQnlfRmlyc3ROb2RlSW5kZXhMaXN0LmluY2x1ZGVzKGluZGV4KSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZXhwYW5kQWxsKCkge1xyXG4gICAgdGhpcy5ncm91cEJ5VmFsdWVUb0V4cGFuZCA9ICcnO1xyXG4gICAgdGhpcy5jb2xsYXBzZWRHcm91cEJ5ID0gW107XHJcbiAgICB0aGlzLmNvbGxhcHNlZEdyb3VwQnlfRmlyc3ROb2RlSW5kZXhMaXN0ID0gW107XHJcbiAgICB0aGlzLmNvbXB1dGVEYXRhSXRlbXMoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBleHBhbmRCeUdyb3VwQnlWYWx1ZXMoZ3JvdXBCeVZhbHVlOiBBcnJheTxzdHJpbmc+KSB7XHJcbiAgICB0aGlzLmNvbGxhcHNlZEdyb3VwQnkgPSB0aGlzLmNvbGxhcHNlZEdyb3VwQnkuZmlsdGVyKHggPT4gIWdyb3VwQnlWYWx1ZS5pbmNsdWRlcyh4KSk7XHJcbiAgICB0aGlzLmNvbXB1dGVEYXRhSXRlbXMoKTtcclxuICB9XHJcbiAgLy8jZW5kcmVnaW9uXHJcbn1cclxuIiwiPGRpdlxyXG4gICpuZ0lmPVwiKCEhY29tcG9uZW50UHJvcGVydGllcy5pc1Zpc2libGVGaWVsZCA/IGdyb3VwW2NvbXBvbmVudFByb3BlcnRpZXMuaXNWaXNpYmxlRmllbGRdIDogY29tcG9uZW50UHJvcGVydGllcy5pc1Zpc2libGUpXCJcclxuICBjbGFzcz1cImNvbnRhaW5lciBlMXRhZy1jb250YWluZXItc3R5bGVcIiBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5jb250YWluZXJTdHlsZS5zdHlsZVwiXHJcbiAgW25nQ2xhc3NdPVwiKGRhdGEuQ29tcG9uZW50U3R5bGVUeXBlIHx8ICcnKSArICcgJyArIChkYXRhLkNsYXNzIHx8ICcnKVwiPlxyXG4gIDxjZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnQgW2l0ZW1TaXplXT1cIm9wdGlvbnMuaXRlbVNpemVcIiBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5jb250YWluZXJTdHlsZS5zdHlsZTFcIlxyXG4gICAgY2xhc3M9XCJ2aXJ0dWFsLXNjcm9sbC12aWV3cG9ydCBlMXRhZy1jb250YWluZXItc3R5bGUxXCIgW21pbkJ1ZmZlclB4XT1cIm9wdGlvbnMubWluQnVmZmVyUHhcIlxyXG4gICAgW21heEJ1ZmZlclB4XT1cIm9wdGlvbnMubWF4QnVmZmVyUHhcIj5cclxuICAgIDwhLS0gPG5nLWNvbnRhaW5lciAqY2RrVmlydHVhbEZvcj1cImxldCBmaWVsZCBvZiBjbG9uZWRGaWVsZHNcIj4gLS0+XHJcbiAgICA8bmctY29udGFpbmVyICpjZGtWaXJ0dWFsRm9yPVwibGV0IGRhdGFJdGVtIG9mIGRhdGFJdGVtczsgbGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidmlydHVhbC1zY3JvbGwtZ3JvdXBieSBlMXRhZy1jb250YWluZXItc3R5bGU0XCIgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuY29udGFpbmVyU3R5bGUuc3R5bGU0XCJcclxuICAgICAgICAqbmdJZj1cIm9wdGlvbnMuaXNHcm91cEJ5RW5hYmxlZCAmJiBvcHRpb25zLmdyb3VwQnkgJiYgKCFkYXRhSXRlbXNbaS0xXSB8fCBkYXRhSXRlbVtvcHRpb25zLmdyb3VwQnldICE9PSBkYXRhSXRlbXNbaS0xXVtvcHRpb25zLmdyb3VwQnldKVwiXHJcbiAgICAgICAgKGNsaWNrKT1cImdyb3VwQnlPbkNsaWNrKGRhdGFJdGVtW29wdGlvbnMuZ3JvdXBCeV0pXCIgW2NsYXNzLmdyb3VwYnktY29sbGFwc2libGVdPVwib3B0aW9ucy5pc0dyb3VwQnlDb2xsYXBzaWJsZVwiPlxyXG4gICAgICAgIDxmYS1pY29uIGNsYXNzPVwidmlydHVhbC1zY3JvbGwtZ3JvdXBieS1hcnJvdy1pY29uIGUxdGFnLWNvbnRhaW5lci1zdHlsZTVcIlxyXG4gICAgICAgICAgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuY29udGFpbmVyU3R5bGUuc3R5bGU1XCIgKm5nSWY9XCIhIW9wdGlvbnMuaXNHcm91cEJ5Q29sbGFwc2libGVcIlxyXG4gICAgICAgICAgW2ljb25dPVwiZ2V0Rm9udEF3ZXNvbWUoJ2NhcmV0LWRvd24nLCBmb250QXdlU29tZVNlcnZpY2UpXCJcclxuICAgICAgICAgIFtAcm90YXRlQW5pbWF0aW9uXT1cInt2YWx1ZTogY29sbGFwc2VkR3JvdXBCeS5pbmNsdWRlcyhkYXRhSXRlbVtvcHRpb25zLmdyb3VwQnldKSA/ICdyb3RhdGUnIDogJ2RlZmF1bHQnLCBwYXJhbXM6IHtkZWdyZWU6IC05MH19XCI+XHJcbiAgICAgICAgPC9mYS1pY29uPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwidmlydHVhbC1zY3JvbGwtZ3JvdXBieS1sYWJlbCBlMXRhZy1jb250YWluZXItc3R5bGU2XCJcclxuICAgICAgICAgIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLmNvbnRhaW5lclN0eWxlLnN0eWxlNlwiPlxyXG4gICAgICAgICAge3tvcHRpb25zLmdyb3VwQnlMYWJlbFRlbXBsYXRlID8gZ2V0R3JvdXBCeUxhYmVsVGVtcGxhdGUoZGF0YUl0ZW0sIG9wdGlvbnMpIDogZGF0YUl0ZW1bb3B0aW9ucy5ncm91cEJ5XX19XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiAqbmdJZj1cIiFvcHRpb25zLmlzR3JvdXBCeUVuYWJsZWRcIiBbc3R5bGUuaGVpZ2h0LnB4XT1cIm9wdGlvbnMuaXRlbVNpemVcIlxyXG4gICAgICAgIFtzdHlsZS5taW4taGVpZ2h0LnB4XT1cIm9wdGlvbnMuaXRlbVNpemVcIiBbc3R5bGUubWF4LWhlaWdodC5weF09XCJvcHRpb25zLml0ZW1TaXplXCJcclxuICAgICAgICBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5jb250YWluZXJTdHlsZS5zdHlsZTJcIiBjbGFzcz1cImUxdGFnLWNvbnRhaW5lci1zdHlsZTIgdmlydHVhbC1zY3JvbGwtZGF0YWl0ZW1cIlxyXG4gICAgICAgIChjbGljayk9XCJvbkNsaWNrKCRldmVudCwgZGF0YUl0ZW0pXCIgW2lkXT1cImRhdGEuTmFtZSArICdfJyArIGRhdGFJdGVtPy5WYWx1ZT8uSWQgfHwgJydcIj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiIWRhdGFJdGVtXCIgW2lubmVySFRNTF09XCJvcHRpb25zLmxvYWRpbmdMYWJlbCB8IGh0bWxTYW5pdGl6ZVwiPjwvZGl2PlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJkYXRhSXRlbS5MYWJlbFwiIFtpbm5lckhUTUxdPVwiZGF0YUl0ZW0uTGFiZWwgfCBodG1sU2FuaXRpemVcIj48L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJvcHRpb25zLmlzR3JvdXBCeUVuYWJsZWRcIiBbc3R5bGUuaGVpZ2h0LnB4XT1cIm9wdGlvbnMuaXRlbVNpemVcIlxyXG4gICAgICAgIFtzdHlsZS5taW4taGVpZ2h0LnB4XT1cIm9wdGlvbnMuaXRlbVNpemVcIiBbc3R5bGUubWF4LWhlaWdodC5weF09XCJvcHRpb25zLml0ZW1TaXplXCJcclxuICAgICAgICBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5jb250YWluZXJTdHlsZS5zdHlsZTJcIiBjbGFzcz1cImUxdGFnLWNvbnRhaW5lci1zdHlsZTIgdmlydHVhbC1zY3JvbGwtZGF0YWl0ZW1cIlxyXG4gICAgICAgIChjbGljayk9XCJvbkNsaWNrKCRldmVudCwgZGF0YUl0ZW0pXCIgW2lkXT1cImRhdGEuTmFtZSArICdfJyArIGRhdGFJdGVtPy5WYWx1ZT8uSWQgfHwgJydcIlxyXG4gICAgICAgIFtAY29sbGFwc2VBbmltYXRpb25dPVwie3ZhbHVlOiAhIW9wdGlvbnMuZ3JvdXBCeSAmJiBjb2xsYXBzZWRHcm91cEJ5LmluY2x1ZGVzKGRhdGFJdGVtW29wdGlvbnMuZ3JvdXBCeV0pID8gJ2NvbGxhcHNlJyA6ICdkZWZhdWx0J31cIlxyXG4gICAgICAgIFtjbGFzcy5ncm91cGJ5LXZhbHVlLWV4cGFuZF09XCJncm91cEJ5VmFsdWVUb0V4cGFuZCA9PSAoZGF0YUl0ZW1bb3B0aW9ucy5ncm91cEJ5XSlcIj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiIWRhdGFJdGVtXCIgW2lubmVySFRNTF09XCJvcHRpb25zLmxvYWRpbmdMYWJlbCB8IGh0bWxTYW5pdGl6ZVwiPjwvZGl2PlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJkYXRhSXRlbS5MYWJlbFwiIFtpbm5lckhUTUxdPVwiZGF0YUl0ZW0uTGFiZWwgfCBodG1sU2FuaXRpemVcIj48L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDxhcHAtemZvcm1jb250cm9sICpuZ0Zvcj1cImxldCBmaWVsZCBvZiBmb290ZXJGaWVsZHNcIiBbZmllbGRdPVwiZmllbGRcIiBbY29udGFpbmVyRmllbGRdPVwiZGF0YVwiIFtncm91cF09XCJncm91cFwiXHJcbiAgICAgIFtmb3JtXT1cImZvcm1cIiBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5jb250YWluZXJTdHlsZS5zdHlsZTNcIiBjbGFzcz1cImUxdGFnLWNvbnRhaW5lci1zdHlsZTNcIj5cclxuICAgIDwvYXBwLXpmb3JtY29udHJvbD5cclxuICA8L2Nkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydD5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
232
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlydHVhbC1zY3JvbGwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvdmlydHVhbC1zY3JvbGwvdmlydHVhbC1zY3JvbGwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvdmlydHVhbC1zY3JvbGwvdmlydHVhbC1zY3JvbGwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0JBQStCO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTdELDZCQUE2QjtBQUU3Qiw4QkFBOEI7QUFFOUIsMkNBQTJDO0FBQzNDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBRWhGLE9BQU8sRUFBc0UsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2SCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNsRSxPQUFPLEVBQWMsU0FBUyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7Ozs7Ozs7Ozs7O0FBWXhGLDBHQUEwRztBQUMxRyw0R0FBNEc7QUFFNUcsTUFBTSxPQUFPLHNCQUF1QixTQUFRLGtCQUFrQjtJQVk1RCxZQUNFLGdCQUFtQyxFQUM1QixrQkFBc0M7UUFFN0MsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFGakIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQVp4QyxxQkFBZ0IsR0FBRyxFQUFFLENBQUMsQ0FBQyxrQ0FBa0M7UUFDekQseUJBQW9CLEdBQUcs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LCJzb3VyY2VzQ29udGVudCI6WyIvKioqKioqKioqKiBBbmd1bGFyICoqKioqKioqKiovXHJcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuLyoqKioqKioqKiogSW9uaWMgKioqKioqKioqKi9cclxuXHJcbi8qKioqKioqKioqIFBsdWdpbiAqKioqKioqKioqL1xyXG5cclxuLyoqKioqKioqKiogQ29tcG9uZW50ICYgU2VydmljZSAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBDb250YWluZXJGaWVsZEJhc2UgfSBmcm9tIFwiLi4vY29tcG9uZW50cy9jb250YWluZXJmaWVsZGJhc2UuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFpDb21wb25lbnRTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL3pjb21wb25lbnQuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBEYXRhU2V0UmVzdWx0LCBGb250QXdlU29tZVNlcnZpY2UsIFZpcnR1YWxTY3JvbGxPcHRpb24sIFpDb21wb25lbnQsIFpDb21wb25lbnRIZWxwZXIgfSBmcm9tIFwibW1oZ2xvYmFsLXpjb3JlXCI7XHJcbmltcG9ydCB7IENka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydCB9IGZyb20gXCJAYW5ndWxhci9jZGsvc2Nyb2xsaW5nXCI7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIGF1ZGl0VGltZSwgZGVsYXksIGZvcmtKb2luLCBvZiwgdGFwIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgY29sbGFwc2VBbmltYXRpb24sIHJvdGF0ZUFuaW1hdGlvbiB9IGZyb20gXCIuLi9hbmltYXRpb25zL2NvbXBvbmVudC1hbmltYXRpb25zXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJhcHAtdmlydHVhbC1zY3JvbGxcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL3ZpcnR1YWwtc2Nyb2xsLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL3ZpcnR1YWwtc2Nyb2xsLmNvbXBvbmVudC5zY3NzXCJdLFxyXG4gIGFuaW1hdGlvbnM6IFtcclxuICAgIGNvbGxhcHNlQW5pbWF0aW9uLFxyXG4gICAgcm90YXRlQW5pbWF0aW9uXHJcbiAgXVxyXG59KVxyXG5cclxuLy8gQXBwcm9hY2ggMTogVG90YWwgQ291bnQgaXMga25vd24sIGdldCBuZXh0IHBhZ2UgdXBvbiBzY3JvbGwuIChXaWxsIG9ubHkgaGF2ZSBtdWx0aXBsZSBwYWdlcyAvIHBhZ2VhYmxlKVxyXG4vLyBBcHByb2FjaCAyOiBUb3RhbCBDb3VudCBpcyBub3Qga25vd24sIGFwcGVuZCBtb3JlIGRhdGEgYXQgcnVudGltZS4gKFdpbGwgb25seSBoYXZlIDEgcGFnZSAvIG5vdCBwYWdlYWJsZSlcclxuXHJcbmV4cG9ydCBjbGFzcyBWaXJ0dWFsU2Nyb2xsQ29tcG9uZW50IGV4dGVuZHMgQ29udGFpbmVyRmllbGRCYXNlIGltcGxlbWVudHMgWkNvbXBvbmVudCwgT25Jbml0IHtcclxuICBAVmlld0NoaWxkKENka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydCkgdmlld1BvcnQ6IENka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydDtcclxuICBwdWJsaWMgY29sbGFwc2VkR3JvdXBCeSA9IFtdOyAvLyBVc2VkIHRvIGRlZmluZSBhbmltYXRpb24gc3RhdHVzXHJcbiAgcHVibGljIGdyb3VwQnlWYWx1ZVRvRXhwYW5kID0gJyc7ICAvLyBVc2VkIHRvIGRlZmluZSBhbmltYXRpb24gc3RhdHVzXHJcbiAgcHVibGljIGNvbGxhcHNlZEdyb3VwQnlfRmlyc3ROb2RlSW5kZXhMaXN0ID0gbmV3IEFycmF5PG51bWJlcj4oKTsgLy8gV2hlbiBjb2xsYXBzZSwgbmVlZCB0byByZXRhaW4gdGhlIGZpcnN0IG5vZGUgaW4gdGhlIGxpc3Qgc28gdGhhdCB0aGUgZ3JvdXAgYnkgdGl0bGUgd2lsbCBub3QgYmUgaGlkZGVuXHJcbiAgcHJpdmF0ZSBmdWxsRGF0YUl0ZW1zID0gW107XHJcbiAgcHVibGljIGRhdGFJdGVtczogQXJyYXk8YW55PiA9IFtdO1xyXG4gIHB1YmxpYyBwYWdlU2l6ZSA9IDUwO1xyXG4gIHB1YmxpYyBwYWdlRmV0Y2hlZCA9IFtdO1xyXG4gIHB1YmxpYyBvcHRpb25zOiBWaXJ0dWFsU2Nyb2xsT3B0aW9uO1xyXG4gIHB1YmxpYyBmb290ZXJGaWVsZHMgPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBjb21wb25lbnRTZXJ2aWNlOiBaQ29tcG9uZW50U2VydmljZSxcclxuICAgIHB1YmxpYyBmb250QXdlU29tZVNlcnZpY2U6IEZvbnRBd2VTb21lU2VydmljZVxyXG4gICkge1xyXG4gICAgc3VwZXIoY29tcG9uZW50U2VydmljZSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuc2V0dXBDb21wb25lbnQoKTtcclxuICAgIHRoaXMuc2V0dXBEYXRhSXRlbXMoKTtcclxuICAgIHRoaXMuc2V0dXBGb290ZXIoKTtcclxuICAgIHN1cGVyLmluaXRDb21wb25lbnQoKS5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuY29tcG9uZW50U2VydmljZS5kZWNyZW1lbnRDb21wb25lbnRDb3VudGVyRm9yRmllbGQodGhpcy5kYXRhKTtcclxuICAgIHRoaXMudmlld1BvcnQuc2Nyb2xsZWRJbmRleENoYW5nZS5waXBlKFxyXG4gICAgICBhdWRpdFRpbWUodGhpcy5kYXRhLlNjcm9sbEluZGV4Q2hhbmdlVGltZURlbGF5IHx8IDMwMCksXHJcbiAgICAgIHRhcCgoY3VyckluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICB0aGlzLnBvcHVsYXRlTGlzdERhdGEoY3VyckluZGV4KTtcclxuICAgICAgfSlcclxuICAgICkuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2Nyb2xsVG9Ub3AoKSB7XHJcbiAgICBpZiAodGhpcy52aWV3UG9ydCkge1xyXG4gICAgICB0aGlzLnZpZXdQb3J0LnNjcm9sbFRvSW5kZXgoMCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldHVwQ29tcG9uZW50KCkge1xyXG4gICAgdGhpcy5jb2xsYXBzZWRHcm91cEJ5ID0gW107XHJcbiAgICBpZiAodGhpcy5kYXRhLk9wdGlvbnMpIHtcclxuICAgICAgaWYgKHR5cGVvZiB0aGlzLmRhdGEuT3B0aW9ucyA9PT0gJ3N0cmluZycgJiYgdGhpcy5kYXRhLk9wdGlvbnMuc3RhcnRzV2l0aCgnZ3JvdXAuJykpIHtcclxuICAgICAgICB0aGlzLm9wdGlvbnMgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwVmFsdWUodGhpcy5kYXRhLk9wdGlvbnMsIHRoaXMuZ3JvdXApO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMub3B0aW9ucyA9IHRoaXMuZGF0YS5PcHRpb25zO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLnBhZ2VTaXplID0gdGhpcy5vcHRpb25zLnBhZ2VTaXplID8/IDUwO1xyXG4gICAgICB0aGlzLm9wdGlvbnMubG9hZGluZ0xhYmVsID0gdGhpcy5vcHRpb25zLmxvYWRpbmdMYWJlbCA/PyAnPGRpdj5Mb2FkaW5nPC9kaXY+JztcclxuICAgICAgdGhpcy5vcHRpb25zLml0ZW1TaXplID0gdGhpcy5vcHRpb25zLml0ZW1TaXplID8/IDUwO1xyXG4gICAgICB0aGlzLm9wdGlvbnMubWluQnVmZmVyUHggPSB0aGlzLm9wdGlvbnMubWluQnVmZmVyUHggPz8gKHRoaXMub3B0aW9ucy5wYWdlU2l6ZSAqIHRoaXMub3B0aW9ucy5pdGVtU2l6ZSk7XHJcbiAgICAgIHRoaXMub3B0aW9ucy5tYXhCdWZmZXJQeCA9IHRoaXMub3B0aW9ucy5tYXhCdWZmZXJQeCA/PyAodGhpcy5vcHRpb25zLnBhZ2VTaXplICogdGhpcy5vcHRpb25zLml0ZW1TaXplKTtcclxuICAgICAgdGhpcy5vcHRpb25zLmlzR3JvdXBCeUVuYWJsZWQgPSB0aGlzLm9wdGlvbnMuaXNHcm91cEJ5RW5hYmxlZCA/PyAhIXRoaXMub3B0aW9ucy5ncm91cEJ5O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFwcGVuZERhdGEoZGF0YUl0ZW1zOiBBcnJheTxhbnk+KSB7XHJcbiAgICB0aGlzLmZ1bGxEYXRhSXRlbXMgPSB0aGlzLmZ1bGxEYXRhSXRlbXMuY29uY2F0KGRhdGFJdGVtcyk7XHJcbiAgICB0aGlzLnBhZ2VTaXplID0gdGhpcy5mdWxsRGF0YUl0ZW1zLmxlbmd0aDtcclxuICAgIHRoaXMuY29tcHV0ZURhdGFJdGVtcygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXR1cERhdGFJdGVtcygpIHtcclxuICAgIHRoaXMucGFnZUZldGNoZWQgPSBbXTtcclxuICAgIGlmICh0aGlzLmRhdGEuRGF0YVNldFJlc3VsdCkge1xyXG4gICAgICBsZXQgZGF0YVNldFJlc3VsdCA9IHRoaXMuZGF0YS5EYXRhU2V0UmVzdWx0O1xyXG4gICAgICBpZiAodHlwZW9mIGRhdGFTZXRSZXN1bHQgPT0gJ3N0cmluZycgJiYgZGF0YVNldFJlc3VsdC5zdGFydHNXaXRoKCdncm91cC4nKSkge1xyXG4gICAgICAgIGRhdGFTZXRSZXN1bHQgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwVmFsdWUoZGF0YVNldFJlc3VsdCwgdGhpcy5ncm91cCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5zZXREYXRhKGRhdGFTZXRSZXN1bHQgYXMgRGF0YVNldFJlc3VsdCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5kYXRhSXRlbXMgPSBbXTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXREYXRhKGRhdGFTZXRSZXN1bHQ6IERhdGFTZXRSZXN1bHQpIHtcclxuICAgIHRoaXMucGFnZUZldGNoZWQgPSBbXTtcclxuICAgIGlmIChkYXRhU2V0UmVzdWx0LmRhdGFTZXQgJiYgQXJyYXkuaXNBcnJheShkYXRhU2V0UmVzdWx0LmRhdGFTZXQpICYmIGRhdGFTZXRSZXN1bHQuZGF0YVNldC5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGNvbnN0IGNudCA9IGRhdGFTZXRSZXN1bHQudG90YWxDb3VudCAtIGRhdGFTZXRSZXN1bHQuZGF0YVNldC5sZW5ndGg7XHJcbiAgICAgIGlmIChjbnQgPCAwKSB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcignRGF0YUl0ZW1zIGNhbm5vdCBiZSBtb3JlIHRoYW4gdG90YWwgY291bnQuJyk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLmRhdGFJdGVtcyA9IGRhdGFTZXRSZXN1bHQuZGF0YVNldC5jb25jYXQoQXJyYXkoY250KS5maWxsKGZhbHNlKSk7XHJcbiAgICAgIGNvbnN0IHBhZ2VOb1RvTWFya0FzRmV0Y2ggPSBNYXRoLmNlaWwoZGF0YVNldFJlc3VsdC5kYXRhU2V0Lmxlbmd0aCAvIHRoaXMucGFnZVNpemUpIC0gMTtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gcGFnZU5vVG9NYXJrQXNGZXRjaDsgaSsrKSB7XHJcbiAgICAgICAgdGhpcy5wYWdlRmV0Y2hlZC5wdXNoKGkpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChkYXRhU2V0UmVzdWx0LnRvdGFsQ291bnQpIHtcclxuICAgICAgdGhpcy5kYXRhSXRlbXMgPSBBcnJheShkYXRhU2V0UmVzdWx0LnRvdGFsQ291bnQpLmZpbGwoZmFsc2UpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuZGF0YUl0ZW1zID0gW107XHJcbiAgICB9XHJcbiAgICB0aGlzLmZ1bGxEYXRhSXRlbXMgPSB0aGlzLmRhdGFJdGVtcztcclxuICAgIHRoaXMuY29tcHV0ZURhdGFJdGVtcygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBwb3B1bGF0ZUxpc3REYXRhKGN1cnJJbmRleDogbnVtYmVyKSB7XHJcbiAgICBjb25zdCByZW5kZXJSYW5nZSA9IHRoaXMudmlld1BvcnQuZ2V0UmVuZGVyZWRSYW5nZSgpO1xyXG4gICAgaWYgKHJlbmRlclJhbmdlLnN0YXJ0ID09IHJlbmRlclJhbmdlLmVuZCAmJiByZW5kZXJSYW5nZS5lbmQgPT0gMCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3Qgc3RhcnRQYWdlTm8gPSBNYXRoLmZsb29yKHJlbmRlclJhbmdlLnN0YXJ0IC8gdGhpcy5wYWdlU2l6ZSk7XHJcbiAgICBjb25zdCBlbmRQYWdlTm8gPSBNYXRoLmZsb29yKChyZW5kZXJSYW5nZS5lbmQgLSAxKSAvIHRoaXMucGFnZVNpemUpO1xyXG5cclxuICAgIGNvbnN0IG9icyA9IG5ldyBBcnJheTxPYnNlcnZhYmxlPGFueT4+KCk7XHJcbiAgICBmb3IgKGxldCBpID0gc3RhcnRQYWdlTm87IGkgPD0gZW5kUGFnZU5vOyBpKyspIHtcclxuICAgICAgaWYgKCF0aGlzLnBhZ2VGZXRjaGVkLmluY2x1ZGVzKGkpKSB7XHJcbiAgICAgICAgdGhpcy5wYWdlRmV0Y2hlZC5wdXNoKGkpO1xyXG4gICAgICAgIG9icy5wdXNoKFxyXG4gICAgICAgICAgdGhpcy5mZXRjaERhdGEoaSkucGlwZSh0YXAoKFtkYXRhLCBwYWdlTm9dKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlRGF0YUJ5SW5kZXgocGFnZU5vICogdGhpcy5wYWdlU2l6ZSwgZGF0YSk7XHJcbiAgICAgICAgICB9KSlcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKG9icy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGZvcmtKb2luKG9icykucGlwZSh0YXAocmVzID0+IHtcclxuICAgICAgICB0aGlzLnVwZGF0ZVZpZXdQb3J0RGF0YSgpO1xyXG4gICAgICB9KSkuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZldGNoRGF0YShwYWdlTm8pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgaWYgKHRoaXMuZGF0YS5PblNjcm9sbCAmJiB0eXBlb2YgdGhpcy5kYXRhLk9uU2Nyb2xsID09ICdzdHJpbmcnICYmIHRoaXMuZGF0YS5PblNjcm9sbC5zdGFydHNXaXRoKCdncm91cC4nKSkge1xyXG4gICAgICBjb25zdCBvblNjcm9sbEV2ZW50ID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cEV2YWxWYWx1ZS5jYWxsKHRoaXMsIHRoaXMuZGF0YS5PblNjcm9sbCk7XHJcbiAgICAgIGlmICh0eXBlb2Ygb25TY3JvbGxFdmVudCA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgIGNvbnN0IGNhbGxGdW5jID0gb25TY3JvbGxFdmVudC5iaW5kKHRoaXMuZ3JvdXAuY3RybFNjb3BlKTtcclxuICAgICAgICByZXR1cm4gZm9ya0pvaW4oW2NhbGxGdW5jKHRoaXMuZ3JvdXAsIHsgcGFnZU5vOiBwYWdlTm8sIHBhZ2VTaXplOiB0aGlzLnBhZ2VTaXplIH0pLCBvZihwYWdlTm8pXSBhcyBBcnJheTxPYnNlcnZhYmxlPGFueT4+KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBvZihmYWxzZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZURhdGFCeUluZGV4KHN0YXJ0aW5nSW5kZXg6IG51bWJlciwgZGF0YTogQXJyYXk8YW55Pikge1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIHRoaXMuZGF0YUl0ZW1zW3N0YXJ0aW5nSW5kZXggKyBpXSA9IGRhdGFbaV07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZVZpZXdQb3J0RGF0YSgpIHtcclxuICAgIHRoaXMuZGF0YUl0ZW1zID0gWy4uLnRoaXMuZGF0YUl0ZW1zXTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXR1cEZvb3RlcigpIHtcclxuICAgIGlmICh0aGlzLmRhdGEuVmFsdWUgJiYgQXJyYXkuaXNBcnJheSh0aGlzLmRhdGEuVmFsdWUpKSB7XHJcbiAgICAgIHRoaXMuZm9vdGVyRmllbGRzID0gdGhpcy5kYXRhLlZhbHVlLmZpbHRlcih4ID0+IHguU2VjdGlvbiA9PT0gJ2Zvb3RlcicpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldENvbXBvbmVudE9wdGlvbnMoKTogVmlydHVhbFNjcm9sbE9wdGlvbiB7XHJcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zO1xyXG4gIH1cclxuXHJcbiAgLy8jcmVnaW9uIEdyb3VwIEJ5XHJcbiAgcHVibGljIGdldEdyb3VwQnlMYWJlbFRlbXBsYXRlKGRhdGFJdGVtLCBvcHRpb25zKTogc3RyaW5nIHtcclxuICAgIGlmIChvcHRpb25zLmdyb3VwQnlMYWJlbFRlbXBsYXRlICYmIHR5cGVvZiBvcHRpb25zLmdyb3VwQnlMYWJlbFRlbXBsYXRlID09ICdzdHJpbmcnKSB7XHJcbiAgICAgIGlmIChvcHRpb25zLmdyb3VwQnlMYWJlbFRlbXBsYXRlLnN0YXJ0c1dpdGgoJ2dyb3VwLicpKSB7XHJcbiAgICAgICAgY29uc3QgZ2V0VGVtcGxhdGVGdW5jID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cEV2YWxWYWx1ZS5jYWxsKHRoaXMsIG9wdGlvbnMuZ3JvdXBCeUxhYmVsVGVtcGxhdGUpO1xyXG5cclxuICAgICAgICBpZiAoZ2V0VGVtcGxhdGVGdW5jKSB7XHJcbiAgICAgICAgICByZXR1cm4gZ2V0VGVtcGxhdGVGdW5jKHtcclxuICAgICAgICAgICAgZGF0YUl0ZW0sXHJcbiAgICAgICAgICAgIG9wdGlvbnMsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIGRhdGFJdGVtW29wdGlvbnMuZ3JvdXBCeUxhYmVsVGVtcGxhdGVdO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ3JvdXBCeU9uQ2xpY2soZ3JvdXBCeVZhbHVlOiBzdHJpbmcpIHtcclxuICAgIGlmICghdGhpcy5vcHRpb25zLmlzR3JvdXBCeUNvbGxhcHNpYmxlKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICAvLyB1c2UgY29sbGFwc2UgLyBleHBhbmQgdG8gY29udHJvbCBhbmltYXRpb24gc2VxdWVuY2VcclxuICAgIGNvbnN0IGlzVG9Db2xsYXBzZSA9ICF0aGlzLmNvbGxhcHNlZEdyb3VwQnkuaW5jbHVkZXMoZ3JvdXBCeVZhbHVlKTtcclxuXHJcbiAgICBjb25zdCBmaXJzdE5vZGVJbmRleCA9IHRoaXMuZnVsbERhdGFJdGVtcy5tYXAoeCA9PiB4W3RoaXMub3B0aW9ucy5ncm91cEJ5XSkuaW5kZXhPZihncm91cEJ5VmFsdWUpO1xyXG4gICAgaWYgKGlzVG9Db2xsYXBzZSkge1xyXG4gICAgICAvLyB0byBjb2xsYXBzZSAoRm9yIGFuaW1hdGlvbjogQ2hhbmdlIHN0YXR1cywgdGhlbiBhcHBlbmQgZGF0YSlcclxuICAgICAgdGhpcy5jb2xsYXBzZWRHcm91cEJ5LnB1c2goZ3JvdXBCeVZhbHVlKTtcclxuICAgICAgdGhpcy5jb2xsYXBzZWRHcm91cEJ5X0ZpcnN0Tm9kZUluZGV4TGlzdC5wdXNoKGZpcnN0Tm9kZUluZGV4KTtcclxuICAgICAgb2Yoe30pLnBpcGUoZGVsYXkoNDAwKSxcclxuICAgICAgICB0YXAoKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5jb21wdXRlRGF0YUl0ZW1zKCk7XHJcbiAgICAgICAgfSlcclxuICAgICAgKS5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAvLyB0byBleHBhbmQgKEZvciBhbmltYXRpb246IEFwcGVuZCBkYXRhLCB0aGVuIGNoYW5nZSBzdGF0dXMpXHJcbiAgICAgIHRoaXMuY29sbGFwc2VkR3JvdXBCeV9GaXJzdE5vZGVJbmRleExpc3QgPSB0aGlzLmNvbGxhcHNlZEdyb3VwQnlfRmlyc3ROb2RlSW5kZXhMaXN0LmZpbHRlcih4ID0+IHggIT0gZmlyc3ROb2RlSW5kZXgpO1xyXG4gICAgICBjb25zdCB0ZW1wQ29sbGFwc2VkR3JvdXBCeSA9IHRoaXMuY29sbGFwc2VkR3JvdXBCeS5maWx0ZXIoeCA9PiB4ICE9PSBncm91cEJ5VmFsdWUpO1xyXG4gICAgICB0aGlzLmRhdGFJdGVtcyA9IHRoaXMuZnVsbERhdGFJdGVtcy5maWx0ZXIoKHgsIGluZGV4KSA9PiAhdGVtcENvbGxhcHNlZEdyb3VwQnkuaW5jbHVkZXMoeFt0aGlzLm9wdGlvbnMuZ3JvdXBCeV0pIHx8IHRoaXMuY29sbGFwc2VkR3JvdXBCeV9GaXJzdE5vZGVJbmRleExpc3QuaW5jbHVkZXMoaW5kZXgpKTtcclxuICAgICAgdGhpcy5ncm91cEJ5VmFsdWVUb0V4cGFuZCA9IGdyb3VwQnlWYWx1ZTtcclxuICAgICAgb2Yoe30pLnBpcGUoZGVsYXkoMCksXHJcbiAgICAgICAgdGFwKCgpID0+IHtcclxuICAgICAgICAgIHRoaXMuY29sbGFwc2VkR3JvdXBCeSA9IHRlbXBDb2xsYXBzZWRHcm91cEJ5O1xyXG4gICAgICAgICAgdGhpcy5ncm91cEJ5VmFsdWVUb0V4cGFuZCA9IGdyb3VwQnlWYWx1ZTtcclxuICAgICAgICB9KVxyXG4gICAgICApLnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjb21wdXRlRGF0YUl0ZW1zKCkge1xyXG4gICAgdGhpcy5kYXRhSXRlbXMgPSB0aGlzLmZ1bGxEYXRhSXRlbXMuZmlsdGVyKCh4LCBpbmRleCkgPT4gIXRoaXMuY29sbGFwc2VkR3JvdXBCeS5pbmNsdWRlcyh4W3RoaXMub3B0aW9ucy5ncm91cEJ5XSkgfHwgdGhpcy5jb2xsYXBzZWRHcm91cEJ5X0ZpcnN0Tm9kZUluZGV4TGlzdC5pbmNsdWRlcyhpbmRleCkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGV4cGFuZEFsbCgpIHtcclxuICAgIHRoaXMuZ3JvdXBCeVZhbHVlVG9FeHBhbmQgPSAnJztcclxuICAgIHRoaXMuY29sbGFwc2VkR3JvdXBCeSA9IFtdO1xyXG4gICAgdGhpcy5jb2xsYXBzZWRHcm91cEJ5X0ZpcnN0Tm9kZUluZGV4TGlzdCA9IFtdO1xyXG4gICAgdGhpcy5jb21wdXRlRGF0YUl0ZW1zKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZXhwYW5kQnlHcm91cEJ5VmFsdWVzKGdyb3VwQnlWYWx1ZTogQXJyYXk8c3RyaW5nPikge1xyXG4gICAgdGhpcy5jb2xsYXBzZWRHcm91cEJ5ID0gdGhpcy5jb2xsYXBzZWRHcm91cEJ5LmZpbHRlcih4ID0+ICFncm91cEJ5VmFsdWUuaW5jbHVkZXMoeCkpO1xyXG4gICAgdGhpcy5jb21wdXRlRGF0YUl0ZW1zKCk7XHJcbiAgfVxyXG4gIC8vI2VuZHJlZ2lvblxyXG59XHJcbiIsIjxkaXZcclxuICAqbmdJZj1cIighIWNvbXBvbmVudFByb3BlcnRpZXMuaXNWaXNpYmxlRmllbGQgPyBncm91cFtjb21wb25lbnRQcm9wZXJ0aWVzLmlzVmlzaWJsZUZpZWxkXSA6IGNvbXBvbmVudFByb3BlcnRpZXMuaXNWaXNpYmxlKVwiXHJcbiAgY2xhc3M9XCJjb250YWluZXIgZTF0YWctY29udGFpbmVyLXN0eWxlXCIgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuY29udGFpbmVyU3R5bGUuc3R5bGVcIlxyXG4gIFtuZ0NsYXNzXT1cIihkYXRhLkNvbXBvbmVudFN0eWxlVHlwZSB8fCAnJykgKyAnICcgKyAoZGF0YS5DbGFzcyB8fCAnJylcIj5cclxuICA8Y2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0XHJcbiAgICAgICAgW2l0ZW1TaXplXT1cIm9wdGlvbnMuaXRlbVNpemVcIlxyXG4gICAgICAgIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLmNvbnRhaW5lclN0eWxlLnN0eWxlMVwiXHJcbiAgICAgICAgY2xhc3M9XCJ2aXJ0dWFsLXNjcm9sbC12aWV3cG9ydCBlMXRhZy1jb250YWluZXItc3R5bGUxXCJcclxuICAgICAgICBbbWluQnVmZmVyUHhdPVwib3B0aW9ucy5taW5CdWZmZXJQeFwiXHJcbiAgICAgICAgW21heEJ1ZmZlclB4XT1cIm9wdGlvbnMubWF4QnVmZmVyUHhcIj5cclxuICAgIDxuZy1jb250YWluZXIgKmNka1ZpcnR1YWxGb3I9XCJsZXQgZGF0YUl0ZW0gb2YgZGF0YUl0ZW1zOyBsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgIDxkaXYgI3ZpcnR1YWxzY3JvbGxjb250ZW50PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ2aXJ0dWFsLXNjcm9sbC1ncm91cGJ5IGUxdGFnLWNvbnRhaW5lci1zdHlsZTRcIiBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5jb250YWluZXJTdHlsZS5zdHlsZTRcIlxyXG4gICAgICAgICAgKm5nSWY9XCJvcHRpb25zLmlzR3JvdXBCeUVuYWJsZWQgJiYgb3B0aW9ucy5ncm91cEJ5ICYmICghZGF0YUl0ZW1zW2ktMV0gfHwgZGF0YUl0ZW1bb3B0aW9ucy5ncm91cEJ5XSAhPT0gZGF0YUl0ZW1zW2ktMV1bb3B0aW9ucy5ncm91cEJ5XSlcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cImdyb3VwQnlPbkNsaWNrKGRhdGFJdGVtW29wdGlvbnMuZ3JvdXBCeV0pXCIgW2NsYXNzLmdyb3VwYnktY29sbGFwc2libGVdPVwib3B0aW9ucy5pc0dyb3VwQnlDb2xsYXBzaWJsZVwiPlxyXG4gICAgICAgICAgPGZhLWljb24gY2xhc3M9XCJ2aXJ0dWFsLXNjcm9sbC1ncm91cGJ5LWFycm93LWljb24gZTF0YWctY29udGFpbmVyLXN0eWxlNVwiXHJcbiAgICAgICAgICAgIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLmNvbnRhaW5lclN0eWxlLnN0eWxlNVwiICpuZ0lmPVwiISFvcHRpb25zLmlzR3JvdXBCeUNvbGxhcHNpYmxlXCJcclxuICAgICAgICAgICAgW2ljb25dPVwiZ2V0Rm9udEF3ZXNvbWUoJ2NhcmV0LWRvd24nLCBmb250QXdlU29tZVNlcnZpY2UpXCJcclxuICAgICAgICAgICAgW0Byb3RhdGVBbmltYXRpb25dPVwie3ZhbHVlOiBjb2xsYXBzZWRHcm91cEJ5LmluY2x1ZGVzKGRhdGFJdGVtW29wdGlvbnMuZ3JvdXBCeV0pID8gJ3JvdGF0ZScgOiAnZGVmYXVsdCcsIHBhcmFtczoge2RlZ3JlZTogLTkwfX1cIj5cclxuICAgICAgICAgIDwvZmEtaWNvbj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmlydHVhbC1zY3JvbGwtZ3JvdXBieS1sYWJlbCBlMXRhZy1jb250YWluZXItc3R5bGU2XCJcclxuICAgICAgICAgICAgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuY29udGFpbmVyU3R5bGUuc3R5bGU2XCI+XHJcbiAgICAgICAgICAgIHt7b3B0aW9ucy5ncm91cEJ5TGFiZWxUZW1wbGF0ZSA/IGdldEdyb3VwQnlMYWJlbFRlbXBsYXRlKGRhdGFJdGVtLCBvcHRpb25zKSA6IGRhdGFJdGVtW29wdGlvbnMuZ3JvdXBCeV19fVxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCIhb3B0aW9ucy5pc0dyb3VwQnlFbmFibGVkXCIgW3N0eWxlLmhlaWdodC5weF09XCJvcHRpb25zLml0ZW1TaXplXCJcclxuICAgICAgICAgIFtzdHlsZS5taW4taGVpZ2h0LnB4XT1cIm9wdGlvbnMuaXRlbVNpemVcIiBbc3R5bGUubWF4LWhlaWdodC5weF09XCJvcHRpb25zLml0ZW1TaXplXCJcclxuICAgICAgICAgIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLmNvbnRhaW5lclN0eWxlLnN0eWxlMlwiIGNsYXNzPVwiZTF0YWctY29udGFpbmVyLXN0eWxlMiB2aXJ0dWFsLXNjcm9sbC1kYXRhaXRlbVwiXHJcbiAgICAgICAgICAoY2xpY2spPVwib25DbGljaygkZXZlbnQsIGRhdGFJdGVtKVwiIFtpZF09XCJkYXRhLk5hbWUgKyAnXycgKyBkYXRhSXRlbT8uVmFsdWU/LklkIHx8ICcnXCI+XHJcbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIWRhdGFJdGVtXCIgW2lubmVySFRNTF09XCJvcHRpb25zLmxvYWRpbmdMYWJlbCB8IGh0bWxTYW5pdGl6ZVwiPjwvZGl2PlxyXG4gICAgICAgICAgPGRpdiAqbmdJZj1cImRhdGFJdGVtLkxhYmVsXCIgW2lubmVySFRNTF09XCJkYXRhSXRlbS5MYWJlbCB8IGh0bWxTYW5pdGl6ZVwiPjwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJvcHRpb25zLmlzR3JvdXBCeUVuYWJsZWRcIiBbc3R5bGUuaGVpZ2h0LnB4XT1cIm9wdGlvbnMuaXRlbVNpemVcIlxyXG4gICAgICAgICAgW3N0eWxlLm1pbi1oZWlnaHQucHhdPVwib3B0aW9ucy5pdGVtU2l6ZVwiIFtzdHlsZS5tYXgtaGVpZ2h0LnB4XT1cIm9wdGlvbnMuaXRlbVNpemVcIlxyXG4gICAgICAgICAgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuY29udGFpbmVyU3R5bGUuc3R5bGUyXCIgY2xhc3M9XCJlMXRhZy1jb250YWluZXItc3R5bGUyIHZpcnR1YWwtc2Nyb2xsLWRhdGFpdGVtXCJcclxuICAgICAgICAgIChjbGljayk9XCJvbkNsaWNrKCRldmVudCwgZGF0YUl0ZW0pXCIgW2lkXT1cImRhdGEuTmFtZSArICdfJyArIGRhdGFJdGVtPy5WYWx1ZT8uSWQgfHwgJydcIlxyXG4gICAgICAgICAgW0Bjb2xsYXBzZUFuaW1hdGlvbl09XCJ7dmFsdWU6ICEhb3B0aW9ucy5ncm91cEJ5ICYmIGNvbGxhcHNlZEdyb3VwQnkuaW5jbHVkZXMoZGF0YUl0ZW1bb3B0aW9ucy5ncm91cEJ5XSkgPyAnY29sbGFwc2UnIDogJ2RlZmF1bHQnfVwiXHJcbiAgICAgICAgICBbY2xhc3MuZ3JvdXBieS12YWx1ZS1leHBhbmRdPVwiZ3JvdXBCeVZhbHVlVG9FeHBhbmQgPT0gKGRhdGFJdGVtW29wdGlvbnMuZ3JvdXBCeV0pXCI+XHJcbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIWRhdGFJdGVtXCIgW2lubmVySFRNTF09XCJvcHRpb25zLmxvYWRpbmdMYWJlbCB8IGh0bWxTYW5pdGl6ZVwiPjwvZGl2PlxyXG4gICAgICAgICAgPGRpdiAqbmdJZj1cImRhdGFJdGVtLkxhYmVsXCIgW2lubmVySFRNTF09XCJkYXRhSXRlbS5MYWJlbCB8IGh0bWxTYW5pdGl6ZVwiPjwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGFwcC1jb250ZXh0LW1lbnUgW2RhdGFdPVwiZGF0YVwiIFtncm91cF09XCJncm91cFwiIFtmb3JtXT1cImZvcm1cIiBbdGFyZ2V0XT1cInZpcnR1YWxzY3JvbGxjb250ZW50XCIgW3NlbGVjdGVkRGF0YV09XCJkYXRhSXRlbVwiPjwvYXBwLWNvbnRleHQtbWVudT5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPGFwcC16Zm9ybWNvbnRyb2wgKm5nRm9yPVwibGV0IGZpZWxkIG9mIGZvb3RlckZpZWxkc1wiIFtmaWVsZF09XCJmaWVsZFwiIFtjb250YWluZXJGaWVsZF09XCJkYXRhXCIgW2dyb3VwXT1cImdyb3VwXCJcclxuICAgICAgW2Zvcm1dPVwiZm9ybVwiIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLmNvbnRhaW5lclN0eWxlLnN0eWxlM1wiIGNsYXNzPVwiZTF0YWctY29udGFpbmVyLXN0eWxlM1wiPlxyXG4gICAgPC9hcHAtemZvcm1jb250cm9sPlxyXG4gIDwvY2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0PlxyXG48L2Rpdj5cclxuIl19
|
|
@@ -107,11 +107,17 @@ export class ZbuttonsComponent extends ButtonFieldBase {
|
|
|
107
107
|
getButtonDisableTriggerValue(data, button) {
|
|
108
108
|
return button.DisableTrigger != undefined ? button.DisableTrigger : (data.DisableTrigger != undefined ? data.DisableTrigger : false);
|
|
109
109
|
}
|
|
110
|
+
disableButton(buttonName, isDisabled = true) {
|
|
111
|
+
const selectedButton = this.items.find(x => x.name == buttonName);
|
|
112
|
+
if (selectedButton) {
|
|
113
|
+
selectedButton.disabled = isDisabled;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
110
116
|
}
|
|
111
117
|
ZbuttonsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ZbuttonsComponent, deps: [{ token: i1.ZComponentService }, { token: i2.FieldService }, { token: i2.FontAweSomeService }], target: i0.ɵɵFactoryTarget.Component });
|
|
112
|
-
ZbuttonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: ZbuttonsComponent, selector: "app-zbuttons", usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible) && items.length > 0\" [style]=\"componentProperties.style.style\" class=\"e1tag-style\">\r\n\r\n <div class=\"ion-margin-vertical e1tag-style1\" *ngIf=\"isMobileScreen() && items.length > 1 && FirstZbtn === false\"\r\n [style]=\"componentProperties.style.style1\">\r\n <kendo-dropdownbutton [data]=\"items\" size=\"large\" [look]=\"'outline'\" class=\"ion-activatable ripple-parent e1tag-style2\"\r\n [style]=\"componentProperties.style.style2\">\r\n Actions\r\n <ng-template kendoDropDownButtonItemTemplate let-dataItem>\r\n <!-- <span class=\"k-icon k-i-{{ dataItem.icon }}\"></span> -->\r\n <span (click)=\"buttonClick(dataItem)\">{{ dataItem.text }}</span>\r\n </ng-template>\r\n <ion-ripple-effect></ion-ripple-effect>\r\n </kendo-dropdownbutton>\r\n </div>\r\n\r\n <div *ngIf=\"!isMobileScreen() || items.length === 1 \" [ngClass]=\"data.DivClass\" class=\"btn-container e1tag-style3\"\r\n [style]=\"componentProperties.style.style3\">\r\n <div class=\"btn-left e1tag-style4\" [style]=\"componentProperties.style.style4\">\r\n <ion-button [fill]=\"item.fill\" [size]=\"item.size\" [color]=\"item.color\" strong=\"true\"\r\n *ngFor=\"let item of leftBtns; let i = index\" [ngClass]=\"item.class\" (click)=\"buttonClick(item)\"\r\n [hidden]=\"!isBtnVisible(item.visible)\" [disabled]=\"group.isTriggered\"\r\n [style]=\"componentProperties.style.style5\" class=\"e1tag-style5\">\r\n <fa-icon class=\"btn-icon\" *ngIf=\"item.icon\" [icon]=\"getFontAwesome(item.icon, fontAweSomeService)\"></fa-icon>\r\n <span *ngIf=\"item.text\" [class.btn-label]=\"item.icon\" class=\"ion-text-capitalize\">{{item.text}}</span>\r\n </ion-button>\r\n </div>\r\n <div class=\"btn-right e1tag-style6\" [style]=\"componentProperties.style.style6\">\r\n <ion-button [fill]=\"item.fill\" [size]=\"item.size\" [color]=\"item.color\" strong=\"true\"\r\n *ngFor=\"let item of rightBtns; let i = index\" [ngClass]=\"item.class\" (click)=\"buttonClick(item)\"\r\n [hidden]=\"!isBtnVisible(item.visible)\" [disabled]=\"group.isTriggered\"\r\n [style]=\"componentProperties.style.style7\" class=\"e1tag-style7\">\r\n <fa-icon class=\"btn-icon\" *ngIf=\"item.icon\" [icon]=\"getFontAwesome(item.icon, fontAweSomeService)\"></fa-icon>\r\n <span *ngIf=\"item.text\" [class.btn-label]=\"item.icon\" class=\"ion-text-capitalize\">{{item.text}}</span>\r\n </ion-button>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".ripple-parent{position:relative;overflow:hidden}.btn-container{padding:5px 0;display:flex;flex-direction:row;justify-content:space-between}ion-button{font-size:var(--button-font-size);margin-left:10px;--border-radius: var(--button-border-radius);--box-shadow: 1px 2px 4px 0px rgba(0, 0, 0, .25)}ion-button.useCustomClass{--background-hover-opacity: 1;--border-width: 2px;--border-style: solid;--background: #fff;--background-hover: rgba(var(--ion-color-primary-rgb), .05);--color: var(--ion-color-primary);--border-color: var(--ion-color-primary)}ion-button.primary-light{--background: rgba(var(--ion-color-primary-rgb), .05);--background-hover: #fff;--color: var(--ion-color-primary);--border-color: var(--ion-color-primary)}ion-button.primary{--background: var(--ion-color-primary);--background-hover: var(--ion-color-primary-tint);--color: var(--ion-color-primary-contrast);--border-color: var(--ion-color-primary-shade)}ion-button.success{--background: var(--ion-color-success);--background-hover: var(--ion-color-success-tint);--color: var(--ion-color-success-contrast);--border-color: var(--ion-color-success-shade)}ion-button.danger{--background: var(--ion-color-danger);--background-hover: var(--ion-color-danger-tint2);--color: var(--ion-color-danger-contrast);--border-color: var(--ion-color-danger-shade)}ion-button.warning{--background: var(--ion-color-warning);--background-hover: var(--ion-color-warning-tint);--color: #000;--border-color: var(--ion-color-warning-shade)}ion-button.no-shadow{--box-shadow: none}.btn-label{padding-left:8px}\n"], components: [{ type: i3.DropDownButtonComponent, selector: "kendo-dropdownbutton", inputs: ["icon", "iconClass", "imageUrl", "textField", "data", "size", "rounded", "fillMode", "themeColor"], outputs: ["itemClick", "focus", "blur"], exportAs: ["kendoDropDownButton"] }, { type: i4.IonRippleEffect, selector: "ion-ripple-effect", inputs: ["type"] }, { type: i4.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { type: i5.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.ButtonItemTemplateDirective, selector: "[kendoDropDownButtonItemTemplate],[kendoSplitButtonItemTemplate]" }, { type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i7.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
118
|
+
ZbuttonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: ZbuttonsComponent, selector: "app-zbuttons", usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible) && items.length > 0\" [style]=\"componentProperties.style.style\" class=\"e1tag-style\">\r\n\r\n <div class=\"ion-margin-vertical e1tag-style1\" *ngIf=\"isMobileScreen() && items.length > 1 && FirstZbtn === false\"\r\n [style]=\"componentProperties.style.style1\">\r\n <kendo-dropdownbutton [data]=\"items\" size=\"large\" [look]=\"'outline'\" class=\"ion-activatable ripple-parent e1tag-style2\"\r\n [style]=\"componentProperties.style.style2\">\r\n Actions\r\n <ng-template kendoDropDownButtonItemTemplate let-dataItem>\r\n <!-- <span class=\"k-icon k-i-{{ dataItem.icon }}\"></span> -->\r\n <span (click)=\"buttonClick(dataItem)\">{{ dataItem.text }}</span>\r\n </ng-template>\r\n <ion-ripple-effect></ion-ripple-effect>\r\n </kendo-dropdownbutton>\r\n </div>\r\n\r\n <div *ngIf=\"!isMobileScreen() || items.length === 1 \" [ngClass]=\"data.DivClass\" class=\"btn-container e1tag-style3\"\r\n [style]=\"componentProperties.style.style3\">\r\n <div class=\"btn-left e1tag-style4\" [style]=\"componentProperties.style.style4\">\r\n <ion-button [fill]=\"item.fill\" [size]=\"item.size\" [color]=\"item.color\" strong=\"true\"\r\n *ngFor=\"let item of leftBtns; let i = index\" [ngClass]=\"item.class\" (click)=\"buttonClick(item)\"\r\n [hidden]=\"!isBtnVisible(item.visible)\" [disabled]=\"group.isTriggered || item.disabled\"\r\n [style]=\"componentProperties.style.style5\" class=\"e1tag-style5\">\r\n <fa-icon class=\"btn-icon\" *ngIf=\"item.icon\" [icon]=\"getFontAwesome(item.icon, fontAweSomeService)\"></fa-icon>\r\n <span *ngIf=\"item.text\" [class.btn-label]=\"item.icon\" class=\"ion-text-capitalize\">{{item.text}}</span>\r\n </ion-button>\r\n </div>\r\n <div class=\"btn-right e1tag-style6\" [style]=\"componentProperties.style.style6\">\r\n <ion-button [fill]=\"item.fill\" [size]=\"item.size\" [color]=\"item.color\" strong=\"true\"\r\n *ngFor=\"let item of rightBtns; let i = index\" [ngClass]=\"item.class\" (click)=\"buttonClick(item)\"\r\n [hidden]=\"!isBtnVisible(item.visible)\" [disabled]=\"group.isTriggered || item.disabled\"\r\n [style]=\"componentProperties.style.style7\" class=\"e1tag-style7\">\r\n <fa-icon class=\"btn-icon\" *ngIf=\"item.icon\" [icon]=\"getFontAwesome(item.icon, fontAweSomeService)\"></fa-icon>\r\n <span *ngIf=\"item.text\" [class.btn-label]=\"item.icon\" class=\"ion-text-capitalize\">{{item.text}}</span>\r\n </ion-button>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".ripple-parent{position:relative;overflow:hidden}.btn-container{padding:5px 0;display:flex;flex-direction:row;justify-content:space-between}ion-button{font-size:var(--button-font-size);margin-left:10px;--border-radius: var(--button-border-radius);--box-shadow: 1px 2px 4px 0px rgba(0, 0, 0, .25)}ion-button.useCustomClass{--background-hover-opacity: 1;--border-width: 2px;--border-style: solid;--background: #fff;--background-hover: rgba(var(--ion-color-primary-rgb), .05);--color: var(--ion-color-primary);--border-color: var(--ion-color-primary)}ion-button.primary-light{--background: rgba(var(--ion-color-primary-rgb), .05);--background-hover: #fff;--color: var(--ion-color-primary);--border-color: var(--ion-color-primary)}ion-button.primary{--background: var(--ion-color-primary);--background-hover: var(--ion-color-primary-tint);--color: var(--ion-color-primary-contrast);--border-color: var(--ion-color-primary-shade)}ion-button.success{--background: var(--ion-color-success);--background-hover: var(--ion-color-success-tint);--color: var(--ion-color-success-contrast);--border-color: var(--ion-color-success-shade)}ion-button.danger{--background: var(--ion-color-danger);--background-hover: var(--ion-color-danger-tint2);--color: var(--ion-color-danger-contrast);--border-color: var(--ion-color-danger-shade)}ion-button.warning{--background: var(--ion-color-warning);--background-hover: var(--ion-color-warning-tint);--color: #000;--border-color: var(--ion-color-warning-shade)}ion-button.no-shadow{--box-shadow: none}.btn-label{padding-left:8px}\n"], components: [{ type: i3.DropDownButtonComponent, selector: "kendo-dropdownbutton", inputs: ["icon", "iconClass", "imageUrl", "textField", "data", "size", "rounded", "fillMode", "themeColor"], outputs: ["itemClick", "focus", "blur"], exportAs: ["kendoDropDownButton"] }, { type: i4.IonRippleEffect, selector: "ion-ripple-effect", inputs: ["type"] }, { type: i4.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { type: i5.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.ButtonItemTemplateDirective, selector: "[kendoDropDownButtonItemTemplate],[kendoSplitButtonItemTemplate]" }, { type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i7.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
113
119
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ZbuttonsComponent, decorators: [{
|
|
114
120
|
type: Component,
|
|
115
|
-
args: [{ selector: "app-zbuttons", template: "<div *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible) && items.length > 0\" [style]=\"componentProperties.style.style\" class=\"e1tag-style\">\r\n\r\n <div class=\"ion-margin-vertical e1tag-style1\" *ngIf=\"isMobileScreen() && items.length > 1 && FirstZbtn === false\"\r\n [style]=\"componentProperties.style.style1\">\r\n <kendo-dropdownbutton [data]=\"items\" size=\"large\" [look]=\"'outline'\" class=\"ion-activatable ripple-parent e1tag-style2\"\r\n [style]=\"componentProperties.style.style2\">\r\n Actions\r\n <ng-template kendoDropDownButtonItemTemplate let-dataItem>\r\n <!-- <span class=\"k-icon k-i-{{ dataItem.icon }}\"></span> -->\r\n <span (click)=\"buttonClick(dataItem)\">{{ dataItem.text }}</span>\r\n </ng-template>\r\n <ion-ripple-effect></ion-ripple-effect>\r\n </kendo-dropdownbutton>\r\n </div>\r\n\r\n <div *ngIf=\"!isMobileScreen() || items.length === 1 \" [ngClass]=\"data.DivClass\" class=\"btn-container e1tag-style3\"\r\n [style]=\"componentProperties.style.style3\">\r\n <div class=\"btn-left e1tag-style4\" [style]=\"componentProperties.style.style4\">\r\n <ion-button [fill]=\"item.fill\" [size]=\"item.size\" [color]=\"item.color\" strong=\"true\"\r\n *ngFor=\"let item of leftBtns; let i = index\" [ngClass]=\"item.class\" (click)=\"buttonClick(item)\"\r\n [hidden]=\"!isBtnVisible(item.visible)\" [disabled]=\"group.isTriggered\"\r\n [style]=\"componentProperties.style.style5\" class=\"e1tag-style5\">\r\n <fa-icon class=\"btn-icon\" *ngIf=\"item.icon\" [icon]=\"getFontAwesome(item.icon, fontAweSomeService)\"></fa-icon>\r\n <span *ngIf=\"item.text\" [class.btn-label]=\"item.icon\" class=\"ion-text-capitalize\">{{item.text}}</span>\r\n </ion-button>\r\n </div>\r\n <div class=\"btn-right e1tag-style6\" [style]=\"componentProperties.style.style6\">\r\n <ion-button [fill]=\"item.fill\" [size]=\"item.size\" [color]=\"item.color\" strong=\"true\"\r\n *ngFor=\"let item of rightBtns; let i = index\" [ngClass]=\"item.class\" (click)=\"buttonClick(item)\"\r\n [hidden]=\"!isBtnVisible(item.visible)\" [disabled]=\"group.isTriggered\"\r\n [style]=\"componentProperties.style.style7\" class=\"e1tag-style7\">\r\n <fa-icon class=\"btn-icon\" *ngIf=\"item.icon\" [icon]=\"getFontAwesome(item.icon, fontAweSomeService)\"></fa-icon>\r\n <span *ngIf=\"item.text\" [class.btn-label]=\"item.icon\" class=\"ion-text-capitalize\">{{item.text}}</span>\r\n </ion-button>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".ripple-parent{position:relative;overflow:hidden}.btn-container{padding:5px 0;display:flex;flex-direction:row;justify-content:space-between}ion-button{font-size:var(--button-font-size);margin-left:10px;--border-radius: var(--button-border-radius);--box-shadow: 1px 2px 4px 0px rgba(0, 0, 0, .25)}ion-button.useCustomClass{--background-hover-opacity: 1;--border-width: 2px;--border-style: solid;--background: #fff;--background-hover: rgba(var(--ion-color-primary-rgb), .05);--color: var(--ion-color-primary);--border-color: var(--ion-color-primary)}ion-button.primary-light{--background: rgba(var(--ion-color-primary-rgb), .05);--background-hover: #fff;--color: var(--ion-color-primary);--border-color: var(--ion-color-primary)}ion-button.primary{--background: var(--ion-color-primary);--background-hover: var(--ion-color-primary-tint);--color: var(--ion-color-primary-contrast);--border-color: var(--ion-color-primary-shade)}ion-button.success{--background: var(--ion-color-success);--background-hover: var(--ion-color-success-tint);--color: var(--ion-color-success-contrast);--border-color: var(--ion-color-success-shade)}ion-button.danger{--background: var(--ion-color-danger);--background-hover: var(--ion-color-danger-tint2);--color: var(--ion-color-danger-contrast);--border-color: var(--ion-color-danger-shade)}ion-button.warning{--background: var(--ion-color-warning);--background-hover: var(--ion-color-warning-tint);--color: #000;--border-color: var(--ion-color-warning-shade)}ion-button.no-shadow{--box-shadow: none}.btn-label{padding-left:8px}\n"] }]
|
|
121
|
+
args: [{ selector: "app-zbuttons", template: "<div *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible) && items.length > 0\" [style]=\"componentProperties.style.style\" class=\"e1tag-style\">\r\n\r\n <div class=\"ion-margin-vertical e1tag-style1\" *ngIf=\"isMobileScreen() && items.length > 1 && FirstZbtn === false\"\r\n [style]=\"componentProperties.style.style1\">\r\n <kendo-dropdownbutton [data]=\"items\" size=\"large\" [look]=\"'outline'\" class=\"ion-activatable ripple-parent e1tag-style2\"\r\n [style]=\"componentProperties.style.style2\">\r\n Actions\r\n <ng-template kendoDropDownButtonItemTemplate let-dataItem>\r\n <!-- <span class=\"k-icon k-i-{{ dataItem.icon }}\"></span> -->\r\n <span (click)=\"buttonClick(dataItem)\">{{ dataItem.text }}</span>\r\n </ng-template>\r\n <ion-ripple-effect></ion-ripple-effect>\r\n </kendo-dropdownbutton>\r\n </div>\r\n\r\n <div *ngIf=\"!isMobileScreen() || items.length === 1 \" [ngClass]=\"data.DivClass\" class=\"btn-container e1tag-style3\"\r\n [style]=\"componentProperties.style.style3\">\r\n <div class=\"btn-left e1tag-style4\" [style]=\"componentProperties.style.style4\">\r\n <ion-button [fill]=\"item.fill\" [size]=\"item.size\" [color]=\"item.color\" strong=\"true\"\r\n *ngFor=\"let item of leftBtns; let i = index\" [ngClass]=\"item.class\" (click)=\"buttonClick(item)\"\r\n [hidden]=\"!isBtnVisible(item.visible)\" [disabled]=\"group.isTriggered || item.disabled\"\r\n [style]=\"componentProperties.style.style5\" class=\"e1tag-style5\">\r\n <fa-icon class=\"btn-icon\" *ngIf=\"item.icon\" [icon]=\"getFontAwesome(item.icon, fontAweSomeService)\"></fa-icon>\r\n <span *ngIf=\"item.text\" [class.btn-label]=\"item.icon\" class=\"ion-text-capitalize\">{{item.text}}</span>\r\n </ion-button>\r\n </div>\r\n <div class=\"btn-right e1tag-style6\" [style]=\"componentProperties.style.style6\">\r\n <ion-button [fill]=\"item.fill\" [size]=\"item.size\" [color]=\"item.color\" strong=\"true\"\r\n *ngFor=\"let item of rightBtns; let i = index\" [ngClass]=\"item.class\" (click)=\"buttonClick(item)\"\r\n [hidden]=\"!isBtnVisible(item.visible)\" [disabled]=\"group.isTriggered || item.disabled\"\r\n [style]=\"componentProperties.style.style7\" class=\"e1tag-style7\">\r\n <fa-icon class=\"btn-icon\" *ngIf=\"item.icon\" [icon]=\"getFontAwesome(item.icon, fontAweSomeService)\"></fa-icon>\r\n <span *ngIf=\"item.text\" [class.btn-label]=\"item.icon\" class=\"ion-text-capitalize\">{{item.text}}</span>\r\n </ion-button>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".ripple-parent{position:relative;overflow:hidden}.btn-container{padding:5px 0;display:flex;flex-direction:row;justify-content:space-between}ion-button{font-size:var(--button-font-size);margin-left:10px;--border-radius: var(--button-border-radius);--box-shadow: 1px 2px 4px 0px rgba(0, 0, 0, .25)}ion-button.useCustomClass{--background-hover-opacity: 1;--border-width: 2px;--border-style: solid;--background: #fff;--background-hover: rgba(var(--ion-color-primary-rgb), .05);--color: var(--ion-color-primary);--border-color: var(--ion-color-primary)}ion-button.primary-light{--background: rgba(var(--ion-color-primary-rgb), .05);--background-hover: #fff;--color: var(--ion-color-primary);--border-color: var(--ion-color-primary)}ion-button.primary{--background: var(--ion-color-primary);--background-hover: var(--ion-color-primary-tint);--color: var(--ion-color-primary-contrast);--border-color: var(--ion-color-primary-shade)}ion-button.success{--background: var(--ion-color-success);--background-hover: var(--ion-color-success-tint);--color: var(--ion-color-success-contrast);--border-color: var(--ion-color-success-shade)}ion-button.danger{--background: var(--ion-color-danger);--background-hover: var(--ion-color-danger-tint2);--color: var(--ion-color-danger-contrast);--border-color: var(--ion-color-danger-shade)}ion-button.warning{--background: var(--ion-color-warning);--background-hover: var(--ion-color-warning-tint);--color: #000;--border-color: var(--ion-color-warning-shade)}ion-button.no-shadow{--box-shadow: none}.btn-label{padding-left:8px}\n"] }]
|
|
116
122
|
}], ctorParameters: function () { return [{ type: i1.ZComponentService }, { type: i2.FieldService }, { type: i2.FontAweSomeService }]; } });
|
|
117
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiemJ1dHRvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvemJ1dHRvbnMvemJ1dHRvbnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvemJ1dHRvbnMvemJ1dHRvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0JBQStCO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFbEQsNkJBQTZCO0FBRTdCLDhCQUE4QjtBQUM5QixPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWhELDJDQUEyQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFFMUUsT0FBTyxFQUVPLGdCQUFnQixHQUM3QixNQUFNLGlCQUFpQixDQUFDOzs7Ozs7Ozs7QUFTekIsTUFBTSxPQUFPLGlCQUFrQixTQUFRLGVBQWU7SUFNcEQsWUFDUyxnQkFBbUMsRUFDbEMsWUFBMEIsRUFDM0Isa0JBQXNDO1FBRTdDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBSmpCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBbUI7UUFDbEMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDM0IsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQVIvQyxVQUFLLEdBQWUsRUFBRSxDQUFDO1FBQ3ZCLGFBQVEsR0FBZSxFQUFFLENBQUM7UUFDMUIsY0FBUyxHQUFlLEVBQUUsQ0FBQztRQUMzQixjQUFTLEdBQUcsS0FBSyxDQUFDO0lBUWxCLENBQUM7SUFFRCxRQUFRO1FBQ04sS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDbkMsSUFBSSxD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QUMsRUFBRSxHQUFHLENBQUMsQ0FBQzthQUNUO1NBQ0Y7UUFFRCxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDN0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO1lBQ3RCLElBQUksRUFBRSxhQUFhO1lBQ25CLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVTtZQUN2QixJQUFJLEVBQUUsSUFBSTtTQUNjLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRU8sNEJBQTRCLENBQUMsSUFBWSxFQUFFLE1BQVc7UUFDNUQsT0FBTyxNQUFNLENBQUMsY0FBYyxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkksQ0FBQzs7OEdBaEhVLGlCQUFpQjtrR0FBakIsaUJBQWlCLDJFQ3ZCOUIsMnJGQXFDQTsyRkRkYSxpQkFBaUI7a0JBTjdCLFNBQVM7K0JBQ0UsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbIi8qKioqKioqKioqIEFuZ3VsYXIgKioqKioqKioqKi9cclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbi8qKioqKioqKioqIElvbmljICoqKioqKioqKiovXHJcblxyXG4vKioqKioqKioqKiBQbHVnaW4gKioqKioqKioqKi9cclxuaW1wb3J0IHsgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG4vKioqKioqKioqKiBDb21wb25lbnQgJiBTZXJ2aWNlICoqKioqKioqKiovXHJcbmltcG9ydCB7IEJ1dHRvbkZpZWxkQmFzZSB9IGZyb20gJy4uL2NvbXBvbmVudHMvYnV0dG9uZmllbGRiYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFpDb21wb25lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvemNvbXBvbmVudC5zZXJ2aWNlJzsgXHJcbmltcG9ydCB7XHJcbiAgRmllbGRTZXJ2aWNlLCBGb250QXdlU29tZVNlcnZpY2UsXHJcbiAgWkNvbXBvbmVudCwgWkNvbXBvbmVudEhlbHBlciwgWkNvbXBvbmVudE91dHB1dEV2ZW50LCBaRmllbGQsXHJcbn0gZnJvbSAnbW1oZ2xvYmFsLXpjb3JlJzsgXHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiYXBwLXpidXR0b25zXCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi96YnV0dG9ucy5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsczogW1wiLi96YnV0dG9ucy5jb21wb25lbnQuc2Nzc1wiXVxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIFpidXR0b25zQ29tcG9uZW50IGV4dGVuZHMgQnV0dG9uRmllbGRCYXNlIGltcGxlbWVudHMgWkNvbXBvbmVudCwgT25Jbml0IHtcclxuICBpdGVtczogQXJyYXk8YW55PiA9IFtdO1xyXG4gIGxlZnRCdG5zOiBBcnJheTxhbnk+ID0gW107XHJcbiAgcmlnaHRCdG5zOiBBcnJheTxhbnk+ID0gW107XHJcbiAgRmlyc3RaYnRuID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGNvbXBvbmVudFNlcnZpY2U6IFpDb21wb25lbnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBmaWVsZFNlcnZpY2U6IEZpZWxkU2VydmljZSxcclxuICAgIHB1YmxpYyBmb250QXdlU29tZVNlcnZpY2U6IEZvbnRBd2VTb21lU2VydmljZVxyXG4gICkge1xyXG4gICAgc3VwZXIoY29tcG9uZW50U2VydmljZSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHN1cGVyLmluaXRDb21wb25lbnQoKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLmxvYWRCdXR0b24oKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5jb21wb25lbnRTZXJ2aWNlLmRlY3JlbWVudENvbXBvbmVudENvdW50ZXJGb3JGaWVsZCh0aGlzLmRhdGEpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBsb2FkQnV0dG9uKCkge1xyXG4gICAgY29uc3QgZmllbGQkID0gdGhpcy5maWVsZFNlcnZpY2UuZ2V0Rm9ybUZpZWxkQ29kZShcclxuICAgICAgdGhpcy5kYXRhLlZhbHVlLFxyXG4gICAgICBcIkZvcm1GaWVsZFwiLCBudWxsLCBudWxsXHJcbiAgICApO1xyXG5cclxuICAgIHRoaXMuZ3JvdXAuekJ1dHRvbnNDb3VudCsrO1xyXG4gICAgaWYgKHRoaXMuZ3JvdXAuekJ1dHRvbnNDb3VudCA9PT0gMSkge1xyXG4gICAgICB0aGlzLkZpcnN0WmJ0biA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgdHJ5IHtcclxuICAgICAgZmllbGQkLnBpcGUoXHJcbiAgICAgICAgdGFwKGRhdGEgPT4ge1xyXG4gICAgICAgICAgLy8gdGhpcy5pdGVtcyA9IGRhdGE7XHJcbiAgICAgICAgICBkYXRhLmZvckVhY2goKGJ1dHRvbjogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmRhdGEuU3ViVHlwZSkge1xyXG4gICAgICAgICAgICAgIGJ1dHRvbi5OYW1lID0gdGhpcy5kYXRhLlN1YlR5cGUgKyAnXycgKyBidXR0b24uTmFtZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb25zdCBsYWJlbCA9IHRoaXMuZ2V0QnV0dG9uTGFiZWwoYnV0dG9uKTtcclxuXHJcbiAgICAgICAgICAgIGxldCBidXR0b25EaXNhYmxlZCA9IG51bGw7XHJcblxyXG4gICAgICAgICAgICBpZiAoYnV0dG9uLkRpc2FibGVkICE9IFwiXCIgJiYgYnV0dG9uLkRpc2FibGVkKSB7XHJcbiAgICAgICAgICAgICAgYnV0dG9uRGlzYWJsZWQgPSBidXR0b24uRGlzYWJsZWQgPT09ICd0cnVlJyA/IHRydWUgOiBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwRXZhbFZhbHVlLmNhbGwodGhpcywgYnV0dG9uLkRpc2FibGVkKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgY29uc3QgaXNVc2VDdXN0b21DbGFzcyA9IGJ1dHRvbi5Db2xvciA/IGZhbHNlIDogdHJ1ZTtcclxuICAgICAgICAgICAgbGV0IGJ0biA9IHtcclxuICAgICAgICAgICAgICBuYW1lOiBidXR0b24uTmFtZSxcclxuICAgICAgICAgICAgICB0ZXh0OiBsYWJlbCxcclxuICAgICAgICAgICAgICBpY29uOiBaQ29tcG9uZW50SGVscGVyLmdldEljb24oYnV0dG9uLkljb24pLFxyXG4gICAgICAgICAgICAgIHZpc2libGU6IGJ1dHRvbi5WaXNpYmxlLFxyXG4gICAgICAgICAgICAgIGNvbG9yOiBpc1VzZUN1c3RvbUNsYXNzID8gJycgOiAoYnV0dG9uLkNvbG9yIHx8ICdwcmltYXJ5JyksXHJcbiAgICAgICAgICAgICAgZmlsbDogaXNVc2VDdXN0b21DbGFzcyA/ICcnIDogKGJ1dHRvbi5GaWxsIHx8ICdzb2xpZCcpLFxyXG4gICAgICAgICAgICAgIHNpemU6IGJ1dHRvbi5TaXplIHx8ICdkZWZhdWx0JyxcclxuICAgICAgICAgICAgICBjbGFzczogaXNVc2VDdXN0b21DbGFzcyA/IGAke2J1dHRvbi5DbGFzc30gdXNlQ3VzdG9tQ2xhc3NgIDogYnV0dG9uLkNsYXNzLFxyXG4gICAgICAgICAgICAgIGRpc2FibGVkOiBidXR0b25EaXNhYmxlZCxcclxuICAgICAgICAgICAgICBjbGlja0V2ZW50OiBidXR0b24uQ2xpY2tFdmVudCxcclxuICAgICAgICAgICAgICBpY29uTmFtZTogYnV0dG9uLkljb24sXHJcbiAgICAgICAgICAgICAgZGlzbWlzc1R5cGU6IGJ1dHRvbi5EaXNtaXNzVHlwZSxcclxuICAgICAgICAgICAgICBkaXNhYmxlVHJpZ2dlclRpbWVyOiBidXR0b24uRGlzYWJsZVRyaWdnZXJUaW1lcixcclxuICAgICAgICAgICAgICBkaXNhYmxlVHJpZ2dlcjogdGhpcy5nZXRCdXR0b25EaXNhYmxlVHJpZ2dlclZhbHVlKHRoaXMuZGF0YSwgYnV0dG9uKSxcclxuICAgICAgICAgICAgICBTdWJUeXBlOiB0aGlzLmRhdGEuU3ViVHlwZSxcclxuICAgICAgICAgICAgICBidXR0b25EYXRhOiBidXR0b24sXHJcbiAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICBpZiAoYnV0dG9uLlBvc2l0aW9uWCAmJiBidXR0b24uUG9zaXRpb25YID09PSBcInJpZ2h0XCIpIHtcclxuICAgICAgICAgICAgICB0aGlzLnJpZ2h0QnRucy5wdXNoKGJ0bik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5sZWZ0QnRucy5wdXNoKGJ0bik7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHRoaXMuaXRlbXMucHVzaCguLi50aGlzLmxlZnRCdG5zLCAuLi50aGlzLnJpZ2h0QnRucyk7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IHtcclxuICAgICAgICAgIHJldHVybiBzdXBlci50cmFuc2xhdGVCdXR0b25zTGFiZWwodGhpcy5pdGVtcyk7XHJcbiAgICAgICAgfSlcclxuICAgICAgKS5zdWJzY3JpYmUoKTtcclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoXCJlcnJvcjogXCIsIGVycm9yKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGJ1dHRvbkNsaWNrKGl0ZW06IGFueSkge1xyXG4gICAgLy8gZGVidWdnZXI7XHJcbiAgICB0aGlzLmdyb3VwLmlzVHJpZ2dlcmVkID0gaXRlbS5kaXNhYmxlVHJpZ2dlciAhPSB1bmRlZmluZWQgPyAhaXRlbS5kaXNhYmxlVHJpZ2dlciA6IHRydWU7XHJcbiAgICBpZiAodGhpcy5ncm91cC5pc1RyaWdnZXJlZCkge1xyXG4gICAgICBjb25zdCBtZSA9IHRoaXMuZ3JvdXA7XHJcbiAgICAgIGlmICghaXRlbVsnZGlzYWJsZVRyaWdnZXJUaW1lciddKSB7XHJcbiAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICBtZVsnaXNUcmlnZ2VyZWQnXSA9IGZhbHNlO1xyXG4gICAgICAgIH0sIDUwMCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmdyb3VwWydEaXNtaXNzVHlwZSddID0gaXRlbS5kaXNtaXNzVHlwZTtcclxuICAgIHRoaXMuZ3JvdXAuc3ViamVjdC5uZXh0KHtcclxuICAgICAgdHlwZTogXCJidXR0b25DbGlja1wiLFxyXG4gICAgICB0YXJnZXQ6IGl0ZW0uY2xpY2tFdmVudCxcclxuICAgICAgZGF0YTogaXRlbVxyXG4gICAgfSBhcyBaQ29tcG9uZW50T3V0cHV0RXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRCdXR0b25EaXNhYmxlVHJpZ2dlclZhbHVlKGRhdGE6IFpGaWVsZCwgYnV0dG9uOiBhbnkpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBidXR0b24uRGlzYWJsZVRyaWdnZXIgIT0gdW5kZWZpbmVkID8gYnV0dG9uLkRpc2FibGVUcmlnZ2VyIDogKGRhdGEuRGlzYWJsZVRyaWdnZXIgIT0gdW5kZWZpbmVkID8gZGF0YS5EaXNhYmxlVHJpZ2dlciA6IGZhbHNlKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiAqbmdJZj1cIighIWNvbXBvbmVudFByb3BlcnRpZXMuaXNWaXNpYmxlRmllbGQgPyBncm91cFtjb21wb25lbnRQcm9wZXJ0aWVzLmlzVmlzaWJsZUZpZWxkXSA6IGNvbXBvbmVudFByb3BlcnRpZXMuaXNWaXNpYmxlKSAmJiBpdGVtcy5sZW5ndGggPiAwXCIgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGVcIiBjbGFzcz1cImUxdGFnLXN0eWxlXCI+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJpb24tbWFyZ2luLXZlcnRpY2FsIGUxdGFnLXN0eWxlMVwiICpuZ0lmPVwiaXNNb2JpbGVTY3JlZW4oKSAmJiBpdGVtcy5sZW5ndGggPiAxICYmIEZpcnN0WmJ0biA9PT0gZmFsc2VcIlxyXG4gICAgICAgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGUxXCI+XHJcbiAgICA8a2VuZG8tZHJvcGRvd25idXR0b24gW2RhdGFdPVwiaXRlbXNcIiBzaXplPVwibGFyZ2VcIiBbbG9va109XCInb3V0bGluZSdcIiBjbGFzcz1cImlvbi1hY3RpdmF0YWJsZSByaXBwbGUtcGFyZW50IGUxdGFnLXN0eWxlMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGUyXCI+XHJcbiAgICAgIEFjdGlvbnNcclxuICAgICAgPG5nLXRlbXBsYXRlIGtlbmRvRHJvcERvd25CdXR0b25JdGVtVGVtcGxhdGUgbGV0LWRhdGFJdGVtPlxyXG4gICAgICAgIDwhLS0gPHNwYW4gY2xhc3M9XCJrLWljb24gay1pLXt7IGRhdGFJdGVtLmljb24gfX1cIj48L3NwYW4+IC0tPlxyXG4gICAgICAgIDxzcGFuIChjbGljayk9XCJidXR0b25DbGljayhkYXRhSXRlbSlcIj57eyBkYXRhSXRlbS50ZXh0IH19PC9zcGFuPlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8aW9uLXJpcHBsZS1lZmZlY3Q+PC9pb24tcmlwcGxlLWVmZmVjdD5cclxuICAgIDwva2VuZG8tZHJvcGRvd25idXR0b24+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgKm5nSWY9XCIhaXNNb2JpbGVTY3JlZW4oKSB8fCBpdGVtcy5sZW5ndGggPT09IDEgXCIgW25nQ2xhc3NdPVwiZGF0YS5EaXZDbGFzc1wiIGNsYXNzPVwiYnRuLWNvbnRhaW5lciBlMXRhZy1zdHlsZTNcIlxyXG4gICAgICAgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGUzXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiYnRuLWxlZnQgZTF0YWctc3R5bGU0XCIgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGU0XCI+XHJcbiAgICAgIDxpb24tYnV0dG9uIFtmaWxsXT1cIml0ZW0uZmlsbFwiIFtzaXplXT1cIml0ZW0uc2l6ZVwiIFtjb2xvcl09XCJpdGVtLmNvbG9yXCIgc3Ryb25nPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGxlZnRCdG5zOyBsZXQgaSA9IGluZGV4XCIgW25nQ2xhc3NdPVwiaXRlbS5jbGFzc1wiIChjbGljayk9XCJidXR0b25DbGljayhpdGVtKVwiXHJcbiAgICAgICAgICAgICAgICAgIFtoaWRkZW5dPVwiIWlzQnRuVmlzaWJsZShpdGVtLnZpc2libGUpXCIgW2Rpc2FibGVkXT1cImdyb3VwLmlzVHJpZ2dlcmVkXCJcclxuICAgICAgICAgICAgICAgICAgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGU1XCIgY2xhc3M9XCJlMXRhZy1zdHlsZTVcIj5cclxuICAgICAgICA8ZmEtaWNvbiBjbGFzcz1cImJ0bi1pY29uXCIgKm5nSWY9XCJpdGVtLmljb25cIiBbaWNvbl09XCJnZXRGb250QXdlc29tZShpdGVtLmljb24sIGZvbnRBd2VTb21lU2VydmljZSlcIj48L2ZhLWljb24+XHJcbiAgICAgICAgPHNwYW4gKm5nSWY9XCJpdGVtLnRleHRcIiBbY2xhc3MuYnRuLWxhYmVsXT1cIml0ZW0uaWNvblwiIGNsYXNzPVwiaW9uLXRleHQtY2FwaXRhbGl6ZVwiPnt7aXRlbS50ZXh0fX08L3NwYW4+XHJcbiAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImJ0bi1yaWdodCBlMXRhZy1zdHlsZTZcIiBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5zdHlsZS5zdHlsZTZcIj5cclxuICAgICAgPGlvbi1idXR0b24gW2ZpbGxdPVwiaXRlbS5maWxsXCIgW3NpemVdPVwiaXRlbS5zaXplXCIgW2NvbG9yXT1cIml0ZW0uY29sb3JcIiBzdHJvbmc9XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgcmlnaHRCdG5zOyBsZXQgaSA9IGluZGV4XCIgW25nQ2xhc3NdPVwiaXRlbS5jbGFzc1wiIChjbGljayk9XCJidXR0b25DbGljayhpdGVtKVwiXHJcbiAgICAgICAgICAgICAgICAgIFtoaWRkZW5dPVwiIWlzQnRuVmlzaWJsZShpdGVtLnZpc2libGUpXCIgW2Rpc2FibGVkXT1cImdyb3VwLmlzVHJpZ2dlcmVkXCJcclxuICAgICAgICAgICAgICAgICAgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGU3XCIgY2xhc3M9XCJlMXRhZy1zdHlsZTdcIj5cclxuICAgICAgICA8ZmEtaWNvbiBjbGFzcz1cImJ0bi1pY29uXCIgKm5nSWY9XCJpdGVtLmljb25cIiBbaWNvbl09XCJnZXRGb250QXdlc29tZShpdGVtLmljb24sIGZvbnRBd2VTb21lU2VydmljZSlcIj48L2ZhLWljb24+XHJcbiAgICAgICAgPHNwYW4gKm5nSWY9XCJpdGVtLnRleHRcIiBbY2xhc3MuYnRuLWxhYmVsXT1cIml0ZW0uaWNvblwiIGNsYXNzPVwiaW9uLXRleHQtY2FwaXRhbGl6ZVwiPnt7aXRlbS50ZXh0fX08L3NwYW4+XHJcbiAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|
|
123
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiemJ1dHRvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvemJ1dHRvbnMvemJ1dHRvbnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvemJ1dHRvbnMvemJ1dHRvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0JBQStCO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFbEQsNkJBQTZCO0FBRTdCLDhCQUE4QjtBQUM5QixPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWhELDJDQUEyQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFFMUUsT0FBTyxFQUVPLGdCQUFnQixHQUM3QixNQUFNLGlCQUFpQixDQUFDOzs7Ozs7Ozs7QUFTekIsTUFBTSxPQUFPLGlCQUFrQixTQUFRLGVBQWU7SUFNcEQsWUFDUyxnQkFBbUMsRUFDbEMsWUFBMEIsRUFDM0Isa0JBQXNDO1FBRTdDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBSmpCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBbUI7UUFDbEMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDM0IsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQVIvQyxVQUFLLEdBQWUsRUFBRSxDQUFDO1FBQ3ZCLGFBQVEsR0FBZSxFQUFFLENBQUM7UUFDMUIsY0FBUyxHQUFlLEVBQUUsQ0FBQztRQUMzQixjQUFTLEdBQUcsS0FBSyxDQUFDO0lBUWxCLENBQUM7SUFFRCxRQUFRO1FBQ04sS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDbkMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsZ0JBQWdCLENBQUMsaUNBQWlDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFTyxVQUFVO1FBQ2hCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLENBQy9DLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUNmLFdBQVcsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUN4QixDQUFDO1FBRUYsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUMzQixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxLQUFLLENBQUMsRUFBRTtZQUNsQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztTQUN2QjtRQUVELElBQUk7WUFDRixNQUFNLENBQUMsSUFBSSxDQUNULEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDVCxxQkFBcUI7Z0JBQ3JCLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFXLEVBQUUsRUFBRTtvQkFDM0IsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTt3QkFDckIsTUFBTSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztxQkFDckQ7b0JBQ0QsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFFMUMsSUFBSSxjQUFjLEdBQUcsSUFBSSxDQUFDO29CQUUxQixJQUFJLE1BQU0sQ0FBQyxRQUFRLElBQUksRUFBRSxJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUU7d0JBQzVDLGNBQWMsR0FBRyxNQUFNLENBQUMsUUFBUSxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztxQkFDckg7b0JBRUQsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztvQkFDckQsSUFBSSxHQUFHLEdBQUc7d0JBQ1IsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJO3dCQUNqQixJQUFJLEVBQUUsS0FBSzt3QkFDWCxJQUFJLEVBQUUsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7d0JBQzNDLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTzt3QkFDdkIsS0FBSyxFQUFFLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxTQUFTLENBQUM7d0JBQzFELElBQUksRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDO3dCQUN0RCxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksSUFBSSxTQUFTO3dCQUM5QixLQUFLLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLEtBQUssaUJBQWlCLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLO3dCQUN6RSxRQUFRLEVBQUUsY0FBYzt3QkFDeEIsVUFBVSxFQUFFLE1BQU0sQ0FBQyxVQUFVO3dCQUM3QixRQUFRLEVBQUUsTUFBTSxDQUFDLElBQUk7d0JBQ3JCLFdBQVcsRUFBRSxNQUFNLENBQUMsV0FBVzt3QkFDL0IsbUJBQW1CLEVBQUUsTUFBTSxDQUFDLG1CQUFtQjt3QkFDL0MsY0FBYyxFQUFFLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQzt3QkFDcEUsT0FBTyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTzt3QkFDMUIsVUFBVSxFQUFFLE1BQU07cUJBQ25CLENBQUM7b0JBRUYsSUFBSSxNQUFNLENBQUMsU0FBUyxJQUFJLE1BQU0sQ0FBQyxTQUFTLEtBQUssT0FBTyxFQUFFO3dCQUNwRCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztxQkFDMUI7eUJBQ0k7d0JBQ0gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7cUJBQ3pCO2dCQUVILENBQUMsQ0FBQyxDQUFDO2dCQUNILElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN2RCxDQUFDLENBQUMsRUFDRixTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNiLE9BQU8sS0FBSyxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNqRCxDQUFDLENBQUMsQ0FDSCxDQUFDLFNBQVMsRUFBRSxDQUFDO1NBQ2Y7UUFBQyxPQUFPLEtBQUssRUFBRTtZQUNkLE9BQU8sQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQ2pDO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxJQUFTO1FBQ25CLFlBQVk7UUFDWixJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsY0FBYyxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDeEYsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRTtZQUMxQixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1lBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsRUFBRTtnQkFDaEMsVUFBVSxDQUFDO29CQUNULEVBQUUsQ0FBQyxhQUFhLENBQUMsR0FBRyxLQUFLLENBQUM7Z0JBQzVCLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQzthQUNUO1NBQ0Y7UUFFRCxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDN0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO1lBQ3RCLElBQUksRUFBRSxhQUFhO1lBQ25CLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVTtZQUN2QixJQUFJLEVBQUUsSUFBSTtTQUNjLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRU8sNEJBQTRCLENBQUMsSUFBWSxFQUFFLE1BQVc7UUFDNUQsT0FBTyxNQUFNLENBQUMsY0FBYyxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkksQ0FBQztJQUVNLGFBQWEsQ0FBQyxVQUFrQixFQUFFLGFBQXNCLElBQUk7UUFDakUsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLFVBQVUsQ0FBQyxDQUFDO1FBQ2xFLElBQUksY0FBYyxFQUFFO1lBQ2xCLGNBQWMsQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO1NBQ3RDO0lBQ0gsQ0FBQzs7OEdBdkhVLGlCQUFpQjtrR0FBakIsaUJBQWlCLDJFQ3ZCOUIsNnRGQXFDQTsyRkRkYSxpQkFBaUI7a0JBTjdCLFNBQVM7K0JBQ0UsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbIi8qKioqKioqKioqIEFuZ3VsYXIgKioqKioqKioqKi9cclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbi8qKioqKioqKioqIElvbmljICoqKioqKioqKiovXHJcblxyXG4vKioqKioqKioqKiBQbHVnaW4gKioqKioqKioqKi9cclxuaW1wb3J0IHsgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG4vKioqKioqKioqKiBDb21wb25lbnQgJiBTZXJ2aWNlICoqKioqKioqKiovXHJcbmltcG9ydCB7IEJ1dHRvbkZpZWxkQmFzZSB9IGZyb20gJy4uL2NvbXBvbmVudHMvYnV0dG9uZmllbGRiYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFpDb21wb25lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvemNvbXBvbmVudC5zZXJ2aWNlJztcclxuaW1wb3J0IHtcclxuICBGaWVsZFNlcnZpY2UsIEZvbnRBd2VTb21lU2VydmljZSxcclxuICBaQ29tcG9uZW50LCBaQ29tcG9uZW50SGVscGVyLCBaQ29tcG9uZW50T3V0cHV0RXZlbnQsIFpGaWVsZCxcclxufSBmcm9tICdtbWhnbG9iYWwtemNvcmUnO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImFwcC16YnV0dG9uc1wiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vemJ1dHRvbnMuY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybHM6IFtcIi4vemJ1dHRvbnMuY29tcG9uZW50LnNjc3NcIl1cclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBaYnV0dG9uc0NvbXBvbmVudCBleHRlbmRzIEJ1dHRvbkZpZWxkQmFzZSBpbXBsZW1lbnRzIFpDb21wb25lbnQsIE9uSW5pdCB7XHJcbiAgaXRlbXM6IEFycmF5PGFueT4gPSBbXTtcclxuICBsZWZ0QnRuczogQXJyYXk8YW55PiA9IFtdO1xyXG4gIHJpZ2h0QnRuczogQXJyYXk8YW55PiA9IFtdO1xyXG4gIEZpcnN0WmJ0biA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBjb21wb25lbnRTZXJ2aWNlOiBaQ29tcG9uZW50U2VydmljZSxcclxuICAgIHByaXZhdGUgZmllbGRTZXJ2aWNlOiBGaWVsZFNlcnZpY2UsXHJcbiAgICBwdWJsaWMgZm9udEF3ZVNvbWVTZXJ2aWNlOiBGb250QXdlU29tZVNlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKGNvbXBvbmVudFNlcnZpY2UpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBzdXBlci5pbml0Q29tcG9uZW50KCkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5sb2FkQnV0dG9uKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuY29tcG9uZW50U2VydmljZS5kZWNyZW1lbnRDb21wb25lbnRDb3VudGVyRm9yRmllbGQodGhpcy5kYXRhKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgbG9hZEJ1dHRvbigpIHtcclxuICAgIGNvbnN0IGZpZWxkJCA9IHRoaXMuZmllbGRTZXJ2aWNlLmdldEZvcm1GaWVsZENvZGUoXHJcbiAgICAgIHRoaXMuZGF0YS5WYWx1ZSxcclxuICAgICAgXCJGb3JtRmllbGRcIiwgbnVsbCwgbnVsbFxyXG4gICAgKTtcclxuXHJcbiAgICB0aGlzLmdyb3VwLnpCdXR0b25zQ291bnQrKztcclxuICAgIGlmICh0aGlzLmdyb3VwLnpCdXR0b25zQ291bnQgPT09IDEpIHtcclxuICAgICAgdGhpcy5GaXJzdFpidG4gPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHRyeSB7XHJcbiAgICAgIGZpZWxkJC5waXBlKFxyXG4gICAgICAgIHRhcChkYXRhID0+IHtcclxuICAgICAgICAgIC8vIHRoaXMuaXRlbXMgPSBkYXRhO1xyXG4gICAgICAgICAgZGF0YS5mb3JFYWNoKChidXR0b246IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5kYXRhLlN1YlR5cGUpIHtcclxuICAgICAgICAgICAgICBidXR0b24uTmFtZSA9IHRoaXMuZGF0YS5TdWJUeXBlICsgJ18nICsgYnV0dG9uLk5hbWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29uc3QgbGFiZWwgPSB0aGlzLmdldEJ1dHRvbkxhYmVsKGJ1dHRvbik7XHJcblxyXG4gICAgICAgICAgICBsZXQgYnV0dG9uRGlzYWJsZWQgPSBudWxsO1xyXG5cclxuICAgICAgICAgICAgaWYgKGJ1dHRvbi5EaXNhYmxlZCAhPSBcIlwiICYmIGJ1dHRvbi5EaXNhYmxlZCkge1xyXG4gICAgICAgICAgICAgIGJ1dHRvbkRpc2FibGVkID0gYnV0dG9uLkRpc2FibGVkID09PSAndHJ1ZScgPyB0cnVlIDogWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cEV2YWxWYWx1ZS5jYWxsKHRoaXMsIGJ1dHRvbi5EaXNhYmxlZCk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGNvbnN0IGlzVXNlQ3VzdG9tQ2xhc3MgPSBidXR0b24uQ29sb3IgPyBmYWxzZSA6IHRydWU7XHJcbiAgICAgICAgICAgIGxldCBidG4gPSB7XHJcbiAgICAgICAgICAgICAgbmFtZTogYnV0dG9uLk5hbWUsXHJcbiAgICAgICAgICAgICAgdGV4dDogbGFiZWwsXHJcbiAgICAgICAgICAgICAgaWNvbjogWkNvbXBvbmVudEhlbHBlci5nZXRJY29uKGJ1dHRvbi5JY29uKSxcclxuICAgICAgICAgICAgICB2aXNpYmxlOiBidXR0b24uVmlzaWJsZSxcclxuICAgICAgICAgICAgICBjb2xvcjogaXNVc2VDdXN0b21DbGFzcyA/ICcnIDogKGJ1dHRvbi5Db2xvciB8fCAncHJpbWFyeScpLFxyXG4gICAgICAgICAgICAgIGZpbGw6IGlzVXNlQ3VzdG9tQ2xhc3MgPyAnJyA6IChidXR0b24uRmlsbCB8fCAnc29saWQnKSxcclxuICAgICAgICAgICAgICBzaXplOiBidXR0b24uU2l6ZSB8fCAnZGVmYXVsdCcsXHJcbiAgICAgICAgICAgICAgY2xhc3M6IGlzVXNlQ3VzdG9tQ2xhc3MgPyBgJHtidXR0b24uQ2xhc3N9IHVzZUN1c3RvbUNsYXNzYCA6IGJ1dHRvbi5DbGFzcyxcclxuICAgICAgICAgICAgICBkaXNhYmxlZDogYnV0dG9uRGlzYWJsZWQsXHJcbiAgICAgICAgICAgICAgY2xpY2tFdmVudDogYnV0dG9uLkNsaWNrRXZlbnQsXHJcbiAgICAgICAgICAgICAgaWNvbk5hbWU6IGJ1dHRvbi5JY29uLFxyXG4gICAgICAgICAgICAgIGRpc21pc3NUeXBlOiBidXR0b24uRGlzbWlzc1R5cGUsXHJcbiAgICAgICAgICAgICAgZGlzYWJsZVRyaWdnZXJUaW1lcjogYnV0dG9uLkRpc2FibGVUcmlnZ2VyVGltZXIsXHJcbiAgICAgICAgICAgICAgZGlzYWJsZVRyaWdnZXI6IHRoaXMuZ2V0QnV0dG9uRGlzYWJsZVRyaWdnZXJWYWx1ZSh0aGlzLmRhdGEsIGJ1dHRvbiksXHJcbiAgICAgICAgICAgICAgU3ViVHlwZTogdGhpcy5kYXRhLlN1YlR5cGUsXHJcbiAgICAgICAgICAgICAgYnV0dG9uRGF0YTogYnV0dG9uLFxyXG4gICAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgICAgaWYgKGJ1dHRvbi5Qb3NpdGlvblggJiYgYnV0dG9uLlBvc2l0aW9uWCA9PT0gXCJyaWdodFwiKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5yaWdodEJ0bnMucHVzaChidG4pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgIHRoaXMubGVmdEJ0bnMucHVzaChidG4pO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICB0aGlzLml0ZW1zLnB1c2goLi4udGhpcy5sZWZ0QnRucywgLi4udGhpcy5yaWdodEJ0bnMpO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gc3VwZXIudHJhbnNsYXRlQnV0dG9uc0xhYmVsKHRoaXMuaXRlbXMpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICkuc3Vic2NyaWJlKCk7XHJcbiAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICBjb25zb2xlLmVycm9yKFwiZXJyb3I6IFwiLCBlcnJvcik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBidXR0b25DbGljayhpdGVtOiBhbnkpIHtcclxuICAgIC8vIGRlYnVnZ2VyO1xyXG4gICAgdGhpcy5ncm91cC5pc1RyaWdnZXJlZCA9IGl0ZW0uZGlzYWJsZVRyaWdnZXIgIT0gdW5kZWZpbmVkID8gIWl0ZW0uZGlzYWJsZVRyaWdnZXIgOiB0cnVlO1xyXG4gICAgaWYgKHRoaXMuZ3JvdXAuaXNUcmlnZ2VyZWQpIHtcclxuICAgICAgY29uc3QgbWUgPSB0aGlzLmdyb3VwO1xyXG4gICAgICBpZiAoIWl0ZW1bJ2Rpc2FibGVUcmlnZ2VyVGltZXInXSkge1xyXG4gICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgbWVbJ2lzVHJpZ2dlcmVkJ10gPSBmYWxzZTtcclxuICAgICAgICB9LCA1MDApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5ncm91cFsnRGlzbWlzc1R5cGUnXSA9IGl0ZW0uZGlzbWlzc1R5cGU7XHJcbiAgICB0aGlzLmdyb3VwLnN1YmplY3QubmV4dCh7XHJcbiAgICAgIHR5cGU6IFwiYnV0dG9uQ2xpY2tcIixcclxuICAgICAgdGFyZ2V0OiBpdGVtLmNsaWNrRXZlbnQsXHJcbiAgICAgIGRhdGE6IGl0ZW1cclxuICAgIH0gYXMgWkNvbXBvbmVudE91dHB1dEV2ZW50KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0QnV0dG9uRGlzYWJsZVRyaWdnZXJWYWx1ZShkYXRhOiBaRmllbGQsIGJ1dHRvbjogYW55KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gYnV0dG9uLkRpc2FibGVUcmlnZ2VyICE9IHVuZGVmaW5lZCA/IGJ1dHRvbi5EaXNhYmxlVHJpZ2dlciA6IChkYXRhLkRpc2FibGVUcmlnZ2VyICE9IHVuZGVmaW5lZCA/IGRhdGEuRGlzYWJsZVRyaWdnZXIgOiBmYWxzZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZGlzYWJsZUJ1dHRvbihidXR0b25OYW1lOiBzdHJpbmcsIGlzRGlzYWJsZWQ6IGJvb2xlYW4gPSB0cnVlKSB7XHJcbiAgICBjb25zdCBzZWxlY3RlZEJ1dHRvbiA9IHRoaXMuaXRlbXMuZmluZCh4ID0+IHgubmFtZSA9PSBidXR0b25OYW1lKTtcclxuICAgIGlmIChzZWxlY3RlZEJ1dHRvbikge1xyXG4gICAgICBzZWxlY3RlZEJ1dHRvbi5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgKm5nSWY9XCIoISFjb21wb25lbnRQcm9wZXJ0aWVzLmlzVmlzaWJsZUZpZWxkID8gZ3JvdXBbY29tcG9uZW50UHJvcGVydGllcy5pc1Zpc2libGVGaWVsZF0gOiBjb21wb25lbnRQcm9wZXJ0aWVzLmlzVmlzaWJsZSkgJiYgaXRlbXMubGVuZ3RoID4gMFwiIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLnN0eWxlLnN0eWxlXCIgY2xhc3M9XCJlMXRhZy1zdHlsZVwiPlxyXG5cclxuICA8ZGl2IGNsYXNzPVwiaW9uLW1hcmdpbi12ZXJ0aWNhbCBlMXRhZy1zdHlsZTFcIiAqbmdJZj1cImlzTW9iaWxlU2NyZWVuKCkgJiYgaXRlbXMubGVuZ3RoID4gMSAmJiBGaXJzdFpidG4gPT09IGZhbHNlXCJcclxuICAgICAgIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLnN0eWxlLnN0eWxlMVwiPlxyXG4gICAgPGtlbmRvLWRyb3Bkb3duYnV0dG9uIFtkYXRhXT1cIml0ZW1zXCIgc2l6ZT1cImxhcmdlXCIgW2xvb2tdPVwiJ291dGxpbmUnXCIgY2xhc3M9XCJpb24tYWN0aXZhdGFibGUgcmlwcGxlLXBhcmVudCBlMXRhZy1zdHlsZTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLnN0eWxlLnN0eWxlMlwiPlxyXG4gICAgICBBY3Rpb25zXHJcbiAgICAgIDxuZy10ZW1wbGF0ZSBrZW5kb0Ryb3BEb3duQnV0dG9uSXRlbVRlbXBsYXRlIGxldC1kYXRhSXRlbT5cclxuICAgICAgICA8IS0tIDxzcGFuIGNsYXNzPVwiay1pY29uIGstaS17eyBkYXRhSXRlbS5pY29uIH19XCI+PC9zcGFuPiAtLT5cclxuICAgICAgICA8c3BhbiAoY2xpY2spPVwiYnV0dG9uQ2xpY2soZGF0YUl0ZW0pXCI+e3sgZGF0YUl0ZW0udGV4dCB9fTwvc3Bhbj5cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPGlvbi1yaXBwbGUtZWZmZWN0PjwvaW9uLXJpcHBsZS1lZmZlY3Q+XHJcbiAgICA8L2tlbmRvLWRyb3Bkb3duYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2ICpuZ0lmPVwiIWlzTW9iaWxlU2NyZWVuKCkgfHwgaXRlbXMubGVuZ3RoID09PSAxIFwiIFtuZ0NsYXNzXT1cImRhdGEuRGl2Q2xhc3NcIiBjbGFzcz1cImJ0bi1jb250YWluZXIgZTF0YWctc3R5bGUzXCJcclxuICAgICAgIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLnN0eWxlLnN0eWxlM1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cImJ0bi1sZWZ0IGUxdGFnLXN0eWxlNFwiIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLnN0eWxlLnN0eWxlNFwiPlxyXG4gICAgICA8aW9uLWJ1dHRvbiBbZmlsbF09XCJpdGVtLmZpbGxcIiBbc2l6ZV09XCJpdGVtLnNpemVcIiBbY29sb3JdPVwiaXRlbS5jb2xvclwiIHN0cm9uZz1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBsZWZ0QnRuczsgbGV0IGkgPSBpbmRleFwiIFtuZ0NsYXNzXT1cIml0ZW0uY2xhc3NcIiAoY2xpY2spPVwiYnV0dG9uQ2xpY2soaXRlbSlcIlxyXG4gICAgICAgICAgICAgICAgICBbaGlkZGVuXT1cIiFpc0J0blZpc2libGUoaXRlbS52aXNpYmxlKVwiIFtkaXNhYmxlZF09XCJncm91cC5pc1RyaWdnZXJlZCB8fCBpdGVtLmRpc2FibGVkXCJcclxuICAgICAgICAgICAgICAgICAgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGU1XCIgY2xhc3M9XCJlMXRhZy1zdHlsZTVcIj5cclxuICAgICAgICA8ZmEtaWNvbiBjbGFzcz1cImJ0bi1pY29uXCIgKm5nSWY9XCJpdGVtLmljb25cIiBbaWNvbl09XCJnZXRGb250QXdlc29tZShpdGVtLmljb24sIGZvbnRBd2VTb21lU2VydmljZSlcIj48L2ZhLWljb24+XHJcbiAgICAgICAgPHNwYW4gKm5nSWY9XCJpdGVtLnRleHRcIiBbY2xhc3MuYnRuLWxhYmVsXT1cIml0ZW0uaWNvblwiIGNsYXNzPVwiaW9uLXRleHQtY2FwaXRhbGl6ZVwiPnt7aXRlbS50ZXh0fX08L3NwYW4+XHJcbiAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImJ0bi1yaWdodCBlMXRhZy1zdHlsZTZcIiBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5zdHlsZS5zdHlsZTZcIj5cclxuICAgICAgPGlvbi1idXR0b24gW2ZpbGxdPVwiaXRlbS5maWxsXCIgW3NpemVdPVwiaXRlbS5zaXplXCIgW2NvbG9yXT1cIml0ZW0uY29sb3JcIiBzdHJvbmc9XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgcmlnaHRCdG5zOyBsZXQgaSA9IGluZGV4XCIgW25nQ2xhc3NdPVwiaXRlbS5jbGFzc1wiIChjbGljayk9XCJidXR0b25DbGljayhpdGVtKVwiXHJcbiAgICAgICAgICAgICAgICAgIFtoaWRkZW5dPVwiIWlzQnRuVmlzaWJsZShpdGVtLnZpc2libGUpXCIgW2Rpc2FibGVkXT1cImdyb3VwLmlzVHJpZ2dlcmVkIHx8IGl0ZW0uZGlzYWJsZWRcIlxyXG4gICAgICAgICAgICAgICAgICBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5zdHlsZS5zdHlsZTdcIiBjbGFzcz1cImUxdGFnLXN0eWxlN1wiPlxyXG4gICAgICAgIDxmYS1pY29uIGNsYXNzPVwiYnRuLWljb25cIiAqbmdJZj1cIml0ZW0uaWNvblwiIFtpY29uXT1cImdldEZvbnRBd2Vzb21lKGl0ZW0uaWNvbiwgZm9udEF3ZVNvbWVTZXJ2aWNlKVwiPjwvZmEtaWNvbj5cclxuICAgICAgICA8c3BhbiAqbmdJZj1cIml0ZW0udGV4dFwiIFtjbGFzcy5idG4tbGFiZWxdPVwiaXRlbS5pY29uXCIgY2xhc3M9XCJpb24tdGV4dC1jYXBpdGFsaXplXCI+e3tpdGVtLnRleHR9fTwvc3Bhbj5cclxuICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -8,9 +8,10 @@ import { ComponentType, ZComponentHelper, ZComponentProperties } from 'mmhglobal
|
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
9
9
|
import * as i1 from "../services/zcomponent.service";
|
|
10
10
|
import * as i2 from "../zformcontrol/zformcontrol.component";
|
|
11
|
-
import * as i3 from "
|
|
12
|
-
import * as i4 from "@angular/
|
|
13
|
-
import * as i5 from "@angular/flex-layout/
|
|
11
|
+
import * as i3 from "../embed-components/context-menu/context-menu.component";
|
|
12
|
+
import * as i4 from "@angular/common";
|
|
13
|
+
import * as i5 from "@angular/flex-layout/flex";
|
|
14
|
+
import * as i6 from "@angular/flex-layout/extended";
|
|
14
15
|
export class ZdivComponent extends ContainerFieldBase {
|
|
15
16
|
constructor(componentService) {
|
|
16
17
|
super(componentService);
|
|
@@ -70,9 +71,9 @@ export class ZdivComponent extends ContainerFieldBase {
|
|
|
70
71
|
}
|
|
71
72
|
}
|
|
72
73
|
ZdivComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ZdivComponent, deps: [{ token: i1.ZComponentService }], target: i0.ɵɵFactoryTarget.Component });
|
|
73
|
-
ZdivComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: ZdivComponent, selector: "app-zdiv", usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"(!!componentProperties.isVisibleField? group[componentProperties.isVisibleField] : componentProperties.isVisible)\"\r\n [fxLayout]=\"this.data.zlayout\" [fxLayoutAlign]=\"this.data.zlayoutAlign\" [style]=\"componentProperties.style.style\"\r\n class=\"e1tag-style\" [ngClass]=\"data.Class\" (click)=\"onClick($event)\">\r\n <app-zformcontrol [ngClass]=\"group[field.isVisibleField] ? field.DivClass : ((field.Visible === true) ? field.DivClass : 'flex-hide')\"\r\n *ngFor=\"let field of data.Value\"\r\n [field]=\"field\"\r\n [containerField]=\"data\" [group]=\"group\" [form]=\"form\" id=\"{{field.Type}}-{{field.Name}}\"\r\n [fxFlex]=\"getFlexSize(field)\" [fxFlex.xs]=\"getFlexSize(field, 'xs')\" [fxFlex.sm]=\"getFlexSize(field, 'sm')\"\r\n [fxFlex.md]=\"getFlexSize(field, 'md')\" [fxFlex.lg]=\"getFlexSize(field, 'lg')\"\r\n [fxFlex.xl]=\"getFlexSize(field, 'xl')\" [style]=\"componentProperties.style.style1\" class=\"e1tag-style1\">\r\n </app-zformcontrol>\r\n</div>\r\n", styles: [".col-1,.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xl-1{width:8.333%}.col-2,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xl-2{width:16.666%}.col-3,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xl-3{width:25%}.col-4,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xl-4{width:33.333%}.col-5,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xl-5{width:41.666%}.col-6,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xl-6{width:50%}.col-7,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xl-7{width:58.333%}.col-8,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xl-8{width:66.666%}.col-9,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xl-9{width:75%}.col-10,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xl-10{width:83.333%}.col-11,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xl-11{width:91.666%}.col-12,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12,.col-xl-12{width:100%}\n"], components: [{ type: i2.ZformcontrolComponent, selector: "app-zformcontrol", inputs: ["field", "group", "form", "containerField"] }], directives: [{ type:
|
|
74
|
+
ZdivComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: ZdivComponent, selector: "app-zdiv", usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"(!!componentProperties.isVisibleField? group[componentProperties.isVisibleField] : componentProperties.isVisible)\"\r\n [fxLayout]=\"this.data.zlayout\" [fxLayoutAlign]=\"this.data.zlayoutAlign\" [style]=\"componentProperties.style.style\"\r\n class=\"e1tag-style\" [ngClass]=\"data.Class\" (click)=\"onClick($event)\" #zdiv>\r\n <app-zformcontrol [ngClass]=\"group[field.isVisibleField] ? field.DivClass : ((field.Visible === true) ? field.DivClass : 'flex-hide')\"\r\n *ngFor=\"let field of data.Value\"\r\n [field]=\"field\"\r\n [containerField]=\"data\" [group]=\"group\" [form]=\"form\" id=\"{{field.Type}}-{{field.Name}}\"\r\n [fxFlex]=\"getFlexSize(field)\" [fxFlex.xs]=\"getFlexSize(field, 'xs')\" [fxFlex.sm]=\"getFlexSize(field, 'sm')\"\r\n [fxFlex.md]=\"getFlexSize(field, 'md')\" [fxFlex.lg]=\"getFlexSize(field, 'lg')\"\r\n [fxFlex.xl]=\"getFlexSize(field, 'xl')\" [style]=\"componentProperties.style.style1\" class=\"e1tag-style1\">\r\n </app-zformcontrol>\r\n <app-context-menu [data]=\"data\" [group]=\"group\" [form]=\"form\" [target]=\"zdiv\"></app-context-menu>\r\n</div>\r\n", styles: [".col-1,.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xl-1{width:8.333%}.col-2,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xl-2{width:16.666%}.col-3,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xl-3{width:25%}.col-4,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xl-4{width:33.333%}.col-5,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xl-5{width:41.666%}.col-6,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xl-6{width:50%}.col-7,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xl-7{width:58.333%}.col-8,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xl-8{width:66.666%}.col-9,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xl-9{width:75%}.col-10,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xl-10{width:83.333%}.col-11,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xl-11{width:91.666%}.col-12,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12,.col-xl-12{width:100%}\n"], components: [{ type: i2.ZformcontrolComponent, selector: "app-zformcontrol", inputs: ["field", "group", "form", "containerField"] }, { type: i3.ContextMenuComponent, selector: "app-context-menu", inputs: ["target", "selectedData"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i5.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i6.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }] });
|
|
74
75
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ZdivComponent, decorators: [{
|
|
75
76
|
type: Component,
|
|
76
|
-
args: [{ selector: 'app-zdiv', template: "<div *ngIf=\"(!!componentProperties.isVisibleField? group[componentProperties.isVisibleField] : componentProperties.isVisible)\"\r\n [fxLayout]=\"this.data.zlayout\" [fxLayoutAlign]=\"this.data.zlayoutAlign\" [style]=\"componentProperties.style.style\"\r\n class=\"e1tag-style\" [ngClass]=\"data.Class\" (click)=\"onClick($event)\">\r\n <app-zformcontrol [ngClass]=\"group[field.isVisibleField] ? field.DivClass : ((field.Visible === true) ? field.DivClass : 'flex-hide')\"\r\n *ngFor=\"let field of data.Value\"\r\n [field]=\"field\"\r\n [containerField]=\"data\" [group]=\"group\" [form]=\"form\" id=\"{{field.Type}}-{{field.Name}}\"\r\n [fxFlex]=\"getFlexSize(field)\" [fxFlex.xs]=\"getFlexSize(field, 'xs')\" [fxFlex.sm]=\"getFlexSize(field, 'sm')\"\r\n [fxFlex.md]=\"getFlexSize(field, 'md')\" [fxFlex.lg]=\"getFlexSize(field, 'lg')\"\r\n [fxFlex.xl]=\"getFlexSize(field, 'xl')\" [style]=\"componentProperties.style.style1\" class=\"e1tag-style1\">\r\n </app-zformcontrol>\r\n</div>\r\n", styles: [".col-1,.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xl-1{width:8.333%}.col-2,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xl-2{width:16.666%}.col-3,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xl-3{width:25%}.col-4,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xl-4{width:33.333%}.col-5,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xl-5{width:41.666%}.col-6,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xl-6{width:50%}.col-7,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xl-7{width:58.333%}.col-8,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xl-8{width:66.666%}.col-9,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xl-9{width:75%}.col-10,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xl-10{width:83.333%}.col-11,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xl-11{width:91.666%}.col-12,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12,.col-xl-12{width:100%}\n"] }]
|
|
77
|
+
args: [{ selector: 'app-zdiv', template: "<div *ngIf=\"(!!componentProperties.isVisibleField? group[componentProperties.isVisibleField] : componentProperties.isVisible)\"\r\n [fxLayout]=\"this.data.zlayout\" [fxLayoutAlign]=\"this.data.zlayoutAlign\" [style]=\"componentProperties.style.style\"\r\n class=\"e1tag-style\" [ngClass]=\"data.Class\" (click)=\"onClick($event)\" #zdiv>\r\n <app-zformcontrol [ngClass]=\"group[field.isVisibleField] ? field.DivClass : ((field.Visible === true) ? field.DivClass : 'flex-hide')\"\r\n *ngFor=\"let field of data.Value\"\r\n [field]=\"field\"\r\n [containerField]=\"data\" [group]=\"group\" [form]=\"form\" id=\"{{field.Type}}-{{field.Name}}\"\r\n [fxFlex]=\"getFlexSize(field)\" [fxFlex.xs]=\"getFlexSize(field, 'xs')\" [fxFlex.sm]=\"getFlexSize(field, 'sm')\"\r\n [fxFlex.md]=\"getFlexSize(field, 'md')\" [fxFlex.lg]=\"getFlexSize(field, 'lg')\"\r\n [fxFlex.xl]=\"getFlexSize(field, 'xl')\" [style]=\"componentProperties.style.style1\" class=\"e1tag-style1\">\r\n </app-zformcontrol>\r\n <app-context-menu [data]=\"data\" [group]=\"group\" [form]=\"form\" [target]=\"zdiv\"></app-context-menu>\r\n</div>\r\n", styles: [".col-1,.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xl-1{width:8.333%}.col-2,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xl-2{width:16.666%}.col-3,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xl-3{width:25%}.col-4,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xl-4{width:33.333%}.col-5,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xl-5{width:41.666%}.col-6,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xl-6{width:50%}.col-7,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xl-7{width:58.333%}.col-8,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xl-8{width:66.666%}.col-9,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xl-9{width:75%}.col-10,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xl-10{width:83.333%}.col-11,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xl-11{width:91.666%}.col-12,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12,.col-xl-12{width:100%}\n"] }]
|
|
77
78
|
}], ctorParameters: function () { return [{ type: i1.ZComponentService }]; } });
|
|
78
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiemRpdi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tbWhnbG9iYWwtZHluYW1pY2Zvcm0vc3JjL2xpYi96ZGl2L3pkaXYuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvemRpdi96ZGl2LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtCQUErQjtBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRWxELDZCQUE2QjtBQUU3Qiw4QkFBOEI7QUFFOUIsMkNBQTJDO0FBQzNDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBRWhGLE9BQU8sRUFBRSxhQUFhLEVBQWMsZ0JBQWdCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7QUFTcEcsTUFBTSxPQUFPLGFBQWMsU0FBUSxrQkFBa0I7SUFJbkQsWUFDUyxnQkFBbUM7UUFFMUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFGakIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFtQjtRQUozQixtQkFBYyxHQUFHLFVBQVUsQ0FBQztRQUM1Qix5QkFBb0IsR0FBRyxlQUFlLENBQUM7SUFNeEQsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdEIsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxhQUFhLENBQUMsR0FBRyxFQUFFO1lBQ3hDLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNuQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzFDLENBQUMsQ0FBQyxDQUFDO1NBQ0o7YUFDSTtZQUNILElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsbUJBQW1CLElBQUksSUFBSSxvQkFBb0IsRUFBRSxDQUFDO1lBQ2xGLGdCQUFnQixDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzlDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNqRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3pDO1FBQ0Qsa0NBQWtDO1FBQ2xDLDBDQUEwQztRQUMxQywyQkFBMkI7UUFDM0IsNkNBQTZDO1FBQzdDLE1BQU07SUFDUixDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxpQ0FBaUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVPLGNBQWM7UUFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUM3RCxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsb0JBQW9CLENBQUM7SUFDL0UsQ0FBQztJQUVELG9CQUFvQjtJQUNiLFdBQVcsQ0FBQyxLQUFLLEVBQUUsSUFBYTtRQUNyQyxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsRUFBRTtZQUMzQixPQUFPLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLENBQUM7U0FDekU7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTyw0QkFBNEIsQ0FBQyxVQUFrQixFQUFFLElBQWE7UUFDcEUsTUFBTSxVQUFVLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN6QyxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFFbEIsSUFBSSxJQUFJLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRTtZQUNsRCxNQUFNLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztTQUNqRDthQUNJO1lBQ0gsTUFBTSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQztTQUN6RDtRQUVELElBQUksTUFBTSxFQUFFO1lBQ1YsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNwQyxPQUFPLFNBQVMsQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQ3hDO2FBQ0k7WUFDSCxPQUFPLElBQUksQ0FBQztTQUNiO0lBQ0gsQ0FBQzs7MEdBakVVLGFBQWE7OEZBQWIsYUFBYSx1RUNuQjFCLG10Q0FhQTsyRkRNYSxhQUFhO2tCQU56QixTQUFTOytCQUNFLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyIvKioqKioqKioqKiBBbmd1bGFyICoqKioqKioqKiovIFxyXG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG4vKioqKioqKioqKiBJb25pYyAqKioqKioqKioqL1xyXG5cclxuLyoqKioqKioqKiogUGx1Z2luICoqKioqKioqKiovIFxyXG5cclxuLyoqKioqKioqKiogQ29tcG9uZW50ICYgU2VydmljZSAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBDb250YWluZXJGaWVsZEJhc2UgfSBmcm9tIFwiLi4vY29tcG9uZW50cy9jb250YWluZXJmaWVsZGJhc2UuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFpDb21wb25lbnRTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL3pjb21wb25lbnQuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBDb21wb25lbnRUeXBlLCBaQ29tcG9uZW50LCBaQ29tcG9uZW50SGVscGVyLCBaQ29tcG9uZW50UHJvcGVydGllcyB9IGZyb20gJ21taGdsb2JhbC16Y29yZSc7IFxyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXpkaXYnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi96ZGl2LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi96ZGl2LmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgWmRpdkNvbXBvbmVudCBleHRlbmRzIENvbnRhaW5lckZpZWxkQmFzZSBpbXBsZW1lbnRzIFpDb21wb25lbnQsIE9uSW5pdCB7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBERUZBVUxUX0xBWU9VVCA9IFwicm93IHdyYXBcIjtcclxuICBwcml2YXRlIHJlYWRvbmx5IERFRkFVTFRfTEFZT1VUX0FMSUdOID0gXCJzdGFydCBzdHJldGNoXCI7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGNvbXBvbmVudFNlcnZpY2U6IFpDb21wb25lbnRTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcihjb21wb25lbnRTZXJ2aWNlKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5zZXR1cERpdkxheW91dCgpO1xyXG4gICAgaWYgKHRoaXMuZGF0YS5UeXBlID09PSBDb21wb25lbnRUeXBlLmRpdikge1xyXG4gICAgICBzdXBlci5pbml0Q29tcG9uZW50KCkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLmNvbXBvbmVudFNlcnZpY2Uuc2V0RWRpdE1vZGUodGhpcyk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuY29tcG9uZW50UHJvcGVydGllcyA9IHRoaXMuY29tcG9uZW50UHJvcGVydGllcyB8fCBuZXcgWkNvbXBvbmVudFByb3BlcnRpZXMoKTtcclxuICAgICAgWkNvbXBvbmVudEhlbHBlci5zZXRDb21wb25lbnRQcm9wZXJ0aWVzKHRoaXMpO1xyXG4gICAgICB0aGlzLmNvbXBvbmVudFNlcnZpY2Uuc2V0Q29tcFN0eWxlc0J5SW5kZXgodGhpcyk7XHJcbiAgICAgIHRoaXMuY29tcG9uZW50U2VydmljZS5zZXRFZGl0TW9kZSh0aGlzKTtcclxuICAgIH1cclxuICAgIC8vIHN1cGVyLmlzU2tpcFRyYW5zbGF0aW9uID0gdHJ1ZTtcclxuICAgIC8vIHN1cGVyLmluaXRDb21wb25lbnQoKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgLy8gICB0aGlzLnNldHVwRGl2TGF5b3V0KCk7XHJcbiAgICAvLyAgIHRoaXMuY29tcG9uZW50U2VydmljZS5zZXRFZGl0TW9kZSh0aGlzKTtcclxuICAgIC8vIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5jb21wb25lbnRTZXJ2aWNlLmRlY3JlbWVudENvbXBvbmVudENvdW50ZXJGb3JGaWVsZCh0aGlzLmRhdGEpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXR1cERpdkxheW91dCgpIHtcclxuICAgIHRoaXMuZGF0YS56bGF5b3V0ID0gdGhpcy5kYXRhLnpsYXlvdXQgfHwgdGhpcy5ERUZBVUxUX0xBWU9VVDtcclxuICAgIHRoaXMuZGF0YS56bGF5b3V0QWxpZ24gPSB0aGlzLmRhdGEuemxheW91dEFsaWduIHx8IHRoaXMuREVGQVVMVF9MQVlPVVRfQUxJR047XHJcbiAgfVxyXG5cclxuICAvLyBSZXNwb25zaXZlIExheW91dFxyXG4gIHB1YmxpYyBnZXRGbGV4U2l6ZShmaWVsZCwgc2l6ZT86IHN0cmluZykge1xyXG4gICAgaWYgKGZpZWxkLkRpdkNsYXNzQnlQZXJjZW50KSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmdldERpdkNsYXNzVmFsdWVCeVNjcmVlblNpemUoZmllbGQuRGl2Q2xhc3NCeVBlcmNlbnQsIHNpemUpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldERpdkNsYXNzVmFsdWVCeVNjcmVlblNpemUoemxheW91dFN0cjogc3RyaW5nLCBzaXplPzogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBsYXlvdXRMaXN0ID0gemxheW91dFN0ci5zcGxpdCgnICcpO1xyXG4gICAgbGV0IGxheW91dCA9IG51bGw7XHJcblxyXG4gICAgaWYgKHNpemUgJiYgbGF5b3V0TGlzdC5maW5kKHggPT4geC5pbmNsdWRlcyhzaXplKSkpIHtcclxuICAgICAgbGF5b3V0ID0gbGF5b3V0TGlzdC5maW5kKHggPT4geC5pbmNsdWRlcyhzaXplKSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgbGF5b3V0ID0gbGF5b3V0TGlzdC5maW5kKHggPT4geC5zcGxpdCgnLScpLmxlbmd0aCA8PSAyKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAobGF5b3V0KSB7XHJcbiAgICAgIGNvbnN0IGxheW91dEFyciA9IGxheW91dC5zcGxpdCgnLScpO1xyXG4gICAgICByZXR1cm4gbGF5b3V0QXJyW2xheW91dEFyci5sZW5ndGggLSAxXTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbiIsIjxkaXYgKm5nSWY9XCIoISFjb21wb25lbnRQcm9wZXJ0aWVzLmlzVmlzaWJsZUZpZWxkPyBncm91cFtjb21wb25lbnRQcm9wZXJ0aWVzLmlzVmlzaWJsZUZpZWxkXSA6IGNvbXBvbmVudFByb3BlcnRpZXMuaXNWaXNpYmxlKVwiXHJcbiAgICAgW2Z4TGF5b3V0XT1cInRoaXMuZGF0YS56bGF5b3V0XCIgW2Z4TGF5b3V0QWxpZ25dPVwidGhpcy5kYXRhLnpsYXlvdXRBbGlnblwiIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLnN0eWxlLnN0eWxlXCJcclxuICAgICBjbGFzcz1cImUxdGFnLXN0eWxlXCIgW25nQ2xhc3NdPVwiZGF0YS5DbGFzc1wiIChjbGljayk9XCJvbkNsaWNrKCRldmVudClcIiAjemRpdj5cclxuICA8YXBwLXpmb3JtY29udHJvbCBbbmdDbGFzc109XCJncm91cFtmaWVsZC5pc1Zpc2libGVGaWVsZF0gPyBmaWVsZC5EaXZDbGFzcyA6ICgoZmllbGQuVmlzaWJsZSA9PT0gdHJ1ZSkgPyAgZmllbGQuRGl2Q2xhc3MgOiAnZmxleC1oaWRlJylcIlxyXG4gICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBmaWVsZCBvZiBkYXRhLlZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICBbZmllbGRdPVwiZmllbGRcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjb250YWluZXJGaWVsZF09XCJkYXRhXCIgW2dyb3VwXT1cImdyb3VwXCIgW2Zvcm1dPVwiZm9ybVwiIGlkPVwie3tmaWVsZC5UeXBlfX0te3tmaWVsZC5OYW1lfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgIFtmeEZsZXhdPVwiZ2V0RmxleFNpemUoZmllbGQpXCIgW2Z4RmxleC54c109XCJnZXRGbGV4U2l6ZShmaWVsZCwgJ3hzJylcIiBbZnhGbGV4LnNtXT1cImdldEZsZXhTaXplKGZpZWxkLCAnc20nKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2Z4RmxleC5tZF09XCJnZXRGbGV4U2l6ZShmaWVsZCwgJ21kJylcIiBbZnhGbGV4LmxnXT1cImdldEZsZXhTaXplKGZpZWxkLCAnbGcnKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2Z4RmxleC54bF09XCJnZXRGbGV4U2l6ZShmaWVsZCwgJ3hsJylcIiBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5zdHlsZS5zdHlsZTFcIiBjbGFzcz1cImUxdGFnLXN0eWxlMVwiPlxyXG4gIDwvYXBwLXpmb3JtY29udHJvbD5cclxuICA8YXBwLWNvbnRleHQtbWVudSBbZGF0YV09XCJkYXRhXCIgW2dyb3VwXT1cImdyb3VwXCIgW2Zvcm1dPVwiZm9ybVwiIFt0YXJnZXRdPVwiemRpdlwiPjwvYXBwLWNvbnRleHQtbWVudT5cclxuPC9kaXY+XHJcbiJdfQ==
|