Skip to content

Commit d26af79

Browse files
committed
fix(calendar): fix custom sbheader templates #4282
1 parent 6ed20d7 commit d26af79

File tree

3 files changed

+26
-17
lines changed

3 files changed

+26
-17
lines changed

projects/igniteui-angular/src/lib/calendar/calendar.component.html

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,15 @@
33
<span>{{ getFormattedDate().monthday }}</span>
44
</ng-template>
55

6-
<ng-template let-result #defaultMonth >
7-
<ng-container *ngFor="let view of dayViews; index as i;">
8-
<div [style.width.%]="100/monthsViewNumber" style="text-align: center">
9-
<span tabindex="0" #monthsBtn (keydown)="activeViewYearKB($event)" (click)="activeViewYear()"
10-
class="igx-calendar-picker__date">
11-
{{ formattedMonth(getViewDate(i)) }}
12-
</span>
13-
<span tabindex="0" #yearsBtn (keydown)="activeViewDecadeKB($event)" (click)="activeViewDecade()"
14-
class="igx-calendar-picker__date">
15-
{{ formattedYear(getViewDate(i)) }}
16-
</span>
17-
</div>
18-
</ng-container>
6+
<ng-template let-result #defaultMonth let-obj>
7+
<span tabindex="0" #monthsBtn (keydown)="activeViewYearKB($event)" (click)="activeViewYear()"
8+
class="igx-calendar-picker__date">
9+
{{ formattedMonth(getViewDate(obj.index)) }}
10+
</span>
11+
<span tabindex="0" #yearsBtn (keydown)="activeViewDecadeKB($event)" (click)="activeViewDecade()"
12+
class="igx-calendar-picker__date">
13+
{{ formattedYear(getViewDate(obj.index)) }}
14+
</span>
1915
</ng-template>
2016

2117
<div *ngIf="selection === 'single' && hasHeader" class="igx-calendar__header">
@@ -36,9 +32,9 @@ <h2 class="igx-calendar__header-date">
3632
}">
3733
<igx-icon fontSet="material">keyboard_arrow_left</igx-icon>
3834
</div>
39-
<div style="display: contents">
40-
<ng-container *ngTemplateOutlet="subheaderTemplate ? subheaderTemplate : defaultMonth; context: context">
41-
</ng-container>
35+
<div *ngFor="let view of dayViews; index as i;" [style.width.%]="100/monthsViewNumber">
36+
<ng-template *ngTemplateOutlet="subheaderTemplate ? subheaderTemplate : defaultMonth; context: getContext(i)">
37+
</ng-template>
4238
</div>
4339
<div tabindex="0" class="igx-calendar-picker__next" #nextMonthBtn
4440
igxCalendarScrollMonth [startScroll]="startNextMonthScroll" [stopScroll]="stopMonthScroll" [ngStyle]="{

projects/igniteui-angular/src/lib/calendar/calendar.component.ts

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -591,6 +591,15 @@ export class IgxCalendarComponent extends IgxMonthPickerBase implements AfterVie
591591
return nextMonthDate;
592592
}
593593

594+
/**
595+
* @hidden
596+
*/
597+
public getContext(i: number) {
598+
const date: Date = new Date(this.viewDate);
599+
date.setMonth(date.getMonth() + i);
600+
return this.generateContext(date, i);
601+
}
602+
594603
/**
595604
* @hidden
596605
*/
@@ -758,8 +767,9 @@ export class IgxCalendarComponent extends IgxMonthPickerBase implements AfterVie
758767
* the calendar templates.
759768
* @hidden
760769
*/
761-
private generateContext(value: Date) {
770+
private generateContext(value: Date, i?: number) {
762771
const formatObject = {
772+
index: i,
763773
monthView: () => this.activeViewYear(),
764774
yearView: () => this.activeViewDecade(),
765775
...this.calendarModel.formatToParts(value, this.locale, this.formatOptions,

projects/igniteui-angular/src/lib/core/styles/components/calendar/_calendar-theme.scss

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -360,6 +360,9 @@
360360
align-items: center;
361361
padding-bottom: $cal-picker-padding;
362362
position: relative;
363+
div {
364+
text-align: center;
365+
}
363366
}
364367

365368
%cal-picker-arrow {

0 commit comments

Comments
 (0)