@firestitch/list 13.2.0 → 13.2.2
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/app/classes/data-controller.d.ts +2 -3
- package/app/classes/reorder-controller.d.ts +1 -2
- package/app/components/body/row/row.component.d.ts +1 -1
- package/esm2020/app/classes/data-controller.mjs +17 -21
- package/esm2020/app/classes/pagination-controller.mjs +9 -5
- package/esm2020/app/classes/reorder-controller.mjs +3 -3
- package/esm2020/app/components/body/body.component.mjs +2 -2
- package/esm2020/app/components/body/row/row.component.mjs +14 -15
- package/esm2020/app/enums/action-type.enum.mjs +1 -1
- package/fesm2015/firestitch-list.mjs +76 -80
- package/fesm2015/firestitch-list.mjs.map +1 -1
- package/fesm2020/firestitch-list.mjs +36 -37
- package/fesm2020/firestitch-list.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -18,9 +18,6 @@ export declare class DataController {
|
|
|
18
18
|
private _loadMoreEnabled;
|
|
19
19
|
private _hasData;
|
|
20
20
|
private readonly _destroy$;
|
|
21
|
-
constructor();
|
|
22
|
-
get visibleRows$(): BehaviorSubject<Row[]>;
|
|
23
|
-
get visibleRows(): any[];
|
|
24
21
|
get visibleRowsData(): any[];
|
|
25
22
|
get rowsStack(): Row[];
|
|
26
23
|
get groupEnabled(): boolean;
|
|
@@ -29,7 +26,9 @@ export declare class DataController {
|
|
|
29
26
|
get rowsRemoved$(): import("rxjs").Observable<Row[]>;
|
|
30
27
|
get hasData(): boolean;
|
|
31
28
|
get operation(): FsListState;
|
|
29
|
+
get visibleRows$(): BehaviorSubject<Row[]>;
|
|
32
30
|
set visibleRows(value: any[]);
|
|
31
|
+
get visibleRows(): any[];
|
|
33
32
|
get visibleRowsCount(): number;
|
|
34
33
|
get hasGroups(): (row: any) => any[];
|
|
35
34
|
get reorderData(): import("../interfaces/listconfig.interface").FsListReorderData[];
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { OnDestroy } from '@angular/core';
|
|
2
2
|
import { Observable } from 'rxjs';
|
|
3
3
|
import { FsListReorderConfig, FsListReorderDoneCallback, FsListReorderMovedCallback, FsListReorderMoveInGroupCallback } from '../interfaces';
|
|
4
|
-
import { DataController } from './data-controller';
|
|
5
4
|
import { ActionsController } from './actions-controller';
|
|
5
|
+
import { DataController } from './data-controller';
|
|
6
6
|
import { SelectionController } from './selection-controller';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
8
|
export declare enum ReorderPosition {
|
|
@@ -32,7 +32,6 @@ export declare class ReorderController implements OnDestroy {
|
|
|
32
32
|
private _position;
|
|
33
33
|
private _strategy;
|
|
34
34
|
private _destroy$;
|
|
35
|
-
constructor();
|
|
36
35
|
get enabled(): boolean;
|
|
37
36
|
set enabled(value: boolean);
|
|
38
37
|
get strategy(): ReorderStrategy | null;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { BehaviorSubject, Subject } from 'rxjs';
|
|
2
2
|
import { takeUntil } from 'rxjs/operators';
|
|
3
3
|
import { isFunction, isObject } from 'lodash-es';
|
|
4
|
-
import { FsListState } from '../enums/state.enum';
|
|
5
4
|
import { RowType } from '../enums/row-type.enum';
|
|
6
|
-
import {
|
|
7
|
-
import { ChildRow } from '../models/row/child-row';
|
|
5
|
+
import { FsListState } from '../enums/state.enum';
|
|
8
6
|
import { Row } from '../models/row';
|
|
7
|
+
import { ChildRow } from '../models/row/child-row';
|
|
9
8
|
import { GroupFooterRow } from '../models/row/group-footer-row';
|
|
9
|
+
import { GroupRow } from '../models/row/group-row';
|
|
10
10
|
export class DataController {
|
|
11
11
|
constructor() {
|
|
12
12
|
this._visibleRows$ = new BehaviorSubject([]);
|
|
@@ -19,12 +19,6 @@ export class DataController {
|
|
|
19
19
|
this._hasData = false;
|
|
20
20
|
this._destroy$ = new Subject();
|
|
21
21
|
}
|
|
22
|
-
get visibleRows$() {
|
|
23
|
-
return this._visibleRows$;
|
|
24
|
-
}
|
|
25
|
-
get visibleRows() {
|
|
26
|
-
return this._visibleRows$.getValue();
|
|
27
|
-
}
|
|
28
22
|
get visibleRowsData() {
|
|
29
23
|
return this.visibleRows.map((row) => row.data);
|
|
30
24
|
}
|
|
@@ -49,10 +43,16 @@ export class DataController {
|
|
|
49
43
|
get operation() {
|
|
50
44
|
return this._operation;
|
|
51
45
|
}
|
|
46
|
+
get visibleRows$() {
|
|
47
|
+
return this._visibleRows$;
|
|
48
|
+
}
|
|
52
49
|
set visibleRows(value) {
|
|
53
50
|
this._visibleRows$.next(value);
|
|
54
51
|
this._hasData = this.visibleRows.length > 0;
|
|
55
52
|
}
|
|
53
|
+
get visibleRows() {
|
|
54
|
+
return this._visibleRows$.getValue();
|
|
55
|
+
}
|
|
56
56
|
get visibleRowsCount() {
|
|
57
57
|
return this.visibleRows.length;
|
|
58
58
|
}
|
|
@@ -70,7 +70,7 @@ export class DataController {
|
|
|
70
70
|
this._footerRowFn = group.footer || (() => false);
|
|
71
71
|
this._initialExpand = group.initialExpand ?? true;
|
|
72
72
|
// group mode enabled by default
|
|
73
|
-
this._groupEnabled = (group.enabled !==
|
|
73
|
+
this._groupEnabled = (group.enabled !== undefined)
|
|
74
74
|
? group.enabled
|
|
75
75
|
: true;
|
|
76
76
|
}
|
|
@@ -138,9 +138,7 @@ export class DataController {
|
|
|
138
138
|
this._updateVisibleRows();
|
|
139
139
|
return true;
|
|
140
140
|
}
|
|
141
|
-
|
|
142
|
-
return false;
|
|
143
|
-
}
|
|
141
|
+
return false;
|
|
144
142
|
}
|
|
145
143
|
/**
|
|
146
144
|
* Update data for specified row
|
|
@@ -158,11 +156,9 @@ export class DataController {
|
|
|
158
156
|
this._updateVisibleRows();
|
|
159
157
|
return updateSuccess;
|
|
160
158
|
}
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
return updated;
|
|
165
|
-
}
|
|
159
|
+
const updated = this.updateRow(rows, trackBy);
|
|
160
|
+
this._updateVisibleRows();
|
|
161
|
+
return updated;
|
|
166
162
|
}
|
|
167
163
|
/**
|
|
168
164
|
* Remove data for specified row
|
|
@@ -288,7 +284,7 @@ export class DataController {
|
|
|
288
284
|
const targetIndex = this._rowsStack.findIndex((listRow) => trackBy(listRow.data, targetRow));
|
|
289
285
|
if (targetIndex !== -1) {
|
|
290
286
|
const updateTarget = this._rowsStack[targetIndex];
|
|
291
|
-
const updatedData =
|
|
287
|
+
const updatedData = { ...updateTarget.data, ...targetRow };
|
|
292
288
|
this._rowsStack[targetIndex] = new Row(updatedData, updateTarget.type, {
|
|
293
289
|
parent: updateTarget.parent,
|
|
294
290
|
initialExpand: updateTarget.expanded,
|
|
@@ -320,7 +316,7 @@ export class DataController {
|
|
|
320
316
|
if (!this._groupByFn || !this._compareByFn) {
|
|
321
317
|
return rows;
|
|
322
318
|
}
|
|
323
|
-
|
|
319
|
+
const groupRows = [];
|
|
324
320
|
const footerRows = new Map();
|
|
325
321
|
rows.forEach((row) => {
|
|
326
322
|
const mainGroup = this._groupByFn(row);
|
|
@@ -364,4 +360,4 @@ export class DataController {
|
|
|
364
360
|
}, []);
|
|
365
361
|
}
|
|
366
362
|
}
|
|
367
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1jb250cm9sbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9jbGFzc2VzL2RhdGEtY29udHJvbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFakQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQU1qRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBR2hFLE1BQU0sT0FBTyxjQUFjO0lBK0J6QjtRQTdCaUIsa0JBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBUSxFQUFFLENBQUMsQ0FBQztRQUMvQyxrQkFBYSxHQUFHLElBQUksT0FBTyxFQUFTLENBQUM7UUFDckMsdUJBQWtCLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUVsRCxXQUFNLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNuQixlQUFVLEdBQVUsRUFBRSxDQUFDO1FBY3ZCLG1CQUFjLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBS3RCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFFUixjQUFTLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQUVsQyxDQUFDO0lBRWhCLElBQUksWUFBWTtRQUNk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LFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxjQUFjLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO2FBQ3RFO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQzthQUNwQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUU7WUFDcEIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNoQixHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUNsQztpQkFBTTtnQkFDTCxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ2hCO1lBRUQsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDWCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IGlzRnVuY3Rpb24sIGlzT2JqZWN0IH0gZnJvbSAnbG9kYXNoLWVzJztcblxuaW1wb3J0IHsgRnNMaXN0U3RhdGUgfSBmcm9tICcuLi9lbnVtcy9zdGF0ZS5lbnVtJztcbmltcG9ydCB7IFJvd1R5cGUgfSBmcm9tICcuLi9lbnVtcy9yb3ctdHlwZS5lbnVtJztcbmltcG9ydCB7XG4gIEZzTGlzdEFic3RyYWN0Um93LFxuICBGc0xpc3RHcm91cENvbmZpZyxcbiAgRnNMaXN0VHJhY2tCeVRhcmdldFJvd0ZuXG59IGZyb20gJy4uL2ludGVyZmFjZXMvbGlzdGNvbmZpZy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgR3JvdXBSb3cgfSBmcm9tICcuLi9tb2RlbHMvcm93L2dyb3VwLXJvdyc7XG5pbXBvcnQgeyBDaGlsZFJvdyB9IGZyb20gJy4uL21vZGVscy9yb3cvY2hpbGQtcm93JztcbmltcG9ydCB7IFJvdyB9IGZyb20gJy4uL21vZGVscy9yb3cnO1xuaW1wb3J0IHsgR3JvdXBGb290ZXJSb3cgfSBmcm9tICcuLi9tb2RlbHMvcm93L2dyb3VwLWZvb3Rlci1yb3cnO1xuXG5cbmV4cG9ydCBjbGFzcyBEYXRhQ29udHJvbGxlciB7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfdmlzaWJsZVJvd3MkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxSb3dbXT4oW10pO1xuICBwcml2YXRlIHJlYWRvbmx5IF9yb3dzUmVtb3ZlZCQgPSBuZXcgU3ViamVjdDxSb3dbXT4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfcmVtb3RlUm93c0NoYW5nZSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHByaXZhdGUgX3N0b3JlID0gbmV3IE1hcCgpO1xuICBwcml2YXRlIF9yb3dzU3RhY2s6IFJvd1tdID0gW107XG4gIHByaXZhdGUgX29wZXJhdGlvbjogRnNMaXN0U3RhdGU7XG5cbiAgcHJpdmF0ZSBfZ3JvdXBCeUZuOiAocm93KSA9PiBhbnlbXTtcbiAgcHJpdmF0ZSBfZm9vdGVyUm93Rm46IChcbiAgICByb3c6IHsgW2tleTogc3RyaW5nXTogYW55IH0sXG4gICAgZ3JvdXA6IHtcbiAgICAgIFtrZXk6IHN0cmluZ106IGFueSxcbiAgICAgIGNoaWxkcmVuOiB7XG4gICAgICAgIFtrZXk6IHN0cmluZ106IGFueVxuICAgICAgfVtdLFxuICAgIH1cbiAgKSA9PiBib29sZWFuO1xuICBwcml2YXRlIF9jb21wYXJlQnlGbjogKGdyb3VwKSA9PiBhbnk7XG4gIHByaXZhdGUgX2luaXRpYWxFeHBhbmQgPSB0cnVlO1xuICBwcml2YXRlIF9ncm91cEVuYWJsZWQgPSBmYWxzZTtcblxuICBwcml2YXRlIF9pbmZpbml0eVNjcm9sbEVuYWJsZWQ6IGJvb2xlYW47XG4gIHByaXZhdGUgX2xvYWRNb3JlRW5hYmxlZDogYm9vbGVhbjtcblxuICBwcml2YXRlIF9oYXNEYXRhID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBnZXQgdmlzaWJsZVJvd3MkKCkge1xuICAgIHJldHVybiB0aGlzLl92aXNpYmxlUm93cyQ7XG4gIH1cblxuICBnZXQgdmlzaWJsZVJvd3MoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3Zpc2libGVSb3dzJC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgZ2V0IHZpc2libGVSb3dzRGF0YSgpIHtcbiAgICByZXR1cm4gdGhpcy52aXNpYmxlUm93cy5tYXAoKHJvdykgPT4gcm93LmRhdGEpO1xuICB9XG5cbiAgZ2V0IHJvd3NTdGFjaygpIHtcbiAgICByZXR1cm4gdGhpcy5fcm93c1N0YWNrLnNsaWNlKCk7XG4gIH1cblxuICBnZXQgZ3JvdXBFbmFibGVkKCkge1xuICAgIHJldHVybiB0aGlzLl9ncm91cEVuYWJsZWQ7XG4gIH1cblxuICBzZXQgZ3JvdXBFbmFibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fZ3JvdXBFbmFibGVkID0gdmFsdWU7XG4gIH1cblxuICBnZXQgcmVtb3RlUm93c0NoYW5nZSQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3JlbW90ZVJvd3NDaGFuZ2UkLnBpcGUoXG4gICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICk7XG4gIH1cblxuICBnZXQgcm93c1JlbW92ZWQkKCkge1xuICAgIHJldHVybiB0aGlzLl9yb3dzUmVtb3ZlZCQucGlwZShcbiAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgKTtcbiAgfVxuXG4gIGdldCBoYXNEYXRhKCkge1xuICAgIHJldHVybiB0aGlzLl9oYXNEYXRhO1xuICB9XG5cbiAgZ2V0IG9wZXJhdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5fb3BlcmF0aW9uO1xuICB9XG5cbiAgc2V0IHZpc2libGVSb3dzKHZhbHVlOiBhbnlbXSkge1xuICAgIHRoaXMuX3Zpc2libGVSb3dzJC5uZXh0KHZhbHVlKTtcbiAgICB0aGlzLl9oYXNEYXRhID0gdGhpcy52aXNpYmxlUm93cy5sZW5ndGggPiAwO1xuICB9XG5cbiAgZ2V0IHZpc2libGVSb3dzQ291bnQoKSB7XG4gICAgcmV0dXJuIHRoaXMudmlzaWJsZVJvd3MubGVuZ3RoO1xuICB9XG5cbiAgZ2V0IGhhc0dyb3VwcygpIHtcbiAgICByZXR1cm4gdGhpcy5fY29tcGFyZUJ5Rm4gJiYgdGhpcy5fZ3JvdXBCeUZuO1xuICB9XG5cbiAgZ2V0IHJlb3JkZXJEYXRhKCkge1xuICAgIHJldHVybiB0aGlzLl9yb3dzU3RhY2tcbiAgICAgIC5tYXAoKHJvdykgPT4gcm93LmdldFJlb3JkZXJEYXRhKCkpO1xuICB9XG5cbiAgcHVibGljIHNldEdyb3VwQ29uZmlnKGdyb3VwOiBGc0xpc3RHcm91cENvbmZpZykge1xuICAgIGlmIChncm91cCkge1xuICAgICAgdGhpcy5fZ3JvdXBCeUZuID0gZ3JvdXAuZ3JvdXBCeTtcbiAgICAgIHRoaXMuX2NvbXBhcmVCeUZuID0gZ3JvdXAuY29tcGFyZUJ5O1xuICAgICAgdGhpcy5fZm9vdGVyUm93Rm4gPSBncm91cC5mb290ZXIgfHwgKCgpID0+IGZhbHNlKTtcbiAgICAgIHRoaXMuX2luaXRpYWxFeHBhbmQgPSBncm91cC5pbml0aWFsRXhwYW5kID8/IHRydWU7XG5cbiAgICAgIC8vIGdyb3VwIG1vZGUgZW5hYmxlZCBieSBkZWZhdWx0XG4gICAgICB0aGlzLl9ncm91cEVuYWJsZWQgPSAoZ3JvdXAuZW5hYmxlZCAhPT0gdm9pZCAwKVxuICAgICAgICA/IGdyb3VwLmVuYWJsZWRcbiAgICAgICAgOiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZXRBZGRpdGlvbmFsQ29uZmlncyhjb25maWdzOiB7IHNjcm9sbGFibGU6IGJvb2xlYW4sIGxvYWRNb3JlRW5hYmxlZDogYm9vbGVhbiB9KSB7XG4gICAgdGhpcy5faW5maW5pdHlTY3JvbGxFbmFibGVkID0gY29uZmlncy5zY3JvbGxhYmxlO1xuICAgIHRoaXMuX2xvYWRNb3JlRW5hYmxlZCA9IGNvbmZpZ3MubG9hZE1vcmVFbmFibGVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFJvd3Mgd2hhdCB3YXMgcmVjZWl2ZWQgZnJvbSBmZXRjaCBmdW5jdGlvblxuICAgKiBAcGFyYW0gcm93c1xuICAgKi9cbiAgcHVibGljIHNldFJvd3NGcm9tUmVzcG9uc2Uocm93czogYW55W10pIHtcbiAgICBpZiAodGhpcy5faW5maW5pdHlTY3JvbGxFbmFibGVkKSB7XG4gICAgICBzd2l0Y2ggKHRoaXMuX29wZXJhdGlvbikge1xuICAgICAgICBjYXNlIEZzTGlzdFN0YXRlLkZpbHRlcjpcbiAgICAgICAgY2FzZSBGc0xpc3RTdGF0ZS5SZWxvYWQ6XG4gICAgICAgIGNhc2UgRnNMaXN0U3RhdGUuU29ydDoge1xuICAgICAgICAgIHRoaXMuX3VwZGF0ZVJvd3NTdGFjayhyb3dzKTtcbiAgICAgICAgfSBicmVhaztcblxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgdGhpcy5fZXh0ZW5kUm93c1N0YWNrKHJvd3MpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHRoaXMuX3JlbW90ZVJvd3NDaGFuZ2UkLm5leHQoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKFxuICAgICAgICB0aGlzLl9vcGVyYXRpb24gPT09IEZzTGlzdFN0YXRlLkxvYWRNb3JlIHx8XG4gICAgICAgICh0aGlzLl9vcGVyYXRpb24gPT09IEZzTGlzdFN0YXRlLlBhZ2VDaGFuZ2UgJiYgdGhpcy5fbG9hZE1vcmVFbmFibGVkKVxuICAgICAgKSB7XG4gICAgICAgIHRoaXMuX2V4dGVuZFJvd3NTdGFjayhyb3dzKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX3VwZGF0ZVJvd3NTdGFjayhyb3dzKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLl9vcGVyYXRpb24gPSBGc0xpc3RTdGF0ZS5JZGxlO1xuXG4gICAgdGhpcy5fdXBkYXRlVmlzaWJsZVJvd3MoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgY3VycmVudCBvcGVyYXRpb24gZm9yIGxpc3QgZGF0YSBmbG93XG4gICAqIEBwYXJhbSB2YWx1ZVxuICAgKi9cbiAgcHVibGljIHNldE9wZXJhdGlvbih2YWx1ZTogRnNMaXN0U3RhdGUpIHtcbiAgICB0aGlzLl9vcGVyYXRpb24gPSB2YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgcm93cyBmcm9tIHZpc2libGVcbiAgICovXG4gIHB1YmxpYyBjbGVhclJvd3MoKSB7XG4gICAgdGhpcy52aXNpYmxlUm93cyA9IFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlcGxhY2UgZGF0YSBmb3Igc3BlY2lmaWVkIHJvd1xuICAgKiBAcGFyYW0gdGFyZ2V0Um93XG4gICAqIEBwYXJhbSB0cmFja0J5XG4gICAqL1xuICBwdWJsaWMgcmVwbGFjZURhdGEoXG4gICAgdGFyZ2V0Um93OiBGc0xpc3RBYnN0cmFjdFJvdyxcbiAgICB0cmFja0J5PzogRnNMaXN0VHJhY2tCeVRhcmdldFJvd0ZuXG4gICkge1xuICAgIGNvbnN0IHJvd0luZGV4ID0gdGhpcy5fcm93c1N0YWNrLmZpbmRJbmRleCgobGlzdFJvdykgPT4ge1xuICAgICAgcmV0dXJuIHRyYWNrQnkobGlzdFJvdy5kYXRhLCB0YXJnZXRSb3cpO1xuICAgIH0pO1xuXG4gICAgaWYgKHJvd0luZGV4ID4gLTEpIHtcbiAgICAgIHRoaXMuX3Jvd3NTdGFja1tyb3dJbmRleF0gPSBuZXcgUm93KFxuICAgICAgICB0YXJnZXRSb3csXG4gICAgICAgIFJvd1R5cGUuU2ltcGxlLFxuICAgICAgICB7IGluaXRpYWxFeHBhbmQ6IHRoaXMuX2luaXRpYWxFeHBhbmQgfVxuICAgICAgKTtcblxuICAgICAgdGhpcy5fdXBkYXRlVmlzaWJsZVJvd3MoKTtcblxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgZGF0YSBmb3Igc3BlY2lmaWVkIHJvd1xuICAgKiBAcGFyYW0gcm93c1xuICAgKiBAcGFyYW0gdHJhY2tCeVxuICAgKi9cbiAgcHVibGljIHVwZGF0ZURhdGEoXG4gICAgcm93czogRnNMaXN0QWJzdHJhY3RSb3cgfCBGc0xpc3RBYnN0cmFjdFJvd1tdLFxuICAgIHRyYWNrQnk/OiBGc0xpc3RUcmFja0J5VGFyZ2V0Um93Rm4sXG4gICk6IGJvb2xlYW4ge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHJvd3MpKSB7XG4gICAgICBsZXQgdXBkYXRlU3VjY2VzcyA9IGZhbHNlO1xuXG4gICAgICByb3dzLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgaWYgKHRoaXMudXBkYXRlUm93KGl0ZW0sIHRyYWNrQnkpKSB7XG4gICAgICAgICAgdXBkYXRlU3VjY2VzcyA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLl91cGRhdGVWaXNpYmxlUm93cygpO1xuXG4gICAgICByZXR1cm4gdXBkYXRlU3VjY2VzcztcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgdXBkYXRlZCA9IHRoaXMudXBkYXRlUm93KHJvd3MsIHRyYWNrQnkpO1xuXG4gICAgICB0aGlzLl91cGRhdGVWaXNpYmxlUm93cygpO1xuXG4gICAgICByZXR1cm4gdXBkYXRlZDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIGRhdGEgZm9yIHNwZWNpZmllZCByb3dcbiAgICogQHBhcmFtIGRhdGFcbiAgICovXG4gIHB1YmxpYyByZW1vdmVEYXRhKGRhdGE6IEZzTGlzdEFic3RyYWN0Um93IHwgRnNMaXN0QWJzdHJhY3RSb3dbXSB8IEZzTGlzdFRyYWNrQnlUYXJnZXRSb3dGbik6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHJlbW92ZWRSb3dzID0gW107XG5cbiAgICBjb25zdCBkZWZhdWx0VHJhY2tCeSA9IChyb3csIHRhcmdldCkgPT4ge1xuICAgICAgcmV0dXJuIHJvdyA9PT0gdGFyZ2V0O1xuICAgIH07XG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheShkYXRhKSkge1xuICAgICAgLy9cbiAgICAgIGRhdGEuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICByZW1vdmVkUm93cy5wdXNoKC4uLnRoaXMucmVtb3ZlUm93KGl0ZW0sIGRlZmF1bHRUcmFja0J5KSk7XG4gICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKGlzRnVuY3Rpb24oZGF0YSkpIHtcbiAgICAgIHJlbW92ZWRSb3dzLnB1c2goLi4udGhpcy5yZW1vdmVSb3cobnVsbCwgKGRhdGEgYXMgRnNMaXN0VHJhY2tCeVRhcmdldFJvd0ZuKSkpO1xuICAgIH0gZWxzZSBpZiAoaXNPYmplY3QoZGF0YSkpIHtcbiAgICAgIHJlbW92ZWRSb3dzLnB1c2goLi4udGhpcy5yZW1vdmVSb3coZGF0YSwgZGVmYXVsdFRyYWNrQnkpKTtcbiAgICB9XG5cbiAgICBpZiAocmVtb3ZlZFJvd3MubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5fdXBkYXRlVmlzaWJsZVJvd3MoKTtcblxuICAgICAgdGhpcy5fcm93c1JlbW92ZWQkLm5leHQocmVtb3ZlZFJvd3MpXG4gICAgfVxuXG4gICAgcmV0dXJuICEhcmVtb3ZlZFJvd3MubGVuZ3RoO1xuICB9XG5cbiAgcHVibGljIHN3YXBSb3dzKHJvdzEsIHJvdzIsIHNlbGVjdGVkUm93cz86IFJvd1tdLCBpc011bHRpcGxlRHJhZyA9IGZhbHNlKSB7XG4gICAgbGV0IHRtcEVsO1xuICAgIGNvbnN0IHJvd3NTdGFjayA9IHRoaXMuX3Jvd3NTdGFjaztcbiAgICBjb25zdCByb3cxR2xvYmFsSW5kZXggPSByb3dzU3RhY2suaW5kZXhPZihyb3cxKTtcbiAgICBjb25zdCByb3cyR2xvYmFsSW5kZXggPSByb3dzU3RhY2suaW5kZXhPZihyb3cyKTtcblxuICAgIHRtcEVsID0gcm93c1N0YWNrW3JvdzFHbG9iYWxJbmRleF07XG4gICAgcm93c1N0YWNrW3JvdzFHbG9iYWxJbmRleF0gPSByb3dzU3RhY2tbcm93Mkdsb2JhbEluZGV4XTtcbiAgICByb3dzU3RhY2tbcm93Mkdsb2JhbEluZGV4XSA9IHRtcEVsO1xuXG4gICAgaWYgKGlzTXVsdGlwbGVEcmFnICYmIEFycmF5LmlzQXJyYXkoc2VsZWN0ZWRSb3dzKSkge1xuICAgICAgaWYgKCFzZWxlY3RlZFJvd3MuaW5jbHVkZXMocm93MSkpIHtcbiAgICAgICAgc2VsZWN0ZWRSb3dzID0gW3JvdzEsIC4uLnNlbGVjdGVkUm93c107XG4gICAgICB9XG5cbiAgICAgIHNlbGVjdGVkUm93c1xuICAgICAgICAuZmlsdGVyKChzZWxlY3RlZFJvdykgPT4ge1xuICAgICAgICAgIHJldHVybiBzZWxlY3RlZFJvdyAhPT0gcm93MTtcbiAgICAgICAgfSlcbiAgICAgICAgLmZvckVhY2goKHNlbGVjdGVkUm93KSA9PiB7XG4gICAgICAgICAgY29uc3QgaWR4ID0gcm93c1N0YWNrLmluZGV4T2Yoc2VsZWN0ZWRSb3cpO1xuICAgICAgICAgIHJvd3NTdGFjay5zcGxpY2UoaWR4LCAxKTtcbiAgICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IGluZGV4VG9JbnNlcnRBZnRlciA9IHJvd3NTdGFjay5pbmRleE9mKHRtcEVsKTtcblxuICAgICAgcm93c1N0YWNrLnNwbGljZShpbmRleFRvSW5zZXJ0QWZ0ZXIsIDEpO1xuXG4gICAgICBzZWxlY3RlZFJvd3MuZm9yRWFjaCgoc2VsZWN0ZWRSb3csIG9mZnNldCkgPT4ge1xuICAgICAgICByb3dzU3RhY2suc3BsaWNlKGluZGV4VG9JbnNlcnRBZnRlciArIG9mZnNldCwgMCwgc2VsZWN0ZWRSb3cpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy5fcm93c1N0YWNrID0gWyAuLi5yb3dzU3RhY2sgXTtcbiAgfVxuXG4gIHB1YmxpYyBkZXN0cm95KCkge1xuICAgIHRoaXMuX2Rlc3Ryb3lSb3dzU3RhY2soKTtcbiAgICB0aGlzLl9zdG9yZS5jbGVhcigpO1xuXG4gICAgdGhpcy5fZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuX2Rlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlUm93R3JvdXAocm93RGF0YSkge1xuICAgIGNvbnN0IHJvdyA9IHRoaXMudmlzaWJsZVJvd3MuZmluZCgodmlzaWJsZVJvdykgPT4gdmlzaWJsZVJvdy5kYXRhID09PSByb3dEYXRhICk7XG4gICAgcm93LnRvZ2dsZVJvd0V4cGFuZFN0YXR1cygpO1xuXG4gICAgdGhpcy5fdXBkYXRlVmlzaWJsZVJvd3MoKTtcbiAgfVxuXG4gIHB1YmxpYyBmaW5pc2hSZW9yZGVyKCk6IHZvaWQge1xuICAgIC8vIFRPRE8gZml4bWUgcmVtb3ZlIG9yIGltcHJvdmVcbiAgICBpZiAodGhpcy5ncm91cEVuYWJsZWQpIHtcbiAgICAgIGxldCBncm91cDtcbiAgICAgIHRoaXMuX3Jvd3NTdGFja1xuICAgICAgICAuZm9yRWFjaCgocm93LCBpbmRleCkgPT4ge1xuICAgICAgICAgIGlmIChyb3cuaXNHcm91cCAmJiByb3cgIT09IGdyb3VwKSB7XG4gICAgICAgICAgICBncm91cCA9IHJvdztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcm93LmluZGV4ID0gaW5kZXggLSB0aGlzLl9yb3dzU3RhY2suaW5kZXhPZihncm91cCkgLSAxO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy5fdXBkYXRlVmlzaWJsZVJvd3MoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZVJvd3NTdGFjayhyb3dzKSB7XG4gICAgdGhpcy5fZGVzdHJveVJvd3NTdGFjaygpO1xuXG4gICAgaWYgKHRoaXMuZ3JvdXBFbmFibGVkKSB7XG4gICAgICB0aGlzLl9zdG9yZS5jbGVhcigpO1xuICAgICAgdGhpcy5fcm93c1N0YWNrID0gWy4uLnRoaXMuZ3JvdXBSb3dzQnkocm93cyldO1xuICAgIH0gZWxzZSB7XG4gICAgICByb3dzID0gcm93cy5tYXAoKHJvdykgPT4ge1xuICAgICAgICByZXR1cm4gbmV3IFJvdyhcbiAgICAgICAgICByb3csXG4gICAgICAgICAgUm93VHlwZS5TaW1wbGUsXG4gICAgICAgICAgeyBpbml0aWFsRXhwYW5kOiB0aGlzLl9pbml0aWFsRXhwYW5kIH0sXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMuX3Jvd3NTdGFjayA9IFsuLi5yb3dzXTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9leHRlbmRSb3dzU3RhY2socm93cykge1xuICAgIGlmICh0aGlzLmdyb3VwRW5hYmxlZCkge1xuICAgICAgdGhpcy5fcm93c1N0YWNrID0gWy4uLnRoaXMuZ3JvdXBSb3dzQnkocm93cyldO1xuICAgIH0gZWxzZSB7XG4gICAgICByb3dzID0gcm93cy5tYXAoKHJvdykgPT4ge1xuICAgICAgICByZXR1cm4gbmV3IFJvdyhcbiAgICAgICAgICByb3csXG4gICAgICAgICAgUm93VHlwZS5TaW1wbGUsXG4gICAgICAgICAgeyBpbml0aWFsRXhwYW5kOiB0aGlzLl9pbml0aWFsRXhwYW5kIH0sXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMuX3Jvd3NTdGFjayA9IFsuLi50aGlzLl9yb3dzU3RhY2ssIC4uLnJvd3NdO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2Rlc3Ryb3lSb3dzU3RhY2soKSB7XG4gICAgdGhpcy5fcm93c1N0YWNrLmZvckVhY2goKHJvdykgPT4gcm93LmRlc3Ryb3koKSk7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVWaXNpYmxlUm93cygpIHtcbiAgICB0aGlzLnZpc2libGVSb3dzID0gdGhpcy5fcm93c1N0YWNrXG4gICAgICAuZmlsdGVyKChyb3csIGluZGV4KSA9PiB7XG4gICAgICAgIHJldHVybiAoIShyb3cgYXMgYW55KS5pc0NoaWxkICYmICFyb3cuaXNHcm91cEZvb3RlcikgfHwgcm93LnZpc2libGU7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlUm93KFxuICAgIHRhcmdldFJvdzogRnNMaXN0QWJzdHJhY3RSb3csXG4gICAgdHJhY2tCeT86IChsaXN0Um93OiBGc0xpc3RBYnN0cmFjdFJvdywgdGFyZ2V0Um93PzogRnNMaXN0QWJzdHJhY3RSb3cpID0+IGJvb2xlYW4pIHtcblxuICAgIGlmICh0cmFja0J5ID09PSB2b2lkIDApIHtcbiAgICAgIHRyYWNrQnkgPSAocm93LCB0YXJnZXQpID0+IHtcbiAgICAgICAgcmV0dXJuIHJvdyA9PT0gdGFyZ2V0O1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHRhcmdldEluZGV4ID0gdGhpcy5fcm93c1N0YWNrLmZpbmRJbmRleCgobGlzdFJvdykgPT4gdHJhY2tCeShsaXN0Um93LmRhdGEsIHRhcmdldFJvdykpO1xuXG4gICAgaWYgKHRhcmdldEluZGV4ICE9PSAtMSkge1xuICAgICAgY29uc3QgdXBkYXRlVGFyZ2V0ID0gdGhpcy5fcm93c1N0YWNrW3RhcmdldEluZGV4XTtcbiAgICAgIGNvbnN0IHVwZGF0ZWREYXRhID0gT2JqZWN0LmFzc2lnbih7fSwgdXBkYXRlVGFyZ2V0LmRhdGEsIHRhcmdldFJvdyk7XG5cbiAgICAgIHRoaXMuX3Jvd3NTdGFja1t0YXJnZXRJbmRleF0gPSBuZXcgUm93KFxuICAgICAgICB1cGRhdGVkRGF0YSxcbiAgICAgICAgdXBkYXRlVGFyZ2V0LnR5cGUsXG4gICAgICAgIHtcbiAgICAgICAgICBwYXJlbnQ6IHVwZGF0ZVRhcmdldC5wYXJlbnQsXG4gICAgICAgICAgaW5pdGlhbEV4cGFuZDogdXBkYXRlVGFyZ2V0LmV4cGFuZGVkLFxuICAgICAgICB9XG4gICAgICApO1xuXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIHJvdyBmcm9tXG4gICAqIEBwYXJhbSB0YXJnZXRSb3dcbiAgICogQHBhcmFtIHRyYWNrQnlcbiAgICovXG4gIHByaXZhdGUgcmVtb3ZlUm93KFxuICAgIHRhcmdldFJvdzogRnNMaXN0QWJzdHJhY3RSb3cgfCBudWxsLFxuICAgIHRyYWNrQnk/OiBGc0xpc3RUcmFja0J5VGFyZ2V0Um93Rm5cbiAgKSB7XG5cbiAgICBjb25zdCByb3dzID0gdGhpcy5fcm93c1N0YWNrO1xuICAgIGNvbnN0IHJlbW92ZWRSb3dzID0gW107XG5cbiAgICByb3dzLmZvckVhY2goKGxpc3RSb3csIGluZGV4KSA9PiB7XG4gICAgICBpZiAodHJhY2tCeShsaXN0Um93LmRhdGEsIHRhcmdldFJvdykpIHtcbiAgICAgICAgY29uc3QgcmVtb3ZlZFJvdyA9IHJvd3Muc3BsaWNlKGluZGV4LCAxKTtcblxuICAgICAgICByZW1vdmVkUm93cy5wdXNoKHJlbW92ZWRSb3cpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHJlbW92ZWRSb3dzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNwbGl0IGV4aXN0aW5nIHJvd3MgYnkgZ3JvdXBzIGFuZCBzdG9yZSB0aGVtIGZvciBmdXR1cmUgdXNlXG4gICAqL1xuICBwcml2YXRlIGdyb3VwUm93c0J5KHJvd3MpIHtcbiAgICBpZiAoIXRoaXMuX2dyb3VwQnlGbiB8fCAhdGhpcy5fY29tcGFyZUJ5Rm4pIHsgcmV0dXJuIHJvd3MgfVxuXG4gICAgbGV0IGdyb3VwUm93czogR3JvdXBSb3dbXSA9IFtdO1xuICAgIGNvbnN0IGZvb3RlclJvd3MgPSBuZXcgTWFwKCk7XG5cbiAgICByb3dzLmZvckVhY2goKHJvdykgPT4ge1xuICAgICAgY29uc3QgbWFpbkdyb3VwID0gdGhpcy5fZ3JvdXBCeUZuKHJvdyk7XG4gICAgICBjb25zdCBtYWluR3JvdXBLZXkgPSB0aGlzLl9jb21wYXJlQnlGbihtYWluR3JvdXApO1xuXG4gICAgICBpZiAoIXRoaXMuX3N0b3JlLmhhcyhtYWluR3JvdXBLZXkpKSB7XG4gICAgICAgIGNvbnN0IGdyb3VwID0gbmV3IEdyb3VwUm93KFxuICAgICAgICAgIG1haW5Hcm91cCxcbiAgICAgICAgICB0aGlzLl9pbml0aWFsRXhwYW5kLFxuICAgICAgICApO1xuXG4gICAgICAgIGdyb3VwLmluZGV4ID0gZ3JvdXBSb3dzLmxlbmd0aDtcbiAgICAgICAgZ3JvdXBSb3dzLnB1c2goZ3JvdXApO1xuXG4gICAgICAgIGNvbnN0IGNoaWxkUm93ID0gbmV3IENoaWxkUm93KHJvdywgZ3JvdXApO1xuXG4gICAgICAgIHRoaXMuX3N0b3JlLnNldChtYWluR3JvdXBLZXksIGdyb3VwKTtcbiAgICAgICAgZ3JvdXAuY2hpbGRyZW4ucHVzaChjaGlsZFJvdyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBncm91cCA9IHRoaXMuX3N0b3JlLmdldChtYWluR3JvdXBLZXkpO1xuICAgICAgICBjb25zdCBjaGlsZFJvdyA9IG5ldyBDaGlsZFJvdyhyb3csIGdyb3VwKTtcblxuICAgICAgICBncm91cC5jaGlsZHJlbi5wdXNoKGNoaWxkUm93KTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGdyb3VwUm93cy5mb3JFYWNoKChncm91cFJvdykgPT4ge1xuICAgICAgY29uc3QgZm9vdGVySW5kZXggPSBncm91cFJvdy5jaGlsZHJlblxuICAgICAgICAuZmluZEluZGV4KChyb3cpID0+IHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5fZm9vdGVyUm93Rm4ocm93LmRhdGEsIHtcbiAgICAgICAgICAgIC4uLmdyb3VwUm93LmRhdGEsXG4gICAgICAgICAgICBjaGlsZHJlbjogZ3JvdXBSb3cuY2hpbGRyZW5EYXRhLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgaWYgKGZvb3RlckluZGV4ICE9PSAtMSkge1xuICAgICAgICBjb25zdCBmb290ZXJSb3cgPSBncm91cFJvdy5jaGlsZHJlbi5zcGxpY2UoZm9vdGVySW5kZXgsIGZvb3RlckluZGV4ICsgMSlbMF07XG4gICAgICAgIGdyb3VwUm93LmNoaWxkcmVuLnB1c2gobmV3IEdyb3VwRm9vdGVyUm93KGZvb3RlclJvdy5kYXRhLCBncm91cFJvdykpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5fc3RvcmUudmFsdWVzKCkpXG4gICAgICAucmVkdWNlKChhY2MsIGl0ZW0pID0+IHtcbiAgICAgICAgaWYgKGl0ZW0uaXNHcm91cCkge1xuICAgICAgICAgIGFjYy5wdXNoKGl0ZW0sIC4uLml0ZW0uY2hpbGRyZW4pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGFjYy5wdXNoKGl0ZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sIFtdKTtcbiAgfVxufVxuIl19
|
|
363
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1jb250cm9sbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9jbGFzc2VzL2RhdGEtY29udHJvbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFakQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQU1sRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDaEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBR25ELE1BQU0sT0FBTyxjQUFjO0lBQTNCO1FBRW1CLGtCQUFhLEdBQUcsSUFBSSxlQUFlLENBQVEsRUFBRSxDQUFDLENBQUM7UUFDL0Msa0JBQWEsR0FBRyxJQUFJLE9BQU8sRUFBUyxDQUFDO1FBQ3JDLHVCQUFrQixHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFFbEQsV0FBTSxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7UUFDbkIsZUFBVSxHQUFVLEVBQUUsQ0FBQztRQWN2QixtQkFBYyxHQUFHLElBQUksQ0FBQztRQUN0QixrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUt0QixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRVIsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFxY25ELENBQUM7SUFuY0MsSUFBVyxlQUFlO1FBQ3hC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QUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQzthQUN0RTtRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7YUFDcEMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFO1lBQ3BCLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDaEIsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDbEM7aUJBQU07Z0JBQ0wsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNoQjtZQUVELE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IGlzRnVuY3Rpb24sIGlzT2JqZWN0IH0gZnJvbSAnbG9kYXNoLWVzJztcblxuaW1wb3J0IHsgUm93VHlwZSB9IGZyb20gJy4uL2VudW1zL3Jvdy10eXBlLmVudW0nO1xuaW1wb3J0IHsgRnNMaXN0U3RhdGUgfSBmcm9tICcuLi9lbnVtcy9zdGF0ZS5lbnVtJztcbmltcG9ydCB7XG4gIEZzTGlzdEFic3RyYWN0Um93LFxuICBGc0xpc3RHcm91cENvbmZpZyxcbiAgRnNMaXN0VHJhY2tCeVRhcmdldFJvd0ZuLFxufSBmcm9tICcuLi9pbnRlcmZhY2VzL2xpc3Rjb25maWcuaW50ZXJmYWNlJztcbmltcG9ydCB7IFJvdyB9IGZyb20gJy4uL21vZGVscy9yb3cnO1xuaW1wb3J0IHsgQ2hpbGRSb3cgfSBmcm9tICcuLi9tb2RlbHMvcm93L2NoaWxkLXJvdyc7XG5pbXBvcnQgeyBHcm91cEZvb3RlclJvdyB9IGZyb20gJy4uL21vZGVscy9yb3cvZ3JvdXAtZm9vdGVyLXJvdyc7XG5pbXBvcnQgeyBHcm91cFJvdyB9IGZyb20gJy4uL21vZGVscy9yb3cvZ3JvdXAtcm93JztcblxuXG5leHBvcnQgY2xhc3MgRGF0YUNvbnRyb2xsZXIge1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3Zpc2libGVSb3dzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Um93W10+KFtdKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfcm93c1JlbW92ZWQkID0gbmV3IFN1YmplY3Q8Um93W10+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3JlbW90ZVJvd3NDaGFuZ2UkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwcml2YXRlIF9zdG9yZSA9IG5ldyBNYXAoKTtcbiAgcHJpdmF0ZSBfcm93c1N0YWNrOiBSb3dbXSA9IFtdO1xuICBwcml2YXRlIF9vcGVyYXRpb246IEZzTGlzdFN0YXRlO1xuXG4gIHByaXZhdGUgX2dyb3VwQnlGbjogKHJvdykgPT4gYW55W107XG4gIHByaXZhdGUgX2Zvb3RlclJvd0ZuOiAoXG4gICAgcm93OiB7IFtrZXk6IHN0cmluZ106IGFueSB9LFxuICAgIGdyb3VwOiB7XG4gICAgICBba2V5OiBzdHJpbmddOiBhbnksXG4gICAgICBjaGlsZHJlbjoge1xuICAgICAgICBba2V5OiBzdHJpbmddOiBhbnlcbiAgICAgIH1bXSxcbiAgICB9XG4gICkgPT4gYm9vbGVhbjtcbiAgcHJpdmF0ZSBfY29tcGFyZUJ5Rm46IChncm91cCkgPT4gYW55O1xuICBwcml2YXRlIF9pbml0aWFsRXhwYW5kID0gdHJ1ZTtcbiAgcHJpdmF0ZSBfZ3JvdXBFbmFibGVkID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfaW5maW5pdHlTY3JvbGxFbmFibGVkOiBib29sZWFuO1xuICBwcml2YXRlIF9sb2FkTW9yZUVuYWJsZWQ6IGJvb2xlYW47XG5cbiAgcHJpdmF0ZSBfaGFzRGF0YSA9IGZhbHNlO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwdWJsaWMgZ2V0IHZpc2libGVSb3dzRGF0YSgpIHtcbiAgICByZXR1cm4gdGhpcy52aXNpYmxlUm93cy5tYXAoKHJvdykgPT4gcm93LmRhdGEpO1xuICB9XG5cbiAgcHVibGljIGdldCByb3dzU3RhY2soKSB7XG4gICAgcmV0dXJuIHRoaXMuX3Jvd3NTdGFjay5zbGljZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBncm91cEVuYWJsZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2dyb3VwRW5hYmxlZDtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgZ3JvdXBFbmFibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fZ3JvdXBFbmFibGVkID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHJlbW90ZVJvd3NDaGFuZ2UkKCkge1xuICAgIHJldHVybiB0aGlzLl9yZW1vdGVSb3dzQ2hhbmdlJC5waXBlKFxuICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldCByb3dzUmVtb3ZlZCQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3Jvd3NSZW1vdmVkJC5waXBlKFxuICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldCBoYXNEYXRhKCkge1xuICAgIHJldHVybiB0aGlzLl9oYXNEYXRhO1xuICB9XG5cbiAgcHVibGljIGdldCBvcGVyYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuX29wZXJhdGlvbjtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdmlzaWJsZVJvd3MkKCkge1xuICAgIHJldHVybiB0aGlzLl92aXNpYmxlUm93cyQ7XG4gIH1cblxuICBwdWJsaWMgc2V0IHZpc2libGVSb3dzKHZhbHVlOiBhbnlbXSkge1xuICAgIHRoaXMuX3Zpc2libGVSb3dzJC5uZXh0KHZhbHVlKTtcbiAgICB0aGlzLl9oYXNEYXRhID0gdGhpcy52aXNpYmxlUm93cy5sZW5ndGggPiAwO1xuICB9XG5cbiAgcHVibGljIGdldCB2aXNpYmxlUm93cygpIHtcbiAgICByZXR1cm4gdGhpcy5fdmlzaWJsZVJvd3MkLmdldFZhbHVlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHZpc2libGVSb3dzQ291bnQoKSB7XG4gICAgcmV0dXJuIHRoaXMudmlzaWJsZVJvd3MubGVuZ3RoO1xuICB9XG5cbiAgcHVibGljIGdldCBoYXNHcm91cHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbXBhcmVCeUZuICYmIHRoaXMuX2dyb3VwQnlGbjtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcmVvcmRlckRhdGEoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3Jvd3NTdGFja1xuICAgICAgLm1hcCgocm93KSA9PiByb3cuZ2V0UmVvcmRlckRhdGEoKSk7XG4gIH1cblxuICBwdWJsaWMgc2V0R3JvdXBDb25maWcoZ3JvdXA6IEZzTGlzdEdyb3VwQ29uZmlnKSB7XG4gICAgaWYgKGdyb3VwKSB7XG4gICAgICB0aGlzLl9ncm91cEJ5Rm4gPSBncm91cC5ncm91cEJ5O1xuICAgICAgdGhpcy5fY29tcGFyZUJ5Rm4gPSBncm91cC5jb21wYXJlQnk7XG4gICAgICB0aGlzLl9mb290ZXJSb3dGbiA9IGdyb3VwLmZvb3RlciB8fCAoKCkgPT4gZmFsc2UpO1xuICAgICAgdGhpcy5faW5pdGlhbEV4cGFuZCA9IGdyb3VwLmluaXRpYWxFeHBhbmQgPz8gdHJ1ZTtcblxuICAgICAgLy8gZ3JvdXAgbW9kZSBlbmFibGVkIGJ5IGRlZmF1bHRcbiAgICAgIHRoaXMuX2dyb3VwRW5hYmxlZCA9IChncm91cC5lbmFibGVkICE9PSB1bmRlZmluZWQpXG4gICAgICAgID8gZ3JvdXAuZW5hYmxlZFxuICAgICAgICA6IHRydWU7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNldEFkZGl0aW9uYWxDb25maWdzKGNvbmZpZ3M6IHsgc2Nyb2xsYWJsZTogYm9vbGVhbiwgbG9hZE1vcmVFbmFibGVkOiBib29sZWFuIH0pIHtcbiAgICB0aGlzLl9pbmZpbml0eVNjcm9sbEVuYWJsZWQgPSBjb25maWdzLnNjcm9sbGFibGU7XG4gICAgdGhpcy5fbG9hZE1vcmVFbmFibGVkID0gY29uZmlncy5sb2FkTW9yZUVuYWJsZWQ7XG4gIH1cblxuICAvKipcbiAgICogUm93cyB3aGF0IHdhcyByZWNlaXZlZCBmcm9tIGZldGNoIGZ1bmN0aW9uXG4gICAqIEBwYXJhbSByb3dzXG4gICAqL1xuICBwdWJsaWMgc2V0Um93c0Zyb21SZXNwb25zZShyb3dzOiBhbnlbXSkge1xuICAgIGlmICh0aGlzLl9pbmZpbml0eVNjcm9sbEVuYWJsZWQpIHtcbiAgICAgIHN3aXRjaCAodGhpcy5fb3BlcmF0aW9uKSB7XG4gICAgICAgIGNhc2UgRnNMaXN0U3RhdGUuRmlsdGVyOlxuICAgICAgICBjYXNlIEZzTGlzdFN0YXRlLlJlbG9hZDpcbiAgICAgICAgY2FzZSBGc0xpc3RTdGF0ZS5Tb3J0OiB7XG4gICAgICAgICAgdGhpcy5fdXBkYXRlUm93c1N0YWNrKHJvd3MpO1xuICAgICAgICB9IGJyZWFrO1xuXG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICB0aGlzLl9leHRlbmRSb3dzU3RhY2socm93cyk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdGhpcy5fcmVtb3RlUm93c0NoYW5nZSQubmV4dCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMuX29wZXJhdGlvbiA9PT0gRnNMaXN0U3RhdGUuTG9hZE1vcmUgfHxcbiAgICAgICAgKHRoaXMuX29wZXJhdGlvbiA9PT0gRnNMaXN0U3RhdGUuUGFnZUNoYW5nZSAmJiB0aGlzLl9sb2FkTW9yZUVuYWJsZWQpXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5fZXh0ZW5kUm93c1N0YWNrKHJvd3MpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5fdXBkYXRlUm93c1N0YWNrKHJvd3MpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuX29wZXJhdGlvbiA9IEZzTGlzdFN0YXRlLklkbGU7XG5cbiAgICB0aGlzLl91cGRhdGVWaXNpYmxlUm93cygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBjdXJyZW50IG9wZXJhdGlvbiBmb3IgbGlzdCBkYXRhIGZsb3dcbiAgICogQHBhcmFtIHZhbHVlXG4gICAqL1xuICBwdWJsaWMgc2V0T3BlcmF0aW9uKHZhbHVlOiBGc0xpc3RTdGF0ZSkge1xuICAgIHRoaXMuX29wZXJhdGlvbiA9IHZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSByb3dzIGZyb20gdmlzaWJsZVxuICAgKi9cbiAgcHVibGljIGNsZWFyUm93cygpIHtcbiAgICB0aGlzLnZpc2libGVSb3dzID0gW107XG4gIH1cblxuICAvKipcbiAgICogUmVwbGFjZSBkYXRhIGZvciBzcGVjaWZpZWQgcm93XG4gICAqIEBwYXJhbSB0YXJnZXRSb3dcbiAgICogQHBhcmFtIHRyYWNrQnlcbiAgICovXG4gIHB1YmxpYyByZXBsYWNlRGF0YShcbiAgICB0YXJnZXRSb3c6IEZzTGlzdEFic3RyYWN0Um93LFxuICAgIHRyYWNrQnk/OiBGc0xpc3RUcmFja0J5VGFyZ2V0Um93Rm4sXG4gICkge1xuICAgIGNvbnN0IHJvd0luZGV4ID0gdGhpcy5fcm93c1N0YWNrLmZpbmRJbmRleCgobGlzdFJvdykgPT4ge1xuICAgICAgcmV0dXJuIHRyYWNrQnkobGlzdFJvdy5kYXRhLCB0YXJnZXRSb3cpO1xuICAgIH0pO1xuXG4gICAgaWYgKHJvd0luZGV4ID4gLTEpIHtcbiAgICAgIHRoaXMuX3Jvd3NTdGFja1tyb3dJbmRleF0gPSBuZXcgUm93KFxuICAgICAgICB0YXJnZXRSb3csXG4gICAgICAgIFJvd1R5cGUuU2ltcGxlLFxuICAgICAgICB7IGluaXRpYWxFeHBhbmQ6IHRoaXMuX2luaXRpYWxFeHBhbmQgfSxcbiAgICAgICk7XG5cbiAgICAgIHRoaXMuX3VwZGF0ZVZpc2libGVSb3dzKCk7XG5cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiBcbiAgICByZXR1cm4gZmFsc2U7XG4gICAgXG5cbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgZGF0YSBmb3Igc3BlY2lmaWVkIHJvd1xuICAgKiBAcGFyYW0gcm93c1xuICAgKiBAcGFyYW0gdHJhY2tCeVxuICAgKi9cbiAgcHVibGljIHVwZGF0ZURhdGEoXG4gICAgcm93czogRnNMaXN0QWJzdHJhY3RSb3cgfCBGc0xpc3RBYnN0cmFjdFJvd1tdLFxuICAgIHRyYWNrQnk/OiBGc0xpc3RUcmFja0J5VGFyZ2V0Um93Rm4sXG4gICk6IGJvb2xlYW4ge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHJvd3MpKSB7XG4gICAgICBsZXQgdXBkYXRlU3VjY2VzcyA9IGZhbHNlO1xuXG4gICAgICByb3dzLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgaWYgKHRoaXMudXBkYXRlUm93KGl0ZW0sIHRyYWNrQnkpKSB7XG4gICAgICAgICAgdXBkYXRlU3VjY2VzcyA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLl91cGRhdGVWaXNpYmxlUm93cygpO1xuXG4gICAgICByZXR1cm4gdXBkYXRlU3VjY2VzcztcbiAgICB9IFxuICAgIGNvbnN0IHVwZGF0ZWQgPSB0aGlzLnVwZGF0ZVJvdyhyb3dzLCB0cmFja0J5KTtcblxuICAgIHRoaXMuX3VwZGF0ZVZpc2libGVSb3dzKCk7XG5cbiAgICByZXR1cm4gdXBkYXRlZDtcbiAgICBcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgZGF0YSBmb3Igc3BlY2lmaWVkIHJvd1xuICAgKiBAcGFyYW0gZGF0YVxuICAgKi9cbiAgcHVibGljIHJlbW92ZURhdGEoZGF0YTogRnNMaXN0QWJzdHJhY3RSb3cgfCBGc0xpc3RBYnN0cmFjdFJvd1tdIHwgRnNMaXN0VHJhY2tCeVRhcmdldFJvd0ZuKTogYm9vbGVhbiB7XG4gICAgY29uc3QgcmVtb3ZlZFJvd3MgPSBbXTtcblxuICAgIGNvbnN0IGRlZmF1bHRUcmFja0J5ID0gKHJvdywgdGFyZ2V0KSA9PiB7XG4gICAgICByZXR1cm4gcm93ID09PSB0YXJnZXQ7XG4gICAgfTtcblxuICAgIGlmIChBcnJheS5pc0FycmF5KGRhdGEpKSB7XG4gICAgICAvL1xuICAgICAgZGF0YS5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgIHJlbW92ZWRSb3dzLnB1c2goLi4udGhpcy5yZW1vdmVSb3coaXRlbSwgZGVmYXVsdFRyYWNrQnkpKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAoaXNGdW5jdGlvbihkYXRhKSkge1xuICAgICAgcmVtb3ZlZFJvd3MucHVzaCguLi50aGlzLnJlbW92ZVJvdyhudWxsLCAoZGF0YSBhcyBGc0xpc3RUcmFja0J5VGFyZ2V0Um93Rm4pKSk7XG4gICAgfSBlbHNlIGlmIChpc09iamVjdChkYXRhKSkge1xuICAgICAgcmVtb3ZlZFJvd3MucHVzaCguLi50aGlzLnJlbW92ZVJvdyhkYXRhLCBkZWZhdWx0VHJhY2tCeSkpO1xuICAgIH1cblxuICAgIGlmIChyZW1vdmVkUm93cy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLl91cGRhdGVWaXNpYmxlUm93cygpO1xuXG4gICAgICB0aGlzLl9yb3dzUmVtb3ZlZCQubmV4dChyZW1vdmVkUm93cyk7XG4gICAgfVxuXG4gICAgcmV0dXJuICEhcmVtb3ZlZFJvd3MubGVuZ3RoO1xuICB9XG5cbiAgcHVibGljIHN3YXBSb3dzKHJvdzEsIHJvdzIsIHNlbGVjdGVkUm93cz86IFJvd1tdLCBpc011bHRpcGxlRHJhZyA9IGZhbHNlKSB7XG4gICAgbGV0IHRtcEVsO1xuICAgIGNvbnN0IHJvd3NTdGFjayA9IHRoaXMuX3Jvd3NTdGFjaztcbiAgICBjb25zdCByb3cxR2xvYmFsSW5kZXggPSByb3dzU3RhY2suaW5kZXhPZihyb3cxKTtcbiAgICBjb25zdCByb3cyR2xvYmFsSW5kZXggPSByb3dzU3RhY2suaW5kZXhPZihyb3cyKTtcblxuICAgIHRtcEVsID0gcm93c1N0YWNrW3JvdzFHbG9iYWxJbmRleF07XG4gICAgcm93c1N0YWNrW3JvdzFHbG9iYWxJbmRleF0gPSByb3dzU3RhY2tbcm93Mkdsb2JhbEluZGV4XTtcbiAgICByb3dzU3RhY2tbcm93Mkdsb2JhbEluZGV4XSA9IHRtcEVsO1xuXG4gICAgaWYgKGlzTXVsdGlwbGVEcmFnICYmIEFycmF5LmlzQXJyYXkoc2VsZWN0ZWRSb3dzKSkge1xuICAgICAgaWYgKCFzZWxlY3RlZFJvd3MuaW5jbHVkZXMocm93MSkpIHtcbiAgICAgICAgc2VsZWN0ZWRSb3dzID0gW3JvdzEsIC4uLnNlbGVjdGVkUm93c107XG4gICAgICB9XG5cbiAgICAgIHNlbGVjdGVkUm93c1xuICAgICAgICAuZmlsdGVyKChzZWxlY3RlZFJvdykgPT4ge1xuICAgICAgICAgIHJldHVybiBzZWxlY3RlZFJvdyAhPT0gcm93MTtcbiAgICAgICAgfSlcbiAgICAgICAgLmZvckVhY2goKHNlbGVjdGVkUm93KSA9PiB7XG4gICAgICAgICAgY29uc3QgaWR4ID0gcm93c1N0YWNrLmluZGV4T2Yoc2VsZWN0ZWRSb3cpO1xuICAgICAgICAgIHJvd3NTdGFjay5zcGxpY2UoaWR4LCAxKTtcbiAgICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IGluZGV4VG9JbnNlcnRBZnRlciA9IHJvd3NTdGFjay5pbmRleE9mKHRtcEVsKTtcblxuICAgICAgcm93c1N0YWNrLnNwbGljZShpbmRleFRvSW5zZXJ0QWZ0ZXIsIDEpO1xuXG4gICAgICBzZWxlY3RlZFJvd3MuZm9yRWFjaCgoc2VsZWN0ZWRSb3csIG9mZnNldCkgPT4ge1xuICAgICAgICByb3dzU3RhY2suc3BsaWNlKGluZGV4VG9JbnNlcnRBZnRlciArIG9mZnNldCwgMCwgc2VsZWN0ZWRSb3cpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy5fcm93c1N0YWNrID0gWy4uLnJvd3NTdGFja107XG4gIH1cblxuICBwdWJsaWMgZGVzdHJveSgpIHtcbiAgICB0aGlzLl9kZXN0cm95Um93c1N0YWNrKCk7XG4gICAgdGhpcy5fc3RvcmUuY2xlYXIoKTtcblxuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLl9kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHVibGljIHRvZ2dsZVJvd0dyb3VwKHJvd0RhdGEpIHtcbiAgICBjb25zdCByb3cgPSB0aGlzLnZpc2libGVSb3dzLmZpbmQoKHZpc2libGVSb3cpID0+IHZpc2libGVSb3cuZGF0YSA9PT0gcm93RGF0YSApO1xuICAgIHJvdy50b2dnbGVSb3dFeHBhbmRTdGF0dXMoKTtcblxuICAgIHRoaXMuX3VwZGF0ZVZpc2libGVSb3dzKCk7XG4gIH1cblxuICBwdWJsaWMgZmluaXNoUmVvcmRlcigpOiB2b2lkIHtcbiAgICAvLyBUT0RPIGZpeG1lIHJlbW92ZSBvciBpbXByb3ZlXG4gICAgaWYgKHRoaXMuZ3JvdXBFbmFibGVkKSB7XG4gICAgICBsZXQgZ3JvdXA7XG4gICAgICB0aGlzLl9yb3dzU3RhY2tcbiAgICAgICAgLmZvckVhY2goKHJvdywgaW5kZXgpID0+IHtcbiAgICAgICAgICBpZiAocm93LmlzR3JvdXAgJiYgcm93ICE9PSBncm91cCkge1xuICAgICAgICAgICAgZ3JvdXAgPSByb3c7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJvdy5pbmRleCA9IGluZGV4IC0gdGhpcy5fcm93c1N0YWNrLmluZGV4T2YoZ3JvdXApIC0gMTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMuX3VwZGF0ZVZpc2libGVSb3dzKCk7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVSb3dzU3RhY2socm93cykge1xuICAgIHRoaXMuX2Rlc3Ryb3lSb3dzU3RhY2soKTtcblxuICAgIGlmICh0aGlzLmdyb3VwRW5hYmxlZCkge1xuICAgICAgdGhpcy5fc3RvcmUuY2xlYXIoKTtcbiAgICAgIHRoaXMuX3Jvd3NTdGFjayA9IFsuLi50aGlzLmdyb3VwUm93c0J5KHJvd3MpXTtcbiAgICB9IGVsc2Uge1xuICAgICAgcm93cyA9IHJvd3MubWFwKChyb3cpID0+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBSb3coXG4gICAgICAgICAgcm93LFxuICAgICAgICAgIFJvd1R5cGUuU2ltcGxlLFxuICAgICAgICAgIHsgaW5pdGlhbEV4cGFuZDogdGhpcy5faW5pdGlhbEV4cGFuZCB9LFxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgICB0aGlzLl9yb3dzU3RhY2sgPSBbLi4ucm93c107XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZXh0ZW5kUm93c1N0YWNrKHJvd3MpIHtcbiAgICBpZiAodGhpcy5ncm91cEVuYWJsZWQpIHtcbiAgICAgIHRoaXMuX3Jvd3NTdGFjayA9IFsuLi50aGlzLmdyb3VwUm93c0J5KHJvd3MpXTtcbiAgICB9IGVsc2Uge1xuICAgICAgcm93cyA9IHJvd3MubWFwKChyb3cpID0+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBSb3coXG4gICAgICAgICAgcm93LFxuICAgICAgICAgIFJvd1R5cGUuU2ltcGxlLFxuICAgICAgICAgIHsgaW5pdGlhbEV4cGFuZDogdGhpcy5faW5pdGlhbEV4cGFuZCB9LFxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgICB0aGlzLl9yb3dzU3RhY2sgPSBbLi4udGhpcy5fcm93c1N0YWNrLCAuLi5yb3dzXTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9kZXN0cm95Um93c1N0YWNrKCkge1xuICAgIHRoaXMuX3Jvd3NTdGFjay5mb3JFYWNoKChyb3cpID0+IHJvdy5kZXN0cm95KCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlVmlzaWJsZVJvd3MoKSB7XG4gICAgdGhpcy52aXNpYmxlUm93cyA9IHRoaXMuX3Jvd3NTdGFja1xuICAgICAgLmZpbHRlcigocm93LCBpbmRleCkgPT4ge1xuICAgICAgICByZXR1cm4gKCEocm93IGFzIGFueSkuaXNDaGlsZCAmJiAhcm93LmlzR3JvdXBGb290ZXIpIHx8IHJvdy52aXNpYmxlO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVJvdyhcbiAgICB0YXJnZXRSb3c6IEZzTGlzdEFic3RyYWN0Um93LFxuICAgIHRyYWNrQnk/OiAobGlzdFJvdzogRnNMaXN0QWJzdHJhY3RSb3csIHRhcmdldFJvdz86IEZzTGlzdEFic3RyYWN0Um93KSA9PiBib29sZWFuKSB7XG5cbiAgICBpZiAodHJhY2tCeSA9PT0gdm9pZCAwKSB7XG4gICAgICB0cmFja0J5ID0gKHJvdywgdGFyZ2V0KSA9PiB7XG4gICAgICAgIHJldHVybiByb3cgPT09IHRhcmdldDtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY29uc3QgdGFyZ2V0SW5kZXggPSB0aGlzLl9yb3dzU3RhY2suZmluZEluZGV4KChsaXN0Um93KSA9PiB0cmFja0J5KGxpc3RSb3cuZGF0YSwgdGFyZ2V0Um93KSk7XG5cbiAgICBpZiAodGFyZ2V0SW5kZXggIT09IC0xKSB7XG4gICAgICBjb25zdCB1cGRhdGVUYXJnZXQgPSB0aGlzLl9yb3dzU3RhY2tbdGFyZ2V0SW5kZXhdO1xuICAgICAgY29uc3QgdXBkYXRlZERhdGEgPSB7IC4uLnVwZGF0ZVRhcmdldC5kYXRhLCAuLi50YXJnZXRSb3cgfTtcblxuICAgICAgdGhpcy5fcm93c1N0YWNrW3RhcmdldEluZGV4XSA9IG5ldyBSb3coXG4gICAgICAgIHVwZGF0ZWREYXRhLFxuICAgICAgICB1cGRhdGVUYXJnZXQudHlwZSxcbiAgICAgICAge1xuICAgICAgICAgIHBhcmVudDogdXBkYXRlVGFyZ2V0LnBhcmVudCxcbiAgICAgICAgICBpbml0aWFsRXhwYW5kOiB1cGRhdGVUYXJnZXQuZXhwYW5kZWQsXG4gICAgICAgIH0sXG4gICAgICApO1xuXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIHJvdyBmcm9tXG4gICAqIEBwYXJhbSB0YXJnZXRSb3dcbiAgICogQHBhcmFtIHRyYWNrQnlcbiAgICovXG4gIHByaXZhdGUgcmVtb3ZlUm93KFxuICAgIHRhcmdldFJvdzogRnNMaXN0QWJzdHJhY3RSb3cgfCBudWxsLFxuICAgIHRyYWNrQnk/OiBGc0xpc3RUcmFja0J5VGFyZ2V0Um93Rm4sXG4gICkge1xuXG4gICAgY29uc3Qgcm93cyA9IHRoaXMuX3Jvd3NTdGFjaztcbiAgICBjb25zdCByZW1vdmVkUm93cyA9IFtdO1xuXG4gICAgcm93cy5mb3JFYWNoKChsaXN0Um93LCBpbmRleCkgPT4ge1xuICAgICAgaWYgKHRyYWNrQnkobGlzdFJvdy5kYXRhLCB0YXJnZXRSb3cpKSB7XG4gICAgICAgIGNvbnN0IHJlbW92ZWRSb3cgPSByb3dzLnNwbGljZShpbmRleCwgMSk7XG5cbiAgICAgICAgcmVtb3ZlZFJvd3MucHVzaChyZW1vdmVkUm93KTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiByZW1vdmVkUm93cztcbiAgfVxuXG4gIC8qKlxuICAgKiBTcGxpdCBleGlzdGluZyByb3dzIGJ5IGdyb3VwcyBhbmQgc3RvcmUgdGhlbSBmb3IgZnV0dXJlIHVzZVxuICAgKi9cbiAgcHJpdmF0ZSBncm91cFJvd3NCeShyb3dzKSB7XG4gICAgaWYgKCF0aGlzLl9ncm91cEJ5Rm4gfHwgIXRoaXMuX2NvbXBhcmVCeUZuKSB7XG4gICAgICByZXR1cm4gcm93czsgXG4gICAgfVxuXG4gICAgY29uc3QgZ3JvdXBSb3dzOiBHcm91cFJvd1tdID0gW107XG4gICAgY29uc3QgZm9vdGVyUm93cyA9IG5ldyBNYXAoKTtcblxuICAgIHJvd3MuZm9yRWFjaCgocm93KSA9PiB7XG4gICAgICBjb25zdCBtYWluR3JvdXAgPSB0aGlzLl9ncm91cEJ5Rm4ocm93KTtcbiAgICAgIGNvbnN0IG1haW5Hcm91cEtleSA9IHRoaXMuX2NvbXBhcmVCeUZuKG1haW5Hcm91cCk7XG5cbiAgICAgIGlmICghdGhpcy5fc3RvcmUuaGFzKG1haW5Hcm91cEtleSkpIHtcbiAgICAgICAgY29uc3QgZ3JvdXAgPSBuZXcgR3JvdXBSb3coXG4gICAgICAgICAgbWFpbkdyb3VwLFxuICAgICAgICAgIHRoaXMuX2luaXRpYWxFeHBhbmQsXG4gICAgICAgICk7XG5cbiAgICAgICAgZ3JvdXAuaW5kZXggPSBncm91cFJvd3MubGVuZ3RoO1xuICAgICAgICBncm91cFJvd3MucHVzaChncm91cCk7XG5cbiAgICAgICAgY29uc3QgY2hpbGRSb3cgPSBuZXcgQ2hpbGRSb3cocm93LCBncm91cCk7XG5cbiAgICAgICAgdGhpcy5fc3RvcmUuc2V0KG1haW5Hcm91cEtleSwgZ3JvdXApO1xuICAgICAgICBncm91cC5jaGlsZHJlbi5wdXNoKGNoaWxkUm93KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGdyb3VwID0gdGhpcy5fc3RvcmUuZ2V0KG1haW5Hcm91cEtleSk7XG4gICAgICAgIGNvbnN0IGNoaWxkUm93ID0gbmV3IENoaWxkUm93KHJvdywgZ3JvdXApO1xuXG4gICAgICAgIGdyb3VwLmNoaWxkcmVuLnB1c2goY2hpbGRSb3cpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgZ3JvdXBSb3dzLmZvckVhY2goKGdyb3VwUm93KSA9PiB7XG4gICAgICBjb25zdCBmb290ZXJJbmRleCA9IGdyb3VwUm93LmNoaWxkcmVuXG4gICAgICAgIC5maW5kSW5kZXgoKHJvdykgPT4ge1xuICAgICAgICAgIHJldHVybiB0aGlzLl9mb290ZXJSb3dGbihyb3cuZGF0YSwge1xuICAgICAgICAgICAgLi4uZ3JvdXBSb3cuZGF0YSxcbiAgICAgICAgICAgIGNoaWxkcmVuOiBncm91cFJvdy5jaGlsZHJlbkRhdGEsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuXG4gICAgICBpZiAoZm9vdGVySW5kZXggIT09IC0xKSB7XG4gICAgICAgIGNvbnN0IGZvb3RlclJvdyA9IGdyb3VwUm93LmNoaWxkcmVuLnNwbGljZShmb290ZXJJbmRleCwgZm9vdGVySW5kZXggKyAxKVswXTtcbiAgICAgICAgZ3JvdXBSb3cuY2hpbGRyZW4ucHVzaChuZXcgR3JvdXBGb290ZXJSb3coZm9vdGVyUm93LmRhdGEsIGdyb3VwUm93KSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLl9zdG9yZS52YWx1ZXMoKSlcbiAgICAgIC5yZWR1Y2UoKGFjYywgaXRlbSkgPT4ge1xuICAgICAgICBpZiAoaXRlbS5pc0dyb3VwKSB7XG4gICAgICAgICAgYWNjLnB1c2goaXRlbSwgLi4uaXRlbS5jaGlsZHJlbik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYWNjLnB1c2goaXRlbSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfSwgW10pO1xuICB9XG59XG4iXX0=
|
|
@@ -318,11 +318,15 @@ export class PaginationController {
|
|
|
318
318
|
// this.pagesArray = Object.assign([], pagesArr);
|
|
319
319
|
// }
|
|
320
320
|
setLoadMore(config) {
|
|
321
|
-
const loadMoreConfig = typeof config === 'boolean' ?
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
321
|
+
const loadMoreConfig = typeof config === 'boolean' ?
|
|
322
|
+
{
|
|
323
|
+
enabled: !!config,
|
|
324
|
+
} : {
|
|
325
325
|
enabled: true,
|
|
326
|
+
...config,
|
|
327
|
+
};
|
|
328
|
+
this._loadMoreConfig = {
|
|
329
|
+
enabled: false,
|
|
326
330
|
label: 'Load More',
|
|
327
331
|
buttonType: 'basic',
|
|
328
332
|
...loadMoreConfig,
|
|
@@ -488,4 +492,4 @@ export class PaginationController {
|
|
|
488
492
|
this.pages = Math.ceil(this.records / this.limit);
|
|
489
493
|
}
|
|
490
494
|
}
|
|
491
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi1jb250cm9sbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9jbGFzc2VzL3BhZ2luYXRpb24tY29udHJvbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsZUFBZSxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHakUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBVXZFLE1BQU0sT0FBTyxvQkFBb0I7SUFBakM7UUFFUyxVQUFLLEdBQUcsRUFBRSxDQUFDO1FBRVgsV0FBTSxHQUFHLEtBQUssQ0FBQztRQUVmLFNBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxjQUFjO1FBQ3hCLFdBQU0sR0FBRyxDQUFDLENBQUM7UUFFWCxjQUFTLEdBQUcsQ0FBQyxDQUFDO1FBRWIsWUFBTyxHQUFHLElBQUksZUFBZSxDQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYztRQUV4RCxjQUFTLEdBQXVCLGtCQUFrQixDQUFDLElBQUksQ0FBQztRQUN4RCxpQkFBWSxHQUFHLENBQUMsQ0FBQztRQUVqQixrQkFBYSxHQUFHLElBQUksT0FBTyxFQUFjLENBQUM7UUFDMUMsZ0JBQVcsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQ2xDLGdCQUFXLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUc1QiwyQkFBc0IsR0FBRyxLQUFLLENBQUM7UUFDL0IsWUFBTyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBdWpCM0MsQ0FBQztJQXJqQkMsY0FBYztJQUNkLElBQVcsS0FBSyxDQUFDLEtBQWE7UUFD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YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cblxuaW1wb3J0IHsgUGFnZUNoYW5nZVR5cGUgfSBmcm9tICcuLi9lbnVtcy9wYWdlLWNoYW5nZS10eXBlLmVudW0nO1xuaW1wb3J0IHsgUGFnaW5hdGlvblN0cmF0ZWd5IH0gZnJvbSAnLi4vZW51bXMvcGFnaW5hdGlvbi1zdHJhdGVneS5lbnVtJztcbmltcG9ydCB7XG4gIEZzTGlzdExvYWRNb3JlQ29uZmlnLFxuICBGc1BhZ2luZyxcbiAgUGFnZUNoYW5nZSxcbiAgUXVlcnlPZmZzZXRTdHJhdGVneSxcbiAgUXVlcnlQYWdlU3RyYXRlZ3ksXG59IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgSVBhZ2luYXRpb25TdGF0ZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvcGFnaW5hdGlvbi1zdGF0ZS5pbnRlcmZhY2UnO1xuXG5leHBvcnQgY2xhc3MgUGFnaW5hdGlvbkNvbnRyb2xsZXIge1xuXG4gIHB1YmxpYyBsaW1pdCA9IDI1O1xuICBwdWJsaWMgcmVjb3JkczogbnVtYmVyO1xuICBwdWJsaWMgbWFudWFsID0gZmFsc2U7XG5cbiAgcHVibGljIHBhZ2UgPSAxOyAvLyBBY3RpdmUgcGFnZVxuICBwdWJsaWMgb2Zmc2V0ID0gMDtcblxuICBwdWJsaWMgZGlzcGxheWVkID0gMDtcblxuICBwcml2YXRlIF9wYWdlcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oMCk7IC8vIFRvdGFsIHBhZ2VzXG5cbiAgcHJpdmF0ZSBfc3RyYXRlZ3k6IFBhZ2luYXRpb25TdHJhdGVneSA9IFBhZ2luYXRpb25TdHJhdGVneS5Ob25lO1xuICBwcml2YXRlIF9yZW1vdmVkUm93cyA9IDA7XG5cbiAgcHJpdmF0ZSBfcGFnZUNoYW5nZWQkID0gbmV3IFN1YmplY3Q8UGFnZUNoYW5nZT4oKTtcbiAgcHJpdmF0ZSBfcGFnZVJlc2V0JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgX29uRGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xuXG4gIHByaXZhdGUgX2xvYWRNb3JlQ29uZmlnOiBGc0xpc3RMb2FkTW9yZUNvbmZpZztcbiAgcHJpdmF0ZSBfaW5maW5pdHlTY3JvbGxFbmFibGVkID0gZmFsc2U7XG4gIHByaXZhdGUgX2xpbWl0cyA9IFsxMCwgMjUsIDUwLCAxMDAsIDIwMF07XG5cbiAgLy8gVG90YWwgcGFnZXNcbiAgcHVibGljIHNldCBwYWdlcyh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5fcGFnZXMkLm5leHQodmFsdWUpO1xuICB9XG5cbiAgcHVibGljIGdldCBwYWdlcygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9wYWdlcyQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcGFnZXMkKCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgcmV0dXJuIHRoaXMuX3BhZ2VzJFxuICAgICAgLnBpcGUoXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpcmUgaWYgcGFnZSB3YXMgY2hhbmdlZFxuICAgKi9cbiAgcHVibGljIGdldCBwYWdlQ2hhbmdlZCQoKTogT2JzZXJ2YWJsZTxQYWdlQ2hhbmdlPiB7XG4gICAgcmV0dXJuIHRoaXMuX3BhZ2VDaGFuZ2VkJC5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHBhZ2VSZXNldCQoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuX3BhZ2VSZXNldCQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGVuYWJsZWRcbiAgICovXG4gIHB1YmxpYyBnZXQgZW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuaGFzTm9uZVN0cmF0ZWd5O1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBMaW1pdHNcbiAgICovXG4gIHB1YmxpYyBnZXQgbGltaXRzKCk6IG51bWJlcltdIHtcbiAgICByZXR1cm4gdGhpcy5fbGltaXRzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBsaW1pdHMsIHVwZGF0ZSBwYWdlcyBhcnJheSBhbmQgc2V0IG5ldyBsaW1pdCBwZXIgcGFnZVxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWVcbiAgICovXG4gIHB1YmxpYyBzZXQgbGltaXRzKHZhbHVlKSB7XG4gICAgdGhpcy5fbGltaXRzID0gdmFsdWU7XG5cbiAgICBpZiAodGhpcy5saW1pdHMubGVuZ3RoID4gMCAmJiB0aGlzLmxpbWl0cy5pbmRleE9mKHRoaXMubGltaXQpID09PSAtMSkge1xuICAgICAgdGhpcy5saW1pdCA9IHRoaXMubGltaXRzWzBdO1xuICAgIH0gZWxzZSBpZiAodGhpcy5saW1pdHMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLmxpbWl0ID0gdGhpcy5yZWNvcmRzO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgcXVlcnkgZm9yIHJlcXVlc3RcbiAgICovXG4gIHB1YmxpYyBnZXQgcXVlcnkoKSB7XG4gICAgc3dpdGNoICh0aGlzLnN0cmF0ZWd5KSB7XG4gICAgICBjYXNlIFBhZ2luYXRpb25TdHJhdGVneS5QYWdlOlxuICAgICAgICByZXR1cm4gdGhpcy5xdWVyeVBhZ2VTdHJhdGVneTtcbiAgICAgIGNhc2UgUGFnaW5hdGlvblN0cmF0ZWd5Lk9mZnNldDpcbiAgICAgICAgcmV0dXJuIHRoaXMucXVlcnlPZmZzZXRTdHJhdGVneTtcbiAgICB9XG5cbiAgICByZXR1cm4ge307XG4gIH1cblxuICBwdWJsaWMgZ2V0IGxvYWRNb3JlUXVlcnkoKSB7XG4gICAgc3dpdGNoICh0aGlzLnN0cmF0ZWd5KSB7XG4gICAgICBjYXNlIFBhZ2luYXRpb25TdHJhdGVneS5QYWdlOiB7XG4gICAgICAgIHJldHVybiB0aGlzLnF1ZXJ5O1xuICAgICAgfVxuXG4gICAgICBjYXNlIFBhZ2luYXRpb25TdHJhdGVneS5PZmZzZXQ6IHtcbiAgICAgICAgY29uc3QgcXVlcnkgPSB0aGlzLnF1ZXJ5T2Zmc2V0U3RyYXRlZ3k7XG5cbiAgICAgICAgcXVlcnkubGltaXQgPSBxdWVyeS5vZmZzZXQgKyBxdWVyeS5saW1pdDtcbiAgICAgICAgcXVlcnkub2Zmc2V0ID0gMDtcblxuICAgICAgICByZXR1cm4gcXVlcnk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgLyoqXG4gICAqIFF1ZXJ5IGZvciBQYWdlIFN0cmF0ZWd5XG4gICAqL1xuICBwdWJsaWMgZ2V0IHF1ZXJ5UGFnZVN0cmF0ZWd5KCk6IFF1ZXJ5UGFnZVN0cmF0ZWd5IHtcbiAgICByZXR1cm4gdGhpcy5oYXNOb25lU3RyYXRlZ3lcbiAgICAgID8ge31cbiAgICAgIDoge1xuICAgICAgICBwYWdlOiB0aGlzLnBhZ2UgfHwgMSxcbiAgICAgICAgbGltaXQ6IHRoaXMubGltaXQgfHwgMTAsXG4gICAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFF1ZXJ5IGZvciBPZmZzZXQgU3RyYXRlZ3lcbiAgICovXG4gIHB1YmxpYyBnZXQgcXVlcnlPZmZzZXRTdHJhdGVneSgpOiBRdWVyeU9mZnNldFN0cmF0ZWd5IHtcbiAgICBjb25zdCBwYWdlID0gdGhpcy5wYWdlIC0gMSB8fCAwO1xuICAgIGNvbnN0IGxpbWl0ID0gdGhpcy5saW1pdCB8fCA1O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIG9mZnNldDogcGFnZSAqIGxpbWl0LFxuICAgICAgbGltaXQsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgcXVlcnkgZm9yIGxvYWQgb25seSBjb3VudCBvZiBkZWxldGVkIHJvd3NcbiAgICovXG4gIHB1YmxpYyBnZXQgbG9hZERlbGV0ZWRPZmZzZXRRdWVyeSgpIHtcbiAgICBjb25zdCBwYWdpbmF0aW9uT2Zmc2V0ID0gdGhpcy5saW1pdCAqIHRoaXMucGFnZTtcbiAgICBjb25zdCBhY3R1YWxPZmZzZXQgPSBNYXRoLm1pbih0aGlzLnJlY29yZHMsIHBhZ2luYXRpb25PZmZzZXQpO1xuICAgIGNvbnN0IG9mZnNldCA9IE1hdGgubWF4KDAsIGFjdHVhbE9mZnNldCAtIHRoaXMuX3JlbW92ZWRSb3dzKTtcblxuICAgIHJldHVybiB7XG4gICAgICBvZmZzZXQsXG4gICAgICBsaW1pdDogdGhpcy5fcmVtb3ZlZFJvd3MsXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaW5pdGlhbGl6ZWQoKSB7XG4gICAgcmV0dXJuICEhdGhpcy5wYWdlcztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc3RyYXRlZ3koKSB7XG4gICAgcmV0dXJuIHRoaXMuX3N0cmF0ZWd5O1xuICB9XG5cbiAgcHVibGljIHNldCBzdHJhdGVneShzdHJhdGVneTogUGFnaW5hdGlvblN0cmF0ZWd5KSB7XG4gICAgdGhpcy5fc3RyYXRlZ3kgPSAoc3RyYXRlZ3kgPT09IHVuZGVmaW5lZCkgPyBQYWdpbmF0aW9uU3RyYXRlZ3kuUGFnZSA6IHN0cmF0ZWd5O1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIHBhZ2luYXRpb24gaW4gUGFnZSBTdHJhdGVneSBNb2RlXG4gICAqL1xuICBwdWJsaWMgZ2V0IGhhc1BhZ2VTdHJhdGVneSgpIHtcbiAgICByZXR1cm4gdGhpcy5zdHJhdGVneSA9PT0gUGFnaW5hdGlvblN0cmF0ZWd5LlBhZ2U7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgcGFnaW5hdGlvbiBpbiBPZmZzZXQgU3RyYXRlZ3kgTW9kZVxuICAgKi9cbiAgcHVibGljIGdldCBoYXNPZmZzZXRTdHJhdGVneSgpIHtcbiAgICByZXR1cm4gdGhpcy5zdHJhdGVneSA9PT0gUGFnaW5hdGlvblN0cmF0ZWd5Lk9mZnNldDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBwYWdpbmF0aW9uIGluIE5vbmUgU3RyYXRlZ3kgTW9kZVxuICAgKi9cbiAgcHVibGljIGdldCBoYXNOb25lU3RyYXRlZ3koKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc3RyYXRlZ3kgPT09IFBhZ2luYXRpb25TdHJhdGVneS5Ob25lO1xuICB9XG5cbiAgLyoqXG4gICAqIElmIHByZXYgcGFnZSBjYW4gYmUgYWN0aXZhdGVkXG4gICAqXG4gICAqL1xuICBwdWJsaWMgIGdldCBoYXNQcmV2UGFnZSgpOiBib29sZWFuIHtcbiAgICBzd2l0Y2ggKHRoaXMuc3RyYXRlZ3kpIHtcbiAgICAgIGNhc2UgUGFnaW5hdGlvblN0cmF0ZWd5LlBhZ2U6XG4gICAgICAgIHJldHVybiB0aGlzLl9oYXNQcmV2UGFnZVBhZ2VTdHJhdGVneTtcbiAgICAgIGNhc2UgUGFnaW5hdGlvblN0cmF0ZWd5Lk9mZnNldDpcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hhc1ByZXZQYWdlT2Zmc2V0U3RyYXRlZ3k7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIElmIG5leHQgcGFnZSBjYW4gYmUgYWN0aXZhdGVkXG4gICAqL1xuICBwdWJsaWMgZ2V0IGhhc05leHRQYWdlKCk6IGJvb2xlYW4geyAvLyBOZWVkIHRvIGNoZWNrIGlmIHBhZ2VzID09PSBwYWdlICYmIHBhZ2UgPT09IDFcbiAgICBzd2l0Y2ggKHRoaXMuc3RyYXRlZ3kpIHtcbiAgICAgIGNhc2UgUGFnaW5hdGlvblN0cmF0ZWd5LlBhZ2U6XG4gICAgICAgIHJldHVybiB0aGlzLl9oYXNOZXh0UGFnZVBhZ2VTdHJhdGVneTtcbiAgICAgIGNhc2UgUGFnaW5hdGlvblN0cmF0ZWd5Lk9mZnNldDpcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hhc05leHRQYWdlT2Zmc2V0U3RyYXRlZ3k7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGdldCBsb2FkTW9yZUVuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2xvYWRNb3JlQ29uZmlnLmVuYWJsZWQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGxvYWRNb3JlTGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fbG9hZE1vcmVDb25maWcubGFiZWw7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGxvYWRNb3JlQnV0dG9uQ29sb3IoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fbG9hZE1vcmVDb25maWcuYnV0dG9uQ29sb3I7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGxvYWRNb3JlQnV0dG9uQ2xhc3MoKTogc3RyaW5nIHtcbiAgICBpZiggdGhpcy5fbG9hZE1vcmVDb25maWcuYnV0dG9uVHlwZSA9PT0gJ2Jhc2ljJyApIHtcbiAgICAgIHJldHVybiAnJzsgXG4gICAgfVxuXG4gICAgcmV0dXJuIGBtYXQtJHt0aGlzLl9sb2FkTW9yZUNvbmZpZy5idXR0b25UeXBlfS1idXR0b25gO1xuICB9XG5cbiAgcHVibGljIGdldCBsb2FkTW9yZUJ1dHRvblR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fbG9hZE1vcmVDb25maWcuYnV0dG9uVHlwZTtcbiAgfVxuICBcbiAgcHVibGljIGdldCBpbmZpbml0eVNjcm9sbEVuYWJsZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2luZmluaXR5U2Nyb2xsRW5hYmxlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTUC1UMTk3NFxuICAgKiBTaG93aW5nIDI2LTUwIG9mIDMzMyByZXN1bHRzIHNvcnRlZCBieSBOYW1lLCBBc2NlbmRpbmdcbiAgICogU2hvd2luZyAwIHJlc3VsdHMgc29ydGVkIGJ5IE5hbWUsIEFzY2VuZGluZ1xuICAgKi9cbiAgcHVibGljIGdldCBzdGF0dXNMYWJlbCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IGN1cnJlbnQgPSAodGhpcy5wYWdlIC0gMSkgKiB0aGlzLmxpbWl0O1xuICAgIGNvbnN0IGZyb20gPSBjdXJyZW50ICsgMTtcbiAgICBjb25zdCB0byA9IE1hdGgubWluKHRoaXMucmVjb3JkcywgY3VycmVudCArIHRoaXMubGltaXQpO1xuXG4gICAgcmV0dXJuIGAke2Zyb219LSR7dG99YDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc3RhdGUoKTogSVBhZ2luYXRpb25TdGF0ZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGVuYWJsZWQ6IHRoaXMuZW5hYmxlZCxcbiAgICAgIHN0cmF0ZWd5OiB0aGlzLnN0cmF0ZWd5LFxuICAgICAgcGFnZTogdGhpcy5wYWdlLFxuICAgICAgb2Zmc2V0OiB0aGlzLm9mZnNldCxcbiAgICAgIGxpbWl0OiB0aGlzLmxpbWl0LFxuICAgICAgcmVjb3JkczogdGhpcy5yZWNvcmRzLFxuICAgICAgZGlzcGxheWVkOiB0aGlzLmRpc3BsYXllZCxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGluaXRXaXRoQ29uZmlnKFxuICAgIGNvbmZpZzogRnNQYWdpbmcgfCBmYWxzZSxcbiAgICBsb2FkTW9yZTogRnNMaXN0TG9hZE1vcmVDb25maWcgfCBib29sZWFuLFxuICAgIGluZmluaXR5U2Nyb2xsRW5hYmxlZCA9IGZhbHNlLFxuICApIHtcblxuICAgIGlmIChjb25maWcpIHtcbiAgICAgIGlmIChjb25maWcubGltaXRzKSB7XG4gICAgICAgIHRoaXMubGltaXRzID0gY29uZmlnLmxpbWl0cztcbiAgICAgIH1cblxuICAgICAgaWYgKGNvbmZpZy5saW1pdCkge1xuICAgICAgICB0aGlzLmxpbWl0ID0gY29uZmlnLmxpbWl0O1xuICAgICAgfVxuXG4gICAgICB0aGlzLnN0cmF0ZWd5ID0gY29uZmlnLnN0cmF0ZWd5O1xuICAgIH1cblxuICAgIHRoaXMuc2V0TG9hZE1vcmUobG9hZE1vcmUpO1xuXG4gICAgdGhpcy5faW5maW5pdHlTY3JvbGxFbmFibGVkID0gaW5maW5pdHlTY3JvbGxFbmFibGVkO1xuICB9XG5cbiAgLyoqXG4gICAqIElmIHBhZ2luYXRpb24gaGFzIHByZXYgcGFnZSB3aGVuIFBhZ2UgU3RyYXRlZ3lcbiAgICovXG4gIHByaXZhdGUgZ2V0IF9oYXNQcmV2UGFnZVBhZ2VTdHJhdGVneSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5wYWdlID4gMSAmJiB0aGlzLnBhZ2VzID4gMTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJZiBwYWdpbmF0aW9uIGhhcyBwcmV2IHBhZ2Ugd2hlbiBPZmZzZXQgU3RyYXRlZ3lcbiAgICovXG4gIHByaXZhdGUgZ2V0IF9oYXNQcmV2UGFnZU9mZnNldFN0cmF0ZWd5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm9mZnNldCA+PSB0aGlzLmxpbWl0ICYmIHRoaXMucmVjb3JkcyA+IDE7XG4gIH1cblxuICAvKipcbiAgICogSWYgcGFnaW5hdGlvbiBoYXMgbmV4dCBwYWdlIHdoZW4gUGFnZSBTdHJhdGVneVxuICAgKi9cbiAgcHJpdmF0ZSBnZXQgX2hhc05leHRQYWdlUGFnZVN0cmF0ZWd5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnBhZ2UgPCB0aGlzLnBhZ2VzICYmIHRoaXMucGFnZXMgPiAxO1xuICB9XG5cbiAgLyoqXG4gICAqIElmIHBhZ2luYXRpb24gaGFzIG5leHQgcGFnZSB3aGVuIE9mZnNldCBTdHJhdGVneVxuICAgKi9cbiAgcHJpdmF0ZSBnZXQgX2hhc05leHRQYWdlT2Zmc2V0U3RyYXRlZ3koKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICh0aGlzLm9mZnNldCArIHRoaXMubGltaXQpIDwgdGhpcy5yZWNvcmRzICYmIHRoaXMucmVjb3JkcyA+IDE7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIHBhZ2luZyBjb25maWcgYW5kIGFsbCByZWxhdGVkIGZpZWxkc1xuICAgKlxuICAgKiBAcGFyYW0gY29uZmlnXG4gICAqIEBwYXJhbSBkaXNwbGF5ZWRSZWNvcmRzXG4gICAqIEBwYXJhbSBsb2FkTW9yZU9wZXJhdGlvblxuICAgKi9cbiAgcHVibGljIHVwZGF0ZVBhZ2luZyhjb25maWcsIGRpc3BsYXllZFJlY29yZHMgPSAwLCBsb2FkTW9yZU9wZXJhdGlvbiA9IGZhbHNlKSB7XG4gICAgaWYgKCFsb2FkTW9yZU9wZXJhdGlvbikge1xuICAgICAgdGhpcy5fZnJvbVBhcmFtcyhjb25maWcpO1xuICAgICAgdGhpcy5kaXNwbGF5ZWQgPSBkaXNwbGF5ZWRSZWNvcmRzO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlY29yZHMgPSBjb25maWcucmVjb3JkcztcblxuICAgICAgaWYgKHRoaXMucmVjb3JkcyA8IHRoaXMuZGlzcGxheWVkKSB7XG4gICAgICAgIHRoaXMuZGlzcGxheWVkID0gdGhpcy5yZWNvcmRzO1xuICAgICAgfVxuXG4gICAgICB0aGlzLl9yZW1vdmVkUm93cyA9IDA7XG4gICAgfVxuXG4gICAgdGhpcy5fdXBkYXRlVG90YWxQYWdlcygpO1xuICB9XG5cbiAgLy8gLyoqXG4gIC8vICAqIFVwZGF0ZSBwYWdpbmcgd2hlbiBkYXRhIHNvdXJjZSBub3QgcmVtb3ZlXG4gIC8vICAqIEBwYXJhbSB7YW55W119IHJvd3NcbiAgLy8gICovXG4gIC8qcHVibGljIHVwZGF0ZVBhZ2luZ01hbnVhbChyb3dzOiBhbnlbXSkge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHJvd3MpICYmIHJvd3MubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5yZWNvcmRzID0gcm93cy5sZW5ndGg7XG4gICAgICB0aGlzLnBhZ2VzID0gTWF0aC5jZWlsKHJvd3MubGVuZ3RoIC8gdGhpcy5saW1pdCk7XG4gICAgfVxuXG4gICAgdGhpcy51cGRhdGVQYWdlc0FycmF5KCk7XG4gICAgdGhpcy51cGRhdGVEaXNwbGF5ZWQoKTtcbiAgfSovXG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBwYWdlcyBhcnJheSB3aXRoIG5ldyBwYWdlcyBjb3VudFxuICAgKi9cbiAgLy8gcHVibGljIHVwZGF0ZVBhZ2VzQXJyYXkoKSB7XG4gIC8vICAgY29uc3QgTUlERExFID0gMjtcbiAgLy8gICBjb25zdCBwYWdlc0FyciA9IFtdO1xuXG4gIC8vICAgbGV0IGZyb20gPSAwO1xuICAvLyAgIGxldCB0byA9IDA7XG4gIC8vICAgaWYgKHRoaXMucGFnZSA8IE1JRERMRSkge1xuICAvLyAgICAgZnJvbSA9IE1JRERMRSAtIDE7XG4gIC8vICAgICB0byA9IE1JRERMRSArIDE7XG4gIC8vICAgfSBlbHNlIGlmICh0aGlzLnBhZ2UgPj0gTUlERExFICYmIHRoaXMucGFnZSA8PSB0aGlzLnBhZ2VzIC0gTUlERExFICsgMSkge1xuICAvLyAgICAgZnJvbSA9IHRoaXMucGFnZSAtIDE7XG4gIC8vICAgICB0byA9IHRoaXMucGFnZSArIDE7XG4gIC8vICAgfSBlbHNlIGlmICh0aGlzLnBhZ2UgPiB0aGlzLnBhZ2VzIC0gTUlERExFICsgMSkge1xuICAvLyAgICAgZnJvbSA9IHRoaXMucGFnZXMgLSBNSURETEUgLSAxO1xuICAvLyAgICAgdG8gPSB0aGlzLnBhZ2VzO1xuICAvLyAgIH1cblxuICAvLyAgIGlmICghdGhpcy5wYWdlcyB8fCB0aGlzLnBhZ2VzIDwgNSkge1xuICAvLyAgICAgZnJvbSA9IDE7XG4gIC8vICAgICB0byA9IHRoaXMucGFnZXMgfHwgMDtcbiAgLy8gICB9XG5cbiAgLy8gICBmb3IgKGxldCBpID0gZnJvbTsgaSA8PSB0bzsgaSsrKSB7XG4gIC8vICAgICBwYWdlc0Fyci5wdXNoKGkpO1xuICAvLyAgIH1cblxuICAvLyAgIHRoaXMucGFnZXNBcnJheSA9IE9iamVjdC5hc3NpZ24oW10sIHBhZ2VzQXJyKTtcbiAgLy8gfVxuXG4gIHB1YmxpYyBzZXRMb2FkTW9yZShjb25maWc6IEZzTGlzdExvYWRNb3JlQ29uZmlnIHwgYm9vbGVhbikge1xuICAgIGNvbnN0IGxvYWRNb3JlQ29uZmlnID0gdHlwZW9mIGNvbmZpZyA9PT0gJ2Jvb2xlYW4nID8ge1xuICAgICAgZW5hYmxlZDogISFjb25maWcsXG4gICAgfSA6IGNvbmZpZyA7XG5cbiAgICB0aGlzLl9sb2FkTW9yZUNvbmZpZyA9IHtcbiAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICBsYWJlbDogJ0xvYWQgTW9yZScsXG4gICAgICBidXR0b25UeXBlOiAnYmFzaWMnLFxuICAgICAgLi4ubG9hZE1vcmVDb25maWcsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgZGlzcGF5ZWQgcmVjb3JkcyBjb3VudGVyXG4gICAqL1xuICAvLyBwdWJsaWMgdXBkYXRlRGlzcGxheWVkKCkge1xuICAvLyAgIHRoaXMuZGlzcGxheWVkID0gdGhpcy5nZXRWaXNpYmxlUmVjb3JkcygpO1xuICAvLyB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBjb3VudCBvZiByZWNvcmRzIHRoYXQgY291bGQgYmUgc2hvd24gb24gcGFnZVxuICAgKi9cbiAgLy8gcHVibGljIGdldFZpc2libGVSZWNvcmRzKCkge1xuICAvLyAgIGNvbnN0IGRpZmYgPSB0aGlzLmhhc09mZnNldFN0cmF0ZWd5XG4gIC8vICAgICA/IHRoaXMucmVjb3JkcyAtIHRoaXMub2Zmc2V0XG4gIC8vICAgICA6IHRoaXMubGltaXQ7XG4gIC8vXG4gIC8vICAgcmV0dXJuIGRpZmYgPCB0aGlzLmxpbWl0XG4gIC8vICAgICA/IGRpZmZcbiAgLy8gICAgIDogdGhpcy5kaXNwbGF5ZWQ7XG4gIC8vIH1cblxuICBwdWJsaWMgZ2V0VmlzaWJsZVJlY29yZHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZGlzcGxheWVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBuZXcgbGltaXRcbiAgICpcbiAgICogQHBhcmFtIGxpbWl0XG4gICAqL1xuICBwdWJsaWMgc2V0TGltaXQobGltaXQpIHtcbiAgICB0aGlzLmxpbWl0ID0gbGltaXQ7XG4gICAgdGhpcy5yZXNldFBhZ2luZygpO1xuXG4gICAgdGhpcy5fcGFnZUNoYW5nZWQkLm5leHQoe1xuICAgICAgdHlwZTogUGFnZUNoYW5nZVR5cGUuTGltaXRDaGFuZ2VkLFxuICAgICAgcGF5bG9hZDogbGltaXQsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogSWYgcGFnZSBpcyBhY3RpdmF0ZSBwYWdlXG4gICAqXG4gICAqIEBwYXJhbSBwYWdlXG4gICAqL1xuICBwdWJsaWMgaXNBY3RpdmUocGFnZSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBwYWdlID09PSB0aGlzLnBhZ2U7XG4gIH1cblxuICAvKipcbiAgICogR28gdG8gcGFnZVxuICAgKlxuICAgKiBAcGFyYW0gcGFnZVxuICAgKi9cbiAgcHVibGljIGdvVG9QYWdlKHBhZ2UpIHtcbiAgICBpZiAocGFnZSA+PSAxICYmIHRoaXMucGFnZSAhPT0gcGFnZSkge1xuICAgICAgdGhpcy5wYWdlID0gcGFnZTtcblxuICAgICAgdGhpcy5fdXBkYXRlT2Zmc2V0KCk7XG5cbiAgICAgIHRoaXMuX3BhZ2VDaGFuZ2VkJC5uZXh0KHtcbiAgICAgICAgdHlwZTogUGFnZUNoYW5nZVR5cGUuRGVmYXVsdCxcbiAgICAgICAgcGF5bG9hZDogcGFnZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldCBwYWdpbmcgbGlrZSBpdCB3YXMganVzdCBpbml0aWFsaXplZFxuICAgKi9cbiAgcHVibGljIHJlc2V0UGFnaW5nKCkge1xuICAgIHRoaXMucGFnZSA9IDE7XG4gICAgdGhpcy5vZmZzZXQgPSAwO1xuICB9XG5cbiAgLyoqXG4gICAqIEdvIHRvIG5leHQgcGFnZVxuICAgKi9cbiAgcHVibGljIGdvTmV4dCgpIHtcbiAgICBpZiAodGhpcy5oYXNOZXh0UGFnZSkge1xuICAgICAgdGhpcy5wYWdlKys7XG5cbiAgICAgIHRoaXMuX3VwZGF0ZU9mZnNldCgpO1xuXG4gICAgICB0aGlzLl9wYWdlQ2hhbmdlZCQubmV4dCh7XG4gICAgICAgIHR5cGU6IFBhZ2VDaGFuZ2VUeXBlLkRlZmF1bHQsXG4gICAgICAgIHBheWxvYWQ6IHRoaXMucGFnZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHbyB0byBmaXJzdCBwYWdlXG4gICAqL1xuICBwdWJsaWMgZ29GaXJzdCgpIHtcbiAgICBpZiAodGhpcy5wYWdlID4gMSkge1xuICAgICAgdGhpcy5wYWdlID0gMTtcblxuICAgICAgdGhpcy5fdXBkYXRlT2Zmc2V0KCk7XG5cbiAgICAgIHRoaXMuX3BhZ2VDaGFuZ2VkJC5uZXh0KHtcbiAgICAgICAgdHlwZTogUGFnZUNoYW5nZVR5cGUuRGVmYXVsdCxcbiAgICAgICAgcGF5bG9hZDogdGhpcy5wYWdlLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdvIHRvIHByZXYgcGFnZVxuICAgKi9cbiAgcHVibGljIGdvUHJldigpIHtcbiAgICBpZiAodGhpcy5wYWdlID4gMSkge1xuICAgICAgdGhpcy5wYWdlLS07XG5cbiAgICAgIHRoaXMuX3VwZGF0ZU9mZnNldCgpO1xuXG4gICAgICB0aGlzLl9wYWdlQ2hhbmdlZCQubmV4dCh7XG4gICAgICAgIHR5cGU6IFBhZ2VDaGFuZ2VUeXBlLkRlZmF1bHQsXG4gICAgICAgIHBheWxvYWQ6IHRoaXMucGFnZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHbyB0byBsYXN0IHBhZ2VcbiAgICovXG4gIHB1YmxpYyBnb0xhc3QoKSB7XG4gICAgaWYgKHRoaXMucGFnZSAhPT0gdGhpcy5wYWdlcykge1xuICAgICAgdGhpcy5wYWdlID0gdGhpcy5wYWdlcztcblxuICAgICAgdGhpcy5fdXBkYXRlT2Zmc2V0KCk7XG5cbiAgICAgIHRoaXMuX3BhZ2VDaGFuZ2VkJC5uZXh0KHtcbiAgICAgICAgdHlwZTogUGFnZUNoYW5nZVR5cGUuRGVmYXVsdCxcbiAgICAgICAgcGF5bG9hZDogdGhpcy5wYWdlLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBjb3VudCBvZiBkZWxldGVkIHJvd3MuIFRoaXMgY291bnQgd2lsbCBiZSBhcHBsaWVkIGZvciBvZmZzZXQgY2FsY1xuICAgKlxuICAgKiBAcGFyYW0gY291bnRcbiAgICovXG4gIHB1YmxpYyByZW1vdmVSb3dzKGNvdW50OiBudW1iZXIpIHtcbiAgICB0aGlzLl9yZW1vdmVkUm93cyArPSBjb3VudDtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVQYWdpbmF0aW9uKCkge1xuICAgIHRoaXMuX3VwZGF0ZVRvdGFsUGFnZXMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXN0cm95XG4gICAqL1xuICBwdWJsaWMgZGVzdHJveSgpIHtcbiAgICB0aGlzLl9vbkRlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLl9vbkRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIHBhZ2luZyBzdGF0ZVxuICAgKlxuICAgKiBAcGFyYW0gcGFyYW1zXG4gICAqL1xuICBwcml2YXRlIF9mcm9tUGFyYW1zKHBhcmFtcyk6IHZvaWQge1xuICAgIGlmICghdGhpcy5sb2FkTW9yZUVuYWJsZWQpIHtcbiAgICAgIHRoaXMubGltaXQgPSBwYXJhbXMubGltaXQgPz8gMjU7XG4gICAgfVxuXG4gICAgdGhpcy5yZWNvcmRzID0gcGFyYW1zLnJlY29yZHM7XG4gICAgdGhpcy5tYW51YWwgPSBwYXJhbXMubWFudWFsO1xuXG4gICAgdGhpcy5wYWdlcyA9IHBhcmFtcy5wYWdlcyB8fCAwO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGMgYW5kIHVwZGF0ZSBvZmZzZXRcbiAgICovXG4gIHByaXZhdGUgX3VwZGF0ZU9mZnNldCgpIHtcbiAgICB0aGlzLm9mZnNldCA9IHRoaXMubGltaXQgKiAodGhpcy5wYWdlIC0gMSk7XG4gIH1cblxuICAvKipcbiAgICogQ2FsYyBhbmQgdXBkYXRlIHRvdGFsIGNvdW50IG9mIHBhZ2VzXG4gICAqL1xuICBwcml2YXRlIF91cGRhdGVUb3RhbFBhZ2VzKCkge1xuICAgIHRoaXMucGFnZXMgPSBNYXRoLmNlaWwodGhpcy5yZWNvcmRzIC8gdGhpcy5saW1pdCk7XG4gIH1cbn1cbiJdfQ==
|
|
495
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi1jb250cm9sbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9jbGFzc2VzL3BhZ2luYXRpb24tY29udHJvbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsZUFBZSxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHakUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBVXZFLE1BQU0sT0FBTyxvQkFBb0I7SUFBakM7UUFFUyxVQUFLLEdBQUcsRUFBRSxDQUFDO1FBRVgsV0FBTSxHQUFHLEtBQUssQ0FBQztRQUVmLFNBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxjQUFjO1FBQ3hCLFdBQU0sR0FBRyxDQUFDLENBQUM7UUFFWCxjQUFTLEdBQUcsQ0FBQyxDQUFDO1FBRWIsWUFBTyxHQUFHLElBQUksZUFBZSxDQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYztRQUV4RCxjQUFTLEdBQXVCLGtCQUFrQixDQUFDLElBQUksQ0FBQztRQUN4RCxpQkFBWSxHQUFHLENBQUMsQ0FBQztRQUVqQixrQkFBYSxHQUFHLElBQUksT0FBTyxFQUFjLENBQUM7UUFDMUMsZ0JBQVcsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQ2xDLGdCQUFXLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUc1QiwyQkFBc0IsR0FBRyxLQUFLLENBQUM7UUFDL0IsWUFBTyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBMmpCM0MsQ0FBQztJQXpqQkMsY0FBYztJQUNkLElBQVcsS0FBSyxDQUFDLEtBQWE7UUFD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cnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cblxuaW1wb3J0IHsgUGFnZUNoYW5nZVR5cGUgfSBmcm9tICcuLi9lbnVtcy9wYWdlLWNoYW5nZS10eXBlLmVudW0nO1xuaW1wb3J0IHsgUGFnaW5hdGlvblN0cmF0ZWd5IH0gZnJvbSAnLi4vZW51bXMvcGFnaW5hdGlvbi1zdHJhdGVneS5lbnVtJztcbmltcG9ydCB7XG4gIEZzTGlzdExvYWRNb3JlQ29uZmlnLFxuICBGc1BhZ2luZyxcbiAgUGFnZUNoYW5nZSxcbiAgUXVlcnlPZmZzZXRTdHJhdGVneSxcbiAgUXVlcnlQYWdlU3RyYXRlZ3ksXG59IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgSVBhZ2luYXRpb25TdGF0ZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvcGFnaW5hdGlvbi1zdGF0ZS5pbnRlcmZhY2UnO1xuXG5leHBvcnQgY2xhc3MgUGFnaW5hdGlvbkNvbnRyb2xsZXIge1xuXG4gIHB1YmxpYyBsaW1pdCA9IDI1O1xuICBwdWJsaWMgcmVjb3JkczogbnVtYmVyO1xuICBwdWJsaWMgbWFudWFsID0gZmFsc2U7XG5cbiAgcHVibGljIHBhZ2UgPSAxOyAvLyBBY3RpdmUgcGFnZVxuICBwdWJsaWMgb2Zmc2V0ID0gMDtcblxuICBwdWJsaWMgZGlzcGxheWVkID0gMDtcblxuICBwcml2YXRlIF9wYWdlcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oMCk7IC8vIFRvdGFsIHBhZ2VzXG5cbiAgcHJpdmF0ZSBfc3RyYXRlZ3k6IFBhZ2luYXRpb25TdHJhdGVneSA9IFBhZ2luYXRpb25TdHJhdGVneS5Ob25lO1xuICBwcml2YXRlIF9yZW1vdmVkUm93cyA9IDA7XG5cbiAgcHJpdmF0ZSBfcGFnZUNoYW5nZWQkID0gbmV3IFN1YmplY3Q8UGFnZUNoYW5nZT4oKTtcbiAgcHJpdmF0ZSBfcGFnZVJlc2V0JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgX29uRGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xuXG4gIHByaXZhdGUgX2xvYWRNb3JlQ29uZmlnOiBGc0xpc3RMb2FkTW9yZUNvbmZpZztcbiAgcHJpdmF0ZSBfaW5maW5pdHlTY3JvbGxFbmFibGVkID0gZmFsc2U7XG4gIHByaXZhdGUgX2xpbWl0cyA9IFsxMCwgMjUsIDUwLCAxMDAsIDIwMF07XG5cbiAgLy8gVG90YWwgcGFnZXNcbiAgcHVibGljIHNldCBwYWdlcyh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5fcGFnZXMkLm5leHQodmFsdWUpO1xuICB9XG5cbiAgcHVibGljIGdldCBwYWdlcygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9wYWdlcyQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcGFnZXMkKCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgcmV0dXJuIHRoaXMuX3BhZ2VzJFxuICAgICAgLnBpcGUoXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpcmUgaWYgcGFnZSB3YXMgY2hhbmdlZFxuICAgKi9cbiAgcHVibGljIGdldCBwYWdlQ2hhbmdlZCQoKTogT2JzZXJ2YWJsZTxQYWdlQ2hhbmdlPiB7XG4gICAgcmV0dXJuIHRoaXMuX3BhZ2VDaGFuZ2VkJC5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHBhZ2VSZXNldCQoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuX3BhZ2VSZXNldCQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGVuYWJsZWRcbiAgICovXG4gIHB1YmxpYyBnZXQgZW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuaGFzTm9uZVN0cmF0ZWd5O1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBMaW1pdHNcbiAgICovXG4gIHB1YmxpYyBnZXQgbGltaXRzKCk6IG51bWJlcltdIHtcbiAgICByZXR1cm4gdGhpcy5fbGltaXRzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBsaW1pdHMsIHVwZGF0ZSBwYWdlcyBhcnJheSBhbmQgc2V0IG5ldyBsaW1pdCBwZXIgcGFnZVxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWVcbiAgICovXG4gIHB1YmxpYyBzZXQgbGltaXRzKHZhbHVlKSB7XG4gICAgdGhpcy5fbGltaXRzID0gdmFsdWU7XG5cbiAgICBpZiAodGhpcy5saW1pdHMubGVuZ3RoID4gMCAmJiB0aGlzLmxpbWl0cy5pbmRleE9mKHRoaXMubGltaXQpID09PSAtMSkge1xuICAgICAgdGhpcy5saW1pdCA9IHRoaXMubGltaXRzWzBdO1xuICAgIH0gZWxzZSBpZiAodGhpcy5saW1pdHMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLmxpbWl0ID0gdGhpcy5yZWNvcmRzO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgcXVlcnkgZm9yIHJlcXVlc3RcbiAgICovXG4gIHB1YmxpYyBnZXQgcXVlcnkoKSB7XG4gICAgc3dpdGNoICh0aGlzLnN0cmF0ZWd5KSB7XG4gICAgICBjYXNlIFBhZ2luYXRpb25TdHJhdGVneS5QYWdlOlxuICAgICAgICByZXR1cm4gdGhpcy5xdWVyeVBhZ2VTdHJhdGVneTtcbiAgICAgIGNhc2UgUGFnaW5hdGlvblN0cmF0ZWd5Lk9mZnNldDpcbiAgICAgICAgcmV0dXJuIHRoaXMucXVlcnlPZmZzZXRTdHJhdGVneTtcbiAgICB9XG5cbiAgICByZXR1cm4ge307XG4gIH1cblxuICBwdWJsaWMgZ2V0IGxvYWRNb3JlUXVlcnkoKSB7XG4gICAgc3dpdGNoICh0aGlzLnN0cmF0ZWd5KSB7XG4gICAgICBjYXNlIFBhZ2luYXRpb25TdHJhdGVneS5QYWdlOiB7XG4gICAgICAgIHJldHVybiB0aGlzLnF1ZXJ5O1xuICAgICAgfVxuXG4gICAgICBjYXNlIFBhZ2luYXRpb25TdHJhdGVneS5PZmZzZXQ6IHtcbiAgICAgICAgY29uc3QgcXVlcnkgPSB0aGlzLnF1ZXJ5T2Zmc2V0U3RyYXRlZ3k7XG5cbiAgICAgICAgcXVlcnkubGltaXQgPSBxdWVyeS5vZmZzZXQgKyBxdWVyeS5saW1pdDtcbiAgICAgICAgcXVlcnkub2Zmc2V0ID0gMDtcblxuICAgICAgICByZXR1cm4gcXVlcnk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgLyoqXG4gICAqIFF1ZXJ5IGZvciBQYWdlIFN0cmF0ZWd5XG4gICAqL1xuICBwdWJsaWMgZ2V0IHF1ZXJ5UGFnZVN0cmF0ZWd5KCk6IFF1ZXJ5UGFnZVN0cmF0ZWd5IHtcbiAgICByZXR1cm4gdGhpcy5oYXNOb25lU3RyYXRlZ3lcbiAgICAgID8ge31cbiAgICAgIDoge1xuICAgICAgICBwYWdlOiB0aGlzLnBhZ2UgfHwgMSxcbiAgICAgICAgbGltaXQ6IHRoaXMubGltaXQgfHwgMTAsXG4gICAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFF1ZXJ5IGZvciBPZmZzZXQgU3RyYXRlZ3lcbiAgICovXG4gIHB1YmxpYyBnZXQgcXVlcnlPZmZzZXRTdHJhdGVneSgpOiBRdWVyeU9mZnNldFN0cmF0ZWd5IHtcbiAgICBjb25zdCBwYWdlID0gdGhpcy5wYWdlIC0gMSB8fCAwO1xuICAgIGNvbnN0IGxpbWl0ID0gdGhpcy5saW1pdCB8fCA1O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIG9mZnNldDogcGFnZSAqIGxpbWl0LFxuICAgICAgbGltaXQsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgcXVlcnkgZm9yIGxvYWQgb25seSBjb3VudCBvZiBkZWxldGVkIHJvd3NcbiAgICovXG4gIHB1YmxpYyBnZXQgbG9hZERlbGV0ZWRPZmZzZXRRdWVyeSgpIHtcbiAgICBjb25zdCBwYWdpbmF0aW9uT2Zmc2V0ID0gdGhpcy5saW1pdCAqIHRoaXMucGFnZTtcbiAgICBjb25zdCBhY3R1YWxPZmZzZXQgPSBNYXRoLm1pbih0aGlzLnJlY29yZHMsIHBhZ2luYXRpb25PZmZzZXQpO1xuICAgIGNvbnN0IG9mZnNldCA9IE1hdGgubWF4KDAsIGFjdHVhbE9mZnNldCAtIHRoaXMuX3JlbW92ZWRSb3dzKTtcblxuICAgIHJldHVybiB7XG4gICAgICBvZmZzZXQsXG4gICAgICBsaW1pdDogdGhpcy5fcmVtb3ZlZFJvd3MsXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaW5pdGlhbGl6ZWQoKSB7XG4gICAgcmV0dXJuICEhdGhpcy5wYWdlcztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc3RyYXRlZ3koKSB7XG4gICAgcmV0dXJuIHRoaXMuX3N0cmF0ZWd5O1xuICB9XG5cbiAgcHVibGljIHNldCBzdHJhdGVneShzdHJhdGVneTogUGFnaW5hdGlvblN0cmF0ZWd5KSB7XG4gICAgdGhpcy5fc3RyYXRlZ3kgPSAoc3RyYXRlZ3kgPT09IHVuZGVmaW5lZCkgPyBQYWdpbmF0aW9uU3RyYXRlZ3kuUGFnZSA6IHN0cmF0ZWd5O1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIHBhZ2luYXRpb24gaW4gUGFnZSBTdHJhdGVneSBNb2RlXG4gICAqL1xuICBwdWJsaWMgZ2V0IGhhc1BhZ2VTdHJhdGVneSgpIHtcbiAgICByZXR1cm4gdGhpcy5zdHJhdGVneSA9PT0gUGFnaW5hdGlvblN0cmF0ZWd5LlBhZ2U7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgcGFnaW5hdGlvbiBpbiBPZmZzZXQgU3RyYXRlZ3kgTW9kZVxuICAgKi9cbiAgcHVibGljIGdldCBoYXNPZmZzZXRTdHJhdGVneSgpIHtcbiAgICByZXR1cm4gdGhpcy5zdHJhdGVneSA9PT0gUGFnaW5hdGlvblN0cmF0ZWd5Lk9mZnNldDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBwYWdpbmF0aW9uIGluIE5vbmUgU3RyYXRlZ3kgTW9kZVxuICAgKi9cbiAgcHVibGljIGdldCBoYXNOb25lU3RyYXRlZ3koKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc3RyYXRlZ3kgPT09IFBhZ2luYXRpb25TdHJhdGVneS5Ob25lO1xuICB9XG5cbiAgLyoqXG4gICAqIElmIHByZXYgcGFnZSBjYW4gYmUgYWN0aXZhdGVkXG4gICAqXG4gICAqL1xuICBwdWJsaWMgIGdldCBoYXNQcmV2UGFnZSgpOiBib29sZWFuIHtcbiAgICBzd2l0Y2ggKHRoaXMuc3RyYXRlZ3kpIHtcbiAgICAgIGNhc2UgUGFnaW5hdGlvblN0cmF0ZWd5LlBhZ2U6XG4gICAgICAgIHJldHVybiB0aGlzLl9oYXNQcmV2UGFnZVBhZ2VTdHJhdGVneTtcbiAgICAgIGNhc2UgUGFnaW5hdGlvblN0cmF0ZWd5Lk9mZnNldDpcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hhc1ByZXZQYWdlT2Zmc2V0U3RyYXRlZ3k7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIElmIG5leHQgcGFnZSBjYW4gYmUgYWN0aXZhdGVkXG4gICAqL1xuICBwdWJsaWMgZ2V0IGhhc05leHRQYWdlKCk6IGJvb2xlYW4geyAvLyBOZWVkIHRvIGNoZWNrIGlmIHBhZ2VzID09PSBwYWdlICYmIHBhZ2UgPT09IDFcbiAgICBzd2l0Y2ggKHRoaXMuc3RyYXRlZ3kpIHtcbiAgICAgIGNhc2UgUGFnaW5hdGlvblN0cmF0ZWd5LlBhZ2U6XG4gICAgICAgIHJldHVybiB0aGlzLl9oYXNOZXh0UGFnZVBhZ2VTdHJhdGVneTtcbiAgICAgIGNhc2UgUGFnaW5hdGlvblN0cmF0ZWd5Lk9mZnNldDpcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hhc05leHRQYWdlT2Zmc2V0U3RyYXRlZ3k7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGdldCBsb2FkTW9yZUVuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2xvYWRNb3JlQ29uZmlnLmVuYWJsZWQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGxvYWRNb3JlTGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fbG9hZE1vcmVDb25maWcubGFiZWw7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGxvYWRNb3JlQnV0dG9uQ29sb3IoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fbG9hZE1vcmVDb25maWcuYnV0dG9uQ29sb3I7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGxvYWRNb3JlQnV0dG9uQ2xhc3MoKTogc3RyaW5nIHtcbiAgICBpZiggdGhpcy5fbG9hZE1vcmVDb25maWcuYnV0dG9uVHlwZSA9PT0gJ2Jhc2ljJyApIHtcbiAgICAgIHJldHVybiAnJzsgXG4gICAgfVxuXG4gICAgcmV0dXJuIGBtYXQtJHt0aGlzLl9sb2FkTW9yZUNvbmZpZy5idXR0b25UeXBlfS1idXR0b25gO1xuICB9XG5cbiAgcHVibGljIGdldCBsb2FkTW9yZUJ1dHRvblR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fbG9hZE1vcmVDb25maWcuYnV0dG9uVHlwZTtcbiAgfVxuICBcbiAgcHVibGljIGdldCBpbmZpbml0eVNjcm9sbEVuYWJsZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2luZmluaXR5U2Nyb2xsRW5hYmxlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTUC1UMTk3NFxuICAgKiBTaG93aW5nIDI2LTUwIG9mIDMzMyByZXN1bHRzIHNvcnRlZCBieSBOYW1lLCBBc2NlbmRpbmdcbiAgICogU2hvd2luZyAwIHJlc3VsdHMgc29ydGVkIGJ5IE5hbWUsIEFzY2VuZGluZ1xuICAgKi9cbiAgcHVibGljIGdldCBzdGF0dXNMYWJlbCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IGN1cnJlbnQgPSAodGhpcy5wYWdlIC0gMSkgKiB0aGlzLmxpbWl0O1xuICAgIGNvbnN0IGZyb20gPSBjdXJyZW50ICsgMTtcbiAgICBjb25zdCB0byA9IE1hdGgubWluKHRoaXMucmVjb3JkcywgY3VycmVudCArIHRoaXMubGltaXQpO1xuXG4gICAgcmV0dXJuIGAke2Zyb219LSR7dG99YDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc3RhdGUoKTogSVBhZ2luYXRpb25TdGF0ZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGVuYWJsZWQ6IHRoaXMuZW5hYmxlZCxcbiAgICAgIHN0cmF0ZWd5OiB0aGlzLnN0cmF0ZWd5LFxuICAgICAgcGFnZTogdGhpcy5wYWdlLFxuICAgICAgb2Zmc2V0OiB0aGlzLm9mZnNldCxcbiAgICAgIGxpbWl0OiB0aGlzLmxpbWl0LFxuICAgICAgcmVjb3JkczogdGhpcy5yZWNvcmRzLFxuICAgICAgZGlzcGxheWVkOiB0aGlzLmRpc3BsYXllZCxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGluaXRXaXRoQ29uZmlnKFxuICAgIGNvbmZpZzogRnNQYWdpbmcgfCBmYWxzZSxcbiAgICBsb2FkTW9yZTogRnNMaXN0TG9hZE1vcmVDb25maWcgfCBib29sZWFuLFxuICAgIGluZmluaXR5U2Nyb2xsRW5hYmxlZCA9IGZhbHNlLFxuICApIHtcblxuICAgIGlmIChjb25maWcpIHtcbiAgICAgIGlmIChjb25maWcubGltaXRzKSB7XG4gICAgICAgIHRoaXMubGltaXRzID0gY29uZmlnLmxpbWl0cztcbiAgICAgIH1cblxuICAgICAgaWYgKGNvbmZpZy5saW1pdCkge1xuICAgICAgICB0aGlzLmxpbWl0ID0gY29uZmlnLmxpbWl0O1xuICAgICAgfVxuXG4gICAgICB0aGlzLnN0cmF0ZWd5ID0gY29uZmlnLnN0cmF0ZWd5O1xuICAgIH1cbiAgICBcbiAgICB0aGlzLnNldExvYWRNb3JlKGxvYWRNb3JlKTtcblxuICAgIHRoaXMuX2luZmluaXR5U2Nyb2xsRW5hYmxlZCA9IGluZmluaXR5U2Nyb2xsRW5hYmxlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBJZiBwYWdpbmF0aW9uIGhhcyBwcmV2IHBhZ2Ugd2hlbiBQYWdlIFN0cmF0ZWd5XG4gICAqL1xuICBwcml2YXRlIGdldCBfaGFzUHJldlBhZ2VQYWdlU3RyYXRlZ3koKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucGFnZSA+IDEgJiYgdGhpcy5wYWdlcyA+IDE7XG4gIH1cblxuICAvKipcbiAgICogSWYgcGFnaW5hdGlvbiBoYXMgcHJldiBwYWdlIHdoZW4gT2Zmc2V0IFN0cmF0ZWd5XG4gICAqL1xuICBwcml2YXRlIGdldCBfaGFzUHJldlBhZ2VPZmZzZXRTdHJhdGVneSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5vZmZzZXQgPj0gdGhpcy5saW1pdCAmJiB0aGlzLnJlY29yZHMgPiAxO1xuICB9XG5cbiAgLyoqXG4gICAqIElmIHBhZ2luYXRpb24gaGFzIG5leHQgcGFnZSB3aGVuIFBhZ2UgU3RyYXRlZ3lcbiAgICovXG4gIHByaXZhdGUgZ2V0IF9oYXNOZXh0UGFnZVBhZ2VTdHJhdGVneSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5wYWdlIDwgdGhpcy5wYWdlcyAmJiB0aGlzLnBhZ2VzID4gMTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJZiBwYWdpbmF0aW9uIGhhcyBuZXh0IHBhZ2Ugd2hlbiBPZmZzZXQgU3RyYXRlZ3lcbiAgICovXG4gIHByaXZhdGUgZ2V0IF9oYXNOZXh0UGFnZU9mZnNldFN0cmF0ZWd5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAodGhpcy5vZmZzZXQgKyB0aGlzLmxpbWl0KSA8IHRoaXMucmVjb3JkcyAmJiB0aGlzLnJlY29yZHMgPiAxO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBwYWdpbmcgY29uZmlnIGFuZCBhbGwgcmVsYXRlZCBmaWVsZHNcbiAgICpcbiAgICogQHBhcmFtIGNvbmZpZ1xuICAgKiBAcGFyYW0gZGlzcGxheWVkUmVjb3Jkc1xuICAgKiBAcGFyYW0gbG9hZE1vcmVPcGVyYXRpb25cbiAgICovXG4gIHB1YmxpYyB1cGRhdGVQYWdpbmcoY29uZmlnLCBkaXNwbGF5ZWRSZWNvcmRzID0gMCwgbG9hZE1vcmVPcGVyYXRpb24gPSBmYWxzZSkge1xuICAgIGlmICghbG9hZE1vcmVPcGVyYXRpb24pIHtcbiAgICAgIHRoaXMuX2Zyb21QYXJhbXMoY29uZmlnKTtcbiAgICAgIHRoaXMuZGlzcGxheWVkID0gZGlzcGxheWVkUmVjb3JkcztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yZWNvcmRzID0gY29uZmlnLnJlY29yZHM7XG5cbiAgICAgIGlmICh0aGlzLnJlY29yZHMgPCB0aGlzLmRpc3BsYXllZCkge1xuICAgICAgICB0aGlzLmRpc3BsYXllZCA9IHRoaXMucmVjb3JkcztcbiAgICAgIH1cblxuICAgICAgdGhpcy5fcmVtb3ZlZFJvd3MgPSAwO1xuICAgIH1cblxuICAgIHRoaXMuX3VwZGF0ZVRvdGFsUGFnZXMoKTtcbiAgfVxuXG4gIC8vIC8qKlxuICAvLyAgKiBVcGRhdGUgcGFnaW5nIHdoZW4gZGF0YSBzb3VyY2Ugbm90IHJlbW92ZVxuICAvLyAgKiBAcGFyYW0ge2FueVtdfSByb3dzXG4gIC8vICAqL1xuICAvKnB1YmxpYyB1cGRhdGVQYWdpbmdNYW51YWwocm93czogYW55W10pIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShyb3dzKSAmJiByb3dzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMucmVjb3JkcyA9IHJvd3MubGVuZ3RoO1xuICAgICAgdGhpcy5wYWdlcyA9IE1hdGguY2VpbChyb3dzLmxlbmd0aCAvIHRoaXMubGltaXQpO1xuICAgIH1cblxuICAgIHRoaXMudXBkYXRlUGFnZXNBcnJheSgpO1xuICAgIHRoaXMudXBkYXRlRGlzcGxheWVkKCk7XG4gIH0qL1xuXG4gIC8qKlxuICAgKiBVcGRhdGUgcGFnZXMgYXJyYXkgd2l0aCBuZXcgcGFnZXMgY291bnRcbiAgICovXG4gIC8vIHB1YmxpYyB1cGRhdGVQYWdlc0FycmF5KCkge1xuICAvLyAgIGNvbnN0IE1JRERMRSA9IDI7XG4gIC8vICAgY29uc3QgcGFnZXNBcnIgPSBbXTtcblxuICAvLyAgIGxldCBmcm9tID0gMDtcbiAgLy8gICBsZXQgdG8gPSAwO1xuICAvLyAgIGlmICh0aGlzLnBhZ2UgPCBNSURETEUpIHtcbiAgLy8gICAgIGZyb20gPSBNSURETEUgLSAxO1xuICAvLyAgICAgdG8gPSBNSURETEUgKyAxO1xuICAvLyAgIH0gZWxzZSBpZiAodGhpcy5wYWdlID49IE1JRERMRSAmJiB0aGlzLnBhZ2UgPD0gdGhpcy5wYWdlcyAtIE1JRERMRSArIDEpIHtcbiAgLy8gICAgIGZyb20gPSB0aGlzLnBhZ2UgLSAxO1xuICAvLyAgICAgdG8gPSB0aGlzLnBhZ2UgKyAxO1xuICAvLyAgIH0gZWxzZSBpZiAodGhpcy5wYWdlID4gdGhpcy5wYWdlcyAtIE1JRERMRSArIDEpIHtcbiAgLy8gICAgIGZyb20gPSB0aGlzLnBhZ2VzIC0gTUlERExFIC0gMTtcbiAgLy8gICAgIHRvID0gdGhpcy5wYWdlcztcbiAgLy8gICB9XG5cbiAgLy8gICBpZiAoIXRoaXMucGFnZXMgfHwgdGhpcy5wYWdlcyA8IDUpIHtcbiAgLy8gICAgIGZyb20gPSAxO1xuICAvLyAgICAgdG8gPSB0aGlzLnBhZ2VzIHx8IDA7XG4gIC8vICAgfVxuXG4gIC8vICAgZm9yIChsZXQgaSA9IGZyb207IGkgPD0gdG87IGkrKykge1xuICAvLyAgICAgcGFnZXNBcnIucHVzaChpKTtcbiAgLy8gICB9XG5cbiAgLy8gICB0aGlzLnBhZ2VzQXJyYXkgPSBPYmplY3QuYXNzaWduKFtdLCBwYWdlc0Fycik7XG4gIC8vIH1cblxuICBwdWJsaWMgc2V0TG9hZE1vcmUoY29uZmlnOiBGc0xpc3RMb2FkTW9yZUNvbmZpZyB8IGJvb2xlYW4pIHtcbiAgICBjb25zdCBsb2FkTW9yZUNvbmZpZyA9IHR5cGVvZiBjb25maWcgPT09ICdib29sZWFuJyA/IFxuICAgICAge1xuICAgICAgICBlbmFibGVkOiAhIWNvbmZpZyxcbiAgICAgIH0gOiB7XG4gICAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICAgIC4uLmNvbmZpZyxcbiAgICAgIH0gO1xuXG4gICAgdGhpcy5fbG9hZE1vcmVDb25maWcgPSB7XG4gICAgICBlbmFibGVkOiBmYWxzZSxcbiAgICAgIGxhYmVsOiAnTG9hZCBNb3JlJyxcbiAgICAgIGJ1dHRvblR5cGU6ICdiYXNpYycsXG4gICAgICAuLi5sb2FkTW9yZUNvbmZpZyxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBkaXNwYXllZCByZWNvcmRzIGNvdW50ZXJcbiAgICovXG4gIC8vIHB1YmxpYyB1cGRhdGVEaXNwbGF5ZWQoKSB7XG4gIC8vICAgdGhpcy5kaXNwbGF5ZWQgPSB0aGlzLmdldFZpc2libGVSZWNvcmRzKCk7XG4gIC8vIH1cblxuICAvKipcbiAgICogUmV0dXJuIGNvdW50IG9mIHJlY29yZHMgdGhhdCBjb3VsZCBiZSBzaG93biBvbiBwYWdlXG4gICAqL1xuICAvLyBwdWJsaWMgZ2V0VmlzaWJsZVJlY29yZHMoKSB7XG4gIC8vICAgY29uc3QgZGlmZiA9IHRoaXMuaGFzT2Zmc2V0U3RyYXRlZ3lcbiAgLy8gICAgID8gdGhpcy5yZWNvcmRzIC0gdGhpcy5vZmZzZXRcbiAgLy8gICAgIDogdGhpcy5saW1pdDtcbiAgLy9cbiAgLy8gICByZXR1cm4gZGlmZiA8IHRoaXMubGltaXRcbiAgLy8gICAgID8gZGlmZlxuICAvLyAgICAgOiB0aGlzLmRpc3BsYXllZDtcbiAgLy8gfVxuXG4gIHB1YmxpYyBnZXRWaXNpYmxlUmVjb3JkcygpIHtcbiAgICByZXR1cm4gdGhpcy5kaXNwbGF5ZWQ7XG4gIH1cblxuICAvKipcbiAgICogU2V0IG5ldyBsaW1pdFxuICAgKlxuICAgKiBAcGFyYW0gbGltaXRcbiAgICovXG4gIHB1YmxpYyBzZXRMaW1pdChsaW1pdCkge1xuICAgIHRoaXMubGltaXQgPSBsaW1pdDtcbiAgICB0aGlzLnJlc2V0UGFnaW5nKCk7XG5cbiAgICB0aGlzLl9wYWdlQ2hhbmdlZCQubmV4dCh7XG4gICAgICB0eXBlOiBQYWdlQ2hhbmdlVHlwZS5MaW1pdENoYW5nZWQsXG4gICAgICBwYXlsb2FkOiBsaW1pdCxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJZiBwYWdlIGlzIGFjdGl2YXRlIHBhZ2VcbiAgICpcbiAgICogQHBhcmFtIHBhZ2VcbiAgICovXG4gIHB1YmxpYyBpc0FjdGl2ZShwYWdlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHBhZ2UgPT09IHRoaXMucGFnZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHbyB0byBwYWdlXG4gICAqXG4gICAqIEBwYXJhbSBwYWdlXG4gICAqL1xuICBwdWJsaWMgZ29Ub1BhZ2UocGFnZSkge1xuICAgIGlmIChwYWdlID49IDEgJiYgdGhpcy5wYWdlICE9PSBwYWdlKSB7XG4gICAgICB0aGlzLnBhZ2UgPSBwYWdlO1xuXG4gICAgICB0aGlzLl91cGRhdGVPZmZzZXQoKTtcblxuICAgICAgdGhpcy5fcGFnZUNoYW5nZWQkLm5leHQoe1xuICAgICAgICB0eXBlOiBQYWdlQ2hhbmdlVHlwZS5EZWZhdWx0LFxuICAgICAgICBwYXlsb2FkOiBwYWdlLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0IHBhZ2luZyBsaWtlIGl0IHdhcyBqdXN0IGluaXRpYWxpemVkXG4gICAqL1xuICBwdWJsaWMgcmVzZXRQYWdpbmcoKSB7XG4gICAgdGhpcy5wYWdlID0gMTtcbiAgICB0aGlzLm9mZnNldCA9IDA7XG4gIH1cblxuICAvKipcbiAgICogR28gdG8gbmV4dCBwYWdlXG4gICAqL1xuICBwdWJsaWMgZ29OZXh0KCkge1xuICAgIGlmICh0aGlzLmhhc05leHRQYWdlKSB7XG4gICAgICB0aGlzLnBhZ2UrKztcblxuICAgICAgdGhpcy5fdXBkYXRlT2Zmc2V0KCk7XG5cbiAgICAgIHRoaXMuX3BhZ2VDaGFuZ2VkJC5uZXh0KHtcbiAgICAgICAgdHlwZTogUGFnZUNoYW5nZVR5cGUuRGVmYXVsdCxcbiAgICAgICAgcGF5bG9hZDogdGhpcy5wYWdlLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdvIHRvIGZpcnN0IHBhZ2VcbiAgICovXG4gIHB1YmxpYyBnb0ZpcnN0KCkge1xuICAgIGlmICh0aGlzLnBhZ2UgPiAxKSB7XG4gICAgICB0aGlzLnBhZ2UgPSAxO1xuXG4gICAgICB0aGlzLl91cGRhdGVPZmZzZXQoKTtcblxuICAgICAgdGhpcy5fcGFnZUNoYW5nZWQkLm5leHQoe1xuICAgICAgICB0eXBlOiBQYWdlQ2hhbmdlVHlwZS5EZWZhdWx0LFxuICAgICAgICBwYXlsb2FkOiB0aGlzLnBhZ2UsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR28gdG8gcHJldiBwYWdlXG4gICAqL1xuICBwdWJsaWMgZ29QcmV2KCkge1xuICAgIGlmICh0aGlzLnBhZ2UgPiAxKSB7XG4gICAgICB0aGlzLnBhZ2UtLTtcblxuICAgICAgdGhpcy5fdXBkYXRlT2Zmc2V0KCk7XG5cbiAgICAgIHRoaXMuX3BhZ2VDaGFuZ2VkJC5uZXh0KHtcbiAgICAgICAgdHlwZTogUGFnZUNoYW5nZVR5cGUuRGVmYXVsdCxcbiAgICAgICAgcGF5bG9hZDogdGhpcy5wYWdlLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdvIHRvIGxhc3QgcGFnZVxuICAgKi9cbiAgcHVibGljIGdvTGFzdCgpIHtcbiAgICBpZiAodGhpcy5wYWdlICE9PSB0aGlzLnBhZ2VzKSB7XG4gICAgICB0aGlzLnBhZ2UgPSB0aGlzLnBhZ2VzO1xuXG4gICAgICB0aGlzLl91cGRhdGVPZmZzZXQoKTtcblxuICAgICAgdGhpcy5fcGFnZUNoYW5nZWQkLm5leHQoe1xuICAgICAgICB0eXBlOiBQYWdlQ2hhbmdlVHlwZS5EZWZhdWx0LFxuICAgICAgICBwYXlsb2FkOiB0aGlzLnBhZ2UsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIGNvdW50IG9mIGRlbGV0ZWQgcm93cy4gVGhpcyBjb3VudCB3aWxsIGJlIGFwcGxpZWQgZm9yIG9mZnNldCBjYWxjXG4gICAqXG4gICAqIEBwYXJhbSBjb3VudFxuICAgKi9cbiAgcHVibGljIHJlbW92ZVJvd3MoY291bnQ6IG51bWJlcikge1xuICAgIHRoaXMuX3JlbW92ZWRSb3dzICs9IGNvdW50O1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZVBhZ2luYXRpb24oKSB7XG4gICAgdGhpcy5fdXBkYXRlVG90YWxQYWdlcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIERlc3Ryb3lcbiAgICovXG4gIHB1YmxpYyBkZXN0cm95KCkge1xuICAgIHRoaXMuX29uRGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuX29uRGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgcGFnaW5nIHN0YXRlXG4gICAqXG4gICAqIEBwYXJhbSBwYXJhbXNcbiAgICovXG4gIHByaXZhdGUgX2Zyb21QYXJhbXMocGFyYW1zKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmxvYWRNb3JlRW5hYmxlZCkge1xuICAgICAgdGhpcy5saW1pdCA9IHBhcmFtcy5saW1pdCA/PyAyNTtcbiAgICB9XG5cbiAgICB0aGlzLnJlY29yZHMgPSBwYXJhbXMucmVjb3JkcztcbiAgICB0aGlzLm1hbnVhbCA9IHBhcmFtcy5tYW51YWw7XG5cbiAgICB0aGlzLnBhZ2VzID0gcGFyYW1zLnBhZ2VzIHx8IDA7XG4gIH1cblxuICAvKipcbiAgICogQ2FsYyBhbmQgdXBkYXRlIG9mZnNldFxuICAgKi9cbiAgcHJpdmF0ZSBfdXBkYXRlT2Zmc2V0KCkge1xuICAgIHRoaXMub2Zmc2V0ID0gdGhpcy5saW1pdCAqICh0aGlzLnBhZ2UgLSAxKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxjIGFuZCB1cGRhdGUgdG90YWwgY291bnQgb2YgcGFnZXNcbiAgICovXG4gIHByaXZhdGUgX3VwZGF0ZVRvdGFsUGFnZXMoKSB7XG4gICAgdGhpcy5wYWdlcyA9IE1hdGguY2VpbCh0aGlzLnJlY29yZHMgLyB0aGlzLmxpbWl0KTtcbiAgfVxufVxuIl19
|
|
@@ -95,7 +95,7 @@ export class ReorderController {
|
|
|
95
95
|
},
|
|
96
96
|
disabled: () => {
|
|
97
97
|
return this.reorderDisabled;
|
|
98
|
-
}
|
|
98
|
+
},
|
|
99
99
|
});
|
|
100
100
|
actionsController.addReorderDoneAction({
|
|
101
101
|
label: 'Done',
|
|
@@ -178,5 +178,5 @@ ReorderController.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", versio
|
|
|
178
178
|
ReorderController.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ReorderController });
|
|
179
179
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ReorderController, decorators: [{
|
|
180
180
|
type: Injectable
|
|
181
|
-
}]
|
|
182
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVvcmRlci1jb250cm9sbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9jbGFzc2VzL3Jlb3JkZXItY29udHJvbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRXRELE9BQU8sRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBYTNDLE1BQU0sQ0FBTixJQUFZLGVBR1g7QUFIRCxXQUFZLGVBQWU7SUFDekIsZ0NBQWEsQ0FBQTtJQUNiLGtDQUFlLENBQUE7QUFDakIsQ0FBQyxFQUhXLGVBQWUsS0FBZixlQUFlLFFBRzFCO0FBRUQsTUFBTSxDQUFOLElBQVksZUFJWDtBQUpELFdBQVksZUFBZTtJQUN6QixvQ0FBaUIsQ0FBQTtJQUNqQixvQ0FBaUIsQ0FBQTtJQUNqQixvQ0FBaUIsQ0FBQTtBQUNuQixDQUFDLEVBSlcsZUFBZSxLQUFmLGVBQWUsUUFJMUI7QUFHRCxNQUFNLE9BQU8saUJBQWlCO0lBd0I1QjtRQVJRLGNBQVMsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUNoRCw2QkFBd0IsR0FBRyxJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN0RCxzQkFBaUIsR0FBRyxJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvQyxjQUFTLEdBQUcsSUFBSSxlQUFlLENBQXlCLElBQUksQ0FBQyxDQUFDO1FBQzlELGNBQVMsR0FBRyxJQUFJLGVBQWUsQ0FBeUIsSUFBSSxDQUFDLENBQUM7UUFFOUQsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7SUFFbkIsQ0FBQztJQUVoQixJQUFXLE9BQU87UUFDaEIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFB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SUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQ7O09BRUc7SUFDSSxtQkFBbUI7UUFDeEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUNoRCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxvQkFBb0I7UUFDekIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUNoRCxDQUFDO0lBRU8sWUFBWSxDQUFDLEtBQXNCO1FBQ3pDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFTyxZQUFZLENBQUMsS0FBc0I7UUFDekMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0IsQ0FBQzs7OEdBN05VLGlCQUFpQjtrSEFBakIsaUJBQWlCOzJGQUFqQixpQkFBaUI7a0JBRDdCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7XG4gIEZzTGlzdFJlb3JkZXJDb25maWcsXG4gIEZzTGlzdFJlb3JkZXJEb25lQ2FsbGJhY2ssXG4gIEZzTGlzdFJlb3JkZXJNb3ZlZENhbGxiYWNrLFxuICBGc0xpc3RSZW9yZGVyTW92ZUluR3JvdXBDYWxsYmFja1xufSBmcm9tICcuLi9pbnRlcmZhY2VzJztcblxuaW1wb3J0IHsgRGF0YUNvbnRyb2xsZXIgfSBmcm9tICcuL2RhdGEtY29udHJvbGxlcic7XG5pbXBvcnQgeyBBY3Rpb25zQ29udHJvbGxlciB9IGZyb20gJy4vYWN0aW9ucy1jb250cm9sbGVyJztcbmltcG9ydCB7IFNlbGVjdGlvbkNvbnRyb2xsZXIgfSBmcm9tICcuL3NlbGVjdGlvbi1jb250cm9sbGVyJztcblxuZXhwb3J0IGVudW0gUmVvcmRlclBvc2l0aW9uIHtcbiAgTGVmdCA9ICdsZWZ0JyxcbiAgUmlnaHQgPSAncmlnaHQnLFxufVxuXG5leHBvcnQgZW51bSBSZW9yZGVyU3RyYXRlZ3kge1xuICBBbHdheXMgPSAnYWx3YXlzJyxcbiAgTWFudWFsID0gJ21hbnVhbCcsXG4gIEN1c3RvbSA9ICdjdXN0b20nLFxufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUmVvcmRlckNvbnRyb2xsZXIgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gIHB1YmxpYyBzdGFydENhbGxiYWNrOiAoKSA9PiB2b2lkIHwgT2JzZXJ2YWJsZTx2b2lkPjtcbiAgcHVibGljIG1vdmVkQ2FsbGJhY2s6IEZzTGlzdFJlb3JkZXJNb3ZlZENhbGxiYWNrO1xuICBwdWJsaWMgZG9uZUNhbGxiYWNrOiBGc0xpc3RSZW9yZGVyRG9uZUNhbGxiYWNrO1xuICBwdWJsaWMgbW92ZURyb3BDYWxsYmFjazogRnNMaXN0UmVvcmRlck1vdmVJbkdyb3VwQ2FsbGJhY2s7XG5cbiAgcHVibGljIHN0YXR1czogYm9vbGVhbjtcbiAgcHVibGljIGxhYmVsOiBzdHJpbmc7XG4gIHB1YmxpYyBtZW51OiBib29sZWFuO1xuICBwdWJsaWMgbXVsdGlwbGU6IGJvb2xlYW47XG5cbiAgcHJpdmF0ZSBfZGF0YUNvbnRyb2xsZXI6IERhdGFDb250cm9sbGVyO1xuICBwcml2YXRlIF9hY3Rpb25zQ29udHJvbGxlcjogQWN0aW9uc0NvbnRyb2xsZXI7XG4gIHByaXZhdGUgX3NlbGVjdGlvbkNvbnRyb2xsZXI6IFNlbGVjdGlvbkNvbnRyb2xsZXI7XG5cbiAgcHJpdmF0ZSBfZW5hYmxlZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcHJpdmF0ZSBfbWFudWFsUmVvcmRlckFjdGl2YXRlZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcbiAgcHJpdmF0ZSBfcmVvcmRlckRpc2FibGVkJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuICBwcml2YXRlIF9wb3NpdGlvbiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UmVvcmRlclBvc2l0aW9uIHwgbnVsbD4obnVsbCk7XG4gIHByaXZhdGUgX3N0cmF0ZWd5ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxSZW9yZGVyU3RyYXRlZ3kgfCBudWxsPihudWxsKTtcblxuICBwcml2YXRlIF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIHB1YmxpYyBnZXQgZW5hYmxlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5fZW5hYmxlZCQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgZW5hYmxlZCh2YWx1ZSkge1xuICAgIHRoaXMuX2VuYWJsZWQkLm5leHQodmFsdWUpO1xuXG4gICAgdGhpcy5fbWFudWFsUmVvcmRlckFjdGl2YXRlZCQubmV4dCh0aGlzLmVuYWJsZWQgJiYgdGhpcy5zdHJhdGVneSA9PT0gUmVvcmRlclN0cmF0ZWd5Lk1hbnVhbCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHN0cmF0ZWd5KCk6IFJlb3JkZXJTdHJhdGVneSB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9zdHJhdGVneS5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBwb3NpdGlvbigpOiBSZW9yZGVyUG9zaXRpb24gfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fcG9zaXRpb24uZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGF0YUNvbnRyb2xsZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2RhdGFDb250cm9sbGVyO1xuICB9XG5cbiAgcHVibGljIGdldCBzZWxlY3Rpb25Db250cm9sbGVyKCk6IFNlbGVjdGlvbkNvbnRyb2xsZXIge1xuICAgIHJldHVybiB0aGlzLl9zZWxlY3Rpb25Db250cm9sbGVyO1xuICB9XG5cbiAgcHVibGljIGdldCBlbmFibGVkJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5fZW5hYmxlZCQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHBvc2l0aW9uJCgpOiBPYnNlcnZhYmxlPFJlb3JkZXJQb3NpdGlvbj4ge1xuICAgIHJldHVybiB0aGlzLl9wb3NpdGlvbi5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc3RyYXRlZ3kkKCk6IE9ic2VydmFibGU8UmVvcmRlclN0cmF0ZWd5PiB7XG4gICAgcmV0dXJuIHRoaXMuX3N0cmF0ZWd5LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBtYW51YWxSZW9yZGVyQWN0aXZhdGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9tYW51YWxSZW9yZGVyQWN0aXZhdGVkJC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCByZW9yZGVyRGlzYWJsZWQkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLl9yZW9yZGVyRGlzYWJsZWQkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCByZW9yZGVyRGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3Jlb3JkZXJEaXNhYmxlZCQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIHB1YmxpYyBpbml0V2l0aENvbmZpZyhcbiAgICBkYXRhOiBGc0xpc3RSZW9yZGVyQ29uZmlnLFxuICAgIGRhdGFDb250cm9sbGVyOiBEYXRhQ29udHJvbGxlcixcbiAgICBhY3Rpb25zQ29udHJvbGxlcjogQWN0aW9uc0NvbnRyb2xsZXIsXG4gICAgc2VsZWN0aW9uQ29udHJvbGxlcjogU2VsZWN0aW9uQ29udHJvbGxlcixcbiAgKSB7XG4gICAgaWYgKCFkYXRhKSB7IHJldHVybiB9XG5cbiAgICB0aGlzLm1lbnUgPSBkYXRhLm1lbnUgPz8gZmFsc2U7XG4gICAgdGhpcy5fc2V0UG9zaXRpb24oZGF0YS5wb3NpdGlvbiA/PyBSZW9yZGVyUG9zaXRpb24uTGVmdCk7XG5cbiAgICBpZiAoIWRhdGEuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuX3NldFN0cmF0ZWd5KFJlb3JkZXJTdHJhdGVneS5BbHdheXMpO1xuICAgIH1cblxuICAgIGlmIChkYXRhLnRvZ2dsZSkge1xuICAgICAgdGhpcy5fc2V0U3RyYXRlZ3koUmVvcmRlclN0cmF0ZWd5Lk1hbnVhbCk7XG4gICAgfVxuICAgIC8vIHRoaXMuc3RyYXRlZ3kgPSBkYXRhLnN0cmF0ZWd5ID8/IFJlb3JkZXJTdHJhdGVneS5NYW51YWw7XG4gICAgdGhpcy5sYWJlbCA9IGRhdGEubGFiZWw7XG4gICAgdGhpcy5tdWx0aXBsZSA9IGRhdGEubXVsdGlwbGU7XG4gICAgdGhpcy5zdGF0dXMgPSBkYXRhLnN0YXR1cyA/PyB0cnVlO1xuXG4gICAgdGhpcy5zdGFydENhbGxiYWNrID0gZGF0YS5zdGFydDtcbiAgICB0aGlzLm1vdmVkQ2FsbGJhY2sgPSBkYXRhLm1vdmVkO1xuICAgIHRoaXMuZG9uZUNhbGxiYWNrID0gZGF0YS5kb25lO1xuICAgIHRoaXMubW92ZURyb3BDYWxsYmFjayA9IGRhdGEubW92ZURyb3A7XG5cbiAgICB0aGlzLl9kYXRhQ29udHJvbGxlciA9IGRhdGFDb250cm9sbGVyO1xuICAgIHRoaXMuX2FjdGlvbnNDb250cm9sbGVyID0gYWN0aW9uc0NvbnRyb2xsZXI7XG4gICAgdGhpcy5fc2VsZWN0aW9uQ29udHJvbGxlciA9IHNlbGVjdGlvbkNvbnRyb2xsZXI7XG5cbiAgICBpZiAodGhpcy5zdHJhdGVneSA9PT0gUmVvcmRlclN0cmF0ZWd5LkFsd2F5cykge1xuICAgICAgdGhpcy5lbmFibGVSZW9yZGVyKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnN0cmF0ZWd5ID09PSBSZW9yZGVyU3RyYXRlZ3kuTWFudWFsKSB7XG4gICAgICBhY3Rpb25zQ29udHJvbGxlci5hZGRSZW9yZGVyQWN0aW9uKFxuICAgICAgICB7XG4gICAgICAgICAgbGFiZWw6IHRoaXMubGFiZWwgfHwgJ1Jlb3JkZXInLFxuICAgICAgICAgIG1lbnU6IHRoaXMubWVudSxcbiAgICAgICAgICBwcmltYXJ5OiBmYWxzZSxcbiAgICAgICAgICBjbGljazogKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5lbmFibGVSZW9yZGVyKCk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBkaXNhYmxlZDogKCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucmVvcmRlckRpc2FibGVkO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgKTtcblxuICAgICAgYWN0aW9uc0NvbnRyb2xsZXIuYWRkUmVvcmRlckRvbmVBY3Rpb24oe1xuICAgICAgICAgIGxhYmVsOiAnRG9uZScsXG4gICAgICAgICAgcHJpbWFyeTogZmFsc2UsXG4gICAgICAgICAgY2xpY2s6ICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZVJlb3JkZXIoKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGRpc2FibGVkOiAoKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yZW9yZGVyRGlzYWJsZWQ7XG4gICAgICAgICAgfSxcbiAgICAgICAgfVxuICAgICAgKVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBlbmFibGVSZW9yZGVyKCkge1xuICAgIGlmICgodGhpcy5zdHJhdGVneSA9PT0gUmVvcmRlclN0cmF0ZWd5Lk1hbnVhbCB8fCB0aGlzLnN0cmF0ZWd5ID09PSBSZW9yZGVyU3RyYXRlZ3kuQ3VzdG9tKSAmJiB0aGlzLnN0YXJ0Q2FsbGJhY2spIHtcbiAgICAgIGNvbnN0IHJldHVybmVkVmFsdWUgPSB0aGlzLnN0YXJ0Q2FsbGJhY2soKTtcblxuICAgICAgaWYgKHJldHVybmVkVmFsdWUgJiYgcmV0dXJuZWRWYWx1ZSBpbnN0YW5jZW9mIE9ic2VydmFibGUpIHtcbiAgICAgICAgdGhpcy5kaXNhYmxlUmVvcmRlckFjdGlvbigpO1xuXG4gICAgICAgIHJldHVybmVkVmFsdWVcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICAgICAgKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5lbmFibGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuZW5hYmxlUmVvcmRlckFjdGlvbigpO1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmVuYWJsZWQgPSB0cnVlO1xuICB9XG5cbiAgcHVibGljIGRpc2FibGVSZW9yZGVyKCkge1xuICAgIGlmICh0aGlzLnN0cmF0ZWd5ID09PSBSZW9yZGVyU3RyYXRlZ3kuTWFudWFsIHx8IHRoaXMuc3RyYXRlZ3kgPT09IFJlb3JkZXJTdHJhdGVneS5DdXN0b20pIHtcbiAgICAgIGNvbnN0IHJldHVybmVkVmFsdWUgPSB0aGlzLnJlb3JkZXJGaW5pc2hlZCgpO1xuXG4gICAgICBpZiAocmV0dXJuZWRWYWx1ZSAmJiByZXR1cm5lZFZhbHVlIGluc3RhbmNlb2YgT2JzZXJ2YWJsZSkge1xuICAgICAgICB0aGlzLmRpc2FibGVSZW9yZGVyQWN0aW9uKCk7XG5cbiAgICAgICAgcmV0dXJuZWRWYWx1ZVxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgICAgICApXG4gICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmVuYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuZW5hYmxlUmVvcmRlckFjdGlvbigpO1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmVuYWJsZWQgPSBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeGVjIGVuZCBjYWxsYmFja1xuICAgKi9cbiAgcHVibGljIHJlb3JkZXJGaW5pc2hlZCgpIHtcbiAgICBpZiAodGhpcy5kb25lQ2FsbGJhY2spIHtcbiAgICAgIHJldHVybiB0aGlzLmRvbmVDYWxsYmFjayh0aGlzLl9kYXRhQ29udHJvbGxlci5yZW9yZGVyRGF0YSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLl9kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEVuYWJsZSByZW9yZGVyIGFjdGlvbiBhbmQgdXBkYXRlIGZpbHRlciBhY3Rpb25zIHN0YXRlXG4gICAqL1xuICBwdWJsaWMgZW5hYmxlUmVvcmRlckFjdGlvbigpIHtcbiAgICB0aGlzLl9yZW9yZGVyRGlzYWJsZWQkLm5leHQoZmFsc2UpO1xuICAgIHRoaXMuX2FjdGlvbnNDb250cm9sbGVyLnVwZGF0ZURpc2FibGVkU3RhdGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEaXNhYmxlIHJlb3JkZXIgYWN0aW9uIGFuZCB1cGRhdGUgZmlsdGVyIGFjdGlvbnMgc3RhdGVcbiAgICovXG4gIHB1YmxpYyBkaXNhYmxlUmVvcmRlckFjdGlvbigpIHtcbiAgICB0aGlzLl9yZW9yZGVyRGlzYWJsZWQkLm5leHQodHJ1ZSk7XG4gICAgdGhpcy5fYWN0aW9uc0NvbnRyb2xsZXIudXBkYXRlRGlzYWJsZWRTdGF0ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2V0UG9zaXRpb24odmFsdWU6IFJlb3JkZXJQb3NpdGlvbik6IHZvaWQge1xuICAgIHRoaXMuX3Bvc2l0aW9uLm5leHQodmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2V0U3RyYXRlZ3kodmFsdWU6IFJlb3JkZXJTdHJhdGVneSk6IHZvaWQge1xuICAgIHRoaXMuX3N0cmF0ZWd5Lm5leHQodmFsdWUpO1xuICB9XG5cbn1cbiJdfQ==
|
|
181
|
+
}] });
|
|
182
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVvcmRlci1jb250cm9sbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9jbGFzc2VzL3Jlb3JkZXItY29udHJvbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRXRELE9BQU8sRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBYTNDLE1BQU0sQ0FBTixJQUFZLGVBR1g7QUFIRCxXQUFZLGVBQWU7SUFDekIsZ0NBQWEsQ0FBQTtJQUNiLGtDQUFlLENBQUE7QUFDakIsQ0FBQyxFQUhXLGVBQWUsS0FBZixlQUFlLFFBRzFCO0FBRUQsTUFBTSxDQUFOLElBQVksZUFJWDtBQUpELFdBQVksZUFBZTtJQUN6QixvQ0FBaUIsQ0FBQTtJQUNqQixvQ0FBaUIsQ0FBQTtJQUNqQixvQ0FBaUIsQ0FBQTtBQUNuQixDQUFDLEVBSlcsZUFBZSxLQUFmLGVBQWUsUUFJMUI7QUFHRCxNQUFNLE9BQU8saUJBQWlCO0lBRDlCO1FBaUJVLGNBQVMsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUNoRCw2QkFBd0IsR0FBRyxJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN0RCxzQkFBaUIsR0FBRyxJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvQyxjQUFTLEdBQUcsSUFBSSxlQUFlLENBQXlCLElBQUksQ0FBQyxDQUFDO1FBQzlELGNBQVMsR0FBRyxJQUFJLGVBQWUsQ0FBeUIsSUFBSSxDQUFDLENBQUM7UUFFOUQsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7S0F5TW5DO0lBdk1DLElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENB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Q0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksbUJBQW1CO1FBQ3hCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDaEQsQ0FBQztJQUVEOztPQUVHO0lBQ0ksb0JBQW9CO1FBQ3pCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDaEQsQ0FBQztJQUVPLFlBQVksQ0FBQyxLQUFzQjtRQUN6QyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRU8sWUFBWSxDQUFDLEtBQXNCO1FBQ3pDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdCLENBQUM7OzhHQTdOVSxpQkFBaUI7a0hBQWpCLGlCQUFpQjsyRkFBakIsaUJBQWlCO2tCQUQ3QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge1xuICBGc0xpc3RSZW9yZGVyQ29uZmlnLFxuICBGc0xpc3RSZW9yZGVyRG9uZUNhbGxiYWNrLFxuICBGc0xpc3RSZW9yZGVyTW92ZWRDYWxsYmFjayxcbiAgRnNMaXN0UmVvcmRlck1vdmVJbkdyb3VwQ2FsbGJhY2ssXG59IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuXG5pbXBvcnQgeyBBY3Rpb25zQ29udHJvbGxlciB9IGZyb20gJy4vYWN0aW9ucy1jb250cm9sbGVyJztcbmltcG9ydCB7IERhdGFDb250cm9sbGVyIH0gZnJvbSAnLi9kYXRhLWNvbnRyb2xsZXInO1xuaW1wb3J0IHsgU2VsZWN0aW9uQ29udHJvbGxlciB9IGZyb20gJy4vc2VsZWN0aW9uLWNvbnRyb2xsZXInO1xuXG5leHBvcnQgZW51bSBSZW9yZGVyUG9zaXRpb24ge1xuICBMZWZ0ID0gJ2xlZnQnLFxuICBSaWdodCA9ICdyaWdodCcsXG59XG5cbmV4cG9ydCBlbnVtIFJlb3JkZXJTdHJhdGVneSB7XG4gIEFsd2F5cyA9ICdhbHdheXMnLFxuICBNYW51YWwgPSAnbWFudWFsJyxcbiAgQ3VzdG9tID0gJ2N1c3RvbScsXG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBSZW9yZGVyQ29udHJvbGxlciBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG5cbiAgcHVibGljIHN0YXJ0Q2FsbGJhY2s6ICgpID0+IHZvaWQgfCBPYnNlcnZhYmxlPHZvaWQ+O1xuICBwdWJsaWMgbW92ZWRDYWxsYmFjazogRnNMaXN0UmVvcmRlck1vdmVkQ2FsbGJhY2s7XG4gIHB1YmxpYyBkb25lQ2FsbGJhY2s6IEZzTGlzdFJlb3JkZXJEb25lQ2FsbGJhY2s7XG4gIHB1YmxpYyBtb3ZlRHJvcENhbGxiYWNrOiBGc0xpc3RSZW9yZGVyTW92ZUluR3JvdXBDYWxsYmFjaztcblxuICBwdWJsaWMgc3RhdHVzOiBib29sZWFuO1xuICBwdWJsaWMgbGFiZWw6IHN0cmluZztcbiAgcHVibGljIG1lbnU6IGJvb2xlYW47XG4gIHB1YmxpYyBtdWx0aXBsZTogYm9vbGVhbjtcblxuICBwcml2YXRlIF9kYXRhQ29udHJvbGxlcjogRGF0YUNvbnRyb2xsZXI7XG4gIHByaXZhdGUgX2FjdGlvbnNDb250cm9sbGVyOiBBY3Rpb25zQ29udHJvbGxlcjtcbiAgcHJpdmF0ZSBfc2VsZWN0aW9uQ29udHJvbGxlcjogU2VsZWN0aW9uQ29udHJvbGxlcjtcblxuICBwcml2YXRlIF9lbmFibGVkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICBwcml2YXRlIF9tYW51YWxSZW9yZGVyQWN0aXZhdGVkJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuICBwcml2YXRlIF9yZW9yZGVyRGlzYWJsZWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG4gIHByaXZhdGUgX3Bvc2l0aW9uID0gbmV3IEJlaGF2aW9yU3ViamVjdDxSZW9yZGVyUG9zaXRpb24gfCBudWxsPihudWxsKTtcbiAgcHJpdmF0ZSBfc3RyYXRlZ3kgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFJlb3JkZXJTdHJhdGVneSB8IG51bGw+KG51bGwpO1xuXG4gIHByaXZhdGUgX2Rlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcblxuICBwdWJsaWMgZ2V0IGVuYWJsZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2VuYWJsZWQkLmdldFZhbHVlKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0IGVuYWJsZWQodmFsdWUpIHtcbiAgICB0aGlzLl9lbmFibGVkJC5uZXh0KHZhbHVlKTtcblxuICAgIHRoaXMuX21hbnVhbFJlb3JkZXJBY3RpdmF0ZWQkLm5leHQodGhpcy5lbmFibGVkICYmIHRoaXMuc3RyYXRlZ3kgPT09IFJlb3JkZXJTdHJhdGVneS5NYW51YWwpO1xuICB9XG5cbiAgcHVibGljIGdldCBzdHJhdGVneSgpOiBSZW9yZGVyU3RyYXRlZ3kgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fc3RyYXRlZ3kuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcG9zaXRpb24oKTogUmVvcmRlclBvc2l0aW9uIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX3Bvc2l0aW9uLmdldFZhbHVlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRhdGFDb250cm9sbGVyKCkge1xuICAgIHJldHVybiB0aGlzLl9kYXRhQ29udHJvbGxlcjtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc2VsZWN0aW9uQ29udHJvbGxlcigpOiBTZWxlY3Rpb25Db250cm9sbGVyIHtcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0aW9uQ29udHJvbGxlcjtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZW5hYmxlZCQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuX2VuYWJsZWQkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBwb3NpdGlvbiQoKTogT2JzZXJ2YWJsZTxSZW9yZGVyUG9zaXRpb24+IHtcbiAgICByZXR1cm4gdGhpcy5fcG9zaXRpb24uYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHN0cmF0ZWd5JCgpOiBPYnNlcnZhYmxlPFJlb3JkZXJTdHJhdGVneT4ge1xuICAgIHJldHVybiB0aGlzLl9zdHJhdGVneS5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbWFudWFsUmVvcmRlckFjdGl2YXRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fbWFudWFsUmVvcmRlckFjdGl2YXRlZCQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcmVvcmRlckRpc2FibGVkJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5fcmVvcmRlckRpc2FibGVkJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcmVvcmRlckRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9yZW9yZGVyRGlzYWJsZWQkLmdldFZhbHVlKCk7XG4gIH1cblxuICBwdWJsaWMgaW5pdFdpdGhDb25maWcoXG4gICAgZGF0YTogRnNMaXN0UmVvcmRlckNvbmZpZyxcbiAgICBkYXRhQ29udHJvbGxlcjogRGF0YUNvbnRyb2xsZXIsXG4gICAgYWN0aW9uc0NvbnRyb2xsZXI6IEFjdGlvbnNDb250cm9sbGVyLFxuICAgIHNlbGVjdGlvbkNvbnRyb2xsZXI6IFNlbGVjdGlvbkNvbnRyb2xsZXIsXG4gICkge1xuICAgIGlmICghZGF0YSkge1xuICAgICAgcmV0dXJuOyBcbiAgICB9XG5cbiAgICB0aGlzLm1lbnUgPSBkYXRhLm1lbnUgPz8gZmFsc2U7XG4gICAgdGhpcy5fc2V0UG9zaXRpb24oZGF0YS5wb3NpdGlvbiA/PyBSZW9yZGVyUG9zaXRpb24uTGVmdCk7XG5cbiAgICBpZiAoIWRhdGEuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuX3NldFN0cmF0ZWd5KFJlb3JkZXJTdHJhdGVneS5BbHdheXMpO1xuICAgIH1cblxuICAgIGlmIChkYXRhLnRvZ2dsZSkge1xuICAgICAgdGhpcy5fc2V0U3RyYXRlZ3koUmVvcmRlclN0cmF0ZWd5Lk1hbnVhbCk7XG4gICAgfVxuICAgIC8vIHRoaXMuc3RyYXRlZ3kgPSBkYXRhLnN0cmF0ZWd5ID8/IFJlb3JkZXJTdHJhdGVneS5NYW51YWw7XG4gICAgdGhpcy5sYWJlbCA9IGRhdGEubGFiZWw7XG4gICAgdGhpcy5tdWx0aXBsZSA9IGRhdGEubXVsdGlwbGU7XG4gICAgdGhpcy5zdGF0dXMgPSBkYXRhLnN0YXR1cyA/PyB0cnVlO1xuXG4gICAgdGhpcy5zdGFydENhbGxiYWNrID0gZGF0YS5zdGFydDtcbiAgICB0aGlzLm1vdmVkQ2FsbGJhY2sgPSBkYXRhLm1vdmVkO1xuICAgIHRoaXMuZG9uZUNhbGxiYWNrID0gZGF0YS5kb25lO1xuICAgIHRoaXMubW92ZURyb3BDYWxsYmFjayA9IGRhdGEubW92ZURyb3A7XG5cbiAgICB0aGlzLl9kYXRhQ29udHJvbGxlciA9IGRhdGFDb250cm9sbGVyO1xuICAgIHRoaXMuX2FjdGlvbnNDb250cm9sbGVyID0gYWN0aW9uc0NvbnRyb2xsZXI7XG4gICAgdGhpcy5fc2VsZWN0aW9uQ29udHJvbGxlciA9IHNlbGVjdGlvbkNvbnRyb2xsZXI7XG5cbiAgICBpZiAodGhpcy5zdHJhdGVneSA9PT0gUmVvcmRlclN0cmF0ZWd5LkFsd2F5cykge1xuICAgICAgdGhpcy5lbmFibGVSZW9yZGVyKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnN0cmF0ZWd5ID09PSBSZW9yZGVyU3RyYXRlZ3kuTWFudWFsKSB7XG4gICAgICBhY3Rpb25zQ29udHJvbGxlci5hZGRSZW9yZGVyQWN0aW9uKFxuICAgICAgICB7XG4gICAgICAgICAgbGFiZWw6IHRoaXMubGFiZWwgfHwgJ1Jlb3JkZXInLFxuICAgICAgICAgIG1lbnU6IHRoaXMubWVudSxcbiAgICAgICAgICBwcmltYXJ5OiBmYWxzZSxcbiAgICAgICAgICBjbGljazogKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5lbmFibGVSZW9yZGVyKCk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBkaXNhYmxlZDogKCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucmVvcmRlckRpc2FibGVkO1xuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICApO1xuXG4gICAgICBhY3Rpb25zQ29udHJvbGxlci5hZGRSZW9yZGVyRG9uZUFjdGlvbih7XG4gICAgICAgIGxhYmVsOiAnRG9uZScsXG4gICAgICAgIHByaW1hcnk6IGZhbHNlLFxuICAgICAgICBjbGljazogKCkgPT4ge1xuICAgICAgICAgIHRoaXMuZGlzYWJsZVJlb3JkZXIoKTtcbiAgICAgICAgfSxcbiAgICAgICAgZGlzYWJsZWQ6ICgpID0+IHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5yZW9yZGVyRGlzYWJsZWQ7XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZW5hYmxlUmVvcmRlcigpIHtcbiAgICBpZiAoKHRoaXMuc3RyYXRlZ3kgPT09IFJlb3JkZXJTdHJhdGVneS5NYW51YWwgfHwgdGhpcy5zdHJhdGVneSA9PT0gUmVvcmRlclN0cmF0ZWd5LkN1c3RvbSkgJiYgdGhpcy5zdGFydENhbGxiYWNrKSB7XG4gICAgICBjb25zdCByZXR1cm5lZFZhbHVlID0gdGhpcy5zdGFydENhbGxiYWNrKCk7XG5cbiAgICAgIGlmIChyZXR1cm5lZFZhbHVlICYmIHJldHVybmVkVmFsdWUgaW5zdGFuY2VvZiBPYnNlcnZhYmxlKSB7XG4gICAgICAgIHRoaXMuZGlzYWJsZVJlb3JkZXJBY3Rpb24oKTtcblxuICAgICAgICByZXR1cm5lZFZhbHVlXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgICAgIClcbiAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZW5hYmxlZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmVuYWJsZVJlb3JkZXJBY3Rpb24oKTtcbiAgICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5lbmFibGVkID0gdHJ1ZTtcbiAgfVxuXG4gIHB1YmxpYyBkaXNhYmxlUmVvcmRlcigpIHtcbiAgICBpZiAodGhpcy5zdHJhdGVneSA9PT0gUmVvcmRlclN0cmF0ZWd5Lk1hbnVhbCB8fCB0aGlzLnN0cmF0ZWd5ID09PSBSZW9yZGVyU3RyYXRlZ3kuQ3VzdG9tKSB7XG4gICAgICBjb25zdCByZXR1cm5lZFZhbHVlID0gdGhpcy5yZW9yZGVyRmluaXNoZWQoKTtcblxuICAgICAgaWYgKHJldHVybmVkVmFsdWUgJiYgcmV0dXJuZWRWYWx1ZSBpbnN0YW5jZW9mIE9ic2VydmFibGUpIHtcbiAgICAgICAgdGhpcy5kaXNhYmxlUmVvcmRlckFjdGlvbigpO1xuXG4gICAgICAgIHJldHVybmVkVmFsdWVcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICAgICAgKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5lbmFibGVkID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmVuYWJsZVJlb3JkZXJBY3Rpb24oKTtcbiAgICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5lbmFibGVkID0gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogRXhlYyBlbmQgY2FsbGJhY2tcbiAgICovXG4gIHB1YmxpYyByZW9yZGVyRmluaXNoZWQoKSB7XG4gICAgaWYgKHRoaXMuZG9uZUNhbGxiYWNrKSB7XG4gICAgICByZXR1cm4gdGhpcy5kb25lQ2FsbGJhY2sodGhpcy5fZGF0YUNvbnRyb2xsZXIucmVvcmRlckRhdGEpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5fZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbmFibGUgcmVvcmRlciBhY3Rpb24gYW5kIHVwZGF0ZSBmaWx0ZXIgYWN0aW9ucyBzdGF0ZVxuICAgKi9cbiAgcHVibGljIGVuYWJsZVJlb3JkZXJBY3Rpb24oKSB7XG4gICAgdGhpcy5fcmVvcmRlckRpc2FibGVkJC5uZXh0KGZhbHNlKTtcbiAgICB0aGlzLl9hY3Rpb25zQ29udHJvbGxlci51cGRhdGVEaXNhYmxlZFN0YXRlKCk7XG4gIH1cblxuICAvKipcbiAgICogRGlzYWJsZSByZW9yZGVyIGFjdGlvbiBhbmQgdXBkYXRlIGZpbHRlciBhY3Rpb25zIHN0YXRlXG4gICAqL1xuICBwdWJsaWMgZGlzYWJsZVJlb3JkZXJBY3Rpb24oKSB7XG4gICAgdGhpcy5fcmVvcmRlckRpc2FibGVkJC5uZXh0KHRydWUpO1xuICAgIHRoaXMuX2FjdGlvbnNDb250cm9sbGVyLnVwZGF0ZURpc2FibGVkU3RhdGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3NldFBvc2l0aW9uKHZhbHVlOiBSZW9yZGVyUG9zaXRpb24pOiB2b2lkIHtcbiAgICB0aGlzLl9wb3NpdGlvbi5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgX3NldFN0cmF0ZWd5KHZhbHVlOiBSZW9yZGVyU3RyYXRlZ3kpOiB2b2lkIHtcbiAgICB0aGlzLl9zdHJhdGVneS5uZXh0KHZhbHVlKTtcbiAgfVxuXG59XG4iXX0=
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, ContentChild, EventEmitter, Input, TemplateRef, ViewChild, ViewContainerRef } from '@angular/core';
|
|
1
|
+
import { ChangeDetectionStrategy, Component, ContentChild, EventEmitter, Input, TemplateRef, ViewChild, ViewContainerRef, } from '@angular/core';
|
|
2
2
|
import { ReorderPosition, ReorderStrategy } from '../../classes/reorder-controller';
|
|
3
3
|
import { SelectionController } from '../../classes/selection-controller';
|
|
4
4
|
import { FsRowComponent } from './row/row.component';
|
|
@@ -61,4 +61,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
61
61
|
type: ContentChild,
|
|
62
62
|
args: [FsRowComponent, { read: TemplateRef, static: true }]
|
|
63
63
|
}] } });
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9keS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvYm9keS9ib2R5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9ib2R5L2JvZHkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBQ0wsV0FBVyxFQUNYLFNBQVMsRUFDVCxnQkFBZ0IsR0FDakIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNwRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUl6RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7O0FBU3JELE1BQU0sT0FBTyxlQUFlO0lBTjVCO1FBU2tCLFlBQU8sR0FBYSxFQUFFLENBQUM7UUFDdkIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixrQkFBYSxHQUFVLEVBQUUsQ0FBQztRQUMxQixvQkFBZSxHQUFVLEVBQUUsQ0FBQztRQUM1QixjQUFTLEdBQUcsRUFBRSxDQUFDO1FBRWYsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFFdEIsZ0JBQVcsR0FBRyxLQUFLLENBQUM7S0FjckM7OzRHQXpCWSxlQUFlO2dHQUFmLGVBQWUsZ2tCQXNCWixjQUFjLDJCQUFVLFdBQVcsc0lBSGIsZ0JBQWdCLDJDQzVDdEQsK3JCQXNCQTsyRkRHYSxlQUFlO2tCQU4zQixTQUFTOytCQUNFLGdCQUFnQixtQkFHVCx1QkFBdUIsQ0FBQyxNQUFNOzhCQUkvQixJQUFJO3NCQUFuQixLQUFLO2dCQUNVLE9BQU87c0JBQXRCLEtBQUs7Z0JBQ1UsU0FBUztzQkFBeEIsS0FBSztnQkFDVSxhQUFhO3NCQUE1QixLQUFLO2dCQUNVLGVBQWU7c0JBQTlCLEtBQUs7Z0JBQ1UsU0FBUztzQkFBeEIsS0FBSztnQkFDVSxRQUFRO3NCQUF2QixLQUFLO2dCQUNVLGFBQWE7c0JBQTVCLEtBQUs7Z0JBQ1UsU0FBUztzQkFBeEIsS0FBSztnQkFDVSxXQUFXO3NCQUExQixLQUFLO2dCQUNVLFVBQVU7c0JBQXpCLEtBQUs7Z0JBQ1Usa0JBQWtCO3NCQUFqQyxLQUFLO2dCQUNVLGNBQWM7c0JBQTdCLEtBQUs7Z0JBQ1UsZUFBZTtzQkFBOUIsS0FBSztnQkFDVSxlQUFlO3NCQUE5QixLQUFLO2dCQUNVLGVBQWU7c0JBQTlCLEtBQUs7Z0JBR0MsYUFBYTtzQkFEbkIsU0FBUzt1QkFBQyxlQUFlLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJN0QsY0FBYztzQkFEcEIsWUFBWTt1QkFBQyxjQUFjLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBSZW9yZGVyUG9zaXRpb24sIFJlb3JkZXJTdHJhdGVneSB9IGZyb20gJy4uLy4uL2NsYXNzZXMvcmVvcmRlci1jb250cm9sbGVyJztcbmltcG9ydCB7IFNlbGVjdGlvbkNvbnRyb2xsZXIgfSBmcm9tICcuLi8uLi9jbGFzc2VzL3NlbGVjdGlvbi1jb250cm9sbGVyJztcbmltcG9ydCB7IENvbHVtbiB9IGZyb20gJy4uLy4uL21vZGVscy9jb2x1bW4ubW9kZWwnO1xuaW1wb3J0IHsgUm93IH0gZnJvbSAnLi4vLi4vbW9kZWxzL3Jvdyc7XG5cbmltcG9ydCB7IEZzUm93Q29tcG9uZW50IH0gZnJvbSAnLi9yb3cvcm93LmNvbXBvbmVudCc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnW2ZzLWxpc3QtYm9keV0nLFxuICB0ZW1wbGF0ZVVybDogJy4vYm9keS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2JvZHkuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEZzQm9keUNvbXBvbmVudCB7XG5cbiAgQElucHV0KCkgcHVibGljIHJvd3M6IFJvd1tdO1xuICBASW5wdXQoKSBwdWJsaWMgY29sdW1uczogQ29sdW1uW10gPSBbXTtcbiAgQElucHV0KCkgcHVibGljIGhhc0Zvb3RlciA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgcm93QWN0aW9uc1JhdzogYW55W10gPSBbXTtcbiAgQElucHV0KCkgcHVibGljIGdyb3VwQWN0aW9uc1JhdzogYW55W10gPSBbXTtcbiAgQElucHV0KCkgcHVibGljIHJvd0V2ZW50cyA9IHt9O1xuICBASW5wdXQoKSBwdWJsaWMgcm93Q2xhc3M7XG4gIEBJbnB1dCgpIHB1YmxpYyBoYXNSb3dBY3Rpb25zID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyBzZWxlY3Rpb246IFNlbGVjdGlvbkNvbnRyb2xsZXI7XG4gIEBJbnB1dCgpIHB1YmxpYyByZXN0b3JlTW9kZSA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgcm93UmVtb3ZlZDogRXZlbnRFbWl0dGVyPGFueT47XG4gIEBJbnB1dCgpIHB1YmxpYyBhY3RpdmVGaWx0ZXJzQ291bnQ6IG51bWJlcjtcbiAgQElucHV0KCkgcHVibGljIHJlb3JkZXJFbmFibGVkOiBib29sZWFuO1xuICBASW5wdXQoKSBwdWJsaWMgcmVvcmRlclBvc2l0aW9uOiBSZW9yZGVyUG9zaXRpb24gfCBudWxsO1xuICBASW5wdXQoKSBwdWJsaWMgcmVvcmRlclN0cmF0ZWd5OiBSZW9yZGVyU3RyYXRlZ3kgfCBudWxsO1xuICBASW5wdXQoKSBwdWJsaWMgcmVvcmRlck11bHRpcGxlOiBib29sZWFuO1xuXG4gIEBWaWV3Q2hpbGQoJ3Jvd3NDb250YWluZXInLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYsIHN0YXRpYzogdHJ1ZSB9KVxuICBwdWJsaWMgcm93c0NvbnRhaW5lcjtcblxuICBAQ29udGVudENoaWxkKEZzUm93Q29tcG9uZW50LCB7IHJlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IHRydWUgfSlcbiAgcHVibGljIGhlYWRlclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG59XG4iLCI8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCByb3cgb2Ygcm93czsgbGV0IGkgPSBpbmRleDtcIj5cbiAgPHRyXG4gICAgZnMtbGlzdC1yb3dcbiAgICBmc0xpc3REcmFnZ2FibGVSb3dcbiAgICBbcm93XT1cInJvd1wiXG4gICAgW3Jvd0luZGV4XT1cImlcIlxuICAgIFtjb2x1bW5zXT1cImNvbHVtbnNcIlxuICAgIFtyb3dBY3Rpb25zUmF3XT1cInJvd0FjdGlvbnNSYXdcIlxuICAgIFtncm91cEFjdGlvbnNSYXddPVwiZ3JvdXBBY3Rpb25zUmF3XCJcbiAgICBbaGFzUm93QWN0aW9uc109XCJoYXNSb3dBY3Rpb25zXCJcbiAgICBbcm93RXZlbnRzXT1cInJvd0V2ZW50c1wiXG4gICAgW3Jvd0NsYXNzXT1cInJvd0NsYXNzXCJcbiAgICBbc2VsZWN0aW9uXT1cInNlbGVjdGlvblwiXG4gICAgW3Jlc3RvcmVNb2RlXT1cInJlc3RvcmVNb2RlXCJcbiAgICBbcm93UmVtb3ZlZF09XCJyb3dSZW1vdmVkXCJcbiAgICBbYWN0aXZlRmlsdGVyc0NvdW50XT1cImFjdGl2ZUZpbHRlcnNDb3VudFwiXG4gICAgW3Jlb3JkZXJFbmFibGVkXT1cInJlb3JkZXJFbmFibGVkXCJcbiAgICBbcmVvcmRlclBvc2l0aW9uXT1cInJlb3JkZXJQb3NpdGlvblwiXG4gICAgW3Jlb3JkZXJTdHJhdGVneV09XCJyZW9yZGVyU3RyYXRlZ3lcIlxuICAgIFtyZW9yZGVyTXVsdGlwbGVdPVwicmVvcmRlck11bHRpcGxlXCI+XG4gIDwvdHI+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
|