@skyux/datetime 5.0.2 → 5.1.2
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/skyux-datetime-testing.umd.js +3 -1
- package/bundles/skyux-datetime-testing.umd.js.map +1 -1
- package/bundles/skyux-datetime.umd.js +871 -434
- package/bundles/skyux-datetime.umd.js.map +1 -1
- package/documentation.json +1355 -971
- package/esm2015/modules/date-pipe/date-format-utility.js +10 -10
- package/esm2015/modules/date-pipe/date-pipe.module.js +9 -30
- package/esm2015/modules/date-pipe/date.pipe.js +7 -6
- package/esm2015/modules/date-pipe/fuzzy-date.pipe.js +5 -5
- package/esm2015/modules/date-range-picker/date-range-picker.component.js +30 -30
- package/esm2015/modules/date-range-picker/date-range-picker.module.js +11 -13
- package/esm2015/modules/date-range-picker/date-range.service.js +8 -13
- package/esm2015/modules/date-range-picker/types/date-range-calculation.js +1 -1
- package/esm2015/modules/date-range-picker/types/date-range-calculator-config.js +1 -1
- package/esm2015/modules/date-range-picker/types/date-range-calculator-date-range-function.js +1 -1
- package/esm2015/modules/date-range-picker/types/date-range-calculator-id.js +1 -1
- package/esm2015/modules/date-range-picker/types/date-range-calculator-type.js +1 -1
- package/esm2015/modules/date-range-picker/types/date-range-calculator-validate-function.js +1 -1
- package/esm2015/modules/date-range-picker/types/date-range-calculator.js +2 -2
- package/esm2015/modules/date-range-picker/types/date-range-default-calculator-config.js +1 -1
- package/esm2015/modules/date-range-picker/types/date-range-default-calculator-configs.js +25 -25
- package/esm2015/modules/date-range-picker/types/date-range-relative-value.js +17 -17
- package/esm2015/modules/date-range-picker/types/date-range.js +1 -1
- package/esm2015/modules/datepicker/date-formatter.js +4 -3
- package/esm2015/modules/datepicker/datepicker-adapter.service.js +4 -4
- package/esm2015/modules/datepicker/datepicker-calendar-change.js +2 -0
- package/esm2015/modules/datepicker/datepicker-calendar-inner.component.js +42 -15
- package/esm2015/modules/datepicker/datepicker-calendar.component.js +24 -14
- package/esm2015/modules/datepicker/datepicker-config.service.js +5 -5
- package/esm2015/modules/datepicker/datepicker-custom-date.js +2 -0
- package/esm2015/modules/datepicker/datepicker-date.js +1 -1
- package/esm2015/modules/datepicker/datepicker-input-fuzzy.directive.js +41 -41
- package/esm2015/modules/datepicker/datepicker-input.directive.js +38 -39
- package/esm2015/modules/datepicker/datepicker.component.js +68 -17
- package/esm2015/modules/datepicker/datepicker.module.js +28 -13
- package/esm2015/modules/datepicker/datepicker.service.js +21 -0
- package/esm2015/modules/datepicker/daypicker-button.component.js +25 -0
- package/esm2015/modules/datepicker/daypicker-cell.component.js +128 -0
- package/esm2015/modules/datepicker/daypicker.component.js +111 -20
- package/esm2015/modules/datepicker/fuzzy-date.js +1 -1
- package/esm2015/modules/datepicker/fuzzy-date.service.js +55 -27
- package/esm2015/modules/datepicker/monthpicker.component.js +8 -10
- package/esm2015/modules/datepicker/yearpicker.component.js +17 -12
- package/esm2015/modules/shared/sky-datetime-resources.module.js +102 -15
- package/esm2015/modules/timepicker/timepicker.component.js +29 -30
- package/esm2015/modules/timepicker/timepicker.directive.js +37 -36
- package/esm2015/modules/timepicker/timepicker.interface.js +1 -1
- package/esm2015/modules/timepicker/timepicker.module.js +10 -18
- package/esm2015/public-api.js +3 -1
- package/esm2015/testing/datepicker-fixture.js +4 -2
- package/esm2015/testing/timepicker-fixture.js +1 -1
- package/fesm2015/skyux-datetime-testing.js +3 -1
- package/fesm2015/skyux-datetime-testing.js.map +1 -1
- package/fesm2015/skyux-datetime.js +850 -422
- package/fesm2015/skyux-datetime.js.map +1 -1
- package/modules/datepicker/datepicker-calendar-change.d.ts +24 -0
- package/modules/datepicker/datepicker-calendar-inner.component.d.ts +13 -3
- package/modules/datepicker/datepicker-calendar.component.d.ts +8 -2
- package/modules/datepicker/datepicker-custom-date.d.ts +21 -0
- package/modules/datepicker/datepicker-date.d.ts +2 -0
- package/modules/datepicker/datepicker.component.d.ts +14 -1
- package/modules/datepicker/datepicker.module.d.ts +11 -8
- package/modules/datepicker/datepicker.service.d.ts +15 -0
- package/modules/datepicker/daypicker-button.component.d.ts +16 -0
- package/modules/datepicker/daypicker-cell.component.d.ts +40 -0
- package/modules/datepicker/daypicker.component.d.ts +18 -3
- package/package.json +7 -7
- package/public-api.d.ts +2 -0
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Pipe, NgModule, Injectable, EventEmitter, Component, ViewEncapsulation, Input, Output, ViewChild, ElementRef, TemplateRef,
|
|
2
|
+
import { Pipe, NgModule, Injectable, EventEmitter, Component, ViewEncapsulation, Input, Output, ChangeDetectionStrategy, ViewChild, ElementRef, TemplateRef, Optional, forwardRef, Directive, HostListener } from '@angular/core';
|
|
3
3
|
import { Subject, fromEvent, BehaviorSubject, forkJoin, combineLatest } from 'rxjs';
|
|
4
|
-
import { takeUntil, distinctUntilChanged, first, map } from 'rxjs/operators';
|
|
4
|
+
import { takeUntil, debounceTime, distinctUntilChanged, first, map } from 'rxjs/operators';
|
|
5
5
|
import * as i3 from '@skyux/i18n';
|
|
6
6
|
import { SkyIntlDateFormatter, getLibStringForLocale, SkyI18nModule, SKY_LIB_RESOURCES_PROVIDERS } from '@skyux/i18n';
|
|
7
7
|
import moment from 'moment';
|
|
8
|
-
import * as
|
|
8
|
+
import * as i5 from '@angular/common';
|
|
9
9
|
import { CommonModule } from '@angular/common';
|
|
10
10
|
import * as i2$2 from '@angular/forms';
|
|
11
11
|
import { NG_VALUE_ACCESSOR, NG_VALIDATORS, FormsModule, FormControl, ReactiveFormsModule } from '@angular/forms';
|
|
@@ -14,9 +14,11 @@ import { SkyInputBoxModule } from '@skyux/forms';
|
|
|
14
14
|
import * as i1 from '@skyux/core';
|
|
15
15
|
import { SkyAffixAutoFitContext, SkyAffixModule, SkyOverlayModule } from '@skyux/core';
|
|
16
16
|
import * as i2 from '@skyux/indicators';
|
|
17
|
-
import { SkyIconModule } from '@skyux/indicators';
|
|
17
|
+
import { SkyIconModule, SkyWaitModule } from '@skyux/indicators';
|
|
18
18
|
import * as i3$2 from '@skyux/theme';
|
|
19
19
|
import { SkyThemeModule } from '@skyux/theme';
|
|
20
|
+
import * as i3$1 from '@skyux/popovers';
|
|
21
|
+
import { SkyPopoverMessageType, SkyPopoverModule } from '@skyux/popovers';
|
|
20
22
|
|
|
21
23
|
// This class is mostly ported from the Angular 4.x DatePipe in order to maintain the old
|
|
22
24
|
class SkyDateFormatUtility {
|
|
@@ -45,14 +47,14 @@ class SkyDateFormatUtility {
|
|
|
45
47
|
}
|
|
46
48
|
}
|
|
47
49
|
SkyDateFormatUtility._ALIASES = {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
50
|
+
medium: 'yMMMdjms',
|
|
51
|
+
short: 'yMdjm',
|
|
52
|
+
fullDate: 'yMMMMEEEEd',
|
|
53
|
+
longDate: 'yMMMMd',
|
|
54
|
+
mediumDate: 'yMMMd',
|
|
55
|
+
shortDate: 'yMd',
|
|
56
|
+
mediumTime: 'jms',
|
|
57
|
+
shortTime: 'jm',
|
|
56
58
|
};
|
|
57
59
|
function isBlank(obj) {
|
|
58
60
|
return !obj;
|
|
@@ -76,7 +78,8 @@ class SkyDatePipe {
|
|
|
76
78
|
this.defaultFormat = 'short';
|
|
77
79
|
this.defaultLocale = 'en-US';
|
|
78
80
|
this.ngUnsubscribe = new Subject();
|
|
79
|
-
this.localeProvider
|
|
81
|
+
this.localeProvider
|
|
82
|
+
.getLocaleInfo()
|
|
80
83
|
.pipe(takeUntil(this.ngUnsubscribe))
|
|
81
84
|
.subscribe((localeInfo) => {
|
|
82
85
|
this.defaultLocale = localeInfo.locale;
|
|
@@ -108,13 +111,13 @@ class SkyDatePipe {
|
|
|
108
111
|
this.formattedValue = SkyDateFormatUtility.format(locale, this.value, format);
|
|
109
112
|
}
|
|
110
113
|
}
|
|
111
|
-
SkyDatePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
112
|
-
SkyDatePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "12.2.
|
|
113
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
114
|
+
SkyDatePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyDatePipe, deps: [{ token: i3.SkyAppLocaleProvider }], target: i0.ɵɵFactoryTarget.Pipe });
|
|
115
|
+
SkyDatePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyDatePipe, name: "skyDate", pure: false });
|
|
116
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyDatePipe, decorators: [{
|
|
114
117
|
type: Pipe,
|
|
115
118
|
args: [{
|
|
116
119
|
name: 'skyDate',
|
|
117
|
-
pure: false
|
|
120
|
+
pure: false,
|
|
118
121
|
}]
|
|
119
122
|
}], ctorParameters: function () { return [{ type: i3.SkyAppLocaleProvider }]; } });
|
|
120
123
|
|
|
@@ -125,10 +128,93 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImpo
|
|
|
125
128
|
* To update this file, simply rerun the command.
|
|
126
129
|
*/
|
|
127
130
|
const RESOURCES = {
|
|
128
|
-
'EN-AU': {
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
131
|
+
'EN-AU': {
|
|
132
|
+
skyux_date_range_picker_format_label_last_fiscal_year: {
|
|
133
|
+
message: 'Last financial year',
|
|
134
|
+
},
|
|
135
|
+
skyux_date_range_picker_format_label_this_fiscal_year: {
|
|
136
|
+
message: 'This financial year',
|
|
137
|
+
},
|
|
138
|
+
skyux_date_range_picker_format_label_next_fiscal_year: {
|
|
139
|
+
message: 'Next financial year',
|
|
140
|
+
},
|
|
141
|
+
},
|
|
142
|
+
'EN-GB': {
|
|
143
|
+
skyux_date_range_picker_format_label_last_fiscal_year: {
|
|
144
|
+
message: 'Last financial year',
|
|
145
|
+
},
|
|
146
|
+
skyux_date_range_picker_format_label_this_fiscal_year: {
|
|
147
|
+
message: 'This financial year',
|
|
148
|
+
},
|
|
149
|
+
skyux_date_range_picker_format_label_next_fiscal_year: {
|
|
150
|
+
message: 'Next financial year',
|
|
151
|
+
},
|
|
152
|
+
},
|
|
153
|
+
'EN-NZ': {
|
|
154
|
+
skyux_date_range_picker_format_label_last_fiscal_year: {
|
|
155
|
+
message: 'Last financial year',
|
|
156
|
+
},
|
|
157
|
+
skyux_date_range_picker_format_label_this_fiscal_year: {
|
|
158
|
+
message: 'This financial year',
|
|
159
|
+
},
|
|
160
|
+
skyux_date_range_picker_format_label_next_fiscal_year: {
|
|
161
|
+
message: 'Next financial year',
|
|
162
|
+
},
|
|
163
|
+
},
|
|
164
|
+
'EN-US': {
|
|
165
|
+
skyux_date_field_default_label: { message: 'Date' },
|
|
166
|
+
skyux_datepicker_trigger_button_label: { message: 'Select date' },
|
|
167
|
+
skyux_timepicker_button_label: { message: 'Choose time' },
|
|
168
|
+
skyux_timepicker_close: { message: 'Done' },
|
|
169
|
+
skyux_timepicker_input_default_label: { message: 'Time' },
|
|
170
|
+
skyux_date_range_picker_default_label: { message: 'Select a date range' },
|
|
171
|
+
skyux_date_range_picker_format_label_specific_range: {
|
|
172
|
+
message: 'Specific range',
|
|
173
|
+
},
|
|
174
|
+
skyux_date_range_picker_format_label_before: { message: 'Before' },
|
|
175
|
+
skyux_date_range_picker_format_label_after: { message: 'After' },
|
|
176
|
+
skyux_date_range_picker_format_label_any_time: { message: 'At any time' },
|
|
177
|
+
skyux_date_range_picker_format_label_yesterday: { message: 'Yesterday' },
|
|
178
|
+
skyux_date_range_picker_format_label_today: { message: 'Today' },
|
|
179
|
+
skyux_date_range_picker_format_label_tomorrow: { message: 'Tomorrow' },
|
|
180
|
+
skyux_date_range_picker_format_label_last_week: { message: 'Last week' },
|
|
181
|
+
skyux_date_range_picker_format_label_this_week: { message: 'This week' },
|
|
182
|
+
skyux_date_range_picker_format_label_next_week: { message: 'Next week' },
|
|
183
|
+
skyux_date_range_picker_format_label_last_month: { message: 'Last month' },
|
|
184
|
+
skyux_date_range_picker_format_label_this_month: { message: 'This month' },
|
|
185
|
+
skyux_date_range_picker_format_label_next_month: { message: 'Next month' },
|
|
186
|
+
skyux_date_range_picker_format_label_last_quarter: {
|
|
187
|
+
message: 'Last quarter',
|
|
188
|
+
},
|
|
189
|
+
skyux_date_range_picker_format_label_this_quarter: {
|
|
190
|
+
message: 'This quarter',
|
|
191
|
+
},
|
|
192
|
+
skyux_date_range_picker_format_label_next_quarter: {
|
|
193
|
+
message: 'Next quarter',
|
|
194
|
+
},
|
|
195
|
+
skyux_date_range_picker_format_label_last_calendar_year: {
|
|
196
|
+
message: 'Last calendar year',
|
|
197
|
+
},
|
|
198
|
+
skyux_date_range_picker_format_label_this_calendar_year: {
|
|
199
|
+
message: 'This calendar year',
|
|
200
|
+
},
|
|
201
|
+
skyux_date_range_picker_format_label_next_calendar_year: {
|
|
202
|
+
message: 'Next calendar year',
|
|
203
|
+
},
|
|
204
|
+
skyux_date_range_picker_format_label_last_fiscal_year: {
|
|
205
|
+
message: 'Last fiscal year',
|
|
206
|
+
},
|
|
207
|
+
skyux_date_range_picker_format_label_this_fiscal_year: {
|
|
208
|
+
message: 'This fiscal year',
|
|
209
|
+
},
|
|
210
|
+
skyux_date_range_picker_format_label_next_fiscal_year: {
|
|
211
|
+
message: 'Next fiscal year',
|
|
212
|
+
},
|
|
213
|
+
skyux_date_range_picker_start_date_label: { message: 'From date' },
|
|
214
|
+
skyux_date_range_picker_end_date_label: { message: 'To date' },
|
|
215
|
+
skyux_date_range_picker_before_date_label: { message: 'Before date' },
|
|
216
|
+
skyux_date_range_picker_after_date_label: { message: 'After date' },
|
|
217
|
+
},
|
|
132
218
|
};
|
|
133
219
|
class SkyDatetimeResourcesProvider {
|
|
134
220
|
getString(localeInfo, name) {
|
|
@@ -140,22 +226,26 @@ class SkyDatetimeResourcesProvider {
|
|
|
140
226
|
*/
|
|
141
227
|
class SkyDatetimeResourcesModule {
|
|
142
228
|
}
|
|
143
|
-
SkyDatetimeResourcesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
144
|
-
SkyDatetimeResourcesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.
|
|
145
|
-
SkyDatetimeResourcesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.
|
|
229
|
+
SkyDatetimeResourcesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyDatetimeResourcesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
230
|
+
SkyDatetimeResourcesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyDatetimeResourcesModule, exports: [SkyI18nModule] });
|
|
231
|
+
SkyDatetimeResourcesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyDatetimeResourcesModule, providers: [
|
|
232
|
+
{
|
|
146
233
|
provide: SKY_LIB_RESOURCES_PROVIDERS,
|
|
147
234
|
useClass: SkyDatetimeResourcesProvider,
|
|
148
|
-
multi: true
|
|
149
|
-
}
|
|
150
|
-
|
|
235
|
+
multi: true,
|
|
236
|
+
},
|
|
237
|
+
], imports: [SkyI18nModule] });
|
|
238
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyDatetimeResourcesModule, decorators: [{
|
|
151
239
|
type: NgModule,
|
|
152
240
|
args: [{
|
|
153
241
|
exports: [SkyI18nModule],
|
|
154
|
-
providers: [
|
|
242
|
+
providers: [
|
|
243
|
+
{
|
|
155
244
|
provide: SKY_LIB_RESOURCES_PROVIDERS,
|
|
156
245
|
useClass: SkyDatetimeResourcesProvider,
|
|
157
|
-
multi: true
|
|
158
|
-
}
|
|
246
|
+
multi: true,
|
|
247
|
+
},
|
|
248
|
+
],
|
|
159
249
|
}]
|
|
160
250
|
}] });
|
|
161
251
|
|
|
@@ -166,7 +256,8 @@ class SkyFuzzyDateService {
|
|
|
166
256
|
constructor(localeProvider) {
|
|
167
257
|
this.localeProvider = localeProvider;
|
|
168
258
|
this.ngUnsubscribe = new Subject();
|
|
169
|
-
this.localeProvider
|
|
259
|
+
this.localeProvider
|
|
260
|
+
.getLocaleInfo()
|
|
170
261
|
.pipe(takeUntil(this.ngUnsubscribe))
|
|
171
262
|
.subscribe((localeInfo) => {
|
|
172
263
|
this.currentLocale = localeInfo.locale;
|
|
@@ -241,7 +332,7 @@ class SkyFuzzyDateService {
|
|
|
241
332
|
return;
|
|
242
333
|
}
|
|
243
334
|
const year = fuzzyDate.year || this.getDefaultYear(fuzzyDate);
|
|
244
|
-
const month = fuzzyDate.month > 0 ?
|
|
335
|
+
const month = fuzzyDate.month > 0 ? fuzzyDate.month - 1 : 0;
|
|
245
336
|
const day = fuzzyDate.day || 1;
|
|
246
337
|
return moment([year, month, day]);
|
|
247
338
|
}
|
|
@@ -260,10 +351,10 @@ class SkyFuzzyDateService {
|
|
|
260
351
|
let dateComponents = [
|
|
261
352
|
{ value: fuzzyDate.year || 0, index: dateFormatIndexes.yearIndex },
|
|
262
353
|
{ value: fuzzyDate.month || 0, index: dateFormatIndexes.monthIndex },
|
|
263
|
-
{ value: fuzzyDate.day || 0, index: dateFormatIndexes.dayIndex }
|
|
354
|
+
{ value: fuzzyDate.day || 0, index: dateFormatIndexes.dayIndex },
|
|
264
355
|
];
|
|
265
356
|
dateComponents.sort((a, b) => a.index - b.index);
|
|
266
|
-
dateComponents.forEach(component => {
|
|
357
|
+
dateComponents.forEach((component) => {
|
|
267
358
|
if (component.value > 0 && component.index > -1) {
|
|
268
359
|
if (dateString) {
|
|
269
360
|
dateString += separator;
|
|
@@ -315,18 +406,33 @@ class SkyFuzzyDateService {
|
|
|
315
406
|
// is the month. Otherwise, we can assume the input is mm/dd or mm/yy (2-digit year).
|
|
316
407
|
year = this.get4DigitYearFromDateString(date);
|
|
317
408
|
if (year) {
|
|
318
|
-
month =
|
|
409
|
+
month =
|
|
410
|
+
dateComponents[0] === year.toString()
|
|
411
|
+
? dateComponents[1]
|
|
412
|
+
: dateComponents[0];
|
|
319
413
|
}
|
|
320
414
|
else {
|
|
321
415
|
if (indexes.dayIndex > -1) {
|
|
322
416
|
// mm/dd
|
|
323
|
-
month =
|
|
324
|
-
|
|
417
|
+
month =
|
|
418
|
+
indexes.monthIndex < indexes.dayIndex
|
|
419
|
+
? dateComponents[0]
|
|
420
|
+
: dateComponents[1];
|
|
421
|
+
day =
|
|
422
|
+
month === dateComponents[1]
|
|
423
|
+
? dateComponents[0]
|
|
424
|
+
: dateComponents[1];
|
|
325
425
|
}
|
|
326
426
|
else {
|
|
327
427
|
// mm/yy
|
|
328
|
-
month =
|
|
329
|
-
|
|
428
|
+
month =
|
|
429
|
+
indexes.monthIndex < indexes.yearIndex
|
|
430
|
+
? dateComponents[0]
|
|
431
|
+
: dateComponents[1];
|
|
432
|
+
year =
|
|
433
|
+
month === dateComponents[1]
|
|
434
|
+
? dateComponents[0]
|
|
435
|
+
: dateComponents[1];
|
|
330
436
|
}
|
|
331
437
|
}
|
|
332
438
|
break;
|
|
@@ -345,14 +451,21 @@ class SkyFuzzyDateService {
|
|
|
345
451
|
// Check if day is valid.
|
|
346
452
|
if (day) {
|
|
347
453
|
day = parseInt(day, 10);
|
|
348
|
-
let fuzzyMoment = this.getMomentFromFuzzyDate({
|
|
454
|
+
let fuzzyMoment = this.getMomentFromFuzzyDate({
|
|
455
|
+
month: month,
|
|
456
|
+
day: day,
|
|
457
|
+
year: year,
|
|
458
|
+
});
|
|
349
459
|
if (isNaN(day) || !fuzzyMoment.isValid()) {
|
|
350
460
|
return;
|
|
351
461
|
}
|
|
352
462
|
}
|
|
353
463
|
}
|
|
354
464
|
if (year) {
|
|
355
|
-
year =
|
|
465
|
+
year =
|
|
466
|
+
year.toString().length === 2
|
|
467
|
+
? moment.parseTwoDigitYear(year)
|
|
468
|
+
: parseInt(year.toString(), 10);
|
|
356
469
|
if (isNaN(year) || year.toString().length !== 4) {
|
|
357
470
|
return;
|
|
358
471
|
}
|
|
@@ -360,7 +473,7 @@ class SkyFuzzyDateService {
|
|
|
360
473
|
return {
|
|
361
474
|
month: month,
|
|
362
475
|
day: day,
|
|
363
|
-
year: year
|
|
476
|
+
year: year,
|
|
364
477
|
};
|
|
365
478
|
}
|
|
366
479
|
getFuzzyDateRange(startFuzzyDate, endFuzzyDate) {
|
|
@@ -370,7 +483,10 @@ class SkyFuzzyDateService {
|
|
|
370
483
|
let months;
|
|
371
484
|
let years;
|
|
372
485
|
let valid = false;
|
|
373
|
-
if (startFuzzyDate &&
|
|
486
|
+
if (startFuzzyDate &&
|
|
487
|
+
startFuzzyDate.year &&
|
|
488
|
+
endFuzzyDate &&
|
|
489
|
+
endFuzzyDate.year) {
|
|
374
490
|
start = this.getMomentFromFuzzyDate(startFuzzyDate);
|
|
375
491
|
end = this.getMomentFromFuzzyDate(endFuzzyDate);
|
|
376
492
|
years = end.diff(start, 'years');
|
|
@@ -382,7 +498,7 @@ class SkyFuzzyDateService {
|
|
|
382
498
|
years: years,
|
|
383
499
|
months: months,
|
|
384
500
|
days: days,
|
|
385
|
-
valid: valid
|
|
501
|
+
valid: valid,
|
|
386
502
|
};
|
|
387
503
|
}
|
|
388
504
|
getCurrentFuzzyDate() {
|
|
@@ -390,7 +506,7 @@ class SkyFuzzyDateService {
|
|
|
390
506
|
return {
|
|
391
507
|
day: currentDate.date(),
|
|
392
508
|
month: currentDate.month() + 1,
|
|
393
|
-
year: currentDate.year()
|
|
509
|
+
year: currentDate.year(),
|
|
394
510
|
};
|
|
395
511
|
}
|
|
396
512
|
getMostRecentLeapYear() {
|
|
@@ -408,7 +524,7 @@ class SkyFuzzyDateService {
|
|
|
408
524
|
getDateSeparator(dateFormat) {
|
|
409
525
|
let returnValue;
|
|
410
526
|
let separators = ['/', '.', '-', ' '];
|
|
411
|
-
separators.forEach(separator => {
|
|
527
|
+
separators.forEach((separator) => {
|
|
412
528
|
if (!returnValue && dateFormat.indexOf(separator) > 0) {
|
|
413
529
|
returnValue = separator;
|
|
414
530
|
}
|
|
@@ -419,7 +535,7 @@ class SkyFuzzyDateService {
|
|
|
419
535
|
let year;
|
|
420
536
|
const separator = this.getDateSeparator(date);
|
|
421
537
|
// Find the number value in the string that is 4 digits long.
|
|
422
|
-
date.split(separator).forEach(dateComponent => {
|
|
538
|
+
date.split(separator).forEach((dateComponent) => {
|
|
423
539
|
if (!year && parseInt(dateComponent, 10).toString().length === 4) {
|
|
424
540
|
year = dateComponent;
|
|
425
541
|
}
|
|
@@ -429,7 +545,7 @@ class SkyFuzzyDateService {
|
|
|
429
545
|
}
|
|
430
546
|
}
|
|
431
547
|
isLeapYear(year) {
|
|
432
|
-
return (
|
|
548
|
+
return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;
|
|
433
549
|
}
|
|
434
550
|
getMonthNumber(month) {
|
|
435
551
|
let returnValue;
|
|
@@ -469,7 +585,7 @@ class SkyFuzzyDateService {
|
|
|
469
585
|
return {
|
|
470
586
|
yearIndex: dateFormat.indexOf('y'),
|
|
471
587
|
monthIndex: dateFormat.indexOf('m'),
|
|
472
|
-
dayIndex: dateFormat.indexOf('d')
|
|
588
|
+
dayIndex: dateFormat.indexOf('d'),
|
|
473
589
|
};
|
|
474
590
|
}
|
|
475
591
|
// Returns the index of each of the date components in the provided string (month, day, year).
|
|
@@ -485,11 +601,13 @@ class SkyFuzzyDateService {
|
|
|
485
601
|
if (dateFormatIndexes.dayIndex > -1) {
|
|
486
602
|
dateComponentIndexes.push(dateFormatIndexes.dayIndex);
|
|
487
603
|
}
|
|
488
|
-
dateComponentIndexes.sort(function (a, b) {
|
|
604
|
+
dateComponentIndexes.sort(function (a, b) {
|
|
605
|
+
return a - b;
|
|
606
|
+
});
|
|
489
607
|
return {
|
|
490
608
|
yearIndex: dateComponentIndexes.indexOf(dateFormatIndexes.yearIndex),
|
|
491
609
|
monthIndex: dateComponentIndexes.indexOf(dateFormatIndexes.monthIndex),
|
|
492
|
-
dayIndex: dateComponentIndexes.indexOf(dateFormatIndexes.dayIndex)
|
|
610
|
+
dayIndex: dateComponentIndexes.indexOf(dateFormatIndexes.dayIndex),
|
|
493
611
|
};
|
|
494
612
|
}
|
|
495
613
|
/**
|
|
@@ -518,12 +636,12 @@ class SkyFuzzyDateService {
|
|
|
518
636
|
return true;
|
|
519
637
|
}
|
|
520
638
|
}
|
|
521
|
-
SkyFuzzyDateService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
522
|
-
SkyFuzzyDateService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.
|
|
523
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
639
|
+
SkyFuzzyDateService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyFuzzyDateService, deps: [{ token: i3.SkyAppLocaleProvider }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
640
|
+
SkyFuzzyDateService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyFuzzyDateService, providedIn: 'root' });
|
|
641
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyFuzzyDateService, decorators: [{
|
|
524
642
|
type: Injectable,
|
|
525
643
|
args: [{
|
|
526
|
-
providedIn: 'root'
|
|
644
|
+
providedIn: 'root',
|
|
527
645
|
}]
|
|
528
646
|
}], ctorParameters: function () { return [{ type: i3.SkyAppLocaleProvider }]; } });
|
|
529
647
|
|
|
@@ -560,49 +678,28 @@ class SkyFuzzyDatePipe {
|
|
|
560
678
|
return this.fuzzyDateService.format(value, fuzzyDateFormat, fuzzyDateLocale);
|
|
561
679
|
}
|
|
562
680
|
}
|
|
563
|
-
SkyFuzzyDatePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
564
|
-
SkyFuzzyDatePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "12.2.
|
|
565
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
681
|
+
SkyFuzzyDatePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyFuzzyDatePipe, deps: [{ token: SkyFuzzyDateService }], target: i0.ɵɵFactoryTarget.Pipe });
|
|
682
|
+
SkyFuzzyDatePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyFuzzyDatePipe, name: "skyFuzzyDate", pure: false });
|
|
683
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyFuzzyDatePipe, decorators: [{
|
|
566
684
|
type: Pipe,
|
|
567
685
|
args: [{
|
|
568
686
|
name: 'skyFuzzyDate',
|
|
569
|
-
pure: false
|
|
687
|
+
pure: false,
|
|
570
688
|
}]
|
|
571
689
|
}], ctorParameters: function () { return [{ type: SkyFuzzyDateService }]; } });
|
|
572
690
|
|
|
573
691
|
class SkyDatePipeModule {
|
|
574
692
|
}
|
|
575
|
-
SkyDatePipeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
576
|
-
SkyDatePipeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
SkyFuzzyDatePipe] });
|
|
580
|
-
SkyDatePipeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: SkyDatePipeModule, providers: [
|
|
581
|
-
SkyDatePipe,
|
|
582
|
-
SkyFuzzyDatePipe
|
|
583
|
-
], imports: [[
|
|
584
|
-
CommonModule,
|
|
585
|
-
SkyDatetimeResourcesModule
|
|
586
|
-
]] });
|
|
587
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: SkyDatePipeModule, decorators: [{
|
|
693
|
+
SkyDatePipeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyDatePipeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
694
|
+
SkyDatePipeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyDatePipeModule, declarations: [SkyDatePipe, SkyFuzzyDatePipe], imports: [CommonModule, SkyDatetimeResourcesModule], exports: [SkyDatePipe, SkyFuzzyDatePipe] });
|
|
695
|
+
SkyDatePipeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyDatePipeModule, providers: [SkyDatePipe, SkyFuzzyDatePipe], imports: [[CommonModule, SkyDatetimeResourcesModule]] });
|
|
696
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyDatePipeModule, decorators: [{
|
|
588
697
|
type: NgModule,
|
|
589
698
|
args: [{
|
|
590
|
-
declarations: [
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
],
|
|
594
|
-
providers: [
|
|
595
|
-
SkyDatePipe,
|
|
596
|
-
SkyFuzzyDatePipe
|
|
597
|
-
],
|
|
598
|
-
imports: [
|
|
599
|
-
CommonModule,
|
|
600
|
-
SkyDatetimeResourcesModule
|
|
601
|
-
],
|
|
602
|
-
exports: [
|
|
603
|
-
SkyDatePipe,
|
|
604
|
-
SkyFuzzyDatePipe
|
|
605
|
-
]
|
|
699
|
+
declarations: [SkyDatePipe, SkyFuzzyDatePipe],
|
|
700
|
+
providers: [SkyDatePipe, SkyFuzzyDatePipe],
|
|
701
|
+
imports: [CommonModule, SkyDatetimeResourcesModule],
|
|
702
|
+
exports: [SkyDatePipe, SkyFuzzyDatePipe],
|
|
606
703
|
}]
|
|
607
704
|
}] });
|
|
608
705
|
|
|
@@ -772,9 +869,9 @@ class SkyDatepickerAdapterService {
|
|
|
772
869
|
this.renderer.setAttribute(elementRef.nativeElement, 'placeholder', value);
|
|
773
870
|
}
|
|
774
871
|
}
|
|
775
|
-
SkyDatepickerAdapterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
776
|
-
SkyDatepickerAdapterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.
|
|
777
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
872
|
+
SkyDatepickerAdapterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyDatepickerAdapterService, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
873
|
+
SkyDatepickerAdapterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyDatepickerAdapterService });
|
|
874
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyDatepickerAdapterService, decorators: [{
|
|
778
875
|
type: Injectable
|
|
779
876
|
}], ctorParameters: function () { return [{ type: i0.Renderer2 }]; } });
|
|
780
877
|
|
|
@@ -790,7 +887,8 @@ class SkyDateFormatter {
|
|
|
790
887
|
*/
|
|
791
888
|
static getPreferredShortDateFormat() {
|
|
792
889
|
/* istanbul ignore next */
|
|
793
|
-
return moment.localeData().longDateFormat('L') ||
|
|
890
|
+
return (moment.localeData().longDateFormat('L') ||
|
|
891
|
+
SkyDateFormatter.defaultShortDateFormat);
|
|
794
892
|
}
|
|
795
893
|
format(date, format) {
|
|
796
894
|
return moment(date.getTime()).format(format);
|
|
@@ -850,8 +948,9 @@ class SkyDatepickerCalendarInnerComponent {
|
|
|
850
948
|
37: 'left',
|
|
851
949
|
38: 'up',
|
|
852
950
|
39: 'right',
|
|
853
|
-
40: 'down'
|
|
951
|
+
40: 'down',
|
|
854
952
|
};
|
|
953
|
+
this.ngUnsubscribe = new Subject();
|
|
855
954
|
}
|
|
856
955
|
set selectedDate(value) {
|
|
857
956
|
if (this.dateFormatter.dateIsValid(value)) {
|
|
@@ -873,6 +972,10 @@ class SkyDatepickerCalendarInnerComponent {
|
|
|
873
972
|
ngOnChanges(changes) {
|
|
874
973
|
this.refreshView();
|
|
875
974
|
}
|
|
975
|
+
ngOnDestroy() {
|
|
976
|
+
this.ngUnsubscribe.next();
|
|
977
|
+
this.ngUnsubscribe.complete();
|
|
978
|
+
}
|
|
876
979
|
setCompareHandler(handler, type) {
|
|
877
980
|
if (type === 'day') {
|
|
878
981
|
this.compareHandlerDay = handler;
|
|
@@ -976,6 +1079,7 @@ class SkyDatepickerCalendarInnerComponent {
|
|
|
976
1079
|
}
|
|
977
1080
|
}
|
|
978
1081
|
createDateObject(date, format, isSecondary, id) {
|
|
1082
|
+
const customDateMatch = this.getCustomDate(date);
|
|
979
1083
|
let dateObject = {
|
|
980
1084
|
date: new Date(date.getFullYear(), date.getMonth(), date.getDate()),
|
|
981
1085
|
label: this.dateFilter(date, format),
|
|
@@ -983,7 +1087,9 @@ class SkyDatepickerCalendarInnerComponent {
|
|
|
983
1087
|
disabled: this.isDisabled(date),
|
|
984
1088
|
current: this.compare(date, new Date()) === 0,
|
|
985
1089
|
secondary: isSecondary,
|
|
986
|
-
uid: id
|
|
1090
|
+
uid: id,
|
|
1091
|
+
keyDate: customDateMatch ? customDateMatch.keyDate : undefined,
|
|
1092
|
+
keyDateText: customDateMatch ? customDateMatch.keyDateText : [],
|
|
987
1093
|
};
|
|
988
1094
|
return dateObject;
|
|
989
1095
|
}
|
|
@@ -1022,7 +1128,8 @@ class SkyDatepickerCalendarInnerComponent {
|
|
|
1022
1128
|
}
|
|
1023
1129
|
}
|
|
1024
1130
|
else {
|
|
1025
|
-
this.datepickerMode =
|
|
1131
|
+
this.datepickerMode =
|
|
1132
|
+
this.modes[this.modes.indexOf(this.datepickerMode) - 1];
|
|
1026
1133
|
this.calendarModeChange.emit(this.datepickerMode);
|
|
1027
1134
|
}
|
|
1028
1135
|
this.refreshView();
|
|
@@ -1046,8 +1153,8 @@ class SkyDatepickerCalendarInnerComponent {
|
|
|
1046
1153
|
/* istanbul ignore else */
|
|
1047
1154
|
/* sanity check */
|
|
1048
1155
|
if (expectedStep) {
|
|
1049
|
-
let year = this.activeDate.getFullYear() +
|
|
1050
|
-
let month = this.activeDate.getMonth() +
|
|
1156
|
+
let year = this.activeDate.getFullYear() + direction * (expectedStep.years || 0);
|
|
1157
|
+
let month = this.activeDate.getMonth() + direction * (expectedStep.months || 0);
|
|
1051
1158
|
this.activeDate = new Date(year, month, 1);
|
|
1052
1159
|
this.refreshView();
|
|
1053
1160
|
}
|
|
@@ -1064,27 +1171,44 @@ class SkyDatepickerCalendarInnerComponent {
|
|
|
1064
1171
|
/* sanity check */
|
|
1065
1172
|
if (!(direction === 1 && this.datepickerMode === this.maxMode) &&
|
|
1066
1173
|
!(this.datepickerMode === this.minMode && direction === -1)) {
|
|
1067
|
-
this.datepickerMode =
|
|
1174
|
+
this.datepickerMode =
|
|
1175
|
+
this.modes[this.modes.indexOf(this.datepickerMode) + direction];
|
|
1068
1176
|
this.calendarModeChange.emit(this.datepickerMode);
|
|
1069
1177
|
this.refreshView();
|
|
1070
1178
|
}
|
|
1071
1179
|
}
|
|
1180
|
+
/**
|
|
1181
|
+
* Date is disabled if it meets any of these criteria:
|
|
1182
|
+
* 1. Date falls outside the min or max dates set by the SkyDatepickerConfigService.
|
|
1183
|
+
* 2. Date is marked as disabled in the customDates array.
|
|
1184
|
+
*/
|
|
1072
1185
|
isDisabled(date) {
|
|
1073
|
-
|
|
1074
|
-
|
|
1186
|
+
const customDate = this.getCustomDate(date);
|
|
1187
|
+
return ((this.minDate && this.compare(date, this.minDate) < 0) ||
|
|
1188
|
+
(this.maxDate && this.compare(date, this.maxDate) > 0) ||
|
|
1189
|
+
(customDate && customDate.disabled));
|
|
1190
|
+
}
|
|
1191
|
+
getCustomDate(date) {
|
|
1192
|
+
if (this.customDates) {
|
|
1193
|
+
return this.customDates.find((customDate) => {
|
|
1194
|
+
return customDate.date.getTime() === date.getTime();
|
|
1195
|
+
});
|
|
1196
|
+
}
|
|
1075
1197
|
}
|
|
1076
1198
|
}
|
|
1077
|
-
SkyDatepickerCalendarInnerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
1078
|
-
SkyDatepickerCalendarInnerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.
|
|
1079
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
1199
|
+
SkyDatepickerCalendarInnerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyDatepickerCalendarInnerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1200
|
+
SkyDatepickerCalendarInnerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.14", 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-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"], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
1201
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyDatepickerCalendarInnerComponent, decorators: [{
|
|
1080
1202
|
type: Component,
|
|
1081
1203
|
args: [{
|
|
1082
1204
|
selector: 'sky-datepicker-inner',
|
|
1083
1205
|
templateUrl: './datepicker-calendar-inner.component.html',
|
|
1084
1206
|
styleUrls: ['./datepicker-calendar-inner.component.scss'],
|
|
1085
|
-
encapsulation: ViewEncapsulation.None
|
|
1207
|
+
encapsulation: ViewEncapsulation.None,
|
|
1086
1208
|
}]
|
|
1087
|
-
}], propDecorators: {
|
|
1209
|
+
}], propDecorators: { customDates: [{
|
|
1210
|
+
type: Input
|
|
1211
|
+
}], startingDay: [{
|
|
1088
1212
|
type: Input
|
|
1089
1213
|
}], minDate: [{
|
|
1090
1214
|
type: Input
|
|
@@ -1108,28 +1232,198 @@ class SkyDatepickerConfigService {
|
|
|
1108
1232
|
this.startingDay = 0;
|
|
1109
1233
|
}
|
|
1110
1234
|
}
|
|
1111
|
-
SkyDatepickerConfigService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
1112
|
-
SkyDatepickerConfigService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.
|
|
1113
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
1235
|
+
SkyDatepickerConfigService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyDatepickerConfigService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1236
|
+
SkyDatepickerConfigService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyDatepickerConfigService, providedIn: 'root' });
|
|
1237
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyDatepickerConfigService, decorators: [{
|
|
1114
1238
|
type: Injectable,
|
|
1115
1239
|
args: [{
|
|
1116
|
-
providedIn: 'root'
|
|
1240
|
+
providedIn: 'root',
|
|
1117
1241
|
}]
|
|
1118
1242
|
}] });
|
|
1119
1243
|
|
|
1244
|
+
/**
|
|
1245
|
+
* @internal
|
|
1246
|
+
*/
|
|
1247
|
+
class SkyDatepickerService {
|
|
1248
|
+
constructor() {
|
|
1249
|
+
/**
|
|
1250
|
+
* Specifies if a key date popover is currently displayed.
|
|
1251
|
+
* Useful for communicating across all daypicker siblings when a popover is displayed.
|
|
1252
|
+
*/
|
|
1253
|
+
this.keyDatePopoverStream = new Subject();
|
|
1254
|
+
}
|
|
1255
|
+
}
|
|
1256
|
+
SkyDatepickerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyDatepickerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1257
|
+
SkyDatepickerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyDatepickerService });
|
|
1258
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyDatepickerService, decorators: [{
|
|
1259
|
+
type: Injectable
|
|
1260
|
+
}] });
|
|
1261
|
+
|
|
1262
|
+
/**
|
|
1263
|
+
* @internal
|
|
1264
|
+
*/
|
|
1265
|
+
class SkyDayPickerButtonComponent {
|
|
1266
|
+
constructor(datepicker) {
|
|
1267
|
+
this.datepicker = datepicker;
|
|
1268
|
+
}
|
|
1269
|
+
}
|
|
1270
|
+
SkyDayPickerButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyDayPickerButtonComponent, deps: [{ token: SkyDatepickerCalendarInnerComponent }], target: i0.ɵɵFactoryTarget.Component });
|
|
1271
|
+
SkyDayPickerButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.14", type: SkyDayPickerButtonComponent, selector: "sky-daypicker-button", inputs: { date: "date" }, ngImport: i0, template: "<button\n class=\"sky-btn sky-btn-sm sky-btn-default sky-datepicker-btn-date\"\n tabindex=\"-1\"\n type=\"button\"\n [disabled]=\"date.disabled\"\n [ngClass]=\"{\n 'sky-datepicker-btn-selected': date.selected,\n 'sky-btn-disabled': date.disabled,\n 'sky-btn-active': datepicker.isActive(date),\n 'sky-datepicker-btn-disabled': date.disabled,\n 'sky-datepicker-btn-key-date': date.keyDate\n }\"\n (click)=\"datepicker.selectCalendar($event, date.date, true)\"\n>\n <span [ngClass]=\"{ 'sky-datepicker-secondary': date.secondary }\">\n {{ date.label }}\n </span>\n</button>\n", styles: [".sky-datepicker-btn-disabled{font-style:italic}.sky-datepicker-btn-key-date{position:relative}.sky-datepicker-btn-key-date:before{position:absolute;content:\"\";height:5px;width:5px;background-color:#d93a3d;border-radius:50%;left:15px;top:22px}:host-context(.sky-theme-modern) .sky-datepicker-btn-key-date:before{left:12px}.sky-theme-modern .sky-datepicker-btn-key-date:before{left:12px}\n"], directives: [{ type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
|
|
1272
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyDayPickerButtonComponent, decorators: [{
|
|
1273
|
+
type: Component,
|
|
1274
|
+
args: [{
|
|
1275
|
+
selector: 'sky-daypicker-button',
|
|
1276
|
+
templateUrl: 'daypicker-button.component.html',
|
|
1277
|
+
styleUrls: ['./daypicker-button.component.scss'],
|
|
1278
|
+
}]
|
|
1279
|
+
}], ctorParameters: function () { return [{ type: SkyDatepickerCalendarInnerComponent }]; }, propDecorators: { date: [{
|
|
1280
|
+
type: Input
|
|
1281
|
+
}] } });
|
|
1282
|
+
|
|
1283
|
+
/**
|
|
1284
|
+
* @internal
|
|
1285
|
+
*/
|
|
1286
|
+
class SkyDayPickerCellComponent {
|
|
1287
|
+
constructor(datepicker, datepickerService) {
|
|
1288
|
+
this.datepicker = datepicker;
|
|
1289
|
+
this.datepickerService = datepickerService;
|
|
1290
|
+
this.hasTooltip = false;
|
|
1291
|
+
this.popoverController = new Subject();
|
|
1292
|
+
this.activeUid = '';
|
|
1293
|
+
this.cancelPopover = false;
|
|
1294
|
+
this.popoverOpen = false;
|
|
1295
|
+
this.ngUnsubscribe = new Subject();
|
|
1296
|
+
}
|
|
1297
|
+
ngOnInit() {
|
|
1298
|
+
this.hasTooltip =
|
|
1299
|
+
this.date.keyDate &&
|
|
1300
|
+
this.date.keyDateText &&
|
|
1301
|
+
this.date.keyDateText.length > 0 &&
|
|
1302
|
+
this.date.keyDateText[0].length > 0;
|
|
1303
|
+
// show the tooltip if this is the active date and is not the
|
|
1304
|
+
// initial active date (activeDateHasChanged)
|
|
1305
|
+
if (this.datepicker.isActive(this.date) &&
|
|
1306
|
+
this.activeDateHasChanged &&
|
|
1307
|
+
this.hasTooltip) {
|
|
1308
|
+
this.activeUid = this.date.uid;
|
|
1309
|
+
this.showTooltip();
|
|
1310
|
+
}
|
|
1311
|
+
if (this.hasTooltip) {
|
|
1312
|
+
this.datepickerService.keyDatePopoverStream
|
|
1313
|
+
.pipe(takeUntil(this.ngUnsubscribe))
|
|
1314
|
+
.subscribe((date) => {
|
|
1315
|
+
if (date) {
|
|
1316
|
+
this.activeUid = date.uid;
|
|
1317
|
+
}
|
|
1318
|
+
else {
|
|
1319
|
+
this.activeUid = '';
|
|
1320
|
+
}
|
|
1321
|
+
// If this day has an open popover and they have moved off of the day close the popover.
|
|
1322
|
+
if (this.date.uid !== this.activeUid) {
|
|
1323
|
+
this.hideTooltip();
|
|
1324
|
+
}
|
|
1325
|
+
});
|
|
1326
|
+
}
|
|
1327
|
+
}
|
|
1328
|
+
ngOnDestroy() {
|
|
1329
|
+
this.ngUnsubscribe.next();
|
|
1330
|
+
this.ngUnsubscribe.complete();
|
|
1331
|
+
}
|
|
1332
|
+
onDayMouseenter() {
|
|
1333
|
+
this.cancelPopover = false;
|
|
1334
|
+
if (this.hasTooltip) {
|
|
1335
|
+
this.showTooltip();
|
|
1336
|
+
this.datepickerService.keyDatePopoverStream.next(this.date);
|
|
1337
|
+
}
|
|
1338
|
+
}
|
|
1339
|
+
onDayMouseleave() {
|
|
1340
|
+
this.cancelPopover = true;
|
|
1341
|
+
if (this.hasTooltip) {
|
|
1342
|
+
this.hideTooltip();
|
|
1343
|
+
}
|
|
1344
|
+
this.datepickerService.keyDatePopoverStream.next(undefined);
|
|
1345
|
+
}
|
|
1346
|
+
onPopoverClosed() {
|
|
1347
|
+
this.popoverOpen = false;
|
|
1348
|
+
}
|
|
1349
|
+
onPopoverOpened() {
|
|
1350
|
+
this.popoverOpen = true;
|
|
1351
|
+
/* istanbul ignore else */
|
|
1352
|
+
if (this.cancelPopover) {
|
|
1353
|
+
// If the popover gets opened just as a mouseout event happens, close it.
|
|
1354
|
+
this.hideTooltip();
|
|
1355
|
+
this.cancelPopover = false;
|
|
1356
|
+
}
|
|
1357
|
+
}
|
|
1358
|
+
getKeyDateLabel() {
|
|
1359
|
+
if (this.hasTooltip) {
|
|
1360
|
+
return this.date.keyDateText.join(', ');
|
|
1361
|
+
}
|
|
1362
|
+
else {
|
|
1363
|
+
return '';
|
|
1364
|
+
}
|
|
1365
|
+
}
|
|
1366
|
+
hideTooltip() {
|
|
1367
|
+
/* istanbul ignore else */
|
|
1368
|
+
if (this.popoverOpen) {
|
|
1369
|
+
this.popoverController.next({ type: SkyPopoverMessageType.Close });
|
|
1370
|
+
}
|
|
1371
|
+
}
|
|
1372
|
+
showTooltip() {
|
|
1373
|
+
/* istanbul ignore else */
|
|
1374
|
+
if (this.hasTooltip && !this.popoverOpen) {
|
|
1375
|
+
/**
|
|
1376
|
+
* Delay 1/2 second before opening the popover as long as mouse hasn't moved off the date.
|
|
1377
|
+
*/
|
|
1378
|
+
setTimeout(() => {
|
|
1379
|
+
if (!this.cancelPopover && this.activeUid === this.date.uid) {
|
|
1380
|
+
this.popoverController.next({ type: SkyPopoverMessageType.Open });
|
|
1381
|
+
}
|
|
1382
|
+
}, 500);
|
|
1383
|
+
}
|
|
1384
|
+
}
|
|
1385
|
+
}
|
|
1386
|
+
SkyDayPickerCellComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyDayPickerCellComponent, deps: [{ token: SkyDatepickerCalendarInnerComponent }, { token: SkyDatepickerService }], target: i0.ɵɵFactoryTarget.Component });
|
|
1387
|
+
SkyDayPickerCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.14", type: SkyDayPickerCellComponent, selector: "sky-daypicker-cell", inputs: { activeDateHasChanged: "activeDateHasChanged", date: "date" }, ngImport: i0, template: "<div\n *ngIf=\"hasTooltip\"\n class=\"sky-daypicker-cell\"\n [attr.aria-label]=\"getKeyDateLabel()\"\n [skyPopover]=\"dayInfoPopover\"\n skyPopoverPlacement=\"left\"\n [skyPopoverMessageStream]=\"popoverController\"\n (mouseenter)=\"onDayMouseenter()\"\n (mouseleave)=\"onDayMouseleave()\"\n>\n <ng-container *ngTemplateOutlet=\"daypickerButtonTemplateRef\"></ng-container>\n <sky-popover\n (popoverClosed)=\"onPopoverClosed()\"\n (popoverOpened)=\"onPopoverOpened()\"\n #dayInfoPopover\n >\n <div *ngFor=\"let text of date.keyDateText\">\n {{ text }}\n </div>\n </sky-popover>\n</div>\n<div\n *ngIf=\"!hasTooltip\"\n class=\"sky-daypicker-cell\"\n (mouseenter)=\"onDayMouseenter()\"\n (mouseleave)=\"onDayMouseleave()\"\n>\n <ng-container *ngTemplateOutlet=\"daypickerButtonTemplateRef\"></ng-container>\n</div>\n\n<ng-template #daypickerButtonTemplateRef>\n <sky-daypicker-button [date]=\"date\"> </sky-daypicker-button>\n</ng-template>\n", components: [{ type: i3$1.λ6, selector: "sky-popover", inputs: ["alignment", "dismissOnBlur", "placement", "popoverTitle", "popoverType"], outputs: ["popoverClosed", "popoverOpened"] }, { type: SkyDayPickerButtonComponent, selector: "sky-daypicker-button", inputs: ["date"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3$1.λ7, selector: "[skyPopover]", inputs: ["skyPopover", "skyPopoverAlignment", "skyPopoverMessageStream", "skyPopoverPlacement", "skyPopoverTrigger"] }, { type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1388
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyDayPickerCellComponent, decorators: [{
|
|
1389
|
+
type: Component,
|
|
1390
|
+
args: [{
|
|
1391
|
+
selector: 'sky-daypicker-cell',
|
|
1392
|
+
templateUrl: 'daypicker-cell.component.html',
|
|
1393
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1394
|
+
}]
|
|
1395
|
+
}], ctorParameters: function () { return [{ type: SkyDatepickerCalendarInnerComponent }, { type: SkyDatepickerService }]; }, propDecorators: { activeDateHasChanged: [{
|
|
1396
|
+
type: Input
|
|
1397
|
+
}], date: [{
|
|
1398
|
+
type: Input
|
|
1399
|
+
}] } });
|
|
1400
|
+
|
|
1120
1401
|
/**
|
|
1121
1402
|
* @internal
|
|
1122
1403
|
*/
|
|
1123
1404
|
class SkyDayPickerComponent {
|
|
1124
1405
|
constructor(datepicker) {
|
|
1406
|
+
this.calendarDateRangeChange = new EventEmitter();
|
|
1407
|
+
this.isWaiting = false;
|
|
1408
|
+
this.activeDateHasChanged = false;
|
|
1125
1409
|
this.labels = [];
|
|
1126
1410
|
this.rows = [];
|
|
1127
1411
|
this.weekNumbers = [];
|
|
1128
|
-
this.daysInMonth = [
|
|
1412
|
+
this.daysInMonth = [
|
|
1413
|
+
31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31,
|
|
1414
|
+
];
|
|
1415
|
+
this.ngUnsubscribe = new Subject();
|
|
1129
1416
|
this.datepicker = datepicker;
|
|
1130
1417
|
}
|
|
1418
|
+
set customDates(value) {
|
|
1419
|
+
/* istanbul ignore else */
|
|
1420
|
+
if (value) {
|
|
1421
|
+
this.applyCustomDates(value, this.rows);
|
|
1422
|
+
}
|
|
1423
|
+
}
|
|
1131
1424
|
ngOnInit() {
|
|
1132
1425
|
this.datepicker.stepDay = { months: 1 };
|
|
1426
|
+
this.initialDate = this.datepicker.activeDate.getDate();
|
|
1133
1427
|
this.datepicker.setRefreshViewHandler(() => {
|
|
1134
1428
|
this.refreshDayView();
|
|
1135
1429
|
}, 'day');
|
|
@@ -1139,6 +1433,10 @@ class SkyDayPickerComponent {
|
|
|
1139
1433
|
}, 'day');
|
|
1140
1434
|
this.datepicker.refreshView();
|
|
1141
1435
|
}
|
|
1436
|
+
ngOnDestroy() {
|
|
1437
|
+
this.ngUnsubscribe.next();
|
|
1438
|
+
this.ngUnsubscribe.complete();
|
|
1439
|
+
}
|
|
1142
1440
|
getDates(startDate, n) {
|
|
1143
1441
|
let dates = new Array(n);
|
|
1144
1442
|
let current = new Date(startDate.getTime());
|
|
@@ -1162,10 +1460,11 @@ class SkyDayPickerComponent {
|
|
|
1162
1460
|
let month = this.datepicker.activeDate.getMonth();
|
|
1163
1461
|
let firstDayOfMonth = new Date(year, month, 1);
|
|
1164
1462
|
let difference = this.datepicker.startingDay - firstDayOfMonth.getDay();
|
|
1165
|
-
let numDisplayedFromPreviousMonth =
|
|
1166
|
-
? 7 - difference
|
|
1167
|
-
: -difference;
|
|
1463
|
+
let numDisplayedFromPreviousMonth = difference > 0 ? 7 - difference : -difference;
|
|
1168
1464
|
let firstDate = new Date(firstDayOfMonth.getTime());
|
|
1465
|
+
if (this.datepicker.activeDate.getDate() !== this.initialDate) {
|
|
1466
|
+
this.activeDateHasChanged = true;
|
|
1467
|
+
}
|
|
1169
1468
|
/* istanbul ignore else */
|
|
1170
1469
|
/* sanity check */
|
|
1171
1470
|
if (numDisplayedFromPreviousMonth > 0) {
|
|
@@ -1181,13 +1480,19 @@ class SkyDayPickerComponent {
|
|
|
1181
1480
|
this.labels = [];
|
|
1182
1481
|
for (let j = 0; j < 7; j++) {
|
|
1183
1482
|
this.labels[j] = {};
|
|
1184
|
-
this.labels[j].abbr =
|
|
1185
|
-
this.datepicker.dateFilter(pickerDates[j].date, this.datepicker.formatDayHeader);
|
|
1483
|
+
this.labels[j].abbr = this.datepicker.dateFilter(pickerDates[j].date, this.datepicker.formatDayHeader);
|
|
1186
1484
|
this.labels[j].full = this.datepicker.dateFilter(pickerDates[j].date, 'EEEE');
|
|
1187
1485
|
}
|
|
1188
|
-
this.title =
|
|
1189
|
-
|
|
1486
|
+
this.title = this.datepicker.dateFilter(this.datepicker.activeDate, this.datepicker.formatDayTitle);
|
|
1487
|
+
const oldDateRange = this.getDateRange(this.rows);
|
|
1190
1488
|
this.rows = this.datepicker.createCalendarRows(pickerDates, 7);
|
|
1489
|
+
const newDateRange = this.getDateRange(this.rows);
|
|
1490
|
+
if (!this.dateRangeRowsAreEqual(oldDateRange, newDateRange)) {
|
|
1491
|
+
this.calendarDateRangeChange.next({
|
|
1492
|
+
startDate: newDateRange.startDate,
|
|
1493
|
+
endDate: newDateRange.endDate,
|
|
1494
|
+
});
|
|
1495
|
+
}
|
|
1191
1496
|
}
|
|
1192
1497
|
keydownDays(key, event) {
|
|
1193
1498
|
let date = this.datepicker.activeDate.getDate();
|
|
@@ -1208,8 +1513,7 @@ class SkyDayPickerComponent {
|
|
|
1208
1513
|
else if (key === 'pageup' || key === 'pagedown') {
|
|
1209
1514
|
let month = this.datepicker.activeDate.getMonth() + (key === 'pageup' ? -1 : 1);
|
|
1210
1515
|
this.datepicker.activeDate.setMonth(month, 1);
|
|
1211
|
-
date =
|
|
1212
|
-
Math.min(this.getDaysInMonth(this.datepicker.activeDate.getFullYear(), this.datepicker.activeDate.getMonth()), date);
|
|
1516
|
+
date = Math.min(this.getDaysInMonth(this.datepicker.activeDate.getFullYear(), this.datepicker.activeDate.getMonth()), date);
|
|
1213
1517
|
}
|
|
1214
1518
|
else if (key === 'home') {
|
|
1215
1519
|
date = 1;
|
|
@@ -1220,20 +1524,86 @@ class SkyDayPickerComponent {
|
|
|
1220
1524
|
this.datepicker.activeDate.setDate(date);
|
|
1221
1525
|
}
|
|
1222
1526
|
getDaysInMonth(year, month) {
|
|
1223
|
-
return month === 1 &&
|
|
1224
|
-
|
|
1527
|
+
return month === 1 &&
|
|
1528
|
+
year % 4 === 0 &&
|
|
1529
|
+
(year % 400 === 0 || year % 100 !== 0)
|
|
1530
|
+
? 29
|
|
1531
|
+
: this.daysInMonth[month];
|
|
1532
|
+
}
|
|
1533
|
+
/**
|
|
1534
|
+
* Applies custom date properties to the existing dates displayed in the calendar.
|
|
1535
|
+
*/
|
|
1536
|
+
applyCustomDates(customDates, dateRows) {
|
|
1537
|
+
let date;
|
|
1538
|
+
let newDate;
|
|
1539
|
+
let dateIndex;
|
|
1540
|
+
/* istanbul ignore else */
|
|
1541
|
+
if (customDates && dateRows) {
|
|
1542
|
+
customDates.forEach((customDate) => {
|
|
1543
|
+
dateIndex = -1;
|
|
1544
|
+
dateRows.forEach((row) => {
|
|
1545
|
+
if (dateIndex === -1) {
|
|
1546
|
+
dateIndex = row.findIndex((d) => {
|
|
1547
|
+
return d.date.getTime() === customDate.date.getTime();
|
|
1548
|
+
});
|
|
1549
|
+
if (dateIndex > -1) {
|
|
1550
|
+
date = row[dateIndex];
|
|
1551
|
+
// Replace the date with a new instance so the display gets updated.
|
|
1552
|
+
newDate = {
|
|
1553
|
+
current: date.current,
|
|
1554
|
+
date: date.date,
|
|
1555
|
+
disabled: !!date.disabled || !!customDate.disabled,
|
|
1556
|
+
keyDate: !!customDate.keyDate || !!date.keyDate,
|
|
1557
|
+
keyDateText: customDate.keyDateText || date.keyDateText,
|
|
1558
|
+
label: date.label,
|
|
1559
|
+
secondary: date.secondary,
|
|
1560
|
+
selected: date.selected,
|
|
1561
|
+
uid: date.uid,
|
|
1562
|
+
};
|
|
1563
|
+
row[dateIndex] = newDate;
|
|
1564
|
+
}
|
|
1565
|
+
}
|
|
1566
|
+
});
|
|
1567
|
+
});
|
|
1568
|
+
}
|
|
1569
|
+
}
|
|
1570
|
+
dateRangeRowsAreEqual(rangeA, rangeB) {
|
|
1571
|
+
/* istanbul ignore if */
|
|
1572
|
+
if (!rangeA && !rangeB) {
|
|
1573
|
+
return true;
|
|
1574
|
+
}
|
|
1575
|
+
else if ((rangeA && !rangeB) || (!rangeA && rangeB)) {
|
|
1576
|
+
return false;
|
|
1577
|
+
}
|
|
1578
|
+
return (this.compareDays(rangeA.startDate, rangeB.startDate) === 0 &&
|
|
1579
|
+
this.compareDays(rangeA.endDate, rangeB.endDate) === 0);
|
|
1580
|
+
}
|
|
1581
|
+
getDateRange(rows) {
|
|
1582
|
+
/* istanbul ignore else */
|
|
1583
|
+
if (rows && rows.length > 0) {
|
|
1584
|
+
return {
|
|
1585
|
+
startDate: rows[0][0].date,
|
|
1586
|
+
endDate: rows[rows.length - 1][rows[rows.length - 1].length - 1].date,
|
|
1587
|
+
};
|
|
1588
|
+
}
|
|
1225
1589
|
}
|
|
1226
1590
|
}
|
|
1227
|
-
SkyDayPickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
1228
|
-
SkyDayPickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.
|
|
1229
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
1591
|
+
SkyDayPickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyDayPickerComponent, deps: [{ token: SkyDatepickerCalendarInnerComponent }], target: i0.ɵɵFactoryTarget.Component });
|
|
1592
|
+
SkyDayPickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.14", type: SkyDayPickerComponent, selector: "sky-daypicker", inputs: { customDates: "customDates", isWaiting: "isWaiting" }, outputs: { calendarDateRangeChange: "calendarDateRangeChange" }, ngImport: i0, template: "<div *ngIf=\"datepicker.datepickerMode === 'day'\" class=\"sky-daypicker-wrapper\">\n <table\n class=\"sky-daypicker-table\"\n role=\"grid\"\n [attr.aria-labelledby]=\"datepicker.datepickerId + '-title'\"\n >\n <thead>\n <tr>\n <th class=\"sky-datepicker-header-left\" scope=\"col\">\n <button\n type=\"button\"\n class=\"\n sky-btn sky-btn-default sky-btn-sm sky-datepicker-btn-previous\n \"\n (click)=\"datepicker.moveCalendar($event, -1)\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n >\n <sky-icon\n class=\"sky-datepicker-chevron-default\"\n icon=\"chevron-left\"\n ></sky-icon>\n <sky-icon\n class=\"sky-datepicker-chevron-modern\"\n icon=\"chevron-left\"\n iconType=\"skyux\"\n ></sky-icon>\n </button>\n </th>\n <th scope=\"col\" [attr.colspan]=\"5\">\n <button\n [id]=\"datepicker.datepickerId + '-title'\"\n type=\"button\"\n class=\"\n sky-btn sky-btn-default sky-btn-sm sky-datepicker-calendar-title\n \"\n (click)=\"datepicker.toggleModeCalendar($event)\"\n [disabled]=\"datepicker.datepickerMode === datepicker.maxMode\"\n [ngClass]=\"{\n 'sky-btn-disabled':\n datepicker.datepickerMode === datepicker.maxMode\n }\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n >\n <strong>{{ title }}</strong>\n </button>\n </th>\n <th class=\"sky-datepicker-header-right\" scope=\"col\">\n <button\n type=\"button\"\n class=\"sky-btn sky-btn-default sky-btn-sm sky-datepicker-btn-next\"\n (click)=\"datepicker.moveCalendar($event, 1)\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n >\n <sky-icon\n class=\"sky-datepicker-chevron-default\"\n icon=\"chevron-right\"\n ></sky-icon>\n <sky-icon\n class=\"sky-datepicker-chevron-modern\"\n icon=\"chevron-right\"\n iconType=\"skyux\"\n ></sky-icon>\n </button>\n </th>\n </tr>\n <tr>\n <th\n scope=\"col\"\n *ngFor=\"let label of labels\"\n class=\"sky-datepicker-center sky-datepicker-weekdays\"\n >\n <small [attr.aria-label]=\"label.full\">\n <b>{{ label.abbr }}</b>\n </small>\n </th>\n </tr>\n </thead>\n <tbody>\n <!-- Wait indicator for async custom date stream -->\n <sky-wait [isWaiting]=\"isWaiting\"> </sky-wait>\n <ng-template ngFor [ngForOf]=\"rows\" let-row=\"$implicit\" let-index=\"index\">\n <tr role=\"row\">\n <td\n *ngFor=\"let date of row\"\n class=\"sky-datepicker-center\"\n role=\"gridcell\"\n [id]=\"date.uid\"\n >\n <sky-daypicker-cell\n [activeDateHasChanged]=\"activeDateHasChanged\"\n [date]=\"date\"\n >\n </sky-daypicker-cell>\n </td>\n </tr>\n </ng-template>\n </tbody>\n </table>\n</div>\n", styles: [":host-context(.sky-theme-modern) :host:focus{outline:none}.sky-theme-modern :host:focus{outline:none}\n"], components: [{ type: i2.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }, { type: i2.λ14, selector: "sky-wait", inputs: ["ariaLabel", "isWaiting", "isFullPage", "isNonBlocking"] }, { type: SkyDayPickerCellComponent, selector: "sky-daypicker-cell", inputs: ["activeDateHasChanged", "date"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
1593
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyDayPickerComponent, decorators: [{
|
|
1230
1594
|
type: Component,
|
|
1231
1595
|
args: [{
|
|
1232
1596
|
selector: 'sky-daypicker',
|
|
1233
1597
|
templateUrl: 'daypicker.component.html',
|
|
1234
|
-
styleUrls: ['./daypicker.component.scss']
|
|
1598
|
+
styleUrls: ['./daypicker.component.scss'],
|
|
1235
1599
|
}]
|
|
1236
|
-
}], ctorParameters: function () { return [{ type: SkyDatepickerCalendarInnerComponent }]; }
|
|
1600
|
+
}], ctorParameters: function () { return [{ type: SkyDatepickerCalendarInnerComponent }]; }, propDecorators: { customDates: [{
|
|
1601
|
+
type: Input
|
|
1602
|
+
}], calendarDateRangeChange: [{
|
|
1603
|
+
type: Output
|
|
1604
|
+
}], isWaiting: [{
|
|
1605
|
+
type: Input
|
|
1606
|
+
}] } });
|
|
1237
1607
|
|
|
1238
1608
|
/**
|
|
1239
1609
|
* @internal
|
|
@@ -1245,7 +1615,7 @@ class SkyMonthPickerComponent {
|
|
|
1245
1615
|
}
|
|
1246
1616
|
ngOnInit() {
|
|
1247
1617
|
this.datepicker.stepMonth = {
|
|
1248
|
-
years: 1
|
|
1618
|
+
years: 1,
|
|
1249
1619
|
};
|
|
1250
1620
|
this.datepicker.setRefreshViewHandler(() => {
|
|
1251
1621
|
this.refreshMonthView();
|
|
@@ -1268,11 +1638,9 @@ class SkyMonthPickerComponent {
|
|
|
1268
1638
|
for (let i = 0; i < 12; i++) {
|
|
1269
1639
|
date = new Date(year, i, 1);
|
|
1270
1640
|
date = this.datepicker.fixTimeZone(date);
|
|
1271
|
-
months[i] =
|
|
1272
|
-
this.datepicker.createDateObject(date, this.datepicker.formatMonth, false, this.datepicker.datepickerId + '-' + i);
|
|
1641
|
+
months[i] = this.datepicker.createDateObject(date, this.datepicker.formatMonth, false, this.datepicker.datepickerId + '-' + i);
|
|
1273
1642
|
}
|
|
1274
|
-
this.title =
|
|
1275
|
-
this.datepicker.dateFilter(this.datepicker.activeDate, this.datepicker.formatMonthTitle);
|
|
1643
|
+
this.title = this.datepicker.dateFilter(this.datepicker.activeDate, this.datepicker.formatMonthTitle);
|
|
1276
1644
|
this.rows = this.datepicker.createCalendarRows(months, this.datepicker.monthColLimit);
|
|
1277
1645
|
}
|
|
1278
1646
|
keydownMonths(key, event) {
|
|
@@ -1304,14 +1672,14 @@ class SkyMonthPickerComponent {
|
|
|
1304
1672
|
this.datepicker.activeDate.setMonth(date);
|
|
1305
1673
|
}
|
|
1306
1674
|
}
|
|
1307
|
-
SkyMonthPickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
1308
|
-
SkyMonthPickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.
|
|
1309
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
1675
|
+
SkyMonthPickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyMonthPickerComponent, deps: [{ token: SkyDatepickerCalendarInnerComponent }], target: i0.ɵɵFactoryTarget.Component });
|
|
1676
|
+
SkyMonthPickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.14", type: SkyMonthPickerComponent, selector: "sky-monthpicker", ngImport: i0, template: "<table *ngIf=\"datepicker.datepickerMode === 'month'\" role=\"grid\">\n <thead>\n <tr>\n <th class=\"sky-datepicker-header-left\">\n <button\n type=\"button\"\n class=\"sky-btn sky-btn-default sky-btn-sm sky-datepicker-btn-previous\"\n (click)=\"datepicker.moveCalendar($event, -1)\"\n tabindex=\"-1\"\n >\n <sky-icon\n class=\"sky-datepicker-chevron-default\"\n icon=\"chevron-left\"\n ></sky-icon>\n <sky-icon\n class=\"sky-datepicker-chevron-modern\"\n icon=\"chevron-left\"\n iconType=\"skyux\"\n ></sky-icon>\n </button>\n </th>\n <th\n [attr.colspan]=\"\n datepicker.monthColLimit - 2 <= 0 ? 1 : datepicker.monthColLimit - 2\n \"\n >\n <button\n [id]=\"datepicker.datepickerId + '-title'\"\n type=\"button\"\n class=\"\n sky-btn sky-btn-default sky-btn-sm sky-datepicker-calendar-title\n \"\n (click)=\"datepicker.toggleModeCalendar($event)\"\n [disabled]=\"datepicker.datepickerMode === maxMode\"\n [ngClass]=\"{\n 'sky-btn-disabled': datepicker.datepickerMode === maxMode\n }\"\n tabindex=\"-1\"\n >\n <strong>{{ title }}</strong>\n </button>\n </th>\n <th class=\"sky-datepicker-header-right\">\n <button\n type=\"button\"\n class=\"sky-btn sky-btn-default sky-btn-sm sky-datepicker-btn-next\"\n (click)=\"datepicker.moveCalendar($event, 1)\"\n tabindex=\"-1\"\n >\n <sky-icon\n class=\"sky-datepicker-chevron-default\"\n icon=\"chevron-right\"\n ></sky-icon>\n <sky-icon\n class=\"sky-datepicker-chevron-modern\"\n icon=\"chevron-right\"\n iconType=\"skyux\"\n ></sky-icon>\n </button>\n </th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let row of rows\">\n <td\n *ngFor=\"let date of row\"\n class=\"text-center\"\n role=\"gridcell\"\n id=\"{{ date.uid }}\"\n >\n <button\n type=\"button\"\n class=\"sky-btn sky-btn-default sky-datepicker-btn-date\"\n [ngClass]=\"{\n 'sky-datepicker-btn-selected': date.selected,\n 'sky-btn-disabled': date.disabled,\n 'sky-btn-active': datepicker.isActive(date)\n }\"\n [disabled]=\"date.disabled\"\n (click)=\"datepicker.selectCalendar($event, date.date)\"\n tabindex=\"-1\"\n >\n <span [ngClass]=\"{ 'sky-datepicker-current': date.current }\">{{\n date.label\n }}</span>\n </button>\n </td>\n </tr>\n </tbody>\n</table>\n", styles: [":host-context(.sky-theme-modern) :host:focus{outline:none}.sky-theme-modern :host:focus{outline:none}\n"], components: [{ type: i2.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
1677
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyMonthPickerComponent, decorators: [{
|
|
1310
1678
|
type: Component,
|
|
1311
1679
|
args: [{
|
|
1312
1680
|
selector: 'sky-monthpicker',
|
|
1313
1681
|
templateUrl: 'monthpicker.component.html',
|
|
1314
|
-
styleUrls: ['./monthpicker.component.scss']
|
|
1682
|
+
styleUrls: ['./monthpicker.component.scss'],
|
|
1315
1683
|
}]
|
|
1316
1684
|
}], ctorParameters: function () { return [{ type: SkyDatepickerCalendarInnerComponent }]; } });
|
|
1317
1685
|
|
|
@@ -1335,7 +1703,9 @@ class SkyYearPickerComponent {
|
|
|
1335
1703
|
this.datepicker.refreshView();
|
|
1336
1704
|
}
|
|
1337
1705
|
getStartingYear(year) {
|
|
1338
|
-
return Math.floor((year - 1) / this.datepicker.yearRange) *
|
|
1706
|
+
return (Math.floor((year - 1) / this.datepicker.yearRange) *
|
|
1707
|
+
this.datepicker.yearRange +
|
|
1708
|
+
1);
|
|
1339
1709
|
}
|
|
1340
1710
|
compareYears(date1, date2) {
|
|
1341
1711
|
return date1.getFullYear() - date2.getFullYear();
|
|
@@ -1347,11 +1717,12 @@ class SkyYearPickerComponent {
|
|
|
1347
1717
|
for (let i = 0; i < this.datepicker.yearRange; i++) {
|
|
1348
1718
|
date = new Date(this.datepicker.activeDate);
|
|
1349
1719
|
date.setFullYear(start + i, 0, 1);
|
|
1350
|
-
years[i] =
|
|
1351
|
-
this.datepicker.createDateObject(date, this.datepicker.formatYear, false, this.datepicker.datepickerId + '-' + i);
|
|
1720
|
+
years[i] = this.datepicker.createDateObject(date, this.datepicker.formatYear, false, this.datepicker.datepickerId + '-' + i);
|
|
1352
1721
|
}
|
|
1353
|
-
this.title = [
|
|
1354
|
-
years[
|
|
1722
|
+
this.title = [
|
|
1723
|
+
years[0].label,
|
|
1724
|
+
years[this.datepicker.yearRange - 1].label,
|
|
1725
|
+
].join(' - ');
|
|
1355
1726
|
this.rows = this.datepicker.createCalendarRows(years, this.datepicker.yearColLimit);
|
|
1356
1727
|
}
|
|
1357
1728
|
keydownYears(key, event) {
|
|
@@ -1377,20 +1748,22 @@ class SkyYearPickerComponent {
|
|
|
1377
1748
|
date = this.getStartingYear(this.datepicker.activeDate.getFullYear());
|
|
1378
1749
|
}
|
|
1379
1750
|
else if (key === 'end') {
|
|
1380
|
-
date
|
|
1381
|
-
|
|
1751
|
+
date =
|
|
1752
|
+
this.getStartingYear(this.datepicker.activeDate.getFullYear()) +
|
|
1753
|
+
this.datepicker.yearRange -
|
|
1754
|
+
1;
|
|
1382
1755
|
}
|
|
1383
1756
|
this.datepicker.activeDate.setFullYear(date);
|
|
1384
1757
|
}
|
|
1385
1758
|
}
|
|
1386
|
-
SkyYearPickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
1387
|
-
SkyYearPickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.
|
|
1388
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
1759
|
+
SkyYearPickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyYearPickerComponent, deps: [{ token: SkyDatepickerCalendarInnerComponent }], target: i0.ɵɵFactoryTarget.Component });
|
|
1760
|
+
SkyYearPickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.14", type: SkyYearPickerComponent, selector: "sky-yearpicker", ngImport: i0, template: "<table *ngIf=\"datepicker.datepickerMode === 'year'\" role=\"grid\">\n <thead>\n <tr>\n <th class=\"sky-datepicker-header-left\">\n <button\n type=\"button\"\n class=\"sky-btn sky-btn-default sky-btn-sm sky-datepicker-btn-previous\"\n (click)=\"datepicker.moveCalendar($event, -1)\"\n tabindex=\"-1\"\n >\n <sky-icon\n class=\"sky-datepicker-chevron-default\"\n icon=\"chevron-left\"\n ></sky-icon>\n <sky-icon\n class=\"sky-datepicker-chevron-modern\"\n icon=\"chevron-left\"\n iconType=\"skyux\"\n ></sky-icon>\n </button>\n </th>\n <th\n [attr.colspan]=\"\n datepicker.yearColLimit - 2 <= 0 ? 1 : datepicker.yearColLimit - 2\n \"\n >\n <button\n [id]=\"datepicker.datepickerId + '-title'\"\n role=\"heading\"\n type=\"button\"\n class=\"\n sky-btn sky-btn-default sky-btn-sm sky-datepicker-calendar-title\n \"\n (click)=\"datepicker.toggleModeCalendar($event)\"\n [disabled]=\"datepicker.datepickerMode === datepicker.maxMode\"\n [ngClass]=\"{\n 'sky-btn-disabled': datepicker.datepickerMode === datepicker.maxMode\n }\"\n tabindex=\"-1\"\n >\n <strong>{{ title }}</strong>\n </button>\n </th>\n <th class=\"sky-datepicker-header-right\">\n <button\n type=\"button\"\n class=\"sky-btn sky-btn-default sky-btn-sm sky-datepicker-btn-next\"\n (click)=\"datepicker.moveCalendar($event, 1)\"\n tabindex=\"-1\"\n >\n <sky-icon\n class=\"sky-datepicker-chevron-default\"\n icon=\"chevron-right\"\n ></sky-icon>\n <sky-icon\n class=\"sky-datepicker-chevron-modern\"\n icon=\"chevron-right\"\n iconType=\"skyux\"\n ></sky-icon>\n </button>\n </th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let row of rows\">\n <td *ngFor=\"let date of row\" class=\"sky-datepicker-row\" role=\"gridcell\">\n <button\n type=\"button\"\n class=\"sky-btn sky-btn-default sky-datepicker-btn-date\"\n [ngClass]=\"{\n 'sky-datepicker-btn-selected': date.selected,\n 'sky-btn-disabled': date.disabled,\n 'sky-btn-active': datepicker.isActive(date)\n }\"\n [disabled]=\"date.disabled\"\n (click)=\"datepicker.selectCalendar($event, date.date)\"\n tabindex=\"-1\"\n >\n <span [ngClass]=\"{ 'sky-datepicker-current': date.current }\">{{\n date.label\n }}</span>\n </button>\n </td>\n </tr>\n </tbody>\n</table>\n", styles: [":host-context(.sky-theme-modern) :host:focus{outline:none}.sky-theme-modern :host:focus{outline:none}\n"], components: [{ type: i2.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
1761
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyYearPickerComponent, decorators: [{
|
|
1389
1762
|
type: Component,
|
|
1390
1763
|
args: [{
|
|
1391
1764
|
selector: 'sky-yearpicker',
|
|
1392
1765
|
templateUrl: 'yearpicker.component.html',
|
|
1393
|
-
styleUrls: ['./yearpicker.component.scss']
|
|
1766
|
+
styleUrls: ['./yearpicker.component.scss'],
|
|
1394
1767
|
}]
|
|
1395
1768
|
}], ctorParameters: function () { return [{ type: SkyDatepickerCalendarInnerComponent }]; } });
|
|
1396
1769
|
|
|
@@ -1402,8 +1775,9 @@ class SkyDatepickerCalendarComponent {
|
|
|
1402
1775
|
this.adapter = adapter;
|
|
1403
1776
|
this.config = config;
|
|
1404
1777
|
this.elementRef = elementRef;
|
|
1405
|
-
this.
|
|
1778
|
+
this.calendarDateRangeChange = new EventEmitter();
|
|
1406
1779
|
this.calendarModeChange = new EventEmitter();
|
|
1780
|
+
this.selectedDateChange = new EventEmitter(undefined);
|
|
1407
1781
|
this._now = new Date();
|
|
1408
1782
|
this.formatter = new SkyDateFormatter();
|
|
1409
1783
|
this.configureOptions();
|
|
@@ -1428,6 +1802,9 @@ class SkyDatepickerCalendarComponent {
|
|
|
1428
1802
|
configureOptions() {
|
|
1429
1803
|
Object.assign(this, this.config);
|
|
1430
1804
|
}
|
|
1805
|
+
onCalendarDateRangeChange(event) {
|
|
1806
|
+
this.calendarDateRangeChange.next(event);
|
|
1807
|
+
}
|
|
1431
1808
|
onCalendarModeChange(event) {
|
|
1432
1809
|
this.calendarModeChange.emit(event);
|
|
1433
1810
|
}
|
|
@@ -1435,10 +1812,10 @@ class SkyDatepickerCalendarComponent {
|
|
|
1435
1812
|
this.selectedDateChange.emit(event);
|
|
1436
1813
|
}
|
|
1437
1814
|
writeValue(value) {
|
|
1438
|
-
if (value !== undefined
|
|
1439
|
-
|
|
1440
|
-
|
|
1441
|
-
|
|
1815
|
+
if (value !== undefined &&
|
|
1816
|
+
this.formatter.dateIsValid(value) &&
|
|
1817
|
+
this.selectedDate !== undefined &&
|
|
1818
|
+
this._datepicker.compareHandlerDay(value, this.selectedDate) === 0) {
|
|
1442
1819
|
return;
|
|
1443
1820
|
}
|
|
1444
1821
|
if (this.formatter.dateIsValid(value)) {
|
|
@@ -1451,17 +1828,21 @@ class SkyDatepickerCalendarComponent {
|
|
|
1451
1828
|
}
|
|
1452
1829
|
}
|
|
1453
1830
|
}
|
|
1454
|
-
SkyDatepickerCalendarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
1455
|
-
SkyDatepickerCalendarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.
|
|
1456
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
1831
|
+
SkyDatepickerCalendarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyDatepickerCalendarComponent, deps: [{ token: SkyDatepickerAdapterService }, { token: SkyDatepickerConfigService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
1832
|
+
SkyDatepickerCalendarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.14", 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"], components: [{ type: SkyDatepickerCalendarInnerComponent, selector: "sky-datepicker-inner", inputs: ["customDates", "startingDay", "minDate", "maxDate", "selectedDate"], outputs: ["selectedDateChange", "calendarModeChange"] }, { type: SkyDayPickerComponent, selector: "sky-daypicker", inputs: ["customDates", "isWaiting"], outputs: ["calendarDateRangeChange"] }, { type: SkyMonthPickerComponent, selector: "sky-monthpicker" }, { type: SkyYearPickerComponent, selector: "sky-yearpicker" }] });
|
|
1833
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyDatepickerCalendarComponent, decorators: [{
|
|
1457
1834
|
type: Component,
|
|
1458
1835
|
args: [{
|
|
1459
1836
|
selector: 'sky-datepicker-calendar',
|
|
1460
1837
|
templateUrl: './datepicker-calendar.component.html',
|
|
1461
1838
|
styleUrls: ['./datepicker-calendar.component.scss'],
|
|
1462
|
-
providers: [SkyDatepickerAdapterService]
|
|
1839
|
+
providers: [SkyDatepickerAdapterService],
|
|
1463
1840
|
}]
|
|
1464
|
-
}], ctorParameters: function () { return [{ type: SkyDatepickerAdapterService }, { type: SkyDatepickerConfigService }, { type: i0.ElementRef }]; }, propDecorators: {
|
|
1841
|
+
}], ctorParameters: function () { return [{ type: SkyDatepickerAdapterService }, { type: SkyDatepickerConfigService }, { type: i0.ElementRef }]; }, propDecorators: { customDates: [{
|
|
1842
|
+
type: Input
|
|
1843
|
+
}], isDaypickerWaiting: [{
|
|
1844
|
+
type: Input
|
|
1845
|
+
}], minDate: [{
|
|
1465
1846
|
type: Input
|
|
1466
1847
|
}], maxDate: [{
|
|
1467
1848
|
type: Input
|
|
@@ -1469,15 +1850,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImpo
|
|
|
1469
1850
|
type: Input
|
|
1470
1851
|
}], startingDay: [{
|
|
1471
1852
|
type: Input
|
|
1472
|
-
}],
|
|
1853
|
+
}], calendarDateRangeChange: [{
|
|
1473
1854
|
type: Output
|
|
1474
1855
|
}], calendarModeChange: [{
|
|
1475
1856
|
type: Output
|
|
1857
|
+
}], selectedDateChange: [{
|
|
1858
|
+
type: Output
|
|
1476
1859
|
}], _datepicker: [{
|
|
1477
1860
|
type: ViewChild,
|
|
1478
1861
|
args: [SkyDatepickerCalendarInnerComponent, {
|
|
1479
1862
|
read: SkyDatepickerCalendarInnerComponent,
|
|
1480
|
-
static: true
|
|
1863
|
+
static: true,
|
|
1481
1864
|
}]
|
|
1482
1865
|
}] } });
|
|
1483
1866
|
|
|
@@ -1497,7 +1880,14 @@ class SkyDatepickerComponent {
|
|
|
1497
1880
|
* Adds a class to the datepicker.
|
|
1498
1881
|
*/
|
|
1499
1882
|
this.pickerClass = '';
|
|
1883
|
+
/**
|
|
1884
|
+
* Fires when the range of displayed dates in the calendar changes. Provides the
|
|
1885
|
+
* current range of displayed dates and a mutable `customDate` property consumers can use
|
|
1886
|
+
* to modify individual dates on the calendar.
|
|
1887
|
+
*/
|
|
1888
|
+
this.calendarDateRangeChange = new EventEmitter();
|
|
1500
1889
|
this.dateChange = new EventEmitter();
|
|
1890
|
+
this.isDaypickerWaiting = false;
|
|
1501
1891
|
this.isOpen = false;
|
|
1502
1892
|
this.isVisible = false;
|
|
1503
1893
|
this.ngUnsubscribe = new Subject();
|
|
@@ -1580,7 +1970,7 @@ class SkyDatepickerComponent {
|
|
|
1580
1970
|
if (this.inputBoxHostService) {
|
|
1581
1971
|
this.inputBoxHostService.populate({
|
|
1582
1972
|
inputTemplate: this.inputTemplateRef,
|
|
1583
|
-
buttonsTemplate: this.triggerButtonTemplateRef
|
|
1973
|
+
buttonsTemplate: this.triggerButtonTemplateRef,
|
|
1584
1974
|
});
|
|
1585
1975
|
}
|
|
1586
1976
|
}
|
|
@@ -1610,6 +2000,42 @@ class SkyDatepickerComponent {
|
|
|
1610
2000
|
this.openPicker();
|
|
1611
2001
|
}
|
|
1612
2002
|
}
|
|
2003
|
+
onCalendarDateRangeChange(event) {
|
|
2004
|
+
/* istanbul ignore else */
|
|
2005
|
+
if (event) {
|
|
2006
|
+
this.cancelCustomDatesSubscription();
|
|
2007
|
+
const args = {
|
|
2008
|
+
startDate: event.startDate,
|
|
2009
|
+
endDate: event.endDate,
|
|
2010
|
+
customDates: undefined,
|
|
2011
|
+
};
|
|
2012
|
+
this.calendarDateRangeChange.emit(args);
|
|
2013
|
+
// If consumer has added an observable to the args, watch for incoming custom dates.
|
|
2014
|
+
/* istanbul ignore else */
|
|
2015
|
+
if (args.customDates) {
|
|
2016
|
+
this.isDaypickerWaiting = true;
|
|
2017
|
+
// Avoid an ExpressionChangedAfterItHasBeenCheckedError.
|
|
2018
|
+
this.changeDetector.detectChanges();
|
|
2019
|
+
this.customDatesSubscription = args.customDates
|
|
2020
|
+
.pipe(debounceTime(250))
|
|
2021
|
+
.subscribe((result) => {
|
|
2022
|
+
this.customDates = result;
|
|
2023
|
+
this.isDaypickerWaiting = false;
|
|
2024
|
+
// Trigger change detection in child components to show changes in the calendar.
|
|
2025
|
+
this.changeDetector.markForCheck();
|
|
2026
|
+
});
|
|
2027
|
+
}
|
|
2028
|
+
else {
|
|
2029
|
+
// If consumer returns an undefined value after custom dates have
|
|
2030
|
+
// already ben established, remove custom dates.
|
|
2031
|
+
if (this.customDates) {
|
|
2032
|
+
this.customDates = undefined;
|
|
2033
|
+
// Avoid an ExpressionChangedAfterItHasBeenCheckedError.
|
|
2034
|
+
this.changeDetector.detectChanges();
|
|
2035
|
+
}
|
|
2036
|
+
}
|
|
2037
|
+
}
|
|
2038
|
+
}
|
|
1613
2039
|
closePicker() {
|
|
1614
2040
|
this.destroyAffixer();
|
|
1615
2041
|
this.destroyOverlay();
|
|
@@ -1633,7 +2059,7 @@ class SkyDatepickerComponent {
|
|
|
1633
2059
|
affixer.placementChange
|
|
1634
2060
|
.pipe(takeUntil(this.calendarUnsubscribe))
|
|
1635
2061
|
.subscribe((change) => {
|
|
1636
|
-
this.isVisible =
|
|
2062
|
+
this.isVisible = change.placement !== null;
|
|
1637
2063
|
this.changeDetector.markForCheck();
|
|
1638
2064
|
});
|
|
1639
2065
|
affixer.affixTo(this.triggerButtonRef.nativeElement, {
|
|
@@ -1641,7 +2067,7 @@ class SkyDatepickerComponent {
|
|
|
1641
2067
|
enableAutoFit: true,
|
|
1642
2068
|
horizontalAlignment: 'right',
|
|
1643
2069
|
isSticky: true,
|
|
1644
|
-
placement: 'below'
|
|
2070
|
+
placement: 'below',
|
|
1645
2071
|
});
|
|
1646
2072
|
this.affixer = affixer;
|
|
1647
2073
|
}
|
|
@@ -1656,7 +2082,7 @@ class SkyDatepickerComponent {
|
|
|
1656
2082
|
const overlay = this.overlayService.create({
|
|
1657
2083
|
wrapperClass: this.pickerClass,
|
|
1658
2084
|
enableClose: false,
|
|
1659
|
-
enablePointerEvents: false
|
|
2085
|
+
enablePointerEvents: false,
|
|
1660
2086
|
});
|
|
1661
2087
|
overlay.backdropClick
|
|
1662
2088
|
.pipe(takeUntil(this.calendarUnsubscribe))
|
|
@@ -1698,16 +2124,22 @@ class SkyDatepickerComponent {
|
|
|
1698
2124
|
}
|
|
1699
2125
|
(_a = this.overlayKeydownListner) === null || _a === void 0 ? void 0 : _a.unsubscribe();
|
|
1700
2126
|
}
|
|
2127
|
+
cancelCustomDatesSubscription() {
|
|
2128
|
+
if (this.customDatesSubscription) {
|
|
2129
|
+
this.customDatesSubscription.unsubscribe();
|
|
2130
|
+
this.customDatesSubscription = undefined;
|
|
2131
|
+
}
|
|
2132
|
+
}
|
|
1701
2133
|
}
|
|
1702
|
-
SkyDatepickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
1703
|
-
SkyDatepickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.
|
|
1704
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
2134
|
+
SkyDatepickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyDatepickerComponent, deps: [{ token: i1.SkyAffixService }, { token: i0.ChangeDetectorRef }, { token: i1.SkyCoreAdapterService }, { token: i1.SkyOverlayService }, { token: i2$1.SkyInputBoxHostService, optional: true }, { token: i3$2.SkyThemeService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
2135
|
+
SkyDatepickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.14", type: SkyDatepickerComponent, selector: "sky-datepicker", inputs: { pickerClass: "pickerClass" }, outputs: { calendarDateRangeChange: "calendarDateRangeChange" }, viewQueries: [{ propertyName: "calendar", first: true, predicate: SkyDatepickerCalendarComponent, descendants: true }, { propertyName: "calendarRef", first: true, predicate: ["calendarRef"], descendants: true, read: ElementRef }, { propertyName: "calendarTemplateRef", first: true, predicate: ["calendarTemplateRef"], descendants: true, read: TemplateRef }, { propertyName: "triggerButtonRef", first: true, predicate: ["triggerButtonRef"], descendants: true, read: ElementRef }, { propertyName: "inputTemplateRef", first: true, predicate: ["inputTemplateRef"], descendants: true, read: TemplateRef, static: true }, { propertyName: "triggerButtonTemplateRef", first: true, predicate: ["triggerButtonTemplateRef"], descendants: true, read: TemplateRef, static: true }], ngImport: i0, template: "<div class=\"sky-datepicker\">\n <ng-container *ngIf=\"!inputBoxHostService\">\n <div class=\"sky-input-group\">\n <ng-container *ngTemplateOutlet=\"inputTemplateRef\"></ng-container>\n <ng-container *ngTemplateOutlet=\"triggerButtonTemplateRef\"></ng-container>\n </div>\n </ng-container>\n</div>\n\n<ng-template #inputTemplateRef>\n <ng-content></ng-content>\n</ng-template>\n\n<ng-template #triggerButtonTemplateRef>\n <div class=\"sky-input-group-btn\">\n <button\n aria-haspopup=\"dialog\"\n class=\"sky-btn sky-btn-default sky-input-group-datepicker-btn\"\n type=\"button\"\n [attr.aria-controls]=\"isOpen ? calendarId : null\"\n [attr.aria-expanded]=\"isOpen\"\n [attr.aria-label]=\"\n 'skyux_datepicker_trigger_button_label' | skyLibResources\n \"\n [attr.id]=\"triggerButtonId\"\n [attr.title]=\"'skyux_datepicker_trigger_button_label' | skyLibResources\"\n [disabled]=\"disabled\"\n (click)=\"onTriggerButtonClick()\"\n #triggerButtonRef\n >\n <sky-icon *skyThemeIf=\"'default'\" icon=\"calendar\" size=\"lg\"></sky-icon>\n <sky-icon\n *skyThemeIf=\"'modern'\"\n icon=\"calendar\"\n size=\"lg\"\n iconType=\"skyux\"\n ></sky-icon>\n </button>\n </div>\n</ng-template>\n\n<ng-template #calendarTemplateRef>\n <div\n class=\"sky-datepicker-calendar-container sky-shadow sky-elevation-4\"\n role=\"dialog\"\n [attr.aria-labelledby]=\"triggerButtonId\"\n [attr.id]=\"calendarId\"\n [class.sky-datepicker-hidden]=\"!isVisible\"\n #calendarRef\n >\n <sky-datepicker-calendar\n [customDates]=\"customDates\"\n [isDaypickerWaiting]=\"isDaypickerWaiting\"\n [maxDate]=\"maxDate\"\n [minDate]=\"minDate\"\n [startingDay]=\"startingDay\"\n (calendarDateRangeChange)=\"onCalendarDateRangeChange($event)\"\n (calendarModeChange)=\"onCalendarModeChange()\"\n (selectedDateChange)=\"onSelectedDateChange($event)\"\n >\n </sky-datepicker-calendar>\n </div>\n</ng-template>\n", styles: [".sky-datepicker-calendar-container{position:fixed;border-radius:5px}.sky-datepicker-hidden{visibility:hidden}\n"], components: [{ type: i2.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }, { type: SkyDatepickerCalendarComponent, selector: "sky-datepicker-calendar", inputs: ["customDates", "isDaypickerWaiting", "minDate", "maxDate", "selectedDate", "startingDay"], outputs: ["calendarDateRangeChange", "calendarModeChange", "selectedDateChange"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i3$2.λ3, selector: "[skyThemeIf]", inputs: ["skyThemeIf"] }], pipes: { "skyLibResources": i3.SkyLibResourcesPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2136
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyDatepickerComponent, decorators: [{
|
|
1705
2137
|
type: Component,
|
|
1706
2138
|
args: [{
|
|
1707
2139
|
selector: 'sky-datepicker',
|
|
1708
2140
|
templateUrl: './datepicker.component.html',
|
|
1709
2141
|
styleUrls: ['./datepicker.component.scss'],
|
|
1710
|
-
changeDetection: ChangeDetectionStrategy.OnPush
|
|
2142
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1711
2143
|
}]
|
|
1712
2144
|
}], ctorParameters: function () { return [{ type: i1.SkyAffixService }, { type: i0.ChangeDetectorRef }, { type: i1.SkyCoreAdapterService }, { type: i1.SkyOverlayService }, { type: i2$1.SkyInputBoxHostService, decorators: [{
|
|
1713
2145
|
type: Optional
|
|
@@ -1715,35 +2147,37 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImpo
|
|
|
1715
2147
|
type: Optional
|
|
1716
2148
|
}] }]; }, propDecorators: { pickerClass: [{
|
|
1717
2149
|
type: Input
|
|
2150
|
+
}], calendarDateRangeChange: [{
|
|
2151
|
+
type: Output
|
|
1718
2152
|
}], calendar: [{
|
|
1719
2153
|
type: ViewChild,
|
|
1720
2154
|
args: [SkyDatepickerCalendarComponent]
|
|
1721
2155
|
}], calendarRef: [{
|
|
1722
2156
|
type: ViewChild,
|
|
1723
2157
|
args: ['calendarRef', {
|
|
1724
|
-
read: ElementRef
|
|
2158
|
+
read: ElementRef,
|
|
1725
2159
|
}]
|
|
1726
2160
|
}], calendarTemplateRef: [{
|
|
1727
2161
|
type: ViewChild,
|
|
1728
2162
|
args: ['calendarTemplateRef', {
|
|
1729
|
-
read: TemplateRef
|
|
2163
|
+
read: TemplateRef,
|
|
1730
2164
|
}]
|
|
1731
2165
|
}], triggerButtonRef: [{
|
|
1732
2166
|
type: ViewChild,
|
|
1733
2167
|
args: ['triggerButtonRef', {
|
|
1734
|
-
read: ElementRef
|
|
2168
|
+
read: ElementRef,
|
|
1735
2169
|
}]
|
|
1736
2170
|
}], inputTemplateRef: [{
|
|
1737
2171
|
type: ViewChild,
|
|
1738
2172
|
args: ['inputTemplateRef', {
|
|
1739
2173
|
read: TemplateRef,
|
|
1740
|
-
static: true
|
|
2174
|
+
static: true,
|
|
1741
2175
|
}]
|
|
1742
2176
|
}], triggerButtonTemplateRef: [{
|
|
1743
2177
|
type: ViewChild,
|
|
1744
2178
|
args: ['triggerButtonTemplateRef', {
|
|
1745
2179
|
read: TemplateRef,
|
|
1746
|
-
static: true
|
|
2180
|
+
static: true,
|
|
1747
2181
|
}]
|
|
1748
2182
|
}] } });
|
|
1749
2183
|
|
|
@@ -1751,12 +2185,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImpo
|
|
|
1751
2185
|
const SKY_DATEPICKER_VALUE_ACCESSOR = {
|
|
1752
2186
|
provide: NG_VALUE_ACCESSOR,
|
|
1753
2187
|
useExisting: forwardRef(() => SkyDatepickerInputDirective),
|
|
1754
|
-
multi: true
|
|
2188
|
+
multi: true,
|
|
1755
2189
|
};
|
|
1756
2190
|
const SKY_DATEPICKER_VALIDATOR = {
|
|
1757
2191
|
provide: NG_VALIDATORS,
|
|
1758
2192
|
useExisting: forwardRef(() => SkyDatepickerInputDirective),
|
|
1759
|
-
multi: true
|
|
2193
|
+
multi: true,
|
|
1760
2194
|
};
|
|
1761
2195
|
// tslint:enable
|
|
1762
2196
|
class SkyDatepickerInputDirective {
|
|
@@ -1783,11 +2217,13 @@ class SkyDatepickerInputDirective {
|
|
|
1783
2217
|
this.onValidatorChange = () => { };
|
|
1784
2218
|
this.initialPlaceholder = this.adapter.getPlaceholder(this.elementRef);
|
|
1785
2219
|
this.updatePlaceholder();
|
|
1786
|
-
this.localeProvider
|
|
2220
|
+
this.localeProvider
|
|
2221
|
+
.getLocaleInfo()
|
|
1787
2222
|
.pipe(takeUntil(this.ngUnsubscribe))
|
|
1788
2223
|
.subscribe((localeInfo) => {
|
|
1789
2224
|
SkyDateFormatter.setLocale(localeInfo.locale);
|
|
1790
|
-
this.preferredShortDateFormat =
|
|
2225
|
+
this.preferredShortDateFormat =
|
|
2226
|
+
SkyDateFormatter.getPreferredShortDateFormat();
|
|
1791
2227
|
this.applyDateFormat();
|
|
1792
2228
|
});
|
|
1793
2229
|
}
|
|
@@ -1804,9 +2240,9 @@ class SkyDatepickerInputDirective {
|
|
|
1804
2240
|
}
|
|
1805
2241
|
}
|
|
1806
2242
|
get dateFormat() {
|
|
1807
|
-
return this._dateFormat ||
|
|
2243
|
+
return (this._dateFormat ||
|
|
1808
2244
|
this.configService.dateFormat ||
|
|
1809
|
-
this.preferredShortDateFormat;
|
|
2245
|
+
this.preferredShortDateFormat);
|
|
1810
2246
|
}
|
|
1811
2247
|
/**
|
|
1812
2248
|
* Indicates whether to disable the datepicker.
|
|
@@ -1899,9 +2335,9 @@ class SkyDatepickerInputDirective {
|
|
|
1899
2335
|
}
|
|
1900
2336
|
set value(value) {
|
|
1901
2337
|
const dateValue = this.getDateValue(value);
|
|
1902
|
-
const areDatesEqual =
|
|
2338
|
+
const areDatesEqual = this._value instanceof Date &&
|
|
1903
2339
|
dateValue &&
|
|
1904
|
-
dateValue.getTime() === this._value.getTime()
|
|
2340
|
+
dateValue.getTime() === this._value.getTime();
|
|
1905
2341
|
const isValidDateString = this.isDateStringValid(value);
|
|
1906
2342
|
// If the string value supplied is malformed, do not set the value to its Date equivalent.
|
|
1907
2343
|
// (JavaScript's Date parser will convert poorly formatted dates to Date objects, such as "abc 123", which isn't ideal.)
|
|
@@ -1910,7 +2346,7 @@ class SkyDatepickerInputDirective {
|
|
|
1910
2346
|
this.notifyUpdatedValue();
|
|
1911
2347
|
}
|
|
1912
2348
|
else if (dateValue !== this._value || !areDatesEqual) {
|
|
1913
|
-
this._value =
|
|
2349
|
+
this._value = dateValue || value;
|
|
1914
2350
|
this.notifyUpdatedValue();
|
|
1915
2351
|
}
|
|
1916
2352
|
if (dateValue && isValidDateString) {
|
|
@@ -1930,7 +2366,8 @@ class SkyDatepickerInputDirective {
|
|
|
1930
2366
|
this.renderer.addClass(element, 'sky-form-control');
|
|
1931
2367
|
const hasAriaLabel = element.getAttribute('aria-label');
|
|
1932
2368
|
if (!hasAriaLabel) {
|
|
1933
|
-
this.resourcesService
|
|
2369
|
+
this.resourcesService
|
|
2370
|
+
.getString('skyux_date_field_default_label')
|
|
1934
2371
|
.pipe(takeUntil(this.ngUnsubscribe))
|
|
1935
2372
|
.subscribe((value) => {
|
|
1936
2373
|
this.renderer.setAttribute(element, 'aria-label', value);
|
|
@@ -1957,7 +2394,7 @@ class SkyDatepickerInputDirective {
|
|
|
1957
2394
|
if (this.control && this.control.parent) {
|
|
1958
2395
|
setTimeout(() => {
|
|
1959
2396
|
this.control.setValue(this.value, {
|
|
1960
|
-
emitEvent: false
|
|
2397
|
+
emitEvent: false,
|
|
1961
2398
|
});
|
|
1962
2399
|
this.changeDetector.markForCheck();
|
|
1963
2400
|
});
|
|
@@ -1983,8 +2420,8 @@ class SkyDatepickerInputDirective {
|
|
|
1983
2420
|
this.onChange(value);
|
|
1984
2421
|
this.control.setErrors({
|
|
1985
2422
|
skyDate: {
|
|
1986
|
-
invalid: true
|
|
1987
|
-
}
|
|
2423
|
+
invalid: true,
|
|
2424
|
+
},
|
|
1988
2425
|
});
|
|
1989
2426
|
}
|
|
1990
2427
|
onInputBlur() {
|
|
@@ -2008,35 +2445,31 @@ class SkyDatepickerInputDirective {
|
|
|
2008
2445
|
return;
|
|
2009
2446
|
}
|
|
2010
2447
|
const dateValue = this.getDateValue(value);
|
|
2011
|
-
const isDateValid =
|
|
2448
|
+
const isDateValid = dateValue && this.dateFormatter.dateIsValid(dateValue);
|
|
2012
2449
|
if (!isDateValid || !this.isDateStringValid(value)) {
|
|
2013
2450
|
// Mark the invalid control as touched so that the input's invalid CSS styles appear.
|
|
2014
2451
|
// (This is only required when the invalid value is set by the FormControl constructor.)
|
|
2015
2452
|
this.control.markAsTouched();
|
|
2016
2453
|
return {
|
|
2017
|
-
|
|
2018
|
-
invalid: value
|
|
2019
|
-
}
|
|
2454
|
+
skyDate: {
|
|
2455
|
+
invalid: value,
|
|
2456
|
+
},
|
|
2020
2457
|
};
|
|
2021
2458
|
}
|
|
2022
2459
|
const minDate = this.minDate;
|
|
2023
|
-
if (minDate &&
|
|
2024
|
-
this.dateFormatter.dateIsValid(minDate) &&
|
|
2025
|
-
value < minDate) {
|
|
2460
|
+
if (minDate && this.dateFormatter.dateIsValid(minDate) && value < minDate) {
|
|
2026
2461
|
return {
|
|
2027
|
-
|
|
2028
|
-
minDate
|
|
2029
|
-
}
|
|
2462
|
+
skyDate: {
|
|
2463
|
+
minDate,
|
|
2464
|
+
},
|
|
2030
2465
|
};
|
|
2031
2466
|
}
|
|
2032
2467
|
const maxDate = this.maxDate;
|
|
2033
|
-
if (maxDate &&
|
|
2034
|
-
this.dateFormatter.dateIsValid(maxDate) &&
|
|
2035
|
-
value > maxDate) {
|
|
2468
|
+
if (maxDate && this.dateFormatter.dateIsValid(maxDate) && value > maxDate) {
|
|
2036
2469
|
return {
|
|
2037
|
-
|
|
2038
|
-
maxDate
|
|
2039
|
-
}
|
|
2470
|
+
skyDate: {
|
|
2471
|
+
maxDate,
|
|
2472
|
+
},
|
|
2040
2473
|
};
|
|
2041
2474
|
}
|
|
2042
2475
|
}
|
|
@@ -2123,21 +2556,21 @@ class SkyDatepickerInputDirective {
|
|
|
2123
2556
|
}
|
|
2124
2557
|
}
|
|
2125
2558
|
}
|
|
2126
|
-
SkyDatepickerInputDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
2127
|
-
SkyDatepickerInputDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.
|
|
2559
|
+
SkyDatepickerInputDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyDatepickerInputDirective, deps: [{ token: SkyDatepickerAdapterService }, { token: i0.ChangeDetectorRef }, { token: SkyDatepickerConfigService }, { token: i0.ElementRef }, { token: i3.SkyAppLocaleProvider }, { token: i0.Renderer2 }, { token: i3.SkyLibResourcesService }, { token: SkyDatepickerComponent, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
2560
|
+
SkyDatepickerInputDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.14", type: SkyDatepickerInputDirective, selector: "[skyDatepickerInput]", inputs: { dateFormat: "dateFormat", disabled: "disabled", maxDate: "maxDate", minDate: "minDate", skyDatepickerInput: "skyDatepickerInput", skyDatepickerNoValidate: "skyDatepickerNoValidate", startingDay: "startingDay", strict: "strict" }, host: { listeners: { "change": "onInputChange($event)", "blur": "onInputBlur()", "keyup": "onInputKeyup()" } }, providers: [
|
|
2128
2561
|
SKY_DATEPICKER_VALUE_ACCESSOR,
|
|
2129
2562
|
SKY_DATEPICKER_VALIDATOR,
|
|
2130
|
-
SkyDatepickerAdapterService
|
|
2563
|
+
SkyDatepickerAdapterService,
|
|
2131
2564
|
], ngImport: i0 });
|
|
2132
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
2565
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyDatepickerInputDirective, decorators: [{
|
|
2133
2566
|
type: Directive,
|
|
2134
2567
|
args: [{
|
|
2135
2568
|
selector: '[skyDatepickerInput]',
|
|
2136
2569
|
providers: [
|
|
2137
2570
|
SKY_DATEPICKER_VALUE_ACCESSOR,
|
|
2138
2571
|
SKY_DATEPICKER_VALIDATOR,
|
|
2139
|
-
SkyDatepickerAdapterService
|
|
2140
|
-
]
|
|
2572
|
+
SkyDatepickerAdapterService,
|
|
2573
|
+
],
|
|
2141
2574
|
}]
|
|
2142
2575
|
}], ctorParameters: function () { return [{ type: SkyDatepickerAdapterService }, { type: i0.ChangeDetectorRef }, { type: SkyDatepickerConfigService }, { type: i0.ElementRef }, { type: i3.SkyAppLocaleProvider }, { type: i0.Renderer2 }, { type: i3.SkyLibResourcesService }, { type: SkyDatepickerComponent, decorators: [{
|
|
2143
2576
|
type: Optional
|
|
@@ -2172,12 +2605,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImpo
|
|
|
2172
2605
|
const SKY_FUZZY_DATEPICKER_VALUE_ACCESSOR = {
|
|
2173
2606
|
provide: NG_VALUE_ACCESSOR,
|
|
2174
2607
|
useExisting: forwardRef(() => SkyFuzzyDatepickerInputDirective),
|
|
2175
|
-
multi: true
|
|
2608
|
+
multi: true,
|
|
2176
2609
|
};
|
|
2177
2610
|
const SKY_FUZZY_DATEPICKER_VALIDATOR = {
|
|
2178
2611
|
provide: NG_VALIDATORS,
|
|
2179
2612
|
useExisting: forwardRef(() => SkyFuzzyDatepickerInputDirective),
|
|
2180
|
-
multi: true
|
|
2613
|
+
multi: true,
|
|
2181
2614
|
};
|
|
2182
2615
|
// tslint:enable
|
|
2183
2616
|
class SkyFuzzyDatepickerInputDirective {
|
|
@@ -2205,12 +2638,14 @@ class SkyFuzzyDatepickerInputDirective {
|
|
|
2205
2638
|
/*istanbul ignore next */
|
|
2206
2639
|
this.onTouched = () => { };
|
|
2207
2640
|
this.onValidatorChange = () => { };
|
|
2208
|
-
this.localeProvider
|
|
2641
|
+
this.localeProvider
|
|
2642
|
+
.getLocaleInfo()
|
|
2209
2643
|
.pipe(takeUntil(this.ngUnsubscribe))
|
|
2210
2644
|
.subscribe((localeInfo) => {
|
|
2211
2645
|
this.locale = localeInfo.locale;
|
|
2212
2646
|
SkyDateFormatter.setLocale(this.locale);
|
|
2213
|
-
this.preferredShortDateFormat =
|
|
2647
|
+
this.preferredShortDateFormat =
|
|
2648
|
+
SkyDateFormatter.getPreferredShortDateFormat();
|
|
2214
2649
|
});
|
|
2215
2650
|
}
|
|
2216
2651
|
/**
|
|
@@ -2227,9 +2662,9 @@ class SkyFuzzyDatepickerInputDirective {
|
|
|
2227
2662
|
}
|
|
2228
2663
|
}
|
|
2229
2664
|
get dateFormat() {
|
|
2230
|
-
return this._dateFormat ||
|
|
2665
|
+
return (this._dateFormat ||
|
|
2231
2666
|
this.configService.dateFormat ||
|
|
2232
|
-
this.preferredShortDateFormat;
|
|
2667
|
+
this.preferredShortDateFormat);
|
|
2233
2668
|
}
|
|
2234
2669
|
/**
|
|
2235
2670
|
* Indicates whether to disable the datepicker.
|
|
@@ -2350,8 +2785,7 @@ class SkyFuzzyDatepickerInputDirective {
|
|
|
2350
2785
|
}
|
|
2351
2786
|
}
|
|
2352
2787
|
const areFuzzyDatesEqual = this.fuzzyDatesEqual(this._value, fuzzyDate);
|
|
2353
|
-
const isNewValue =
|
|
2354
|
-
!areFuzzyDatesEqual);
|
|
2788
|
+
const isNewValue = fuzzyDate !== this._value || !areFuzzyDatesEqual;
|
|
2355
2789
|
this._value = fuzzyDate || value;
|
|
2356
2790
|
if (isNewValue) {
|
|
2357
2791
|
this.onChange(this._value);
|
|
@@ -2382,7 +2816,8 @@ class SkyFuzzyDatepickerInputDirective {
|
|
|
2382
2816
|
const hasAriaLabel = element.getAttribute('aria-label');
|
|
2383
2817
|
/* istanbul ignore else */
|
|
2384
2818
|
if (!hasAriaLabel) {
|
|
2385
|
-
this.resourcesService
|
|
2819
|
+
this.resourcesService
|
|
2820
|
+
.getString('skyux_date_field_default_label')
|
|
2386
2821
|
.pipe(takeUntil(this.ngUnsubscribe))
|
|
2387
2822
|
.subscribe((value) => {
|
|
2388
2823
|
this.renderer.setAttribute(element, 'aria-label', value);
|
|
@@ -2408,7 +2843,7 @@ class SkyFuzzyDatepickerInputDirective {
|
|
|
2408
2843
|
if (this.control && this.control.parent) {
|
|
2409
2844
|
setTimeout(() => {
|
|
2410
2845
|
this.control.setValue(this.value, {
|
|
2411
|
-
emitEvent: false
|
|
2846
|
+
emitEvent: false,
|
|
2412
2847
|
});
|
|
2413
2848
|
this.changeDetector.markForCheck();
|
|
2414
2849
|
});
|
|
@@ -2455,16 +2890,16 @@ class SkyFuzzyDatepickerInputDirective {
|
|
|
2455
2890
|
}
|
|
2456
2891
|
if (!fuzzyDate) {
|
|
2457
2892
|
validationError = {
|
|
2458
|
-
|
|
2459
|
-
invalid: value
|
|
2460
|
-
}
|
|
2893
|
+
skyFuzzyDate: {
|
|
2894
|
+
invalid: value,
|
|
2895
|
+
},
|
|
2461
2896
|
};
|
|
2462
2897
|
}
|
|
2463
2898
|
if (!validationError && !fuzzyDate.year && this.yearRequired) {
|
|
2464
2899
|
validationError = {
|
|
2465
|
-
|
|
2466
|
-
yearRequired: value
|
|
2467
|
-
}
|
|
2900
|
+
skyFuzzyDate: {
|
|
2901
|
+
yearRequired: value,
|
|
2902
|
+
},
|
|
2468
2903
|
};
|
|
2469
2904
|
}
|
|
2470
2905
|
if (!validationError && fuzzyDate.year) {
|
|
@@ -2473,9 +2908,9 @@ class SkyFuzzyDatepickerInputDirective {
|
|
|
2473
2908
|
fuzzyDateRange = this.fuzzyDateService.getFuzzyDateRange(fuzzyDate, this.maxDate);
|
|
2474
2909
|
if (!fuzzyDateRange.valid) {
|
|
2475
2910
|
validationError = {
|
|
2476
|
-
|
|
2477
|
-
maxDate: value
|
|
2478
|
-
}
|
|
2911
|
+
skyFuzzyDate: {
|
|
2912
|
+
maxDate: value,
|
|
2913
|
+
},
|
|
2479
2914
|
};
|
|
2480
2915
|
}
|
|
2481
2916
|
}
|
|
@@ -2483,9 +2918,9 @@ class SkyFuzzyDatepickerInputDirective {
|
|
|
2483
2918
|
fuzzyDateRange = this.fuzzyDateService.getFuzzyDateRange(this.minDate, fuzzyDate);
|
|
2484
2919
|
if (!fuzzyDateRange.valid) {
|
|
2485
2920
|
validationError = {
|
|
2486
|
-
|
|
2487
|
-
minDate: value
|
|
2488
|
-
}
|
|
2921
|
+
skyFuzzyDate: {
|
|
2922
|
+
minDate: value,
|
|
2923
|
+
},
|
|
2489
2924
|
};
|
|
2490
2925
|
}
|
|
2491
2926
|
}
|
|
@@ -2493,9 +2928,9 @@ class SkyFuzzyDatepickerInputDirective {
|
|
|
2493
2928
|
fuzzyDateRange = this.fuzzyDateService.getFuzzyDateRange(fuzzyDate, this.fuzzyDateService.getCurrentFuzzyDate());
|
|
2494
2929
|
if (!fuzzyDateRange.valid) {
|
|
2495
2930
|
validationError = {
|
|
2496
|
-
|
|
2497
|
-
futureDisabled: value
|
|
2498
|
-
}
|
|
2931
|
+
skyFuzzyDate: {
|
|
2932
|
+
futureDisabled: value,
|
|
2933
|
+
},
|
|
2499
2934
|
};
|
|
2500
2935
|
}
|
|
2501
2936
|
}
|
|
@@ -2557,28 +2992,26 @@ class SkyFuzzyDatepickerInputDirective {
|
|
|
2557
2992
|
}
|
|
2558
2993
|
/* istanbul ignore next */
|
|
2559
2994
|
fuzzyDatesEqual(dateA, dateB) {
|
|
2560
|
-
return dateA &&
|
|
2561
|
-
|
|
2562
|
-
|
|
2563
|
-
|
|
2564
|
-
|
|
2565
|
-
&& ((!dateA.year && !dateB.year)
|
|
2566
|
-
|| dateA.year === dateB.year);
|
|
2995
|
+
return (dateA &&
|
|
2996
|
+
dateB &&
|
|
2997
|
+
((!dateA.day && !dateB.day) || dateA.day === dateB.day) &&
|
|
2998
|
+
((!dateA.month && !dateB.month) || dateA.month === dateB.month) &&
|
|
2999
|
+
((!dateA.year && !dateB.year) || dateA.year === dateB.year));
|
|
2567
3000
|
}
|
|
2568
3001
|
}
|
|
2569
|
-
SkyFuzzyDatepickerInputDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
2570
|
-
SkyFuzzyDatepickerInputDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.
|
|
3002
|
+
SkyFuzzyDatepickerInputDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyFuzzyDatepickerInputDirective, deps: [{ token: i0.ChangeDetectorRef }, { token: SkyDatepickerConfigService }, { token: i0.ElementRef }, { token: SkyFuzzyDateService }, { token: i3.SkyAppLocaleProvider }, { token: i0.Renderer2 }, { token: i3.SkyLibResourcesService }, { token: SkyDatepickerComponent, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
3003
|
+
SkyFuzzyDatepickerInputDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.14", type: SkyFuzzyDatepickerInputDirective, selector: "[skyFuzzyDatepickerInput]", inputs: { dateFormat: "dateFormat", disabled: "disabled", futureDisabled: "futureDisabled", maxDate: "maxDate", minDate: "minDate", skyDatepickerNoValidate: "skyDatepickerNoValidate", skyFuzzyDatepickerInput: "skyFuzzyDatepickerInput", startingDay: "startingDay", yearRequired: "yearRequired" }, host: { listeners: { "change": "onInputChange($event)", "blur": "onInputBlur()", "keyup": "onInputKeyup()" } }, providers: [
|
|
2571
3004
|
SKY_FUZZY_DATEPICKER_VALUE_ACCESSOR,
|
|
2572
|
-
SKY_FUZZY_DATEPICKER_VALIDATOR
|
|
3005
|
+
SKY_FUZZY_DATEPICKER_VALIDATOR,
|
|
2573
3006
|
], ngImport: i0 });
|
|
2574
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
3007
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyFuzzyDatepickerInputDirective, decorators: [{
|
|
2575
3008
|
type: Directive,
|
|
2576
3009
|
args: [{
|
|
2577
3010
|
selector: '[skyFuzzyDatepickerInput]',
|
|
2578
3011
|
providers: [
|
|
2579
3012
|
SKY_FUZZY_DATEPICKER_VALUE_ACCESSOR,
|
|
2580
|
-
SKY_FUZZY_DATEPICKER_VALIDATOR
|
|
2581
|
-
]
|
|
3013
|
+
SKY_FUZZY_DATEPICKER_VALIDATOR,
|
|
3014
|
+
],
|
|
2582
3015
|
}]
|
|
2583
3016
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: SkyDatepickerConfigService }, { type: i0.ElementRef }, { type: SkyFuzzyDateService }, { type: i3.SkyAppLocaleProvider }, { type: i0.Renderer2 }, { type: i3.SkyLibResourcesService }, { type: SkyDatepickerComponent, decorators: [{
|
|
2584
3017
|
type: Optional
|
|
@@ -2613,26 +3046,30 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImpo
|
|
|
2613
3046
|
|
|
2614
3047
|
class SkyDatepickerModule {
|
|
2615
3048
|
}
|
|
2616
|
-
SkyDatepickerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
2617
|
-
SkyDatepickerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.
|
|
3049
|
+
SkyDatepickerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyDatepickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
3050
|
+
SkyDatepickerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyDatepickerModule, declarations: [SkyDatepickerCalendarComponent,
|
|
2618
3051
|
SkyDatepickerCalendarInnerComponent,
|
|
2619
3052
|
SkyDayPickerComponent,
|
|
2620
3053
|
SkyMonthPickerComponent,
|
|
2621
3054
|
SkyYearPickerComponent,
|
|
2622
3055
|
SkyDatepickerComponent,
|
|
2623
3056
|
SkyDatepickerInputDirective,
|
|
2624
|
-
SkyFuzzyDatepickerInputDirective
|
|
3057
|
+
SkyFuzzyDatepickerInputDirective,
|
|
3058
|
+
SkyDayPickerCellComponent,
|
|
3059
|
+
SkyDayPickerButtonComponent], imports: [CommonModule,
|
|
2625
3060
|
SkyI18nModule,
|
|
2626
3061
|
FormsModule,
|
|
2627
3062
|
SkyIconModule,
|
|
2628
3063
|
SkyDatetimeResourcesModule,
|
|
2629
3064
|
SkyAffixModule,
|
|
2630
3065
|
SkyOverlayModule,
|
|
2631
|
-
SkyThemeModule
|
|
3066
|
+
SkyThemeModule,
|
|
3067
|
+
SkyPopoverModule,
|
|
3068
|
+
SkyWaitModule], exports: [SkyDatepickerCalendarComponent,
|
|
2632
3069
|
SkyDatepickerComponent,
|
|
2633
3070
|
SkyDatepickerInputDirective,
|
|
2634
3071
|
SkyFuzzyDatepickerInputDirective] });
|
|
2635
|
-
SkyDatepickerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.
|
|
3072
|
+
SkyDatepickerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyDatepickerModule, providers: [SkyDatepickerService], imports: [[
|
|
2636
3073
|
CommonModule,
|
|
2637
3074
|
SkyI18nModule,
|
|
2638
3075
|
FormsModule,
|
|
@@ -2640,9 +3077,11 @@ SkyDatepickerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", ver
|
|
|
2640
3077
|
SkyDatetimeResourcesModule,
|
|
2641
3078
|
SkyAffixModule,
|
|
2642
3079
|
SkyOverlayModule,
|
|
2643
|
-
SkyThemeModule
|
|
3080
|
+
SkyThemeModule,
|
|
3081
|
+
SkyPopoverModule,
|
|
3082
|
+
SkyWaitModule,
|
|
2644
3083
|
]] });
|
|
2645
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
3084
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyDatepickerModule, decorators: [{
|
|
2646
3085
|
type: NgModule,
|
|
2647
3086
|
args: [{
|
|
2648
3087
|
declarations: [
|
|
@@ -2653,7 +3092,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImpo
|
|
|
2653
3092
|
SkyYearPickerComponent,
|
|
2654
3093
|
SkyDatepickerComponent,
|
|
2655
3094
|
SkyDatepickerInputDirective,
|
|
2656
|
-
SkyFuzzyDatepickerInputDirective
|
|
3095
|
+
SkyFuzzyDatepickerInputDirective,
|
|
3096
|
+
SkyDayPickerCellComponent,
|
|
3097
|
+
SkyDayPickerButtonComponent,
|
|
2657
3098
|
],
|
|
2658
3099
|
imports: [
|
|
2659
3100
|
CommonModule,
|
|
@@ -2663,14 +3104,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImpo
|
|
|
2663
3104
|
SkyDatetimeResourcesModule,
|
|
2664
3105
|
SkyAffixModule,
|
|
2665
3106
|
SkyOverlayModule,
|
|
2666
|
-
SkyThemeModule
|
|
3107
|
+
SkyThemeModule,
|
|
3108
|
+
SkyPopoverModule,
|
|
3109
|
+
SkyWaitModule,
|
|
2667
3110
|
],
|
|
2668
3111
|
exports: [
|
|
2669
3112
|
SkyDatepickerCalendarComponent,
|
|
2670
3113
|
SkyDatepickerComponent,
|
|
2671
3114
|
SkyDatepickerInputDirective,
|
|
2672
|
-
SkyFuzzyDatepickerInputDirective
|
|
2673
|
-
]
|
|
3115
|
+
SkyFuzzyDatepickerInputDirective,
|
|
3116
|
+
],
|
|
3117
|
+
providers: [SkyDatepickerService],
|
|
2674
3118
|
}]
|
|
2675
3119
|
}] });
|
|
2676
3120
|
|
|
@@ -2709,7 +3153,7 @@ class SkyDateRangeCalculator {
|
|
|
2709
3153
|
return {
|
|
2710
3154
|
calculatorId: this.calculatorId,
|
|
2711
3155
|
startDate,
|
|
2712
|
-
endDate
|
|
3156
|
+
endDate,
|
|
2713
3157
|
};
|
|
2714
3158
|
}
|
|
2715
3159
|
/**
|
|
@@ -2744,7 +3188,7 @@ class SkyDateRangeRelativeValue {
|
|
|
2744
3188
|
const today = new Date();
|
|
2745
3189
|
return {
|
|
2746
3190
|
startDate: today,
|
|
2747
|
-
endDate: today
|
|
3191
|
+
endDate: today,
|
|
2748
3192
|
};
|
|
2749
3193
|
}
|
|
2750
3194
|
static get tomorrow() {
|
|
@@ -2752,7 +3196,7 @@ class SkyDateRangeRelativeValue {
|
|
|
2752
3196
|
tomorrow.setDate(tomorrow.getDate() + 1);
|
|
2753
3197
|
return {
|
|
2754
3198
|
startDate: tomorrow,
|
|
2755
|
-
endDate: tomorrow
|
|
3199
|
+
endDate: tomorrow,
|
|
2756
3200
|
};
|
|
2757
3201
|
}
|
|
2758
3202
|
static get yesterday() {
|
|
@@ -2760,7 +3204,7 @@ class SkyDateRangeRelativeValue {
|
|
|
2760
3204
|
yesterday.setDate(yesterday.getDate() - 1);
|
|
2761
3205
|
return {
|
|
2762
3206
|
startDate: yesterday,
|
|
2763
|
-
endDate: yesterday
|
|
3207
|
+
endDate: yesterday,
|
|
2764
3208
|
};
|
|
2765
3209
|
}
|
|
2766
3210
|
/**
|
|
@@ -2773,7 +3217,7 @@ class SkyDateRangeRelativeValue {
|
|
|
2773
3217
|
endDate.setDate(endDate.getDate() - endDate.getDay() + 6);
|
|
2774
3218
|
return {
|
|
2775
3219
|
startDate,
|
|
2776
|
-
endDate
|
|
3220
|
+
endDate,
|
|
2777
3221
|
};
|
|
2778
3222
|
}
|
|
2779
3223
|
/**
|
|
@@ -2786,7 +3230,7 @@ class SkyDateRangeRelativeValue {
|
|
|
2786
3230
|
endDate.setDate(endDate.getDate() - endDate.getDay() + 13);
|
|
2787
3231
|
return {
|
|
2788
3232
|
startDate,
|
|
2789
|
-
endDate
|
|
3233
|
+
endDate,
|
|
2790
3234
|
};
|
|
2791
3235
|
}
|
|
2792
3236
|
static get lastWeek() {
|
|
@@ -2796,7 +3240,7 @@ class SkyDateRangeRelativeValue {
|
|
|
2796
3240
|
endDate.setDate(endDate.getDate() - endDate.getDay() - 1);
|
|
2797
3241
|
return {
|
|
2798
3242
|
startDate,
|
|
2799
|
-
endDate
|
|
3243
|
+
endDate,
|
|
2800
3244
|
};
|
|
2801
3245
|
}
|
|
2802
3246
|
static get thisMonth() {
|
|
@@ -2807,7 +3251,7 @@ class SkyDateRangeRelativeValue {
|
|
|
2807
3251
|
endDate.setDate(0);
|
|
2808
3252
|
return {
|
|
2809
3253
|
startDate,
|
|
2810
|
-
endDate
|
|
3254
|
+
endDate,
|
|
2811
3255
|
};
|
|
2812
3256
|
}
|
|
2813
3257
|
static get nextMonth() {
|
|
@@ -2820,7 +3264,7 @@ class SkyDateRangeRelativeValue {
|
|
|
2820
3264
|
endDate.setDate(0);
|
|
2821
3265
|
return {
|
|
2822
3266
|
startDate,
|
|
2823
|
-
endDate
|
|
3267
|
+
endDate,
|
|
2824
3268
|
};
|
|
2825
3269
|
}
|
|
2826
3270
|
static get lastMonth() {
|
|
@@ -2834,7 +3278,7 @@ class SkyDateRangeRelativeValue {
|
|
|
2834
3278
|
endDate.setDate(0);
|
|
2835
3279
|
return {
|
|
2836
3280
|
startDate,
|
|
2837
|
-
endDate
|
|
3281
|
+
endDate,
|
|
2838
3282
|
};
|
|
2839
3283
|
}
|
|
2840
3284
|
static get thisQuarter() {
|
|
@@ -2848,7 +3292,7 @@ class SkyDateRangeRelativeValue {
|
|
|
2848
3292
|
endDate.setDate(0);
|
|
2849
3293
|
return {
|
|
2850
3294
|
startDate,
|
|
2851
|
-
endDate
|
|
3295
|
+
endDate,
|
|
2852
3296
|
};
|
|
2853
3297
|
}
|
|
2854
3298
|
static get nextQuarter() {
|
|
@@ -2862,7 +3306,7 @@ class SkyDateRangeRelativeValue {
|
|
|
2862
3306
|
endDate.setDate(0);
|
|
2863
3307
|
return {
|
|
2864
3308
|
startDate,
|
|
2865
|
-
endDate
|
|
3309
|
+
endDate,
|
|
2866
3310
|
};
|
|
2867
3311
|
}
|
|
2868
3312
|
static get lastQuarter() {
|
|
@@ -2878,7 +3322,7 @@ class SkyDateRangeRelativeValue {
|
|
|
2878
3322
|
endDate.setDate(0);
|
|
2879
3323
|
return {
|
|
2880
3324
|
startDate,
|
|
2881
|
-
endDate
|
|
3325
|
+
endDate,
|
|
2882
3326
|
};
|
|
2883
3327
|
}
|
|
2884
3328
|
static get thisCalendarYear() {
|
|
@@ -2892,7 +3336,7 @@ class SkyDateRangeRelativeValue {
|
|
|
2892
3336
|
endDate.setDate(0);
|
|
2893
3337
|
return {
|
|
2894
3338
|
startDate,
|
|
2895
|
-
endDate
|
|
3339
|
+
endDate,
|
|
2896
3340
|
};
|
|
2897
3341
|
}
|
|
2898
3342
|
static get nextCalendarYear() {
|
|
@@ -2907,7 +3351,7 @@ class SkyDateRangeRelativeValue {
|
|
|
2907
3351
|
endDate.setDate(0);
|
|
2908
3352
|
return {
|
|
2909
3353
|
startDate,
|
|
2910
|
-
endDate
|
|
3354
|
+
endDate,
|
|
2911
3355
|
};
|
|
2912
3356
|
}
|
|
2913
3357
|
static get lastCalendarYear() {
|
|
@@ -2921,7 +3365,7 @@ class SkyDateRangeRelativeValue {
|
|
|
2921
3365
|
endDate.setDate(0);
|
|
2922
3366
|
return {
|
|
2923
3367
|
startDate,
|
|
2924
|
-
endDate
|
|
3368
|
+
endDate,
|
|
2925
3369
|
};
|
|
2926
3370
|
}
|
|
2927
3371
|
static get thisFiscalYear() {
|
|
@@ -2977,7 +3421,7 @@ class SkyDateRangeRelativeValue {
|
|
|
2977
3421
|
}
|
|
2978
3422
|
return {
|
|
2979
3423
|
startDate,
|
|
2980
|
-
endDate
|
|
3424
|
+
endDate,
|
|
2981
3425
|
};
|
|
2982
3426
|
}
|
|
2983
3427
|
}
|
|
@@ -2987,19 +3431,19 @@ const SKY_DEFAULT_CALCULATOR_CONFIGS = [
|
|
|
2987
3431
|
calculatorId: SkyDateRangeCalculatorId.AnyTime,
|
|
2988
3432
|
type: SkyDateRangeCalculatorType.Relative,
|
|
2989
3433
|
shortDescriptionResourceKey: 'skyux_date_range_picker_format_label_any_time',
|
|
2990
|
-
getValue: (startDate, endDate) => ({ startDate, endDate })
|
|
3434
|
+
getValue: (startDate, endDate) => ({ startDate, endDate }),
|
|
2991
3435
|
},
|
|
2992
3436
|
{
|
|
2993
3437
|
calculatorId: SkyDateRangeCalculatorId.Before,
|
|
2994
3438
|
type: SkyDateRangeCalculatorType.Before,
|
|
2995
3439
|
shortDescriptionResourceKey: 'skyux_date_range_picker_format_label_before',
|
|
2996
|
-
getValue: (startDate, endDate) => ({ startDate, endDate })
|
|
3440
|
+
getValue: (startDate, endDate) => ({ startDate, endDate }),
|
|
2997
3441
|
},
|
|
2998
3442
|
{
|
|
2999
3443
|
calculatorId: SkyDateRangeCalculatorId.After,
|
|
3000
3444
|
type: SkyDateRangeCalculatorType.After,
|
|
3001
3445
|
shortDescriptionResourceKey: 'skyux_date_range_picker_format_label_after',
|
|
3002
|
-
getValue: (startDate, endDate) => ({ startDate, endDate })
|
|
3446
|
+
getValue: (startDate, endDate) => ({ startDate, endDate }),
|
|
3003
3447
|
},
|
|
3004
3448
|
{
|
|
3005
3449
|
calculatorId: SkyDateRangeCalculatorId.SpecificRange,
|
|
@@ -3011,119 +3455,119 @@ const SKY_DEFAULT_CALCULATOR_CONFIGS = [
|
|
|
3011
3455
|
value.endDate &&
|
|
3012
3456
|
value.startDate > value.endDate) {
|
|
3013
3457
|
return {
|
|
3014
|
-
|
|
3458
|
+
endDateBeforeStartDate: true,
|
|
3015
3459
|
};
|
|
3016
3460
|
}
|
|
3017
|
-
}
|
|
3461
|
+
},
|
|
3018
3462
|
},
|
|
3019
3463
|
{
|
|
3020
3464
|
calculatorId: SkyDateRangeCalculatorId.LastFiscalYear,
|
|
3021
3465
|
type: SkyDateRangeCalculatorType.Relative,
|
|
3022
3466
|
shortDescriptionResourceKey: 'skyux_date_range_picker_format_label_last_fiscal_year',
|
|
3023
|
-
getValue: () => SkyDateRangeRelativeValue.lastFiscalYear
|
|
3467
|
+
getValue: () => SkyDateRangeRelativeValue.lastFiscalYear,
|
|
3024
3468
|
},
|
|
3025
3469
|
{
|
|
3026
3470
|
calculatorId: SkyDateRangeCalculatorId.LastMonth,
|
|
3027
3471
|
type: SkyDateRangeCalculatorType.Relative,
|
|
3028
3472
|
shortDescriptionResourceKey: 'skyux_date_range_picker_format_label_last_month',
|
|
3029
|
-
getValue: () => SkyDateRangeRelativeValue.lastMonth
|
|
3473
|
+
getValue: () => SkyDateRangeRelativeValue.lastMonth,
|
|
3030
3474
|
},
|
|
3031
3475
|
{
|
|
3032
3476
|
calculatorId: SkyDateRangeCalculatorId.LastQuarter,
|
|
3033
3477
|
type: SkyDateRangeCalculatorType.Relative,
|
|
3034
3478
|
shortDescriptionResourceKey: 'skyux_date_range_picker_format_label_last_quarter',
|
|
3035
|
-
getValue: () => SkyDateRangeRelativeValue.lastQuarter
|
|
3479
|
+
getValue: () => SkyDateRangeRelativeValue.lastQuarter,
|
|
3036
3480
|
},
|
|
3037
3481
|
{
|
|
3038
3482
|
calculatorId: SkyDateRangeCalculatorId.LastWeek,
|
|
3039
3483
|
type: SkyDateRangeCalculatorType.Relative,
|
|
3040
3484
|
shortDescriptionResourceKey: 'skyux_date_range_picker_format_label_last_week',
|
|
3041
|
-
getValue: () => SkyDateRangeRelativeValue.lastWeek
|
|
3485
|
+
getValue: () => SkyDateRangeRelativeValue.lastWeek,
|
|
3042
3486
|
},
|
|
3043
3487
|
{
|
|
3044
3488
|
calculatorId: SkyDateRangeCalculatorId.LastCalendarYear,
|
|
3045
3489
|
type: SkyDateRangeCalculatorType.Relative,
|
|
3046
3490
|
shortDescriptionResourceKey: 'skyux_date_range_picker_format_label_last_calendar_year',
|
|
3047
|
-
getValue: () => SkyDateRangeRelativeValue.lastCalendarYear
|
|
3491
|
+
getValue: () => SkyDateRangeRelativeValue.lastCalendarYear,
|
|
3048
3492
|
},
|
|
3049
3493
|
{
|
|
3050
3494
|
calculatorId: SkyDateRangeCalculatorId.NextFiscalYear,
|
|
3051
3495
|
type: SkyDateRangeCalculatorType.Relative,
|
|
3052
3496
|
shortDescriptionResourceKey: 'skyux_date_range_picker_format_label_next_fiscal_year',
|
|
3053
|
-
getValue: () => SkyDateRangeRelativeValue.nextFiscalYear
|
|
3497
|
+
getValue: () => SkyDateRangeRelativeValue.nextFiscalYear,
|
|
3054
3498
|
},
|
|
3055
3499
|
{
|
|
3056
3500
|
calculatorId: SkyDateRangeCalculatorId.NextMonth,
|
|
3057
3501
|
type: SkyDateRangeCalculatorType.Relative,
|
|
3058
3502
|
shortDescriptionResourceKey: 'skyux_date_range_picker_format_label_next_month',
|
|
3059
|
-
getValue: () => SkyDateRangeRelativeValue.nextMonth
|
|
3503
|
+
getValue: () => SkyDateRangeRelativeValue.nextMonth,
|
|
3060
3504
|
},
|
|
3061
3505
|
{
|
|
3062
3506
|
calculatorId: SkyDateRangeCalculatorId.NextQuarter,
|
|
3063
3507
|
type: SkyDateRangeCalculatorType.Relative,
|
|
3064
3508
|
shortDescriptionResourceKey: 'skyux_date_range_picker_format_label_next_quarter',
|
|
3065
|
-
getValue: () => SkyDateRangeRelativeValue.nextQuarter
|
|
3509
|
+
getValue: () => SkyDateRangeRelativeValue.nextQuarter,
|
|
3066
3510
|
},
|
|
3067
3511
|
{
|
|
3068
3512
|
calculatorId: SkyDateRangeCalculatorId.NextWeek,
|
|
3069
3513
|
type: SkyDateRangeCalculatorType.Relative,
|
|
3070
3514
|
shortDescriptionResourceKey: 'skyux_date_range_picker_format_label_next_week',
|
|
3071
|
-
getValue: () => SkyDateRangeRelativeValue.nextWeek
|
|
3515
|
+
getValue: () => SkyDateRangeRelativeValue.nextWeek,
|
|
3072
3516
|
},
|
|
3073
3517
|
{
|
|
3074
3518
|
calculatorId: SkyDateRangeCalculatorId.NextCalendarYear,
|
|
3075
3519
|
type: SkyDateRangeCalculatorType.Relative,
|
|
3076
3520
|
shortDescriptionResourceKey: 'skyux_date_range_picker_format_label_next_calendar_year',
|
|
3077
|
-
getValue: () => SkyDateRangeRelativeValue.nextCalendarYear
|
|
3521
|
+
getValue: () => SkyDateRangeRelativeValue.nextCalendarYear,
|
|
3078
3522
|
},
|
|
3079
3523
|
{
|
|
3080
3524
|
calculatorId: SkyDateRangeCalculatorId.ThisFiscalYear,
|
|
3081
3525
|
type: SkyDateRangeCalculatorType.Relative,
|
|
3082
3526
|
shortDescriptionResourceKey: 'skyux_date_range_picker_format_label_this_fiscal_year',
|
|
3083
|
-
getValue: () => SkyDateRangeRelativeValue.thisFiscalYear
|
|
3527
|
+
getValue: () => SkyDateRangeRelativeValue.thisFiscalYear,
|
|
3084
3528
|
},
|
|
3085
3529
|
{
|
|
3086
3530
|
calculatorId: SkyDateRangeCalculatorId.ThisMonth,
|
|
3087
3531
|
type: SkyDateRangeCalculatorType.Relative,
|
|
3088
3532
|
shortDescriptionResourceKey: 'skyux_date_range_picker_format_label_this_month',
|
|
3089
|
-
getValue: () => SkyDateRangeRelativeValue.thisMonth
|
|
3533
|
+
getValue: () => SkyDateRangeRelativeValue.thisMonth,
|
|
3090
3534
|
},
|
|
3091
3535
|
{
|
|
3092
3536
|
calculatorId: SkyDateRangeCalculatorId.ThisQuarter,
|
|
3093
3537
|
type: SkyDateRangeCalculatorType.Relative,
|
|
3094
3538
|
shortDescriptionResourceKey: 'skyux_date_range_picker_format_label_this_quarter',
|
|
3095
|
-
getValue: () => SkyDateRangeRelativeValue.thisQuarter
|
|
3539
|
+
getValue: () => SkyDateRangeRelativeValue.thisQuarter,
|
|
3096
3540
|
},
|
|
3097
3541
|
{
|
|
3098
3542
|
calculatorId: SkyDateRangeCalculatorId.ThisWeek,
|
|
3099
3543
|
type: SkyDateRangeCalculatorType.Relative,
|
|
3100
3544
|
shortDescriptionResourceKey: 'skyux_date_range_picker_format_label_this_week',
|
|
3101
|
-
getValue: () => SkyDateRangeRelativeValue.thisWeek
|
|
3545
|
+
getValue: () => SkyDateRangeRelativeValue.thisWeek,
|
|
3102
3546
|
},
|
|
3103
3547
|
{
|
|
3104
3548
|
calculatorId: SkyDateRangeCalculatorId.ThisCalendarYear,
|
|
3105
3549
|
type: SkyDateRangeCalculatorType.Relative,
|
|
3106
3550
|
shortDescriptionResourceKey: 'skyux_date_range_picker_format_label_this_calendar_year',
|
|
3107
|
-
getValue: () => SkyDateRangeRelativeValue.thisCalendarYear
|
|
3551
|
+
getValue: () => SkyDateRangeRelativeValue.thisCalendarYear,
|
|
3108
3552
|
},
|
|
3109
3553
|
{
|
|
3110
3554
|
calculatorId: SkyDateRangeCalculatorId.Today,
|
|
3111
3555
|
type: SkyDateRangeCalculatorType.Relative,
|
|
3112
3556
|
shortDescriptionResourceKey: 'skyux_date_range_picker_format_label_today',
|
|
3113
|
-
getValue: () => SkyDateRangeRelativeValue.today
|
|
3557
|
+
getValue: () => SkyDateRangeRelativeValue.today,
|
|
3114
3558
|
},
|
|
3115
3559
|
{
|
|
3116
3560
|
calculatorId: SkyDateRangeCalculatorId.Tomorrow,
|
|
3117
3561
|
type: SkyDateRangeCalculatorType.Relative,
|
|
3118
3562
|
shortDescriptionResourceKey: 'skyux_date_range_picker_format_label_tomorrow',
|
|
3119
|
-
getValue: () => SkyDateRangeRelativeValue.tomorrow
|
|
3563
|
+
getValue: () => SkyDateRangeRelativeValue.tomorrow,
|
|
3120
3564
|
},
|
|
3121
3565
|
{
|
|
3122
3566
|
calculatorId: SkyDateRangeCalculatorId.Yesterday,
|
|
3123
3567
|
type: SkyDateRangeCalculatorType.Relative,
|
|
3124
3568
|
shortDescriptionResourceKey: 'skyux_date_range_picker_format_label_yesterday',
|
|
3125
|
-
getValue: () => SkyDateRangeRelativeValue.yesterday
|
|
3126
|
-
}
|
|
3569
|
+
getValue: () => SkyDateRangeRelativeValue.yesterday,
|
|
3570
|
+
},
|
|
3127
3571
|
];
|
|
3128
3572
|
|
|
3129
3573
|
/**
|
|
@@ -3164,16 +3608,14 @@ class SkyDateRangeService {
|
|
|
3164
3608
|
getCalculatorById(id) {
|
|
3165
3609
|
const calculatorId = parseInt(id, 10);
|
|
3166
3610
|
const found = this.calculators.find((calculator) => {
|
|
3167
|
-
return
|
|
3611
|
+
return calculator.calculatorId === calculatorId;
|
|
3168
3612
|
});
|
|
3169
3613
|
return new Promise((resolve, reject) => {
|
|
3170
3614
|
if (!found) {
|
|
3171
3615
|
reject(new Error(`A calculator with the ID ${id} was not found.`));
|
|
3172
3616
|
return;
|
|
3173
3617
|
}
|
|
3174
|
-
this.calculatorReadyStream
|
|
3175
|
-
.pipe(first())
|
|
3176
|
-
.subscribe(() => {
|
|
3618
|
+
this.calculatorReadyStream.pipe(first()).subscribe(() => {
|
|
3177
3619
|
resolve(found);
|
|
3178
3620
|
});
|
|
3179
3621
|
});
|
|
@@ -3186,7 +3628,7 @@ class SkyDateRangeService {
|
|
|
3186
3628
|
getValue: defaultConfig.getValue,
|
|
3187
3629
|
validate: defaultConfig.validate,
|
|
3188
3630
|
shortDescription: '',
|
|
3189
|
-
type: defaultConfig.type
|
|
3631
|
+
type: defaultConfig.type,
|
|
3190
3632
|
};
|
|
3191
3633
|
tasks.push(this.resourcesService
|
|
3192
3634
|
.getString(defaultConfig.shortDescriptionResourceKey)
|
|
@@ -3211,25 +3653,22 @@ class SkyDateRangeService {
|
|
|
3211
3653
|
// Start the count higher than the number of available values
|
|
3212
3654
|
// provided in the SkyDateRangeCalculatorId enum.
|
|
3213
3655
|
SkyDateRangeService.lastId = 1000;
|
|
3214
|
-
SkyDateRangeService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
3215
|
-
SkyDateRangeService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.
|
|
3216
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
3217
|
-
type: Injectable
|
|
3218
|
-
args: [{
|
|
3219
|
-
providedIn: 'any'
|
|
3220
|
-
}]
|
|
3656
|
+
SkyDateRangeService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyDateRangeService, deps: [{ token: i3.SkyLibResourcesService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
3657
|
+
SkyDateRangeService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyDateRangeService });
|
|
3658
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyDateRangeService, decorators: [{
|
|
3659
|
+
type: Injectable
|
|
3221
3660
|
}], ctorParameters: function () { return [{ type: i3.SkyLibResourcesService }]; } });
|
|
3222
3661
|
|
|
3223
3662
|
/* tslint:disable:no-forward-ref no-use-before-declare */
|
|
3224
3663
|
const SKY_DATE_RANGE_PICKER_VALUE_ACCESSOR = {
|
|
3225
3664
|
provide: NG_VALUE_ACCESSOR,
|
|
3226
3665
|
useExisting: forwardRef(() => SkyDateRangePickerComponent),
|
|
3227
|
-
multi: true
|
|
3666
|
+
multi: true,
|
|
3228
3667
|
};
|
|
3229
3668
|
const SKY_DATE_RANGE_PICKER_VALIDATOR = {
|
|
3230
3669
|
provide: NG_VALIDATORS,
|
|
3231
3670
|
useExisting: forwardRef(() => SkyDateRangePickerComponent),
|
|
3232
|
-
multi: true
|
|
3671
|
+
multi: true,
|
|
3233
3672
|
};
|
|
3234
3673
|
/* tslint:enable */
|
|
3235
3674
|
let uniqueId = 0;
|
|
@@ -3272,11 +3711,13 @@ class SkyDateRangePickerComponent {
|
|
|
3272
3711
|
this.onTouched = () => { };
|
|
3273
3712
|
/* istanbul ignore next */
|
|
3274
3713
|
this.onValidatorChange = () => { };
|
|
3275
|
-
this.localeProvider
|
|
3714
|
+
this.localeProvider
|
|
3715
|
+
.getLocaleInfo()
|
|
3276
3716
|
.pipe(takeUntil(this.ngUnsubscribe))
|
|
3277
3717
|
.subscribe((localeInfo) => {
|
|
3278
3718
|
SkyDateFormatter.setLocale(localeInfo.locale);
|
|
3279
|
-
this.preferredShortDateFormat =
|
|
3719
|
+
this.preferredShortDateFormat =
|
|
3720
|
+
SkyDateFormatter.getPreferredShortDateFormat();
|
|
3280
3721
|
});
|
|
3281
3722
|
// Update icons when theme changes.
|
|
3282
3723
|
/* istanbul ignore next */
|
|
@@ -3293,7 +3734,7 @@ class SkyDateRangePickerComponent {
|
|
|
3293
3734
|
this._calculatorIds = value;
|
|
3294
3735
|
}
|
|
3295
3736
|
get calculatorIds() {
|
|
3296
|
-
return this._calculatorIds || [
|
|
3737
|
+
return (this._calculatorIds || [
|
|
3297
3738
|
SkyDateRangeCalculatorId.AnyTime,
|
|
3298
3739
|
SkyDateRangeCalculatorId.Before,
|
|
3299
3740
|
SkyDateRangeCalculatorId.After,
|
|
@@ -3315,8 +3756,8 @@ class SkyDateRangePickerComponent {
|
|
|
3315
3756
|
SkyDateRangeCalculatorId.NextCalendarYear,
|
|
3316
3757
|
SkyDateRangeCalculatorId.LastFiscalYear,
|
|
3317
3758
|
SkyDateRangeCalculatorId.ThisFiscalYear,
|
|
3318
|
-
SkyDateRangeCalculatorId.NextFiscalYear
|
|
3319
|
-
];
|
|
3759
|
+
SkyDateRangeCalculatorId.NextFiscalYear,
|
|
3760
|
+
]);
|
|
3320
3761
|
}
|
|
3321
3762
|
/**
|
|
3322
3763
|
* Specifies a date format for
|
|
@@ -3381,8 +3822,7 @@ class SkyDateRangePickerComponent {
|
|
|
3381
3822
|
return this.formGroup.get('startDate');
|
|
3382
3823
|
}
|
|
3383
3824
|
get value() {
|
|
3384
|
-
if (this._value &&
|
|
3385
|
-
this._value.calculatorId !== undefined) {
|
|
3825
|
+
if (this._value && this._value.calculatorId !== undefined) {
|
|
3386
3826
|
return this._value;
|
|
3387
3827
|
}
|
|
3388
3828
|
return this.defaultValue;
|
|
@@ -3407,20 +3847,19 @@ class SkyDateRangePickerComponent {
|
|
|
3407
3847
|
/* istanbul ignore else */
|
|
3408
3848
|
if (this.control) {
|
|
3409
3849
|
this.control.setValue(this.value, {
|
|
3410
|
-
emitEvent: false
|
|
3850
|
+
emitEvent: false,
|
|
3411
3851
|
});
|
|
3412
3852
|
}
|
|
3413
3853
|
});
|
|
3414
3854
|
}
|
|
3415
3855
|
ngOnChanges(changes) {
|
|
3416
|
-
if (changes.calculatorIds &&
|
|
3417
|
-
changes.calculatorIds.firstChange === false) {
|
|
3856
|
+
if (changes.calculatorIds && changes.calculatorIds.firstChange === false) {
|
|
3418
3857
|
this.updateCalculators().then(() => {
|
|
3419
3858
|
const id = this.calculatorIdControl.value;
|
|
3420
3859
|
// Maintain the currently selected values if the calculators change after
|
|
3421
3860
|
// a value has been chosen.
|
|
3422
3861
|
const found = this.calculators.find((calculator) => {
|
|
3423
|
-
return
|
|
3862
|
+
return calculator.calculatorId === id;
|
|
3424
3863
|
});
|
|
3425
3864
|
/* istanbul ignore else */
|
|
3426
3865
|
if (!found) {
|
|
@@ -3469,8 +3908,8 @@ class SkyDateRangePickerComponent {
|
|
|
3469
3908
|
errors = {
|
|
3470
3909
|
skyDateRange: {
|
|
3471
3910
|
calculatorId: idControl.value,
|
|
3472
|
-
errors: result
|
|
3473
|
-
}
|
|
3911
|
+
errors: result,
|
|
3912
|
+
},
|
|
3474
3913
|
};
|
|
3475
3914
|
}
|
|
3476
3915
|
else {
|
|
@@ -3520,7 +3959,7 @@ class SkyDateRangePickerComponent {
|
|
|
3520
3959
|
this.formGroup = this.formBuilder.group({
|
|
3521
3960
|
calculatorId: new FormControl(),
|
|
3522
3961
|
startDate: new FormControl(),
|
|
3523
|
-
endDate: new FormControl()
|
|
3962
|
+
endDate: new FormControl(),
|
|
3524
3963
|
});
|
|
3525
3964
|
if (this.disabled) {
|
|
3526
3965
|
this.formGroup.disable();
|
|
@@ -3555,7 +3994,7 @@ class SkyDateRangePickerComponent {
|
|
|
3555
3994
|
// listeners to be triggered, as those are reserved for user interactions.
|
|
3556
3995
|
// (See the event listeners listed below.)
|
|
3557
3996
|
this.formGroup.reset(value || this.value, {
|
|
3558
|
-
emitEvent: false
|
|
3997
|
+
emitEvent: false,
|
|
3559
3998
|
});
|
|
3560
3999
|
}
|
|
3561
4000
|
addEventListeners() {
|
|
@@ -3563,7 +4002,7 @@ class SkyDateRangePickerComponent {
|
|
|
3563
4002
|
// when control is initialized with a value.
|
|
3564
4003
|
combineLatest([
|
|
3565
4004
|
this.startDateControl.statusChanges,
|
|
3566
|
-
this.endDateControl.statusChanges
|
|
4005
|
+
this.endDateControl.statusChanges,
|
|
3567
4006
|
])
|
|
3568
4007
|
.pipe(first())
|
|
3569
4008
|
.subscribe((status) => {
|
|
@@ -3606,7 +4045,7 @@ class SkyDateRangePickerComponent {
|
|
|
3606
4045
|
// Detect errors from the date inputs and update ng- classes on picker.
|
|
3607
4046
|
combineLatest([
|
|
3608
4047
|
this.startDateControl.statusChanges,
|
|
3609
|
-
this.endDateControl.statusChanges
|
|
4048
|
+
this.endDateControl.statusChanges,
|
|
3610
4049
|
])
|
|
3611
4050
|
.pipe(takeUntil(this.ngUnsubscribe))
|
|
3612
4051
|
.subscribe(() => {
|
|
@@ -3627,15 +4066,15 @@ class SkyDateRangePickerComponent {
|
|
|
3627
4066
|
});
|
|
3628
4067
|
}
|
|
3629
4068
|
dateRangesEqual(rangeA, rangeB) {
|
|
3630
|
-
return
|
|
4069
|
+
return JSON.stringify(rangeA) === JSON.stringify(rangeB);
|
|
3631
4070
|
}
|
|
3632
4071
|
}
|
|
3633
|
-
SkyDateRangePickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
3634
|
-
SkyDateRangePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.
|
|
4072
|
+
SkyDateRangePickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyDateRangePickerComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: SkyDateRangeService }, { token: i2$2.FormBuilder }, { token: i3.SkyAppLocaleProvider }, { token: i1.SkyAppWindowRef }, { token: i3$2.SkyThemeService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
4073
|
+
SkyDateRangePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.14", type: SkyDateRangePickerComponent, selector: "sky-date-range-picker", inputs: { calculatorIds: "calculatorIds", dateFormat: "dateFormat", disabled: "disabled", label: "label", startDateRequired: "startDateRequired", endDateRequired: "endDateRequired" }, providers: [
|
|
3635
4074
|
SKY_DATE_RANGE_PICKER_VALUE_ACCESSOR,
|
|
3636
|
-
SKY_DATE_RANGE_PICKER_VALIDATOR
|
|
3637
|
-
], usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"isReady\"
|
|
3638
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
4075
|
+
SKY_DATE_RANGE_PICKER_VALIDATOR,
|
|
4076
|
+
], usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"isReady\" class=\"sky-date-range-picker\" [formGroup]=\"formGroup\">\n <div class=\"sky-date-range-picker-form-group\">\n <sky-input-box>\n <label\n class=\"sky-control-label\"\n [attr.for]=\"dateRangePickerId + '-select-calculator'\"\n >\n {{ label || 'skyux_date_range_picker_default_label' | skyLibResources }}\n </label>\n <select\n class=\"sky-form-control\"\n formControlName=\"calculatorId\"\n [attr.id]=\"dateRangePickerId + '-select-calculator'\"\n (blur)=\"onFieldBlur()\"\n >\n <option\n *ngFor=\"let calculator of calculators\"\n [value]=\"calculator.calculatorId\"\n >\n {{ calculator.shortDescription }}\n </option>\n </select>\n </sky-input-box>\n </div>\n\n <div class=\"sky-date-range-picker-form-group\" [hidden]=\"!showStartDatePicker\">\n <sky-input-box>\n <label\n class=\"sky-control-label\"\n [attr.for]=\"dateRangePickerId + '-start-date'\"\n [ngClass]=\"{ 'sky-control-label-required': startDateRequired }\"\n >\n {{ startDateLabelResourceKey | skyLibResources }}\n </label>\n\n <sky-datepicker>\n <input\n formControlName=\"startDate\"\n [attr.aria-label]=\"startDateLabelResourceKey | skyLibResources\"\n [attr.id]=\"dateRangePickerId + '-start-date'\"\n [attr.placeholder]=\"dateFormat\"\n [required]=\"startDateRequired\"\n [dateFormat]=\"dateFormat\"\n (blur)=\"onFieldBlur()\"\n skyDatepickerInput\n />\n </sky-datepicker>\n </sky-input-box>\n </div>\n\n <div class=\"sky-date-range-picker-form-group\" [hidden]=\"!showEndDatePicker\">\n <sky-input-box>\n <label\n class=\"sky-control-label\"\n [attr.for]=\"dateRangePickerId + '-end-date'\"\n [ngClass]=\"{ 'sky-control-label-required': endDateRequired }\"\n >\n {{ endDateLabelResourceKey | skyLibResources }}\n </label>\n\n <sky-datepicker>\n <input\n formControlName=\"endDate\"\n skyDatepickerInput\n [attr.aria-label]=\"endDateLabelResourceKey | skyLibResources\"\n [attr.id]=\"dateRangePickerId + '-end-date'\"\n [attr.placeholder]=\"dateFormat\"\n [dateFormat]=\"dateFormat\"\n [required]=\"endDateRequired\"\n (blur)=\"onFieldBlur()\"\n />\n </sky-datepicker>\n </sky-input-box>\n </div>\n</div>\n", styles: [".sky-date-range-picker{display:flex;margin-left:-5px;margin-right:-5px}.sky-date-range-picker-form-group{padding-left:5px;padding-right:5px}.sky-date-range-picker-form-group:last-child{margin-bottom:0}:host .sky-date-range-picker{flex-direction:column}:host .sky-date-range-picker-form-group{flex-basis:100%}:host-context(.sky-responsive-container-xs) .sky-date-range-picker,:host-context(.sky-responsive-container-sm) .sky-date-range-picker,:host-context(.sky-responsive-container-md) .sky-date-range-picker,:host-context(.sky-responsive-container-lg) .sky-date-range-picker{flex-direction:column}:host-context(.sky-responsive-container-xs) .sky-date-range-picker-form-group,:host-context(.sky-responsive-container-sm) .sky-date-range-picker-form-group,:host-context(.sky-responsive-container-md) .sky-date-range-picker-form-group,:host-context(.sky-responsive-container-lg) .sky-date-range-picker-form-group{flex-basis:100%}@media (min-width: 768px){:host .sky-date-range-picker{flex-direction:initial}:host .sky-date-range-picker-form-group{flex-basis:calc(100% / 3);margin-bottom:0}}:host-context(.sky-responsive-container-sm) .sky-date-range-picker,:host-context(.sky-responsive-container-md) .sky-date-range-picker,:host-context(.sky-responsive-container-lg) .sky-date-range-picker{flex-direction:initial}:host-context(.sky-responsive-container-sm) .sky-date-range-picker-form-group,:host-context(.sky-responsive-container-md) .sky-date-range-picker-form-group,:host-context(.sky-responsive-container-lg) .sky-date-range-picker-form-group{flex-basis:calc(100% / 3);margin-bottom:0}:host-context(.sky-theme-modern) .sky-date-range-picker-form-group{padding:0;margin:0 0 20px}@media (min-width: 768px){:host-context(.sky-theme-modern) .sky-date-range-picker-form-group{margin:0 20px 0 0}}.sky-theme-modern .sky-date-range-picker-form-group{padding:0;margin:0 0 20px}@media (min-width: 768px){.sky-theme-modern .sky-date-range-picker-form-group{margin:0 20px 0 0}}:host-context(.sky-theme-modern .sky-responsive-container-xs) .sky-date-range-picker-form-group{margin:0 0 20px}:host-context(.sky-theme-modern .sky-responsive-container-sm) .sky-date-range-picker-form-group,:host-context(.sky-theme-modern .sky-responsive-container-md) .sky-date-range-picker-form-group,:host-context(.sky-theme-modern .sky-responsive-container-lg) .sky-date-range-picker-form-group{margin:0 20px 0 0}\n"], components: [{ type: i2$1.λ10, selector: "sky-input-box", inputs: ["hasErrors", "disabled"] }, { type: SkyDatepickerComponent, selector: "sky-datepicker", inputs: ["pickerClass"], outputs: ["calendarDateRangeChange"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i2$2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { type: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2$2.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2$2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i2$2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: SkyDatepickerInputDirective, selector: "[skyDatepickerInput]", inputs: ["dateFormat", "disabled", "maxDate", "minDate", "skyDatepickerInput", "skyDatepickerNoValidate", "startingDay", "strict"] }, { type: i2$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }], pipes: { "skyLibResources": i3.SkyLibResourcesPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
4077
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyDateRangePickerComponent, decorators: [{
|
|
3639
4078
|
type: Component,
|
|
3640
4079
|
args: [{
|
|
3641
4080
|
selector: 'sky-date-range-picker',
|
|
@@ -3643,9 +4082,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImpo
|
|
|
3643
4082
|
styleUrls: ['./date-range-picker.component.scss'],
|
|
3644
4083
|
providers: [
|
|
3645
4084
|
SKY_DATE_RANGE_PICKER_VALUE_ACCESSOR,
|
|
3646
|
-
SKY_DATE_RANGE_PICKER_VALIDATOR
|
|
4085
|
+
SKY_DATE_RANGE_PICKER_VALIDATOR,
|
|
3647
4086
|
],
|
|
3648
|
-
changeDetection: ChangeDetectionStrategy.OnPush
|
|
4087
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
3649
4088
|
}]
|
|
3650
4089
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: SkyDateRangeService }, { type: i2$2.FormBuilder }, { type: i3.SkyAppLocaleProvider }, { type: i1.SkyAppWindowRef }, { type: i3$2.SkyThemeService, decorators: [{
|
|
3651
4090
|
type: Optional
|
|
@@ -3665,29 +4104,27 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImpo
|
|
|
3665
4104
|
|
|
3666
4105
|
class SkyDateRangePickerModule {
|
|
3667
4106
|
}
|
|
3668
|
-
SkyDateRangePickerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
3669
|
-
SkyDateRangePickerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.
|
|
4107
|
+
SkyDateRangePickerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyDateRangePickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
4108
|
+
SkyDateRangePickerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyDateRangePickerModule, declarations: [SkyDateRangePickerComponent], imports: [CommonModule,
|
|
3670
4109
|
FormsModule,
|
|
3671
4110
|
ReactiveFormsModule,
|
|
3672
4111
|
SkyI18nModule,
|
|
3673
4112
|
SkyDatepickerModule,
|
|
3674
4113
|
SkyDatetimeResourcesModule,
|
|
3675
4114
|
SkyInputBoxModule], exports: [SkyDateRangePickerComponent] });
|
|
3676
|
-
SkyDateRangePickerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.
|
|
4115
|
+
SkyDateRangePickerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyDateRangePickerModule, providers: [SkyDateRangeService], imports: [[
|
|
3677
4116
|
CommonModule,
|
|
3678
4117
|
FormsModule,
|
|
3679
4118
|
ReactiveFormsModule,
|
|
3680
4119
|
SkyI18nModule,
|
|
3681
4120
|
SkyDatepickerModule,
|
|
3682
4121
|
SkyDatetimeResourcesModule,
|
|
3683
|
-
SkyInputBoxModule
|
|
4122
|
+
SkyInputBoxModule,
|
|
3684
4123
|
]] });
|
|
3685
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
4124
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyDateRangePickerModule, decorators: [{
|
|
3686
4125
|
type: NgModule,
|
|
3687
4126
|
args: [{
|
|
3688
|
-
declarations: [
|
|
3689
|
-
SkyDateRangePickerComponent
|
|
3690
|
-
],
|
|
4127
|
+
declarations: [SkyDateRangePickerComponent],
|
|
3691
4128
|
imports: [
|
|
3692
4129
|
CommonModule,
|
|
3693
4130
|
FormsModule,
|
|
@@ -3695,11 +4132,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImpo
|
|
|
3695
4132
|
SkyI18nModule,
|
|
3696
4133
|
SkyDatepickerModule,
|
|
3697
4134
|
SkyDatetimeResourcesModule,
|
|
3698
|
-
SkyInputBoxModule
|
|
4135
|
+
SkyInputBoxModule,
|
|
3699
4136
|
],
|
|
3700
|
-
exports: [
|
|
3701
|
-
|
|
3702
|
-
]
|
|
4137
|
+
exports: [SkyDateRangePickerComponent],
|
|
4138
|
+
providers: [SkyDateRangeService],
|
|
3703
4139
|
}]
|
|
3704
4140
|
}] });
|
|
3705
4141
|
|
|
@@ -3707,12 +4143,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImpo
|
|
|
3707
4143
|
const SKY_TIMEPICKER_VALUE_ACCESSOR = {
|
|
3708
4144
|
provide: NG_VALUE_ACCESSOR,
|
|
3709
4145
|
useExisting: forwardRef(() => SkyTimepickerInputDirective),
|
|
3710
|
-
multi: true
|
|
4146
|
+
multi: true,
|
|
3711
4147
|
};
|
|
3712
4148
|
const SKY_TIMEPICKER_VALIDATOR = {
|
|
3713
4149
|
provide: NG_VALIDATORS,
|
|
3714
4150
|
useExisting: forwardRef(() => SkyTimepickerInputDirective),
|
|
3715
|
-
multi: true
|
|
4151
|
+
multi: true,
|
|
3716
4152
|
};
|
|
3717
4153
|
// tslint:enable
|
|
3718
4154
|
class SkyTimepickerInputDirective {
|
|
@@ -3778,14 +4214,15 @@ class SkyTimepickerInputDirective {
|
|
|
3778
4214
|
}
|
|
3779
4215
|
ngOnInit() {
|
|
3780
4216
|
this.renderer.addClass(this.elRef.nativeElement, 'sky-form-control');
|
|
3781
|
-
this.pickerChangedSubscription =
|
|
3782
|
-
.subscribe((newTime) => {
|
|
3783
|
-
|
|
3784
|
-
|
|
3785
|
-
|
|
4217
|
+
this.pickerChangedSubscription =
|
|
4218
|
+
this.skyTimepickerInput.selectedTimeChanged.subscribe((newTime) => {
|
|
4219
|
+
this.writeValue(newTime);
|
|
4220
|
+
this._onTouched();
|
|
4221
|
+
});
|
|
3786
4222
|
/* istanbul ignore else */
|
|
3787
4223
|
if (!this.elRef.nativeElement.getAttribute('aria-label')) {
|
|
3788
|
-
this.resourcesService
|
|
4224
|
+
this.resourcesService
|
|
4225
|
+
.getString('skyux_timepicker_input_default_label')
|
|
3789
4226
|
.subscribe((value) => {
|
|
3790
4227
|
this.renderer.setAttribute(this.elRef.nativeElement, 'aria-label', value);
|
|
3791
4228
|
});
|
|
@@ -3796,7 +4233,7 @@ class SkyTimepickerInputDirective {
|
|
|
3796
4233
|
/* istanbul ignore else */
|
|
3797
4234
|
if (this.control && this.control.parent) {
|
|
3798
4235
|
this.control.setValue(this.modelValue, {
|
|
3799
|
-
emitEvent: false
|
|
4236
|
+
emitEvent: false,
|
|
3800
4237
|
});
|
|
3801
4238
|
this.changeDetector.markForCheck();
|
|
3802
4239
|
}
|
|
@@ -3815,9 +4252,15 @@ class SkyTimepickerInputDirective {
|
|
|
3815
4252
|
onBlur() {
|
|
3816
4253
|
this._onTouched();
|
|
3817
4254
|
}
|
|
3818
|
-
registerOnChange(fn) {
|
|
3819
|
-
|
|
3820
|
-
|
|
4255
|
+
registerOnChange(fn) {
|
|
4256
|
+
this._onChange = fn;
|
|
4257
|
+
}
|
|
4258
|
+
registerOnTouched(fn) {
|
|
4259
|
+
this._onTouched = fn;
|
|
4260
|
+
}
|
|
4261
|
+
registerOnValidatorChange(fn) {
|
|
4262
|
+
this._validatorChange = fn;
|
|
4263
|
+
}
|
|
3821
4264
|
setDisabledState(isDisabled) {
|
|
3822
4265
|
this.disabled = isDisabled;
|
|
3823
4266
|
}
|
|
@@ -3835,9 +4278,9 @@ class SkyTimepickerInputDirective {
|
|
|
3835
4278
|
/* istanbul ignore next */
|
|
3836
4279
|
if (value.local === 'Invalid date') {
|
|
3837
4280
|
return {
|
|
3838
|
-
|
|
3839
|
-
invalid: control.value
|
|
3840
|
-
}
|
|
4281
|
+
skyTime: {
|
|
4282
|
+
invalid: control.value,
|
|
4283
|
+
},
|
|
3841
4284
|
};
|
|
3842
4285
|
}
|
|
3843
4286
|
return undefined;
|
|
@@ -3873,13 +4316,13 @@ class SkyTimepickerInputDirective {
|
|
|
3873
4316
|
this.returnFormat = currentFormat;
|
|
3874
4317
|
}
|
|
3875
4318
|
formatTime = {
|
|
3876
|
-
|
|
3877
|
-
|
|
3878
|
-
|
|
3879
|
-
|
|
3880
|
-
|
|
3881
|
-
|
|
3882
|
-
|
|
4319
|
+
hour: moment(time, currentFormat).hour(),
|
|
4320
|
+
minute: moment(time, currentFormat).minute(),
|
|
4321
|
+
meridie: moment(time, currentFormat).format('A'),
|
|
4322
|
+
timezone: parseInt(moment(time, currentFormat).format('Z'), 10),
|
|
4323
|
+
iso8601: moment(time, currentFormat).toDate(),
|
|
4324
|
+
local: moment(time, currentFormat).format(currentFormat),
|
|
4325
|
+
customFormat: this.returnFormat,
|
|
3883
4326
|
};
|
|
3884
4327
|
return formatTime;
|
|
3885
4328
|
}
|
|
@@ -3894,19 +4337,13 @@ class SkyTimepickerInputDirective {
|
|
|
3894
4337
|
}
|
|
3895
4338
|
}
|
|
3896
4339
|
}
|
|
3897
|
-
SkyTimepickerInputDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
3898
|
-
SkyTimepickerInputDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.
|
|
3899
|
-
|
|
3900
|
-
SKY_TIMEPICKER_VALIDATOR
|
|
3901
|
-
], usesOnChanges: true, ngImport: i0 });
|
|
3902
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: SkyTimepickerInputDirective, decorators: [{
|
|
4340
|
+
SkyTimepickerInputDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyTimepickerInputDirective, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i3.SkyLibResourcesService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
4341
|
+
SkyTimepickerInputDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.14", type: SkyTimepickerInputDirective, selector: "[skyTimepickerInput]", inputs: { skyTimepickerInput: "skyTimepickerInput", timeFormat: "timeFormat", returnFormat: "returnFormat", disabled: "disabled" }, host: { listeners: { "change": "onChange($event)", "blur": "onBlur()" } }, providers: [SKY_TIMEPICKER_VALUE_ACCESSOR, SKY_TIMEPICKER_VALIDATOR], usesOnChanges: true, ngImport: i0 });
|
|
4342
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyTimepickerInputDirective, decorators: [{
|
|
3903
4343
|
type: Directive,
|
|
3904
4344
|
args: [{
|
|
3905
4345
|
selector: '[skyTimepickerInput]',
|
|
3906
|
-
providers: [
|
|
3907
|
-
SKY_TIMEPICKER_VALUE_ACCESSOR,
|
|
3908
|
-
SKY_TIMEPICKER_VALIDATOR
|
|
3909
|
-
]
|
|
4346
|
+
providers: [SKY_TIMEPICKER_VALUE_ACCESSOR, SKY_TIMEPICKER_VALIDATOR],
|
|
3910
4347
|
}]
|
|
3911
4348
|
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i3.SkyLibResourcesService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { skyTimepickerInput: [{
|
|
3912
4349
|
type: Input
|
|
@@ -3972,10 +4409,10 @@ class SkyTimepickerComponent {
|
|
|
3972
4409
|
if (this.is8601) {
|
|
3973
4410
|
hourOffset = 0;
|
|
3974
4411
|
}
|
|
3975
|
-
hour = moment({
|
|
4412
|
+
hour = moment({ hour: setHour }).add(hourOffset, 'hours').hour();
|
|
3976
4413
|
this.activeTime = moment({
|
|
3977
|
-
|
|
3978
|
-
|
|
4414
|
+
hour: hour,
|
|
4415
|
+
minute: moment(this.activeTime).get('minute') + 0,
|
|
3979
4416
|
}).toDate();
|
|
3980
4417
|
this.selectedTimeChanged.emit(this.selectedTime);
|
|
3981
4418
|
}
|
|
@@ -4006,8 +4443,8 @@ class SkyTimepickerComponent {
|
|
|
4006
4443
|
}
|
|
4007
4444
|
set selectedMinute(minute) {
|
|
4008
4445
|
this.activeTime = moment({
|
|
4009
|
-
|
|
4010
|
-
|
|
4446
|
+
hour: moment(this.activeTime).get('hour') + 0,
|
|
4447
|
+
minute: minute,
|
|
4011
4448
|
}).toDate();
|
|
4012
4449
|
this.selectedTimeChanged.emit(this.selectedTime);
|
|
4013
4450
|
}
|
|
@@ -4032,8 +4469,9 @@ class SkyTimepickerComponent {
|
|
|
4032
4469
|
timezone: parseInt(moment(this.activeTime).format('Z'), 10),
|
|
4033
4470
|
iso8601: this.activeTime,
|
|
4034
4471
|
local: moment(this.activeTime).format(this.localeFormat),
|
|
4035
|
-
customFormat:
|
|
4036
|
-
? this.returnFormat
|
|
4472
|
+
customFormat: typeof this.returnFormat !== 'undefined'
|
|
4473
|
+
? this.returnFormat
|
|
4474
|
+
: this.localeFormat,
|
|
4037
4475
|
};
|
|
4038
4476
|
return time;
|
|
4039
4477
|
}
|
|
@@ -4061,7 +4499,7 @@ class SkyTimepickerComponent {
|
|
|
4061
4499
|
if (this.inputBoxHostService) {
|
|
4062
4500
|
this.inputBoxHostService.populate({
|
|
4063
4501
|
inputTemplate: this.inputTemplateRef,
|
|
4064
|
-
buttonsTemplate: this.triggerButtonTemplateRef
|
|
4502
|
+
buttonsTemplate: this.triggerButtonTemplateRef,
|
|
4065
4503
|
});
|
|
4066
4504
|
}
|
|
4067
4505
|
}
|
|
@@ -4093,8 +4531,7 @@ class SkyTimepickerComponent {
|
|
|
4093
4531
|
}
|
|
4094
4532
|
let data;
|
|
4095
4533
|
data = {
|
|
4096
|
-
|
|
4097
|
-
.map(function (x, i) {
|
|
4534
|
+
hours: Array.apply(undefined, Array(h)).map(function (x, i) {
|
|
4098
4535
|
if (format === 'hh') {
|
|
4099
4536
|
return ++i;
|
|
4100
4537
|
}
|
|
@@ -4106,12 +4543,11 @@ class SkyTimepickerComponent {
|
|
|
4106
4543
|
/* sanity check */
|
|
4107
4544
|
return 0;
|
|
4108
4545
|
}),
|
|
4109
|
-
|
|
4110
|
-
.map(function (x, i) {
|
|
4546
|
+
minutes: Array.apply(undefined, Array(m)).map(function (x, i) {
|
|
4111
4547
|
return i * minuteMultiplier;
|
|
4112
4548
|
}),
|
|
4113
|
-
|
|
4114
|
-
|
|
4549
|
+
localeFormat: localeFormat,
|
|
4550
|
+
minuteMultiplier: minuteMultiplier,
|
|
4115
4551
|
};
|
|
4116
4552
|
this.hours = data.hours;
|
|
4117
4553
|
this.minutes = data.minutes;
|
|
@@ -4165,7 +4601,7 @@ class SkyTimepickerComponent {
|
|
|
4165
4601
|
affixer.placementChange
|
|
4166
4602
|
.pipe(takeUntil(this.timepickerUnsubscribe))
|
|
4167
4603
|
.subscribe((change) => {
|
|
4168
|
-
this.isVisible =
|
|
4604
|
+
this.isVisible = change.placement !== null;
|
|
4169
4605
|
this.changeDetector.markForCheck();
|
|
4170
4606
|
});
|
|
4171
4607
|
affixer.affixTo(this.triggerButtonRef.nativeElement, {
|
|
@@ -4173,7 +4609,7 @@ class SkyTimepickerComponent {
|
|
|
4173
4609
|
enableAutoFit: true,
|
|
4174
4610
|
horizontalAlignment: 'right',
|
|
4175
4611
|
isSticky: true,
|
|
4176
|
-
placement: 'below'
|
|
4612
|
+
placement: 'below',
|
|
4177
4613
|
});
|
|
4178
4614
|
this.affixer = affixer;
|
|
4179
4615
|
}
|
|
@@ -4187,7 +4623,7 @@ class SkyTimepickerComponent {
|
|
|
4187
4623
|
createOverlay() {
|
|
4188
4624
|
const overlay = this.overlayService.create({
|
|
4189
4625
|
enableClose: false,
|
|
4190
|
-
enablePointerEvents: false
|
|
4626
|
+
enablePointerEvents: false,
|
|
4191
4627
|
});
|
|
4192
4628
|
overlay.backdropClick
|
|
4193
4629
|
.pipe(takeUntil(this.timepickerUnsubscribe))
|
|
@@ -4232,16 +4668,16 @@ class SkyTimepickerComponent {
|
|
|
4232
4668
|
(_a = this.overlayKeydownListner) === null || _a === void 0 ? void 0 : _a.unsubscribe();
|
|
4233
4669
|
}
|
|
4234
4670
|
}
|
|
4235
|
-
SkyTimepickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
4236
|
-
SkyTimepickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.
|
|
4237
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
4671
|
+
SkyTimepickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyTimepickerComponent, deps: [{ token: i1.SkyAffixService }, { token: i0.ChangeDetectorRef }, { token: i1.SkyCoreAdapterService }, { token: i1.SkyOverlayService }, { token: i2$1.SkyInputBoxHostService, optional: true }, { token: i3$2.SkyThemeService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
4672
|
+
SkyTimepickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.14", type: SkyTimepickerComponent, selector: "sky-timepicker", outputs: { selectedTimeChanged: "selectedTimeChanged" }, viewQueries: [{ propertyName: "timepickerRef", first: true, predicate: ["timepickerRef"], descendants: true, read: ElementRef }, { propertyName: "timepickerTemplateRef", first: true, predicate: ["timepickerTemplateRef"], descendants: true, read: TemplateRef }, { propertyName: "triggerButtonRef", first: true, predicate: ["triggerButtonRef"], descendants: true, read: ElementRef }, { propertyName: "inputTemplateRef", first: true, predicate: ["inputTemplateRef"], descendants: true, read: TemplateRef, static: true }, { propertyName: "triggerButtonTemplateRef", first: true, predicate: ["triggerButtonTemplateRef"], descendants: true, read: TemplateRef, static: true }], ngImport: i0, template: "<div class=\"sky-timepicker\">\n <ng-container *ngIf=\"!inputBoxHostService\">\n <div class=\"sky-input-group\">\n <ng-container *ngTemplateOutlet=\"inputTemplateRef\"></ng-container>\n <ng-container *ngTemplateOutlet=\"triggerButtonTemplateRef\"></ng-container>\n </div>\n </ng-container>\n</div>\n\n<ng-template #inputTemplateRef>\n <ng-content></ng-content>\n</ng-template>\n\n<ng-template #triggerButtonTemplateRef>\n <div class=\"sky-input-group-btn\">\n <button\n aria-haspopup=\"dialog\"\n class=\"sky-btn sky-btn-default sky-input-group-timepicker-btn\"\n type=\"button\"\n [attr.aria-controls]=\"isOpen ? timepickerId : null\"\n [attr.aria-expanded]=\"isOpen\"\n [attr.aria-label]=\"'skyux_timepicker_button_label' | skyLibResources\"\n [attr.id]=\"triggerButtonId\"\n [attr.title]=\"'skyux_timepicker_button_label' | skyLibResources\"\n [disabled]=\"disabled\"\n (click)=\"onTriggerButtonClick()\"\n #triggerButtonRef\n >\n <sky-icon *skyThemeIf=\"'default'\" icon=\"clock-o\" size=\"lg\"></sky-icon>\n <sky-icon\n *skyThemeIf=\"'modern'\"\n icon=\"clock\"\n size=\"lg\"\n iconType=\"skyux\"\n ></sky-icon>\n </button>\n </div>\n</ng-template>\n\n<ng-template #timepickerTemplateRef>\n <div\n class=\"sky-timepicker-container sky-shadow sky-box sky-elevation-4\"\n role=\"dialog\"\n [attr.aria-labelledby]=\"triggerButtonId\"\n [attr.id]=\"timepickerId\"\n [class.sky-timepicker-hidden]=\"!isVisible\"\n #timepickerRef\n >\n <div class=\"sky-timepicker-content\">\n <section\n class=\"sky-timepicker-column\"\n [ngClass]=\"{ 'sky-timepicker-24hour': is8601 }\"\n >\n <ol>\n <li *ngFor=\"let hour of hours\">\n <button\n name=\"hour\"\n type=\"button\"\n [ngClass]=\"{ 'sky-btn-active': selectedHour === hour }\"\n (click)=\"setTime($event)\"\n >\n {{ hour }}\n </button>\n </li>\n </ol>\n </section>\n <section class=\"sky-timepicker-column\">\n <ol>\n <li *ngFor=\"let minute of minutes\">\n <button\n name=\"minute\"\n type=\"button\"\n [ngClass]=\"{ 'sky-btn-active': selectedMinute === minute }\"\n (click)=\"setTime($event)\"\n >\n {{ '00'.substring(0, 2 - minute.toString().length) + minute }}\n </button>\n </li>\n </ol>\n </section>\n <section *ngIf=\"!is8601\" class=\"sky-timepicker-column\">\n <ol>\n <li>\n <button\n name=\"meridie\"\n type=\"button\"\n [ngClass]=\"{ 'sky-btn-active': selectedMeridies === 'AM' }\"\n (click)=\"setTime($event)\"\n >\n AM\n </button>\n </li>\n <li>\n <button\n name=\"meridie\"\n type=\"button\"\n [ngClass]=\"{ 'sky-btn-active': selectedMeridies === 'PM' }\"\n (click)=\"setTime($event)\"\n >\n PM\n </button>\n </li>\n </ol>\n </section>\n </div>\n <div class=\"sky-timepicker-footer\">\n <section class=\"sky-timepicker-column\">\n <button\n class=\"sky-btn sky-btn-primary\"\n type=\"button\"\n (click)=\"onCloseButtonCick()\"\n >\n {{ 'skyux_timepicker_close' | skyLibResources }}\n </button>\n </section>\n </div>\n </div>\n</ng-template>\n", styles: [".sky-timepicker-container{position:fixed;font-size:15px;padding:5px;background-color:#eeeeef;border-radius:5px}.sky-timepicker-container :last-child ol{display:flex;flex-direction:column;height:100%}.sky-timepicker-container :last-child ol li{border-bottom:1px solid #e2e3e4;flex:1}.sky-timepicker-column{margin:5px}.sky-timepicker-column ol{border-top:1px solid #e2e3e4;border-right:1px solid #e2e3e4;border-bottom:1px solid #e2e3e4;border-left:1px solid #e2e3e4;grid-column-gap:1px;column-gap:1px;columns:2;list-style-type:none;margin:0;padding:0}.sky-timepicker-column ol li{text-align:center;cursor:pointer;margin:0}.sky-timepicker-column ol li button{cursor:pointer}.sky-timepicker-column ol li button:focus{outline:thin dotted;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.sky-timepicker-column ol li button:hover{background-color:#eeeeef}.sky-timepicker-column ol li button:active{background-color:#e2e3e4}.sky-timepicker-column ol li button.sky-btn-active:hover{background-color:#c1e8fb}.sky-timepicker-column ol .sky-btn-active{background-color:#c1e8fb;box-shadow:inset 0 0 0 2px #00b4f1;border-radius:3px}.sky-timepicker-column.sky-timepicker-24hour ol{columns:4}.sky-timepicker-column.sky-timepicker-24hour ol li{border-bottom-width:0}.sky-timepicker-content{display:flex}.sky-timepicker-content button{background-color:#fff;border-width:0;padding:5px 15px;width:100%;height:100%}.sky-timepicker-footer{margin:0;padding:0 5px}.sky-timepicker-footer .sky-timepicker-column{margin-left:0;margin-right:0;width:100%}.sky-timepicker-hidden{visibility:hidden}.sky-timepicker-clock-icon-modern{display:none}.sky-theme-modern .sky-timepicker-clock-icon-default{display:none}.sky-theme-modern .sky-timepicker-clock-icon-modern{display:inline}.sky-theme-modern .sky-timepicker-container{background-color:#fff;border:solid 1px #cdcfd2;border-radius:6px;font-size:16px}.sky-theme-modern .sky-timepicker-container:focus-within{border:solid 2px #1870B8;padding:4px}.sky-theme-modern .sky-timepicker-container:last-child ol li{border-bottom:none}.sky-theme-modern .sky-timepicker-container .sky-timepicker-column ol .sky-btn-default{border-width:1px;border-color:transparent;padding:4px 6px;outline:none}.sky-theme-modern .sky-timepicker-container .sky-timepicker-column ol button:hover:not(.sky-btn-active){background-color:transparent}.sky-theme-modern .sky-timepicker-container .sky-timepicker-column ol .sky-btn-active,.sky-theme-modern .sky-timepicker-container .sky-timepicker-column ol button:hover{box-shadow:inset 0 0 0 1px #00b4f1;border-radius:6px}.sky-theme-modern .sky-timepicker-container .sky-timepicker-column ol button:active,.sky-theme-modern .sky-timepicker-container .sky-timepicker-column ol button:focus{outline:none;border-radius:6px;box-shadow:inset 0 0 0 2px #1870b8}.sky-theme-modern.sky-theme-mode-dark .sky-timepicker-container{color:#fbfcfe}.sky-theme-modern.sky-theme-mode-dark .sky-timepicker-container:not(:focus-within){border-color:#686c73}.sky-theme-modern.sky-theme-mode-dark .sky-timepicker-column ol{border-color:#686c73}.sky-theme-modern.sky-theme-mode-dark .sky-timepicker-column ol button{background-color:transparent;color:#fbfcfe}.sky-theme-modern.sky-theme-mode-dark .sky-timepicker-column ol .sky-btn-active{background-color:#009cd1}\n"], components: [{ type: i2.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i3$2.λ3, selector: "[skyThemeIf]", inputs: ["skyThemeIf"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "skyLibResources": i3.SkyLibResourcesPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
4673
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyTimepickerComponent, decorators: [{
|
|
4238
4674
|
type: Component,
|
|
4239
4675
|
args: [{
|
|
4240
4676
|
selector: 'sky-timepicker',
|
|
4241
4677
|
templateUrl: './timepicker.component.html',
|
|
4242
4678
|
styleUrls: ['./timepicker.component.scss'],
|
|
4243
4679
|
encapsulation: ViewEncapsulation.None,
|
|
4244
|
-
changeDetection: ChangeDetectionStrategy.OnPush
|
|
4680
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
4245
4681
|
}]
|
|
4246
4682
|
}], ctorParameters: function () { return [{ type: i1.SkyAffixService }, { type: i0.ChangeDetectorRef }, { type: i1.SkyCoreAdapterService }, { type: i1.SkyOverlayService }, { type: i2$1.SkyInputBoxHostService, decorators: [{
|
|
4247
4683
|
type: Optional
|
|
@@ -4252,60 +4688,55 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImpo
|
|
|
4252
4688
|
}], timepickerRef: [{
|
|
4253
4689
|
type: ViewChild,
|
|
4254
4690
|
args: ['timepickerRef', {
|
|
4255
|
-
read: ElementRef
|
|
4691
|
+
read: ElementRef,
|
|
4256
4692
|
}]
|
|
4257
4693
|
}], timepickerTemplateRef: [{
|
|
4258
4694
|
type: ViewChild,
|
|
4259
4695
|
args: ['timepickerTemplateRef', {
|
|
4260
|
-
read: TemplateRef
|
|
4696
|
+
read: TemplateRef,
|
|
4261
4697
|
}]
|
|
4262
4698
|
}], triggerButtonRef: [{
|
|
4263
4699
|
type: ViewChild,
|
|
4264
4700
|
args: ['triggerButtonRef', {
|
|
4265
|
-
read: ElementRef
|
|
4701
|
+
read: ElementRef,
|
|
4266
4702
|
}]
|
|
4267
4703
|
}], inputTemplateRef: [{
|
|
4268
4704
|
type: ViewChild,
|
|
4269
4705
|
args: ['inputTemplateRef', {
|
|
4270
4706
|
read: TemplateRef,
|
|
4271
|
-
static: true
|
|
4707
|
+
static: true,
|
|
4272
4708
|
}]
|
|
4273
4709
|
}], triggerButtonTemplateRef: [{
|
|
4274
4710
|
type: ViewChild,
|
|
4275
4711
|
args: ['triggerButtonTemplateRef', {
|
|
4276
4712
|
read: TemplateRef,
|
|
4277
|
-
static: true
|
|
4713
|
+
static: true,
|
|
4278
4714
|
}]
|
|
4279
4715
|
}] } });
|
|
4280
4716
|
|
|
4281
4717
|
class SkyTimepickerModule {
|
|
4282
4718
|
}
|
|
4283
|
-
SkyTimepickerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
4284
|
-
SkyTimepickerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.
|
|
4285
|
-
SkyTimepickerComponent], imports: [CommonModule,
|
|
4719
|
+
SkyTimepickerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyTimepickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
4720
|
+
SkyTimepickerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyTimepickerModule, declarations: [SkyTimepickerInputDirective, SkyTimepickerComponent], imports: [CommonModule,
|
|
4286
4721
|
SkyI18nModule,
|
|
4287
4722
|
SkyIconModule,
|
|
4288
4723
|
SkyDatetimeResourcesModule,
|
|
4289
4724
|
SkyAffixModule,
|
|
4290
4725
|
SkyOverlayModule,
|
|
4291
|
-
SkyThemeModule], exports: [SkyTimepickerInputDirective,
|
|
4292
|
-
|
|
4293
|
-
SkyTimepickerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: SkyTimepickerModule, imports: [[
|
|
4726
|
+
SkyThemeModule], exports: [SkyTimepickerInputDirective, SkyTimepickerComponent] });
|
|
4727
|
+
SkyTimepickerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyTimepickerModule, imports: [[
|
|
4294
4728
|
CommonModule,
|
|
4295
4729
|
SkyI18nModule,
|
|
4296
4730
|
SkyIconModule,
|
|
4297
4731
|
SkyDatetimeResourcesModule,
|
|
4298
4732
|
SkyAffixModule,
|
|
4299
4733
|
SkyOverlayModule,
|
|
4300
|
-
SkyThemeModule
|
|
4734
|
+
SkyThemeModule,
|
|
4301
4735
|
]] });
|
|
4302
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
4736
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyTimepickerModule, decorators: [{
|
|
4303
4737
|
type: NgModule,
|
|
4304
4738
|
args: [{
|
|
4305
|
-
declarations: [
|
|
4306
|
-
SkyTimepickerInputDirective,
|
|
4307
|
-
SkyTimepickerComponent
|
|
4308
|
-
],
|
|
4739
|
+
declarations: [SkyTimepickerInputDirective, SkyTimepickerComponent],
|
|
4309
4740
|
imports: [
|
|
4310
4741
|
CommonModule,
|
|
4311
4742
|
SkyI18nModule,
|
|
@@ -4313,12 +4744,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImpo
|
|
|
4313
4744
|
SkyDatetimeResourcesModule,
|
|
4314
4745
|
SkyAffixModule,
|
|
4315
4746
|
SkyOverlayModule,
|
|
4316
|
-
SkyThemeModule
|
|
4747
|
+
SkyThemeModule,
|
|
4317
4748
|
],
|
|
4318
|
-
exports: [
|
|
4319
|
-
SkyTimepickerInputDirective,
|
|
4320
|
-
SkyTimepickerComponent
|
|
4321
|
-
]
|
|
4749
|
+
exports: [SkyTimepickerInputDirective, SkyTimepickerComponent],
|
|
4322
4750
|
}]
|
|
4323
4751
|
}] });
|
|
4324
4752
|
|