@skyux/datetime 9.27.0 → 9.29.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,6 +2,7 @@ import { Component } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  import * as i1 from "./datepicker-calendar-inner.component";
4
4
  import * as i2 from "@angular/common";
5
+ import * as i3 from "./datepicker-calendar-label.pipe";
5
6
  /**
6
7
  * @internal
7
8
  */
@@ -73,12 +74,13 @@ export class SkyYearPickerComponent {
73
74
  1;
74
75
  }
75
76
  this.datepicker.activeDate.setFullYear(date);
77
+ this.datepicker.announceDate(this.datepicker.activeDate, this.datepicker.formatYearLabel);
76
78
  }
77
79
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SkyYearPickerComponent, deps: [{ token: i1.SkyDatepickerCalendarInnerComponent }], target: i0.ɵɵFactoryTarget.Component }); }
78
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: SkyYearPickerComponent, selector: "sky-yearpicker", ngImport: i0, template: "<table role=\"grid\">\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", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] }); }
80
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: SkyYearPickerComponent, selector: "sky-yearpicker", ngImport: i0, template: "<table role=\"grid\">\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 [attr.aria-label]=\"\n date.date | skyDatepickerCalendarLabel : datepicker.formatYearLabel\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", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: i3.SkyDatepickerCalendarLabelPipe, name: "skyDatepickerCalendarLabel" }] }); }
79
81
  }
80
82
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SkyYearPickerComponent, decorators: [{
81
83
  type: Component,
82
- args: [{ selector: 'sky-yearpicker', template: "<table role=\"grid\">\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" }]
84
+ args: [{ selector: 'sky-yearpicker', template: "<table role=\"grid\">\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 [attr.aria-label]=\"\n date.date | skyDatepickerCalendarLabel : datepicker.formatYearLabel\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" }]
83
85
  }], ctorParameters: function () { return [{ type: i1.SkyDatepickerCalendarInnerComponent }]; } });
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieWVhcnBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZGF0ZXRpbWUvc3JjL2xpYi9tb2R1bGVzL2RhdGVwaWNrZXIveWVhcnBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZGF0ZXRpbWUvc3JjL2xpYi9tb2R1bGVzL2RhdGVwaWNrZXIveWVhcnBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7O0FBS2xEOztHQUVHO0FBS0gsTUFBTSxPQUFPLHNCQUFzQjtJQU9qQyxZQUFZLFVBQStDO1FBSnBELFNBQUksR0FBb0MsRUFBRSxDQUFDO1FBRTNDLFVBQUssR0FBRyxFQUFFLENBQUM7UUFHaEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7SUFDL0IsQ0FBQztJQUVNLFFBQVE7UUFDYixJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBRWhFLElBQUksQ0FBQyxVQUFVLENBQUMscUJBQXFCLENBQ25DLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxFQUM3QixNQUFNLENBQ1AsQ0FBQztRQUVGLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUU5RCxJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLENBQUMsR0FBVyxFQUFFLEtBQW9CLEVBQUUsRUFBRTtZQUN0RSxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNqQyxDQUFDLEVBQUUsTUFB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QyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUM7U0FDakU7YUFBTSxJQUFJLEdBQUcsS0FBSyxNQUFNLEVBQUU7WUFDekIsSUFBSSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztTQUN2RTthQUFNLElBQUksR0FBRyxLQUFLLEtBQUssRUFBRTtZQUN4QixJQUFJO2dCQUNGLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUM7b0JBQzlELElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUztvQkFDekIsQ0FBQyxDQUFDO1NBQ0w7UUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0MsQ0FBQzs4R0FqR1Usc0JBQXNCO2tHQUF0QixzQkFBc0Isc0RDWm5DLHl5QkF3QkE7OzJGRFphLHNCQUFzQjtrQkFKbEMsU0FBUzsrQkFDRSxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTa3lEYXRlcGlja2VyQ2FsZW5kYXJJbm5lckNvbXBvbmVudCB9IGZyb20gJy4vZGF0ZXBpY2tlci1jYWxlbmRhci1pbm5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5RGF0ZXBpY2tlckRhdGUgfSBmcm9tICcuL2RhdGVwaWNrZXItZGF0ZSc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS15ZWFycGlja2VyJyxcbiAgdGVtcGxhdGVVcmw6ICd5ZWFycGlja2VyLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5WWVhclBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHB1YmxpYyBkYXRlcGlja2VyOiBTa3lEYXRlcGlja2VyQ2FsZW5kYXJJbm5lckNvbXBvbmVudDtcblxuICBwdWJsaWMgcm93czogQXJyYXk8QXJyYXk8U2t5RGF0ZXBpY2tlckRhdGU+PiA9IFtdO1xuXG4gIHB1YmxpYyB0aXRsZSA9ICcnO1xuXG4gIGNvbnN0cnVjdG9yKGRhdGVwaWNrZXI6IFNreURhdGVwaWNrZXJDYWxlbmRhcklubmVyQ29tcG9uZW50KSB7XG4gICAgdGhpcy5kYXRlcGlja2VyID0gZGF0ZXBpY2tlcjtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmRhdGVwaWNrZXIuc3RlcFllYXIgPSB7IHllYXJzOiB0aGlzLmRhdGVwaWNrZXIueWVhclJhbmdlIH07XG5cbiAgICB0aGlzLmRhdGVwaWNrZXIuc2V0UmVmcmVzaFZpZXdIYW5kbGVyKFxuICAgICAgKCkgPT4gdGhpcy4jcmVmcmVzaFllYXJWaWV3KCksXG4gICAgICAneWVhcicsXG4gICAgKTtcblxuICAgIHRoaXMuZGF0ZXBpY2tlci5zZXRDb21wYXJlSGFuZGxlcih0aGlzLiNjb21wYXJlWWVhcnMsICd5ZWFyJyk7XG5cbiAgICB0aGlzLmRhdGVwaWNrZXIuc2V0S2V5ZG93bkhhbmRsZXIoKGtleTogc3RyaW5nLCBldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgdGhpcy4ja2V5ZG93blllYXJzKGtleSwgZXZlbnQpO1xuICAgIH0sICd5ZWFyJyk7XG5cbiAgICB0aGlzLmRhdGVwaWNrZXIucmVmcmVzaFZpZXcoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRTdGFydGluZ1llYXIoeWVhcjogbnVtYmVyKTogbnVtYmVyIHtcbiAgICByZXR1cm4gKFxuICAgICAgTWF0aC5mbG9vcigoeWVhciAtIDEpIC8gdGhpcy5kYXRlcGlja2VyLnllYXJSYW5nZSkgKlxuICAgICAgICB0aGlzLmRhdGVwaWNrZXIueWVhclJhbmdlICtcbiAgICAgIDFcbiAgICApO1xuICB9XG5cbiAgI2NvbXBhcmVZZWFycyhkYXRlMTogRGF0ZSwgZGF0ZTI6IERhdGUpOiBudW1iZXIge1xuICAgIHJldHVybiBkYXRlMS5nZXRGdWxsWWVhcigpIC0gZGF0ZTIuZ2V0RnVsbFllYXIoKTtcbiAgfVxuXG4gICNyZWZyZXNoWWVhclZpZXcoKTogc3RyaW5nIHtcbiAgICBjb25zdCB5ZWFyczogQXJyYXk8U2t5RGF0ZXBpY2tlckRhdGU+ID0gbmV3IEFycmF5KFxuICAgICAgdGhpcy5kYXRlcGlja2VyLnllYXJSYW5nZSxcbiAgICApO1xuICAgIGxldCBkYXRlOiBEYXRlO1xuICAgIGNvbnN0IHN0YXJ0ID0gdGhpcy5nZXRTdGFydGluZ1llYXIoXG4gICAgICB0aGlzLmRhdGVwaWNrZXIuYWN0aXZlRGF0ZS5nZXRGdWxsWWVhcigpLFxuICAgICk7XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuZGF0ZXBpY2tlci55ZWFyUmFuZ2U7IGkrKykge1xuICAgICAgZGF0ZSA9IG5ldyBEYXRlKHRoaXMuZGF0ZXBpY2tlci5hY3RpdmVEYXRlKTtcbiAgICAgIGRhdGUuc2V0RnVsbFllYXIoc3RhcnQgKyBpLCAwLCAxKTtcblxuICAgICAgeWVhcnNbaV0gPSB0aGlzLmRhdGVwaWNrZXIuY3JlYXRlRGF0ZU9iamVjdChcbiAgICAgICAgZGF0ZSxcbiAgICAgICAgdGhpcy5kYXRlcGlja2VyLmZvcm1hdFllYXIsXG4gICAgICAgIGZhbHNlLFxuICAgICAgICB0aGlzLmRhdGVwaWNrZXIuZGF0ZXBpY2tlcklkICsgJy0nICsgaSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgbmV3VGl0bGUgPSBbXG4gICAgICB5ZWFyc1swXS5sYWJlbCxcbiAgICAgIHllYXJzW3RoaXMuZGF0ZXBpY2tlci55ZWFyUmFuZ2UgLSAxXS5sYWJlbCxcbiAgICBdLmpvaW4oJyAtICcpO1xuICAgIHRoaXMucm93cyA9IHRoaXMuZGF0ZXBpY2tlci5jcmVhdGVDYWxlbmRhclJvd3MoXG4gICAgICB5ZWFycyxcbiAgICAgIHRoaXMuZGF0ZXBpY2tlci55ZWFyQ29sTGltaXQsXG4gICAgKTtcblxuICAgIHJldHVybiBuZXdUaXRsZTtcbiAgfVxuXG4gICNrZXlkb3duWWVhcnMoa2V5OiBzdHJpbmcsIGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgbGV0IGRhdGUgPSB0aGlzLmRhdGVwaWNrZXIuYWN0aXZlRGF0ZS5nZXRGdWxsWWVhcigpO1xuXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAvKiBzYW5pdHkgY2hlY2sgKi9cbiAgICBpZiAoa2V5ID09PSAnYXJyb3dsZWZ0Jykge1xuICAgICAgZGF0ZSA9IGRhdGUgLSAxO1xuICAgIH0gZWxzZSBpZiAoa2V5ID09PSAnYXJyb3d1cCcpIHtcbiAgICAgIGRhdGUgPSBkYXRlIC0gdGhpcy5kYXRlcGlja2VyLnllYXJDb2xMaW1pdDtcbiAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ2Fycm93cmlnaHQnKSB7XG4gICAgICBkYXRlID0gZGF0ZSArIDE7XG4gICAgfSBlbHNlIGlmIChrZXkgPT09ICdhcnJvd2Rvd24nKSB7XG4gICAgICBkYXRlID0gZGF0ZSArIHRoaXMuZGF0ZXBpY2tlci55ZWFyQ29sTGltaXQ7XG4gICAgfSBlbHNlIGlmIChrZXkgPT09ICdwYWdldXAnIHx8IGtleSA9PT0gJ3BhZ2Vkb3duJykge1xuICAgICAgZGF0ZSArPSAoa2V5ID09PSAncGFnZXVwJyA/IC0xIDogMSkgKiB0aGlzLmRhdGVwaWNrZXIueWVhclJhbmdlO1xuICAgIH0gZWxzZSBpZiAoa2V5ID09PSAnaG9tZScpIHtcbiAgICAgIGRhdGUgPSB0aGlzLmdldFN0YXJ0aW5nWWVhcih0aGlzLmRhdGVwaWNrZXIuYWN0aXZlRGF0ZS5nZXRGdWxsWWVhcigpKTtcbiAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ2VuZCcpIHtcbiAgICAgIGRhdGUgPVxuICAgICAgICB0aGlzLmdldFN0YXJ0aW5nWWVhcih0aGlzLmRhdGVwaWNrZXIuYWN0aXZlRGF0ZS5nZXRGdWxsWWVhcigpKSArXG4gICAgICAgIHRoaXMuZGF0ZXBpY2tlci55ZWFyUmFuZ2UgLVxuICAgICAgICAxO1xuICAgIH1cbiAgICB0aGlzLmRhdGVwaWNrZXIuYWN0aXZlRGF0ZS5zZXRGdWxsWWVhcihkYXRlKTtcbiAgfVxufVxuIiwiPHRhYmxlIHJvbGU9XCJncmlkXCI+XG4gIDx0Ym9keT5cbiAgICA8dHIgKm5nRm9yPVwibGV0IHJvdyBvZiByb3dzXCI+XG4gICAgICA8dGQgKm5nRm9yPVwibGV0IGRhdGUgb2Ygcm93XCIgY2xhc3M9XCJza3ktZGF0ZXBpY2tlci1yb3dcIiByb2xlPVwiZ3JpZGNlbGxcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIGNsYXNzPVwic2t5LWJ0biBza3ktYnRuLWRlZmF1bHQgc2t5LWRhdGVwaWNrZXItYnRuLWRhdGVcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICdza3ktZGF0ZXBpY2tlci1idG4tc2VsZWN0ZWQnOiBkYXRlLnNlbGVjdGVkLFxuICAgICAgICAgICAgJ3NreS1idG4tZGlzYWJsZWQnOiBkYXRlLmRpc2FibGVkLFxuICAgICAgICAgICAgJ3NreS1idG4tYWN0aXZlJzogZGF0ZXBpY2tlci5pc0FjdGl2ZShkYXRlKVxuICAgICAgICAgIH1cIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJkYXRlLmRpc2FibGVkXCJcbiAgICAgICAgICAoY2xpY2spPVwiZGF0ZXBpY2tlci5zZWxlY3RDYWxlbmRhcigkZXZlbnQsIGRhdGUuZGF0ZSlcIlxuICAgICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICA+XG4gICAgICAgICAgPHNwYW4gW25nQ2xhc3NdPVwieyAnc2t5LWRhdGVwaWNrZXItY3VycmVudCc6IGRhdGUuY3VycmVudCB9XCI+e3tcbiAgICAgICAgICAgIGRhdGUubGFiZWxcbiAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L3RkPlxuICAgIDwvdHI+XG4gIDwvdGJvZHk+XG48L3RhYmxlPlxuIl19
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieWVhcnBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZGF0ZXRpbWUvc3JjL2xpYi9tb2R1bGVzL2RhdGVwaWNrZXIveWVhcnBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZGF0ZXRpbWUvc3JjL2xpYi9tb2R1bGVzL2RhdGVwaWNrZXIveWVhcnBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7OztBQUtsRDs7R0FFRztBQUtILE1BQU0sT0FBTyxzQkFBc0I7SUFPakMsWUFBWSxVQUErQztRQUpwRCxTQUFJLEdBQW9DLEVBQUUsQ0FBQztRQUUzQyxVQUFLLEdBQUcsRUFBRSxDQUFDO1FBR2hCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO0lBQy9CLENBQUM7SUFFTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUVoRSxJQUFJLENBQUMsVUFBVSxDQUFDLHFCQUFxQixDQUNuQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsRUFDN0IsTUFBTSxDQUNQLENBQUM7UUFFRixJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFOUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLEdBQVcsRUFBRSxLQUFvQixFQUFFLEVBQUU7WUFDdEUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDakMsQ0FBQyxFQUFFLE1B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QUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDO1NBQ2pFO2FBQU0sSUFBSSxHQUFHLEtBQUssTUFBTSxFQUFFO1lBQ3pCLElBQUksR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7U0FDdkU7YUFBTSxJQUFJLEdBQUcsS0FBSyxLQUFLLEVBQUU7WUFDeEIsSUFBSTtnQkFDRixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDO29CQUM5RCxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVM7b0JBQ3pCLENBQUMsQ0FBQztTQUNMO1FBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUMxQixJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFDMUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQ2hDLENBQUM7SUFDSixDQUFDOzhHQXJHVSxzQkFBc0I7a0dBQXRCLHNCQUFzQixzRENabkMsdzZCQTJCQTs7MkZEZmEsc0JBQXNCO2tCQUpsQyxTQUFTOytCQUNFLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFNreURhdGVwaWNrZXJDYWxlbmRhcklubmVyQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRlcGlja2VyLWNhbGVuZGFyLWlubmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lEYXRlcGlja2VyRGF0ZSB9IGZyb20gJy4vZGF0ZXBpY2tlci1kYXRlJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LXllYXJwaWNrZXInLFxuICB0ZW1wbGF0ZVVybDogJ3llYXJwaWNrZXIuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lZZWFyUGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHVibGljIGRhdGVwaWNrZXI6IFNreURhdGVwaWNrZXJDYWxlbmRhcklubmVyQ29tcG9uZW50O1xuXG4gIHB1YmxpYyByb3dzOiBBcnJheTxBcnJheTxTa3lEYXRlcGlja2VyRGF0ZT4+ID0gW107XG5cbiAgcHVibGljIHRpdGxlID0gJyc7XG5cbiAgY29uc3RydWN0b3IoZGF0ZXBpY2tlcjogU2t5RGF0ZXBpY2tlckNhbGVuZGFySW5uZXJDb21wb25lbnQpIHtcbiAgICB0aGlzLmRhdGVwaWNrZXIgPSBkYXRlcGlja2VyO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZGF0ZXBpY2tlci5zdGVwWWVhciA9IHsgeWVhcnM6IHRoaXMuZGF0ZXBpY2tlci55ZWFyUmFuZ2UgfTtcblxuICAgIHRoaXMuZGF0ZXBpY2tlci5zZXRSZWZyZXNoVmlld0hhbmRsZXIoXG4gICAgICAoKSA9PiB0aGlzLiNyZWZyZXNoWWVhclZpZXcoKSxcbiAgICAgICd5ZWFyJyxcbiAgICApO1xuXG4gICAgdGhpcy5kYXRlcGlja2VyLnNldENvbXBhcmVIYW5kbGVyKHRoaXMuI2NvbXBhcmVZZWFycywgJ3llYXInKTtcblxuICAgIHRoaXMuZGF0ZXBpY2tlci5zZXRLZXlkb3duSGFuZGxlcigoa2V5OiBzdHJpbmcsIGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICB0aGlzLiNrZXlkb3duWWVhcnMoa2V5LCBldmVudCk7XG4gICAgfSwgJ3llYXInKTtcblxuICAgIHRoaXMuZGF0ZXBpY2tlci5yZWZyZXNoVmlldygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldFN0YXJ0aW5nWWVhcih5ZWFyOiBudW1iZXIpOiBudW1iZXIge1xuICAgIHJldHVybiAoXG4gICAgICBNYXRoLmZsb29yKCh5ZWFyIC0gMSkgLyB0aGlzLmRhdGVwaWNrZXIueWVhclJhbmdlKSAqXG4gICAgICAgIHRoaXMuZGF0ZXBpY2tlci55ZWFyUmFuZ2UgK1xuICAgICAgMVxuICAgICk7XG4gIH1cblxuICAjY29tcGFyZVllYXJzKGRhdGUxOiBEYXRlLCBkYXRlMjogRGF0ZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIGRhdGUxLmdldEZ1bGxZZWFyKCkgLSBkYXRlMi5nZXRGdWxsWWVhcigpO1xuICB9XG5cbiAgI3JlZnJlc2hZZWFyVmlldygpOiBzdHJpbmcge1xuICAgIGNvbnN0IHllYXJzOiBBcnJheTxTa3lEYXRlcGlja2VyRGF0ZT4gPSBuZXcgQXJyYXkoXG4gICAgICB0aGlzLmRhdGVwaWNrZXIueWVhclJhbmdlLFxuICAgICk7XG4gICAgbGV0IGRhdGU6IERhdGU7XG4gICAgY29uc3Qgc3RhcnQgPSB0aGlzLmdldFN0YXJ0aW5nWWVhcihcbiAgICAgIHRoaXMuZGF0ZXBpY2tlci5hY3RpdmVEYXRlLmdldEZ1bGxZZWFyKCksXG4gICAgKTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5kYXRlcGlja2VyLnllYXJSYW5nZTsgaSsrKSB7XG4gICAgICBkYXRlID0gbmV3IERhdGUodGhpcy5kYXRlcGlja2VyLmFjdGl2ZURhdGUpO1xuICAgICAgZGF0ZS5zZXRGdWxsWWVhcihzdGFydCArIGksIDAsIDEpO1xuXG4gICAgICB5ZWFyc1tpXSA9IHRoaXMuZGF0ZXBpY2tlci5jcmVhdGVEYXRlT2JqZWN0KFxuICAgICAgICBkYXRlLFxuICAgICAgICB0aGlzLmRhdGVwaWNrZXIuZm9ybWF0WWVhcixcbiAgICAgICAgZmFsc2UsXG4gICAgICAgIHRoaXMuZGF0ZXBpY2tlci5kYXRlcGlja2VySWQgKyAnLScgKyBpLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBuZXdUaXRsZSA9IFtcbiAgICAgIHllYXJzWzBdLmxhYmVsLFxuICAgICAgeWVhcnNbdGhpcy5kYXRlcGlja2VyLnllYXJSYW5nZSAtIDFdLmxhYmVsLFxuICAgIF0uam9pbignIC0gJyk7XG4gICAgdGhpcy5yb3dzID0gdGhpcy5kYXRlcGlja2VyLmNyZWF0ZUNhbGVuZGFyUm93cyhcbiAgICAgIHllYXJzLFxuICAgICAgdGhpcy5kYXRlcGlja2VyLnllYXJDb2xMaW1pdCxcbiAgICApO1xuXG4gICAgcmV0dXJuIG5ld1RpdGxlO1xuICB9XG5cbiAgI2tleWRvd25ZZWFycyhrZXk6IHN0cmluZywgZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBsZXQgZGF0ZSA9IHRoaXMuZGF0ZXBpY2tlci5hY3RpdmVEYXRlLmdldEZ1bGxZZWFyKCk7XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIC8qIHNhbml0eSBjaGVjayAqL1xuICAgIGlmIChrZXkgPT09ICdhcnJvd2xlZnQnKSB7XG4gICAgICBkYXRlID0gZGF0ZSAtIDE7XG4gICAgfSBlbHNlIGlmIChrZXkgPT09ICdhcnJvd3VwJykge1xuICAgICAgZGF0ZSA9IGRhdGUgLSB0aGlzLmRhdGVwaWNrZXIueWVhckNvbExpbWl0O1xuICAgIH0gZWxzZSBpZiAoa2V5ID09PSAnYXJyb3dyaWdodCcpIHtcbiAgICAgIGRhdGUgPSBkYXRlICsgMTtcbiAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ2Fycm93ZG93bicpIHtcbiAgICAgIGRhdGUgPSBkYXRlICsgdGhpcy5kYXRlcGlja2VyLnllYXJDb2xMaW1pdDtcbiAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ3BhZ2V1cCcgfHwga2V5ID09PSAncGFnZWRvd24nKSB7XG4gICAgICBkYXRlICs9IChrZXkgPT09ICdwYWdldXAnID8gLTEgOiAxKSAqIHRoaXMuZGF0ZXBpY2tlci55ZWFyUmFuZ2U7XG4gICAgfSBlbHNlIGlmIChrZXkgPT09ICdob21lJykge1xuICAgICAgZGF0ZSA9IHRoaXMuZ2V0U3RhcnRpbmdZZWFyKHRoaXMuZGF0ZXBpY2tlci5hY3RpdmVEYXRlLmdldEZ1bGxZZWFyKCkpO1xuICAgIH0gZWxzZSBpZiAoa2V5ID09PSAnZW5kJykge1xuICAgICAgZGF0ZSA9XG4gICAgICAgIHRoaXMuZ2V0U3RhcnRpbmdZZWFyKHRoaXMuZGF0ZXBpY2tlci5hY3RpdmVEYXRlLmdldEZ1bGxZZWFyKCkpICtcbiAgICAgICAgdGhpcy5kYXRlcGlja2VyLnllYXJSYW5nZSAtXG4gICAgICAgIDE7XG4gICAgfVxuICAgIHRoaXMuZGF0ZXBpY2tlci5hY3RpdmVEYXRlLnNldEZ1bGxZZWFyKGRhdGUpO1xuICAgIHRoaXMuZGF0ZXBpY2tlci5hbm5vdW5jZURhdGUoXG4gICAgICB0aGlzLmRhdGVwaWNrZXIuYWN0aXZlRGF0ZSxcbiAgICAgIHRoaXMuZGF0ZXBpY2tlci5mb3JtYXRZZWFyTGFiZWwsXG4gICAgKTtcbiAgfVxufVxuIiwiPHRhYmxlIHJvbGU9XCJncmlkXCI+XG4gIDx0Ym9keT5cbiAgICA8dHIgKm5nRm9yPVwibGV0IHJvdyBvZiByb3dzXCI+XG4gICAgICA8dGQgKm5nRm9yPVwibGV0IGRhdGUgb2Ygcm93XCIgY2xhc3M9XCJza3ktZGF0ZXBpY2tlci1yb3dcIiByb2xlPVwiZ3JpZGNlbGxcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIGNsYXNzPVwic2t5LWJ0biBza3ktYnRuLWRlZmF1bHQgc2t5LWRhdGVwaWNrZXItYnRuLWRhdGVcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICdza3ktZGF0ZXBpY2tlci1idG4tc2VsZWN0ZWQnOiBkYXRlLnNlbGVjdGVkLFxuICAgICAgICAgICAgJ3NreS1idG4tZGlzYWJsZWQnOiBkYXRlLmRpc2FibGVkLFxuICAgICAgICAgICAgJ3NreS1idG4tYWN0aXZlJzogZGF0ZXBpY2tlci5pc0FjdGl2ZShkYXRlKVxuICAgICAgICAgIH1cIlxuICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgICAgICBkYXRlLmRhdGUgfCBza3lEYXRlcGlja2VyQ2FsZW5kYXJMYWJlbCA6IGRhdGVwaWNrZXIuZm9ybWF0WWVhckxhYmVsXG4gICAgICAgICAgXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZGF0ZS5kaXNhYmxlZFwiXG4gICAgICAgICAgKGNsaWNrKT1cImRhdGVwaWNrZXIuc2VsZWN0Q2FsZW5kYXIoJGV2ZW50LCBkYXRlLmRhdGUpXCJcbiAgICAgICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxzcGFuIFtuZ0NsYXNzXT1cInsgJ3NreS1kYXRlcGlja2VyLWN1cnJlbnQnOiBkYXRlLmN1cnJlbnQgfVwiPnt7XG4gICAgICAgICAgICBkYXRlLmxhYmVsXG4gICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC90ZD5cbiAgICA8L3RyPlxuICA8L3Rib2R5PlxuPC90YWJsZT5cbiJdfQ==
@@ -14,7 +14,7 @@ import { SkyInputBoxModule } from '@skyux/forms';
14
14
  import * as i4$1 from '@angular/cdk/a11y';
15
15
  import { A11yModule } from '@angular/cdk/a11y';
16
16
  import * as i1 from '@skyux/core';
17
- import { SkyAffixAutoFitContext, SKY_STACKING_CONTEXT, SkyAffixModule } from '@skyux/core';
17
+ import { SkyLiveAnnouncerService, SkyAffixAutoFitContext, SKY_STACKING_CONTEXT, SkyAffixModule } from '@skyux/core';
18
18
  import * as i2$1 from '@skyux/indicators';
19
19
  import { SkyIconModule, SkyWaitModule } from '@skyux/indicators';
20
20
  import * as i4 from '@skyux/popovers';
@@ -821,6 +821,9 @@ class SkyDatepickerCalendarInnerComponent {
821
821
  this.formatDayHeader = 'dd';
822
822
  this.formatDayTitle = 'MMMM YYYY';
823
823
  this.formatMonthTitle = 'YYYY';
824
+ this.formatDayLabel = 'dddd, MMMM Do YYYY';
825
+ this.formatMonthLabel = 'MMMM YYYY';
826
+ this.formatYearLabel = 'YYYY';
824
827
  this.datepickerId = `sky-datepicker-${++nextDatepickerId}`;
825
828
  this.stepDay = {};
826
829
  this.stepMonth = {};
@@ -843,6 +846,7 @@ class SkyDatepickerCalendarInnerComponent {
843
846
  this.#ngUnsubscribe = new Subject();
844
847
  this.#_startingDay = 0;
845
848
  this.#resourcesSvc = inject(SkyLibResourcesService);
849
+ this.#liveAnnouncerSvc = inject(SkyLiveAnnouncerService);
846
850
  }
847
851
  set startingDay(value) {
848
852
  this.#_startingDay = value || 0;
@@ -873,6 +877,7 @@ class SkyDatepickerCalendarInnerComponent {
873
877
  #_selectedDate;
874
878
  #_startingDay;
875
879
  #resourcesSvc;
880
+ #liveAnnouncerSvc;
876
881
  ngOnInit() {
877
882
  if (this.selectedDate) {
878
883
  this.activeDate = new Date(this.selectedDate);
@@ -998,7 +1003,7 @@ class SkyDatepickerCalendarInnerComponent {
998
1003
  }
999
1004
  onKeydown(event) {
1000
1005
  const key = event.key?.toLowerCase();
1001
- if (!this.keys.includes(key) || event.shiftKey || event.altKey) {
1006
+ if (!this.keys.includes(key) || event.shiftKey) {
1002
1007
  return;
1003
1008
  }
1004
1009
  event.preventDefault();
@@ -1116,6 +1121,10 @@ class SkyDatepickerCalendarInnerComponent {
1116
1121
  this.refreshView();
1117
1122
  }
1118
1123
  }
1124
+ announceDate(date, format) {
1125
+ const caption = this.dateFilter(date, format);
1126
+ this.#liveAnnouncerSvc.announce(caption);
1127
+ }
1119
1128
  /**
1120
1129
  * Date is disabled if it meets any of these criteria:
1121
1130
  * 1. Date falls outside the min or max dates set by the SkyDatepickerConfigService.
@@ -1159,6 +1168,42 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
1159
1168
  type: Output
1160
1169
  }] } });
1161
1170
 
1171
+ /**
1172
+ * Formats date values according to formatting rules.
1173
+ * @example
1174
+ * ```markup
1175
+ * {{ myDate | skyDatepickerCalendarLabel }}
1176
+ * {{ myDate | skyDatepickerCalendarLabel:'YYYY' }}
1177
+ * ```
1178
+ * @internal
1179
+ */
1180
+ class SkyDatepickerCalendarLabelPipe {
1181
+ #datepicker = inject(SkyDatepickerCalendarInnerComponent);
1182
+ #defaultFormat = this.#datepicker.formatDayLabel;
1183
+ /**
1184
+ * Transforms a date value using locale and format rules.
1185
+ * @param value Specifies the date value to transform.
1186
+ * @param format Specifies the format to apply to the transform. The format string is
1187
+ * constructed by a series of symbols that represent date-time values.
1188
+ */
1189
+ transform(value, format) {
1190
+ let formattedValue = '';
1191
+ if (value && value instanceof Date) {
1192
+ formattedValue = this.#datepicker.dateFilter(value, format || this.#defaultFormat);
1193
+ }
1194
+ return formattedValue;
1195
+ }
1196
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SkyDatepickerCalendarLabelPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
1197
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.9", ngImport: i0, type: SkyDatepickerCalendarLabelPipe, isStandalone: true, name: "skyDatepickerCalendarLabel" }); }
1198
+ }
1199
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SkyDatepickerCalendarLabelPipe, decorators: [{
1200
+ type: Pipe,
1201
+ args: [{
1202
+ name: 'skyDatepickerCalendarLabel',
1203
+ standalone: true,
1204
+ }]
1205
+ }] });
1206
+
1162
1207
  /**
1163
1208
  * @internal
1164
1209
  */
@@ -1225,11 +1270,11 @@ class SkyDayPickerButtonComponent {
1225
1270
  this.datepicker = datepicker;
1226
1271
  }
1227
1272
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SkyDayPickerButtonComponent, deps: [{ token: SkyDatepickerCalendarInnerComponent }], target: i0.ɵɵFactoryTarget.Component }); }
1228
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: SkyDayPickerButtonComponent, selector: "sky-daypicker-button", inputs: { date: "date" }, ngImport: i0, template: "<button\n *ngIf=\"date\"\n class=\"sky-btn sky-btn-sm sky-btn-default sky-datepicker-btn-date\"\n tabindex=\"-1\"\n type=\"button\"\n [disabled]=\"date.disabled\"\n [ngClass]=\"{\n 'sky-datepicker-btn-selected': date.selected,\n 'sky-btn-disabled': date.disabled,\n 'sky-btn-active': datepicker.isActive(date),\n 'sky-datepicker-btn-disabled': date.disabled,\n 'sky-datepicker-btn-key-date': date.keyDate\n }\"\n (click)=\"datepicker.selectCalendar($event, date.date, true)\"\n>\n <span [ngClass]=\"{ 'sky-datepicker-secondary': date.secondary }\">\n {{ date.label }}\n </span>\n</button>\n", styles: [".sky-datepicker-btn-disabled{font-style:italic}.sky-datepicker-btn-key-date{position:relative}.sky-datepicker-btn-key-date:before{position:absolute;content:\"\";height:5px;width:5px;background-color:#d93a3d;border-radius:50%;left:15px;top:22px}:host-context(.sky-theme-modern) .sky-datepicker-btn-key-date:before{left:12px}.sky-theme-modern .sky-datepicker-btn-key-date:before{left:12px}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
1273
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: SkyDayPickerButtonComponent, selector: "sky-daypicker-button", inputs: { date: "date" }, ngImport: i0, template: "<button\n *ngIf=\"date\"\n class=\"sky-btn sky-btn-sm sky-btn-default sky-datepicker-btn-date\"\n tabindex=\"-1\"\n type=\"button\"\n [disabled]=\"date.disabled\"\n [ngClass]=\"{\n 'sky-datepicker-btn-selected': date.selected,\n 'sky-btn-disabled': date.disabled,\n 'sky-btn-active': datepicker.isActive(date),\n 'sky-datepicker-btn-disabled': date.disabled,\n 'sky-datepicker-btn-key-date': date.keyDate\n }\"\n [attr.aria-label]=\"date.date | skyDatepickerCalendarLabel\"\n (click)=\"datepicker.selectCalendar($event, date.date, true)\"\n>\n <span [ngClass]=\"{ 'sky-datepicker-secondary': date.secondary }\">\n {{ date.label }}\n </span>\n</button>\n", styles: [".sky-datepicker-btn-disabled{font-style:italic}.sky-datepicker-btn-key-date{position:relative}.sky-datepicker-btn-key-date:before{position:absolute;content:\"\";height:5px;width:5px;background-color:#d93a3d;border-radius:50%;left:15px;top:22px}:host-context(.sky-theme-modern) .sky-datepicker-btn-key-date:before{left:12px}.sky-theme-modern .sky-datepicker-btn-key-date:before{left:12px}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: SkyDatepickerCalendarLabelPipe, name: "skyDatepickerCalendarLabel" }] }); }
1229
1274
  }
1230
1275
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SkyDayPickerButtonComponent, decorators: [{
1231
1276
  type: Component,
1232
- args: [{ selector: 'sky-daypicker-button', template: "<button\n *ngIf=\"date\"\n class=\"sky-btn sky-btn-sm sky-btn-default sky-datepicker-btn-date\"\n tabindex=\"-1\"\n type=\"button\"\n [disabled]=\"date.disabled\"\n [ngClass]=\"{\n 'sky-datepicker-btn-selected': date.selected,\n 'sky-btn-disabled': date.disabled,\n 'sky-btn-active': datepicker.isActive(date),\n 'sky-datepicker-btn-disabled': date.disabled,\n 'sky-datepicker-btn-key-date': date.keyDate\n }\"\n (click)=\"datepicker.selectCalendar($event, date.date, true)\"\n>\n <span [ngClass]=\"{ 'sky-datepicker-secondary': date.secondary }\">\n {{ date.label }}\n </span>\n</button>\n", styles: [".sky-datepicker-btn-disabled{font-style:italic}.sky-datepicker-btn-key-date{position:relative}.sky-datepicker-btn-key-date:before{position:absolute;content:\"\";height:5px;width:5px;background-color:#d93a3d;border-radius:50%;left:15px;top:22px}:host-context(.sky-theme-modern) .sky-datepicker-btn-key-date:before{left:12px}.sky-theme-modern .sky-datepicker-btn-key-date:before{left:12px}\n"] }]
1277
+ args: [{ selector: 'sky-daypicker-button', template: "<button\n *ngIf=\"date\"\n class=\"sky-btn sky-btn-sm sky-btn-default sky-datepicker-btn-date\"\n tabindex=\"-1\"\n type=\"button\"\n [disabled]=\"date.disabled\"\n [ngClass]=\"{\n 'sky-datepicker-btn-selected': date.selected,\n 'sky-btn-disabled': date.disabled,\n 'sky-btn-active': datepicker.isActive(date),\n 'sky-datepicker-btn-disabled': date.disabled,\n 'sky-datepicker-btn-key-date': date.keyDate\n }\"\n [attr.aria-label]=\"date.date | skyDatepickerCalendarLabel\"\n (click)=\"datepicker.selectCalendar($event, date.date, true)\"\n>\n <span [ngClass]=\"{ 'sky-datepicker-secondary': date.secondary }\">\n {{ date.label }}\n </span>\n</button>\n", styles: [".sky-datepicker-btn-disabled{font-style:italic}.sky-datepicker-btn-key-date{position:relative}.sky-datepicker-btn-key-date:before{position:absolute;content:\"\";height:5px;width:5px;background-color:#d93a3d;border-radius:50%;left:15px;top:22px}:host-context(.sky-theme-modern) .sky-datepicker-btn-key-date:before{left:12px}.sky-theme-modern .sky-datepicker-btn-key-date:before{left:12px}\n"] }]
1233
1278
  }], ctorParameters: function () { return [{ type: SkyDatepickerCalendarInnerComponent }]; }, propDecorators: { date: [{
1234
1279
  type: Input
1235
1280
  }] } });
@@ -1485,6 +1530,7 @@ class SkyDayPickerComponent {
1485
1530
  date = this.#getDaysInMonth(this.datepicker.activeDate.getFullYear(), this.datepicker.activeDate.getMonth());
1486
1531
  }
1487
1532
  this.datepicker.activeDate.setDate(date);
1533
+ this.datepicker.announceDate(this.datepicker.activeDate, this.datepicker.formatDayLabel);
1488
1534
  }
1489
1535
  #getDaysInMonth(year, month) {
1490
1536
  return month === 1 &&
@@ -1631,13 +1677,14 @@ class SkyMonthPickerComponent {
1631
1677
  date = 11;
1632
1678
  }
1633
1679
  this.datepicker.activeDate.setMonth(date);
1680
+ this.datepicker.announceDate(this.datepicker.activeDate, this.datepicker.formatMonthLabel);
1634
1681
  }
1635
1682
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SkyMonthPickerComponent, deps: [{ token: SkyDatepickerCalendarInnerComponent }], target: i0.ɵɵFactoryTarget.Component }); }
1636
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: SkyMonthPickerComponent, selector: "sky-monthpicker", ngImport: i0, template: "<table role=\"grid\">\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", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] }); }
1683
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: SkyMonthPickerComponent, selector: "sky-monthpicker", ngImport: i0, template: "<table role=\"grid\">\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 [attr.aria-label]=\"\n date.date | skyDatepickerCalendarLabel : datepicker.formatMonthLabel\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", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: SkyDatepickerCalendarLabelPipe, name: "skyDatepickerCalendarLabel" }] }); }
1637
1684
  }
1638
1685
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SkyMonthPickerComponent, decorators: [{
1639
1686
  type: Component,
1640
- args: [{ selector: 'sky-monthpicker', template: "<table role=\"grid\">\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" }]
1687
+ args: [{ selector: 'sky-monthpicker', template: "<table role=\"grid\">\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 [attr.aria-label]=\"\n date.date | skyDatepickerCalendarLabel : datepicker.formatMonthLabel\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" }]
1641
1688
  }], ctorParameters: function () { return [{ type: SkyDatepickerCalendarInnerComponent }]; } });
1642
1689
 
1643
1690
  /**
@@ -1711,13 +1758,14 @@ class SkyYearPickerComponent {
1711
1758
  1;
1712
1759
  }
1713
1760
  this.datepicker.activeDate.setFullYear(date);
1761
+ this.datepicker.announceDate(this.datepicker.activeDate, this.datepicker.formatYearLabel);
1714
1762
  }
1715
1763
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SkyYearPickerComponent, deps: [{ token: SkyDatepickerCalendarInnerComponent }], target: i0.ɵɵFactoryTarget.Component }); }
1716
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: SkyYearPickerComponent, selector: "sky-yearpicker", ngImport: i0, template: "<table role=\"grid\">\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", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] }); }
1764
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: SkyYearPickerComponent, selector: "sky-yearpicker", ngImport: i0, template: "<table role=\"grid\">\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 [attr.aria-label]=\"\n date.date | skyDatepickerCalendarLabel : datepicker.formatYearLabel\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", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: SkyDatepickerCalendarLabelPipe, name: "skyDatepickerCalendarLabel" }] }); }
1717
1765
  }
1718
1766
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SkyYearPickerComponent, decorators: [{
1719
1767
  type: Component,
1720
- args: [{ selector: 'sky-yearpicker', template: "<table role=\"grid\">\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" }]
1768
+ args: [{ selector: 'sky-yearpicker', template: "<table role=\"grid\">\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 [attr.aria-label]=\"\n date.date | skyDatepickerCalendarLabel : datepicker.formatYearLabel\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" }]
1721
1769
  }], ctorParameters: function () { return [{ type: SkyDatepickerCalendarInnerComponent }]; } });
1722
1770
 
1723
1771
  /**
@@ -3125,6 +3173,7 @@ class SkyDatepickerModule {
3125
3173
  CommonModule,
3126
3174
  FormsModule,
3127
3175
  SkyIconModule,
3176
+ SkyDatepickerCalendarLabelPipe,
3128
3177
  SkyDatetimeResourcesModule,
3129
3178
  SkyAffixModule,
3130
3179
  SkyThemeModule,
@@ -3163,6 +3212,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
3163
3212
  CommonModule,
3164
3213
  FormsModule,
3165
3214
  SkyIconModule,
3215
+ SkyDatepickerCalendarLabelPipe,
3166
3216
  SkyDatetimeResourcesModule,
3167
3217
  SkyAffixModule,
3168
3218
  SkyThemeModule,