@skyux/datetime 5.5.0-beta.0 → 5.6.1

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 (65) hide show
  1. package/bundles/skyux-datetime.umd.js +1007 -690
  2. package/documentation.json +187 -187
  3. package/esm2015/lib/modules/date-pipe/date-format-utility.js.map +1 -1
  4. package/esm2015/lib/modules/date-pipe/date-pipe.module.js.map +1 -1
  5. package/esm2015/lib/modules/date-pipe/date.pipe.js.map +1 -1
  6. package/esm2015/lib/modules/date-pipe/fuzzy-date.pipe.js.map +1 -1
  7. package/esm2015/lib/modules/date-range-picker/date-range-picker.component.js +3 -3
  8. package/esm2015/lib/modules/date-range-picker/date-range-picker.component.js.map +1 -1
  9. package/esm2015/lib/modules/date-range-picker/date-range-picker.module.js.map +1 -1
  10. package/esm2015/lib/modules/date-range-picker/date-range.service.js.map +1 -1
  11. package/esm2015/lib/modules/date-range-picker/types/date-range-calculation.js.map +1 -1
  12. package/esm2015/lib/modules/date-range-picker/types/date-range-calculator-config.js.map +1 -1
  13. package/esm2015/lib/modules/date-range-picker/types/date-range-calculator.js.map +1 -1
  14. package/esm2015/lib/modules/date-range-picker/types/date-range-default-calculator-config.js.map +1 -1
  15. package/esm2015/lib/modules/date-range-picker/types/date-range-default-calculator-configs.js.map +1 -1
  16. package/esm2015/lib/modules/datepicker/date-formatter.js.map +1 -1
  17. package/esm2015/lib/modules/datepicker/datepicker-calendar-change.js.map +1 -1
  18. package/esm2015/lib/modules/datepicker/datepicker-calendar-inner.component.js +6 -6
  19. package/esm2015/lib/modules/datepicker/datepicker-calendar-inner.component.js.map +1 -1
  20. package/esm2015/lib/modules/datepicker/datepicker-calendar.component.js +1 -1
  21. package/esm2015/lib/modules/datepicker/datepicker-calendar.component.js.map +1 -1
  22. package/esm2015/lib/modules/datepicker/datepicker-input-fuzzy.directive.js +2 -2
  23. package/esm2015/lib/modules/datepicker/datepicker-input-fuzzy.directive.js.map +1 -1
  24. package/esm2015/lib/modules/datepicker/datepicker-input.directive.js +3 -3
  25. package/esm2015/lib/modules/datepicker/datepicker-input.directive.js.map +1 -1
  26. package/esm2015/lib/modules/datepicker/datepicker.component.js +2 -2
  27. package/esm2015/lib/modules/datepicker/datepicker.component.js.map +1 -1
  28. package/esm2015/lib/modules/datepicker/datepicker.module.js +10 -10
  29. package/esm2015/lib/modules/datepicker/datepicker.module.js.map +1 -1
  30. package/esm2015/lib/modules/datepicker/daypicker-button.component.js.map +1 -1
  31. package/esm2015/lib/modules/datepicker/daypicker-cell.component.js +1 -1
  32. package/esm2015/lib/modules/datepicker/daypicker-cell.component.js.map +1 -1
  33. package/esm2015/lib/modules/datepicker/daypicker.component.js +13 -13
  34. package/esm2015/lib/modules/datepicker/daypicker.component.js.map +1 -1
  35. package/esm2015/lib/modules/datepicker/fuzzy-date.service.js +10 -10
  36. package/esm2015/lib/modules/datepicker/fuzzy-date.service.js.map +1 -1
  37. package/esm2015/lib/modules/datepicker/monthpicker.component.js +5 -5
  38. package/esm2015/lib/modules/datepicker/monthpicker.component.js.map +1 -1
  39. package/esm2015/lib/modules/datepicker/yearpicker.component.js +2 -2
  40. package/esm2015/lib/modules/datepicker/yearpicker.component.js.map +1 -1
  41. package/esm2015/lib/modules/shared/sky-datetime-resources.module.js +1 -1
  42. package/esm2015/lib/modules/shared/sky-datetime-resources.module.js.map +1 -1
  43. package/esm2015/lib/modules/timepicker/timepicker.component.js +8 -8
  44. package/esm2015/lib/modules/timepicker/timepicker.component.js.map +1 -1
  45. package/esm2015/lib/modules/timepicker/timepicker.directive.js +4 -5
  46. package/esm2015/lib/modules/timepicker/timepicker.directive.js.map +1 -1
  47. package/esm2015/lib/modules/timepicker/timepicker.module.js +3 -3
  48. package/esm2015/lib/modules/timepicker/timepicker.module.js.map +1 -1
  49. package/esm2015/testing/datepicker-fixture.js.map +1 -1
  50. package/esm2015/testing/timepicker-fixture.js.map +1 -1
  51. package/fesm2015/skyux-datetime-testing.js.map +1 -1
  52. package/fesm2015/skyux-datetime.js +445 -446
  53. package/fesm2015/skyux-datetime.js.map +1 -1
  54. package/lib/modules/date-range-picker/date-range-picker.component.d.ts +2 -2
  55. package/lib/modules/date-range-picker/date-range.service.d.ts +1 -1
  56. package/lib/modules/date-range-picker/types/date-range-calculation.d.ts +1 -1
  57. package/lib/modules/date-range-picker/types/date-range-calculator.d.ts +1 -1
  58. package/lib/modules/datepicker/datepicker-calendar-change.d.ts +1 -1
  59. package/lib/modules/datepicker/datepicker-calendar-inner.component.d.ts +1 -1
  60. package/lib/modules/datepicker/datepicker-calendar.component.d.ts +1 -1
  61. package/lib/modules/datepicker/datepicker-input-fuzzy.directive.d.ts +1 -1
  62. package/lib/modules/datepicker/datepicker-input.directive.d.ts +1 -1
  63. package/lib/modules/datepicker/datepicker.component.d.ts +2 -2
  64. package/lib/modules/datepicker/daypicker.component.d.ts +1 -1
  65. package/package.json +18 -16
@@ -1 +1 @@
1
- {"version":3,"file":"daypicker-cell.component.js","sourceRoot":"","sources":["../../../../../../../../libs/components/datetime/src/lib/modules/datepicker/daypicker-cell.component.ts","../../../../../../../../libs/components/datetime/src/lib/modules/datepicker/daypicker-cell.component.html"],"names":[],"mappings":"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","sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n Input,\n OnDestroy,\n OnInit,\n} from '@angular/core';\n\nimport { SkyPopoverMessage, SkyPopoverMessageType } from '@skyux/popovers';\n\nimport { takeUntil } from 'rxjs/operators';\n\nimport { Subject } from 'rxjs';\n\nimport { SkyDatepickerCalendarInnerComponent } from './datepicker-calendar-inner.component';\n\nimport { SkyDatepickerDate } from './datepicker-date';\n\nimport { SkyDatepickerService } from './datepicker.service';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-daypicker-cell',\n templateUrl: 'daypicker-cell.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyDayPickerCellComponent implements OnInit, OnDestroy {\n /**\n * Specifies if the active date has been changed.\n */\n @Input()\n public activeDateHasChanged: boolean;\n\n /**\n * Specifies the date this picker cell will represent on the calendar.\n */\n @Input()\n public date: SkyDatepickerDate;\n\n public hasTooltip: boolean = false;\n\n public popoverController = new Subject<SkyPopoverMessage>();\n\n private activeUid: string = '';\n\n private cancelPopover: boolean = false;\n\n private popoverOpen: boolean = false;\n\n private ngUnsubscribe = new Subject<void>();\n\n public constructor(\n private datepicker: SkyDatepickerCalendarInnerComponent,\n private datepickerService: SkyDatepickerService\n ) {}\n\n public ngOnInit(): void {\n this.hasTooltip =\n this.date.keyDate &&\n this.date.keyDateText &&\n this.date.keyDateText.length > 0 &&\n this.date.keyDateText[0].length > 0;\n\n // show the tooltip if this is the active date and is not the\n // initial active date (activeDateHasChanged)\n if (\n this.datepicker.isActive(this.date) &&\n this.activeDateHasChanged &&\n this.hasTooltip\n ) {\n this.activeUid = this.date.uid;\n this.showTooltip();\n }\n\n if (this.hasTooltip) {\n this.datepickerService.keyDatePopoverStream\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((date) => {\n if (date) {\n this.activeUid = date.uid;\n } else {\n this.activeUid = '';\n }\n // If this day has an open popover and they have moved off of the day close the popover.\n if (this.date.uid !== this.activeUid) {\n this.hideTooltip();\n }\n });\n }\n }\n\n public ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n public onDayMouseenter(): void {\n this.cancelPopover = false;\n if (this.hasTooltip) {\n this.showTooltip();\n this.datepickerService.keyDatePopoverStream.next(this.date);\n }\n }\n\n public onDayMouseleave(): void {\n this.cancelPopover = true;\n if (this.hasTooltip) {\n this.hideTooltip();\n }\n this.datepickerService.keyDatePopoverStream.next(undefined);\n }\n\n public onPopoverClosed(): void {\n this.popoverOpen = false;\n }\n\n public onPopoverOpened(): void {\n this.popoverOpen = true;\n /* istanbul ignore else */\n if (this.cancelPopover) {\n // If the popover gets opened just as a mouseout event happens, close it.\n this.hideTooltip();\n this.cancelPopover = false;\n }\n }\n\n public getKeyDateLabel(): string {\n if (this.hasTooltip) {\n return this.date.keyDateText.join(', ');\n } else {\n return '';\n }\n }\n\n private hideTooltip(): void {\n /* istanbul ignore else */\n if (this.popoverOpen) {\n this.popoverController.next({ type: SkyPopoverMessageType.Close });\n }\n }\n\n private showTooltip(): void {\n /* istanbul ignore else */\n if (this.hasTooltip && !this.popoverOpen) {\n /**\n * Delay 1/2 second before opening the popover as long as mouse hasn't moved off the date.\n */\n setTimeout(() => {\n if (!this.cancelPopover && this.activeUid === this.date.uid) {\n this.popoverController.next({ type: SkyPopoverMessageType.Open });\n }\n }, 500);\n }\n }\n}\n","<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"]}
1
+ {"version":3,"file":"daypicker-cell.component.js","sourceRoot":"","sources":["../../../../../../../../libs/components/datetime/src/lib/modules/datepicker/daypicker-cell.component.ts","../../../../../../../../libs/components/datetime/src/lib/modules/datepicker/daypicker-cell.component.html"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,SAAS,EACT,KAAK,GAGN,MAAM,eAAe,CAAC;AACvB,OAAO,EAAqB,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAE3E,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,mCAAmC,EAAE,MAAM,uCAAuC,CAAC;AAE5F,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;;;;;;;AAE5D;;GAEG;AAMH,MAAM,OAAO,yBAAyB;IAyBpC,YACU,UAA+C,EAC/C,iBAAuC;QADvC,eAAU,GAAV,UAAU,CAAqC;QAC/C,sBAAiB,GAAjB,iBAAiB,CAAsB;QAd1C,eAAU,GAAG,KAAK,CAAC;QAEnB,sBAAiB,GAAG,IAAI,OAAO,EAAqB,CAAC;QAEpD,cAAS,GAAG,EAAE,CAAC;QAEf,kBAAa,GAAG,KAAK,CAAC;QAEtB,gBAAW,GAAG,KAAK,CAAC;QAEpB,kBAAa,GAAG,IAAI,OAAO,EAAQ,CAAC;IAKzC,CAAC;IAEG,QAAQ;QACb,IAAI,CAAC,UAAU;YACb,IAAI,CAAC,IAAI,CAAC,OAAO;gBACjB,IAAI,CAAC,IAAI,CAAC,WAAW;gBACrB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;gBAChC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QAEtC,6DAA6D;QAC7D,6CAA6C;QAC7C,IACE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;YACnC,IAAI,CAAC,oBAAoB;YACzB,IAAI,CAAC,UAAU,EACf;YACA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;YAC/B,IAAI,CAAC,WAAW,EAAE,CAAC;SACpB;QAED,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,iBAAiB,CAAC,oBAAoB;iBACxC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;iBACnC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;gBAClB,IAAI,IAAI,EAAE;oBACR,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC;iBAC3B;qBAAM;oBACL,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;iBACrB;gBACD,wFAAwF;gBACxF,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,SAAS,EAAE;oBACpC,IAAI,CAAC,WAAW,EAAE,CAAC;iBACpB;YACH,CAAC,CAAC,CAAC;SACN;IACH,CAAC;IAEM,WAAW;QAChB,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;QAC1B,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;IAChC,CAAC;IAEM,eAAe;QACpB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC7D;IACH,CAAC;IAEM,eAAe;QACpB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,WAAW,EAAE,CAAC;SACpB;QACD,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC9D,CAAC;IAEM,eAAe;QACpB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,CAAC;IAEM,eAAe;QACpB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,0BAA0B;QAC1B,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,yEAAyE;YACzE,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;SAC5B;IACH,CAAC;IAEM,eAAe;QACpB,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACzC;aAAM;YACL,OAAO,EAAE,CAAC;SACX;IACH,CAAC;IAEO,WAAW;QACjB,0BAA0B;QAC1B,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,qBAAqB,CAAC,KAAK,EAAE,CAAC,CAAC;SACpE;IACH,CAAC;IAEO,WAAW;QACjB,0BAA0B;QAC1B,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACxC;;eAEG;YACH,UAAU,CAAC,GAAG,EAAE;gBACd,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;oBAC3D,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,qBAAqB,CAAC,IAAI,EAAE,CAAC,CAAC;iBACnE;YACH,CAAC,EAAE,GAAG,CAAC,CAAC;SACT;IACH,CAAC;;uHA/HU,yBAAyB;2GAAzB,yBAAyB,kICxBtC,o9BAiCA;4FDTa,yBAAyB;kBALrC,SAAS;mBAAC;oBACT,QAAQ,EAAE,oBAAoB;oBAC9B,WAAW,EAAE,+BAA+B;oBAC5C,eAAe,EAAE,uBAAuB,CAAC,MAAM;iBAChD;6JAMQ,oBAAoB;sBAD1B,KAAK;gBAOC,IAAI;sBADV,KAAK","sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n Input,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport { SkyPopoverMessage, SkyPopoverMessageType } from '@skyux/popovers';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyDatepickerCalendarInnerComponent } from './datepicker-calendar-inner.component';\nimport { SkyDatepickerDate } from './datepicker-date';\nimport { SkyDatepickerService } from './datepicker.service';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-daypicker-cell',\n templateUrl: 'daypicker-cell.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyDayPickerCellComponent implements OnInit, OnDestroy {\n /**\n * Specifies if the active date has been changed.\n */\n @Input()\n public activeDateHasChanged: boolean;\n\n /**\n * Specifies the date this picker cell will represent on the calendar.\n */\n @Input()\n public date: SkyDatepickerDate;\n\n public hasTooltip = false;\n\n public popoverController = new Subject<SkyPopoverMessage>();\n\n private activeUid = '';\n\n private cancelPopover = false;\n\n private popoverOpen = false;\n\n private ngUnsubscribe = new Subject<void>();\n\n public constructor(\n private datepicker: SkyDatepickerCalendarInnerComponent,\n private datepickerService: SkyDatepickerService\n ) {}\n\n public ngOnInit(): void {\n this.hasTooltip =\n this.date.keyDate &&\n this.date.keyDateText &&\n this.date.keyDateText.length > 0 &&\n this.date.keyDateText[0].length > 0;\n\n // show the tooltip if this is the active date and is not the\n // initial active date (activeDateHasChanged)\n if (\n this.datepicker.isActive(this.date) &&\n this.activeDateHasChanged &&\n this.hasTooltip\n ) {\n this.activeUid = this.date.uid;\n this.showTooltip();\n }\n\n if (this.hasTooltip) {\n this.datepickerService.keyDatePopoverStream\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((date) => {\n if (date) {\n this.activeUid = date.uid;\n } else {\n this.activeUid = '';\n }\n // If this day has an open popover and they have moved off of the day close the popover.\n if (this.date.uid !== this.activeUid) {\n this.hideTooltip();\n }\n });\n }\n }\n\n public ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n public onDayMouseenter(): void {\n this.cancelPopover = false;\n if (this.hasTooltip) {\n this.showTooltip();\n this.datepickerService.keyDatePopoverStream.next(this.date);\n }\n }\n\n public onDayMouseleave(): void {\n this.cancelPopover = true;\n if (this.hasTooltip) {\n this.hideTooltip();\n }\n this.datepickerService.keyDatePopoverStream.next(undefined);\n }\n\n public onPopoverClosed(): void {\n this.popoverOpen = false;\n }\n\n public onPopoverOpened(): void {\n this.popoverOpen = true;\n /* istanbul ignore else */\n if (this.cancelPopover) {\n // If the popover gets opened just as a mouseout event happens, close it.\n this.hideTooltip();\n this.cancelPopover = false;\n }\n }\n\n public getKeyDateLabel(): string {\n if (this.hasTooltip) {\n return this.date.keyDateText.join(', ');\n } else {\n return '';\n }\n }\n\n private hideTooltip(): void {\n /* istanbul ignore else */\n if (this.popoverOpen) {\n this.popoverController.next({ type: SkyPopoverMessageType.Close });\n }\n }\n\n private showTooltip(): void {\n /* istanbul ignore else */\n if (this.hasTooltip && !this.popoverOpen) {\n /**\n * Delay 1/2 second before opening the popover as long as mouse hasn't moved off the date.\n */\n setTimeout(() => {\n if (!this.cancelPopover && this.activeUid === this.date.uid) {\n this.popoverController.next({ type: SkyPopoverMessageType.Open });\n }\n }, 500);\n }\n }\n}\n","<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"]}
@@ -46,7 +46,7 @@ export class SkyDayPickerComponent {
46
46
  this.ngUnsubscribe.complete();
47
47
  }
48
48
  getDates(startDate, n) {
49
- let dates = new Array(n);
49
+ const dates = new Array(n);
50
50
  let current = new Date(startDate.getTime());
51
51
  let i = 0;
52
52
  let date;
@@ -59,17 +59,17 @@ export class SkyDayPickerComponent {
59
59
  return dates;
60
60
  }
61
61
  compareDays(date1, date2) {
62
- let d1 = new Date(date1.getFullYear(), date1.getMonth(), date1.getDate());
63
- let d2 = new Date(date2.getFullYear(), date2.getMonth(), date2.getDate());
62
+ const d1 = new Date(date1.getFullYear(), date1.getMonth(), date1.getDate());
63
+ const d2 = new Date(date2.getFullYear(), date2.getMonth(), date2.getDate());
64
64
  return d1.getTime() - d2.getTime();
65
65
  }
66
66
  refreshDayView() {
67
- let year = this.datepicker.activeDate.getFullYear();
68
- let month = this.datepicker.activeDate.getMonth();
69
- let firstDayOfMonth = new Date(year, month, 1);
70
- let difference = this.datepicker.startingDay - firstDayOfMonth.getDay();
71
- let numDisplayedFromPreviousMonth = difference > 0 ? 7 - difference : -difference;
72
- let firstDate = new Date(firstDayOfMonth.getTime());
67
+ const year = this.datepicker.activeDate.getFullYear();
68
+ const month = this.datepicker.activeDate.getMonth();
69
+ const firstDayOfMonth = new Date(year, month, 1);
70
+ const difference = this.datepicker.startingDay - firstDayOfMonth.getDay();
71
+ const numDisplayedFromPreviousMonth = difference > 0 ? 7 - difference : -difference;
72
+ const firstDate = new Date(firstDayOfMonth.getTime());
73
73
  if (this.datepicker.activeDate.getDate() !== this.initialDate) {
74
74
  this.activeDateHasChanged = true;
75
75
  }
@@ -79,10 +79,10 @@ export class SkyDayPickerComponent {
79
79
  firstDate.setDate(-numDisplayedFromPreviousMonth + 1);
80
80
  }
81
81
  // 42 is the number of days on a six-week calendar
82
- let days = this.getDates(firstDate, 42);
83
- let pickerDates = [];
82
+ const days = this.getDates(firstDate, 42);
83
+ const pickerDates = [];
84
84
  for (let i = 0; i < 42; i++) {
85
- let _dateObject = this.datepicker.createDateObject(days[i], this.datepicker.formatDay, days[i].getMonth() !== month, this.datepicker.datepickerId + '-' + i);
85
+ const _dateObject = this.datepicker.createDateObject(days[i], this.datepicker.formatDay, days[i].getMonth() !== month, this.datepicker.datepickerId + '-' + i);
86
86
  pickerDates[i] = _dateObject;
87
87
  }
88
88
  this.labels = [];
@@ -119,7 +119,7 @@ export class SkyDayPickerComponent {
119
119
  date = date + 7;
120
120
  }
121
121
  else if (key === 'pageup' || key === 'pagedown') {
122
- let month = this.datepicker.activeDate.getMonth() + (key === 'pageup' ? -1 : 1);
122
+ const month = this.datepicker.activeDate.getMonth() + (key === 'pageup' ? -1 : 1);
123
123
  this.datepicker.activeDate.setMonth(month, 1);
124
124
  date = Math.min(this.getDaysInMonth(this.datepicker.activeDate.getFullYear(), this.datepicker.activeDate.getMonth()), date);
125
125
  }
@@ -1 +1 @@
1
- {"version":3,"file":"daypicker.component.js","sourceRoot":"","sources":["../../../../../../../../libs/components/datetime/src/lib/modules/datepicker/daypicker.component.ts","../../../../../../../../libs/components/datetime/src/lib/modules/datepicker/daypicker.component.html"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n} from '@angular/core';\nimport { SkyDatepickerCustomDate } from './datepicker-custom-date';\nimport { SkyDatepickerCalendarChange } from './datepicker-calendar-change';\nimport { Subject } from 'rxjs';\nimport { SkyDatepickerCalendarInnerComponent } from './datepicker-calendar-inner.component';\n\nimport { SkyDatepickerDate } from './datepicker-date';\n\n/**\n * Helper interface to compare date ranges.\n * @internal\n */\ninterface SkyDateRange {\n endDate: Date;\n\n startDate: Date;\n}\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-daypicker',\n templateUrl: 'daypicker.component.html',\n styleUrls: ['./daypicker.component.scss'],\n})\nexport class SkyDayPickerComponent implements OnDestroy, OnInit {\n @Input()\n public set customDates(value: SkyDatepickerCustomDate[]) {\n /* istanbul ignore else */\n if (value) {\n this.applyCustomDates(value, this.rows);\n }\n }\n\n @Output()\n public calendarDateRangeChange: EventEmitter<SkyDatepickerCalendarChange> = new EventEmitter<SkyDatepickerCalendarChange>();\n\n @Input()\n public isWaiting: boolean = false;\n\n public activeDateHasChanged: boolean = false;\n public labels: any[] = [];\n public title: string;\n public rows: Array<Array<SkyDatepickerDate>> = [];\n public weekNumbers: number[] = [];\n public datepicker: SkyDatepickerCalendarInnerComponent;\n public CURRENT_THEME_TEMPLATE: any;\n\n private daysInMonth: Array<number> = [\n 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31,\n ];\n private initialDate: number;\n private ngUnsubscribe = new Subject<void>();\n\n public constructor(datepicker: SkyDatepickerCalendarInnerComponent) {\n this.datepicker = datepicker;\n }\n\n public ngOnInit(): void {\n this.datepicker.stepDay = { months: 1 };\n this.initialDate = this.datepicker.activeDate.getDate();\n\n this.datepicker.setRefreshViewHandler(() => {\n this.refreshDayView();\n }, 'day');\n\n this.datepicker.setCompareHandler(this.compareDays, 'day');\n\n this.datepicker.setKeydownHandler((key: string, event: KeyboardEvent) => {\n this.keydownDays(key, event);\n }, 'day');\n\n this.datepicker.refreshView();\n }\n\n public ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n protected getDates(startDate: Date, n: number): Date[] {\n let dates: Date[] = new Array(n);\n let current = new Date(startDate.getTime());\n let i = 0;\n let date: Date;\n while (i < n) {\n date = new Date(current.getTime());\n date = this.datepicker.fixTimeZone(date);\n dates[i++] = date;\n current = new Date(\n current.getFullYear(),\n current.getMonth(),\n current.getDate() + 1\n );\n }\n return dates;\n }\n\n private compareDays(date1: Date, date2: Date): number {\n let d1 = new Date(date1.getFullYear(), date1.getMonth(), date1.getDate());\n let d2 = new Date(date2.getFullYear(), date2.getMonth(), date2.getDate());\n return d1.getTime() - d2.getTime();\n }\n\n private refreshDayView() {\n let year = this.datepicker.activeDate.getFullYear();\n let month = this.datepicker.activeDate.getMonth();\n let firstDayOfMonth = new Date(year, month, 1);\n let difference = this.datepicker.startingDay - firstDayOfMonth.getDay();\n let numDisplayedFromPreviousMonth =\n difference > 0 ? 7 - difference : -difference;\n let firstDate = new Date(firstDayOfMonth.getTime());\n\n if (this.datepicker.activeDate.getDate() !== this.initialDate) {\n this.activeDateHasChanged = true;\n }\n\n /* istanbul ignore else */\n /* sanity check */\n if (numDisplayedFromPreviousMonth > 0) {\n firstDate.setDate(-numDisplayedFromPreviousMonth + 1);\n }\n\n // 42 is the number of days on a six-week calendar\n let days: Date[] = this.getDates(firstDate, 42);\n let pickerDates: Array<SkyDatepickerDate> = [];\n for (let i = 0; i < 42; i++) {\n let _dateObject = this.datepicker.createDateObject(\n days[i],\n this.datepicker.formatDay,\n days[i].getMonth() !== month,\n this.datepicker.datepickerId + '-' + i\n );\n pickerDates[i] = _dateObject;\n }\n\n this.labels = [];\n for (let j = 0; j < 7; j++) {\n this.labels[j] = {};\n this.labels[j].abbr = this.datepicker.dateFilter(\n pickerDates[j].date,\n this.datepicker.formatDayHeader\n );\n this.labels[j].full = this.datepicker.dateFilter(\n pickerDates[j].date,\n 'EEEE'\n );\n }\n\n this.title = this.datepicker.dateFilter(\n this.datepicker.activeDate,\n this.datepicker.formatDayTitle\n );\n\n const oldDateRange = this.getDateRange(this.rows);\n this.rows = this.datepicker.createCalendarRows(pickerDates, 7);\n const newDateRange = this.getDateRange(this.rows);\n\n if (!this.dateRangeRowsAreEqual(oldDateRange, newDateRange)) {\n this.calendarDateRangeChange.next({\n startDate: newDateRange.startDate,\n endDate: newDateRange.endDate,\n });\n }\n }\n\n private keydownDays(key: string, event: KeyboardEvent) {\n let date = this.datepicker.activeDate.getDate();\n /* istanbul ignore else */\n /* sanity check */\n if (key === 'left') {\n date = date - 1;\n } else if (key === 'up') {\n date = date - 7;\n } else if (key === 'right') {\n date = date + 1;\n } else if (key === 'down') {\n date = date + 7;\n } else if (key === 'pageup' || key === 'pagedown') {\n let month =\n this.datepicker.activeDate.getMonth() + (key === 'pageup' ? -1 : 1);\n this.datepicker.activeDate.setMonth(month, 1);\n date = Math.min(\n this.getDaysInMonth(\n this.datepicker.activeDate.getFullYear(),\n this.datepicker.activeDate.getMonth()\n ),\n date\n );\n } else if (key === 'home') {\n date = 1;\n } else if (key === 'end') {\n date = this.getDaysInMonth(\n this.datepicker.activeDate.getFullYear(),\n this.datepicker.activeDate.getMonth()\n );\n }\n this.datepicker.activeDate.setDate(date);\n }\n\n private getDaysInMonth(year: number, month: number) {\n return month === 1 &&\n year % 4 === 0 &&\n (year % 400 === 0 || year % 100 !== 0)\n ? 29\n : this.daysInMonth[month];\n }\n\n /**\n * Applies custom date properties to the existing dates displayed in the calendar.\n */\n private applyCustomDates(\n customDates: SkyDatepickerCustomDate[],\n dateRows: SkyDatepickerDate[][]\n ): void {\n let date: SkyDatepickerDate;\n let newDate: SkyDatepickerDate;\n let dateIndex: number;\n\n /* istanbul ignore else */\n if (customDates && dateRows) {\n customDates.forEach((customDate) => {\n dateIndex = -1;\n dateRows.forEach((row) => {\n if (dateIndex === -1) {\n dateIndex = row.findIndex((d) => {\n return d.date.getTime() === customDate.date.getTime();\n });\n if (dateIndex > -1) {\n date = row[dateIndex];\n // Replace the date with a new instance so the display gets updated.\n newDate = {\n current: date.current,\n date: date.date,\n disabled: !!date.disabled || !!customDate.disabled,\n keyDate: !!customDate.keyDate || !!date.keyDate,\n keyDateText: customDate.keyDateText || date.keyDateText,\n label: date.label,\n secondary: date.secondary,\n selected: date.selected,\n uid: date.uid,\n };\n row[dateIndex] = newDate;\n }\n }\n });\n });\n }\n }\n\n private dateRangeRowsAreEqual(\n rangeA: SkyDateRange,\n rangeB: SkyDateRange\n ): boolean | undefined {\n /* istanbul ignore if */\n if (!rangeA && !rangeB) {\n return true;\n } else if ((rangeA && !rangeB) || (!rangeA && rangeB)) {\n return false;\n }\n\n return (\n this.compareDays(rangeA.startDate, rangeB.startDate) === 0 &&\n this.compareDays(rangeA.endDate, rangeB.endDate) === 0\n );\n }\n\n private getDateRange(\n rows: Array<Array<SkyDatepickerDate>>\n ): SkyDateRange | undefined {\n /* istanbul ignore else */\n if (rows && rows.length > 0) {\n return {\n startDate: rows[0][0].date,\n endDate: rows[rows.length - 1][rows[rows.length - 1].length - 1].date,\n };\n }\n }\n}\n","<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"]}
1
+ {"version":3,"file":"daypicker.component.js","sourceRoot":"","sources":["../../../../../../../../libs/components/datetime/src/lib/modules/datepicker/daypicker.component.ts","../../../../../../../../libs/components/datetime/src/lib/modules/datepicker/daypicker.component.html"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { Subject } from 'rxjs';\n\nimport { SkyDatepickerCalendarChange } from './datepicker-calendar-change';\nimport { SkyDatepickerCalendarInnerComponent } from './datepicker-calendar-inner.component';\nimport { SkyDatepickerCustomDate } from './datepicker-custom-date';\nimport { SkyDatepickerDate } from './datepicker-date';\n\n/**\n * Helper interface to compare date ranges.\n * @internal\n */\ninterface SkyDateRange {\n endDate: Date;\n\n startDate: Date;\n}\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-daypicker',\n templateUrl: 'daypicker.component.html',\n styleUrls: ['./daypicker.component.scss'],\n})\nexport class SkyDayPickerComponent implements OnDestroy, OnInit {\n @Input()\n public set customDates(value: SkyDatepickerCustomDate[]) {\n /* istanbul ignore else */\n if (value) {\n this.applyCustomDates(value, this.rows);\n }\n }\n\n @Output()\n public calendarDateRangeChange: EventEmitter<SkyDatepickerCalendarChange> = new EventEmitter<SkyDatepickerCalendarChange>();\n\n @Input()\n public isWaiting = false;\n\n public activeDateHasChanged = false;\n public labels: any[] = [];\n public title: string;\n public rows: Array<Array<SkyDatepickerDate>> = [];\n public weekNumbers: number[] = [];\n public datepicker: SkyDatepickerCalendarInnerComponent;\n public CURRENT_THEME_TEMPLATE: any;\n\n private daysInMonth: Array<number> = [\n 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31,\n ];\n private initialDate: number;\n private ngUnsubscribe = new Subject<void>();\n\n public constructor(datepicker: SkyDatepickerCalendarInnerComponent) {\n this.datepicker = datepicker;\n }\n\n public ngOnInit(): void {\n this.datepicker.stepDay = { months: 1 };\n this.initialDate = this.datepicker.activeDate.getDate();\n\n this.datepicker.setRefreshViewHandler(() => {\n this.refreshDayView();\n }, 'day');\n\n this.datepicker.setCompareHandler(this.compareDays, 'day');\n\n this.datepicker.setKeydownHandler((key: string, event: KeyboardEvent) => {\n this.keydownDays(key, event);\n }, 'day');\n\n this.datepicker.refreshView();\n }\n\n public ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n protected getDates(startDate: Date, n: number): Date[] {\n const dates: Date[] = new Array(n);\n let current = new Date(startDate.getTime());\n let i = 0;\n let date: Date;\n while (i < n) {\n date = new Date(current.getTime());\n date = this.datepicker.fixTimeZone(date);\n dates[i++] = date;\n current = new Date(\n current.getFullYear(),\n current.getMonth(),\n current.getDate() + 1\n );\n }\n return dates;\n }\n\n private compareDays(date1: Date, date2: Date): number {\n const d1 = new Date(date1.getFullYear(), date1.getMonth(), date1.getDate());\n const d2 = new Date(date2.getFullYear(), date2.getMonth(), date2.getDate());\n return d1.getTime() - d2.getTime();\n }\n\n private refreshDayView() {\n const year = this.datepicker.activeDate.getFullYear();\n const month = this.datepicker.activeDate.getMonth();\n const firstDayOfMonth = new Date(year, month, 1);\n const difference = this.datepicker.startingDay - firstDayOfMonth.getDay();\n const numDisplayedFromPreviousMonth =\n difference > 0 ? 7 - difference : -difference;\n const firstDate = new Date(firstDayOfMonth.getTime());\n\n if (this.datepicker.activeDate.getDate() !== this.initialDate) {\n this.activeDateHasChanged = true;\n }\n\n /* istanbul ignore else */\n /* sanity check */\n if (numDisplayedFromPreviousMonth > 0) {\n firstDate.setDate(-numDisplayedFromPreviousMonth + 1);\n }\n\n // 42 is the number of days on a six-week calendar\n const days: Date[] = this.getDates(firstDate, 42);\n const pickerDates: Array<SkyDatepickerDate> = [];\n for (let i = 0; i < 42; i++) {\n const _dateObject = this.datepicker.createDateObject(\n days[i],\n this.datepicker.formatDay,\n days[i].getMonth() !== month,\n this.datepicker.datepickerId + '-' + i\n );\n pickerDates[i] = _dateObject;\n }\n\n this.labels = [];\n for (let j = 0; j < 7; j++) {\n this.labels[j] = {};\n this.labels[j].abbr = this.datepicker.dateFilter(\n pickerDates[j].date,\n this.datepicker.formatDayHeader\n );\n this.labels[j].full = this.datepicker.dateFilter(\n pickerDates[j].date,\n 'EEEE'\n );\n }\n\n this.title = this.datepicker.dateFilter(\n this.datepicker.activeDate,\n this.datepicker.formatDayTitle\n );\n\n const oldDateRange = this.getDateRange(this.rows);\n this.rows = this.datepicker.createCalendarRows(pickerDates, 7);\n const newDateRange = this.getDateRange(this.rows);\n\n if (!this.dateRangeRowsAreEqual(oldDateRange, newDateRange)) {\n this.calendarDateRangeChange.next({\n startDate: newDateRange.startDate,\n endDate: newDateRange.endDate,\n });\n }\n }\n\n private keydownDays(key: string, event: KeyboardEvent) {\n let date = this.datepicker.activeDate.getDate();\n /* istanbul ignore else */\n /* sanity check */\n if (key === 'left') {\n date = date - 1;\n } else if (key === 'up') {\n date = date - 7;\n } else if (key === 'right') {\n date = date + 1;\n } else if (key === 'down') {\n date = date + 7;\n } else if (key === 'pageup' || key === 'pagedown') {\n const month =\n this.datepicker.activeDate.getMonth() + (key === 'pageup' ? -1 : 1);\n this.datepicker.activeDate.setMonth(month, 1);\n date = Math.min(\n this.getDaysInMonth(\n this.datepicker.activeDate.getFullYear(),\n this.datepicker.activeDate.getMonth()\n ),\n date\n );\n } else if (key === 'home') {\n date = 1;\n } else if (key === 'end') {\n date = this.getDaysInMonth(\n this.datepicker.activeDate.getFullYear(),\n this.datepicker.activeDate.getMonth()\n );\n }\n this.datepicker.activeDate.setDate(date);\n }\n\n private getDaysInMonth(year: number, month: number) {\n return month === 1 &&\n year % 4 === 0 &&\n (year % 400 === 0 || year % 100 !== 0)\n ? 29\n : this.daysInMonth[month];\n }\n\n /**\n * Applies custom date properties to the existing dates displayed in the calendar.\n */\n private applyCustomDates(\n customDates: SkyDatepickerCustomDate[],\n dateRows: SkyDatepickerDate[][]\n ): void {\n let date: SkyDatepickerDate;\n let newDate: SkyDatepickerDate;\n let dateIndex: number;\n\n /* istanbul ignore else */\n if (customDates && dateRows) {\n customDates.forEach((customDate) => {\n dateIndex = -1;\n dateRows.forEach((row) => {\n if (dateIndex === -1) {\n dateIndex = row.findIndex((d) => {\n return d.date.getTime() === customDate.date.getTime();\n });\n if (dateIndex > -1) {\n date = row[dateIndex];\n // Replace the date with a new instance so the display gets updated.\n newDate = {\n current: date.current,\n date: date.date,\n disabled: !!date.disabled || !!customDate.disabled,\n keyDate: !!customDate.keyDate || !!date.keyDate,\n keyDateText: customDate.keyDateText || date.keyDateText,\n label: date.label,\n secondary: date.secondary,\n selected: date.selected,\n uid: date.uid,\n };\n row[dateIndex] = newDate;\n }\n }\n });\n });\n }\n }\n\n private dateRangeRowsAreEqual(\n rangeA: SkyDateRange,\n rangeB: SkyDateRange\n ): boolean | undefined {\n /* istanbul ignore if */\n if (!rangeA && !rangeB) {\n return true;\n } else if ((rangeA && !rangeB) || (!rangeA && rangeB)) {\n return false;\n }\n\n return (\n this.compareDays(rangeA.startDate, rangeB.startDate) === 0 &&\n this.compareDays(rangeA.endDate, rangeB.endDate) === 0\n );\n }\n\n private getDateRange(\n rows: Array<Array<SkyDatepickerDate>>\n ): SkyDateRange | undefined {\n /* istanbul ignore else */\n if (rows && rows.length > 0) {\n return {\n startDate: rows[0][0].date,\n endDate: rows[rows.length - 1][rows[rows.length - 1].length - 1].date,\n };\n }\n }\n}\n","<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"]}
@@ -1,8 +1,8 @@
1
1
  import { Injectable } from '@angular/core';
2
2
  import { SkyAppLocaleProvider } from '@skyux/i18n';
3
+ import moment from 'moment';
3
4
  import { Subject } from 'rxjs';
4
5
  import { takeUntil } from 'rxjs/operators';
5
- import moment from 'moment';
6
6
  import * as i0 from "@angular/core";
7
7
  import * as i1 from "@skyux/i18n";
8
8
  /**
@@ -49,10 +49,10 @@ export class SkyFuzzyDateService {
49
49
  return '';
50
50
  }
51
51
  const separator = this.getDateSeparator(format);
52
- let dateParts = [];
53
- let formatTokens = format.split(separator);
52
+ const dateParts = [];
53
+ const formatTokens = format.split(separator);
54
54
  locale = locale || this.currentLocale;
55
- let fuzzyDateMoment = this.getMomentFromFuzzyDate(fuzzyDate).locale(locale);
55
+ const fuzzyDateMoment = this.getMomentFromFuzzyDate(fuzzyDate).locale(locale);
56
56
  for (let index = 0; index < formatTokens.length; index++) {
57
57
  const token = formatTokens[index];
58
58
  /* istanbul ignore else */
@@ -104,7 +104,7 @@ export class SkyFuzzyDateService {
104
104
  const dateFormatIndexes = this.getDateFormatIndexes(dateFormat);
105
105
  let dateString = '';
106
106
  // Get the components of the date in the order expected of the local format.
107
- let dateComponents = [
107
+ const dateComponents = [
108
108
  { value: fuzzyDate.year || 0, index: dateFormatIndexes.yearIndex },
109
109
  { value: fuzzyDate.month || 0, index: dateFormatIndexes.monthIndex },
110
110
  { value: fuzzyDate.day || 0, index: dateFormatIndexes.dayIndex },
@@ -124,7 +124,7 @@ export class SkyFuzzyDateService {
124
124
  if (!selectedDate || !dateFormat) {
125
125
  return;
126
126
  }
127
- let fuzzyDate = {};
127
+ const fuzzyDate = {};
128
128
  const dateFormatIndexes = this.getDateFormatIndexes(dateFormat);
129
129
  if (dateFormatIndexes.yearIndex > -1) {
130
130
  fuzzyDate.year = selectedDate.getFullYear();
@@ -207,7 +207,7 @@ export class SkyFuzzyDateService {
207
207
  // Check if day is valid.
208
208
  if (day) {
209
209
  day = parseInt(day, 10);
210
- let fuzzyMoment = this.getMomentFromFuzzyDate({
210
+ const fuzzyMoment = this.getMomentFromFuzzyDate({
211
211
  month: month,
212
212
  day: day,
213
213
  year: year,
@@ -258,7 +258,7 @@ export class SkyFuzzyDateService {
258
258
  };
259
259
  }
260
260
  getCurrentFuzzyDate() {
261
- let currentDate = moment();
261
+ const currentDate = moment();
262
262
  return {
263
263
  day: currentDate.date(),
264
264
  month: currentDate.month() + 1,
@@ -279,7 +279,7 @@ export class SkyFuzzyDateService {
279
279
  */
280
280
  getDateSeparator(dateFormat) {
281
281
  let returnValue;
282
- let separators = ['/', '.', '-', ' '];
282
+ const separators = ['/', '.', '-', ' '];
283
283
  separators.forEach((separator) => {
284
284
  if (!returnValue && dateFormat.indexOf(separator) > 0) {
285
285
  returnValue = separator;
@@ -347,7 +347,7 @@ export class SkyFuzzyDateService {
347
347
  // Returns the index of each of the date components in the provided string (month, day, year).
348
348
  getDateValueIndexes(date, dateFormat) {
349
349
  const dateFormatIndexes = this.getDateFormatIndexes(dateFormat);
350
- let dateComponentIndexes = [];
350
+ const dateComponentIndexes = [];
351
351
  if (dateFormatIndexes.yearIndex > -1) {
352
352
  dateComponentIndexes.push(dateFormatIndexes.yearIndex);
353
353
  }
@@ -1 +1 @@
1
- {"version":3,"file":"fuzzy-date.service.js","sourceRoot":"","sources":["../../../../../../../../libs/components/datetime/src/lib/modules/datepicker/fuzzy-date.service.ts"],"names":[],"mappings":"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","sourcesContent":["import { Injectable, OnDestroy } from '@angular/core';\n\nimport { SkyAppLocaleProvider } from '@skyux/i18n';\n\nimport { Subject } from 'rxjs';\n\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyFuzzyDate } from './fuzzy-date';\n\nimport moment from 'moment';\n\n/**\n * @internal\n */\ninterface SkyDateIndexes {\n yearIndex: number;\n monthIndex: number;\n dayIndex: number;\n}\n\n/**\n * @internal\n */\ninterface SkyFuzzyDateRange {\n years: string;\n months: string;\n days: string;\n valid: boolean;\n}\n\n/**\n * @internal\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class SkyFuzzyDateService implements OnDestroy {\n private currentLocale: string;\n\n private ngUnsubscribe = new Subject<void>();\n\n constructor(private localeProvider: SkyAppLocaleProvider) {\n this.localeProvider\n .getLocaleInfo()\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((localeInfo) => {\n this.currentLocale = localeInfo.locale;\n });\n }\n\n /* istanbul ignore next */\n public ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n /**\n * Returns the browser's current locale string.\n */\n public getCurrentLocale(): string {\n return this.currentLocale;\n }\n\n /**\n * Returns the short format of the provided locale.\n * If not provided, the locale will be taken from the browser's default locale.\n */\n public getLocaleShortFormat(locale?: string): string {\n return moment.localeData(locale || this.currentLocale).longDateFormat('L');\n }\n\n /**\n * Formats a fuzzy date by using the provided format and locale strings.\n * If not provided, the locale will be taken from the browser's default locale.\n */\n public format(\n fuzzyDate: SkyFuzzyDate,\n format: string,\n locale?: string\n ): string {\n if (!this.isFuzzyDateValid(fuzzyDate)) {\n return '';\n }\n\n if (!format) {\n return '';\n }\n\n const separator = this.getDateSeparator(format);\n let dateParts: string[] = [];\n let formatTokens: string[] = format.split(separator);\n locale = locale || this.currentLocale;\n let fuzzyDateMoment = this.getMomentFromFuzzyDate(fuzzyDate).locale(locale);\n\n for (let index = 0; index < formatTokens.length; index++) {\n const token = formatTokens[index];\n\n /* istanbul ignore else */\n if (token) {\n // tslint:disable-next-line: switch-default\n switch (token.substr(0, 1).toLowerCase()) {\n case 'y':\n if (fuzzyDate.year) {\n dateParts.push(fuzzyDateMoment.format(token));\n }\n break;\n case 'm':\n if (fuzzyDate.month) {\n dateParts.push(fuzzyDateMoment.format(token));\n }\n break;\n case 'd':\n if (fuzzyDate.day) {\n dateParts.push(fuzzyDateMoment.format(token));\n }\n break;\n }\n }\n }\n\n return dateParts.join(separator);\n }\n\n /**\n * If not provided, years will default to current year; months will default to January;\n * days will default to 1st of the month.\n */\n public getMomentFromFuzzyDate(fuzzyDate: SkyFuzzyDate): any {\n if (!fuzzyDate) {\n return;\n }\n\n const year = fuzzyDate.year || this.getDefaultYear(fuzzyDate);\n const month = fuzzyDate.month > 0 ? fuzzyDate.month - 1 : 0;\n const day = fuzzyDate.day || 1;\n\n return moment([year, month, day]);\n }\n\n /**\n * Gets a string instance of a fuzzy date.\n * @deprecated Deprecated in favor of the `format` function.\n */\n public getStringFromFuzzyDate(\n fuzzyDate: SkyFuzzyDate,\n dateFormat: string\n ): string {\n if (!fuzzyDate || !dateFormat) {\n return;\n }\n\n const separator = this.getDateSeparator(dateFormat);\n const dateFormatIndexes = this.getDateFormatIndexes(dateFormat);\n let dateString: string = '';\n\n // Get the components of the date in the order expected of the local format.\n let dateComponents = [\n { value: fuzzyDate.year || 0, index: dateFormatIndexes.yearIndex },\n { value: fuzzyDate.month || 0, index: dateFormatIndexes.monthIndex },\n { value: fuzzyDate.day || 0, index: dateFormatIndexes.dayIndex },\n ];\n dateComponents.sort((a: any, b: any) => a.index - b.index);\n\n dateComponents.forEach((component) => {\n if (component.value > 0 && component.index > -1) {\n if (dateString) {\n dateString += separator;\n }\n dateString += component.value.toString();\n }\n });\n\n return dateString.trim();\n }\n\n public getFuzzyDateFromSelectedDate(\n selectedDate: Date,\n dateFormat: string\n ): SkyFuzzyDate {\n if (!selectedDate || !dateFormat) {\n return;\n }\n\n let fuzzyDate: SkyFuzzyDate = {};\n const dateFormatIndexes = this.getDateFormatIndexes(dateFormat);\n\n if (dateFormatIndexes.yearIndex > -1) {\n fuzzyDate.year = selectedDate.getFullYear();\n }\n\n if (dateFormatIndexes.dayIndex > -1) {\n fuzzyDate.day = selectedDate.getDate();\n }\n\n if (dateFormatIndexes.monthIndex > -1) {\n fuzzyDate.month = selectedDate.getMonth() + 1; // getMonth() is 0-indexed.\n }\n\n return fuzzyDate;\n }\n\n public getFuzzyDateFromString(\n date: string,\n dateFormat: string\n ): SkyFuzzyDate {\n if (!date || !dateFormat) {\n return;\n }\n\n let day: any;\n let month: any;\n let year: any;\n\n const dateComponents = this.getDateComponents(date);\n const indexes = this.getDateValueIndexes(date, dateFormat);\n\n // Look at the date string's component count:\n // 3 indicates a full date\n // 2 indicates a month-year or month-day date\n // 1 indicates a year\n // Other indicates a problem\n switch (dateComponents.length) {\n case 3:\n year = dateComponents[indexes.yearIndex];\n month = dateComponents[indexes.monthIndex];\n day = dateComponents[indexes.dayIndex];\n break;\n case 2:\n // First, check for a 4-digit year. If year exists, then we assume the other component\n // is the month. Otherwise, we can assume the input is mm/dd or mm/yy (2-digit year).\n year = this.get4DigitYearFromDateString(date);\n if (year) {\n month =\n dateComponents[0] === year.toString()\n ? dateComponents[1]\n : dateComponents[0];\n } else {\n if (indexes.dayIndex > -1) {\n // mm/dd\n month =\n indexes.monthIndex < indexes.dayIndex\n ? dateComponents[0]\n : dateComponents[1];\n day =\n month === dateComponents[1]\n ? dateComponents[0]\n : dateComponents[1];\n } else {\n // mm/yy\n month =\n indexes.monthIndex < indexes.yearIndex\n ? dateComponents[0]\n : dateComponents[1];\n year =\n month === dateComponents[1]\n ? dateComponents[0]\n : dateComponents[1];\n }\n }\n break;\n case 1:\n year = date;\n break;\n default:\n return;\n }\n\n if (month) {\n // Check if month is valid.\n month = this.getMonthNumber(month);\n if (month === undefined) {\n return;\n }\n\n // Check if day is valid.\n if (day) {\n day = parseInt(day, 10);\n let fuzzyMoment = this.getMomentFromFuzzyDate({\n month: month,\n day: day,\n year: year,\n });\n if (isNaN(day) || !fuzzyMoment.isValid()) {\n return;\n }\n }\n }\n\n if (year) {\n year =\n year.toString().length === 2\n ? moment.parseTwoDigitYear(year)\n : parseInt(year.toString(), 10);\n if (isNaN(year) || year.toString().length !== 4) {\n return;\n }\n }\n\n return {\n month: month,\n day: day,\n year: year,\n };\n }\n\n public getFuzzyDateRange(\n startFuzzyDate: SkyFuzzyDate,\n endFuzzyDate: SkyFuzzyDate\n ): SkyFuzzyDateRange {\n let start;\n let end;\n let days;\n let months;\n let years;\n let valid = false;\n\n if (\n startFuzzyDate &&\n startFuzzyDate.year &&\n endFuzzyDate &&\n endFuzzyDate.year\n ) {\n start = this.getMomentFromFuzzyDate(startFuzzyDate);\n end = this.getMomentFromFuzzyDate(endFuzzyDate);\n\n years = end.diff(start, 'years');\n months = end.diff(start, 'months');\n days = end.diff(start, 'days');\n valid = end.diff(start) >= 0;\n }\n\n return {\n years: years,\n months: months,\n days: days,\n valid: valid,\n };\n }\n\n public getCurrentFuzzyDate(): SkyFuzzyDate {\n let currentDate = moment();\n\n return {\n day: currentDate.date(),\n month: currentDate.month() + 1, // month() is 0-indexed.\n year: currentDate.year(),\n };\n }\n\n private getMostRecentLeapYear(): number {\n let leapYear = new Date().getFullYear();\n\n while (!this.isLeapYear(leapYear)) {\n leapYear -= 1;\n }\n\n return leapYear;\n }\n\n /**\n * Returns the first separator found in the provided date format string.\n * Accepted separators: ['/', '.', '-', ' '].\n * @param dateFormat\n */\n private getDateSeparator(dateFormat: string): string {\n let returnValue: string;\n let separators = ['/', '.', '-', ' '];\n\n separators.forEach((separator) => {\n if (!returnValue && dateFormat.indexOf(separator) > 0) {\n returnValue = separator;\n }\n });\n\n return returnValue;\n }\n\n private get4DigitYearFromDateString(date: string): number {\n let year: string;\n const separator = this.getDateSeparator(date);\n\n // Find the number value in the string that is 4 digits long.\n date.split(separator).forEach((dateComponent) => {\n if (!year && parseInt(dateComponent, 10).toString().length === 4) {\n year = dateComponent;\n }\n });\n\n if (year && !isNaN(Number(year))) {\n return parseInt(year, 10);\n }\n }\n\n private isLeapYear(year: number): boolean {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n private getMonthNumber(month: string): number {\n let returnValue: number;\n const monthAsNumber = parseInt(month, 10);\n\n // If the month component is a string (\"Janaury\"), we check to see if it is a valid month\n if (isNaN(monthAsNumber)) {\n if (!moment(month, 'MMMM').isValid()) {\n return;\n }\n returnValue = parseInt(moment().month(month).format('M'), 10);\n } else {\n returnValue = monthAsNumber;\n }\n\n // Ensure that the month is between 1 and 12\n if (!(1 <= returnValue && returnValue <= 12)) {\n return;\n }\n\n return returnValue;\n }\n\n private getDefaultYear(fuzzyDate: SkyFuzzyDate): number {\n // Check if we need to return a leap year or the current year.\n if (fuzzyDate.month === 2 && fuzzyDate.day === 29) {\n return this.getMostRecentLeapYear();\n } else {\n return new Date().getFullYear();\n }\n }\n\n private getDateComponents(date: string): string[] {\n const separator = this.getDateSeparator(date);\n return date.split(separator);\n }\n\n // Returns the order of year, month, and day from the provided date format.\n private getDateFormatIndexes(dateFormat: string): SkyDateIndexes {\n dateFormat = dateFormat.toLowerCase();\n return {\n yearIndex: dateFormat.indexOf('y'),\n monthIndex: dateFormat.indexOf('m'),\n dayIndex: dateFormat.indexOf('d'),\n };\n }\n\n // Returns the index of each of the date components in the provided string (month, day, year).\n private getDateValueIndexes(\n date: string,\n dateFormat: string\n ): SkyDateIndexes {\n const dateFormatIndexes = this.getDateFormatIndexes(dateFormat);\n let dateComponentIndexes = [];\n if (dateFormatIndexes.yearIndex > -1) {\n dateComponentIndexes.push(dateFormatIndexes.yearIndex);\n }\n\n if (dateFormatIndexes.monthIndex > -1) {\n dateComponentIndexes.push(dateFormatIndexes.monthIndex);\n }\n\n if (dateFormatIndexes.dayIndex > -1) {\n dateComponentIndexes.push(dateFormatIndexes.dayIndex);\n }\n\n dateComponentIndexes.sort(function (a, b) {\n return a - b;\n });\n\n return {\n yearIndex: dateComponentIndexes.indexOf(dateFormatIndexes.yearIndex),\n monthIndex: dateComponentIndexes.indexOf(dateFormatIndexes.monthIndex),\n dayIndex: dateComponentIndexes.indexOf(dateFormatIndexes.dayIndex),\n };\n }\n\n /**\n * Validates the provided SkyFuzzyDate object. Valid fuzzy dates are as follows:\n * month, day, year\n * month, year\n * month, day\n * year only\n */\n private isFuzzyDateValid(fuzzyDate: SkyFuzzyDate): boolean {\n if (!fuzzyDate) {\n return false;\n }\n\n // If none of the dates part are specified, return false.\n if (!fuzzyDate.day && !fuzzyDate.month && !fuzzyDate.year) {\n return false;\n }\n\n // If only month is specified, return false.\n if (!fuzzyDate.day && fuzzyDate.month && !fuzzyDate.year) {\n return false;\n }\n\n // If only day is specified, return false.\n if (fuzzyDate.day && !fuzzyDate.month && !fuzzyDate.year) {\n return false;\n }\n\n return true;\n }\n}\n"]}
1
+ {"version":3,"file":"fuzzy-date.service.js","sourceRoot":"","sources":["../../../../../../../../libs/components/datetime/src/lib/modules/datepicker/fuzzy-date.service.ts"],"names":[],"mappings":"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","sourcesContent":["import { Injectable, OnDestroy } from '@angular/core';\nimport { SkyAppLocaleProvider } from '@skyux/i18n';\n\nimport moment from 'moment';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyFuzzyDate } from './fuzzy-date';\n\n/**\n * @internal\n */\ninterface SkyDateIndexes {\n yearIndex: number;\n monthIndex: number;\n dayIndex: number;\n}\n\n/**\n * @internal\n */\ninterface SkyFuzzyDateRange {\n years: string;\n months: string;\n days: string;\n valid: boolean;\n}\n\n/**\n * @internal\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class SkyFuzzyDateService implements OnDestroy {\n private currentLocale: string;\n\n private ngUnsubscribe = new Subject<void>();\n\n constructor(private localeProvider: SkyAppLocaleProvider) {\n this.localeProvider\n .getLocaleInfo()\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((localeInfo) => {\n this.currentLocale = localeInfo.locale;\n });\n }\n\n /* istanbul ignore next */\n public ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n /**\n * Returns the browser's current locale string.\n */\n public getCurrentLocale(): string {\n return this.currentLocale;\n }\n\n /**\n * Returns the short format of the provided locale.\n * If not provided, the locale will be taken from the browser's default locale.\n */\n public getLocaleShortFormat(locale?: string): string {\n return moment.localeData(locale || this.currentLocale).longDateFormat('L');\n }\n\n /**\n * Formats a fuzzy date by using the provided format and locale strings.\n * If not provided, the locale will be taken from the browser's default locale.\n */\n public format(\n fuzzyDate: SkyFuzzyDate,\n format: string,\n locale?: string\n ): string {\n if (!this.isFuzzyDateValid(fuzzyDate)) {\n return '';\n }\n\n if (!format) {\n return '';\n }\n\n const separator = this.getDateSeparator(format);\n const dateParts: string[] = [];\n const formatTokens: string[] = format.split(separator);\n locale = locale || this.currentLocale;\n const fuzzyDateMoment =\n this.getMomentFromFuzzyDate(fuzzyDate).locale(locale);\n\n for (let index = 0; index < formatTokens.length; index++) {\n const token = formatTokens[index];\n\n /* istanbul ignore else */\n if (token) {\n // tslint:disable-next-line: switch-default\n switch (token.substr(0, 1).toLowerCase()) {\n case 'y':\n if (fuzzyDate.year) {\n dateParts.push(fuzzyDateMoment.format(token));\n }\n break;\n case 'm':\n if (fuzzyDate.month) {\n dateParts.push(fuzzyDateMoment.format(token));\n }\n break;\n case 'd':\n if (fuzzyDate.day) {\n dateParts.push(fuzzyDateMoment.format(token));\n }\n break;\n }\n }\n }\n\n return dateParts.join(separator);\n }\n\n /**\n * If not provided, years will default to current year; months will default to January;\n * days will default to 1st of the month.\n */\n public getMomentFromFuzzyDate(fuzzyDate: SkyFuzzyDate): any {\n if (!fuzzyDate) {\n return;\n }\n\n const year = fuzzyDate.year || this.getDefaultYear(fuzzyDate);\n const month = fuzzyDate.month > 0 ? fuzzyDate.month - 1 : 0;\n const day = fuzzyDate.day || 1;\n\n return moment([year, month, day]);\n }\n\n /**\n * Gets a string instance of a fuzzy date.\n * @deprecated Deprecated in favor of the `format` function.\n */\n public getStringFromFuzzyDate(\n fuzzyDate: SkyFuzzyDate,\n dateFormat: string\n ): string {\n if (!fuzzyDate || !dateFormat) {\n return;\n }\n\n const separator = this.getDateSeparator(dateFormat);\n const dateFormatIndexes = this.getDateFormatIndexes(dateFormat);\n let dateString = '';\n\n // Get the components of the date in the order expected of the local format.\n const dateComponents = [\n { value: fuzzyDate.year || 0, index: dateFormatIndexes.yearIndex },\n { value: fuzzyDate.month || 0, index: dateFormatIndexes.monthIndex },\n { value: fuzzyDate.day || 0, index: dateFormatIndexes.dayIndex },\n ];\n dateComponents.sort((a: any, b: any) => a.index - b.index);\n\n dateComponents.forEach((component) => {\n if (component.value > 0 && component.index > -1) {\n if (dateString) {\n dateString += separator;\n }\n dateString += component.value.toString();\n }\n });\n\n return dateString.trim();\n }\n\n public getFuzzyDateFromSelectedDate(\n selectedDate: Date,\n dateFormat: string\n ): SkyFuzzyDate {\n if (!selectedDate || !dateFormat) {\n return;\n }\n\n const fuzzyDate: SkyFuzzyDate = {};\n const dateFormatIndexes = this.getDateFormatIndexes(dateFormat);\n\n if (dateFormatIndexes.yearIndex > -1) {\n fuzzyDate.year = selectedDate.getFullYear();\n }\n\n if (dateFormatIndexes.dayIndex > -1) {\n fuzzyDate.day = selectedDate.getDate();\n }\n\n if (dateFormatIndexes.monthIndex > -1) {\n fuzzyDate.month = selectedDate.getMonth() + 1; // getMonth() is 0-indexed.\n }\n\n return fuzzyDate;\n }\n\n public getFuzzyDateFromString(\n date: string,\n dateFormat: string\n ): SkyFuzzyDate {\n if (!date || !dateFormat) {\n return;\n }\n\n let day: any;\n let month: any;\n let year: any;\n\n const dateComponents = this.getDateComponents(date);\n const indexes = this.getDateValueIndexes(date, dateFormat);\n\n // Look at the date string's component count:\n // 3 indicates a full date\n // 2 indicates a month-year or month-day date\n // 1 indicates a year\n // Other indicates a problem\n switch (dateComponents.length) {\n case 3:\n year = dateComponents[indexes.yearIndex];\n month = dateComponents[indexes.monthIndex];\n day = dateComponents[indexes.dayIndex];\n break;\n case 2:\n // First, check for a 4-digit year. If year exists, then we assume the other component\n // is the month. Otherwise, we can assume the input is mm/dd or mm/yy (2-digit year).\n year = this.get4DigitYearFromDateString(date);\n if (year) {\n month =\n dateComponents[0] === year.toString()\n ? dateComponents[1]\n : dateComponents[0];\n } else {\n if (indexes.dayIndex > -1) {\n // mm/dd\n month =\n indexes.monthIndex < indexes.dayIndex\n ? dateComponents[0]\n : dateComponents[1];\n day =\n month === dateComponents[1]\n ? dateComponents[0]\n : dateComponents[1];\n } else {\n // mm/yy\n month =\n indexes.monthIndex < indexes.yearIndex\n ? dateComponents[0]\n : dateComponents[1];\n year =\n month === dateComponents[1]\n ? dateComponents[0]\n : dateComponents[1];\n }\n }\n break;\n case 1:\n year = date;\n break;\n default:\n return;\n }\n\n if (month) {\n // Check if month is valid.\n month = this.getMonthNumber(month);\n if (month === undefined) {\n return;\n }\n\n // Check if day is valid.\n if (day) {\n day = parseInt(day, 10);\n const fuzzyMoment = this.getMomentFromFuzzyDate({\n month: month,\n day: day,\n year: year,\n });\n if (isNaN(day) || !fuzzyMoment.isValid()) {\n return;\n }\n }\n }\n\n if (year) {\n year =\n year.toString().length === 2\n ? moment.parseTwoDigitYear(year)\n : parseInt(year.toString(), 10);\n if (isNaN(year) || year.toString().length !== 4) {\n return;\n }\n }\n\n return {\n month: month,\n day: day,\n year: year,\n };\n }\n\n public getFuzzyDateRange(\n startFuzzyDate: SkyFuzzyDate,\n endFuzzyDate: SkyFuzzyDate\n ): SkyFuzzyDateRange {\n let start;\n let end;\n let days;\n let months;\n let years;\n let valid = false;\n\n if (\n startFuzzyDate &&\n startFuzzyDate.year &&\n endFuzzyDate &&\n endFuzzyDate.year\n ) {\n start = this.getMomentFromFuzzyDate(startFuzzyDate);\n end = this.getMomentFromFuzzyDate(endFuzzyDate);\n\n years = end.diff(start, 'years');\n months = end.diff(start, 'months');\n days = end.diff(start, 'days');\n valid = end.diff(start) >= 0;\n }\n\n return {\n years: years,\n months: months,\n days: days,\n valid: valid,\n };\n }\n\n public getCurrentFuzzyDate(): SkyFuzzyDate {\n const currentDate = moment();\n\n return {\n day: currentDate.date(),\n month: currentDate.month() + 1, // month() is 0-indexed.\n year: currentDate.year(),\n };\n }\n\n private getMostRecentLeapYear(): number {\n let leapYear = new Date().getFullYear();\n\n while (!this.isLeapYear(leapYear)) {\n leapYear -= 1;\n }\n\n return leapYear;\n }\n\n /**\n * Returns the first separator found in the provided date format string.\n * Accepted separators: ['/', '.', '-', ' '].\n * @param dateFormat\n */\n private getDateSeparator(dateFormat: string): string {\n let returnValue: string;\n const separators = ['/', '.', '-', ' '];\n\n separators.forEach((separator) => {\n if (!returnValue && dateFormat.indexOf(separator) > 0) {\n returnValue = separator;\n }\n });\n\n return returnValue;\n }\n\n private get4DigitYearFromDateString(date: string): number {\n let year: string;\n const separator = this.getDateSeparator(date);\n\n // Find the number value in the string that is 4 digits long.\n date.split(separator).forEach((dateComponent) => {\n if (!year && parseInt(dateComponent, 10).toString().length === 4) {\n year = dateComponent;\n }\n });\n\n if (year && !isNaN(Number(year))) {\n return parseInt(year, 10);\n }\n }\n\n private isLeapYear(year: number): boolean {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n private getMonthNumber(month: string): number {\n let returnValue: number;\n const monthAsNumber = parseInt(month, 10);\n\n // If the month component is a string (\"Janaury\"), we check to see if it is a valid month\n if (isNaN(monthAsNumber)) {\n if (!moment(month, 'MMMM').isValid()) {\n return;\n }\n returnValue = parseInt(moment().month(month).format('M'), 10);\n } else {\n returnValue = monthAsNumber;\n }\n\n // Ensure that the month is between 1 and 12\n if (!(1 <= returnValue && returnValue <= 12)) {\n return;\n }\n\n return returnValue;\n }\n\n private getDefaultYear(fuzzyDate: SkyFuzzyDate): number {\n // Check if we need to return a leap year or the current year.\n if (fuzzyDate.month === 2 && fuzzyDate.day === 29) {\n return this.getMostRecentLeapYear();\n } else {\n return new Date().getFullYear();\n }\n }\n\n private getDateComponents(date: string): string[] {\n const separator = this.getDateSeparator(date);\n return date.split(separator);\n }\n\n // Returns the order of year, month, and day from the provided date format.\n private getDateFormatIndexes(dateFormat: string): SkyDateIndexes {\n dateFormat = dateFormat.toLowerCase();\n return {\n yearIndex: dateFormat.indexOf('y'),\n monthIndex: dateFormat.indexOf('m'),\n dayIndex: dateFormat.indexOf('d'),\n };\n }\n\n // Returns the index of each of the date components in the provided string (month, day, year).\n private getDateValueIndexes(\n date: string,\n dateFormat: string\n ): SkyDateIndexes {\n const dateFormatIndexes = this.getDateFormatIndexes(dateFormat);\n const dateComponentIndexes = [];\n if (dateFormatIndexes.yearIndex > -1) {\n dateComponentIndexes.push(dateFormatIndexes.yearIndex);\n }\n\n if (dateFormatIndexes.monthIndex > -1) {\n dateComponentIndexes.push(dateFormatIndexes.monthIndex);\n }\n\n if (dateFormatIndexes.dayIndex > -1) {\n dateComponentIndexes.push(dateFormatIndexes.dayIndex);\n }\n\n dateComponentIndexes.sort(function (a, b) {\n return a - b;\n });\n\n return {\n yearIndex: dateComponentIndexes.indexOf(dateFormatIndexes.yearIndex),\n monthIndex: dateComponentIndexes.indexOf(dateFormatIndexes.monthIndex),\n dayIndex: dateComponentIndexes.indexOf(dateFormatIndexes.dayIndex),\n };\n }\n\n /**\n * Validates the provided SkyFuzzyDate object. Valid fuzzy dates are as follows:\n * month, day, year\n * month, year\n * month, day\n * year only\n */\n private isFuzzyDateValid(fuzzyDate: SkyFuzzyDate): boolean {\n if (!fuzzyDate) {\n return false;\n }\n\n // If none of the dates part are specified, return false.\n if (!fuzzyDate.day && !fuzzyDate.month && !fuzzyDate.year) {\n return false;\n }\n\n // If only month is specified, return false.\n if (!fuzzyDate.day && fuzzyDate.month && !fuzzyDate.year) {\n return false;\n }\n\n // If only day is specified, return false.\n if (fuzzyDate.day && !fuzzyDate.month && !fuzzyDate.year) {\n return false;\n }\n\n return true;\n }\n}\n"]}
@@ -26,13 +26,13 @@ export class SkyMonthPickerComponent {
26
26
  }, 'month');
27
27
  }
28
28
  compareMonth(date1, date2) {
29
- let d1 = new Date(date1.getFullYear(), date1.getMonth());
30
- let d2 = new Date(date2.getFullYear(), date2.getMonth());
29
+ const d1 = new Date(date1.getFullYear(), date1.getMonth());
30
+ const d2 = new Date(date2.getFullYear(), date2.getMonth());
31
31
  return d1.getTime() - d2.getTime();
32
32
  }
33
33
  refreshMonthView() {
34
- let months = new Array(12);
35
- let year = this.datepicker.activeDate.getFullYear();
34
+ const months = new Array(12);
35
+ const year = this.datepicker.activeDate.getFullYear();
36
36
  let date;
37
37
  for (let i = 0; i < 12; i++) {
38
38
  date = new Date(year, i, 1);
@@ -59,7 +59,7 @@ export class SkyMonthPickerComponent {
59
59
  date = date + this.datepicker.monthColLimit;
60
60
  }
61
61
  else if (key === 'pageup' || key === 'pagedown') {
62
- let year = this.datepicker.activeDate.getFullYear() + (key === 'pageup' ? -1 : 1);
62
+ const year = this.datepicker.activeDate.getFullYear() + (key === 'pageup' ? -1 : 1);
63
63
  this.datepicker.activeDate.setFullYear(year);
64
64
  }
65
65
  else if (key === 'home') {
@@ -1 +1 @@
1
- {"version":3,"file":"monthpicker.component.js","sourceRoot":"","sources":["../../../../../../../../libs/components/datetime/src/lib/modules/datepicker/monthpicker.component.ts","../../../../../../../../libs/components/datetime/src/lib/modules/datepicker/monthpicker.component.html"],"names":[],"mappings":"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","sourcesContent":["import { Component, OnInit } from '@angular/core';\nimport { SkyDatepickerCalendarInnerComponent } from './datepicker-calendar-inner.component';\n\nimport { SkyDatepickerDate } from './datepicker-date';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-monthpicker',\n templateUrl: 'monthpicker.component.html',\n styleUrls: ['./monthpicker.component.scss'],\n})\nexport class SkyMonthPickerComponent implements OnInit {\n public datepicker: SkyDatepickerCalendarInnerComponent;\n\n public maxMode: string;\n\n public rows: Array<Array<SkyDatepickerDate>> = [];\n\n public title: string;\n\n public constructor(datepicker: SkyDatepickerCalendarInnerComponent) {\n this.datepicker = datepicker;\n }\n\n public ngOnInit(): void {\n this.datepicker.stepMonth = {\n years: 1,\n };\n\n this.datepicker.setRefreshViewHandler(() => {\n this.refreshMonthView();\n }, 'month');\n\n this.datepicker.setCompareHandler(this.compareMonth, 'month');\n\n this.datepicker.refreshView();\n\n this.datepicker.setKeydownHandler((key: string, event: KeyboardEvent) => {\n this.keydownMonths(key, event);\n }, 'month');\n }\n\n private compareMonth(date1: Date, date2: Date): number {\n let d1 = new Date(date1.getFullYear(), date1.getMonth());\n let d2 = new Date(date2.getFullYear(), date2.getMonth());\n return d1.getTime() - d2.getTime();\n }\n\n private refreshMonthView(): void {\n let months: Array<SkyDatepickerDate> = new Array(12);\n let year: number = this.datepicker.activeDate.getFullYear();\n let date: Date;\n\n for (let i = 0; i < 12; i++) {\n date = new Date(year, i, 1);\n date = this.datepicker.fixTimeZone(date);\n months[i] = this.datepicker.createDateObject(\n date,\n this.datepicker.formatMonth,\n false,\n this.datepicker.datepickerId + '-' + i\n );\n }\n\n this.title = this.datepicker.dateFilter(\n this.datepicker.activeDate,\n this.datepicker.formatMonthTitle\n );\n this.rows = this.datepicker.createCalendarRows(\n months,\n this.datepicker.monthColLimit\n );\n }\n\n private keydownMonths(key: string, event: KeyboardEvent) {\n let date = this.datepicker.activeDate.getMonth();\n\n /* istanbul ignore else */\n /* sanity check */\n if (key === 'left') {\n date = date - 1;\n } else if (key === 'up') {\n date = date - this.datepicker.monthColLimit;\n } else if (key === 'right') {\n date = date + 1;\n } else if (key === 'down') {\n date = date + this.datepicker.monthColLimit;\n } else if (key === 'pageup' || key === 'pagedown') {\n let year =\n this.datepicker.activeDate.getFullYear() + (key === 'pageup' ? -1 : 1);\n this.datepicker.activeDate.setFullYear(year);\n } else if (key === 'home') {\n date = 0;\n } else if (key === 'end') {\n date = 11;\n }\n this.datepicker.activeDate.setMonth(date);\n }\n}\n","<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"]}
1
+ {"version":3,"file":"monthpicker.component.js","sourceRoot":"","sources":["../../../../../../../../libs/components/datetime/src/lib/modules/datepicker/monthpicker.component.ts","../../../../../../../../libs/components/datetime/src/lib/modules/datepicker/monthpicker.component.html"],"names":[],"mappings":"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","sourcesContent":["import { Component, OnInit } from '@angular/core';\n\nimport { SkyDatepickerCalendarInnerComponent } from './datepicker-calendar-inner.component';\nimport { SkyDatepickerDate } from './datepicker-date';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-monthpicker',\n templateUrl: 'monthpicker.component.html',\n styleUrls: ['./monthpicker.component.scss'],\n})\nexport class SkyMonthPickerComponent implements OnInit {\n public datepicker: SkyDatepickerCalendarInnerComponent;\n\n public maxMode: string;\n\n public rows: Array<Array<SkyDatepickerDate>> = [];\n\n public title: string;\n\n public constructor(datepicker: SkyDatepickerCalendarInnerComponent) {\n this.datepicker = datepicker;\n }\n\n public ngOnInit(): void {\n this.datepicker.stepMonth = {\n years: 1,\n };\n\n this.datepicker.setRefreshViewHandler(() => {\n this.refreshMonthView();\n }, 'month');\n\n this.datepicker.setCompareHandler(this.compareMonth, 'month');\n\n this.datepicker.refreshView();\n\n this.datepicker.setKeydownHandler((key: string, event: KeyboardEvent) => {\n this.keydownMonths(key, event);\n }, 'month');\n }\n\n private compareMonth(date1: Date, date2: Date): number {\n const d1 = new Date(date1.getFullYear(), date1.getMonth());\n const d2 = new Date(date2.getFullYear(), date2.getMonth());\n return d1.getTime() - d2.getTime();\n }\n\n private refreshMonthView(): void {\n const months: Array<SkyDatepickerDate> = new Array(12);\n const year: number = this.datepicker.activeDate.getFullYear();\n let date: Date;\n\n for (let i = 0; i < 12; i++) {\n date = new Date(year, i, 1);\n date = this.datepicker.fixTimeZone(date);\n months[i] = this.datepicker.createDateObject(\n date,\n this.datepicker.formatMonth,\n false,\n this.datepicker.datepickerId + '-' + i\n );\n }\n\n this.title = this.datepicker.dateFilter(\n this.datepicker.activeDate,\n this.datepicker.formatMonthTitle\n );\n this.rows = this.datepicker.createCalendarRows(\n months,\n this.datepicker.monthColLimit\n );\n }\n\n private keydownMonths(key: string, event: KeyboardEvent) {\n let date = this.datepicker.activeDate.getMonth();\n\n /* istanbul ignore else */\n /* sanity check */\n if (key === 'left') {\n date = date - 1;\n } else if (key === 'up') {\n date = date - this.datepicker.monthColLimit;\n } else if (key === 'right') {\n date = date + 1;\n } else if (key === 'down') {\n date = date + this.datepicker.monthColLimit;\n } else if (key === 'pageup' || key === 'pagedown') {\n const year =\n this.datepicker.activeDate.getFullYear() + (key === 'pageup' ? -1 : 1);\n this.datepicker.activeDate.setFullYear(year);\n } else if (key === 'home') {\n date = 0;\n } else if (key === 'end') {\n date = 11;\n }\n this.datepicker.activeDate.setMonth(date);\n }\n}\n","<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"]}
@@ -32,9 +32,9 @@ export class SkyYearPickerComponent {
32
32
  return date1.getFullYear() - date2.getFullYear();
33
33
  }
34
34
  refreshYearView() {
35
- let years = new Array(this.datepicker.yearRange);
35
+ const years = new Array(this.datepicker.yearRange);
36
36
  let date;
37
- let start = this.getStartingYear(this.datepicker.activeDate.getFullYear());
37
+ const start = this.getStartingYear(this.datepicker.activeDate.getFullYear());
38
38
  for (let i = 0; i < this.datepicker.yearRange; i++) {
39
39
  date = new Date(this.datepicker.activeDate);
40
40
  date.setFullYear(start + i, 0, 1);
@@ -1 +1 @@
1
- {"version":3,"file":"yearpicker.component.js","sourceRoot":"","sources":["../../../../../../../../libs/components/datetime/src/lib/modules/datepicker/yearpicker.component.ts","../../../../../../../../libs/components/datetime/src/lib/modules/datepicker/yearpicker.component.html"],"names":[],"mappings":"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","sourcesContent":["import { Component, OnInit } from '@angular/core';\n\nimport { SkyDatepickerCalendarInnerComponent } from './datepicker-calendar-inner.component';\n\nimport { SkyDatepickerDate } from './datepicker-date';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-yearpicker',\n templateUrl: 'yearpicker.component.html',\n styleUrls: ['./yearpicker.component.scss'],\n})\nexport class SkyYearPickerComponent implements OnInit {\n public datepicker: SkyDatepickerCalendarInnerComponent;\n\n public rows: Array<Array<SkyDatepickerDate>> = [];\n\n public title: string;\n\n public constructor(datepicker: SkyDatepickerCalendarInnerComponent) {\n this.datepicker = datepicker;\n }\n\n public ngOnInit(): void {\n this.datepicker.stepYear = { years: this.datepicker.yearRange };\n\n this.datepicker.setRefreshViewHandler(() => {\n this.refreshYearView();\n }, 'year');\n\n this.datepicker.setCompareHandler(this.compareYears, 'year');\n\n this.datepicker.setKeydownHandler((key: string, event: KeyboardEvent) => {\n this.keydownYears(key, event);\n }, 'year');\n\n this.datepicker.refreshView();\n }\n\n protected getStartingYear(year: number): number {\n return (\n Math.floor((year - 1) / this.datepicker.yearRange) *\n this.datepicker.yearRange +\n 1\n );\n }\n\n private compareYears(date1: Date, date2: Date): number {\n return date1.getFullYear() - date2.getFullYear();\n }\n\n private refreshYearView() {\n let years: Array<SkyDatepickerDate> = new Array(this.datepicker.yearRange);\n let date: Date;\n let start = this.getStartingYear(this.datepicker.activeDate.getFullYear());\n\n for (let i = 0; i < this.datepicker.yearRange; i++) {\n date = new Date(this.datepicker.activeDate);\n date.setFullYear(start + i, 0, 1);\n\n years[i] = this.datepicker.createDateObject(\n date,\n this.datepicker.formatYear,\n false,\n this.datepicker.datepickerId + '-' + i\n );\n }\n\n this.title = [\n years[0].label,\n years[this.datepicker.yearRange - 1].label,\n ].join(' - ');\n this.rows = this.datepicker.createCalendarRows(\n years,\n this.datepicker.yearColLimit\n );\n }\n\n private keydownYears(key: string, event: KeyboardEvent) {\n let date = this.datepicker.activeDate.getFullYear();\n\n /* istanbul ignore else */\n /* sanity check */\n if (key === 'left') {\n date = date - 1;\n } else if (key === 'up') {\n date = date - this.datepicker.yearColLimit;\n } else if (key === 'right') {\n date = date + 1;\n } else if (key === 'down') {\n date = date + this.datepicker.yearColLimit;\n } else if (key === 'pageup' || key === 'pagedown') {\n date += (key === 'pageup' ? -1 : 1) * this.datepicker.yearRange;\n } else if (key === 'home') {\n date = this.getStartingYear(this.datepicker.activeDate.getFullYear());\n } else if (key === 'end') {\n date =\n this.getStartingYear(this.datepicker.activeDate.getFullYear()) +\n this.datepicker.yearRange -\n 1;\n }\n this.datepicker.activeDate.setFullYear(date);\n }\n}\n","<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"]}
1
+ {"version":3,"file":"yearpicker.component.js","sourceRoot":"","sources":["../../../../../../../../libs/components/datetime/src/lib/modules/datepicker/yearpicker.component.ts","../../../../../../../../libs/components/datetime/src/lib/modules/datepicker/yearpicker.component.html"],"names":[],"mappings":"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","sourcesContent":["import { Component, OnInit } from '@angular/core';\n\nimport { SkyDatepickerCalendarInnerComponent } from './datepicker-calendar-inner.component';\nimport { SkyDatepickerDate } from './datepicker-date';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-yearpicker',\n templateUrl: 'yearpicker.component.html',\n styleUrls: ['./yearpicker.component.scss'],\n})\nexport class SkyYearPickerComponent implements OnInit {\n public datepicker: SkyDatepickerCalendarInnerComponent;\n\n public rows: Array<Array<SkyDatepickerDate>> = [];\n\n public title: string;\n\n public constructor(datepicker: SkyDatepickerCalendarInnerComponent) {\n this.datepicker = datepicker;\n }\n\n public ngOnInit(): void {\n this.datepicker.stepYear = { years: this.datepicker.yearRange };\n\n this.datepicker.setRefreshViewHandler(() => {\n this.refreshYearView();\n }, 'year');\n\n this.datepicker.setCompareHandler(this.compareYears, 'year');\n\n this.datepicker.setKeydownHandler((key: string, event: KeyboardEvent) => {\n this.keydownYears(key, event);\n }, 'year');\n\n this.datepicker.refreshView();\n }\n\n protected getStartingYear(year: number): number {\n return (\n Math.floor((year - 1) / this.datepicker.yearRange) *\n this.datepicker.yearRange +\n 1\n );\n }\n\n private compareYears(date1: Date, date2: Date): number {\n return date1.getFullYear() - date2.getFullYear();\n }\n\n private refreshYearView() {\n const years: Array<SkyDatepickerDate> = new Array(\n this.datepicker.yearRange\n );\n let date: Date;\n const start = this.getStartingYear(\n this.datepicker.activeDate.getFullYear()\n );\n\n for (let i = 0; i < this.datepicker.yearRange; i++) {\n date = new Date(this.datepicker.activeDate);\n date.setFullYear(start + i, 0, 1);\n\n years[i] = this.datepicker.createDateObject(\n date,\n this.datepicker.formatYear,\n false,\n this.datepicker.datepickerId + '-' + i\n );\n }\n\n this.title = [\n years[0].label,\n years[this.datepicker.yearRange - 1].label,\n ].join(' - ');\n this.rows = this.datepicker.createCalendarRows(\n years,\n this.datepicker.yearColLimit\n );\n }\n\n private keydownYears(key: string, event: KeyboardEvent) {\n let date = this.datepicker.activeDate.getFullYear();\n\n /* istanbul ignore else */\n /* sanity check */\n if (key === 'left') {\n date = date - 1;\n } else if (key === 'up') {\n date = date - this.datepicker.yearColLimit;\n } else if (key === 'right') {\n date = date + 1;\n } else if (key === 'down') {\n date = date + this.datepicker.yearColLimit;\n } else if (key === 'pageup' || key === 'pagedown') {\n date += (key === 'pageup' ? -1 : 1) * this.datepicker.yearRange;\n } else if (key === 'home') {\n date = this.getStartingYear(this.datepicker.activeDate.getFullYear());\n } else if (key === 'end') {\n date =\n this.getStartingYear(this.datepicker.activeDate.getFullYear()) +\n this.datepicker.yearRange -\n 1;\n }\n this.datepicker.activeDate.setFullYear(date);\n }\n}\n","<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"]}
@@ -5,7 +5,7 @@
5
5
  * To update this file, simply rerun the command.
6
6
  */
7
7
  import { NgModule } from '@angular/core';
8
- import { getLibStringForLocale, SkyI18nModule, SKY_LIB_RESOURCES_PROVIDERS, } from '@skyux/i18n';
8
+ import { SKY_LIB_RESOURCES_PROVIDERS, SkyI18nModule, getLibStringForLocale, } from '@skyux/i18n';
9
9
  import * as i0 from "@angular/core";
10
10
  const RESOURCES = {
11
11
  'EN-AU': {
@@ -1 +1 @@
1
- {"version":3,"file":"sky-datetime-resources.module.js","sourceRoot":"","sources":["../../../../../../../../libs/components/datetime/src/lib/modules/shared/sky-datetime-resources.module.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * NOTICE: DO NOT MODIFY THIS FILE!\n * The contents of this file were automatically generated by\n * the 'ng generate @skyux/i18n:lib-resources-module modules/shared/sky-datetime' schematic.\n * To update this file, simply rerun the command.\n */\n\nimport { NgModule } from '@angular/core';\nimport {\n getLibStringForLocale,\n SkyAppLocaleInfo,\n SkyI18nModule,\n SkyLibResources,\n SkyLibResourcesProvider,\n SKY_LIB_RESOURCES_PROVIDERS,\n} from '@skyux/i18n';\n\nconst RESOURCES: { [locale: string]: SkyLibResources } = {\n 'EN-AU': {\n skyux_date_range_picker_format_label_last_fiscal_year: {\n message: 'Last financial year',\n },\n skyux_date_range_picker_format_label_this_fiscal_year: {\n message: 'This financial year',\n },\n skyux_date_range_picker_format_label_next_fiscal_year: {\n message: 'Next financial year',\n },\n },\n 'EN-GB': {\n skyux_date_range_picker_format_label_last_fiscal_year: {\n message: 'Last financial year',\n },\n skyux_date_range_picker_format_label_this_fiscal_year: {\n message: 'This financial year',\n },\n skyux_date_range_picker_format_label_next_fiscal_year: {\n message: 'Next financial year',\n },\n },\n 'EN-NZ': {\n skyux_date_range_picker_format_label_last_fiscal_year: {\n message: 'Last financial year',\n },\n skyux_date_range_picker_format_label_this_fiscal_year: {\n message: 'This financial year',\n },\n skyux_date_range_picker_format_label_next_fiscal_year: {\n message: 'Next financial year',\n },\n },\n 'EN-US': {\n skyux_date_field_default_label: { message: 'Date' },\n skyux_datepicker_trigger_button_label: { message: 'Select date' },\n skyux_timepicker_button_label: { message: 'Choose time' },\n skyux_timepicker_close: { message: 'Done' },\n skyux_timepicker_input_default_label: { message: 'Time' },\n skyux_date_range_picker_default_label: { message: 'Select a date range' },\n skyux_date_range_picker_format_label_specific_range: {\n message: 'Specific range',\n },\n skyux_date_range_picker_format_label_before: { message: 'Before' },\n skyux_date_range_picker_format_label_after: { message: 'After' },\n skyux_date_range_picker_format_label_any_time: { message: 'At any time' },\n skyux_date_range_picker_format_label_yesterday: { message: 'Yesterday' },\n skyux_date_range_picker_format_label_today: { message: 'Today' },\n skyux_date_range_picker_format_label_tomorrow: { message: 'Tomorrow' },\n skyux_date_range_picker_format_label_last_week: { message: 'Last week' },\n skyux_date_range_picker_format_label_this_week: { message: 'This week' },\n skyux_date_range_picker_format_label_next_week: { message: 'Next week' },\n skyux_date_range_picker_format_label_last_month: { message: 'Last month' },\n skyux_date_range_picker_format_label_this_month: { message: 'This month' },\n skyux_date_range_picker_format_label_next_month: { message: 'Next month' },\n skyux_date_range_picker_format_label_last_quarter: {\n message: 'Last quarter',\n },\n skyux_date_range_picker_format_label_this_quarter: {\n message: 'This quarter',\n },\n skyux_date_range_picker_format_label_next_quarter: {\n message: 'Next quarter',\n },\n skyux_date_range_picker_format_label_last_calendar_year: {\n message: 'Last calendar year',\n },\n skyux_date_range_picker_format_label_this_calendar_year: {\n message: 'This calendar year',\n },\n skyux_date_range_picker_format_label_next_calendar_year: {\n message: 'Next calendar year',\n },\n skyux_date_range_picker_format_label_last_fiscal_year: {\n message: 'Last fiscal year',\n },\n skyux_date_range_picker_format_label_this_fiscal_year: {\n message: 'This fiscal year',\n },\n skyux_date_range_picker_format_label_next_fiscal_year: {\n message: 'Next fiscal year',\n },\n skyux_date_range_picker_start_date_label: { message: 'From date' },\n skyux_date_range_picker_end_date_label: { message: 'To date' },\n skyux_date_range_picker_before_date_label: { message: 'Before date' },\n skyux_date_range_picker_after_date_label: { message: 'After date' },\n },\n};\n\nexport class SkyDatetimeResourcesProvider implements SkyLibResourcesProvider {\n public getString(localeInfo: SkyAppLocaleInfo, name: string): string {\n return getLibStringForLocale(RESOURCES, localeInfo.locale, name);\n }\n}\n\n/**\n * Import into any component library module that needs to use resource strings.\n */\n@NgModule({\n exports: [SkyI18nModule],\n providers: [\n {\n provide: SKY_LIB_RESOURCES_PROVIDERS,\n useClass: SkyDatetimeResourcesProvider,\n multi: true,\n },\n ],\n})\nexport class SkyDatetimeResourcesModule {}\n"]}
1
+ {"version":3,"file":"sky-datetime-resources.module.js","sourceRoot":"","sources":["../../../../../../../../libs/components/datetime/src/lib/modules/shared/sky-datetime-resources.module.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * NOTICE: DO NOT MODIFY THIS FILE!\n * The contents of this file were automatically generated by\n * the 'ng generate @skyux/i18n:lib-resources-module modules/shared/sky-datetime' schematic.\n * To update this file, simply rerun the command.\n */\nimport { NgModule } from '@angular/core';\nimport {\n SKY_LIB_RESOURCES_PROVIDERS,\n SkyAppLocaleInfo,\n SkyI18nModule,\n SkyLibResources,\n SkyLibResourcesProvider,\n getLibStringForLocale,\n} from '@skyux/i18n';\n\nconst RESOURCES: { [locale: string]: SkyLibResources } = {\n 'EN-AU': {\n skyux_date_range_picker_format_label_last_fiscal_year: {\n message: 'Last financial year',\n },\n skyux_date_range_picker_format_label_this_fiscal_year: {\n message: 'This financial year',\n },\n skyux_date_range_picker_format_label_next_fiscal_year: {\n message: 'Next financial year',\n },\n },\n 'EN-GB': {\n skyux_date_range_picker_format_label_last_fiscal_year: {\n message: 'Last financial year',\n },\n skyux_date_range_picker_format_label_this_fiscal_year: {\n message: 'This financial year',\n },\n skyux_date_range_picker_format_label_next_fiscal_year: {\n message: 'Next financial year',\n },\n },\n 'EN-NZ': {\n skyux_date_range_picker_format_label_last_fiscal_year: {\n message: 'Last financial year',\n },\n skyux_date_range_picker_format_label_this_fiscal_year: {\n message: 'This financial year',\n },\n skyux_date_range_picker_format_label_next_fiscal_year: {\n message: 'Next financial year',\n },\n },\n 'EN-US': {\n skyux_date_field_default_label: { message: 'Date' },\n skyux_datepicker_trigger_button_label: { message: 'Select date' },\n skyux_timepicker_button_label: { message: 'Choose time' },\n skyux_timepicker_close: { message: 'Done' },\n skyux_timepicker_input_default_label: { message: 'Time' },\n skyux_date_range_picker_default_label: { message: 'Select a date range' },\n skyux_date_range_picker_format_label_specific_range: {\n message: 'Specific range',\n },\n skyux_date_range_picker_format_label_before: { message: 'Before' },\n skyux_date_range_picker_format_label_after: { message: 'After' },\n skyux_date_range_picker_format_label_any_time: { message: 'At any time' },\n skyux_date_range_picker_format_label_yesterday: { message: 'Yesterday' },\n skyux_date_range_picker_format_label_today: { message: 'Today' },\n skyux_date_range_picker_format_label_tomorrow: { message: 'Tomorrow' },\n skyux_date_range_picker_format_label_last_week: { message: 'Last week' },\n skyux_date_range_picker_format_label_this_week: { message: 'This week' },\n skyux_date_range_picker_format_label_next_week: { message: 'Next week' },\n skyux_date_range_picker_format_label_last_month: { message: 'Last month' },\n skyux_date_range_picker_format_label_this_month: { message: 'This month' },\n skyux_date_range_picker_format_label_next_month: { message: 'Next month' },\n skyux_date_range_picker_format_label_last_quarter: {\n message: 'Last quarter',\n },\n skyux_date_range_picker_format_label_this_quarter: {\n message: 'This quarter',\n },\n skyux_date_range_picker_format_label_next_quarter: {\n message: 'Next quarter',\n },\n skyux_date_range_picker_format_label_last_calendar_year: {\n message: 'Last calendar year',\n },\n skyux_date_range_picker_format_label_this_calendar_year: {\n message: 'This calendar year',\n },\n skyux_date_range_picker_format_label_next_calendar_year: {\n message: 'Next calendar year',\n },\n skyux_date_range_picker_format_label_last_fiscal_year: {\n message: 'Last fiscal year',\n },\n skyux_date_range_picker_format_label_this_fiscal_year: {\n message: 'This fiscal year',\n },\n skyux_date_range_picker_format_label_next_fiscal_year: {\n message: 'Next fiscal year',\n },\n skyux_date_range_picker_start_date_label: { message: 'From date' },\n skyux_date_range_picker_end_date_label: { message: 'To date' },\n skyux_date_range_picker_before_date_label: { message: 'Before date' },\n skyux_date_range_picker_after_date_label: { message: 'After date' },\n },\n};\n\nexport class SkyDatetimeResourcesProvider implements SkyLibResourcesProvider {\n public getString(localeInfo: SkyAppLocaleInfo, name: string): string {\n return getLibStringForLocale(RESOURCES, localeInfo.locale, name);\n }\n}\n\n/**\n * Import into any component library module that needs to use resource strings.\n */\n@NgModule({\n exports: [SkyI18nModule],\n providers: [\n {\n provide: SKY_LIB_RESOURCES_PROVIDERS,\n useClass: SkyDatetimeResourcesProvider,\n multi: true,\n },\n ],\n})\nexport class SkyDatetimeResourcesModule {}\n"]}