ms-data-grid 0.0.32 → 0.0.33
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/esm2022/lib/data-grid/data-grid.component.mjs +973 -254
- package/esm2022/lib/data-grid.module.mjs +6 -5
- package/esm2022/lib/services/common.service.mjs +5 -5
- package/fesm2022/ms-data-grid.mjs +979 -260
- package/fesm2022/ms-data-grid.mjs.map +1 -1
- package/lib/data-grid/data-grid.component.d.ts +60 -18
- package/lib/data-grid.module.d.ts +1 -1
- package/package.json +1 -1
|
@@ -8,18 +8,19 @@ import { DragDropModule } from '@angular/cdk/drag-drop';
|
|
|
8
8
|
import { InlineSVGModule } from 'ng-inline-svg';
|
|
9
9
|
import { ScrollingModule } from '@angular/cdk/scrolling';
|
|
10
10
|
import * as i0 from "@angular/core";
|
|
11
|
+
import * as i1 from "ng-inline-svg";
|
|
11
12
|
export class DataGridModule {
|
|
12
13
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataGridModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
13
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DataGridModule, declarations: [DataGridComponent, FilterPipe, DraggableHeaderDirective], imports: [CommonModule, FormsModule, DragDropModule, InlineSVGModule, ScrollingModule], exports: [DataGridComponent, DraggableHeaderDirective
|
|
14
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataGridModule, imports: [CommonModule, FormsModule, DragDropModule, InlineSVGModule, ScrollingModule
|
|
14
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DataGridModule, declarations: [DataGridComponent, FilterPipe, DraggableHeaderDirective], imports: [CommonModule, FormsModule, DragDropModule, i1.InlineSVGModule, ScrollingModule], exports: [DataGridComponent, DraggableHeaderDirective] }); }
|
|
15
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataGridModule, imports: [CommonModule, FormsModule, DragDropModule, InlineSVGModule.forRoot(), ScrollingModule] }); }
|
|
15
16
|
}
|
|
16
17
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataGridModule, decorators: [{
|
|
17
18
|
type: NgModule,
|
|
18
19
|
args: [{
|
|
19
20
|
declarations: [DataGridComponent, FilterPipe, DraggableHeaderDirective],
|
|
20
|
-
imports: [CommonModule, FormsModule, DragDropModule, InlineSVGModule, ScrollingModule],
|
|
21
|
-
exports: [DataGridComponent, DraggableHeaderDirective
|
|
21
|
+
imports: [CommonModule, FormsModule, DragDropModule, InlineSVGModule.forRoot(), ScrollingModule],
|
|
22
|
+
exports: [DataGridComponent, DraggableHeaderDirective],
|
|
22
23
|
providers: [],
|
|
23
24
|
}]
|
|
24
25
|
}] });
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1ncmlkLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEtZ3JpZC9zcmMvbGliL2RhdGEtZ3JpZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNuRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVoRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7OztBQVV6RCxNQUFNLE9BQU8sY0FBYzsrR0FBZCxjQUFjO2dIQUFkLGNBQWMsaUJBTFYsaUJBQWlCLEVBQUUsVUFBVSxFQUFFLHdCQUF3QixhQUM1RCxZQUFZLEVBQUUsV0FBVyxFQUFFLGNBQWMsc0JBQTZCLGVBQWUsYUFDckYsaUJBQWlCLEVBQUUsd0JBQXdCO2dIQUcxQyxjQUFjLFlBSmYsWUFBWSxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsZUFBZSxDQUFDLE9BQU8sRUFBRSxFQUFFLGVBQWU7OzRGQUlwRixjQUFjO2tCQU4xQixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLGlCQUFpQixFQUFFLFVBQVUsRUFBRSx3QkFBd0IsQ0FBQztvQkFDdkUsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsZUFBZSxDQUFDLE9BQU8sRUFBRSxFQUFFLGVBQWUsQ0FBQztvQkFDaEcsT0FBTyxFQUFFLENBQUMsaUJBQWlCLEVBQUUsd0JBQXdCLENBQUM7b0JBQ3RELFNBQVMsRUFBRSxFQUFFO2lCQUNkIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRGF0YUdyaWRDb21wb25lbnQgfSBmcm9tICcuL2RhdGEtZ3JpZC9kYXRhLWdyaWQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEZpbHRlclBpcGUgfSBmcm9tICcuL3BpcGVzL2ZpbHRlci5waXBlJztcclxuaW1wb3J0IHsgRHJhZ2dhYmxlSGVhZGVyRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2RyYWdnYWJsZS1oZWFkZXIuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgRHJhZ0Ryb3BNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuaW1wb3J0IHsgSW5saW5lU1ZHTW9kdWxlIH0gZnJvbSAnbmctaW5saW5lLXN2Zyc7XHJcbmltcG9ydCB7IEJyb3dzZXJBbmltYXRpb25zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlci9hbmltYXRpb25zJztcclxuaW1wb3J0IHsgU2Nyb2xsaW5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Njcm9sbGluZyc7IFxyXG5cclxuXHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW0RhdGFHcmlkQ29tcG9uZW50LCBGaWx0ZXJQaXBlLCBEcmFnZ2FibGVIZWFkZXJEaXJlY3RpdmVdLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBEcmFnRHJvcE1vZHVsZSwgSW5saW5lU1ZHTW9kdWxlLmZvclJvb3QoKSwgU2Nyb2xsaW5nTW9kdWxlXSxcclxuICBleHBvcnRzOiBbRGF0YUdyaWRDb21wb25lbnQsIERyYWdnYWJsZUhlYWRlckRpcmVjdGl2ZV0sXHJcbiAgcHJvdmlkZXJzOiBbXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIERhdGFHcmlkTW9kdWxlIHt9XHJcbiJdfQ==
|
|
@@ -121,7 +121,7 @@ export class CommonService {
|
|
|
121
121
|
first_value: null,
|
|
122
122
|
second_value: null,
|
|
123
123
|
first_condition: col.type !== 'date' ? 'contain' : 'equal',
|
|
124
|
-
second_condition:
|
|
124
|
+
second_condition: null,
|
|
125
125
|
condition: 'none',
|
|
126
126
|
_ids: []
|
|
127
127
|
};
|
|
@@ -134,12 +134,12 @@ export class CommonService {
|
|
|
134
134
|
col.query._ids = filter._ids ?? [];
|
|
135
135
|
}
|
|
136
136
|
else {
|
|
137
|
-
col.filterValue = filter.search
|
|
137
|
+
col.filterValue = filter.search || filter.query.first_value;
|
|
138
138
|
col.search = filter.search ?? '';
|
|
139
139
|
col.query.first_value = filter.query?.first_value ?? null;
|
|
140
140
|
col.query.second_value = filter.query?.second_value ?? null;
|
|
141
|
-
col.query.first_condition =
|
|
142
|
-
col.query.second_condition =
|
|
141
|
+
col.query.first_condition = filter.query?.first_condition || filter.type !== 'date' ? 'contain' : 'equal';
|
|
142
|
+
col.query.second_condition = filter.query?.second_condition || null;
|
|
143
143
|
col.query.condition = filter.query?.condition ?? 'none';
|
|
144
144
|
}
|
|
145
145
|
}
|
|
@@ -203,4 +203,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
203
203
|
providedIn: 'root'
|
|
204
204
|
}]
|
|
205
205
|
}], ctorParameters: function () { return []; } });
|
|
206
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhLWdyaWQvc3JjL2xpYi9zZXJ2aWNlcy9jb21tb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQU8sYUFBYTtJQUV4QjtRQXFLRiwwQkFBcUIsR0FBVSxFQUFFLENBQUM7SUFyS2hCLENBQUM7SUFDakIsb0JBQW9CLENBQUMsT0FBYztRQUNqQyxNQUFNLFlBQVksR0FBRyxDQUFDLE9BQWMsRUFBVyxFQUFFO1lBQy9DLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUMxQixJQUFJLEdBQUcsRUFBRSxVQUFVO29CQUFFLE9BQU8sSUFBSSxDQUFDO2dCQUNqQyxJQUFJLEdBQUcsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFO29CQUN6QixPQUFPLFlBQVksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7aUJBQ25DO2dCQUNELE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUM7UUFDRixPQUFPLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsc0JBQXNCLENBQUMsT0FBYztRQUNuQyxNQUFNLFlBQVksR0FBRyxDQUFDLE9BQWMsRUFBVyxFQUFFO1lBQy9DLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUMxQixJQUFJLENBQUMsR0FBRyxFQUFFLFVBQVU7b0JBQUUsT0FBTyxJQUFJLENBQUM7Z0JBQ2xDLElBQUksR0FBRyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUU7b0JBQ3pCLE9BQU8sWUFBWSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztpQkFDbkM7Z0JBQ0Qs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QUFNLFdBQVcsR0FBRyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDaEQsTUFBTSxZQUFZLEdBQUcsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ2xELE9BQU8sS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUM7b0JBQzlDLENBQUMsQ0FBQyxPQUFPLEtBQUssUUFBUTtvQkFDdEIsQ0FBQyxDQUFDLFdBQVcsS0FBSyxZQUFZLENBQUM7WUFFbkM7Z0JBQ0UsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDL0Q7SUFDSCxDQUFDOytHQWxPVSxhQUFhO21IQUFiLGFBQWEsY0FGWixNQUFNOzs0RkFFUCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIENvbW1vblNlcnZpY2Uge1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG4gIGdldGhhc1Zpc2libGVDb2x1bW5zKGNvbHVtbnM6IGFueVtdKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBjaGVja1Zpc2libGUgPSAoY29sdW1uczogYW55W10pOiBib29sZWFuID0+IHtcclxuICAgICAgcmV0dXJuIGNvbHVtbnMuc29tZSgoY29sKSA9PiB7XHJcbiAgICAgICAgaWYgKGNvbD8uaXNfdmlzaWJsZSkgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgaWYgKGNvbD8uY2hpbGRyZW4/Lmxlbmd0aCkge1xyXG4gICAgICAgICAgcmV0dXJuIGNoZWNrVmlzaWJsZShjb2wuY2hpbGRyZW4pO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH0pO1xyXG4gICAgfTtcclxuICAgIHJldHVybiBjaGVja1Zpc2libGUoY29sdW1ucyk7XHJcbiAgfVxyXG5cclxuICBnZXRoYXNJblZpc2libGVDb2x1bW5zKGNvbHVtbnM6IGFueVtdKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBjaGVja1Zpc2libGUgPSAoY29sdW1uczogYW55W10pOiBib29sZWFuID0+IHtcclxuICAgICAgcmV0dXJuIGNvbHVtbnMuc29tZSgoY29sKSA9PiB7XHJcbiAgICAgICAgaWYgKCFjb2w/LmlzX3Zpc2libGUpIHJldHVybiB0cnVlO1xyXG4gICAgICAgIGlmIChjb2w/LmNoaWxkcmVuPy5sZW5ndGgpIHtcclxuICAgICAgICAgIHJldHVybiBjaGVja1Zpc2libGUoY29sLmNoaWxkcmVuKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9KTtcclxuICAgIH07XHJcbiAgICByZXR1cm4gY2hlY2tWaXNpYmxlKGNvbHVtbnMpO1xyXG4gIH1cclxuXHJcblxyXG4gIGdldFRvdGFsQ29sdW1uc0xlbmd0aChjb2x1bW5zOiBhbnlbXSk6IG51bWJlciB7XHJcbiAgICBsZXQgY291bnQgPSAwO1xyXG5cclxuICAgIGNvbHVtbnMuZm9yRWFjaChjb2wgPT4ge1xyXG4gICAgICBpZiAoY29sLmNoaWxkcmVuICYmIEFycmF5LmlzQXJyYXkoY29sLmNoaWxkcmVuKSAmJiBjb2wuY2hpbGRyZW4ubGVuZ3RoKSB7XHJcbiAgICAgICAgY291bnQgKz0gY29sLmNoaWxkcmVuLmxlbmd0aDsgLy8gY291bnQgY2hpbGRyZW4gaW5zdGVhZCBvZiBwYXJlbnRcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb3VudCArPSAxOyAvLyBjb3VudCBwYXJlbnQgZGlyZWN0bHlcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIGNvdW50O1xyXG4gIH1cclxuXHJcbiAgZ2V0aGFzUmlnaHRQaW5uZWRDb2x1bW5zKGNvbHVtbnM6IGFueVtdKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBjaGVja1Bpbm5lZFJpZ2h0ID0gKGNvbHVtbnM6IGFueVtdKTogYm9vbGVhbiA9PiB7XHJcbiAgICAgIHJldHVybiBjb2x1bW5zLnNvbWUoKGNvbCkgPT4ge1xyXG4gICAgICAgIGlmIChjb2w/LnBpbm5lZCA9PT0gJ3JpZ2h0JyAmJiBjb2w/LmlzX3Zpc2libGUpIHJldHVybiB0cnVlO1xyXG4gICAgICAgIGlmIChjb2w/LmNoaWxkcmVuPy5sZW5ndGgpIHtcclxuICAgICAgICAgIHJldHVybiBjaGVja1Bpbm5lZFJpZ2h0KGNvbC5jaGlsZHJlbik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfSk7XHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIGNoZWNrUGlubmVkUmlnaHQoY29sdW1ucyk7XHJcbiAgfVxyXG5cclxuICBnZXRoYXNMZWZ0UGlubmVkQ29sdW1ucyhjb2x1bW5zOiBhbnlbXSk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgY2hlY2tQaW5uZWRSaWdodCA9IChjb2x1bW5zOiBhbnlbXSk6IGJvb2xlYW4gPT4ge1xyXG4gICAgICByZXR1cm4gY29sdW1ucy5zb21lKChjb2wpID0+IHtcclxuICAgICAgICBpZiAoY29sPy5waW5uZWQgPT09ICdsZWZ0JyAmJiBjb2w/LmlzX3Zpc2libGUpIHJldHVybiB0cnVlO1xyXG4gICAgICAgIGlmIChjb2w/LmNoaWxkcmVuPy5sZW5ndGgpIHtcclxuICAgICAgICAgIHJldHVybiBjaGVja1Bpbm5lZFJpZ2h0KGNvbC5jaGlsZHJlbik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfSk7XHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIGNoZWNrUGlubmVkUmlnaHQoY29sdW1ucyk7XHJcbiAgfVxyXG5cclxuXHJcbiAgZ2V0RXhwYW5kZWRSb3dDb3VudChkYXRhOiBhbnlbXSk6IG51bWJlciB7XHJcbiAgICBsZXQgZ3JvdXBDb3VudCA9IDA7XHJcbiAgICBsZXQgcm93Q291bnQgPSAwO1xyXG5cclxuICAgIGRhdGEuZm9yRWFjaChncm91cCA9PiB7XHJcbiAgICAgIGlmIChncm91cD8uaXNHcm91cCkge1xyXG4gICAgICAgIGdyb3VwQ291bnQrKztcclxuXHJcbiAgICAgICAgaWYgKGdyb3VwPy5pc0V4cGFuZCAmJiBBcnJheS5pc0FycmF5KGdyb3VwPy5jaGlsZHJlbikpIHtcclxuICAgICAgICAgIGdyb3VwLmNoaWxkcmVuLmZvckVhY2goKGNoaWxkOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgaWYgKGNoaWxkLmlzR3JvdXApIHtcclxuICAgICAgICAgICAgICBpZiAoY2hpbGQuaXNFeHBhbmQgJiYgQXJyYXkuaXNBcnJheShjaGlsZC5jaGlsZHJlbikpIHtcclxuICAgICAgICAgICAgICAgIHJvd0NvdW50ICs9IGNoaWxkLmNoaWxkcmVuLmxlbmd0aDtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgcm93Q291bnQrKztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAoZ3JvdXBDb3VudCA9PT0gMCkge1xyXG4gICAgICByZXR1cm4gZGF0YS5sZW5ndGg7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGdyb3VwQ291bnQgKyByb3dDb3VudDtcclxuICB9XHJcblxyXG5cclxuZ2V0RmlsdGVyc0Zyb21Db2x1bW5zKGNvbHVtbnM6IGFueVtdLCBmaWx0ZXJzQ29uZmlnOmFueSBbXSk6IGFueVtdIHtcclxuICBjb25zdCByZXN1bHQ6IGFueVtdID0gW107XHJcbiBcclxuICBjb25zdCBjaGVja0NvbHVtbiA9IChjb2w6IGFueSkgPT4ge1xyXG4gICAgY29uc3QgaGFzRmlyc3RWYWx1ZSA9IGNvbC5xdWVyeT8uZmlyc3RfdmFsdWUgIT0gbnVsbCAmJiBjb2wucXVlcnk/LmZpcnN0X3ZhbHVlICE9PSBcIlwiICYmIGZpbHRlcnNDb25maWcuc29tZSgoZWxlKT0+IGVsZS5maWVsZCA9PSBjb2wuZmllbGQpO1xyXG4gICAgY29uc3QgaGFzSWRzID0gQXJyYXkuaXNBcnJheShjb2wucXVlcnk/Ll9pZHMpICYmIGNvbC5xdWVyeS5faWRzLmxlbmd0aCA+IDAgJiYgZmlsdGVyc0NvbmZpZy5zb21lKChlbGUpPT4gZWxlLmZpZWxkID09IGNvbC5maWVsZCk7XHJcbiAgICBpZiAoaGFzRmlyc3RWYWx1ZSB8fCBoYXNJZHMpIHtcclxuICAgICAgcmVzdWx0LnB1c2goe1xyXG4gICAgICAgIHNlYXJjaDogY29sLnNlYXJjaCA/PyBcIlwiLFxyXG4gICAgICAgIGZpZWxkOiBjb2wuZmllbGQsXHJcbiAgICAgICAgdHlwZTogY29sLnR5cGUsXHJcbiAgICAgICAgX2lkczogY29sLnR5cGUgPT0gJ2Ryb3Bkb3duJz8gY29sLnF1ZXJ5Py5faWRzOiBbXSxcclxuICAgICAgICBxdWVyeTogY29sLnR5cGUgPT0gJ2Ryb3Bkb3duJz8gbnVsbCA6IChjb2w/LnF1ZXJ5Py5maXJzdF92YWx1ZSA/IGNvbD8ucXVlcnkgOiBudWxsKVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuIFxyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoY29sLmNoaWxkcmVuKSAmJiBjb2wuY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xyXG4gICAgICBjb2wuY2hpbGRyZW4uZm9yRWFjaChjaGVja0NvbHVtbik7XHJcbiAgICB9XHJcbiAgfTtcclxuICBjb2x1bW5zLmZvckVhY2goY2hlY2tDb2x1bW4pO1xyXG4gXHJcbiAgcmV0dXJuIHJlc3VsdDtcclxufVxyXG5cclxuYXN5bmMgYXBwbHlGaWx0ZXJzVG9Db2x1bW5zKGNvbHVtbnM6IGFueVtdLCBmaWx0ZXJzOiBhbnlbXSk6IFByb21pc2U8YW55W10+IHtcclxuICBmb3IgKGNvbnN0IGNvbCBvZiBjb2x1bW5zKSB7XHJcbiAgICBpZiAoIWNvbC5xdWVyeSkge1xyXG4gICAgICBjb2wucXVlcnkgPSB7XHJcbiAgICAgICAgZmlyc3RfdmFsdWU6IG51bGwsXHJcbiAgICAgICAgc2Vjb25kX3ZhbHVlOiBudWxsLFxyXG4gICAgICAgIGZpcnN0X2NvbmRpdGlvbjogY29sLnR5cGUgIT09ICdkYXRlJz8gJ2NvbnRhaW4nOiAnZXF1YWwnLFxyXG4gICAgICAgIHNlY29uZF9jb25kaXRpb246IGNvbC50eXBlICE9PSAnZGF0ZSc/ICdjb250YWluJzogJ2VxdWFsJyxcclxuICAgICAgICBjb25kaXRpb246ICdub25lJyxcclxuICAgICAgICBfaWRzOiBbXVxyXG4gICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGZpbHRlciA9IGZpbHRlcnMuZmluZChmID0+IGYuZmllbGQgPT09IGNvbC5maWVsZCk7XHJcblxyXG4gICAgaWYgKGZpbHRlcikge1xyXG4gICAgICBpZiAoY29sLnR5cGUgPT09ICdkcm9wZG93bicpIHtcclxuICAgICAgICBjb2wuZmlsdGVyVmFsdWUgPSBmaWx0ZXIuX2lkcyA/PyBbXTtcclxuICAgICAgICBjb2wuc2VhcmNoID0gZmlsdGVyLnNlYXJjaCA/PyAnJztcclxuICAgICAgICBjb2wucXVlcnkuX2lkcyA9IGZpbHRlci5faWRzID8/IFtdO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbC5maWx0ZXJWYWx1ZSA9IGZpbHRlci5zZWFyY2ggPz8gbnVsbDtcclxuICAgICAgICBjb2wuc2VhcmNoID0gZmlsdGVyLnNlYXJjaCA/PyAnJztcclxuICAgICAgICBjb2wucXVlcnkuZmlyc3RfdmFsdWUgPSBmaWx0ZXIucXVlcnk/LmZpcnN0X3ZhbHVlID8/IG51bGw7XHJcbiAgICAgICAgY29sLnF1ZXJ5LnNlY29uZF92YWx1ZSA9IGZpbHRlci5xdWVyeT8uc2Vjb25kX3ZhbHVlID8/IG51bGw7XHJcbiAgICAgICAgY29sLnF1ZXJ5LmZpcnN0X2NvbmRpdGlvbiA9IChmaWx0ZXIucXVlcnk/LmZpcnN0X2NvbmRpdGlvbikgfHwgKGZpbHRlci50eXBlICE9PSAnZGF0ZSc/ICdjb250YWluJzogJ2VxdWFsJyk7XHJcbiAgICAgICAgY29sLnF1ZXJ5LnNlY29uZF9jb25kaXRpb24gPSAoZmlsdGVyLnF1ZXJ5Py5zZWNvbmRfY29uZGl0aW9uKSB8fCAoZmlsdGVyLnR5cGUgIT09ICdkYXRlJz8gJ2NvbnRhaW4nOiAnZXF1YWwnKTtcclxuICAgICAgICBjb2wucXVlcnkuY29uZGl0aW9uID0gZmlsdGVyLnF1ZXJ5Py5jb25kaXRpb24gPz8gJ25vbmUnO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheShjb2wuY2hpbGRyZW4pICYmIGNvbC5jaGlsZHJlbi5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGNvbC5jaGlsZHJlbiA9IGF3YWl0IHRoaXMuYXBwbHlGaWx0ZXJzVG9Db2x1bW5zKGNvbC5jaGlsZHJlbiwgZmlsdGVycyk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBjb2x1bW5zO1xyXG59XHJcblxyXG5cclxuXHJcblxyXG5cclxuYWN0aXZlRmlsdGVyZWRDb2x1bW5zOiBhbnlbXSA9IFtdO1xyXG51cGRhdGVBY3RpdmVGaWx0ZXJlZENvbHVtbnMoY29sdW1uczogYW55W10pOiBhbnlbXSB7XHJcbiAgY29uc3QgY29sbGVjdEZpbHRlcmVkID0gKGNvbHM6IGFueVtdKTogYW55W10gPT4ge1xyXG4gICAgbGV0IHJlc3VsdDogYW55W10gPSBbXTtcclxuXHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvbHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgY29uc3QgY29sID0gY29sc1tpXTtcclxuICAgICAgaWYgKGNvbC5jaGlsZHJlbiAmJiBjb2wuY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHJlc3VsdCA9IHJlc3VsdC5jb25jYXQoY29sbGVjdEZpbHRlcmVkKGNvbC5jaGlsZHJlbikpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoY29sLnF1ZXJ5KSB7XHJcbiAgICAgICAgY29uc3QgaGFzRHJvcGRvd25GaWx0ZXIgPVxyXG4gICAgICAgICAgQXJyYXkuaXNBcnJheShjb2wucXVlcnkuX2lkcykgJiYgY29sLnF1ZXJ5Ll9pZHMubGVuZ3RoID4gMDtcclxuXHJcbiAgICAgICAgY29uc3QgaGFzVmFsdWVGaWx0ZXIgPVxyXG4gICAgICAgICAgKGNvbC5xdWVyeS5maXJzdF92YWx1ZSAmJiBjb2wucXVlcnkuZmlyc3RfdmFsdWUgIT09ICcnKSB8fFxyXG4gICAgICAgICAgKGNvbC5xdWVyeS5zZWNvbmRfdmFsdWUgJiYgY29sLnF1ZXJ5LnNlY29uZF92YWx1ZSAhPT0gJycpO1xyXG5cclxuICAgICAgICBpZiAoaGFzRHJvcGRvd25GaWx0ZXIgfHwgaGFzVmFsdWVGaWx0ZXIpIHtcclxuICAgICAgICAgIHJlc3VsdC5wdXNoKGNvbCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH07XHJcbiAgdGhpcy5hY3RpdmVGaWx0ZXJlZENvbHVtbnMgPSBbLi4uY29sbGVjdEZpbHRlcmVkKGNvbHVtbnMpXTtcclxuICByZXR1cm4gdGhpcy5hY3RpdmVGaWx0ZXJlZENvbHVtbnM7XHJcbn1cclxuXHJcblxyXG5cclxuaGFzRmllbGRDaGFuZ2VkKGN1cnJlbnQ6IGFueSwgb3JpZ2luYWw6IGFueSwgdHlwZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgICAgY2FzZSAnbnVtYmVyJzpcclxuICAgICAgICByZXR1cm4gTnVtYmVyKGN1cnJlbnQpICE9PSBOdW1iZXIob3JpZ2luYWwpO1xyXG5cclxuICAgICAgY2FzZSAnc3RyaW5nJzpcclxuICAgICAgICByZXR1cm4gU3RyaW5nKGN1cnJlbnQgfHwgJycpICE9PSBTdHJpbmcob3JpZ2luYWwgfHwgJycpO1xyXG5cclxuICAgICAgY2FzZSAnZHJvcGRvd24nOlxyXG4gICAgICAgIGlmICh0eXBlb2YgY3VycmVudCA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG9yaWdpbmFsID09PSAnb2JqZWN0Jykge1xyXG4gICAgICAgICAgcmV0dXJuIGN1cnJlbnQ/LmlkICE9PSBvcmlnaW5hbD8uaWQgfHwgY3VycmVudD8udmFsdWUgIT09IG9yaWdpbmFsPy52YWx1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGN1cnJlbnQgIT09IG9yaWdpbmFsO1xyXG5cclxuICAgICAgY2FzZSAnYm9vbGVhbic6XHJcbiAgICAgICAgcmV0dXJuIEJvb2xlYW4oY3VycmVudCkgIT09IEJvb2xlYW4ob3JpZ2luYWwpO1xyXG5cclxuICAgICAgY2FzZSAnZGF0ZSc6XHJcbiAgICAgICAgY29uc3QgY3VycmVudERhdGUgPSBuZXcgRGF0ZShjdXJyZW50KS5nZXRUaW1lKCk7XHJcbiAgICAgICAgY29uc3Qgb3JpZ2luYWxEYXRlID0gbmV3IERhdGUob3JpZ2luYWwpLmdldFRpbWUoKTtcclxuICAgICAgICByZXR1cm4gaXNOYU4oY3VycmVudERhdGUpIHx8IGlzTmFOKG9yaWdpbmFsRGF0ZSlcclxuICAgICAgICAgID8gY3VycmVudCAhPT0gb3JpZ2luYWxcclxuICAgICAgICAgIDogY3VycmVudERhdGUgIT09IG9yaWdpbmFsRGF0ZTtcclxuXHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGN1cnJlbnQpICE9PSBKU09OLnN0cmluZ2lmeShvcmlnaW5hbCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbn1cclxuXHJcblxyXG5cclxuXHJcbiJdfQ==
|
|
206
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhLWdyaWQvc3JjL2xpYi9zZXJ2aWNlcy9jb21tb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQU8sYUFBYTtJQUV4QjtRQXFLRiwwQkFBcUIsR0FBVSxFQUFFLENBQUM7SUFyS2hCLENBQUM7SUFDakIsb0JBQW9CLENBQUMsT0FBYztRQUNqQyxNQUFNLFlBQVksR0FBRyxDQUFDLE9BQWMsRUFBVyxFQUFFO1lBQy9DLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUMxQixJQUFJLEdBQUcsRUFBRSxVQUFVO29CQUFFLE9BQU8sSUFBSSxDQUFDO2dCQUNqQyxJQUFJLEdBQUcsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFO29CQUN6QixPQUFPLFlBQVksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7aUJBQ25DO2dCQUNELE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUM7UUFDRixPQUFPLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsc0JBQXNCLENBQUMsT0FBYztRQUNuQyxNQUFNLFlBQVksR0FBRyxDQUFDLE9BQWMsRUFBVyxFQUFFO1lBQy9DLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUMxQixJQUFJLENBQUMsR0FBRyxFQUFFLFVBQVU7b0JBQUUsT0FBTyxJQUFJLENBQUM7Z0JBQ2xDLElBQUksR0FBRyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUU7b0JBQ3pCLE9BQU8sWUFBWSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztpQkFDbkM7Z0JBQ0Qs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QUssQ0FBQyxXQUFXLENBQUMsSUFBSSxLQUFLLENBQUMsWUFBWSxDQUFDO29CQUM5QyxDQUFDLENBQUMsT0FBTyxLQUFLLFFBQVE7b0JBQ3RCLENBQUMsQ0FBQyxXQUFXLEtBQUssWUFBWSxDQUFDO1lBRW5DO2dCQUNFLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQy9EO0lBQ0gsQ0FBQzsrR0FsT1UsYUFBYTttSEFBYixhQUFhLGNBRlosTUFBTTs7NEZBRVAsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb21tb25TZXJ2aWNlIHtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuICBnZXRoYXNWaXNpYmxlQ29sdW1ucyhjb2x1bW5zOiBhbnlbXSk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgY2hlY2tWaXNpYmxlID0gKGNvbHVtbnM6IGFueVtdKTogYm9vbGVhbiA9PiB7XHJcbiAgICAgIHJldHVybiBjb2x1bW5zLnNvbWUoKGNvbCkgPT4ge1xyXG4gICAgICAgIGlmIChjb2w/LmlzX3Zpc2libGUpIHJldHVybiB0cnVlO1xyXG4gICAgICAgIGlmIChjb2w/LmNoaWxkcmVuPy5sZW5ndGgpIHtcclxuICAgICAgICAgIHJldHVybiBjaGVja1Zpc2libGUoY29sLmNoaWxkcmVuKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9KTtcclxuICAgIH07XHJcbiAgICByZXR1cm4gY2hlY2tWaXNpYmxlKGNvbHVtbnMpO1xyXG4gIH1cclxuXHJcbiAgZ2V0aGFzSW5WaXNpYmxlQ29sdW1ucyhjb2x1bW5zOiBhbnlbXSk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgY2hlY2tWaXNpYmxlID0gKGNvbHVtbnM6IGFueVtdKTogYm9vbGVhbiA9PiB7XHJcbiAgICAgIHJldHVybiBjb2x1bW5zLnNvbWUoKGNvbCkgPT4ge1xyXG4gICAgICAgIGlmICghY29sPy5pc192aXNpYmxlKSByZXR1cm4gdHJ1ZTtcclxuICAgICAgICBpZiAoY29sPy5jaGlsZHJlbj8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICByZXR1cm4gY2hlY2tWaXNpYmxlKGNvbC5jaGlsZHJlbik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfSk7XHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIGNoZWNrVmlzaWJsZShjb2x1bW5zKTtcclxuICB9XHJcblxyXG5cclxuICBnZXRUb3RhbENvbHVtbnNMZW5ndGgoY29sdW1uczogYW55W10pOiBudW1iZXIge1xyXG4gICAgbGV0IGNvdW50ID0gMDtcclxuXHJcbiAgICBjb2x1bW5zLmZvckVhY2goY29sID0+IHtcclxuICAgICAgaWYgKGNvbC5jaGlsZHJlbiAmJiBBcnJheS5pc0FycmF5KGNvbC5jaGlsZHJlbikgJiYgY29sLmNoaWxkcmVuLmxlbmd0aCkge1xyXG4gICAgICAgIGNvdW50ICs9IGNvbC5jaGlsZHJlbi5sZW5ndGg7IC8vIGNvdW50IGNoaWxkcmVuIGluc3RlYWQgb2YgcGFyZW50XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY291bnQgKz0gMTsgLy8gY291bnQgcGFyZW50IGRpcmVjdGx5XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBjb3VudDtcclxuICB9XHJcblxyXG4gIGdldGhhc1JpZ2h0UGlubmVkQ29sdW1ucyhjb2x1bW5zOiBhbnlbXSk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgY2hlY2tQaW5uZWRSaWdodCA9IChjb2x1bW5zOiBhbnlbXSk6IGJvb2xlYW4gPT4ge1xyXG4gICAgICByZXR1cm4gY29sdW1ucy5zb21lKChjb2wpID0+IHtcclxuICAgICAgICBpZiAoY29sPy5waW5uZWQgPT09ICdyaWdodCcgJiYgY29sPy5pc192aXNpYmxlKSByZXR1cm4gdHJ1ZTtcclxuICAgICAgICBpZiAoY29sPy5jaGlsZHJlbj8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICByZXR1cm4gY2hlY2tQaW5uZWRSaWdodChjb2wuY2hpbGRyZW4pO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH0pO1xyXG4gICAgfTtcclxuICAgIHJldHVybiBjaGVja1Bpbm5lZFJpZ2h0KGNvbHVtbnMpO1xyXG4gIH1cclxuXHJcbiAgZ2V0aGFzTGVmdFBpbm5lZENvbHVtbnMoY29sdW1uczogYW55W10pOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGNoZWNrUGlubmVkUmlnaHQgPSAoY29sdW1uczogYW55W10pOiBib29sZWFuID0+IHtcclxuICAgICAgcmV0dXJuIGNvbHVtbnMuc29tZSgoY29sKSA9PiB7XHJcbiAgICAgICAgaWYgKGNvbD8ucGlubmVkID09PSAnbGVmdCcgJiYgY29sPy5pc192aXNpYmxlKSByZXR1cm4gdHJ1ZTtcclxuICAgICAgICBpZiAoY29sPy5jaGlsZHJlbj8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICByZXR1cm4gY2hlY2tQaW5uZWRSaWdodChjb2wuY2hpbGRyZW4pO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH0pO1xyXG4gICAgfTtcclxuICAgIHJldHVybiBjaGVja1Bpbm5lZFJpZ2h0KGNvbHVtbnMpO1xyXG4gIH1cclxuXHJcblxyXG4gIGdldEV4cGFuZGVkUm93Q291bnQoZGF0YTogYW55W10pOiBudW1iZXIge1xyXG4gICAgbGV0IGdyb3VwQ291bnQgPSAwO1xyXG4gICAgbGV0IHJvd0NvdW50ID0gMDtcclxuXHJcbiAgICBkYXRhLmZvckVhY2goZ3JvdXAgPT4ge1xyXG4gICAgICBpZiAoZ3JvdXA/LmlzR3JvdXApIHtcclxuICAgICAgICBncm91cENvdW50Kys7XHJcblxyXG4gICAgICAgIGlmIChncm91cD8uaXNFeHBhbmQgJiYgQXJyYXkuaXNBcnJheShncm91cD8uY2hpbGRyZW4pKSB7XHJcbiAgICAgICAgICBncm91cC5jaGlsZHJlbi5mb3JFYWNoKChjaGlsZDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChjaGlsZC5pc0dyb3VwKSB7XHJcbiAgICAgICAgICAgICAgaWYgKGNoaWxkLmlzRXhwYW5kICYmIEFycmF5LmlzQXJyYXkoY2hpbGQuY2hpbGRyZW4pKSB7XHJcbiAgICAgICAgICAgICAgICByb3dDb3VudCArPSBjaGlsZC5jaGlsZHJlbi5sZW5ndGg7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHJvd0NvdW50Kys7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKGdyb3VwQ291bnQgPT09IDApIHtcclxuICAgICAgcmV0dXJuIGRhdGEubGVuZ3RoO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBncm91cENvdW50ICsgcm93Q291bnQ7XHJcbiAgfVxyXG5cclxuXHJcbmdldEZpbHRlcnNGcm9tQ29sdW1ucyhjb2x1bW5zOiBhbnlbXSwgZmlsdGVyc0NvbmZpZzphbnkgW10pOiBhbnlbXSB7XHJcbiAgY29uc3QgcmVzdWx0OiBhbnlbXSA9IFtdO1xyXG4gXHJcbiAgY29uc3QgY2hlY2tDb2x1bW4gPSAoY29sOiBhbnkpID0+IHtcclxuICAgIGNvbnN0IGhhc0ZpcnN0VmFsdWUgPSBjb2wucXVlcnk/LmZpcnN0X3ZhbHVlICE9IG51bGwgJiYgY29sLnF1ZXJ5Py5maXJzdF92YWx1ZSAhPT0gXCJcIiAmJiBmaWx0ZXJzQ29uZmlnLnNvbWUoKGVsZSk9PiBlbGUuZmllbGQgPT0gY29sLmZpZWxkKTtcclxuICAgIGNvbnN0IGhhc0lkcyA9IEFycmF5LmlzQXJyYXkoY29sLnF1ZXJ5Py5faWRzKSAmJiBjb2wucXVlcnkuX2lkcy5sZW5ndGggPiAwICYmIGZpbHRlcnNDb25maWcuc29tZSgoZWxlKT0+IGVsZS5maWVsZCA9PSBjb2wuZmllbGQpO1xyXG4gICAgaWYgKGhhc0ZpcnN0VmFsdWUgfHwgaGFzSWRzKSB7XHJcbiAgICAgIHJlc3VsdC5wdXNoKHtcclxuICAgICAgICBzZWFyY2g6IGNvbC5zZWFyY2ggPz8gXCJcIixcclxuICAgICAgICBmaWVsZDogY29sLmZpZWxkLFxyXG4gICAgICAgIHR5cGU6IGNvbC50eXBlLFxyXG4gICAgICAgIF9pZHM6IGNvbC50eXBlID09ICdkcm9wZG93bic/IGNvbC5xdWVyeT8uX2lkczogW10sXHJcbiAgICAgICAgcXVlcnk6IGNvbC50eXBlID09ICdkcm9wZG93bic/IG51bGwgOiAoY29sPy5xdWVyeT8uZmlyc3RfdmFsdWUgPyBjb2w/LnF1ZXJ5IDogbnVsbClcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiBcclxuICAgIGlmIChBcnJheS5pc0FycmF5KGNvbC5jaGlsZHJlbikgJiYgY29sLmNoaWxkcmVuLmxlbmd0aCA+IDApIHtcclxuICAgICAgY29sLmNoaWxkcmVuLmZvckVhY2goY2hlY2tDb2x1bW4pO1xyXG4gICAgfVxyXG4gIH07XHJcbiAgY29sdW1ucy5mb3JFYWNoKGNoZWNrQ29sdW1uKTtcclxuIFxyXG4gIHJldHVybiByZXN1bHQ7XHJcbn1cclxuXHJcbmFzeW5jIGFwcGx5RmlsdGVyc1RvQ29sdW1ucyhjb2x1bW5zOiBhbnlbXSwgZmlsdGVyczogYW55W10pOiBQcm9taXNlPGFueVtdPiB7XHJcbiAgZm9yIChjb25zdCBjb2wgb2YgY29sdW1ucykge1xyXG4gICAgaWYgKCFjb2wucXVlcnkpIHtcclxuICAgICAgY29sLnF1ZXJ5ID0ge1xyXG4gICAgICAgIGZpcnN0X3ZhbHVlOiBudWxsLFxyXG4gICAgICAgIHNlY29uZF92YWx1ZTogbnVsbCxcclxuICAgICAgICBmaXJzdF9jb25kaXRpb246IGNvbC50eXBlICE9PSAnZGF0ZSc/ICdjb250YWluJzogJ2VxdWFsJyxcclxuICAgICAgICBzZWNvbmRfY29uZGl0aW9uOiBudWxsLFxyXG4gICAgICAgIGNvbmRpdGlvbjogJ25vbmUnLFxyXG4gICAgICAgIF9pZHM6IFtdXHJcbiAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZmlsdGVyID0gZmlsdGVycy5maW5kKGYgPT4gZi5maWVsZCA9PT0gY29sLmZpZWxkKTtcclxuXHJcbiAgICBpZiAoZmlsdGVyKSB7XHJcbiAgICAgIGlmIChjb2wudHlwZSA9PT0gJ2Ryb3Bkb3duJykge1xyXG4gICAgICAgIGNvbC5maWx0ZXJWYWx1ZSA9IGZpbHRlci5faWRzID8/IFtdO1xyXG4gICAgICAgIGNvbC5zZWFyY2ggPSBmaWx0ZXIuc2VhcmNoID8/ICcnO1xyXG4gICAgICAgIGNvbC5xdWVyeS5faWRzID0gZmlsdGVyLl9pZHMgPz8gW107XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29sLmZpbHRlclZhbHVlID0gZmlsdGVyLnNlYXJjaCB8fCBmaWx0ZXIucXVlcnkuZmlyc3RfdmFsdWU7XHJcbiAgICAgICAgY29sLnNlYXJjaCA9IGZpbHRlci5zZWFyY2ggPz8gJyc7XHJcbiAgICAgICAgY29sLnF1ZXJ5LmZpcnN0X3ZhbHVlID0gZmlsdGVyLnF1ZXJ5Py5maXJzdF92YWx1ZSA/PyBudWxsO1xyXG4gICAgICAgIGNvbC5xdWVyeS5zZWNvbmRfdmFsdWUgPSBmaWx0ZXIucXVlcnk/LnNlY29uZF92YWx1ZSA/PyBudWxsO1xyXG4gICAgICAgIGNvbC5xdWVyeS5maXJzdF9jb25kaXRpb24gPSBmaWx0ZXIucXVlcnk/LmZpcnN0X2NvbmRpdGlvbiB8fCBmaWx0ZXIudHlwZSAhPT0gJ2RhdGUnPyAnY29udGFpbic6ICdlcXVhbCc7XHJcbiAgICAgICAgY29sLnF1ZXJ5LnNlY29uZF9jb25kaXRpb24gPSBmaWx0ZXIucXVlcnk/LnNlY29uZF9jb25kaXRpb24gfHwgbnVsbDtcclxuICAgICAgICBjb2wucXVlcnkuY29uZGl0aW9uID0gZmlsdGVyLnF1ZXJ5Py5jb25kaXRpb24gPz8gJ25vbmUnO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheShjb2wuY2hpbGRyZW4pICYmIGNvbC5jaGlsZHJlbi5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGNvbC5jaGlsZHJlbiA9IGF3YWl0IHRoaXMuYXBwbHlGaWx0ZXJzVG9Db2x1bW5zKGNvbC5jaGlsZHJlbiwgZmlsdGVycyk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBjb2x1bW5zO1xyXG59XHJcblxyXG5cclxuXHJcblxyXG5cclxuYWN0aXZlRmlsdGVyZWRDb2x1bW5zOiBhbnlbXSA9IFtdO1xyXG51cGRhdGVBY3RpdmVGaWx0ZXJlZENvbHVtbnMoY29sdW1uczogYW55W10pOiBhbnlbXSB7XHJcbiAgY29uc3QgY29sbGVjdEZpbHRlcmVkID0gKGNvbHM6IGFueVtdKTogYW55W10gPT4ge1xyXG4gICAgbGV0IHJlc3VsdDogYW55W10gPSBbXTtcclxuXHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvbHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgY29uc3QgY29sID0gY29sc1tpXTtcclxuICAgICAgaWYgKGNvbC5jaGlsZHJlbiAmJiBjb2wuY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHJlc3VsdCA9IHJlc3VsdC5jb25jYXQoY29sbGVjdEZpbHRlcmVkKGNvbC5jaGlsZHJlbikpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoY29sLnF1ZXJ5KSB7XHJcbiAgICAgICAgY29uc3QgaGFzRHJvcGRvd25GaWx0ZXIgPVxyXG4gICAgICAgICAgQXJyYXkuaXNBcnJheShjb2wucXVlcnkuX2lkcykgJiYgY29sLnF1ZXJ5Ll9pZHMubGVuZ3RoID4gMDtcclxuXHJcbiAgICAgICAgY29uc3QgaGFzVmFsdWVGaWx0ZXIgPVxyXG4gICAgICAgICAgKGNvbC5xdWVyeS5maXJzdF92YWx1ZSAmJiBjb2wucXVlcnkuZmlyc3RfdmFsdWUgIT09ICcnKSB8fFxyXG4gICAgICAgICAgKGNvbC5xdWVyeS5zZWNvbmRfdmFsdWUgJiYgY29sLnF1ZXJ5LnNlY29uZF92YWx1ZSAhPT0gJycpO1xyXG5cclxuICAgICAgICBpZiAoaGFzRHJvcGRvd25GaWx0ZXIgfHwgaGFzVmFsdWVGaWx0ZXIpIHtcclxuICAgICAgICAgIHJlc3VsdC5wdXNoKGNvbCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH07XHJcbiAgdGhpcy5hY3RpdmVGaWx0ZXJlZENvbHVtbnMgPSBbLi4uY29sbGVjdEZpbHRlcmVkKGNvbHVtbnMpXTtcclxuICByZXR1cm4gdGhpcy5hY3RpdmVGaWx0ZXJlZENvbHVtbnM7XHJcbn1cclxuXHJcblxyXG5cclxuaGFzRmllbGRDaGFuZ2VkKGN1cnJlbnQ6IGFueSwgb3JpZ2luYWw6IGFueSwgdHlwZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgICAgY2FzZSAnbnVtYmVyJzpcclxuICAgICAgICByZXR1cm4gTnVtYmVyKGN1cnJlbnQpICE9PSBOdW1iZXIob3JpZ2luYWwpO1xyXG5cclxuICAgICAgY2FzZSAnc3RyaW5nJzpcclxuICAgICAgICByZXR1cm4gU3RyaW5nKGN1cnJlbnQgfHwgJycpICE9PSBTdHJpbmcob3JpZ2luYWwgfHwgJycpO1xyXG5cclxuICAgICAgY2FzZSAnZHJvcGRvd24nOlxyXG4gICAgICAgIGlmICh0eXBlb2YgY3VycmVudCA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG9yaWdpbmFsID09PSAnb2JqZWN0Jykge1xyXG4gICAgICAgICAgcmV0dXJuIGN1cnJlbnQ/LmlkICE9PSBvcmlnaW5hbD8uaWQgfHwgY3VycmVudD8udmFsdWUgIT09IG9yaWdpbmFsPy52YWx1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGN1cnJlbnQgIT09IG9yaWdpbmFsO1xyXG5cclxuICAgICAgY2FzZSAnYm9vbGVhbic6XHJcbiAgICAgICAgcmV0dXJuIEJvb2xlYW4oY3VycmVudCkgIT09IEJvb2xlYW4ob3JpZ2luYWwpO1xyXG5cclxuICAgICAgY2FzZSAnZGF0ZSc6XHJcbiAgICAgICAgY29uc3QgY3VycmVudERhdGUgPSBuZXcgRGF0ZShjdXJyZW50KS5nZXRUaW1lKCk7XHJcbiAgICAgICAgY29uc3Qgb3JpZ2luYWxEYXRlID0gbmV3IERhdGUob3JpZ2luYWwpLmdldFRpbWUoKTtcclxuICAgICAgICByZXR1cm4gaXNOYU4oY3VycmVudERhdGUpIHx8IGlzTmFOKG9yaWdpbmFsRGF0ZSlcclxuICAgICAgICAgID8gY3VycmVudCAhPT0gb3JpZ2luYWxcclxuICAgICAgICAgIDogY3VycmVudERhdGUgIT09IG9yaWdpbmFsRGF0ZTtcclxuXHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGN1cnJlbnQpICE9PSBKU09OLnN0cmluZ2lmeShvcmlnaW5hbCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbn1cclxuXHJcblxyXG5cclxuXHJcbiJdfQ==
|