44</ ng-template >
55
66< ng-template let-result #defaultMonth let-obj >
7- < span tabindex ="0 " #monthsBtn (keydown) ="onActiveViewYearKB(getViewDate(obj.index), $event, obj.index) " (click) ="onActiveViewYear(getViewDate(obj.index), obj.index, $event) "
8- class ="igx-calendar-picker__date ">
9- {{ formattedMonth(getViewDate(obj.index)) }}
10- </ span >
11- < span tabindex ="0 " #yearsBtn (keydown) ="onActiveViewDecadeKB($event, getViewDate(obj.index), obj.index) " (click) ="onActiveViewDecade(getViewDate(obj.index), obj.index) "
12- class ="igx-calendar-picker__date ">
13- {{ formattedYear(getViewDate(obj.index)) }}
14- </ span >
7+ < span *ngIf ="monthsViewNumber < 2 || obj.index < 1 " class ="igx-calendar__aria-off-screen " aria-live ="polite ">
8+ {{ monthsViewNumber > 1 ? (resourceStrings.igx_calendar_first_picker_of.replace('{0}', monthsViewNumber.toString()) + ' ' + (getViewDate(obj.index) | date: 'LLLL yyyy')) : resourceStrings.igx_calendar_selected_month_is + (getViewDate(obj.index) | date: 'LLLL yyyy')}}
9+ </ span >
10+ < span
11+ tabindex ="0 "
12+ role ="button "
13+ [attr.aria-label] ="(getViewDate(obj.index) | date: 'LLLL') + ' ' + resourceStrings.igx_calendar_select_month "
14+ #monthsBtn
15+ (keydown) ="onActiveViewYearKB(getViewDate(obj.index), $event, obj.index) "
16+ (click) ="onActiveViewYear(getViewDate(obj.index), obj.index, $event) "
17+ class ="igx-calendar-picker__date ">
18+ {{ formattedMonth(getViewDate(obj.index)) }}
19+ </ span >
20+
21+ < span
22+ tabindex ="0 "
23+ role ="button "
24+ [attr.aria-label] ="(getViewDate(obj.index) | date: 'yyyy') + ' ' + resourceStrings.igx_calendar_select_year "
25+ #yearsBtn
26+ (keydown) ="onActiveViewDecadeKB($event, getViewDate(obj.index), obj.index) "
27+ (click) ="onActiveViewDecade(getViewDate(obj.index), obj.index) "
28+ class ="igx-calendar-picker__date ">
29+ {{ formattedYear(getViewDate(obj.index)) }}
30+ </ span >
1531</ ng-template >
1632
17- < div *ngIf ="selection === 'single' && hasHeader " class ="igx-calendar__header ">
18- < h5 class ="igx-calendar__header-year "> {{ formattedYear(headerDate) }}</ h5 >
19- < h2 class ="igx-calendar__header-date ">
33+ < header
34+ aria-labelledby ="igx-aria-calendar-title-month igx-aria-calendar-title-year "
35+ class ="igx-calendar__header "
36+ *ngIf ="selection === 'single' && hasHeader ">
37+
38+ < h5 id ="igx-aria-calendar-title-year " class ="igx-calendar__header-year ">
39+ {{ formattedYear(headerDate) }}
40+ </ h5 >
41+
42+ < h2 id ="igx-aria-calendar-title-month " class ="igx-calendar__header-date ">
2043 < ng-container *ngTemplateOutlet ="headerTemplate ? headerTemplate : defaultHeader; context: headerContext ">
2144 </ ng-container >
2245 </ h2 >
23- </ div >
46+ </ header >
2447
25- < div *ngIf ="isDefaultView " class ="igx-calendar__body " [@animateView] ="activeView " (@animateView.done) ="viewRendered($event) " (swiperight) ="previousMonth() "
48+ < div *ngIf ="isDefaultView " class ="igx-calendar__body " [@animateView] ="activeView " (@animateView.done) ="viewRendered($event) " (swiperight) ="previousMonth() "
2649 (swipeleft) ="nextMonth() " (pointerdown) ="suppressBlur() ">
27- < div class ="igx-calendar-picker ">
28- < div tabindex ="0 " class ="igx-calendar-picker__prev " #prevMonthBtn
29- igxCalendarScrollMonth [startScroll] ="startPrevMonthScroll " [stopScroll] ="stopMonthScroll " [ngStyle] ="{
30- 'min-width.%': 100/(monthsViewNumber*7)
31- } ">
32- < igx-icon fontSet ="material "> keyboard_arrow_left</ igx-icon >
50+ < section class ="igx-calendar-picker ">
51+ < span tabindex ="0 " class ="igx-calendar__aria-off-screen ">
52+ < ng-container *ngIf ="selection === 'multi' ">
53+ {{ monthsViewNumber && monthsViewNumber > 1 ? resourceStrings.igx_calendar_multi_selection.replace('{0}', monthsViewNumber.toString()) : resourceStrings.igx_calendar_singular_multi_selection}}
54+ </ ng-container >
55+ < ng-container *ngIf ="selection === 'range' ">
56+ {{ monthsViewNumber && monthsViewNumber > 1 ? resourceStrings.igx_calendar_range_selection.replace('{0}', monthsViewNumber.toString()) : resourceStrings.igx_calendar_singular_range_selection}}
57+ </ ng-container >
58+ < ng-container *ngIf ="selection === 'single' ">
59+ {{ monthsViewNumber && monthsViewNumber > 1 ? resourceStrings.igx_calendar_single_selection.replace('{0}', monthsViewNumber.toString()) : resourceStrings.igx_calendar_singular_single_selection}}
60+ </ ng-container >
61+ </ span >
62+ < div
63+ tabindex ="0 "
64+ class ="igx-calendar-picker__prev "
65+ role ="button "
66+ [attr.aria-label] ="resourceStrings.igx_calendar_previous_month + ', ' + (getPrevMonth(viewDate) | date: 'LLLL') "
67+ data-action ="prev "
68+ #prevMonthBtn
69+ igxCalendarScrollMonth
70+ [startScroll] ="startPrevMonthScroll "
71+ [stopScroll] ="stopMonthScroll "
72+ [ngStyle] ="{ 'min-width.%': 100/(monthsViewNumber*7)} ">
73+ < igx-icon fontSet ="material " aria-hidden ="true "> keyboard_arrow_left</ igx-icon >
3374 </ div >
34- < div class ="igx-calendar-picker__dates " *ngFor ="let view of monthsViewNumber | IgxMonthViewSlots; index as i; " [style.width.%] ="100/monthsViewNumber " [attr.data-month] ="i | IgxGetViewDate:viewDate:false ">
75+ < div class ="igx-calendar-picker__dates "
76+ *ngFor ="let view of monthsViewNumber | IgxMonthViewSlots; index as i; "
77+ [style.width.%] ="100/monthsViewNumber "
78+ [attr.data-month] ="i | IgxGetViewDate:viewDate:false ">
3579 < ng-container *ngTemplateOutlet ="subheaderTemplate ? subheaderTemplate : defaultMonth; context: getContext(i) ">
3680 </ ng-container >
3781 </ div >
38- < div tabindex ="0 " class ="igx-calendar-picker__next " #nextMonthBtn
39- igxCalendarScrollMonth [startScroll] ="startNextMonthScroll " [stopScroll] ="stopMonthScroll " [ngStyle] ="{
40- 'min-width.%': 100/(monthsViewNumber*7)
41- } ">
42- < igx-icon fontSet ="material "> keyboard_arrow_right</ igx-icon >
82+ < div
83+ tabindex ="0 "
84+ class ="igx-calendar-picker__next "
85+ role ="button "
86+ [attr.aria-label] ="resourceStrings.igx_calendar_next_month + ', ' + (getNextMonth(viewDate, monthsViewNumber) | date: 'LLLL') "
87+ data-action ="next "
88+ #nextMonthBtn
89+ igxCalendarScrollMonth
90+ [startScroll] ="startNextMonthScroll "
91+ [stopScroll] ="stopMonthScroll "
92+ [ngStyle] ="{'min-width.%': 100/(monthsViewNumber*7)} ">
93+ < igx-icon fontSet ="material " aria-hidden ="true "> keyboard_arrow_right</ igx-icon >
4394 </ div >
44- </ div >
95+ </ section >
4596
46- < div style ="display: flex "
97+ < section style ="display: flex "
4798 [@animateChange] ="animationAction "
4899 (@animateChange.done) ="animationDone($event) ">
49- < igx-days-view *ngFor ="let view of monthsViewNumber | IgxMonthViewSlots; index as i; " [changeDaysView] ="true " #days
100+ < igx-days-view role =" grid " *ngFor ="let view of monthsViewNumber | IgxMonthViewSlots; index as i; " [changeDaysView] ="true " #days
50101 [selection] ="selection "
51102 [locale] ="locale "
52103 [value] ="value "
@@ -63,18 +114,24 @@ <h2 class="igx-calendar__header-date">
63114 (onDateSelection) ="childClicked($event) "
64115 (monthsViewBlur) ="resetActiveDate() ">
65116 </ igx-days-view >
66- </ div >
117+ </ section >
67118</ div >
68119
69- < igx-months-view *ngIf ="isYearView " [@animateView] ="activeView " #months (@animateView.done) ="viewRendered($event) "
120+ < igx-months-view *ngIf ="isYearView "
121+ [@animateView] ="activeView "
122+ #months
123+ (@animateView.done) ="viewRendered($event) "
70124 [date] ="viewDate "
71125 [locale] ="locale "
72126 [formatView] ="formatViews.month "
73127 [monthFormat] ="formatOptions.month "
74128 (onSelection) ="changeMonth($event) ">
75129</ igx-months-view >
76130
77- < igx-years-view *ngIf ="isDecadeView " [@animateView] ="activeView " #decade (@animateView.done) ="viewRendered($event) "
131+ < igx-years-view *ngIf ="isDecadeView "
132+ [@animateView] ="activeView "
133+ #decade
134+ (@animateView.done) ="viewRendered($event) "
78135 [date] ="viewDate "
79136 [locale] ="locale "
80137 [formatView] ="formatViews.year "
0 commit comments