@ng-nest/ui 14.0.0 → 14.0.3
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/auto-complete/auto-complete.component.d.ts +2 -2
- package/base-form/base-form.component.d.ts +6 -3
- package/button/button.property.d.ts +11 -1
- package/cascade/cascade.component.d.ts +2 -3
- package/color-picker/color-picker.component.d.ts +1 -1
- package/core/config/config.d.ts +6 -0
- package/date-picker/date-picker.component.d.ts +1 -1
- package/date-picker/date-range.component.d.ts +1 -1
- package/dialog/dialog.module.d.ts +2 -1
- package/dialog/dialog.property.d.ts +2 -0
- package/esm2020/auto-complete/auto-complete.component.mjs +7 -5
- package/esm2020/base-form/base-form.component.mjs +11 -3
- package/esm2020/button/button.component.mjs +3 -3
- package/esm2020/button/button.property.mjs +7 -2
- package/esm2020/cascade/cascade.component.mjs +8 -9
- package/esm2020/checkbox/checkbox.component.mjs +6 -4
- package/esm2020/color-picker/color-picker-portal.component.mjs +3 -3
- package/esm2020/color-picker/color-picker.component.mjs +4 -3
- package/esm2020/core/config/config.mjs +1 -1
- package/esm2020/date-picker/date-picker.component.mjs +4 -3
- package/esm2020/date-picker/date-range.component.mjs +1 -1
- package/esm2020/dialog/dialog.module.mjs +8 -4
- package/esm2020/dialog/dialog.property.mjs +1 -1
- package/esm2020/find/find.component.mjs +5 -3
- package/esm2020/form/control.component.mjs +39 -26
- package/esm2020/form/form.component.mjs +16 -3
- package/esm2020/form/form.module.mjs +6 -3
- package/esm2020/form/form.property.mjs +10 -3
- package/esm2020/i18n/i18n.property.mjs +1 -1
- package/esm2020/i18n/languages/en_US.mjs +6 -2
- package/esm2020/i18n/languages/zh_CN.mjs +6 -2
- package/esm2020/i18n/languages/zh_TW.mjs +6 -2
- package/esm2020/icon/icon.component.mjs +6 -2
- package/esm2020/input/input.component.mjs +23 -10
- package/esm2020/input/input.property.mjs +31 -2
- package/esm2020/input-number/input-number.component.mjs +3 -3
- package/esm2020/list/list.component.mjs +16 -16
- package/esm2020/radio/radio.component.mjs +4 -3
- package/esm2020/rate/rate.component.mjs +8 -3
- package/esm2020/select/select-portal.component.mjs +15 -6
- package/esm2020/select/select.component.mjs +297 -42
- package/esm2020/select/select.module.mjs +35 -4
- package/esm2020/select/select.property.mjs +31 -3
- package/esm2020/slider-select/slider-select.component.mjs +6 -5
- package/esm2020/switch/switch.component.mjs +1 -1
- package/esm2020/table/table-body.component.mjs +15 -6
- package/esm2020/table/table-foot.component.mjs +7 -3
- package/esm2020/table/table-head.component.mjs +23 -7
- package/esm2020/table/table.component.mjs +55 -8
- package/esm2020/table/table.property.mjs +20 -5
- package/esm2020/tag/tag.component.mjs +5 -5
- package/esm2020/tag/tag.property.mjs +1 -1
- package/esm2020/textarea/textarea.component.mjs +3 -3
- package/esm2020/textarea/textarea.property.mjs +1 -6
- package/esm2020/theme/theme.component.mjs +1 -1
- package/esm2020/time-picker/time-picker.component.mjs +4 -3
- package/esm2020/transfer/transfer.component.mjs +1 -1
- package/esm2020/tree/tree-node.component.mjs +4 -70
- package/esm2020/tree/tree.component.mjs +123 -23
- package/esm2020/tree/tree.property.mjs +1 -1
- package/esm2020/upload/upload.component.mjs +1 -1
- package/fesm2015/ng-nest-ui-auto-complete.mjs +6 -4
- package/fesm2015/ng-nest-ui-auto-complete.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-base-form.mjs +10 -2
- package/fesm2015/ng-nest-ui-base-form.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-button.mjs +8 -3
- package/fesm2015/ng-nest-ui-button.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-cascade.mjs +6 -7
- package/fesm2015/ng-nest-ui-cascade.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-checkbox.mjs +5 -3
- package/fesm2015/ng-nest-ui-checkbox.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-color-picker.mjs +5 -4
- package/fesm2015/ng-nest-ui-color-picker.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-core.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-date-picker.mjs +3 -2
- package/fesm2015/ng-nest-ui-date-picker.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-dialog.mjs +7 -3
- package/fesm2015/ng-nest-ui-dialog.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-find.mjs +4 -2
- package/fesm2015/ng-nest-ui-find.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-form.mjs +68 -31
- package/fesm2015/ng-nest-ui-form.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-i18n.mjs +15 -3
- package/fesm2015/ng-nest-ui-i18n.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-icon.mjs +5 -1
- package/fesm2015/ng-nest-ui-icon.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-input-number.mjs +2 -2
- package/fesm2015/ng-nest-ui-input-number.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-input.mjs +52 -10
- package/fesm2015/ng-nest-ui-input.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-list.mjs +15 -15
- package/fesm2015/ng-nest-ui-list.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-radio.mjs +3 -2
- package/fesm2015/ng-nest-ui-radio.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-rate.mjs +7 -2
- package/fesm2015/ng-nest-ui-rate.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-select.mjs +375 -50
- package/fesm2015/ng-nest-ui-select.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-slider-select.mjs +5 -4
- package/fesm2015/ng-nest-ui-slider-select.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-switch.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-table.mjs +113 -23
- package/fesm2015/ng-nest-ui-table.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-tag.mjs +4 -4
- package/fesm2015/ng-nest-ui-tag.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-textarea.mjs +2 -7
- package/fesm2015/ng-nest-ui-textarea.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-theme.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-time-picker.mjs +3 -2
- package/fesm2015/ng-nest-ui-time-picker.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-transfer.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-tree.mjs +125 -91
- package/fesm2015/ng-nest-ui-tree.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-upload.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-auto-complete.mjs +6 -4
- package/fesm2020/ng-nest-ui-auto-complete.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-base-form.mjs +10 -2
- package/fesm2020/ng-nest-ui-base-form.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-button.mjs +8 -3
- package/fesm2020/ng-nest-ui-button.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-cascade.mjs +6 -7
- package/fesm2020/ng-nest-ui-cascade.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-checkbox.mjs +5 -3
- package/fesm2020/ng-nest-ui-checkbox.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-color-picker.mjs +5 -4
- package/fesm2020/ng-nest-ui-color-picker.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-core.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-date-picker.mjs +3 -2
- package/fesm2020/ng-nest-ui-date-picker.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-dialog.mjs +7 -3
- package/fesm2020/ng-nest-ui-dialog.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-find.mjs +4 -2
- package/fesm2020/ng-nest-ui-find.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-form.mjs +67 -31
- package/fesm2020/ng-nest-ui-form.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-i18n.mjs +15 -3
- package/fesm2020/ng-nest-ui-i18n.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-icon.mjs +5 -1
- package/fesm2020/ng-nest-ui-icon.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-input-number.mjs +2 -2
- package/fesm2020/ng-nest-ui-input-number.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-input.mjs +52 -10
- package/fesm2020/ng-nest-ui-input.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-list.mjs +15 -15
- package/fesm2020/ng-nest-ui-list.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-radio.mjs +3 -2
- package/fesm2020/ng-nest-ui-radio.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-rate.mjs +7 -2
- package/fesm2020/ng-nest-ui-rate.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-select.mjs +372 -50
- package/fesm2020/ng-nest-ui-select.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-slider-select.mjs +5 -4
- package/fesm2020/ng-nest-ui-slider-select.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-switch.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-table.mjs +112 -23
- package/fesm2020/ng-nest-ui-table.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-tag.mjs +4 -4
- package/fesm2020/ng-nest-ui-tag.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-textarea.mjs +2 -7
- package/fesm2020/ng-nest-ui-textarea.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-theme.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-time-picker.mjs +3 -2
- package/fesm2020/ng-nest-ui-time-picker.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-transfer.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-tree.mjs +125 -91
- package/fesm2020/ng-nest-ui-tree.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-upload.mjs.map +1 -1
- package/find/find.component.d.ts +1 -1
- package/form/control.component.d.ts +6 -3
- package/form/examples/en_US/default/form-vaild/README.md +8 -0
- package/form/examples/zh_CN/default/form-vaild/README.md +8 -0
- package/form/form.component.d.ts +4 -1
- package/form/form.module.d.ts +2 -1
- package/form/form.property.d.ts +7 -2
- package/i18n/i18n.property.d.ts +6 -0
- package/i18n/languages/en_US.d.ts +4 -0
- package/i18n/languages/zh_CN.d.ts +4 -0
- package/i18n/languages/zh_TW.d.ts +4 -0
- package/input/input.component.d.ts +3 -0
- package/input/input.property.d.ts +31 -1
- package/input-number/input-number.component.d.ts +1 -1
- package/package.json +1 -1
- package/rate/rate.component.d.ts +1 -0
- package/select/examples/en_US/default/search/README.md +6 -0
- package/select/examples/zh_CN/default/search/README.md +6 -0
- package/select/select-portal.component.d.ts +6 -1
- package/select/select.component.d.ts +33 -6
- package/select/select.module.d.ts +4 -2
- package/select/select.property.d.ts +63 -2
- package/slider-select/slider-select.component.d.ts +1 -1
- package/switch/switch.component.d.ts +1 -1
- package/table/examples/en_US/default/fix/README.md +6 -0
- package/table/examples/en_US/default/head/README.md +6 -0
- package/table/examples/en_US/default/header/README.md +6 -0
- package/table/examples/zh_CN/default/fix/README.md +6 -0
- package/table/examples/zh_CN/default/head/README.md +6 -0
- package/table/examples/zh_CN/default/header/README.md +6 -0
- package/table/table-foot.component.d.ts +1 -0
- package/table/table-head.component.d.ts +2 -1
- package/table/table.component.d.ts +14 -2
- package/table/table.property.d.ts +48 -3
- package/tag/tag.component.d.ts +1 -1
- package/tag/tag.property.d.ts +1 -1
- package/time-picker/time-picker.component.d.ts +1 -1
- package/tree/tree-node.component.d.ts +0 -3
- package/tree/tree.component.d.ts +3 -0
- package/tree/tree.property.d.ts +5 -0
|
@@ -84,9 +84,12 @@ export class XTableBodyComponent extends XTableBodyProperty {
|
|
|
84
84
|
const ele = x.srcElement;
|
|
85
85
|
this.table.scrollTop = ele.scrollTop;
|
|
86
86
|
this.table.scrollLeft = ele.scrollLeft;
|
|
87
|
-
if (ele.scrollLeft >= 0 && this.table.thead) {
|
|
88
|
-
|
|
87
|
+
if (ele.scrollLeft >= 0 && this.table.thead.length > 0) {
|
|
88
|
+
for (let thead of this.table.thead) {
|
|
89
|
+
thead.nativeElement.scrollLeft = this.table.scrollLeft;
|
|
90
|
+
}
|
|
89
91
|
}
|
|
92
|
+
this.table.scrollLeftMax = ele.scrollLeft + ele.clientWidth === ele.scrollWidth;
|
|
90
93
|
this.table.cdr.detectChanges();
|
|
91
94
|
});
|
|
92
95
|
}
|
|
@@ -150,11 +153,17 @@ export class XTableBodyComponent extends XTableBodyProperty {
|
|
|
150
153
|
}
|
|
151
154
|
setAdaptionHeight() {
|
|
152
155
|
if (this.adaptionHeight > 0) {
|
|
153
|
-
const
|
|
156
|
+
const captionHeight = this.table.tcaption?.nativeElement.clientHeight || 0;
|
|
157
|
+
let headHeight = 0;
|
|
158
|
+
for (let thead of this.table.thead) {
|
|
159
|
+
headHeight += thead.nativeElement.clientHeight;
|
|
160
|
+
}
|
|
154
161
|
const footHeight = this.table.tfoot?.nativeElement.clientHeight || 0;
|
|
162
|
+
console.log(captionHeight, footHeight);
|
|
155
163
|
const paginationHeight = this.table.pagination?.elementRef.nativeElement.clientHeight || 0;
|
|
156
164
|
this.bodyHeight =
|
|
157
165
|
Number(this.docPercent) * this.doc.documentElement.clientHeight -
|
|
166
|
+
captionHeight -
|
|
158
167
|
headHeight -
|
|
159
168
|
footHeight -
|
|
160
169
|
paginationHeight -
|
|
@@ -188,10 +197,10 @@ export class XTableBodyComponent extends XTableBodyProperty {
|
|
|
188
197
|
}
|
|
189
198
|
}
|
|
190
199
|
/** @nocollapse */ XTableBodyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XTableBodyComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: DOCUMENT }, { token: i1.XConfigService }], target: i0.ɵɵFactoryTarget.Component });
|
|
191
|
-
/** @nocollapse */ XTableBodyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: XTableBodyComponent, selector: "x-table-body", inputs: { table: "table" }, viewQueries: [{ propertyName: "tbody", first: true, predicate: ["tbody"], descendants: true }, { propertyName: "virtualBody", first: true, predicate: ["virtualBody"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<tbody #tbody>\r\n <ng-container *ngIf=\"cellConfig; else virtualScrollTpl\">\r\n <tr *ngFor=\"let row of data; index as i; trackBy: trackByItem\" [style.gridTemplateColumns]=\"cellConfig.gridTemplateColumns\">\r\n <td\r\n *ngFor=\"let column of cellConfig.cells; index as j\"\r\n [title]=\"getTitle(row, column)\"\r\n [class.x-table-sticky]=\"table.
|
|
200
|
+
/** @nocollapse */ XTableBodyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: XTableBodyComponent, selector: "x-table-body", inputs: { table: "table" }, viewQueries: [{ propertyName: "tbody", first: true, predicate: ["tbody"], descendants: true }, { propertyName: "virtualBody", first: true, predicate: ["virtualBody"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<tbody #tbody>\r\n <ng-container *ngIf=\"cellConfig; else virtualScrollTpl\">\r\n <tr *ngFor=\"let row of data; index as i; trackBy: trackByItem\" [style.gridTemplateColumns]=\"cellConfig.gridTemplateColumns\">\r\n <td\r\n *ngFor=\"let column of cellConfig.cells; index as j\"\r\n [title]=\"getTitle(row, column)\"\r\n [class.x-table-sticky]=\"table.getStickyLeft(column) || table.getStickyRight(column)\"\r\n [class.x-table-sticky-left]=\"table.getStickyLeft(column)\"\r\n [class.x-table-sticky-right]=\"table.getStickyRight(column)\"\r\n [class.x-table-sticky-left-last]=\"table.getStickyLeftLast(column)\"\r\n [class.x-table-sticky-right-first]=\"table.getStickyRightFirst(column)\"\r\n [style.left.px]=\"column.left\"\r\n [style.right.px]=\"column.right\"\r\n [style.grid-area]=\"column.gridArea\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"cellTpl; context: { column: column, row: row, i: i }\"></ng-container>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n <x-empty *ngIf=\"isEmpty && level === 0\"></x-empty>\r\n</tbody>\r\n\r\n<ng-template #virtualScrollTpl>\r\n <cdk-virtual-scroll-viewport\r\n #virtualBody\r\n *ngIf=\"virtualScroll; else bodyTpl\"\r\n [itemSize]=\"getItemSize\"\r\n [minBufferPx]=\"minBufferPx\"\r\n [maxBufferPx]=\"maxBufferPx\"\r\n [style.height.px]=\"bodyHeight\"\r\n >\r\n <tr\r\n *cdkVirtualFor=\"let row of data; let index = index; trackBy: trackByItem\"\r\n [class.x-table-activated]=\"allowSelectRow && activatedRow?.id === row.id\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n (click)=\"rowClick(row)\"\r\n >\r\n <!-- rowHeight \u4E3A 0 \u7684\u65F6\u5019\uFF0Cindex \u4E0B\u6807\u83B7\u53D6\u4E0D\u5230 -->\r\n <ng-container *ngTemplateOutlet=\"rowTpl; context: { row: row, i: getIndex(index, row) }\"></ng-container>\r\n </tr>\r\n </cdk-virtual-scroll-viewport>\r\n</ng-template>\r\n\r\n<ng-template #bodyTpl>\r\n <ng-container *ngFor=\"let row of data; index as i; trackBy: trackByItem\">\r\n <tr\r\n [class.x-table-activated]=\"allowSelectRow && activatedRow?.id === row.id\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n (click)=\"rowClick(row)\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"rowTpl; context: { row: row, i: i }\"></ng-container>\r\n </tr>\r\n <div class=\"x-table-children\" [class.x-table-expandTpl]=\"expandTpl\" *ngIf=\"table.treeTable && row.children && row.expanded\">\r\n <x-table-body\r\n [data]=\"row.children\"\r\n [columns]=\"table.columns\"\r\n [itemSize]=\"table.itemSize\"\r\n [rowHeight]=\"table.rowHeight\"\r\n [columnTpl]=\"table.bodyColumnTpl\"\r\n [allowSelectRow]=\"table.allowSelectRow\"\r\n [rowClass]=\"table.rowClass\"\r\n [cellConfig]=\"table.cellConfig?.tbody\"\r\n [(activatedRow)]=\"table.activatedRow\"\r\n [expandedAll]=\"expandedAll\"\r\n [expandTpl]=\"expandTpl\"\r\n (activatedRowChange)=\"table.activatedRowChange.emit($event)\"\r\n [level]=\"row.level! + 1\"\r\n [table]=\"table\"\r\n ></x-table-body>\r\n </div>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #rowTpl let-row=\"row\" let-i=\"i\">\r\n <ng-container *ngIf=\"level > 0 && expandTpl\">\r\n <ng-container *xOutlet=\"expandTpl; context: { $row: row, $index: i, $level: level }\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"level === 0 || !expandTpl\">\r\n <ng-container *xOutlet=\"rowDefault; context: { row: row, i: i, level: level }\"></ng-container>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #rowDefault let-row=\"row\" let-i=\"i\">\r\n <ng-container *ngFor=\"let column of columns; index as j; trackBy: trackByItem\">\r\n <td\r\n [style.width.px]=\"column.width\"\r\n [style.flex]=\"getFlex(column)\"\r\n [title]=\"getTitle(row, column)\"\r\n [class.x-table-sticky]=\"table.getStickyLeft(column) || table.getStickyRight(column)\"\r\n [class.x-table-sticky-left]=\"table.getStickyLeft(column)\"\r\n [class.x-table-sticky-right]=\"table.getStickyRight(column)\"\r\n [class.x-table-sticky-left-last]=\"table.getStickyLeftLast(column)\"\r\n [class.x-table-sticky-right-first]=\"table.getStickyRightFirst(column)\"\r\n [style.left.px]=\"column.left\"\r\n [style.right.px]=\"column.right\"\r\n [ngClass]=\"!rowClass ? {} : rowClass(row, i)\"\r\n >\r\n <ng-template *ngTemplateOutlet=\"cellTpl; context: { column: column, row: row, i: i }\"></ng-template>\r\n </td>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #cellTpl let-column=\"column\" let-row=\"row\" let-i=\"i\">\r\n <ng-container [ngSwitch]=\"column.type\">\r\n <ng-container *ngSwitchCase=\"'checkbox'\">\r\n <x-checkbox\r\n [data]=\"[{ id: true, label: '' }]\"\r\n [(ngModel)]=\"row[column.id]\"\r\n (ngModelChange)=\"table.bodyChecked($event, column)\"\r\n ></x-checkbox>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'index'\">\r\n <div>{{ table.getIndex(i) }}</div>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <ng-container *ngIf=\"table.isExpandColumn(column)\">\r\n <x-button\r\n [class.is-leaf]=\"!row.leaf\"\r\n [class.is-expanded]=\"row.expanded\"\r\n (click)=\"onExpanded($event, row)\"\r\n icon=\"fto-chevron-right\"\r\n size=\"mini\"\r\n onlyIcon\r\n class=\"x-table-expand\"\r\n [style.margin-left.rem]=\"row.level - 0.5\"\r\n ></x-button>\r\n </ng-container>\r\n <ng-container *xOutlet=\"columnTpl[column.id]; context: { $column: column, $row: row, $index: table.getIndex(i) }\">\r\n <div [innerHTML]=\"row[column.id]\" [style.text-align]=\"column.textAlign\"></div>\r\n {{ table.rowExpandNext && table.rowExpandNext.id === column.id ? 'x-table-body-level-' + row.level : '' }}\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }, { kind: "component", type: i5.XCheckboxComponent, selector: "x-checkbox" }, { kind: "component", type: i6.XButtonComponent, selector: "x-button" }, { kind: "directive", type: i7.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i7.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i7.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "component", type: i8.XEmptyComponent, selector: "x-empty" }, { kind: "component", type: XTableBodyComponent, selector: "x-table-body", inputs: ["table"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
192
201
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XTableBodyComponent, decorators: [{
|
|
193
202
|
type: Component,
|
|
194
|
-
args: [{ selector: `${XTableBodyPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<tbody #tbody>\r\n <ng-container *ngIf=\"cellConfig; else virtualScrollTpl\">\r\n <tr *ngFor=\"let row of data; index as i; trackBy: trackByItem\" [style.gridTemplateColumns]=\"cellConfig.gridTemplateColumns\">\r\n <td\r\n *ngFor=\"let column of cellConfig.cells; index as j\"\r\n [title]=\"getTitle(row, column)\"\r\n [class.x-table-sticky]=\"table.
|
|
203
|
+
args: [{ selector: `${XTableBodyPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<tbody #tbody>\r\n <ng-container *ngIf=\"cellConfig; else virtualScrollTpl\">\r\n <tr *ngFor=\"let row of data; index as i; trackBy: trackByItem\" [style.gridTemplateColumns]=\"cellConfig.gridTemplateColumns\">\r\n <td\r\n *ngFor=\"let column of cellConfig.cells; index as j\"\r\n [title]=\"getTitle(row, column)\"\r\n [class.x-table-sticky]=\"table.getStickyLeft(column) || table.getStickyRight(column)\"\r\n [class.x-table-sticky-left]=\"table.getStickyLeft(column)\"\r\n [class.x-table-sticky-right]=\"table.getStickyRight(column)\"\r\n [class.x-table-sticky-left-last]=\"table.getStickyLeftLast(column)\"\r\n [class.x-table-sticky-right-first]=\"table.getStickyRightFirst(column)\"\r\n [style.left.px]=\"column.left\"\r\n [style.right.px]=\"column.right\"\r\n [style.grid-area]=\"column.gridArea\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"cellTpl; context: { column: column, row: row, i: i }\"></ng-container>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n <x-empty *ngIf=\"isEmpty && level === 0\"></x-empty>\r\n</tbody>\r\n\r\n<ng-template #virtualScrollTpl>\r\n <cdk-virtual-scroll-viewport\r\n #virtualBody\r\n *ngIf=\"virtualScroll; else bodyTpl\"\r\n [itemSize]=\"getItemSize\"\r\n [minBufferPx]=\"minBufferPx\"\r\n [maxBufferPx]=\"maxBufferPx\"\r\n [style.height.px]=\"bodyHeight\"\r\n >\r\n <tr\r\n *cdkVirtualFor=\"let row of data; let index = index; trackBy: trackByItem\"\r\n [class.x-table-activated]=\"allowSelectRow && activatedRow?.id === row.id\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n (click)=\"rowClick(row)\"\r\n >\r\n <!-- rowHeight \u4E3A 0 \u7684\u65F6\u5019\uFF0Cindex \u4E0B\u6807\u83B7\u53D6\u4E0D\u5230 -->\r\n <ng-container *ngTemplateOutlet=\"rowTpl; context: { row: row, i: getIndex(index, row) }\"></ng-container>\r\n </tr>\r\n </cdk-virtual-scroll-viewport>\r\n</ng-template>\r\n\r\n<ng-template #bodyTpl>\r\n <ng-container *ngFor=\"let row of data; index as i; trackBy: trackByItem\">\r\n <tr\r\n [class.x-table-activated]=\"allowSelectRow && activatedRow?.id === row.id\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n (click)=\"rowClick(row)\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"rowTpl; context: { row: row, i: i }\"></ng-container>\r\n </tr>\r\n <div class=\"x-table-children\" [class.x-table-expandTpl]=\"expandTpl\" *ngIf=\"table.treeTable && row.children && row.expanded\">\r\n <x-table-body\r\n [data]=\"row.children\"\r\n [columns]=\"table.columns\"\r\n [itemSize]=\"table.itemSize\"\r\n [rowHeight]=\"table.rowHeight\"\r\n [columnTpl]=\"table.bodyColumnTpl\"\r\n [allowSelectRow]=\"table.allowSelectRow\"\r\n [rowClass]=\"table.rowClass\"\r\n [cellConfig]=\"table.cellConfig?.tbody\"\r\n [(activatedRow)]=\"table.activatedRow\"\r\n [expandedAll]=\"expandedAll\"\r\n [expandTpl]=\"expandTpl\"\r\n (activatedRowChange)=\"table.activatedRowChange.emit($event)\"\r\n [level]=\"row.level! + 1\"\r\n [table]=\"table\"\r\n ></x-table-body>\r\n </div>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #rowTpl let-row=\"row\" let-i=\"i\">\r\n <ng-container *ngIf=\"level > 0 && expandTpl\">\r\n <ng-container *xOutlet=\"expandTpl; context: { $row: row, $index: i, $level: level }\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"level === 0 || !expandTpl\">\r\n <ng-container *xOutlet=\"rowDefault; context: { row: row, i: i, level: level }\"></ng-container>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #rowDefault let-row=\"row\" let-i=\"i\">\r\n <ng-container *ngFor=\"let column of columns; index as j; trackBy: trackByItem\">\r\n <td\r\n [style.width.px]=\"column.width\"\r\n [style.flex]=\"getFlex(column)\"\r\n [title]=\"getTitle(row, column)\"\r\n [class.x-table-sticky]=\"table.getStickyLeft(column) || table.getStickyRight(column)\"\r\n [class.x-table-sticky-left]=\"table.getStickyLeft(column)\"\r\n [class.x-table-sticky-right]=\"table.getStickyRight(column)\"\r\n [class.x-table-sticky-left-last]=\"table.getStickyLeftLast(column)\"\r\n [class.x-table-sticky-right-first]=\"table.getStickyRightFirst(column)\"\r\n [style.left.px]=\"column.left\"\r\n [style.right.px]=\"column.right\"\r\n [ngClass]=\"!rowClass ? {} : rowClass(row, i)\"\r\n >\r\n <ng-template *ngTemplateOutlet=\"cellTpl; context: { column: column, row: row, i: i }\"></ng-template>\r\n </td>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #cellTpl let-column=\"column\" let-row=\"row\" let-i=\"i\">\r\n <ng-container [ngSwitch]=\"column.type\">\r\n <ng-container *ngSwitchCase=\"'checkbox'\">\r\n <x-checkbox\r\n [data]=\"[{ id: true, label: '' }]\"\r\n [(ngModel)]=\"row[column.id]\"\r\n (ngModelChange)=\"table.bodyChecked($event, column)\"\r\n ></x-checkbox>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'index'\">\r\n <div>{{ table.getIndex(i) }}</div>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <ng-container *ngIf=\"table.isExpandColumn(column)\">\r\n <x-button\r\n [class.is-leaf]=\"!row.leaf\"\r\n [class.is-expanded]=\"row.expanded\"\r\n (click)=\"onExpanded($event, row)\"\r\n icon=\"fto-chevron-right\"\r\n size=\"mini\"\r\n onlyIcon\r\n class=\"x-table-expand\"\r\n [style.margin-left.rem]=\"row.level - 0.5\"\r\n ></x-button>\r\n </ng-container>\r\n <ng-container *xOutlet=\"columnTpl[column.id]; context: { $column: column, $row: row, $index: table.getIndex(i) }\">\r\n <div [innerHTML]=\"row[column.id]\" [style.text-align]=\"column.textAlign\"></div>\r\n {{ table.rowExpandNext && table.rowExpandNext.id === column.id ? 'x-table-body-level-' + row.level : '' }}\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n</ng-template>\r\n" }]
|
|
195
204
|
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
|
|
196
205
|
type: Inject,
|
|
197
206
|
args: [DOCUMENT]
|
|
@@ -204,4 +213,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
|
|
|
204
213
|
}], table: [{
|
|
205
214
|
type: Input
|
|
206
215
|
}] } });
|
|
207
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtYm9keS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS90YWJsZS90YWJsZS1ib2R5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL3RhYmxlL3RhYmxlLWJvZHkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxpQkFBaUIsRUFJakIsdUJBQXVCLEVBR3ZCLE1BQU0sRUFDTixTQUFTLEVBQ1QsS0FBSyxFQUNOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBdUMsTUFBTSxrQkFBa0IsQ0FBQztBQUM3RyxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQTJCLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7QUFRM0MsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGtCQUFrQjtJQW1CekQ7SUFDRSxxREFBcUQ7SUFDOUMsUUFBbUIsRUFDbkIsVUFBc0IsRUFDdEIsR0FBc0IsRUFDSixHQUFRLEVBQzFCLGFBQTZCO1FBRXBDLEtBQUssRUFBRSxDQUFDO1FBTkQsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ0osUUFBRyxHQUFILEdBQUcsQ0FBSztRQUMxQixrQkFBYSxHQUFiLGFBQWEsQ0FBZ0I7UUF4QnRDLGVBQVUsR0FBZ0MsRUFBRSxDQUFDO1FBZXJDLGVBQVUs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SSxDQUFDLFdBQVc7WUFBRSxPQUFPO1FBQzlCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQztRQUN0RCxNQUFNLElBQUksR0FBRyxHQUFHLENBQUMsWUFBWSxHQUFJLElBQUksQ0FBQyxVQUFxQixDQUFDO1FBQzVELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBQyxXQUFXLENBQUM7UUFFdkUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxJQUFJLElBQUksRUFBRTtZQUNsQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7WUFDN0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLEdBQUcsR0FBRyxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUMsV0FBVyxDQUFDO1NBQzdEO2FBQU0sSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsSUFBSSxDQUFDLElBQUksRUFBRTtZQUN6QyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7WUFDOUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDO1NBQzdCO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxJQUFJLElBQUksRUFBRTtZQUNsQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7WUFDN0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEdBQUcsR0FBRyxDQUFDLFlBQVksR0FBRyxHQUFHLENBQUMsWUFBWSxDQUFDO1NBQ2hFO2FBQU0sSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsSUFBSSxDQUFDLElBQUksRUFBRTtZQUN6QyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7WUFDOUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDO1lBQzdC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QUFLLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDOUU7U0FDRjtRQUNELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsVUFBVSxDQUFDLE1BQWEsRUFBRSxJQUFlO1FBQ3ZDLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQy9CLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELFdBQVcsQ0FBQyxNQUFjLEVBQUUsSUFBOEI7UUFDeEQsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDO0lBQ2pCLENBQUM7O21JQTdMVSxtQkFBbUIsc0dBd0JwQixRQUFRO3VIQXhCUCxtQkFBbUIseVRDM0JoQywyMEtBOEhBLHE4RERuR2EsbUJBQW1COzJGQUFuQixtQkFBbUI7a0JBTi9CLFNBQVM7K0JBQ0UsR0FBRyxnQkFBZ0IsRUFBRSxpQkFFaEIsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTTs7MEJBMEI1QyxNQUFNOzJCQUFDLFFBQVE7eUVBWkUsS0FBSztzQkFBeEIsU0FBUzt1QkFBQyxPQUFPO2dCQUNRLFdBQVc7c0JBQXBDLFNBQVM7dUJBQUMsYUFBYTtnQkFDZixLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBPbkluaXQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgUmVuZGVyZXIyLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBPbkNoYW5nZXMsXHJcbiAgSW5qZWN0LFxyXG4gIFZpZXdDaGlsZCxcclxuICBJbnB1dFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBYVGFibGVCb2R5UHJlZml4LCBYVGFibGVCb2R5UHJvcGVydHksIFhUYWJsZVJvdywgWFRhYmxlQ29sdW1uLCBYVGFibGVDZWxsIH0gZnJvbSAnLi90YWJsZS5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7IHJlbW92ZU5nVGFnLCBYSXNDaGFuZ2UsIFhSZXNpemUsIFhDb25maWdTZXJ2aWNlLCBYTnVtYmVyLCBzdHJpcFRhZ3MgfSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuaW1wb3J0IHsgU3ViamVjdCwgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Njcm9sbGluZyc7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBgJHtYVGFibGVCb2R5UHJlZml4fWAsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLWJvZHkuY29tcG9uZW50Lmh0bWwnLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIFhUYWJsZUJvZHlDb21wb25lbnQgZXh0ZW5kcyBYVGFibGVCb2R5UHJvcGVydHkgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcbiAgdGJvZHlTdHlsZTogeyBbcHJvcGVydHk6IHN0cmluZ106IGFueSB9ID0ge307XHJcbiAgZ2V0IGlzRW1wdHkoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5kYXRhPy5sZW5ndGggPT09IDA7XHJcbiAgfVxyXG4gIGdldCBnZXRSb3dIZWlnaHQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5yb3dIZWlnaHQgPT0gMCA/ICcnIDogdGhpcy5yb3dIZWlnaHQ7XHJcbiAgfVxyXG4gIGdldCBnZXRJdGVtU2l6ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLnJvd0hlaWdodCAhPT0gMCAmJiB0aGlzLml0ZW1TaXplID4gdGhpcy5yb3dIZWlnaHQgPyB0aGlzLnJvd0hlaWdodCA6IHRoaXMuaXRlbVNpemU7XHJcbiAgfVxyXG5cclxuICBAVmlld0NoaWxkKCd0Ym9keScpIHRib2R5ITogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCd2aXJ0dWFsQm9keScpIHZpcnR1YWxCb2R5ITogQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0O1xyXG4gIEBJbnB1dCgpIHRhYmxlOiBhbnk7XHJcblxyXG4gIHByaXZhdGUgX3VuU3ViamVjdCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgcHJpdmF0ZSBfcmVzaXplT2JzZXJ2ZXIhOiBSZXNpemVPYnNlcnZlcjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICAvLyBAT3B0aW9uYWwoKSBASG9zdCgpIHB1YmxpYyB0YWJsZTogWFRhYmxlQ29tcG9uZW50LFxyXG4gICAgcHVibGljIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZixcclxuICAgIHB1YmxpYyBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgQEluamVjdChET0NVTUVOVCkgcHVibGljIGRvYzogYW55LFxyXG4gICAgcHVibGljIGNvbmZpZ1NlcnZpY2U6IFhDb25maWdTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuICBuZ09uQ2hhbmdlcyhzaW1wbGVzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICBjb25zdCB7IGRhdGEsIGNvbHVtbnMsIGFjdGl2YXRlZFJvdywgbWVyZ2VSdWxlLCBleHBhbmRlZEFsbCB9ID0gc2ltcGxlcztcclxuICAgIFhJc0NoYW5nZShkYXRhLCBjb2x1bW5zLCBhY3RpdmF0ZWRSb3csIG1lcmdlUnVsZSwgZXhwYW5kZWRBbGwpICYmIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgcmVtb3ZlTmdUYWcodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xyXG4gICAgaWYgKHRoaXMubGV2ZWwgPiAwKSByZW1vdmVOZ1RhZyh0aGlzLnRib2R5Lm5hdGl2ZUVsZW1lbnQpO1xyXG4gICAgaWYgKHRoaXMuc2Nyb2xsPy55ICYmICF0aGlzLmJvZHlIZWlnaHQpIHtcclxuICAgICAgdGhpcy5ib2R5SGVpZ2h0ID0gdGhpcy5zY3JvbGwueTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMudGFibGUudmlydHVhbEJvZHkgPSB0aGlzLnZpcnR1YWxCb2R5O1xyXG4gICAgdGhpcy50YWJsZS5ib2R5Q2hhbmdlID0gKCkgPT4gdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgdGhpcy5zZXRTdWJqZWN0KCk7XHJcbiAgICB0aGlzLnNldFNjcm9sbCgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl91blN1YmplY3QubmV4dCgpO1xyXG4gICAgdGhpcy5fdW5TdWJqZWN0LnVuc3Vic2NyaWJlKCk7XHJcbiAgICB0aGlzLl9yZXNpemVPYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xyXG4gIH1cclxuXHJcbiAgc2V0U3ViamVjdCgpIHtcclxuICAgIGlmICh0aGlzLnZpcnR1YWxCb2R5KSB7XHJcbiAgICAgIHRoaXMudGFibGUuc2Nyb2xsQ29udGVudEVsZSA9IHRoaXMudmlydHVhbEJvZHk/LmVsZW1lbnRSZWY/Lm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihcclxuICAgICAgICAnLmNkay12aXJ0dWFsLXNjcm9sbC1jb250ZW50LXdyYXBwZXInXHJcbiAgICAgICkgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICAgIGlmICh0aGlzLnNjcm9sbD8ueCkge1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy50YWJsZS5zY3JvbGxDb250ZW50RWxlLCAnd2lkdGgnLCBgJHt0aGlzLnNjcm9sbC54fXB4YCk7XHJcbiAgICAgIH1cclxuICAgICAgWFJlc2l6ZSh0aGlzLnRhYmxlLnRhYmxlLm5hdGl2ZUVsZW1lbnQsIHRoaXMudGFibGUuc2Nyb2xsQ29udGVudEVsZSlcclxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KSlcclxuICAgICAgICAuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLl9yZXNpemVPYnNlcnZlciA9IHgucmVzaXplT2JzZXJ2ZXI7XHJcbiAgICAgICAgICB0aGlzLnNldEFkYXB0aW9uSGVpZ2h0KCk7XHJcbiAgICAgICAgICB0aGlzLnNldFNjcm9sbCgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICBmcm9tRXZlbnQod2luZG93LCAncmVzaXplJylcclxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KSlcclxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgIHRoaXMuc2V0QWRhcHRpb25IZWlnaHQoKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnRhYmxlLnNjcm9sbENvbnRlbnRFbGUpIHtcclxuICAgICAgZnJvbUV2ZW50KHRoaXMudmlydHVhbEJvZHkuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnc2Nyb2xsJylcclxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KSlcclxuICAgICAgICAuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBlbGUgPSB4LnNyY0VsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICAgICAgICB0aGlzLnRhYmxlLnNjcm9sbFRvcCA9IGVsZS5zY3JvbGxUb3A7XHJcbiAgICAgICAgICB0aGlzLnRhYmxlLnNjcm9sbExlZnQgPSBlbGUuc2Nyb2xsTGVmdDtcclxuICAgICAgICAgIGlmIChlbGUuc2Nyb2xsTGVmdCA+PSAwICYmIHRoaXMudGFibGUudGhlYWQpIHtcclxuICAgICAgICAgICAgdGhpcy50YWJsZS50aGVhZC5uYXRpdmVFbGVtZW50LnNjcm9sbExlZnQgPSB0aGlzLnRhYmxlLnNjcm9sbExlZnQ7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLnRhYmxlLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRTY3JvbGwoKSB7XHJcbiAgICBpZiAoIXRoaXMudmlydHVhbEJvZHkpIHJldHVybjtcclxuICAgIGNvbnN0IGVsZSA9IHRoaXMudmlydHVhbEJvZHkuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xyXG4gICAgY29uc3QgaGFzWSA9IGVsZS5zY3JvbGxIZWlnaHQgPiAodGhpcy5ib2R5SGVpZ2h0IGFzIG51bWJlcik7XHJcbiAgICBjb25zdCBoYXNYID0gdGhpcy50YWJsZS5zY3JvbGxDb250ZW50RWxlLmNsaWVudFdpZHRoID4gZWxlLmNsaWVudFdpZHRoO1xyXG5cclxuICAgIGlmICghdGhpcy50YWJsZS5oYXNTY3JvbGxZICYmIGhhc1kpIHtcclxuICAgICAgdGhpcy50YWJsZS5oYXNTY3JvbGxZID0gdHJ1ZTtcclxuICAgICAgdGhpcy50YWJsZS5zY3JvbGxZV2lkdGggPSBlbGUub2Zmc2V0V2lkdGggLSBlbGUuY2xpZW50V2lkdGg7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMudGFibGUuaGFzU2Nyb2xsWSAmJiAhaGFzWSkge1xyXG4gICAgICB0aGlzLnRhYmxlLmhhc1Njcm9sbFkgPSBmYWxzZTtcclxuICAgICAgdGhpcy50YWJsZS5zY3JvbGxZV2lkdGggPSAwO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghdGhpcy50YWJsZS5oYXNTY3JvbGxYICYmIGhhc1gpIHtcclxuICAgICAgdGhpcy50YWJsZS5oYXNTY3JvbGxYID0gdHJ1ZTtcclxuICAgICAgdGhpcy50YWJsZS5zY3JvbGxYSGVpZ2h0ID0gZWxlLm9mZnNldEhlaWdodCAtIGVsZS5jbGllbnRIZWlnaHQ7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMudGFibGUuaGFzU2Nyb2xsWCAmJiAhaGFzWCkge1xyXG4gICAgICB0aGlzLnRhYmxlLmhhc1Njcm9sbFggPSBmYWxzZTtcclxuICAgICAgdGhpcy50YWJsZS5zY3JvbGxYSGVpZ2h0ID0gMDtcclxuICAgICAgdGhpcy50YWJsZS5zY3JvbGxYV2lkdGggPSBudWxsO1xyXG4gICAgfVxyXG4gICAgaWYgKGhhc1gpIHtcclxuICAgICAgdGhpcy50YWJsZS5zY3JvbGxYV2lkdGggPSBlbGUub2Zmc2V0V2lkdGggKyBlbGUuc2Nyb2xsV2lkdGggLSBlbGUuY2xpZW50V2lkdGg7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy50YWJsZS5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgc2V0U3R5bGUoKSB7XHJcbiAgICBsZXQgaGVpZ2h0ID0gdGhpcy5yb3dIZWlnaHQgPT0gMCA/ICcnIDogdGhpcy5yb3dIZWlnaHQ7XHJcbiAgICBpZiAodGhpcy5jZWxsQ29uZmlnICYmIHRoaXMuY2VsbENvbmZpZy5jZWxscykge1xyXG4gICAgICBjb25zdCBzcHQgPSB0aGlzLmNlbGxDb25maWcuY2VsbHMubWFwKCh4KSA9PiB7XHJcbiAgICAgICAgY29uc3QgZ3JpZEFyZWFTcHQgPSB4LmdyaWRBcmVhPy5zcGxpdCgnLycpO1xyXG4gICAgICAgIHJldHVybiBncmlkQXJlYVNwdCAmJiBncmlkQXJlYVNwdC5sZW5ndGggPiAzID8gTnVtYmVyKGdyaWRBcmVhU3B0WzJdKSA6IDI7XHJcbiAgICAgIH0pO1xyXG4gICAgICBoZWlnaHQgPSAoKE1hdGgubWF4KC4uLnNwdCkgLSAxKSAqIChoZWlnaHQgYXMgbnVtYmVyKSkgYXMgWE51bWJlcjtcclxuICAgIH1cclxuICAgIHRoaXMudGJvZHlTdHlsZSA9IHtcclxuICAgICAgaGVpZ2h0OiBgJHtoZWlnaHR9cHhgXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgZ2V0SW5kZXgoaW5kZXg6IG51bWJlciwgaXRlbTogWFRhYmxlUm93KSB7XHJcbiAgICBpZiAoIWlzTmFOKGluZGV4KSkgcmV0dXJuIGluZGV4O1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YS5pbmRleE9mKGl0ZW0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0RmxleChjb2x1bW46IFhUYWJsZUNvbHVtbikge1xyXG4gICAgaWYgKGNvbHVtbi53aWR0aCkgcmV0dXJuICdub25lJztcclxuICAgIGlmICghY29sdW1uLmZsZXgpIHJldHVybiAxO1xyXG4gICAgcmV0dXJuIGNvbHVtbi5mbGV4O1xyXG4gIH1cclxuXHJcbiAgZ2V0VGl0bGUocm93OiBYVGFibGVSb3csIGNvbHVtbjogWFRhYmxlQ2VsbCB8IGFueSkge1xyXG4gICAgbGV0IGl0ID0gcm93W2NvbHVtbi5pZCBhcyBzdHJpbmddO1xyXG4gICAgcmV0dXJuIGl0ID8gc3RyaXBUYWdzKGl0KSA6ICcnO1xyXG4gIH1cclxuXHJcbiAgc2V0QWRhcHRpb25IZWlnaHQoKSB7XHJcbiAgICBpZiAoKHRoaXMuYWRhcHRpb25IZWlnaHQgYXMgbnVtYmVyKSA+IDApIHtcclxuICAgICAgY29uc3QgaGVhZEhlaWdodCA9IHRoaXMudGFibGUudGhlYWQ/Lm5hdGl2ZUVsZW1lbnQuY2xpZW50SGVpZ2h0IHx8IDA7XHJcbiAgICAgIGNvbnN0IGZvb3RIZWlnaHQgPSB0aGlzLnRhYmxlLnRmb290Py5uYXRpdmVFbGVtZW50LmNsaWVudEhlaWdodCB8fCAwO1xyXG4gICAgICBjb25zdCBwYWdpbmF0aW9uSGVpZ2h0ID0gdGhpcy50YWJsZS5wYWdpbmF0aW9uPy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xpZW50SGVpZ2h0IHx8IDA7XHJcbiAgICAgIHRoaXMuYm9keUhlaWdodCA9XHJcbiAgICAgICAgTnVtYmVyKHRoaXMuZG9jUGVyY2VudCkgKiB0aGlzLmRvYy5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0IC1cclxuICAgICAgICBoZWFkSGVpZ2h0IC1cclxuICAgICAgICBmb290SGVpZ2h0IC1cclxuICAgICAgICBwYWdpbmF0aW9uSGVpZ2h0IC1cclxuICAgICAgICBOdW1iZXIodGhpcy5hZGFwdGlvbkhlaWdodCk7XHJcbiAgICAgIGlmICh0aGlzLmJvZHlIZWlnaHQgPCAwKSB0aGlzLmJvZHlIZWlnaHQgPSAwO1xyXG4gICAgICB0aGlzLm1pbkJ1ZmZlclB4ID0gdGhpcy5ib2R5SGVpZ2h0O1xyXG4gICAgICB0aGlzLm1heEJ1ZmZlclB4ID0gdGhpcy5ib2R5SGVpZ2h0ICogMS4yO1xyXG4gICAgICB0aGlzLnZpcnR1YWxCb2R5Wydfc2Nyb2xsU3RyYXRlZ3knXVsnX21pbkJ1ZmZlclB4J10gPSB0aGlzLm1pbkJ1ZmZlclB4O1xyXG4gICAgICB0aGlzLnZpcnR1YWxCb2R5Wydfc2Nyb2xsU3RyYXRlZ3knXVsnX21heEJ1ZmZlclB4J10gPSB0aGlzLm1heEJ1ZmZlclB4O1xyXG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByb3dDbGljayhyb3c6IFhUYWJsZVJvdykge1xyXG4gICAgdGhpcy5hY3RpdmF0ZWRSb3cgPSByb3c7XHJcbiAgICBpZiAodGhpcy5hbGxvd1NlbGVjdFJvdyAmJiB0aGlzLnRhYmxlLnJvd0NoZWNrZWQpIHtcclxuICAgICAgaWYgKCFBcnJheS5mcm9tKChldmVudCBhcyBhbnkpLnBhdGgpLmZpbmQoKHg6IGFueSkgPT4geC5sb2NhbE5hbWUgPT0gJ3gtY2hlY2tib3gnKSkge1xyXG4gICAgICAgIHJvd1t0aGlzLnRhYmxlLnJvd0NoZWNrZWQuaWRdID0gIXJvd1t0aGlzLnRhYmxlLnJvd0NoZWNrZWQuaWRdO1xyXG4gICAgICAgIHRoaXMudGFibGUuYm9keUNoZWNrZWQocm93W3RoaXMudGFibGUucm93Q2hlY2tlZC5pZF0sIHRoaXMudGFibGUucm93Q2hlY2tlZCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuYWN0aXZhdGVkUm93Q2hhbmdlLmVtaXQocm93KTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIG9uRXhwYW5kZWQoX2V2ZW50OiBFdmVudCwgbm9kZTogWFRhYmxlUm93KSB7XHJcbiAgICBub2RlLmV4cGFuZGVkID0gIW5vZGUuZXhwYW5kZWQ7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICB0cmFja0J5SXRlbShfaW5kZXg6IG51bWJlciwgaXRlbTogWFRhYmxlUm93IHwgWFRhYmxlQ29sdW1uKSB7XHJcbiAgICByZXR1cm4gaXRlbS5pZDtcclxuICB9XHJcbn1cclxuIiwiPHRib2R5ICN0Ym9keT5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiY2VsbENvbmZpZzsgZWxzZSB2aXJ0dWFsU2Nyb2xsVHBsXCI+XHJcbiAgICA8dHIgKm5nRm9yPVwibGV0IHJvdyBvZiBkYXRhOyBpbmRleCBhcyBpOyB0cmFja0J5OiB0cmFja0J5SXRlbVwiIFtzdHlsZS5ncmlkVGVtcGxhdGVDb2x1bW5zXT1cImNlbGxDb25maWcuZ3JpZFRlbXBsYXRlQ29sdW1uc1wiPlxyXG4gICAgICA8dGRcclxuICAgICAgICAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNlbGxDb25maWcuY2VsbHM7IGluZGV4IGFzIGpcIlxyXG4gICAgICAgIFt0aXRsZV09XCJnZXRUaXRsZShyb3csIGNvbHVtbilcIlxyXG4gICAgICAgIFtjbGFzcy54LXRhYmxlLXN0aWNreV09XCJ0YWJsZS5nZXRTdGlja3koY29sdW1uKVwiXHJcbiAgICAgICAgW3N0eWxlLmxlZnQucHhdPVwiY29sdW1uLmxlZnRcIlxyXG4gICAgICAgIFtzdHlsZS5ncmlkLWFyZWFdPVwiY29sdW1uLmdyaWRBcmVhXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjZWxsVHBsOyBjb250ZXh0OiB7IGNvbHVtbjogY29sdW1uLCByb3c6IHJvdywgaTogaSB9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvdGQ+XHJcbiAgICA8L3RyPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDx4LWVtcHR5ICpuZ0lmPVwiaXNFbXB0eSAmJiBsZXZlbCA9PT0gMFwiPjwveC1lbXB0eT5cclxuPC90Ym9keT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjdmlydHVhbFNjcm9sbFRwbD5cclxuICA8Y2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0XHJcbiAgICAjdmlydHVhbEJvZHlcclxuICAgICpuZ0lmPVwidmlydHVhbFNjcm9sbDsgZWxzZSBib2R5VHBsXCJcclxuICAgIFtpdGVtU2l6ZV09XCJnZXRJdGVtU2l6ZVwiXHJcbiAgICBbbWluQnVmZmVyUHhdPVwibWluQnVmZmVyUHhcIlxyXG4gICAgW21heEJ1ZmZlclB4XT1cIm1heEJ1ZmZlclB4XCJcclxuICAgIFtzdHlsZS5oZWlnaHQucHhdPVwiYm9keUhlaWdodFwiXHJcbiAgPlxyXG4gICAgPHRyXHJcbiAgICAgICpjZGtWaXJ0dWFsRm9yPVwibGV0IHJvdyBvZiBkYXRhOyBsZXQgaW5kZXggPSBpbmRleDsgdHJhY2tCeTogdHJhY2tCeUl0ZW1cIlxyXG4gICAgICBbY2xhc3MueC10YWJsZS1hY3RpdmF0ZWRdPVwiYWxsb3dTZWxlY3RSb3cgJiYgYWN0aXZhdGVkUm93Py5pZCA9PT0gcm93LmlkXCJcclxuICAgICAgW3N0eWxlLmhlaWdodC5weF09XCJnZXRSb3dIZWlnaHRcIlxyXG4gICAgICBbc3R5bGUubWluLWhlaWdodC5weF09XCJnZXRSb3dIZWlnaHRcIlxyXG4gICAgICAoY2xpY2spPVwicm93Q2xpY2socm93KVwiXHJcbiAgICA+XHJcbiAgICAgIDwhLS0gcm93SGVpZ2h0IOS4uiAwIOeahOaXtuWAme+8jGluZGV4IOS4i+agh+iOt+WPluS4jeWIsCAtLT5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInJvd1RwbDsgY29udGV4dDogeyByb3c6IHJvdywgaTogZ2V0SW5kZXgoaW5kZXgsIHJvdykgfVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC90cj5cclxuICA8L2Nkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydD5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjYm9keVRwbD5cclxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCByb3cgb2YgZGF0YTsgaW5kZXggYXMgaTsgdHJhY2tCeTogdHJhY2tCeUl0ZW1cIj5cclxuICAgIDx0clxyXG4gICAgICBbY2xhc3MueC10YWJsZS1hY3RpdmF0ZWRdPVwiYWxsb3dTZWxlY3RSb3cgJiYgYWN0aXZhdGVkUm93Py5pZCA9PT0gcm93LmlkXCJcclxuICAgICAgW3N0eWxlLmhlaWdodC5weF09XCJnZXRSb3dIZWlnaHRcIlxyXG4gICAgICBbc3R5bGUubWluLWhlaWdodC5weF09XCJnZXRSb3dIZWlnaHRcIlxyXG4gICAgICAoY2xpY2spPVwicm93Q2xpY2socm93KVwiXHJcbiAgICA+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJyb3dUcGw7IGNvbnRleHQ6IHsgcm93OiByb3csIGk6IGkgfVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC90cj5cclxuICAgIDxkaXYgY2xhc3M9XCJ4LXRhYmxlLWNoaWxkcmVuXCIgW2NsYXNzLngtdGFibGUtZXhwYW5kVHBsXT1cImV4cGFuZFRwbFwiICpuZ0lmPVwidGFibGUudHJlZVRhYmxlICYmIHJvdy5jaGlsZHJlbiAmJiByb3cuZXhwYW5kZWRcIj5cclxuICAgICAgPHgtdGFibGUtYm9keVxyXG4gICAgICAgIFtkYXRhXT1cInJvdy5jaGlsZHJlblwiXHJcbiAgICAgICAgW2NvbHVtbnNdPVwidGFibGUuY29sdW1uc1wiXHJcbiAgICAgICAgW2l0ZW1TaXplXT1cInRhYmxlLml0ZW1TaXplXCJcclxuICAgICAgICBbcm93SGVpZ2h0XT1cInRhYmxlLnJvd0hlaWdodFwiXHJcbiAgICAgICAgW2NvbHVtblRwbF09XCJ0YWJsZS5ib2R5Q29sdW1uVHBsXCJcclxuICAgICAgICBbYWxsb3dTZWxlY3RSb3ddPVwidGFibGUuYWxsb3dTZWxlY3RSb3dcIlxyXG4gICAgICAgIFtyb3dDbGFzc109XCJ0YWJsZS5yb3dDbGFzc1wiXHJcbiAgICAgICAgW2NlbGxDb25maWddPVwidGFibGUuY2VsbENvbmZpZz8udGJvZHlcIlxyXG4gICAgICAgIFsoYWN0aXZhdGVkUm93KV09XCJ0YWJsZS5hY3RpdmF0ZWRSb3dcIlxyXG4gICAgICAgIFtleHBhbmRlZEFsbF09XCJleHBhbmRlZEFsbFwiXHJcbiAgICAgICAgW2V4cGFuZFRwbF09XCJleHBhbmRUcGxcIlxyXG4gICAgICAgIChhY3RpdmF0ZWRSb3dDaGFuZ2UpPVwidGFibGUuYWN0aXZhdGVkUm93Q2hhbmdlLmVtaXQoJGV2ZW50KVwiXHJcbiAgICAgICAgW2xldmVsXT1cInJvdy5sZXZlbCEgKyAxXCJcclxuICAgICAgICBbdGFibGVdPVwidGFibGVcIlxyXG4gICAgICA+PC94LXRhYmxlLWJvZHk+XHJcbiAgICA8L2Rpdj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjcm93VHBsIGxldC1yb3c9XCJyb3dcIiBsZXQtaT1cImlcIj5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwibGV2ZWwgPiAwICYmIGV4cGFuZFRwbFwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqeE91dGxldD1cImV4cGFuZFRwbDsgY29udGV4dDogeyAkcm93OiByb3csICRpbmRleDogaSwgJGxldmVsOiBsZXZlbCB9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxldmVsID09PSAwIHx8ICFleHBhbmRUcGxcIj5cclxuICAgIDxuZy1jb250YWluZXIgKnhPdXRsZXQ9XCJyb3dEZWZhdWx0OyBjb250ZXh0OiB7IHJvdzogcm93LCBpOiBpLCBsZXZlbDogbGV2ZWwgfVwiPjwvbmctY29udGFpbmVyPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNyb3dEZWZhdWx0IGxldC1yb3c9XCJyb3dcIiBsZXQtaT1cImlcIj5cclxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29sdW1uczsgaW5kZXggYXMgajsgdHJhY2tCeTogdHJhY2tCeUl0ZW1cIj5cclxuICAgIDx0ZFxyXG4gICAgICBbc3R5bGUud2lkdGgucHhdPVwiY29sdW1uLndpZHRoXCJcclxuICAgICAgW3N0eWxlLmZsZXhdPVwiZ2V0RmxleChjb2x1bW4pXCJcclxuICAgICAgW3RpdGxlXT1cImdldFRpdGxlKHJvdywgY29sdW1uKVwiXHJcbiAgICAgIFtjbGFzcy54LXRhYmxlLXN0aWNreV09XCJ0YWJsZS5nZXRTdGlja3koY29sdW1uKVwiXHJcbiAgICAgIFtzdHlsZS5sZWZ0LnB4XT1cImNvbHVtbi5sZWZ0XCJcclxuICAgICAgW25nQ2xhc3NdPVwiIXJvd0NsYXNzID8ge30gOiByb3dDbGFzcyhyb3csIGkpXCJcclxuICAgID5cclxuICAgICAgPG5nLXRlbXBsYXRlICpuZ1RlbXBsYXRlT3V0bGV0PVwiY2VsbFRwbDsgY29udGV4dDogeyBjb2x1bW46IGNvbHVtbiwgcm93OiByb3csIGk6IGkgfVwiPjwvbmctdGVtcGxhdGU+XHJcbiAgICA8L3RkPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNjZWxsVHBsIGxldC1jb2x1bW49XCJjb2x1bW5cIiBsZXQtcm93PVwicm93XCIgbGV0LWk9XCJpXCI+XHJcbiAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiY29sdW1uLnR5cGVcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidjaGVja2JveCdcIj5cclxuICAgICAgPHgtY2hlY2tib3hcclxuICAgICAgICBbZGF0YV09XCJbeyBpZDogdHJ1ZSwgbGFiZWw6ICcnIH1dXCJcclxuICAgICAgICBbKG5nTW9kZWwpXT1cInJvd1tjb2x1bW4uaWRdXCJcclxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ0YWJsZS5ib2R5Q2hlY2tlZCgkZXZlbnQsIGNvbHVtbilcIlxyXG4gICAgICA+PC94LWNoZWNrYm94PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInaW5kZXgnXCI+XHJcbiAgICAgIDxkaXY+e3sgdGFibGUuZ2V0SW5kZXgoaSkgfX08L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGFibGUuaXNFeHBhbmRDb2x1bW4oY29sdW1uKVwiPlxyXG4gICAgICAgIDx4LWJ1dHRvblxyXG4gICAgICAgICAgW2NsYXNzLmlzLWxlYWZdPVwiIXJvdy5sZWFmXCJcclxuICAgICAgICAgIFtjbGFzcy5pcy1leHBhbmRlZF09XCJyb3cuZXhwYW5kZWRcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cIm9uRXhwYW5kZWQoJGV2ZW50LCByb3cpXCJcclxuICAgICAgICAgIGljb249XCJmdG8tY2hldnJvbi1yaWdodFwiXHJcbiAgICAgICAgICBzaXplPVwibWluaVwiXHJcbiAgICAgICAgICBvbmx5SWNvblxyXG4gICAgICAgICAgY2xhc3M9XCJ4LXRhYmxlLWV4cGFuZFwiXHJcbiAgICAgICAgICBbc3R5bGUubWFyZ2luLWxlZnQucmVtXT1cInJvdy5sZXZlbCAtIDAuNVwiXHJcbiAgICAgICAgPjwveC1idXR0b24+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8bmctY29udGFpbmVyICp4T3V0bGV0PVwiY29sdW1uVHBsW2NvbHVtbi5pZF07IGNvbnRleHQ6IHsgJGNvbHVtbjogY29sdW1uLCAkcm93OiByb3csICRpbmRleDogdGFibGUuZ2V0SW5kZXgoaSkgfVwiPlxyXG4gICAgICAgIDxkaXYgW2lubmVySFRNTF09XCJyb3dbY29sdW1uLmlkXVwiIFtzdHlsZS50ZXh0LWFsaWduXT1cImNvbHVtbi50ZXh0QWxpZ25cIj48L2Rpdj5cclxuICAgICAgICB7eyB0YWJsZS5yb3dFeHBhbmROZXh0ICYmIHRhYmxlLnJvd0V4cGFuZE5leHQuaWQgPT09IGNvbHVtbi5pZCA/ICd4LXRhYmxlLWJvZHktbGV2ZWwtJyArIHJvdy5sZXZlbCA6ICcnIH19XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
|
|
216
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtYm9keS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS90YWJsZS90YWJsZS1ib2R5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL3RhYmxlL3RhYmxlLWJvZHkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxpQkFBaUIsRUFJakIsdUJBQXVCLEVBR3ZCLE1BQU0sRUFDTixTQUFTLEVBQ1QsS0FBSyxFQUNOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBdUMsTUFBTSxrQkFBa0IsQ0FBQztBQUM3RyxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQTJCLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7QUFRM0MsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGtCQUFrQjtJQW1CekQ7SUFDRSxxREFBcUQ7SUFDOUMsUUFBbUIsRUFDbkIsVUFBc0IsRUFDdEIsR0FBc0IsRUFDSixHQUFRLEVBQzFCLGFBQTZCO1FBRXBDLEtBQUssRUFBRSxDQUFDO1FBTkQsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ0osUUFBRyxHQUFILEdBQUcsQ0FBSztRQUMxQixrQkFBYSxHQUFiLGFBQWEsQ0FBZ0I7UUF4QnRDLGVBQVUsR0FBZ0MsRUFBRSxDQUFDO1FBZXJDLGVBQVUsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBWXpDLENBQUM7SUExQkQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sS0FBSyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUNELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUNuRCxDQUFDO0lBQ0QsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsU0FBUyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDakcsQ0FBQztJQW1CRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsTUFBTSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFDeEUsU0FBUyxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxXQUFXLENBQUMsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzdGLENBQUM7SUFFRCxRQUFRO1FBQ04sV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDM0MsSUFBSSxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUM7WUFBRSxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUMxRCxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUN0QyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1NBQ2pDO0lBQ0gsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQzFDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDdkQsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsZUFBZSxFQUFFLFVBQVUsRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxVQUFVLEVBQUUsYUFBYSxDQUFDLGFBQWEsQ0FDckYscUNBQXFDLENBQ3ZCLENBQUM7WUFDakIsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRTtnQkFDbEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDcEY7WUFDRCxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUM7aUJBQ2pFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2lCQUNoQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDZixJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsQ0FBQyxjQUFjLENBQUM7Z0JBQ3hDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO2dCQUN6QixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbkIsQ0FBQyxDQUFDLENBQUM7WUFDTCxTQUFTLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQztpQkFDeEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7aUJBQ2hDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDM0IsQ0FBQyxDQUFDLENBQUM7U0FDTjtRQUNELElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRTtZQUMvQixTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQztpQkFDM0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7aUJBQ2hDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUNmLE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQyxVQUF5QixDQUFDO2dCQUN4QyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDO2dCQUNyQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxHQUFHLENBQUMsVUFBVSxDQUFDO2dCQUN2QyxJQUFJLEdBQUcsQ0FBQyxVQUFVLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7b0JBQ3RELEtBQUssSUFBSSxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUU7d0JBQ2xDLEtBQUssQ0FBQyxhQUFhLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDO3FCQUN4RDtpQkFDRjtnQkFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsR0FBRyxHQUFHLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQyxXQUFXLEtBQUssR0FBRyxDQUFDLFdBQVcsQ0FBQztnQkFDaEYsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDakMsQ0FBQyxDQUFDLENBQUM7U0FDTjtJQUNILENBQUM7SUFFRCxTQUFTO1FBQ1AsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXO1lBQUUsT0FBTztRQUM5QixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUM7UUFDdEQsTUFBTSxJQUFJLEdBQUcsR0FBRyxDQUFDLFlBQVksR0FBSSxJQUFJLENBQUMsVUFBcUIsQ0FBQztRQUM1RCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUMsV0FBVyxDQUFDO1FBRXZFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsSUFBSSxJQUFJLEVBQUU7WUFDbEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1lBQzdCLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxHQUFHLEdBQUcsQ0FBQyxXQUFXLEdBQUcsR0FBRyxDQUFDLFdBQVcsQ0FBQztTQUM3RDthQUFNLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDekMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1lBQzlCLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQztTQUM3QjtRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsSUFBSSxJQUFJLEVBQUU7WUFDbEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1lBQzdCLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxHQUFHLEdBQUcsQ0FBQyxZQUFZLEdBQUcsR0FBRyxDQUFDLFlBQVksQ0FBQztTQUNoRTthQUFNLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDekMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1lBQzlCLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQztZQUM3QixJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7U0FDaEM7UUFDRCxJQUFJLElBQUksRUFBRTtZQUNSLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxHQUFHLEdBQUcsQ0FBQyxXQUFXLEdBQUcsR0FBRyxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUMsV0FBVyxDQUFDO1NBQy9FO1FBRUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ3ZELElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRTtZQUM1QyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDMUMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzNDLE9BQU8sV0FBVyxJQUFJLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM1RSxDQUFDLENBQUMsQ0FBQztZQUNILE1BQU0sR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFJLE1BQWlCLENBQVksQ0FBQztTQUNuRTtRQUNELElBQUksQ0FBQyxVQUFVLEdBQUc7WUFDaEIsTUFBTSxFQUFFLEdBQUcsTUFBTSxJQUFJO1NBQ3RCLENBQUM7SUFDSixDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQWEsRUFBRSxJQUFlO1FBQ3JDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDaEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsT0FBTyxDQUFDLE1BQW9CO1FBQzFCLElBQUksTUFBTSxDQUFDLEtBQUs7WUFBRSxPQUFPLE1BQU0sQ0FBQztRQUNoQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUk7WUFBRSxPQUFPLENBQUMsQ0FBQztRQUMzQixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUM7SUFDckIsQ0FBQztJQUVELFFBQVEsQ0FBQyxHQUFjLEVBQUUsTUFBd0I7UUFDL0MsSUFBSSxFQUFFLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFZLENBQUMsQ0FBQztRQUNsQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVELGlCQUFpQjtRQUNmLElBQUssSUFBSSxDQUFDLGNBQXlCLEdBQUcsQ0FBQyxFQUFFO1lBQ3ZDLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLGFBQWEsQ0FBQyxZQUFZLElBQUksQ0FBQyxDQUFDO1lBQzNFLElBQUksVUFBVSxHQUFHLENBQUMsQ0FBQztZQUNuQixLQUFLLElBQUksS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFO2dCQUNsQyxVQUFVLElBQUksS0FBSyxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUM7YUFDaEQ7WUFDRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxhQUFhLENBQUMsWUFBWSxJQUFJLENBQUMsQ0FBQztZQUNyRSxPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxVQUFVLENBQUMsQ0FBQztZQUN2QyxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxhQUFhLENBQUMsWUFBWSxJQUFJLENBQUMsQ0FBQztZQUMzRixJQUFJLENBQUMsVUFBVTtnQkFDYixNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLFlBQVk7b0JBQy9ELGFBQWE7b0JBQ2IsVUFBVTtvQkFDVixVQUFVO29CQUNWLGdCQUFnQjtvQkFDaEIsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUM5QixJQUFJLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQztnQkFBRSxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQztZQUM3QyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7WUFDbkMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQztZQUN6QyxJQUFJLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDLENBQUMsY0FBYyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztZQUN2RSxJQUFJLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDLENBQUMsY0FBYyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztZQUN2RSxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQzFCO0lBQ0gsQ0FBQztJQUVELFFBQVEsQ0FBQyxHQUFjO1FBQ3JCLElBQUksQ0FBQyxZQUFZLEdBQUcsR0FBRyxDQUFDO1FBQ3hCLElBQUksSUFBSSxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRTtZQUNoRCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBRSxLQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxJQUFJLFlBQVksQ0FBQyxFQUFFO2dCQUNsRixHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQy9ELElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQzlFO1NBQ0Y7UUFDRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELFVBQVUsQ0FBQyxNQUFhLEVBQUUsSUFBZTtRQUN2QyxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUMvQixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxXQUFXLENBQUMsTUFBYyxFQUFFLElBQThCO1FBQ3hELE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQztJQUNqQixDQUFDOzttSUF0TVUsbUJBQW1CLHNHQXdCcEIsUUFBUTt1SEF4QlAsbUJBQW1CLHlUQzNCaEMsMmtNQXdJQSxxOEREN0dhLG1CQUFtQjsyRkFBbkIsbUJBQW1CO2tCQU4vQixTQUFTOytCQUNFLEdBQUcsZ0JBQWdCLEVBQUUsaUJBRWhCLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU07OzBCQTBCNUMsTUFBTTsyQkFBQyxRQUFRO3lFQVpFLEtBQUs7c0JBQXhCLFNBQVM7dUJBQUMsT0FBTztnQkFDUSxXQUFXO3NCQUFwQyxTQUFTO3VCQUFDLGFBQWE7Z0JBQ2YsS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgT25Jbml0LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIFJlbmRlcmVyMixcclxuICBFbGVtZW50UmVmLFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIEluamVjdCxcclxuICBWaWV3Q2hpbGQsXHJcbiAgSW5wdXRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgWFRhYmxlQm9keVByZWZpeCwgWFRhYmxlQm9keVByb3BlcnR5LCBYVGFibGVSb3csIFhUYWJsZUNvbHVtbiwgWFRhYmxlQ2VsbCB9IGZyb20gJy4vdGFibGUucHJvcGVydHknO1xyXG5pbXBvcnQgeyByZW1vdmVOZ1RhZywgWElzQ2hhbmdlLCBYUmVzaXplLCBYQ29uZmlnU2VydmljZSwgWE51bWJlciwgc3RyaXBUYWdzIH0gZnJvbSAnQG5nLW5lc3QvdWkvY29yZSc7XHJcbmltcG9ydCB7IFN1YmplY3QsIGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9zY3JvbGxpbmcnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogYCR7WFRhYmxlQm9keVByZWZpeH1gLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS1ib2R5LmNvbXBvbmVudC5odG1sJyxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBYVGFibGVCb2R5Q29tcG9uZW50IGV4dGVuZHMgWFRhYmxlQm9keVByb3BlcnR5IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xyXG4gIHRib2R5U3R5bGU6IHsgW3Byb3BlcnR5OiBzdHJpbmddOiBhbnkgfSA9IHt9O1xyXG4gIGdldCBpc0VtcHR5KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YT8ubGVuZ3RoID09PSAwO1xyXG4gIH1cclxuICBnZXQgZ2V0Um93SGVpZ2h0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMucm93SGVpZ2h0ID09IDAgPyAnJyA6IHRoaXMucm93SGVpZ2h0O1xyXG4gIH1cclxuICBnZXQgZ2V0SXRlbVNpemUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5yb3dIZWlnaHQgIT09IDAgJiYgdGhpcy5pdGVtU2l6ZSA+IHRoaXMucm93SGVpZ2h0ID8gdGhpcy5yb3dIZWlnaHQgOiB0aGlzLml0ZW1TaXplO1xyXG4gIH1cclxuXHJcbiAgQFZpZXdDaGlsZCgndGJvZHknKSB0Ym9keSE6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgndmlydHVhbEJvZHknKSB2aXJ0dWFsQm9keSE6IENka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydDtcclxuICBASW5wdXQoKSB0YWJsZTogYW55O1xyXG5cclxuICBwcml2YXRlIF91blN1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIHByaXZhdGUgX3Jlc2l6ZU9ic2VydmVyITogUmVzaXplT2JzZXJ2ZXI7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgLy8gQE9wdGlvbmFsKCkgQEhvc3QoKSBwdWJsaWMgdGFibGU6IFhUYWJsZUNvbXBvbmVudCxcclxuICAgIHB1YmxpYyByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICBwdWJsaWMgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIEBJbmplY3QoRE9DVU1FTlQpIHB1YmxpYyBkb2M6IGFueSxcclxuICAgIHB1YmxpYyBjb25maWdTZXJ2aWNlOiBYQ29uZmlnU2VydmljZVxyXG4gICkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcbiAgbmdPbkNoYW5nZXMoc2ltcGxlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgY29uc3QgeyBkYXRhLCBjb2x1bW5zLCBhY3RpdmF0ZWRSb3csIG1lcmdlUnVsZSwgZXhwYW5kZWRBbGwgfSA9IHNpbXBsZXM7XHJcbiAgICBYSXNDaGFuZ2UoZGF0YSwgY29sdW1ucywgYWN0aXZhdGVkUm93LCBtZXJnZVJ1bGUsIGV4cGFuZGVkQWxsKSAmJiB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHJlbW92ZU5nVGFnKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcclxuICAgIGlmICh0aGlzLmxldmVsID4gMCkgcmVtb3ZlTmdUYWcodGhpcy50Ym9keS5uYXRpdmVFbGVtZW50KTtcclxuICAgIGlmICh0aGlzLnNjcm9sbD8ueSAmJiAhdGhpcy5ib2R5SGVpZ2h0KSB7XHJcbiAgICAgIHRoaXMuYm9keUhlaWdodCA9IHRoaXMuc2Nyb2xsLnk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLnRhYmxlLnZpcnR1YWxCb2R5ID0gdGhpcy52aXJ0dWFsQm9keTtcclxuICAgIHRoaXMudGFibGUuYm9keUNoYW5nZSA9ICgpID0+IHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIHRoaXMuc2V0U3ViamVjdCgpO1xyXG4gICAgdGhpcy5zZXRTY3JvbGwoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fdW5TdWJqZWN0Lm5leHQoKTtcclxuICAgIHRoaXMuX3VuU3ViamVjdC51bnN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy5fcmVzaXplT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcclxuICB9XHJcblxyXG4gIHNldFN1YmplY3QoKSB7XHJcbiAgICBpZiAodGhpcy52aXJ0dWFsQm9keSkge1xyXG4gICAgICB0aGlzLnRhYmxlLnNjcm9sbENvbnRlbnRFbGUgPSB0aGlzLnZpcnR1YWxCb2R5Py5lbGVtZW50UmVmPy5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXHJcbiAgICAgICAgJy5jZGstdmlydHVhbC1zY3JvbGwtY29udGVudC13cmFwcGVyJ1xyXG4gICAgICApIGFzIEhUTUxFbGVtZW50O1xyXG4gICAgICBpZiAodGhpcy5zY3JvbGw/LngpIHtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMudGFibGUuc2Nyb2xsQ29udGVudEVsZSwgJ3dpZHRoJywgYCR7dGhpcy5zY3JvbGwueH1weGApO1xyXG4gICAgICB9XHJcbiAgICAgIFhSZXNpemUodGhpcy50YWJsZS50YWJsZS5uYXRpdmVFbGVtZW50LCB0aGlzLnRhYmxlLnNjcm9sbENvbnRlbnRFbGUpXHJcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdCkpXHJcbiAgICAgICAgLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5fcmVzaXplT2JzZXJ2ZXIgPSB4LnJlc2l6ZU9ic2VydmVyO1xyXG4gICAgICAgICAgdGhpcy5zZXRBZGFwdGlvbkhlaWdodCgpO1xyXG4gICAgICAgICAgdGhpcy5zZXRTY3JvbGwoKTtcclxuICAgICAgICB9KTtcclxuICAgICAgZnJvbUV2ZW50KHdpbmRvdywgJ3Jlc2l6ZScpXHJcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdCkpXHJcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnNldEFkYXB0aW9uSGVpZ2h0KCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy50YWJsZS5zY3JvbGxDb250ZW50RWxlKSB7XHJcbiAgICAgIGZyb21FdmVudCh0aGlzLnZpcnR1YWxCb2R5LmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ3Njcm9sbCcpXHJcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdCkpXHJcbiAgICAgICAgLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgZWxlID0geC5zcmNFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xyXG4gICAgICAgICAgdGhpcy50YWJsZS5zY3JvbGxUb3AgPSBlbGUuc2Nyb2xsVG9wO1xyXG4gICAgICAgICAgdGhpcy50YWJsZS5zY3JvbGxMZWZ0ID0gZWxlLnNjcm9sbExlZnQ7XHJcbiAgICAgICAgICBpZiAoZWxlLnNjcm9sbExlZnQgPj0gMCAmJiB0aGlzLnRhYmxlLnRoZWFkLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgdGhlYWQgb2YgdGhpcy50YWJsZS50aGVhZCkge1xyXG4gICAgICAgICAgICAgIHRoZWFkLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsTGVmdCA9IHRoaXMudGFibGUuc2Nyb2xsTGVmdDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy50YWJsZS5zY3JvbGxMZWZ0TWF4ID0gZWxlLnNjcm9sbExlZnQgKyBlbGUuY2xpZW50V2lkdGggPT09IGVsZS5zY3JvbGxXaWR0aDtcclxuICAgICAgICAgIHRoaXMudGFibGUuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldFNjcm9sbCgpIHtcclxuICAgIGlmICghdGhpcy52aXJ0dWFsQm9keSkgcmV0dXJuO1xyXG4gICAgY29uc3QgZWxlID0gdGhpcy52aXJ0dWFsQm9keS5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICBjb25zdCBoYXNZID0gZWxlLnNjcm9sbEhlaWdodCA+ICh0aGlzLmJvZHlIZWlnaHQgYXMgbnVtYmVyKTtcclxuICAgIGNvbnN0IGhhc1ggPSB0aGlzLnRhYmxlLnNjcm9sbENvbnRlbnRFbGUuY2xpZW50V2lkdGggPiBlbGUuY2xpZW50V2lkdGg7XHJcblxyXG4gICAgaWYgKCF0aGlzLnRhYmxlLmhhc1Njcm9sbFkgJiYgaGFzWSkge1xyXG4gICAgICB0aGlzLnRhYmxlLmhhc1Njcm9sbFkgPSB0cnVlO1xyXG4gICAgICB0aGlzLnRhYmxlLnNjcm9sbFlXaWR0aCA9IGVsZS5vZmZzZXRXaWR0aCAtIGVsZS5jbGllbnRXaWR0aDtcclxuICAgIH0gZWxzZSBpZiAodGhpcy50YWJsZS5oYXNTY3JvbGxZICYmICFoYXNZKSB7XHJcbiAgICAgIHRoaXMudGFibGUuaGFzU2Nyb2xsWSA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnRhYmxlLnNjcm9sbFlXaWR0aCA9IDA7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCF0aGlzLnRhYmxlLmhhc1Njcm9sbFggJiYgaGFzWCkge1xyXG4gICAgICB0aGlzLnRhYmxlLmhhc1Njcm9sbFggPSB0cnVlO1xyXG4gICAgICB0aGlzLnRhYmxlLnNjcm9sbFhIZWlnaHQgPSBlbGUub2Zmc2V0SGVpZ2h0IC0gZWxlLmNsaWVudEhlaWdodDtcclxuICAgIH0gZWxzZSBpZiAodGhpcy50YWJsZS5oYXNTY3JvbGxYICYmICFoYXNYKSB7XHJcbiAgICAgIHRoaXMudGFibGUuaGFzU2Nyb2xsWCA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnRhYmxlLnNjcm9sbFhIZWlnaHQgPSAwO1xyXG4gICAgICB0aGlzLnRhYmxlLnNjcm9sbFhXaWR0aCA9IG51bGw7XHJcbiAgICB9XHJcbiAgICBpZiAoaGFzWCkge1xyXG4gICAgICB0aGlzLnRhYmxlLnNjcm9sbFhXaWR0aCA9IGVsZS5vZmZzZXRXaWR0aCArIGVsZS5zY3JvbGxXaWR0aCAtIGVsZS5jbGllbnRXaWR0aDtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnRhYmxlLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBzZXRTdHlsZSgpIHtcclxuICAgIGxldCBoZWlnaHQgPSB0aGlzLnJvd0hlaWdodCA9PSAwID8gJycgOiB0aGlzLnJvd0hlaWdodDtcclxuICAgIGlmICh0aGlzLmNlbGxDb25maWcgJiYgdGhpcy5jZWxsQ29uZmlnLmNlbGxzKSB7XHJcbiAgICAgIGNvbnN0IHNwdCA9IHRoaXMuY2VsbENvbmZpZy5jZWxscy5tYXAoKHgpID0+IHtcclxuICAgICAgICBjb25zdCBncmlkQXJlYVNwdCA9IHguZ3JpZEFyZWE/LnNwbGl0KCcvJyk7XHJcbiAgICAgICAgcmV0dXJuIGdyaWRBcmVhU3B0ICYmIGdyaWRBcmVhU3B0Lmxlbmd0aCA+IDMgPyBOdW1iZXIoZ3JpZEFyZWFTcHRbMl0pIDogMjtcclxuICAgICAgfSk7XHJcbiAgICAgIGhlaWdodCA9ICgoTWF0aC5tYXgoLi4uc3B0KSAtIDEpICogKGhlaWdodCBhcyBudW1iZXIpKSBhcyBYTnVtYmVyO1xyXG4gICAgfVxyXG4gICAgdGhpcy50Ym9keVN0eWxlID0ge1xyXG4gICAgICBoZWlnaHQ6IGAke2hlaWdodH1weGBcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBnZXRJbmRleChpbmRleDogbnVtYmVyLCBpdGVtOiBYVGFibGVSb3cpIHtcclxuICAgIGlmICghaXNOYU4oaW5kZXgpKSByZXR1cm4gaW5kZXg7XHJcbiAgICByZXR1cm4gdGhpcy5kYXRhLmluZGV4T2YoaXRlbSk7XHJcbiAgfVxyXG5cclxuICBnZXRGbGV4KGNvbHVtbjogWFRhYmxlQ29sdW1uKSB7XHJcbiAgICBpZiAoY29sdW1uLndpZHRoKSByZXR1cm4gJ25vbmUnO1xyXG4gICAgaWYgKCFjb2x1bW4uZmxleCkgcmV0dXJuIDE7XHJcbiAgICByZXR1cm4gY29sdW1uLmZsZXg7XHJcbiAgfVxyXG5cclxuICBnZXRUaXRsZShyb3c6IFhUYWJsZVJvdywgY29sdW1uOiBYVGFibGVDZWxsIHwgYW55KSB7XHJcbiAgICBsZXQgaXQgPSByb3dbY29sdW1uLmlkIGFzIHN0cmluZ107XHJcbiAgICByZXR1cm4gaXQgPyBzdHJpcFRhZ3MoaXQpIDogJyc7XHJcbiAgfVxyXG5cclxuICBzZXRBZGFwdGlvbkhlaWdodCgpIHtcclxuICAgIGlmICgodGhpcy5hZGFwdGlvbkhlaWdodCBhcyBudW1iZXIpID4gMCkge1xyXG4gICAgICBjb25zdCBjYXB0aW9uSGVpZ2h0ID0gdGhpcy50YWJsZS50Y2FwdGlvbj8ubmF0aXZlRWxlbWVudC5jbGllbnRIZWlnaHQgfHwgMDtcclxuICAgICAgbGV0IGhlYWRIZWlnaHQgPSAwO1xyXG4gICAgICBmb3IgKGxldCB0aGVhZCBvZiB0aGlzLnRhYmxlLnRoZWFkKSB7XHJcbiAgICAgICAgaGVhZEhlaWdodCArPSB0aGVhZC5uYXRpdmVFbGVtZW50LmNsaWVudEhlaWdodDtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBmb290SGVpZ2h0ID0gdGhpcy50YWJsZS50Zm9vdD8ubmF0aXZlRWxlbWVudC5jbGllbnRIZWlnaHQgfHwgMDtcclxuICAgICAgY29uc29sZS5sb2coY2FwdGlvbkhlaWdodCwgZm9vdEhlaWdodCk7XHJcbiAgICAgIGNvbnN0IHBhZ2luYXRpb25IZWlnaHQgPSB0aGlzLnRhYmxlLnBhZ2luYXRpb24/LmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGllbnRIZWlnaHQgfHwgMDtcclxuICAgICAgdGhpcy5ib2R5SGVpZ2h0ID1cclxuICAgICAgICBOdW1iZXIodGhpcy5kb2NQZXJjZW50KSAqIHRoaXMuZG9jLmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQgLVxyXG4gICAgICAgIGNhcHRpb25IZWlnaHQgLVxyXG4gICAgICAgIGhlYWRIZWlnaHQgLVxyXG4gICAgICAgIGZvb3RIZWlnaHQgLVxyXG4gICAgICAgIHBhZ2luYXRpb25IZWlnaHQgLVxyXG4gICAgICAgIE51bWJlcih0aGlzLmFkYXB0aW9uSGVpZ2h0KTtcclxuICAgICAgaWYgKHRoaXMuYm9keUhlaWdodCA8IDApIHRoaXMuYm9keUhlaWdodCA9IDA7XHJcbiAgICAgIHRoaXMubWluQnVmZmVyUHggPSB0aGlzLmJvZHlIZWlnaHQ7XHJcbiAgICAgIHRoaXMubWF4QnVmZmVyUHggPSB0aGlzLmJvZHlIZWlnaHQgKiAxLjI7XHJcbiAgICAgIHRoaXMudmlydHVhbEJvZHlbJ19zY3JvbGxTdHJhdGVneSddWydfbWluQnVmZmVyUHgnXSA9IHRoaXMubWluQnVmZmVyUHg7XHJcbiAgICAgIHRoaXMudmlydHVhbEJvZHlbJ19zY3JvbGxTdHJhdGVneSddWydfbWF4QnVmZmVyUHgnXSA9IHRoaXMubWF4QnVmZmVyUHg7XHJcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJvd0NsaWNrKHJvdzogWFRhYmxlUm93KSB7XHJcbiAgICB0aGlzLmFjdGl2YXRlZFJvdyA9IHJvdztcclxuICAgIGlmICh0aGlzLmFsbG93U2VsZWN0Um93ICYmIHRoaXMudGFibGUucm93Q2hlY2tlZCkge1xyXG4gICAgICBpZiAoIUFycmF5LmZyb20oKGV2ZW50IGFzIGFueSkucGF0aCkuZmluZCgoeDogYW55KSA9PiB4LmxvY2FsTmFtZSA9PSAneC1jaGVja2JveCcpKSB7XHJcbiAgICAgICAgcm93W3RoaXMudGFibGUucm93Q2hlY2tlZC5pZF0gPSAhcm93W3RoaXMudGFibGUucm93Q2hlY2tlZC5pZF07XHJcbiAgICAgICAgdGhpcy50YWJsZS5ib2R5Q2hlY2tlZChyb3dbdGhpcy50YWJsZS5yb3dDaGVja2VkLmlkXSwgdGhpcy50YWJsZS5yb3dDaGVja2VkKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5hY3RpdmF0ZWRSb3dDaGFuZ2UuZW1pdChyb3cpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgb25FeHBhbmRlZChfZXZlbnQ6IEV2ZW50LCBub2RlOiBYVGFibGVSb3cpIHtcclxuICAgIG5vZGUuZXhwYW5kZWQgPSAhbm9kZS5leHBhbmRlZDtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHRyYWNrQnlJdGVtKF9pbmRleDogbnVtYmVyLCBpdGVtOiBYVGFibGVSb3cgfCBYVGFibGVDb2x1bW4pIHtcclxuICAgIHJldHVybiBpdGVtLmlkO1xyXG4gIH1cclxufVxyXG4iLCI8dGJvZHkgI3Rib2R5PlxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJjZWxsQ29uZmlnOyBlbHNlIHZpcnR1YWxTY3JvbGxUcGxcIj5cclxuICAgIDx0ciAqbmdGb3I9XCJsZXQgcm93IG9mIGRhdGE7IGluZGV4IGFzIGk7IHRyYWNrQnk6IHRyYWNrQnlJdGVtXCIgW3N0eWxlLmdyaWRUZW1wbGF0ZUNvbHVtbnNdPVwiY2VsbENvbmZpZy5ncmlkVGVtcGxhdGVDb2x1bW5zXCI+XHJcbiAgICAgIDx0ZFxyXG4gICAgICAgICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY2VsbENvbmZpZy5jZWxsczsgaW5kZXggYXMgalwiXHJcbiAgICAgICAgW3RpdGxlXT1cImdldFRpdGxlKHJvdywgY29sdW1uKVwiXHJcbiAgICAgICAgW2NsYXNzLngtdGFibGUtc3RpY2t5XT1cInRhYmxlLmdldFN0aWNreUxlZnQoY29sdW1uKSB8fCB0YWJsZS5nZXRTdGlja3lSaWdodChjb2x1bW4pXCJcclxuICAgICAgICBbY2xhc3MueC10YWJsZS1zdGlja3ktbGVmdF09XCJ0YWJsZS5nZXRTdGlja3lMZWZ0KGNvbHVtbilcIlxyXG4gICAgICAgIFtjbGFzcy54LXRhYmxlLXN0aWNreS1yaWdodF09XCJ0YWJsZS5nZXRTdGlja3lSaWdodChjb2x1bW4pXCJcclxuICAgICAgICBbY2xhc3MueC10YWJsZS1zdGlja3ktbGVmdC1sYXN0XT1cInRhYmxlLmdldFN0aWNreUxlZnRMYXN0KGNvbHVtbilcIlxyXG4gICAgICAgIFtjbGFzcy54LXRhYmxlLXN0aWNreS1yaWdodC1maXJzdF09XCJ0YWJsZS5nZXRTdGlja3lSaWdodEZpcnN0KGNvbHVtbilcIlxyXG4gICAgICAgIFtzdHlsZS5sZWZ0LnB4XT1cImNvbHVtbi5sZWZ0XCJcclxuICAgICAgICBbc3R5bGUucmlnaHQucHhdPVwiY29sdW1uLnJpZ2h0XCJcclxuICAgICAgICBbc3R5bGUuZ3JpZC1hcmVhXT1cImNvbHVtbi5ncmlkQXJlYVwiXHJcbiAgICAgID5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY2VsbFRwbDsgY29udGV4dDogeyBjb2x1bW46IGNvbHVtbiwgcm93OiByb3csIGk6IGkgfVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L3RkPlxyXG4gICAgPC90cj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuICA8eC1lbXB0eSAqbmdJZj1cImlzRW1wdHkgJiYgbGV2ZWwgPT09IDBcIj48L3gtZW1wdHk+XHJcbjwvdGJvZHk+XHJcblxyXG48bmctdGVtcGxhdGUgI3ZpcnR1YWxTY3JvbGxUcGw+XHJcbiAgPGNkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydFxyXG4gICAgI3ZpcnR1YWxCb2R5XHJcbiAgICAqbmdJZj1cInZpcnR1YWxTY3JvbGw7IGVsc2UgYm9keVRwbFwiXHJcbiAgICBbaXRlbVNpemVdPVwiZ2V0SXRlbVNpemVcIlxyXG4gICAgW21pbkJ1ZmZlclB4XT1cIm1pbkJ1ZmZlclB4XCJcclxuICAgIFttYXhCdWZmZXJQeF09XCJtYXhCdWZmZXJQeFwiXHJcbiAgICBbc3R5bGUuaGVpZ2h0LnB4XT1cImJvZHlIZWlnaHRcIlxyXG4gID5cclxuICAgIDx0clxyXG4gICAgICAqY2RrVmlydHVhbEZvcj1cImxldCByb3cgb2YgZGF0YTsgbGV0IGluZGV4ID0gaW5kZXg7IHRyYWNrQnk6IHRyYWNrQnlJdGVtXCJcclxuICAgICAgW2NsYXNzLngtdGFibGUtYWN0aXZhdGVkXT1cImFsbG93U2VsZWN0Um93ICYmIGFjdGl2YXRlZFJvdz8uaWQgPT09IHJvdy5pZFwiXHJcbiAgICAgIFtzdHlsZS5oZWlnaHQucHhdPVwiZ2V0Um93SGVpZ2h0XCJcclxuICAgICAgW3N0eWxlLm1pbi1oZWlnaHQucHhdPVwiZ2V0Um93SGVpZ2h0XCJcclxuICAgICAgKGNsaWNrKT1cInJvd0NsaWNrKHJvdylcIlxyXG4gICAgPlxyXG4gICAgICA8IS0tIHJvd0hlaWdodCDkuLogMCDnmoTml7blgJnvvIxpbmRleCDkuIvmoIfojrflj5bkuI3liLAgLS0+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJyb3dUcGw7IGNvbnRleHQ6IHsgcm93OiByb3csIGk6IGdldEluZGV4KGluZGV4LCByb3cpIH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDwvdHI+XHJcbiAgPC9jZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnQ+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2JvZHlUcGw+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcm93IG9mIGRhdGE7IGluZGV4IGFzIGk7IHRyYWNrQnk6IHRyYWNrQnlJdGVtXCI+XHJcbiAgICA8dHJcclxuICAgICAgW2NsYXNzLngtdGFibGUtYWN0aXZhdGVkXT1cImFsbG93U2VsZWN0Um93ICYmIGFjdGl2YXRlZFJvdz8uaWQgPT09IHJvdy5pZFwiXHJcbiAgICAgIFtzdHlsZS5oZWlnaHQucHhdPVwiZ2V0Um93SGVpZ2h0XCJcclxuICAgICAgW3N0eWxlLm1pbi1oZWlnaHQucHhdPVwiZ2V0Um93SGVpZ2h0XCJcclxuICAgICAgKGNsaWNrKT1cInJvd0NsaWNrKHJvdylcIlxyXG4gICAgPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicm93VHBsOyBjb250ZXh0OiB7IHJvdzogcm93LCBpOiBpIH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDwvdHI+XHJcbiAgICA8ZGl2IGNsYXNzPVwieC10YWJsZS1jaGlsZHJlblwiIFtjbGFzcy54LXRhYmxlLWV4cGFuZFRwbF09XCJleHBhbmRUcGxcIiAqbmdJZj1cInRhYmxlLnRyZWVUYWJsZSAmJiByb3cuY2hpbGRyZW4gJiYgcm93LmV4cGFuZGVkXCI+XHJcbiAgICAgIDx4LXRhYmxlLWJvZHlcclxuICAgICAgICBbZGF0YV09XCJyb3cuY2hpbGRyZW5cIlxyXG4gICAgICAgIFtjb2x1bW5zXT1cInRhYmxlLmNvbHVtbnNcIlxyXG4gICAgICAgIFtpdGVtU2l6ZV09XCJ0YWJsZS5pdGVtU2l6ZVwiXHJcbiAgICAgICAgW3Jvd0hlaWdodF09XCJ0YWJsZS5yb3dIZWlnaHRcIlxyXG4gICAgICAgIFtjb2x1bW5UcGxdPVwidGFibGUuYm9keUNvbHVtblRwbFwiXHJcbiAgICAgICAgW2FsbG93U2VsZWN0Um93XT1cInRhYmxlLmFsbG93U2VsZWN0Um93XCJcclxuICAgICAgICBbcm93Q2xhc3NdPVwidGFibGUucm93Q2xhc3NcIlxyXG4gICAgICAgIFtjZWxsQ29uZmlnXT1cInRhYmxlLmNlbGxDb25maWc/LnRib2R5XCJcclxuICAgICAgICBbKGFjdGl2YXRlZFJvdyldPVwidGFibGUuYWN0aXZhdGVkUm93XCJcclxuICAgICAgICBbZXhwYW5kZWRBbGxdPVwiZXhwYW5kZWRBbGxcIlxyXG4gICAgICAgIFtleHBhbmRUcGxdPVwiZXhwYW5kVHBsXCJcclxuICAgICAgICAoYWN0aXZhdGVkUm93Q2hhbmdlKT1cInRhYmxlLmFjdGl2YXRlZFJvd0NoYW5nZS5lbWl0KCRldmVudClcIlxyXG4gICAgICAgIFtsZXZlbF09XCJyb3cubGV2ZWwhICsgMVwiXHJcbiAgICAgICAgW3RhYmxlXT1cInRhYmxlXCJcclxuICAgICAgPjwveC10YWJsZS1ib2R5PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI3Jvd1RwbCBsZXQtcm93PVwicm93XCIgbGV0LWk9XCJpXCI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxldmVsID4gMCAmJiBleHBhbmRUcGxcIj5cclxuICAgIDxuZy1jb250YWluZXIgKnhPdXRsZXQ9XCJleHBhbmRUcGw7IGNvbnRleHQ6IHsgJHJvdzogcm93LCAkaW5kZXg6IGksICRsZXZlbDogbGV2ZWwgfVwiPjwvbmctY29udGFpbmVyPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJsZXZlbCA9PT0gMCB8fCAhZXhwYW5kVHBsXCI+XHJcbiAgICA8bmctY29udGFpbmVyICp4T3V0bGV0PVwicm93RGVmYXVsdDsgY29udGV4dDogeyByb3c6IHJvdywgaTogaSwgbGV2ZWw6IGxldmVsIH1cIj48L25nLWNvbnRhaW5lcj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjcm93RGVmYXVsdCBsZXQtcm93PVwicm93XCIgbGV0LWk9XCJpXCI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHVtbnM7IGluZGV4IGFzIGo7IHRyYWNrQnk6IHRyYWNrQnlJdGVtXCI+XHJcbiAgICA8dGRcclxuICAgICAgW3N0eWxlLndpZHRoLnB4XT1cImNvbHVtbi53aWR0aFwiXHJcbiAgICAgIFtzdHlsZS5mbGV4XT1cImdldEZsZXgoY29sdW1uKVwiXHJcbiAgICAgIFt0aXRsZV09XCJnZXRUaXRsZShyb3csIGNvbHVtbilcIlxyXG4gICAgICBbY2xhc3MueC10YWJsZS1zdGlja3ldPVwidGFibGUuZ2V0U3RpY2t5TGVmdChjb2x1bW4pIHx8IHRhYmxlLmdldFN0aWNreVJpZ2h0KGNvbHVtbilcIlxyXG4gICAgICBbY2xhc3MueC10YWJsZS1zdGlja3ktbGVmdF09XCJ0YWJsZS5nZXRTdGlja3lMZWZ0KGNvbHVtbilcIlxyXG4gICAgICBbY2xhc3MueC10YWJsZS1zdGlja3ktcmlnaHRdPVwidGFibGUuZ2V0U3RpY2t5UmlnaHQoY29sdW1uKVwiXHJcbiAgICAgIFtjbGFzcy54LXRhYmxlLXN0aWNreS1sZWZ0LWxhc3RdPVwidGFibGUuZ2V0U3RpY2t5TGVmdExhc3QoY29sdW1uKVwiXHJcbiAgICAgIFtjbGFzcy54LXRhYmxlLXN0aWNreS1yaWdodC1maXJzdF09XCJ0YWJsZS5nZXRTdGlja3lSaWdodEZpcnN0KGNvbHVtbilcIlxyXG4gICAgICBbc3R5bGUubGVmdC5weF09XCJjb2x1bW4ubGVmdFwiXHJcbiAgICAgIFtzdHlsZS5yaWdodC5weF09XCJjb2x1bW4ucmlnaHRcIlxyXG4gICAgICBbbmdDbGFzc109XCIhcm93Q2xhc3MgPyB7fSA6IHJvd0NsYXNzKHJvdywgaSlcIlxyXG4gICAgPlxyXG4gICAgICA8bmctdGVtcGxhdGUgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjZWxsVHBsOyBjb250ZXh0OiB7IGNvbHVtbjogY29sdW1uLCByb3c6IHJvdywgaTogaSB9XCI+PC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvdGQ+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2NlbGxUcGwgbGV0LWNvbHVtbj1cImNvbHVtblwiIGxldC1yb3c9XCJyb3dcIiBsZXQtaT1cImlcIj5cclxuICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJjb2x1bW4udHlwZVwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2NoZWNrYm94J1wiPlxyXG4gICAgICA8eC1jaGVja2JveFxyXG4gICAgICAgIFtkYXRhXT1cIlt7IGlkOiB0cnVlLCBsYWJlbDogJycgfV1cIlxyXG4gICAgICAgIFsobmdNb2RlbCldPVwicm93W2NvbHVtbi5pZF1cIlxyXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInRhYmxlLmJvZHlDaGVja2VkKCRldmVudCwgY29sdW1uKVwiXHJcbiAgICAgID48L3gtY2hlY2tib3g+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidpbmRleCdcIj5cclxuICAgICAgPGRpdj57eyB0YWJsZS5nZXRJbmRleChpKSB9fTwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaERlZmF1bHQ+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0YWJsZS5pc0V4cGFuZENvbHVtbihjb2x1bW4pXCI+XHJcbiAgICAgICAgPHgtYnV0dG9uXHJcbiAgICAgICAgICBbY2xhc3MuaXMtbGVhZl09XCIhcm93LmxlYWZcIlxyXG4gICAgICAgICAgW2NsYXNzLmlzLWV4cGFuZGVkXT1cInJvdy5leHBhbmRlZFwiXHJcbiAgICAgICAgICAoY2xpY2spPVwib25FeHBhbmRlZCgkZXZlbnQsIHJvdylcIlxyXG4gICAgICAgICAgaWNvbj1cImZ0by1jaGV2cm9uLXJpZ2h0XCJcclxuICAgICAgICAgIHNpemU9XCJtaW5pXCJcclxuICAgICAgICAgIG9ubHlJY29uXHJcbiAgICAgICAgICBjbGFzcz1cIngtdGFibGUtZXhwYW5kXCJcclxuICAgICAgICAgIFtzdHlsZS5tYXJnaW4tbGVmdC5yZW1dPVwicm93LmxldmVsIC0gMC41XCJcclxuICAgICAgICA+PC94LWJ1dHRvbj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKnhPdXRsZXQ9XCJjb2x1bW5UcGxbY29sdW1uLmlkXTsgY29udGV4dDogeyAkY29sdW1uOiBjb2x1bW4sICRyb3c6IHJvdywgJGluZGV4OiB0YWJsZS5nZXRJbmRleChpKSB9XCI+XHJcbiAgICAgICAgPGRpdiBbaW5uZXJIVE1MXT1cInJvd1tjb2x1bW4uaWRdXCIgW3N0eWxlLnRleHQtYWxpZ25dPVwiY29sdW1uLnRleHRBbGlnblwiPjwvZGl2PlxyXG4gICAgICAgIHt7IHRhYmxlLnJvd0V4cGFuZE5leHQgJiYgdGFibGUucm93RXhwYW5kTmV4dC5pZCA9PT0gY29sdW1uLmlkID8gJ3gtdGFibGUtYm9keS1sZXZlbC0nICsgcm93LmxldmVsIDogJycgfX1cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
|
|
@@ -2,6 +2,7 @@ import { Component, ViewEncapsulation, ChangeDetectionStrategy, ViewChild, Input
|
|
|
2
2
|
import { XTableFootPrefix, XTableFootProperty } from './table.property';
|
|
3
3
|
import { removeNgTag } from '@ng-nest/ui/core';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@ng-nest/ui/outlet";
|
|
5
6
|
export class XTableFootComponent extends XTableFootProperty {
|
|
6
7
|
constructor(
|
|
7
8
|
// @Optional() @Host() public table: XTableComponent,
|
|
@@ -11,6 +12,9 @@ export class XTableFootComponent extends XTableFootProperty {
|
|
|
11
12
|
this.elementRef = elementRef;
|
|
12
13
|
this.cdr = cdr;
|
|
13
14
|
}
|
|
15
|
+
get getRowHeight() {
|
|
16
|
+
return this.rowHeight == 0 ? '' : this.rowHeight;
|
|
17
|
+
}
|
|
14
18
|
ngOnInit() {
|
|
15
19
|
removeNgTag(this.elementRef.nativeElement);
|
|
16
20
|
}
|
|
@@ -19,14 +23,14 @@ export class XTableFootComponent extends XTableFootProperty {
|
|
|
19
23
|
}
|
|
20
24
|
}
|
|
21
25
|
/** @nocollapse */ XTableFootComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XTableFootComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
22
|
-
/** @nocollapse */ XTableFootComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: XTableFootComponent, selector: "x-table-foot", inputs: { table: "table" }, viewQueries: [{ propertyName: "tfoot", first: true, predicate: ["tfoot"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<tfoot
|
|
26
|
+
/** @nocollapse */ XTableFootComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: XTableFootComponent, selector: "x-table-foot", inputs: { table: "table" }, viewQueries: [{ propertyName: "tfoot", first: true, predicate: ["tfoot"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<tfoot #tfoot class=\"x-table-footer\" [style.height.px]=\"getRowHeight\" [style.min-height.px]=\"getRowHeight\">\r\n <ng-container *xOutlet=\"footer\">{{ footer }}</ng-container>\r\n</tfoot>\r\n", dependencies: [{ kind: "directive", type: i1.XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
23
27
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XTableFootComponent, decorators: [{
|
|
24
28
|
type: Component,
|
|
25
|
-
args: [{ selector: `${XTableFootPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<tfoot
|
|
29
|
+
args: [{ selector: `${XTableFootPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<tfoot #tfoot class=\"x-table-footer\" [style.height.px]=\"getRowHeight\" [style.min-height.px]=\"getRowHeight\">\r\n <ng-container *xOutlet=\"footer\">{{ footer }}</ng-container>\r\n</tfoot>\r\n" }]
|
|
26
30
|
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { tfoot: [{
|
|
27
31
|
type: ViewChild,
|
|
28
32
|
args: ['tfoot']
|
|
29
33
|
}], table: [{
|
|
30
34
|
type: Input
|
|
31
35
|
}] } });
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtZm9vdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS90YWJsZS90YWJsZS1mb290LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL3RhYmxlL3RhYmxlLWZvb3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxpQkFBaUIsRUFJakIsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxLQUFLLEVBQ04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDeEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7QUFRL0MsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGtCQUFrQjtJQU16RDtJQUNFLHFEQUFxRDtJQUM5QyxRQUFtQixFQUNuQixVQUFzQixFQUN0QixHQUFzQjtRQUU3QixLQUFLLEVBQUUsQ0FBQztRQUpELGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtJQUcvQixDQUFDO0lBVkQsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ25ELENBQUM7SUFVRCxRQUFRO1FBQ04sV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBTSxDQUFDO0lBQ2pDLENBQUM7O21JQXJCVSxtQkFBbUI7dUhBQW5CLG1CQUFtQix1TUNwQmhDLHNNQUdBOzJGRGlCYSxtQkFBbUI7a0JBTi9CLFNBQVM7K0JBQ0UsR0FBRyxnQkFBZ0IsRUFBRSxpQkFFaEIsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTTt5SkFHM0IsS0FBSztzQkFBeEIsU0FBUzt1QkFBQyxPQUFPO2dCQUNULEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIE9uSW5pdCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBSZW5kZXJlcjIsXHJcbiAgRWxlbWVudFJlZixcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBWaWV3Q2hpbGQsXHJcbiAgSW5wdXRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgWFRhYmxlRm9vdFByZWZpeCwgWFRhYmxlRm9vdFByb3BlcnR5IH0gZnJvbSAnLi90YWJsZS5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7IHJlbW92ZU5nVGFnIH0gZnJvbSAnQG5nLW5lc3QvdWkvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogYCR7WFRhYmxlRm9vdFByZWZpeH1gLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS1mb290LmNvbXBvbmVudC5odG1sJyxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBYVGFibGVGb290Q29tcG9uZW50IGV4dGVuZHMgWFRhYmxlRm9vdFByb3BlcnR5IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBAVmlld0NoaWxkKCd0Zm9vdCcpIHRmb290ITogRWxlbWVudFJlZjtcclxuICBASW5wdXQoKSB0YWJsZTogYW55O1xyXG4gIGdldCBnZXRSb3dIZWlnaHQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5yb3dIZWlnaHQgPT0gMCA/ICcnIDogdGhpcy5yb3dIZWlnaHQ7XHJcbiAgfVxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgLy8gQE9wdGlvbmFsKCkgQEhvc3QoKSBwdWJsaWMgdGFibGU6IFhUYWJsZUNvbXBvbmVudCxcclxuICAgIHB1YmxpYyByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICBwdWJsaWMgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxyXG4gICkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgcmVtb3ZlTmdUYWcodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy50YWJsZS50Zm9vdCA9IHRoaXMudGZvb3QhO1xyXG4gIH1cclxufVxyXG4iLCI8dGZvb3QgI3Rmb290IGNsYXNzPVwieC10YWJsZS1mb290ZXJcIiBbc3R5bGUuaGVpZ2h0LnB4XT1cImdldFJvd0hlaWdodFwiIFtzdHlsZS5taW4taGVpZ2h0LnB4XT1cImdldFJvd0hlaWdodFwiPlxyXG4gIDxuZy1jb250YWluZXIgKnhPdXRsZXQ9XCJmb290ZXJcIj57eyBmb290ZXIgfX08L25nLWNvbnRhaW5lcj5cclxuPC90Zm9vdD5cclxuIl19
|
|
@@ -34,12 +34,9 @@ export class XTableHeadComponent extends XTableHeadProperty {
|
|
|
34
34
|
this.setStyle();
|
|
35
35
|
}
|
|
36
36
|
ngAfterViewInit() {
|
|
37
|
-
this.table.thead
|
|
37
|
+
this.table.thead.push(this.thead);
|
|
38
38
|
this.table.headChange = () => this.cdr.detectChanges();
|
|
39
39
|
}
|
|
40
|
-
getSticky(column) {
|
|
41
|
-
return Number(column.left) >= 0;
|
|
42
|
-
}
|
|
43
40
|
getFlex(column) {
|
|
44
41
|
if (column.width)
|
|
45
42
|
return 'none';
|
|
@@ -47,6 +44,25 @@ export class XTableHeadComponent extends XTableHeadProperty {
|
|
|
47
44
|
return 1;
|
|
48
45
|
return column.flex;
|
|
49
46
|
}
|
|
47
|
+
getColumnRight(right) {
|
|
48
|
+
if (Number(right) >= 0) {
|
|
49
|
+
if (Number(this.scrollYWidth) >= 0) {
|
|
50
|
+
return Number(right) + Number(this.scrollYWidth);
|
|
51
|
+
}
|
|
52
|
+
return Number(right);
|
|
53
|
+
}
|
|
54
|
+
// return right;
|
|
55
|
+
return '';
|
|
56
|
+
}
|
|
57
|
+
getColumnWidth(column) {
|
|
58
|
+
// if (Number(column.right) === 0) {
|
|
59
|
+
// if (Number(this.scrollYWidth) >= 0) {
|
|
60
|
+
// return Number(column.width) + Number(this.scrollYWidth);
|
|
61
|
+
// }
|
|
62
|
+
// return column.width;
|
|
63
|
+
// }
|
|
64
|
+
return column.width;
|
|
65
|
+
}
|
|
50
66
|
setStyle() {
|
|
51
67
|
let height = this.rowHeight == 0 ? '' : this.rowHeight;
|
|
52
68
|
if (this.cellConfig && this.cellConfig.cells) {
|
|
@@ -101,14 +117,14 @@ export class XTableHeadComponent extends XTableHeadProperty {
|
|
|
101
117
|
}
|
|
102
118
|
}
|
|
103
119
|
/** @nocollapse */ XTableHeadComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XTableHeadComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.XConfigService }], target: i0.ɵɵFactoryTarget.Component });
|
|
104
|
-
/** @nocollapse */ XTableHeadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: XTableHeadComponent, selector: "x-table-head", inputs: { table: "table" }, viewQueries: [{ propertyName: "thead", first: true, predicate: ["thead"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<thead #thead [ngStyle]=\"theadStyle\">\r\n <ng-container *ngIf=\"cellConfig; else columnsTpl\">\r\n <tr [style.gridTemplateColumns]=\"cellConfig.gridTemplateColumns\" [style.min-height.px]=\"getRowHeight\">\r\n <th\r\n *ngFor=\"let column of cellConfig.cells\"\r\n [class.x-table-sticky]=\"
|
|
120
|
+
/** @nocollapse */ XTableHeadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: XTableHeadComponent, selector: "x-table-head", inputs: { table: "table" }, viewQueries: [{ propertyName: "thead", first: true, predicate: ["thead"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<thead #thead [ngStyle]=\"theadStyle\" [class.x-table-head-top]=\"position === 'top'\" [class.x-table-head-bottom]=\"position === 'bottom'\">\r\n <ng-container *ngIf=\"cellConfig; else columnsTpl\">\r\n <tr [style.gridTemplateColumns]=\"cellConfig.gridTemplateColumns\" [style.min-height.px]=\"getRowHeight\">\r\n <th\r\n *ngFor=\"let column of cellConfig.cells\"\r\n [class.x-table-sticky]=\"table.getStickyLeft(column) || table.getStickyRight(column)\"\r\n [class.x-table-sticky-left]=\"table.getStickyLeft(column)\"\r\n [class.x-table-sticky-right]=\"table.getStickyRight(column)\"\r\n [class.x-table-sticky-left-last]=\"table.getStickyLeftLast(column)\"\r\n [class.x-table-sticky-right-first]=\"table.getStickyRightFirst(column)\"\r\n [class.x-table-width-drag]=\"column.dragWidth\"\r\n [style.grid-area]=\"column.gridArea\"\r\n [style.left.px]=\"column.left\"\r\n [style.right.px]=\"column.right\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n [title]=\"column?.label\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"columnBaseTpl; context: { column: column }\"></ng-container>\r\n <div *ngIf=\"column.dragWidth\" class=\"x-table-drag-width\" xDrag (draging)=\"dragWidth($event, column)\"></div>\r\n </th>\r\n </tr>\r\n </ng-container>\r\n</thead>\r\n\r\n<ng-template #columnsTpl>\r\n <tr\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n [style.padding-right.px]=\"scrollYWidth\"\r\n [style.width.px]=\"scrollXWidth\"\r\n >\r\n <th\r\n *ngFor=\"let column of columns; trackBy: trackByItem\"\r\n [class.x-table-sticky]=\"table.getStickyLeft(column) || table.getStickyRight(column)\"\r\n [class.x-table-sticky-left]=\"table.getStickyLeft(column)\"\r\n [class.x-table-sticky-right]=\"table.getStickyRight(column)\"\r\n [class.x-table-sticky-left-last]=\"table.getStickyLeftLast(column)\"\r\n [class.x-table-sticky-right-first]=\"table.getStickyRightFirst(column)\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n [style.width.px]=\"getColumnWidth(column)\"\r\n [style.left.px]=\"column.left\"\r\n [style.right.px]=\"getColumnRight(column.right)\"\r\n [style.flex]=\"getFlex(column)\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"columnBaseTpl; context: { column: column }\"></ng-container>\r\n <div *ngIf=\"column.dragWidth\" class=\"x-table-drag-width\" xDrag (draging)=\"dragWidth($event, column)\"></div>\r\n </th>\r\n </tr>\r\n</ng-template>\r\n\r\n<ng-template #columnBaseTpl let-column=\"column\">\r\n <ng-container [ngSwitch]=\"column.type\">\r\n <ng-container *ngSwitchCase=\"'checkbox'\">\r\n <x-checkbox\r\n *ngIf=\"column.headChecked\"\r\n [data]=\"[{ id: true, label: column.label }]\"\r\n [(ngModel)]=\"table.checkedValues[column.id]\"\r\n (ngModelChange)=\"table.headChecked($event, column)\"\r\n [indeterminate]=\"table.checkedValues[column.id + table.indeterminate]\"\r\n ></x-checkbox>\r\n <ng-container *ngIf=\"!column.headChecked\">\r\n <ng-container *ngTemplateOutlet=\"cloumnDefaultTpl; context: { column: column }\"></ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'index'\">\r\n <a>{{ column.label }}</a>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <ng-container *ngTemplateOutlet=\"cloumnDefaultTpl; context: { column: column }\"></ng-container>\r\n </ng-container>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #cloumnDefaultTpl let-column=\"column\">\r\n <a [class.x-table-sort]=\"column.sort\" (click)=\"onSort(column)\" [style.text-align]=\"column.textAlign\">\r\n <ng-container *xOutlet=\"columnTpl[column.id]; context: { $column: column }\">\r\n {{ column.label }}\r\n </ng-container>\r\n <x-icon\r\n *ngIf=\"column.sort\"\r\n type=\"fto-bar-chart\"\r\n class=\"x-table-sort-icon\"\r\n [class.x-table-icon-up]=\"sortStr === column.id + ' desc'\"\r\n [class.x-table-icon-down]=\"sortStr === column.id + ' asc'\"\r\n ></x-icon>\r\n </a>\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }, { kind: "component", type: i5.XCheckboxComponent, selector: "x-checkbox" }, { kind: "component", type: i6.XIconComponent, selector: "x-icon" }, { kind: "directive", type: i7.XDragDirective, selector: "[xDrag]", outputs: ["draging"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
105
121
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XTableHeadComponent, decorators: [{
|
|
106
122
|
type: Component,
|
|
107
|
-
args: [{ selector: `${XTableHeadPrefix}`, encapsulation: ViewEncapsulation.None, template: "<thead #thead [ngStyle]=\"theadStyle\">\r\n <ng-container *ngIf=\"cellConfig; else columnsTpl\">\r\n <tr [style.gridTemplateColumns]=\"cellConfig.gridTemplateColumns\" [style.min-height.px]=\"getRowHeight\">\r\n <th\r\n *ngFor=\"let column of cellConfig.cells\"\r\n [class.x-table-sticky]=\"
|
|
123
|
+
args: [{ selector: `${XTableHeadPrefix}`, encapsulation: ViewEncapsulation.None, template: "<thead #thead [ngStyle]=\"theadStyle\" [class.x-table-head-top]=\"position === 'top'\" [class.x-table-head-bottom]=\"position === 'bottom'\">\r\n <ng-container *ngIf=\"cellConfig; else columnsTpl\">\r\n <tr [style.gridTemplateColumns]=\"cellConfig.gridTemplateColumns\" [style.min-height.px]=\"getRowHeight\">\r\n <th\r\n *ngFor=\"let column of cellConfig.cells\"\r\n [class.x-table-sticky]=\"table.getStickyLeft(column) || table.getStickyRight(column)\"\r\n [class.x-table-sticky-left]=\"table.getStickyLeft(column)\"\r\n [class.x-table-sticky-right]=\"table.getStickyRight(column)\"\r\n [class.x-table-sticky-left-last]=\"table.getStickyLeftLast(column)\"\r\n [class.x-table-sticky-right-first]=\"table.getStickyRightFirst(column)\"\r\n [class.x-table-width-drag]=\"column.dragWidth\"\r\n [style.grid-area]=\"column.gridArea\"\r\n [style.left.px]=\"column.left\"\r\n [style.right.px]=\"column.right\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n [title]=\"column?.label\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"columnBaseTpl; context: { column: column }\"></ng-container>\r\n <div *ngIf=\"column.dragWidth\" class=\"x-table-drag-width\" xDrag (draging)=\"dragWidth($event, column)\"></div>\r\n </th>\r\n </tr>\r\n </ng-container>\r\n</thead>\r\n\r\n<ng-template #columnsTpl>\r\n <tr\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n [style.padding-right.px]=\"scrollYWidth\"\r\n [style.width.px]=\"scrollXWidth\"\r\n >\r\n <th\r\n *ngFor=\"let column of columns; trackBy: trackByItem\"\r\n [class.x-table-sticky]=\"table.getStickyLeft(column) || table.getStickyRight(column)\"\r\n [class.x-table-sticky-left]=\"table.getStickyLeft(column)\"\r\n [class.x-table-sticky-right]=\"table.getStickyRight(column)\"\r\n [class.x-table-sticky-left-last]=\"table.getStickyLeftLast(column)\"\r\n [class.x-table-sticky-right-first]=\"table.getStickyRightFirst(column)\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n [style.width.px]=\"getColumnWidth(column)\"\r\n [style.left.px]=\"column.left\"\r\n [style.right.px]=\"getColumnRight(column.right)\"\r\n [style.flex]=\"getFlex(column)\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"columnBaseTpl; context: { column: column }\"></ng-container>\r\n <div *ngIf=\"column.dragWidth\" class=\"x-table-drag-width\" xDrag (draging)=\"dragWidth($event, column)\"></div>\r\n </th>\r\n </tr>\r\n</ng-template>\r\n\r\n<ng-template #columnBaseTpl let-column=\"column\">\r\n <ng-container [ngSwitch]=\"column.type\">\r\n <ng-container *ngSwitchCase=\"'checkbox'\">\r\n <x-checkbox\r\n *ngIf=\"column.headChecked\"\r\n [data]=\"[{ id: true, label: column.label }]\"\r\n [(ngModel)]=\"table.checkedValues[column.id]\"\r\n (ngModelChange)=\"table.headChecked($event, column)\"\r\n [indeterminate]=\"table.checkedValues[column.id + table.indeterminate]\"\r\n ></x-checkbox>\r\n <ng-container *ngIf=\"!column.headChecked\">\r\n <ng-container *ngTemplateOutlet=\"cloumnDefaultTpl; context: { column: column }\"></ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'index'\">\r\n <a>{{ column.label }}</a>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <ng-container *ngTemplateOutlet=\"cloumnDefaultTpl; context: { column: column }\"></ng-container>\r\n </ng-container>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #cloumnDefaultTpl let-column=\"column\">\r\n <a [class.x-table-sort]=\"column.sort\" (click)=\"onSort(column)\" [style.text-align]=\"column.textAlign\">\r\n <ng-container *xOutlet=\"columnTpl[column.id]; context: { $column: column }\">\r\n {{ column.label }}\r\n </ng-container>\r\n <x-icon\r\n *ngIf=\"column.sort\"\r\n type=\"fto-bar-chart\"\r\n class=\"x-table-sort-icon\"\r\n [class.x-table-icon-up]=\"sortStr === column.id + ' desc'\"\r\n [class.x-table-icon-down]=\"sortStr === column.id + ' asc'\"\r\n ></x-icon>\r\n </a>\r\n</ng-template>\r\n" }]
|
|
108
124
|
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.XConfigService }]; }, propDecorators: { thead: [{
|
|
109
125
|
type: ViewChild,
|
|
110
126
|
args: ['thead']
|
|
111
127
|
}], table: [{
|
|
112
128
|
type: Input
|
|
113
129
|
}] } });
|
|
114
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtaGVhZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS90YWJsZS90YWJsZS1oZWFkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL3RhYmxlL3RhYmxlLWhlYWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxpQkFBaUIsRUFLakIsU0FBUyxFQUNULEtBQUssRUFDTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQTRCLE1BQU0sa0JBQWtCLENBQUM7QUFDbEcsT0FBTyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQVMsU0FBUyxFQUEyQixNQUFNLGtCQUFrQixDQUFDOzs7Ozs7Ozs7QUFPcEcsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGtCQUFrQjtJQVN6RDtJQUNFLHFEQUFxRDtJQUM5QyxRQUFtQixFQUNuQixVQUFzQixFQUN0QixHQUFzQixFQUN0QixhQUE2QjtRQUVwQyxLQUFLLEVBQUUsQ0FBQztRQUxELGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixrQkFBYSxHQUFiLGFBQWEsQ0FBZ0I7UUFidEMsU0FBSSxHQUFZLEVBQUUsQ0FBQztRQUNuQixZQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2IsZUFBVSxHQUFnQyxFQUFFLENBQUM7SUFjN0MsQ0FBQztJQVhELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUNuRCxDQUFDO0lBV0QsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLE1BQU0sRUFBRSxPQUFP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a3dHQTZFQTsyRkQxRGEsbUJBQW1CO2tCQUwvQixTQUFTOytCQUNFLEdBQUcsZ0JBQWdCLEVBQUUsaUJBRWhCLGlCQUFpQixDQUFDLElBQUk7c0xBTWpCLEtBQUs7c0JBQXhCLFNBQVM7dUJBQUMsT0FBTztnQkFDVCxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBPbkluaXQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgUmVuZGVyZXIyLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBWaWV3Q2hpbGQsXHJcbiAgSW5wdXRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgWFRhYmxlSGVhZFByZWZpeCwgWFRhYmxlSGVhZFByb3BlcnR5LCBYVGFibGVDb2x1bW4sIFhUYWJsZUNlbGwgfSBmcm9tICcuL3RhYmxlLnByb3BlcnR5JztcclxuaW1wb3J0IHsgcmVtb3ZlTmdUYWcsIFhJc0VtcHR5LCBYU29ydCwgWElzQ2hhbmdlLCBYQ29uZmlnU2VydmljZSwgWE51bWJlciB9IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IGAke1hUYWJsZUhlYWRQcmVmaXh9YCxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGFibGUtaGVhZC5jb21wb25lbnQuaHRtbCcsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgWFRhYmxlSGVhZENvbXBvbmVudCBleHRlbmRzIFhUYWJsZUhlYWRQcm9wZXJ0eSBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgc29ydDogWFNvcnRbXSA9IFtdO1xyXG4gIHNvcnRTdHIgPSAnJztcclxuICB0aGVhZFN0eWxlOiB7IFtwcm9wZXJ0eTogc3RyaW5nXTogYW55IH0gPSB7fTtcclxuICBAVmlld0NoaWxkKCd0aGVhZCcpIHRoZWFkITogRWxlbWVudFJlZjtcclxuICBASW5wdXQoKSB0YWJsZTogYW55O1xyXG4gIGdldCBnZXRSb3dIZWlnaHQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5yb3dIZWlnaHQgPT0gMCA/ICcnIDogdGhpcy5yb3dIZWlnaHQ7XHJcbiAgfVxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgLy8gQE9wdGlvbmFsKCkgQEhvc3QoKSBwdWJsaWMgdGFibGU6IFhUYWJsZUNvbXBvbmVudCxcclxuICAgIHB1YmxpYyByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICBwdWJsaWMgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHB1YmxpYyBjb25maWdTZXJ2aWNlOiBYQ29uZmlnU2VydmljZVxyXG4gICkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKHNpbXBsZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgIGNvbnN0IHsgY29sdW1ucywgc2Nyb2xsWVdpZHRoLCBzY3JvbGxYV2lkdGgsIGNlbGxDb25maWcgfSA9IHNpbXBsZXM7XHJcbiAgICBYSXNDaGFuZ2UoY29sdW1ucywgc2Nyb2xsWVdpZHRoLCBzY3JvbGxYV2lkdGgsIGNlbGxDb25maWcpICYmIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgcmVtb3ZlTmdUYWcodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xyXG4gICAgdGhpcy5zZXRTdHlsZSgpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy50YWJsZS50aGVhZCA9IHRoaXMudGhlYWQ7XHJcbiAgICB0aGlzLnRhYmxlLmhlYWRDaGFuZ2UgPSAoKSA9PiB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBnZXRTdGlja3koY29sdW1uOiBYVGFibGVDb2x1bW4gfCBYVGFibGVDZWxsKSB7XHJcbiAgICByZXR1cm4gTnVtYmVyKGNvbHVtbi5sZWZ0KSA+PSAwO1xyXG4gIH1cclxuXHJcbiAgZ2V0RmxleChjb2x1bW46IFhUYWJsZUNvbHVtbikge1xyXG4gICAgaWYgKGNvbHVtbi53aWR0aCkgcmV0dXJuICdub25lJztcclxuICAgIGlmICghY29sdW1uLmZsZXgpIHJldHVybiAxO1xyXG4gICAgcmV0dXJuIGNvbHVtbi5mbGV4O1xyXG4gIH1cclxuXHJcbiAgc2V0U3R5bGUoKSB7XHJcbiAgICBsZXQgaGVpZ2h0ID0gdGhpcy5yb3dIZWlnaHQgPT0gMCA/ICcnIDogdGhpcy5yb3dIZWlnaHQ7XHJcbiAgICBpZiAodGhpcy5jZWxsQ29uZmlnICYmIHRoaXMuY2VsbENvbmZpZy5jZWxscykge1xyXG4gICAgICBjb25zdCBzcHQgPSB0aGlzLmNlbGxDb25maWcuY2VsbHMubWFwKCh4KSA9PiB7XHJcbiAgICAgICAgY29uc3QgZ3JpZEFyZWFTcHQgPSB4LmdyaWRBcmVhPy5zcGxpdCgnLycpO1xyXG4gICAgICAgIHJldHVybiBncmlkQXJlYVNwdCAmJiBncmlkQXJlYVNwdC5sZW5ndGggPiAzID8gTnVtYmVyKGdyaWRBcmVhU3B0WzJdKSA6IDI7XHJcbiAgICAgIH0pO1xyXG4gICAgICBoZWlnaHQgPSAoKE1hdGgubWF4KC4uLnNwdCkgLSAxKSAqIChoZWlnaHQgYXMgbnVtYmVyKSkgYXMgWE51bWJlcjtcclxuICAgIH1cclxuICAgIHRoaXMudGhlYWRTdHlsZSA9IHtcclxuICAgICAgaGVpZ2h0OiBgJHtoZWlnaHR9cHhgLFxyXG4gICAgICBbJ21pbi1oZWlnaHQnXTogYCR7dGhpcy5nZXRSb3dIZWlnaHR9cHhgXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgb25Tb3J0KGNvbHVtbjogWFRhYmxlQ29sdW1uKSB7XHJcbiAgICBpZiAoIWNvbHVtbi5zb3J0KSByZXR1cm47XHJcbiAgICBpZiAoWElzRW1wdHkodGhpcy5zb3J0KSkgdGhpcy5zb3J0ID0gW107XHJcbiAgICBsZXQgc29ydCA9IHRoaXMuc29ydD8uZmluZCgoeSkgPT4geS5maWVsZCA9PT0gY29sdW1uLmlkKTtcclxuICAgIGlmIChzb3J0KSB7XHJcbiAgICAgIGlmIChzb3J0LnZhbHVlID09PSAnYXNjJykge1xyXG4gICAgICAgIHRoaXMuc29ydCA9IFtdO1xyXG4gICAgICAgIHRoaXMuc29ydFN0ciA9ICcnO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHNvcnQudmFsdWUgPSAnYXNjJztcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgc29ydCA9IHsgZmllbGQ6IGNvbHVtbi5pZCwgdmFsdWU6ICdkZXNjJyB9O1xyXG4gICAgICB0aGlzLnNvcnQgPSBbc29ydF07XHJcbiAgICB9XHJcbiAgICBpZiAoIVhJc0VtcHR5KHRoaXMuc29ydCkpIHRoaXMuc29ydFN0ciA9IGAke3NvcnQuZmllbGR9ICR7c29ydC52YWx1ZX1gO1xyXG4gICAgdGhpcy50YWJsZS5jaGVja1NvcnQodGhpcy5zb3J0KTtcclxuICAgIHRoaXMudGFibGUuc29ydENoYW5nZS5lbWl0KHRoaXMuc29ydCk7XHJcbiAgICB0aGlzLnRhYmxlLnJlc2V0U2Nyb2xsKGZhbHNlLCB0cnVlKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIGRyYWdXaWR0aChkaXM6IHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfSwgY29sdW1uOiBYVGFibGVDb2x1bW4gfCBYVGFibGVDZWxsKSB7XHJcbiAgICBpZiAoY29sdW1uLndpZHRoKSB7XHJcbiAgICAgIChjb2x1bW4ud2lkdGggYXMgbnVtYmVyKSArPSBkaXMueDtcclxuICAgICAgaWYgKGNvbHVtbi53aWR0aCA8IDYwKSBjb2x1bW4ud2lkdGggPSA2MDtcclxuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB0aGlzLnRhYmxlLmJvZHlDaGFuZ2UoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHRyYWNrQnlJdGVtKF9pbmRleDogbnVtYmVyLCBpdGVtOiBYVGFibGVDb2x1bW4pIHtcclxuICAgIHJldHVybiBpdGVtLmlkO1xyXG4gIH1cclxufVxyXG4iLCI8dGhlYWQgI3RoZWFkIFtuZ1N0eWxlXT1cInRoZWFkU3R5bGVcIj5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiY2VsbENvbmZpZzsgZWxzZSBjb2x1bW5zVHBsXCI+XHJcbiAgICA8dHIgW3N0eWxlLmdyaWRUZW1wbGF0ZUNvbHVtbnNdPVwiY2VsbENvbmZpZy5ncmlkVGVtcGxhdGVDb2x1bW5zXCIgW3N0eWxlLm1pbi1oZWlnaHQucHhdPVwiZ2V0Um93SGVpZ2h0XCI+XHJcbiAgICAgIDx0aFxyXG4gICAgICAgICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY2VsbENvbmZpZy5jZWxsc1wiXHJcbiAgICAgICAgW2NsYXNzLngtdGFibGUtc3RpY2t5XT1cImdldFN0aWNreShjb2x1bW4pXCJcclxuICAgICAgICBbY2xhc3MueC10YWJsZS13aWR0aC1kcmFnXT1cImNvbHVtbi5kcmFnV2lkdGhcIlxyXG4gICAgICAgIFtzdHlsZS5ncmlkLWFyZWFdPVwiY29sdW1uLmdyaWRBcmVhXCJcclxuICAgICAgICBbc3R5bGUubGVmdC5weF09XCJjb2x1bW4ubGVmdFwiXHJcbiAgICAgICAgW3N0eWxlLm1pbi1oZWlnaHQucHhdPVwiZ2V0Um93SGVpZ2h0XCJcclxuICAgICAgICBbdGl0bGVdPVwiY29sdW1uPy5sYWJlbFwiXHJcbiAgICAgID5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29sdW1uQmFzZVRwbDsgY29udGV4dDogeyBjb2x1bW46IGNvbHVtbiB9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cImNvbHVtbi5kcmFnV2lkdGhcIiBjbGFzcz1cIngtdGFibGUtZHJhZy13aWR0aFwiIHhEcmFnIChkcmFnaW5nKT1cImRyYWdXaWR0aCgkZXZlbnQsIGNvbHVtbilcIj48L2Rpdj5cclxuICAgICAgPC90aD5cclxuICAgIDwvdHI+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvdGhlYWQ+XHJcblxyXG48bmctdGVtcGxhdGUgI2NvbHVtbnNUcGw+XHJcbiAgPHRyXHJcbiAgICBbc3R5bGUuaGVpZ2h0LnB4XT1cImdldFJvd0hlaWdodFwiXHJcbiAgICBbc3R5bGUubWluLWhlaWdodC5weF09XCJnZXRSb3dIZWlnaHRcIlxyXG4gICAgW3N0eWxlLnBhZGRpbmctcmlnaHQucHhdPVwic2Nyb2xsWVdpZHRoXCJcclxuICAgIFtzdHlsZS53aWR0aC5weF09XCJzY3JvbGxYV2lkdGhcIlxyXG4gID5cclxuICAgIDx0aFxyXG4gICAgICAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHVtbnM7IHRyYWNrQnk6IHRyYWNrQnlJdGVtXCJcclxuICAgICAgW2NsYXNzLngtdGFibGUtc3RpY2t5XT1cImdldFN0aWNreShjb2x1bW4pXCJcclxuICAgICAgW3N0eWxlLm1pbi1oZWlnaHQucHhdPVwiZ2V0Um93SGVpZ2h0XCJcclxuICAgICAgW3N0eWxlLndpZHRoLnB4XT1cImNvbHVtbi53aWR0aFwiXHJcbiAgICAgIFtzdHlsZS5sZWZ0LnB4XT1cImNvbHVtbi5sZWZ0XCJcclxuICAgICAgW3N0eWxlLmZsZXhdPVwiZ2V0RmxleChjb2x1bW4pXCJcclxuICAgID5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbHVtbkJhc2VUcGw7IGNvbnRleHQ6IHsgY29sdW1uOiBjb2x1bW4gfVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8ZGl2ICpuZ0lmPVwiY29sdW1uLmRyYWdXaWR0aFwiIGNsYXNzPVwieC10YWJsZS1kcmFnLXdpZHRoXCIgeERyYWcgKGRyYWdpbmcpPVwiZHJhZ1dpZHRoKCRldmVudCwgY29sdW1uKVwiPjwvZGl2PlxyXG4gICAgPC90aD5cclxuICA8L3RyPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNjb2x1bW5CYXNlVHBsIGxldC1jb2x1bW49XCJjb2x1bW5cIj5cclxuICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJjb2x1bW4udHlwZVwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2NoZWNrYm94J1wiPlxyXG4gICAgICA8eC1jaGVja2JveFxyXG4gICAgICAgICpuZ0lmPVwiY29sdW1uLmhlYWRDaGVja2VkXCJcclxuICAgICAgICBbZGF0YV09XCJbeyBpZDogdHJ1ZSwgbGFiZWw6IGNvbHVtbi5sYWJlbCB9XVwiXHJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJ0YWJsZS5jaGVja2VkVmFsdWVzW2NvbHVtbi5pZF1cIlxyXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInRhYmxlLmhlYWRDaGVja2VkKCRldmVudCwgY29sdW1uKVwiXHJcbiAgICAgICAgW2luZGV0ZXJtaW5hdGVdPVwidGFibGUuY2hlY2tlZFZhbHVlc1tjb2x1bW4uaWQgKyB0YWJsZS5pbmRldGVybWluYXRlXVwiXHJcbiAgICAgID48L3gtY2hlY2tib3g+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhY29sdW1uLmhlYWRDaGVja2VkXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNsb3VtbkRlZmF1bHRUcGw7IGNvbnRleHQ6IHsgY29sdW1uOiBjb2x1bW4gfVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2luZGV4J1wiPlxyXG4gICAgICA8YT57eyBjb2x1bW4ubGFiZWwgfX08L2E+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoRGVmYXVsdD5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNsb3VtbkRlZmF1bHRUcGw7IGNvbnRleHQ6IHsgY29sdW1uOiBjb2x1bW4gfVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2Nsb3VtbkRlZmF1bHRUcGwgbGV0LWNvbHVtbj1cImNvbHVtblwiPlxyXG4gIDxhIFtjbGFzcy54LXRhYmxlLXNvcnRdPVwiY29sdW1uLnNvcnRcIiAoY2xpY2spPVwib25Tb3J0KGNvbHVtbilcIiBbc3R5bGUudGV4dC1hbGlnbl09XCJjb2x1bW4udGV4dEFsaWduXCI+XHJcbiAgICA8bmctY29udGFpbmVyICp4T3V0bGV0PVwiY29sdW1uVHBsW2NvbHVtbi5pZF07IGNvbnRleHQ6IHsgJGNvbHVtbjogY29sdW1uIH1cIj5cclxuICAgICAge3sgY29sdW1uLmxhYmVsIH19XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDx4LWljb25cclxuICAgICAgKm5nSWY9XCJjb2x1bW4uc29ydFwiXHJcbiAgICAgIHR5cGU9XCJmdG8tYmFyLWNoYXJ0XCJcclxuICAgICAgY2xhc3M9XCJ4LXRhYmxlLXNvcnQtaWNvblwiXHJcbiAgICAgIFtjbGFzcy54LXRhYmxlLWljb24tdXBdPVwic29ydFN0ciA9PT0gY29sdW1uLmlkICsgJyBkZXNjJ1wiXHJcbiAgICAgIFtjbGFzcy54LXRhYmxlLWljb24tZG93bl09XCJzb3J0U3RyID09PSBjb2x1bW4uaWQgKyAnIGFzYydcIlxyXG4gICAgPjwveC1pY29uPlxyXG4gIDwvYT5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
|
|
130
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtaGVhZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS90YWJsZS90YWJsZS1oZWFkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL3RhYmxlL3RhYmxlLWhlYWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxpQkFBaUIsRUFLakIsU0FBUyxFQUNULEtBQUssRUFDTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQTRCLE1BQU0sa0JBQWtCLENBQUM7QUFDbEcsT0FBTyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQVMsU0FBUyxFQUEyQixNQUFNLGtCQUFrQixDQUFDOzs7Ozs7Ozs7QUFPcEcsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGtCQUFrQjtJQVN6RDtJQUNFLHFEQUFxRDtJQUM5QyxRQUFtQixFQUNuQixVQUFzQixFQUN0QixHQUFzQixFQUN0QixhQUE2QjtRQUVwQyxLQUFLLEVBQUUsQ0FBQztRQUxELGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixrQkFBYSxHQUFiLGFBQWEsQ0FBZ0I7UUFidEMsU0FBSSxHQUFZLEVBQUUsQ0FBQztRQUNuQixZQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2IsZUFBVSxHQUFnQyxFQUFFLENBQUM7SUFjN0MsQ0FBQztJQVhELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUNuRCxDQUFDO0lBV0QsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLE1BQU0sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFDcEUsU0FBUyxDQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLFVBQVUsQ0FBQyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDekYsQ0FBQztJQUVELFFBQVE7UUFDTixXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbEIsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDekQsQ0FBQztJQUVELE9BQU8sQ0FBQyxNQUFvQjtRQUMxQixJQUFJLE1BQU0sQ0FBQyxLQUFLO1lBQUUsT0FBTyxNQUFNLENBQUM7UUFDaEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJO1lBQUUsT0FBTyxDQUFDLENBQUM7UUFDM0IsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxjQUFjLENBQUMsS0FBYztRQUMzQixJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDdEIsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDbEMsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQzthQUNsRDtZQUNELE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3RCO1FBQ0QsZ0JBQWdCO1FBQ2hCLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELGNBQWMsQ0FBQyxNQUFvQjtRQUNqQyxvQ0FBb0M7UUFDcEMsMENBQTBDO1FBQzFDLCtEQUErRDtRQUMvRCxNQUFNO1FBQ04seUJBQXlCO1FBQ3pCLElBQUk7UUFDSixPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFDdEIsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ3ZELElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRTtZQUM1QyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDMUMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzNDLE9BQU8sV0FBVyxJQUFJLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM1RSxDQUFDLENBQUMsQ0FBQztZQUNILE1BQU0sR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFJLE1BQWlCLENBQVksQ0FBQztTQUNuRTtRQUNELElBQUksQ0FBQyxVQUFVLEdBQUc7WUFDaEIsTUFBTSxFQUFFLEdBQUcsTUFBTSxJQUFJO1lBQ3JCLENBQUMsWUFBWSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsWUFBWSxJQUFJO1NBQ3pDLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQW9CO1FBQ3pCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSTtZQUFFLE9BQU87UUFDekIsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztZQUFFLElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ3hDLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN6RCxJQUFJLElBQUksRUFBRTtZQUNSLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxLQUFLLEVBQUU7Z0JBQ3hCLElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO2dCQUNmLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO2FBQ25CO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO2FBQ3BCO1NBQ0Y7YUFBTTtZQUNMLElBQUksR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUMzQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDcEI7UUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7WUFBRSxJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDdkUsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELFNBQVMsQ0FBQyxHQUE2QixFQUFFLE1BQWlDO1FBQ3hFLElBQUksTUFBTSxDQUFDLEtBQUssRUFBRTtZQUNmLE1BQU0sQ0FBQyxLQUFnQixJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDbEMsSUFBSSxNQUFNLENBQUMsS0FBSyxHQUFHLEVBQUU7Z0JBQUUsTUFBTSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDekMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxNQUFjLEVBQUUsSUFBa0I7UUFDNUMsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDO0lBQ2pCLENBQUM7O21JQTdHVSxtQkFBbUI7dUhBQW5CLG1CQUFtQiw0TkNuQmhDLDhvSUF1RkE7MkZEcEVhLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSxHQUFHLGdCQUFnQixFQUFFLGlCQUVoQixpQkFBaUIsQ0FBQyxJQUFJO3NMQU1qQixLQUFLO3NCQUF4QixTQUFTO3VCQUFDLE9BQU87Z0JBQ1QsS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgT25Jbml0LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIFJlbmRlcmVyMixcclxuICBFbGVtZW50UmVmLFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgVmlld0NoaWxkLFxyXG4gIElucHV0XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFhUYWJsZUhlYWRQcmVmaXgsIFhUYWJsZUhlYWRQcm9wZXJ0eSwgWFRhYmxlQ29sdW1uLCBYVGFibGVDZWxsIH0gZnJvbSAnLi90YWJsZS5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7IHJlbW92ZU5nVGFnLCBYSXNFbXB0eSwgWFNvcnQsIFhJc0NoYW5nZSwgWENvbmZpZ1NlcnZpY2UsIFhOdW1iZXIgfSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBgJHtYVGFibGVIZWFkUHJlZml4fWAsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLWhlYWQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIFhUYWJsZUhlYWRDb21wb25lbnQgZXh0ZW5kcyBYVGFibGVIZWFkUHJvcGVydHkgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHNvcnQ6IFhTb3J0W10gPSBbXTtcclxuICBzb3J0U3RyID0gJyc7XHJcbiAgdGhlYWRTdHlsZTogeyBbcHJvcGVydHk6IHN0cmluZ106IGFueSB9ID0ge307XHJcbiAgQFZpZXdDaGlsZCgndGhlYWQnKSB0aGVhZCE6IEVsZW1lbnRSZWY7XHJcbiAgQElucHV0KCkgdGFibGU6IGFueTtcclxuICBnZXQgZ2V0Um93SGVpZ2h0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMucm93SGVpZ2h0ID09IDAgPyAnJyA6IHRoaXMucm93SGVpZ2h0O1xyXG4gIH1cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIC8vIEBPcHRpb25hbCgpIEBIb3N0KCkgcHVibGljIHRhYmxlOiBYVGFibGVDb21wb25lbnQsXHJcbiAgICBwdWJsaWMgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgcHVibGljIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwdWJsaWMgY29uZmlnU2VydmljZTogWENvbmZpZ1NlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhzaW1wbGVzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICBjb25zdCB7IGNvbHVtbnMsIHNjcm9sbFlXaWR0aCwgc2Nyb2xsWFdpZHRoLCBjZWxsQ29uZmlnIH0gPSBzaW1wbGVzO1xyXG4gICAgWElzQ2hhbmdlKGNvbHVtbnMsIHNjcm9sbFlXaWR0aCwgc2Nyb2xsWFdpZHRoLCBjZWxsQ29uZmlnKSAmJiB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHJlbW92ZU5nVGFnKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcclxuICAgIHRoaXMuc2V0U3R5bGUoKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMudGFibGUudGhlYWQucHVzaCh0aGlzLnRoZWFkKTtcclxuICAgIHRoaXMudGFibGUuaGVhZENoYW5nZSA9ICgpID0+IHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIGdldEZsZXgoY29sdW1uOiBYVGFibGVDb2x1bW4pIHtcclxuICAgIGlmIChjb2x1bW4ud2lkdGgpIHJldHVybiAnbm9uZSc7XHJcbiAgICBpZiAoIWNvbHVtbi5mbGV4KSByZXR1cm4gMTtcclxuICAgIHJldHVybiBjb2x1bW4uZmxleDtcclxuICB9XHJcblxyXG4gIGdldENvbHVtblJpZ2h0KHJpZ2h0PzogbnVtYmVyKSB7XHJcbiAgICBpZiAoTnVtYmVyKHJpZ2h0KSA+PSAwKSB7XHJcbiAgICAgIGlmIChOdW1iZXIodGhpcy5zY3JvbGxZV2lkdGgpID49IDApIHtcclxuICAgICAgICByZXR1cm4gTnVtYmVyKHJpZ2h0KSArIE51bWJlcih0aGlzLnNjcm9sbFlXaWR0aCk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIE51bWJlcihyaWdodCk7XHJcbiAgICB9XHJcbiAgICAvLyByZXR1cm4gcmlnaHQ7XHJcbiAgICByZXR1cm4gJyc7XHJcbiAgfVxyXG5cclxuICBnZXRDb2x1bW5XaWR0aChjb2x1bW46IFhUYWJsZUNvbHVtbikge1xyXG4gICAgLy8gaWYgKE51bWJlcihjb2x1bW4ucmlnaHQpID09PSAwKSB7XHJcbiAgICAvLyAgIGlmIChOdW1iZXIodGhpcy5zY3JvbGxZV2lkdGgpID49IDApIHtcclxuICAgIC8vICAgICByZXR1cm4gTnVtYmVyKGNvbHVtbi53aWR0aCkgKyBOdW1iZXIodGhpcy5zY3JvbGxZV2lkdGgpO1xyXG4gICAgLy8gICB9XHJcbiAgICAvLyAgIHJldHVybiBjb2x1bW4ud2lkdGg7XHJcbiAgICAvLyB9XHJcbiAgICByZXR1cm4gY29sdW1uLndpZHRoO1xyXG4gIH1cclxuXHJcbiAgc2V0U3R5bGUoKSB7XHJcbiAgICBsZXQgaGVpZ2h0ID0gdGhpcy5yb3dIZWlnaHQgPT0gMCA/ICcnIDogdGhpcy5yb3dIZWlnaHQ7XHJcbiAgICBpZiAodGhpcy5jZWxsQ29uZmlnICYmIHRoaXMuY2VsbENvbmZpZy5jZWxscykge1xyXG4gICAgICBjb25zdCBzcHQgPSB0aGlzLmNlbGxDb25maWcuY2VsbHMubWFwKCh4KSA9PiB7XHJcbiAgICAgICAgY29uc3QgZ3JpZEFyZWFTcHQgPSB4LmdyaWRBcmVhPy5zcGxpdCgnLycpO1xyXG4gICAgICAgIHJldHVybiBncmlkQXJlYVNwdCAmJiBncmlkQXJlYVNwdC5sZW5ndGggPiAzID8gTnVtYmVyKGdyaWRBcmVhU3B0WzJdKSA6IDI7XHJcbiAgICAgIH0pO1xyXG4gICAgICBoZWlnaHQgPSAoKE1hdGgubWF4KC4uLnNwdCkgLSAxKSAqIChoZWlnaHQgYXMgbnVtYmVyKSkgYXMgWE51bWJlcjtcclxuICAgIH1cclxuICAgIHRoaXMudGhlYWRTdHlsZSA9IHtcclxuICAgICAgaGVpZ2h0OiBgJHtoZWlnaHR9cHhgLFxyXG4gICAgICBbJ21pbi1oZWlnaHQnXTogYCR7dGhpcy5nZXRSb3dIZWlnaHR9cHhgXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgb25Tb3J0KGNvbHVtbjogWFRhYmxlQ29sdW1uKSB7XHJcbiAgICBpZiAoIWNvbHVtbi5zb3J0KSByZXR1cm47XHJcbiAgICBpZiAoWElzRW1wdHkodGhpcy5zb3J0KSkgdGhpcy5zb3J0ID0gW107XHJcbiAgICBsZXQgc29ydCA9IHRoaXMuc29ydD8uZmluZCgoeSkgPT4geS5maWVsZCA9PT0gY29sdW1uLmlkKTtcclxuICAgIGlmIChzb3J0KSB7XHJcbiAgICAgIGlmIChzb3J0LnZhbHVlID09PSAnYXNjJykge1xyXG4gICAgICAgIHRoaXMuc29ydCA9IFtdO1xyXG4gICAgICAgIHRoaXMuc29ydFN0ciA9ICcnO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHNvcnQudmFsdWUgPSAnYXNjJztcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgc29ydCA9IHsgZmllbGQ6IGNvbHVtbi5pZCwgdmFsdWU6ICdkZXNjJyB9O1xyXG4gICAgICB0aGlzLnNvcnQgPSBbc29ydF07XHJcbiAgICB9XHJcbiAgICBpZiAoIVhJc0VtcHR5KHRoaXMuc29ydCkpIHRoaXMuc29ydFN0ciA9IGAke3NvcnQuZmllbGR9ICR7c29ydC52YWx1ZX1gO1xyXG4gICAgdGhpcy50YWJsZS5jaGVja1NvcnQodGhpcy5zb3J0KTtcclxuICAgIHRoaXMudGFibGUuc29ydENoYW5nZS5lbWl0KHRoaXMuc29ydCk7XHJcbiAgICB0aGlzLnRhYmxlLnJlc2V0U2Nyb2xsKGZhbHNlLCB0cnVlKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIGRyYWdXaWR0aChkaXM6IHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfSwgY29sdW1uOiBYVGFibGVDb2x1bW4gfCBYVGFibGVDZWxsKSB7XHJcbiAgICBpZiAoY29sdW1uLndpZHRoKSB7XHJcbiAgICAgIChjb2x1bW4ud2lkdGggYXMgbnVtYmVyKSArPSBkaXMueDtcclxuICAgICAgaWYgKGNvbHVtbi53aWR0aCA8IDYwKSBjb2x1bW4ud2lkdGggPSA2MDtcclxuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB0aGlzLnRhYmxlLmJvZHlDaGFuZ2UoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHRyYWNrQnlJdGVtKF9pbmRleDogbnVtYmVyLCBpdGVtOiBYVGFibGVDb2x1bW4pIHtcclxuICAgIHJldHVybiBpdGVtLmlkO1xyXG4gIH1cclxufVxyXG4iLCI8dGhlYWQgI3RoZWFkIFtuZ1N0eWxlXT1cInRoZWFkU3R5bGVcIiBbY2xhc3MueC10YWJsZS1oZWFkLXRvcF09XCJwb3NpdGlvbiA9PT0gJ3RvcCdcIiBbY2xhc3MueC10YWJsZS1oZWFkLWJvdHRvbV09XCJwb3NpdGlvbiA9PT0gJ2JvdHRvbSdcIj5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiY2VsbENvbmZpZzsgZWxzZSBjb2x1bW5zVHBsXCI+XHJcbiAgICA8dHIgW3N0eWxlLmdyaWRUZW1wbGF0ZUNvbHVtbnNdPVwiY2VsbENvbmZpZy5ncmlkVGVtcGxhdGVDb2x1bW5zXCIgW3N0eWxlLm1pbi1oZWlnaHQucHhdPVwiZ2V0Um93SGVpZ2h0XCI+XHJcbiAgICAgIDx0aFxyXG4gICAgICAgICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY2VsbENvbmZpZy5jZWxsc1wiXHJcbiAgICAgICAgW2NsYXNzLngtdGFibGUtc3RpY2t5XT1cInRhYmxlLmdldFN0aWNreUxlZnQoY29sdW1uKSB8fCB0YWJsZS5nZXRTdGlja3lSaWdodChjb2x1bW4pXCJcclxuICAgICAgICBbY2xhc3MueC10YWJsZS1zdGlja3ktbGVmdF09XCJ0YWJsZS5nZXRTdGlja3lMZWZ0KGNvbHVtbilcIlxyXG4gICAgICAgIFtjbGFzcy54LXRhYmxlLXN0aWNreS1yaWdodF09XCJ0YWJsZS5nZXRTdGlja3lSaWdodChjb2x1bW4pXCJcclxuICAgICAgICBbY2xhc3MueC10YWJsZS1zdGlja3ktbGVmdC1sYXN0XT1cInRhYmxlLmdldFN0aWNreUxlZnRMYXN0KGNvbHVtbilcIlxyXG4gICAgICAgIFtjbGFzcy54LXRhYmxlLXN0aWNreS1yaWdodC1maXJzdF09XCJ0YWJsZS5nZXRTdGlja3lSaWdodEZpcnN0KGNvbHVtbilcIlxyXG4gICAgICAgIFtjbGFzcy54LXRhYmxlLXdpZHRoLWRyYWddPVwiY29sdW1uLmRyYWdXaWR0aFwiXHJcbiAgICAgICAgW3N0eWxlLmdyaWQtYXJlYV09XCJjb2x1bW4uZ3JpZEFyZWFcIlxyXG4gICAgICAgIFtzdHlsZS5sZWZ0LnB4XT1cImNvbHVtbi5sZWZ0XCJcclxuICAgICAgICBbc3R5bGUucmlnaHQucHhdPVwiY29sdW1uLnJpZ2h0XCJcclxuICAgICAgICBbc3R5bGUubWluLWhlaWdodC5weF09XCJnZXRSb3dIZWlnaHRcIlxyXG4gICAgICAgIFt0aXRsZV09XCJjb2x1bW4/LmxhYmVsXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb2x1bW5CYXNlVHBsOyBjb250ZXh0OiB7IGNvbHVtbjogY29sdW1uIH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiY29sdW1uLmRyYWdXaWR0aFwiIGNsYXNzPVwieC10YWJsZS1kcmFnLXdpZHRoXCIgeERyYWcgKGRyYWdpbmcpPVwiZHJhZ1dpZHRoKCRldmVudCwgY29sdW1uKVwiPjwvZGl2PlxyXG4gICAgICA8L3RoPlxyXG4gICAgPC90cj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC90aGVhZD5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjY29sdW1uc1RwbD5cclxuICA8dHJcclxuICAgIFtzdHlsZS5oZWlnaHQucHhdPVwiZ2V0Um93SGVpZ2h0XCJcclxuICAgIFtzdHlsZS5taW4taGVpZ2h0LnB4XT1cImdldFJvd0hlaWdodFwiXHJcbiAgICBbc3R5bGUucGFkZGluZy1yaWdodC5weF09XCJzY3JvbGxZV2lkdGhcIlxyXG4gICAgW3N0eWxlLndpZHRoLnB4XT1cInNjcm9sbFhXaWR0aFwiXHJcbiAgPlxyXG4gICAgPHRoXHJcbiAgICAgICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29sdW1uczsgdHJhY2tCeTogdHJhY2tCeUl0ZW1cIlxyXG4gICAgICBbY2xhc3MueC10YWJsZS1zdGlja3ldPVwidGFibGUuZ2V0U3RpY2t5TGVmdChjb2x1bW4pIHx8IHRhYmxlLmdldFN0aWNreVJpZ2h0KGNvbHVtbilcIlxyXG4gICAgICBbY2xhc3MueC10YWJsZS1zdGlja3ktbGVmdF09XCJ0YWJsZS5nZXRTdGlja3lMZWZ0KGNvbHVtbilcIlxyXG4gICAgICBbY2xhc3MueC10YWJsZS1zdGlja3ktcmlnaHRdPVwidGFibGUuZ2V0U3RpY2t5UmlnaHQoY29sdW1uKVwiXHJcbiAgICAgIFtjbGFzcy54LXRhYmxlLXN0aWNreS1sZWZ0LWxhc3RdPVwidGFibGUuZ2V0U3RpY2t5TGVmdExhc3QoY29sdW1uKVwiXHJcbiAgICAgIFtjbGFzcy54LXRhYmxlLXN0aWNreS1yaWdodC1maXJzdF09XCJ0YWJsZS5nZXRTdGlja3lSaWdodEZpcnN0KGNvbHVtbilcIlxyXG4gICAgICBbc3R5bGUubWluLWhlaWdodC5weF09XCJnZXRSb3dIZWlnaHRcIlxyXG4gICAgICBbc3R5bGUud2lkdGgucHhdPVwiZ2V0Q29sdW1uV2lkdGgoY29sdW1uKVwiXHJcbiAgICAgIFtzdHlsZS5sZWZ0LnB4XT1cImNvbHVtbi5sZWZ0XCJcclxuICAgICAgW3N0eWxlLnJpZ2h0LnB4XT1cImdldENvbHVtblJpZ2h0KGNvbHVtbi5yaWdodClcIlxyXG4gICAgICBbc3R5bGUuZmxleF09XCJnZXRGbGV4KGNvbHVtbilcIlxyXG4gICAgPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29sdW1uQmFzZVRwbDsgY29udGV4dDogeyBjb2x1bW46IGNvbHVtbiB9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJjb2x1bW4uZHJhZ1dpZHRoXCIgY2xhc3M9XCJ4LXRhYmxlLWRyYWctd2lkdGhcIiB4RHJhZyAoZHJhZ2luZyk9XCJkcmFnV2lkdGgoJGV2ZW50LCBjb2x1bW4pXCI+PC9kaXY+XHJcbiAgICA8L3RoPlxyXG4gIDwvdHI+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2NvbHVtbkJhc2VUcGwgbGV0LWNvbHVtbj1cImNvbHVtblwiPlxyXG4gIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImNvbHVtbi50eXBlXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInY2hlY2tib3gnXCI+XHJcbiAgICAgIDx4LWNoZWNrYm94XHJcbiAgICAgICAgKm5nSWY9XCJjb2x1bW4uaGVhZENoZWNrZWRcIlxyXG4gICAgICAgIFtkYXRhXT1cIlt7IGlkOiB0cnVlLCBsYWJlbDogY29sdW1uLmxhYmVsIH1dXCJcclxuICAgICAgICBbKG5nTW9kZWwpXT1cInRhYmxlLmNoZWNrZWRWYWx1ZXNbY29sdW1uLmlkXVwiXHJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidGFibGUuaGVhZENoZWNrZWQoJGV2ZW50LCBjb2x1bW4pXCJcclxuICAgICAgICBbaW5kZXRlcm1pbmF0ZV09XCJ0YWJsZS5jaGVja2VkVmFsdWVzW2NvbHVtbi5pZCArIHRhYmxlLmluZGV0ZXJtaW5hdGVdXCJcclxuICAgICAgPjwveC1jaGVja2JveD5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFjb2x1bW4uaGVhZENoZWNrZWRcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY2xvdW1uRGVmYXVsdFRwbDsgY29udGV4dDogeyBjb2x1bW46IGNvbHVtbiB9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInaW5kZXgnXCI+XHJcbiAgICAgIDxhPnt7IGNvbHVtbi5sYWJlbCB9fTwvYT5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY2xvdW1uRGVmYXVsdFRwbDsgY29udGV4dDogeyBjb2x1bW46IGNvbHVtbiB9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjY2xvdW1uRGVmYXVsdFRwbCBsZXQtY29sdW1uPVwiY29sdW1uXCI+XHJcbiAgPGEgW2NsYXNzLngtdGFibGUtc29ydF09XCJjb2x1bW4uc29ydFwiIChjbGljayk9XCJvblNvcnQoY29sdW1uKVwiIFtzdHlsZS50ZXh0LWFsaWduXT1cImNvbHVtbi50ZXh0QWxpZ25cIj5cclxuICAgIDxuZy1jb250YWluZXIgKnhPdXRsZXQ9XCJjb2x1bW5UcGxbY29sdW1uLmlkXTsgY29udGV4dDogeyAkY29sdW1uOiBjb2x1bW4gfVwiPlxyXG4gICAgICB7eyBjb2x1bW4ubGFiZWwgfX1cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPHgtaWNvblxyXG4gICAgICAqbmdJZj1cImNvbHVtbi5zb3J0XCJcclxuICAgICAgdHlwZT1cImZ0by1iYXItY2hhcnRcIlxyXG4gICAgICBjbGFzcz1cIngtdGFibGUtc29ydC1pY29uXCJcclxuICAgICAgW2NsYXNzLngtdGFibGUtaWNvbi11cF09XCJzb3J0U3RyID09PSBjb2x1bW4uaWQgKyAnIGRlc2MnXCJcclxuICAgICAgW2NsYXNzLngtdGFibGUtaWNvbi1kb3duXT1cInNvcnRTdHIgPT09IGNvbHVtbi5pZCArICcgYXNjJ1wiXHJcbiAgICA+PC94LWljb24+XHJcbiAgPC9hPlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
|