@@ -57,7 +57,7 @@ class Calendar extends Framework7Class {
5757 function onHtmlClick ( e ) {
5858 const $targetEl = $ ( e . target ) ;
5959 if ( calendar . isPopover ( ) ) return ;
60- if ( ! calendar . opened ) return ;
60+ if ( ! calendar . opened || calendar . closing ) return ;
6161 if ( $targetEl . closest ( '[class*="backdrop"]' ) . length ) return ;
6262 if ( $inputEl && $inputEl . length > 0 ) {
6363 if ( $targetEl [ 0 ] !== $inputEl [ 0 ] && $targetEl . closest ( '.sheet-modal, .calendar-modal' ) . length === 0 ) {
@@ -596,7 +596,9 @@ class Calendar extends Framework7Class {
596596 const prevDateTime = prevDate . getTime ( ) ;
597597 const transitionEndCallback = ! calendar . animating ;
598598 if ( params . minDate ) {
599- if ( prevDateTime < new Date ( params . minDate ) . getTime ( ) ) {
599+ let minDate = new Date ( params . minDate ) ;
600+ minDate = new Date ( minDate . getFullYear ( ) , minDate . getMonth ( ) , 1 ) ;
601+ if ( prevDateTime < minDate . getTime ( ) ) {
600602 calendar . resetMonth ( ) ;
601603 return ;
602604 }
@@ -660,8 +662,12 @@ class Calendar extends Framework7Class {
660662 if ( params . maxDate && targetDate > new Date ( params . maxDate ) . getTime ( ) ) {
661663 return false ;
662664 }
663- if ( params . minDate && targetDate < new Date ( params . minDate ) . getTime ( ) ) {
664- return false ;
665+ if ( params . minDate ) {
666+ let minDate = new Date ( params . minDate ) ;
667+ minDate = new Date ( minDate . getFullYear ( ) , minDate . getMonth ( ) , 1 ) ;
668+ if ( targetDate < minDate . getTime ( ) ) {
669+ return false ;
670+ }
665671 }
666672 const currentDate = new Date ( calendar . currentYear , calendar . currentMonth ) . getTime ( ) ;
667673 const dir = targetDate > currentDate ? 'next' : 'prev' ;
@@ -1126,7 +1132,9 @@ class Calendar extends Framework7Class {
11261132 onOpen ( ) {
11271133 const calendar = this ;
11281134 const { initialized, $el, app, $inputEl, inline, value, params } = calendar ;
1135+ calendar . closing = false ;
11291136 calendar . opened = true ;
1137+ calendar . opening = true ;
11301138
11311139 // Init main events
11321140 calendar . attachCalendarEvents ( ) ;
@@ -1178,6 +1186,7 @@ class Calendar extends Framework7Class {
11781186 }
11791187 onOpened ( ) {
11801188 const calendar = this ;
1189+ calendar . opening = false ;
11811190 if ( calendar . $el ) {
11821191 calendar . $el . trigger ( 'calendar:opened' , calendar ) ;
11831192 }
@@ -1189,6 +1198,8 @@ class Calendar extends Framework7Class {
11891198 onClose ( ) {
11901199 const calendar = this ;
11911200 const app = calendar . app ;
1201+ calendar . opening = false ;
1202+ calendar . closing = true ;
11921203
11931204 if ( calendar . $inputEl && app . theme === 'md' ) {
11941205 calendar . $inputEl . trigger ( 'blur' ) ;
@@ -1208,6 +1219,7 @@ class Calendar extends Framework7Class {
12081219 onClosed ( ) {
12091220 const calendar = this ;
12101221 calendar . opened = false ;
1222+ calendar . closing = false ;
12111223
12121224 if ( ! calendar . inline ) {
12131225 Utils . nextTick ( ( ) => {
0 commit comments