@skyux/datetime 5.0.3 → 5.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/bundles/skyux-datetime-testing.umd.js +3 -1
  2. package/bundles/skyux-datetime-testing.umd.js.map +1 -1
  3. package/bundles/skyux-datetime.umd.js +927 -487
  4. package/bundles/skyux-datetime.umd.js.map +1 -1
  5. package/documentation.json +1641 -971
  6. package/esm2015/modules/date-pipe/date-format-utility.js +10 -10
  7. package/esm2015/modules/date-pipe/date-pipe.module.js +9 -30
  8. package/esm2015/modules/date-pipe/date.pipe.js +7 -6
  9. package/esm2015/modules/date-pipe/fuzzy-date.pipe.js +5 -5
  10. package/esm2015/modules/date-range-picker/date-range-picker.component.js +30 -30
  11. package/esm2015/modules/date-range-picker/date-range-picker.module.js +10 -14
  12. package/esm2015/modules/date-range-picker/date-range.service.js +7 -9
  13. package/esm2015/modules/date-range-picker/types/date-range-calculation.js +1 -1
  14. package/esm2015/modules/date-range-picker/types/date-range-calculator-config.js +1 -1
  15. package/esm2015/modules/date-range-picker/types/date-range-calculator-date-range-function.js +1 -1
  16. package/esm2015/modules/date-range-picker/types/date-range-calculator-id.js +1 -1
  17. package/esm2015/modules/date-range-picker/types/date-range-calculator-type.js +1 -1
  18. package/esm2015/modules/date-range-picker/types/date-range-calculator-validate-function.js +1 -1
  19. package/esm2015/modules/date-range-picker/types/date-range-calculator.js +2 -2
  20. package/esm2015/modules/date-range-picker/types/date-range-default-calculator-config.js +1 -1
  21. package/esm2015/modules/date-range-picker/types/date-range-default-calculator-configs.js +25 -25
  22. package/esm2015/modules/date-range-picker/types/date-range-relative-value.js +17 -17
  23. package/esm2015/modules/date-range-picker/types/date-range.js +1 -1
  24. package/esm2015/modules/datepicker/date-formatter.js +4 -3
  25. package/esm2015/modules/datepicker/datepicker-adapter.service.js +4 -4
  26. package/esm2015/modules/datepicker/datepicker-calendar-change.js +2 -0
  27. package/esm2015/modules/datepicker/datepicker-calendar-inner.component.js +42 -15
  28. package/esm2015/modules/datepicker/datepicker-calendar.component.js +24 -14
  29. package/esm2015/modules/datepicker/datepicker-config.service.js +5 -5
  30. package/esm2015/modules/datepicker/datepicker-custom-date.js +2 -0
  31. package/esm2015/modules/datepicker/datepicker-date.js +1 -1
  32. package/esm2015/modules/datepicker/datepicker-input-fuzzy.directive.js +41 -41
  33. package/esm2015/modules/datepicker/datepicker-input.directive.js +38 -39
  34. package/esm2015/modules/datepicker/datepicker.component.js +68 -17
  35. package/esm2015/modules/datepicker/datepicker.module.js +28 -13
  36. package/esm2015/modules/datepicker/datepicker.service.js +21 -0
  37. package/esm2015/modules/datepicker/daypicker-button.component.js +25 -0
  38. package/esm2015/modules/datepicker/daypicker-cell.component.js +128 -0
  39. package/esm2015/modules/datepicker/daypicker.component.js +111 -20
  40. package/esm2015/modules/datepicker/fuzzy-date.js +1 -1
  41. package/esm2015/modules/datepicker/fuzzy-date.service.js +55 -27
  42. package/esm2015/modules/datepicker/monthpicker.component.js +8 -10
  43. package/esm2015/modules/datepicker/yearpicker.component.js +17 -12
  44. package/esm2015/modules/shared/sky-datetime-resources.module.js +102 -15
  45. package/esm2015/modules/timepicker/timepicker.component.js +29 -30
  46. package/esm2015/modules/timepicker/timepicker.directive.js +37 -36
  47. package/esm2015/modules/timepicker/timepicker.interface.js +1 -1
  48. package/esm2015/modules/timepicker/timepicker.module.js +10 -18
  49. package/esm2015/public-api.js +4 -1
  50. package/esm2015/testing/datepicker-fixture.js +4 -2
  51. package/esm2015/testing/timepicker-fixture.js +1 -1
  52. package/fesm2015/skyux-datetime-testing.js +3 -1
  53. package/fesm2015/skyux-datetime-testing.js.map +1 -1
  54. package/fesm2015/skyux-datetime.js +905 -475
  55. package/fesm2015/skyux-datetime.js.map +1 -1
  56. package/modules/datepicker/datepicker-calendar-change.d.ts +24 -0
  57. package/modules/datepicker/datepicker-calendar-inner.component.d.ts +13 -3
  58. package/modules/datepicker/datepicker-calendar.component.d.ts +8 -2
  59. package/modules/datepicker/datepicker-custom-date.d.ts +21 -0
  60. package/modules/datepicker/datepicker-date.d.ts +2 -0
  61. package/modules/datepicker/datepicker.component.d.ts +14 -1
  62. package/modules/datepicker/datepicker.module.d.ts +11 -8
  63. package/modules/datepicker/datepicker.service.d.ts +15 -0
  64. package/modules/datepicker/daypicker-button.component.d.ts +16 -0
  65. package/modules/datepicker/daypicker-cell.component.d.ts +40 -0
  66. package/modules/datepicker/daypicker.component.d.ts +18 -3
  67. package/package.json +7 -7
  68. package/public-api.d.ts +3 -0
@@ -1,8 +1,8 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('rxjs'), require('rxjs/operators'), require('@skyux/i18n'), require('moment'), require('@angular/common'), require('@angular/forms'), require('@skyux/forms'), require('@skyux/core'), require('@skyux/indicators'), require('@skyux/theme')) :
3
- typeof define === 'function' && define.amd ? define('@skyux/datetime', ['exports', '@angular/core', 'rxjs', 'rxjs/operators', '@skyux/i18n', 'moment', '@angular/common', '@angular/forms', '@skyux/forms', '@skyux/core', '@skyux/indicators', '@skyux/theme'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.skyux = global.skyux || {}, global.skyux.datetime = {}), global.ng.core, global.rxjs, global.rxjs.operators, global.i3, global.moment, global.ng.common, global.ng.forms, global.i2$1, global.i1, global.i2, global.i3$2));
5
- })(this, (function (exports, i0, rxjs, operators, i3, moment, i3$1, i2$2, i2$1, i1, i2, i3$2) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('rxjs'), require('rxjs/operators'), require('@skyux/i18n'), require('moment'), require('@angular/common'), require('@angular/forms'), require('@skyux/forms'), require('@skyux/core'), require('@skyux/indicators'), require('@skyux/theme'), require('@skyux/popovers')) :
3
+ typeof define === 'function' && define.amd ? define('@skyux/datetime', ['exports', '@angular/core', 'rxjs', 'rxjs/operators', '@skyux/i18n', 'moment', '@angular/common', '@angular/forms', '@skyux/forms', '@skyux/core', '@skyux/indicators', '@skyux/theme', '@skyux/popovers'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.skyux = global.skyux || {}, global.skyux.datetime = {}), global.ng.core, global.rxjs, global.rxjs.operators, global.i3, global.moment, global.ng.common, global.ng.forms, global.i2$1, global.i1, global.i2, global.i3$2, global.i3$1));
5
+ })(this, (function (exports, i0, rxjs, operators, i3, moment, i5, i2$2, i2$1, i1, i2, i3$2, i3$1) { 'use strict';
6
6
 
7
7
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
8
 
@@ -27,12 +27,13 @@
27
27
  var i0__namespace = /*#__PURE__*/_interopNamespace(i0);
28
28
  var i3__namespace = /*#__PURE__*/_interopNamespace(i3);
29
29
  var moment__default = /*#__PURE__*/_interopDefaultLegacy(moment);
30
- var i3__namespace$1 = /*#__PURE__*/_interopNamespace(i3$1);
30
+ var i5__namespace = /*#__PURE__*/_interopNamespace(i5);
31
31
  var i2__namespace$2 = /*#__PURE__*/_interopNamespace(i2$2);
32
32
  var i2__namespace$1 = /*#__PURE__*/_interopNamespace(i2$1);
33
33
  var i1__namespace = /*#__PURE__*/_interopNamespace(i1);
34
34
  var i2__namespace = /*#__PURE__*/_interopNamespace(i2);
35
35
  var i3__namespace$2 = /*#__PURE__*/_interopNamespace(i3$2);
36
+ var i3__namespace$1 = /*#__PURE__*/_interopNamespace(i3$1);
36
37
 
37
38
  // This class is mostly ported from the Angular 4.x DatePipe in order to maintain the old
38
39
  var SkyDateFormatUtility = /** @class */ (function () {
@@ -63,14 +64,14 @@
63
64
  return SkyDateFormatUtility;
64
65
  }());
65
66
  SkyDateFormatUtility._ALIASES = {
66
- 'medium': 'yMMMdjms',
67
- 'short': 'yMdjm',
68
- 'fullDate': 'yMMMMEEEEd',
69
- 'longDate': 'yMMMMd',
70
- 'mediumDate': 'yMMMd',
71
- 'shortDate': 'yMd',
72
- 'mediumTime': 'jms',
73
- 'shortTime': 'jm'
67
+ medium: 'yMMMdjms',
68
+ short: 'yMdjm',
69
+ fullDate: 'yMMMMEEEEd',
70
+ longDate: 'yMMMMd',
71
+ mediumDate: 'yMMMd',
72
+ shortDate: 'yMd',
73
+ mediumTime: 'jms',
74
+ shortTime: 'jm',
74
75
  };
75
76
  function isBlank(obj) {
76
77
  return !obj;
@@ -95,7 +96,8 @@
95
96
  this.defaultFormat = 'short';
96
97
  this.defaultLocale = 'en-US';
97
98
  this.ngUnsubscribe = new rxjs.Subject();
98
- this.localeProvider.getLocaleInfo()
99
+ this.localeProvider
100
+ .getLocaleInfo()
99
101
  .pipe(operators.takeUntil(this.ngUnsubscribe))
100
102
  .subscribe(function (localeInfo) {
101
103
  _this.defaultLocale = localeInfo.locale;
@@ -128,13 +130,13 @@
128
130
  };
129
131
  return SkyDatePipe;
130
132
  }());
131
- SkyDatePipe.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: SkyDatePipe, deps: [{ token: i3__namespace.SkyAppLocaleProvider }], target: i0__namespace.ɵɵFactoryTarget.Pipe });
132
- SkyDatePipe.ɵpipe = i0__namespace.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: SkyDatePipe, name: "skyDate", pure: false });
133
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: SkyDatePipe, decorators: [{
133
+ SkyDatePipe.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0__namespace, type: SkyDatePipe, deps: [{ token: i3__namespace.SkyAppLocaleProvider }], target: i0__namespace.ɵɵFactoryTarget.Pipe });
134
+ SkyDatePipe.ɵpipe = i0__namespace.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0__namespace, type: SkyDatePipe, name: "skyDate", pure: false });
135
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0__namespace, type: SkyDatePipe, decorators: [{
134
136
  type: i0.Pipe,
135
137
  args: [{
136
138
  name: 'skyDate',
137
- pure: false
139
+ pure: false,
138
140
  }]
139
141
  }], ctorParameters: function () { return [{ type: i3__namespace.SkyAppLocaleProvider }]; } });
140
142
 
@@ -145,10 +147,93 @@
145
147
  * To update this file, simply rerun the command.
146
148
  */
147
149
  var RESOURCES = {
148
- 'EN-AU': { "skyux_date_range_picker_format_label_last_fiscal_year": { "message": "Last financial year" }, "skyux_date_range_picker_format_label_this_fiscal_year": { "message": "This financial year" }, "skyux_date_range_picker_format_label_next_fiscal_year": { "message": "Next financial year" } },
149
- 'EN-GB': { "skyux_date_range_picker_format_label_last_fiscal_year": { "message": "Last financial year" }, "skyux_date_range_picker_format_label_this_fiscal_year": { "message": "This financial year" }, "skyux_date_range_picker_format_label_next_fiscal_year": { "message": "Next financial year" } },
150
- 'EN-NZ': { "skyux_date_range_picker_format_label_last_fiscal_year": { "message": "Last financial year" }, "skyux_date_range_picker_format_label_this_fiscal_year": { "message": "This financial year" }, "skyux_date_range_picker_format_label_next_fiscal_year": { "message": "Next financial year" } },
151
- 'EN-US': { "skyux_date_field_default_label": { "message": "Date" }, "skyux_datepicker_trigger_button_label": { "message": "Select date" }, "skyux_timepicker_button_label": { "message": "Choose time" }, "skyux_timepicker_close": { "message": "Done" }, "skyux_timepicker_input_default_label": { "message": "Time" }, "skyux_date_range_picker_default_label": { "message": "Select a date range" }, "skyux_date_range_picker_format_label_specific_range": { "message": "Specific range" }, "skyux_date_range_picker_format_label_before": { "message": "Before" }, "skyux_date_range_picker_format_label_after": { "message": "After" }, "skyux_date_range_picker_format_label_any_time": { "message": "At any time" }, "skyux_date_range_picker_format_label_yesterday": { "message": "Yesterday" }, "skyux_date_range_picker_format_label_today": { "message": "Today" }, "skyux_date_range_picker_format_label_tomorrow": { "message": "Tomorrow" }, "skyux_date_range_picker_format_label_last_week": { "message": "Last week" }, "skyux_date_range_picker_format_label_this_week": { "message": "This week" }, "skyux_date_range_picker_format_label_next_week": { "message": "Next week" }, "skyux_date_range_picker_format_label_last_month": { "message": "Last month" }, "skyux_date_range_picker_format_label_this_month": { "message": "This month" }, "skyux_date_range_picker_format_label_next_month": { "message": "Next month" }, "skyux_date_range_picker_format_label_last_quarter": { "message": "Last quarter" }, "skyux_date_range_picker_format_label_this_quarter": { "message": "This quarter" }, "skyux_date_range_picker_format_label_next_quarter": { "message": "Next quarter" }, "skyux_date_range_picker_format_label_last_calendar_year": { "message": "Last calendar year" }, "skyux_date_range_picker_format_label_this_calendar_year": { "message": "This calendar year" }, "skyux_date_range_picker_format_label_next_calendar_year": { "message": "Next calendar year" }, "skyux_date_range_picker_format_label_last_fiscal_year": { "message": "Last fiscal year" }, "skyux_date_range_picker_format_label_this_fiscal_year": { "message": "This fiscal year" }, "skyux_date_range_picker_format_label_next_fiscal_year": { "message": "Next fiscal year" }, "skyux_date_range_picker_start_date_label": { "message": "From date" }, "skyux_date_range_picker_end_date_label": { "message": "To date" }, "skyux_date_range_picker_before_date_label": { "message": "Before date" }, "skyux_date_range_picker_after_date_label": { "message": "After date" } },
150
+ 'EN-AU': {
151
+ skyux_date_range_picker_format_label_last_fiscal_year: {
152
+ message: 'Last financial year',
153
+ },
154
+ skyux_date_range_picker_format_label_this_fiscal_year: {
155
+ message: 'This financial year',
156
+ },
157
+ skyux_date_range_picker_format_label_next_fiscal_year: {
158
+ message: 'Next financial year',
159
+ },
160
+ },
161
+ 'EN-GB': {
162
+ skyux_date_range_picker_format_label_last_fiscal_year: {
163
+ message: 'Last financial year',
164
+ },
165
+ skyux_date_range_picker_format_label_this_fiscal_year: {
166
+ message: 'This financial year',
167
+ },
168
+ skyux_date_range_picker_format_label_next_fiscal_year: {
169
+ message: 'Next financial year',
170
+ },
171
+ },
172
+ 'EN-NZ': {
173
+ skyux_date_range_picker_format_label_last_fiscal_year: {
174
+ message: 'Last financial year',
175
+ },
176
+ skyux_date_range_picker_format_label_this_fiscal_year: {
177
+ message: 'This financial year',
178
+ },
179
+ skyux_date_range_picker_format_label_next_fiscal_year: {
180
+ message: 'Next financial year',
181
+ },
182
+ },
183
+ 'EN-US': {
184
+ skyux_date_field_default_label: { message: 'Date' },
185
+ skyux_datepicker_trigger_button_label: { message: 'Select date' },
186
+ skyux_timepicker_button_label: { message: 'Choose time' },
187
+ skyux_timepicker_close: { message: 'Done' },
188
+ skyux_timepicker_input_default_label: { message: 'Time' },
189
+ skyux_date_range_picker_default_label: { message: 'Select a date range' },
190
+ skyux_date_range_picker_format_label_specific_range: {
191
+ message: 'Specific range',
192
+ },
193
+ skyux_date_range_picker_format_label_before: { message: 'Before' },
194
+ skyux_date_range_picker_format_label_after: { message: 'After' },
195
+ skyux_date_range_picker_format_label_any_time: { message: 'At any time' },
196
+ skyux_date_range_picker_format_label_yesterday: { message: 'Yesterday' },
197
+ skyux_date_range_picker_format_label_today: { message: 'Today' },
198
+ skyux_date_range_picker_format_label_tomorrow: { message: 'Tomorrow' },
199
+ skyux_date_range_picker_format_label_last_week: { message: 'Last week' },
200
+ skyux_date_range_picker_format_label_this_week: { message: 'This week' },
201
+ skyux_date_range_picker_format_label_next_week: { message: 'Next week' },
202
+ skyux_date_range_picker_format_label_last_month: { message: 'Last month' },
203
+ skyux_date_range_picker_format_label_this_month: { message: 'This month' },
204
+ skyux_date_range_picker_format_label_next_month: { message: 'Next month' },
205
+ skyux_date_range_picker_format_label_last_quarter: {
206
+ message: 'Last quarter',
207
+ },
208
+ skyux_date_range_picker_format_label_this_quarter: {
209
+ message: 'This quarter',
210
+ },
211
+ skyux_date_range_picker_format_label_next_quarter: {
212
+ message: 'Next quarter',
213
+ },
214
+ skyux_date_range_picker_format_label_last_calendar_year: {
215
+ message: 'Last calendar year',
216
+ },
217
+ skyux_date_range_picker_format_label_this_calendar_year: {
218
+ message: 'This calendar year',
219
+ },
220
+ skyux_date_range_picker_format_label_next_calendar_year: {
221
+ message: 'Next calendar year',
222
+ },
223
+ skyux_date_range_picker_format_label_last_fiscal_year: {
224
+ message: 'Last fiscal year',
225
+ },
226
+ skyux_date_range_picker_format_label_this_fiscal_year: {
227
+ message: 'This fiscal year',
228
+ },
229
+ skyux_date_range_picker_format_label_next_fiscal_year: {
230
+ message: 'Next fiscal year',
231
+ },
232
+ skyux_date_range_picker_start_date_label: { message: 'From date' },
233
+ skyux_date_range_picker_end_date_label: { message: 'To date' },
234
+ skyux_date_range_picker_before_date_label: { message: 'Before date' },
235
+ skyux_date_range_picker_after_date_label: { message: 'After date' },
236
+ },
152
237
  };
153
238
  var SkyDatetimeResourcesProvider = /** @class */ (function () {
154
239
  function SkyDatetimeResourcesProvider() {
@@ -166,22 +251,26 @@
166
251
  }
167
252
  return SkyDatetimeResourcesModule;
168
253
  }());
169
- SkyDatetimeResourcesModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: SkyDatetimeResourcesModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
170
- SkyDatetimeResourcesModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: SkyDatetimeResourcesModule, exports: [i3.SkyI18nModule] });
171
- SkyDatetimeResourcesModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: SkyDatetimeResourcesModule, providers: [{
254
+ SkyDatetimeResourcesModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0__namespace, type: SkyDatetimeResourcesModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
255
+ SkyDatetimeResourcesModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0__namespace, type: SkyDatetimeResourcesModule, exports: [i3.SkyI18nModule] });
256
+ SkyDatetimeResourcesModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0__namespace, type: SkyDatetimeResourcesModule, providers: [
257
+ {
172
258
  provide: i3.SKY_LIB_RESOURCES_PROVIDERS,
173
259
  useClass: SkyDatetimeResourcesProvider,
174
- multi: true
175
- }], imports: [i3.SkyI18nModule] });
176
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: SkyDatetimeResourcesModule, decorators: [{
260
+ multi: true,
261
+ },
262
+ ], imports: [i3.SkyI18nModule] });
263
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0__namespace, type: SkyDatetimeResourcesModule, decorators: [{
177
264
  type: i0.NgModule,
178
265
  args: [{
179
266
  exports: [i3.SkyI18nModule],
180
- providers: [{
267
+ providers: [
268
+ {
181
269
  provide: i3.SKY_LIB_RESOURCES_PROVIDERS,
182
270
  useClass: SkyDatetimeResourcesProvider,
183
- multi: true
184
- }]
271
+ multi: true,
272
+ },
273
+ ],
185
274
  }]
186
275
  }] });
187
276
 
@@ -193,7 +282,8 @@
193
282
  var _this = this;
194
283
  this.localeProvider = localeProvider;
195
284
  this.ngUnsubscribe = new rxjs.Subject();
196
- this.localeProvider.getLocaleInfo()
285
+ this.localeProvider
286
+ .getLocaleInfo()
197
287
  .pipe(operators.takeUntil(this.ngUnsubscribe))
198
288
  .subscribe(function (localeInfo) {
199
289
  _this.currentLocale = localeInfo.locale;
@@ -268,7 +358,7 @@
268
358
  return;
269
359
  }
270
360
  var year = fuzzyDate.year || this.getDefaultYear(fuzzyDate);
271
- var month = fuzzyDate.month > 0 ? (fuzzyDate.month - 1) : 0;
361
+ var month = fuzzyDate.month > 0 ? fuzzyDate.month - 1 : 0;
272
362
  var day = fuzzyDate.day || 1;
273
363
  return moment__default["default"]([year, month, day]);
274
364
  };
@@ -287,7 +377,7 @@
287
377
  var dateComponents = [
288
378
  { value: fuzzyDate.year || 0, index: dateFormatIndexes.yearIndex },
289
379
  { value: fuzzyDate.month || 0, index: dateFormatIndexes.monthIndex },
290
- { value: fuzzyDate.day || 0, index: dateFormatIndexes.dayIndex }
380
+ { value: fuzzyDate.day || 0, index: dateFormatIndexes.dayIndex },
291
381
  ];
292
382
  dateComponents.sort(function (a, b) { return a.index - b.index; });
293
383
  dateComponents.forEach(function (component) {
@@ -342,18 +432,33 @@
342
432
  // is the month. Otherwise, we can assume the input is mm/dd or mm/yy (2-digit year).
343
433
  year = this.get4DigitYearFromDateString(date);
344
434
  if (year) {
345
- month = dateComponents[0] === year.toString() ? dateComponents[1] : dateComponents[0];
435
+ month =
436
+ dateComponents[0] === year.toString()
437
+ ? dateComponents[1]
438
+ : dateComponents[0];
346
439
  }
347
440
  else {
348
441
  if (indexes.dayIndex > -1) {
349
442
  // mm/dd
350
- month = (indexes.monthIndex < indexes.dayIndex) ? dateComponents[0] : dateComponents[1];
351
- day = (month === dateComponents[1]) ? dateComponents[0] : dateComponents[1];
443
+ month =
444
+ indexes.monthIndex < indexes.dayIndex
445
+ ? dateComponents[0]
446
+ : dateComponents[1];
447
+ day =
448
+ month === dateComponents[1]
449
+ ? dateComponents[0]
450
+ : dateComponents[1];
352
451
  }
353
452
  else {
354
453
  // mm/yy
355
- month = (indexes.monthIndex < indexes.yearIndex) ? dateComponents[0] : dateComponents[1];
356
- year = (month === dateComponents[1]) ? dateComponents[0] : dateComponents[1];
454
+ month =
455
+ indexes.monthIndex < indexes.yearIndex
456
+ ? dateComponents[0]
457
+ : dateComponents[1];
458
+ year =
459
+ month === dateComponents[1]
460
+ ? dateComponents[0]
461
+ : dateComponents[1];
357
462
  }
358
463
  }
359
464
  break;
@@ -372,14 +477,21 @@
372
477
  // Check if day is valid.
373
478
  if (day) {
374
479
  day = parseInt(day, 10);
375
- var fuzzyMoment = this.getMomentFromFuzzyDate({ month: month, day: day, year: year });
480
+ var fuzzyMoment = this.getMomentFromFuzzyDate({
481
+ month: month,
482
+ day: day,
483
+ year: year,
484
+ });
376
485
  if (isNaN(day) || !fuzzyMoment.isValid()) {
377
486
  return;
378
487
  }
379
488
  }
380
489
  }
381
490
  if (year) {
382
- year = year.toString().length === 2 ? moment__default["default"].parseTwoDigitYear(year) : parseInt(year.toString(), 10);
491
+ year =
492
+ year.toString().length === 2
493
+ ? moment__default["default"].parseTwoDigitYear(year)
494
+ : parseInt(year.toString(), 10);
383
495
  if (isNaN(year) || year.toString().length !== 4) {
384
496
  return;
385
497
  }
@@ -387,7 +499,7 @@
387
499
  return {
388
500
  month: month,
389
501
  day: day,
390
- year: year
502
+ year: year,
391
503
  };
392
504
  };
393
505
  SkyFuzzyDateService.prototype.getFuzzyDateRange = function (startFuzzyDate, endFuzzyDate) {
@@ -397,7 +509,10 @@
397
509
  var months;
398
510
  var years;
399
511
  var valid = false;
400
- if (startFuzzyDate && startFuzzyDate.year && endFuzzyDate && endFuzzyDate.year) {
512
+ if (startFuzzyDate &&
513
+ startFuzzyDate.year &&
514
+ endFuzzyDate &&
515
+ endFuzzyDate.year) {
401
516
  start = this.getMomentFromFuzzyDate(startFuzzyDate);
402
517
  end = this.getMomentFromFuzzyDate(endFuzzyDate);
403
518
  years = end.diff(start, 'years');
@@ -409,7 +524,7 @@
409
524
  years: years,
410
525
  months: months,
411
526
  days: days,
412
- valid: valid
527
+ valid: valid,
413
528
  };
414
529
  };
415
530
  SkyFuzzyDateService.prototype.getCurrentFuzzyDate = function () {
@@ -417,7 +532,7 @@
417
532
  return {
418
533
  day: currentDate.date(),
419
534
  month: currentDate.month() + 1,
420
- year: currentDate.year()
535
+ year: currentDate.year(),
421
536
  };
422
537
  };
423
538
  SkyFuzzyDateService.prototype.getMostRecentLeapYear = function () {
@@ -456,7 +571,7 @@
456
571
  }
457
572
  };
458
573
  SkyFuzzyDateService.prototype.isLeapYear = function (year) {
459
- return ((year % 4 === 0) && (year % 100 !== 0)) || (year % 400 === 0);
574
+ return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;
460
575
  };
461
576
  SkyFuzzyDateService.prototype.getMonthNumber = function (month) {
462
577
  var returnValue;
@@ -496,7 +611,7 @@
496
611
  return {
497
612
  yearIndex: dateFormat.indexOf('y'),
498
613
  monthIndex: dateFormat.indexOf('m'),
499
- dayIndex: dateFormat.indexOf('d')
614
+ dayIndex: dateFormat.indexOf('d'),
500
615
  };
501
616
  };
502
617
  // Returns the index of each of the date components in the provided string (month, day, year).
@@ -512,11 +627,13 @@
512
627
  if (dateFormatIndexes.dayIndex > -1) {
513
628
  dateComponentIndexes.push(dateFormatIndexes.dayIndex);
514
629
  }
515
- dateComponentIndexes.sort(function (a, b) { return a - b; });
630
+ dateComponentIndexes.sort(function (a, b) {
631
+ return a - b;
632
+ });
516
633
  return {
517
634
  yearIndex: dateComponentIndexes.indexOf(dateFormatIndexes.yearIndex),
518
635
  monthIndex: dateComponentIndexes.indexOf(dateFormatIndexes.monthIndex),
519
- dayIndex: dateComponentIndexes.indexOf(dateFormatIndexes.dayIndex)
636
+ dayIndex: dateComponentIndexes.indexOf(dateFormatIndexes.dayIndex),
520
637
  };
521
638
  };
522
639
  /**
@@ -546,12 +663,12 @@
546
663
  };
547
664
  return SkyFuzzyDateService;
548
665
  }());
549
- SkyFuzzyDateService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: SkyFuzzyDateService, deps: [{ token: i3__namespace.SkyAppLocaleProvider }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
550
- SkyFuzzyDateService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: SkyFuzzyDateService, providedIn: 'root' });
551
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: SkyFuzzyDateService, decorators: [{
666
+ SkyFuzzyDateService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0__namespace, type: SkyFuzzyDateService, deps: [{ token: i3__namespace.SkyAppLocaleProvider }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
667
+ SkyFuzzyDateService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0__namespace, type: SkyFuzzyDateService, providedIn: 'root' });
668
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0__namespace, type: SkyFuzzyDateService, decorators: [{
552
669
  type: i0.Injectable,
553
670
  args: [{
554
- providedIn: 'root'
671
+ providedIn: 'root',
555
672
  }]
556
673
  }], ctorParameters: function () { return [{ type: i3__namespace.SkyAppLocaleProvider }]; } });
557
674
 
@@ -589,13 +706,13 @@
589
706
  };
590
707
  return SkyFuzzyDatePipe;
591
708
  }());
592
- SkyFuzzyDatePipe.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: SkyFuzzyDatePipe, deps: [{ token: SkyFuzzyDateService }], target: i0__namespace.ɵɵFactoryTarget.Pipe });
593
- SkyFuzzyDatePipe.ɵpipe = i0__namespace.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: SkyFuzzyDatePipe, name: "skyFuzzyDate", pure: false });
594
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: SkyFuzzyDatePipe, decorators: [{
709
+ SkyFuzzyDatePipe.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0__namespace, type: SkyFuzzyDatePipe, deps: [{ token: SkyFuzzyDateService }], target: i0__namespace.ɵɵFactoryTarget.Pipe });
710
+ SkyFuzzyDatePipe.ɵpipe = i0__namespace.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0__namespace, type: SkyFuzzyDatePipe, name: "skyFuzzyDate", pure: false });
711
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0__namespace, type: SkyFuzzyDatePipe, decorators: [{
595
712
  type: i0.Pipe,
596
713
  args: [{
597
714
  name: 'skyFuzzyDate',
598
- pure: false
715
+ pure: false,
599
716
  }]
600
717
  }], ctorParameters: function () { return [{ type: SkyFuzzyDateService }]; } });
601
718
 
@@ -604,40 +721,76 @@
604
721
  }
605
722
  return SkyDatePipeModule;
606
723
  }());
607
- SkyDatePipeModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: SkyDatePipeModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
608
- SkyDatePipeModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: SkyDatePipeModule, declarations: [SkyDatePipe,
609
- SkyFuzzyDatePipe], imports: [i3$1.CommonModule,
610
- SkyDatetimeResourcesModule], exports: [SkyDatePipe,
611
- SkyFuzzyDatePipe] });
612
- SkyDatePipeModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: SkyDatePipeModule, providers: [
613
- SkyDatePipe,
614
- SkyFuzzyDatePipe
615
- ], imports: [[
616
- i3$1.CommonModule,
617
- SkyDatetimeResourcesModule
618
- ]] });
619
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: SkyDatePipeModule, decorators: [{
724
+ SkyDatePipeModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0__namespace, type: SkyDatePipeModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
725
+ SkyDatePipeModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0__namespace, type: SkyDatePipeModule, declarations: [SkyDatePipe, SkyFuzzyDatePipe], imports: [i5.CommonModule, SkyDatetimeResourcesModule], exports: [SkyDatePipe, SkyFuzzyDatePipe] });
726
+ SkyDatePipeModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0__namespace, type: SkyDatePipeModule, providers: [SkyDatePipe, SkyFuzzyDatePipe], imports: [[i5.CommonModule, SkyDatetimeResourcesModule]] });
727
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0__namespace, type: SkyDatePipeModule, decorators: [{
620
728
  type: i0.NgModule,
621
729
  args: [{
622
- declarations: [
623
- SkyDatePipe,
624
- SkyFuzzyDatePipe
625
- ],
626
- providers: [
627
- SkyDatePipe,
628
- SkyFuzzyDatePipe
629
- ],
630
- imports: [
631
- i3$1.CommonModule,
632
- SkyDatetimeResourcesModule
633
- ],
634
- exports: [
635
- SkyDatePipe,
636
- SkyFuzzyDatePipe
637
- ]
730
+ declarations: [SkyDatePipe, SkyFuzzyDatePipe],
731
+ providers: [SkyDatePipe, SkyFuzzyDatePipe],
732
+ imports: [i5.CommonModule, SkyDatetimeResourcesModule],
733
+ exports: [SkyDatePipe, SkyFuzzyDatePipe],
638
734
  }]
639
735
  }] });
640
736
 
737
+ /**
738
+ * Represents the calculator.
739
+ */
740
+ var SkyDateRangeCalculator = /** @class */ (function () {
741
+ function SkyDateRangeCalculator(
742
+ /**
743
+ * Provides a calculator ID to specify calculator objects that represent date ranges.
744
+ */
745
+ calculatorId, config) {
746
+ this.calculatorId = calculatorId;
747
+ this.config = config;
748
+ this.type = config.type;
749
+ this.shortDescription = config.shortDescription;
750
+ }
751
+ /**
752
+ * Gets the current value of the calculator.
753
+ * @param startDateInput The start date.
754
+ * @param endDateInput The end date.
755
+ */
756
+ SkyDateRangeCalculator.prototype.getValue = function (startDateInput, endDateInput) {
757
+ var result = this.config.getValue(startDateInput, endDateInput);
758
+ /* tslint:disable:no-null-keyword */
759
+ // (Angular form controls use null for the "empty" value.)
760
+ var startDate = null;
761
+ if (result.startDate instanceof Date) {
762
+ startDate = this.parseDateWithoutTime(result.startDate);
763
+ }
764
+ var endDate = null;
765
+ if (result.endDate instanceof Date) {
766
+ endDate = this.parseDateWithoutTime(result.endDate);
767
+ }
768
+ /* tslint:enable */
769
+ return {
770
+ calculatorId: this.calculatorId,
771
+ startDate: startDate,
772
+ endDate: endDate,
773
+ };
774
+ };
775
+ /**
776
+ * Performs synchronous validation against the control.
777
+ */
778
+ SkyDateRangeCalculator.prototype.validate = function (value) {
779
+ if (!this.config.validate) {
780
+ return;
781
+ }
782
+ return this.config.validate(value);
783
+ };
784
+ /**
785
+ * Get a date object without time information.
786
+ * See: https://stackoverflow.com/a/38050824/6178885
787
+ */
788
+ SkyDateRangeCalculator.prototype.parseDateWithoutTime = function (date) {
789
+ return new Date(date.getFullYear(), date.getMonth(), date.getDate());
790
+ };
791
+ return SkyDateRangeCalculator;
792
+ }());
793
+
641
794
  /**
642
795
  * `SkyDateRangeCalculatorId` values specify calculator objects that return
643
796
  * two `Date` objects to represent date ranges. The values populate the options
@@ -805,9 +958,9 @@
805
958
  };
806
959
  return SkyDatepickerAdapterService;
807
960
  }());
808
- SkyDatepickerAdapterService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: SkyDatepickerAdapterService, deps: [{ token: i0__namespace.Renderer2 }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
809
- SkyDatepickerAdapterService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: SkyDatepickerAdapterService });
810
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: SkyDatepickerAdapterService, decorators: [{
961
+ SkyDatepickerAdapterService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0__namespace, type: SkyDatepickerAdapterService, deps: [{ token: i0__namespace.Renderer2 }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
962
+ SkyDatepickerAdapterService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0__namespace, type: SkyDatepickerAdapterService });
963
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0__namespace, type: SkyDatepickerAdapterService, decorators: [{
811
964
  type: i0.Injectable
812
965
  }], ctorParameters: function () { return [{ type: i0__namespace.Renderer2 }]; } });
813
966
 
@@ -825,7 +978,8 @@
825
978
  */
826
979
  SkyDateFormatter.getPreferredShortDateFormat = function () {
827
980
  /* istanbul ignore next */
828
- return moment__default["default"].localeData().longDateFormat('L') || SkyDateFormatter.defaultShortDateFormat;
981
+ return (moment__default["default"].localeData().longDateFormat('L') ||
982
+ SkyDateFormatter.defaultShortDateFormat);
829
983
  };
830
984
  SkyDateFormatter.prototype.format = function (date, format) {
831
985
  return moment__default["default"](date.getTime()).format(format);
@@ -887,8 +1041,9 @@
887
1041
  37: 'left',
888
1042
  38: 'up',
889
1043
  39: 'right',
890
- 40: 'down'
1044
+ 40: 'down',
891
1045
  };
1046
+ this.ngUnsubscribe = new rxjs.Subject();
892
1047
  }
893
1048
  Object.defineProperty(SkyDatepickerCalendarInnerComponent.prototype, "selectedDate", {
894
1049
  get: function () {
@@ -914,6 +1069,10 @@
914
1069
  SkyDatepickerCalendarInnerComponent.prototype.ngOnChanges = function (changes) {
915
1070
  this.refreshView();
916
1071
  };
1072
+ SkyDatepickerCalendarInnerComponent.prototype.ngOnDestroy = function () {
1073
+ this.ngUnsubscribe.next();
1074
+ this.ngUnsubscribe.complete();
1075
+ };
917
1076
  SkyDatepickerCalendarInnerComponent.prototype.setCompareHandler = function (handler, type) {
918
1077
  if (type === 'day') {
919
1078
  this.compareHandlerDay = handler;
@@ -1017,6 +1176,7 @@
1017
1176
  }
1018
1177
  };
1019
1178
  SkyDatepickerCalendarInnerComponent.prototype.createDateObject = function (date, format, isSecondary, id) {
1179
+ var customDateMatch = this.getCustomDate(date);
1020
1180
  var dateObject = {
1021
1181
  date: new Date(date.getFullYear(), date.getMonth(), date.getDate()),
1022
1182
  label: this.dateFilter(date, format),
@@ -1024,7 +1184,9 @@
1024
1184
  disabled: this.isDisabled(date),
1025
1185
  current: this.compare(date, new Date()) === 0,
1026
1186
  secondary: isSecondary,
1027
- uid: id
1187
+ uid: id,
1188
+ keyDate: customDateMatch ? customDateMatch.keyDate : undefined,
1189
+ keyDateText: customDateMatch ? customDateMatch.keyDateText : [],
1028
1190
  };
1029
1191
  return dateObject;
1030
1192
  };
@@ -1065,7 +1227,8 @@
1065
1227
  }
1066
1228
  }
1067
1229
  else {
1068
- this.datepickerMode = this.modes[this.modes.indexOf(this.datepickerMode) - 1];
1230
+ this.datepickerMode =
1231
+ this.modes[this.modes.indexOf(this.datepickerMode) - 1];
1069
1232
  this.calendarModeChange.emit(this.datepickerMode);
1070
1233
  }
1071
1234
  this.refreshView();
@@ -1089,8 +1252,8 @@
1089
1252
  /* istanbul ignore else */
1090
1253
  /* sanity check */
1091
1254
  if (expectedStep) {
1092
- var year = this.activeDate.getFullYear() + (direction * (expectedStep.years || 0));
1093
- var month = this.activeDate.getMonth() + (direction * (expectedStep.months || 0));
1255
+ var year = this.activeDate.getFullYear() + direction * (expectedStep.years || 0);
1256
+ var month = this.activeDate.getMonth() + direction * (expectedStep.months || 0);
1094
1257
  this.activeDate = new Date(year, month, 1);
1095
1258
  this.refreshView();
1096
1259
  }
@@ -1107,28 +1270,45 @@
1107
1270
  /* sanity check */
1108
1271
  if (!(direction === 1 && this.datepickerMode === this.maxMode) &&
1109
1272
  !(this.datepickerMode === this.minMode && direction === -1)) {
1110
- this.datepickerMode = this.modes[this.modes.indexOf(this.datepickerMode) + direction];
1273
+ this.datepickerMode =
1274
+ this.modes[this.modes.indexOf(this.datepickerMode) + direction];
1111
1275
  this.calendarModeChange.emit(this.datepickerMode);
1112
1276
  this.refreshView();
1113
1277
  }
1114
1278
  };
1279
+ /**
1280
+ * Date is disabled if it meets any of these criteria:
1281
+ * 1. Date falls outside the min or max dates set by the SkyDatepickerConfigService.
1282
+ * 2. Date is marked as disabled in the customDates array.
1283
+ */
1115
1284
  SkyDatepickerCalendarInnerComponent.prototype.isDisabled = function (date) {
1116
- return ((this.minDate && this.compare(date, this.minDate) < 0)
1117
- || (this.maxDate && this.compare(date, this.maxDate) > 0));
1285
+ var customDate = this.getCustomDate(date);
1286
+ return ((this.minDate && this.compare(date, this.minDate) < 0) ||
1287
+ (this.maxDate && this.compare(date, this.maxDate) > 0) ||
1288
+ (customDate && customDate.disabled));
1289
+ };
1290
+ SkyDatepickerCalendarInnerComponent.prototype.getCustomDate = function (date) {
1291
+ if (this.customDates) {
1292
+ return this.customDates.find(function (customDate) {
1293
+ return customDate.date.getTime() === date.getTime();
1294
+ });
1295
+ }
1118
1296
  };
1119
1297
  return SkyDatepickerCalendarInnerComponent;
1120
1298
  }());
1121
- SkyDatepickerCalendarInnerComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: SkyDatepickerCalendarInnerComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
1122
- SkyDatepickerCalendarInnerComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: SkyDatepickerCalendarInnerComponent, selector: "sky-datepicker-inner", inputs: { startingDay: "startingDay", minDate: "minDate", maxDate: "maxDate", selectedDate: "selectedDate" }, outputs: { selectedDateChange: "selectedDateChange", calendarModeChange: "calendarModeChange" }, usesOnChanges: true, ngImport: i0__namespace, template: "<div\n *ngIf=\"datepickerMode\"\n class=\"sky-datepicker-calendar-inner\"\n (keydown)=\"onKeydown($event)\">\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: i3__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0__namespace.ViewEncapsulation.None });
1123
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: SkyDatepickerCalendarInnerComponent, decorators: [{
1299
+ SkyDatepickerCalendarInnerComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0__namespace, type: SkyDatepickerCalendarInnerComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
1300
+ SkyDatepickerCalendarInnerComponent.ɵcmp = i0__namespace.ɵɵ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__namespace, 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__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0__namespace.ViewEncapsulation.None });
1301
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0__namespace, type: SkyDatepickerCalendarInnerComponent, decorators: [{
1124
1302
  type: i0.Component,
1125
1303
  args: [{
1126
1304
  selector: 'sky-datepicker-inner',
1127
- template: "<div\n *ngIf=\"datepickerMode\"\n class=\"sky-datepicker-calendar-inner\"\n (keydown)=\"onKeydown($event)\">\n <ng-content></ng-content>\n</div>\n",
1305
+ template: "<div\n *ngIf=\"datepickerMode\"\n class=\"sky-datepicker-calendar-inner\"\n (keydown)=\"onKeydown($event)\"\n>\n <ng-content></ng-content>\n</div>\n",
1128
1306
  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"],
1129
- encapsulation: i0.ViewEncapsulation.None
1307
+ encapsulation: i0.ViewEncapsulation.None,
1130
1308
  }]
1131
- }], propDecorators: { startingDay: [{
1309
+ }], propDecorators: { customDates: [{
1310
+ type: i0.Input
1311
+ }], startingDay: [{
1132
1312
  type: i0.Input
1133
1313
  }], minDate: [{
1134
1314
  type: i0.Input
@@ -1153,29 +1333,208 @@
1153
1333
  }
1154
1334
  return SkyDatepickerConfigService;
1155
1335
  }());
1156
- SkyDatepickerConfigService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: SkyDatepickerConfigService, deps: [], target: i0__namespace.ɵɵFactoryTarget.Injectable });
1157
- SkyDatepickerConfigService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: SkyDatepickerConfigService, providedIn: 'root' });
1158
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: SkyDatepickerConfigService, decorators: [{
1336
+ SkyDatepickerConfigService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0__namespace, type: SkyDatepickerConfigService, deps: [], target: i0__namespace.ɵɵFactoryTarget.Injectable });
1337
+ SkyDatepickerConfigService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0__namespace, type: SkyDatepickerConfigService, providedIn: 'root' });
1338
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0__namespace, type: SkyDatepickerConfigService, decorators: [{
1159
1339
  type: i0.Injectable,
1160
1340
  args: [{
1161
- providedIn: 'root'
1341
+ providedIn: 'root',
1162
1342
  }]
1163
1343
  }] });
1164
1344
 
1345
+ /**
1346
+ * @internal
1347
+ */
1348
+ var SkyDatepickerService = /** @class */ (function () {
1349
+ function SkyDatepickerService() {
1350
+ /**
1351
+ * Specifies if a key date popover is currently displayed.
1352
+ * Useful for communicating across all daypicker siblings when a popover is displayed.
1353
+ */
1354
+ this.keyDatePopoverStream = new rxjs.Subject();
1355
+ }
1356
+ return SkyDatepickerService;
1357
+ }());
1358
+ SkyDatepickerService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0__namespace, type: SkyDatepickerService, deps: [], target: i0__namespace.ɵɵFactoryTarget.Injectable });
1359
+ SkyDatepickerService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0__namespace, type: SkyDatepickerService });
1360
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0__namespace, type: SkyDatepickerService, decorators: [{
1361
+ type: i0.Injectable
1362
+ }] });
1363
+
1364
+ /**
1365
+ * @internal
1366
+ */
1367
+ var SkyDayPickerButtonComponent = /** @class */ (function () {
1368
+ function SkyDayPickerButtonComponent(datepicker) {
1369
+ this.datepicker = datepicker;
1370
+ }
1371
+ return SkyDayPickerButtonComponent;
1372
+ }());
1373
+ SkyDayPickerButtonComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0__namespace, type: SkyDayPickerButtonComponent, deps: [{ token: SkyDatepickerCalendarInnerComponent }], target: i0__namespace.ɵɵFactoryTarget.Component });
1374
+ SkyDayPickerButtonComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.14", type: SkyDayPickerButtonComponent, selector: "sky-daypicker-button", inputs: { date: "date" }, ngImport: i0__namespace, 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__namespace.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
1375
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0__namespace, type: SkyDayPickerButtonComponent, decorators: [{
1376
+ type: i0.Component,
1377
+ args: [{
1378
+ selector: 'sky-daypicker-button',
1379
+ 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",
1380
+ 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"],
1381
+ }]
1382
+ }], ctorParameters: function () { return [{ type: SkyDatepickerCalendarInnerComponent }]; }, propDecorators: { date: [{
1383
+ type: i0.Input
1384
+ }] } });
1385
+
1386
+ /**
1387
+ * @internal
1388
+ */
1389
+ var SkyDayPickerCellComponent = /** @class */ (function () {
1390
+ function SkyDayPickerCellComponent(datepicker, datepickerService) {
1391
+ this.datepicker = datepicker;
1392
+ this.datepickerService = datepickerService;
1393
+ this.hasTooltip = false;
1394
+ this.popoverController = new rxjs.Subject();
1395
+ this.activeUid = '';
1396
+ this.cancelPopover = false;
1397
+ this.popoverOpen = false;
1398
+ this.ngUnsubscribe = new rxjs.Subject();
1399
+ }
1400
+ SkyDayPickerCellComponent.prototype.ngOnInit = function () {
1401
+ var _this = this;
1402
+ this.hasTooltip =
1403
+ this.date.keyDate &&
1404
+ this.date.keyDateText &&
1405
+ this.date.keyDateText.length > 0 &&
1406
+ this.date.keyDateText[0].length > 0;
1407
+ // show the tooltip if this is the active date and is not the
1408
+ // initial active date (activeDateHasChanged)
1409
+ if (this.datepicker.isActive(this.date) &&
1410
+ this.activeDateHasChanged &&
1411
+ this.hasTooltip) {
1412
+ this.activeUid = this.date.uid;
1413
+ this.showTooltip();
1414
+ }
1415
+ if (this.hasTooltip) {
1416
+ this.datepickerService.keyDatePopoverStream
1417
+ .pipe(operators.takeUntil(this.ngUnsubscribe))
1418
+ .subscribe(function (date) {
1419
+ if (date) {
1420
+ _this.activeUid = date.uid;
1421
+ }
1422
+ else {
1423
+ _this.activeUid = '';
1424
+ }
1425
+ // If this day has an open popover and they have moved off of the day close the popover.
1426
+ if (_this.date.uid !== _this.activeUid) {
1427
+ _this.hideTooltip();
1428
+ }
1429
+ });
1430
+ }
1431
+ };
1432
+ SkyDayPickerCellComponent.prototype.ngOnDestroy = function () {
1433
+ this.ngUnsubscribe.next();
1434
+ this.ngUnsubscribe.complete();
1435
+ };
1436
+ SkyDayPickerCellComponent.prototype.onDayMouseenter = function () {
1437
+ this.cancelPopover = false;
1438
+ if (this.hasTooltip) {
1439
+ this.showTooltip();
1440
+ this.datepickerService.keyDatePopoverStream.next(this.date);
1441
+ }
1442
+ };
1443
+ SkyDayPickerCellComponent.prototype.onDayMouseleave = function () {
1444
+ this.cancelPopover = true;
1445
+ if (this.hasTooltip) {
1446
+ this.hideTooltip();
1447
+ }
1448
+ this.datepickerService.keyDatePopoverStream.next(undefined);
1449
+ };
1450
+ SkyDayPickerCellComponent.prototype.onPopoverClosed = function () {
1451
+ this.popoverOpen = false;
1452
+ };
1453
+ SkyDayPickerCellComponent.prototype.onPopoverOpened = function () {
1454
+ this.popoverOpen = true;
1455
+ /* istanbul ignore else */
1456
+ if (this.cancelPopover) {
1457
+ // If the popover gets opened just as a mouseout event happens, close it.
1458
+ this.hideTooltip();
1459
+ this.cancelPopover = false;
1460
+ }
1461
+ };
1462
+ SkyDayPickerCellComponent.prototype.getKeyDateLabel = function () {
1463
+ if (this.hasTooltip) {
1464
+ return this.date.keyDateText.join(', ');
1465
+ }
1466
+ else {
1467
+ return '';
1468
+ }
1469
+ };
1470
+ SkyDayPickerCellComponent.prototype.hideTooltip = function () {
1471
+ /* istanbul ignore else */
1472
+ if (this.popoverOpen) {
1473
+ this.popoverController.next({ type: i3$1.SkyPopoverMessageType.Close });
1474
+ }
1475
+ };
1476
+ SkyDayPickerCellComponent.prototype.showTooltip = function () {
1477
+ var _this = this;
1478
+ /* istanbul ignore else */
1479
+ if (this.hasTooltip && !this.popoverOpen) {
1480
+ /**
1481
+ * Delay 1/2 second before opening the popover as long as mouse hasn't moved off the date.
1482
+ */
1483
+ setTimeout(function () {
1484
+ if (!_this.cancelPopover && _this.activeUid === _this.date.uid) {
1485
+ _this.popoverController.next({ type: i3$1.SkyPopoverMessageType.Open });
1486
+ }
1487
+ }, 500);
1488
+ }
1489
+ };
1490
+ return SkyDayPickerCellComponent;
1491
+ }());
1492
+ SkyDayPickerCellComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0__namespace, type: SkyDayPickerCellComponent, deps: [{ token: SkyDatepickerCalendarInnerComponent }, { token: SkyDatepickerService }], target: i0__namespace.ɵɵFactoryTarget.Component });
1493
+ SkyDayPickerCellComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.14", type: SkyDayPickerCellComponent, selector: "sky-daypicker-cell", inputs: { activeDateHasChanged: "activeDateHasChanged", date: "date" }, ngImport: i0__namespace, 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__namespace$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__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3__namespace$1.λ7, selector: "[skyPopover]", inputs: ["skyPopover", "skyPopoverAlignment", "skyPopoverMessageStream", "skyPopoverPlacement", "skyPopoverTrigger"] }, { type: i5__namespace.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i5__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
1494
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0__namespace, type: SkyDayPickerCellComponent, decorators: [{
1495
+ type: i0.Component,
1496
+ args: [{
1497
+ selector: 'sky-daypicker-cell',
1498
+ 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",
1499
+ changeDetection: i0.ChangeDetectionStrategy.OnPush,
1500
+ }]
1501
+ }], ctorParameters: function () { return [{ type: SkyDatepickerCalendarInnerComponent }, { type: SkyDatepickerService }]; }, propDecorators: { activeDateHasChanged: [{
1502
+ type: i0.Input
1503
+ }], date: [{
1504
+ type: i0.Input
1505
+ }] } });
1506
+
1165
1507
  /**
1166
1508
  * @internal
1167
1509
  */
1168
1510
  var SkyDayPickerComponent = /** @class */ (function () {
1169
1511
  function SkyDayPickerComponent(datepicker) {
1512
+ this.calendarDateRangeChange = new i0.EventEmitter();
1513
+ this.isWaiting = false;
1514
+ this.activeDateHasChanged = false;
1170
1515
  this.labels = [];
1171
1516
  this.rows = [];
1172
1517
  this.weekNumbers = [];
1173
- this.daysInMonth = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
1518
+ this.daysInMonth = [
1519
+ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31,
1520
+ ];
1521
+ this.ngUnsubscribe = new rxjs.Subject();
1174
1522
  this.datepicker = datepicker;
1175
1523
  }
1524
+ Object.defineProperty(SkyDayPickerComponent.prototype, "customDates", {
1525
+ set: function (value) {
1526
+ /* istanbul ignore else */
1527
+ if (value) {
1528
+ this.applyCustomDates(value, this.rows);
1529
+ }
1530
+ },
1531
+ enumerable: false,
1532
+ configurable: true
1533
+ });
1176
1534
  SkyDayPickerComponent.prototype.ngOnInit = function () {
1177
1535
  var _this = this;
1178
1536
  this.datepicker.stepDay = { months: 1 };
1537
+ this.initialDate = this.datepicker.activeDate.getDate();
1179
1538
  this.datepicker.setRefreshViewHandler(function () {
1180
1539
  _this.refreshDayView();
1181
1540
  }, 'day');
@@ -1185,6 +1544,10 @@
1185
1544
  }, 'day');
1186
1545
  this.datepicker.refreshView();
1187
1546
  };
1547
+ SkyDayPickerComponent.prototype.ngOnDestroy = function () {
1548
+ this.ngUnsubscribe.next();
1549
+ this.ngUnsubscribe.complete();
1550
+ };
1188
1551
  SkyDayPickerComponent.prototype.getDates = function (startDate, n) {
1189
1552
  var dates = new Array(n);
1190
1553
  var current = new Date(startDate.getTime());
@@ -1208,10 +1571,11 @@
1208
1571
  var month = this.datepicker.activeDate.getMonth();
1209
1572
  var firstDayOfMonth = new Date(year, month, 1);
1210
1573
  var difference = this.datepicker.startingDay - firstDayOfMonth.getDay();
1211
- var numDisplayedFromPreviousMonth = (difference > 0)
1212
- ? 7 - difference
1213
- : -difference;
1574
+ var numDisplayedFromPreviousMonth = difference > 0 ? 7 - difference : -difference;
1214
1575
  var firstDate = new Date(firstDayOfMonth.getTime());
1576
+ if (this.datepicker.activeDate.getDate() !== this.initialDate) {
1577
+ this.activeDateHasChanged = true;
1578
+ }
1215
1579
  /* istanbul ignore else */
1216
1580
  /* sanity check */
1217
1581
  if (numDisplayedFromPreviousMonth > 0) {
@@ -1227,13 +1591,19 @@
1227
1591
  this.labels = [];
1228
1592
  for (var j = 0; j < 7; j++) {
1229
1593
  this.labels[j] = {};
1230
- this.labels[j].abbr =
1231
- this.datepicker.dateFilter(pickerDates[j].date, this.datepicker.formatDayHeader);
1594
+ this.labels[j].abbr = this.datepicker.dateFilter(pickerDates[j].date, this.datepicker.formatDayHeader);
1232
1595
  this.labels[j].full = this.datepicker.dateFilter(pickerDates[j].date, 'EEEE');
1233
1596
  }
1234
- this.title =
1235
- this.datepicker.dateFilter(this.datepicker.activeDate, this.datepicker.formatDayTitle);
1597
+ this.title = this.datepicker.dateFilter(this.datepicker.activeDate, this.datepicker.formatDayTitle);
1598
+ var oldDateRange = this.getDateRange(this.rows);
1236
1599
  this.rows = this.datepicker.createCalendarRows(pickerDates, 7);
1600
+ var newDateRange = this.getDateRange(this.rows);
1601
+ if (!this.dateRangeRowsAreEqual(oldDateRange, newDateRange)) {
1602
+ this.calendarDateRangeChange.next({
1603
+ startDate: newDateRange.startDate,
1604
+ endDate: newDateRange.endDate,
1605
+ });
1606
+ }
1237
1607
  };
1238
1608
  SkyDayPickerComponent.prototype.keydownDays = function (key, event) {
1239
1609
  var date = this.datepicker.activeDate.getDate();
@@ -1254,8 +1624,7 @@
1254
1624
  else if (key === 'pageup' || key === 'pagedown') {
1255
1625
  var month = this.datepicker.activeDate.getMonth() + (key === 'pageup' ? -1 : 1);
1256
1626
  this.datepicker.activeDate.setMonth(month, 1);
1257
- date =
1258
- Math.min(this.getDaysInMonth(this.datepicker.activeDate.getFullYear(), this.datepicker.activeDate.getMonth()), date);
1627
+ date = Math.min(this.getDaysInMonth(this.datepicker.activeDate.getFullYear(), this.datepicker.activeDate.getMonth()), date);
1259
1628
  }
1260
1629
  else if (key === 'home') {
1261
1630
  date = 1;
@@ -1266,21 +1635,87 @@
1266
1635
  this.datepicker.activeDate.setDate(date);
1267
1636
  };
1268
1637
  SkyDayPickerComponent.prototype.getDaysInMonth = function (year, month) {
1269
- return month === 1 && year % 4 === 0 &&
1270
- (year % 400 === 0 || year % 100 !== 0) ? 29 : this.daysInMonth[month];
1638
+ return month === 1 &&
1639
+ year % 4 === 0 &&
1640
+ (year % 400 === 0 || year % 100 !== 0)
1641
+ ? 29
1642
+ : this.daysInMonth[month];
1643
+ };
1644
+ /**
1645
+ * Applies custom date properties to the existing dates displayed in the calendar.
1646
+ */
1647
+ SkyDayPickerComponent.prototype.applyCustomDates = function (customDates, dateRows) {
1648
+ var date;
1649
+ var newDate;
1650
+ var dateIndex;
1651
+ /* istanbul ignore else */
1652
+ if (customDates && dateRows) {
1653
+ customDates.forEach(function (customDate) {
1654
+ dateIndex = -1;
1655
+ dateRows.forEach(function (row) {
1656
+ if (dateIndex === -1) {
1657
+ dateIndex = row.findIndex(function (d) {
1658
+ return d.date.getTime() === customDate.date.getTime();
1659
+ });
1660
+ if (dateIndex > -1) {
1661
+ date = row[dateIndex];
1662
+ // Replace the date with a new instance so the display gets updated.
1663
+ newDate = {
1664
+ current: date.current,
1665
+ date: date.date,
1666
+ disabled: !!date.disabled || !!customDate.disabled,
1667
+ keyDate: !!customDate.keyDate || !!date.keyDate,
1668
+ keyDateText: customDate.keyDateText || date.keyDateText,
1669
+ label: date.label,
1670
+ secondary: date.secondary,
1671
+ selected: date.selected,
1672
+ uid: date.uid,
1673
+ };
1674
+ row[dateIndex] = newDate;
1675
+ }
1676
+ }
1677
+ });
1678
+ });
1679
+ }
1680
+ };
1681
+ SkyDayPickerComponent.prototype.dateRangeRowsAreEqual = function (rangeA, rangeB) {
1682
+ /* istanbul ignore if */
1683
+ if (!rangeA && !rangeB) {
1684
+ return true;
1685
+ }
1686
+ else if ((rangeA && !rangeB) || (!rangeA && rangeB)) {
1687
+ return false;
1688
+ }
1689
+ return (this.compareDays(rangeA.startDate, rangeB.startDate) === 0 &&
1690
+ this.compareDays(rangeA.endDate, rangeB.endDate) === 0);
1691
+ };
1692
+ SkyDayPickerComponent.prototype.getDateRange = function (rows) {
1693
+ /* istanbul ignore else */
1694
+ if (rows && rows.length > 0) {
1695
+ return {
1696
+ startDate: rows[0][0].date,
1697
+ endDate: rows[rows.length - 1][rows[rows.length - 1].length - 1].date,
1698
+ };
1699
+ }
1271
1700
  };
1272
1701
  return SkyDayPickerComponent;
1273
1702
  }());
1274
- SkyDayPickerComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: SkyDayPickerComponent, deps: [{ token: SkyDatepickerCalendarInnerComponent }], target: i0__namespace.ɵɵFactoryTarget.Component });
1275
- SkyDayPickerComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: SkyDayPickerComponent, selector: "sky-daypicker", ngImport: i0__namespace, template: "<div *ngIf=\"datepicker.datepickerMode === 'day'\"\n class=\"sky-daypicker-wrapper\"\n>\n <table\n class=\"sky-daypicker-table\"\n role=\"grid\"\n [attr.aria-labelledby]=\"datepicker.datepickerId+'-title'\"\n >\n <thead>\n <tr>\n <th\n class=\"sky-datepicker-header-left\"\n scope=\"col\"\n >\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 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\n scope=\"col\"\n [attr.colspan]=\"5\"\n >\n <button\n [id]=\"datepicker.datepickerId + '-title'\"\n type=\"button\"\n class=\"sky-btn sky-btn-default sky-btn-sm sky-datepicker-calendar-title\"\n (click)=\"datepicker.toggleModeCalendar($event)\"\n [disabled]=\"datepicker.datepickerMode === datepicker.maxMode\"\n [ngClass]=\"{'sky-btn-disabled': datepicker.datepickerMode === datepicker.maxMode}\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n >\n <strong>{{title}}</strong>\n </button>\n </th>\n <th\n class=\"sky-datepicker-header-right\"\n scope=\"col\"\n >\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 <small [attr.aria-label]=\"label.full\">\n <b>{{label.abbr}}</b>\n </small>\n </th>\n </tr>\n </thead>\n <tbody>\n <ng-template\n ngFor\n [ngForOf]=\"rows\"\n let-row=\"$implicit\"\n let-index=\"index\"\n >\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 <button\n type=\"button\"\n class=\"sky-btn sky-btn-sm sky-btn-default sky-datepicker-btn-date\"\n [ngClass]=\"{ 'sky-datepicker-btn-selected': date.selected, 'sky-btn-disabled': date.disabled, 'sky-btn-active': datepicker.isActive(date)}\"\n [disabled]=\"date.disabled\"\n (click)=\"datepicker.selectCalendar($event, date.date, true)\"\n tabindex=\"-1\"\n >\n <span\n [ngClass]=\"{'sky-datepicker-secondary': date.secondary }\"\n >{{date.label}}</span>\n </button>\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__namespace.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }], directives: [{ type: i3__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3__namespace$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3__namespace$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
1276
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: SkyDayPickerComponent, decorators: [{
1703
+ SkyDayPickerComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0__namespace, type: SkyDayPickerComponent, deps: [{ token: SkyDatepickerCalendarInnerComponent }], target: i0__namespace.ɵɵFactoryTarget.Component });
1704
+ SkyDayPickerComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.14", type: SkyDayPickerComponent, selector: "sky-daypicker", inputs: { customDates: "customDates", isWaiting: "isWaiting" }, outputs: { calendarDateRangeChange: "calendarDateRangeChange" }, ngImport: i0__namespace, 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__namespace.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }, { type: i2__namespace.λ14, selector: "sky-wait", inputs: ["ariaLabel", "isWaiting", "isFullPage", "isNonBlocking"] }, { type: SkyDayPickerCellComponent, selector: "sky-daypicker-cell", inputs: ["activeDateHasChanged", "date"] }], directives: [{ type: i5__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5__namespace.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i5__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
1705
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0__namespace, type: SkyDayPickerComponent, decorators: [{
1277
1706
  type: i0.Component,
1278
1707
  args: [{
1279
1708
  selector: 'sky-daypicker',
1280
- template: "<div *ngIf=\"datepicker.datepickerMode === 'day'\"\n class=\"sky-daypicker-wrapper\"\n>\n <table\n class=\"sky-daypicker-table\"\n role=\"grid\"\n [attr.aria-labelledby]=\"datepicker.datepickerId+'-title'\"\n >\n <thead>\n <tr>\n <th\n class=\"sky-datepicker-header-left\"\n scope=\"col\"\n >\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 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\n scope=\"col\"\n [attr.colspan]=\"5\"\n >\n <button\n [id]=\"datepicker.datepickerId + '-title'\"\n type=\"button\"\n class=\"sky-btn sky-btn-default sky-btn-sm sky-datepicker-calendar-title\"\n (click)=\"datepicker.toggleModeCalendar($event)\"\n [disabled]=\"datepicker.datepickerMode === datepicker.maxMode\"\n [ngClass]=\"{'sky-btn-disabled': datepicker.datepickerMode === datepicker.maxMode}\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n >\n <strong>{{title}}</strong>\n </button>\n </th>\n <th\n class=\"sky-datepicker-header-right\"\n scope=\"col\"\n >\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 <small [attr.aria-label]=\"label.full\">\n <b>{{label.abbr}}</b>\n </small>\n </th>\n </tr>\n </thead>\n <tbody>\n <ng-template\n ngFor\n [ngForOf]=\"rows\"\n let-row=\"$implicit\"\n let-index=\"index\"\n >\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 <button\n type=\"button\"\n class=\"sky-btn sky-btn-sm sky-btn-default sky-datepicker-btn-date\"\n [ngClass]=\"{ 'sky-datepicker-btn-selected': date.selected, 'sky-btn-disabled': date.disabled, 'sky-btn-active': datepicker.isActive(date)}\"\n [disabled]=\"date.disabled\"\n (click)=\"datepicker.selectCalendar($event, date.date, true)\"\n tabindex=\"-1\"\n >\n <span\n [ngClass]=\"{'sky-datepicker-secondary': date.secondary }\"\n >{{date.label}}</span>\n </button>\n </td>\n </tr>\n </ng-template>\n </tbody>\n </table>\n</div>\n",
1281
- styles: [":host-context(.sky-theme-modern) :host:focus{outline:none}.sky-theme-modern :host:focus{outline:none}\n"]
1709
+ 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",
1710
+ styles: [":host-context(.sky-theme-modern) :host:focus{outline:none}.sky-theme-modern :host:focus{outline:none}\n"],
1282
1711
  }]
1283
- }], ctorParameters: function () { return [{ type: SkyDatepickerCalendarInnerComponent }]; } });
1712
+ }], ctorParameters: function () { return [{ type: SkyDatepickerCalendarInnerComponent }]; }, propDecorators: { customDates: [{
1713
+ type: i0.Input
1714
+ }], calendarDateRangeChange: [{
1715
+ type: i0.Output
1716
+ }], isWaiting: [{
1717
+ type: i0.Input
1718
+ }] } });
1284
1719
 
1285
1720
  /**
1286
1721
  * @internal
@@ -1293,7 +1728,7 @@
1293
1728
  SkyMonthPickerComponent.prototype.ngOnInit = function () {
1294
1729
  var _this = this;
1295
1730
  this.datepicker.stepMonth = {
1296
- years: 1
1731
+ years: 1,
1297
1732
  };
1298
1733
  this.datepicker.setRefreshViewHandler(function () {
1299
1734
  _this.refreshMonthView();
@@ -1316,11 +1751,9 @@
1316
1751
  for (var i = 0; i < 12; i++) {
1317
1752
  date = new Date(year, i, 1);
1318
1753
  date = this.datepicker.fixTimeZone(date);
1319
- months[i] =
1320
- this.datepicker.createDateObject(date, this.datepicker.formatMonth, false, this.datepicker.datepickerId + '-' + i);
1754
+ months[i] = this.datepicker.createDateObject(date, this.datepicker.formatMonth, false, this.datepicker.datepickerId + '-' + i);
1321
1755
  }
1322
- this.title =
1323
- this.datepicker.dateFilter(this.datepicker.activeDate, this.datepicker.formatMonthTitle);
1756
+ this.title = this.datepicker.dateFilter(this.datepicker.activeDate, this.datepicker.formatMonthTitle);
1324
1757
  this.rows = this.datepicker.createCalendarRows(months, this.datepicker.monthColLimit);
1325
1758
  };
1326
1759
  SkyMonthPickerComponent.prototype.keydownMonths = function (key, event) {
@@ -1353,14 +1786,14 @@
1353
1786
  };
1354
1787
  return SkyMonthPickerComponent;
1355
1788
  }());
1356
- SkyMonthPickerComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: SkyMonthPickerComponent, deps: [{ token: SkyDatepickerCalendarInnerComponent }], target: i0__namespace.ɵɵFactoryTarget.Component });
1357
- SkyMonthPickerComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: SkyMonthPickerComponent, selector: "sky-monthpicker", ngImport: i0__namespace, template: "<table *ngIf=\"datepicker.datepickerMode==='month'\" role=\"grid\">\n <thead>\n <tr>\n <th\n class=\"sky-datepicker-header-left\"\n >\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></th>\n <th [attr.colspan]=\"((datepicker.monthColLimit - 2) <= 0) ? 1 : datepicker.monthColLimit - 2\">\n <button\n [id]=\"datepicker.datepickerId + '-title'\"\n type=\"button\"\n class=\"sky-btn sky-btn-default sky-btn-sm sky-datepicker-calendar-title\"\n (click)=\"datepicker.toggleModeCalendar($event)\"\n [disabled]=\"datepicker.datepickerMode === maxMode\"\n [ngClass]=\"{'sky-btn-disabled': datepicker.datepickerMode === maxMode}\"\n tabindex=\"-1\"\n >\n <strong>{{title}}</strong>\n </button>\n </th>\n <th\n class=\"sky-datepicker-header-right\"\n >\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 <button\n type=\"button\"\n class=\"sky-btn sky-btn-default sky-datepicker-btn-date\"\n [ngClass]=\"{'sky-datepicker-btn-selected': date.selected, 'sky-btn-disabled': date.disabled, 'sky-btn-active': datepicker.isActive(date)}\"\n [disabled]=\"date.disabled\"\n (click)=\"datepicker.selectCalendar($event, date.date)\"\n tabindex=\"-1\"\n >\n <span [ngClass]=\"{'sky-datepicker-current': date.current}\">{{date.label}}</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__namespace.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }], directives: [{ type: i3__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3__namespace$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3__namespace$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
1358
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: SkyMonthPickerComponent, decorators: [{
1789
+ SkyMonthPickerComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0__namespace, type: SkyMonthPickerComponent, deps: [{ token: SkyDatepickerCalendarInnerComponent }], target: i0__namespace.ɵɵFactoryTarget.Component });
1790
+ SkyMonthPickerComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.14", type: SkyMonthPickerComponent, selector: "sky-monthpicker", ngImport: i0__namespace, 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__namespace.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }], directives: [{ type: i5__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5__namespace.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i5__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
1791
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0__namespace, type: SkyMonthPickerComponent, decorators: [{
1359
1792
  type: i0.Component,
1360
1793
  args: [{
1361
1794
  selector: 'sky-monthpicker',
1362
- template: "<table *ngIf=\"datepicker.datepickerMode==='month'\" role=\"grid\">\n <thead>\n <tr>\n <th\n class=\"sky-datepicker-header-left\"\n >\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></th>\n <th [attr.colspan]=\"((datepicker.monthColLimit - 2) <= 0) ? 1 : datepicker.monthColLimit - 2\">\n <button\n [id]=\"datepicker.datepickerId + '-title'\"\n type=\"button\"\n class=\"sky-btn sky-btn-default sky-btn-sm sky-datepicker-calendar-title\"\n (click)=\"datepicker.toggleModeCalendar($event)\"\n [disabled]=\"datepicker.datepickerMode === maxMode\"\n [ngClass]=\"{'sky-btn-disabled': datepicker.datepickerMode === maxMode}\"\n tabindex=\"-1\"\n >\n <strong>{{title}}</strong>\n </button>\n </th>\n <th\n class=\"sky-datepicker-header-right\"\n >\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 <button\n type=\"button\"\n class=\"sky-btn sky-btn-default sky-datepicker-btn-date\"\n [ngClass]=\"{'sky-datepicker-btn-selected': date.selected, 'sky-btn-disabled': date.disabled, 'sky-btn-active': datepicker.isActive(date)}\"\n [disabled]=\"date.disabled\"\n (click)=\"datepicker.selectCalendar($event, date.date)\"\n tabindex=\"-1\"\n >\n <span [ngClass]=\"{'sky-datepicker-current': date.current}\">{{date.label}}</span>\n </button>\n </td>\n </tr>\n </tbody>\n</table>\n",
1363
- styles: [":host-context(.sky-theme-modern) :host:focus{outline:none}.sky-theme-modern :host:focus{outline:none}\n"]
1795
+ 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",
1796
+ styles: [":host-context(.sky-theme-modern) :host:focus{outline:none}.sky-theme-modern :host:focus{outline:none}\n"],
1364
1797
  }]
1365
1798
  }], ctorParameters: function () { return [{ type: SkyDatepickerCalendarInnerComponent }]; } });
1366
1799
 
@@ -1385,7 +1818,9 @@
1385
1818
  this.datepicker.refreshView();
1386
1819
  };
1387
1820
  SkyYearPickerComponent.prototype.getStartingYear = function (year) {
1388
- return Math.floor((year - 1) / this.datepicker.yearRange) * this.datepicker.yearRange + 1;
1821
+ return (Math.floor((year - 1) / this.datepicker.yearRange) *
1822
+ this.datepicker.yearRange +
1823
+ 1);
1389
1824
  };
1390
1825
  SkyYearPickerComponent.prototype.compareYears = function (date1, date2) {
1391
1826
  return date1.getFullYear() - date2.getFullYear();
@@ -1397,11 +1832,12 @@
1397
1832
  for (var i = 0; i < this.datepicker.yearRange; i++) {
1398
1833
  date = new Date(this.datepicker.activeDate);
1399
1834
  date.setFullYear(start + i, 0, 1);
1400
- years[i] =
1401
- this.datepicker.createDateObject(date, this.datepicker.formatYear, false, this.datepicker.datepickerId + '-' + i);
1835
+ years[i] = this.datepicker.createDateObject(date, this.datepicker.formatYear, false, this.datepicker.datepickerId + '-' + i);
1402
1836
  }
1403
- this.title = [years[0].label,
1404
- years[this.datepicker.yearRange - 1].label].join(' - ');
1837
+ this.title = [
1838
+ years[0].label,
1839
+ years[this.datepicker.yearRange - 1].label,
1840
+ ].join(' - ');
1405
1841
  this.rows = this.datepicker.createCalendarRows(years, this.datepicker.yearColLimit);
1406
1842
  };
1407
1843
  SkyYearPickerComponent.prototype.keydownYears = function (key, event) {
@@ -1427,21 +1863,23 @@
1427
1863
  date = this.getStartingYear(this.datepicker.activeDate.getFullYear());
1428
1864
  }
1429
1865
  else if (key === 'end') {
1430
- date
1431
- = this.getStartingYear(this.datepicker.activeDate.getFullYear()) + this.datepicker.yearRange - 1;
1866
+ date =
1867
+ this.getStartingYear(this.datepicker.activeDate.getFullYear()) +
1868
+ this.datepicker.yearRange -
1869
+ 1;
1432
1870
  }
1433
1871
  this.datepicker.activeDate.setFullYear(date);
1434
1872
  };
1435
1873
  return SkyYearPickerComponent;
1436
1874
  }());
1437
- SkyYearPickerComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: SkyYearPickerComponent, deps: [{ token: SkyDatepickerCalendarInnerComponent }], target: i0__namespace.ɵɵFactoryTarget.Component });
1438
- SkyYearPickerComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: SkyYearPickerComponent, selector: "sky-yearpicker", ngImport: i0__namespace, template: "<table *ngIf=\"datepicker.datepickerMode==='year'\" role=\"grid\">\n <thead>\n <tr>\n <th\n class=\"sky-datepicker-header-left\"\n >\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 [attr.colspan]=\"((datepicker.yearColLimit - 2) <= 0) ? 1 : datepicker.yearColLimit - 2\">\n <button\n [id]=\"datepicker.datepickerId + '-title'\"\n role=\"heading\"\n type=\"button\"\n class=\"sky-btn sky-btn-default sky-btn-sm sky-datepicker-calendar-title\"\n (click)=\"datepicker.toggleModeCalendar($event)\"\n [disabled]=\"datepicker.datepickerMode === datepicker.maxMode\"\n [ngClass]=\"{'sky-btn-disabled': datepicker.datepickerMode === datepicker.maxMode}\"\n tabindex=\"-1\"\n >\n <strong>{{title}}</strong>\n </button>\n </th>\n <th\n class=\"sky-datepicker-header-right\"\n >\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=\"sky-datepicker-row\"\n role=\"gridcell\"\n >\n <button\n type=\"button\"\n class=\"sky-btn sky-btn-default sky-datepicker-btn-date\"\n [ngClass]=\"{'sky-datepicker-btn-selected': date.selected, 'sky-btn-disabled': date.disabled, 'sky-btn-active': datepicker.isActive(date)}\"\n [disabled]=\"date.disabled\"\n (click)=\"datepicker.selectCalendar($event, date.date)\"\n tabindex=\"-1\"\n >\n <span\n [ngClass]=\"{'sky-datepicker-current': date.current }\">{{date.label}}</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__namespace.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }], directives: [{ type: i3__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3__namespace$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3__namespace$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
1439
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: SkyYearPickerComponent, decorators: [{
1875
+ SkyYearPickerComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0__namespace, type: SkyYearPickerComponent, deps: [{ token: SkyDatepickerCalendarInnerComponent }], target: i0__namespace.ɵɵFactoryTarget.Component });
1876
+ SkyYearPickerComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.14", type: SkyYearPickerComponent, selector: "sky-yearpicker", ngImport: i0__namespace, 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__namespace.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }], directives: [{ type: i5__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5__namespace.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i5__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
1877
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0__namespace, type: SkyYearPickerComponent, decorators: [{
1440
1878
  type: i0.Component,
1441
1879
  args: [{
1442
1880
  selector: 'sky-yearpicker',
1443
- template: "<table *ngIf=\"datepicker.datepickerMode==='year'\" role=\"grid\">\n <thead>\n <tr>\n <th\n class=\"sky-datepicker-header-left\"\n >\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 [attr.colspan]=\"((datepicker.yearColLimit - 2) <= 0) ? 1 : datepicker.yearColLimit - 2\">\n <button\n [id]=\"datepicker.datepickerId + '-title'\"\n role=\"heading\"\n type=\"button\"\n class=\"sky-btn sky-btn-default sky-btn-sm sky-datepicker-calendar-title\"\n (click)=\"datepicker.toggleModeCalendar($event)\"\n [disabled]=\"datepicker.datepickerMode === datepicker.maxMode\"\n [ngClass]=\"{'sky-btn-disabled': datepicker.datepickerMode === datepicker.maxMode}\"\n tabindex=\"-1\"\n >\n <strong>{{title}}</strong>\n </button>\n </th>\n <th\n class=\"sky-datepicker-header-right\"\n >\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=\"sky-datepicker-row\"\n role=\"gridcell\"\n >\n <button\n type=\"button\"\n class=\"sky-btn sky-btn-default sky-datepicker-btn-date\"\n [ngClass]=\"{'sky-datepicker-btn-selected': date.selected, 'sky-btn-disabled': date.disabled, 'sky-btn-active': datepicker.isActive(date)}\"\n [disabled]=\"date.disabled\"\n (click)=\"datepicker.selectCalendar($event, date.date)\"\n tabindex=\"-1\"\n >\n <span\n [ngClass]=\"{'sky-datepicker-current': date.current }\">{{date.label}}</span>\n </button>\n </td>\n </tr>\n </tbody>\n</table>\n",
1444
- styles: [":host-context(.sky-theme-modern) :host:focus{outline:none}.sky-theme-modern :host:focus{outline:none}\n"]
1881
+ 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",
1882
+ styles: [":host-context(.sky-theme-modern) :host:focus{outline:none}.sky-theme-modern :host:focus{outline:none}\n"],
1445
1883
  }]
1446
1884
  }], ctorParameters: function () { return [{ type: SkyDatepickerCalendarInnerComponent }]; } });
1447
1885
 
@@ -1453,8 +1891,9 @@
1453
1891
  this.adapter = adapter;
1454
1892
  this.config = config;
1455
1893
  this.elementRef = elementRef;
1456
- this.selectedDateChange = new i0.EventEmitter(undefined);
1894
+ this.calendarDateRangeChange = new i0.EventEmitter();
1457
1895
  this.calendarModeChange = new i0.EventEmitter();
1896
+ this.selectedDateChange = new i0.EventEmitter(undefined);
1458
1897
  this._now = new Date();
1459
1898
  this.formatter = new SkyDateFormatter();
1460
1899
  this.configureOptions();
@@ -1487,6 +1926,9 @@
1487
1926
  SkyDatepickerCalendarComponent.prototype.configureOptions = function () {
1488
1927
  Object.assign(this, this.config);
1489
1928
  };
1929
+ SkyDatepickerCalendarComponent.prototype.onCalendarDateRangeChange = function (event) {
1930
+ this.calendarDateRangeChange.next(event);
1931
+ };
1490
1932
  SkyDatepickerCalendarComponent.prototype.onCalendarModeChange = function (event) {
1491
1933
  this.calendarModeChange.emit(event);
1492
1934
  };
@@ -1494,10 +1936,10 @@
1494
1936
  this.selectedDateChange.emit(event);
1495
1937
  };
1496
1938
  SkyDatepickerCalendarComponent.prototype.writeValue = function (value) {
1497
- if (value !== undefined
1498
- && this.formatter.dateIsValid(value)
1499
- && this.selectedDate !== undefined
1500
- && this._datepicker.compareHandlerDay(value, this.selectedDate) === 0) {
1939
+ if (value !== undefined &&
1940
+ this.formatter.dateIsValid(value) &&
1941
+ this.selectedDate !== undefined &&
1942
+ this._datepicker.compareHandlerDay(value, this.selectedDate) === 0) {
1501
1943
  return;
1502
1944
  }
1503
1945
  if (this.formatter.dateIsValid(value)) {
@@ -1511,17 +1953,21 @@
1511
1953
  };
1512
1954
  return SkyDatepickerCalendarComponent;
1513
1955
  }());
1514
- SkyDatepickerCalendarComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: SkyDatepickerCalendarComponent, deps: [{ token: SkyDatepickerAdapterService }, { token: SkyDatepickerConfigService }, { token: i0__namespace.ElementRef }], target: i0__namespace.ɵɵFactoryTarget.Component });
1515
- SkyDatepickerCalendarComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: SkyDatepickerCalendarComponent, selector: "sky-datepicker-calendar", inputs: { minDate: "minDate", maxDate: "maxDate", selectedDate: "selectedDate", startingDay: "startingDay" }, outputs: { selectedDateChange: "selectedDateChange", calendarModeChange: "calendarModeChange" }, providers: [SkyDatepickerAdapterService], viewQueries: [{ propertyName: "_datepicker", first: true, predicate: SkyDatepickerCalendarInnerComponent, descendants: true, read: SkyDatepickerCalendarInnerComponent, static: true }], ngImport: i0__namespace, template: "<div class=\"sky-datepicker-calendar\">\n <sky-datepicker-inner\n [selectedDate]=\"selectedDate\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [startingDay]=\"startingDay\"\n (selectedDateChange)=\"onSelectedDateChange($event)\"\n (calendarModeChange)=\"onCalendarModeChange($event)\">\n <sky-daypicker tabindex=\"0\"></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: ["startingDay", "minDate", "maxDate", "selectedDate"], outputs: ["selectedDateChange", "calendarModeChange"] }, { type: SkyDayPickerComponent, selector: "sky-daypicker" }, { type: SkyMonthPickerComponent, selector: "sky-monthpicker" }, { type: SkyYearPickerComponent, selector: "sky-yearpicker" }] });
1516
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: SkyDatepickerCalendarComponent, decorators: [{
1956
+ SkyDatepickerCalendarComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0__namespace, type: SkyDatepickerCalendarComponent, deps: [{ token: SkyDatepickerAdapterService }, { token: SkyDatepickerConfigService }, { token: i0__namespace.ElementRef }], target: i0__namespace.ɵɵFactoryTarget.Component });
1957
+ SkyDatepickerCalendarComponent.ɵcmp = i0__namespace.ɵɵ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__namespace, 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" }] });
1958
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0__namespace, type: SkyDatepickerCalendarComponent, decorators: [{
1517
1959
  type: i0.Component,
1518
1960
  args: [{
1519
1961
  selector: 'sky-datepicker-calendar',
1520
- template: "<div class=\"sky-datepicker-calendar\">\n <sky-datepicker-inner\n [selectedDate]=\"selectedDate\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [startingDay]=\"startingDay\"\n (selectedDateChange)=\"onSelectedDateChange($event)\"\n (calendarModeChange)=\"onCalendarModeChange($event)\">\n <sky-daypicker tabindex=\"0\"></sky-daypicker>\n <sky-monthpicker tabindex=\"0\"></sky-monthpicker>\n <sky-yearpicker tabindex=\"0\"></sky-yearpicker>\n </sky-datepicker-inner>\n</div>\n",
1962
+ 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",
1521
1963
  styles: [".sky-datepicker-calendar{display:block}\n"],
1522
- providers: [SkyDatepickerAdapterService]
1964
+ providers: [SkyDatepickerAdapterService],
1523
1965
  }]
1524
- }], ctorParameters: function () { return [{ type: SkyDatepickerAdapterService }, { type: SkyDatepickerConfigService }, { type: i0__namespace.ElementRef }]; }, propDecorators: { minDate: [{
1966
+ }], ctorParameters: function () { return [{ type: SkyDatepickerAdapterService }, { type: SkyDatepickerConfigService }, { type: i0__namespace.ElementRef }]; }, propDecorators: { customDates: [{
1967
+ type: i0.Input
1968
+ }], isDaypickerWaiting: [{
1969
+ type: i0.Input
1970
+ }], minDate: [{
1525
1971
  type: i0.Input
1526
1972
  }], maxDate: [{
1527
1973
  type: i0.Input
@@ -1529,15 +1975,17 @@
1529
1975
  type: i0.Input
1530
1976
  }], startingDay: [{
1531
1977
  type: i0.Input
1532
- }], selectedDateChange: [{
1978
+ }], calendarDateRangeChange: [{
1533
1979
  type: i0.Output
1534
1980
  }], calendarModeChange: [{
1535
1981
  type: i0.Output
1982
+ }], selectedDateChange: [{
1983
+ type: i0.Output
1536
1984
  }], _datepicker: [{
1537
1985
  type: i0.ViewChild,
1538
1986
  args: [SkyDatepickerCalendarInnerComponent, {
1539
1987
  read: SkyDatepickerCalendarInnerComponent,
1540
- static: true
1988
+ static: true,
1541
1989
  }]
1542
1990
  }] } });
1543
1991
 
@@ -1558,7 +2006,14 @@
1558
2006
  * Adds a class to the datepicker.
1559
2007
  */
1560
2008
  this.pickerClass = '';
2009
+ /**
2010
+ * Fires when the range of displayed dates in the calendar changes. Provides the
2011
+ * current range of displayed dates and a mutable `customDate` property consumers can use
2012
+ * to modify individual dates on the calendar.
2013
+ */
2014
+ this.calendarDateRangeChange = new i0.EventEmitter();
1561
2015
  this.dateChange = new i0.EventEmitter();
2016
+ this.isDaypickerWaiting = false;
1562
2017
  this.isOpen = false;
1563
2018
  this.isVisible = false;
1564
2019
  this.ngUnsubscribe = new rxjs.Subject();
@@ -1666,7 +2121,7 @@
1666
2121
  if (this.inputBoxHostService) {
1667
2122
  this.inputBoxHostService.populate({
1668
2123
  inputTemplate: this.inputTemplateRef,
1669
- buttonsTemplate: this.triggerButtonTemplateRef
2124
+ buttonsTemplate: this.triggerButtonTemplateRef,
1670
2125
  });
1671
2126
  }
1672
2127
  };
@@ -1697,6 +2152,43 @@
1697
2152
  this.openPicker();
1698
2153
  }
1699
2154
  };
2155
+ SkyDatepickerComponent.prototype.onCalendarDateRangeChange = function (event) {
2156
+ var _this = this;
2157
+ /* istanbul ignore else */
2158
+ if (event) {
2159
+ this.cancelCustomDatesSubscription();
2160
+ var args = {
2161
+ startDate: event.startDate,
2162
+ endDate: event.endDate,
2163
+ customDates: undefined,
2164
+ };
2165
+ this.calendarDateRangeChange.emit(args);
2166
+ // If consumer has added an observable to the args, watch for incoming custom dates.
2167
+ /* istanbul ignore else */
2168
+ if (args.customDates) {
2169
+ this.isDaypickerWaiting = true;
2170
+ // Avoid an ExpressionChangedAfterItHasBeenCheckedError.
2171
+ this.changeDetector.detectChanges();
2172
+ this.customDatesSubscription = args.customDates
2173
+ .pipe(operators.debounceTime(250))
2174
+ .subscribe(function (result) {
2175
+ _this.customDates = result;
2176
+ _this.isDaypickerWaiting = false;
2177
+ // Trigger change detection in child components to show changes in the calendar.
2178
+ _this.changeDetector.markForCheck();
2179
+ });
2180
+ }
2181
+ else {
2182
+ // If consumer returns an undefined value after custom dates have
2183
+ // already ben established, remove custom dates.
2184
+ if (this.customDates) {
2185
+ this.customDates = undefined;
2186
+ // Avoid an ExpressionChangedAfterItHasBeenCheckedError.
2187
+ this.changeDetector.detectChanges();
2188
+ }
2189
+ }
2190
+ }
2191
+ };
1700
2192
  SkyDatepickerComponent.prototype.closePicker = function () {
1701
2193
  this.destroyAffixer();
1702
2194
  this.destroyOverlay();
@@ -1721,7 +2213,7 @@
1721
2213
  affixer.placementChange
1722
2214
  .pipe(operators.takeUntil(this.calendarUnsubscribe))
1723
2215
  .subscribe(function (change) {
1724
- _this.isVisible = (change.placement !== null);
2216
+ _this.isVisible = change.placement !== null;
1725
2217
  _this.changeDetector.markForCheck();
1726
2218
  });
1727
2219
  affixer.affixTo(this.triggerButtonRef.nativeElement, {
@@ -1729,7 +2221,7 @@
1729
2221
  enableAutoFit: true,
1730
2222
  horizontalAlignment: 'right',
1731
2223
  isSticky: true,
1732
- placement: 'below'
2224
+ placement: 'below',
1733
2225
  });
1734
2226
  this.affixer = affixer;
1735
2227
  };
@@ -1745,7 +2237,7 @@
1745
2237
  var overlay = this.overlayService.create({
1746
2238
  wrapperClass: this.pickerClass,
1747
2239
  enableClose: false,
1748
- enablePointerEvents: false
2240
+ enablePointerEvents: false,
1749
2241
  });
1750
2242
  overlay.backdropClick
1751
2243
  .pipe(operators.takeUntil(this.calendarUnsubscribe))
@@ -1788,17 +2280,23 @@
1788
2280
  }
1789
2281
  (_a = this.overlayKeydownListner) === null || _a === void 0 ? void 0 : _a.unsubscribe();
1790
2282
  };
2283
+ SkyDatepickerComponent.prototype.cancelCustomDatesSubscription = function () {
2284
+ if (this.customDatesSubscription) {
2285
+ this.customDatesSubscription.unsubscribe();
2286
+ this.customDatesSubscription = undefined;
2287
+ }
2288
+ };
1791
2289
  return SkyDatepickerComponent;
1792
2290
  }());
1793
- SkyDatepickerComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: SkyDatepickerComponent, deps: [{ token: i1__namespace.SkyAffixService }, { token: i0__namespace.ChangeDetectorRef }, { token: i1__namespace.SkyCoreAdapterService }, { token: i1__namespace.SkyOverlayService }, { token: i2__namespace$1.SkyInputBoxHostService, optional: true }, { token: i3__namespace$2.SkyThemeService, optional: true }], target: i0__namespace.ɵɵFactoryTarget.Component });
1794
- SkyDatepickerComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: SkyDatepickerComponent, selector: "sky-datepicker", inputs: { pickerClass: "pickerClass" }, viewQueries: [{ propertyName: "calendar", first: true, predicate: SkyDatepickerCalendarComponent, descendants: true }, { propertyName: "calendarRef", first: true, predicate: ["calendarRef"], descendants: true, read: i0.ElementRef }, { propertyName: "calendarTemplateRef", first: true, predicate: ["calendarTemplateRef"], descendants: true, read: i0.TemplateRef }, { propertyName: "triggerButtonRef", first: true, predicate: ["triggerButtonRef"], descendants: true, read: i0.ElementRef }, { propertyName: "inputTemplateRef", first: true, predicate: ["inputTemplateRef"], descendants: true, read: i0.TemplateRef, static: true }, { propertyName: "triggerButtonTemplateRef", first: true, predicate: ["triggerButtonTemplateRef"], descendants: true, read: i0.TemplateRef, static: true }], ngImport: i0__namespace, template: "<div\n class=\"sky-datepicker\"\n>\n <ng-container *ngIf=\"!inputBoxHostService\">\n <div\n class=\"sky-input-group\"\n >\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\n class=\"sky-input-group-btn\"\n >\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]=\"'skyux_datepicker_trigger_button_label' | skyLibResources\"\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'\"\n icon=\"calendar\"\n size=\"lg\"\n ></sky-icon>\n <sky-icon *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 [maxDate]=\"maxDate\"\n [minDate]=\"minDate\"\n [startingDay]=\"startingDay\"\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__namespace.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }, { type: SkyDatepickerCalendarComponent, selector: "sky-datepicker-calendar", inputs: ["minDate", "maxDate", "selectedDate", "startingDay"], outputs: ["selectedDateChange", "calendarModeChange"] }], directives: [{ type: i3__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3__namespace$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i3__namespace$2.λ3, selector: "[skyThemeIf]", inputs: ["skyThemeIf"] }], pipes: { "skyLibResources": i3__namespace.SkyLibResourcesPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
1795
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: SkyDatepickerComponent, decorators: [{
2291
+ SkyDatepickerComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0__namespace, type: SkyDatepickerComponent, deps: [{ token: i1__namespace.SkyAffixService }, { token: i0__namespace.ChangeDetectorRef }, { token: i1__namespace.SkyCoreAdapterService }, { token: i1__namespace.SkyOverlayService }, { token: i2__namespace$1.SkyInputBoxHostService, optional: true }, { token: i3__namespace$2.SkyThemeService, optional: true }], target: i0__namespace.ɵɵFactoryTarget.Component });
2292
+ SkyDatepickerComponent.ɵcmp = i0__namespace.ɵɵ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: i0.ElementRef }, { propertyName: "calendarTemplateRef", first: true, predicate: ["calendarTemplateRef"], descendants: true, read: i0.TemplateRef }, { propertyName: "triggerButtonRef", first: true, predicate: ["triggerButtonRef"], descendants: true, read: i0.ElementRef }, { propertyName: "inputTemplateRef", first: true, predicate: ["inputTemplateRef"], descendants: true, read: i0.TemplateRef, static: true }, { propertyName: "triggerButtonTemplateRef", first: true, predicate: ["triggerButtonTemplateRef"], descendants: true, read: i0.TemplateRef, static: true }], ngImport: i0__namespace, 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__namespace.λ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__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5__namespace.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i3__namespace$2.λ3, selector: "[skyThemeIf]", inputs: ["skyThemeIf"] }], pipes: { "skyLibResources": i3__namespace.SkyLibResourcesPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
2293
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0__namespace, type: SkyDatepickerComponent, decorators: [{
1796
2294
  type: i0.Component,
1797
2295
  args: [{
1798
2296
  selector: 'sky-datepicker',
1799
- template: "<div\n class=\"sky-datepicker\"\n>\n <ng-container *ngIf=\"!inputBoxHostService\">\n <div\n class=\"sky-input-group\"\n >\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\n class=\"sky-input-group-btn\"\n >\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]=\"'skyux_datepicker_trigger_button_label' | skyLibResources\"\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'\"\n icon=\"calendar\"\n size=\"lg\"\n ></sky-icon>\n <sky-icon *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 [maxDate]=\"maxDate\"\n [minDate]=\"minDate\"\n [startingDay]=\"startingDay\"\n (calendarModeChange)=\"onCalendarModeChange()\"\n (selectedDateChange)=\"onSelectedDateChange($event)\"\n >\n </sky-datepicker-calendar>\n </div>\n</ng-template>\n",
2297
+ 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",
1800
2298
  styles: [".sky-datepicker-calendar-container{position:fixed;border-radius:5px}.sky-datepicker-hidden{visibility:hidden}\n"],
1801
- changeDetection: i0.ChangeDetectionStrategy.OnPush
2299
+ changeDetection: i0.ChangeDetectionStrategy.OnPush,
1802
2300
  }]
1803
2301
  }], ctorParameters: function () {
1804
2302
  return [{ type: i1__namespace.SkyAffixService }, { type: i0__namespace.ChangeDetectorRef }, { type: i1__namespace.SkyCoreAdapterService }, { type: i1__namespace.SkyOverlayService }, { type: i2__namespace$1.SkyInputBoxHostService, decorators: [{
@@ -1808,35 +2306,37 @@
1808
2306
  }] }];
1809
2307
  }, propDecorators: { pickerClass: [{
1810
2308
  type: i0.Input
2309
+ }], calendarDateRangeChange: [{
2310
+ type: i0.Output
1811
2311
  }], calendar: [{
1812
2312
  type: i0.ViewChild,
1813
2313
  args: [SkyDatepickerCalendarComponent]
1814
2314
  }], calendarRef: [{
1815
2315
  type: i0.ViewChild,
1816
2316
  args: ['calendarRef', {
1817
- read: i0.ElementRef
2317
+ read: i0.ElementRef,
1818
2318
  }]
1819
2319
  }], calendarTemplateRef: [{
1820
2320
  type: i0.ViewChild,
1821
2321
  args: ['calendarTemplateRef', {
1822
- read: i0.TemplateRef
2322
+ read: i0.TemplateRef,
1823
2323
  }]
1824
2324
  }], triggerButtonRef: [{
1825
2325
  type: i0.ViewChild,
1826
2326
  args: ['triggerButtonRef', {
1827
- read: i0.ElementRef
2327
+ read: i0.ElementRef,
1828
2328
  }]
1829
2329
  }], inputTemplateRef: [{
1830
2330
  type: i0.ViewChild,
1831
2331
  args: ['inputTemplateRef', {
1832
2332
  read: i0.TemplateRef,
1833
- static: true
2333
+ static: true,
1834
2334
  }]
1835
2335
  }], triggerButtonTemplateRef: [{
1836
2336
  type: i0.ViewChild,
1837
2337
  args: ['triggerButtonTemplateRef', {
1838
2338
  read: i0.TemplateRef,
1839
- static: true
2339
+ static: true,
1840
2340
  }]
1841
2341
  }] } });
1842
2342
 
@@ -1844,12 +2344,12 @@
1844
2344
  var SKY_DATEPICKER_VALUE_ACCESSOR = {
1845
2345
  provide: i2$2.NG_VALUE_ACCESSOR,
1846
2346
  useExisting: i0.forwardRef(function () { return SkyDatepickerInputDirective; }),
1847
- multi: true
2347
+ multi: true,
1848
2348
  };
1849
2349
  var SKY_DATEPICKER_VALIDATOR = {
1850
2350
  provide: i2$2.NG_VALIDATORS,
1851
2351
  useExisting: i0.forwardRef(function () { return SkyDatepickerInputDirective; }),
1852
- multi: true
2352
+ multi: true,
1853
2353
  };
1854
2354
  // tslint:enable
1855
2355
  var SkyDatepickerInputDirective = /** @class */ (function () {
@@ -1877,19 +2377,21 @@
1877
2377
  this.onValidatorChange = function () { };
1878
2378
  this.initialPlaceholder = this.adapter.getPlaceholder(this.elementRef);
1879
2379
  this.updatePlaceholder();
1880
- this.localeProvider.getLocaleInfo()
2380
+ this.localeProvider
2381
+ .getLocaleInfo()
1881
2382
  .pipe(operators.takeUntil(this.ngUnsubscribe))
1882
2383
  .subscribe(function (localeInfo) {
1883
2384
  SkyDateFormatter.setLocale(localeInfo.locale);
1884
- _this.preferredShortDateFormat = SkyDateFormatter.getPreferredShortDateFormat();
2385
+ _this.preferredShortDateFormat =
2386
+ SkyDateFormatter.getPreferredShortDateFormat();
1885
2387
  _this.applyDateFormat();
1886
2388
  });
1887
2389
  }
1888
2390
  Object.defineProperty(SkyDatepickerInputDirective.prototype, "dateFormat", {
1889
2391
  get: function () {
1890
- return this._dateFormat ||
2392
+ return (this._dateFormat ||
1891
2393
  this.configService.dateFormat ||
1892
- this.preferredShortDateFormat;
2394
+ this.preferredShortDateFormat);
1893
2395
  },
1894
2396
  /**
1895
2397
  * Specifies the date format for the input. Place this attribute on the `input` element
@@ -2026,9 +2528,9 @@
2026
2528
  },
2027
2529
  set: function (value) {
2028
2530
  var dateValue = this.getDateValue(value);
2029
- var areDatesEqual = (this._value instanceof Date &&
2531
+ var areDatesEqual = this._value instanceof Date &&
2030
2532
  dateValue &&
2031
- dateValue.getTime() === this._value.getTime());
2533
+ dateValue.getTime() === this._value.getTime();
2032
2534
  var isValidDateString = this.isDateStringValid(value);
2033
2535
  // If the string value supplied is malformed, do not set the value to its Date equivalent.
2034
2536
  // (JavaScript's Date parser will convert poorly formatted dates to Date objects, such as "abc 123", which isn't ideal.)
@@ -2037,7 +2539,7 @@
2037
2539
  this.notifyUpdatedValue();
2038
2540
  }
2039
2541
  else if (dateValue !== this._value || !areDatesEqual) {
2040
- this._value = (dateValue || value);
2542
+ this._value = dateValue || value;
2041
2543
  this.notifyUpdatedValue();
2042
2544
  }
2043
2545
  if (dateValue && isValidDateString) {
@@ -2061,7 +2563,8 @@
2061
2563
  this.renderer.addClass(element, 'sky-form-control');
2062
2564
  var hasAriaLabel = element.getAttribute('aria-label');
2063
2565
  if (!hasAriaLabel) {
2064
- this.resourcesService.getString('skyux_date_field_default_label')
2566
+ this.resourcesService
2567
+ .getString('skyux_date_field_default_label')
2065
2568
  .pipe(operators.takeUntil(this.ngUnsubscribe))
2066
2569
  .subscribe(function (value) {
2067
2570
  _this.renderer.setAttribute(element, 'aria-label', value);
@@ -2090,7 +2593,7 @@
2090
2593
  if (this.control && this.control.parent) {
2091
2594
  setTimeout(function () {
2092
2595
  _this.control.setValue(_this.value, {
2093
- emitEvent: false
2596
+ emitEvent: false,
2094
2597
  });
2095
2598
  _this.changeDetector.markForCheck();
2096
2599
  });
@@ -2116,8 +2619,8 @@
2116
2619
  this.onChange(value);
2117
2620
  this.control.setErrors({
2118
2621
  skyDate: {
2119
- invalid: true
2120
- }
2622
+ invalid: true,
2623
+ },
2121
2624
  });
2122
2625
  };
2123
2626
  SkyDatepickerInputDirective.prototype.onInputBlur = function () {
@@ -2141,35 +2644,31 @@
2141
2644
  return;
2142
2645
  }
2143
2646
  var dateValue = this.getDateValue(value);
2144
- var isDateValid = (dateValue && this.dateFormatter.dateIsValid(dateValue));
2647
+ var isDateValid = dateValue && this.dateFormatter.dateIsValid(dateValue);
2145
2648
  if (!isDateValid || !this.isDateStringValid(value)) {
2146
2649
  // Mark the invalid control as touched so that the input's invalid CSS styles appear.
2147
2650
  // (This is only required when the invalid value is set by the FormControl constructor.)
2148
2651
  this.control.markAsTouched();
2149
2652
  return {
2150
- 'skyDate': {
2151
- invalid: value
2152
- }
2653
+ skyDate: {
2654
+ invalid: value,
2655
+ },
2153
2656
  };
2154
2657
  }
2155
2658
  var minDate = this.minDate;
2156
- if (minDate &&
2157
- this.dateFormatter.dateIsValid(minDate) &&
2158
- value < minDate) {
2659
+ if (minDate && this.dateFormatter.dateIsValid(minDate) && value < minDate) {
2159
2660
  return {
2160
- 'skyDate': {
2161
- minDate: minDate
2162
- }
2661
+ skyDate: {
2662
+ minDate: minDate,
2663
+ },
2163
2664
  };
2164
2665
  }
2165
2666
  var maxDate = this.maxDate;
2166
- if (maxDate &&
2167
- this.dateFormatter.dateIsValid(maxDate) &&
2168
- value > maxDate) {
2667
+ if (maxDate && this.dateFormatter.dateIsValid(maxDate) && value > maxDate) {
2169
2668
  return {
2170
- 'skyDate': {
2171
- maxDate: maxDate
2172
- }
2669
+ skyDate: {
2670
+ maxDate: maxDate,
2671
+ },
2173
2672
  };
2174
2673
  }
2175
2674
  };
@@ -2257,21 +2756,21 @@
2257
2756
  };
2258
2757
  return SkyDatepickerInputDirective;
2259
2758
  }());
2260
- SkyDatepickerInputDirective.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: SkyDatepickerInputDirective, deps: [{ token: SkyDatepickerAdapterService }, { token: i0__namespace.ChangeDetectorRef }, { token: SkyDatepickerConfigService }, { token: i0__namespace.ElementRef }, { token: i3__namespace.SkyAppLocaleProvider }, { token: i0__namespace.Renderer2 }, { token: i3__namespace.SkyLibResourcesService }, { token: SkyDatepickerComponent, optional: true }], target: i0__namespace.ɵɵFactoryTarget.Directive });
2261
- SkyDatepickerInputDirective.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.13", 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: [
2759
+ SkyDatepickerInputDirective.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0__namespace, type: SkyDatepickerInputDirective, deps: [{ token: SkyDatepickerAdapterService }, { token: i0__namespace.ChangeDetectorRef }, { token: SkyDatepickerConfigService }, { token: i0__namespace.ElementRef }, { token: i3__namespace.SkyAppLocaleProvider }, { token: i0__namespace.Renderer2 }, { token: i3__namespace.SkyLibResourcesService }, { token: SkyDatepickerComponent, optional: true }], target: i0__namespace.ɵɵFactoryTarget.Directive });
2760
+ SkyDatepickerInputDirective.ɵdir = i0__namespace.ɵɵ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: [
2262
2761
  SKY_DATEPICKER_VALUE_ACCESSOR,
2263
2762
  SKY_DATEPICKER_VALIDATOR,
2264
- SkyDatepickerAdapterService
2763
+ SkyDatepickerAdapterService,
2265
2764
  ], ngImport: i0__namespace });
2266
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: SkyDatepickerInputDirective, decorators: [{
2765
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0__namespace, type: SkyDatepickerInputDirective, decorators: [{
2267
2766
  type: i0.Directive,
2268
2767
  args: [{
2269
2768
  selector: '[skyDatepickerInput]',
2270
2769
  providers: [
2271
2770
  SKY_DATEPICKER_VALUE_ACCESSOR,
2272
2771
  SKY_DATEPICKER_VALIDATOR,
2273
- SkyDatepickerAdapterService
2274
- ]
2772
+ SkyDatepickerAdapterService,
2773
+ ],
2275
2774
  }]
2276
2775
  }], ctorParameters: function () {
2277
2776
  return [{ type: SkyDatepickerAdapterService }, { type: i0__namespace.ChangeDetectorRef }, { type: SkyDatepickerConfigService }, { type: i0__namespace.ElementRef }, { type: i3__namespace.SkyAppLocaleProvider }, { type: i0__namespace.Renderer2 }, { type: i3__namespace.SkyLibResourcesService }, { type: SkyDatepickerComponent, decorators: [{
@@ -2308,12 +2807,12 @@
2308
2807
  var SKY_FUZZY_DATEPICKER_VALUE_ACCESSOR = {
2309
2808
  provide: i2$2.NG_VALUE_ACCESSOR,
2310
2809
  useExisting: i0.forwardRef(function () { return SkyFuzzyDatepickerInputDirective; }),
2311
- multi: true
2810
+ multi: true,
2312
2811
  };
2313
2812
  var SKY_FUZZY_DATEPICKER_VALIDATOR = {
2314
2813
  provide: i2$2.NG_VALIDATORS,
2315
2814
  useExisting: i0.forwardRef(function () { return SkyFuzzyDatepickerInputDirective; }),
2316
- multi: true
2815
+ multi: true,
2317
2816
  };
2318
2817
  // tslint:enable
2319
2818
  var SkyFuzzyDatepickerInputDirective = /** @class */ (function () {
@@ -2342,19 +2841,21 @@
2342
2841
  /*istanbul ignore next */
2343
2842
  this.onTouched = function () { };
2344
2843
  this.onValidatorChange = function () { };
2345
- this.localeProvider.getLocaleInfo()
2844
+ this.localeProvider
2845
+ .getLocaleInfo()
2346
2846
  .pipe(operators.takeUntil(this.ngUnsubscribe))
2347
2847
  .subscribe(function (localeInfo) {
2348
2848
  _this.locale = localeInfo.locale;
2349
2849
  SkyDateFormatter.setLocale(_this.locale);
2350
- _this.preferredShortDateFormat = SkyDateFormatter.getPreferredShortDateFormat();
2850
+ _this.preferredShortDateFormat =
2851
+ SkyDateFormatter.getPreferredShortDateFormat();
2351
2852
  });
2352
2853
  }
2353
2854
  Object.defineProperty(SkyFuzzyDatepickerInputDirective.prototype, "dateFormat", {
2354
2855
  get: function () {
2355
- return this._dateFormat ||
2856
+ return (this._dateFormat ||
2356
2857
  this.configService.dateFormat ||
2357
- this.preferredShortDateFormat;
2858
+ this.preferredShortDateFormat);
2358
2859
  },
2359
2860
  /**
2360
2861
  * Specifies the date format for the input. Place this attribute on the `input` element
@@ -2520,8 +3021,7 @@
2520
3021
  }
2521
3022
  }
2522
3023
  var areFuzzyDatesEqual = this.fuzzyDatesEqual(this._value, fuzzyDate);
2523
- var isNewValue = (fuzzyDate !== this._value ||
2524
- !areFuzzyDatesEqual);
3024
+ var isNewValue = fuzzyDate !== this._value || !areFuzzyDatesEqual;
2525
3025
  this._value = fuzzyDate || value;
2526
3026
  if (isNewValue) {
2527
3027
  this.onChange(this._value);
@@ -2556,7 +3056,8 @@
2556
3056
  var hasAriaLabel = element.getAttribute('aria-label');
2557
3057
  /* istanbul ignore else */
2558
3058
  if (!hasAriaLabel) {
2559
- this.resourcesService.getString('skyux_date_field_default_label')
3059
+ this.resourcesService
3060
+ .getString('skyux_date_field_default_label')
2560
3061
  .pipe(operators.takeUntil(this.ngUnsubscribe))
2561
3062
  .subscribe(function (value) {
2562
3063
  _this.renderer.setAttribute(element, 'aria-label', value);
@@ -2584,7 +3085,7 @@
2584
3085
  if (this.control && this.control.parent) {
2585
3086
  setTimeout(function () {
2586
3087
  _this.control.setValue(_this.value, {
2587
- emitEvent: false
3088
+ emitEvent: false,
2588
3089
  });
2589
3090
  _this.changeDetector.markForCheck();
2590
3091
  });
@@ -2631,16 +3132,16 @@
2631
3132
  }
2632
3133
  if (!fuzzyDate) {
2633
3134
  validationError = {
2634
- 'skyFuzzyDate': {
2635
- invalid: value
2636
- }
3135
+ skyFuzzyDate: {
3136
+ invalid: value,
3137
+ },
2637
3138
  };
2638
3139
  }
2639
3140
  if (!validationError && !fuzzyDate.year && this.yearRequired) {
2640
3141
  validationError = {
2641
- 'skyFuzzyDate': {
2642
- yearRequired: value
2643
- }
3142
+ skyFuzzyDate: {
3143
+ yearRequired: value,
3144
+ },
2644
3145
  };
2645
3146
  }
2646
3147
  if (!validationError && fuzzyDate.year) {
@@ -2649,9 +3150,9 @@
2649
3150
  fuzzyDateRange = this.fuzzyDateService.getFuzzyDateRange(fuzzyDate, this.maxDate);
2650
3151
  if (!fuzzyDateRange.valid) {
2651
3152
  validationError = {
2652
- 'skyFuzzyDate': {
2653
- maxDate: value
2654
- }
3153
+ skyFuzzyDate: {
3154
+ maxDate: value,
3155
+ },
2655
3156
  };
2656
3157
  }
2657
3158
  }
@@ -2659,9 +3160,9 @@
2659
3160
  fuzzyDateRange = this.fuzzyDateService.getFuzzyDateRange(this.minDate, fuzzyDate);
2660
3161
  if (!fuzzyDateRange.valid) {
2661
3162
  validationError = {
2662
- 'skyFuzzyDate': {
2663
- minDate: value
2664
- }
3163
+ skyFuzzyDate: {
3164
+ minDate: value,
3165
+ },
2665
3166
  };
2666
3167
  }
2667
3168
  }
@@ -2669,9 +3170,9 @@
2669
3170
  fuzzyDateRange = this.fuzzyDateService.getFuzzyDateRange(fuzzyDate, this.fuzzyDateService.getCurrentFuzzyDate());
2670
3171
  if (!fuzzyDateRange.valid) {
2671
3172
  validationError = {
2672
- 'skyFuzzyDate': {
2673
- futureDisabled: value
2674
- }
3173
+ skyFuzzyDate: {
3174
+ futureDisabled: value,
3175
+ },
2675
3176
  };
2676
3177
  }
2677
3178
  }
@@ -2733,29 +3234,27 @@
2733
3234
  };
2734
3235
  /* istanbul ignore next */
2735
3236
  SkyFuzzyDatepickerInputDirective.prototype.fuzzyDatesEqual = function (dateA, dateB) {
2736
- return dateA && dateB
2737
- && ((!dateA.day && !dateB.day)
2738
- || dateA.day === dateB.day)
2739
- && ((!dateA.month && !dateB.month)
2740
- || dateA.month === dateB.month)
2741
- && ((!dateA.year && !dateB.year)
2742
- || dateA.year === dateB.year);
3237
+ return (dateA &&
3238
+ dateB &&
3239
+ ((!dateA.day && !dateB.day) || dateA.day === dateB.day) &&
3240
+ ((!dateA.month && !dateB.month) || dateA.month === dateB.month) &&
3241
+ ((!dateA.year && !dateB.year) || dateA.year === dateB.year));
2743
3242
  };
2744
3243
  return SkyFuzzyDatepickerInputDirective;
2745
3244
  }());
2746
- SkyFuzzyDatepickerInputDirective.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: SkyFuzzyDatepickerInputDirective, deps: [{ token: i0__namespace.ChangeDetectorRef }, { token: SkyDatepickerConfigService }, { token: i0__namespace.ElementRef }, { token: SkyFuzzyDateService }, { token: i3__namespace.SkyAppLocaleProvider }, { token: i0__namespace.Renderer2 }, { token: i3__namespace.SkyLibResourcesService }, { token: SkyDatepickerComponent, optional: true }], target: i0__namespace.ɵɵFactoryTarget.Directive });
2747
- SkyFuzzyDatepickerInputDirective.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.13", 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: [
3245
+ SkyFuzzyDatepickerInputDirective.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0__namespace, type: SkyFuzzyDatepickerInputDirective, deps: [{ token: i0__namespace.ChangeDetectorRef }, { token: SkyDatepickerConfigService }, { token: i0__namespace.ElementRef }, { token: SkyFuzzyDateService }, { token: i3__namespace.SkyAppLocaleProvider }, { token: i0__namespace.Renderer2 }, { token: i3__namespace.SkyLibResourcesService }, { token: SkyDatepickerComponent, optional: true }], target: i0__namespace.ɵɵFactoryTarget.Directive });
3246
+ SkyFuzzyDatepickerInputDirective.ɵdir = i0__namespace.ɵɵ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: [
2748
3247
  SKY_FUZZY_DATEPICKER_VALUE_ACCESSOR,
2749
- SKY_FUZZY_DATEPICKER_VALIDATOR
3248
+ SKY_FUZZY_DATEPICKER_VALIDATOR,
2750
3249
  ], ngImport: i0__namespace });
2751
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: SkyFuzzyDatepickerInputDirective, decorators: [{
3250
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0__namespace, type: SkyFuzzyDatepickerInputDirective, decorators: [{
2752
3251
  type: i0.Directive,
2753
3252
  args: [{
2754
3253
  selector: '[skyFuzzyDatepickerInput]',
2755
3254
  providers: [
2756
3255
  SKY_FUZZY_DATEPICKER_VALUE_ACCESSOR,
2757
- SKY_FUZZY_DATEPICKER_VALIDATOR
2758
- ]
3256
+ SKY_FUZZY_DATEPICKER_VALIDATOR,
3257
+ ],
2759
3258
  }]
2760
3259
  }], ctorParameters: function () {
2761
3260
  return [{ type: i0__namespace.ChangeDetectorRef }, { type: SkyDatepickerConfigService }, { type: i0__namespace.ElementRef }, { type: SkyFuzzyDateService }, { type: i3__namespace.SkyAppLocaleProvider }, { type: i0__namespace.Renderer2 }, { type: i3__namespace.SkyLibResourcesService }, { type: SkyDatepickerComponent, decorators: [{
@@ -2795,36 +3294,42 @@
2795
3294
  }
2796
3295
  return SkyDatepickerModule;
2797
3296
  }());
2798
- SkyDatepickerModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: SkyDatepickerModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
2799
- SkyDatepickerModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: SkyDatepickerModule, declarations: [SkyDatepickerCalendarComponent,
3297
+ SkyDatepickerModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0__namespace, type: SkyDatepickerModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
3298
+ SkyDatepickerModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0__namespace, type: SkyDatepickerModule, declarations: [SkyDatepickerCalendarComponent,
2800
3299
  SkyDatepickerCalendarInnerComponent,
2801
3300
  SkyDayPickerComponent,
2802
3301
  SkyMonthPickerComponent,
2803
3302
  SkyYearPickerComponent,
2804
3303
  SkyDatepickerComponent,
2805
3304
  SkyDatepickerInputDirective,
2806
- SkyFuzzyDatepickerInputDirective], imports: [i3$1.CommonModule,
3305
+ SkyFuzzyDatepickerInputDirective,
3306
+ SkyDayPickerCellComponent,
3307
+ SkyDayPickerButtonComponent], imports: [i5.CommonModule,
2807
3308
  i3.SkyI18nModule,
2808
3309
  i2$2.FormsModule,
2809
3310
  i2.SkyIconModule,
2810
3311
  SkyDatetimeResourcesModule,
2811
3312
  i1.SkyAffixModule,
2812
3313
  i1.SkyOverlayModule,
2813
- i3$2.SkyThemeModule], exports: [SkyDatepickerCalendarComponent,
3314
+ i3$2.SkyThemeModule,
3315
+ i3$1.SkyPopoverModule,
3316
+ i2.SkyWaitModule], exports: [SkyDatepickerCalendarComponent,
2814
3317
  SkyDatepickerComponent,
2815
3318
  SkyDatepickerInputDirective,
2816
3319
  SkyFuzzyDatepickerInputDirective] });
2817
- SkyDatepickerModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: SkyDatepickerModule, imports: [[
2818
- i3$1.CommonModule,
3320
+ SkyDatepickerModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0__namespace, type: SkyDatepickerModule, providers: [SkyDatepickerService], imports: [[
3321
+ i5.CommonModule,
2819
3322
  i3.SkyI18nModule,
2820
3323
  i2$2.FormsModule,
2821
3324
  i2.SkyIconModule,
2822
3325
  SkyDatetimeResourcesModule,
2823
3326
  i1.SkyAffixModule,
2824
3327
  i1.SkyOverlayModule,
2825
- i3$2.SkyThemeModule
3328
+ i3$2.SkyThemeModule,
3329
+ i3$1.SkyPopoverModule,
3330
+ i2.SkyWaitModule,
2826
3331
  ]] });
2827
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: SkyDatepickerModule, decorators: [{
3332
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0__namespace, type: SkyDatepickerModule, decorators: [{
2828
3333
  type: i0.NgModule,
2829
3334
  args: [{
2830
3335
  declarations: [
@@ -2835,84 +3340,32 @@
2835
3340
  SkyYearPickerComponent,
2836
3341
  SkyDatepickerComponent,
2837
3342
  SkyDatepickerInputDirective,
2838
- SkyFuzzyDatepickerInputDirective
3343
+ SkyFuzzyDatepickerInputDirective,
3344
+ SkyDayPickerCellComponent,
3345
+ SkyDayPickerButtonComponent,
2839
3346
  ],
2840
3347
  imports: [
2841
- i3$1.CommonModule,
3348
+ i5.CommonModule,
2842
3349
  i3.SkyI18nModule,
2843
3350
  i2$2.FormsModule,
2844
3351
  i2.SkyIconModule,
2845
3352
  SkyDatetimeResourcesModule,
2846
3353
  i1.SkyAffixModule,
2847
3354
  i1.SkyOverlayModule,
2848
- i3$2.SkyThemeModule
3355
+ i3$2.SkyThemeModule,
3356
+ i3$1.SkyPopoverModule,
3357
+ i2.SkyWaitModule,
2849
3358
  ],
2850
3359
  exports: [
2851
3360
  SkyDatepickerCalendarComponent,
2852
3361
  SkyDatepickerComponent,
2853
3362
  SkyDatepickerInputDirective,
2854
- SkyFuzzyDatepickerInputDirective
2855
- ]
3363
+ SkyFuzzyDatepickerInputDirective,
3364
+ ],
3365
+ providers: [SkyDatepickerService],
2856
3366
  }]
2857
3367
  }] });
2858
3368
 
2859
- /**
2860
- * Represents the calculator.
2861
- */
2862
- var SkyDateRangeCalculator = /** @class */ (function () {
2863
- function SkyDateRangeCalculator(
2864
- /**
2865
- * Provides a calculator ID to specify calculator objects that represent date ranges.
2866
- */
2867
- calculatorId, config) {
2868
- this.calculatorId = calculatorId;
2869
- this.config = config;
2870
- this.type = config.type;
2871
- this.shortDescription = config.shortDescription;
2872
- }
2873
- /**
2874
- * Gets the current value of the calculator.
2875
- * @param startDateInput The start date.
2876
- * @param endDateInput The end date.
2877
- */
2878
- SkyDateRangeCalculator.prototype.getValue = function (startDateInput, endDateInput) {
2879
- var result = this.config.getValue(startDateInput, endDateInput);
2880
- /* tslint:disable:no-null-keyword */
2881
- // (Angular form controls use null for the "empty" value.)
2882
- var startDate = null;
2883
- if (result.startDate instanceof Date) {
2884
- startDate = this.parseDateWithoutTime(result.startDate);
2885
- }
2886
- var endDate = null;
2887
- if (result.endDate instanceof Date) {
2888
- endDate = this.parseDateWithoutTime(result.endDate);
2889
- }
2890
- /* tslint:enable */
2891
- return {
2892
- calculatorId: this.calculatorId,
2893
- startDate: startDate,
2894
- endDate: endDate
2895
- };
2896
- };
2897
- /**
2898
- * Performs synchronous validation against the control.
2899
- */
2900
- SkyDateRangeCalculator.prototype.validate = function (value) {
2901
- if (!this.config.validate) {
2902
- return;
2903
- }
2904
- return this.config.validate(value);
2905
- };
2906
- /**
2907
- * Get a date object without time information.
2908
- * See: https://stackoverflow.com/a/38050824/6178885
2909
- */
2910
- SkyDateRangeCalculator.prototype.parseDateWithoutTime = function (date) {
2911
- return new Date(date.getFullYear(), date.getMonth(), date.getDate());
2912
- };
2913
- return SkyDateRangeCalculator;
2914
- }());
2915
-
2916
3369
  /**
2917
3370
  * Need to add the following to classes which contain static methods.
2918
3371
  * See: https://github.com/ng-packagr/ng-packagr/issues/641
@@ -2929,7 +3382,7 @@
2929
3382
  var today = new Date();
2930
3383
  return {
2931
3384
  startDate: today,
2932
- endDate: today
3385
+ endDate: today,
2933
3386
  };
2934
3387
  },
2935
3388
  enumerable: false,
@@ -2941,7 +3394,7 @@
2941
3394
  tomorrow.setDate(tomorrow.getDate() + 1);
2942
3395
  return {
2943
3396
  startDate: tomorrow,
2944
- endDate: tomorrow
3397
+ endDate: tomorrow,
2945
3398
  };
2946
3399
  },
2947
3400
  enumerable: false,
@@ -2953,7 +3406,7 @@
2953
3406
  yesterday.setDate(yesterday.getDate() - 1);
2954
3407
  return {
2955
3408
  startDate: yesterday,
2956
- endDate: yesterday
3409
+ endDate: yesterday,
2957
3410
  };
2958
3411
  },
2959
3412
  enumerable: false,
@@ -2970,7 +3423,7 @@
2970
3423
  endDate.setDate(endDate.getDate() - endDate.getDay() + 6);
2971
3424
  return {
2972
3425
  startDate: startDate,
2973
- endDate: endDate
3426
+ endDate: endDate,
2974
3427
  };
2975
3428
  },
2976
3429
  enumerable: false,
@@ -2987,7 +3440,7 @@
2987
3440
  endDate.setDate(endDate.getDate() - endDate.getDay() + 13);
2988
3441
  return {
2989
3442
  startDate: startDate,
2990
- endDate: endDate
3443
+ endDate: endDate,
2991
3444
  };
2992
3445
  },
2993
3446
  enumerable: false,
@@ -3001,7 +3454,7 @@
3001
3454
  endDate.setDate(endDate.getDate() - endDate.getDay() - 1);
3002
3455
  return {
3003
3456
  startDate: startDate,
3004
- endDate: endDate
3457
+ endDate: endDate,
3005
3458
  };
3006
3459
  },
3007
3460
  enumerable: false,
@@ -3016,7 +3469,7 @@
3016
3469
  endDate.setDate(0);
3017
3470
  return {
3018
3471
  startDate: startDate,
3019
- endDate: endDate
3472
+ endDate: endDate,
3020
3473
  };
3021
3474
  },
3022
3475
  enumerable: false,
@@ -3033,7 +3486,7 @@
3033
3486
  endDate.setDate(0);
3034
3487
  return {
3035
3488
  startDate: startDate,
3036
- endDate: endDate
3489
+ endDate: endDate,
3037
3490
  };
3038
3491
  },
3039
3492
  enumerable: false,
@@ -3051,7 +3504,7 @@
3051
3504
  endDate.setDate(0);
3052
3505
  return {
3053
3506
  startDate: startDate,
3054
- endDate: endDate
3507
+ endDate: endDate,
3055
3508
  };
3056
3509
  },
3057
3510
  enumerable: false,
@@ -3069,7 +3522,7 @@
3069
3522
  endDate.setDate(0);
3070
3523
  return {
3071
3524
  startDate: startDate,
3072
- endDate: endDate
3525
+ endDate: endDate,
3073
3526
  };
3074
3527
  },
3075
3528
  enumerable: false,
@@ -3087,7 +3540,7 @@
3087
3540
  endDate.setDate(0);
3088
3541
  return {
3089
3542
  startDate: startDate,
3090
- endDate: endDate
3543
+ endDate: endDate,
3091
3544
  };
3092
3545
  },
3093
3546
  enumerable: false,
@@ -3107,7 +3560,7 @@
3107
3560
  endDate.setDate(0);
3108
3561
  return {
3109
3562
  startDate: startDate,
3110
- endDate: endDate
3563
+ endDate: endDate,
3111
3564
  };
3112
3565
  },
3113
3566
  enumerable: false,
@@ -3125,7 +3578,7 @@
3125
3578
  endDate.setDate(0);
3126
3579
  return {
3127
3580
  startDate: startDate,
3128
- endDate: endDate
3581
+ endDate: endDate,
3129
3582
  };
3130
3583
  },
3131
3584
  enumerable: false,
@@ -3144,7 +3597,7 @@
3144
3597
  endDate.setDate(0);
3145
3598
  return {
3146
3599
  startDate: startDate,
3147
- endDate: endDate
3600
+ endDate: endDate,
3148
3601
  };
3149
3602
  },
3150
3603
  enumerable: false,
@@ -3162,7 +3615,7 @@
3162
3615
  endDate.setDate(0);
3163
3616
  return {
3164
3617
  startDate: startDate,
3165
- endDate: endDate
3618
+ endDate: endDate,
3166
3619
  };
3167
3620
  },
3168
3621
  enumerable: false,
@@ -3233,7 +3686,7 @@
3233
3686
  }
3234
3687
  return {
3235
3688
  startDate: startDate,
3236
- endDate: endDate
3689
+ endDate: endDate,
3237
3690
  };
3238
3691
  };
3239
3692
  return SkyDateRangeRelativeValue;
@@ -3244,19 +3697,19 @@
3244
3697
  calculatorId: exports.SkyDateRangeCalculatorId.AnyTime,
3245
3698
  type: exports.SkyDateRangeCalculatorType.Relative,
3246
3699
  shortDescriptionResourceKey: 'skyux_date_range_picker_format_label_any_time',
3247
- getValue: function (startDate, endDate) { return ({ startDate: startDate, endDate: endDate }); }
3700
+ getValue: function (startDate, endDate) { return ({ startDate: startDate, endDate: endDate }); },
3248
3701
  },
3249
3702
  {
3250
3703
  calculatorId: exports.SkyDateRangeCalculatorId.Before,
3251
3704
  type: exports.SkyDateRangeCalculatorType.Before,
3252
3705
  shortDescriptionResourceKey: 'skyux_date_range_picker_format_label_before',
3253
- getValue: function (startDate, endDate) { return ({ startDate: startDate, endDate: endDate }); }
3706
+ getValue: function (startDate, endDate) { return ({ startDate: startDate, endDate: endDate }); },
3254
3707
  },
3255
3708
  {
3256
3709
  calculatorId: exports.SkyDateRangeCalculatorId.After,
3257
3710
  type: exports.SkyDateRangeCalculatorType.After,
3258
3711
  shortDescriptionResourceKey: 'skyux_date_range_picker_format_label_after',
3259
- getValue: function (startDate, endDate) { return ({ startDate: startDate, endDate: endDate }); }
3712
+ getValue: function (startDate, endDate) { return ({ startDate: startDate, endDate: endDate }); },
3260
3713
  },
3261
3714
  {
3262
3715
  calculatorId: exports.SkyDateRangeCalculatorId.SpecificRange,
@@ -3268,119 +3721,119 @@
3268
3721
  value.endDate &&
3269
3722
  value.startDate > value.endDate) {
3270
3723
  return {
3271
- 'endDateBeforeStartDate': true
3724
+ endDateBeforeStartDate: true,
3272
3725
  };
3273
3726
  }
3274
- }
3727
+ },
3275
3728
  },
3276
3729
  {
3277
3730
  calculatorId: exports.SkyDateRangeCalculatorId.LastFiscalYear,
3278
3731
  type: exports.SkyDateRangeCalculatorType.Relative,
3279
3732
  shortDescriptionResourceKey: 'skyux_date_range_picker_format_label_last_fiscal_year',
3280
- getValue: function () { return SkyDateRangeRelativeValue.lastFiscalYear; }
3733
+ getValue: function () { return SkyDateRangeRelativeValue.lastFiscalYear; },
3281
3734
  },
3282
3735
  {
3283
3736
  calculatorId: exports.SkyDateRangeCalculatorId.LastMonth,
3284
3737
  type: exports.SkyDateRangeCalculatorType.Relative,
3285
3738
  shortDescriptionResourceKey: 'skyux_date_range_picker_format_label_last_month',
3286
- getValue: function () { return SkyDateRangeRelativeValue.lastMonth; }
3739
+ getValue: function () { return SkyDateRangeRelativeValue.lastMonth; },
3287
3740
  },
3288
3741
  {
3289
3742
  calculatorId: exports.SkyDateRangeCalculatorId.LastQuarter,
3290
3743
  type: exports.SkyDateRangeCalculatorType.Relative,
3291
3744
  shortDescriptionResourceKey: 'skyux_date_range_picker_format_label_last_quarter',
3292
- getValue: function () { return SkyDateRangeRelativeValue.lastQuarter; }
3745
+ getValue: function () { return SkyDateRangeRelativeValue.lastQuarter; },
3293
3746
  },
3294
3747
  {
3295
3748
  calculatorId: exports.SkyDateRangeCalculatorId.LastWeek,
3296
3749
  type: exports.SkyDateRangeCalculatorType.Relative,
3297
3750
  shortDescriptionResourceKey: 'skyux_date_range_picker_format_label_last_week',
3298
- getValue: function () { return SkyDateRangeRelativeValue.lastWeek; }
3751
+ getValue: function () { return SkyDateRangeRelativeValue.lastWeek; },
3299
3752
  },
3300
3753
  {
3301
3754
  calculatorId: exports.SkyDateRangeCalculatorId.LastCalendarYear,
3302
3755
  type: exports.SkyDateRangeCalculatorType.Relative,
3303
3756
  shortDescriptionResourceKey: 'skyux_date_range_picker_format_label_last_calendar_year',
3304
- getValue: function () { return SkyDateRangeRelativeValue.lastCalendarYear; }
3757
+ getValue: function () { return SkyDateRangeRelativeValue.lastCalendarYear; },
3305
3758
  },
3306
3759
  {
3307
3760
  calculatorId: exports.SkyDateRangeCalculatorId.NextFiscalYear,
3308
3761
  type: exports.SkyDateRangeCalculatorType.Relative,
3309
3762
  shortDescriptionResourceKey: 'skyux_date_range_picker_format_label_next_fiscal_year',
3310
- getValue: function () { return SkyDateRangeRelativeValue.nextFiscalYear; }
3763
+ getValue: function () { return SkyDateRangeRelativeValue.nextFiscalYear; },
3311
3764
  },
3312
3765
  {
3313
3766
  calculatorId: exports.SkyDateRangeCalculatorId.NextMonth,
3314
3767
  type: exports.SkyDateRangeCalculatorType.Relative,
3315
3768
  shortDescriptionResourceKey: 'skyux_date_range_picker_format_label_next_month',
3316
- getValue: function () { return SkyDateRangeRelativeValue.nextMonth; }
3769
+ getValue: function () { return SkyDateRangeRelativeValue.nextMonth; },
3317
3770
  },
3318
3771
  {
3319
3772
  calculatorId: exports.SkyDateRangeCalculatorId.NextQuarter,
3320
3773
  type: exports.SkyDateRangeCalculatorType.Relative,
3321
3774
  shortDescriptionResourceKey: 'skyux_date_range_picker_format_label_next_quarter',
3322
- getValue: function () { return SkyDateRangeRelativeValue.nextQuarter; }
3775
+ getValue: function () { return SkyDateRangeRelativeValue.nextQuarter; },
3323
3776
  },
3324
3777
  {
3325
3778
  calculatorId: exports.SkyDateRangeCalculatorId.NextWeek,
3326
3779
  type: exports.SkyDateRangeCalculatorType.Relative,
3327
3780
  shortDescriptionResourceKey: 'skyux_date_range_picker_format_label_next_week',
3328
- getValue: function () { return SkyDateRangeRelativeValue.nextWeek; }
3781
+ getValue: function () { return SkyDateRangeRelativeValue.nextWeek; },
3329
3782
  },
3330
3783
  {
3331
3784
  calculatorId: exports.SkyDateRangeCalculatorId.NextCalendarYear,
3332
3785
  type: exports.SkyDateRangeCalculatorType.Relative,
3333
3786
  shortDescriptionResourceKey: 'skyux_date_range_picker_format_label_next_calendar_year',
3334
- getValue: function () { return SkyDateRangeRelativeValue.nextCalendarYear; }
3787
+ getValue: function () { return SkyDateRangeRelativeValue.nextCalendarYear; },
3335
3788
  },
3336
3789
  {
3337
3790
  calculatorId: exports.SkyDateRangeCalculatorId.ThisFiscalYear,
3338
3791
  type: exports.SkyDateRangeCalculatorType.Relative,
3339
3792
  shortDescriptionResourceKey: 'skyux_date_range_picker_format_label_this_fiscal_year',
3340
- getValue: function () { return SkyDateRangeRelativeValue.thisFiscalYear; }
3793
+ getValue: function () { return SkyDateRangeRelativeValue.thisFiscalYear; },
3341
3794
  },
3342
3795
  {
3343
3796
  calculatorId: exports.SkyDateRangeCalculatorId.ThisMonth,
3344
3797
  type: exports.SkyDateRangeCalculatorType.Relative,
3345
3798
  shortDescriptionResourceKey: 'skyux_date_range_picker_format_label_this_month',
3346
- getValue: function () { return SkyDateRangeRelativeValue.thisMonth; }
3799
+ getValue: function () { return SkyDateRangeRelativeValue.thisMonth; },
3347
3800
  },
3348
3801
  {
3349
3802
  calculatorId: exports.SkyDateRangeCalculatorId.ThisQuarter,
3350
3803
  type: exports.SkyDateRangeCalculatorType.Relative,
3351
3804
  shortDescriptionResourceKey: 'skyux_date_range_picker_format_label_this_quarter',
3352
- getValue: function () { return SkyDateRangeRelativeValue.thisQuarter; }
3805
+ getValue: function () { return SkyDateRangeRelativeValue.thisQuarter; },
3353
3806
  },
3354
3807
  {
3355
3808
  calculatorId: exports.SkyDateRangeCalculatorId.ThisWeek,
3356
3809
  type: exports.SkyDateRangeCalculatorType.Relative,
3357
3810
  shortDescriptionResourceKey: 'skyux_date_range_picker_format_label_this_week',
3358
- getValue: function () { return SkyDateRangeRelativeValue.thisWeek; }
3811
+ getValue: function () { return SkyDateRangeRelativeValue.thisWeek; },
3359
3812
  },
3360
3813
  {
3361
3814
  calculatorId: exports.SkyDateRangeCalculatorId.ThisCalendarYear,
3362
3815
  type: exports.SkyDateRangeCalculatorType.Relative,
3363
3816
  shortDescriptionResourceKey: 'skyux_date_range_picker_format_label_this_calendar_year',
3364
- getValue: function () { return SkyDateRangeRelativeValue.thisCalendarYear; }
3817
+ getValue: function () { return SkyDateRangeRelativeValue.thisCalendarYear; },
3365
3818
  },
3366
3819
  {
3367
3820
  calculatorId: exports.SkyDateRangeCalculatorId.Today,
3368
3821
  type: exports.SkyDateRangeCalculatorType.Relative,
3369
3822
  shortDescriptionResourceKey: 'skyux_date_range_picker_format_label_today',
3370
- getValue: function () { return SkyDateRangeRelativeValue.today; }
3823
+ getValue: function () { return SkyDateRangeRelativeValue.today; },
3371
3824
  },
3372
3825
  {
3373
3826
  calculatorId: exports.SkyDateRangeCalculatorId.Tomorrow,
3374
3827
  type: exports.SkyDateRangeCalculatorType.Relative,
3375
3828
  shortDescriptionResourceKey: 'skyux_date_range_picker_format_label_tomorrow',
3376
- getValue: function () { return SkyDateRangeRelativeValue.tomorrow; }
3829
+ getValue: function () { return SkyDateRangeRelativeValue.tomorrow; },
3377
3830
  },
3378
3831
  {
3379
3832
  calculatorId: exports.SkyDateRangeCalculatorId.Yesterday,
3380
3833
  type: exports.SkyDateRangeCalculatorType.Relative,
3381
3834
  shortDescriptionResourceKey: 'skyux_date_range_picker_format_label_yesterday',
3382
- getValue: function () { return SkyDateRangeRelativeValue.yesterday; }
3383
- }
3835
+ getValue: function () { return SkyDateRangeRelativeValue.yesterday; },
3836
+ },
3384
3837
  ];
3385
3838
 
3386
3839
  /**
@@ -3423,16 +3876,14 @@
3423
3876
  var _this = this;
3424
3877
  var calculatorId = parseInt(id, 10);
3425
3878
  var found = this.calculators.find(function (calculator) {
3426
- return (calculator.calculatorId === calculatorId);
3879
+ return calculator.calculatorId === calculatorId;
3427
3880
  });
3428
3881
  return new Promise(function (resolve, reject) {
3429
3882
  if (!found) {
3430
3883
  reject(new Error("A calculator with the ID " + id + " was not found."));
3431
3884
  return;
3432
3885
  }
3433
- _this.calculatorReadyStream
3434
- .pipe(operators.first())
3435
- .subscribe(function () {
3886
+ _this.calculatorReadyStream.pipe(operators.first()).subscribe(function () {
3436
3887
  resolve(found);
3437
3888
  });
3438
3889
  });
@@ -3446,7 +3897,7 @@
3446
3897
  getValue: defaultConfig.getValue,
3447
3898
  validate: defaultConfig.validate,
3448
3899
  shortDescription: '',
3449
- type: defaultConfig.type
3900
+ type: defaultConfig.type,
3450
3901
  };
3451
3902
  tasks.push(_this.resourcesService
3452
3903
  .getString(defaultConfig.shortDescriptionResourceKey)
@@ -3472,9 +3923,9 @@
3472
3923
  // Start the count higher than the number of available values
3473
3924
  // provided in the SkyDateRangeCalculatorId enum.
3474
3925
  SkyDateRangeService.lastId = 1000;
3475
- SkyDateRangeService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: SkyDateRangeService, deps: [{ token: i3__namespace.SkyLibResourcesService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
3476
- SkyDateRangeService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: SkyDateRangeService });
3477
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: SkyDateRangeService, decorators: [{
3926
+ SkyDateRangeService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0__namespace, type: SkyDateRangeService, deps: [{ token: i3__namespace.SkyLibResourcesService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
3927
+ SkyDateRangeService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0__namespace, type: SkyDateRangeService });
3928
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0__namespace, type: SkyDateRangeService, decorators: [{
3478
3929
  type: i0.Injectable
3479
3930
  }], ctorParameters: function () { return [{ type: i3__namespace.SkyLibResourcesService }]; } });
3480
3931
 
@@ -3482,12 +3933,12 @@
3482
3933
  var SKY_DATE_RANGE_PICKER_VALUE_ACCESSOR = {
3483
3934
  provide: i2$2.NG_VALUE_ACCESSOR,
3484
3935
  useExisting: i0.forwardRef(function () { return SkyDateRangePickerComponent; }),
3485
- multi: true
3936
+ multi: true,
3486
3937
  };
3487
3938
  var SKY_DATE_RANGE_PICKER_VALIDATOR = {
3488
3939
  provide: i2$2.NG_VALIDATORS,
3489
3940
  useExisting: i0.forwardRef(function () { return SkyDateRangePickerComponent; }),
3490
- multi: true
3941
+ multi: true,
3491
3942
  };
3492
3943
  /* tslint:enable */
3493
3944
  var uniqueId = 0;
@@ -3531,11 +3982,13 @@
3531
3982
  this.onTouched = function () { };
3532
3983
  /* istanbul ignore next */
3533
3984
  this.onValidatorChange = function () { };
3534
- this.localeProvider.getLocaleInfo()
3985
+ this.localeProvider
3986
+ .getLocaleInfo()
3535
3987
  .pipe(operators.takeUntil(this.ngUnsubscribe))
3536
3988
  .subscribe(function (localeInfo) {
3537
3989
  SkyDateFormatter.setLocale(localeInfo.locale);
3538
- _this.preferredShortDateFormat = SkyDateFormatter.getPreferredShortDateFormat();
3990
+ _this.preferredShortDateFormat =
3991
+ SkyDateFormatter.getPreferredShortDateFormat();
3539
3992
  });
3540
3993
  // Update icons when theme changes.
3541
3994
  /* istanbul ignore next */
@@ -3545,7 +3998,7 @@
3545
3998
  }
3546
3999
  Object.defineProperty(SkyDateRangePickerComponent.prototype, "calculatorIds", {
3547
4000
  get: function () {
3548
- return this._calculatorIds || [
4001
+ return (this._calculatorIds || [
3549
4002
  exports.SkyDateRangeCalculatorId.AnyTime,
3550
4003
  exports.SkyDateRangeCalculatorId.Before,
3551
4004
  exports.SkyDateRangeCalculatorId.After,
@@ -3567,8 +4020,8 @@
3567
4020
  exports.SkyDateRangeCalculatorId.NextCalendarYear,
3568
4021
  exports.SkyDateRangeCalculatorId.LastFiscalYear,
3569
4022
  exports.SkyDateRangeCalculatorId.ThisFiscalYear,
3570
- exports.SkyDateRangeCalculatorId.NextFiscalYear
3571
- ];
4023
+ exports.SkyDateRangeCalculatorId.NextFiscalYear,
4024
+ ]);
3572
4025
  },
3573
4026
  /**
3574
4027
  * Specifies IDs for the date range options to include in the picker's dropdown.
@@ -3685,8 +4138,7 @@
3685
4138
  });
3686
4139
  Object.defineProperty(SkyDateRangePickerComponent.prototype, "value", {
3687
4140
  get: function () {
3688
- if (this._value &&
3689
- this._value.calculatorId !== undefined) {
4141
+ if (this._value && this._value.calculatorId !== undefined) {
3690
4142
  return this._value;
3691
4143
  }
3692
4144
  return this.defaultValue;
@@ -3715,21 +4167,20 @@
3715
4167
  /* istanbul ignore else */
3716
4168
  if (_this.control) {
3717
4169
  _this.control.setValue(_this.value, {
3718
- emitEvent: false
4170
+ emitEvent: false,
3719
4171
  });
3720
4172
  }
3721
4173
  });
3722
4174
  };
3723
4175
  SkyDateRangePickerComponent.prototype.ngOnChanges = function (changes) {
3724
4176
  var _this = this;
3725
- if (changes.calculatorIds &&
3726
- changes.calculatorIds.firstChange === false) {
4177
+ if (changes.calculatorIds && changes.calculatorIds.firstChange === false) {
3727
4178
  this.updateCalculators().then(function () {
3728
4179
  var id = _this.calculatorIdControl.value;
3729
4180
  // Maintain the currently selected values if the calculators change after
3730
4181
  // a value has been chosen.
3731
4182
  var found = _this.calculators.find(function (calculator) {
3732
- return (calculator.calculatorId === id);
4183
+ return calculator.calculatorId === id;
3733
4184
  });
3734
4185
  /* istanbul ignore else */
3735
4186
  if (!found) {
@@ -3778,8 +4229,8 @@
3778
4229
  errors = {
3779
4230
  skyDateRange: {
3780
4231
  calculatorId: idControl.value,
3781
- errors: result
3782
- }
4232
+ errors: result,
4233
+ },
3783
4234
  };
3784
4235
  }
3785
4236
  else {
@@ -3830,7 +4281,7 @@
3830
4281
  this.formGroup = this.formBuilder.group({
3831
4282
  calculatorId: new i2$2.FormControl(),
3832
4283
  startDate: new i2$2.FormControl(),
3833
- endDate: new i2$2.FormControl()
4284
+ endDate: new i2$2.FormControl(),
3834
4285
  });
3835
4286
  if (this.disabled) {
3836
4287
  this.formGroup.disable();
@@ -3865,7 +4316,7 @@
3865
4316
  // listeners to be triggered, as those are reserved for user interactions.
3866
4317
  // (See the event listeners listed below.)
3867
4318
  this.formGroup.reset(value || this.value, {
3868
- emitEvent: false
4319
+ emitEvent: false,
3869
4320
  });
3870
4321
  };
3871
4322
  SkyDateRangePickerComponent.prototype.addEventListeners = function () {
@@ -3874,7 +4325,7 @@
3874
4325
  // when control is initialized with a value.
3875
4326
  rxjs.combineLatest([
3876
4327
  this.startDateControl.statusChanges,
3877
- this.endDateControl.statusChanges
4328
+ this.endDateControl.statusChanges,
3878
4329
  ])
3879
4330
  .pipe(operators.first())
3880
4331
  .subscribe(function (status) {
@@ -3917,7 +4368,7 @@
3917
4368
  // Detect errors from the date inputs and update ng- classes on picker.
3918
4369
  rxjs.combineLatest([
3919
4370
  this.startDateControl.statusChanges,
3920
- this.endDateControl.statusChanges
4371
+ this.endDateControl.statusChanges,
3921
4372
  ])
3922
4373
  .pipe(operators.takeUntil(this.ngUnsubscribe))
3923
4374
  .subscribe(function () {
@@ -3939,26 +4390,26 @@
3939
4390
  });
3940
4391
  };
3941
4392
  SkyDateRangePickerComponent.prototype.dateRangesEqual = function (rangeA, rangeB) {
3942
- return (JSON.stringify(rangeA) === JSON.stringify(rangeB));
4393
+ return JSON.stringify(rangeA) === JSON.stringify(rangeB);
3943
4394
  };
3944
4395
  return SkyDateRangePickerComponent;
3945
4396
  }());
3946
- SkyDateRangePickerComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: SkyDateRangePickerComponent, deps: [{ token: i0__namespace.ChangeDetectorRef }, { token: SkyDateRangeService }, { token: i2__namespace$2.FormBuilder }, { token: i3__namespace.SkyAppLocaleProvider }, { token: i1__namespace.SkyAppWindowRef }, { token: i3__namespace$2.SkyThemeService, optional: true }], target: i0__namespace.ɵɵFactoryTarget.Component });
3947
- SkyDateRangePickerComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: SkyDateRangePickerComponent, selector: "sky-date-range-picker", inputs: { calculatorIds: "calculatorIds", dateFormat: "dateFormat", disabled: "disabled", label: "label", startDateRequired: "startDateRequired", endDateRequired: "endDateRequired" }, providers: [
4397
+ SkyDateRangePickerComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0__namespace, type: SkyDateRangePickerComponent, deps: [{ token: i0__namespace.ChangeDetectorRef }, { token: SkyDateRangeService }, { token: i2__namespace$2.FormBuilder }, { token: i3__namespace.SkyAppLocaleProvider }, { token: i1__namespace.SkyAppWindowRef }, { token: i3__namespace$2.SkyThemeService, optional: true }], target: i0__namespace.ɵɵFactoryTarget.Component });
4398
+ SkyDateRangePickerComponent.ɵcmp = i0__namespace.ɵɵ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: [
3948
4399
  SKY_DATE_RANGE_PICKER_VALUE_ACCESSOR,
3949
- SKY_DATE_RANGE_PICKER_VALIDATOR
3950
- ], usesOnChanges: true, ngImport: i0__namespace, template: "<div *ngIf=\"isReady\"\n class=\"sky-date-range-picker\"\n [formGroup]=\"formGroup\"\n>\n <div\n class=\"sky-date-range-picker-form-group\"\n >\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 *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\n class=\"sky-date-range-picker-form-group\"\n [hidden]=\"!showStartDatePicker\"\n >\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\n class=\"sky-date-range-picker-form-group\"\n [hidden]=\"!showEndDatePicker\"\n >\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__namespace$1.λ10, selector: "sky-input-box", inputs: ["hasErrors", "disabled"] }, { type: SkyDatepickerComponent, selector: "sky-datepicker", inputs: ["pickerClass"] }], directives: [{ type: i3__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2__namespace$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2__namespace$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i2__namespace$2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { type: i2__namespace$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2__namespace$2.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i3__namespace$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2__namespace$2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i2__namespace$2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i3__namespace$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2__namespace$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__namespace$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }], pipes: { "skyLibResources": i3__namespace.SkyLibResourcesPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
3951
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: SkyDateRangePickerComponent, decorators: [{
4400
+ SKY_DATE_RANGE_PICKER_VALIDATOR,
4401
+ ], usesOnChanges: true, ngImport: i0__namespace, 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__namespace$1.λ10, selector: "sky-input-box", inputs: ["hasErrors", "disabled"] }, { type: SkyDatepickerComponent, selector: "sky-datepicker", inputs: ["pickerClass"], outputs: ["calendarDateRangeChange"] }], directives: [{ type: i5__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2__namespace$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2__namespace$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i2__namespace$2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { type: i2__namespace$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2__namespace$2.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i5__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2__namespace$2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i2__namespace$2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i5__namespace.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2__namespace$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__namespace$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }], pipes: { "skyLibResources": i3__namespace.SkyLibResourcesPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
4402
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0__namespace, type: SkyDateRangePickerComponent, decorators: [{
3952
4403
  type: i0.Component,
3953
4404
  args: [{
3954
4405
  selector: 'sky-date-range-picker',
3955
- template: "<div *ngIf=\"isReady\"\n class=\"sky-date-range-picker\"\n [formGroup]=\"formGroup\"\n>\n <div\n class=\"sky-date-range-picker-form-group\"\n >\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 *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\n class=\"sky-date-range-picker-form-group\"\n [hidden]=\"!showStartDatePicker\"\n >\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\n class=\"sky-date-range-picker-form-group\"\n [hidden]=\"!showEndDatePicker\"\n >\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",
4406
+ 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",
3956
4407
  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"],
3957
4408
  providers: [
3958
4409
  SKY_DATE_RANGE_PICKER_VALUE_ACCESSOR,
3959
- SKY_DATE_RANGE_PICKER_VALIDATOR
4410
+ SKY_DATE_RANGE_PICKER_VALIDATOR,
3960
4411
  ],
3961
- changeDetection: i0.ChangeDetectionStrategy.OnPush
4412
+ changeDetection: i0.ChangeDetectionStrategy.OnPush,
3962
4413
  }]
3963
4414
  }], ctorParameters: function () {
3964
4415
  return [{ type: i0__namespace.ChangeDetectorRef }, { type: SkyDateRangeService }, { type: i2__namespace$2.FormBuilder }, { type: i3__namespace.SkyAppLocaleProvider }, { type: i1__namespace.SkyAppWindowRef }, { type: i3__namespace$2.SkyThemeService, decorators: [{
@@ -3983,42 +4434,38 @@
3983
4434
  }
3984
4435
  return SkyDateRangePickerModule;
3985
4436
  }());
3986
- SkyDateRangePickerModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: SkyDateRangePickerModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
3987
- SkyDateRangePickerModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: SkyDateRangePickerModule, declarations: [SkyDateRangePickerComponent], imports: [i3$1.CommonModule,
4437
+ SkyDateRangePickerModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0__namespace, type: SkyDateRangePickerModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
4438
+ SkyDateRangePickerModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0__namespace, type: SkyDateRangePickerModule, declarations: [SkyDateRangePickerComponent], imports: [i5.CommonModule,
3988
4439
  i2$2.FormsModule,
3989
4440
  i2$2.ReactiveFormsModule,
3990
4441
  i3.SkyI18nModule,
3991
4442
  SkyDatepickerModule,
3992
4443
  SkyDatetimeResourcesModule,
3993
4444
  i2$1.SkyInputBoxModule], exports: [SkyDateRangePickerComponent] });
3994
- SkyDateRangePickerModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: SkyDateRangePickerModule, providers: [SkyDateRangeService], imports: [[
3995
- i3$1.CommonModule,
4445
+ SkyDateRangePickerModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0__namespace, type: SkyDateRangePickerModule, providers: [SkyDateRangeService], imports: [[
4446
+ i5.CommonModule,
3996
4447
  i2$2.FormsModule,
3997
4448
  i2$2.ReactiveFormsModule,
3998
4449
  i3.SkyI18nModule,
3999
4450
  SkyDatepickerModule,
4000
4451
  SkyDatetimeResourcesModule,
4001
- i2$1.SkyInputBoxModule
4452
+ i2$1.SkyInputBoxModule,
4002
4453
  ]] });
4003
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: SkyDateRangePickerModule, decorators: [{
4454
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0__namespace, type: SkyDateRangePickerModule, decorators: [{
4004
4455
  type: i0.NgModule,
4005
4456
  args: [{
4006
- declarations: [
4007
- SkyDateRangePickerComponent
4008
- ],
4457
+ declarations: [SkyDateRangePickerComponent],
4009
4458
  imports: [
4010
- i3$1.CommonModule,
4459
+ i5.CommonModule,
4011
4460
  i2$2.FormsModule,
4012
4461
  i2$2.ReactiveFormsModule,
4013
4462
  i3.SkyI18nModule,
4014
4463
  SkyDatepickerModule,
4015
4464
  SkyDatetimeResourcesModule,
4016
- i2$1.SkyInputBoxModule
4465
+ i2$1.SkyInputBoxModule,
4017
4466
  ],
4018
- exports: [
4019
- SkyDateRangePickerComponent
4020
- ],
4021
- providers: [SkyDateRangeService]
4467
+ exports: [SkyDateRangePickerComponent],
4468
+ providers: [SkyDateRangeService],
4022
4469
  }]
4023
4470
  }] });
4024
4471
 
@@ -4026,12 +4473,12 @@
4026
4473
  var SKY_TIMEPICKER_VALUE_ACCESSOR = {
4027
4474
  provide: i2$2.NG_VALUE_ACCESSOR,
4028
4475
  useExisting: i0.forwardRef(function () { return SkyTimepickerInputDirective; }),
4029
- multi: true
4476
+ multi: true,
4030
4477
  };
4031
4478
  var SKY_TIMEPICKER_VALIDATOR = {
4032
4479
  provide: i2$2.NG_VALIDATORS,
4033
4480
  useExisting: i0.forwardRef(function () { return SkyTimepickerInputDirective; }),
4034
- multi: true
4481
+ multi: true,
4035
4482
  };
4036
4483
  // tslint:enable
4037
4484
  var SkyTimepickerInputDirective = /** @class */ (function () {
@@ -4114,14 +4561,15 @@
4114
4561
  SkyTimepickerInputDirective.prototype.ngOnInit = function () {
4115
4562
  var _this = this;
4116
4563
  this.renderer.addClass(this.elRef.nativeElement, 'sky-form-control');
4117
- this.pickerChangedSubscription = this.skyTimepickerInput.selectedTimeChanged
4118
- .subscribe(function (newTime) {
4119
- _this.writeValue(newTime);
4120
- _this._onTouched();
4121
- });
4564
+ this.pickerChangedSubscription =
4565
+ this.skyTimepickerInput.selectedTimeChanged.subscribe(function (newTime) {
4566
+ _this.writeValue(newTime);
4567
+ _this._onTouched();
4568
+ });
4122
4569
  /* istanbul ignore else */
4123
4570
  if (!this.elRef.nativeElement.getAttribute('aria-label')) {
4124
- this.resourcesService.getString('skyux_timepicker_input_default_label')
4571
+ this.resourcesService
4572
+ .getString('skyux_timepicker_input_default_label')
4125
4573
  .subscribe(function (value) {
4126
4574
  _this.renderer.setAttribute(_this.elRef.nativeElement, 'aria-label', value);
4127
4575
  });
@@ -4132,7 +4580,7 @@
4132
4580
  /* istanbul ignore else */
4133
4581
  if (this.control && this.control.parent) {
4134
4582
  this.control.setValue(this.modelValue, {
4135
- emitEvent: false
4583
+ emitEvent: false,
4136
4584
  });
4137
4585
  this.changeDetector.markForCheck();
4138
4586
  }
@@ -4151,9 +4599,15 @@
4151
4599
  SkyTimepickerInputDirective.prototype.onBlur = function () {
4152
4600
  this._onTouched();
4153
4601
  };
4154
- SkyTimepickerInputDirective.prototype.registerOnChange = function (fn) { this._onChange = fn; };
4155
- SkyTimepickerInputDirective.prototype.registerOnTouched = function (fn) { this._onTouched = fn; };
4156
- SkyTimepickerInputDirective.prototype.registerOnValidatorChange = function (fn) { this._validatorChange = fn; };
4602
+ SkyTimepickerInputDirective.prototype.registerOnChange = function (fn) {
4603
+ this._onChange = fn;
4604
+ };
4605
+ SkyTimepickerInputDirective.prototype.registerOnTouched = function (fn) {
4606
+ this._onTouched = fn;
4607
+ };
4608
+ SkyTimepickerInputDirective.prototype.registerOnValidatorChange = function (fn) {
4609
+ this._validatorChange = fn;
4610
+ };
4157
4611
  SkyTimepickerInputDirective.prototype.setDisabledState = function (isDisabled) {
4158
4612
  this.disabled = isDisabled;
4159
4613
  };
@@ -4171,9 +4625,9 @@
4171
4625
  /* istanbul ignore next */
4172
4626
  if (value.local === 'Invalid date') {
4173
4627
  return {
4174
- 'skyTime': {
4175
- invalid: control.value
4176
- }
4628
+ skyTime: {
4629
+ invalid: control.value,
4630
+ },
4177
4631
  };
4178
4632
  }
4179
4633
  return undefined;
@@ -4209,13 +4663,13 @@
4209
4663
  this.returnFormat = currentFormat;
4210
4664
  }
4211
4665
  formatTime = {
4212
- 'hour': moment__default["default"](time, currentFormat).hour(),
4213
- 'minute': moment__default["default"](time, currentFormat).minute(),
4214
- 'meridie': moment__default["default"](time, currentFormat).format('A'),
4215
- 'timezone': parseInt(moment__default["default"](time, currentFormat).format('Z'), 10),
4216
- 'iso8601': moment__default["default"](time, currentFormat).toDate(),
4217
- 'local': moment__default["default"](time, currentFormat).format(currentFormat),
4218
- 'customFormat': this.returnFormat
4666
+ hour: moment__default["default"](time, currentFormat).hour(),
4667
+ minute: moment__default["default"](time, currentFormat).minute(),
4668
+ meridie: moment__default["default"](time, currentFormat).format('A'),
4669
+ timezone: parseInt(moment__default["default"](time, currentFormat).format('Z'), 10),
4670
+ iso8601: moment__default["default"](time, currentFormat).toDate(),
4671
+ local: moment__default["default"](time, currentFormat).format(currentFormat),
4672
+ customFormat: this.returnFormat,
4219
4673
  };
4220
4674
  return formatTime;
4221
4675
  }
@@ -4231,19 +4685,13 @@
4231
4685
  };
4232
4686
  return SkyTimepickerInputDirective;
4233
4687
  }());
4234
- SkyTimepickerInputDirective.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: SkyTimepickerInputDirective, deps: [{ token: i0__namespace.Renderer2 }, { token: i0__namespace.ElementRef }, { token: i3__namespace.SkyLibResourcesService }, { token: i0__namespace.ChangeDetectorRef }], target: i0__namespace.ɵɵFactoryTarget.Directive });
4235
- SkyTimepickerInputDirective.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.13", type: SkyTimepickerInputDirective, selector: "[skyTimepickerInput]", inputs: { skyTimepickerInput: "skyTimepickerInput", timeFormat: "timeFormat", returnFormat: "returnFormat", disabled: "disabled" }, host: { listeners: { "change": "onChange($event)", "blur": "onBlur()" } }, providers: [
4236
- SKY_TIMEPICKER_VALUE_ACCESSOR,
4237
- SKY_TIMEPICKER_VALIDATOR
4238
- ], usesOnChanges: true, ngImport: i0__namespace });
4239
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: SkyTimepickerInputDirective, decorators: [{
4688
+ SkyTimepickerInputDirective.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0__namespace, type: SkyTimepickerInputDirective, deps: [{ token: i0__namespace.Renderer2 }, { token: i0__namespace.ElementRef }, { token: i3__namespace.SkyLibResourcesService }, { token: i0__namespace.ChangeDetectorRef }], target: i0__namespace.ɵɵFactoryTarget.Directive });
4689
+ SkyTimepickerInputDirective.ɵdir = i0__namespace.ɵɵ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__namespace });
4690
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0__namespace, type: SkyTimepickerInputDirective, decorators: [{
4240
4691
  type: i0.Directive,
4241
4692
  args: [{
4242
4693
  selector: '[skyTimepickerInput]',
4243
- providers: [
4244
- SKY_TIMEPICKER_VALUE_ACCESSOR,
4245
- SKY_TIMEPICKER_VALIDATOR
4246
- ]
4694
+ providers: [SKY_TIMEPICKER_VALUE_ACCESSOR, SKY_TIMEPICKER_VALIDATOR],
4247
4695
  }]
4248
4696
  }], ctorParameters: function () { return [{ type: i0__namespace.Renderer2 }, { type: i0__namespace.ElementRef }, { type: i3__namespace.SkyLibResourcesService }, { type: i0__namespace.ChangeDetectorRef }]; }, propDecorators: { skyTimepickerInput: [{
4249
4697
  type: i0.Input
@@ -4325,10 +4773,10 @@
4325
4773
  if (this.is8601) {
4326
4774
  hourOffset = 0;
4327
4775
  }
4328
- hour = moment__default["default"]({ 'hour': setHour }).add(hourOffset, 'hours').hour();
4776
+ hour = moment__default["default"]({ hour: setHour }).add(hourOffset, 'hours').hour();
4329
4777
  this.activeTime = moment__default["default"]({
4330
- 'hour': hour,
4331
- 'minute': moment__default["default"](this.activeTime).get('minute') + 0
4778
+ hour: hour,
4779
+ minute: moment__default["default"](this.activeTime).get('minute') + 0,
4332
4780
  }).toDate();
4333
4781
  this.selectedTimeChanged.emit(this.selectedTime);
4334
4782
  },
@@ -4360,8 +4808,8 @@
4360
4808
  },
4361
4809
  set: function (minute) {
4362
4810
  this.activeTime = moment__default["default"]({
4363
- 'hour': moment__default["default"](this.activeTime).get('hour') + 0,
4364
- 'minute': minute
4811
+ hour: moment__default["default"](this.activeTime).get('hour') + 0,
4812
+ minute: minute,
4365
4813
  }).toDate();
4366
4814
  this.selectedTimeChanged.emit(this.selectedTime);
4367
4815
  },
@@ -4377,8 +4825,9 @@
4377
4825
  timezone: parseInt(moment__default["default"](this.activeTime).format('Z'), 10),
4378
4826
  iso8601: this.activeTime,
4379
4827
  local: moment__default["default"](this.activeTime).format(this.localeFormat),
4380
- customFormat: (typeof this.returnFormat !== 'undefined')
4381
- ? this.returnFormat : this.localeFormat
4828
+ customFormat: typeof this.returnFormat !== 'undefined'
4829
+ ? this.returnFormat
4830
+ : this.localeFormat,
4382
4831
  };
4383
4832
  return time;
4384
4833
  },
@@ -4424,7 +4873,7 @@
4424
4873
  if (this.inputBoxHostService) {
4425
4874
  this.inputBoxHostService.populate({
4426
4875
  inputTemplate: this.inputTemplateRef,
4427
- buttonsTemplate: this.triggerButtonTemplateRef
4876
+ buttonsTemplate: this.triggerButtonTemplateRef,
4428
4877
  });
4429
4878
  }
4430
4879
  };
@@ -4456,8 +4905,7 @@
4456
4905
  }
4457
4906
  var data;
4458
4907
  data = {
4459
- 'hours': Array.apply(undefined, Array(h))
4460
- .map(function (x, i) {
4908
+ hours: Array.apply(undefined, Array(h)).map(function (x, i) {
4461
4909
  if (format === 'hh') {
4462
4910
  return ++i;
4463
4911
  }
@@ -4469,12 +4917,11 @@
4469
4917
  /* sanity check */
4470
4918
  return 0;
4471
4919
  }),
4472
- 'minutes': Array.apply(undefined, Array(m))
4473
- .map(function (x, i) {
4920
+ minutes: Array.apply(undefined, Array(m)).map(function (x, i) {
4474
4921
  return i * minuteMultiplier;
4475
4922
  }),
4476
- 'localeFormat': localeFormat,
4477
- 'minuteMultiplier': minuteMultiplier
4923
+ localeFormat: localeFormat,
4924
+ minuteMultiplier: minuteMultiplier,
4478
4925
  };
4479
4926
  this.hours = data.hours;
4480
4927
  this.minutes = data.minutes;
@@ -4529,7 +4976,7 @@
4529
4976
  affixer.placementChange
4530
4977
  .pipe(operators.takeUntil(this.timepickerUnsubscribe))
4531
4978
  .subscribe(function (change) {
4532
- _this.isVisible = (change.placement !== null);
4979
+ _this.isVisible = change.placement !== null;
4533
4980
  _this.changeDetector.markForCheck();
4534
4981
  });
4535
4982
  affixer.affixTo(this.triggerButtonRef.nativeElement, {
@@ -4537,7 +4984,7 @@
4537
4984
  enableAutoFit: true,
4538
4985
  horizontalAlignment: 'right',
4539
4986
  isSticky: true,
4540
- placement: 'below'
4987
+ placement: 'below',
4541
4988
  });
4542
4989
  this.affixer = affixer;
4543
4990
  };
@@ -4552,7 +4999,7 @@
4552
4999
  var _this = this;
4553
5000
  var overlay = this.overlayService.create({
4554
5001
  enableClose: false,
4555
- enablePointerEvents: false
5002
+ enablePointerEvents: false,
4556
5003
  });
4557
5004
  overlay.backdropClick
4558
5005
  .pipe(operators.takeUntil(this.timepickerUnsubscribe))
@@ -4599,16 +5046,16 @@
4599
5046
  };
4600
5047
  return SkyTimepickerComponent;
4601
5048
  }());
4602
- SkyTimepickerComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: SkyTimepickerComponent, deps: [{ token: i1__namespace.SkyAffixService }, { token: i0__namespace.ChangeDetectorRef }, { token: i1__namespace.SkyCoreAdapterService }, { token: i1__namespace.SkyOverlayService }, { token: i2__namespace$1.SkyInputBoxHostService, optional: true }, { token: i3__namespace$2.SkyThemeService, optional: true }], target: i0__namespace.ɵɵFactoryTarget.Component });
4603
- SkyTimepickerComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: SkyTimepickerComponent, selector: "sky-timepicker", outputs: { selectedTimeChanged: "selectedTimeChanged" }, viewQueries: [{ propertyName: "timepickerRef", first: true, predicate: ["timepickerRef"], descendants: true, read: i0.ElementRef }, { propertyName: "timepickerTemplateRef", first: true, predicate: ["timepickerTemplateRef"], descendants: true, read: i0.TemplateRef }, { propertyName: "triggerButtonRef", first: true, predicate: ["triggerButtonRef"], descendants: true, read: i0.ElementRef }, { propertyName: "inputTemplateRef", first: true, predicate: ["inputTemplateRef"], descendants: true, read: i0.TemplateRef, static: true }, { propertyName: "triggerButtonTemplateRef", first: true, predicate: ["triggerButtonTemplateRef"], descendants: true, read: i0.TemplateRef, static: true }], ngImport: i0__namespace, template: "<div\n class=\"sky-timepicker\"\n>\n <ng-container *ngIf=\"!inputBoxHostService\">\n <div\n class=\"sky-input-group\"\n >\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\n class=\"sky-input-group-btn\"\n >\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'\"\n icon=\"clock-o\"\n size=\"lg\"\n ></sky-icon>\n <sky-icon *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\n class=\"sky-timepicker-content\"\n >\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\n class=\"sky-timepicker-column\"\n >\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\"\n class=\"sky-timepicker-column\"\n >\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\n class=\"sky-timepicker-footer\"\n >\n <section\n class=\"sky-timepicker-column\"\n >\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__namespace.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }], directives: [{ type: i3__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3__namespace$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i3__namespace$2.λ3, selector: "[skyThemeIf]", inputs: ["skyThemeIf"] }, { type: i3__namespace$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3__namespace$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "skyLibResources": i3__namespace.SkyLibResourcesPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush, encapsulation: i0__namespace.ViewEncapsulation.None });
4604
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: SkyTimepickerComponent, decorators: [{
5049
+ SkyTimepickerComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0__namespace, type: SkyTimepickerComponent, deps: [{ token: i1__namespace.SkyAffixService }, { token: i0__namespace.ChangeDetectorRef }, { token: i1__namespace.SkyCoreAdapterService }, { token: i1__namespace.SkyOverlayService }, { token: i2__namespace$1.SkyInputBoxHostService, optional: true }, { token: i3__namespace$2.SkyThemeService, optional: true }], target: i0__namespace.ɵɵFactoryTarget.Component });
5050
+ SkyTimepickerComponent.ɵcmp = i0__namespace.ɵɵ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: i0.ElementRef }, { propertyName: "timepickerTemplateRef", first: true, predicate: ["timepickerTemplateRef"], descendants: true, read: i0.TemplateRef }, { propertyName: "triggerButtonRef", first: true, predicate: ["triggerButtonRef"], descendants: true, read: i0.ElementRef }, { propertyName: "inputTemplateRef", first: true, predicate: ["inputTemplateRef"], descendants: true, read: i0.TemplateRef, static: true }, { propertyName: "triggerButtonTemplateRef", first: true, predicate: ["triggerButtonTemplateRef"], descendants: true, read: i0.TemplateRef, static: true }], ngImport: i0__namespace, 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__namespace.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }], directives: [{ type: i5__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5__namespace.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i3__namespace$2.λ3, selector: "[skyThemeIf]", inputs: ["skyThemeIf"] }, { type: i5__namespace.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i5__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "skyLibResources": i3__namespace.SkyLibResourcesPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush, encapsulation: i0__namespace.ViewEncapsulation.None });
5051
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0__namespace, type: SkyTimepickerComponent, decorators: [{
4605
5052
  type: i0.Component,
4606
5053
  args: [{
4607
5054
  selector: 'sky-timepicker',
4608
- template: "<div\n class=\"sky-timepicker\"\n>\n <ng-container *ngIf=\"!inputBoxHostService\">\n <div\n class=\"sky-input-group\"\n >\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\n class=\"sky-input-group-btn\"\n >\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'\"\n icon=\"clock-o\"\n size=\"lg\"\n ></sky-icon>\n <sky-icon *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\n class=\"sky-timepicker-content\"\n >\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\n class=\"sky-timepicker-column\"\n >\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\"\n class=\"sky-timepicker-column\"\n >\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\n class=\"sky-timepicker-footer\"\n >\n <section\n class=\"sky-timepicker-column\"\n >\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",
5055
+ 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",
4609
5056
  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"],
4610
5057
  encapsulation: i0.ViewEncapsulation.None,
4611
- changeDetection: i0.ChangeDetectionStrategy.OnPush
5058
+ changeDetection: i0.ChangeDetectionStrategy.OnPush,
4612
5059
  }]
4613
5060
  }], ctorParameters: function () {
4614
5061
  return [{ type: i1__namespace.SkyAffixService }, { type: i0__namespace.ChangeDetectorRef }, { type: i1__namespace.SkyCoreAdapterService }, { type: i1__namespace.SkyOverlayService }, { type: i2__namespace$1.SkyInputBoxHostService, decorators: [{
@@ -4621,29 +5068,29 @@
4621
5068
  }], timepickerRef: [{
4622
5069
  type: i0.ViewChild,
4623
5070
  args: ['timepickerRef', {
4624
- read: i0.ElementRef
5071
+ read: i0.ElementRef,
4625
5072
  }]
4626
5073
  }], timepickerTemplateRef: [{
4627
5074
  type: i0.ViewChild,
4628
5075
  args: ['timepickerTemplateRef', {
4629
- read: i0.TemplateRef
5076
+ read: i0.TemplateRef,
4630
5077
  }]
4631
5078
  }], triggerButtonRef: [{
4632
5079
  type: i0.ViewChild,
4633
5080
  args: ['triggerButtonRef', {
4634
- read: i0.ElementRef
5081
+ read: i0.ElementRef,
4635
5082
  }]
4636
5083
  }], inputTemplateRef: [{
4637
5084
  type: i0.ViewChild,
4638
5085
  args: ['inputTemplateRef', {
4639
5086
  read: i0.TemplateRef,
4640
- static: true
5087
+ static: true,
4641
5088
  }]
4642
5089
  }], triggerButtonTemplateRef: [{
4643
5090
  type: i0.ViewChild,
4644
5091
  args: ['triggerButtonTemplateRef', {
4645
5092
  read: i0.TemplateRef,
4646
- static: true
5093
+ static: true,
4647
5094
  }]
4648
5095
  }] } });
4649
5096
 
@@ -4652,45 +5099,37 @@
4652
5099
  }
4653
5100
  return SkyTimepickerModule;
4654
5101
  }());
4655
- SkyTimepickerModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: SkyTimepickerModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
4656
- SkyTimepickerModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: SkyTimepickerModule, declarations: [SkyTimepickerInputDirective,
4657
- SkyTimepickerComponent], imports: [i3$1.CommonModule,
5102
+ SkyTimepickerModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0__namespace, type: SkyTimepickerModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
5103
+ SkyTimepickerModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0__namespace, type: SkyTimepickerModule, declarations: [SkyTimepickerInputDirective, SkyTimepickerComponent], imports: [i5.CommonModule,
4658
5104
  i3.SkyI18nModule,
4659
5105
  i2.SkyIconModule,
4660
5106
  SkyDatetimeResourcesModule,
4661
5107
  i1.SkyAffixModule,
4662
5108
  i1.SkyOverlayModule,
4663
- i3$2.SkyThemeModule], exports: [SkyTimepickerInputDirective,
4664
- SkyTimepickerComponent] });
4665
- SkyTimepickerModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: SkyTimepickerModule, imports: [[
4666
- i3$1.CommonModule,
5109
+ i3$2.SkyThemeModule], exports: [SkyTimepickerInputDirective, SkyTimepickerComponent] });
5110
+ SkyTimepickerModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0__namespace, type: SkyTimepickerModule, imports: [[
5111
+ i5.CommonModule,
4667
5112
  i3.SkyI18nModule,
4668
5113
  i2.SkyIconModule,
4669
5114
  SkyDatetimeResourcesModule,
4670
5115
  i1.SkyAffixModule,
4671
5116
  i1.SkyOverlayModule,
4672
- i3$2.SkyThemeModule
5117
+ i3$2.SkyThemeModule,
4673
5118
  ]] });
4674
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: SkyTimepickerModule, decorators: [{
5119
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0__namespace, type: SkyTimepickerModule, decorators: [{
4675
5120
  type: i0.NgModule,
4676
5121
  args: [{
4677
- declarations: [
4678
- SkyTimepickerInputDirective,
4679
- SkyTimepickerComponent
4680
- ],
5122
+ declarations: [SkyTimepickerInputDirective, SkyTimepickerComponent],
4681
5123
  imports: [
4682
- i3$1.CommonModule,
5124
+ i5.CommonModule,
4683
5125
  i3.SkyI18nModule,
4684
5126
  i2.SkyIconModule,
4685
5127
  SkyDatetimeResourcesModule,
4686
5128
  i1.SkyAffixModule,
4687
5129
  i1.SkyOverlayModule,
4688
- i3$2.SkyThemeModule
5130
+ i3$2.SkyThemeModule,
4689
5131
  ],
4690
- exports: [
4691
- SkyTimepickerInputDirective,
4692
- SkyTimepickerComponent
4693
- ]
5132
+ exports: [SkyTimepickerInputDirective, SkyTimepickerComponent],
4694
5133
  }]
4695
5134
  }] });
4696
5135
 
@@ -4700,6 +5139,7 @@
4700
5139
 
4701
5140
  exports.SkyDatePipe = SkyDatePipe;
4702
5141
  exports.SkyDatePipeModule = SkyDatePipeModule;
5142
+ exports.SkyDateRangeCalculator = SkyDateRangeCalculator;
4703
5143
  exports.SkyDateRangePickerModule = SkyDateRangePickerModule;
4704
5144
  exports.SkyDateRangeService = SkyDateRangeService;
4705
5145
  exports.SkyDatepickerConfigService = SkyDatepickerConfigService;