@huntsman-cancer-institute/input 16.0.1 → 17.0.1
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/date/date-base.d.ts +65 -65
- package/date/date-date-range.component.d.ts +32 -32
- package/date/date-date.component.d.ts +53 -53
- package/date/date-validator.d.ts +17 -17
- package/date/date.module.d.ts +16 -16
- package/dropdown/dropdown-index.d.ts +6 -6
- package/dropdown/dropdown-select-result.component.d.ts +23 -23
- package/dropdown/dropdown-select.component.d.ts +76 -76
- package/dropdown/dropdown.component.d.ts +40 -40
- package/dropdown/dropdown.module.d.ts +13 -13
- package/dropdown/dropdown.service.d.ts +51 -51
- package/dropdown/messages.d.ts +11 -11
- package/dropdown/select-item.d.ts +16 -16
- package/dropdown/template-dropdown.directive.d.ts +12 -12
- package/esm2022/date/date-base.mjs +114 -114
- package/esm2022/date/date-date-range.component.mjs +92 -92
- package/esm2022/date/date-date.component.mjs +189 -189
- package/esm2022/date/date-validator.mjs +40 -40
- package/esm2022/date/date.module.mjs +60 -60
- package/esm2022/dropdown/dropdown-index.mjs +5 -5
- package/esm2022/dropdown/dropdown-select-result.component.mjs +85 -85
- package/esm2022/dropdown/dropdown-select.component.mjs +360 -360
- package/esm2022/dropdown/dropdown.component.mjs +170 -170
- package/esm2022/dropdown/dropdown.module.mjs +50 -50
- package/esm2022/dropdown/dropdown.service.mjs +133 -133
- package/esm2022/dropdown/messages.mjs +9 -9
- package/esm2022/dropdown/select-item.mjs +11 -11
- package/esm2022/dropdown/template-dropdown.directive.mjs +26 -26
- package/esm2022/huntsman-cancer-institute-input.mjs +4 -4
- package/esm2022/index.mjs +19 -19
- package/esm2022/inline/inline.component.mjs +179 -179
- package/esm2022/inline/inline.module.mjs +28 -28
- package/esm2022/search/search.component.mjs +157 -157
- package/esm2022/search/search.module.mjs +32 -32
- package/esm2022/select/custom-combobox.component.mjs +531 -531
- package/esm2022/select/custom-multi-combobox.component.mjs +232 -232
- package/esm2022/select/md-multi-select.component.mjs +127 -127
- package/esm2022/select/md-select.component.mjs +107 -107
- package/esm2022/select/native-select.component.mjs +188 -188
- package/esm2022/select/select.module.mjs +83 -83
- package/fesm2022/huntsman-cancer-institute-input.mjs +2797 -2797
- package/fesm2022/huntsman-cancer-institute-input.mjs.map +1 -1
- package/index.d.ts +20 -20
- package/inline/inline.component.d.ts +66 -66
- package/inline/inline.module.d.ts +9 -9
- package/package.json +7 -7
- package/search/search.component.d.ts +42 -42
- package/search/search.module.d.ts +10 -10
- package/select/custom-combobox.component.d.ts +98 -98
- package/select/custom-multi-combobox.component.d.ts +50 -50
- package/select/md-multi-select.component.d.ts +32 -32
- package/select/md-select.component.d.ts +30 -30
- package/select/native-select.component.d.ts +37 -37
- package/select/select.module.d.ts +21 -21
|
@@ -1,65 +1,65 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output, ViewChild } from "@angular/core";
|
|
2
|
-
import { DateComponent } from "./date-date.component";
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "./date-date.component";
|
|
5
|
-
/**
|
|
6
|
-
* TODO: Confirm timezone behavior.
|
|
7
|
-
*
|
|
8
|
-
* @since 4.0.0
|
|
9
|
-
*/
|
|
10
|
-
export class DateRangeComponent {
|
|
11
|
-
constructor() {
|
|
12
|
-
// Binded data from the parent component.
|
|
13
|
-
this.dateFormat = "shortDate";
|
|
14
|
-
this.inputDataChange = new EventEmitter();
|
|
15
|
-
}
|
|
16
|
-
ngOnInit() {
|
|
17
|
-
this.setRange();
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
*
|
|
21
|
-
*/
|
|
22
|
-
ngAfterViewInit() {
|
|
23
|
-
// if there is no start date but there is an end date, make the start date go to the end date
|
|
24
|
-
if (!this.inputStartData && this.inputEndData) {
|
|
25
|
-
let dt = new Date(this.inputEndData);
|
|
26
|
-
this.sp.startDate = { year: dt.getFullYear(), month: dt.getMonth() + 1, day: dt.getDate() };
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
onClickSubmitStartDate(startData) {
|
|
30
|
-
this.setRange();
|
|
31
|
-
// if there is no start date but there is an end date, make the start date go to the end date
|
|
32
|
-
if (!startData && this.inputEndData) {
|
|
33
|
-
let dt = new Date(this.inputEndData);
|
|
34
|
-
this.sp.startDate = { year: dt.getFullYear(), month: dt.getMonth() + 1, day: dt.getDate() };
|
|
35
|
-
}
|
|
36
|
-
this.inputDataChange.emit([this.inputStartData, this.inputEndData]);
|
|
37
|
-
}
|
|
38
|
-
onClickSubmitEndDate(endData) {
|
|
39
|
-
this.setRange();
|
|
40
|
-
this.inputDataChange.emit([this.inputStartData, this.inputEndData]);
|
|
41
|
-
}
|
|
42
|
-
setRange() {
|
|
43
|
-
// set the minDate to 20 years in the past by default
|
|
44
|
-
let today = new Date();
|
|
45
|
-
if (!this.minStartDate) {
|
|
46
|
-
this.minStartDate = { year: today.getFullYear() - 20, month: today.getMonth() + 1, day: today.getDate() };
|
|
47
|
-
}
|
|
48
|
-
this.minEndDate = this.minStartDate;
|
|
49
|
-
// set the maxDate to today by default
|
|
50
|
-
this.maxStartDate = { year: today.getFullYear(), month: today.getMonth() + 1, day: today.getDate() };
|
|
51
|
-
this.maxEndDate = this.maxStartDate;
|
|
52
|
-
if (this.inputEndData) {
|
|
53
|
-
let endDate = new Date(this.inputEndData);
|
|
54
|
-
this.maxStartDate = { year: endDate.getFullYear(), month: endDate.getMonth() + 1, day: endDate.getDate() };
|
|
55
|
-
}
|
|
56
|
-
if (this.inputStartData) {
|
|
57
|
-
let startDate = new Date(this.inputStartData);
|
|
58
|
-
this.minEndDate = { year: startDate.getFullYear(), month: startDate.getMonth() + 1, day: startDate.getDate() };
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
62
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
1
|
+
import { Component, EventEmitter, Input, Output, ViewChild } from "@angular/core";
|
|
2
|
+
import { DateComponent } from "./date-date.component";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "./date-date.component";
|
|
5
|
+
/**
|
|
6
|
+
* TODO: Confirm timezone behavior.
|
|
7
|
+
*
|
|
8
|
+
* @since 4.0.0
|
|
9
|
+
*/
|
|
10
|
+
export class DateRangeComponent {
|
|
11
|
+
constructor() {
|
|
12
|
+
// Binded data from the parent component.
|
|
13
|
+
this.dateFormat = "shortDate";
|
|
14
|
+
this.inputDataChange = new EventEmitter();
|
|
15
|
+
}
|
|
16
|
+
ngOnInit() {
|
|
17
|
+
this.setRange();
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
*
|
|
21
|
+
*/
|
|
22
|
+
ngAfterViewInit() {
|
|
23
|
+
// if there is no start date but there is an end date, make the start date go to the end date
|
|
24
|
+
if (!this.inputStartData && this.inputEndData) {
|
|
25
|
+
let dt = new Date(this.inputEndData);
|
|
26
|
+
this.sp.startDate = { year: dt.getFullYear(), month: dt.getMonth() + 1, day: dt.getDate() };
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
onClickSubmitStartDate(startData) {
|
|
30
|
+
this.setRange();
|
|
31
|
+
// if there is no start date but there is an end date, make the start date go to the end date
|
|
32
|
+
if (!startData && this.inputEndData) {
|
|
33
|
+
let dt = new Date(this.inputEndData);
|
|
34
|
+
this.sp.startDate = { year: dt.getFullYear(), month: dt.getMonth() + 1, day: dt.getDate() };
|
|
35
|
+
}
|
|
36
|
+
this.inputDataChange.emit([this.inputStartData, this.inputEndData]);
|
|
37
|
+
}
|
|
38
|
+
onClickSubmitEndDate(endData) {
|
|
39
|
+
this.setRange();
|
|
40
|
+
this.inputDataChange.emit([this.inputStartData, this.inputEndData]);
|
|
41
|
+
}
|
|
42
|
+
setRange() {
|
|
43
|
+
// set the minDate to 20 years in the past by default
|
|
44
|
+
let today = new Date();
|
|
45
|
+
if (!this.minStartDate) {
|
|
46
|
+
this.minStartDate = { year: today.getFullYear() - 20, month: today.getMonth() + 1, day: today.getDate() };
|
|
47
|
+
}
|
|
48
|
+
this.minEndDate = this.minStartDate;
|
|
49
|
+
// set the maxDate to today by default
|
|
50
|
+
this.maxStartDate = { year: today.getFullYear(), month: today.getMonth() + 1, day: today.getDate() };
|
|
51
|
+
this.maxEndDate = this.maxStartDate;
|
|
52
|
+
if (this.inputEndData) {
|
|
53
|
+
let endDate = new Date(this.inputEndData);
|
|
54
|
+
this.maxStartDate = { year: endDate.getFullYear(), month: endDate.getMonth() + 1, day: endDate.getDate() };
|
|
55
|
+
}
|
|
56
|
+
if (this.inputStartData) {
|
|
57
|
+
let startDate = new Date(this.inputStartData);
|
|
58
|
+
this.minEndDate = { year: startDate.getFullYear(), month: startDate.getMonth() + 1, day: startDate.getDate() };
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: DateRangeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
62
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: DateRangeComponent, selector: "hci-date-range", inputs: { dateFormat: "dateFormat", inputStartData: "inputStartData", inputEndData: "inputEndData", startLabel: "startLabel", endLabel: "endLabel", minStartDate: "minStartDate" }, outputs: { inputDataChange: "inputDataChange" }, viewQueries: [{ propertyName: "sp", first: true, predicate: ["startdate"], descendants: true, static: true }, { propertyName: "ep", first: true, predicate: ["enddate"], descendants: true, static: true }], ngImport: i0, template: `
|
|
63
63
|
<div class="d-flex flex-wrap date-range">
|
|
64
64
|
<hci-date #startdate
|
|
65
65
|
class="date"
|
|
@@ -80,12 +80,12 @@ export class DateRangeComponent {
|
|
|
80
80
|
[maxDate]="maxEndDate">
|
|
81
81
|
</hci-date>
|
|
82
82
|
</div>
|
|
83
|
-
`, isInline: true, dependencies: [{ kind: "component", type: i1.DateComponent, selector: "hci-date", inputs: ["dateFormat", "minDate", "maxDate", "label", "inputData", "modifiedData"], outputs: ["inputDataChange"] }] }); }
|
|
84
|
-
}
|
|
85
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
86
|
-
type: Component,
|
|
87
|
-
args: [{
|
|
88
|
-
selector: "hci-date-range",
|
|
83
|
+
`, isInline: true, dependencies: [{ kind: "component", type: i1.DateComponent, selector: "hci-date", inputs: ["dateFormat", "minDate", "maxDate", "label", "inputData", "modifiedData"], outputs: ["inputDataChange"] }] }); }
|
|
84
|
+
}
|
|
85
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: DateRangeComponent, decorators: [{
|
|
86
|
+
type: Component,
|
|
87
|
+
args: [{
|
|
88
|
+
selector: "hci-date-range",
|
|
89
89
|
template: `
|
|
90
90
|
<div class="d-flex flex-wrap date-range">
|
|
91
91
|
<hci-date #startdate
|
|
@@ -107,27 +107,27 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
107
107
|
[maxDate]="maxEndDate">
|
|
108
108
|
</hci-date>
|
|
109
109
|
</div>
|
|
110
|
-
`
|
|
111
|
-
}]
|
|
112
|
-
}], propDecorators: { sp: [{
|
|
113
|
-
type: ViewChild,
|
|
114
|
-
args: ["startdate", { static: true }]
|
|
115
|
-
}], ep: [{
|
|
116
|
-
type: ViewChild,
|
|
117
|
-
args: ["enddate", { static: true }]
|
|
118
|
-
}], dateFormat: [{
|
|
119
|
-
type: Input
|
|
120
|
-
}], inputStartData: [{
|
|
121
|
-
type: Input
|
|
122
|
-
}], inputEndData: [{
|
|
123
|
-
type: Input
|
|
124
|
-
}], startLabel: [{
|
|
125
|
-
type: Input
|
|
126
|
-
}], endLabel: [{
|
|
127
|
-
type: Input
|
|
128
|
-
}], inputDataChange: [{
|
|
129
|
-
type: Output
|
|
130
|
-
}], minStartDate: [{
|
|
131
|
-
type: Input
|
|
132
|
-
}] } });
|
|
133
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
110
|
+
`
|
|
111
|
+
}]
|
|
112
|
+
}], propDecorators: { sp: [{
|
|
113
|
+
type: ViewChild,
|
|
114
|
+
args: ["startdate", { static: true }]
|
|
115
|
+
}], ep: [{
|
|
116
|
+
type: ViewChild,
|
|
117
|
+
args: ["enddate", { static: true }]
|
|
118
|
+
}], dateFormat: [{
|
|
119
|
+
type: Input
|
|
120
|
+
}], inputStartData: [{
|
|
121
|
+
type: Input
|
|
122
|
+
}], inputEndData: [{
|
|
123
|
+
type: Input
|
|
124
|
+
}], startLabel: [{
|
|
125
|
+
type: Input
|
|
126
|
+
}], endLabel: [{
|
|
127
|
+
type: Input
|
|
128
|
+
}], inputDataChange: [{
|
|
129
|
+
type: Output
|
|
130
|
+
}], minStartDate: [{
|
|
131
|
+
type: Input
|
|
132
|
+
}] } });
|
|
133
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1kYXRlLXJhbmdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2lucHV0L3NyYy9kYXRlL2RhdGUtZGF0ZS1yYW5nZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFpQixNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRS9GLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQzs7O0FBRXBEOzs7O0dBSUc7QUEwQkgsTUFBTSxPQUFPLGtCQUFrQjtJQXpCL0I7UUFpQ0cseUNBQXlDO1FBQ2hDLGVBQVUsR0FBVyxXQUFXLENBQUM7UUFLaEMsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBUyxDQUFDO0tBd0R4RDtJQWpERSxRQUFRO1FBQ04sSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2xCLENBQUM7SUFFRDs7TUFFRTtJQUNILGVBQWU7UUFDWiw2RkFBNkY7UUFDN0YsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQzlDLElBQUksRUFBRSxHQUFTLElBQUksSUFBSSxDQUFTLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUNuRCxJQUFJLENBQUMsRUFBRSxDQUFDLFNBQVMsR0FBRyxFQUFDLElBQUksRUFBRSxFQUFFLENBQUMsV0FBVyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBQyxDQUFDO1FBQzVGLENBQUM7SUFDSixDQUFDO0lBRUQsc0JBQXNCLENBQUMsU0FBUztRQUM5QixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDaEIsNkZBQTZGO1FBQzdGLElBQUksQ0FBQyxTQUFTLElB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RUFBQztnQkFJdEMsRUFBRTtzQkFERCxTQUFTO3VCQUFDLFNBQVMsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUM7Z0JBSTVCLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDSSxlQUFlO3NCQUF4QixNQUFNO2dCQUVFLFlBQVk7c0JBQXBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgQWZ0ZXJWaWV3SW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGR9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG5pbXBvcnQge0RhdGVDb21wb25lbnR9IGZyb20gXCIuL2RhdGUtZGF0ZS5jb21wb25lbnRcIjtcclxuXHJcbi8qKlxyXG4gKiBUT0RPOiBDb25maXJtIHRpbWV6b25lIGJlaGF2aW9yLlxyXG4gKlxyXG4gKiBAc2luY2UgNC4wLjBcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImhjaS1kYXRlLXJhbmdlXCIsXHJcbiAgdGVtcGxhdGU6IGAgIFxyXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LXdyYXAgZGF0ZS1yYW5nZVwiPlxyXG4gICAgICA8aGNpLWRhdGUgI3N0YXJ0ZGF0ZVxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJkYXRlXCJcclxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCJzdGFydExhYmVsXCJcclxuICAgICAgICAgICAgICAgIFsoaW5wdXREYXRhKV09XCJpbnB1dFN0YXJ0RGF0YVwiXHJcbiAgICAgICAgICAgICAgICAoaW5wdXREYXRhQ2hhbmdlKT1cIm9uQ2xpY2tTdWJtaXRTdGFydERhdGUoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICBbZGF0ZUZvcm1hdF09XCJkYXRlRm9ybWF0XCJcclxuICAgICAgICAgICAgICAgIFttaW5EYXRlXT1cIm1pblN0YXJ0RGF0ZVwiXHJcbiAgICAgICAgICAgICAgICBbbWF4RGF0ZV09XCJtYXhTdGFydERhdGVcIj5cclxuICAgICAgPC9oY2ktZGF0ZT5cclxuICAgICAgPGhjaS1kYXRlICNlbmRkYXRlXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImRhdGVcIlxyXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cImVuZExhYmVsXCJcclxuICAgICAgICAgICAgICAgIFsoaW5wdXREYXRhKV09XCJpbnB1dEVuZERhdGFcIlxyXG4gICAgICAgICAgICAgICAgKGlucHV0RGF0YUNoYW5nZSk9XCJvbkNsaWNrU3VibWl0RW5kRGF0ZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgIFtkYXRlRm9ybWF0XT1cImRhdGVGb3JtYXRcIlxyXG4gICAgICAgICAgICAgICAgW21pbkRhdGVdPVwibWluRW5kRGF0ZVwiXHJcbiAgICAgICAgICAgICAgICBbbWF4RGF0ZV09XCJtYXhFbmREYXRlXCI+XHJcbiAgICAgIDwvaGNpLWRhdGU+XHJcbiAgICA8L2Rpdj5cclxuICBgXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEYXRlUmFuZ2VDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcclxuXHJcbiAgICBAVmlld0NoaWxkKFwic3RhcnRkYXRlXCIsIHtzdGF0aWM6IHRydWV9KVxyXG4gICAgc3A6IERhdGVDb21wb25lbnQ7XHJcblxyXG4gICAgQFZpZXdDaGlsZChcImVuZGRhdGVcIiwge3N0YXRpYzogdHJ1ZX0pXHJcbiAgICBlcDogRGF0ZUNvbXBvbmVudDtcclxuXHJcbiAgIC8vIEJpbmRlZCBkYXRhIGZyb20gdGhlIHBhcmVudCBjb21wb25lbnQuXHJcbiAgIEBJbnB1dCgpIGRhdGVGb3JtYXQ6IHN0cmluZyA9IFwic2hvcnREYXRlXCI7XHJcbiAgIEBJbnB1dCgpIGlucHV0U3RhcnREYXRhOiBPYmplY3Q7XHJcbiAgIEBJbnB1dCgpIGlucHV0RW5kRGF0YTogT2JqZWN0O1xyXG4gICBASW5wdXQoKSBzdGFydExhYmVsOiBzdHJpbmc7XHJcbiAgIEBJbnB1dCgpIGVuZExhYmVsOiBzdHJpbmc7XHJcbiAgIEBPdXRwdXQoKSBpbnB1dERhdGFDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueVtdPigpO1xyXG5cclxuICAgQElucHV0KCkgbWluU3RhcnREYXRlOiBhbnk7XHJcbiAgIHB1YmxpYyBtYXhTdGFydERhdGU7XHJcbiAgIHB1YmxpYyBtaW5FbmREYXRlO1xyXG4gICBwdWJsaWMgbWF4RW5kRGF0ZTtcclxuXHJcbiAgIG5nT25Jbml0KCkge1xyXG4gICAgIHRoaXMuc2V0UmFuZ2UoKTtcclxuICAgfVxyXG5cclxuICAgLyoqXHJcbiAgICpcclxuICAgKi9cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICAgLy8gaWYgdGhlcmUgaXMgbm8gc3RhcnQgZGF0ZSBidXQgdGhlcmUgaXMgYW4gZW5kIGRhdGUsIG1ha2UgdGhlIHN0YXJ0IGRhdGUgZ28gdG8gdGhlIGVuZCBkYXRlXHJcbiAgICAgaWYgKCF0aGlzLmlucHV0U3RhcnREYXRhICYmIHRoaXMuaW5wdXRFbmREYXRhKSB7XHJcbiAgICAgICBsZXQgZHQ6IERhdGUgPSBuZXcgRGF0ZSg8c3RyaW5nPnRoaXMuaW5wdXRFbmREYXRhKTtcclxuICAgICAgIHRoaXMuc3Auc3RhcnREYXRlID0ge3llYXI6IGR0LmdldEZ1bGxZZWFyKCksIG1vbnRoOiBkdC5nZXRNb250aCgpICsgMSwgZGF5OiBkdC5nZXREYXRlKCl9O1xyXG4gICAgIH1cclxuICB9XHJcblxyXG4gIG9uQ2xpY2tTdWJtaXRTdGFydERhdGUoc3RhcnREYXRhKSB7XHJcbiAgICB0aGlzLnNldFJhbmdlKCk7XHJcbiAgICAvLyBpZiB0aGVyZSBpcyBubyBzdGFydCBkYXRlIGJ1dCB0aGVyZSBpcyBhbiBlbmQgZGF0ZSwgbWFrZSB0aGUgc3RhcnQgZGF0ZSBnbyB0byB0aGUgZW5kIGRhdGVcclxuICAgIGlmICghc3RhcnREYXRhICYmIHRoaXMuaW5wdXRFbmREYXRhKSB7XHJcbiAgICAgIGxldCBkdDogRGF0ZSA9IG5ldyBEYXRlKDxzdHJpbmc+dGhpcy5pbnB1dEVuZERhdGEpO1xyXG4gICAgICB0aGlzLnNwLnN0YXJ0RGF0ZSA9IHt5ZWFyOiBkdC5nZXRGdWxsWWVhcigpLCBtb250aDogZHQuZ2V0TW9udGgoKSArIDEsIGRheTogZHQuZ2V0RGF0ZSgpfTtcclxuICAgIH1cclxuICAgIHRoaXMuaW5wdXREYXRhQ2hhbmdlLmVtaXQoW3RoaXMuaW5wdXRTdGFydERhdGEsIHRoaXMuaW5wdXRFbmREYXRhXSk7XHJcbiAgfVxyXG5cclxuICBvbkNsaWNrU3VibWl0RW5kRGF0ZShlbmREYXRhKSB7XHJcbiAgICB0aGlzLnNldFJhbmdlKCk7XHJcbiAgICB0aGlzLmlucHV0RGF0YUNoYW5nZS5lbWl0KFt0aGlzLmlucHV0U3RhcnREYXRhLCB0aGlzLmlucHV0RW5kRGF0YV0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRSYW5nZSgpIHtcclxuICAgIC8vIHNldCB0aGUgbWluRGF0ZSB0byAyMCB5ZWFycyBpbiB0aGUgcGFzdCBieSBkZWZhdWx0XHJcbiAgICBsZXQgdG9kYXkgPSBuZXcgRGF0ZSgpO1xyXG4gICAgaWYgKCF0aGlzLm1pblN0YXJ0RGF0ZSkge1xyXG4gICAgICAgIHRoaXMubWluU3RhcnREYXRlID0ge3llYXI6IHRvZGF5LmdldEZ1bGxZZWFyKCkgLSAyMCwgbW9udGg6IHRvZGF5LmdldE1vbnRoKCkgKyAxLCBkYXk6IHRvZGF5LmdldERhdGUoKX07XHJcbiAgICB9XHJcbiAgICB0aGlzLm1pbkVuZERhdGUgPSB0aGlzLm1pblN0YXJ0RGF0ZTtcclxuICAgIC8vIHNldCB0aGUgbWF4RGF0ZSB0byB0b2RheSBieSBkZWZhdWx0XHJcbiAgICB0aGlzLm1heFN0YXJ0RGF0ZSA9IHt5ZWFyOiB0b2RheS5nZXRGdWxsWWVhcigpLCBtb250aDogdG9kYXkuZ2V0TW9udGgoKSArIDEsIGRheTogdG9kYXkuZ2V0RGF0ZSgpfTtcclxuICAgIHRoaXMubWF4RW5kRGF0ZSA9IHRoaXMubWF4U3RhcnREYXRlO1xyXG4gICAgaWYgKHRoaXMuaW5wdXRFbmREYXRhKSB7XHJcbiAgICAgICAgbGV0IGVuZERhdGUgPSBuZXcgRGF0ZSg8c3RyaW5nPnRoaXMuaW5wdXRFbmREYXRhKTtcclxuICAgICAgICB0aGlzLm1heFN0YXJ0RGF0ZSA9IHt5ZWFyOiBlbmREYXRlLmdldEZ1bGxZZWFyKCksIG1vbnRoOiBlbmREYXRlLmdldE1vbnRoKCkgKyAxLCBkYXk6IGVuZERhdGUuZ2V0RGF0ZSgpfTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmlucHV0U3RhcnREYXRhKSB7XHJcbiAgICAgICAgbGV0IHN0YXJ0RGF0ZSA9IG5ldyBEYXRlKDxzdHJpbmc+dGhpcy5pbnB1dFN0YXJ0RGF0YSk7XHJcbiAgICAgICAgdGhpcy5taW5FbmREYXRlID0ge3llYXI6IHN0YXJ0RGF0ZS5nZXRGdWxsWWVhcigpLCBtb250aDogc3RhcnREYXRlLmdldE1vbnRoKCkgKyAxLCBkYXk6IHN0YXJ0RGF0ZS5nZXREYXRlKCl9O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|