@@ -313,6 +313,11 @@ function Datepickk(args) {
313313 return month ;
314314 }
315315
316+ function isDisabledDate ( date ) {
317+ var dateToVerify = date instanceof Date ? date : new Date ( date ) ;
318+ return disabledDates . indexOf ( dateToVerify . getTime ( ) ) != - 1 || disabledDays . indexOf ( dateToVerify . getDay ( ) ) != - 1 ;
319+ }
320+
316321 function generateDates ( year , month ) {
317322 var monthElements = that . el . querySelectorAll ( '.d-table' ) ;
318323 var ws = weekStart !== null ? weekStart : languages [ lang ] . weekStart ;
@@ -377,7 +382,7 @@ function Datepickk(args) {
377382 if ( date instanceof Date ) {
378383 inputEl . setAttribute ( 'data-date' , date . toJSON ( ) ) ;
379384
380- if ( disabledDates . indexOf ( date . getTime ( ) ) != - 1 || disabledDays . indexOf ( date . getDay ( ) ) != - 1 ) {
385+ if ( isDisabledDate ( date ) ) {
381386 inputEl . setAttribute ( 'disabled' , true ) ;
382387 }
383388
@@ -556,8 +561,8 @@ function Datepickk(args) {
556561 setDate ( ) ;
557562 } ;
558563
559- function selectDate ( date , ignoreOnSelect ) {
560- if ( date != '' ) {
564+ function selectDate ( date , ignoreOnSelect , ignoreDisabled ) {
565+ if ( date != '' && ( ignoreDisabled || ! isDisabledDate ( date ) ) ) {
561566 date = new Date ( date ) ;
562567 date . setHours ( 0 , 0 , 0 , 0 ) ;
563568 var el = that . el . querySelector ( '[data-date="' + date . toJSON ( ) + '"]' ) ;
@@ -578,14 +583,14 @@ function Datepickk(args) {
578583 }
579584 } ;
580585
581- function selectDates ( dates , ignoreOnSelect ) {
586+ function selectDates ( dates , ignoreOnSelect , ignoreDisabled ) {
582587 dates . forEach ( function ( element ) {
583- selectDate ( element , ignoreOnSelect ) ;
588+ selectDate ( element , ignoreOnSelect , ignoreDisabled ) ;
584589 } ) ;
585590 } ;
586591
587- function unselectDate ( date , ignoreOnSelect ) {
588- if ( date != '' ) {
592+ function unselectDate ( date , ignoreOnSelect , ignoreDisabled ) {
593+ if ( date != '' && ( ignoreDisabled || ! isDisabledDate ( date ) ) ) {
589594 date = new Date ( date ) ;
590595 date . setHours ( 0 , 0 , 0 , 0 ) ;
591596 var el = that . el . querySelector ( '[data-date="' + date . toJSON ( ) + '"]' ) ;
@@ -606,15 +611,15 @@ function Datepickk(args) {
606611 }
607612 } ;
608613
609- function unselectDates ( dates , ignoreOnSelect ) {
614+ function unselectDates ( dates , ignoreOnSelect , ignoreDisabled ) {
610615 dates . forEach ( function ( element ) {
611- unselectDate ( element , ignoreOnSelect ) ;
616+ unselectDate ( element , ignoreOnSelect , ignoreDisabled ) ;
612617 } ) ;
613618 } ;
614619
615- function unselectAll ( ignoreOnSelect ) {
620+ function unselectAll ( ignoreOnSelect , ignoreDisabled ) {
616621 selectedDates . forEach ( function ( date ) {
617- unselectDate ( date , ignoreOnSelect ) ;
622+ unselectDate ( date , ignoreOnSelect , ignoreDisabled ) ;
618623 } ) ;
619624 } ;
620625
0 commit comments