@skyux/datetime 8.6.0 → 9.0.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/documentation.json +8 -8
- package/esm2022/lib/modules/date-pipe/date-format-utility.mjs +45 -0
- package/{esm2020 → esm2022}/lib/modules/date-pipe/date-pipe.module.mjs +5 -5
- package/esm2022/lib/modules/date-pipe/date.pipe.mjs +67 -0
- package/esm2022/lib/modules/date-pipe/fuzzy-date.pipe.mjs +47 -0
- package/{esm2020 → esm2022}/lib/modules/date-range-picker/date-range-picker-end-date-resource-key.pipe.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modules/date-range-picker/date-range-picker-start-date-resource-key.pipe.mjs +4 -4
- package/esm2022/lib/modules/date-range-picker/date-range-picker.component.mjs +518 -0
- package/{esm2020 → esm2022}/lib/modules/date-range-picker/date-range-picker.module.mjs +19 -19
- package/esm2022/lib/modules/date-range-picker/date-range.service.mjs +97 -0
- package/esm2022/lib/modules/date-range-picker/types/date-range-calculator.mjs +54 -0
- package/esm2022/lib/modules/datepicker/date-formatter.mjs +38 -0
- package/esm2022/lib/modules/datepicker/datepicker-adapter.service.mjs +23 -0
- package/esm2022/lib/modules/datepicker/datepicker-calendar-inner.component.mjs +332 -0
- package/esm2022/lib/modules/datepicker/datepicker-calendar.component.mjs +95 -0
- package/{esm2020 → esm2022}/lib/modules/datepicker/datepicker-config.service.mjs +4 -4
- package/esm2022/lib/modules/datepicker/datepicker-input-fuzzy.directive.mjs +487 -0
- package/esm2022/lib/modules/datepicker/datepicker-input.directive.mjs +534 -0
- package/esm2022/lib/modules/datepicker/datepicker.component.mjs +327 -0
- package/{esm2020 → esm2022}/lib/modules/datepicker/datepicker.module.mjs +35 -35
- package/{esm2020 → esm2022}/lib/modules/datepicker/datepicker.service.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modules/datepicker/daypicker-button.component.mjs +4 -4
- package/esm2022/lib/modules/datepicker/daypicker-cell.component.mjs +128 -0
- package/esm2022/lib/modules/datepicker/daypicker.component.mjs +224 -0
- package/esm2022/lib/modules/datepicker/fuzzy-date.service.mjs +412 -0
- package/esm2022/lib/modules/datepicker/monthpicker.component.mjs +80 -0
- package/{esm2020 → esm2022}/lib/modules/datepicker/yearpicker.component.mjs +53 -54
- package/{esm2020 → esm2022}/lib/modules/shared/sky-datetime-resources.module.mjs +11 -11
- package/esm2022/lib/modules/timepicker/timepicker.component.mjs +396 -0
- package/esm2022/lib/modules/timepicker/timepicker.directive.mjs +237 -0
- package/{esm2020 → esm2022}/lib/modules/timepicker/timepicker.module.mjs +17 -17
- package/esm2022/testing/datepicker-fixture.mjs +55 -0
- package/esm2022/testing/timepicker-fixture.mjs +52 -0
- package/fesm2022/skyux-datetime-testing.mjs +112 -0
- package/{fesm2020 → fesm2022}/skyux-datetime-testing.mjs.map +1 -1
- package/fesm2022/skyux-datetime.mjs +5030 -0
- package/fesm2022/skyux-datetime.mjs.map +1 -0
- package/lib/modules/date-range-picker/date-range-picker.component.d.ts +1 -1
- package/lib/modules/datepicker/datepicker-calendar-inner.component.d.ts +1 -1
- package/lib/modules/datepicker/datepicker-calendar.component.d.ts +1 -1
- package/lib/modules/datepicker/datepicker-input-fuzzy.directive.d.ts +1 -1
- package/lib/modules/datepicker/datepicker-input.directive.d.ts +1 -1
- package/lib/modules/datepicker/datepicker.component.d.ts +1 -1
- package/lib/modules/datepicker/daypicker-button.component.d.ts +1 -1
- package/lib/modules/datepicker/daypicker-cell.component.d.ts +1 -1
- package/lib/modules/datepicker/daypicker.component.d.ts +1 -1
- package/lib/modules/timepicker/timepicker.directive.d.ts +1 -1
- package/package.json +19 -27
- package/esm2020/lib/modules/date-pipe/date-format-utility.mjs +0 -45
- package/esm2020/lib/modules/date-pipe/date.pipe.mjs +0 -70
- package/esm2020/lib/modules/date-pipe/fuzzy-date.pipe.mjs +0 -50
- package/esm2020/lib/modules/date-range-picker/date-range-picker.component.mjs +0 -494
- package/esm2020/lib/modules/date-range-picker/date-range.service.mjs +0 -100
- package/esm2020/lib/modules/date-range-picker/types/date-range-calculator.mjs +0 -53
- package/esm2020/lib/modules/datepicker/date-formatter.mjs +0 -38
- package/esm2020/lib/modules/datepicker/datepicker-adapter.service.mjs +0 -26
- package/esm2020/lib/modules/datepicker/datepicker-calendar-inner.component.mjs +0 -333
- package/esm2020/lib/modules/datepicker/datepicker-calendar.component.mjs +0 -96
- package/esm2020/lib/modules/datepicker/datepicker-input-fuzzy.directive.mjs +0 -462
- package/esm2020/lib/modules/datepicker/datepicker-input.directive.mjs +0 -496
- package/esm2020/lib/modules/datepicker/datepicker.component.mjs +0 -319
- package/esm2020/lib/modules/datepicker/daypicker-cell.component.mjs +0 -126
- package/esm2020/lib/modules/datepicker/daypicker.component.mjs +0 -216
- package/esm2020/lib/modules/datepicker/fuzzy-date.service.mjs +0 -392
- package/esm2020/lib/modules/datepicker/monthpicker.component.mjs +0 -81
- package/esm2020/lib/modules/timepicker/timepicker.component.mjs +0 -389
- package/esm2020/lib/modules/timepicker/timepicker.directive.mjs +0 -236
- package/esm2020/testing/datepicker-fixture.mjs +0 -58
- package/esm2020/testing/timepicker-fixture.mjs +0 -55
- package/fesm2015/skyux-datetime-testing.mjs +0 -117
- package/fesm2015/skyux-datetime-testing.mjs.map +0 -1
- package/fesm2015/skyux-datetime.mjs +0 -4925
- package/fesm2015/skyux-datetime.mjs.map +0 -1
- package/fesm2020/skyux-datetime-testing.mjs +0 -117
- package/fesm2020/skyux-datetime.mjs +0 -4895
- package/fesm2020/skyux-datetime.mjs.map +0 -1
- /package/{esm2020 → esm2022}/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/date-range-picker/types/date-range-calculation.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/date-range-picker/types/date-range-calculator-config.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/date-range-picker/types/date-range-calculator-date-range-function.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/date-range-picker/types/date-range-calculator-id.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/date-range-picker/types/date-range-calculator-type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/date-range-picker/types/date-range-calculator-validate-function.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/date-range-picker/types/date-range-default-calculator-config.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/date-range-picker/types/date-range-default-calculator-configs.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/date-range-picker/types/date-range-relative-value.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/date-range-picker/types/date-range.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/datepicker/datepicker-calendar-change.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/datepicker/datepicker-custom-date.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/datepicker/datepicker-date.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/datepicker/fuzzy-date.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/timepicker/timepicker-time-format-type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/timepicker/timepicker-time-output.mjs +0 -0
- /package/{esm2020 → esm2022}/skyux-datetime.mjs +0 -0
- /package/{esm2020 → esm2022}/testing/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/testing/skyux-datetime-testing.mjs +0 -0
@@ -0,0 +1,332 @@
|
|
1
|
+
import { Component, EventEmitter, Input, Output, ViewEncapsulation, } from '@angular/core';
|
2
|
+
import { Subject } from 'rxjs';
|
3
|
+
import { SkyDateFormatter } from './date-formatter';
|
4
|
+
import * as i0 from "@angular/core";
|
5
|
+
import * as i1 from "@angular/common";
|
6
|
+
let nextDatepickerId = 0;
|
7
|
+
/**
|
8
|
+
* @internal
|
9
|
+
*/
|
10
|
+
export class SkyDatepickerCalendarInnerComponent {
|
11
|
+
constructor() {
|
12
|
+
this.selectedDateChange = new EventEmitter(undefined);
|
13
|
+
this.calendarModeChange = new EventEmitter();
|
14
|
+
// TODO: `activeDate` is very similar to `selectedDate` and at the very least should be able to be undefined. However, this would take considerable refactoring to do and thus has been deferred.
|
15
|
+
this.activeDate = new Date();
|
16
|
+
this.activeDateId = '';
|
17
|
+
this.minMode = 'day';
|
18
|
+
this.maxMode = 'year';
|
19
|
+
this.monthColLimit = 3;
|
20
|
+
this.yearColLimit = 5;
|
21
|
+
this.datepickerMode = 'day';
|
22
|
+
this.yearRange = 20;
|
23
|
+
this.formatDay = 'DD';
|
24
|
+
this.formatMonth = 'MMMM';
|
25
|
+
this.formatYear = 'YYYY';
|
26
|
+
this.formatDayHeader = 'dd';
|
27
|
+
this.formatDayTitle = 'MMMM YYYY';
|
28
|
+
this.formatMonthTitle = 'YYYY';
|
29
|
+
this.datepickerId = `sky-datepicker-${++nextDatepickerId}`;
|
30
|
+
this.stepDay = {};
|
31
|
+
this.stepMonth = {};
|
32
|
+
this.stepYear = {};
|
33
|
+
this.modes = ['day', 'month', 'year'];
|
34
|
+
this.dateFormatter = new SkyDateFormatter();
|
35
|
+
this.keys = {
|
36
|
+
13: 'enter',
|
37
|
+
32: 'space',
|
38
|
+
33: 'pageup',
|
39
|
+
34: 'pagedown',
|
40
|
+
35: 'end',
|
41
|
+
36: 'home',
|
42
|
+
37: 'left',
|
43
|
+
38: 'up',
|
44
|
+
39: 'right',
|
45
|
+
40: 'down',
|
46
|
+
};
|
47
|
+
this.#ngUnsubscribe = new Subject();
|
48
|
+
this.#_startingDay = 0;
|
49
|
+
}
|
50
|
+
set startingDay(value) {
|
51
|
+
this.#_startingDay = value || 0;
|
52
|
+
}
|
53
|
+
get startingDay() {
|
54
|
+
return this.#_startingDay;
|
55
|
+
}
|
56
|
+
set selectedDate(value) {
|
57
|
+
if (value && this.dateFormatter.dateIsValid(value)) {
|
58
|
+
this.#_selectedDate = value;
|
59
|
+
this.activeDate = value;
|
60
|
+
}
|
61
|
+
else {
|
62
|
+
this.#_selectedDate = undefined;
|
63
|
+
this.activeDate = new Date();
|
64
|
+
}
|
65
|
+
}
|
66
|
+
get selectedDate() {
|
67
|
+
return this.#_selectedDate;
|
68
|
+
}
|
69
|
+
#ngUnsubscribe;
|
70
|
+
#_selectedDate;
|
71
|
+
#_startingDay;
|
72
|
+
ngOnInit() {
|
73
|
+
if (this.selectedDate) {
|
74
|
+
this.activeDate = new Date(this.selectedDate);
|
75
|
+
}
|
76
|
+
else {
|
77
|
+
this.activeDate = new Date();
|
78
|
+
}
|
79
|
+
}
|
80
|
+
ngOnChanges(changes) {
|
81
|
+
this.refreshView();
|
82
|
+
}
|
83
|
+
ngOnDestroy() {
|
84
|
+
this.#ngUnsubscribe.next();
|
85
|
+
this.#ngUnsubscribe.complete();
|
86
|
+
}
|
87
|
+
setCompareHandler(handler, type) {
|
88
|
+
if (type === 'day') {
|
89
|
+
this.compareHandlerDay = handler;
|
90
|
+
}
|
91
|
+
if (type === 'month') {
|
92
|
+
this.compareHandlerMonth = handler;
|
93
|
+
}
|
94
|
+
if (type === 'year') {
|
95
|
+
this.compareHandlerYear = handler;
|
96
|
+
}
|
97
|
+
}
|
98
|
+
compare(date1, date2) {
|
99
|
+
if (date1 === undefined || date2 === undefined) {
|
100
|
+
return undefined;
|
101
|
+
}
|
102
|
+
if (this.datepickerMode === 'day' && this.compareHandlerDay) {
|
103
|
+
return this.compareHandlerDay(date1, date2);
|
104
|
+
}
|
105
|
+
if (this.datepickerMode === 'month' && this.compareHandlerMonth) {
|
106
|
+
return this.compareHandlerMonth(date1, date2);
|
107
|
+
}
|
108
|
+
/* istanbul ignore else */
|
109
|
+
/* sanity check */
|
110
|
+
if (this.datepickerMode === 'year' && this.compareHandlerYear) {
|
111
|
+
return this.compareHandlerYear(date1, date2);
|
112
|
+
}
|
113
|
+
/* istanbul ignore next */
|
114
|
+
return undefined;
|
115
|
+
}
|
116
|
+
setRefreshViewHandler(handler, type) {
|
117
|
+
if (type === 'day') {
|
118
|
+
this.refreshViewHandlerDay = handler;
|
119
|
+
}
|
120
|
+
if (type === 'month') {
|
121
|
+
this.refreshViewHandlerMonth = handler;
|
122
|
+
}
|
123
|
+
if (type === 'year') {
|
124
|
+
this.refreshViewHandlerYear = handler;
|
125
|
+
}
|
126
|
+
}
|
127
|
+
refreshView() {
|
128
|
+
if (this.datepickerMode === 'day' && this.refreshViewHandlerDay) {
|
129
|
+
this.refreshViewHandlerDay();
|
130
|
+
}
|
131
|
+
if (this.datepickerMode === 'month' && this.refreshViewHandlerMonth) {
|
132
|
+
this.refreshViewHandlerMonth();
|
133
|
+
}
|
134
|
+
if (this.datepickerMode === 'year' && this.refreshViewHandlerYear) {
|
135
|
+
this.refreshViewHandlerYear();
|
136
|
+
}
|
137
|
+
}
|
138
|
+
setKeydownHandler(handler, type) {
|
139
|
+
if (type === 'day') {
|
140
|
+
this.handleKeydownDay = handler;
|
141
|
+
}
|
142
|
+
if (type === 'month') {
|
143
|
+
this.handleKeydownMonth = handler;
|
144
|
+
}
|
145
|
+
if (type === 'year') {
|
146
|
+
this.handleKeydownYear = handler;
|
147
|
+
}
|
148
|
+
}
|
149
|
+
handleKeydown(key, event) {
|
150
|
+
if (this.datepickerMode === 'day' && this.handleKeydownDay) {
|
151
|
+
this.handleKeydownDay(key, event);
|
152
|
+
}
|
153
|
+
if (this.datepickerMode === 'month' && this.handleKeydownMonth) {
|
154
|
+
this.handleKeydownMonth(key, event);
|
155
|
+
}
|
156
|
+
if (this.datepickerMode === 'year' && this.handleKeydownYear) {
|
157
|
+
this.handleKeydownYear(key, event);
|
158
|
+
}
|
159
|
+
}
|
160
|
+
dateFilter(date, format) {
|
161
|
+
return this.dateFormatter.format(date, format);
|
162
|
+
}
|
163
|
+
isActive(dateObject) {
|
164
|
+
if (this.compare(dateObject.date, this.activeDate) === 0) {
|
165
|
+
this.activeDateId = dateObject.uid;
|
166
|
+
return true;
|
167
|
+
}
|
168
|
+
return false;
|
169
|
+
}
|
170
|
+
onKeydown(event) {
|
171
|
+
const key = this.keys[event.which];
|
172
|
+
if (!key || event.shiftKey || event.altKey) {
|
173
|
+
return;
|
174
|
+
}
|
175
|
+
event.preventDefault();
|
176
|
+
event.stopPropagation();
|
177
|
+
if (key === 'enter' || key === 'space') {
|
178
|
+
if (this.isDisabled(this.activeDate)) {
|
179
|
+
return;
|
180
|
+
}
|
181
|
+
this.select(this.activeDate);
|
182
|
+
}
|
183
|
+
else if (event.ctrlKey && (key === 'up' || key === 'down')) {
|
184
|
+
this.toggleMode(key === 'up' ? 1 : -1);
|
185
|
+
}
|
186
|
+
else {
|
187
|
+
this.handleKeydown(key, event);
|
188
|
+
this.refreshView();
|
189
|
+
}
|
190
|
+
}
|
191
|
+
createDateObject(date, format, isSecondary, id) {
|
192
|
+
const customDateMatch = this.#getCustomDate(date);
|
193
|
+
const dateObject = {
|
194
|
+
date: new Date(date.getFullYear(), date.getMonth(), date.getDate()),
|
195
|
+
label: this.dateFilter(date, format),
|
196
|
+
selected: !!this.selectedDate && this.compare(date, this.selectedDate) === 0,
|
197
|
+
disabled: this.isDisabled(date),
|
198
|
+
current: this.compare(date, new Date()) === 0,
|
199
|
+
secondary: isSecondary,
|
200
|
+
uid: id,
|
201
|
+
keyDate: customDateMatch ? customDateMatch.keyDate : undefined,
|
202
|
+
keyDateText: customDateMatch ? customDateMatch.keyDateText : [],
|
203
|
+
};
|
204
|
+
return dateObject;
|
205
|
+
}
|
206
|
+
createCalendarRows(dates, size) {
|
207
|
+
const rows = [];
|
208
|
+
while (dates.length > 0) {
|
209
|
+
rows.push(dates.splice(0, size));
|
210
|
+
}
|
211
|
+
return rows;
|
212
|
+
}
|
213
|
+
/*
|
214
|
+
This is ensures that no strangeness happens when converting a date to local time.
|
215
|
+
*/
|
216
|
+
fixTimeZone(date) {
|
217
|
+
const newDate = new Date(date);
|
218
|
+
newDate.setFullYear(date.getFullYear(), date.getMonth(), date.getDate());
|
219
|
+
return newDate;
|
220
|
+
}
|
221
|
+
selectCalendar(event, date, closePicker = false) {
|
222
|
+
if (!closePicker) {
|
223
|
+
event.preventDefault();
|
224
|
+
event.stopPropagation();
|
225
|
+
}
|
226
|
+
this.select(date);
|
227
|
+
}
|
228
|
+
select(date, isManual = true) {
|
229
|
+
this.activeDate = new Date(date.getFullYear(), date.getMonth(), date.getDate());
|
230
|
+
/*
|
231
|
+
Only actually select date if in minMode (day picker mode).
|
232
|
+
Otherwise, just change the active view for the datepicker.
|
233
|
+
*/
|
234
|
+
if (this.datepickerMode === this.minMode) {
|
235
|
+
this.selectedDate = new Date(this.activeDate);
|
236
|
+
if (isManual) {
|
237
|
+
this.selectedDateChange.emit(this.selectedDate);
|
238
|
+
}
|
239
|
+
}
|
240
|
+
else {
|
241
|
+
this.datepickerMode =
|
242
|
+
this.modes[this.modes.indexOf(this.datepickerMode) - 1];
|
243
|
+
this.calendarModeChange.emit(this.datepickerMode);
|
244
|
+
}
|
245
|
+
this.refreshView();
|
246
|
+
}
|
247
|
+
moveCalendar(event, direction) {
|
248
|
+
event.preventDefault();
|
249
|
+
event.stopPropagation();
|
250
|
+
this.move(direction);
|
251
|
+
}
|
252
|
+
move(direction) {
|
253
|
+
let expectedStep;
|
254
|
+
if (this.datepickerMode === 'day') {
|
255
|
+
expectedStep = this.stepDay;
|
256
|
+
}
|
257
|
+
if (this.datepickerMode === 'month') {
|
258
|
+
expectedStep = this.stepMonth;
|
259
|
+
}
|
260
|
+
if (this.datepickerMode === 'year') {
|
261
|
+
expectedStep = this.stepYear;
|
262
|
+
}
|
263
|
+
/* istanbul ignore else */
|
264
|
+
/* sanity check */
|
265
|
+
if (expectedStep) {
|
266
|
+
const year = this.activeDate.getFullYear() + direction * (expectedStep.years || 0);
|
267
|
+
const month = this.activeDate.getMonth() + direction * (expectedStep.months || 0);
|
268
|
+
this.activeDate = new Date(year, month, 1);
|
269
|
+
this.refreshView();
|
270
|
+
}
|
271
|
+
}
|
272
|
+
toggleModeCalendar(event) {
|
273
|
+
event.preventDefault();
|
274
|
+
event.stopPropagation();
|
275
|
+
this.toggleMode(1);
|
276
|
+
}
|
277
|
+
toggleMode(direction) {
|
278
|
+
/*istanbul ignore next */
|
279
|
+
direction = direction || 1;
|
280
|
+
/* istanbul ignore else */
|
281
|
+
/* sanity check */
|
282
|
+
if (!(direction === 1 && this.datepickerMode === this.maxMode) &&
|
283
|
+
!(this.datepickerMode === this.minMode && direction === -1)) {
|
284
|
+
this.datepickerMode =
|
285
|
+
this.modes[this.modes.indexOf(this.datepickerMode) + direction];
|
286
|
+
this.calendarModeChange.emit(this.datepickerMode);
|
287
|
+
this.refreshView();
|
288
|
+
}
|
289
|
+
}
|
290
|
+
/**
|
291
|
+
* Date is disabled if it meets any of these criteria:
|
292
|
+
* 1. Date falls outside the min or max dates set by the SkyDatepickerConfigService.
|
293
|
+
* 2. Date is marked as disabled in the customDates array.
|
294
|
+
*/
|
295
|
+
isDisabled(date) {
|
296
|
+
const customDate = this.#getCustomDate(date);
|
297
|
+
const minDateCompare = this.compare(date, this.minDate);
|
298
|
+
const maxDateCompare = this.compare(date, this.maxDate);
|
299
|
+
return ((minDateCompare !== undefined && minDateCompare < 0) ||
|
300
|
+
(maxDateCompare !== undefined && maxDateCompare > 0) ||
|
301
|
+
!!customDate?.disabled);
|
302
|
+
}
|
303
|
+
#getCustomDate(date) {
|
304
|
+
if (this.customDates) {
|
305
|
+
return this.customDates.find((customDate) => {
|
306
|
+
return customDate.date.getTime() === date.getTime();
|
307
|
+
});
|
308
|
+
}
|
309
|
+
return undefined;
|
310
|
+
}
|
311
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyDatepickerCalendarInnerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
312
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: SkyDatepickerCalendarInnerComponent, selector: "sky-datepicker-inner", inputs: { customDates: "customDates", startingDay: "startingDay", minDate: "minDate", maxDate: "maxDate", selectedDate: "selectedDate" }, outputs: { selectedDateChange: "selectedDateChange", calendarModeChange: "calendarModeChange" }, usesOnChanges: true, ngImport: i0, template: "<div\n *ngIf=\"datepickerMode\"\n class=\"sky-datepicker-calendar-inner\"\n (keydown)=\"onKeydown($event)\"\n>\n <ng-content></ng-content>\n</div>\n", styles: [".sky-datepicker-calendar-inner{border-radius:5px;background-color:#fff;border-top:1px solid #e2e3e4;border-bottom:1px solid #e2e3e4;border-left:1px solid #e2e3e4;border-right:1px solid #e2e3e4}.sky-datepicker-calendar-inner .sky-btn-default{border-color:transparent;border:2px solid #ffffff}.sky-datepicker-calendar-inner .sky-btn-default:hover{border-color:#eeeeef}.sky-datepicker-calendar-inner .sky-datepicker-center{text-align:center}.sky-datepicker-calendar-inner .sky-datepicker-btn-selected,.sky-datepicker-calendar-inner .sky-btn-default.sky-datepicker-btn-selected:hover{background-color:#c1e8fb;border:2px solid #00b4f1}.sky-datepicker-calendar-inner .sky-btn.sky-btn-active{box-shadow:none}.sky-datepicker-calendar-inner .sky-datepicker-secondary{color:#686c73}.sky-datepicker-calendar-inner .sky-datepicker-btn-date{min-width:100%}.sky-datepicker-calendar-inner .sky-datepicker-calendar-title{width:100%}.sky-datepicker-calendar-inner .sky-datepicker-chevron-modern{display:none}.sky-datepicker-calendar-inner .sky-datepicker-header-left{text-align:left}.sky-datepicker-calendar-inner .sky-datepicker-header-right{text-align:right}.sky-theme-modern .sky-datepicker-calendar-inner{border:none;box-shadow:inset 0 0 0 1px #d2d2d2;border-radius:6px;padding:5px 10px}.sky-theme-modern .sky-datepicker-calendar-inner:focus-within{border:none;box-shadow:inset 0 0 0 2px #1870b8,0 1px 3px #0000004d}.sky-theme-modern .sky-datepicker-calendar-inner .sky-btn-default{border:none;box-shadow:inset 0 0 0 1px transparent;padding:5px 7px}.sky-theme-modern .sky-datepicker-calendar-inner .sky-btn-active,.sky-theme-modern .sky-datepicker-calendar-inner .sky-btn-default:hover{border:none;box-shadow:inset 0 0 0 1px #1870b8}.sky-theme-modern .sky-datepicker-calendar-inner .sky-datepicker-btn-selected,.sky-theme-modern .sky-datepicker-calendar-inner .sky-btn-default.sky-datepicker-btn-selected:hover{background-color:var(--sky-background-color-input-selected)}.sky-theme-modern .sky-btn-sm.sky-datepicker-btn-date{height:30px;min-width:0;padding:0;width:30px}.sky-theme-modern .sky-datepicker-chevron-default{display:none}.sky-theme-modern .sky-datepicker-chevron-modern{display:inline;font-size:16px}.sky-theme-modern.sky-theme-mode-dark .sky-datepicker-calendar-inner{background-color:transparent}.sky-theme-modern.sky-theme-mode-dark .sky-datepicker-calendar-inner:not(:focus-within){border:none;box-shadow:inset 0 0 0 1px #686c73}.sky-theme-modern.sky-theme-mode-dark .sky-datepicker-calendar-inner .sky-datepicker-btn-selected{background-color:#009cd1}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
313
|
+
}
|
314
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyDatepickerCalendarInnerComponent, decorators: [{
|
315
|
+
type: Component,
|
316
|
+
args: [{ selector: 'sky-datepicker-inner', encapsulation: ViewEncapsulation.None, template: "<div\n *ngIf=\"datepickerMode\"\n class=\"sky-datepicker-calendar-inner\"\n (keydown)=\"onKeydown($event)\"\n>\n <ng-content></ng-content>\n</div>\n", styles: [".sky-datepicker-calendar-inner{border-radius:5px;background-color:#fff;border-top:1px solid #e2e3e4;border-bottom:1px solid #e2e3e4;border-left:1px solid #e2e3e4;border-right:1px solid #e2e3e4}.sky-datepicker-calendar-inner .sky-btn-default{border-color:transparent;border:2px solid #ffffff}.sky-datepicker-calendar-inner .sky-btn-default:hover{border-color:#eeeeef}.sky-datepicker-calendar-inner .sky-datepicker-center{text-align:center}.sky-datepicker-calendar-inner .sky-datepicker-btn-selected,.sky-datepicker-calendar-inner .sky-btn-default.sky-datepicker-btn-selected:hover{background-color:#c1e8fb;border:2px solid #00b4f1}.sky-datepicker-calendar-inner .sky-btn.sky-btn-active{box-shadow:none}.sky-datepicker-calendar-inner .sky-datepicker-secondary{color:#686c73}.sky-datepicker-calendar-inner .sky-datepicker-btn-date{min-width:100%}.sky-datepicker-calendar-inner .sky-datepicker-calendar-title{width:100%}.sky-datepicker-calendar-inner .sky-datepicker-chevron-modern{display:none}.sky-datepicker-calendar-inner .sky-datepicker-header-left{text-align:left}.sky-datepicker-calendar-inner .sky-datepicker-header-right{text-align:right}.sky-theme-modern .sky-datepicker-calendar-inner{border:none;box-shadow:inset 0 0 0 1px #d2d2d2;border-radius:6px;padding:5px 10px}.sky-theme-modern .sky-datepicker-calendar-inner:focus-within{border:none;box-shadow:inset 0 0 0 2px #1870b8,0 1px 3px #0000004d}.sky-theme-modern .sky-datepicker-calendar-inner .sky-btn-default{border:none;box-shadow:inset 0 0 0 1px transparent;padding:5px 7px}.sky-theme-modern .sky-datepicker-calendar-inner .sky-btn-active,.sky-theme-modern .sky-datepicker-calendar-inner .sky-btn-default:hover{border:none;box-shadow:inset 0 0 0 1px #1870b8}.sky-theme-modern .sky-datepicker-calendar-inner .sky-datepicker-btn-selected,.sky-theme-modern .sky-datepicker-calendar-inner .sky-btn-default.sky-datepicker-btn-selected:hover{background-color:var(--sky-background-color-input-selected)}.sky-theme-modern .sky-btn-sm.sky-datepicker-btn-date{height:30px;min-width:0;padding:0;width:30px}.sky-theme-modern .sky-datepicker-chevron-default{display:none}.sky-theme-modern .sky-datepicker-chevron-modern{display:inline;font-size:16px}.sky-theme-modern.sky-theme-mode-dark .sky-datepicker-calendar-inner{background-color:transparent}.sky-theme-modern.sky-theme-mode-dark .sky-datepicker-calendar-inner:not(:focus-within){border:none;box-shadow:inset 0 0 0 1px #686c73}.sky-theme-modern.sky-theme-mode-dark .sky-datepicker-calendar-inner .sky-datepicker-btn-selected{background-color:#009cd1}\n"] }]
|
317
|
+
}], propDecorators: { customDates: [{
|
318
|
+
type: Input
|
319
|
+
}], startingDay: [{
|
320
|
+
type: Input
|
321
|
+
}], minDate: [{
|
322
|
+
type: Input
|
323
|
+
}], maxDate: [{
|
324
|
+
type: Input
|
325
|
+
}], selectedDate: [{
|
326
|
+
type: Input
|
327
|
+
}], selectedDateChange: [{
|
328
|
+
type: Output
|
329
|
+
}], calendarModeChange: [{
|
330
|
+
type: Output
|
331
|
+
}] } });
|
332
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci1jYWxlbmRhci1pbm5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZGF0ZXRpbWUvc3JjL2xpYi9tb2R1bGVzL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci1jYWxlbmRhci1pbm5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZGF0ZXRpbWUvc3JjL2xpYi9tb2R1bGVzL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci1jYWxlbmRhci1pbm5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBSUwsTUFBTSxFQUVOLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9CLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7QUFPcEQsSUFBSSxnQkFBZ0IsR0FBRyxDQUFDLENBQUM7QUFFekI7O0dBRUc7QUFPSCxNQUFNLE9BQU8sbUNBQW1DO0lBTmhEO1FBMkNTLHVCQUFrQixHQUF1QixJQUFJLFlBQVksQ0FDOUQsU0FBUyxDQUNWLENBQUM7UUFHSyx1QkFBa0IsR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUU3RSxpTUFBaU07UUFDMUwsZUFBVSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDeEIsaUJBQVksR0FBRyxFQUFFLENBQUM7UUFFbEIsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixZQUFPLEdBQUcsTUFBTSxDQUFDO1FBQ2pCLGtCQUFhLEdBQUcsQ0FBQyxDQUFDO1FBQ2xCLGlCQUFZLEdBQUcsQ0FBQyxDQUFDO1FBQ2pCLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLGNBQVMs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QkFEeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgU2t5RGF0ZUZvcm1hdHRlciB9IGZyb20gJy4vZGF0ZS1mb3JtYXR0ZXInO1xuaW1wb3J0IHsgU2t5RGF0ZXBpY2tlckN1c3RvbURhdGUgfSBmcm9tICcuL2RhdGVwaWNrZXItY3VzdG9tLWRhdGUnO1xuaW1wb3J0IHsgU2t5RGF0ZXBpY2tlckRhdGUgfSBmcm9tICcuL2RhdGVwaWNrZXItZGF0ZSc7XG5cbnR5cGUgRGF0ZUNvbXBhcmF0b3IgPSAoZGF0ZTE6IERhdGUsIGRhdGUyOiBEYXRlKSA9PiBudW1iZXIgfCB1bmRlZmluZWQ7XG50eXBlIEtleWJvYXJkRXZlbnRIYW5kbGVyID0gKGtleTogc3RyaW5nLCBldmVudDogS2V5Ym9hcmRFdmVudCkgPT4gdm9pZDtcblxubGV0IG5leHREYXRlcGlja2VySWQgPSAwO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktZGF0ZXBpY2tlci1pbm5lcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRlcGlja2VyLWNhbGVuZGFyLWlubmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGF0ZXBpY2tlci1jYWxlbmRhci1pbm5lci5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lEYXRlcGlja2VyQ2FsZW5kYXJJbm5lckNvbXBvbmVudFxuICBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25Jbml0LCBPbkNoYW5nZXNcbntcbiAgQElucHV0KClcbiAgcHVibGljIGN1c3RvbURhdGVzOiBTa3lEYXRlcGlja2VyQ3VzdG9tRGF0ZVtdIHwgdW5kZWZpbmVkO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgc3RhcnRpbmdEYXkodmFsdWU6IG51bWJlciB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI19zdGFydGluZ0RheSA9IHZhbHVlIHx8IDA7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHN0YXJ0aW5nRGF5KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuI19zdGFydGluZ0RheTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBtaW5EYXRlOiBEYXRlIHwgdW5kZWZpbmVkO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBtYXhEYXRlOiBEYXRlIHwgdW5kZWZpbmVkO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgc2VsZWN0ZWREYXRlKHZhbHVlOiBEYXRlIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKHZhbHVlICYmIHRoaXMuZGF0ZUZvcm1hdHRlci5kYXRlSXNWYWxpZCh2YWx1ZSkpIHtcbiAgICAgIHRoaXMuI19zZWxlY3RlZERhdGUgPSB2YWx1ZTtcbiAgICAgIHRoaXMuYWN0aXZlRGF0ZSA9IHZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLiNfc2VsZWN0ZWREYXRlID0gdW5kZWZpbmVkO1xuICAgICAgdGhpcy5hY3RpdmVEYXRlID0gbmV3IERhdGUoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IHNlbGVjdGVkRGF0ZSgpOiBEYXRlIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy4jX3NlbGVjdGVkRGF0ZTtcbiAgfVxuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgc2VsZWN0ZWREYXRlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RGF0ZT4gPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KFxuICAgIHVuZGVmaW5lZFxuICApO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgY2FsZW5kYXJNb2RlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIC8vIFRPRE86IGBhY3RpdmVEYXRlYCBpcyB2ZXJ5IHNpbWlsYXIgdG8gYHNlbGVjdGVkRGF0ZWAgYW5kIGF0IHRoZSB2ZXJ5IGxlYXN0IHNob3VsZCBiZSBhYmxlIHRvIGJlIHVuZGVmaW5lZC4gSG93ZXZlciwgdGhpcyB3b3VsZCB0YWtlIGNvbnNpZGVyYWJsZSByZWZhY3RvcmluZyB0byBkbyBhbmQgdGh1cyBoYXMgYmVlbiBkZWZlcnJlZC5cbiAgcHVibGljIGFjdGl2ZURhdGUgPSBuZXcgRGF0ZSgpO1xuICBwdWJsaWMgYWN0aXZlRGF0ZUlkID0gJyc7XG5cbiAgcHVibGljIG1pbk1vZGUgPSAnZGF5JztcbiAgcHVibGljIG1heE1vZGUgPSAneWVhcic7XG4gIHB1YmxpYyBtb250aENvbExpbWl0ID0gMztcbiAgcHVibGljIHllYXJDb2xMaW1pdCA9IDU7XG4gIHB1YmxpYyBkYXRlcGlja2VyTW9kZSA9ICdkYXknO1xuICBwdWJsaWMgeWVhclJhbmdlID0gMjA7XG5cbiAgcHVibGljIGZvcm1hdERheSA9ICdERCc7XG4gIHB1YmxpYyBmb3JtYXRNb250aCA9ICdNTU1NJztcbiAgcHVibGljIGZvcm1hdFllYXIgPSAnWVlZWSc7XG4gIHB1YmxpYyBmb3JtYXREYXlIZWFkZXIgPSAnZGQnO1xuICBwdWJsaWMgZm9ybWF0RGF5VGl0bGUgPSAnTU1NTSBZWVlZJztcbiAgcHVibGljIGZvcm1hdE1vbnRoVGl0bGUgPSAnWVlZWSc7XG5cbiAgcHVibGljIGRhdGVwaWNrZXJJZCA9IGBza3ktZGF0ZXBpY2tlci0keysrbmV4dERhdGVwaWNrZXJJZH1gO1xuXG4gIHB1YmxpYyBzdGVwRGF5OiBhbnkgPSB7fTtcbiAgcHVibGljIHN0ZXBNb250aDogYW55ID0ge307XG4gIHB1YmxpYyBzdGVwWWVhcjogYW55ID0ge307XG5cbiAgcHJvdGVjdGVkIG1vZGVzOiBzdHJpbmdbXSA9IFsnZGF5JywgJ21vbnRoJywgJ3llYXInXTtcbiAgcHJvdGVjdGVkIGRhdGVGb3JtYXR0ZXI6IFNreURhdGVGb3JtYXR0ZXIgPSBuZXcgU2t5RGF0ZUZvcm1hdHRlcigpO1xuXG4gIHB1YmxpYyByZWZyZXNoVmlld0hhbmRsZXJEYXk6ICgoKSA9PiB2b2lkKSB8IHVuZGVmaW5lZDtcbiAgcHVibGljIGNvbXBhcmVIYW5kbGVyRGF5OiBEYXRlQ29tcGFyYXRvciB8IHVuZGVmaW5lZDtcbiAgcHVibGljIHJlZnJlc2hWaWV3SGFuZGxlck1vbnRoOiAoKCkgPT4gdm9pZCkgfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyBjb21wYXJlSGFuZGxlck1vbnRoOiBEYXRlQ29tcGFyYXRvciB8IHVuZGVmaW5lZDtcbiAgcHVibGljIHJlZnJlc2hWaWV3SGFuZGxlclllYXI6ICgoKSA9PiB2b2lkKSB8IHVuZGVmaW5lZDtcbiAgcHVibGljIGNvbXBhcmVIYW5kbGVyWWVhcjogRGF0ZUNvbXBhcmF0b3IgfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIGhhbmRsZUtleWRvd25EYXk6IEtleWJvYXJkRXZlbnRIYW5kbGVyIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgaGFuZGxlS2V5ZG93bk1vbnRoOiBLZXlib2FyZEV2ZW50SGFuZGxlciB8IHVuZGVmaW5lZDtcbiAgcHVibGljIGhhbmRsZUtleWRvd25ZZWFyOiBLZXlib2FyZEV2ZW50SGFuZGxlciB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMga2V5czogYW55ID0ge1xuICAgIDEzOiAnZW50ZXInLFxuICAgIDMyOiAnc3BhY2UnLFxuICAgIDMzOiAncGFnZXVwJyxcbiAgICAzNDogJ3BhZ2Vkb3duJyxcbiAgICAzNTogJ2VuZCcsXG4gICAgMzY6ICdob21lJyxcbiAgICAzNzogJ2xlZnQnLFxuICAgIDM4OiAndXAnLFxuICAgIDM5OiAncmlnaHQnLFxuICAgIDQwOiAnZG93bicsXG4gIH07XG5cbiAgI25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICNfc2VsZWN0ZWREYXRlOiBEYXRlIHwgdW5kZWZpbmVkO1xuICAjX3N0YXJ0aW5nRGF5ID0gMDtcblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWREYXRlKSB7XG4gICAgICB0aGlzLmFjdGl2ZURhdGUgPSBuZXcgRGF0ZSh0aGlzLnNlbGVjdGVkRGF0ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYWN0aXZlRGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICB0aGlzLnJlZnJlc2hWaWV3KCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHVibGljIHNldENvbXBhcmVIYW5kbGVyKGhhbmRsZXI6IERhdGVDb21wYXJhdG9yLCB0eXBlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAodHlwZSA9PT0gJ2RheScpIHtcbiAgICAgIHRoaXMuY29tcGFyZUhhbmRsZXJEYXkgPSBoYW5kbGVyO1xuICAgIH1cblxuICAgIGlmICh0eXBlID09PSAnbW9udGgnKSB7XG4gICAgICB0aGlzLmNvbXBhcmVIYW5kbGVyTW9udGggPSBoYW5kbGVyO1xuICAgIH1cblxuICAgIGlmICh0eXBlID09PSAneWVhcicpIHtcbiAgICAgIHRoaXMuY29tcGFyZUhhbmRsZXJZZWFyID0gaGFuZGxlcjtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY29tcGFyZShcbiAgICBkYXRlMTogRGF0ZSB8IHVuZGVmaW5lZCxcbiAgICBkYXRlMjogRGF0ZSB8IHVuZGVmaW5lZFxuICApOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICAgIGlmIChkYXRlMSA9PT0gdW5kZWZpbmVkIHx8IGRhdGUyID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZGF0ZXBpY2tlck1vZGUgPT09ICdkYXknICYmIHRoaXMuY29tcGFyZUhhbmRsZXJEYXkpIHtcbiAgICAgIHJldHVybiB0aGlzLmNvbXBhcmVIYW5kbGVyRGF5KGRhdGUxLCBkYXRlMik7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZGF0ZXBpY2tlck1vZGUgPT09ICdtb250aCcgJiYgdGhpcy5jb21wYXJlSGFuZGxlck1vbnRoKSB7XG4gICAgICByZXR1cm4gdGhpcy5jb21wYXJlSGFuZGxlck1vbnRoKGRhdGUxLCBkYXRlMik7XG4gICAgfVxuXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAvKiBzYW5pdHkgY2hlY2sgKi9cbiAgICBpZiAodGhpcy5kYXRlcGlja2VyTW9kZSA9PT0gJ3llYXInICYmIHRoaXMuY29tcGFyZUhhbmRsZXJZZWFyKSB7XG4gICAgICByZXR1cm4gdGhpcy5jb21wYXJlSGFuZGxlclllYXIoZGF0ZTEsIGRhdGUyKTtcbiAgICB9XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBwdWJsaWMgc2V0UmVmcmVzaFZpZXdIYW5kbGVyKGhhbmRsZXI6ICgpID0+IHZvaWQsIHR5cGU6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICh0eXBlID09PSAnZGF5Jykge1xuICAgICAgdGhpcy5yZWZyZXNoVmlld0hhbmRsZXJEYXkgPSBoYW5kbGVyO1xuICAgIH1cblxuICAgIGlmICh0eXBlID09PSAnbW9udGgnKSB7XG4gICAgICB0aGlzLnJlZnJlc2hWaWV3SGFuZGxlck1vbnRoID0gaGFuZGxlcjtcbiAgICB9XG5cbiAgICBpZiAodHlwZSA9PT0gJ3llYXInKSB7XG4gICAgICB0aGlzLnJlZnJlc2hWaWV3SGFuZGxlclllYXIgPSBoYW5kbGVyO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZWZyZXNoVmlldygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kYXRlcGlja2VyTW9kZSA9PT0gJ2RheScgJiYgdGhpcy5yZWZyZXNoVmlld0hhbmRsZXJEYXkpIHtcbiAgICAgIHRoaXMucmVmcmVzaFZpZXdIYW5kbGVyRGF5KCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZGF0ZXBpY2tlck1vZGUgPT09ICdtb250aCcgJiYgdGhpcy5yZWZyZXNoVmlld0hhbmRsZXJNb250aCkge1xuICAgICAgdGhpcy5yZWZyZXNoVmlld0hhbmRsZXJNb250aCgpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmRhdGVwaWNrZXJNb2RlID09PSAneWVhcicgJiYgdGhpcy5yZWZyZXNoVmlld0hhbmRsZXJZZWFyKSB7XG4gICAgICB0aGlzLnJlZnJlc2hWaWV3SGFuZGxlclllYXIoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2V0S2V5ZG93bkhhbmRsZXIoaGFuZGxlcjogS2V5Ym9hcmRFdmVudEhhbmRsZXIsIHR5cGU6IHN0cmluZykge1xuICAgIGlmICh0eXBlID09PSAnZGF5Jykge1xuICAgICAgdGhpcy5oYW5kbGVLZXlkb3duRGF5ID0gaGFuZGxlcjtcbiAgICB9XG5cbiAgICBpZiAodHlwZSA9PT0gJ21vbnRoJykge1xuICAgICAgdGhpcy5oYW5kbGVLZXlkb3duTW9udGggPSBoYW5kbGVyO1xuICAgIH1cblxuICAgIGlmICh0eXBlID09PSAneWVhcicpIHtcbiAgICAgIHRoaXMuaGFuZGxlS2V5ZG93blllYXIgPSBoYW5kbGVyO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVLZXlkb3duKGtleTogc3RyaW5nLCBldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRhdGVwaWNrZXJNb2RlID09PSAnZGF5JyAmJiB0aGlzLmhhbmRsZUtleWRvd25EYXkpIHtcbiAgICAgIHRoaXMuaGFuZGxlS2V5ZG93bkRheShrZXksIGV2ZW50KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5kYXRlcGlja2VyTW9kZSA9PT0gJ21vbnRoJyAmJiB0aGlzLmhhbmRsZUtleWRvd25Nb250aCkge1xuICAgICAgdGhpcy5oYW5kbGVLZXlkb3duTW9udGgoa2V5LCBldmVudCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZGF0ZXBpY2tlck1vZGUgPT09ICd5ZWFyJyAmJiB0aGlzLmhhbmRsZUtleWRvd25ZZWFyKSB7XG4gICAgICB0aGlzLmhhbmRsZUtleWRvd25ZZWFyKGtleSwgZXZlbnQpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBkYXRlRmlsdGVyKGRhdGU6IERhdGUsIGZvcm1hdDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5kYXRlRm9ybWF0dGVyLmZvcm1hdChkYXRlLCBmb3JtYXQpO1xuICB9XG5cbiAgcHVibGljIGlzQWN0aXZlKGRhdGVPYmplY3Q6IGFueSk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmNvbXBhcmUoZGF0ZU9iamVjdC5kYXRlLCB0aGlzLmFjdGl2ZURhdGUpID09PSAwKSB7XG4gICAgICB0aGlzLmFjdGl2ZURhdGVJZCA9IGRhdGVPYmplY3QudWlkO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHVibGljIG9uS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGNvbnN0IGtleSA9IHRoaXMua2V5c1tldmVudC53aGljaF07XG5cbiAgICBpZiAoIWtleSB8fCBldmVudC5zaGlmdEtleSB8fCBldmVudC5hbHRLZXkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgaWYgKGtleSA9PT0gJ2VudGVyJyB8fCBrZXkgPT09ICdzcGFjZScpIHtcbiAgICAgIGlmICh0aGlzLmlzRGlzYWJsZWQodGhpcy5hY3RpdmVEYXRlKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLnNlbGVjdCh0aGlzLmFjdGl2ZURhdGUpO1xuICAgIH0gZWxzZSBpZiAoZXZlbnQuY3RybEtleSAmJiAoa2V5ID09PSAndXAnIHx8IGtleSA9PT0gJ2Rvd24nKSkge1xuICAgICAgdGhpcy50b2dnbGVNb2RlKGtleSA9PT0gJ3VwJyA/IDEgOiAtMSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaGFuZGxlS2V5ZG93bihrZXksIGV2ZW50KTtcbiAgICAgIHRoaXMucmVmcmVzaFZpZXcoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY3JlYXRlRGF0ZU9iamVjdChcbiAgICBkYXRlOiBEYXRlLFxuICAgIGZvcm1hdDogc3RyaW5nLFxuICAgIGlzU2Vjb25kYXJ5OiBib29sZWFuLFxuICAgIGlkOiBzdHJpbmdcbiAgKTogU2t5RGF0ZXBpY2tlckRhdGUge1xuICAgIGNvbnN0IGN1c3RvbURhdGVNYXRjaCA9IHRoaXMuI2dldEN1c3RvbURhdGUoZGF0ZSk7XG5cbiAgICBjb25zdCBkYXRlT2JqZWN0OiBTa3lEYXRlcGlja2VyRGF0ZSA9IHtcbiAgICAgIGRhdGU6IG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSwgZGF0ZS5nZXRNb250aCgpLCBkYXRlLmdldERhdGUoKSksXG4gICAgICBsYWJlbDogdGhpcy5kYXRlRmlsdGVyKGRhdGUsIGZvcm1hdCksXG4gICAgICBzZWxlY3RlZDpcbiAgICAgICAgISF0aGlzLnNlbGVjdGVkRGF0ZSAmJiB0aGlzLmNvbXBhcmUoZGF0ZSwgdGhpcy5zZWxlY3RlZERhdGUpID09PSAwLFxuICAgICAgZGlzYWJsZWQ6IHRoaXMuaXNEaXNhYmxlZChkYXRlKSxcbiAgICAgIGN1cnJlbnQ6IHRoaXMuY29tcGFyZShkYXRlLCBuZXcgRGF0ZSgpKSA9PT0gMCxcbiAgICAgIHNlY29uZGFyeTogaXNTZWNvbmRhcnksXG4gICAgICB1aWQ6IGlkLFxuICAgICAga2V5RGF0ZTogY3VzdG9tRGF0ZU1hdGNoID8gY3VzdG9tRGF0ZU1hdGNoLmtleURhdGUgOiB1bmRlZmluZWQsXG4gICAgICBrZXlEYXRlVGV4dDogY3VzdG9tRGF0ZU1hdGNoID8gY3VzdG9tRGF0ZU1hdGNoLmtleURhdGVUZXh0IDogW10sXG4gICAgfTtcblxuICAgIHJldHVybiBkYXRlT2JqZWN0O1xuICB9XG5cbiAgcHVibGljIGNyZWF0ZUNhbGVuZGFyUm93cyhcbiAgICBkYXRlczogQXJyYXk8U2t5RGF0ZXBpY2tlckRhdGU+LFxuICAgIHNpemU6IG51bWJlclxuICApOiBBcnJheTxBcnJheTxTa3lEYXRlcGlja2VyRGF0ZT4+IHtcbiAgICBjb25zdCByb3dzOiBBcnJheTxBcnJheTxTa3lEYXRlcGlja2VyRGF0ZT4+ID0gW107XG4gICAgd2hpbGUgKGRhdGVzLmxlbmd0aCA+IDApIHtcbiAgICAgIHJvd3MucHVzaChkYXRlcy5zcGxpY2UoMCwgc2l6ZSkpO1xuICAgIH1cbiAgICByZXR1cm4gcm93cztcbiAgfVxuXG4gIC8qXG4gICAgVGhpcyBpcyBlbnN1cmVzIHRoYXQgbm8gc3RyYW5nZW5lc3MgaGFwcGVucyB3aGVuIGNvbnZlcnRpbmcgYSBkYXRlIHRvIGxvY2FsIHRpbWUuXG4gICovXG4gIHB1YmxpYyBmaXhUaW1lWm9uZShkYXRlOiBEYXRlKTogRGF0ZSB7XG4gICAgY29uc3QgbmV3RGF0ZSA9IG5ldyBEYXRlKGRhdGUpO1xuICAgIG5ld0RhdGUuc2V0RnVsbFllYXIoZGF0ZS5nZXRGdWxsWWVhcigpLCBkYXRlLmdldE1vbnRoKCksIGRhdGUuZ2V0RGF0ZSgpKTtcblxuICAgIHJldHVybiBuZXdEYXRlO1xuICB9XG5cbiAgcHVibGljIHNlbGVjdENhbGVuZGFyKGV2ZW50OiBFdmVudCwgZGF0ZTogRGF0ZSwgY2xvc2VQaWNrZXIgPSBmYWxzZSkge1xuICAgIGlmICghY2xvc2VQaWNrZXIpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG4gICAgdGhpcy5zZWxlY3QoZGF0ZSk7XG4gIH1cblxuICBwdWJsaWMgc2VsZWN0KGRhdGU6IERhdGUsIGlzTWFudWFsID0gdHJ1ZSk6IHZvaWQge1xuICAgIHRoaXMuYWN0aXZlRGF0ZSA9IG5ldyBEYXRlKFxuICAgICAgZGF0ZS5nZXRGdWxsWWVhcigpLFxuICAgICAgZGF0ZS5nZXRNb250aCgpLFxuICAgICAgZGF0ZS5nZXREYXRlKClcbiAgICApO1xuXG4gICAgLypcbiAgICAgICAgT25seSBhY3R1YWxseSBzZWxlY3QgZGF0ZSBpZiBpbiBtaW5Nb2RlIChkYXkgcGlja2VyIG1vZGUpLlxuICAgICAgICBPdGhlcndpc2UsIGp1c3QgY2hhbmdlIHRoZSBhY3RpdmUgdmlldyBmb3IgdGhlIGRhdGVwaWNrZXIuXG4gICAgKi9cbiAgICBpZiAodGhpcy5kYXRlcGlja2VyTW9kZSA9PT0gdGhpcy5taW5Nb2RlKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkRGF0ZSA9IG5ldyBEYXRlKHRoaXMuYWN0aXZlRGF0ZSk7XG4gICAgICBpZiAoaXNNYW51YWwpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZERhdGVDaGFuZ2UuZW1pdCh0aGlzLnNlbGVjdGVkRGF0ZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZGF0ZXBpY2tlck1vZGUgPVxuICAgICAgICB0aGlzLm1vZGVzW3RoaXMubW9kZXMuaW5kZXhPZih0aGlzLmRhdGVwaWNrZXJNb2RlKSAtIDFdO1xuICAgICAgdGhpcy5jYWxlbmRhck1vZGVDaGFuZ2UuZW1pdCh0aGlzLmRhdGVwaWNrZXJNb2RlKTtcbiAgICB9XG5cbiAgICB0aGlzLnJlZnJlc2hWaWV3KCk7XG4gIH1cblxuICBwdWJsaWMgbW92ZUNhbGVuZGFyKGV2ZW50OiBFdmVudCwgZGlyZWN0aW9uOiBudW1iZXIpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMubW92ZShkaXJlY3Rpb24pO1xuICB9XG5cbiAgcHVibGljIG1vdmUoZGlyZWN0aW9uOiBudW1iZXIpOiB2b2lkIHtcbiAgICBsZXQgZXhwZWN0ZWRTdGVwOiBhbnk7XG4gICAgaWYgKHRoaXMuZGF0ZXBpY2tlck1vZGUgPT09ICdkYXknKSB7XG4gICAgICBleHBlY3RlZFN0ZXAgPSB0aGlzLnN0ZXBEYXk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZGF0ZXBpY2tlck1vZGUgPT09ICdtb250aCcpIHtcbiAgICAgIGV4cGVjdGVkU3RlcCA9IHRoaXMuc3RlcE1vbnRoO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmRhdGVwaWNrZXJNb2RlID09PSAneWVhcicpIHtcbiAgICAgIGV4cGVjdGVkU3RlcCA9IHRoaXMuc3RlcFllYXI7XG4gICAgfVxuXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAvKiBzYW5pdHkgY2hlY2sgKi9cbiAgICBpZiAoZXhwZWN0ZWRTdGVwKSB7XG4gICAgICBjb25zdCB5ZWFyID1cbiAgICAgICAgdGhpcy5hY3RpdmVEYXRlLmdldEZ1bGxZZWFyKCkgKyBkaXJlY3Rpb24gKiAoZXhwZWN0ZWRTdGVwLnllYXJzIHx8IDApO1xuICAgICAgY29uc3QgbW9udGggPVxuICAgICAgICB0aGlzLmFjdGl2ZURhdGUuZ2V0TW9udGgoKSArIGRpcmVjdGlvbiAqIChleHBlY3RlZFN0ZXAubW9udGhzIHx8IDApO1xuXG4gICAgICB0aGlzLmFjdGl2ZURhdGUgPSBuZXcgRGF0ZSh5ZWFyLCBtb250aCwgMSk7XG5cbiAgICAgIHRoaXMucmVmcmVzaFZpZXcoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlTW9kZUNhbGVuZGFyKGV2ZW50OiBFdmVudCkge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy50b2dnbGVNb2RlKDEpO1xuICB9XG5cbiAgcHVibGljIHRvZ2dsZU1vZGUoZGlyZWN0aW9uOiBudW1iZXIpOiB2b2lkIHtcbiAgICAvKmlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgZGlyZWN0aW9uID0gZGlyZWN0aW9uIHx8IDE7XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIC8qIHNhbml0eSBjaGVjayAqL1xuICAgIGlmIChcbiAgICAgICEoZGlyZWN0aW9uID09PSAxICYmIHRoaXMuZGF0ZXBpY2tlck1vZGUgPT09IHRoaXMubWF4TW9kZSkgJiZcbiAgICAgICEodGhpcy5kYXRlcGlja2VyTW9kZSA9PT0gdGhpcy5taW5Nb2RlICYmIGRpcmVjdGlvbiA9PT0gLTEpXG4gICAgKSB7XG4gICAgICB0aGlzLmRhdGVwaWNrZXJNb2RlID1cbiAgICAgICAgdGhpcy5tb2Rlc1t0aGlzLm1vZGVzLmluZGV4T2YodGhpcy5kYXRlcGlja2VyTW9kZSkgKyBkaXJlY3Rpb25dO1xuICAgICAgdGhpcy5jYWxlbmRhck1vZGVDaGFuZ2UuZW1pdCh0aGlzLmRhdGVwaWNrZXJNb2RlKTtcbiAgICAgIHRoaXMucmVmcmVzaFZpZXcoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRGF0ZSBpcyBkaXNhYmxlZCBpZiBpdCBtZWV0cyBhbnkgb2YgdGhlc2UgY3JpdGVyaWE6XG4gICAqIDEuIERhdGUgZmFsbHMgb3V0c2lkZSB0aGUgbWluIG9yIG1heCBkYXRlcyBzZXQgYnkgdGhlIFNreURhdGVwaWNrZXJDb25maWdTZXJ2aWNlLlxuICAgKiAyLiBEYXRlIGlzIG1hcmtlZCBhcyBkaXNhYmxlZCBpbiB0aGUgY3VzdG9tRGF0ZXMgYXJyYXkuXG4gICAqL1xuICBwcm90ZWN0ZWQgaXNEaXNhYmxlZChkYXRlOiBEYXRlKTogYm9vbGVhbiB7XG4gICAgY29uc3QgY3VzdG9tRGF0ZSA9IHRoaXMuI2dldEN1c3RvbURhdGUoZGF0ZSk7XG4gICAgY29uc3QgbWluRGF0ZUNvbXBhcmUgPSB0aGlzLmNvbXBhcmUoZGF0ZSwgdGhpcy5taW5EYXRlKTtcbiAgICBjb25zdCBtYXhEYXRlQ29tcGFyZSA9IHRoaXMuY29tcGFyZShkYXRlLCB0aGlzLm1heERhdGUpO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIChtaW5EYXRlQ29tcGFyZSAhPT0gdW5kZWZpbmVkICYmIG1pbkRhdGVDb21wYXJlIDwgMCkgfHxcbiAgICAgIChtYXhEYXRlQ29tcGFyZSAhPT0gdW5kZWZpbmVkICYmIG1heERhdGVDb21wYXJlID4gMCkgfHxcbiAgICAgICEhY3VzdG9tRGF0ZT8uZGlzYWJsZWRcbiAgICApO1xuICB9XG5cbiAgI2dldEN1c3RvbURhdGUoZGF0ZTogRGF0ZSk6IFNreURhdGVwaWNrZXJDdXN0b21EYXRlIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodGhpcy5jdXN0b21EYXRlcykge1xuICAgICAgcmV0dXJuIHRoaXMuY3VzdG9tRGF0ZXMuZmluZCgoY3VzdG9tRGF0ZTogU2t5RGF0ZXBpY2tlckN1c3RvbURhdGUpID0+IHtcbiAgICAgICAgcmV0dXJuIGN1c3RvbURhdGUuZGF0ZS5nZXRUaW1lKCkgPT09IGRhdGUuZ2V0VGltZSgpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cbiIsIjxkaXZcbiAgKm5nSWY9XCJkYXRlcGlja2VyTW9kZVwiXG4gIGNsYXNzPVwic2t5LWRhdGVwaWNrZXItY2FsZW5kYXItaW5uZXJcIlxuICAoa2V5ZG93bik9XCJvbktleWRvd24oJGV2ZW50KVwiXG4+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvZGl2PlxuIl19
|
@@ -0,0 +1,95 @@
|
|
1
|
+
import { Component, EventEmitter, Input, Output, ViewChild, } from '@angular/core';
|
2
|
+
import { SkyDateFormatter } from './date-formatter';
|
3
|
+
import { SkyDatepickerAdapterService } from './datepicker-adapter.service';
|
4
|
+
import { SkyDatepickerCalendarInnerComponent } from './datepicker-calendar-inner.component';
|
5
|
+
import * as i0 from "@angular/core";
|
6
|
+
import * as i1 from "./datepicker-config.service";
|
7
|
+
import * as i2 from "./datepicker-calendar-inner.component";
|
8
|
+
import * as i3 from "./daypicker.component";
|
9
|
+
import * as i4 from "./monthpicker.component";
|
10
|
+
import * as i5 from "./yearpicker.component";
|
11
|
+
/**
|
12
|
+
* @internal
|
13
|
+
*/
|
14
|
+
export class SkyDatepickerCalendarComponent {
|
15
|
+
/** starting day of the week from 0-6 (0=Sunday, ..., 6=Saturday) */
|
16
|
+
set startingDay(start) {
|
17
|
+
this.#_startingDay = start ?? 0;
|
18
|
+
}
|
19
|
+
get startingDay() {
|
20
|
+
return this.#_startingDay;
|
21
|
+
}
|
22
|
+
#formatter;
|
23
|
+
#_startingDay;
|
24
|
+
#config;
|
25
|
+
constructor(config) {
|
26
|
+
this.calendarDateRangeChange = new EventEmitter();
|
27
|
+
this.calendarModeChange = new EventEmitter();
|
28
|
+
this.selectedDateChange = new EventEmitter(undefined);
|
29
|
+
this._now = new Date();
|
30
|
+
this.#formatter = new SkyDateFormatter();
|
31
|
+
this.#_startingDay = 0;
|
32
|
+
this.#config = config;
|
33
|
+
this.configureOptions();
|
34
|
+
}
|
35
|
+
configureOptions() {
|
36
|
+
Object.assign(this, this.#config);
|
37
|
+
}
|
38
|
+
onCalendarDateRangeChange(event) {
|
39
|
+
this.calendarDateRangeChange.next(event);
|
40
|
+
}
|
41
|
+
onCalendarModeChange(event) {
|
42
|
+
this.calendarModeChange.emit(event);
|
43
|
+
}
|
44
|
+
onSelectedDateChange(event) {
|
45
|
+
this.selectedDateChange.emit(event);
|
46
|
+
}
|
47
|
+
writeValue(value) {
|
48
|
+
if (value !== undefined &&
|
49
|
+
this.#formatter.dateIsValid(value) &&
|
50
|
+
this.selectedDate !== undefined &&
|
51
|
+
this.datepicker?.compareHandlerDay &&
|
52
|
+
this.datepicker.compareHandlerDay(value, this.selectedDate) === 0) {
|
53
|
+
return;
|
54
|
+
}
|
55
|
+
if (value && this.#formatter.dateIsValid(value)) {
|
56
|
+
this.selectedDate = value;
|
57
|
+
this.datepicker?.select(value, false);
|
58
|
+
}
|
59
|
+
else {
|
60
|
+
this.selectedDate = new Date();
|
61
|
+
this.datepicker?.select(new Date(), false);
|
62
|
+
}
|
63
|
+
}
|
64
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyDatepickerCalendarComponent, deps: [{ token: i1.SkyDatepickerConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
|
65
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: SkyDatepickerCalendarComponent, selector: "sky-datepicker-calendar", inputs: { customDates: "customDates", isDaypickerWaiting: "isDaypickerWaiting", minDate: "minDate", maxDate: "maxDate", selectedDate: "selectedDate", startingDay: "startingDay" }, outputs: { calendarDateRangeChange: "calendarDateRangeChange", calendarModeChange: "calendarModeChange", selectedDateChange: "selectedDateChange" }, providers: [SkyDatepickerAdapterService], viewQueries: [{ propertyName: "datepicker", first: true, predicate: SkyDatepickerCalendarInnerComponent, descendants: true, read: SkyDatepickerCalendarInnerComponent, static: true }], ngImport: i0, template: "<div class=\"sky-datepicker-calendar\">\n <sky-datepicker-inner\n [customDates]=\"customDates\"\n [maxDate]=\"maxDate\"\n [minDate]=\"minDate\"\n [selectedDate]=\"selectedDate\"\n [startingDay]=\"startingDay\"\n (calendarModeChange)=\"onCalendarModeChange($event)\"\n (selectedDateChange)=\"onSelectedDateChange($event)\"\n >\n <sky-daypicker\n tabindex=\"0\"\n [customDates]=\"customDates\"\n [isWaiting]=\"isDaypickerWaiting\"\n (calendarDateRangeChange)=\"onCalendarDateRangeChange($event)\"\n ></sky-daypicker>\n <sky-monthpicker tabindex=\"0\"></sky-monthpicker>\n <sky-yearpicker tabindex=\"0\"></sky-yearpicker>\n </sky-datepicker-inner>\n</div>\n", styles: [".sky-datepicker-calendar{display:block}\n"], dependencies: [{ kind: "component", type: i2.SkyDatepickerCalendarInnerComponent, selector: "sky-datepicker-inner", inputs: ["customDates", "startingDay", "minDate", "maxDate", "selectedDate"], outputs: ["selectedDateChange", "calendarModeChange"] }, { kind: "component", type: i3.SkyDayPickerComponent, selector: "sky-daypicker", inputs: ["customDates", "isWaiting"], outputs: ["calendarDateRangeChange"] }, { kind: "component", type: i4.SkyMonthPickerComponent, selector: "sky-monthpicker" }, { kind: "component", type: i5.SkyYearPickerComponent, selector: "sky-yearpicker" }] }); }
|
66
|
+
}
|
67
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyDatepickerCalendarComponent, decorators: [{
|
68
|
+
type: Component,
|
69
|
+
args: [{ selector: 'sky-datepicker-calendar', providers: [SkyDatepickerAdapterService], template: "<div class=\"sky-datepicker-calendar\">\n <sky-datepicker-inner\n [customDates]=\"customDates\"\n [maxDate]=\"maxDate\"\n [minDate]=\"minDate\"\n [selectedDate]=\"selectedDate\"\n [startingDay]=\"startingDay\"\n (calendarModeChange)=\"onCalendarModeChange($event)\"\n (selectedDateChange)=\"onSelectedDateChange($event)\"\n >\n <sky-daypicker\n tabindex=\"0\"\n [customDates]=\"customDates\"\n [isWaiting]=\"isDaypickerWaiting\"\n (calendarDateRangeChange)=\"onCalendarDateRangeChange($event)\"\n ></sky-daypicker>\n <sky-monthpicker tabindex=\"0\"></sky-monthpicker>\n <sky-yearpicker tabindex=\"0\"></sky-yearpicker>\n </sky-datepicker-inner>\n</div>\n", styles: [".sky-datepicker-calendar{display:block}\n"] }]
|
70
|
+
}], ctorParameters: function () { return [{ type: i1.SkyDatepickerConfigService }]; }, propDecorators: { customDates: [{
|
71
|
+
type: Input
|
72
|
+
}], isDaypickerWaiting: [{
|
73
|
+
type: Input
|
74
|
+
}], minDate: [{
|
75
|
+
type: Input
|
76
|
+
}], maxDate: [{
|
77
|
+
type: Input
|
78
|
+
}], selectedDate: [{
|
79
|
+
type: Input
|
80
|
+
}], startingDay: [{
|
81
|
+
type: Input
|
82
|
+
}], calendarDateRangeChange: [{
|
83
|
+
type: Output
|
84
|
+
}], calendarModeChange: [{
|
85
|
+
type: Output
|
86
|
+
}], selectedDateChange: [{
|
87
|
+
type: Output
|
88
|
+
}], datepicker: [{
|
89
|
+
type: ViewChild,
|
90
|
+
args: [SkyDatepickerCalendarInnerComponent, {
|
91
|
+
read: SkyDatepickerCalendarInnerComponent,
|
92
|
+
static: true,
|
93
|
+
}]
|
94
|
+
}] } });
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci1jYWxlbmRhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZGF0ZXRpbWUvc3JjL2xpYi9tb2R1bGVzL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci1jYWxlbmRhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZGF0ZXRpbWUvc3JjL2xpYi9tb2R1bGVzL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci1jYWxlbmRhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUUzRSxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQzs7Ozs7OztBQUk1Rjs7R0FFRztBQU9ILE1BQU0sT0FBTyw4QkFBOEI7SUFpQnpDLG9FQUFvRTtJQUNwRSxJQUNXLFdBQVcsQ0FBQyxLQUF5QjtRQUM5QyxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssSUFBSSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQVcsV0FBVztRQUNwQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQztJQXFCRCxVQUFVLENBQTBCO0lBRXBDLGFBQWEsQ0FBSztJQUVsQixPQUFPLENBQTZCO0lBRXBDLFlBQVksTUFBa0M7UUF4QnZDLDRCQUF1QixHQUFHLElBQUksWUFBWSxFQUU5QyxDQUFDO1FBR0csdUJBQWtCLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUdoRCx1QkFBa0IsR0FBRyxJQUFJLFlBQVksQ0FBTyxTQUFTLENBQUMsQ0FBQztRQVFwRCxTQUFJLEdBQVMsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUVsQyxlQUFVLEdBQUcsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO1FBRXBDLGtCQUFhLEdBQUcsQ0FBQyxDQUFDO1FBS2hCLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTSxnQkFBZ0I7UUFDckIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFTSx5QkFBeUIsQ0FDOUIsS0FBOEM7UUFFOUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRU0sb0JBQW9CLENBQUMsS0FBYTtRQUN2QyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFTSxvQkFBb0IsQ0FBQyxLQUFXO1FBQ3JDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVNLFVBQVUsQ0FBQyxLQUF1QjtRQUN2QyxJQUNFLEtBQUssS0FBSyxTQUFTO1lBQ25CLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztZQUNsQyxJQUFJLENBQUMsWUFBWSxLQUFLLFNBQVM7WUFDL0IsSUFBSSxDQUFDLFVBQVUsRUFBRSxpQkFBaUI7WUFDbEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFDakU7WUFDQSxPQUFPO1NBQ1I7UUFFRCxJQUFJLEtBQUssSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUMvQyxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztZQUMxQixJQUFJLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDdkM7YUFBTTtZQUNMLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxJQUFJLElBQUksRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQzVDO0lBQ0gsQ0FBQzs4R0E3RlUsOEJBQThCO2tHQUE5Qiw4QkFBOEIsMlhBRjlCLENBQUMsMkJBQTJCLENBQUMsc0VBd0M3QixtQ0FBbUMsMkJBQ3RDLG1DQUFtQywyQ0MvRDdDLHdzQkFvQkE7OzJGRElhLDhCQUE4QjtrQkFOMUMsU0FBUzsrQkFDRSx5QkFBeUIsYUFHeEIsQ0FBQywyQkFBMkIsQ0FBQztpSEFJakMsV0FBVztzQkFEakIsS0FBSztnQkFJQyxrQkFBa0I7c0JBRHhCLEtBQUs7Z0JBSUMsT0FBTztzQkFEYixLQUFLO2dCQUlDLE9BQU87c0JBRGIsS0FBSztnQkFLQyxZQUFZO3NCQURsQixLQUFLO2dCQUtLLFdBQVc7c0JBRHJCLEtBQUs7Z0JBVUMsdUJBQXVCO3NCQUQ3QixNQUFNO2dCQU1BLGtCQUFrQjtzQkFEeEIsTUFBTTtnQkFJQSxrQkFBa0I7c0JBRHhCLE1BQU07Z0JBT0EsVUFBVTtzQkFKaEIsU0FBUzt1QkFBQyxtQ0FBbUMsRUFBRTt3QkFDOUMsSUFBSSxFQUFFLG1DQUFtQzt3QkFDekMsTUFBTSxFQUFFLElBQUk7cUJBQ2IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU2t5RGF0ZUZvcm1hdHRlciB9IGZyb20gJy4vZGF0ZS1mb3JtYXR0ZXInO1xuaW1wb3J0IHsgU2t5RGF0ZXBpY2tlckFkYXB0ZXJTZXJ2aWNlIH0gZnJvbSAnLi9kYXRlcGlja2VyLWFkYXB0ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBTa3lEYXRlcGlja2VyQ2FsZW5kYXJDaGFuZ2UgfSBmcm9tICcuL2RhdGVwaWNrZXItY2FsZW5kYXItY2hhbmdlJztcbmltcG9ydCB7IFNreURhdGVwaWNrZXJDYWxlbmRhcklubmVyQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRlcGlja2VyLWNhbGVuZGFyLWlubmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lEYXRlcGlja2VyQ29uZmlnU2VydmljZSB9IGZyb20gJy4vZGF0ZXBpY2tlci1jb25maWcuc2VydmljZSc7XG5pbXBvcnQgeyBTa3lEYXRlcGlja2VyQ3VzdG9tRGF0ZSB9IGZyb20gJy4vZGF0ZXBpY2tlci1jdXN0b20tZGF0ZSc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1kYXRlcGlja2VyLWNhbGVuZGFyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGVwaWNrZXItY2FsZW5kYXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kYXRlcGlja2VyLWNhbGVuZGFyLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1NreURhdGVwaWNrZXJBZGFwdGVyU2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIFNreURhdGVwaWNrZXJDYWxlbmRhckNvbXBvbmVudCB7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBjdXN0b21EYXRlczogU2t5RGF0ZXBpY2tlckN1c3RvbURhdGVbXSB8IHVuZGVmaW5lZDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgaXNEYXlwaWNrZXJXYWl0aW5nOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBtaW5EYXRlOiBEYXRlIHwgdW5kZWZpbmVkO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBtYXhEYXRlOiBEYXRlIHwgdW5kZWZpbmVkO1xuXG4gIC8qKiBjdXJyZW50bHkgc2VsZWN0ZWQgZGF0ZSAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2VsZWN0ZWREYXRlOiBEYXRlIHwgdW5kZWZpbmVkO1xuXG4gIC8qKiBzdGFydGluZyBkYXkgb2YgdGhlIHdlZWsgZnJvbSAwLTYgKDA9U3VuZGF5LCAuLi4sIDY9U2F0dXJkYXkpICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgc3RhcnRpbmdEYXkoc3RhcnQ6IG51bWJlciB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI19zdGFydGluZ0RheSA9IHN0YXJ0ID8/IDA7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHN0YXJ0aW5nRGF5KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuI19zdGFydGluZ0RheTtcbiAgfVxuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgY2FsZW5kYXJEYXRlUmFuZ2VDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFxuICAgIFNreURhdGVwaWNrZXJDYWxlbmRhckNoYW5nZSB8IHVuZGVmaW5lZFxuICA+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBjYWxlbmRhck1vZGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIHNlbGVjdGVkRGF0ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZT4odW5kZWZpbmVkKTtcblxuICBAVmlld0NoaWxkKFNreURhdGVwaWNrZXJDYWxlbmRhcklubmVyQ29tcG9uZW50LCB7XG4gICAgcmVhZDogU2t5RGF0ZXBpY2tlckNhbGVuZGFySW5uZXJDb21wb25lbnQsXG4gICAgc3RhdGljOiB0cnVlLFxuICB9KVxuICBwdWJsaWMgZGF0ZXBpY2tlcjogU2t5RGF0ZXBpY2tlckNhbGVuZGFySW5uZXJDb21wb25lbnQgfCB1bmRlZmluZWQ7XG5cbiAgcHJvdGVjdGVkIF9ub3c6IERhdGUgPSBuZXcgRGF0ZSgpO1xuXG4gICNmb3JtYXR0ZXIgPSBuZXcgU2t5RGF0ZUZvcm1hdHRlcigpO1xuXG4gICNfc3RhcnRpbmdEYXkgPSAwO1xuXG4gICNjb25maWc6IFNreURhdGVwaWNrZXJDb25maWdTZXJ2aWNlO1xuXG4gIGNvbnN0cnVjdG9yKGNvbmZpZzogU2t5RGF0ZXBpY2tlckNvbmZpZ1NlcnZpY2UpIHtcbiAgICB0aGlzLiNjb25maWcgPSBjb25maWc7XG4gICAgdGhpcy5jb25maWd1cmVPcHRpb25zKCk7XG4gIH1cblxuICBwdWJsaWMgY29uZmlndXJlT3B0aW9ucygpOiB2b2lkIHtcbiAgICBPYmplY3QuYXNzaWduKHRoaXMsIHRoaXMuI2NvbmZpZyk7XG4gIH1cblxuICBwdWJsaWMgb25DYWxlbmRhckRhdGVSYW5nZUNoYW5nZShcbiAgICBldmVudDogU2t5RGF0ZXBpY2tlckNhbGVuZGFyQ2hhbmdlIHwgdW5kZWZpbmVkXG4gICk6IHZvaWQge1xuICAgIHRoaXMuY2FsZW5kYXJEYXRlUmFuZ2VDaGFuZ2UubmV4dChldmVudCk7XG4gIH1cblxuICBwdWJsaWMgb25DYWxlbmRhck1vZGVDaGFuZ2UoZXZlbnQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuY2FsZW5kYXJNb2RlQ2hhbmdlLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgcHVibGljIG9uU2VsZWN0ZWREYXRlQ2hhbmdlKGV2ZW50OiBEYXRlKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZERhdGVDaGFuZ2UuZW1pdChldmVudCk7XG4gIH1cblxuICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogRGF0ZSB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIHZhbHVlICE9PSB1bmRlZmluZWQgJiZcbiAgICAgIHRoaXMuI2Zvcm1hdHRlci5kYXRlSXNWYWxpZCh2YWx1ZSkgJiZcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRlICE9PSB1bmRlZmluZWQgJiZcbiAgICAgIHRoaXMuZGF0ZXBpY2tlcj8uY29tcGFyZUhhbmRsZXJEYXkgJiZcbiAgICAgIHRoaXMuZGF0ZXBpY2tlci5jb21wYXJlSGFuZGxlckRheSh2YWx1ZSwgdGhpcy5zZWxlY3RlZERhdGUpID09PSAwXG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHZhbHVlICYmIHRoaXMuI2Zvcm1hdHRlci5kYXRlSXNWYWxpZCh2YWx1ZSkpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gdmFsdWU7XG4gICAgICB0aGlzLmRhdGVwaWNrZXI/LnNlbGVjdCh2YWx1ZSwgZmFsc2UpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdGVkRGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgICB0aGlzLmRhdGVwaWNrZXI/LnNlbGVjdChuZXcgRGF0ZSgpLCBmYWxzZSk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic2t5LWRhdGVwaWNrZXItY2FsZW5kYXJcIj5cbiAgPHNreS1kYXRlcGlja2VyLWlubmVyXG4gICAgW2N1c3RvbURhdGVzXT1cImN1c3RvbURhdGVzXCJcbiAgICBbbWF4RGF0ZV09XCJtYXhEYXRlXCJcbiAgICBbbWluRGF0ZV09XCJtaW5EYXRlXCJcbiAgICBbc2VsZWN0ZWREYXRlXT1cInNlbGVjdGVkRGF0ZVwiXG4gICAgW3N0YXJ0aW5nRGF5XT1cInN0YXJ0aW5nRGF5XCJcbiAgICAoY2FsZW5kYXJNb2RlQ2hhbmdlKT1cIm9uQ2FsZW5kYXJNb2RlQ2hhbmdlKCRldmVudClcIlxuICAgIChzZWxlY3RlZERhdGVDaGFuZ2UpPVwib25TZWxlY3RlZERhdGVDaGFuZ2UoJGV2ZW50KVwiXG4gID5cbiAgICA8c2t5LWRheXBpY2tlclxuICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgIFtjdXN0b21EYXRlc109XCJjdXN0b21EYXRlc1wiXG4gICAgICBbaXNXYWl0aW5nXT1cImlzRGF5cGlja2VyV2FpdGluZ1wiXG4gICAgICAoY2FsZW5kYXJEYXRlUmFuZ2VDaGFuZ2UpPVwib25DYWxlbmRhckRhdGVSYW5nZUNoYW5nZSgkZXZlbnQpXCJcbiAgICA+PC9za3ktZGF5cGlja2VyPlxuICAgIDxza3ktbW9udGhwaWNrZXIgdGFiaW5kZXg9XCIwXCI+PC9za3ktbW9udGhwaWNrZXI+XG4gICAgPHNreS15ZWFycGlja2VyIHRhYmluZGV4PVwiMFwiPjwvc2t5LXllYXJwaWNrZXI+XG4gIDwvc2t5LWRhdGVwaWNrZXItaW5uZXI+XG48L2Rpdj5cbiJdfQ==
|
@@ -9,13 +9,13 @@ export class SkyDatepickerConfigService {
|
|
9
9
|
*/
|
10
10
|
this.startingDay = 0;
|
11
11
|
}
|
12
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyDatepickerConfigService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
13
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyDatepickerConfigService, providedIn: 'root' }); }
|
12
14
|
}
|
13
|
-
|
14
|
-
SkyDatepickerConfigService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyDatepickerConfigService, providedIn: 'root' });
|
15
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyDatepickerConfigService, decorators: [{
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyDatepickerConfigService, decorators: [{
|
16
16
|
type: Injectable,
|
17
17
|
args: [{
|
18
18
|
providedIn: 'root',
|
19
19
|
}]
|
20
20
|
}] });
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci1jb25maWcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9kYXRldGltZS9zcmMvbGliL21vZHVsZXMvZGF0ZXBpY2tlci9kYXRlcGlja2VyLWNvbmZpZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSzNDLE1BQU0sT0FBTywwQkFBMEI7SUFIdkM7UUFvQkU7Ozs7V0FJRztRQUNJLGdCQUFXLEdBQUcsQ0FBQyxDQUFDO0tBQ3hCOzhHQXZCWSwwQkFBMEI7a0hBQTFCLDBCQUEwQixjQUZ6QixNQUFNOzsyRkFFUCwwQkFBMEI7a0JBSHRDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5RGF0ZXBpY2tlckNvbmZpZ1NlcnZpY2Uge1xuICAvKipcbiAgICogVGhlIGRhdGUgZm9ybWF0IGZvciB0aGUgaW5wdXQuXG4gICAqIEBkZWZhdWx0IFwiTU0vREQvWVlZWVwiXG4gICAqL1xuICBwdWJsaWMgZGF0ZUZvcm1hdDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgbGF0ZXN0IHNlbGVjdGFibGUgZGF0ZSB0aGF0IGlzIGF2YWlsYWJsZSBpbiB0aGUgY2FsZW5kYXIuXG4gICAqL1xuICBwdWJsaWMgbWF4RGF0ZTogRGF0ZSB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIGVhcmxpZXN0IHNlbGVjdGFibGUgZGF0ZSB0aGF0IGlzIGF2YWlsYWJsZSBpbiB0aGUgY2FsZW5kYXIuXG4gICAqL1xuICBwdWJsaWMgbWluRGF0ZTogRGF0ZSB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIHN0YXJ0aW5nIGRheSBvZiB0aGUgd2VlayBpbiB0aGUgY2FsZW5kYXIsXG4gICAqIHdoZXJlIGAwYCBzZXRzIHRoZSBzdGFydGluZyBkYXkgdG8gU3VuZGF5LlxuICAgKiBAZGVmYXVsdCAwXG4gICAqL1xuICBwdWJsaWMgc3RhcnRpbmdEYXkgPSAwO1xufVxuIl19
|