@firestitch/list 12.12.13 → 12.13.0
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/list-controller.d.ts +2 -1
- package/app/classes/reorder-controller.d.ts +9 -7
- package/app/components/body/body.component.d.ts +10 -12
- package/app/components/body/row/row.component.d.ts +10 -4
- package/app/components/footer/footer-row/footer-row.component.d.ts +8 -5
- package/app/components/footer/footer.component.d.ts +6 -1
- package/app/components/head/head.component.d.ts +10 -6
- package/app/components/list/list.component.d.ts +0 -1
- package/bundles/firestitch-list.umd.js +143 -79
- package/bundles/firestitch-list.umd.js.map +1 -1
- package/esm2015/app/classes/list-controller.js +6 -4
- package/esm2015/app/classes/reorder-controller.js +26 -26
- package/esm2015/app/components/body/body.component.js +20 -22
- package/esm2015/app/components/body/row/row.component.js +39 -18
- package/esm2015/app/components/footer/footer-row/footer-row.component.js +18 -12
- package/esm2015/app/components/footer/footer.component.js +11 -2
- package/esm2015/app/components/head/head.component.js +28 -13
- package/esm2015/app/components/list/list.component.js +2 -13
- package/fesm2015/firestitch-list.js +120 -76
- package/fesm2015/firestitch-list.js.map +1 -1
- package/package.json +1 -1
|
@@ -2,22 +2,29 @@ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, ViewChild
|
|
|
2
2
|
import { Subject } from 'rxjs';
|
|
3
3
|
import { filter, takeUntil } from 'rxjs/operators';
|
|
4
4
|
import { SortingController } from '../../classes/sorting-controller';
|
|
5
|
-
import {
|
|
5
|
+
import { ReorderPosition, ReorderStrategy, } from '../../classes/reorder-controller';
|
|
6
6
|
import { SelectionController, SelectionChangeType } from '../../classes/selection-controller';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "
|
|
9
|
-
import * as i2 from "
|
|
10
|
-
import * as i3 from "
|
|
11
|
-
import * as i4 from "@angular/common";
|
|
8
|
+
import * as i1 from "@angular/material/checkbox";
|
|
9
|
+
import * as i2 from "./head-cell/head-cell.component";
|
|
10
|
+
import * as i3 from "@angular/common";
|
|
12
11
|
export class FsHeadComponent {
|
|
13
|
-
constructor(
|
|
14
|
-
this.reorderController = reorderController;
|
|
12
|
+
constructor(cdRef) {
|
|
15
13
|
this.cdRef = cdRef;
|
|
16
14
|
this.selectedAll = false;
|
|
17
|
-
this.
|
|
18
|
-
this.ReorderStrategy = ReorderStrategy;
|
|
15
|
+
this.ReorderStrategyEnum = ReorderStrategy;
|
|
19
16
|
this._destroy$ = new Subject();
|
|
20
17
|
}
|
|
18
|
+
get leftDragDropEnabled() {
|
|
19
|
+
return this.reorderEnabled
|
|
20
|
+
&& this.reorderPosition === ReorderPosition.Left
|
|
21
|
+
&& this.activeFiltersCount == 0;
|
|
22
|
+
}
|
|
23
|
+
get rightDragDropEnabled() {
|
|
24
|
+
return this.reorderEnabled
|
|
25
|
+
&& this.reorderPosition === ReorderPosition.Right
|
|
26
|
+
&& this.activeFiltersCount == 0;
|
|
27
|
+
}
|
|
21
28
|
ngOnInit() {
|
|
22
29
|
this.initSorting();
|
|
23
30
|
this.initSelection();
|
|
@@ -66,8 +73,8 @@ export class FsHeadComponent {
|
|
|
66
73
|
}
|
|
67
74
|
}
|
|
68
75
|
}
|
|
69
|
-
FsHeadComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsHeadComponent, deps: [{ token:
|
|
70
|
-
FsHeadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FsHeadComponent, selector: "[fs-list-head]", inputs: { sorting: "sorting", columns: "columns", hasRowActions: "hasRowActions", selection: "selection" }, viewQueries: [{ propertyName: "rowsContainer", first: true, predicate: ["rowsContainer"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: "<tr class=\"fs-list-row\">\n <!-- Drag -->\n <th *ngIf=\"
|
|
76
|
+
FsHeadComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsHeadComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
77
|
+
FsHeadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FsHeadComponent, selector: "[fs-list-head]", inputs: { sorting: "sorting", columns: "columns", hasRowActions: "hasRowActions", selection: "selection", activeFiltersCount: "activeFiltersCount", reorderEnabled: "reorderEnabled", reorderPosition: "reorderPosition", reorderStrategy: "reorderStrategy" }, viewQueries: [{ propertyName: "rowsContainer", first: true, predicate: ["rowsContainer"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: "<tr class=\"fs-list-row\">\n <!-- Drag -->\n <th *ngIf=\"leftDragDropEnabled\"\n class=\"fs-list-col drag-col\">\n </th>\n\n <!-- Selection -->\n <th *ngIf=\"selection && !(selection.disabled$ | async)\" class=\"fs-list-col fs-list-col-selection\">\n <mat-checkbox (change)=\"selectAll($event)\" [checked]=\"selectedAll\"></mat-checkbox>\n </th>\n\n <!-- Content -->\n <th fs-head-cell *ngFor=\"let column of columns; trackBy: trackByFn\"\n (click)=\"$event.stopPropagation(); sorting.sortBy(column)\"\n [column]=\"column\"\n [class.sorting]=\"column.sortable\"\n [ngClass]=\"column.headerConfigs.classesArray\"\n [attr.colspan]=\"column.headerConfigs.colspan\"\n [attr.width]=\"column.width\"></th>\n\n <!-- Drag -->\n <th *ngIf=\"rightDragDropEnabled\"\n class=\"fs-list-col drag-col\">\n </th>\n\n <!-- Row Actions -->\n <th *ngIf=\"hasRowActions && !(reorderEnabled && reorderStrategy === ReorderStrategyEnum.Manual)\" class=\"fs-list-col row-actions\"></th>\n</tr>\n", components: [{ type: i1.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "id", "labelPosition", "name", "required", "checked", "disabled", "indeterminate", "aria-describedby", "value"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { type: i2.FsHeadCellComponent, selector: "[fs-head-cell]" }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "async": i3.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
71
78
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsHeadComponent, decorators: [{
|
|
72
79
|
type: Component,
|
|
73
80
|
args: [{
|
|
@@ -75,7 +82,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
75
82
|
templateUrl: 'head.component.html',
|
|
76
83
|
changeDetection: ChangeDetectionStrategy.OnPush
|
|
77
84
|
}]
|
|
78
|
-
}], ctorParameters: function () { return [{ type:
|
|
85
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { sorting: [{
|
|
79
86
|
type: Input
|
|
80
87
|
}], columns: [{
|
|
81
88
|
type: Input
|
|
@@ -83,8 +90,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
83
90
|
type: Input
|
|
84
91
|
}], selection: [{
|
|
85
92
|
type: Input
|
|
93
|
+
}], activeFiltersCount: [{
|
|
94
|
+
type: Input
|
|
95
|
+
}], reorderEnabled: [{
|
|
96
|
+
type: Input
|
|
97
|
+
}], reorderPosition: [{
|
|
98
|
+
type: Input
|
|
99
|
+
}], reorderStrategy: [{
|
|
100
|
+
type: Input
|
|
86
101
|
}], rowsContainer: [{
|
|
87
102
|
type: ViewChild,
|
|
88
103
|
args: ['rowsContainer', { read: ViewContainerRef, static: true }]
|
|
89
104
|
}] } });
|
|
90
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvaGVhZC9oZWFkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9oZWFkL2hlYWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULEtBQUssRUFFTCxTQUFTLEVBQ1QsZ0JBQWdCLEdBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUduRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRSxPQUFPLEVBQ0wsZUFBZSxFQUNmLGVBQWUsR0FDaEIsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7Ozs7QUFROUYsTUFBTSxPQUFPLGVBQWU7SUFpQjFCLFlBQW9CLEtBQXdCO1FBQXhCLFVBQUssR0FBTCxLQUFLLENBQW1CO1FBTHJDLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ1gsd0JBQW1CLEdBQUcsZUFBZSxDQUFDO1FBRTlDLGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBRWMsQ0FBQztJQUVqRCxJQUFXLG1CQUFtQjtRQUM1QixPQUFPLElBQUksQ0FBQyxjQUFjO2VBQ3JCLElBQUksQ0FBQyxlQUFlLEtBQUssZUFBZSxDQUFDLElBQUk7ZUFDN0MsSUFBSSxDQUFDLGtCQUFrQixJQUFJLENBQUMsQ0FBQTtJQUNuQyxDQUFDO0lBRUQsSUFBVyxvQkFBb0I7UUFDN0IsT0FBTyxJQUFJLENBQUMsY0FBYztlQUNyQixJQUFJLENBQUMsZUFBZSxLQUFLLGVBQWUsQ0FBQyxLQUFLO2VBQzlDLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxDQUFDLENBQUE7SUFDbkMsQ0FBQztJQUVNLFFBQVE7UUFDYixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksU0FBUyxDQUFDLEtBQXdCO1FBQ3ZDLElBQUksQ0FBQyxTQUFTLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRDs7O09BR0c7SUFDSSxTQUFTLENBQUMsS0FBSztRQUNwQixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRDs7T0FFRztJQUNLLFdBQVc7UUFDakIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlO2FBQ3pCLElBQUksQ0FDSCxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUMxQjthQUNBLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzdCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVEOztPQUVHO0lBQ0ssYUFBYTtRQUNuQixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0I7aUJBQzVCLElBQUksQ0FDSCxNQUFNLENBQ0osQ0FBQyxFQUFDLElBQUksRUFBQyxFQUFFLEVBQUUsQ0FBQyxDQUNWLElBQUksS0FBSyxtQkFBbUIsQ0FBQyx5QkFBeUI7bUJBQ25ELElBQUksS0FBSyxtQkFBbUIsQ0FBQyxXQUFXO21CQUN4QyxJQUFJLEtBQUssbUJBQW1CLENBQUMsa0JBQWtCLENBQ25ELENBQ0YsRUFDRCxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUMxQjtpQkFDQSxTQUFTLENBQUMsQ0FBQyxFQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFDLEVBQUUsRUFBRTtnQkFDckMsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUM7Z0JBRTFCLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDNUIsQ0FBQyxDQUFDLENBQUM7U0FDTjtJQUNILENBQUM7OzZHQTVGVSxlQUFlO2lHQUFmLGVBQWUsaVpBVVUsZ0JBQWdCLDJDQ3RDdEQscWdDQTRCQTs0RkRBYSxlQUFlO2tCQUwzQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFdBQVcsRUFBRSxxQkFBcUI7b0JBQ2xDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRDt3R0FFVSxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBRWdFLGFBQWE7c0JBQWxGLFNBQVM7dUJBQUMsZUFBZSxFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgVmlld0NoaWxkLFxuICBWaWV3Q29udGFpbmVyUmVmLCBPbkRlc3Ryb3ksXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0Q2hlY2tib3hDaGFuZ2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XG5cbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBDb2x1bW4gfSBmcm9tICcuLi8uLi9tb2RlbHMvY29sdW1uLm1vZGVsJztcbmltcG9ydCB7IFNvcnRpbmdDb250cm9sbGVyIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9zb3J0aW5nLWNvbnRyb2xsZXInO1xuaW1wb3J0IHtcbiAgUmVvcmRlclBvc2l0aW9uLFxuICBSZW9yZGVyU3RyYXRlZ3ksXG59IGZyb20gJy4uLy4uL2NsYXNzZXMvcmVvcmRlci1jb250cm9sbGVyJztcbmltcG9ydCB7IFNlbGVjdGlvbkNvbnRyb2xsZXIsIFNlbGVjdGlvbkNoYW5nZVR5cGUgfSBmcm9tICcuLi8uLi9jbGFzc2VzL3NlbGVjdGlvbi1jb250cm9sbGVyJztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdbZnMtbGlzdC1oZWFkXScsXG4gIHRlbXBsYXRlVXJsOiAnaGVhZC5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEZzSGVhZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgc29ydGluZzogU29ydGluZ0NvbnRyb2xsZXI7XG4gIEBJbnB1dCgpIGNvbHVtbnM6IENvbHVtbltdO1xuICBASW5wdXQoKSBoYXNSb3dBY3Rpb25zOiBib29sZWFuO1xuICBASW5wdXQoKSBzZWxlY3Rpb246IFNlbGVjdGlvbkNvbnRyb2xsZXI7XG4gIEBJbnB1dCgpIGFjdGl2ZUZpbHRlcnNDb3VudDogbnVtYmVyO1xuICBASW5wdXQoKSByZW9yZGVyRW5hYmxlZDogYm9vbGVhbjtcbiAgQElucHV0KCkgcmVvcmRlclBvc2l0aW9uOiBSZW9yZGVyUG9zaXRpb24gfCBudWxsO1xuICBASW5wdXQoKSByZW9yZGVyU3RyYXRlZ3k6IFJlb3JkZXJTdHJhdGVneSB8IG51bGw7XG5cbiAgQFZpZXdDaGlsZCgncm93c0NvbnRhaW5lcicsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiwgc3RhdGljOiB0cnVlIH0pIHJvd3NDb250YWluZXI7XG5cbiAgcHVibGljIHNlbGVjdGVkQWxsID0gZmFsc2U7XG4gIHB1YmxpYyByZWFkb25seSBSZW9yZGVyU3RyYXRlZ3lFbnVtID0gUmVvcmRlclN0cmF0ZWd5O1xuXG4gIHByaXZhdGUgX2Rlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZiwpIHt9XG5cbiAgcHVibGljIGdldCBsZWZ0RHJhZ0Ryb3BFbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnJlb3JkZXJFbmFibGVkXG4gICAgICAmJiB0aGlzLnJlb3JkZXJQb3NpdGlvbiA9PT0gUmVvcmRlclBvc2l0aW9uLkxlZnRcbiAgICAgICYmIHRoaXMuYWN0aXZlRmlsdGVyc0NvdW50ID09IDBcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcmlnaHREcmFnRHJvcEVuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucmVvcmRlckVuYWJsZWRcbiAgICAgICYmIHRoaXMucmVvcmRlclBvc2l0aW9uID09PSBSZW9yZGVyUG9zaXRpb24uUmlnaHRcbiAgICAgICYmIHRoaXMuYWN0aXZlRmlsdGVyc0NvdW50ID09IDBcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmluaXRTb3J0aW5nKCk7XG4gICAgdGhpcy5pbml0U2VsZWN0aW9uKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuX2Rlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICAvKipcbiAgICogU2VsZWN0IEFsbCBWaXNpYmxlIFJvd3NcbiAgICogQHBhcmFtIGV2ZW50XG4gICAqL1xuICBwdWJsaWMgc2VsZWN0QWxsKGV2ZW50OiBNYXRDaGVja2JveENoYW5nZSkge1xuICAgIHRoaXMuc2VsZWN0aW9uLnNlbGVjdEFsbFZpc2libGVSb3dzKGV2ZW50LmNoZWNrZWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRyYWNrIEJ5IGZvciBpbXByb3ZlIGNoYW5nZSBkZXRlY3Rpb25cbiAgICogQHBhcmFtIGluZGV4XG4gICAqL1xuICBwdWJsaWMgdHJhY2tCeUZuKGluZGV4KSB7XG4gICAgcmV0dXJuIGluZGV4O1xuICB9XG5cbiAgLyoqXG4gICAqIFN1YnNjcmliZSB0byBzb3J0aW5nIGNoYW5nZVxuICAgKi9cbiAgcHJpdmF0ZSBpbml0U29ydGluZygpIHtcbiAgICB0aGlzLnNvcnRpbmcuc29ydGluZ0NoYW5nZWQkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFN1YnNjcmliZSB0byBzZWxlY3Rpb24gY2hhbmdlXG4gICAqL1xuICBwcml2YXRlIGluaXRTZWxlY3Rpb24oKSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uKSB7XG4gICAgICB0aGlzLnNlbGVjdGlvbi5zZWxlY3Rpb25DaGFuZ2UkXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIGZpbHRlcihcbiAgICAgICAgICAgICh7dHlwZX0pID0+IChcbiAgICAgICAgICAgICAgdHlwZSA9PT0gU2VsZWN0aW9uQ2hhbmdlVHlwZS5BbGxWaXNpYmxlU2VsZWN0aW9uQ2hhbmdlXG4gICAgICAgICAgICAgIHx8IHR5cGUgPT09IFNlbGVjdGlvbkNoYW5nZVR5cGUuU2VsZWN0ZWRBbGxcbiAgICAgICAgICAgICAgfHwgdHlwZSA9PT0gU2VsZWN0aW9uQ2hhbmdlVHlwZS5Sb3dTZWxlY3Rpb25DaGFuZ2VcbiAgICAgICAgICAgIClcbiAgICAgICAgICApLFxuICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoe3R5cGUsIHBheWxvYWQ6IHN0YXR1c30pID0+IHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkQWxsID0gc3RhdHVzO1xuXG4gICAgICAgICAgdGhpcy5jZFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iLCI8dHIgY2xhc3M9XCJmcy1saXN0LXJvd1wiPlxuICA8IS0tIERyYWcgLS0+XG4gIDx0aCAqbmdJZj1cImxlZnREcmFnRHJvcEVuYWJsZWRcIlxuICAgICAgY2xhc3M9XCJmcy1saXN0LWNvbCBkcmFnLWNvbFwiPlxuICA8L3RoPlxuXG4gIDwhLS0gU2VsZWN0aW9uIC0tPlxuICA8dGggKm5nSWY9XCJzZWxlY3Rpb24gJiYgIShzZWxlY3Rpb24uZGlzYWJsZWQkIHwgYXN5bmMpXCIgY2xhc3M9XCJmcy1saXN0LWNvbCBmcy1saXN0LWNvbC1zZWxlY3Rpb25cIj5cbiAgICA8bWF0LWNoZWNrYm94IChjaGFuZ2UpPVwic2VsZWN0QWxsKCRldmVudClcIiBbY2hlY2tlZF09XCJzZWxlY3RlZEFsbFwiPjwvbWF0LWNoZWNrYm94PlxuICA8L3RoPlxuXG4gIDwhLS0gQ29udGVudCAtLT5cbiAgPHRoIGZzLWhlYWQtY2VsbCAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHVtbnM7IHRyYWNrQnk6IHRyYWNrQnlGblwiXG4gICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyBzb3J0aW5nLnNvcnRCeShjb2x1bW4pXCJcbiAgICAgIFtjb2x1bW5dPVwiY29sdW1uXCJcbiAgICAgIFtjbGFzcy5zb3J0aW5nXT1cImNvbHVtbi5zb3J0YWJsZVwiXG4gICAgICBbbmdDbGFzc109XCJjb2x1bW4uaGVhZGVyQ29uZmlncy5jbGFzc2VzQXJyYXlcIlxuICAgICAgW2F0dHIuY29sc3Bhbl09XCJjb2x1bW4uaGVhZGVyQ29uZmlncy5jb2xzcGFuXCJcbiAgICAgIFthdHRyLndpZHRoXT1cImNvbHVtbi53aWR0aFwiPjwvdGg+XG5cbiAgPCEtLSBEcmFnIC0tPlxuICA8dGggKm5nSWY9XCJyaWdodERyYWdEcm9wRW5hYmxlZFwiXG4gICAgICBjbGFzcz1cImZzLWxpc3QtY29sIGRyYWctY29sXCI+XG4gIDwvdGg+XG5cbiAgPCEtLSBSb3cgQWN0aW9ucyAtLT5cbiAgPHRoICpuZ0lmPVwiaGFzUm93QWN0aW9ucyAmJiAhKHJlb3JkZXJFbmFibGVkICYmIHJlb3JkZXJTdHJhdGVneSA9PT0gUmVvcmRlclN0cmF0ZWd5RW51bS5NYW51YWwpXCIgY2xhc3M9XCJmcy1saXN0LWNvbCByb3ctYWN0aW9uc1wiPjwvdGg+XG48L3RyPlxuIl19
|