@colijnit/corecomponents_v12 257.1.17 → 257.1.19
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/bundles/colijnit-corecomponents_v12.umd.js +98 -31
- package/bundles/colijnit-corecomponents_v12.umd.js.map +1 -1
- package/colijnit-corecomponents_v12-257.1.18.tgz +0 -0
- package/colijnit-corecomponents_v12.metadata.json +1 -1
- package/esm2015/lib/components/filter-item/filter-item.component.js +14 -3
- package/esm2015/lib/components/input-date-picker/input-date-picker.component.js +24 -2
- package/esm2015/lib/components/input-date-range-picker/input-date-range-picker.component.js +69 -30
- package/fesm2015/colijnit-corecomponents_v12.js +103 -31
- package/fesm2015/colijnit-corecomponents_v12.js.map +1 -1
- package/lib/components/calendar/style/_layout.scss +14 -14
- package/lib/components/calendar/style/_material-definition.scss +3 -3
- package/lib/components/filter-item/filter-item.component.d.ts +2 -0
- package/lib/components/input-date-picker/input-date-picker.component.d.ts +3 -0
- package/lib/components/input-date-range-picker/input-date-range-picker.component.d.ts +6 -0
- package/package.json +1 -1
|
@@ -4,6 +4,11 @@ import { OverlayService } from '../../service/overlay.service';
|
|
|
4
4
|
import { BaseInputDatePickerDirective } from "../base-input-date-picker/base-input-date-picker.directive";
|
|
5
5
|
import { DoubleCalendarComponent } from "../double-calendar/double-calendar.component";
|
|
6
6
|
export class InputDateRangePickerComponent extends BaseInputDatePickerDirective {
|
|
7
|
+
constructor() {
|
|
8
|
+
super(...arguments);
|
|
9
|
+
this.EARLIEST_DATE = new Date(1900, 0, 1); // 1900-01-01
|
|
10
|
+
this.LATEST_DATE = new Date(2100, 11, 31); // 2100-12-31
|
|
11
|
+
}
|
|
7
12
|
showClass() {
|
|
8
13
|
return true;
|
|
9
14
|
}
|
|
@@ -44,43 +49,75 @@ export class InputDateRangePickerComponent extends BaseInputDatePickerDirective
|
|
|
44
49
|
}
|
|
45
50
|
}
|
|
46
51
|
handleFirstDateChanged(value) {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
52
|
+
setTimeout(() => {
|
|
53
|
+
var _a, _b;
|
|
54
|
+
if (this.isValidDateString(value)) {
|
|
55
|
+
const [year, month, day] = value.split('-').map(Number);
|
|
56
|
+
const date = new Date(year, month - 1, day);
|
|
57
|
+
if (!this.model)
|
|
58
|
+
this.setModel([]);
|
|
59
|
+
this.setModel([date, (_b = (_a = this.model) === null || _a === void 0 ? void 0 : _a[1]) !== null && _b !== void 0 ? _b : null]);
|
|
50
60
|
}
|
|
51
|
-
|
|
52
|
-
}
|
|
61
|
+
});
|
|
53
62
|
}
|
|
54
63
|
handleSecondDateChanged(value) {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
64
|
+
setTimeout(() => {
|
|
65
|
+
var _a, _b;
|
|
66
|
+
if (this.isValidDateString(value)) {
|
|
67
|
+
const [year, month, day] = value.split('-').map(Number);
|
|
68
|
+
const date = new Date(year, month - 1, day);
|
|
69
|
+
if (!this.model)
|
|
70
|
+
this.setModel([]);
|
|
71
|
+
this.setModel([(_b = (_a = this.model) === null || _a === void 0 ? void 0 : _a[0]) !== null && _b !== void 0 ? _b : null, date]);
|
|
58
72
|
}
|
|
59
|
-
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
finalizeDates() {
|
|
76
|
+
let startDate = this.EARLIEST_DATE;
|
|
77
|
+
let endDate = this.LATEST_DATE;
|
|
78
|
+
if (this.isValidDateString(this.firstDateAsString)) {
|
|
79
|
+
const [y, m, d] = this.firstDateAsString.split('-').map(Number);
|
|
80
|
+
startDate = new Date(y, m - 1, d);
|
|
81
|
+
}
|
|
82
|
+
if (this.isValidDateString(this.secondDateAsString)) {
|
|
83
|
+
const [y, m, d] = this.secondDateAsString.split('-').map(Number);
|
|
84
|
+
endDate = new Date(y, m - 1, d);
|
|
60
85
|
}
|
|
86
|
+
this.setModel([startDate, endDate]);
|
|
87
|
+
}
|
|
88
|
+
finalize() {
|
|
89
|
+
var _a;
|
|
90
|
+
(_a = this.finalizeDates) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
91
|
+
}
|
|
92
|
+
isValidDateString(value) {
|
|
93
|
+
const regex = /^\d{4}-\d{2}-\d{2}$/;
|
|
94
|
+
if (!regex.test(value))
|
|
95
|
+
return false;
|
|
96
|
+
const [yearStr, monthStr, dayStr] = value.split('-');
|
|
97
|
+
const [year, month, day] = [Number(yearStr), Number(monthStr), Number(dayStr)];
|
|
98
|
+
// Prevent ancient years or too-far future
|
|
99
|
+
if (year < 1900 || year > 2100)
|
|
100
|
+
return false;
|
|
101
|
+
const date = new Date(year, month - 1, day);
|
|
102
|
+
return (date.getFullYear() === year &&
|
|
103
|
+
date.getMonth() === month - 1 &&
|
|
104
|
+
date.getDate() === day);
|
|
61
105
|
}
|
|
62
106
|
modelSet() {
|
|
63
107
|
this.setModelAsString();
|
|
64
108
|
}
|
|
65
109
|
setModelAsString() {
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
const month = this.model[1].toLocaleString("default", { month: "2-digit" });
|
|
78
|
-
const day = this.model[1].toLocaleString("default", { day: "2-digit" });
|
|
79
|
-
this.secondDateAsString = `${year}-${month}-${day}`;
|
|
80
|
-
}
|
|
81
|
-
else {
|
|
82
|
-
this.secondDateAsString = ``;
|
|
83
|
-
}
|
|
110
|
+
var _a, _b;
|
|
111
|
+
const isStartDefault = ((_a = this.model[0]) === null || _a === void 0 ? void 0 : _a.getTime()) === this.EARLIEST_DATE.getTime();
|
|
112
|
+
const isEndDefault = ((_b = this.model[1]) === null || _b === void 0 ? void 0 : _b.getTime()) === this.LATEST_DATE.getTime();
|
|
113
|
+
this.firstDateAsString = (!this.model[0] || isStartDefault) ? '' : this.formatDate(this.model[0]);
|
|
114
|
+
this.secondDateAsString = (!this.model[1] || isEndDefault) ? '' : this.formatDate(this.model[1]);
|
|
115
|
+
}
|
|
116
|
+
formatDate(date) {
|
|
117
|
+
const year = date.toLocaleString("default", { year: "numeric" });
|
|
118
|
+
const month = date.toLocaleString("default", { month: "2-digit" });
|
|
119
|
+
const day = date.toLocaleString("default", { day: "2-digit" });
|
|
120
|
+
return `${year}-${month}-${day}`;
|
|
84
121
|
}
|
|
85
122
|
}
|
|
86
123
|
InputDateRangePickerComponent.decorators = [
|
|
@@ -96,10 +133,11 @@ InputDateRangePickerComponent.decorators = [
|
|
|
96
133
|
[leftIcon]="leftIcon"
|
|
97
134
|
[leftIconData]="leftIconData"
|
|
98
135
|
[placeholder]="placeholder"
|
|
99
|
-
(
|
|
136
|
+
(modelChange)="handleFirstDateChanged(firstDateAsString)"
|
|
100
137
|
(clearIconClick)="clearDate(0)"
|
|
101
138
|
(click)="handleFirstInputClick($event)"
|
|
102
139
|
[emptyPlace]="true"
|
|
140
|
+
(keyup.enter)="finalizeDates()"
|
|
103
141
|
></co-input-text>
|
|
104
142
|
<co-input-text #secondInput class="no-focus-line custom-height"
|
|
105
143
|
[(model)]= "secondDateAsString"
|
|
@@ -108,10 +146,11 @@ InputDateRangePickerComponent.decorators = [
|
|
|
108
146
|
[type]="'date'"
|
|
109
147
|
[rightIcon]="rightIcon"
|
|
110
148
|
(rightIconClick)="toggleCalendar()"
|
|
111
|
-
(
|
|
149
|
+
(modelChange)="handleSecondDateChanged(secondDateAsString)"
|
|
112
150
|
(clearIconClick)="clearDate(1)"
|
|
113
151
|
(click)="handleSecondInputClick($event)"
|
|
114
152
|
[emptyPlace]="true"
|
|
153
|
+
(keyup.enter)="finalizeDates()"
|
|
115
154
|
></co-input-text>
|
|
116
155
|
</div>
|
|
117
156
|
`,
|
|
@@ -133,4 +172,4 @@ InputDateRangePickerComponent.propDecorators = {
|
|
|
133
172
|
secondInput: [{ type: ViewChild, args: ['secondInput',] }],
|
|
134
173
|
showClass: [{ type: HostBinding, args: ['class.co-input-date-range',] }]
|
|
135
174
|
};
|
|
136
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZGF0ZS1yYW5nZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2lucHV0LWRhdGUtcmFuZ2UtcGlja2VyL2lucHV0LWRhdGUtcmFuZ2UtcGlja2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUdULFVBQVUsRUFDVixXQUFXLEVBR1gsU0FBUyxFQUNULGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQ0gsOENBQThDLEVBQ2pELE1BQU0saUVBQWlFLENBQUM7QUFDekUsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQzdELE9BQU8sRUFBQyw0QkFBNEIsRUFBQyxNQUFNLDREQUE0RCxDQUFDO0FBQ3hHLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBNENyRixNQUFNLE9BQU8sNkJBQThCLFNBQVEsNEJBQTRCO0lBVXBFLFNBQVM7UUFDWixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBQ0gscUJBQXFCLENBQUMsS0FBWTtRQUNoQyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELHNCQUFzQixDQUFDLEtBQVk7UUFDakMsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFDTSxtQkFBbUIsQ0FBQyxLQUFhO1FBQ3RDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVNLHdCQUF3QjtRQUM3QixJQUFJLElBQUksQ0FBQyx1QkFBdUIsRUFBRTtZQUNoQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7U0FDdkI7SUFDSCxDQUFDO0lBRU0sU0FBUyxDQUFDLEtBQWE7UUFDMUIsSUFBSSxD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QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIENvbXBvbmVudFJlZiwgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgZm9yd2FyZFJlZixcclxuICBIb3N0QmluZGluZyxcclxuICBJbnB1dCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0NoaWxkLFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7QmFzZUlucHV0Q29tcG9uZW50fSBmcm9tICcuLi9iYXNlL2Jhc2UtaW5wdXQuY29tcG9uZW50JztcclxuaW1wb3J0IHtcclxuICAgIFNDUkVFTl9DT05GSUdfQURBUFRFUl9DT01QT05FTlRfSU5URVJGQUNFX05BTUVcclxufSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3NjcmVlbi1jb25maWctYWRhcHRlci1jb21wb25lbnQtaW50ZXJmYWNlLW5hbWUnO1xyXG5pbXBvcnQge092ZXJsYXlTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL292ZXJsYXkuc2VydmljZSc7XHJcbmltcG9ydCB7QmFzZUlucHV0RGF0ZVBpY2tlckRpcmVjdGl2ZX0gZnJvbSBcIi4uL2Jhc2UtaW5wdXQtZGF0ZS1waWNrZXIvYmFzZS1pbnB1dC1kYXRlLXBpY2tlci5kaXJlY3RpdmVcIjtcclxuaW1wb3J0IHtEb3VibGVDYWxlbmRhckNvbXBvbmVudH0gZnJvbSBcIi4uL2RvdWJsZS1jYWxlbmRhci9kb3VibGUtY2FsZW5kYXIuY29tcG9uZW50XCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnY28taW5wdXQtZGF0ZS1yYW5nZScsXHJcbiAgICB0ZW1wbGF0ZTogYFxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaW5wdXRzLXdyYXBwZXJcIiBvdmVybGF5UGFyZW50ICNwYXJlbnRGb3JPdmVybGF5PVwib3ZlcmxheVBhcmVudFwiPlxyXG4gICAgICAgIDxjby1pbnB1dC10ZXh0ICNmaXJzdElucHV0IGNsYXNzPVwibm8tZm9jdXMtbGluZSBjdXN0b20taGVpZ2h0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbKG1vZGVsKV09XCJmaXJzdERhdGVBc1N0cmluZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW25vQ2xpY2tGb2N1c109XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbcGF0dGVybl09XCIneXl5eS1NTS1kZCdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFt0eXBlXT1cIidkYXRlJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW2xlZnRJY29uXT1cImxlZnRJY29uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbbGVmdEljb25EYXRhXT1cImxlZnRJY29uRGF0YVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAoYmx1cik9XCJoYW5kbGVGaXJzdERhdGVDaGFuZ2VkKGZpcnN0RGF0ZUFzU3RyaW5nKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgKGNsZWFySWNvbkNsaWNrKT1cImNsZWFyRGF0ZSgwKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZUZpcnN0SW5wdXRDbGljaygkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbZW1wdHlQbGFjZV09XCJ0cnVlXCJcclxuICAgICAgICA+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgIDxjby1pbnB1dC10ZXh0ICNzZWNvbmRJbnB1dCBjbGFzcz1cIm5vLWZvY3VzLWxpbmUgY3VzdG9tLWhlaWdodFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgWyhtb2RlbCldPSBcInNlY29uZERhdGVBc1N0cmluZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW25vQ2xpY2tGb2N1c109XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbcGF0dGVybl09XCIneXl5eS1NTS1kZCdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFt0eXBlXT1cIidkYXRlJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW3JpZ2h0SWNvbl09XCJyaWdodEljb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIChyaWdodEljb25DbGljayk9XCJ0b2dnbGVDYWxlbmRhcigpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAoYmx1cik9XCJoYW5kbGVTZWNvbmREYXRlQ2hhbmdlZChzZWNvbmREYXRlQXNTdHJpbmcpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAoY2xlYXJJY29uQ2xpY2spPVwiY2xlYXJEYXRlKDEpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlU2Vjb25kSW5wdXRDbGljaygkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbZW1wdHlQbGFjZV09XCJ0cnVlXCJcclxuICAgICAgICA+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIGAsXHJcbiAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICBPdmVybGF5U2VydmljZSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHByb3ZpZGU6IFNDUkVFTl9DT05GSUdfQURBUFRFUl9DT01QT05FTlRfSU5URVJGQUNFX05BTUUsXHJcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IElucHV0RGF0ZVJhbmdlUGlja2VyQ29tcG9uZW50KVxyXG4gICAgICAgIH0sIHtcclxuICAgICAgICAgICAgcHJvdmlkZTogQmFzZUlucHV0RGF0ZVBpY2tlckRpcmVjdGl2ZSxcclxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IElucHV0RGF0ZVJhbmdlUGlja2VyQ29tcG9uZW50XHJcbiAgICAgICAgfV0sXHJcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbnB1dERhdGVSYW5nZVBpY2tlckNvbXBvbmVudCBleHRlbmRzIEJhc2VJbnB1dERhdGVQaWNrZXJEaXJlY3RpdmUge1xyXG5cclxuICBwdWJsaWMgZmlyc3REYXRlQXNTdHJpbmc7XHJcbiAgcHVibGljIHNlY29uZERhdGVBc1N0cmluZztcclxuXHJcbiAgcHJpdmF0ZSBfZG91YmxlQ2FsZW5kYXJDb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxEb3VibGVDYWxlbmRhckNvbXBvbmVudD47XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2ZpcnN0SW5wdXQnKSBmaXJzdElucHV0OiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ3NlY29uZElucHV0Jykgc2Vjb25kSW5wdXQ6IEVsZW1lbnRSZWY7XHJcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmNvLWlucHV0LWRhdGUtcmFuZ2UnKVxyXG4gICAgcHVibGljIHNob3dDbGFzcygpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICBoYW5kbGVGaXJzdElucHV0Q2xpY2soZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZVNlY29uZElucHV0Q2xpY2soZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICB9XHJcbiAgcHVibGljIGhhbmRsZURhdGVzU2VsZWN0ZWQoZGF0ZXM6IERhdGVbXSk6IHZvaWQge1xyXG4gICAgdGhpcy5zZXRNb2RlbChkYXRlcyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlU2Vjb25kRGF0ZVNlbGVjdGVkKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuY2xvc2VBZnRlckRhdGVTZWxlY3Rpb24pIHtcclxuICAgICAgdGhpcy50b2dnbGVDYWxlbmRhcigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGNsZWFyRGF0ZShpbmRleDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICAgIHRoaXMubW9kZWxbaW5kZXhdID0gdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHRvZ2dsZUNhbGVuZGFyKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMucmVhZG9ubHkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc2hvd0NhbGVuZGFyID0gIXRoaXMuc2hvd0NhbGVuZGFyO1xyXG5cclxuICAgIGlmICh0aGlzLnNob3dDYWxlbmRhcikge1xyXG4gICAgICB0aGlzLl9kb3VibGVDYWxlbmRhckNvbXBvbmVudFJlZiA9IHRoaXMub3ZlcmxheVNlcnZpY2UuY3JlYXRlQ29tcG9uZW50KERvdWJsZUNhbGVuZGFyQ29tcG9uZW50LCB7XHJcbiAgICAgICAgcGFyZW50Rm9yT3ZlcmxheTogdGhpcy5wYXJlbnRGb3JPdmVybGF5LFxyXG4gICAgICAgIHNlbGVjdGVkRGF0ZXM6IHRoaXMubW9kZWxcclxuICAgICAgfSwge1xyXG4gICAgICAgIGRhdGVzU2VsZWN0ZWQ6IChldmVudCkgPT4gdGhpcy5oYW5kbGVEYXRlc1NlbGVjdGVkKGV2ZW50KSxcclxuICAgICAgICBzZWNvbmREYXRlU2VsZWN0ZWQ6ICgpID0+IHRoaXMuaGFuZGxlU2Vjb25kRGF0ZVNlbGVjdGVkKCksXHJcbiAgICAgICAgY2xpY2tlZE91dHNpZGU6ICgpID0+IHRoaXMudG9nZ2xlQ2FsZW5kYXIoKVxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMub3ZlcmxheVNlcnZpY2UucmVtb3ZlQ29tcG9uZW50KHRoaXMuX2RvdWJsZUNhbGVuZGFyQ29tcG9uZW50UmVmKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVGaXJzdERhdGVDaGFuZ2VkKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICBpZiAoIXRoaXMubW9kZWwpIHtcclxuICAgICAgICB0aGlzLnNldE1vZGVsKFtdKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnNldE1vZGVsKFtuZXcgRGF0ZSh2YWx1ZSksIHRoaXMubW9kZWxbMV0gPyB0aGlzLm1vZGVsWzFdIDogbnVsbF0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVNlY29uZERhdGVDaGFuZ2VkKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICBpZiAoIXRoaXMubW9kZWwpIHtcclxuICAgICAgICB0aGlzLnNldE1vZGVsKFtdKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnNldE1vZGVsKFt0aGlzLm1vZGVsWzBdID8gdGhpcy5tb2RlbFswXSA6IG51bGwsIG5ldyBEYXRlKHZhbHVlKV0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIG1vZGVsU2V0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZXRNb2RlbEFzU3RyaW5nKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldE1vZGVsQXNTdHJpbmcoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5tb2RlbFswXSkge1xyXG4gICAgICBjb25zdCB5ZWFyID0gdGhpcy5tb2RlbFswXS50b0xvY2FsZVN0cmluZyhcImRlZmF1bHRcIiwgeyB5ZWFyOiBcIm51bWVyaWNcIiB9KTtcclxuICAgICAgY29uc3QgbW9udGggPSB0aGlzLm1vZGVsWzBdLnRvTG9jYWxlU3RyaW5nKFwiZGVmYXVsdFwiLCB7IG1vbnRoOiBcIjItZGlnaXRcIiB9KTtcclxuICAgICAgY29uc3QgZGF5ID0gdGhpcy5tb2RlbFswXS50b0xvY2FsZVN0cmluZyhcImRlZmF1bHRcIiwgeyBkYXk6IFwiMi1kaWdpdFwiIH0pO1xyXG4gICAgICB0aGlzLmZpcnN0RGF0ZUFzU3RyaW5nID0gYCR7eWVhcn0tJHttb250aH0tJHtkYXl9YDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZmlyc3REYXRlQXNTdHJpbmcgPSBgYDtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm1vZGVsWzFdKSB7XHJcbiAgICAgIGNvbnN0IHllYXIgPSB0aGlzLm1vZGVsWzFdLnRvTG9jYWxlU3RyaW5nKFwiZGVmYXVsdFwiLCB7IHllYXI6IFwibnVtZXJpY1wiIH0pO1xyXG4gICAgICBjb25zdCBtb250aCA9IHRoaXMubW9kZWxbMV0udG9Mb2NhbGVTdHJpbmcoXCJkZWZhdWx0XCIsIHsgbW9udGg6IFwiMi1kaWdpdFwiIH0pO1xyXG4gICAgICBjb25zdCBkYXkgPSB0aGlzLm1vZGVsWzFdLnRvTG9jYWxlU3RyaW5nKFwiZGVmYXVsdFwiLCB7IGRheTogXCIyLWRpZ2l0XCIgfSk7XHJcbiAgICAgIHRoaXMuc2Vjb25kRGF0ZUFzU3RyaW5nID0gYCR7eWVhcn0tJHttb250aH0tJHtkYXl9YDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2Vjb25kRGF0ZUFzU3RyaW5nID0gYGA7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
175
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZGF0ZS1yYW5nZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2lucHV0LWRhdGUtcmFuZ2UtcGlja2VyL2lucHV0LWRhdGUtcmFuZ2UtcGlja2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUdULFVBQVUsRUFDVixXQUFXLEVBR1gsU0FBUyxFQUNULGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQ0gsOENBQThDLEVBQ2pELE1BQU0saUVBQWlFLENBQUM7QUFDekUsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQzdELE9BQU8sRUFBQyw0QkFBNEIsRUFBQyxNQUFNLDREQUE0RCxDQUFDO0FBQ3hHLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBOENyRixNQUFNLE9BQU8sNkJBQThCLFNBQVEsNEJBQTRCO0lBNUMvRTs7UUFpRG1CLGtCQUFhLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFFLGFBQWE7UUFDcEQsZ0JBQVcsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUUsYUFBYTtJQXFJdkUsQ0FBQztJQTlIVSxTQUFTO1FBQ1osT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUNILHFCQUFxQixDQUFDLEtBQVk7UUFDaEMsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxLQUFZO1FBQ2pDLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBQ00sbUJBQW1CLENBQUMsS0FBYTtR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QzdDO2lCQUFDO2dCQUNOLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3hDOzs7eUJBV0UsU0FBUyxTQUFDLFlBQVk7MEJBQ3RCLFNBQVMsU0FBQyxhQUFhO3dCQUNyQixXQUFXLFNBQUMsMkJBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgQ29tcG9uZW50UmVmLCBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBmb3J3YXJkUmVmLFxyXG4gIEhvc3RCaW5kaW5nLFxyXG4gIElucHV0LFxyXG4gIE91dHB1dCxcclxuICBWaWV3Q2hpbGQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb25cclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtCYXNlSW5wdXRDb21wb25lbnR9IGZyb20gJy4uL2Jhc2UvYmFzZS1pbnB1dC5jb21wb25lbnQnO1xyXG5pbXBvcnQge1xyXG4gICAgU0NSRUVOX0NPTkZJR19BREFQVEVSX0NPTVBPTkVOVF9JTlRFUkZBQ0VfTkFNRVxyXG59IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvc2NyZWVuLWNvbmZpZy1hZGFwdGVyLWNvbXBvbmVudC1pbnRlcmZhY2UtbmFtZSc7XHJcbmltcG9ydCB7T3ZlcmxheVNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2Uvb3ZlcmxheS5zZXJ2aWNlJztcclxuaW1wb3J0IHtCYXNlSW5wdXREYXRlUGlja2VyRGlyZWN0aXZlfSBmcm9tIFwiLi4vYmFzZS1pbnB1dC1kYXRlLXBpY2tlci9iYXNlLWlucHV0LWRhdGUtcGlja2VyLmRpcmVjdGl2ZVwiO1xyXG5pbXBvcnQge0RvdWJsZUNhbGVuZGFyQ29tcG9uZW50fSBmcm9tIFwiLi4vZG91YmxlLWNhbGVuZGFyL2RvdWJsZS1jYWxlbmRhci5jb21wb25lbnRcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdjby1pbnB1dC1kYXRlLXJhbmdlJyxcclxuICAgIHRlbXBsYXRlOiBgXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dHMtd3JhcHBlclwiIG92ZXJsYXlQYXJlbnQgI3BhcmVudEZvck92ZXJsYXk9XCJvdmVybGF5UGFyZW50XCI+XHJcbiAgICAgICAgPGNvLWlucHV0LXRleHQgI2ZpcnN0SW5wdXQgY2xhc3M9XCJuby1mb2N1cy1saW5lIGN1c3RvbS1oZWlnaHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFsobW9kZWwpXT1cImZpcnN0RGF0ZUFzU3RyaW5nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbbm9DbGlja0ZvY3VzXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtwYXR0ZXJuXT1cIid5eXl5LU1NLWRkJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW3R5cGVdPVwiJ2RhdGUnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbbGVmdEljb25dPVwibGVmdEljb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtsZWZ0SWNvbkRhdGFdPVwibGVmdEljb25EYXRhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJoYW5kbGVGaXJzdERhdGVDaGFuZ2VkKGZpcnN0RGF0ZUFzU3RyaW5nKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgKGNsZWFySWNvbkNsaWNrKT1cImNsZWFyRGF0ZSgwKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZUZpcnN0SW5wdXRDbGljaygkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbZW1wdHlQbGFjZV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAoa2V5dXAuZW50ZXIpPVwiZmluYWxpemVEYXRlcygpXCJcclxuICAgICAgICA+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgIDxjby1pbnB1dC10ZXh0ICNzZWNvbmRJbnB1dCBjbGFzcz1cIm5vLWZvY3VzLWxpbmUgY3VzdG9tLWhlaWdodFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgWyhtb2RlbCldPSBcInNlY29uZERhdGVBc1N0cmluZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW25vQ2xpY2tGb2N1c109XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbcGF0dGVybl09XCIneXl5eS1NTS1kZCdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFt0eXBlXT1cIidkYXRlJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW3JpZ2h0SWNvbl09XCJyaWdodEljb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIChyaWdodEljb25DbGljayk9XCJ0b2dnbGVDYWxlbmRhcigpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwiaGFuZGxlU2Vjb25kRGF0ZUNoYW5nZWQoc2Vjb25kRGF0ZUFzU3RyaW5nKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgKGNsZWFySWNvbkNsaWNrKT1cImNsZWFyRGF0ZSgxKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZVNlY29uZElucHV0Q2xpY2soJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW2VtcHR5UGxhY2VdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgKGtleXVwLmVudGVyKT1cImZpbmFsaXplRGF0ZXMoKVwiXHJcbiAgICAgICAgPjwvY28taW5wdXQtdGV4dD5cclxuICAgICAgPC9kaXY+XHJcbiAgICBgLFxyXG4gICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgT3ZlcmxheVNlcnZpY2UsXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBwcm92aWRlOiBTQ1JFRU5fQ09ORklHX0FEQVBURVJfQ09NUE9ORU5UX0lOVEVSRkFDRV9OQU1FLFxyXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBJbnB1dERhdGVSYW5nZVBpY2tlckNvbXBvbmVudClcclxuICAgICAgICB9LCB7XHJcbiAgICAgICAgICAgIHByb3ZpZGU6IEJhc2VJbnB1dERhdGVQaWNrZXJEaXJlY3RpdmUsXHJcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBJbnB1dERhdGVSYW5nZVBpY2tlckNvbXBvbmVudFxyXG4gICAgICAgIH1dLFxyXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW5wdXREYXRlUmFuZ2VQaWNrZXJDb21wb25lbnQgZXh0ZW5kcyBCYXNlSW5wdXREYXRlUGlja2VyRGlyZWN0aXZlIHtcclxuXHJcbiAgcHVibGljIGZpcnN0RGF0ZUFzU3RyaW5nO1xyXG4gIHB1YmxpYyBzZWNvbmREYXRlQXNTdHJpbmc7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgRUFSTElFU1RfREFURSA9IG5ldyBEYXRlKDE5MDAsIDAsIDEpOyAgLy8gMTkwMC0wMS0wMVxyXG4gIHByaXZhdGUgcmVhZG9ubHkgTEFURVNUX0RBVEUgPSBuZXcgRGF0ZSgyMTAwLCAxMSwgMzEpOyAgLy8gMjEwMC0xMi0zMVxyXG5cclxuICBwcml2YXRlIF9kb3VibGVDYWxlbmRhckNvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPERvdWJsZUNhbGVuZGFyQ29tcG9uZW50PjtcclxuXHJcbiAgQFZpZXdDaGlsZCgnZmlyc3RJbnB1dCcpIGZpcnN0SW5wdXQ6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnc2Vjb25kSW5wdXQnKSBzZWNvbmRJbnB1dDogRWxlbWVudFJlZjtcclxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuY28taW5wdXQtZGF0ZS1yYW5nZScpXHJcbiAgICBwdWJsaWMgc2hvd0NsYXNzKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gIGhhbmRsZUZpcnN0SW5wdXRDbGljayhldmVudDogRXZlbnQpOiB2b2lkIHtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlU2Vjb25kSW5wdXRDbGljayhldmVudDogRXZlbnQpOiB2b2lkIHtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gIH1cclxuICBwdWJsaWMgaGFuZGxlRGF0ZXNTZWxlY3RlZChkYXRlczogRGF0ZVtdKTogdm9pZCB7XHJcbiAgICB0aGlzLnNldE1vZGVsKGRhdGVzKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVTZWNvbmREYXRlU2VsZWN0ZWQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5jbG9zZUFmdGVyRGF0ZVNlbGVjdGlvbikge1xyXG4gICAgICB0aGlzLnRvZ2dsZUNhbGVuZGFyKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2xlYXJEYXRlKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcclxuICAgICAgdGhpcy5tb2RlbFtpbmRleF0gPSB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdG9nZ2xlQ2FsZW5kYXIoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5yZWFkb25seSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zaG93Q2FsZW5kYXIgPSAhdGhpcy5zaG93Q2FsZW5kYXI7XHJcblxyXG4gICAgaWYgKHRoaXMuc2hvd0NhbGVuZGFyKSB7XHJcbiAgICAgIHRoaXMuX2RvdWJsZUNhbGVuZGFyQ29tcG9uZW50UmVmID0gdGhpcy5vdmVybGF5U2VydmljZS5jcmVhdGVDb21wb25lbnQoRG91YmxlQ2FsZW5kYXJDb21wb25lbnQsIHtcclxuICAgICAgICBwYXJlbnRGb3JPdmVybGF5OiB0aGlzLnBhcmVudEZvck92ZXJsYXksXHJcbiAgICAgICAgc2VsZWN0ZWREYXRlczogdGhpcy5tb2RlbFxyXG4gICAgICB9LCB7XHJcbiAgICAgICAgZGF0ZXNTZWxlY3RlZDogKGV2ZW50KSA9PiB0aGlzLmhhbmRsZURhdGVzU2VsZWN0ZWQoZXZlbnQpLFxyXG4gICAgICAgIHNlY29uZERhdGVTZWxlY3RlZDogKCkgPT4gdGhpcy5oYW5kbGVTZWNvbmREYXRlU2VsZWN0ZWQoKSxcclxuICAgICAgICBjbGlja2VkT3V0c2lkZTogKCkgPT4gdGhpcy50b2dnbGVDYWxlbmRhcigpXHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5vdmVybGF5U2VydmljZS5yZW1vdmVDb21wb25lbnQodGhpcy5fZG91YmxlQ2FsZW5kYXJDb21wb25lbnRSZWYpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUZpcnN0RGF0ZUNoYW5nZWQodmFsdWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLmlzVmFsaWREYXRlU3RyaW5nKHZhbHVlKSkge1xyXG4gICAgICAgIGNvbnN0IFt5ZWFyLCBtb250aCwgZGF5XSA9IHZhbHVlLnNwbGl0KCctJykubWFwKE51bWJlcik7XHJcbiAgICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHllYXIsIG1vbnRoIC0gMSwgZGF5KTtcclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLm1vZGVsKSB0aGlzLnNldE1vZGVsKFtdKTtcclxuICAgICAgICB0aGlzLnNldE1vZGVsKFtkYXRlLCB0aGlzLm1vZGVsPy5bMV0gPz8gbnVsbF0pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVTZWNvbmREYXRlQ2hhbmdlZCh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgaWYgKHRoaXMuaXNWYWxpZERhdGVTdHJpbmcodmFsdWUpKSB7XHJcbiAgICAgICAgY29uc3QgW3llYXIsIG1vbnRoLCBkYXldID0gdmFsdWUuc3BsaXQoJy0nKS5tYXAoTnVtYmVyKTtcclxuICAgICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoeWVhciwgbW9udGggLSAxLCBkYXkpO1xyXG5cclxuICAgICAgICBpZiAoIXRoaXMubW9kZWwpIHRoaXMuc2V0TW9kZWwoW10pO1xyXG4gICAgICAgIHRoaXMuc2V0TW9kZWwoW3RoaXMubW9kZWw/LlswXSA/PyBudWxsLCBkYXRlXSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGZpbmFsaXplRGF0ZXMoKTogdm9pZCB7XHJcbiAgICBsZXQgc3RhcnREYXRlID0gdGhpcy5FQVJMSUVTVF9EQVRFO1xyXG4gICAgbGV0IGVuZERhdGUgPSB0aGlzLkxBVEVTVF9EQVRFO1xyXG5cclxuICAgIGlmICh0aGlzLmlzVmFsaWREYXRlU3RyaW5nKHRoaXMuZmlyc3REYXRlQXNTdHJpbmcpKSB7XHJcbiAgICAgIGNvbnN0IFt5LCBtLCBkXSA9IHRoaXMuZmlyc3REYXRlQXNTdHJpbmcuc3BsaXQoJy0nKS5tYXAoTnVtYmVyKTtcclxuICAgICAgc3RhcnREYXRlID0gbmV3IERhdGUoeSwgbSAtIDEsIGQpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmlzVmFsaWREYXRlU3RyaW5nKHRoaXMuc2Vjb25kRGF0ZUFzU3RyaW5nKSkge1xyXG4gICAgICBjb25zdCBbeSwgbSwgZF0gPSB0aGlzLnNlY29uZERhdGVBc1N0cmluZy5zcGxpdCgnLScpLm1hcChOdW1iZXIpO1xyXG4gICAgICBlbmREYXRlID0gbmV3IERhdGUoeSwgbSAtIDEsIGQpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc2V0TW9kZWwoW3N0YXJ0RGF0ZSwgZW5kRGF0ZV0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGZpbmFsaXplKCk6IHZvaWQge1xyXG4gICAgdGhpcy5maW5hbGl6ZURhdGVzPy4oKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNWYWxpZERhdGVTdHJpbmcodmFsdWU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgcmVnZXggPSAvXlxcZHs0fS1cXGR7Mn0tXFxkezJ9JC87XHJcbiAgICBpZiAoIXJlZ2V4LnRlc3QodmFsdWUpKSByZXR1cm4gZmFsc2U7XHJcblxyXG4gICAgY29uc3QgW3llYXJTdHIsIG1vbnRoU3RyLCBkYXlTdHJdID0gdmFsdWUuc3BsaXQoJy0nKTtcclxuICAgIGNvbnN0IFt5ZWFyLCBtb250aCwgZGF5XSA9IFtOdW1iZXIoeWVhclN0ciksIE51bWJlcihtb250aFN0ciksIE51bWJlcihkYXlTdHIpXTtcclxuXHJcbiAgICAvLyBQcmV2ZW50IGFuY2llbnQgeWVhcnMgb3IgdG9vLWZhciBmdXR1cmVcclxuICAgIGlmICh5ZWFyIDwgMTkwMCB8fCB5ZWFyID4gMjEwMCkgcmV0dXJuIGZhbHNlO1xyXG5cclxuICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh5ZWFyLCBtb250aCAtIDEsIGRheSk7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICBkYXRlLmdldEZ1bGxZZWFyKCkgPT09IHllYXIgJiZcclxuICAgICAgZGF0ZS5nZXRNb250aCgpID09PSBtb250aCAtIDEgJiZcclxuICAgICAgZGF0ZS5nZXREYXRlKCkgPT09IGRheVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBtb2RlbFNldCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2V0TW9kZWxBc1N0cmluZygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRNb2RlbEFzU3RyaW5nKCk6IHZvaWQge1xyXG4gICAgY29uc3QgaXNTdGFydERlZmF1bHQgPSB0aGlzLm1vZGVsWzBdPy5nZXRUaW1lKCkgPT09IHRoaXMuRUFSTElFU1RfREFURS5nZXRUaW1lKCk7XHJcbiAgICBjb25zdCBpc0VuZERlZmF1bHQgPSB0aGlzLm1vZGVsWzFdPy5nZXRUaW1lKCkgPT09IHRoaXMuTEFURVNUX0RBVEUuZ2V0VGltZSgpO1xyXG5cclxuICAgIHRoaXMuZmlyc3REYXRlQXNTdHJpbmcgPSAoIXRoaXMubW9kZWxbMF0gfHwgaXNTdGFydERlZmF1bHQpID8gJycgOiB0aGlzLmZvcm1hdERhdGUodGhpcy5tb2RlbFswXSk7XHJcbiAgICB0aGlzLnNlY29uZERhdGVBc1N0cmluZyA9ICghdGhpcy5tb2RlbFsxXSB8fCBpc0VuZERlZmF1bHQpID8gJycgOiB0aGlzLmZvcm1hdERhdGUodGhpcy5tb2RlbFsxXSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZvcm1hdERhdGUoZGF0ZTogRGF0ZSk6IHN0cmluZyB7XHJcbiAgICBjb25zdCB5ZWFyID0gZGF0ZS50b0xvY2FsZVN0cmluZyhcImRlZmF1bHRcIiwgeyB5ZWFyOiBcIm51bWVyaWNcIiB9KTtcclxuICAgIGNvbnN0IG1vbnRoID0gZGF0ZS50b0xvY2FsZVN0cmluZyhcImRlZmF1bHRcIiwgeyBtb250aDogXCIyLWRpZ2l0XCIgfSk7XHJcbiAgICBjb25zdCBkYXkgPSBkYXRlLnRvTG9jYWxlU3RyaW5nKFwiZGVmYXVsdFwiLCB7IGRheTogXCIyLWRpZ2l0XCIgfSk7XHJcbiAgICByZXR1cm4gYCR7eWVhcn0tJHttb250aH0tJHtkYXl9YDtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -5446,6 +5446,27 @@ class InputDatePickerComponent extends BaseInputDatePickerDirective {
|
|
|
5446
5446
|
this.overlayService.removeComponent(this._calendarComponentRef);
|
|
5447
5447
|
}
|
|
5448
5448
|
}
|
|
5449
|
+
finalizeDate() {
|
|
5450
|
+
if (this.isValidDateString(this.modelAsString)) {
|
|
5451
|
+
const [year, month, day] = this.modelAsString.split('-').map(Number);
|
|
5452
|
+
const date = new Date(year, month - 1, day);
|
|
5453
|
+
this.setModel(date);
|
|
5454
|
+
}
|
|
5455
|
+
}
|
|
5456
|
+
finalize() {
|
|
5457
|
+
var _a;
|
|
5458
|
+
(_a = this.finalizeDate) === null || _a === void 0 ? void 0 : _a.call(this); // re-use the same logic from (keyup.enter)
|
|
5459
|
+
}
|
|
5460
|
+
isValidDateString(value) {
|
|
5461
|
+
const regex = /^\d{4}-\d{2}-\d{2}$/;
|
|
5462
|
+
if (!regex.test(value))
|
|
5463
|
+
return false;
|
|
5464
|
+
const [year, month, day] = value.split('-').map(Number);
|
|
5465
|
+
const date = new Date(year, month - 1, day);
|
|
5466
|
+
return (date.getFullYear() === year &&
|
|
5467
|
+
date.getMonth() === month - 1 &&
|
|
5468
|
+
date.getDate() === day);
|
|
5469
|
+
}
|
|
5449
5470
|
handleDateChange(value) {
|
|
5450
5471
|
if (value) {
|
|
5451
5472
|
this.setModel(new Date(value));
|
|
@@ -5485,9 +5506,10 @@ InputDatePickerComponent.decorators = [
|
|
|
5485
5506
|
[placeholder]="placeholder"
|
|
5486
5507
|
(leftIconClick)="leftIconClick.emit($event)"
|
|
5487
5508
|
(rightIconClick)="toggleCalendar(true)"
|
|
5488
|
-
(
|
|
5509
|
+
(modelChange)="modelAsString = $event"
|
|
5489
5510
|
(clearIconClick)="handleClearIconClicked()"
|
|
5490
5511
|
[emptyPlace]="true"
|
|
5512
|
+
(keyup.enter)="finalizeDate()"
|
|
5491
5513
|
></co-input-text>
|
|
5492
5514
|
`,
|
|
5493
5515
|
providers: [
|
|
@@ -6919,6 +6941,11 @@ DoubleCalendarModule.decorators = [
|
|
|
6919
6941
|
];
|
|
6920
6942
|
|
|
6921
6943
|
class InputDateRangePickerComponent extends BaseInputDatePickerDirective {
|
|
6944
|
+
constructor() {
|
|
6945
|
+
super(...arguments);
|
|
6946
|
+
this.EARLIEST_DATE = new Date(1900, 0, 1); // 1900-01-01
|
|
6947
|
+
this.LATEST_DATE = new Date(2100, 11, 31); // 2100-12-31
|
|
6948
|
+
}
|
|
6922
6949
|
showClass() {
|
|
6923
6950
|
return true;
|
|
6924
6951
|
}
|
|
@@ -6959,43 +6986,75 @@ class InputDateRangePickerComponent extends BaseInputDatePickerDirective {
|
|
|
6959
6986
|
}
|
|
6960
6987
|
}
|
|
6961
6988
|
handleFirstDateChanged(value) {
|
|
6962
|
-
|
|
6963
|
-
|
|
6964
|
-
|
|
6989
|
+
setTimeout(() => {
|
|
6990
|
+
var _a, _b;
|
|
6991
|
+
if (this.isValidDateString(value)) {
|
|
6992
|
+
const [year, month, day] = value.split('-').map(Number);
|
|
6993
|
+
const date = new Date(year, month - 1, day);
|
|
6994
|
+
if (!this.model)
|
|
6995
|
+
this.setModel([]);
|
|
6996
|
+
this.setModel([date, (_b = (_a = this.model) === null || _a === void 0 ? void 0 : _a[1]) !== null && _b !== void 0 ? _b : null]);
|
|
6965
6997
|
}
|
|
6966
|
-
|
|
6967
|
-
}
|
|
6998
|
+
});
|
|
6968
6999
|
}
|
|
6969
7000
|
handleSecondDateChanged(value) {
|
|
6970
|
-
|
|
6971
|
-
|
|
6972
|
-
|
|
7001
|
+
setTimeout(() => {
|
|
7002
|
+
var _a, _b;
|
|
7003
|
+
if (this.isValidDateString(value)) {
|
|
7004
|
+
const [year, month, day] = value.split('-').map(Number);
|
|
7005
|
+
const date = new Date(year, month - 1, day);
|
|
7006
|
+
if (!this.model)
|
|
7007
|
+
this.setModel([]);
|
|
7008
|
+
this.setModel([(_b = (_a = this.model) === null || _a === void 0 ? void 0 : _a[0]) !== null && _b !== void 0 ? _b : null, date]);
|
|
6973
7009
|
}
|
|
6974
|
-
|
|
7010
|
+
});
|
|
7011
|
+
}
|
|
7012
|
+
finalizeDates() {
|
|
7013
|
+
let startDate = this.EARLIEST_DATE;
|
|
7014
|
+
let endDate = this.LATEST_DATE;
|
|
7015
|
+
if (this.isValidDateString(this.firstDateAsString)) {
|
|
7016
|
+
const [y, m, d] = this.firstDateAsString.split('-').map(Number);
|
|
7017
|
+
startDate = new Date(y, m - 1, d);
|
|
6975
7018
|
}
|
|
7019
|
+
if (this.isValidDateString(this.secondDateAsString)) {
|
|
7020
|
+
const [y, m, d] = this.secondDateAsString.split('-').map(Number);
|
|
7021
|
+
endDate = new Date(y, m - 1, d);
|
|
7022
|
+
}
|
|
7023
|
+
this.setModel([startDate, endDate]);
|
|
7024
|
+
}
|
|
7025
|
+
finalize() {
|
|
7026
|
+
var _a;
|
|
7027
|
+
(_a = this.finalizeDates) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
7028
|
+
}
|
|
7029
|
+
isValidDateString(value) {
|
|
7030
|
+
const regex = /^\d{4}-\d{2}-\d{2}$/;
|
|
7031
|
+
if (!regex.test(value))
|
|
7032
|
+
return false;
|
|
7033
|
+
const [yearStr, monthStr, dayStr] = value.split('-');
|
|
7034
|
+
const [year, month, day] = [Number(yearStr), Number(monthStr), Number(dayStr)];
|
|
7035
|
+
// Prevent ancient years or too-far future
|
|
7036
|
+
if (year < 1900 || year > 2100)
|
|
7037
|
+
return false;
|
|
7038
|
+
const date = new Date(year, month - 1, day);
|
|
7039
|
+
return (date.getFullYear() === year &&
|
|
7040
|
+
date.getMonth() === month - 1 &&
|
|
7041
|
+
date.getDate() === day);
|
|
6976
7042
|
}
|
|
6977
7043
|
modelSet() {
|
|
6978
7044
|
this.setModelAsString();
|
|
6979
7045
|
}
|
|
6980
7046
|
setModelAsString() {
|
|
6981
|
-
|
|
6982
|
-
|
|
6983
|
-
|
|
6984
|
-
|
|
6985
|
-
|
|
6986
|
-
|
|
6987
|
-
|
|
6988
|
-
|
|
6989
|
-
}
|
|
6990
|
-
|
|
6991
|
-
|
|
6992
|
-
const month = this.model[1].toLocaleString("default", { month: "2-digit" });
|
|
6993
|
-
const day = this.model[1].toLocaleString("default", { day: "2-digit" });
|
|
6994
|
-
this.secondDateAsString = `${year}-${month}-${day}`;
|
|
6995
|
-
}
|
|
6996
|
-
else {
|
|
6997
|
-
this.secondDateAsString = ``;
|
|
6998
|
-
}
|
|
7047
|
+
var _a, _b;
|
|
7048
|
+
const isStartDefault = ((_a = this.model[0]) === null || _a === void 0 ? void 0 : _a.getTime()) === this.EARLIEST_DATE.getTime();
|
|
7049
|
+
const isEndDefault = ((_b = this.model[1]) === null || _b === void 0 ? void 0 : _b.getTime()) === this.LATEST_DATE.getTime();
|
|
7050
|
+
this.firstDateAsString = (!this.model[0] || isStartDefault) ? '' : this.formatDate(this.model[0]);
|
|
7051
|
+
this.secondDateAsString = (!this.model[1] || isEndDefault) ? '' : this.formatDate(this.model[1]);
|
|
7052
|
+
}
|
|
7053
|
+
formatDate(date) {
|
|
7054
|
+
const year = date.toLocaleString("default", { year: "numeric" });
|
|
7055
|
+
const month = date.toLocaleString("default", { month: "2-digit" });
|
|
7056
|
+
const day = date.toLocaleString("default", { day: "2-digit" });
|
|
7057
|
+
return `${year}-${month}-${day}`;
|
|
6999
7058
|
}
|
|
7000
7059
|
}
|
|
7001
7060
|
InputDateRangePickerComponent.decorators = [
|
|
@@ -7011,10 +7070,11 @@ InputDateRangePickerComponent.decorators = [
|
|
|
7011
7070
|
[leftIcon]="leftIcon"
|
|
7012
7071
|
[leftIconData]="leftIconData"
|
|
7013
7072
|
[placeholder]="placeholder"
|
|
7014
|
-
(
|
|
7073
|
+
(modelChange)="handleFirstDateChanged(firstDateAsString)"
|
|
7015
7074
|
(clearIconClick)="clearDate(0)"
|
|
7016
7075
|
(click)="handleFirstInputClick($event)"
|
|
7017
7076
|
[emptyPlace]="true"
|
|
7077
|
+
(keyup.enter)="finalizeDates()"
|
|
7018
7078
|
></co-input-text>
|
|
7019
7079
|
<co-input-text #secondInput class="no-focus-line custom-height"
|
|
7020
7080
|
[(model)]= "secondDateAsString"
|
|
@@ -7023,10 +7083,11 @@ InputDateRangePickerComponent.decorators = [
|
|
|
7023
7083
|
[type]="'date'"
|
|
7024
7084
|
[rightIcon]="rightIcon"
|
|
7025
7085
|
(rightIconClick)="toggleCalendar()"
|
|
7026
|
-
(
|
|
7086
|
+
(modelChange)="handleSecondDateChanged(secondDateAsString)"
|
|
7027
7087
|
(clearIconClick)="clearDate(1)"
|
|
7028
7088
|
(click)="handleSecondInputClick($event)"
|
|
7029
7089
|
[emptyPlace]="true"
|
|
7090
|
+
(keyup.enter)="finalizeDates()"
|
|
7030
7091
|
></co-input-text>
|
|
7031
7092
|
</div>
|
|
7032
7093
|
`,
|
|
@@ -12139,6 +12200,13 @@ class FilterItemComponent {
|
|
|
12139
12200
|
});
|
|
12140
12201
|
}
|
|
12141
12202
|
onButtonClicked() {
|
|
12203
|
+
var _a, _b;
|
|
12204
|
+
if ((_a = this.dateInput) === null || _a === void 0 ? void 0 : _a.finalize) {
|
|
12205
|
+
this.dateInput.finalize();
|
|
12206
|
+
}
|
|
12207
|
+
if ((_b = this.dateRangeInput) === null || _b === void 0 ? void 0 : _b.finalize) {
|
|
12208
|
+
this.dateRangeInput.finalize();
|
|
12209
|
+
}
|
|
12142
12210
|
this.filterButtonClicked.emit();
|
|
12143
12211
|
}
|
|
12144
12212
|
uncheckForSingleSelect(model) {
|
|
@@ -12566,15 +12634,17 @@ FilterItemComponent.decorators = [
|
|
|
12566
12634
|
</div>
|
|
12567
12635
|
<div class="co-filter-item-dateField-content" *ngIf="mode === modes.DateField">
|
|
12568
12636
|
<co-input-date
|
|
12637
|
+
#dateInput
|
|
12569
12638
|
[(model)]="model" [readonly]="readonly"
|
|
12570
12639
|
(modelChange)="handleModelChange($event)"
|
|
12571
12640
|
></co-input-date>
|
|
12572
12641
|
</div>
|
|
12573
12642
|
<div class="co-filter-item-dateField-content" *ngIf="mode === modes.DateRangeField">
|
|
12574
12643
|
<co-input-date-range [readonly]="readonly"
|
|
12644
|
+
#dateRangeInput
|
|
12575
12645
|
[model]="[dateRangeStart, dateRangeEnd]"
|
|
12576
12646
|
(modelChange)="handleModelChange($event)"
|
|
12577
|
-
[placeholder]="'
|
|
12647
|
+
[placeholder]="'Kies datum' | coreLocalize">
|
|
12578
12648
|
</co-input-date-range>
|
|
12579
12649
|
</div>
|
|
12580
12650
|
</ng-template>
|
|
@@ -12618,6 +12688,8 @@ FilterItemComponent.propDecorators = {
|
|
|
12618
12688
|
collectionChange: [{ type: Output }],
|
|
12619
12689
|
filterButtonClicked: [{ type: Output }],
|
|
12620
12690
|
hasClass: [{ type: HostBinding, args: ["class.co-filter-item",] }],
|
|
12691
|
+
dateInput: [{ type: ViewChild, args: ['dateInput',] }],
|
|
12692
|
+
dateRangeInput: [{ type: ViewChild, args: ['dateRangeInput',] }],
|
|
12621
12693
|
hidden: [{ type: HostBinding, args: ['class.co-hidden',] }]
|
|
12622
12694
|
};
|
|
12623
12695
|
|