@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.
Files changed (54) hide show
  1. package/date/date-base.d.ts +65 -65
  2. package/date/date-date-range.component.d.ts +32 -32
  3. package/date/date-date.component.d.ts +53 -53
  4. package/date/date-validator.d.ts +17 -17
  5. package/date/date.module.d.ts +16 -16
  6. package/dropdown/dropdown-index.d.ts +6 -6
  7. package/dropdown/dropdown-select-result.component.d.ts +23 -23
  8. package/dropdown/dropdown-select.component.d.ts +76 -76
  9. package/dropdown/dropdown.component.d.ts +40 -40
  10. package/dropdown/dropdown.module.d.ts +13 -13
  11. package/dropdown/dropdown.service.d.ts +51 -51
  12. package/dropdown/messages.d.ts +11 -11
  13. package/dropdown/select-item.d.ts +16 -16
  14. package/dropdown/template-dropdown.directive.d.ts +12 -12
  15. package/esm2022/date/date-base.mjs +114 -114
  16. package/esm2022/date/date-date-range.component.mjs +92 -92
  17. package/esm2022/date/date-date.component.mjs +189 -189
  18. package/esm2022/date/date-validator.mjs +40 -40
  19. package/esm2022/date/date.module.mjs +60 -60
  20. package/esm2022/dropdown/dropdown-index.mjs +5 -5
  21. package/esm2022/dropdown/dropdown-select-result.component.mjs +85 -85
  22. package/esm2022/dropdown/dropdown-select.component.mjs +360 -360
  23. package/esm2022/dropdown/dropdown.component.mjs +170 -170
  24. package/esm2022/dropdown/dropdown.module.mjs +50 -50
  25. package/esm2022/dropdown/dropdown.service.mjs +133 -133
  26. package/esm2022/dropdown/messages.mjs +9 -9
  27. package/esm2022/dropdown/select-item.mjs +11 -11
  28. package/esm2022/dropdown/template-dropdown.directive.mjs +26 -26
  29. package/esm2022/huntsman-cancer-institute-input.mjs +4 -4
  30. package/esm2022/index.mjs +19 -19
  31. package/esm2022/inline/inline.component.mjs +179 -179
  32. package/esm2022/inline/inline.module.mjs +28 -28
  33. package/esm2022/search/search.component.mjs +157 -157
  34. package/esm2022/search/search.module.mjs +32 -32
  35. package/esm2022/select/custom-combobox.component.mjs +531 -531
  36. package/esm2022/select/custom-multi-combobox.component.mjs +232 -232
  37. package/esm2022/select/md-multi-select.component.mjs +127 -127
  38. package/esm2022/select/md-select.component.mjs +107 -107
  39. package/esm2022/select/native-select.component.mjs +188 -188
  40. package/esm2022/select/select.module.mjs +83 -83
  41. package/fesm2022/huntsman-cancer-institute-input.mjs +2797 -2797
  42. package/fesm2022/huntsman-cancer-institute-input.mjs.map +1 -1
  43. package/index.d.ts +20 -20
  44. package/inline/inline.component.d.ts +66 -66
  45. package/inline/inline.module.d.ts +9 -9
  46. package/package.json +16 -8
  47. package/search/search.component.d.ts +42 -42
  48. package/search/search.module.d.ts +10 -10
  49. package/select/custom-combobox.component.d.ts +98 -98
  50. package/select/custom-multi-combobox.component.d.ts +50 -50
  51. package/select/md-multi-select.component.d.ts +32 -32
  52. package/select/md-select.component.d.ts +30 -30
  53. package/select/native-select.component.d.ts +37 -37
  54. 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: "16.2.12", 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: "16.2.12", 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: `
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: "16.2.12", ngImport: i0, type: DateComponent, decorators: [{
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: function () { return [{ 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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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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS12YWxpZGF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnB1dC9zcmMvZGF0ZS9kYXRlLXZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEtBQUssTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUVqQyxNQUFNLE9BQU8sYUFBYTthQUNqQixhQUFRLEdBQUcsU0FBUyxDQUFDO2FBQ3JCLGFBQVEsR0FBRyxTQUFTLENBQUM7SUFFNUIsTUFBTSxDQUFDLG1CQUFtQixDQUFDLEVBQW1CO1FBQzVDLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxLQUFLLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDbkUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLElBQUksRUFBRSxDQUFDO1NBQ3hDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsTUFBTSxDQUFDLGtCQUFrQixDQUFDLEVBQW1CO1FBQzNDLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxLQUFLLElBQUksYUFBYSxDQUFDLFFBQVEsSUFBSSxhQUFhLENBQUMsUUFBUSxJQUFJLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUN0SCxJQUFJLFNBQVMsR0FBRyxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2pDLElBQUksT0FBTyxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsc0JBQXNCLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDbkYsSUFBSSxPQUFPLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxzQkFBc0IsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUVuRixJQUFJLFNBQVMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxJQUFJLFNBQVMsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxFQUFFO2dCQUMzRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsSUFBSSxFQUFFLENBQUM7YUFDdkM7U0FDRjtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVBLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNO1FBQ2xDLE9BQU8sRUFBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLE1BQU0sQ0FBQyxHQUFHLEVBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFtQjtRQUNoQyxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsS0FBSyxJQUFJLGFBQWEsQ0FBQyxRQUFRLElBQUksYUFBYSxDQUFDLFFBQVEsSUFBSSxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDdEgsSUFBSSxTQUFTLEdBQUcsTUFBTSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNqQyxJQUFJLE9BQU8sR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLHNCQUFzQixDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQ25GLElBQUksT0FBTyxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsc0JBQXNCLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFFbkYsSUFBSSxTQUFTLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsSUFBSSxTQUFTLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsRUFBRTtnQkFDMUUsT0FBTyxLQUFLLENBQUM7YUFDZjtpQkFBTTtnQkFDSixPQUFPLElBQUksQ0FBQzthQUNkO1NBQ0Y7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0Fic3RyYWN0Q29udHJvbH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcblxyXG5pbXBvcnQgKiBhcyBtb21lbnQgZnJvbSBcIm1vbWVudFwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIERhdGVWYWxpZGF0b3Ige1xyXG4gIHN0YXRpYyBtaW5WYWx1ZSA9IHVuZGVmaW5lZDtcclxuICBzdGF0aWMgbWF4VmFsdWUgPSB1bmRlZmluZWQ7XHJcblxyXG4gIHN0YXRpYyBkYXRlRm9ybWF0VmFsaWRhdG9yKGFjOiBBYnN0cmFjdENvbnRyb2wpIHtcclxuICAgIGlmIChhYyAmJiBhYy52YWx1ZSAmJiAhbW9tZW50KGFjLnZhbHVlLCBcIk0vRC9ZWVlZXCIsIHRydWUpLmlzVmFsaWQoKSkge1xyXG4gICAgICByZXR1cm4geyBcImRhdGVGb3JtYXRWYWxpZGF0b3JcIjogdHJ1ZSB9O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgZGF0ZVJhbmdlVmFsaWRhdG9yKGFjOiBBYnN0cmFjdENvbnRyb2wpIHtcclxuICAgIGlmIChhYyAmJiBhYy52YWx1ZSAmJiBEYXRlVmFsaWRhdG9yLm1pblZhbHVlICYmIERhdGVWYWxpZGF0b3IubWF4VmFsdWUgJiYgbW9tZW50KGFjLnZhbHVlLCBcIk0vRC9ZWVlZXCIsIHRydWUpLmlzVmFsaWQoKSkge1xyXG4gICAgICBsZXQgZGF0ZVZhbHVlID0gbW9tZW50KGFjLnZhbHVlKTtcclxuICAgICAgbGV0IG1pbkRhdGUgPSBtb21lbnQoRGF0ZVZhbGlkYXRvci5jb252ZXJ0TmdiU3RydWN0VG9EYXRlKERhdGVWYWxpZGF0b3IubWluVmFsdWUpKTtcclxuICAgICAgbGV0IG1heERhdGUgPSBtb21lbnQoRGF0ZVZhbGlkYXRvci5jb252ZXJ0TmdiU3RydWN0VG9EYXRlKERhdGVWYWxpZGF0b3IubWF4VmFsdWUpKTtcclxuXHJcbiAgICAgIGlmIChkYXRlVmFsdWUuaXNCZWZvcmUobWluRGF0ZSwgXCJkYXlcIikgfHwgZGF0ZVZhbHVlLmlzQWZ0ZXIobWF4RGF0ZSwgXCJkYXlcIikpIHtcclxuICAgICAgICByZXR1cm4geyBcImRhdGVSYW5nZVZhbGlkYXRvclwiOiB0cnVlIH07XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gICBzdGF0aWMgY29udmVydE5nYlN0cnVjdFRvRGF0ZShzdHJ1Y3QpIHtcclxuICAgICByZXR1cm4ge3llYXI6IHN0cnVjdC55ZWFyLCBtb250aDogc3RydWN0Lm1vbnRoIC0gMSwgZGF5OiBzdHJ1Y3QuZGF5fTtcclxuICAgfVxyXG5cclxuICAgc3RhdGljIGluUmFuZ2UoYWM6IEFic3RyYWN0Q29udHJvbCkge1xyXG4gICAgIGlmIChhYyAmJiBhYy52YWx1ZSAmJiBEYXRlVmFsaWRhdG9yLm1pblZhbHVlICYmIERhdGVWYWxpZGF0b3IubWF4VmFsdWUgJiYgbW9tZW50KGFjLnZhbHVlLCBcIk0vRC9ZWVlZXCIsIHRydWUpLmlzVmFsaWQoKSkge1xyXG4gICAgICAgbGV0IGRhdGVWYWx1ZSA9IG1vbWVudChhYy52YWx1ZSk7XHJcbiAgICAgICBsZXQgbWluRGF0ZSA9IG1vbWVudChEYXRlVmFsaWRhdG9yLmNvbnZlcnROZ2JTdHJ1Y3RUb0RhdGUoRGF0ZVZhbGlkYXRvci5taW5WYWx1ZSkpO1xyXG4gICAgICAgbGV0IG1heERhdGUgPSBtb21lbnQoRGF0ZVZhbGlkYXRvci5jb252ZXJ0TmdiU3RydWN0VG9EYXRlKERhdGVWYWxpZGF0b3IubWF4VmFsdWUpKTtcclxuXHJcbiAgICAgICBpZiAoZGF0ZVZhbHVlLmlzQmVmb3JlKG1pbkRhdGUsIFwiZGF5XCIpIHx8IGRhdGVWYWx1ZS5pc0FmdGVyKG1heERhdGUsIFwiZGF5XCIpKSB7XHJcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICB9XHJcbiAgICAgfVxyXG4gICAgIHJldHVybiBmYWxzZTtcclxuICAgfVxyXG59XHJcbiJdfQ==
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=