@huntsman-cancer-institute/input 16.0.0 → 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/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 +16 -8
- 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,166 +1,166 @@
|
|
|
1
|
-
import { Component, ElementRef, EventEmitter, Input, ViewChild, Output, ChangeDetectorRef } from "@angular/core";
|
|
2
|
-
import { DatePipe } from "@angular/common";
|
|
3
|
-
import { UntypedFormBuilder, UntypedFormControl } from "@angular/forms";
|
|
4
|
-
import { DateValidator } from "./date-validator";
|
|
5
|
-
import { DateBase } from "./date-base";
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "@angular/forms";
|
|
8
|
-
import * as i2 from "@angular/common";
|
|
9
|
-
import * as i3 from "@ng-bootstrap/ng-bootstrap";
|
|
10
|
-
/**
|
|
11
|
-
* TODO: Confirm timezone behavior.
|
|
12
|
-
*
|
|
13
|
-
* @since 4.0.0
|
|
14
|
-
*/
|
|
15
|
-
export class DateComponent extends DateBase {
|
|
16
|
-
constructor(elementRef, formBuilder, datePipe, changeDetectorRef) {
|
|
17
|
-
super(elementRef);
|
|
18
|
-
this.formBuilder = formBuilder;
|
|
19
|
-
this.datePipe = datePipe;
|
|
20
|
-
this.changeDetectorRef = changeDetectorRef;
|
|
21
|
-
// Binded data from the parent component.
|
|
22
|
-
this.dateFormat = "shortDate";
|
|
23
|
-
this.inputDataChange = new EventEmitter();
|
|
24
|
-
// only validate if user is typing
|
|
25
|
-
this.validate = false;
|
|
26
|
-
this.focused = false;
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
*
|
|
30
|
-
*/
|
|
31
|
-
ngOnInit() {
|
|
32
|
-
this.dateForm = this.formBuilder.group({
|
|
33
|
-
dateInput: new UntypedFormControl("", [DateValidator.dateFormatValidator, DateValidator.dateRangeValidator])
|
|
34
|
-
});
|
|
35
|
-
this.onChanges();
|
|
36
|
-
this.updateInternalDataFromModel();
|
|
37
|
-
// set the minDate to 20 years in the past by default
|
|
38
|
-
let today = new Date();
|
|
39
|
-
if (!this.minDate) {
|
|
40
|
-
this.minDate = { year: today.getFullYear() - 20, month: today.getMonth() + 1, day: today.getDate() };
|
|
41
|
-
}
|
|
42
|
-
// set max date to today by default
|
|
43
|
-
if (!this.maxDate) {
|
|
44
|
-
this.maxDate = { year: today.getFullYear(), month: today.getMonth() + 1, day: today.getDate() };
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
ngAfterViewInit() {
|
|
48
|
-
// Fill the input with the bound data set in the parent component.
|
|
49
|
-
if (this.inputData) {
|
|
50
|
-
let formattedDate = this.datePipe.transform(this.inputData, this.dateFormat);
|
|
51
|
-
this.dateForm.controls["dateInput"].setValue(formattedDate);
|
|
52
|
-
}
|
|
53
|
-
this.changeDetectorRef.detectChanges();
|
|
54
|
-
}
|
|
55
|
-
onChanges() { }
|
|
56
|
-
ngDoCheck() {
|
|
57
|
-
// this is the only way I found to have the focus on the startDate day when the user opens
|
|
58
|
-
// the popup. We only want to focus once otherwise user can not click anywhere else in the popup
|
|
59
|
-
if (this.dp && !this.focused) {
|
|
60
|
-
this.dp.focus();
|
|
61
|
-
this.focused = true;
|
|
62
|
-
}
|
|
63
|
-
// mark picker for focusing next time it is open
|
|
64
|
-
if (this.state === 0) {
|
|
65
|
-
this.focused = false;
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
updateInternalDataFromModel() {
|
|
69
|
-
if (this.inputData) {
|
|
70
|
-
this.modifiedData = new Date(this.inputData);
|
|
71
|
-
let md = new Date(this.inputData);
|
|
72
|
-
this.startDate = { year: md.getFullYear(), month: md.getMonth() + 1, day: md.getDate() };
|
|
73
|
-
}
|
|
74
|
-
else {
|
|
75
|
-
let today = new Date();
|
|
76
|
-
this.startDate = { year: today.getFullYear(), month: today.getMonth() + 1, day: today.getDate() };
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* Updates the bound data with the working data.
|
|
81
|
-
*/
|
|
82
|
-
updateModelFromInternalData() {
|
|
83
|
-
if (this.modifiedData) {
|
|
84
|
-
let dsDate = this.ngbDateToString(this.modifiedData);
|
|
85
|
-
if (dsDate) {
|
|
86
|
-
this.inputData = dsDate;
|
|
87
|
-
}
|
|
88
|
-
else {
|
|
89
|
-
this.inputData = this.modifiedData;
|
|
90
|
-
}
|
|
91
|
-
const formattedModifiedDate = this.datePipe.transform(this.inputData, this.dateFormat);
|
|
92
|
-
this.dateForm.controls["dateInput"].setValue(formattedModifiedDate, { emitEvent: false });
|
|
93
|
-
}
|
|
94
|
-
this.inputDataChange.emit(this.inputData);
|
|
95
|
-
this.updateInternalDataFromModel();
|
|
96
|
-
}
|
|
97
|
-
clear() {
|
|
98
|
-
this.modifiedData = null;
|
|
99
|
-
this.inputData = null;
|
|
100
|
-
this.dateForm.controls["dateInput"].setValue("");
|
|
101
|
-
this.validate = false;
|
|
102
|
-
let today = new Date();
|
|
103
|
-
this.startDate = { year: today.getFullYear(), month: today.getMonth() + 1, day: today.getDate() };
|
|
104
|
-
this.state = 0;
|
|
105
|
-
this.dateForm.controls["dateInput"].setValue("");
|
|
106
|
-
this.inputDataChange.emit(this.inputData);
|
|
107
|
-
}
|
|
108
|
-
onKeyUpInput(event) {
|
|
109
|
-
// Check for when the input is deleted before being saved
|
|
110
|
-
if (event.key === "Delete" || event.key === "Backspace") {
|
|
111
|
-
if (this.dateForm.controls["dataInput"].value.length === 0) {
|
|
112
|
-
this.clear();
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
// update range so that the date range validator can run accurately
|
|
116
|
-
DateValidator.minValue = this.minDate;
|
|
117
|
-
DateValidator.maxValue = this.maxDate;
|
|
118
|
-
// Get the updated dateForm value
|
|
119
|
-
let eventTarget = event.target;
|
|
120
|
-
let inputValue = eventTarget.value;
|
|
121
|
-
this.dateForm.controls["dateInput"].patchValue(inputValue);
|
|
122
|
-
// if we have a good date and is within the range update the picker
|
|
123
|
-
if (DateValidator.inRange(this.dateForm.controls["dateInput"])) {
|
|
124
|
-
this.validate = false;
|
|
125
|
-
this.inputData = this.datePipe.transform(this.dateForm.controls["dateInput"].value, this.dateFormat);
|
|
126
|
-
this.updateInternalDataFromModel();
|
|
127
|
-
this.dateForm.controls["dateInput"].setValue(this.inputData);
|
|
128
|
-
this.inputDataChange.emit(this.inputData);
|
|
129
|
-
}
|
|
130
|
-
else {
|
|
131
|
-
this.validate = true;
|
|
132
|
-
}
|
|
133
|
-
// // only validate if user is typing
|
|
134
|
-
// if (!this.validate) {
|
|
135
|
-
// this.validate = true;
|
|
136
|
-
// this.dateForm.controls["dateInput"].setValue("");
|
|
137
|
-
//
|
|
138
|
-
// // clear the date picker
|
|
139
|
-
// this.modifiedData = null;
|
|
140
|
-
// this.inputData = null;
|
|
141
|
-
// let today: Date = new Date();
|
|
142
|
-
// this.startDate = {year: today.getFullYear(), month: today.getMonth() + 1, day: today.getDate()};
|
|
143
|
-
// this.state = 0;
|
|
144
|
-
// this.inputDataChange.emit(this.inputData);
|
|
145
|
-
// }
|
|
146
|
-
}
|
|
147
|
-
/**
|
|
148
|
-
* NgbDateStruct stores day, month and year. Convert this to ISO8601.
|
|
149
|
-
*
|
|
150
|
-
* @param date
|
|
151
|
-
* @returns {any}
|
|
152
|
-
*/
|
|
153
|
-
ngbDateToString(date) {
|
|
154
|
-
if (date === undefined || date === null) {
|
|
155
|
-
return null;
|
|
156
|
-
}
|
|
157
|
-
else if (date.year === undefined || date.month === undefined || date.day === undefined) {
|
|
158
|
-
return null;
|
|
159
|
-
}
|
|
160
|
-
return date.year + "-" + ((date.month < 10) ? "0" : "") + date.month + "-" + ((date.day < 10) ? "0" : "") + date.day + "T12:00-06:00";
|
|
161
|
-
}
|
|
162
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
163
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
1
|
+
import { Component, ElementRef, EventEmitter, Input, ViewChild, Output, ChangeDetectorRef } from "@angular/core";
|
|
2
|
+
import { DatePipe } from "@angular/common";
|
|
3
|
+
import { UntypedFormBuilder, UntypedFormControl } from "@angular/forms";
|
|
4
|
+
import { DateValidator } from "./date-validator";
|
|
5
|
+
import { DateBase } from "./date-base";
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@angular/forms";
|
|
8
|
+
import * as i2 from "@angular/common";
|
|
9
|
+
import * as i3 from "@ng-bootstrap/ng-bootstrap";
|
|
10
|
+
/**
|
|
11
|
+
* TODO: Confirm timezone behavior.
|
|
12
|
+
*
|
|
13
|
+
* @since 4.0.0
|
|
14
|
+
*/
|
|
15
|
+
export class DateComponent extends DateBase {
|
|
16
|
+
constructor(elementRef, formBuilder, datePipe, changeDetectorRef) {
|
|
17
|
+
super(elementRef);
|
|
18
|
+
this.formBuilder = formBuilder;
|
|
19
|
+
this.datePipe = datePipe;
|
|
20
|
+
this.changeDetectorRef = changeDetectorRef;
|
|
21
|
+
// Binded data from the parent component.
|
|
22
|
+
this.dateFormat = "shortDate";
|
|
23
|
+
this.inputDataChange = new EventEmitter();
|
|
24
|
+
// only validate if user is typing
|
|
25
|
+
this.validate = false;
|
|
26
|
+
this.focused = false;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
*
|
|
30
|
+
*/
|
|
31
|
+
ngOnInit() {
|
|
32
|
+
this.dateForm = this.formBuilder.group({
|
|
33
|
+
dateInput: new UntypedFormControl("", [DateValidator.dateFormatValidator, DateValidator.dateRangeValidator])
|
|
34
|
+
});
|
|
35
|
+
this.onChanges();
|
|
36
|
+
this.updateInternalDataFromModel();
|
|
37
|
+
// set the minDate to 20 years in the past by default
|
|
38
|
+
let today = new Date();
|
|
39
|
+
if (!this.minDate) {
|
|
40
|
+
this.minDate = { year: today.getFullYear() - 20, month: today.getMonth() + 1, day: today.getDate() };
|
|
41
|
+
}
|
|
42
|
+
// set max date to today by default
|
|
43
|
+
if (!this.maxDate) {
|
|
44
|
+
this.maxDate = { year: today.getFullYear(), month: today.getMonth() + 1, day: today.getDate() };
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
ngAfterViewInit() {
|
|
48
|
+
// Fill the input with the bound data set in the parent component.
|
|
49
|
+
if (this.inputData) {
|
|
50
|
+
let formattedDate = this.datePipe.transform(this.inputData, this.dateFormat);
|
|
51
|
+
this.dateForm.controls["dateInput"].setValue(formattedDate);
|
|
52
|
+
}
|
|
53
|
+
this.changeDetectorRef.detectChanges();
|
|
54
|
+
}
|
|
55
|
+
onChanges() { }
|
|
56
|
+
ngDoCheck() {
|
|
57
|
+
// this is the only way I found to have the focus on the startDate day when the user opens
|
|
58
|
+
// the popup. We only want to focus once otherwise user can not click anywhere else in the popup
|
|
59
|
+
if (this.dp && !this.focused) {
|
|
60
|
+
this.dp.focus();
|
|
61
|
+
this.focused = true;
|
|
62
|
+
}
|
|
63
|
+
// mark picker for focusing next time it is open
|
|
64
|
+
if (this.state === 0) {
|
|
65
|
+
this.focused = false;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
updateInternalDataFromModel() {
|
|
69
|
+
if (this.inputData) {
|
|
70
|
+
this.modifiedData = new Date(this.inputData);
|
|
71
|
+
let md = new Date(this.inputData);
|
|
72
|
+
this.startDate = { year: md.getFullYear(), month: md.getMonth() + 1, day: md.getDate() };
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
let today = new Date();
|
|
76
|
+
this.startDate = { year: today.getFullYear(), month: today.getMonth() + 1, day: today.getDate() };
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Updates the bound data with the working data.
|
|
81
|
+
*/
|
|
82
|
+
updateModelFromInternalData() {
|
|
83
|
+
if (this.modifiedData) {
|
|
84
|
+
let dsDate = this.ngbDateToString(this.modifiedData);
|
|
85
|
+
if (dsDate) {
|
|
86
|
+
this.inputData = dsDate;
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
this.inputData = this.modifiedData;
|
|
90
|
+
}
|
|
91
|
+
const formattedModifiedDate = this.datePipe.transform(this.inputData, this.dateFormat);
|
|
92
|
+
this.dateForm.controls["dateInput"].setValue(formattedModifiedDate, { emitEvent: false });
|
|
93
|
+
}
|
|
94
|
+
this.inputDataChange.emit(this.inputData);
|
|
95
|
+
this.updateInternalDataFromModel();
|
|
96
|
+
}
|
|
97
|
+
clear() {
|
|
98
|
+
this.modifiedData = null;
|
|
99
|
+
this.inputData = null;
|
|
100
|
+
this.dateForm.controls["dateInput"].setValue("");
|
|
101
|
+
this.validate = false;
|
|
102
|
+
let today = new Date();
|
|
103
|
+
this.startDate = { year: today.getFullYear(), month: today.getMonth() + 1, day: today.getDate() };
|
|
104
|
+
this.state = 0;
|
|
105
|
+
this.dateForm.controls["dateInput"].setValue("");
|
|
106
|
+
this.inputDataChange.emit(this.inputData);
|
|
107
|
+
}
|
|
108
|
+
onKeyUpInput(event) {
|
|
109
|
+
// Check for when the input is deleted before being saved
|
|
110
|
+
if (event.key === "Delete" || event.key === "Backspace") {
|
|
111
|
+
if (this.dateForm.controls["dataInput"].value.length === 0) {
|
|
112
|
+
this.clear();
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
// update range so that the date range validator can run accurately
|
|
116
|
+
DateValidator.minValue = this.minDate;
|
|
117
|
+
DateValidator.maxValue = this.maxDate;
|
|
118
|
+
// Get the updated dateForm value
|
|
119
|
+
let eventTarget = event.target;
|
|
120
|
+
let inputValue = eventTarget.value;
|
|
121
|
+
this.dateForm.controls["dateInput"].patchValue(inputValue);
|
|
122
|
+
// if we have a good date and is within the range update the picker
|
|
123
|
+
if (DateValidator.inRange(this.dateForm.controls["dateInput"])) {
|
|
124
|
+
this.validate = false;
|
|
125
|
+
this.inputData = this.datePipe.transform(this.dateForm.controls["dateInput"].value, this.dateFormat);
|
|
126
|
+
this.updateInternalDataFromModel();
|
|
127
|
+
this.dateForm.controls["dateInput"].setValue(this.inputData);
|
|
128
|
+
this.inputDataChange.emit(this.inputData);
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
this.validate = true;
|
|
132
|
+
}
|
|
133
|
+
// // only validate if user is typing
|
|
134
|
+
// if (!this.validate) {
|
|
135
|
+
// this.validate = true;
|
|
136
|
+
// this.dateForm.controls["dateInput"].setValue("");
|
|
137
|
+
//
|
|
138
|
+
// // clear the date picker
|
|
139
|
+
// this.modifiedData = null;
|
|
140
|
+
// this.inputData = null;
|
|
141
|
+
// let today: Date = new Date();
|
|
142
|
+
// this.startDate = {year: today.getFullYear(), month: today.getMonth() + 1, day: today.getDate()};
|
|
143
|
+
// this.state = 0;
|
|
144
|
+
// this.inputDataChange.emit(this.inputData);
|
|
145
|
+
// }
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* NgbDateStruct stores day, month and year. Convert this to ISO8601.
|
|
149
|
+
*
|
|
150
|
+
* @param date
|
|
151
|
+
* @returns {any}
|
|
152
|
+
*/
|
|
153
|
+
ngbDateToString(date) {
|
|
154
|
+
if (date === undefined || date === null) {
|
|
155
|
+
return null;
|
|
156
|
+
}
|
|
157
|
+
else if (date.year === undefined || date.month === undefined || date.day === undefined) {
|
|
158
|
+
return null;
|
|
159
|
+
}
|
|
160
|
+
return date.year + "-" + ((date.month < 10) ? "0" : "") + date.month + "-" + ((date.day < 10) ? "0" : "") + date.day + "T12:00-06:00";
|
|
161
|
+
}
|
|
162
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: DateComponent, deps: [{ token: i0.ElementRef }, { token: i1.UntypedFormBuilder }, { token: i2.DatePipe }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
163
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: DateComponent, selector: "hci-date", inputs: { dateFormat: "dateFormat", minDate: "minDate", maxDate: "maxDate", label: "label", inputData: "inputData", modifiedData: "modifiedData" }, outputs: { inputDataChange: "inputDataChange" }, host: { listeners: { "document:click": "handleOutsideEvent($event)" } }, providers: [DatePipe, DateValidator], viewQueries: [{ propertyName: "dp", first: true, predicate: ["dp"], descendants: true }], usesInheritance: true, ngImport: i0, template: `
|
|
164
164
|
<div class="form-group">
|
|
165
165
|
<div class="input-group d-flex">
|
|
166
166
|
<form [formGroup]="dateForm" class="flex-grow-1">
|
|
@@ -221,10 +221,10 @@ export class DateComponent extends DateBase {
|
|
|
221
221
|
</div>
|
|
222
222
|
</div>
|
|
223
223
|
|
|
224
|
-
`, isInline: true, styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i3.NgbDatepicker, selector: "ngb-datepicker", inputs: ["contentTemplate", "dayTemplate", "dayTemplateData", "displayMonths", "firstDayOfWeek", "footerTemplate", "markDisabled", "maxDate", "minDate", "navigation", "outsideDays", "showWeekNumbers", "startDate", "weekdays"], outputs: ["navigate", "dateSelect"], exportAs: ["ngbDatepicker"] }] }); }
|
|
225
|
-
}
|
|
226
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
227
|
-
type: Component,
|
|
224
|
+
`, isInline: true, styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i3.NgbDatepicker, selector: "ngb-datepicker", inputs: ["contentTemplate", "dayTemplate", "dayTemplateData", "displayMonths", "firstDayOfWeek", "footerTemplate", "markDisabled", "maxDate", "minDate", "navigation", "outsideDays", "showWeekNumbers", "startDate", "weekdays"], outputs: ["navigate", "dateSelect"], exportAs: ["ngbDatepicker"] }] }); }
|
|
225
|
+
}
|
|
226
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: DateComponent, decorators: [{
|
|
227
|
+
type: Component,
|
|
228
228
|
args: [{ selector: "hci-date", providers: [DatePipe, DateValidator], template: `
|
|
229
229
|
<div class="form-group">
|
|
230
230
|
<div class="input-group d-flex">
|
|
@@ -286,25 +286,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
286
286
|
</div>
|
|
287
287
|
</div>
|
|
288
288
|
|
|
289
|
-
`, host: {
|
|
290
|
-
"(document:click)": "handleOutsideEvent($event)"
|
|
291
|
-
} }]
|
|
292
|
-
}], ctorParameters:
|
|
293
|
-
type: ViewChild,
|
|
294
|
-
args: ["dp", { static: false }]
|
|
295
|
-
}], dateFormat: [{
|
|
296
|
-
type: Input
|
|
297
|
-
}], minDate: [{
|
|
298
|
-
type: Input
|
|
299
|
-
}], maxDate: [{
|
|
300
|
-
type: Input
|
|
301
|
-
}], label: [{
|
|
302
|
-
type: Input
|
|
303
|
-
}], inputData: [{
|
|
304
|
-
type: Input
|
|
305
|
-
}], modifiedData: [{
|
|
306
|
-
type: Input
|
|
307
|
-
}], inputDataChange: [{
|
|
308
|
-
type: Output
|
|
309
|
-
}] } });
|
|
310
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1kYXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2lucHV0L3NyYy9kYXRlL2RhdGUtZGF0ZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBa0MsU0FBUyxFQUFFLE1BQU0sRUFDN0YsaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUMsa0JBQWtCLEVBQW9CLGtCQUFrQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFJeEYsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQy9DLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxhQUFhLENBQUM7Ozs7O0FBSXJDOzs7O0dBSUc7QUE0RUgsTUFBTSxPQUFPLGFBQWMsU0FBUSxRQUFRO0lBeUJ6QyxZQUFZLFVBQXNCLEVBQVUsV0FBK0IsRUFBVSxRQUFrQixFQUFVLGlCQUFvQztRQUNuSixLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFEd0IsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUFVLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFyQnJKLHlDQUF5QztRQUNoQyxlQUFVLEdBQVcsV0FBVyxDQUFDO1FBV2hDLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUlwRCxrQ0FBa0M7UUFDbEMsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUVsQixZQUFPLEdBQVksS0FBSyxDQUFDO0lBSWpDLENBQUM7SUFFRDs7T0FFRztJQUNILFFBQVE7UUFDTixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO1lBQ3BDLFNB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QUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsR0FBRyxjQUFjLENBQUM7SUFDeEksQ0FBQzsrR0EvS1UsYUFBYTttR0FBYixhQUFhLGlUQXpFYixDQUFDLFFBQVEsRUFBRSxhQUFhLENBQUMsMklBQzFCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNkRUOzs0RkFXVSxhQUFhO2tCQTNFekIsU0FBUzsrQkFDRSxVQUFVLGFBQ1QsQ0FBQyxRQUFRLEVBQUUsYUFBYSxDQUFDLFlBQzFCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNkRULFFBTUs7d0JBQ0osa0JBQWtCLEVBQUUsNEJBQTRCO3FCQUNqRDt5TEFLaUMsRUFBRTtzQkFBbkMsU0FBUzt1QkFBQyxJQUFJLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDO2dCQUd2QixVQUFVO3NCQUFsQixLQUFLO2dCQUdHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUVHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUcsWUFBWTtzQkFBcEIsS0FBSztnQkFFSSxlQUFlO3NCQUF4QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgRG9DaGVjaywgQWZ0ZXJWaWV3SW5pdCwgVmlld0NoaWxkLCBPdXRwdXQsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWZcclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0RhdGVQaXBlfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7VW50eXBlZEZvcm1CdWlsZGVyLCBVbnR5cGVkRm9ybUdyb3VwLCBVbnR5cGVkRm9ybUNvbnRyb2x9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5cclxuaW1wb3J0IHtOZ2JEYXRlU3RydWN0fSBmcm9tIFwiQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXBcIjtcclxuXHJcbmltcG9ydCB7RGF0ZVZhbGlkYXRvcn0gZnJvbSBcIi4vZGF0ZS12YWxpZGF0b3JcIjtcclxuaW1wb3J0IHtEYXRlQmFzZX0gZnJvbSBcIi4vZGF0ZS1iYXNlXCI7XHJcblxyXG5pbXBvcnQgKiBhcyBtb21lbnQgZnJvbSBcIm1vbWVudFwiO1xyXG5cclxuLyoqXHJcbiAqIFRPRE86IENvbmZpcm0gdGltZXpvbmUgYmVoYXZpb3IuXHJcbiAqXHJcbiAqIEBzaW5jZSA0LjAuMFxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiaGNpLWRhdGVcIixcclxuICBwcm92aWRlcnM6IFtEYXRlUGlwZSwgRGF0ZVZhbGlkYXRvcl0sXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwIGQtZmxleFwiPlxyXG4gICAgICAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZGF0ZUZvcm1cIiBjbGFzcz1cImZsZXgtZ3Jvdy0xXCI+XHJcbiAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGF0ZS13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cC1hcHBlbmRcIj5cclxuICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiAoa2V5dXApPVwib25LZXlVcElucHV0KCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQpXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJkYXRlSW5wdXRcIiBwbGFjZWhvbGRlcj1cInt7bGFiZWx9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJkYXRlXCIgYXJpYS1kZXNjcmliZWRieT1cImJhc2ljLWFkZG9uMlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpbnB1dC1ncm91cC10ZXh0XCIgaWQ9XCJiYXNpYy1hZGRvbjJcIiAoY2xpY2spPVwiY2xlYXIoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtdGltZXNcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLW91dGxpbmUtc2Vjb25kYXJ5XCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJzdGFydEVkaXQoKTtcIj5cclxuICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLWNhbGVuZGFyLWFsdFwiPjwvaT5cclxuICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ2YWxpZGF0ZSAmJiBkYXRlRm9ybS5nZXQoJ2RhdGVJbnB1dCcpLmhhc0Vycm9yKCdkYXRlRm9ybWF0VmFsaWRhdG9yJylcIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaW52YWxpZC1kYXRlXCI+RW50ZXIgZGF0ZSBhcyBNL0QvWVlZWSBvciBNTS9ERC9ZWVlZPC9kaXY+XHJcbiAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ2YWxpZGF0ZSAmJiBkYXRlRm9ybS5nZXQoJ2RhdGVJbnB1dCcpLmhhc0Vycm9yKCdkYXRlUmFuZ2VWYWxpZGF0b3InKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpbnZhbGlkLWRhdGVcIj5JbnZhbGlkIERhdGUgUmFuZ2U8L2Rpdj5cclxuICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgIDwvZm9ybT5cclxuICAgICAgICAgICA8IS0tXHJcbiAgICAgICAgICAgICBXZSB3aWxsIHJlcGxhY2UgdGhlIG5iZyBkYXRlIHBpY2tlciB3aXRoIG1hdGVyaWFsIGRhdGUgcGlja2VyXHJcbiAgICAgICAgICAgLS0+XHJcbjwhLS0gICAgICAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZGF0ZUZvcm1cIiBjbGFzcz1cImZsZXgtZ3Jvdy0xXCI+LS0+XHJcbjwhLS0gICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRhdGUtd3JhcHBlclwiPi0tPlxyXG48IS0tICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwLWFwcGVuZFwiPi0tPlxyXG48IS0tICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgW3N0eWxlLnBhZGRpbmctdG9wLmVtXT1cIjAuNVwiLS0+XHJcbjwhLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLnBhZGRpbmctYm90dG9tLmVtXT1cIjAuNVwiPi0tPlxyXG48IS0tICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgKGtleXByZXNzKT1cIm9uS2V5UHJlc3NJbnB1dCgkZXZlbnQpXCItLT5cclxuPCEtLSAgICAgICAgICAgICAgICAgICAgICAgICAgIFttaW5dPVwibWluRGF0ZVwiIFttYXhdPVwibWF4RGF0ZVwiIFttYXREYXRlcGlja2VyXT1cImRhdGVQaWNrZXJcIi0tPlxyXG48IS0tICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZGF0ZUlucHV0XCIgcGxhY2Vob2xkZXI9XCJ7e2xhYmVsfX1cIiBhcmlhLWxhYmVsPVwiZGF0ZVwiLS0+XHJcbjwhLS0gICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5PVwiYmFzaWMtYWRkb24yXCI+LS0+XHJcbjwhLS0gICAgICAgICAgICAgICAgICAgIDxtYXQtZGF0ZXBpY2tlci10b2dnbGUgbWF0U3VmZml4IFtmb3JdPVwiZGF0ZVBpY2tlclwiPjwvbWF0LWRhdGVwaWNrZXItdG9nZ2xlPi0tPlxyXG48IS0tICAgICAgICAgICAgICAgICAgICA8bWF0LWRhdGVwaWNrZXIgI2RhdGVQaWNrZXI+PC9tYXQtZGF0ZXBpY2tlcj4tLT5cclxuPCEtLSAgICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cInZhbGlkYXRlICYmIGRhdGVGb3JtLmdldCgnZGF0ZUlucHV0JykuaGFzRXJyb3IoJ2RhdGVGb3JtYXRWYWxpZGF0b3InKVwiLS0+XHJcbjwhLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpbnZhbGlkLWRhdGVcIj4tLT5cclxuPCEtLSAgICAgICAgICAgICAgICAgICAgICBFbnRlciBkYXRlIGFzIE0vRC9ZWVlZIG9yIE1NL0REL1lZWVktLT5cclxuPCEtLSAgICAgICAgICAgICAgICAgICAgPC9tYXQtZXJyb3I+LS0+XHJcbjwhLS0gICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJ2YWxpZGF0ZSAmJiBkYXRlRm9ybS5nZXQoJ2RhdGVJbnB1dCcpLmhhc0Vycm9yKCdkYXRlUmFuZ2VWYWxpZGF0b3InKVwiLS0+XHJcbjwhLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpbnZhbGlkLWRhdGVcIj4tLT5cclxuPCEtLSAgICAgICAgICAgICAgICAgICAgICBJbnZhbGlkIERhdGUgUmFuZ2UtLT5cclxuPCEtLSAgICAgICAgICAgICAgICAgICAgPC9tYXQtZXJyb3I+LS0+XHJcbjwhLS0gICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPi0tPlxyXG48IS0tICAgICAgICAgICAgICAgPC9kaXY+LS0+XHJcbjwhLS0gICAgICAgICAgICAgPC9kaXY+LS0+XHJcbjwhLS0gICAgICAgICAgPC9mb3JtPi0tPlxyXG4gICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJzdGF0ZSA9PT0gMVwiIGNsYXNzPVwiaW5saW5lLWVkaXRpbmdcIj5cclxuICAgICAgICA8bmdiLWRhdGVwaWNrZXIgW25nTW9kZWxdPVwibW9kaWZpZWREYXRhXCIgI2RwIFtzdGFydERhdGVdPVwic3RhcnREYXRlXCIgW21pbkRhdGVdPVwibWluRGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFttYXhEYXRlXT1cIm1heERhdGVcIiAoa2V5ZG93bik9XCJvbktleURvd24oJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ2hhbmdlKCRldmVudClcIiAoc2VsZWN0KT1cInNhdmUoKVwiPjwvbmdiLWRhdGVwaWNrZXI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImlubGluZS1ob3Zlci1zYXZlLW9wdGlvbnNcIj5cclxuPCEtLSAgICAgICAgICA8YSBjbGFzcz1cImJ0biBpaS1zby1idG4gc2F2ZVwiIChjbGljayk9XCJzYXZlKClcIj48aSBjbGFzcz1cImZhcyBmYS1jaGVja1wiPjwvaT48L2E+LS0+XHJcbjwhLS0gICAgICAgICAgPGEgY2xhc3M9XCJidG4gaWktc28tYnRuIGNhbmNlbFwiIChjbGljayk9XCJjYW5jZWwoKVwiPjxpIGNsYXNzPVwiZmFzIGZhLXRpbWVzXCI+PC9pPjwvYT4tLT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gIGAsXHJcbiAgc3R5bGVzOiBbYFxyXG4gICAgLyo6Om5nLWRlZXAgbWF0LWZvcm0tZmllbGQgLm1hdC1mb3JtLWZpZWxkLWZsZXggPiAubWF0LWZvcm0tZmllbGQtaW5maXh7Ki9cclxuICAgIC8qICBwYWRkaW5nOiAwLjI1ZW0gMCAwLjVlbSAwOyovXHJcbiAgICAvKn0qL1xyXG4gIGBdLFxyXG4gIGhvc3Q6IHtcclxuICAgIFwiKGRvY3VtZW50OmNsaWNrKVwiOiBcImhhbmRsZU91dHNpZGVFdmVudCgkZXZlbnQpXCJcclxuICB9XHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgRGF0ZUNvbXBvbmVudCBleHRlbmRzIERhdGVCYXNlIGltcGxlbWVudHMgT25Jbml0LCBEb0NoZWNrLCBBZnRlclZpZXdJbml0IHtcclxuXHJcbiAgQFZpZXdDaGlsZChcImRwXCIsIHtzdGF0aWM6IGZhbHNlfSkgZHA6IGFueTtcclxuXHJcbiAgLy8gQmluZGVkIGRhdGEgZnJvbSB0aGUgcGFyZW50IGNvbXBvbmVudC5cclxuICBASW5wdXQoKSBkYXRlRm9ybWF0OiBzdHJpbmcgPSBcInNob3J0RGF0ZVwiO1xyXG4gIC8vIEBJbnB1dCgpIGRhdGVGb3JtYXQ6IHN0cmluZyA9IFwiTU0vZC95eXl5XCI7IC8vRm9yIHRlc3Rpbmcgb25seVxyXG4gIHN0YXJ0RGF0ZTtcclxuICBASW5wdXQoKSBtaW5EYXRlO1xyXG4gIEBJbnB1dCgpIG1heERhdGU7XHJcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZztcclxuICBsYWJlbERhdGU6IHN0cmluZztcclxuICBASW5wdXQoKSBpbnB1dERhdGE6IE9iamVjdDtcclxuICAvLyBUaGUgZGF0YSB1c2VkIGluIG91ciBpbnB1dC4gIFdlIHN0b3JlZCB0aGlzIGFzIHdlbGwgYXMgdGhlIGlucHV0RGF0YSBzbyB3ZSBjYW4gY2FuY2VsIHRoZSBlZGl0IGFuZCBwcmVzZXJ2ZSB0aGUgb3JpZ2luYWwgZGF0YS5cclxuICBASW5wdXQoKSBtb2RpZmllZERhdGE6IE9iamVjdDtcclxuXHJcbiAgQE91dHB1dCgpIGlucHV0RGF0YUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBkYXRlRm9ybTogVW50eXBlZEZvcm1Hcm91cDtcclxuICBkYXRlSW5wdXQ6IFVudHlwZWRGb3JtQ29udHJvbDtcclxuICAvLyBvbmx5IHZhbGlkYXRlIGlmIHVzZXIgaXMgdHlwaW5nXHJcbiAgdmFsaWRhdGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcHJpdmF0ZSBmb2N1c2VkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsIHByaXZhdGUgZm9ybUJ1aWxkZXI6IFVudHlwZWRGb3JtQnVpbGRlciwgcHJpdmF0ZSBkYXRlUGlwZTogRGF0ZVBpcGUsIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7XHJcbiAgICBzdXBlcihlbGVtZW50UmVmKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICovXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmRhdGVGb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XHJcbiAgICAgICBkYXRlSW5wdXQgOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKFwiXCIsIFtEYXRlVmFsaWRhdG9yLmRhdGVGb3JtYXRWYWxpZGF0b3IsIERhdGVWYWxpZGF0b3IuZGF0ZVJhbmdlVmFsaWRhdG9yXSlcclxuICAgIH0pO1xyXG4gICAgdGhpcy5vbkNoYW5nZXMoKTtcclxuXHJcbiAgICB0aGlzLnVwZGF0ZUludGVybmFsRGF0YUZyb21Nb2RlbCgpO1xyXG4gICAgLy8gc2V0IHRoZSBtaW5EYXRlIHRvIDIwIHllYXJzIGluIHRoZSBwYXN0IGJ5IGRlZmF1bHRcclxuICAgIGxldCB0b2RheSA9IG5ldyBEYXRlKCk7XHJcbiAgICBpZiAoIXRoaXMubWluRGF0ZSkge1xyXG4gICAgICAgIHRoaXMubWluRGF0ZSA9IHt5ZWFyOiB0b2RheS5nZXRGdWxsWWVhcigpIC0gMjAsIG1vbnRoOiB0b2RheS5nZXRNb250aCgpICsgMSwgZGF5OiB0b2RheS5nZXREYXRlKCl9O1xyXG4gICAgfVxyXG4gICAgLy8gc2V0IG1heCBkYXRlIHRvIHRvZGF5IGJ5IGRlZmF1bHRcclxuICAgIGlmICghdGhpcy5tYXhEYXRlKSB7XHJcbiAgICAgICAgdGhpcy5tYXhEYXRlID0ge3llYXI6IHRvZGF5LmdldEZ1bGxZZWFyKCksIG1vbnRoOiB0b2RheS5nZXRNb250aCgpICsgMSwgZGF5OiB0b2RheS5nZXREYXRlKCl9O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgLy8gRmlsbCB0aGUgaW5wdXQgd2l0aCB0aGUgYm91bmQgZGF0YSBzZXQgaW4gdGhlIHBhcmVudCBjb21wb25lbnQuXHJcbiAgICBpZiAodGhpcy5pbnB1dERhdGEpIHtcclxuICAgICAgbGV0IGZvcm1hdHRlZERhdGUgPSB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybSg8c3RyaW5nPnRoaXMuaW5wdXREYXRhLCB0aGlzLmRhdGVGb3JtYXQpO1xyXG4gICAgICB0aGlzLmRhdGVGb3JtLmNvbnRyb2xzW1wiZGF0ZUlucHV0XCJdLnNldFZhbHVlKGZvcm1hdHRlZERhdGUpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBvbkNoYW5nZXMoKTogdm9pZCB7fVxyXG5cclxuXHJcbiAgbmdEb0NoZWNrKCkge1xyXG4gICAgLy8gdGhpcyBpcyB0aGUgb25seSB3YXkgSSBmb3VuZCB0byBoYXZlIHRoZSBmb2N1cyBvbiB0aGUgc3RhcnREYXRlIGRheSB3aGVuIHRoZSB1c2VyIG9wZW5zXHJcbiAgICAvLyB0aGUgcG9wdXAuIFdlIG9ubHkgd2FudCB0byBmb2N1cyBvbmNlIG90aGVyd2lzZSB1c2VyIGNhbiBub3QgY2xpY2sgYW55d2hlcmUgZWxzZSBpbiB0aGUgcG9wdXBcclxuICAgIGlmICh0aGlzLmRwICYmICF0aGlzLmZvY3VzZWQpIHtcclxuICAgICAgICB0aGlzLmRwLmZvY3VzKCk7XHJcbiAgICAgICAgdGhpcy5mb2N1c2VkID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIC8vIG1hcmsgcGlja2VyIGZvciBmb2N1c2luZyBuZXh0IHRpbWUgaXQgaXMgb3BlblxyXG4gICAgaWYgKHRoaXMuc3RhdGUgPT09IDApIHtcclxuICAgICAgICB0aGlzLmZvY3VzZWQgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyB1cGRhdGVJbnRlcm5hbERhdGFGcm9tTW9kZWwoKSB7XHJcbiAgICAgaWYgKHRoaXMuaW5wdXREYXRhKSB7XHJcbiAgICAgICAgIHRoaXMubW9kaWZpZWREYXRhID0gbmV3IERhdGUoPHN0cmluZz50aGlzLmlucHV0RGF0YSk7XHJcbiAgICAgICAgIGxldCBtZDogRGF0ZSA9IG5ldyBEYXRlKDxzdHJpbmc+dGhpcy5pbnB1dERhdGEpO1xyXG4gICAgICAgICB0aGlzLnN0YXJ0RGF0ZSA9IHt5ZWFyOiBtZC5nZXRGdWxsWWVhcigpLCBtb250aDogbWQuZ2V0TW9udGgoKSArIDEsIGRheTogbWQuZ2V0RGF0ZSgpfTtcclxuICAgICB9IGVsc2Uge1xyXG4gICAgICAgICBsZXQgdG9kYXk6IERhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgICAgICB0aGlzLnN0YXJ0RGF0ZSA9IHt5ZWFyOiB0b2RheS5nZXRGdWxsWWVhcigpLCBtb250aDogdG9kYXkuZ2V0TW9udGgoKSArIDEsIGRheTogdG9kYXkuZ2V0RGF0ZSgpfTtcclxuICAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGVzIHRoZSBib3VuZCBkYXRhIHdpdGggdGhlIHdvcmtpbmcgZGF0YS5cclxuICAgKi9cclxuICBwdWJsaWMgdXBkYXRlTW9kZWxGcm9tSW50ZXJuYWxEYXRhKCkge1xyXG4gICAgIGlmICh0aGlzLm1vZGlmaWVkRGF0YSkge1xyXG4gICAgICAgICBsZXQgZHNEYXRlID0gdGhpcy5uZ2JEYXRlVG9TdHJpbmcoPE5nYkRhdGVTdHJ1Y3Q+dGhpcy5tb2RpZmllZERhdGEpO1xyXG4gICAgICAgICBpZiAoZHNEYXRlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5wdXREYXRhID0gZHNEYXRlO1xyXG4gICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmlucHV0RGF0YSA9IHRoaXMubW9kaWZpZWREYXRhO1xyXG4gICAgICAgICB9XHJcblxyXG4gICAgICAgICBjb25zdCBmb3JtYXR0ZWRNb2RpZmllZERhdGUgPSB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybSg8c3RyaW5nPnRoaXMuaW5wdXREYXRhLCB0aGlzLmRhdGVGb3JtYXQpO1xyXG4gICAgICAgICB0aGlzLmRhdGVGb3JtLmNvbnRyb2xzW1wiZGF0ZUlucHV0XCJdLnNldFZhbHVlKGZvcm1hdHRlZE1vZGlmaWVkRGF0ZSwgeyBlbWl0RXZlbnQ6IGZhbHNlfSk7XHJcblxyXG4gICAgIH1cclxuICAgICB0aGlzLmlucHV0RGF0YUNoYW5nZS5lbWl0KHRoaXMuaW5wdXREYXRhKTtcclxuICAgICB0aGlzLnVwZGF0ZUludGVybmFsRGF0YUZyb21Nb2RlbCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNsZWFyKCkge1xyXG4gICAgICB0aGlzLm1vZGlmaWVkRGF0YSA9IG51bGw7XHJcbiAgICAgIHRoaXMuaW5wdXREYXRhID0gbnVsbDtcclxuICAgICAgdGhpcy5kYXRlRm9ybS5jb250cm9sc1tcImRhdGVJbnB1dFwiXS5zZXRWYWx1ZShcIlwiKTtcclxuICAgICAgdGhpcy52YWxpZGF0ZSA9IGZhbHNlO1xyXG4gICAgICBsZXQgdG9kYXk6IERhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgICB0aGlzLnN0YXJ0RGF0ZSA9IHt5ZWFyOiB0b2RheS5nZXRGdWxsWWVhcigpLCBtb250aDogdG9kYXkuZ2V0TW9udGgoKSArIDEsIGRheTogdG9kYXkuZ2V0RGF0ZSgpfTtcclxuICAgICAgdGhpcy5zdGF0ZSA9IDA7XHJcbiAgICAgIHRoaXMuZGF0ZUZvcm0uY29udHJvbHNbXCJkYXRlSW5wdXRcIl0uc2V0VmFsdWUoXCJcIik7XHJcbiAgICAgIHRoaXMuaW5wdXREYXRhQ2hhbmdlLmVtaXQodGhpcy5pbnB1dERhdGEpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uS2V5VXBJbnB1dChldmVudDogS2V5Ym9hcmRFdmVudCkge1xyXG4gICAgLy8gQ2hlY2sgZm9yIHdoZW4gdGhlIGlucHV0IGlzIGRlbGV0ZWQgYmVmb3JlIGJlaW5nIHNhdmVkXHJcbiAgICBpZihldmVudC5rZXkgPT09IFwiRGVsZXRlXCIgfHwgZXZlbnQua2V5ID09PSBcIkJhY2tzcGFjZVwiKSB7XHJcbiAgICAgIGlmKHRoaXMuZGF0ZUZvcm0uY29udHJvbHNbXCJkYXRhSW5wdXRcIl0udmFsdWUubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgdGhpcy5jbGVhcigpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgIC8vIHVwZGF0ZSByYW5nZSBzbyB0aGF0IHRoZSBkYXRlIHJhbmdlIHZhbGlkYXRvciBjYW4gcnVuIGFjY3VyYXRlbHlcclxuICAgICBEYXRlVmFsaWRhdG9yLm1pblZhbHVlID0gdGhpcy5taW5EYXRlO1xyXG4gICAgIERhdGVWYWxpZGF0b3IubWF4VmFsdWUgPSB0aGlzLm1heERhdGU7XHJcblxyXG4gICAgLy8gR2V0IHRoZSB1cGRhdGVkIGRhdGVGb3JtIHZhbHVlXHJcbiAgICAgbGV0IGV2ZW50VGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcbiAgICAgbGV0IGlucHV0VmFsdWUgPSBldmVudFRhcmdldC52YWx1ZTtcclxuICAgICB0aGlzLmRhdGVGb3JtLmNvbnRyb2xzW1wiZGF0ZUlucHV0XCJdLnBhdGNoVmFsdWUoaW5wdXRWYWx1ZSk7XHJcblxyXG4gICAgIC8vIGlmIHdlIGhhdmUgYSBnb29kIGRhdGUgYW5kIGlzIHdpdGhpbiB0aGUgcmFuZ2UgdXBkYXRlIHRoZSBwaWNrZXJcclxuICAgICBpZiAoRGF0ZVZhbGlkYXRvci5pblJhbmdlKHRoaXMuZGF0ZUZvcm0uY29udHJvbHNbXCJkYXRlSW5wdXRcIl0pKSB7XHJcbiAgICAgICAgIHRoaXMudmFsaWRhdGUgPSBmYWxzZTtcclxuICAgICAgICAgdGhpcy5pbnB1dERhdGEgPSB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybSh0aGlzLmRhdGVGb3JtLmNvbnRyb2xzW1wiZGF0ZUlucHV0XCJdLnZhbHVlLCB0aGlzLmRhdGVGb3JtYXQpO1xyXG4gICAgICAgICB0aGlzLnVwZGF0ZUludGVybmFsRGF0YUZyb21Nb2RlbCgpO1xyXG4gICAgICAgICB0aGlzLmRhdGVGb3JtLmNvbnRyb2xzW1wiZGF0ZUlucHV0XCJdLnNldFZhbHVlKHRoaXMuaW5wdXREYXRhKTtcclxuICAgICAgICAgdGhpcy5pbnB1dERhdGFDaGFuZ2UuZW1pdCh0aGlzLmlucHV0RGF0YSk7XHJcbiAgICAgfSBlbHNlIHtcclxuICAgICAgIHRoaXMudmFsaWRhdGUgPSB0cnVlO1xyXG4gICAgIH1cclxuXHJcbiAgICAgIC8vIC8vIG9ubHkgdmFsaWRhdGUgaWYgdXNlciBpcyB0eXBpbmdcclxuICAgICAgLy8gaWYgKCF0aGlzLnZhbGlkYXRlKSB7XHJcbiAgICAgIC8vICAgdGhpcy52YWxpZGF0ZSA9IHRydWU7XHJcbiAgICAgIC8vICAgdGhpcy5kYXRlRm9ybS5jb250cm9sc1tcImRhdGVJbnB1dFwiXS5zZXRWYWx1ZShcIlwiKTtcclxuICAgICAgLy9cclxuICAgICAgLy8gICAvLyBjbGVhciB0aGUgZGF0ZSBwaWNrZXJcclxuICAgICAgLy8gICB0aGlzLm1vZGlmaWVkRGF0YSA9IG51bGw7XHJcbiAgICAgIC8vICAgdGhpcy5pbnB1dERhdGEgPSBudWxsO1xyXG4gICAgICAvLyAgIGxldCB0b2RheTogRGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgICAgIC8vICAgdGhpcy5zdGFydERhdGUgPSB7eWVhcjogdG9kYXkuZ2V0RnVsbFllYXIoKSwgbW9udGg6IHRvZGF5LmdldE1vbnRoKCkgKyAxLCBkYXk6IHRvZGF5LmdldERhdGUoKX07XHJcbiAgICAgIC8vICAgdGhpcy5zdGF0ZSA9IDA7XHJcbiAgICAgIC8vICAgdGhpcy5pbnB1dERhdGFDaGFuZ2UuZW1pdCh0aGlzLmlucHV0RGF0YSk7XHJcbiAgICAgIC8vIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE5nYkRhdGVTdHJ1Y3Qgc3RvcmVzIGRheSwgbW9udGggYW5kIHllYXIuICBDb252ZXJ0IHRoaXMgdG8gSVNPODYwMS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBkYXRlXHJcbiAgICogQHJldHVybnMge2FueX1cclxuICAgKi9cclxuICBwcml2YXRlIG5nYkRhdGVUb1N0cmluZyhkYXRlOiBOZ2JEYXRlU3RydWN0KTogc3RyaW5nIHtcclxuICAgIGlmIChkYXRlID09PSB1bmRlZmluZWQgfHwgZGF0ZSA9PT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH0gZWxzZSBpZiAoZGF0ZS55ZWFyID09PSB1bmRlZmluZWQgfHwgZGF0ZS5tb250aCA9PT0gdW5kZWZpbmVkIHx8IGRhdGUuZGF5ID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGRhdGUueWVhciArIFwiLVwiICsgKChkYXRlLm1vbnRoIDwgMTApID8gXCIwXCIgOiBcIlwiKSArIGRhdGUubW9udGggKyBcIi1cIiArICgoZGF0ZS5kYXkgPCAxMCkgPyBcIjBcIiA6IFwiXCIpICsgZGF0ZS5kYXkgKyBcIlQxMjowMC0wNjowMFwiO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
|
|
289
|
+
`, host: {
|
|
290
|
+
"(document:click)": "handleOutsideEvent($event)"
|
|
291
|
+
} }]
|
|
292
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.UntypedFormBuilder }, { type: i2.DatePipe }, { type: i0.ChangeDetectorRef }], propDecorators: { dp: [{
|
|
293
|
+
type: ViewChild,
|
|
294
|
+
args: ["dp", { static: false }]
|
|
295
|
+
}], dateFormat: [{
|
|
296
|
+
type: Input
|
|
297
|
+
}], minDate: [{
|
|
298
|
+
type: Input
|
|
299
|
+
}], maxDate: [{
|
|
300
|
+
type: Input
|
|
301
|
+
}], label: [{
|
|
302
|
+
type: Input
|
|
303
|
+
}], inputData: [{
|
|
304
|
+
type: Input
|
|
305
|
+
}], modifiedData: [{
|
|
306
|
+
type: Input
|
|
307
|
+
}], inputDataChange: [{
|
|
308
|
+
type: Output
|
|
309
|
+
}] } });
|
|
310
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1kYXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2lucHV0L3NyYy9kYXRlL2RhdGUtZGF0ZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBa0MsU0FBUyxFQUFFLE1BQU0sRUFDN0YsaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUMsa0JBQWtCLEVBQW9CLGtCQUFrQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFJeEYsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQy9DLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxhQUFhLENBQUM7Ozs7O0FBSXJDOzs7O0dBSUc7QUE0RUgsTUFBTSxPQUFPLGFBQWMsU0FBUSxRQUFRO0lBeUJ6QyxZQUFZLFVBQXNCLEVBQVUsV0FBK0IsRUFBVSxRQUFrQixFQUFVLGlCQUFvQztRQUNuSixLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFEd0IsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUFVLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFyQnJKLHlDQUF5QztRQUNoQyxlQUFVLEdBQVcsV0FBVyxDQUFDO1FBV2hDLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUlwRCxrQ0FBa0M7UUFDbEMsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUVsQixZQUFPLEdBQVksS0FBSyxDQUFDO0lBSWpDLENBQUM7SUFFRDs7T0FFRztJQUNILFFBQVE7UUFDTixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO1lBQ3BDLFNB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LEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsR0FBRyxjQUFjLENBQUM7SUFDeEksQ0FBQzs4R0EvS1UsYUFBYTtrR0FBYixhQUFhLGlUQXpFYixDQUFDLFFBQVEsRUFBRSxhQUFhLENBQUMsMklBQzFCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNkRUOzsyRkFXVSxhQUFhO2tCQTNFekIsU0FBUzsrQkFDRSxVQUFVLGFBQ1QsQ0FBQyxRQUFRLEVBQUUsYUFBYSxDQUFDLFlBQzFCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNkRULFFBTUs7d0JBQ0osa0JBQWtCLEVBQUUsNEJBQTRCO3FCQUNqRDt1S0FLaUMsRUFBRTtzQkFBbkMsU0FBUzt1QkFBQyxJQUFJLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDO2dCQUd2QixVQUFVO3NCQUFsQixLQUFLO2dCQUdHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUVHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUcsWUFBWTtzQkFBcEIsS0FBSztnQkFFSSxlQUFlO3NCQUF4QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgRG9DaGVjaywgQWZ0ZXJWaWV3SW5pdCwgVmlld0NoaWxkLCBPdXRwdXQsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWZcclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0RhdGVQaXBlfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7VW50eXBlZEZvcm1CdWlsZGVyLCBVbnR5cGVkRm9ybUdyb3VwLCBVbnR5cGVkRm9ybUNvbnRyb2x9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5cclxuaW1wb3J0IHtOZ2JEYXRlU3RydWN0fSBmcm9tIFwiQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXBcIjtcclxuXHJcbmltcG9ydCB7RGF0ZVZhbGlkYXRvcn0gZnJvbSBcIi4vZGF0ZS12YWxpZGF0b3JcIjtcclxuaW1wb3J0IHtEYXRlQmFzZX0gZnJvbSBcIi4vZGF0ZS1iYXNlXCI7XHJcblxyXG5pbXBvcnQgKiBhcyBtb21lbnQgZnJvbSBcIm1vbWVudFwiO1xyXG5cclxuLyoqXHJcbiAqIFRPRE86IENvbmZpcm0gdGltZXpvbmUgYmVoYXZpb3IuXHJcbiAqXHJcbiAqIEBzaW5jZSA0LjAuMFxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiaGNpLWRhdGVcIixcclxuICBwcm92aWRlcnM6IFtEYXRlUGlwZSwgRGF0ZVZhbGlkYXRvcl0sXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwIGQtZmxleFwiPlxyXG4gICAgICAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZGF0ZUZvcm1cIiBjbGFzcz1cImZsZXgtZ3Jvdy0xXCI+XHJcbiAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGF0ZS13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cC1hcHBlbmRcIj5cclxuICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiAoa2V5dXApPVwib25LZXlVcElucHV0KCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQpXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJkYXRlSW5wdXRcIiBwbGFjZWhvbGRlcj1cInt7bGFiZWx9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJkYXRlXCIgYXJpYS1kZXNjcmliZWRieT1cImJhc2ljLWFkZG9uMlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpbnB1dC1ncm91cC10ZXh0XCIgaWQ9XCJiYXNpYy1hZGRvbjJcIiAoY2xpY2spPVwiY2xlYXIoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtdGltZXNcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLW91dGxpbmUtc2Vjb25kYXJ5XCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJzdGFydEVkaXQoKTtcIj5cclxuICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLWNhbGVuZGFyLWFsdFwiPjwvaT5cclxuICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ2YWxpZGF0ZSAmJiBkYXRlRm9ybS5nZXQoJ2RhdGVJbnB1dCcpLmhhc0Vycm9yKCdkYXRlRm9ybWF0VmFsaWRhdG9yJylcIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaW52YWxpZC1kYXRlXCI+RW50ZXIgZGF0ZSBhcyBNL0QvWVlZWSBvciBNTS9ERC9ZWVlZPC9kaXY+XHJcbiAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ2YWxpZGF0ZSAmJiBkYXRlRm9ybS5nZXQoJ2RhdGVJbnB1dCcpLmhhc0Vycm9yKCdkYXRlUmFuZ2VWYWxpZGF0b3InKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpbnZhbGlkLWRhdGVcIj5JbnZhbGlkIERhdGUgUmFuZ2U8L2Rpdj5cclxuICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgIDwvZm9ybT5cclxuICAgICAgICAgICA8IS0tXHJcbiAgICAgICAgICAgICBXZSB3aWxsIHJlcGxhY2UgdGhlIG5iZyBkYXRlIHBpY2tlciB3aXRoIG1hdGVyaWFsIGRhdGUgcGlja2VyXHJcbiAgICAgICAgICAgLS0+XHJcbjwhLS0gICAgICAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZGF0ZUZvcm1cIiBjbGFzcz1cImZsZXgtZ3Jvdy0xXCI+LS0+XHJcbjwhLS0gICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRhdGUtd3JhcHBlclwiPi0tPlxyXG48IS0tICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwLWFwcGVuZFwiPi0tPlxyXG48IS0tICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgW3N0eWxlLnBhZGRpbmctdG9wLmVtXT1cIjAuNVwiLS0+XHJcbjwhLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLnBhZGRpbmctYm90dG9tLmVtXT1cIjAuNVwiPi0tPlxyXG48IS0tICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgKGtleXByZXNzKT1cIm9uS2V5UHJlc3NJbnB1dCgkZXZlbnQpXCItLT5cclxuPCEtLSAgICAgICAgICAgICAgICAgICAgICAgICAgIFttaW5dPVwibWluRGF0ZVwiIFttYXhdPVwibWF4RGF0ZVwiIFttYXREYXRlcGlja2VyXT1cImRhdGVQaWNrZXJcIi0tPlxyXG48IS0tICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZGF0ZUlucHV0XCIgcGxhY2Vob2xkZXI9XCJ7e2xhYmVsfX1cIiBhcmlhLWxhYmVsPVwiZGF0ZVwiLS0+XHJcbjwhLS0gICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5PVwiYmFzaWMtYWRkb24yXCI+LS0+XHJcbjwhLS0gICAgICAgICAgICAgICAgICAgIDxtYXQtZGF0ZXBpY2tlci10b2dnbGUgbWF0U3VmZml4IFtmb3JdPVwiZGF0ZVBpY2tlclwiPjwvbWF0LWRhdGVwaWNrZXItdG9nZ2xlPi0tPlxyXG48IS0tICAgICAgICAgICAgICAgICAgICA8bWF0LWRhdGVwaWNrZXIgI2RhdGVQaWNrZXI+PC9tYXQtZGF0ZXBpY2tlcj4tLT5cclxuPCEtLSAgICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cInZhbGlkYXRlICYmIGRhdGVGb3JtLmdldCgnZGF0ZUlucHV0JykuaGFzRXJyb3IoJ2RhdGVGb3JtYXRWYWxpZGF0b3InKVwiLS0+XHJcbjwhLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpbnZhbGlkLWRhdGVcIj4tLT5cclxuPCEtLSAgICAgICAgICAgICAgICAgICAgICBFbnRlciBkYXRlIGFzIE0vRC9ZWVlZIG9yIE1NL0REL1lZWVktLT5cclxuPCEtLSAgICAgICAgICAgICAgICAgICAgPC9tYXQtZXJyb3I+LS0+XHJcbjwhLS0gICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJ2YWxpZGF0ZSAmJiBkYXRlRm9ybS5nZXQoJ2RhdGVJbnB1dCcpLmhhc0Vycm9yKCdkYXRlUmFuZ2VWYWxpZGF0b3InKVwiLS0+XHJcbjwhLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpbnZhbGlkLWRhdGVcIj4tLT5cclxuPCEtLSAgICAgICAgICAgICAgICAgICAgICBJbnZhbGlkIERhdGUgUmFuZ2UtLT5cclxuPCEtLSAgICAgICAgICAgICAgICAgICAgPC9tYXQtZXJyb3I+LS0+XHJcbjwhLS0gICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPi0tPlxyXG48IS0tICAgICAgICAgICAgICAgPC9kaXY+LS0+XHJcbjwhLS0gICAgICAgICAgICAgPC9kaXY+LS0+XHJcbjwhLS0gICAgICAgICAgPC9mb3JtPi0tPlxyXG4gICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJzdGF0ZSA9PT0gMVwiIGNsYXNzPVwiaW5saW5lLWVkaXRpbmdcIj5cclxuICAgICAgICA8bmdiLWRhdGVwaWNrZXIgW25nTW9kZWxdPVwibW9kaWZpZWREYXRhXCIgI2RwIFtzdGFydERhdGVdPVwic3RhcnREYXRlXCIgW21pbkRhdGVdPVwibWluRGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFttYXhEYXRlXT1cIm1heERhdGVcIiAoa2V5ZG93bik9XCJvbktleURvd24oJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ2hhbmdlKCRldmVudClcIiAoc2VsZWN0KT1cInNhdmUoKVwiPjwvbmdiLWRhdGVwaWNrZXI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImlubGluZS1ob3Zlci1zYXZlLW9wdGlvbnNcIj5cclxuPCEtLSAgICAgICAgICA8YSBjbGFzcz1cImJ0biBpaS1zby1idG4gc2F2ZVwiIChjbGljayk9XCJzYXZlKClcIj48aSBjbGFzcz1cImZhcyBmYS1jaGVja1wiPjwvaT48L2E+LS0+XHJcbjwhLS0gICAgICAgICAgPGEgY2xhc3M9XCJidG4gaWktc28tYnRuIGNhbmNlbFwiIChjbGljayk9XCJjYW5jZWwoKVwiPjxpIGNsYXNzPVwiZmFzIGZhLXRpbWVzXCI+PC9pPjwvYT4tLT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gIGAsXHJcbiAgc3R5bGVzOiBbYFxyXG4gICAgLyo6Om5nLWRlZXAgbWF0LWZvcm0tZmllbGQgLm1hdC1mb3JtLWZpZWxkLWZsZXggPiAubWF0LWZvcm0tZmllbGQtaW5maXh7Ki9cclxuICAgIC8qICBwYWRkaW5nOiAwLjI1ZW0gMCAwLjVlbSAwOyovXHJcbiAgICAvKn0qL1xyXG4gIGBdLFxyXG4gIGhvc3Q6IHtcclxuICAgIFwiKGRvY3VtZW50OmNsaWNrKVwiOiBcImhhbmRsZU91dHNpZGVFdmVudCgkZXZlbnQpXCJcclxuICB9XHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgRGF0ZUNvbXBvbmVudCBleHRlbmRzIERhdGVCYXNlIGltcGxlbWVudHMgT25Jbml0LCBEb0NoZWNrLCBBZnRlclZpZXdJbml0IHtcclxuXHJcbiAgQFZpZXdDaGlsZChcImRwXCIsIHtzdGF0aWM6IGZhbHNlfSkgZHA6IGFueTtcclxuXHJcbiAgLy8gQmluZGVkIGRhdGEgZnJvbSB0aGUgcGFyZW50IGNvbXBvbmVudC5cclxuICBASW5wdXQoKSBkYXRlRm9ybWF0OiBzdHJpbmcgPSBcInNob3J0RGF0ZVwiO1xyXG4gIC8vIEBJbnB1dCgpIGRhdGVGb3JtYXQ6IHN0cmluZyA9IFwiTU0vZC95eXl5XCI7IC8vRm9yIHRlc3Rpbmcgb25seVxyXG4gIHN0YXJ0RGF0ZTtcclxuICBASW5wdXQoKSBtaW5EYXRlO1xyXG4gIEBJbnB1dCgpIG1heERhdGU7XHJcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZztcclxuICBsYWJlbERhdGU6IHN0cmluZztcclxuICBASW5wdXQoKSBpbnB1dERhdGE6IE9iamVjdDtcclxuICAvLyBUaGUgZGF0YSB1c2VkIGluIG91ciBpbnB1dC4gIFdlIHN0b3JlZCB0aGlzIGFzIHdlbGwgYXMgdGhlIGlucHV0RGF0YSBzbyB3ZSBjYW4gY2FuY2VsIHRoZSBlZGl0IGFuZCBwcmVzZXJ2ZSB0aGUgb3JpZ2luYWwgZGF0YS5cclxuICBASW5wdXQoKSBtb2RpZmllZERhdGE6IE9iamVjdDtcclxuXHJcbiAgQE91dHB1dCgpIGlucHV0RGF0YUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBkYXRlRm9ybTogVW50eXBlZEZvcm1Hcm91cDtcclxuICBkYXRlSW5wdXQ6IFVudHlwZWRGb3JtQ29udHJvbDtcclxuICAvLyBvbmx5IHZhbGlkYXRlIGlmIHVzZXIgaXMgdHlwaW5nXHJcbiAgdmFsaWRhdGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcHJpdmF0ZSBmb2N1c2VkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsIHByaXZhdGUgZm9ybUJ1aWxkZXI6IFVudHlwZWRGb3JtQnVpbGRlciwgcHJpdmF0ZSBkYXRlUGlwZTogRGF0ZVBpcGUsIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7XHJcbiAgICBzdXBlcihlbGVtZW50UmVmKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICovXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmRhdGVGb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XHJcbiAgICAgICBkYXRlSW5wdXQgOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKFwiXCIsIFtEYXRlVmFsaWRhdG9yLmRhdGVGb3JtYXRWYWxpZGF0b3IsIERhdGVWYWxpZGF0b3IuZGF0ZVJhbmdlVmFsaWRhdG9yXSlcclxuICAgIH0pO1xyXG4gICAgdGhpcy5vbkNoYW5nZXMoKTtcclxuXHJcbiAgICB0aGlzLnVwZGF0ZUludGVybmFsRGF0YUZyb21Nb2RlbCgpO1xyXG4gICAgLy8gc2V0IHRoZSBtaW5EYXRlIHRvIDIwIHllYXJzIGluIHRoZSBwYXN0IGJ5IGRlZmF1bHRcclxuICAgIGxldCB0b2RheSA9IG5ldyBEYXRlKCk7XHJcbiAgICBpZiAoIXRoaXMubWluRGF0ZSkge1xyXG4gICAgICAgIHRoaXMubWluRGF0ZSA9IHt5ZWFyOiB0b2RheS5nZXRGdWxsWWVhcigpIC0gMjAsIG1vbnRoOiB0b2RheS5nZXRNb250aCgpICsgMSwgZGF5OiB0b2RheS5nZXREYXRlKCl9O1xyXG4gICAgfVxyXG4gICAgLy8gc2V0IG1heCBkYXRlIHRvIHRvZGF5IGJ5IGRlZmF1bHRcclxuICAgIGlmICghdGhpcy5tYXhEYXRlKSB7XHJcbiAgICAgICAgdGhpcy5tYXhEYXRlID0ge3llYXI6IHRvZGF5LmdldEZ1bGxZZWFyKCksIG1vbnRoOiB0b2RheS5nZXRNb250aCgpICsgMSwgZGF5OiB0b2RheS5nZXREYXRlKCl9O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgLy8gRmlsbCB0aGUgaW5wdXQgd2l0aCB0aGUgYm91bmQgZGF0YSBzZXQgaW4gdGhlIHBhcmVudCBjb21wb25lbnQuXHJcbiAgICBpZiAodGhpcy5pbnB1dERhdGEpIHtcclxuICAgICAgbGV0IGZvcm1hdHRlZERhdGUgPSB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybSg8c3RyaW5nPnRoaXMuaW5wdXREYXRhLCB0aGlzLmRhdGVGb3JtYXQpO1xyXG4gICAgICB0aGlzLmRhdGVGb3JtLmNvbnRyb2xzW1wiZGF0ZUlucHV0XCJdLnNldFZhbHVlKGZvcm1hdHRlZERhdGUpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBvbkNoYW5nZXMoKTogdm9pZCB7fVxyXG5cclxuXHJcbiAgbmdEb0NoZWNrKCkge1xyXG4gICAgLy8gdGhpcyBpcyB0aGUgb25seSB3YXkgSSBmb3VuZCB0byBoYXZlIHRoZSBmb2N1cyBvbiB0aGUgc3RhcnREYXRlIGRheSB3aGVuIHRoZSB1c2VyIG9wZW5zXHJcbiAgICAvLyB0aGUgcG9wdXAuIFdlIG9ubHkgd2FudCB0byBmb2N1cyBvbmNlIG90aGVyd2lzZSB1c2VyIGNhbiBub3QgY2xpY2sgYW55d2hlcmUgZWxzZSBpbiB0aGUgcG9wdXBcclxuICAgIGlmICh0aGlzLmRwICYmICF0aGlzLmZvY3VzZWQpIHtcclxuICAgICAgICB0aGlzLmRwLmZvY3VzKCk7XHJcbiAgICAgICAgdGhpcy5mb2N1c2VkID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIC8vIG1hcmsgcGlja2VyIGZvciBmb2N1c2luZyBuZXh0IHRpbWUgaXQgaXMgb3BlblxyXG4gICAgaWYgKHRoaXMuc3RhdGUgPT09IDApIHtcclxuICAgICAgICB0aGlzLmZvY3VzZWQgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyB1cGRhdGVJbnRlcm5hbERhdGFGcm9tTW9kZWwoKSB7XHJcbiAgICAgaWYgKHRoaXMuaW5wdXREYXRhKSB7XHJcbiAgICAgICAgIHRoaXMubW9kaWZpZWREYXRhID0gbmV3IERhdGUoPHN0cmluZz50aGlzLmlucHV0RGF0YSk7XHJcbiAgICAgICAgIGxldCBtZDogRGF0ZSA9IG5ldyBEYXRlKDxzdHJpbmc+dGhpcy5pbnB1dERhdGEpO1xyXG4gICAgICAgICB0aGlzLnN0YXJ0RGF0ZSA9IHt5ZWFyOiBtZC5nZXRGdWxsWWVhcigpLCBtb250aDogbWQuZ2V0TW9udGgoKSArIDEsIGRheTogbWQuZ2V0RGF0ZSgpfTtcclxuICAgICB9IGVsc2Uge1xyXG4gICAgICAgICBsZXQgdG9kYXk6IERhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgICAgICB0aGlzLnN0YXJ0RGF0ZSA9IHt5ZWFyOiB0b2RheS5nZXRGdWxsWWVhcigpLCBtb250aDogdG9kYXkuZ2V0TW9udGgoKSArIDEsIGRheTogdG9kYXkuZ2V0RGF0ZSgpfTtcclxuICAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGVzIHRoZSBib3VuZCBkYXRhIHdpdGggdGhlIHdvcmtpbmcgZGF0YS5cclxuICAgKi9cclxuICBwdWJsaWMgdXBkYXRlTW9kZWxGcm9tSW50ZXJuYWxEYXRhKCkge1xyXG4gICAgIGlmICh0aGlzLm1vZGlmaWVkRGF0YSkge1xyXG4gICAgICAgICBsZXQgZHNEYXRlID0gdGhpcy5uZ2JEYXRlVG9TdHJpbmcoPE5nYkRhdGVTdHJ1Y3Q+dGhpcy5tb2RpZmllZERhdGEpO1xyXG4gICAgICAgICBpZiAoZHNEYXRlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5wdXREYXRhID0gZHNEYXRlO1xyXG4gICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmlucHV0RGF0YSA9IHRoaXMubW9kaWZpZWREYXRhO1xyXG4gICAgICAgICB9XHJcblxyXG4gICAgICAgICBjb25zdCBmb3JtYXR0ZWRNb2RpZmllZERhdGUgPSB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybSg8c3RyaW5nPnRoaXMuaW5wdXREYXRhLCB0aGlzLmRhdGVGb3JtYXQpO1xyXG4gICAgICAgICB0aGlzLmRhdGVGb3JtLmNvbnRyb2xzW1wiZGF0ZUlucHV0XCJdLnNldFZhbHVlKGZvcm1hdHRlZE1vZGlmaWVkRGF0ZSwgeyBlbWl0RXZlbnQ6IGZhbHNlfSk7XHJcblxyXG4gICAgIH1cclxuICAgICB0aGlzLmlucHV0RGF0YUNoYW5nZS5lbWl0KHRoaXMuaW5wdXREYXRhKTtcclxuICAgICB0aGlzLnVwZGF0ZUludGVybmFsRGF0YUZyb21Nb2RlbCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNsZWFyKCkge1xyXG4gICAgICB0aGlzLm1vZGlmaWVkRGF0YSA9IG51bGw7XHJcbiAgICAgIHRoaXMuaW5wdXREYXRhID0gbnVsbDtcclxuICAgICAgdGhpcy5kYXRlRm9ybS5jb250cm9sc1tcImRhdGVJbnB1dFwiXS5zZXRWYWx1ZShcIlwiKTtcclxuICAgICAgdGhpcy52YWxpZGF0ZSA9IGZhbHNlO1xyXG4gICAgICBsZXQgdG9kYXk6IERhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgICB0aGlzLnN0YXJ0RGF0ZSA9IHt5ZWFyOiB0b2RheS5nZXRGdWxsWWVhcigpLCBtb250aDogdG9kYXkuZ2V0TW9udGgoKSArIDEsIGRheTogdG9kYXkuZ2V0RGF0ZSgpfTtcclxuICAgICAgdGhpcy5zdGF0ZSA9IDA7XHJcbiAgICAgIHRoaXMuZGF0ZUZvcm0uY29udHJvbHNbXCJkYXRlSW5wdXRcIl0uc2V0VmFsdWUoXCJcIik7XHJcbiAgICAgIHRoaXMuaW5wdXREYXRhQ2hhbmdlLmVtaXQodGhpcy5pbnB1dERhdGEpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uS2V5VXBJbnB1dChldmVudDogS2V5Ym9hcmRFdmVudCkge1xyXG4gICAgLy8gQ2hlY2sgZm9yIHdoZW4gdGhlIGlucHV0IGlzIGRlbGV0ZWQgYmVmb3JlIGJlaW5nIHNhdmVkXHJcbiAgICBpZihldmVudC5rZXkgPT09IFwiRGVsZXRlXCIgfHwgZXZlbnQua2V5ID09PSBcIkJhY2tzcGFjZVwiKSB7XHJcbiAgICAgIGlmKHRoaXMuZGF0ZUZvcm0uY29udHJvbHNbXCJkYXRhSW5wdXRcIl0udmFsdWUubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgdGhpcy5jbGVhcigpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgIC8vIHVwZGF0ZSByYW5nZSBzbyB0aGF0IHRoZSBkYXRlIHJhbmdlIHZhbGlkYXRvciBjYW4gcnVuIGFjY3VyYXRlbHlcclxuICAgICBEYXRlVmFsaWRhdG9yLm1pblZhbHVlID0gdGhpcy5taW5EYXRlO1xyXG4gICAgIERhdGVWYWxpZGF0b3IubWF4VmFsdWUgPSB0aGlzLm1heERhdGU7XHJcblxyXG4gICAgLy8gR2V0IHRoZSB1cGRhdGVkIGRhdGVGb3JtIHZhbHVlXHJcbiAgICAgbGV0IGV2ZW50VGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcbiAgICAgbGV0IGlucHV0VmFsdWUgPSBldmVudFRhcmdldC52YWx1ZTtcclxuICAgICB0aGlzLmRhdGVGb3JtLmNvbnRyb2xzW1wiZGF0ZUlucHV0XCJdLnBhdGNoVmFsdWUoaW5wdXRWYWx1ZSk7XHJcblxyXG4gICAgIC8vIGlmIHdlIGhhdmUgYSBnb29kIGRhdGUgYW5kIGlzIHdpdGhpbiB0aGUgcmFuZ2UgdXBkYXRlIHRoZSBwaWNrZXJcclxuICAgICBpZiAoRGF0ZVZhbGlkYXRvci5pblJhbmdlKHRoaXMuZGF0ZUZvcm0uY29udHJvbHNbXCJkYXRlSW5wdXRcIl0pKSB7XHJcbiAgICAgICAgIHRoaXMudmFsaWRhdGUgPSBmYWxzZTtcclxuICAgICAgICAgdGhpcy5pbnB1dERhdGEgPSB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybSh0aGlzLmRhdGVGb3JtLmNvbnRyb2xzW1wiZGF0ZUlucHV0XCJdLnZhbHVlLCB0aGlzLmRhdGVGb3JtYXQpO1xyXG4gICAgICAgICB0aGlzLnVwZGF0ZUludGVybmFsRGF0YUZyb21Nb2RlbCgpO1xyXG4gICAgICAgICB0aGlzLmRhdGVGb3JtLmNvbnRyb2xzW1wiZGF0ZUlucHV0XCJdLnNldFZhbHVlKHRoaXMuaW5wdXREYXRhKTtcclxuICAgICAgICAgdGhpcy5pbnB1dERhdGFDaGFuZ2UuZW1pdCh0aGlzLmlucHV0RGF0YSk7XHJcbiAgICAgfSBlbHNlIHtcclxuICAgICAgIHRoaXMudmFsaWRhdGUgPSB0cnVlO1xyXG4gICAgIH1cclxuXHJcbiAgICAgIC8vIC8vIG9ubHkgdmFsaWRhdGUgaWYgdXNlciBpcyB0eXBpbmdcclxuICAgICAgLy8gaWYgKCF0aGlzLnZhbGlkYXRlKSB7XHJcbiAgICAgIC8vICAgdGhpcy52YWxpZGF0ZSA9IHRydWU7XHJcbiAgICAgIC8vICAgdGhpcy5kYXRlRm9ybS5jb250cm9sc1tcImRhdGVJbnB1dFwiXS5zZXRWYWx1ZShcIlwiKTtcclxuICAgICAgLy9cclxuICAgICAgLy8gICAvLyBjbGVhciB0aGUgZGF0ZSBwaWNrZXJcclxuICAgICAgLy8gICB0aGlzLm1vZGlmaWVkRGF0YSA9IG51bGw7XHJcbiAgICAgIC8vICAgdGhpcy5pbnB1dERhdGEgPSBudWxsO1xyXG4gICAgICAvLyAgIGxldCB0b2RheTogRGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgICAgIC8vICAgdGhpcy5zdGFydERhdGUgPSB7eWVhcjogdG9kYXkuZ2V0RnVsbFllYXIoKSwgbW9udGg6IHRvZGF5LmdldE1vbnRoKCkgKyAxLCBkYXk6IHRvZGF5LmdldERhdGUoKX07XHJcbiAgICAgIC8vICAgdGhpcy5zdGF0ZSA9IDA7XHJcbiAgICAgIC8vICAgdGhpcy5pbnB1dERhdGFDaGFuZ2UuZW1pdCh0aGlzLmlucHV0RGF0YSk7XHJcbiAgICAgIC8vIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE5nYkRhdGVTdHJ1Y3Qgc3RvcmVzIGRheSwgbW9udGggYW5kIHllYXIuICBDb252ZXJ0IHRoaXMgdG8gSVNPODYwMS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBkYXRlXHJcbiAgICogQHJldHVybnMge2FueX1cclxuICAgKi9cclxuICBwcml2YXRlIG5nYkRhdGVUb1N0cmluZyhkYXRlOiBOZ2JEYXRlU3RydWN0KTogc3RyaW5nIHtcclxuICAgIGlmIChkYXRlID09PSB1bmRlZmluZWQgfHwgZGF0ZSA9PT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH0gZWxzZSBpZiAoZGF0ZS55ZWFyID09PSB1bmRlZmluZWQgfHwgZGF0ZS5tb250aCA9PT0gdW5kZWZpbmVkIHx8IGRhdGUuZGF5ID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGRhdGUueWVhciArIFwiLVwiICsgKChkYXRlLm1vbnRoIDwgMTApID8gXCIwXCIgOiBcIlwiKSArIGRhdGUubW9udGggKyBcIi1cIiArICgoZGF0ZS5kYXkgPCAxMCkgPyBcIjBcIiA6IFwiXCIpICsgZGF0ZS5kYXkgKyBcIlQxMjowMC0wNjowMFwiO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
|
|
@@ -1,40 +1,40 @@
|
|
|
1
|
-
import * as moment from "moment";
|
|
2
|
-
export class DateValidator {
|
|
3
|
-
static { this.minValue = undefined; }
|
|
4
|
-
static { this.maxValue = undefined; }
|
|
5
|
-
static dateFormatValidator(ac) {
|
|
6
|
-
if (ac && ac.value && !moment(ac.value, "M/D/YYYY", true).isValid()) {
|
|
7
|
-
return { "dateFormatValidator": true };
|
|
8
|
-
}
|
|
9
|
-
return null;
|
|
10
|
-
}
|
|
11
|
-
static dateRangeValidator(ac) {
|
|
12
|
-
if (ac && ac.value && DateValidator.minValue && DateValidator.maxValue && moment(ac.value, "M/D/YYYY", true).isValid()) {
|
|
13
|
-
let dateValue = moment(ac.value);
|
|
14
|
-
let minDate = moment(DateValidator.convertNgbStructToDate(DateValidator.minValue));
|
|
15
|
-
let maxDate = moment(DateValidator.convertNgbStructToDate(DateValidator.maxValue));
|
|
16
|
-
if (dateValue.isBefore(minDate, "day") || dateValue.isAfter(maxDate, "day")) {
|
|
17
|
-
return { "dateRangeValidator": true };
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
return null;
|
|
21
|
-
}
|
|
22
|
-
static convertNgbStructToDate(struct) {
|
|
23
|
-
return { year: struct.year, month: struct.month - 1, day: struct.day };
|
|
24
|
-
}
|
|
25
|
-
static inRange(ac) {
|
|
26
|
-
if (ac && ac.value && DateValidator.minValue && DateValidator.maxValue && moment(ac.value, "M/D/YYYY", true).isValid()) {
|
|
27
|
-
let dateValue = moment(ac.value);
|
|
28
|
-
let minDate = moment(DateValidator.convertNgbStructToDate(DateValidator.minValue));
|
|
29
|
-
let maxDate = moment(DateValidator.convertNgbStructToDate(DateValidator.maxValue));
|
|
30
|
-
if (dateValue.isBefore(minDate, "day") || dateValue.isAfter(maxDate, "day")) {
|
|
31
|
-
return false;
|
|
32
|
-
}
|
|
33
|
-
else {
|
|
34
|
-
return true;
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
return false;
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import * as moment from "moment";
|
|
2
|
+
export class DateValidator {
|
|
3
|
+
static { this.minValue = undefined; }
|
|
4
|
+
static { this.maxValue = undefined; }
|
|
5
|
+
static dateFormatValidator(ac) {
|
|
6
|
+
if (ac && ac.value && !moment(ac.value, "M/D/YYYY", true).isValid()) {
|
|
7
|
+
return { "dateFormatValidator": true };
|
|
8
|
+
}
|
|
9
|
+
return null;
|
|
10
|
+
}
|
|
11
|
+
static dateRangeValidator(ac) {
|
|
12
|
+
if (ac && ac.value && DateValidator.minValue && DateValidator.maxValue && moment(ac.value, "M/D/YYYY", true).isValid()) {
|
|
13
|
+
let dateValue = moment(ac.value);
|
|
14
|
+
let minDate = moment(DateValidator.convertNgbStructToDate(DateValidator.minValue));
|
|
15
|
+
let maxDate = moment(DateValidator.convertNgbStructToDate(DateValidator.maxValue));
|
|
16
|
+
if (dateValue.isBefore(minDate, "day") || dateValue.isAfter(maxDate, "day")) {
|
|
17
|
+
return { "dateRangeValidator": true };
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
static convertNgbStructToDate(struct) {
|
|
23
|
+
return { year: struct.year, month: struct.month - 1, day: struct.day };
|
|
24
|
+
}
|
|
25
|
+
static inRange(ac) {
|
|
26
|
+
if (ac && ac.value && DateValidator.minValue && DateValidator.maxValue && moment(ac.value, "M/D/YYYY", true).isValid()) {
|
|
27
|
+
let dateValue = moment(ac.value);
|
|
28
|
+
let minDate = moment(DateValidator.convertNgbStructToDate(DateValidator.minValue));
|
|
29
|
+
let maxDate = moment(DateValidator.convertNgbStructToDate(DateValidator.maxValue));
|
|
30
|
+
if (dateValue.isBefore(minDate, "day") || dateValue.isAfter(maxDate, "day")) {
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
return true;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS12YWxpZGF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnB1dC9zcmMvZGF0ZS9kYXRlLXZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEtBQUssTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUVqQyxNQUFNLE9BQU8sYUFBYTthQUNqQixhQUFRLEdBQUcsU0FBUyxDQUFDO2FBQ3JCLGFBQVEsR0FBRyxTQUFTLENBQUM7SUFFNUIsTUFBTSxDQUFDLG1CQUFtQixDQUFDLEVBQW1CO1FBQzVDLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxLQUFLLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztZQUNwRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFDekMsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxFQUFtQjtRQUMzQyxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsS0FBSyxJQUFJLGFBQWEsQ0FBQyxRQUFRLElBQUksYUFBYSxDQUFDLFFBQVEsSUFBSSxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztZQUN2SCxJQUFJLFNBQVMsR0FBRyxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2pDLElBQUksT0FBTyxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsc0JBQXNCLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDbkYsSUFBSSxPQUFPLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxzQkFBc0IsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUVuRixJQUFJLFNBQVMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxJQUFJLFNBQVMsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQzVFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUN4QyxDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVBLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNO1FBQ2xDLE9BQU8sRUFBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLE1BQU0sQ0FBQyxHQUFHLEVBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFtQjtRQUNoQyxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsS0FBSyxJQUFJLGFBQWEsQ0FBQyxRQUFRLElBQUksYUFBYSxDQUFDLFFBQVEsSUFBSSxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztZQUN2SCxJQUFJLFNBQVMsR0FBRyxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2pDLElBQUksT0FBTyxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsc0JBQXNCLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDbkYsSUFBSSxPQUFPLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxzQkFBc0IsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUVuRixJQUFJLFNBQVMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxJQUFJLFNBQVMsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQzNFLE9BQU8sS0FBSyxDQUFDO1lBQ2hCLENBQUM7aUJBQU0sQ0FBQztnQkFDTCxPQUFPLElBQUksQ0FBQztZQUNmLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBYnN0cmFjdENvbnRyb2x9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5cclxuaW1wb3J0ICogYXMgbW9tZW50IGZyb20gXCJtb21lbnRcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBEYXRlVmFsaWRhdG9yIHtcclxuICBzdGF0aWMgbWluVmFsdWUgPSB1bmRlZmluZWQ7XHJcbiAgc3RhdGljIG1heFZhbHVlID0gdW5kZWZpbmVkO1xyXG5cclxuICBzdGF0aWMgZGF0ZUZvcm1hdFZhbGlkYXRvcihhYzogQWJzdHJhY3RDb250cm9sKSB7XHJcbiAgICBpZiAoYWMgJiYgYWMudmFsdWUgJiYgIW1vbWVudChhYy52YWx1ZSwgXCJNL0QvWVlZWVwiLCB0cnVlKS5pc1ZhbGlkKCkpIHtcclxuICAgICAgcmV0dXJuIHsgXCJkYXRlRm9ybWF0VmFsaWRhdG9yXCI6IHRydWUgfTtcclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGRhdGVSYW5nZVZhbGlkYXRvcihhYzogQWJzdHJhY3RDb250cm9sKSB7XHJcbiAgICBpZiAoYWMgJiYgYWMudmFsdWUgJiYgRGF0ZVZhbGlkYXRvci5taW5WYWx1ZSAmJiBEYXRlVmFsaWRhdG9yLm1heFZhbHVlICYmIG1vbWVudChhYy52YWx1ZSwgXCJNL0QvWVlZWVwiLCB0cnVlKS5pc1ZhbGlkKCkpIHtcclxuICAgICAgbGV0IGRhdGVWYWx1ZSA9IG1vbWVudChhYy52YWx1ZSk7XHJcbiAgICAgIGxldCBtaW5EYXRlID0gbW9tZW50KERhdGVWYWxpZGF0b3IuY29udmVydE5nYlN0cnVjdFRvRGF0ZShEYXRlVmFsaWRhdG9yLm1pblZhbHVlKSk7XHJcbiAgICAgIGxldCBtYXhEYXRlID0gbW9tZW50KERhdGVWYWxpZGF0b3IuY29udmVydE5nYlN0cnVjdFRvRGF0ZShEYXRlVmFsaWRhdG9yLm1heFZhbHVlKSk7XHJcblxyXG4gICAgICBpZiAoZGF0ZVZhbHVlLmlzQmVmb3JlKG1pbkRhdGUsIFwiZGF5XCIpIHx8IGRhdGVWYWx1ZS5pc0FmdGVyKG1heERhdGUsIFwiZGF5XCIpKSB7XHJcbiAgICAgICAgcmV0dXJuIHsgXCJkYXRlUmFuZ2VWYWxpZGF0b3JcIjogdHJ1ZSB9O1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICAgc3RhdGljIGNvbnZlcnROZ2JTdHJ1Y3RUb0RhdGUoc3RydWN0KSB7XHJcbiAgICAgcmV0dXJuIHt5ZWFyOiBzdHJ1Y3QueWVhciwgbW9udGg6IHN0cnVjdC5tb250aCAtIDEsIGRheTogc3RydWN0LmRheX07XHJcbiAgIH1cclxuXHJcbiAgIHN0YXRpYyBpblJhbmdlKGFjOiBBYnN0cmFjdENvbnRyb2wpIHtcclxuICAgICBpZiAoYWMgJiYgYWMudmFsdWUgJiYgRGF0ZVZhbGlkYXRvci5taW5WYWx1ZSAmJiBEYXRlVmFsaWRhdG9yLm1heFZhbHVlICYmIG1vbWVudChhYy52YWx1ZSwgXCJNL0QvWVlZWVwiLCB0cnVlKS5pc1ZhbGlkKCkpIHtcclxuICAgICAgIGxldCBkYXRlVmFsdWUgPSBtb21lbnQoYWMudmFsdWUpO1xyXG4gICAgICAgbGV0IG1pbkRhdGUgPSBtb21lbnQoRGF0ZVZhbGlkYXRvci5jb252ZXJ0TmdiU3RydWN0VG9EYXRlKERhdGVWYWxpZGF0b3IubWluVmFsdWUpKTtcclxuICAgICAgIGxldCBtYXhEYXRlID0gbW9tZW50KERhdGVWYWxpZGF0b3IuY29udmVydE5nYlN0cnVjdFRvRGF0ZShEYXRlVmFsaWRhdG9yLm1heFZhbHVlKSk7XHJcblxyXG4gICAgICAgaWYgKGRhdGVWYWx1ZS5pc0JlZm9yZShtaW5EYXRlLCBcImRheVwiKSB8fCBkYXRlVmFsdWUuaXNBZnRlcihtYXhEYXRlLCBcImRheVwiKSkge1xyXG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgfVxyXG4gICAgIH1cclxuICAgICByZXR1cm4gZmFsc2U7XHJcbiAgIH1cclxufVxyXG4iXX0=
|