@one-paragon/angular-utilities 1.2.11 → 1.2.13
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/action-state/ngrx.d.ts +1 -1
- package/esm2022/table-builder/classes/TableBuilderDataSource.mjs +18 -27
- package/esm2022/table-builder/classes/table-builder.mjs +2 -2
- package/esm2022/table-builder/classes/table-store.mjs +9 -13
- package/esm2022/table-builder/components/column-builder/column-helpers.mjs +1 -3
- package/esm2022/table-builder/components/gen-col-displayer/gen-col-displayer.component.mjs +11 -17
- package/esm2022/table-builder/components/generic-table/generic-table.component.mjs +21 -20
- package/esm2022/table-builder/components/generic-table/paginator.component.mjs +58 -56
- package/esm2022/table-builder/components/table-container/table-container.mjs +55 -51
- package/esm2022/table-builder/components/table-container/virtual-scroll-container.mjs +57 -34
- package/esm2022/table-builder/directives/tb-filter.directive.mjs +10 -19
- package/esm2022/table-builder/services/export-to-csv.service.mjs +6 -16
- package/fesm2022/one-paragon-angular-utilities.mjs +239 -242
- package/fesm2022/one-paragon-angular-utilities.mjs.map +1 -1
- package/package.json +1 -1
- package/table-builder/classes/TableBuilderDataSource.d.ts +4 -4
- package/table-builder/classes/table-store.d.ts +5 -3
- package/table-builder/components/gen-col-displayer/gen-col-displayer.component.d.ts +5 -3
- package/table-builder/components/generic-table/generic-table.component.d.ts +3 -1
- package/table-builder/components/generic-table/paginator.component.d.ts +20 -19
- package/table-builder/components/table-container/table-container-imports.d.ts +2 -2
- package/table-builder/components/table-container/table-container.d.ts +10 -11
- package/table-builder/components/table-container/virtual-scroll-container.d.ts +15 -2
- package/table-builder/directives/table-wrapper.directive.d.ts +1 -1
- package/table-builder/directives/tb-filter.directive.d.ts +2 -3
- package/table-builder/services/export-to-csv.service.d.ts +1 -6
|
@@ -1,43 +1,60 @@
|
|
|
1
|
-
import { Component, ChangeDetectionStrategy,
|
|
1
|
+
import { Component, ChangeDetectionStrategy, computed, inject, viewChild, input, effect, untracked } from '@angular/core';
|
|
2
2
|
import { MatPaginator, MatPaginatorModule } from '@angular/material/paginator';
|
|
3
|
-
import {
|
|
4
|
-
import { delay, distinctUntilChanged, distinctUntilKeyChanged, map } from 'rxjs/operators';
|
|
3
|
+
import { switchMap } from 'rxjs/operators';
|
|
5
4
|
import { TableStore } from '../../classes/table-store';
|
|
6
|
-
import {
|
|
5
|
+
import { NgClass } from '@angular/common';
|
|
7
6
|
import { MatButtonModule } from '@angular/material/button';
|
|
8
7
|
import { DataStore } from '../../classes/data-store';
|
|
8
|
+
import { toObservable, toSignal } from '@angular/core/rxjs-interop';
|
|
9
|
+
import { notNull } from '../../../rxjs';
|
|
9
10
|
import * as i0 from "@angular/core";
|
|
10
11
|
import * as i1 from "@angular/material/paginator";
|
|
11
12
|
import * as i2 from "@angular/material/button";
|
|
12
13
|
export class PaginatorComponent {
|
|
13
14
|
state = inject(TableStore);
|
|
14
15
|
data = inject(DataStore);
|
|
15
|
-
paginator;
|
|
16
|
-
|
|
17
|
-
$
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
16
|
+
$paginator = viewChild(MatPaginator);
|
|
17
|
+
$tableElRef = input.required({ alias: 'tableElRef' });
|
|
18
|
+
$dataLength = this.data.selectSignal(d => d.dataLen);
|
|
19
|
+
pageEvent$ = toObservable(this.$paginator).pipe(notNull(), switchMap(p => p.page));
|
|
20
|
+
$pageEvent = toSignal(this.pageEvent$);
|
|
21
|
+
$pageIndexChangeEvent = computed(() => this.$pageEvent()?.pageIndex);
|
|
22
|
+
$pageSizeChangeEvent = computed(() => this.$pageEvent()?.pageSize);
|
|
23
|
+
$currentPageData = computed(() => {
|
|
24
|
+
const pageEvent = this.$pageEvent();
|
|
25
|
+
if (!pageEvent)
|
|
26
|
+
return;
|
|
27
|
+
const pageDetails = mapPaginationEventToCurrentPageDetails(pageEvent);
|
|
28
|
+
const dataLength = this.$dataLength();
|
|
29
|
+
return ({ ...pageDetails, total: dataLength });
|
|
30
|
+
});
|
|
31
|
+
onPageIndexEffect = effect(() => {
|
|
32
|
+
const index = this.$pageIndexChangeEvent();
|
|
33
|
+
untracked(() => this.state.updateState({ currentPage: index }));
|
|
34
|
+
});
|
|
35
|
+
onPageSizeEffect = effect(() => {
|
|
36
|
+
const size = this.$pageSizeChangeEvent();
|
|
37
|
+
if (!size)
|
|
38
|
+
return;
|
|
39
|
+
untracked(() => this.state.setPageSize(size));
|
|
40
|
+
});
|
|
41
|
+
onMetaPageSizeEffect = effect(() => {
|
|
42
|
+
const paginator = this.$paginator();
|
|
43
|
+
if (!paginator)
|
|
44
|
+
return;
|
|
45
|
+
const metaPageSize = this.state.$pageSize();
|
|
46
|
+
untracked(() => paginator._changePageSize(metaPageSize));
|
|
47
|
+
});
|
|
48
|
+
onDataLengthEffect = effect(() => {
|
|
49
|
+
const paginator = this.$paginator();
|
|
50
|
+
const dataLength = this.$dataLength();
|
|
51
|
+
untracked(() => {
|
|
52
|
+
if (paginator) {
|
|
53
|
+
paginator.length = dataLength;
|
|
54
|
+
}
|
|
25
55
|
});
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
}
|
|
29
|
-
ngAfterViewInit() {
|
|
30
|
-
this.currentPageData$ = merge(this.paginator.page.pipe(map(mapPaginationEventToCurrentPageDetails)), this.data$.pipe(distinctUntilKeyChanged("length"), delayToAllowForProperUpdate, map(updateCurrentPageDetailsOnDataLengthChange(this.paginator))));
|
|
31
|
-
}
|
|
32
|
-
paginatorChange() {
|
|
33
|
-
if (!this.ourPageEvent) {
|
|
34
|
-
setTimeout(() => this.tableElRef?.nativeElement?.scrollIntoView(), 0);
|
|
35
|
-
}
|
|
36
|
-
else {
|
|
37
|
-
this.ourPageEvent = false;
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
ourPageEvent = false;
|
|
56
|
+
});
|
|
57
|
+
$collapseFooter = computed(() => this.state.selectSignal(state => state.persistedTableSettings.collapseFooter)() || this.$showAll());
|
|
41
58
|
$showAllOption = this.state.selectSignal(s => s.notPersistedTableSettings?.includeAllInPaginatorOptions);
|
|
42
59
|
$showAll = this.state.selectSignal(s => s.showAll);
|
|
43
60
|
updatePaginator = this.state.updater(state => ({ ...state, showAll: !state.showAll }));
|
|
@@ -45,54 +62,39 @@ export class PaginatorComponent {
|
|
|
45
62
|
this.updatePaginator();
|
|
46
63
|
}
|
|
47
64
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: PaginatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
48
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.2", type: PaginatorComponent, isStandalone: true, selector: "tb-paginator", inputs: {
|
|
65
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.2", type: PaginatorComponent, isStandalone: true, selector: "tb-paginator", inputs: { $tableElRef: { classPropertyName: "$tableElRef", publicName: "tableElRef", isSignal: true, isRequired: true, transformFunction: null } }, viewQueries: [{ propertyName: "$paginator", first: true, predicate: MatPaginator, descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
49
66
|
<div class="paginator-row">
|
|
50
|
-
@if(currentPageData
|
|
67
|
+
@if($currentPageData(); as pageData){
|
|
51
68
|
<div [class]="{ 'hide' : ! $collapseFooter(), 'page-amounts':true}">
|
|
52
|
-
@if(!$showAll()){{{pageData.currentStart}} - {{pageData.currentEnd}} of }{{pageData.total}}
|
|
69
|
+
@if(!$showAll()){ {{pageData.currentStart}} - {{pageData.currentEnd}} of }{{pageData.total}}
|
|
53
70
|
</div>
|
|
54
71
|
}
|
|
55
|
-
<mat-paginator [pageSizeOptions]="[5, 10, 20, 50, 100, 500]" showFirstLastButtons
|
|
72
|
+
<mat-paginator [pageSizeOptions]="[5, 10, 20, 50, 100, 500]" showFirstLastButtons
|
|
56
73
|
[class]="{ 'hide' : $collapseFooter() }">
|
|
57
74
|
</mat-paginator>
|
|
58
75
|
@if ($showAllOption()) {<button mat-button (click)="updatePaginator()"><span [style.text-decoration]="$showAll() ? 'line-through' : ''" >All</span></button>}
|
|
59
76
|
</div>
|
|
60
|
-
`, isInline: true, styles: [":host{--mat-paginator-container-size: initial}.select-column{min-width:var(--tb-min-select-column-width, 42px)}.index-column{min-width:var(--tb-min-index-column-width, 42px)}.mat-mdc-row:nth-child(odd){background-color:var(--tb-odd-row-background-color, #cdeefe)}.page-amounts{color:#0000008a;font-family:Roboto,Helvetica Neue,sans-serif;font-size:12px;margin-right:.2rem}:host::ng-deep .table-drag-list.cdk-drop-list-dragging .drag-header:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}:host::ng-deep .mdc-data-table__cell,:host::ng-deep .mdc-data-table__header-cell{padding:var(--tb-cell-padding, 0 0 0 .2rem);line-height:var(--tb-cell-line-height, normal)}::ng-deep .op-date-time-input{line-height:3rem;font-size:.9rem;font-family:Roboto,Helvetica Neue,sans-serif;padding-left:.2rem;width:12rem}.small-footer mat-footer-row{min-height:1rem;height:1rem}\n", ".collapse-icon{font-size:16px;height:16px;color:#3f51b5;align-self:flex-start}.collapse-icon:hover{cursor:pointer}.hide{display:none}.paginator-row{display:flex;align-items:center}\n"], dependencies: [{ kind: "
|
|
77
|
+
`, isInline: true, styles: [":host{--mat-paginator-container-size: initial}.select-column{min-width:var(--tb-min-select-column-width, 42px)}.index-column{min-width:var(--tb-min-index-column-width, 42px)}.mat-mdc-row:nth-child(odd){background-color:var(--tb-odd-row-background-color, #cdeefe)}.page-amounts{color:#0000008a;font-family:Roboto,Helvetica Neue,sans-serif;font-size:12px;margin-right:.2rem}:host::ng-deep .table-drag-list.cdk-drop-list-dragging .drag-header:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}:host::ng-deep .mdc-data-table__cell,:host::ng-deep .mdc-data-table__header-cell{padding:var(--tb-cell-padding, 0 0 0 .2rem);line-height:var(--tb-cell-line-height, normal)}::ng-deep .op-date-time-input{line-height:3rem;font-size:.9rem;font-family:Roboto,Helvetica Neue,sans-serif;padding-left:.2rem;width:12rem}.small-footer mat-footer-row{min-height:1rem;height:1rem}mat-table{overflow-x:auto}\n", ".collapse-icon{font-size:16px;height:16px;color:#3f51b5;align-self:flex-start}.collapse-icon:hover{cursor:pointer}.hide{display:none}.paginator-row{display:flex;align-items:center}\n"], dependencies: [{ kind: "ngmodule", type: MatPaginatorModule }, { kind: "component", type: i1.MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
61
78
|
}
|
|
62
79
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: PaginatorComponent, decorators: [{
|
|
63
80
|
type: Component,
|
|
64
|
-
args: [{ selector: 'tb-paginator', standalone: true, imports: [
|
|
81
|
+
args: [{ selector: 'tb-paginator', standalone: true, imports: [MatPaginatorModule, NgClass, MatButtonModule], template: `
|
|
65
82
|
<div class="paginator-row">
|
|
66
|
-
@if(currentPageData
|
|
83
|
+
@if($currentPageData(); as pageData){
|
|
67
84
|
<div [class]="{ 'hide' : ! $collapseFooter(), 'page-amounts':true}">
|
|
68
|
-
@if(!$showAll()){{{pageData.currentStart}} - {{pageData.currentEnd}} of }{{pageData.total}}
|
|
85
|
+
@if(!$showAll()){ {{pageData.currentStart}} - {{pageData.currentEnd}} of }{{pageData.total}}
|
|
69
86
|
</div>
|
|
70
87
|
}
|
|
71
|
-
<mat-paginator [pageSizeOptions]="[5, 10, 20, 50, 100, 500]" showFirstLastButtons
|
|
88
|
+
<mat-paginator [pageSizeOptions]="[5, 10, 20, 50, 100, 500]" showFirstLastButtons
|
|
72
89
|
[class]="{ 'hide' : $collapseFooter() }">
|
|
73
90
|
</mat-paginator>
|
|
74
91
|
@if ($showAllOption()) {<button mat-button (click)="updatePaginator()"><span [style.text-decoration]="$showAll() ? 'line-through' : ''" >All</span></button>}
|
|
75
92
|
</div>
|
|
76
|
-
`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{--mat-paginator-container-size: initial}.select-column{min-width:var(--tb-min-select-column-width, 42px)}.index-column{min-width:var(--tb-min-index-column-width, 42px)}.mat-mdc-row:nth-child(odd){background-color:var(--tb-odd-row-background-color, #cdeefe)}.page-amounts{color:#0000008a;font-family:Roboto,Helvetica Neue,sans-serif;font-size:12px;margin-right:.2rem}:host::ng-deep .table-drag-list.cdk-drop-list-dragging .drag-header:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}:host::ng-deep .mdc-data-table__cell,:host::ng-deep .mdc-data-table__header-cell{padding:var(--tb-cell-padding, 0 0 0 .2rem);line-height:var(--tb-cell-line-height, normal)}::ng-deep .op-date-time-input{line-height:3rem;font-size:.9rem;font-family:Roboto,Helvetica Neue,sans-serif;padding-left:.2rem;width:12rem}.small-footer mat-footer-row{min-height:1rem;height:1rem}\n", ".collapse-icon{font-size:16px;height:16px;color:#3f51b5;align-self:flex-start}.collapse-icon:hover{cursor:pointer}.hide{display:none}.paginator-row{display:flex;align-items:center}\n"] }]
|
|
77
|
-
}]
|
|
78
|
-
type: ViewChild,
|
|
79
|
-
args: [MatPaginator, { static: true }]
|
|
80
|
-
}], data$: [{
|
|
81
|
-
type: Input
|
|
82
|
-
}], tableElRef: [{
|
|
83
|
-
type: Input,
|
|
84
|
-
args: [{ required: true }]
|
|
85
|
-
}] } });
|
|
93
|
+
`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{--mat-paginator-container-size: initial}.select-column{min-width:var(--tb-min-select-column-width, 42px)}.index-column{min-width:var(--tb-min-index-column-width, 42px)}.mat-mdc-row:nth-child(odd){background-color:var(--tb-odd-row-background-color, #cdeefe)}.page-amounts{color:#0000008a;font-family:Roboto,Helvetica Neue,sans-serif;font-size:12px;margin-right:.2rem}:host::ng-deep .table-drag-list.cdk-drop-list-dragging .drag-header:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}:host::ng-deep .mdc-data-table__cell,:host::ng-deep .mdc-data-table__header-cell{padding:var(--tb-cell-padding, 0 0 0 .2rem);line-height:var(--tb-cell-line-height, normal)}::ng-deep .op-date-time-input{line-height:3rem;font-size:.9rem;font-family:Roboto,Helvetica Neue,sans-serif;padding-left:.2rem;width:12rem}.small-footer mat-footer-row{min-height:1rem;height:1rem}mat-table{overflow-x:auto}\n", ".collapse-icon{font-size:16px;height:16px;color:#3f51b5;align-self:flex-start}.collapse-icon:hover{cursor:pointer}.hide{display:none}.paginator-row{display:flex;align-items:center}\n"] }]
|
|
94
|
+
}] });
|
|
86
95
|
const mapPaginationEventToCurrentPageDetails = (pageData) => ({
|
|
87
96
|
currentStart: (pageData.pageIndex * pageData.pageSize) + 1,
|
|
88
97
|
currentEnd: Math.min(pageData.length, ((pageData.pageIndex + 1) * pageData.pageSize)),
|
|
89
98
|
total: pageData.length
|
|
90
99
|
});
|
|
91
|
-
const updateCurrentPageDetailsOnDataLengthChange = (paginator) => () => ({ currentStart: (paginator.pageIndex * paginator.pageSize) + 1,
|
|
92
|
-
currentEnd: Math.min(paginator.length, ((paginator.pageIndex + 1) * paginator.pageSize)),
|
|
93
|
-
total: paginator.length });
|
|
94
|
-
const delayToAllowForProperUpdate = delay(0, asyncScheduler);
|
|
95
|
-
const metaDataPageSizeChange = (state) => state.state$.pipe(map(state => state.userDefined.pageSize || state.pageSize), distinctUntilChanged());
|
|
96
|
-
const setPaginatorPageSize = (paginator) => (pageSize) => paginator._changePageSize(pageSize);
|
|
97
|
-
const onPaginatorPageSizeChange = (paginator) => paginator.page.pipe(map(e => e.pageSize), distinctUntilChanged());
|
|
98
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdXRpbGl0aWVzL3NyYy90YWJsZS1idWlsZGVyL2NvbXBvbmVudHMvZ2VuZXJpYy10YWJsZS9wYWdpbmF0b3IuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBcUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxSSxPQUFPLEVBQUUsWUFBWSxFQUFFLGtCQUFrQixFQUFhLE1BQU0sNkJBQTZCLENBQUM7QUFDMUYsT0FBTyxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDekQsT0FBTyxFQUFFLEtBQUssRUFBRSxvQkFBb0IsRUFBRSx1QkFBdUIsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7O0FBc0JyRCxNQUFNLE9BQU8sa0JBQWtCO0lBQ3JCLEtBQUssR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDM0IsSUFBSSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNVLFNBQVMsQ0FBZ0I7SUFDcEUsZ0JBQWdCLENBQWtDO0lBQ2xELGVBQWUsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FB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RyxDQUFDLEtBQWdCLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsUUFBUSxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBRSxvQkFBb0IsRUFBRSxDQUFDLENBQUM7QUFFM0osTUFBTSxvQkFBb0IsR0FBRyxDQUFDLFNBQXNCLEVBQUUsRUFBRSxDQUFDLENBQUMsUUFBZ0IsRUFBRSxFQUFFLENBQzVFLFNBQVMsQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUM7QUFFdEMsTUFBTSx5QkFBeUIsR0FBRyxDQUFDLFNBQXVCLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUUsRUFBRSxvQkFBb0IsRUFBRSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBWaWV3Q2hpbGQsIElucHV0LCBBZnRlclZpZXdJbml0LCBPbkluaXQsIEVsZW1lbnRSZWYsIGNvbXB1dGVkLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0UGFnaW5hdG9yLCBNYXRQYWdpbmF0b3JNb2R1bGUsIFBhZ2VFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XHJcbmltcG9ydCB7IGFzeW5jU2NoZWR1bGVyLCBtZXJnZSwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWxheSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGRpc3RpbmN0VW50aWxLZXlDaGFuZ2VkLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFRhYmxlU3RvcmUgfSBmcm9tICcuLi8uLi9jbGFzc2VzL3RhYmxlLXN0b3JlJztcclxuaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuaW1wb3J0IHsgRGF0YVN0b3JlIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9kYXRhLXN0b3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndGItcGFnaW5hdG9yJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtBc3luY1BpcGUsIE1hdFBhZ2luYXRvck1vZHVsZSwgTmdDbGFzcywgTWF0QnV0dG9uTW9kdWxlXSxcclxuICB0ZW1wbGF0ZTogYFxyXG4gIDxkaXYgY2xhc3M9XCJwYWdpbmF0b3Itcm93XCI+XHJcbiAgICBAaWYoY3VycmVudFBhZ2VEYXRhJCB8IGFzeW5jOyBhcyBwYWdlRGF0YSl7XHJcbiAgICAgIDxkaXYgW2NsYXNzXT1cInsgJ2hpZGUnIDogISAkY29sbGFwc2VGb290ZXIoKSwgJ3BhZ2UtYW1vdW50cyc6dHJ1ZX1cIj5cclxuICAgICAgICBAaWYoISRzaG93QWxsKCkpe3t7cGFnZURhdGEuY3VycmVudFN0YXJ0fX0gLSB7e3BhZ2VEYXRhLmN1cnJlbnRFbmR9fSBvZiB9e3twYWdlRGF0YS50b3RhbH19XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgfVxyXG4gICAgPG1hdC1wYWdpbmF0b3IgW3BhZ2VTaXplT3B0aW9uc109XCJbNSwgMTAsIDIwLCA1MCwgMTAwLCA1MDBdXCIgc2hvd0ZpcnN0TGFzdEJ1dHRvbnMgKHBhZ2UpPVwicGFnaW5hdG9yQ2hhbmdlKClcIlxyXG4gICAgICBbY2xhc3NdPVwieyAnaGlkZScgOiAkY29sbGFwc2VGb290ZXIoKSB9XCI+XHJcbiAgICA8L21hdC1wYWdpbmF0b3I+XHJcbiAgICBAaWYgKCRzaG93QWxsT3B0aW9uKCkpIHs8YnV0dG9uIG1hdC1idXR0b24gKGNsaWNrKT1cInVwZGF0ZVBhZ2luYXRvcigpXCI+PHNwYW4gW3N0eWxlLnRleHQtZGVjb3JhdGlvbl09XCIkc2hvd0FsbCgpID8gJ2xpbmUtdGhyb3VnaCcgOiAnJ1wiID5BbGw8L3NwYW4+PC9idXR0b24+fVxyXG4gIDwvZGl2PlxyXG4gIGAsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZ2VuZXJpYy10YWJsZS5jb21wb25lbnQuc2NzcycsJy4uLy4uL3N0eWxlcy9jb2xsYXBzZXIuc3R5bGVzLnNjc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIFBhZ2luYXRvckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdHtcclxuICBwcml2YXRlIHN0YXRlID0gaW5qZWN0KFRhYmxlU3RvcmUpO1xyXG4gIHByaXZhdGUgZGF0YSA9IGluamVjdChEYXRhU3RvcmUpO1xyXG4gIEBWaWV3Q2hpbGQoTWF0UGFnaW5hdG9yLCB7IHN0YXRpYzogdHJ1ZSB9KSBwYWdpbmF0b3IhOiBNYXRQYWdpbmF0b3I7XHJcbiAgY3VycmVudFBhZ2VEYXRhJCE6IE9ic2VydmFibGU8Q3VycmVudFBhZ2VEZXRhaWxzPjtcclxuICAkY29sbGFwc2VGb290ZXIgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnN0YXRlLnNlbGVjdFNpZ25hbChzdGF0ZSA9PiBzdGF0ZS5wZXJzaXN0ZWRUYWJsZVNldHRpbmdzLmNvbGxhcHNlRm9vdGVyKSgpIHx8IHRoaXMuJHNob3dBbGwoKSk7XHJcbiAgQElucHV0KCkgZGF0YSQhOiBPYnNlcnZhYmxlPGFueVtdPjtcclxuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSB0YWJsZUVsUmVmISA6IEVsZW1lbnRSZWZcclxuICBuZ09uSW5pdCgpe1xyXG4gICAgdGhpcy5vdXJQYWdlRXZlbnQgPSB0cnVlO1xyXG4gICAgdGhpcy5zdGF0ZS5vbihtZXRhRGF0YVBhZ2VTaXplQ2hhbmdlKHRoaXMuc3RhdGUpLCBzZXRQYWdpbmF0b3JQYWdlU2l6ZSh0aGlzLnBhZ2luYXRvcikpO1xyXG4gICAgdGhpcy5zdGF0ZS5vbih0aGlzLnBhZ2luYXRvci5wYWdlLCAocGFnZUV2ZW50KSA9PiB7XHJcbiAgICAgIHRoaXMuc3RhdGUudXBkYXRlU3RhdGUoe2N1cnJlbnRQYWdlOiBwYWdlRXZlbnQucGFnZUluZGV4fSApO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnN0YXRlLnNldFBhZ2VTaXplKG9uUGFnaW5hdG9yUGFnZVNpemVDaGFuZ2UodGhpcy5wYWdpbmF0b3IpKVxyXG5cclxuICAgIHRoaXMuc3RhdGUub24oIHRoaXMuZGF0YS5zZWxlY3QoIHMgPT4gcy5kYXRhTGVuKSwgKGxlbikgPT4gdGhpcy5wYWdpbmF0b3IubGVuZ3RoID0gbGVuKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuY3VycmVudFBhZ2VEYXRhJCA9IG1lcmdlKFxyXG4gICAgICB0aGlzLnBhZ2luYXRvci5wYWdlLnBpcGUobWFwKG1hcFBhZ2luYXRpb25FdmVudFRvQ3VycmVudFBhZ2VEZXRhaWxzKSksXHJcbiAgICAgIHRoaXMuZGF0YSQucGlwZShcclxuICAgICAgICBkaXN0aW5jdFVudGlsS2V5Q2hhbmdlZChcImxlbmd0aFwiKSxcclxuICAgICAgICBkZWxheVRvQWxsb3dGb3JQcm9wZXJVcGRhdGUsXHJcbiAgICAgICAgbWFwKHVwZGF0ZUN1cnJlbnRQYWdlRGV0YWlsc09uRGF0YUxlbmd0aENoYW5nZSh0aGlzLnBhZ2luYXRvcikpKSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwYWdpbmF0b3JDaGFuZ2UoKSA6IHZvaWQge1xyXG4gICAgaWYoIXRoaXMub3VyUGFnZUV2ZW50KXtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnRhYmxlRWxSZWY/Lm5hdGl2ZUVsZW1lbnQ/LnNjcm9sbEludG9WaWV3KCksIDApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5vdXJQYWdlRXZlbnQgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcbiAgb3VyUGFnZUV2ZW50ID0gZmFsc2U7XHJcblxyXG4gICRzaG93QWxsT3B0aW9uID0gdGhpcy5zdGF0ZS5zZWxlY3RTaWduYWwocyA9PiBzLm5vdFBlcnNpc3RlZFRhYmxlU2V0dGluZ3M/LmluY2x1ZGVBbGxJblBhZ2luYXRvck9wdGlvbnMpO1xyXG4gICRzaG93QWxsID0gdGhpcy5zdGF0ZS5zZWxlY3RTaWduYWwocyA9PiBzLnNob3dBbGwpO1xyXG4gIHVwZGF0ZVBhZ2luYXRvciA9IHRoaXMuc3RhdGUudXBkYXRlcihzdGF0ZSA9PiAoeyAuLi5zdGF0ZSwgc2hvd0FsbDogIXN0YXRlLnNob3dBbGwgfSkpO1xyXG4gIHNob3dBbGwoKXtcclxuICAgIHRoaXMudXBkYXRlUGFnaW5hdG9yKCk7XHJcbiAgfVxyXG59XHJcblxyXG5jb25zdCBtYXBQYWdpbmF0aW9uRXZlbnRUb0N1cnJlbnRQYWdlRGV0YWlscyA9IChwYWdlRGF0YTogUGFnZUV2ZW50KTpDdXJyZW50UGFnZURldGFpbHMgPT4gKHtcclxuICBjdXJyZW50U3RhcnQgOiAocGFnZURhdGEucGFnZUluZGV4ICogcGFnZURhdGEucGFnZVNpemUpICsgMSxcclxuICBjdXJyZW50RW5kIDogTWF0aC5taW4ocGFnZURhdGEubGVuZ3RoICwgKChwYWdlRGF0YS5wYWdlSW5kZXggKyAxKSAqIHBhZ2VEYXRhLnBhZ2VTaXplKSksXHJcbiAgdG90YWwgOiBwYWdlRGF0YS5sZW5ndGhcclxufSk7XHJcblxyXG5jb25zdCB1cGRhdGVDdXJyZW50UGFnZURldGFpbHNPbkRhdGFMZW5ndGhDaGFuZ2UgPSAocGFnaW5hdG9yOk1hdFBhZ2luYXRvcikgPT4gKCkgPT4gKHtjdXJyZW50U3RhcnQ6KHBhZ2luYXRvci5wYWdlSW5kZXggKiBwYWdpbmF0b3IucGFnZVNpemUpICsgMSxcclxuICBjdXJyZW50RW5kOiBNYXRoLm1pbihwYWdpbmF0b3IubGVuZ3RoICwgKChwYWdpbmF0b3IucGFnZUluZGV4ICsgMSkgKiBwYWdpbmF0b3IucGFnZVNpemUpKSxcclxuICB0b3RhbDpwYWdpbmF0b3IubGVuZ3RofSlcclxuXHJcbmNvbnN0IGRlbGF5VG9BbGxvd0ZvclByb3BlclVwZGF0ZSA9IGRlbGF5PGFueVtdPigwLGFzeW5jU2NoZWR1bGVyKTtcclxuXHJcbmludGVyZmFjZSBDdXJyZW50UGFnZURldGFpbHMge1xyXG4gIGN1cnJlbnRTdGFydDpudW1iZXIsXHJcbiAgY3VycmVudEVuZDpudW1iZXIsXHJcbiAgdG90YWw6bnVtYmVyXHJcbn1cclxuXHJcbmNvbnN0IG1ldGFEYXRhUGFnZVNpemVDaGFuZ2UgPSAoc3RhdGU6VGFibGVTdG9yZSkgPT4gc3RhdGUuc3RhdGUkLnBpcGUobWFwKHN0YXRlID0+IHN0YXRlLnVzZXJEZWZpbmVkLnBhZ2VTaXplIHx8IHN0YXRlLnBhZ2VTaXplKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSk7XHJcblxyXG5jb25zdCBzZXRQYWdpbmF0b3JQYWdlU2l6ZSA9IChwYWdpbmF0b3I6TWF0UGFnaW5hdG9yKSA9PiAocGFnZVNpemU6IG51bWJlcikgPT5cclxuICBwYWdpbmF0b3IuX2NoYW5nZVBhZ2VTaXplKHBhZ2VTaXplKTtcclxuXHJcbmNvbnN0IG9uUGFnaW5hdG9yUGFnZVNpemVDaGFuZ2UgPSAocGFnaW5hdG9yOiBNYXRQYWdpbmF0b3IpID0+IHBhZ2luYXRvci5wYWdlLnBpcGUobWFwKCBlID0+IGUucGFnZVNpemUgKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSk7Il19
|
|
100
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdXRpbGl0aWVzL3NyYy90YWJsZS1idWlsZGVyL2NvbXBvbmVudHMvZ2VuZXJpYy10YWJsZS9wYWdpbmF0b3IuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsdUJBQXVCLEVBQWMsUUFBUSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEksT0FBTyxFQUFFLFlBQVksRUFBRSxrQkFBa0IsRUFBYSxNQUFNLDZCQUE2QixDQUFDO0FBQzFGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBc0J4QyxNQUFNLE9BQU8sa0JBQWtCO0lBQ3JCLEtBQUssR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDM0IsSUFBSSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNqQyxVQUFVLEdBQUcsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3JDLFdBQVcsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUE2QixFQUFDLEtBQUssRUFBRSxZQUFZLEVBQUMsQ0FB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QyxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN2RixLQUFLLEVBQUcsUUFBUSxDQUFDLE1BQU07Q0FDeEIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgRWxlbWVudFJlZiwgY29tcHV0ZWQsIGluamVjdCwgdmlld0NoaWxkLCBpbnB1dCwgZWZmZWN0LCB1bnRyYWNrZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0UGFnaW5hdG9yLCBNYXRQYWdpbmF0b3JNb2R1bGUsIFBhZ2VFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XHJcbmltcG9ydCB7IHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgVGFibGVTdG9yZSB9IGZyb20gJy4uLy4uL2NsYXNzZXMvdGFibGUtc3RvcmUnO1xyXG5pbXBvcnQgeyBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuaW1wb3J0IHsgRGF0YVN0b3JlIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9kYXRhLXN0b3JlJztcclxuaW1wb3J0IHsgdG9PYnNlcnZhYmxlLCB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcclxuaW1wb3J0IHsgbm90TnVsbCB9IGZyb20gJy4uLy4uLy4uL3J4anMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0Yi1wYWdpbmF0b3InLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW01hdFBhZ2luYXRvck1vZHVsZSwgTmdDbGFzcywgTWF0QnV0dG9uTW9kdWxlXSxcclxuICB0ZW1wbGF0ZTogYFxyXG4gIDxkaXYgY2xhc3M9XCJwYWdpbmF0b3Itcm93XCI+XHJcbiAgICBAaWYoJGN1cnJlbnRQYWdlRGF0YSgpOyBhcyBwYWdlRGF0YSl7XHJcbiAgICAgIDxkaXYgW2NsYXNzXT1cInsgJ2hpZGUnIDogISAkY29sbGFwc2VGb290ZXIoKSwgJ3BhZ2UtYW1vdW50cyc6dHJ1ZX1cIj5cclxuICAgICAgICBAaWYoISRzaG93QWxsKCkpeyB7e3BhZ2VEYXRhLmN1cnJlbnRTdGFydH19IC0ge3twYWdlRGF0YS5jdXJyZW50RW5kfX0gb2YgfXt7cGFnZURhdGEudG90YWx9fVxyXG4gICAgICA8L2Rpdj5cclxuICAgIH1cclxuICAgIDxtYXQtcGFnaW5hdG9yIFtwYWdlU2l6ZU9wdGlvbnNdPVwiWzUsIDEwLCAyMCwgNTAsIDEwMCwgNTAwXVwiIHNob3dGaXJzdExhc3RCdXR0b25zXHJcbiAgICAgIFtjbGFzc109XCJ7ICdoaWRlJyA6ICRjb2xsYXBzZUZvb3RlcigpIH1cIj5cclxuICAgIDwvbWF0LXBhZ2luYXRvcj5cclxuICAgIEBpZiAoJHNob3dBbGxPcHRpb24oKSkgezxidXR0b24gbWF0LWJ1dHRvbiAoY2xpY2spPVwidXBkYXRlUGFnaW5hdG9yKClcIj48c3BhbiBbc3R5bGUudGV4dC1kZWNvcmF0aW9uXT1cIiRzaG93QWxsKCkgPyAnbGluZS10aHJvdWdoJyA6ICcnXCIgPkFsbDwvc3Bhbj48L2J1dHRvbj59XHJcbiAgPC9kaXY+XHJcbiAgYCxcclxuICBzdHlsZVVybHM6IFsnLi9nZW5lcmljLXRhYmxlLmNvbXBvbmVudC5zY3NzJywnLi4vLi4vc3R5bGVzL2NvbGxhcHNlci5zdHlsZXMuc2NzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUGFnaW5hdG9yQ29tcG9uZW50IHtcclxuICBwcml2YXRlIHN0YXRlID0gaW5qZWN0KFRhYmxlU3RvcmUpO1xyXG4gIHByaXZhdGUgZGF0YSA9IGluamVjdChEYXRhU3RvcmUpO1xyXG4gICRwYWdpbmF0b3IgPSB2aWV3Q2hpbGQoTWF0UGFnaW5hdG9yKTtcclxuICAkdGFibGVFbFJlZiA9IGlucHV0LnJlcXVpcmVkPEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+Pih7YWxpYXM6ICd0YWJsZUVsUmVmJ30pO1xyXG5cclxuICAkZGF0YUxlbmd0aCA9IHRoaXMuZGF0YS5zZWxlY3RTaWduYWwoZCA9PiBkLmRhdGFMZW4pO1xyXG4gIHBhZ2VFdmVudCQgPSB0b09ic2VydmFibGUodGhpcy4kcGFnaW5hdG9yKS5waXBlKG5vdE51bGwoKSwgc3dpdGNoTWFwKHAgPT4gcC5wYWdlKSk7XHJcbiAgJHBhZ2VFdmVudCA9IHRvU2lnbmFsKHRoaXMucGFnZUV2ZW50JCk7XHJcbiAgJHBhZ2VJbmRleENoYW5nZUV2ZW50ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy4kcGFnZUV2ZW50KCk/LnBhZ2VJbmRleCk7XHJcbiAgJHBhZ2VTaXplQ2hhbmdlRXZlbnQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLiRwYWdlRXZlbnQoKT8ucGFnZVNpemUpO1xyXG4gICRjdXJyZW50UGFnZURhdGEgPSBjb21wdXRlZCgoKSA9PiB7XHJcbiAgICBjb25zdCBwYWdlRXZlbnQgPSB0aGlzLiRwYWdlRXZlbnQoKTtcclxuICAgIGlmKCFwYWdlRXZlbnQpIHJldHVybjtcclxuICAgIGNvbnN0IHBhZ2VEZXRhaWxzID0gbWFwUGFnaW5hdGlvbkV2ZW50VG9DdXJyZW50UGFnZURldGFpbHMocGFnZUV2ZW50KTtcclxuICAgIGNvbnN0IGRhdGFMZW5ndGggPSB0aGlzLiRkYXRhTGVuZ3RoKCk7XHJcbiAgICByZXR1cm4gKHsuLi5wYWdlRGV0YWlscywgdG90YWw6IGRhdGFMZW5ndGh9KVxyXG4gIH0pXHJcblxyXG4gIG9uUGFnZUluZGV4RWZmZWN0ID0gZWZmZWN0KCgpID0+IHtcclxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy4kcGFnZUluZGV4Q2hhbmdlRXZlbnQoKTtcclxuICAgIHVudHJhY2tlZCgoKSA9PiB0aGlzLnN0YXRlLnVwZGF0ZVN0YXRlKHtjdXJyZW50UGFnZTogaW5kZXh9KSlcclxuICB9KTtcclxuICBvblBhZ2VTaXplRWZmZWN0ID0gZWZmZWN0KCgpID0+IHtcclxuICAgIGNvbnN0IHNpemUgPSB0aGlzLiRwYWdlU2l6ZUNoYW5nZUV2ZW50KCk7XHJcbiAgICBpZighc2l6ZSkgcmV0dXJuO1xyXG4gICAgdW50cmFja2VkKCgpID0+IHRoaXMuc3RhdGUuc2V0UGFnZVNpemUoc2l6ZSkpO1xyXG4gIH0pO1xyXG4gIG9uTWV0YVBhZ2VTaXplRWZmZWN0ID0gZWZmZWN0KCgpID0+IHtcclxuICAgIGNvbnN0IHBhZ2luYXRvciA9IHRoaXMuJHBhZ2luYXRvcigpO1xyXG4gICAgaWYoIXBhZ2luYXRvcikgcmV0dXJuO1xyXG4gICAgY29uc3QgbWV0YVBhZ2VTaXplID0gdGhpcy5zdGF0ZS4kcGFnZVNpemUoKTtcclxuICAgIHVudHJhY2tlZCgoKSA9PiBwYWdpbmF0b3IuX2NoYW5nZVBhZ2VTaXplKG1ldGFQYWdlU2l6ZSkpO1xyXG4gIH0pO1xyXG4gIG9uRGF0YUxlbmd0aEVmZmVjdCA9IGVmZmVjdCgoKSA9PiB7XHJcbiAgICBjb25zdCBwYWdpbmF0b3IgPSB0aGlzLiRwYWdpbmF0b3IoKTtcclxuICAgIGNvbnN0IGRhdGFMZW5ndGggPSB0aGlzLiRkYXRhTGVuZ3RoKCk7XHJcbiAgICB1bnRyYWNrZWQoKCkgPT4ge1xyXG4gICAgICBpZihwYWdpbmF0b3Ipe1xyXG4gICAgICAgIHBhZ2luYXRvci5sZW5ndGggPSBkYXRhTGVuZ3RoO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH0pO1xyXG4gICRjb2xsYXBzZUZvb3RlciA9IGNvbXB1dGVkKCgpID0+IHRoaXMuc3RhdGUuc2VsZWN0U2lnbmFsKHN0YXRlID0+IHN0YXRlLnBlcnNpc3RlZFRhYmxlU2V0dGluZ3MuY29sbGFwc2VGb290ZXIpKCkgfHwgdGhpcy4kc2hvd0FsbCgpKTtcclxuICAkc2hvd0FsbE9wdGlvbiA9IHRoaXMuc3RhdGUuc2VsZWN0U2lnbmFsKHMgPT4gcy5ub3RQZXJzaXN0ZWRUYWJsZVNldHRpbmdzPy5pbmNsdWRlQWxsSW5QYWdpbmF0b3JPcHRpb25zKTtcclxuICAkc2hvd0FsbCA9IHRoaXMuc3RhdGUuc2VsZWN0U2lnbmFsKHMgPT4gcy5zaG93QWxsKTtcclxuICB1cGRhdGVQYWdpbmF0b3IgPSB0aGlzLnN0YXRlLnVwZGF0ZXIoc3RhdGUgPT4gKHsgLi4uc3RhdGUsIHNob3dBbGw6ICFzdGF0ZS5zaG93QWxsIH0pKTtcclxuICBzaG93QWxsKCl7XHJcbiAgICB0aGlzLnVwZGF0ZVBhZ2luYXRvcigpO1xyXG4gIH1cclxufVxyXG5cclxuY29uc3QgbWFwUGFnaW5hdGlvbkV2ZW50VG9DdXJyZW50UGFnZURldGFpbHMgPSAocGFnZURhdGE6IFBhZ2VFdmVudCk6Q3VycmVudFBhZ2VEZXRhaWxzID0+ICh7XHJcbiAgY3VycmVudFN0YXJ0IDogKHBhZ2VEYXRhLnBhZ2VJbmRleCAqIHBhZ2VEYXRhLnBhZ2VTaXplKSArIDEsXHJcbiAgY3VycmVudEVuZCA6IE1hdGgubWluKHBhZ2VEYXRhLmxlbmd0aCAsICgocGFnZURhdGEucGFnZUluZGV4ICsgMSkgKiBwYWdlRGF0YS5wYWdlU2l6ZSkpLFxyXG4gIHRvdGFsIDogcGFnZURhdGEubGVuZ3RoXHJcbn0pO1xyXG5cclxuXHJcbmludGVyZmFjZSBDdXJyZW50UGFnZURldGFpbHMge1xyXG4gIGN1cnJlbnRTdGFydDpudW1iZXIsXHJcbiAgY3VycmVudEVuZDpudW1iZXIsXHJcbiAgdG90YWw6bnVtYmVyXHJcbn0iXX0=
|