@@ -315,11 +315,10 @@ class DateRangePicker extends BaseComponent {
315
315
} )
316
316
317
317
EventHandler . on ( this . _startInput , EVENT_INPUT , event => {
318
- const date = this . _config . inputDateParse ?
319
- this . _config . inputDateParse ( event . target . value ) :
320
- getLocalDateFromString ( event . target . value , this . _config . locale , this . _config . timepicker )
318
+ const date = this . _parseDate ( event . target . value )
321
319
322
- if ( date instanceof Date && date . getTime ( ) ) {
320
+ // valid date or empty date
321
+ if ( ( date instanceof Date && ! isNaN ( date ) ) || ( date === null ) ) {
323
322
this . _startDate = date
324
323
this . _calendarDate = date
325
324
this . _calendar . update ( this . _getCalendarConfig ( ) )
@@ -358,16 +357,16 @@ class DateRangePicker extends BaseComponent {
358
357
} )
359
358
360
359
EventHandler . on ( this . _endInput , EVENT_INPUT , event => {
361
- const date = this . _config . inputDateParse ?
362
- this . _config . inputDateParse ( event . target . value ) :
363
- getLocalDateFromString ( event . target . value , this . _config . locale , this . _config . timepicker )
364
- if ( date instanceof Date && date . getTime ( ) ) {
360
+ const date = this . _parseDate ( event . target . value )
361
+
362
+ // valid date or empty date
363
+ if ( ( date instanceof Date && ! isNaN ( date ) ) || ( date === null ) ) {
365
364
this . _endDate = date
366
365
this . _calendarDate = date
367
366
this . _calendar . update ( this . _getCalendarConfig ( ) )
368
367
369
368
EventHandler . trigger ( this . _element , EVENT_END_DATE_CHANGE , {
370
- date : value
369
+ date : date
371
370
} )
372
371
}
373
372
} )
@@ -813,7 +812,19 @@ class DateRangePicker extends BaseComponent {
813
812
this . _popper = Popper . createPopper ( this . _togglerElement , this . _menu , popperConfig )
814
813
}
815
814
815
+ _parseDate ( str ) {
816
+ if ( ! str )
817
+ return null ;
818
+
819
+ return this . _config . inputDateParse ?
820
+ this . _config . inputDateParse ( str ) :
821
+ getLocalDateFromString ( str , this . _config . locale , this . _config . timepicker )
822
+ }
823
+
816
824
_formatDate ( date ) {
825
+ if ( ! date )
826
+ return '' ;
827
+
817
828
if ( this . _config . inputDateFormat ) {
818
829
return this . _config . inputDateFormat (
819
830
date instanceof Date ? new Date ( date ) : convertToDateObject ( date , this . _config . selectionType )
0 commit comments