diff --git a/projects/kit/components/calendar-range/calendar-range.component.ts b/projects/kit/components/calendar-range/calendar-range.component.ts index e07c60844c18..13b6b3c773ef 100644 --- a/projects/kit/components/calendar-range/calendar-range.component.ts +++ b/projects/kit/components/calendar-range/calendar-range.component.ts @@ -113,20 +113,12 @@ export class TuiCalendarRange implements OnInit, OnChanges { this.selectedPeriod = period; } - public get computedMonth(): TuiMonth { - return this.value ? this.value.from : this.defaultViewedMonth; - } - public ngOnChanges(): void { - this.defaultViewedMonth = - (this.items.length ? this.value?.to : this.value?.from) || - this.defaultViewedMonth; + this.initDefaultViewedMonth(); } public ngOnInit(): void { - if (!this.value) { - this.updateDefaultViewedMonth(); - } + this.initDefaultViewedMonth(); } protected get calculatedDisabledItemHandler(): TuiBooleanHandler { @@ -257,12 +249,12 @@ export class TuiCalendarRange implements OnInit, OnChanges { }; } - private updateDefaultViewedMonth(): void { - if (this.max && this.defaultViewedMonth.monthSameOrAfter(this.max)) { + private initDefaultViewedMonth(): void { + if (this.value) { + this.defaultViewedMonth = this.items.length ? this.value.to : this.value.from; + } else if (this.max && this.defaultViewedMonth.monthSameOrAfter(this.max)) { this.defaultViewedMonth = this.max.append({month: -1}); - } - - if (this.min && this.defaultViewedMonth.monthSameOrBefore(this.min)) { + } else if (this.min && this.defaultViewedMonth.monthSameOrBefore(this.min)) { this.defaultViewedMonth = this.min; } } diff --git a/projects/kit/components/calendar-range/calendar-range.template.html b/projects/kit/components/calendar-range/calendar-range.template.html index 53685acfd618..abd44a99c6fe 100644 --- a/projects/kit/components/calendar-range/calendar-range.template.html +++ b/projects/kit/components/calendar-range/calendar-range.template.html @@ -6,7 +6,7 @@ [max]="max | tuiMapper: capsMapper : value : maxLength : false" [maxViewedMonth]="items.length ? null : (defaultViewedMonth | tuiMapper: monthOffset : -1)" [min]="min | tuiMapper: capsMapper : value : maxLength : true" - [month]="computedMonth" + [month]="defaultViewedMonth" [showAdjacent]="!!items.length" [value]="value" [(hoveredItem)]="hoveredItem"