@huntsman-cancer-institute/reporting-framework 16.0.1 → 17.0.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/datepicker/report-datepicker.component.d.ts +16 -16
- package/esm2022/datepicker/report-datepicker.component.mjs +61 -61
- package/esm2022/format/format.component.mjs +23 -23
- package/esm2022/huntsman-cancer-institute-reporting-framework.mjs +4 -4
- package/esm2022/index.mjs +2 -2
- package/esm2022/model/format.model.mjs +2 -2
- package/esm2022/model/option.model.mjs +2 -2
- package/esm2022/model/param.model.mjs +18 -18
- package/esm2022/model/report-tab.model.mjs +2 -2
- package/esm2022/model/report.model.mjs +6 -6
- package/esm2022/parameter/parameter.component.mjs +23 -23
- package/esm2022/report.module.mjs +79 -79
- package/esm2022/reporting-framework.component.mjs +424 -424
- package/esm2022/resizable-divider/resizable-section-divider.component.mjs +122 -122
- package/esm2022/spinner/dialogs.service.mjs +99 -99
- package/esm2022/spinner/spinner-dialog.component.mjs +45 -45
- package/fesm2022/huntsman-cancer-institute-reporting-framework.mjs +821 -821
- package/fesm2022/huntsman-cancer-institute-reporting-framework.mjs.map +1 -1
- package/format/format.component.d.ts +11 -11
- package/index.d.ts +2 -2
- package/model/format.model.d.ts +6 -6
- package/model/option.model.d.ts +5 -5
- package/model/param.model.d.ts +16 -16
- package/model/report-tab.model.d.ts +7 -7
- package/model/report.model.d.ts +15 -15
- package/package.json +16 -7
- package/parameter/parameter.component.d.ts +9 -9
- package/report.module.d.ts +21 -21
- package/reporting-framework.component.d.ts +58 -58
- package/resizable-divider/resizable-section-divider.component.d.ts +23 -23
- package/spinner/dialogs.service.d.ts +30 -30
- package/spinner/spinner-dialog.component.d.ts +12 -12
|
@@ -1,95 +1,95 @@
|
|
|
1
|
-
import { Component, ElementRef, HostListener, Input, ViewChild } from "@angular/core";
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "@angular/common";
|
|
4
|
-
export class ResizableSectionDividerComponent {
|
|
5
|
-
constructor() {
|
|
6
|
-
// Starting width or height % for the right / bottom containers respectively
|
|
7
|
-
this.initialPercentage = 50;
|
|
8
|
-
this.isVerticalLayout = false;
|
|
9
|
-
this.maxPercentage = 90;
|
|
10
|
-
this.minPercentage = 10;
|
|
11
|
-
this.dragging = false;
|
|
12
|
-
this.grabberOffset = 0;
|
|
13
|
-
}
|
|
14
|
-
ngOnInit() {
|
|
15
|
-
this.sectionSize = this.initialPercentage;
|
|
16
|
-
this.verticalTouchFunction = (event) => {
|
|
17
|
-
if (this.dragging) {
|
|
18
|
-
this.grabberOffset = (((20 / this.verticalContainer.nativeElement.offsetHeight) * 100) / 2);
|
|
19
|
-
this.sectionSize = ((this.verticalContainer.nativeElement.offsetHeight - (event.touches[0].pageY - this.verticalContainer.nativeElement.getBoundingClientRect().top))
|
|
20
|
-
/ (this.verticalContainer.nativeElement.offsetHeightt) * 100);
|
|
21
|
-
event.stopPropagation();
|
|
22
|
-
event.preventDefault();
|
|
23
|
-
}
|
|
24
|
-
};
|
|
25
|
-
this.horizontalTouchFunction = (event) => {
|
|
26
|
-
if (this.dragging) {
|
|
27
|
-
this.grabberOffset = (((10 / this.horizontalContainer.nativeElement.offsetWidth) * 100) / 2);
|
|
28
|
-
this.sectionSize = ((this.horizontalContainer.nativeElement.offsetWidth - event.touches[0].pageX - this.horizontalContainer.nativeElement.getBoundingClientRect().left)
|
|
29
|
-
/ (this.horizontalContainer.nativeElement.offsetWidth) * 100);
|
|
30
|
-
event.stopPropagation();
|
|
31
|
-
event.preventDefault();
|
|
32
|
-
}
|
|
33
|
-
};
|
|
34
|
-
}
|
|
35
|
-
ngAfterViewInit() {
|
|
36
|
-
// Handle initializing grabber size for when elements are initialized as hidden
|
|
37
|
-
this.elementObserver = new IntersectionObserver((entries, observable) => {
|
|
38
|
-
entries.forEach(entry => {
|
|
39
|
-
if (entry.isIntersecting) {
|
|
40
|
-
// subtract half the grabber height/width % from each section
|
|
41
|
-
if (this.isVerticalLayout) {
|
|
42
|
-
this.grabberOffset = (((20 / this.verticalContainer.nativeElement.offsetHeight) * 100) / 2);
|
|
43
|
-
}
|
|
44
|
-
else {
|
|
45
|
-
this.grabberOffset = (((10 / this.horizontalContainer.nativeElement.offsetWidth) * 100) / 2);
|
|
46
|
-
}
|
|
47
|
-
observable.disconnect();
|
|
48
|
-
}
|
|
49
|
-
});
|
|
50
|
-
});
|
|
51
|
-
if (this.isVerticalLayout) {
|
|
52
|
-
this.elementObserver.observe(this.verticalContainer.nativeElement);
|
|
53
|
-
window.addEventListener("touchmove", this.verticalTouchFunction, { passive: false });
|
|
54
|
-
}
|
|
55
|
-
else {
|
|
56
|
-
this.elementObserver.observe(this.horizontalContainer.nativeElement);
|
|
57
|
-
window.addEventListener("touchmove", this.horizontalTouchFunction, { passive: false });
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
mouseMove(event) {
|
|
61
|
-
if (this.dragging) {
|
|
62
|
-
if (this.isVerticalLayout) {
|
|
63
|
-
this.grabberOffset = (((20 / this.verticalContainer.nativeElement.offsetHeight) * 100) / 2);
|
|
64
|
-
this.sectionSize = ((this.verticalContainer.nativeElement.offsetHeight - (event.pageY - this.verticalContainer.nativeElement.getBoundingClientRect().top))
|
|
65
|
-
/ (this.verticalContainer.nativeElement.offsetHeight) * 100);
|
|
66
|
-
event.stopPropagation();
|
|
67
|
-
event.preventDefault();
|
|
68
|
-
}
|
|
69
|
-
else {
|
|
70
|
-
this.grabberOffset = (((10 / this.horizontalContainer.nativeElement.offsetWidth) * 100) / 2);
|
|
71
|
-
this.sectionSize = ((this.horizontalContainer.nativeElement.offsetWidth - event.pageX - this.horizontalContainer.nativeElement.getBoundingClientRect().left)
|
|
72
|
-
/ (this.horizontalContainer.nativeElement.offsetWidth) * 100);
|
|
73
|
-
event.stopPropagation();
|
|
74
|
-
event.preventDefault();
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
mouseUp(event) {
|
|
79
|
-
if (this.dragging) {
|
|
80
|
-
this.dragging = false;
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
ngOnDestroy() {
|
|
84
|
-
if (this.isVerticalLayout) {
|
|
85
|
-
window.removeEventListener("touchmove", this.verticalTouchFunction);
|
|
86
|
-
}
|
|
87
|
-
else {
|
|
88
|
-
window.removeEventListener("touchmove", this.horizontalTouchFunction);
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
92
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
1
|
+
import { Component, ElementRef, HostListener, Input, ViewChild } from "@angular/core";
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/common";
|
|
4
|
+
export class ResizableSectionDividerComponent {
|
|
5
|
+
constructor() {
|
|
6
|
+
// Starting width or height % for the right / bottom containers respectively
|
|
7
|
+
this.initialPercentage = 50;
|
|
8
|
+
this.isVerticalLayout = false;
|
|
9
|
+
this.maxPercentage = 90;
|
|
10
|
+
this.minPercentage = 10;
|
|
11
|
+
this.dragging = false;
|
|
12
|
+
this.grabberOffset = 0;
|
|
13
|
+
}
|
|
14
|
+
ngOnInit() {
|
|
15
|
+
this.sectionSize = this.initialPercentage;
|
|
16
|
+
this.verticalTouchFunction = (event) => {
|
|
17
|
+
if (this.dragging) {
|
|
18
|
+
this.grabberOffset = (((20 / this.verticalContainer.nativeElement.offsetHeight) * 100) / 2);
|
|
19
|
+
this.sectionSize = ((this.verticalContainer.nativeElement.offsetHeight - (event.touches[0].pageY - this.verticalContainer.nativeElement.getBoundingClientRect().top))
|
|
20
|
+
/ (this.verticalContainer.nativeElement.offsetHeightt) * 100);
|
|
21
|
+
event.stopPropagation();
|
|
22
|
+
event.preventDefault();
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
this.horizontalTouchFunction = (event) => {
|
|
26
|
+
if (this.dragging) {
|
|
27
|
+
this.grabberOffset = (((10 / this.horizontalContainer.nativeElement.offsetWidth) * 100) / 2);
|
|
28
|
+
this.sectionSize = ((this.horizontalContainer.nativeElement.offsetWidth - event.touches[0].pageX - this.horizontalContainer.nativeElement.getBoundingClientRect().left)
|
|
29
|
+
/ (this.horizontalContainer.nativeElement.offsetWidth) * 100);
|
|
30
|
+
event.stopPropagation();
|
|
31
|
+
event.preventDefault();
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
ngAfterViewInit() {
|
|
36
|
+
// Handle initializing grabber size for when elements are initialized as hidden
|
|
37
|
+
this.elementObserver = new IntersectionObserver((entries, observable) => {
|
|
38
|
+
entries.forEach(entry => {
|
|
39
|
+
if (entry.isIntersecting) {
|
|
40
|
+
// subtract half the grabber height/width % from each section
|
|
41
|
+
if (this.isVerticalLayout) {
|
|
42
|
+
this.grabberOffset = (((20 / this.verticalContainer.nativeElement.offsetHeight) * 100) / 2);
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
this.grabberOffset = (((10 / this.horizontalContainer.nativeElement.offsetWidth) * 100) / 2);
|
|
46
|
+
}
|
|
47
|
+
observable.disconnect();
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
if (this.isVerticalLayout) {
|
|
52
|
+
this.elementObserver.observe(this.verticalContainer.nativeElement);
|
|
53
|
+
window.addEventListener("touchmove", this.verticalTouchFunction, { passive: false });
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
this.elementObserver.observe(this.horizontalContainer.nativeElement);
|
|
57
|
+
window.addEventListener("touchmove", this.horizontalTouchFunction, { passive: false });
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
mouseMove(event) {
|
|
61
|
+
if (this.dragging) {
|
|
62
|
+
if (this.isVerticalLayout) {
|
|
63
|
+
this.grabberOffset = (((20 / this.verticalContainer.nativeElement.offsetHeight) * 100) / 2);
|
|
64
|
+
this.sectionSize = ((this.verticalContainer.nativeElement.offsetHeight - (event.pageY - this.verticalContainer.nativeElement.getBoundingClientRect().top))
|
|
65
|
+
/ (this.verticalContainer.nativeElement.offsetHeight) * 100);
|
|
66
|
+
event.stopPropagation();
|
|
67
|
+
event.preventDefault();
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
this.grabberOffset = (((10 / this.horizontalContainer.nativeElement.offsetWidth) * 100) / 2);
|
|
71
|
+
this.sectionSize = ((this.horizontalContainer.nativeElement.offsetWidth - event.pageX - this.horizontalContainer.nativeElement.getBoundingClientRect().left)
|
|
72
|
+
/ (this.horizontalContainer.nativeElement.offsetWidth) * 100);
|
|
73
|
+
event.stopPropagation();
|
|
74
|
+
event.preventDefault();
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
mouseUp(event) {
|
|
79
|
+
if (this.dragging) {
|
|
80
|
+
this.dragging = false;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
ngOnDestroy() {
|
|
84
|
+
if (this.isVerticalLayout) {
|
|
85
|
+
window.removeEventListener("touchmove", this.verticalTouchFunction);
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
window.removeEventListener("touchmove", this.horizontalTouchFunction);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ResizableSectionDividerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
92
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: ResizableSectionDividerComponent, selector: "resizable-section-divider", inputs: { initialPercentage: "initialPercentage", isVerticalLayout: "isVerticalLayout", maxPercentage: "maxPercentage", minPercentage: "minPercentage" }, host: { listeners: { "document:mousemove": "mouseMove($event)", "document:mouseup": "mouseUp($event)", "document:touchend": "mouseUp($event)" } }, viewQueries: [{ propertyName: "verticalContainer", first: true, predicate: ["verticalContainer"], descendants: true }, { propertyName: "horizontalContainer", first: true, predicate: ["horizontalContainer"], descendants: true }], ngImport: i0, template: `
|
|
93
93
|
<div *ngIf="isVerticalLayout" style="height: 100%; width: 100%;" #verticalContainer>
|
|
94
94
|
<div class="p-1" style="width: 100%;" [style.min-height.%]="minPercentage" [style.max-height.%]="maxPercentage" [style.height.%]="(100 - sectionSize - grabberOffset)">
|
|
95
95
|
<ng-content select="[topSection]"></ng-content>
|
|
@@ -117,10 +117,10 @@ export class ResizableSectionDividerComponent {
|
|
|
117
117
|
<ng-content select="[rightSection]"></ng-content>
|
|
118
118
|
</div>
|
|
119
119
|
</div>
|
|
120
|
-
`, isInline: true, styles: [".rad-grabber{cursor:ew-resize}.rad-grabber-vertical{cursor:ns-resize}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
121
|
-
}
|
|
122
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
123
|
-
type: Component,
|
|
120
|
+
`, isInline: true, styles: [".rad-grabber{cursor:ew-resize}.rad-grabber-vertical{cursor:ns-resize}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
121
|
+
}
|
|
122
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ResizableSectionDividerComponent, decorators: [{
|
|
123
|
+
type: Component,
|
|
124
124
|
args: [{ selector: "resizable-section-divider", template: `
|
|
125
125
|
<div *ngIf="isVerticalLayout" style="height: 100%; width: 100%;" #verticalContainer>
|
|
126
126
|
<div class="p-1" style="width: 100%;" [style.min-height.%]="minPercentage" [style.max-height.%]="maxPercentage" [style.height.%]="(100 - sectionSize - grabberOffset)">
|
|
@@ -149,29 +149,29 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
149
149
|
<ng-content select="[rightSection]"></ng-content>
|
|
150
150
|
</div>
|
|
151
151
|
</div>
|
|
152
|
-
`, styles: [".rad-grabber{cursor:ew-resize}.rad-grabber-vertical{cursor:ns-resize}\n"] }]
|
|
153
|
-
}], propDecorators: { initialPercentage: [{
|
|
154
|
-
type: Input
|
|
155
|
-
}], isVerticalLayout: [{
|
|
156
|
-
type: Input
|
|
157
|
-
}], maxPercentage: [{
|
|
158
|
-
type: Input
|
|
159
|
-
}], minPercentage: [{
|
|
160
|
-
type: Input
|
|
161
|
-
}], verticalContainer: [{
|
|
162
|
-
type: ViewChild,
|
|
163
|
-
args: ["verticalContainer", { static: false }]
|
|
164
|
-
}], horizontalContainer: [{
|
|
165
|
-
type: ViewChild,
|
|
166
|
-
args: ["horizontalContainer", { static: false }]
|
|
167
|
-
}], mouseMove: [{
|
|
168
|
-
type: HostListener,
|
|
169
|
-
args: ["document:mousemove", ["$event"]]
|
|
170
|
-
}], mouseUp: [{
|
|
171
|
-
type: HostListener,
|
|
172
|
-
args: ["document:mouseup", ["$event"]]
|
|
173
|
-
}, {
|
|
174
|
-
type: HostListener,
|
|
175
|
-
args: ["document:touchend", ["$event"]]
|
|
176
|
-
}] } });
|
|
177
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXphYmxlLXNlY3Rpb24tZGl2aWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9yZXBvcnRpbmctZnJhbWV3b3JrL3NyYy9yZXNpemFibGUtZGl2aWRlci9yZXNpemFibGUtc2VjdGlvbi1kaXZpZGVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7OztBQTJDOUcsTUFBTSxPQUFPLGdDQUFnQztJQXpDN0M7UUEwQ0ksNEVBQTRFO1FBQ25FLHNCQUFpQixHQUFXLEVBQUUsQ0FBQztRQUMvQixxQkFBZ0IsR0FBWSxLQUFLLENBQUM7UUFDbEMsa0JBQWEsR0FBVyxFQUFFLENBQUM7UUFDM0Isa0JBQWEsR0FBVyxFQUFFLENBQUM7UUFNN0IsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUMxQixrQkFBYSxHQUFHLENBQUMsQ0FBQztLQXdGNUI7SUFsRkcsUUFBUTtRQUNKLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDO1FBRTVDLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ3JDLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtnQkFDakIsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUMsQ0FBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsR0FBRyxHQUFHLENBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDOUYsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxZQUFZLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDLHFCQUFxQixFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7c0JBQ2pLLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztnQkFDaEUsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO2dCQUN4QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7YUFDeEI7UUFDSCxDQUFDLENBQUM7UUFFRixJQUFJLENBQUMsdUJBQXVCLEdBQUcsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUN2QyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ2pCLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDLENBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLEdBQUcsR0FBRyxDQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQy9GLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxJQUFJLENBQUM7c0JBQ25LLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztnQkFDaEUsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO2dCQUN4QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7YUFDeEI7UUFDSCxDQUFDLENBQUM7SUFDSixDQUFDO0lBQ0QsZUFBZTtRQUNYLCtFQUErRTtRQUMvRSxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksb0JBQW9CLENBQUMsQ0FBQyxPQUFPLEVBQUUsVUFBVSxFQUFFLEVBQUU7WUFDakUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDckIsSUFBRyxLQUFLLENBQUMsY0FBYyxFQUFFO29CQUNyQiw2REFBNkQ7b0JBQzdELElBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFO3dCQUN0QixJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQyxDQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxHQUFHLEdBQUcsQ0FBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO3FCQUNqRzt5QkFBTTt3QkFDSCxJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQyxDQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEdBQUcsQ0FBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO3FCQUNsRztvQkFDRCxVQUFVLENBQUMsVUFBVSxFQUFFLENBQUM7aUJBQzNCO1lBQ0osQ0FBQyxDQUFDLENBQUM7UUFDVixDQUFDLENBQUMsQ0FBQztRQUVILElBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3RCLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUNuRSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1NBQ3hGO2FBQU07WUFDSCxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDckUsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsdUJBQXVCLEVBQUUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztTQUMxRjtJQUNMLENBQUM7SUFHRCxTQUFTLENBQUMsS0FBaUI7UUFDdkIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2YsSUFBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7Z0JBQ3RCLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDLENBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLEdBQUcsR0FBRyxDQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQzlGLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsWUFBWSxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDLHFCQUFxQixFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7c0JBQ3BKLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztnQkFDakUsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO2dCQUN4QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7YUFDMUI7aUJBQU07Z0JBQ0gsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUMsQ0FBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsR0FBRyxHQUFHLENBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDL0YsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLEtBQUssR0FBSSxJQUFJLENBQUMsbUJBQW1CLENBQUMsYUFBYSxDQUFDLHFCQUFxQixFQUFFLENBQUMsSUFBSSxDQUFDO3NCQUN2SixDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7Z0JBQ2xFLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztnQkFDeEIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO2FBQzFCO1NBQ0o7SUFDTCxDQUFDO0lBR0QsT0FBTyxDQUFDLEtBQWlCO1FBQ3JCLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNmLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1NBQ3pCO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUN4QixNQUFNLENBQUMsbUJBQW1CLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1NBQ3JFO2FBQU07WUFDTCxNQUFNLENBQUMsbUJBQW1CLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1NBQ3ZFO0lBQ0gsQ0FBQzsrR0FsR1EsZ0NBQWdDO21HQUFoQyxnQ0FBZ0MsbWxCQXZDL0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0E0QlQ7OzRGQVdRLGdDQUFnQztrQkF6QzVDLFNBQVM7K0JBQ0ksMkJBQTJCLFlBQzNCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBNEJUOzhCQWFRLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUUyQyxpQkFBaUI7c0JBQWpFLFNBQVM7dUJBQUMsbUJBQW1CLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDO2dCQUNJLG1CQUFtQjtzQkFBckUsU0FBUzt1QkFBQyxxQkFBcUIsRUFBRSxFQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUM7Z0JBMkRqRCxTQUFTO3NCQURSLFlBQVk7dUJBQUMsb0JBQW9CLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBb0I5QyxPQUFPO3NCQUZOLFlBQVk7dUJBQUMsa0JBQWtCLEVBQUUsQ0FBQyxRQUFRLENBQUM7O3NCQUMzQyxZQUFZO3VCQUFDLG1CQUFtQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uRGVzdHJveSwgVmlld0NoaWxkfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogXCJyZXNpemFibGUtc2VjdGlvbi1kaXZpZGVyXCIsXHJcbiAgICB0ZW1wbGF0ZTogYFxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJpc1ZlcnRpY2FsTGF5b3V0XCIgc3R5bGU9XCJoZWlnaHQ6IDEwMCU7IHdpZHRoOiAxMDAlO1wiICN2ZXJ0aWNhbENvbnRhaW5lcj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtMVwiIHN0eWxlPVwid2lkdGg6IDEwMCU7XCIgW3N0eWxlLm1pbi1oZWlnaHQuJV09XCJtaW5QZXJjZW50YWdlXCIgW3N0eWxlLm1heC1oZWlnaHQuJV09XCJtYXhQZXJjZW50YWdlXCIgW3N0eWxlLmhlaWdodC4lXT1cIigxMDAgLSBzZWN0aW9uU2l6ZSAtIGdyYWJiZXJPZmZzZXQpXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbdG9wU2VjdGlvbl1cIj48L25nLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCIgc3R5bGU9XCJoZWlnaHQ6IDIwcHg7IHdpZHRoOiAxMDAlO1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJhZC1ncmFiYmVyLXZlcnRpY2FsXCIgKG1vdXNlZG93bik9XCJkcmFnZ2luZyA9IHRydWU7XCIgKHRvdWNoc3RhcnQpPVwiZHJhZ2dpbmcgPSB0cnVlO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtZ3JpcC1saW5lc1wiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtMVwiIHN0eWxlPVwid2lkdGg6IDEwMCU7XCIgW3N0eWxlLm1pbi1oZWlnaHQuJV09XCJtaW5QZXJjZW50YWdlXCIgW3N0eWxlLm1heC1oZWlnaHQuJV09XCJtYXhQZXJjZW50YWdlXCIgW3N0eWxlLmhlaWdodC4lXT1cIihzZWN0aW9uU2l6ZSAtIGdyYWJiZXJPZmZzZXQpXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbYm90dG9tU2VjdGlvbl1cIj48L25nLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiIWlzVmVydGljYWxMYXlvdXRcIiBjbGFzcz1cImQtZmxleFwiIHN0eWxlPVwiaGVpZ2h0OiAxMDAlOyB3aWR0aDogMTAwJTtcIiAjaG9yaXpvbnRhbENvbnRhaW5lcj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtMVwiIHN0eWxlPVwiaGVpZ2h0OiAxMDAlO1wiIFtzdHlsZS5taW4td2lkdGguJV09XCJtaW5QZXJjZW50YWdlXCIgW3N0eWxlLm1heC13aWR0aC4lXT1cIm1heFBlcmNlbnRhZ2VcIiBbc3R5bGUud2lkdGguJV09XCIoMTAwIC0gc2VjdGlvblNpemUgLSBncmFiYmVyT2Zmc2V0KVwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2xlZnRTZWN0aW9uXVwiPjwvbmctY29udGVudD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIiBzdHlsZT1cIndpZHRoOiAxMHB4OyBoZWlnaHQ6IDEwMCU7XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmFkLWdyYWJiZXJcIiAobW91c2Vkb3duKT1cImRyYWdnaW5nID0gdHJ1ZTtcIiAodG91Y2hzdGFydCk9XCJkcmFnZ2luZyA9IHRydWU7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1ncmlwLWxpbmVzLXZlcnRpY2FsXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC0xXCIgc3R5bGU9XCJoZWlnaHQ6IDEwMCU7XCIgW3N0eWxlLm1pbi13aWR0aC4lXT1cIm1pblBlcmNlbnRhZ2VcIiBbc3R5bGUubWF4LXdpZHRoLiVdPVwibWF4UGVyY2VudGFnZVwiIFtzdHlsZS53aWR0aC4lXT1cInNlY3Rpb25TaXplIC0gZ3JhYmJlck9mZnNldFwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3JpZ2h0U2VjdGlvbl1cIj48L25nLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgYCxcclxuICBzdHlsZXM6IFtgXHJcbiAgICAucmFkLWdyYWJiZXIge1xyXG4gICAgICBjdXJzb3I6IGV3LXJlc2l6ZTtcclxuICAgIH1cclxuXHJcbiAgICAucmFkLWdyYWJiZXItdmVydGljYWwge1xyXG4gICAgICBjdXJzb3I6IG5zLXJlc2l6ZTtcclxuICAgIH1cclxuICBgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVzaXphYmxlU2VjdGlvbkRpdmlkZXJDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG4gICAgLy8gU3RhcnRpbmcgd2lkdGggb3IgaGVpZ2h0ICUgZm9yIHRoZSByaWdodCAvIGJvdHRvbSBjb250YWluZXJzIHJlc3BlY3RpdmVseVxyXG4gICAgQElucHV0KCkgaW5pdGlhbFBlcmNlbnRhZ2U6IG51bWJlciA9IDUwO1xyXG4gICAgQElucHV0KCkgaXNWZXJ0aWNhbExheW91dDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgbWF4UGVyY2VudGFnZTogbnVtYmVyID0gOTA7XHJcbiAgICBASW5wdXQoKSBtaW5QZXJjZW50YWdlOiBudW1iZXIgPSAxMDtcclxuXHJcbiAgICBAVmlld0NoaWxkKFwidmVydGljYWxDb250YWluZXJcIiwge3N0YXRpYzogZmFsc2V9KSB2ZXJ0aWNhbENvbnRhaW5lcjogRWxlbWVudFJlZjtcclxuICAgIEBWaWV3Q2hpbGQoXCJob3Jpem9udGFsQ29udGFpbmVyXCIsIHtzdGF0aWM6IGZhbHNlfSkgaG9yaXpvbnRhbENvbnRhaW5lcjogRWxlbWVudFJlZjtcclxuXHJcbiAgICBwdWJsaWMgc2VjdGlvblNpemU6IG51bWJlcjtcclxuICAgIHB1YmxpYyBkcmFnZ2luZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHVibGljIGdyYWJiZXJPZmZzZXQgPSAwO1xyXG5cclxuICBwcml2YXRlIHZlcnRpY2FsVG91Y2hGdW5jdGlvbjogYW55O1xyXG4gIHByaXZhdGUgaG9yaXpvbnRhbFRvdWNoRnVuY3Rpb246IGFueTtcclxuICBwcml2YXRlIGVsZW1lbnRPYnNlcnZlcjogYW55O1xyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHRoaXMuc2VjdGlvblNpemUgPSB0aGlzLmluaXRpYWxQZXJjZW50YWdlO1xyXG5cclxuICAgICAgdGhpcy52ZXJ0aWNhbFRvdWNoRnVuY3Rpb24gPSAoZXZlbnQpID0+IHtcclxuICAgICAgICBpZiAodGhpcy5kcmFnZ2luZykge1xyXG4gICAgICAgICAgdGhpcy5ncmFiYmVyT2Zmc2V0ID0gKCgoIDIwIC8gdGhpcy52ZXJ0aWNhbENvbnRhaW5lci5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodCkgKiAxMDAgKSAvIDIpO1xyXG4gICAgICAgICAgdGhpcy5zZWN0aW9uU2l6ZSA9ICgodGhpcy52ZXJ0aWNhbENvbnRhaW5lci5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodCAtIChldmVudC50b3VjaGVzWzBdLnBhZ2VZIC0gdGhpcy52ZXJ0aWNhbENvbnRhaW5lci5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCkpXHJcbiAgICAgICAgICAgIC8gKHRoaXMudmVydGljYWxDb250YWluZXIubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHR0KSAqIDEwMCk7XHJcbiAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9O1xyXG5cclxuICAgICAgdGhpcy5ob3Jpem9udGFsVG91Y2hGdW5jdGlvbiA9IChldmVudCkgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLmRyYWdnaW5nKSB7XHJcbiAgICAgICAgICB0aGlzLmdyYWJiZXJPZmZzZXQgPSAoKCggMTAgLyB0aGlzLmhvcml6b250YWxDb250YWluZXIubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCkgKiAxMDAgKSAvIDIpO1xyXG4gICAgICAgICAgdGhpcy5zZWN0aW9uU2l6ZSA9ICgodGhpcy5ob3Jpem9udGFsQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGggLSBldmVudC50b3VjaGVzWzBdLnBhZ2VYIC0gdGhpcy5ob3Jpem9udGFsQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdClcclxuICAgICAgICAgICAgLyAodGhpcy5ob3Jpem9udGFsQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGgpICogMTAwKTtcclxuICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICAgICAgLy8gSGFuZGxlIGluaXRpYWxpemluZyBncmFiYmVyIHNpemUgZm9yIHdoZW4gZWxlbWVudHMgYXJlIGluaXRpYWxpemVkIGFzIGhpZGRlblxyXG4gICAgICAgIHRoaXMuZWxlbWVudE9ic2VydmVyID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKChlbnRyaWVzLCBvYnNlcnZhYmxlKSA9PiB7XHJcbiAgICAgICAgICAgICAgIGVudHJpZXMuZm9yRWFjaChlbnRyeSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIGlmKGVudHJ5LmlzSW50ZXJzZWN0aW5nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAvLyBzdWJ0cmFjdCBoYWxmIHRoZSBncmFiYmVyIGhlaWdodC93aWR0aCAlIGZyb20gZWFjaCBzZWN0aW9uXHJcbiAgICAgICAgICAgICAgICAgICAgICBpZih0aGlzLmlzVmVydGljYWxMYXlvdXQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmdyYWJiZXJPZmZzZXQgPSAoKCggMjAgLyB0aGlzLnZlcnRpY2FsQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0KSAqIDEwMCApIC8gMik7XHJcbiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZ3JhYmJlck9mZnNldCA9ICgoKCAxMCAvIHRoaXMuaG9yaXpvbnRhbENvbnRhaW5lci5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoKSAqIDEwMCApIC8gMik7XHJcbiAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICBvYnNlcnZhYmxlLmRpc2Nvbm5lY3QoKTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgaWYodGhpcy5pc1ZlcnRpY2FsTGF5b3V0KSB7XHJcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudE9ic2VydmVyLm9ic2VydmUodGhpcy52ZXJ0aWNhbENvbnRhaW5lci5uYXRpdmVFbGVtZW50KTtcclxuICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJ0b3VjaG1vdmVcIiwgdGhpcy52ZXJ0aWNhbFRvdWNoRnVuY3Rpb24sIHsgcGFzc2l2ZTogZmFsc2UgfSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5lbGVtZW50T2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLmhvcml6b250YWxDb250YWluZXIubmF0aXZlRWxlbWVudCk7XHJcbiAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwidG91Y2htb3ZlXCIsIHRoaXMuaG9yaXpvbnRhbFRvdWNoRnVuY3Rpb24sIHsgcGFzc2l2ZTogZmFsc2UgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBIb3N0TGlzdGVuZXIoXCJkb2N1bWVudDptb3VzZW1vdmVcIiwgW1wiJGV2ZW50XCJdKVxyXG4gICAgbW91c2VNb3ZlKGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICAgICAgaWYgKHRoaXMuZHJhZ2dpbmcpIHtcclxuICAgICAgICAgICAgaWYodGhpcy5pc1ZlcnRpY2FsTGF5b3V0KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmdyYWJiZXJPZmZzZXQgPSAoKCggMjAgLyB0aGlzLnZlcnRpY2FsQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0KSAqIDEwMCApIC8gMik7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlY3Rpb25TaXplID0gKCh0aGlzLnZlcnRpY2FsQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0IC0gKGV2ZW50LnBhZ2VZIC0gdGhpcy52ZXJ0aWNhbENvbnRhaW5lci5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCkpXHJcbiAgICAgICAgICAgICAgICAgICAgLyAodGhpcy52ZXJ0aWNhbENvbnRhaW5lci5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodCkgKiAxMDApO1xyXG4gICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ncmFiYmVyT2Zmc2V0ID0gKCgoIDEwIC8gdGhpcy5ob3Jpem9udGFsQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGgpICogMTAwICkgLyAyKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VjdGlvblNpemUgPSAoKHRoaXMuaG9yaXpvbnRhbENvbnRhaW5lci5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoIC0gZXZlbnQucGFnZVggIC0gdGhpcy5ob3Jpem9udGFsQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdClcclxuICAgICAgICAgICAgICAgICAgICAvICh0aGlzLmhvcml6b250YWxDb250YWluZXIubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCkgKiAxMDApO1xyXG4gICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgQEhvc3RMaXN0ZW5lcihcImRvY3VtZW50Om1vdXNldXBcIiwgW1wiJGV2ZW50XCJdKVxyXG4gICAgQEhvc3RMaXN0ZW5lcihcImRvY3VtZW50OnRvdWNoZW5kXCIsIFtcIiRldmVudFwiXSlcclxuICAgIG1vdXNlVXAoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgICAgICBpZiAodGhpcy5kcmFnZ2luZykge1xyXG4gICAgICAgICAgICB0aGlzLmRyYWdnaW5nID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCkge1xyXG4gICAgICBpZih0aGlzLmlzVmVydGljYWxMYXlvdXQpIHtcclxuICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInRvdWNobW92ZVwiLCB0aGlzLnZlcnRpY2FsVG91Y2hGdW5jdGlvbik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJ0b3VjaG1vdmVcIiwgdGhpcy5ob3Jpem9udGFsVG91Y2hGdW5jdGlvbik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbn1cclxuIl19
|
|
152
|
+
`, styles: [".rad-grabber{cursor:ew-resize}.rad-grabber-vertical{cursor:ns-resize}\n"] }]
|
|
153
|
+
}], propDecorators: { initialPercentage: [{
|
|
154
|
+
type: Input
|
|
155
|
+
}], isVerticalLayout: [{
|
|
156
|
+
type: Input
|
|
157
|
+
}], maxPercentage: [{
|
|
158
|
+
type: Input
|
|
159
|
+
}], minPercentage: [{
|
|
160
|
+
type: Input
|
|
161
|
+
}], verticalContainer: [{
|
|
162
|
+
type: ViewChild,
|
|
163
|
+
args: ["verticalContainer", { static: false }]
|
|
164
|
+
}], horizontalContainer: [{
|
|
165
|
+
type: ViewChild,
|
|
166
|
+
args: ["horizontalContainer", { static: false }]
|
|
167
|
+
}], mouseMove: [{
|
|
168
|
+
type: HostListener,
|
|
169
|
+
args: ["document:mousemove", ["$event"]]
|
|
170
|
+
}], mouseUp: [{
|
|
171
|
+
type: HostListener,
|
|
172
|
+
args: ["document:mouseup", ["$event"]]
|
|
173
|
+
}, {
|
|
174
|
+
type: HostListener,
|
|
175
|
+
args: ["document:touchend", ["$event"]]
|
|
176
|
+
}] } });
|
|
177
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXphYmxlLXNlY3Rpb24tZGl2aWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9yZXBvcnRpbmctZnJhbWV3b3JrL3NyYy9yZXNpemFibGUtZGl2aWRlci9yZXNpemFibGUtc2VjdGlvbi1kaXZpZGVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7OztBQTJDOUcsTUFBTSxPQUFPLGdDQUFnQztJQXpDN0M7UUEwQ0ksNEVBQTRFO1FBQ25FLHNCQUFpQixHQUFXLEVBQUUsQ0FBQztRQUMvQixxQkFBZ0IsR0FBWSxLQUFLLENBQUM7UUFDbEMsa0JBQWEsR0FBVyxFQUFFLENBQUM7UUFDM0Isa0JBQWEsR0FBVyxFQUFFLENBQUM7UUFNN0IsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUMxQixrQkFBYSxHQUFHLENBQUMsQ0FBQztLQXdGNUI7SUFsRkcsUUFBUTtRQUNKLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDO1FBRTVDLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ3JDLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNsQixJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQyxDQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxHQUFHLEdBQUcsQ0FBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUM5RixJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDLFlBQVksR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENB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QUM7Z0JBb0I5QyxPQUFPO3NCQUZOLFlBQVk7dUJBQUMsa0JBQWtCLEVBQUUsQ0FBQyxRQUFRLENBQUM7O3NCQUMzQyxZQUFZO3VCQUFDLG1CQUFtQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uRGVzdHJveSwgVmlld0NoaWxkfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogXCJyZXNpemFibGUtc2VjdGlvbi1kaXZpZGVyXCIsXHJcbiAgICB0ZW1wbGF0ZTogYFxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJpc1ZlcnRpY2FsTGF5b3V0XCIgc3R5bGU9XCJoZWlnaHQ6IDEwMCU7IHdpZHRoOiAxMDAlO1wiICN2ZXJ0aWNhbENvbnRhaW5lcj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtMVwiIHN0eWxlPVwid2lkdGg6IDEwMCU7XCIgW3N0eWxlLm1pbi1oZWlnaHQuJV09XCJtaW5QZXJjZW50YWdlXCIgW3N0eWxlLm1heC1oZWlnaHQuJV09XCJtYXhQZXJjZW50YWdlXCIgW3N0eWxlLmhlaWdodC4lXT1cIigxMDAgLSBzZWN0aW9uU2l6ZSAtIGdyYWJiZXJPZmZzZXQpXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbdG9wU2VjdGlvbl1cIj48L25nLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCIgc3R5bGU9XCJoZWlnaHQ6IDIwcHg7IHdpZHRoOiAxMDAlO1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJhZC1ncmFiYmVyLXZlcnRpY2FsXCIgKG1vdXNlZG93bik9XCJkcmFnZ2luZyA9IHRydWU7XCIgKHRvdWNoc3RhcnQpPVwiZHJhZ2dpbmcgPSB0cnVlO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtZ3JpcC1saW5lc1wiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtMVwiIHN0eWxlPVwid2lkdGg6IDEwMCU7XCIgW3N0eWxlLm1pbi1oZWlnaHQuJV09XCJtaW5QZXJjZW50YWdlXCIgW3N0eWxlLm1heC1oZWlnaHQuJV09XCJtYXhQZXJjZW50YWdlXCIgW3N0eWxlLmhlaWdodC4lXT1cIihzZWN0aW9uU2l6ZSAtIGdyYWJiZXJPZmZzZXQpXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbYm90dG9tU2VjdGlvbl1cIj48L25nLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiIWlzVmVydGljYWxMYXlvdXRcIiBjbGFzcz1cImQtZmxleFwiIHN0eWxlPVwiaGVpZ2h0OiAxMDAlOyB3aWR0aDogMTAwJTtcIiAjaG9yaXpvbnRhbENvbnRhaW5lcj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtMVwiIHN0eWxlPVwiaGVpZ2h0OiAxMDAlO1wiIFtzdHlsZS5taW4td2lkdGguJV09XCJtaW5QZXJjZW50YWdlXCIgW3N0eWxlLm1heC13aWR0aC4lXT1cIm1heFBlcmNlbnRhZ2VcIiBbc3R5bGUud2lkdGguJV09XCIoMTAwIC0gc2VjdGlvblNpemUgLSBncmFiYmVyT2Zmc2V0KVwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2xlZnRTZWN0aW9uXVwiPjwvbmctY29udGVudD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIiBzdHlsZT1cIndpZHRoOiAxMHB4OyBoZWlnaHQ6IDEwMCU7XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmFkLWdyYWJiZXJcIiAobW91c2Vkb3duKT1cImRyYWdnaW5nID0gdHJ1ZTtcIiAodG91Y2hzdGFydCk9XCJkcmFnZ2luZyA9IHRydWU7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1ncmlwLWxpbmVzLXZlcnRpY2FsXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC0xXCIgc3R5bGU9XCJoZWlnaHQ6IDEwMCU7XCIgW3N0eWxlLm1pbi13aWR0aC4lXT1cIm1pblBlcmNlbnRhZ2VcIiBbc3R5bGUubWF4LXdpZHRoLiVdPVwibWF4UGVyY2VudGFnZVwiIFtzdHlsZS53aWR0aC4lXT1cInNlY3Rpb25TaXplIC0gZ3JhYmJlck9mZnNldFwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3JpZ2h0U2VjdGlvbl1cIj48L25nLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgYCxcclxuICBzdHlsZXM6IFtgXHJcbiAgICAucmFkLWdyYWJiZXIge1xyXG4gICAgICBjdXJzb3I6IGV3LXJlc2l6ZTtcclxuICAgIH1cclxuXHJcbiAgICAucmFkLWdyYWJiZXItdmVydGljYWwge1xyXG4gICAgICBjdXJzb3I6IG5zLXJlc2l6ZTtcclxuICAgIH1cclxuICBgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVzaXphYmxlU2VjdGlvbkRpdmlkZXJDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG4gICAgLy8gU3RhcnRpbmcgd2lkdGggb3IgaGVpZ2h0ICUgZm9yIHRoZSByaWdodCAvIGJvdHRvbSBjb250YWluZXJzIHJlc3BlY3RpdmVseVxyXG4gICAgQElucHV0KCkgaW5pdGlhbFBlcmNlbnRhZ2U6IG51bWJlciA9IDUwO1xyXG4gICAgQElucHV0KCkgaXNWZXJ0aWNhbExheW91dDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgbWF4UGVyY2VudGFnZTogbnVtYmVyID0gOTA7XHJcbiAgICBASW5wdXQoKSBtaW5QZXJjZW50YWdlOiBudW1iZXIgPSAxMDtcclxuXHJcbiAgICBAVmlld0NoaWxkKFwidmVydGljYWxDb250YWluZXJcIiwge3N0YXRpYzogZmFsc2V9KSB2ZXJ0aWNhbENvbnRhaW5lcjogRWxlbWVudFJlZjtcclxuICAgIEBWaWV3Q2hpbGQoXCJob3Jpem9udGFsQ29udGFpbmVyXCIsIHtzdGF0aWM6IGZhbHNlfSkgaG9yaXpvbnRhbENvbnRhaW5lcjogRWxlbWVudFJlZjtcclxuXHJcbiAgICBwdWJsaWMgc2VjdGlvblNpemU6IG51bWJlcjtcclxuICAgIHB1YmxpYyBkcmFnZ2luZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHVibGljIGdyYWJiZXJPZmZzZXQgPSAwO1xyXG5cclxuICBwcml2YXRlIHZlcnRpY2FsVG91Y2hGdW5jdGlvbjogYW55O1xyXG4gIHByaXZhdGUgaG9yaXpvbnRhbFRvdWNoRnVuY3Rpb246IGFueTtcclxuICBwcml2YXRlIGVsZW1lbnRPYnNlcnZlcjogYW55O1xyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHRoaXMuc2VjdGlvblNpemUgPSB0aGlzLmluaXRpYWxQZXJjZW50YWdlO1xyXG5cclxuICAgICAgdGhpcy52ZXJ0aWNhbFRvdWNoRnVuY3Rpb24gPSAoZXZlbnQpID0+IHtcclxuICAgICAgICBpZiAodGhpcy5kcmFnZ2luZykge1xyXG4gICAgICAgICAgdGhpcy5ncmFiYmVyT2Zmc2V0ID0gKCgoIDIwIC8gdGhpcy52ZXJ0aWNhbENvbnRhaW5lci5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodCkgKiAxMDAgKSAvIDIpO1xyXG4gICAgICAgICAgdGhpcy5zZWN0aW9uU2l6ZSA9ICgodGhpcy52ZXJ0aWNhbENvbnRhaW5lci5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodCAtIChldmVudC50b3VjaGVzWzBdLnBhZ2VZIC0gdGhpcy52ZXJ0aWNhbENvbnRhaW5lci5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCkpXHJcbiAgICAgICAgICAgIC8gKHRoaXMudmVydGljYWxDb250YWluZXIubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHR0KSAqIDEwMCk7XHJcbiAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9O1xyXG5cclxuICAgICAgdGhpcy5ob3Jpem9udGFsVG91Y2hGdW5jdGlvbiA9IChldmVudCkgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLmRyYWdnaW5nKSB7XHJcbiAgICAgICAgICB0aGlzLmdyYWJiZXJPZmZzZXQgPSAoKCggMTAgLyB0aGlzLmhvcml6b250YWxDb250YWluZXIubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCkgKiAxMDAgKSAvIDIpO1xyXG4gICAgICAgICAgdGhpcy5zZWN0aW9uU2l6ZSA9ICgodGhpcy5ob3Jpem9udGFsQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGggLSBldmVudC50b3VjaGVzWzBdLnBhZ2VYIC0gdGhpcy5ob3Jpem9udGFsQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdClcclxuICAgICAgICAgICAgLyAodGhpcy5ob3Jpem9udGFsQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGgpICogMTAwKTtcclxuICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICAgICAgLy8gSGFuZGxlIGluaXRpYWxpemluZyBncmFiYmVyIHNpemUgZm9yIHdoZW4gZWxlbWVudHMgYXJlIGluaXRpYWxpemVkIGFzIGhpZGRlblxyXG4gICAgICAgIHRoaXMuZWxlbWVudE9ic2VydmVyID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKChlbnRyaWVzLCBvYnNlcnZhYmxlKSA9PiB7XHJcbiAgICAgICAgICAgICAgIGVudHJpZXMuZm9yRWFjaChlbnRyeSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIGlmKGVudHJ5LmlzSW50ZXJzZWN0aW5nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAvLyBzdWJ0cmFjdCBoYWxmIHRoZSBncmFiYmVyIGhlaWdodC93aWR0aCAlIGZyb20gZWFjaCBzZWN0aW9uXHJcbiAgICAgICAgICAgICAgICAgICAgICBpZih0aGlzLmlzVmVydGljYWxMYXlvdXQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmdyYWJiZXJPZmZzZXQgPSAoKCggMjAgLyB0aGlzLnZlcnRpY2FsQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0KSAqIDEwMCApIC8gMik7XHJcbiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZ3JhYmJlck9mZnNldCA9ICgoKCAxMCAvIHRoaXMuaG9yaXpvbnRhbENvbnRhaW5lci5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoKSAqIDEwMCApIC8gMik7XHJcbiAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICBvYnNlcnZhYmxlLmRpc2Nvbm5lY3QoKTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgaWYodGhpcy5pc1ZlcnRpY2FsTGF5b3V0KSB7XHJcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudE9ic2VydmVyLm9ic2VydmUodGhpcy52ZXJ0aWNhbENvbnRhaW5lci5uYXRpdmVFbGVtZW50KTtcclxuICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJ0b3VjaG1vdmVcIiwgdGhpcy52ZXJ0aWNhbFRvdWNoRnVuY3Rpb24sIHsgcGFzc2l2ZTogZmFsc2UgfSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5lbGVtZW50T2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLmhvcml6b250YWxDb250YWluZXIubmF0aXZlRWxlbWVudCk7XHJcbiAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwidG91Y2htb3ZlXCIsIHRoaXMuaG9yaXpvbnRhbFRvdWNoRnVuY3Rpb24sIHsgcGFzc2l2ZTogZmFsc2UgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBIb3N0TGlzdGVuZXIoXCJkb2N1bWVudDptb3VzZW1vdmVcIiwgW1wiJGV2ZW50XCJdKVxyXG4gICAgbW91c2VNb3ZlKGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICAgICAgaWYgKHRoaXMuZHJhZ2dpbmcpIHtcclxuICAgICAgICAgICAgaWYodGhpcy5pc1ZlcnRpY2FsTGF5b3V0KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmdyYWJiZXJPZmZzZXQgPSAoKCggMjAgLyB0aGlzLnZlcnRpY2FsQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0KSAqIDEwMCApIC8gMik7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlY3Rpb25TaXplID0gKCh0aGlzLnZlcnRpY2FsQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0IC0gKGV2ZW50LnBhZ2VZIC0gdGhpcy52ZXJ0aWNhbENvbnRhaW5lci5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCkpXHJcbiAgICAgICAgICAgICAgICAgICAgLyAodGhpcy52ZXJ0aWNhbENvbnRhaW5lci5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodCkgKiAxMDApO1xyXG4gICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ncmFiYmVyT2Zmc2V0ID0gKCgoIDEwIC8gdGhpcy5ob3Jpem9udGFsQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGgpICogMTAwICkgLyAyKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VjdGlvblNpemUgPSAoKHRoaXMuaG9yaXpvbnRhbENvbnRhaW5lci5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoIC0gZXZlbnQucGFnZVggIC0gdGhpcy5ob3Jpem9udGFsQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdClcclxuICAgICAgICAgICAgICAgICAgICAvICh0aGlzLmhvcml6b250YWxDb250YWluZXIubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCkgKiAxMDApO1xyXG4gICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgQEhvc3RMaXN0ZW5lcihcImRvY3VtZW50Om1vdXNldXBcIiwgW1wiJGV2ZW50XCJdKVxyXG4gICAgQEhvc3RMaXN0ZW5lcihcImRvY3VtZW50OnRvdWNoZW5kXCIsIFtcIiRldmVudFwiXSlcclxuICAgIG1vdXNlVXAoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgICAgICBpZiAodGhpcy5kcmFnZ2luZykge1xyXG4gICAgICAgICAgICB0aGlzLmRyYWdnaW5nID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCkge1xyXG4gICAgICBpZih0aGlzLmlzVmVydGljYWxMYXlvdXQpIHtcclxuICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInRvdWNobW92ZVwiLCB0aGlzLnZlcnRpY2FsVG91Y2hGdW5jdGlvbik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJ0b3VjaG1vdmVcIiwgdGhpcy5ob3Jpem9udGFsVG91Y2hGdW5jdGlvbik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbn1cclxuIl19
|
|
@@ -1,99 +1,99 @@
|
|
|
1
|
-
import { Injectable } from "@angular/core";
|
|
2
|
-
import { MatLegacyDialog as MatDialog, MatLegacyDialogConfig as MatDialogConfig } from "@angular/material/legacy-dialog";
|
|
3
|
-
import { SpinnerDialogComponent } from "./spinner-dialog.component";
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@angular/material/legacy-dialog";
|
|
6
|
-
export var DialogType;
|
|
7
|
-
(function (DialogType) {
|
|
8
|
-
DialogType["ERROR"] = "Error";
|
|
9
|
-
DialogType["WARNING"] = "Warning";
|
|
10
|
-
DialogType["ALERT"] = "Alert";
|
|
11
|
-
DialogType["SUCCESS"] = "Succeed";
|
|
12
|
-
DialogType["FAILED"] = "Failed";
|
|
13
|
-
DialogType["CONFIRM"] = "Confirm";
|
|
14
|
-
DialogType["INFO"] = "Info";
|
|
15
|
-
DialogType["VALIDATION"] = "Validation Error";
|
|
16
|
-
})(DialogType || (DialogType = {}));
|
|
17
|
-
export class DialogsService {
|
|
18
|
-
get spinnerDialogIsOpen() {
|
|
19
|
-
return this._spinnerDialogIsOpen;
|
|
20
|
-
}
|
|
21
|
-
constructor(dialog) {
|
|
22
|
-
this.dialog = dialog;
|
|
23
|
-
this._spinnerDialogIsOpen = false;
|
|
24
|
-
this.spinnerWorkItemCount = 0;
|
|
25
|
-
this.checkingSpinnerWorkItems = false;
|
|
26
|
-
this.spinnerDialogRefs = [];
|
|
27
|
-
}
|
|
28
|
-
startDefaultSpinnerDialog() {
|
|
29
|
-
return this.startSpinnerDialog("Please wait...", 3, 30);
|
|
30
|
-
}
|
|
31
|
-
startSpinnerDialog(message, strokeWidth, diameter) {
|
|
32
|
-
if (this._spinnerDialogIsOpen) {
|
|
33
|
-
return null;
|
|
34
|
-
}
|
|
35
|
-
this._spinnerDialogIsOpen = true;
|
|
36
|
-
let configuration = new MatDialogConfig();
|
|
37
|
-
configuration.data = {
|
|
38
|
-
message: message,
|
|
39
|
-
strokeWidth: strokeWidth,
|
|
40
|
-
diameter: diameter
|
|
41
|
-
};
|
|
42
|
-
configuration.width = "13em";
|
|
43
|
-
configuration.disableClose = true;
|
|
44
|
-
let dialogRef = this.dialog.open(SpinnerDialogComponent, configuration);
|
|
45
|
-
dialogRef.afterClosed().subscribe(() => {
|
|
46
|
-
this._spinnerDialogIsOpen = false;
|
|
47
|
-
});
|
|
48
|
-
this.spinnerDialogRefs.push(dialogRef);
|
|
49
|
-
return dialogRef;
|
|
50
|
-
}
|
|
51
|
-
// Let there be an alternative, global way to stop all active spinner dialogs.
|
|
52
|
-
stopAllSpinnerDialogs() {
|
|
53
|
-
this.spinnerWorkItemCount = 0;
|
|
54
|
-
for (let dialogRef of this.spinnerDialogRefs) {
|
|
55
|
-
setTimeout(() => {
|
|
56
|
-
dialogRef.close();
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
this.spinnerDialogRefs = [];
|
|
60
|
-
}
|
|
61
|
-
addSpinnerWorkItem() {
|
|
62
|
-
this.spinnerWorkItemCount++;
|
|
63
|
-
if (!this.checkingSpinnerWorkItems) {
|
|
64
|
-
this.checkingSpinnerWorkItems = true;
|
|
65
|
-
setTimeout(() => {
|
|
66
|
-
this.checkSpinnerWorkItems();
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
removeSpinnerWorkItem() {
|
|
71
|
-
this.spinnerWorkItemCount--;
|
|
72
|
-
if (this.spinnerWorkItemCount < 0) {
|
|
73
|
-
this.spinnerWorkItemCount = 0;
|
|
74
|
-
}
|
|
75
|
-
if (!this.checkingSpinnerWorkItems) {
|
|
76
|
-
this.checkingSpinnerWorkItems = true;
|
|
77
|
-
setTimeout(() => {
|
|
78
|
-
this.checkSpinnerWorkItems();
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
checkSpinnerWorkItems() {
|
|
83
|
-
this.checkingSpinnerWorkItems = false;
|
|
84
|
-
if (this.spinnerWorkItemCount) {
|
|
85
|
-
if (!this._spinnerDialogIsOpen) {
|
|
86
|
-
this.startDefaultSpinnerDialog();
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
else if (this._spinnerDialogIsOpen) {
|
|
90
|
-
this.stopAllSpinnerDialogs();
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
94
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
95
|
-
}
|
|
96
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
97
|
-
type: Injectable
|
|
98
|
-
}], ctorParameters:
|
|
99
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Injectable } from "@angular/core";
|
|
2
|
+
import { MatLegacyDialog as MatDialog, MatLegacyDialogConfig as MatDialogConfig } from "@angular/material/legacy-dialog";
|
|
3
|
+
import { SpinnerDialogComponent } from "./spinner-dialog.component";
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/material/legacy-dialog";
|
|
6
|
+
export var DialogType;
|
|
7
|
+
(function (DialogType) {
|
|
8
|
+
DialogType["ERROR"] = "Error";
|
|
9
|
+
DialogType["WARNING"] = "Warning";
|
|
10
|
+
DialogType["ALERT"] = "Alert";
|
|
11
|
+
DialogType["SUCCESS"] = "Succeed";
|
|
12
|
+
DialogType["FAILED"] = "Failed";
|
|
13
|
+
DialogType["CONFIRM"] = "Confirm";
|
|
14
|
+
DialogType["INFO"] = "Info";
|
|
15
|
+
DialogType["VALIDATION"] = "Validation Error";
|
|
16
|
+
})(DialogType || (DialogType = {}));
|
|
17
|
+
export class DialogsService {
|
|
18
|
+
get spinnerDialogIsOpen() {
|
|
19
|
+
return this._spinnerDialogIsOpen;
|
|
20
|
+
}
|
|
21
|
+
constructor(dialog) {
|
|
22
|
+
this.dialog = dialog;
|
|
23
|
+
this._spinnerDialogIsOpen = false;
|
|
24
|
+
this.spinnerWorkItemCount = 0;
|
|
25
|
+
this.checkingSpinnerWorkItems = false;
|
|
26
|
+
this.spinnerDialogRefs = [];
|
|
27
|
+
}
|
|
28
|
+
startDefaultSpinnerDialog() {
|
|
29
|
+
return this.startSpinnerDialog("Please wait...", 3, 30);
|
|
30
|
+
}
|
|
31
|
+
startSpinnerDialog(message, strokeWidth, diameter) {
|
|
32
|
+
if (this._spinnerDialogIsOpen) {
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
this._spinnerDialogIsOpen = true;
|
|
36
|
+
let configuration = new MatDialogConfig();
|
|
37
|
+
configuration.data = {
|
|
38
|
+
message: message,
|
|
39
|
+
strokeWidth: strokeWidth,
|
|
40
|
+
diameter: diameter
|
|
41
|
+
};
|
|
42
|
+
configuration.width = "13em";
|
|
43
|
+
configuration.disableClose = true;
|
|
44
|
+
let dialogRef = this.dialog.open(SpinnerDialogComponent, configuration);
|
|
45
|
+
dialogRef.afterClosed().subscribe(() => {
|
|
46
|
+
this._spinnerDialogIsOpen = false;
|
|
47
|
+
});
|
|
48
|
+
this.spinnerDialogRefs.push(dialogRef);
|
|
49
|
+
return dialogRef;
|
|
50
|
+
}
|
|
51
|
+
// Let there be an alternative, global way to stop all active spinner dialogs.
|
|
52
|
+
stopAllSpinnerDialogs() {
|
|
53
|
+
this.spinnerWorkItemCount = 0;
|
|
54
|
+
for (let dialogRef of this.spinnerDialogRefs) {
|
|
55
|
+
setTimeout(() => {
|
|
56
|
+
dialogRef.close();
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
this.spinnerDialogRefs = [];
|
|
60
|
+
}
|
|
61
|
+
addSpinnerWorkItem() {
|
|
62
|
+
this.spinnerWorkItemCount++;
|
|
63
|
+
if (!this.checkingSpinnerWorkItems) {
|
|
64
|
+
this.checkingSpinnerWorkItems = true;
|
|
65
|
+
setTimeout(() => {
|
|
66
|
+
this.checkSpinnerWorkItems();
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
removeSpinnerWorkItem() {
|
|
71
|
+
this.spinnerWorkItemCount--;
|
|
72
|
+
if (this.spinnerWorkItemCount < 0) {
|
|
73
|
+
this.spinnerWorkItemCount = 0;
|
|
74
|
+
}
|
|
75
|
+
if (!this.checkingSpinnerWorkItems) {
|
|
76
|
+
this.checkingSpinnerWorkItems = true;
|
|
77
|
+
setTimeout(() => {
|
|
78
|
+
this.checkSpinnerWorkItems();
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
checkSpinnerWorkItems() {
|
|
83
|
+
this.checkingSpinnerWorkItems = false;
|
|
84
|
+
if (this.spinnerWorkItemCount) {
|
|
85
|
+
if (!this._spinnerDialogIsOpen) {
|
|
86
|
+
this.startDefaultSpinnerDialog();
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
else if (this._spinnerDialogIsOpen) {
|
|
90
|
+
this.stopAllSpinnerDialogs();
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: DialogsService, deps: [{ token: i1.MatLegacyDialog }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
94
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: DialogsService }); }
|
|
95
|
+
}
|
|
96
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: DialogsService, decorators: [{
|
|
97
|
+
type: Injectable
|
|
98
|
+
}], ctorParameters: () => [{ type: i1.MatLegacyDialog }] });
|
|
99
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9ncy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcmVwb3J0aW5nLWZyYW1ld29yay9zcmMvc3Bpbm5lci9kaWFsb2dzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBYyxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBQXNDLGVBQWUsSUFBSSxTQUFTLEVBQUUscUJBQXFCLElBQUksZUFBZSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFN0osT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7OztBQUVwRSxNQUFNLENBQU4sSUFBWSxVQVNYO0FBVEQsV0FBWSxVQUFVO0lBQ2xCLDZCQUFlLENBQUE7SUFDZixpQ0FBbUIsQ0FBQTtJQUNuQiw2QkFBZSxDQUFBO0lBQ2YsaUNBQW1CLENBQUE7SUFDbkIsK0JBQWlCLENBQUE7SUFDakIsaUNBQW1CLENBQUE7SUFDbkIsMkJBQWEsQ0FBQTtJQUNiLDZDQUErQixDQUFBO0FBQ25DLENBQUMsRUFUVyxVQUFVLEtBQVYsVUFBVSxRQVNyQjtBQUdELE1BQU0sT0FBTyxjQUFjO0lBUXZCLElBQVcsbUJBQW1CO1FBQzFCLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDO0lBQ3JDLENBQUM7SUFFRCxZQUFvQixNQUFpQjtRQUFqQixXQUFNLEdBQU4sTUFBTSxDQUFXO1FBVjdCLHlCQUFvQixHQUFZLEtBQUssQ0FBQztRQUN0Qyx5QkFBb0IsR0FBVyxDQUFDLENBQUM7UUFDakMsNkJBQXdCLEdBQVksS0FBSyxDQUFDO1FBRTNDLHNCQUFpQixHQUEyQyxFQUFFLENBQUM7SUFPdEUsQ0FBQztJQUVNLHlCQUF5QjtRQUM1QixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVNLGtCQUFrQixD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IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IE1hdExlZ2FjeURpYWxvZ1JlZiBhcyBNYXREaWFsb2dSZWYsIE1hdExlZ2FjeURpYWxvZyBhcyBNYXREaWFsb2csIE1hdExlZ2FjeURpYWxvZ0NvbmZpZyBhcyBNYXREaWFsb2dDb25maWcgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvbGVnYWN5LWRpYWxvZ1wiO1xyXG5cclxuaW1wb3J0IHsgU3Bpbm5lckRpYWxvZ0NvbXBvbmVudCB9IGZyb20gXCIuL3NwaW5uZXItZGlhbG9nLmNvbXBvbmVudFwiO1xyXG5cclxuZXhwb3J0IGVudW0gRGlhbG9nVHlwZSB7XHJcbiAgICBFUlJPUiA9IFwiRXJyb3JcIixcclxuICAgIFdBUk5JTkcgPSBcIldhcm5pbmdcIixcclxuICAgIEFMRVJUID0gXCJBbGVydFwiLFxyXG4gICAgU1VDQ0VTUyA9IFwiU3VjY2VlZFwiLFxyXG4gICAgRkFJTEVEID0gXCJGYWlsZWRcIixcclxuICAgIENPTkZJUk0gPSBcIkNvbmZpcm1cIixcclxuICAgIElORk8gPSBcIkluZm9cIixcclxuICAgIFZBTElEQVRJT04gPSBcIlZhbGlkYXRpb24gRXJyb3JcIixcclxufVxyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgRGlhbG9nc1NlcnZpY2Uge1xyXG5cclxuICAgIHByaXZhdGUgX3NwaW5uZXJEaWFsb2dJc09wZW46IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHByaXZhdGUgc3Bpbm5lcldvcmtJdGVtQ291bnQ6IG51bWJlciA9IDA7XHJcbiAgICBwcml2YXRlIGNoZWNraW5nU3Bpbm5lcldvcmtJdGVtczogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIHB1YmxpYyBzcGlubmVyRGlhbG9nUmVmczogTWF0RGlhbG9nUmVmPFNwaW5uZXJEaWFsb2dDb21wb25lbnQ+W10gPSBbXTtcclxuXHJcbiAgICBwdWJsaWMgZ2V0IHNwaW5uZXJEaWFsb2dJc09wZW4oKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NwaW5uZXJEaWFsb2dJc09wZW47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZykge1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGFydERlZmF1bHRTcGlubmVyRGlhbG9nKCk6IE1hdERpYWxvZ1JlZjxTcGlubmVyRGlhbG9nQ29tcG9uZW50PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhcnRTcGlubmVyRGlhbG9nKFwiUGxlYXNlIHdhaXQuLi5cIiwgMywgMzApO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGFydFNwaW5uZXJEaWFsb2cobWVzc2FnZTogc3RyaW5nLCBzdHJva2VXaWR0aDogbnVtYmVyLCBkaWFtZXRlcjogbnVtYmVyKTogTWF0RGlhbG9nUmVmPFNwaW5uZXJEaWFsb2dDb21wb25lbnQ+IHtcclxuICAgICAgICBpZiAodGhpcy5fc3Bpbm5lckRpYWxvZ0lzT3Blbikge1xyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX3NwaW5uZXJEaWFsb2dJc09wZW4gPSB0cnVlO1xyXG5cclxuICAgICAgICBsZXQgY29uZmlndXJhdGlvbjogTWF0RGlhbG9nQ29uZmlnID0gbmV3IE1hdERpYWxvZ0NvbmZpZygpO1xyXG4gICAgICAgIGNvbmZpZ3VyYXRpb24uZGF0YSA9IHtcclxuICAgICAgICAgICAgbWVzc2FnZTogbWVzc2FnZSxcclxuICAgICAgICAgICAgc3Ryb2tlV2lkdGg6IHN0cm9rZVdpZHRoLFxyXG4gICAgICAgICAgICBkaWFtZXRlcjogZGlhbWV0ZXJcclxuICAgICAgICB9O1xyXG4gICAgICAgIGNvbmZpZ3VyYXRpb24ud2lkdGggPSBcIjEzZW1cIjtcclxuICAgICAgICBjb25maWd1cmF0aW9uLmRpc2FibGVDbG9zZSA9IHRydWU7XHJcblxyXG4gICAgICAgIGxldCBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxTcGlubmVyRGlhbG9nQ29tcG9uZW50PiA9IHRoaXMuZGlhbG9nLm9wZW4oU3Bpbm5lckRpYWxvZ0NvbXBvbmVudCwgY29uZmlndXJhdGlvbik7XHJcblxyXG4gICAgICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuX3NwaW5uZXJEaWFsb2dJc09wZW4gPSBmYWxzZTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5zcGlubmVyRGlhbG9nUmVmcy5wdXNoKGRpYWxvZ1JlZik7XHJcblxyXG4gICAgICAgIHJldHVybiBkaWFsb2dSZWY7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gTGV0IHRoZXJlIGJlIGFuIGFsdGVybmF0aXZlLCBnbG9iYWwgd2F5IHRvIHN0b3AgYWxsIGFjdGl2ZSBzcGlubmVyIGRpYWxvZ3MuXHJcbiAgICBwdWJsaWMgc3RvcEFsbFNwaW5uZXJEaWFsb2dzKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc3Bpbm5lcldvcmtJdGVtQ291bnQgPSAwO1xyXG4gICAgICAgIGZvciAobGV0IGRpYWxvZ1JlZiBvZiB0aGlzLnNwaW5uZXJEaWFsb2dSZWZzKSB7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgZGlhbG9nUmVmLmNsb3NlKCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnNwaW5uZXJEaWFsb2dSZWZzID0gW107XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFkZFNwaW5uZXJXb3JrSXRlbSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnNwaW5uZXJXb3JrSXRlbUNvdW50Kys7XHJcbiAgICAgICAgaWYgKCF0aGlzLmNoZWNraW5nU3Bpbm5lcldvcmtJdGVtcykge1xyXG4gICAgICAgICAgICB0aGlzLmNoZWNraW5nU3Bpbm5lcldvcmtJdGVtcyA9IHRydWU7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jaGVja1NwaW5uZXJXb3JrSXRlbXMoKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyByZW1vdmVTcGlubmVyV29ya0l0ZW0oKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zcGlubmVyV29ya0l0ZW1Db3VudC0tO1xyXG4gICAgICAgIGlmICh0aGlzLnNwaW5uZXJXb3JrSXRlbUNvdW50IDwgMCkge1xyXG4gICAgICAgICAgICB0aGlzLnNwaW5uZXJXb3JrSXRlbUNvdW50ID0gMDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCF0aGlzLmNoZWNraW5nU3Bpbm5lcldvcmtJdGVtcykge1xyXG4gICAgICAgICAgICB0aGlzLmNoZWNraW5nU3Bpbm5lcldvcmtJdGVtcyA9IHRydWU7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jaGVja1NwaW5uZXJXb3JrSXRlbXMoKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgY2hlY2tTcGlubmVyV29ya0l0ZW1zKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY2hlY2tpbmdTcGlubmVyV29ya0l0ZW1zID0gZmFsc2U7XHJcbiAgICAgICAgaWYgKHRoaXMuc3Bpbm5lcldvcmtJdGVtQ291bnQpIHtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLl9zcGlubmVyRGlhbG9nSXNPcGVuKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXJ0RGVmYXVsdFNwaW5uZXJEaWFsb2coKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5fc3Bpbm5lckRpYWxvZ0lzT3Blbikge1xyXG4gICAgICAgICAgICB0aGlzLnN0b3BBbGxTcGlubmVyRGlhbG9ncygpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbn1cclxuIl19
|