@@ -51,25 +51,26 @@ export class DayCalendarService {
51
51
}
52
52
53
53
generateMonthArray ( config : IDayCalendarConfigInternal , month : Moment , selected : Moment [ ] ) : IDay [ ] [ ] {
54
+ const parsedMonth = month . isValid ( ) ? month . clone ( ) : moment ( ) ;
54
55
let monthArray : IDay [ ] [ ] = [ ] ;
55
56
const firstDayOfWeekIndex = this . DAYS . indexOf ( config . firstDayOfWeek ) ;
56
- const firstDayOfBoard = month . clone ( ) . startOf ( 'month' ) ;
57
+ const firstDayOfBoard = parsedMonth . clone ( ) . startOf ( 'month' ) ;
57
58
58
59
while ( firstDayOfBoard . day ( ) !== firstDayOfWeekIndex ) {
59
60
firstDayOfBoard . subtract ( 1 , 'day' ) ;
60
61
}
61
62
62
63
const current = firstDayOfBoard . clone ( ) ;
63
- const prevMonth = month . clone ( ) . subtract ( 1 , 'month' ) ;
64
- const nextMonth = month . clone ( ) . add ( 1 , 'month' ) ;
64
+ const prevMonth = parsedMonth . clone ( ) . subtract ( 1 , 'month' ) ;
65
+ const nextMonth = parsedMonth . clone ( ) . add ( 1 , 'month' ) ;
65
66
const today = moment ( ) ;
66
67
67
68
const daysOfCalendar : IDay [ ] = this . utilsService . createArray ( 42 )
68
69
. reduce ( ( array : IDay [ ] ) => {
69
70
array . push ( {
70
71
date : current . clone ( ) ,
71
72
selected : ! ! selected . find ( selectedDay => current . isSame ( selectedDay , 'day' ) ) ,
72
- currentMonth : current . isSame ( month , 'month' ) ,
73
+ currentMonth : current . isSame ( parsedMonth , 'month' ) ,
73
74
prevMonth : current . isSame ( prevMonth , 'month' ) ,
74
75
nextMonth : current . isSame ( nextMonth , 'month' ) ,
75
76
currentDay : current . isSame ( today , 'day' ) ,
@@ -91,7 +92,7 @@ export class DayCalendarService {
91
92
} ) ;
92
93
93
94
if ( ! config . showNearMonthDays ) {
94
- monthArray = this . removeNearMonthWeeks ( month , monthArray ) ;
95
+ monthArray = this . removeNearMonthWeeks ( parsedMonth , monthArray ) ;
95
96
}
96
97
97
98
return monthArray ;
0 commit comments