diff --git a/dist/css/datepicker.css b/dist/css/datepicker.css
index 5fefffb..7d34a3d 100644
--- a/dist/css/datepicker.css
+++ b/dist/css/datepicker.css
@@ -10,10 +10,10 @@
.-selected-.-focus-.datepicker--cell-day.-other-month-, .-selected-.-focus-.datepicker--cell-year.-other-decade- {
background: #8ad5f4; }
.-in-range-.datepicker--cell-day.-other-month-, .-in-range-.datepicker--cell-year.-other-decade- {
- background-color: #EAF9FF;
+ background-color: rgba(92, 196, 239, 0.1);
color: #cccccc; }
.-in-range-.-focus-.datepicker--cell-day.-other-month-, .-in-range-.-focus-.datepicker--cell-year.-other-decade- {
- background-color: #effaff; }
+ background-color: rgba(92, 196, 239, 0.2); }
.datepicker--cell-day.-other-month-:empty, .datepicker--cell-year.-other-decade-:empty {
background: none;
border: none; }
@@ -43,38 +43,45 @@
-ms-flex-pack: center;
justify-content: center;
height: 32px;
- z-index: 1;
- /*&:hover, */ }
+ z-index: 1; }
.datepicker--cell.-focus- {
background: #f0f0f0; }
.datepicker--cell.-current- {
color: #4EB5E6; }
.datepicker--cell.-current-.-focus- {
color: #4a4a4a; }
+ .datepicker--cell.-current-.-in-range- {
+ color: #4EB5E6; }
.datepicker--cell.-in-range- {
- background: #EAF9FF;
+ background: rgba(92, 196, 239, 0.1);
color: #4a4a4a;
padding: 0;
background-clip: content-box;
border-radius: 0; }
.datepicker--cell.-in-range-.-focus- {
- background-color: #d0f2ff; }
+ background-color: rgba(92, 196, 239, 0.2); }
.datepicker--cell.-disabled- {
cursor: default;
color: #aeaeae; }
.datepicker--cell.-disabled-.-focus- {
- color: #aeaeae;
- background: #f0f0f0; }
- .datepicker--cell.-disabled-.-current-:hover {
+ color: #aeaeae; }
+ .datepicker--cell.-disabled-.-in-range- {
+ color: #a1a1a1; }
+ .datepicker--cell.-disabled-.-current-.-focus- {
color: #aeaeae; }
.datepicker--cell.-range-from- {
+ border: 1px solid rgba(92, 196, 239, 0.5);
+ background-color: rgba(92, 196, 239, 0.1);
border-radius: 4px 0 0 4px; }
.datepicker--cell.-range-to- {
+ border: 1px solid rgba(92, 196, 239, 0.5);
+ background-color: rgba(92, 196, 239, 0.1);
border-radius: 0 4px 4px 0; }
.datepicker--cell.-range-from-.-range-to- {
border-radius: 4px; }
.datepicker--cell.-selected- {
color: #fff;
+ border: none;
background: #5cc4ef; }
.datepicker--cell.-selected-.-current- {
color: #fff;
@@ -141,10 +148,10 @@
.-selected-.-focus-.datepicker--cell-day.-other-month-, .-selected-.-focus-.datepicker--cell-year.-other-decade- {
background: #8ad5f4; }
.-in-range-.datepicker--cell-day.-other-month-, .-in-range-.datepicker--cell-year.-other-decade- {
- background-color: #EAF9FF;
+ background-color: rgba(92, 196, 239, 0.1);
color: #cccccc; }
.-in-range-.-focus-.datepicker--cell-day.-other-month-, .-in-range-.-focus-.datepicker--cell-year.-other-decade- {
- background-color: #effaff; }
+ background-color: rgba(92, 196, 239, 0.2); }
.datepicker--cell-day.-other-month-:empty, .datepicker--cell-year.-other-decade-:empty {
background: none;
border: none; }
@@ -265,10 +272,10 @@
.-selected-.-focus-.datepicker--cell-day.-other-month-, .-selected-.-focus-.datepicker--cell-year.-other-decade- {
background: #8ad5f4; }
.-in-range-.datepicker--cell-day.-other-month-, .-in-range-.datepicker--cell-year.-other-decade- {
- background-color: #EAF9FF;
+ background-color: rgba(92, 196, 239, 0.1);
color: #cccccc; }
.-in-range-.-focus-.datepicker--cell-day.-other-month-, .-in-range-.-focus-.datepicker--cell-year.-other-decade- {
- background-color: #effaff; }
+ background-color: rgba(92, 196, 239, 0.2); }
.datepicker--cell-day.-other-month-:empty, .datepicker--cell-year.-other-decade-:empty {
background: none;
border: none; }
@@ -372,10 +379,10 @@
.-selected-.-focus-.datepicker--cell-day.-other-month-, .-selected-.-focus-.datepicker--cell-year.-other-decade- {
background: #8ad5f4; }
.-in-range-.datepicker--cell-day.-other-month-, .-in-range-.datepicker--cell-year.-other-decade- {
- background-color: #EAF9FF;
+ background-color: rgba(92, 196, 239, 0.1);
color: #cccccc; }
.-in-range-.-focus-.datepicker--cell-day.-other-month-, .-in-range-.-focus-.datepicker--cell-year.-other-decade- {
- background-color: #effaff; }
+ background-color: rgba(92, 196, 239, 0.2); }
.datepicker--cell-day.-other-month-:empty, .datepicker--cell-year.-other-decade-:empty {
background: none;
border: none; }
diff --git a/dist/css/datepicker.min.css b/dist/css/datepicker.min.css
index e63f3e3..eb5dfea 100644
--- a/dist/css/datepicker.min.css
+++ b/dist/css/datepicker.min.css
@@ -1 +1 @@
-.datepicker--cells{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.datepicker--cell{border-radius:4px;cursor:pointer;display:-webkit-flex;display:-ms-flexbox;display:flex;position:relative;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;height:32px;z-index:1}.datepicker--cell.-focus-{background:#f0f0f0}.datepicker--cell.-current-{color:#4EB5E6}.datepicker--cell.-current-.-focus-{color:#4a4a4a}.datepicker--cell.-in-range-{background:#EAF9FF;color:#4a4a4a;padding:0;background-clip:content-box;border-radius:0}.datepicker--cell.-in-range-.-focus-{background-color:#d0f2ff}.datepicker--cell.-disabled-{cursor:default;color:#aeaeae}.datepicker--cell.-disabled-.-focus-{color:#aeaeae;background:#f0f0f0}.datepicker--cell.-disabled-.-current-:hover{color:#aeaeae}.datepicker--cell.-range-from-{border-radius:4px 0 0 4px}.datepicker--cell.-range-to-{border-radius:0 4px 4px 0}.datepicker--cell.-range-from-.-range-to-{border-radius:4px}.datepicker--cell.-selected-,.datepicker--cell.-selected-.-current-{color:#fff;background:#5cc4ef}.datepicker--cell.-selected-.-focus-{background:#45bced}.datepicker--days-names{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;margin:8px 0 3px}.datepicker--day-name{color:#FF9A19;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-flex:1;-ms-flex:1;flex:1;text-align:center;text-transform:uppercase;font-size:.8em}.datepicker--body,.datepicker-inline .datepicker--pointer{display:none}.datepicker--cell-day{width:14.28571%}.datepicker--cells-months{height:170px}.datepicker--cell-month{width:33.33%;height:25%}.datepicker--cells-years,.datepicker--years{height:170px}.datepicker--cell-year{width:25%;height:33.33%}.datepickers-container{position:absolute;left:0;top:0}.datepicker{background:#fff;border:1px solid #dbdbdb;box-shadow:0 4px 12px rgba(0,0,0,.15);border-radius:4px;box-sizing:content-box;font-family:Tahoma,sans-serif;font-size:14px;color:#4a4a4a;width:250px;position:absolute;left:-100000px;opacity:0;transition:opacity .3s ease,left 0s .3s,-webkit-transform .3s ease;transition:opacity .3s ease,transform .3s ease,left 0s .3s;transition:opacity .3s ease,transform .3s ease,left 0s .3s,-webkit-transform .3s ease;z-index:100}.datepicker.-from-top-{-webkit-transform:translateY(-8px);transform:translateY(-8px)}.datepicker.-from-right-{-webkit-transform:translateX(8px);transform:translateX(8px)}.datepicker.-from-bottom-{-webkit-transform:translateY(8px);transform:translateY(8px)}.datepicker.-from-left-{-webkit-transform:translateX(-8px);transform:translateX(-8px)}.datepicker.active{opacity:1;-webkit-transform:translate(0);transform:translate(0);transition:opacity .3s ease,left 0s 0s,-webkit-transform .3s ease;transition:opacity .3s ease,transform .3s ease,left 0s 0s;transition:opacity .3s ease,transform .3s ease,left 0s 0s,-webkit-transform .3s ease}.datepicker-inline .datepicker{border-color:#d7d7d7;box-shadow:none;position:static;left:auto;right:auto;opacity:1;-webkit-transform:none;transform:none}.datepicker--content{box-sizing:content-box;padding:4px}.datepicker--pointer{position:absolute;background:#fff;border-top:1px solid #dbdbdb;border-right:1px solid #dbdbdb;width:10px;height:10px;z-index:-1}.datepicker--nav-action:hover,.datepicker--nav-title:hover{background:#f0f0f0}.-top-center- .datepicker--pointer,.-top-left- .datepicker--pointer,.-top-right- .datepicker--pointer{top:calc(100% - 4px);-webkit-transform:rotate(135deg);transform:rotate(135deg)}.-right-bottom- .datepicker--pointer,.-right-center- .datepicker--pointer,.-right-top- .datepicker--pointer{right:calc(100% - 4px);-webkit-transform:rotate(225deg);transform:rotate(225deg)}.-bottom-center- .datepicker--pointer,.-bottom-left- .datepicker--pointer,.-bottom-right- .datepicker--pointer{bottom:calc(100% - 4px);-webkit-transform:rotate(315deg);transform:rotate(315deg)}.-left-bottom- .datepicker--pointer,.-left-center- .datepicker--pointer,.-left-top- .datepicker--pointer{left:calc(100% - 4px);-webkit-transform:rotate(45deg);transform:rotate(45deg)}.-bottom-left- .datepicker--pointer,.-top-left- .datepicker--pointer{left:10px}.-bottom-right- .datepicker--pointer,.-top-right- .datepicker--pointer{right:10px}.-bottom-center- .datepicker--pointer,.-top-center- .datepicker--pointer{left:calc(50% - 10px / 2)}.-left-top- .datepicker--pointer,.-right-top- .datepicker--pointer{top:10px}.-left-bottom- .datepicker--pointer,.-right-bottom- .datepicker--pointer{bottom:10px}.-left-center- .datepicker--pointer,.-right-center- .datepicker--pointer{top:calc(50% - 10px / 2)}.datepicker--body.active{display:block}.datepicker--nav{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;border-bottom:1px solid #efefef;min-height:32px;padding:4px}.datepicker--nav-action,.datepicker--nav-title{display:-webkit-flex;display:-ms-flexbox;display:flex;cursor:pointer;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.datepicker--nav-action{width:32px;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.datepicker--nav-action.-disabled-{visibility:hidden}.datepicker--nav-action svg{width:32px;height:32px}.datepicker--nav-action path{fill:none;stroke:#9c9c9c;stroke-width:2px}.datepicker--nav-title{border-radius:4px;padding:0 8px}.datepicker--nav-title i{font-style:normal;color:#9c9c9c;margin-left:5px}.datepicker--nav-title.-disabled-{cursor:default;background:0 0}.datepicker--buttons{display:-webkit-flex;display:-ms-flexbox;display:flex;padding:4px;border-top:1px solid #efefef}.datepicker--button{color:#4EB5E6;cursor:pointer;border-radius:4px;-webkit-flex:1;-ms-flex:1;flex:1;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;height:32px}.datepicker--button:hover{color:#4a4a4a;background:#f0f0f0}.datepicker--cell-day.-other-month-,.datepicker--cell-year.-other-decade-{color:#dedede}.datepicker--cell-day.-other-month-:hover,.datepicker--cell-year.-other-decade-:hover{color:#c5c5c5}.-disabled-.-focus-.datepicker--cell-day.-other-month-,.-disabled-.-focus-.datepicker--cell-year.-other-decade-{color:#dedede}.-selected-.datepicker--cell-day.-other-month-,.-selected-.datepicker--cell-year.-other-decade-{color:#fff;background:#a2ddf6}.-selected-.-focus-.datepicker--cell-day.-other-month-,.-selected-.-focus-.datepicker--cell-year.-other-decade-{background:#8ad5f4}.-in-range-.datepicker--cell-day.-other-month-,.-in-range-.datepicker--cell-year.-other-decade-{background-color:#EAF9FF;color:#ccc}.-in-range-.-focus-.datepicker--cell-day.-other-month-,.-in-range-.-focus-.datepicker--cell-year.-other-decade-{background-color:#effaff}.datepicker--cell-day.-other-month-:empty,.datepicker--cell-year.-other-decade-:empty{background:0 0;border:none}
\ No newline at end of file
+.datepicker--cells{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.datepicker--cell{border-radius:4px;cursor:pointer;display:-webkit-flex;display:-ms-flexbox;display:flex;position:relative;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;height:32px;z-index:1}.datepicker--cell.-focus-{background:#f0f0f0}.datepicker--cell.-current-{color:#4EB5E6}.datepicker--cell.-current-.-focus-{color:#4a4a4a}.datepicker--cell.-current-.-in-range-{color:#4EB5E6}.datepicker--cell.-in-range-{background:rgba(92,196,239,.1);color:#4a4a4a;padding:0;background-clip:content-box;border-radius:0}.datepicker--cell.-in-range-.-focus-{background-color:rgba(92,196,239,.2)}.datepicker--cell.-disabled-{cursor:default;color:#aeaeae}.datepicker--cell.-disabled-.-focus-{color:#aeaeae}.datepicker--cell.-disabled-.-in-range-{color:#a1a1a1}.datepicker--cell.-disabled-.-current-.-focus-{color:#aeaeae}.datepicker--cell.-range-from-{border:1px solid rgba(92,196,239,.5);background-color:rgba(92,196,239,.1);border-radius:4px 0 0 4px}.datepicker--cell.-range-to-{border:1px solid rgba(92,196,239,.5);background-color:rgba(92,196,239,.1);border-radius:0 4px 4px 0}.datepicker--cell.-selected-,.datepicker--cell.-selected-.-current-{color:#fff;background:#5cc4ef}.datepicker--cell.-range-from-.-range-to-{border-radius:4px}.datepicker--cell.-selected-{border:none}.datepicker--cell.-selected-.-focus-{background:#45bced}.datepicker--days-names{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;margin:8px 0 3px}.datepicker--day-name{color:#FF9A19;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-flex:1;-ms-flex:1;flex:1;text-align:center;text-transform:uppercase;font-size:.8em}.datepicker--body,.datepicker-inline .datepicker--pointer{display:none}.datepicker--cell-day{width:14.28571%}.datepicker--cells-months{height:170px}.datepicker--cell-month{width:33.33%;height:25%}.datepicker--cells-years,.datepicker--years{height:170px}.datepicker--cell-year{width:25%;height:33.33%}.datepickers-container{position:absolute;left:0;top:0}.datepicker{background:#fff;border:1px solid #dbdbdb;box-shadow:0 4px 12px rgba(0,0,0,.15);border-radius:4px;box-sizing:content-box;font-family:Tahoma,sans-serif;font-size:14px;color:#4a4a4a;width:250px;position:absolute;left:-100000px;opacity:0;transition:opacity .3s ease,left 0s .3s,-webkit-transform .3s ease;transition:opacity .3s ease,transform .3s ease,left 0s .3s;transition:opacity .3s ease,transform .3s ease,left 0s .3s,-webkit-transform .3s ease;z-index:100}.datepicker.-from-top-{-webkit-transform:translateY(-8px);transform:translateY(-8px)}.datepicker.-from-right-{-webkit-transform:translateX(8px);transform:translateX(8px)}.datepicker.-from-bottom-{-webkit-transform:translateY(8px);transform:translateY(8px)}.datepicker.-from-left-{-webkit-transform:translateX(-8px);transform:translateX(-8px)}.datepicker.active{opacity:1;-webkit-transform:translate(0);transform:translate(0);transition:opacity .3s ease,left 0s 0s,-webkit-transform .3s ease;transition:opacity .3s ease,transform .3s ease,left 0s 0s;transition:opacity .3s ease,transform .3s ease,left 0s 0s,-webkit-transform .3s ease}.datepicker-inline .datepicker{border-color:#d7d7d7;box-shadow:none;position:static;left:auto;right:auto;opacity:1;-webkit-transform:none;transform:none}.datepicker--content{box-sizing:content-box;padding:4px}.datepicker--pointer{position:absolute;background:#fff;border-top:1px solid #dbdbdb;border-right:1px solid #dbdbdb;width:10px;height:10px;z-index:-1}.datepicker--nav-action:hover,.datepicker--nav-title:hover{background:#f0f0f0}.-top-center- .datepicker--pointer,.-top-left- .datepicker--pointer,.-top-right- .datepicker--pointer{top:calc(100% - 4px);-webkit-transform:rotate(135deg);transform:rotate(135deg)}.-right-bottom- .datepicker--pointer,.-right-center- .datepicker--pointer,.-right-top- .datepicker--pointer{right:calc(100% - 4px);-webkit-transform:rotate(225deg);transform:rotate(225deg)}.-bottom-center- .datepicker--pointer,.-bottom-left- .datepicker--pointer,.-bottom-right- .datepicker--pointer{bottom:calc(100% - 4px);-webkit-transform:rotate(315deg);transform:rotate(315deg)}.-left-bottom- .datepicker--pointer,.-left-center- .datepicker--pointer,.-left-top- .datepicker--pointer{left:calc(100% - 4px);-webkit-transform:rotate(45deg);transform:rotate(45deg)}.-bottom-left- .datepicker--pointer,.-top-left- .datepicker--pointer{left:10px}.-bottom-right- .datepicker--pointer,.-top-right- .datepicker--pointer{right:10px}.-bottom-center- .datepicker--pointer,.-top-center- .datepicker--pointer{left:calc(50% - 10px / 2)}.-left-top- .datepicker--pointer,.-right-top- .datepicker--pointer{top:10px}.-left-bottom- .datepicker--pointer,.-right-bottom- .datepicker--pointer{bottom:10px}.-left-center- .datepicker--pointer,.-right-center- .datepicker--pointer{top:calc(50% - 10px / 2)}.datepicker--body.active{display:block}.datepicker--nav{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;border-bottom:1px solid #efefef;min-height:32px;padding:4px}.datepicker--nav-action,.datepicker--nav-title{display:-webkit-flex;display:-ms-flexbox;display:flex;cursor:pointer;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.datepicker--nav-action{width:32px;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.datepicker--nav-action.-disabled-{visibility:hidden}.datepicker--nav-action svg{width:32px;height:32px}.datepicker--nav-action path{fill:none;stroke:#9c9c9c;stroke-width:2px}.datepicker--nav-title{border-radius:4px;padding:0 8px}.datepicker--nav-title i{font-style:normal;color:#9c9c9c;margin-left:5px}.datepicker--nav-title.-disabled-{cursor:default;background:0 0}.datepicker--buttons{display:-webkit-flex;display:-ms-flexbox;display:flex;padding:4px;border-top:1px solid #efefef}.datepicker--button{color:#4EB5E6;cursor:pointer;border-radius:4px;-webkit-flex:1;-ms-flex:1;flex:1;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;height:32px}.datepicker--button:hover{color:#4a4a4a;background:#f0f0f0}.datepicker--cell-day.-other-month-,.datepicker--cell-year.-other-decade-{color:#dedede}.datepicker--cell-day.-other-month-:hover,.datepicker--cell-year.-other-decade-:hover{color:#c5c5c5}.-disabled-.-focus-.datepicker--cell-day.-other-month-,.-disabled-.-focus-.datepicker--cell-year.-other-decade-{color:#dedede}.-selected-.datepicker--cell-day.-other-month-,.-selected-.datepicker--cell-year.-other-decade-{color:#fff;background:#a2ddf6}.-selected-.-focus-.datepicker--cell-day.-other-month-,.-selected-.-focus-.datepicker--cell-year.-other-decade-{background:#8ad5f4}.-in-range-.datepicker--cell-day.-other-month-,.-in-range-.datepicker--cell-year.-other-decade-{background-color:rgba(92,196,239,.1);color:#ccc}.-in-range-.-focus-.datepicker--cell-day.-other-month-,.-in-range-.-focus-.datepicker--cell-year.-other-decade-{background-color:rgba(92,196,239,.2)}.datepicker--cell-day.-other-month-:empty,.datepicker--cell-year.-other-decade-:empty{background:0 0;border:none}
\ No newline at end of file
diff --git a/dist/js/datepicker.js b/dist/js/datepicker.js
index e1d6ccb..804ff04 100644
--- a/dist/js/datepicker.js
+++ b/dist/js/datepicker.js
@@ -44,7 +44,7 @@ var Datepicker;
multipleDates: false, // Boolean or Number
multipleDatesSeparator: ',',
- range: true,
+ range: false,
todayButton: false,
clearButton: false,
@@ -84,7 +84,8 @@ var Datepicker;
'altLeft': [18, 37],
'altDown': [18, 40],
'ctrlShiftUp': [16, 17, 38]
- };
+ },
+ datepicker;
Datepicker = function (el, options) {
this.el = el;
@@ -124,8 +125,9 @@ var Datepicker;
this.init()
};
+ datepicker = Datepicker;
- Datepicker.prototype = {
+ datepicker.prototype = {
viewIndexes: ['days', 'months', 'years'],
init: function () {
@@ -236,7 +238,7 @@ var Datepicker;
}
var selectedDates = this.selectedDates,
- parsedSelected = Datepicker.getParsedDate(selectedDates[0]),
+ parsedSelected = datepicker.getParsedDate(selectedDates[0]),
formattedDates,
_this = this,
dates = new Date(parsedSelected.year, parsedSelected.month, parsedSelected.date);
@@ -248,7 +250,7 @@ var Datepicker;
// Create new dates array, to separate it from original selectedDates
if (this.opts.multipleDates) {
dates = selectedDates.map(function(date) {
- var parsedDate = Datepicker.getParsedDate(date);
+ var parsedDate = datepicker.getParsedDate(date);
return new Date(parsedDate.year, parsedDate.month, parsedDate.date)
})
}
@@ -298,8 +300,8 @@ var Datepicker;
date = date || this.date;
var result = string,
locale = this.loc,
- decade = Datepicker.getDecade(date),
- d = Datepicker.getParsedDate(date);
+ decade = datepicker.getDecade(date),
+ d = datepicker.getParsedDate(date);
switch (true) {
case /@/.test(result):
@@ -407,7 +409,7 @@ var Datepicker;
if (!(date instanceof Date)) return;
return selected.some(function (curDate, i) {
- if (Datepicker.isSame(curDate, date)) {
+ if (datepicker.isSame(curDate, date)) {
selected.splice(i, 1);
_this.views[_this.currentView]._render();
_this._setInputValue();
@@ -431,6 +433,7 @@ var Datepicker;
this.minRange = '';
this.maxRange = '';
this.views[this.currentView]._render();
+ this._setInputValue();
if (this.opts.onSelect) {
this._triggerOnChange()
}
@@ -485,7 +488,7 @@ var Datepicker;
_isSelected: function (checkDate, cellType) {
return this.selectedDates.some(function (date) {
- return Datepicker.isSame(date, checkDate, cellType)
+ return datepicker.isSame(date, checkDate, cellType)
})
},
@@ -502,6 +505,7 @@ var Datepicker;
altValues = this.selectedDates.map(function (date) {
return _this.formatDate(altFormat, date)
});
+ altValues = altValues.join(this.opts.multipleDatesSeparator);
this.$altField.val(altValues);
}
@@ -519,9 +523,9 @@ var Datepicker;
*/
_isInRange: function (date, type) {
var time = date.getTime(),
- d = Datepicker.getParsedDate(date),
- min = Datepicker.getParsedDate(this.minDate),
- max = Datepicker.getParsedDate(this.maxDate),
+ d = datepicker.getParsedDate(date),
+ min = datepicker.getParsedDate(this.minDate),
+ max = datepicker.getParsedDate(this.maxDate),
dMinTime = new Date(d.year, d.month, min.date).getTime(),
dMaxTime = new Date(d.year, d.month, max.date).getTime(),
types = {
@@ -663,7 +667,7 @@ var Datepicker;
},
_handleHotKey: function (key) {
- var date = Datepicker.getParsedDate(this._getFocusedDate()),
+ var date = datepicker.getParsedDate(this._getFocusedDate()),
focusedParsed,
o = this.opts,
newDate,
@@ -711,7 +715,7 @@ var Datepicker;
break;
}
- totalDaysInNextMonth = Datepicker.getDaysCount(new Date(y,m));
+ totalDaysInNextMonth = datepicker.getDaysCount(new Date(y,m));
newDate = new Date(y,m,d);
// If next month has less days than current, set date to total days in that month
@@ -726,7 +730,7 @@ var Datepicker;
this.focused = newDate;
- focusedParsed = Datepicker.getParsedDate(newDate);
+ focusedParsed = datepicker.getParsedDate(newDate);
if (monthChanged && o.onChangeMonth) {
o.onChangeMonth(focusedParsed.month, focusedParsed.year)
}
@@ -780,7 +784,7 @@ var Datepicker;
_focusNextCell: function (keyCode, type) {
type = type || this.cellType;
- var date = Datepicker.getParsedDate(this._getFocusedDate()),
+ var date = datepicker.getParsedDate(this._getFocusedDate()),
y = date.year,
m = date.month,
d = date.date;
@@ -847,7 +851,7 @@ var Datepicker;
_getCell: function (date, type) {
type = type || this.cellType;
- var d = Datepicker.getParsedDate(date),
+ var d = datepicker.getParsedDate(date),
selector = '.datepicker--cell[data-year="' + d.year + '"]',
$cell;
@@ -962,7 +966,7 @@ var Datepicker;
if (this.opts.range && this.selectedDates.length == 1) {
this.minRange = this.selectedDates[0];
this.maxRange = '';
- if (Datepicker.less(this.minRange, this.focused)) {
+ if (datepicker.less(this.minRange, this.focused)) {
this.maxRange = this.minRange;
this.minRange = '';
}
@@ -993,7 +997,7 @@ var Datepicker;
if (this.opts.range && this.selectedDates.length == 1) {
this.minRange = this.selectedDates[0];
this.maxRange = '';
- if (Datepicker.less(this.minRange, this._focused)) {
+ if (datepicker.less(this.minRange, this._focused)) {
this.maxRange = this.minRange;
this.minRange = '';
}
@@ -1007,7 +1011,7 @@ var Datepicker;
},
get parsedDate() {
- return Datepicker.getParsedDate(this.date);
+ return datepicker.getParsedDate(this.date);
},
set date (val) {
@@ -1069,28 +1073,28 @@ var Datepicker;
},
get minTime() {
- var min = Datepicker.getParsedDate(this.minDate);
+ var min = datepicker.getParsedDate(this.minDate);
return new Date(min.year, min.month, min.date).getTime()
},
get maxTime() {
- var max = Datepicker.getParsedDate(this.maxDate);
+ var max = datepicker.getParsedDate(this.maxDate);
return new Date(max.year, max.month, max.date).getTime()
},
get curDecade() {
- return Datepicker.getDecade(this.date)
+ return datepicker.getDecade(this.date)
}
};
// Utils
// -------------------------------------------------
- Datepicker.getDaysCount = function (date) {
+ datepicker.getDaysCount = function (date) {
return new Date(date.getFullYear(), date.getMonth() + 1, 0).getDate();
};
- Datepicker.getParsedDate = function (date) {
+ datepicker.getParsedDate = function (date) {
return {
year: date.getFullYear(),
month: date.getMonth(),
@@ -1101,13 +1105,13 @@ var Datepicker;
}
};
- Datepicker.getDecade = function (date) {
+ datepicker.getDecade = function (date) {
var firstYear = Math.floor(date.getFullYear() / 10) * 10;
return [firstYear, firstYear + 9];
};
- Datepicker.template = function (str, data) {
+ datepicker.template = function (str, data) {
return str.replace(/#\{([\w]+)\}/g, function (source, match) {
if (data[match] || data[match] === 0) {
return data[match]
@@ -1115,10 +1119,10 @@ var Datepicker;
});
};
- Datepicker.isSame = function (date1, date2, type) {
+ datepicker.isSame = function (date1, date2, type) {
if (!date1 || !date2) return false;
- var d1 = Datepicker.getParsedDate(date1),
- d2 = Datepicker.getParsedDate(date2),
+ var d1 = datepicker.getParsedDate(date1),
+ d2 = datepicker.getParsedDate(date2),
_type = type ? type : 'day',
conditions = {
@@ -1130,12 +1134,12 @@ var Datepicker;
return conditions[_type];
};
- Datepicker.less = function (dateCompareTo, date, type) {
+ datepicker.less = function (dateCompareTo, date, type) {
if (!dateCompareTo || !date) return false;
return date.getTime() < dateCompareTo.getTime();
};
- Datepicker.bigger = function (dateCompareTo, date, type) {
+ datepicker.bigger = function (dateCompareTo, date, type) {
if (!dateCompareTo || !date) return false;
return date.getTime() > dateCompareTo.getTime();
};
@@ -1155,8 +1159,8 @@ var Datepicker;
};
$.fn[pluginName] = function ( options ) {
- if (Datepicker.prototype[options]) {
- Datepicker.prototype[options].apply(this.data(pluginName), Array.prototype.slice.call(arguments, 1));
+ if (datepicker.prototype[options]) {
+ datepicker.prototype[options].apply(this.data(pluginName), Array.prototype.slice.call(arguments, 1));
} else {
return this.each(function () {
if (!$.data(this, pluginName)) {
@@ -1554,6 +1558,7 @@ var Datepicker;
},
html = Datepicker.template(button, data);
+ if ($('[data-action=' + type + ']', this.$buttonsContainer).length) return;
this.$buttonsContainer.append(html);
},
diff --git a/dist/js/datepicker.min.js b/dist/js/datepicker.min.js
index 83fae4d..5b53135 100644
--- a/dist/js/datepicker.min.js
+++ b/dist/js/datepicker.min.js
@@ -1 +1 @@
-var Datepicker;!function(t,e,s){var i,a,n="datepicker",h=".datepicker-here",r=!1,o='
',c={classes:"",inline:!1,language:"ru",startDate:new Date,firstDay:"",weekends:[6,0],dateFormat:"",altField:"",altFieldDateFormat:"@",toggleSelected:!0,keyboardNav:!0,position:"bottom left",offset:12,view:"days",minView:"days",showOtherMonths:!0,selectOtherMonths:!0,moveToOtherMonthsOnSelect:!0,showOtherYears:!0,selectOtherYears:!0,moveToOtherYearsOnSelect:!0,minDate:"",maxDate:"",disableNavWhenOutOfRange:!0,multipleDates:!1,multipleDatesSeparator:",",range:!0,todayButton:!1,clearButton:!1,showEvent:"focus",autoClose:!1,monthsFiled:"monthsShort",prevHtml:'',nextHtml:'',navTitles:{days:"MM, yyyy",months:"yyyy",years:"yyyy1 - yyyy2"},onSelect:"",onChangeMonth:"",onChangeYear:"",onChangeDecade:"",onChangeView:"",onRenderCell:""},d={ctrlRight:[17,39],ctrlUp:[17,38],ctrlLeft:[17,37],ctrlDown:[17,40],shiftRight:[16,39],shiftUp:[16,38],shiftLeft:[16,37],shiftDown:[16,40],altUp:[18,38],altRight:[18,39],altLeft:[18,37],altDown:[18,40],ctrlShiftUp:[16,17,38]};Datepicker=function(t,a){this.el=t,this.$el=e(t),this.opts=e.extend(!0,{},c,a,this.$el.data()),i==s&&(i=e("body")),this.opts.startDate||(this.opts.startDate=new Date),"INPUT"==this.el.nodeName&&(this.elIsInput=!0),this.opts.altField&&(this.$altField="string"==typeof this.opts.altField?e(this.opts.altField):this.opts.altField),this.inited=!1,this.visible=!1,this.silent=!1,this.currentDate=this.opts.startDate,this.currentView=this.opts.view,this._createShortCuts(),this.selectedDates=[],this.views={},this.keys=[],this.minRange="",this.maxRange="",this.init()},Datepicker.prototype={viewIndexes:["days","months","years"],init:function(){r||this.opts.inline||!this.elIsInput||this._buildDatepickersContainer(),this._buildBaseHtml(),this._defineLocale(this.opts.language),this._syncWithMinMaxDates(),this.elIsInput&&(this.opts.inline||(this._setPositionClasses(this.opts.position),this._bindEvents())),this.opts.classes&&this.$datepicker.addClass(this.opts.classes),this.views[this.currentView]=new Datepicker.Body(this,this.currentView,this.opts),this.views[this.currentView].show(),this.nav=new Datepicker.Navigation(this,this.opts),this.view=this.currentView,this.$datepicker.on("mouseenter",".datepicker--cell",this._onMouseEnterCell.bind(this)),this.$datepicker.on("mouseleave",".datepicker--cell",this._onMouseLeaveCell.bind(this)),this.inited=!0},_createShortCuts:function(){this.minDate=this.opts.minDate?this.opts.minDate:new Date(-86399999136e5),this.maxDate=this.opts.maxDate?this.opts.maxDate:new Date(86399999136e5)},_bindEvents:function(){this.$el.on(this.opts.showEvent,this._onShowEvent.bind(this)),this.$el.on("blur",this._onBlur.bind(this)),this.$el.on("input",this._onInput.bind(this)),this.$datepicker.on("mousedown",this._onMouseDownDatepicker.bind(this)),this.$datepicker.on("mouseup",this._onMouseUpDatepicker.bind(this)),e(t).on("resize",this._onResize.bind(this)),this.opts.keyboardNav&&(this.$el.on("keydown",this._onKeyDown.bind(this)),this.$el.on("keyup",this._onKeyUp.bind(this)),this.$el.on("hotKey",this._onHotKey.bind(this)))},isWeekend:function(t){return-1!==this.opts.weekends.indexOf(t)},_defineLocale:function(t){"string"==typeof t?(this.loc=Datepicker.language[t],this.loc||(console.warn("Can't find language \""+t+'" in Datepicker.language, will use "ru" instead'),this.loc=e.extend(!0,{},Datepicker.language.ru)),this.loc=e.extend(!0,{},Datepicker.language.ru,Datepicker.language[t])):this.loc=e.extend(!0,{},Datepicker.language.ru,t),this.opts.dateFormat&&(this.loc.dateFormat=this.opts.dateFormat),this.opts.firstDay&&(this.loc.firstDay=this.opts.firstDay)},_buildDatepickersContainer:function(){r=!0,i.append(''),a=e("#datepickers-container")},_buildBaseHtml:function(){var t,s=e('');t="INPUT"==this.el.nodeName?this.opts.inline?s.insertAfter(this.$el):a:s.appendTo(this.$el),this.$datepicker=e(o).appendTo(t),this.$content=e(".datepicker--content",this.$datepicker),this.$nav=e(".datepicker--nav",this.$datepicker)},_triggerOnChange:function(){if(!this.selectedDates.length)return this.opts.onSelect("","",this);var t,e=this.selectedDates,s=Datepicker.getParsedDate(e[0]),i=this,a=new Date(s.year,s.month,s.date);t=e.map(function(t){return i.formatDate(i.loc.dateFormat,t)}).join(this.opts.multipleDatesSeparator),this.opts.multipleDates&&(a=e.map(function(t){var e=Datepicker.getParsedDate(t);return new Date(e.year,e.month,e.date)})),this.opts.onSelect(t,a,this)},next:function(){var t=this.parsedDate,e=this.opts;switch(this.view){case"days":this.date=new Date(t.year,t.month+1,1),e.onChangeMonth&&e.onChangeMonth(this.parsedDate.month,this.parsedDate.year);break;case"months":this.date=new Date(t.year+1,t.month,1),e.onChangeYear&&e.onChangeYear(this.parsedDate.year);break;case"years":this.date=new Date(t.year+10,0,1),e.onChangeDecade&&e.onChangeDecade(this.curDecade)}},prev:function(){var t=this.parsedDate,e=this.opts;switch(this.view){case"days":this.date=new Date(t.year,t.month-1,1),e.onChangeMonth&&e.onChangeMonth(this.parsedDate.month,this.parsedDate.year);break;case"months":this.date=new Date(t.year-1,t.month,1),e.onChangeYear&&e.onChangeYear(this.parsedDate.year);break;case"years":this.date=new Date(t.year-10,0,1),e.onChangeDecade&&e.onChangeDecade(this.curDecade)}},formatDate:function(t,e){e=e||this.date;var s=t,i=this.loc,a=Datepicker.getDecade(e),n=Datepicker.getParsedDate(e);switch(!0){case/@/.test(s):s=s.replace(/@/,e.getTime());case/dd/.test(s):s=s.replace(/\bdd\b/,n.fullDate);case/d/.test(s):s=s.replace(/\bd\b/,n.date);case/DD/.test(s):s=s.replace(/\bDD\b/,i.days[n.day]);case/D/.test(s):s=s.replace(/\bD\b/,i.daysShort[n.day]);case/mm/.test(s):s=s.replace(/\bmm\b/,n.fullMonth);case/m/.test(s):s=s.replace(/\bm\b/,n.month+1);case/MM/.test(s):s=s.replace(/\bMM\b/,this.loc.months[n.month]);case/M/.test(s):s=s.replace(/\bM\b/,i.monthsShort[n.month]);case/yyyy/.test(s):s=s.replace(/\byyyy\b/,n.year);case/yyyy1/.test(s):s=s.replace(/\byyyy1\b/,a[0]);case/yyyy2/.test(s):s=s.replace(/\byyyy2\b/,a[1]);case/yy/.test(s):s=s.replace(/\byy\b/,n.year.toString().slice(-2))}return s},selectDate:function(t){var e=this.parsedDate,s=this.selectedDates,i=s.length,a="";if(t instanceof Date){if("days"==this.view&&t.getMonth()!=e.month&&this.opts.moveToOtherMonthsOnSelect&&(a=new Date(t.getFullYear(),t.getMonth(),1)),"years"==this.view&&t.getFullYear()!=e.year&&this.opts.moveToOtherYearsOnSelect&&(a=new Date(t.getFullYear(),0,1)),a&&(this.silent=!0,this.date=a,this.silent=!1,this.nav._render()),this.opts.multipleDates){if(i===this.opts.multipleDates)return;this._isSelected(t)||this.selectedDates.push(t)}else this.opts.range?2==i?(this.selectedDates=[t],this.minRange=t,this.maxRange=""):1==i?(this.selectedDates.push(t),this.maxRange?this.minRange=t:this.maxRange=t,this.selectedDates=[this.minRange,this.maxRange]):(this.selectedDates=[t],this.minRange=t):this.selectedDates=[t];this._setInputValue(),this.opts.onSelect&&this._triggerOnChange(),this.opts.autoClose&&this.hide(),this.views[this.currentView]._render()}},removeDate:function(t){var e=this.selectedDates,s=this;if(t instanceof Date)return e.some(function(i,a){return Datepicker.isSame(i,t)?(e.splice(a,1),s.views[s.currentView]._render(),s._setInputValue(),s.opts.onSelect&&s._triggerOnChange(),!0):void 0})},today:function(){this.silent=!0,this.view=this.opts.minView,this.silent=!1,this.date=new Date},clear:function(){this.selectedDates=[],this.minRange="",this.maxRange="",this.views[this.currentView]._render(),this.opts.onSelect&&this._triggerOnChange()},update:function(t,s){var i=arguments.length;return 2==i?this.opts[t]=s:1==i&&"object"==typeof t&&(this.opts=e.extend(!0,this.opts,t)),this._createShortCuts(),this._syncWithMinMaxDates(),this._defineLocale(this.opts.language),this.nav._addButtonsIfNeed(),this.nav._render(),this.views[this.currentView]._render(),this.elIsInput&&!this.opts.inline&&(this._setPositionClasses(this.opts.position),this.visible&&this.setPosition(this.opts.position)),this.opts.classes&&this.$datepicker.addClass(this.opts.classes),this},_syncWithMinMaxDates:function(){var t=this.date.getTime();this.silent=!0,this.minTime>t&&(this.date=this.minDate),this.maxTime
=this.minTime&&s<=this.maxTime,month:h>=this.minTime&&r<=this.maxTime,year:i.year>=a.year&&i.year<=n.year};return e?o[e]:o.day},_getDimensions:function(t){var e=t.offset();return{width:t.outerWidth(),height:t.outerHeight(),left:e.left,top:e.top}},_getDateFromCell:function(t){var e=this.parsedDate,i=t.data("year")||e.year,a=t.data("month")==s?e.month:t.data("month"),n=t.data("date")||1;return new Date(i,a,n)},_setPositionClasses:function(t){t=t.split(" ");var e=t[0],s=t[1],i="datepicker -"+e+"-"+s+"- -from-"+e+"-";this.visible&&(i+=" active"),this.$datepicker.removeAttr("class").addClass(i)},setPosition:function(t){t=t||this.opts.position;var e,s,i=this._getDimensions(this.$el),a=this._getDimensions(this.$datepicker),n=t.split(" "),h=this.opts.offset,r=n[0],o=n[1];switch(r){case"top":e=i.top-a.height-h;break;case"right":s=i.left+i.width+h;break;case"bottom":e=i.top+i.height+h;break;case"left":s=i.left-a.width-h}switch(o){case"top":e=i.top;break;case"right":s=i.left+i.width-a.width;break;case"bottom":e=i.top+i.height-a.height;break;case"left":s=i.left;break;case"center":/left|right/.test(r)?e=i.top+i.height/2-a.height/2:s=i.left+i.width/2-a.width/2}this.$datepicker.css({left:s,top:e})},show:function(){this.setPosition(this.opts.position),this.$datepicker.addClass("active"),this.visible=!0},hide:function(){this.$datepicker.removeClass("active").css({left:"-100000px"}),this.focused="",this.keys=[],this.inFocus=!1,this.visible=!1,this.$el.blur()},down:function(t){this._changeView(t,"down")},up:function(t){this._changeView(t,"up")},_changeView:function(t,e){t=t||this.focused||this.date;var s="up"==e?this.viewIndex+1:this.viewIndex-1;s>2&&(s=2),0>s&&(s=0),this.silent=!0,this.date=new Date(t.getFullYear(),t.getMonth(),1),this.silent=!1,this.view=this.viewIndexes[s]},_handleHotKey:function(t){var e,s,i,a=Datepicker.getParsedDate(this._getFocusedDate()),n=this.opts,h=!1,r=!1,o=!1,c=a.year,d=a.month,l=a.date;switch(t){case"ctrlRight":case"ctrlUp":d+=1,h=!0;break;case"ctrlLeft":case"ctrlDown":d-=1,h=!0;break;case"shiftRight":case"shiftUp":r=!0,c+=1;break;case"shiftLeft":case"shiftDown":r=!0,c-=1;break;case"altRight":case"altUp":o=!0,c+=10;break;case"altLeft":case"altDown":o=!0,c-=10;break;case"ctrlShiftUp":this.up()}i=Datepicker.getDaysCount(new Date(c,d)),s=new Date(c,d,l),l>i&&(l=i),s.getTime()this.maxTime&&(s=this.maxDate),this.focused=s,e=Datepicker.getParsedDate(s),h&&n.onChangeMonth&&n.onChangeMonth(e.month,e.year),r&&n.onChangeYear&&n.onChangeYear(e.year),o&&n.onChangeDecade&&n.onChangeDecade(this.curDecade)},_registerKey:function(t){var e=this.keys.some(function(e){return e==t});e||this.keys.push(t)},_unRegisterKey:function(t){var e=this.keys.indexOf(t);this.keys.splice(e,1)},_isHotKeyPressed:function(){var t,e=!1,s=this,i=this.keys.sort();for(var a in d)t=d[a],i.length==t.length&&t.every(function(t,e){return t==i[e]})&&(s._trigger("hotKey",a),e=!0);return e},_trigger:function(t,e){this.$el.trigger(t,e)},_focusNextCell:function(t,e){e=e||this.cellType;var s=Datepicker.getParsedDate(this._getFocusedDate()),i=s.year,a=s.month,n=s.date;if(!this._isHotKeyPressed()){switch(t){case 37:"day"==e?n-=1:"","month"==e?a-=1:"","year"==e?i-=1:"";break;case 38:"day"==e?n-=7:"","month"==e?a-=3:"","year"==e?i-=4:"";break;case 39:"day"==e?n+=1:"","month"==e?a+=1:"","year"==e?i+=1:"";break;case 40:"day"==e?n+=7:"","month"==e?a+=3:"","year"==e?i+=4:""}var h=new Date(i,a,n);h.getTime()this.maxTime&&(h=this.maxDate),this.focused=h}},_getFocusedDate:function(){var t=this.focused||this.selectedDates[this.selectedDates.length-1],e=this.parsedDate;if(!t)switch(this.view){case"days":t=new Date(e.year,e.month,(new Date).getDate());break;case"months":t=new Date(e.year,e.month,1);break;case"years":t=new Date(e.year,0,1)}return t},_getCell:function(t,e){e=e||this.cellType;var s,i=Datepicker.getParsedDate(t),a='.datepicker--cell[data-year="'+i.year+'"]';switch(e){case"month":a='[data-month="'+i.month+'"]';break;case"day":a+='[data-month="'+i.month+'"][data-date="'+i.date+'"]'}return s=this.views[this.currentView].$el.find(a),s.length?s:""},_onShowEvent:function(){this.visible||this.show()},_onBlur:function(){},_onMouseDownDatepicker:function(t){this.inFocus=!0},_onMouseUpDatepicker:function(t){this.inFocus=!1,this.$el.focus()},_onInput:function(){var t=this.$el.val();t||this.clear()},_onResize:function(){this.visible&&this.setPosition()},_onKeyDown:function(t){var e=t.which;if(this._registerKey(e),e>=37&&40>=e&&(t.preventDefault(),this._focusNextCell(e)),13==e&&this.focused){if(this._getCell(this.focused).hasClass("-disabled-"))return;if(this.view!=this.opts.minView)this.down();else{var s=this._isSelected(this.focused,this.cellType);s?s&&this.opts.toggleSelected&&this.removeDate(this.focused):this.selectDate(this.focused)}}27==e&&this.hide()},_onKeyUp:function(t){var e=t.which;this._unRegisterKey(e)},_onHotKey:function(t,e){this._handleHotKey(e)},_onMouseEnterCell:function(t){var s=e(t.target).closest(".datepicker--cell"),i=this._getDateFromCell(s);this.silent=!0,this.focused&&(this.focused=""),s.addClass("-focus-"),this.focused=i,this.silent=!1,this.opts.range&&1==this.selectedDates.length&&(this.minRange=this.selectedDates[0],this.maxRange="",Datepicker.less(this.minRange,this.focused)&&(this.maxRange=this.minRange,this.minRange=""),this.views[this.currentView]._update())},_onMouseLeaveCell:function(t){var s=e(t.target).closest(".datepicker--cell");this._getDateFromCell(s);s.removeClass("-focus-"),this.silent=!0,this.focused="",this.silent=!1},set focused(t){if(!t&&this.focused){var e=this._getCell(this.focused);e.length&&e.removeClass("-focus-")}this._focused=t,this.opts.range&&1==this.selectedDates.length&&(this.minRange=this.selectedDates[0],this.maxRange="",Datepicker.less(this.minRange,this._focused)&&(this.maxRange=this.minRange,this.minRange="")),this.silent||(this.date=t)},get focused(){return this._focused},get parsedDate(){return Datepicker.getParsedDate(this.date)},set date(t){return t instanceof Date?(this.prevDate=this.currentDate,this.currentDate=t,this.inited&&!this.silent&&(this.views[this.view]._render(),this.nav._render(),this.visible&&this.elIsInput&&this.setPosition()),t):void 0},get date(){return this.currentDate},set view(t){return this.viewIndex=this.viewIndexes.indexOf(t),this.viewIndex<0?void 0:(this.prevView=this.currentView,this.currentView=t,this.inited&&(this.views[t]?this.views[t]._render():this.views[t]=new Datepicker.Body(this,t,this.opts),this.views[this.prevView].hide(),this.views[t].show(),this.nav._render(),this.opts.onChangeView&&this.opts.onChangeView(t),this.elIsInput&&this.visible&&this.setPosition()),t)},get view(){return this.currentView},get cellType(){return this.view.substring(0,this.view.length-1)},get minTime(){var t=Datepicker.getParsedDate(this.minDate);return new Date(t.year,t.month,t.date).getTime()},get maxTime(){var t=Datepicker.getParsedDate(this.maxDate);return new Date(t.year,t.month,t.date).getTime()},get curDecade(){return Datepicker.getDecade(this.date)}},Datepicker.getDaysCount=function(t){return new Date(t.getFullYear(),t.getMonth()+1,0).getDate()},Datepicker.getParsedDate=function(t){return{year:t.getFullYear(),month:t.getMonth(),fullMonth:t.getMonth()+1<10?"0"+(t.getMonth()+1):t.getMonth()+1,date:t.getDate(),fullDate:t.getDate()<10?"0"+t.getDate():t.getDate(),day:t.getDay()}},Datepicker.getDecade=function(t){var e=10*Math.floor(t.getFullYear()/10);return[e,e+9]},Datepicker.template=function(t,e){return t.replace(/#\{([\w]+)\}/g,function(t,s){return e[s]||0===e[s]?e[s]:void 0})},Datepicker.isSame=function(t,e,s){if(!t||!e)return!1;var i=Datepicker.getParsedDate(t),a=Datepicker.getParsedDate(e),n=s?s:"day",h={day:i.date==a.date&&i.month==a.month&&i.year==a.year,month:i.month==a.month&&i.year==a.year,year:i.year==a.year};return h[n]},Datepicker.less=function(t,e,s){return t&&e?e.getTime()t.getTime():!1},Datepicker.language={ru:{days:["Воскресенье","Понедельник","Вторник","Среда","Четверг","Пятница","Суббота"],daysShort:["Вос","Пон","Вто","Сре","Чет","Пят","Суб"],daysMin:["Вс","Пн","Вт","Ср","Чт","Пт","Сб"],months:["Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь"],monthsShort:["Янв","Фев","Мар","Апр","Май","Июн","Июл","Авг","Сен","Окт","Ноя","Дек"],today:"Сегодня",clear:"Очистить",dateFormat:"dd.mm.yyyy",firstDay:1}},e.fn[n]=function(t){return Datepicker.prototype[t]?void Datepicker.prototype[t].apply(this.data(n),Array.prototype.slice.call(arguments,1)):this.each(function(){if(e.data(this,n)){var s=e.data(this,n);s.opts=e.extend(!0,s.opts,t),s.update()}else e.data(this,n,new Datepicker(this,t))})},e(function(){e(h).datepicker()})}(window,jQuery),function(){var t={days:'',months:'',years:''},e=Datepicker;e.Body=function(t,e,s){this.d=t,this.type=e,this.opts=s,this.init()},e.Body.prototype={init:function(){this._buildBaseHtml(),this._render(),this._bindEvents()},_bindEvents:function(){this.$el.on("mouseup",".datepicker--cell",$.proxy(this._onClickCell,this))},_buildBaseHtml:function(){this.$el=$(t[this.type]).appendTo(this.d.$content),this.$names=$(".datepicker--days-names",this.$el),this.$cells=$(".datepicker--cells",this.$el)},_getDayNamesHtml:function(t,e,s,i){return e=void 0!=e?e:t,s=s?s:"",i=void 0!=i?i:0,i>7?s:7==e?this._getDayNamesHtml(t,0,s,++i):(s+=''+this.d.loc.daysMin[e]+"
",this._getDayNamesHtml(t,++e,s,++i))},_getCellContents:function(t,s){var i="datepicker--cell datepicker--cell-"+s,a=new Date,n=this.d,h=e.getParsedDate(t),r={},o=h.date;switch(this.opts.onRenderCell&&(r=this.opts.onRenderCell(t,s)||{},o=r.html?r.html:o,i+=r.classes?" "+r.classes:""),s){case"day":this.d.isWeekend(h.day)&&(i+=" -weekend-"),h.month!=this.d.parsedDate.month&&(i+=" -other-month-",this.opts.selectOtherMonths||(i+=" -disabled-"),this.opts.showOtherMonths||(o=""));break;case"month":o=n.loc[n.opts.monthsFiled][h.month];break;case"year":var c=n.curDecade;(h.yearc[1])&&(i+=" -other-decade-",this.opts.selectOtherYears||(i+=" -disabled-"),this.opts.showOtherYears||(o="")),o=h.year}return this.opts.onRenderCell&&(r=this.opts.onRenderCell(t,s)||{},o=r.html?r.html:o,i+=r.classes?" "+r.classes:""),this.opts.range&&(e.isSame(this.d.minRange,t,s)&&(i+=" -range-from-"),e.isSame(this.d.maxRange,t,s)&&(i+=" -range-to-"),1==this.d.selectedDates.length&&this.d.focused?((Datepicker.bigger(this.d.minRange,t)&&e.less(this.d.focused,t)||Datepicker.less(this.d.maxRange,t)&&e.bigger(this.d.focused,t))&&(i+=" -in-range-"),Datepicker.less(this.d.maxRange,t)&&e.isSame(this.d.focused,t)&&(i+=" -range-from-"),Datepicker.bigger(this.d.minRange,t)&&e.isSame(this.d.focused,t)&&(i+=" -range-to-")):2==this.d.selectedDates.length&&e.bigger(this.d.minRange,t)&&e.less(this.d.maxRange,t)&&(i+=" -in-range-")),e.isSame(a,t,s)&&(i+=" -current-"),this.d.focused&&e.isSame(t,this.d.focused,s)&&(i+=" -focus-"),this.d._isSelected(t,s)&&(i+=" -selected-"),(!this.d._isInRange(t,s)||r.disabled)&&(i+=" -disabled-"),{html:o,classes:i}},_getDaysHtml:function(t){var s=e.getDaysCount(t),i=new Date(t.getFullYear(),t.getMonth(),1).getDay(),a=new Date(t.getFullYear(),t.getMonth(),s).getDay(),n=i-this.d.loc.firstDay,h=6-a+this.d.loc.firstDay;n=0>n?n+7:n,h=h>6?h-7:h;for(var r,o,c=-n+1,d="",l=c,p=s+h;p>=l;l++)o=t.getFullYear(),r=t.getMonth(),d+=this._getDayHtml(new Date(o,r,l));return d},_getDayHtml:function(t){var e=this._getCellContents(t,"day");return''+e.html+"
"},_getMonthsHtml:function(t){for(var s="",i=e.getParsedDate(t),a=0;12>a;)s+=this._getMonthHtml(new Date(i.year,a)),a++;return s},_getMonthHtml:function(t){var e=this._getCellContents(t,"month");return''+e.html+"
"},_getYearsHtml:function(t){var s=(e.getParsedDate(t),e.getDecade(t)),i=s[0]-1,a="",n=i;for(n;n<=s[1]+1;n++)a+=this._getYearHtml(new Date(n,0));return a},_getYearHtml:function(t){var e=this._getCellContents(t,"year");return''+e.html+"
"},_renderTypes:{days:function(){var t=this._getDayNamesHtml(this.d.loc.firstDay),e=this._getDaysHtml(this.d.currentDate);this.$cells.html(e),this.$names.html(t)},months:function(){var t=this._getMonthsHtml(this.d.currentDate);this.$cells.html(t)},years:function(){var t=this._getYearsHtml(this.d.currentDate);this.$cells.html(t)}},_render:function(){this._renderTypes[this.type].bind(this)()},_update:function(){var t,e,s,i=$(".datepicker--cell",this.$cells),a=this;i.each(function(i,n){e=$(this),s=a.d._getDateFromCell($(this)),t=a._getCellContents(s,a.d.cellType),e.attr("class",t.classes)})},show:function(){this.$el.addClass("active"),this.acitve=!0},hide:function(){this.$el.removeClass("active"),this.active=!1},_handleClick:function(t){var e=t.data("date")||1,s=t.data("month")||0,i=t.data("year")||this.d.parsedDate.year;if(this.d.view!=this.opts.minView)return void this.d.down(new Date(i,s,e));var a=new Date(i,s,e),n=this.d._isSelected(a,this.d.cellType);n?n&&this.opts.toggleSelected&&this.d.removeDate(a):this.d.selectDate(a)},_onClickCell:function(t){var e=$(t.target).closest(".datepicker--cell");e.hasClass("-disabled-")||this._handleClick.bind(this)(e)}}}(),function(){var t='#{prevHtml}
#{title}
#{nextHtml}
',e='',s='#{label}';Datepicker.Navigation=function(t,e){this.d=t,this.opts=e,this.$buttonsContainer="",this.init()},Datepicker.Navigation.prototype={init:function(){this._buildBaseHtml(),this._bindEvents()},_bindEvents:function(){this.d.$nav.on("click",".datepicker--nav-action",$.proxy(this._onClickNavButton,this)),this.d.$nav.on("click",".datepicker--nav-title",$.proxy(this._onClickNavTitle,this)),this.d.$datepicker.on("click",".datepicker--button",$.proxy(this._onClickNavButton,this))},_buildBaseHtml:function(){this._render(),this._addButtonsIfNeed()},_addButtonsIfNeed:function(){this.opts.todayButton&&this._addButton("today"),this.opts.clearButton&&this._addButton("clear")},_render:function(){var e=this._getTitle(this.d.currentDate),s=Datepicker.template(t,$.extend({title:e},this.opts));this.d.$nav.html(s),"years"==this.d.view&&$(".datepicker--nav-title",this.d.$nav).addClass("-disabled-"),this.setNavStatus()},_getTitle:function(t){return this.d.formatDate(this.opts.navTitles[this.d.view],t)},_addButton:function(t){this.$buttonsContainer.length||this._addButtonsContainer();var e={action:t,label:this.d.loc[t]},i=Datepicker.template(s,e);this.$buttonsContainer.append(i)},_addButtonsContainer:function(){this.d.$datepicker.append(e),this.$buttonsContainer=$(".datepicker--buttons",this.d.$datepicker)},setNavStatus:function(){if((this.opts.minDate||this.opts.maxDate)&&this.opts.disableNavWhenOutOfRange){var t=this.d.parsedDate,e=t.month,s=t.year,i=t.date;switch(this.d.view){case"days":this.d._isInRange(new Date(s,e-1,i),"month")||this._disableNav("prev"),this.d._isInRange(new Date(s,e+1,i),"month")||this._disableNav("next");break;case"months":this.d._isInRange(new Date(s-1,e,i),"year")||this._disableNav("prev"),this.d._isInRange(new Date(s+1,e,i),"year")||this._disableNav("next");break;case"years":this.d._isInRange(new Date(s-10,e,i),"year")||this._disableNav("prev"),this.d._isInRange(new Date(s+10,e,i),"year")||this._disableNav("next")}}},_disableNav:function(t){$('[data-action="'+t+'"]',this.d.$nav).addClass("-disabled-")},_activateNav:function(t){$('[data-action="'+t+'"]',this.d.$nav).removeClass("-disabled-")},_onClickNavButton:function(t){var e=$(t.target).closest("[data-action]"),s=e.data("action");this.d[s]()},_onClickNavTitle:function(t){return $(t.target).hasClass("-disabled-")?void 0:"days"==this.d.view?this.d.view="months":void(this.d.view="years")}}}();
\ No newline at end of file
+var Datepicker;!function(t,e,s){var i,a,n,h="datepicker",o=".datepicker-here",r=!1,d='',c={classes:"",inline:!1,language:"ru",startDate:new Date,firstDay:"",weekends:[6,0],dateFormat:"",altField:"",altFieldDateFormat:"@",toggleSelected:!0,keyboardNav:!0,position:"bottom left",offset:12,view:"days",minView:"days",showOtherMonths:!0,selectOtherMonths:!0,moveToOtherMonthsOnSelect:!0,showOtherYears:!0,selectOtherYears:!0,moveToOtherYearsOnSelect:!0,minDate:"",maxDate:"",disableNavWhenOutOfRange:!0,multipleDates:!1,multipleDatesSeparator:",",range:!1,todayButton:!1,clearButton:!1,showEvent:"focus",autoClose:!1,monthsFiled:"monthsShort",prevHtml:'',nextHtml:'',navTitles:{days:"MM, yyyy",months:"yyyy",years:"yyyy1 - yyyy2"},onSelect:"",onChangeMonth:"",onChangeYear:"",onChangeDecade:"",onChangeView:"",onRenderCell:""},l={ctrlRight:[17,39],ctrlUp:[17,38],ctrlLeft:[17,37],ctrlDown:[17,40],shiftRight:[16,39],shiftUp:[16,38],shiftLeft:[16,37],shiftDown:[16,40],altUp:[18,38],altRight:[18,39],altLeft:[18,37],altDown:[18,40],ctrlShiftUp:[16,17,38]};Datepicker=function(t,a){this.el=t,this.$el=e(t),this.opts=e.extend(!0,{},c,a,this.$el.data()),i==s&&(i=e("body")),this.opts.startDate||(this.opts.startDate=new Date),"INPUT"==this.el.nodeName&&(this.elIsInput=!0),this.opts.altField&&(this.$altField="string"==typeof this.opts.altField?e(this.opts.altField):this.opts.altField),this.inited=!1,this.visible=!1,this.silent=!1,this.currentDate=this.opts.startDate,this.currentView=this.opts.view,this._createShortCuts(),this.selectedDates=[],this.views={},this.keys=[],this.minRange="",this.maxRange="",this.init()},n=Datepicker,n.prototype={viewIndexes:["days","months","years"],init:function(){r||this.opts.inline||!this.elIsInput||this._buildDatepickersContainer(),this._buildBaseHtml(),this._defineLocale(this.opts.language),this._syncWithMinMaxDates(),this.elIsInput&&(this.opts.inline||(this._setPositionClasses(this.opts.position),this._bindEvents())),this.opts.classes&&this.$datepicker.addClass(this.opts.classes),this.views[this.currentView]=new Datepicker.Body(this,this.currentView,this.opts),this.views[this.currentView].show(),this.nav=new Datepicker.Navigation(this,this.opts),this.view=this.currentView,this.$datepicker.on("mouseenter",".datepicker--cell",this._onMouseEnterCell.bind(this)),this.$datepicker.on("mouseleave",".datepicker--cell",this._onMouseLeaveCell.bind(this)),this.inited=!0},_createShortCuts:function(){this.minDate=this.opts.minDate?this.opts.minDate:new Date(-86399999136e5),this.maxDate=this.opts.maxDate?this.opts.maxDate:new Date(86399999136e5)},_bindEvents:function(){this.$el.on(this.opts.showEvent,this._onShowEvent.bind(this)),this.$el.on("blur",this._onBlur.bind(this)),this.$el.on("input",this._onInput.bind(this)),this.$datepicker.on("mousedown",this._onMouseDownDatepicker.bind(this)),this.$datepicker.on("mouseup",this._onMouseUpDatepicker.bind(this)),e(t).on("resize",this._onResize.bind(this)),this.opts.keyboardNav&&(this.$el.on("keydown",this._onKeyDown.bind(this)),this.$el.on("keyup",this._onKeyUp.bind(this)),this.$el.on("hotKey",this._onHotKey.bind(this)))},isWeekend:function(t){return-1!==this.opts.weekends.indexOf(t)},_defineLocale:function(t){"string"==typeof t?(this.loc=Datepicker.language[t],this.loc||(console.warn("Can't find language \""+t+'" in Datepicker.language, will use "ru" instead'),this.loc=e.extend(!0,{},Datepicker.language.ru)),this.loc=e.extend(!0,{},Datepicker.language.ru,Datepicker.language[t])):this.loc=e.extend(!0,{},Datepicker.language.ru,t),this.opts.dateFormat&&(this.loc.dateFormat=this.opts.dateFormat),this.opts.firstDay&&(this.loc.firstDay=this.opts.firstDay)},_buildDatepickersContainer:function(){r=!0,i.append(''),a=e("#datepickers-container")},_buildBaseHtml:function(){var t,s=e('');t="INPUT"==this.el.nodeName?this.opts.inline?s.insertAfter(this.$el):a:s.appendTo(this.$el),this.$datepicker=e(d).appendTo(t),this.$content=e(".datepicker--content",this.$datepicker),this.$nav=e(".datepicker--nav",this.$datepicker)},_triggerOnChange:function(){if(!this.selectedDates.length)return this.opts.onSelect("","",this);var t,e=this.selectedDates,s=n.getParsedDate(e[0]),i=this,a=new Date(s.year,s.month,s.date);t=e.map(function(t){return i.formatDate(i.loc.dateFormat,t)}).join(this.opts.multipleDatesSeparator),this.opts.multipleDates&&(a=e.map(function(t){var e=n.getParsedDate(t);return new Date(e.year,e.month,e.date)})),this.opts.onSelect(t,a,this)},next:function(){var t=this.parsedDate,e=this.opts;switch(this.view){case"days":this.date=new Date(t.year,t.month+1,1),e.onChangeMonth&&e.onChangeMonth(this.parsedDate.month,this.parsedDate.year);break;case"months":this.date=new Date(t.year+1,t.month,1),e.onChangeYear&&e.onChangeYear(this.parsedDate.year);break;case"years":this.date=new Date(t.year+10,0,1),e.onChangeDecade&&e.onChangeDecade(this.curDecade)}},prev:function(){var t=this.parsedDate,e=this.opts;switch(this.view){case"days":this.date=new Date(t.year,t.month-1,1),e.onChangeMonth&&e.onChangeMonth(this.parsedDate.month,this.parsedDate.year);break;case"months":this.date=new Date(t.year-1,t.month,1),e.onChangeYear&&e.onChangeYear(this.parsedDate.year);break;case"years":this.date=new Date(t.year-10,0,1),e.onChangeDecade&&e.onChangeDecade(this.curDecade)}},formatDate:function(t,e){e=e||this.date;var s=t,i=this.loc,a=n.getDecade(e),h=n.getParsedDate(e);switch(!0){case/@/.test(s):s=s.replace(/@/,e.getTime());case/dd/.test(s):s=s.replace(/\bdd\b/,h.fullDate);case/d/.test(s):s=s.replace(/\bd\b/,h.date);case/DD/.test(s):s=s.replace(/\bDD\b/,i.days[h.day]);case/D/.test(s):s=s.replace(/\bD\b/,i.daysShort[h.day]);case/mm/.test(s):s=s.replace(/\bmm\b/,h.fullMonth);case/m/.test(s):s=s.replace(/\bm\b/,h.month+1);case/MM/.test(s):s=s.replace(/\bMM\b/,this.loc.months[h.month]);case/M/.test(s):s=s.replace(/\bM\b/,i.monthsShort[h.month]);case/yyyy/.test(s):s=s.replace(/\byyyy\b/,h.year);case/yyyy1/.test(s):s=s.replace(/\byyyy1\b/,a[0]);case/yyyy2/.test(s):s=s.replace(/\byyyy2\b/,a[1]);case/yy/.test(s):s=s.replace(/\byy\b/,h.year.toString().slice(-2))}return s},selectDate:function(t){var e=this.parsedDate,s=this.selectedDates,i=s.length,a="";if(t instanceof Date){if("days"==this.view&&t.getMonth()!=e.month&&this.opts.moveToOtherMonthsOnSelect&&(a=new Date(t.getFullYear(),t.getMonth(),1)),"years"==this.view&&t.getFullYear()!=e.year&&this.opts.moveToOtherYearsOnSelect&&(a=new Date(t.getFullYear(),0,1)),a&&(this.silent=!0,this.date=a,this.silent=!1,this.nav._render()),this.opts.multipleDates){if(i===this.opts.multipleDates)return;this._isSelected(t)||this.selectedDates.push(t)}else this.opts.range?2==i?(this.selectedDates=[t],this.minRange=t,this.maxRange=""):1==i?(this.selectedDates.push(t),this.maxRange?this.minRange=t:this.maxRange=t,this.selectedDates=[this.minRange,this.maxRange]):(this.selectedDates=[t],this.minRange=t):this.selectedDates=[t];this._setInputValue(),this.opts.onSelect&&this._triggerOnChange(),this.opts.autoClose&&this.hide(),this.views[this.currentView]._render()}},removeDate:function(t){var e=this.selectedDates,s=this;if(t instanceof Date)return e.some(function(i,a){return n.isSame(i,t)?(e.splice(a,1),s.views[s.currentView]._render(),s._setInputValue(),s.opts.onSelect&&s._triggerOnChange(),!0):void 0})},today:function(){this.silent=!0,this.view=this.opts.minView,this.silent=!1,this.date=new Date},clear:function(){this.selectedDates=[],this.minRange="",this.maxRange="",this.views[this.currentView]._render(),this._setInputValue(),this.opts.onSelect&&this._triggerOnChange()},update:function(t,s){var i=arguments.length;return 2==i?this.opts[t]=s:1==i&&"object"==typeof t&&(this.opts=e.extend(!0,this.opts,t)),this._createShortCuts(),this._syncWithMinMaxDates(),this._defineLocale(this.opts.language),this.nav._addButtonsIfNeed(),this.nav._render(),this.views[this.currentView]._render(),this.elIsInput&&!this.opts.inline&&(this._setPositionClasses(this.opts.position),this.visible&&this.setPosition(this.opts.position)),this.opts.classes&&this.$datepicker.addClass(this.opts.classes),this},_syncWithMinMaxDates:function(){var t=this.date.getTime();this.silent=!0,this.minTime>t&&(this.date=this.minDate),this.maxTime
=this.minTime&&s<=this.maxTime,month:o>=this.minTime&&r<=this.maxTime,year:i.year>=a.year&&i.year<=h.year};return e?d[e]:d.day},_getDimensions:function(t){var e=t.offset();return{width:t.outerWidth(),height:t.outerHeight(),left:e.left,top:e.top}},_getDateFromCell:function(t){var e=this.parsedDate,i=t.data("year")||e.year,a=t.data("month")==s?e.month:t.data("month"),n=t.data("date")||1;return new Date(i,a,n)},_setPositionClasses:function(t){t=t.split(" ");var e=t[0],s=t[1],i="datepicker -"+e+"-"+s+"- -from-"+e+"-";this.visible&&(i+=" active"),this.$datepicker.removeAttr("class").addClass(i)},setPosition:function(t){t=t||this.opts.position;var e,s,i=this._getDimensions(this.$el),a=this._getDimensions(this.$datepicker),n=t.split(" "),h=this.opts.offset,o=n[0],r=n[1];switch(o){case"top":e=i.top-a.height-h;break;case"right":s=i.left+i.width+h;break;case"bottom":e=i.top+i.height+h;break;case"left":s=i.left-a.width-h}switch(r){case"top":e=i.top;break;case"right":s=i.left+i.width-a.width;break;case"bottom":e=i.top+i.height-a.height;break;case"left":s=i.left;break;case"center":/left|right/.test(o)?e=i.top+i.height/2-a.height/2:s=i.left+i.width/2-a.width/2}this.$datepicker.css({left:s,top:e})},show:function(){this.setPosition(this.opts.position),this.$datepicker.addClass("active"),this.visible=!0},hide:function(){this.$datepicker.removeClass("active").css({left:"-100000px"}),this.focused="",this.keys=[],this.inFocus=!1,this.visible=!1,this.$el.blur()},down:function(t){this._changeView(t,"down")},up:function(t){this._changeView(t,"up")},_changeView:function(t,e){t=t||this.focused||this.date;var s="up"==e?this.viewIndex+1:this.viewIndex-1;s>2&&(s=2),0>s&&(s=0),this.silent=!0,this.date=new Date(t.getFullYear(),t.getMonth(),1),this.silent=!1,this.view=this.viewIndexes[s]},_handleHotKey:function(t){var e,s,i,a=n.getParsedDate(this._getFocusedDate()),h=this.opts,o=!1,r=!1,d=!1,c=a.year,l=a.month,u=a.date;switch(t){case"ctrlRight":case"ctrlUp":l+=1,o=!0;break;case"ctrlLeft":case"ctrlDown":l-=1,o=!0;break;case"shiftRight":case"shiftUp":r=!0,c+=1;break;case"shiftLeft":case"shiftDown":r=!0,c-=1;break;case"altRight":case"altUp":d=!0,c+=10;break;case"altLeft":case"altDown":d=!0,c-=10;break;case"ctrlShiftUp":this.up()}i=n.getDaysCount(new Date(c,l)),s=new Date(c,l,u),u>i&&(u=i),s.getTime()this.maxTime&&(s=this.maxDate),this.focused=s,e=n.getParsedDate(s),o&&h.onChangeMonth&&h.onChangeMonth(e.month,e.year),r&&h.onChangeYear&&h.onChangeYear(e.year),d&&h.onChangeDecade&&h.onChangeDecade(this.curDecade)},_registerKey:function(t){var e=this.keys.some(function(e){return e==t});e||this.keys.push(t)},_unRegisterKey:function(t){var e=this.keys.indexOf(t);this.keys.splice(e,1)},_isHotKeyPressed:function(){var t,e=!1,s=this,i=this.keys.sort();for(var a in l)t=l[a],i.length==t.length&&t.every(function(t,e){return t==i[e]})&&(s._trigger("hotKey",a),e=!0);return e},_trigger:function(t,e){this.$el.trigger(t,e)},_focusNextCell:function(t,e){e=e||this.cellType;var s=n.getParsedDate(this._getFocusedDate()),i=s.year,a=s.month,h=s.date;if(!this._isHotKeyPressed()){switch(t){case 37:"day"==e?h-=1:"","month"==e?a-=1:"","year"==e?i-=1:"";break;case 38:"day"==e?h-=7:"","month"==e?a-=3:"","year"==e?i-=4:"";break;case 39:"day"==e?h+=1:"","month"==e?a+=1:"","year"==e?i+=1:"";break;case 40:"day"==e?h+=7:"","month"==e?a+=3:"","year"==e?i+=4:""}var o=new Date(i,a,h);o.getTime()this.maxTime&&(o=this.maxDate),this.focused=o}},_getFocusedDate:function(){var t=this.focused||this.selectedDates[this.selectedDates.length-1],e=this.parsedDate;if(!t)switch(this.view){case"days":t=new Date(e.year,e.month,(new Date).getDate());break;case"months":t=new Date(e.year,e.month,1);break;case"years":t=new Date(e.year,0,1)}return t},_getCell:function(t,e){e=e||this.cellType;var s,i=n.getParsedDate(t),a='.datepicker--cell[data-year="'+i.year+'"]';switch(e){case"month":a='[data-month="'+i.month+'"]';break;case"day":a+='[data-month="'+i.month+'"][data-date="'+i.date+'"]'}return s=this.views[this.currentView].$el.find(a),s.length?s:""},_onShowEvent:function(){this.visible||this.show()},_onBlur:function(){},_onMouseDownDatepicker:function(t){this.inFocus=!0},_onMouseUpDatepicker:function(t){this.inFocus=!1,this.$el.focus()},_onInput:function(){var t=this.$el.val();t||this.clear()},_onResize:function(){this.visible&&this.setPosition()},_onKeyDown:function(t){var e=t.which;if(this._registerKey(e),e>=37&&40>=e&&(t.preventDefault(),this._focusNextCell(e)),13==e&&this.focused){if(this._getCell(this.focused).hasClass("-disabled-"))return;if(this.view!=this.opts.minView)this.down();else{var s=this._isSelected(this.focused,this.cellType);s?s&&this.opts.toggleSelected&&this.removeDate(this.focused):this.selectDate(this.focused)}}27==e&&this.hide()},_onKeyUp:function(t){var e=t.which;this._unRegisterKey(e)},_onHotKey:function(t,e){this._handleHotKey(e)},_onMouseEnterCell:function(t){var s=e(t.target).closest(".datepicker--cell"),i=this._getDateFromCell(s);this.silent=!0,this.focused&&(this.focused=""),s.addClass("-focus-"),this.focused=i,this.silent=!1,this.opts.range&&1==this.selectedDates.length&&(this.minRange=this.selectedDates[0],this.maxRange="",n.less(this.minRange,this.focused)&&(this.maxRange=this.minRange,this.minRange=""),this.views[this.currentView]._update())},_onMouseLeaveCell:function(t){var s=e(t.target).closest(".datepicker--cell");this._getDateFromCell(s);s.removeClass("-focus-"),this.silent=!0,this.focused="",this.silent=!1},set focused(t){if(!t&&this.focused){var e=this._getCell(this.focused);e.length&&e.removeClass("-focus-")}this._focused=t,this.opts.range&&1==this.selectedDates.length&&(this.minRange=this.selectedDates[0],this.maxRange="",n.less(this.minRange,this._focused)&&(this.maxRange=this.minRange,this.minRange="")),this.silent||(this.date=t)},get focused(){return this._focused},get parsedDate(){return n.getParsedDate(this.date)},set date(t){return t instanceof Date?(this.prevDate=this.currentDate,this.currentDate=t,this.inited&&!this.silent&&(this.views[this.view]._render(),this.nav._render(),this.visible&&this.elIsInput&&this.setPosition()),t):void 0},get date(){return this.currentDate},set view(t){return this.viewIndex=this.viewIndexes.indexOf(t),this.viewIndex<0?void 0:(this.prevView=this.currentView,this.currentView=t,this.inited&&(this.views[t]?this.views[t]._render():this.views[t]=new Datepicker.Body(this,t,this.opts),this.views[this.prevView].hide(),this.views[t].show(),this.nav._render(),this.opts.onChangeView&&this.opts.onChangeView(t),this.elIsInput&&this.visible&&this.setPosition()),t)},get view(){return this.currentView},get cellType(){return this.view.substring(0,this.view.length-1)},get minTime(){var t=n.getParsedDate(this.minDate);return new Date(t.year,t.month,t.date).getTime()},get maxTime(){var t=n.getParsedDate(this.maxDate);return new Date(t.year,t.month,t.date).getTime()},get curDecade(){return n.getDecade(this.date)}},n.getDaysCount=function(t){return new Date(t.getFullYear(),t.getMonth()+1,0).getDate()},n.getParsedDate=function(t){return{year:t.getFullYear(),month:t.getMonth(),fullMonth:t.getMonth()+1<10?"0"+(t.getMonth()+1):t.getMonth()+1,date:t.getDate(),fullDate:t.getDate()<10?"0"+t.getDate():t.getDate(),day:t.getDay()}},n.getDecade=function(t){var e=10*Math.floor(t.getFullYear()/10);return[e,e+9]},n.template=function(t,e){return t.replace(/#\{([\w]+)\}/g,function(t,s){return e[s]||0===e[s]?e[s]:void 0})},n.isSame=function(t,e,s){if(!t||!e)return!1;var i=n.getParsedDate(t),a=n.getParsedDate(e),h=s?s:"day",o={day:i.date==a.date&&i.month==a.month&&i.year==a.year,month:i.month==a.month&&i.year==a.year,year:i.year==a.year};return o[h]},n.less=function(t,e,s){return t&&e?e.getTime()t.getTime():!1},Datepicker.language={ru:{days:["Воскресенье","Понедельник","Вторник","Среда","Четверг","Пятница","Суббота"],daysShort:["Вос","Пон","Вто","Сре","Чет","Пят","Суб"],daysMin:["Вс","Пн","Вт","Ср","Чт","Пт","Сб"],months:["Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь"],monthsShort:["Янв","Фев","Мар","Апр","Май","Июн","Июл","Авг","Сен","Окт","Ноя","Дек"],today:"Сегодня",clear:"Очистить",dateFormat:"dd.mm.yyyy",firstDay:1}},e.fn[h]=function(t){return n.prototype[t]?void n.prototype[t].apply(this.data(h),Array.prototype.slice.call(arguments,1)):this.each(function(){if(e.data(this,h)){var s=e.data(this,h);s.opts=e.extend(!0,s.opts,t),s.update()}else e.data(this,h,new Datepicker(this,t))})},e(function(){e(o).datepicker()})}(window,jQuery),function(){var t={days:'',months:'',years:''},e=Datepicker;e.Body=function(t,e,s){this.d=t,this.type=e,this.opts=s,this.init()},e.Body.prototype={init:function(){this._buildBaseHtml(),this._render(),this._bindEvents()},_bindEvents:function(){this.$el.on("mouseup",".datepicker--cell",$.proxy(this._onClickCell,this))},_buildBaseHtml:function(){this.$el=$(t[this.type]).appendTo(this.d.$content),this.$names=$(".datepicker--days-names",this.$el),this.$cells=$(".datepicker--cells",this.$el)},_getDayNamesHtml:function(t,e,s,i){return e=void 0!=e?e:t,s=s?s:"",i=void 0!=i?i:0,i>7?s:7==e?this._getDayNamesHtml(t,0,s,++i):(s+=''+this.d.loc.daysMin[e]+"
",this._getDayNamesHtml(t,++e,s,++i))},_getCellContents:function(t,s){var i="datepicker--cell datepicker--cell-"+s,a=new Date,n=this.d,h=e.getParsedDate(t),o={},r=h.date;switch(this.opts.onRenderCell&&(o=this.opts.onRenderCell(t,s)||{},r=o.html?o.html:r,i+=o.classes?" "+o.classes:""),s){case"day":this.d.isWeekend(h.day)&&(i+=" -weekend-"),h.month!=this.d.parsedDate.month&&(i+=" -other-month-",this.opts.selectOtherMonths||(i+=" -disabled-"),this.opts.showOtherMonths||(r=""));break;case"month":r=n.loc[n.opts.monthsFiled][h.month];break;case"year":var d=n.curDecade;(h.yeard[1])&&(i+=" -other-decade-",this.opts.selectOtherYears||(i+=" -disabled-"),this.opts.showOtherYears||(r="")),r=h.year}return this.opts.onRenderCell&&(o=this.opts.onRenderCell(t,s)||{},r=o.html?o.html:r,i+=o.classes?" "+o.classes:""),this.opts.range&&(e.isSame(this.d.minRange,t,s)&&(i+=" -range-from-"),e.isSame(this.d.maxRange,t,s)&&(i+=" -range-to-"),1==this.d.selectedDates.length&&this.d.focused?((Datepicker.bigger(this.d.minRange,t)&&e.less(this.d.focused,t)||Datepicker.less(this.d.maxRange,t)&&e.bigger(this.d.focused,t))&&(i+=" -in-range-"),Datepicker.less(this.d.maxRange,t)&&e.isSame(this.d.focused,t)&&(i+=" -range-from-"),Datepicker.bigger(this.d.minRange,t)&&e.isSame(this.d.focused,t)&&(i+=" -range-to-")):2==this.d.selectedDates.length&&e.bigger(this.d.minRange,t)&&e.less(this.d.maxRange,t)&&(i+=" -in-range-")),e.isSame(a,t,s)&&(i+=" -current-"),this.d.focused&&e.isSame(t,this.d.focused,s)&&(i+=" -focus-"),this.d._isSelected(t,s)&&(i+=" -selected-"),(!this.d._isInRange(t,s)||o.disabled)&&(i+=" -disabled-"),{html:r,classes:i}},_getDaysHtml:function(t){var s=e.getDaysCount(t),i=new Date(t.getFullYear(),t.getMonth(),1).getDay(),a=new Date(t.getFullYear(),t.getMonth(),s).getDay(),n=i-this.d.loc.firstDay,h=6-a+this.d.loc.firstDay;n=0>n?n+7:n,h=h>6?h-7:h;for(var o,r,d=-n+1,c="",l=d,u=s+h;u>=l;l++)r=t.getFullYear(),o=t.getMonth(),c+=this._getDayHtml(new Date(r,o,l));return c},_getDayHtml:function(t){var e=this._getCellContents(t,"day");return''+e.html+"
"},_getMonthsHtml:function(t){for(var s="",i=e.getParsedDate(t),a=0;12>a;)s+=this._getMonthHtml(new Date(i.year,a)),a++;return s},_getMonthHtml:function(t){var e=this._getCellContents(t,"month");return''+e.html+"
"},_getYearsHtml:function(t){var s=(e.getParsedDate(t),e.getDecade(t)),i=s[0]-1,a="",n=i;for(n;n<=s[1]+1;n++)a+=this._getYearHtml(new Date(n,0));return a},_getYearHtml:function(t){var e=this._getCellContents(t,"year");return''+e.html+"
"},_renderTypes:{days:function(){var t=this._getDayNamesHtml(this.d.loc.firstDay),e=this._getDaysHtml(this.d.currentDate);this.$cells.html(e),this.$names.html(t)},months:function(){var t=this._getMonthsHtml(this.d.currentDate);this.$cells.html(t)},years:function(){var t=this._getYearsHtml(this.d.currentDate);this.$cells.html(t)}},_render:function(){this._renderTypes[this.type].bind(this)()},_update:function(){var t,e,s,i=$(".datepicker--cell",this.$cells),a=this;i.each(function(i,n){e=$(this),s=a.d._getDateFromCell($(this)),t=a._getCellContents(s,a.d.cellType),e.attr("class",t.classes)})},show:function(){this.$el.addClass("active"),this.acitve=!0},hide:function(){this.$el.removeClass("active"),this.active=!1},_handleClick:function(t){var e=t.data("date")||1,s=t.data("month")||0,i=t.data("year")||this.d.parsedDate.year;if(this.d.view!=this.opts.minView)return void this.d.down(new Date(i,s,e));var a=new Date(i,s,e),n=this.d._isSelected(a,this.d.cellType);n?n&&this.opts.toggleSelected&&this.d.removeDate(a):this.d.selectDate(a)},_onClickCell:function(t){var e=$(t.target).closest(".datepicker--cell");e.hasClass("-disabled-")||this._handleClick.bind(this)(e)}}}(),function(){var t='#{prevHtml}
#{title}
#{nextHtml}
',e='',s='#{label}';Datepicker.Navigation=function(t,e){this.d=t,this.opts=e,this.$buttonsContainer="",this.init()},Datepicker.Navigation.prototype={init:function(){this._buildBaseHtml(),this._bindEvents()},_bindEvents:function(){this.d.$nav.on("click",".datepicker--nav-action",$.proxy(this._onClickNavButton,this)),this.d.$nav.on("click",".datepicker--nav-title",$.proxy(this._onClickNavTitle,this)),this.d.$datepicker.on("click",".datepicker--button",$.proxy(this._onClickNavButton,this))},_buildBaseHtml:function(){this._render(),this._addButtonsIfNeed()},_addButtonsIfNeed:function(){this.opts.todayButton&&this._addButton("today"),this.opts.clearButton&&this._addButton("clear")},_render:function(){var e=this._getTitle(this.d.currentDate),s=Datepicker.template(t,$.extend({title:e},this.opts));this.d.$nav.html(s),"years"==this.d.view&&$(".datepicker--nav-title",this.d.$nav).addClass("-disabled-"),this.setNavStatus()},_getTitle:function(t){return this.d.formatDate(this.opts.navTitles[this.d.view],t)},_addButton:function(t){this.$buttonsContainer.length||this._addButtonsContainer();var e={action:t,label:this.d.loc[t]},i=Datepicker.template(s,e);$("[data-action="+t+"]",this.$buttonsContainer).length||this.$buttonsContainer.append(i)},_addButtonsContainer:function(){this.d.$datepicker.append(e),this.$buttonsContainer=$(".datepicker--buttons",this.d.$datepicker)},setNavStatus:function(){if((this.opts.minDate||this.opts.maxDate)&&this.opts.disableNavWhenOutOfRange){var t=this.d.parsedDate,e=t.month,s=t.year,i=t.date;switch(this.d.view){case"days":this.d._isInRange(new Date(s,e-1,i),"month")||this._disableNav("prev"),this.d._isInRange(new Date(s,e+1,i),"month")||this._disableNav("next");break;case"months":this.d._isInRange(new Date(s-1,e,i),"year")||this._disableNav("prev"),this.d._isInRange(new Date(s+1,e,i),"year")||this._disableNav("next");break;case"years":this.d._isInRange(new Date(s-10,e,i),"year")||this._disableNav("prev"),this.d._isInRange(new Date(s+10,e,i),"year")||this._disableNav("next")}}},_disableNav:function(t){$('[data-action="'+t+'"]',this.d.$nav).addClass("-disabled-")},_activateNav:function(t){$('[data-action="'+t+'"]',this.d.$nav).removeClass("-disabled-")},_onClickNavButton:function(t){var e=$(t.target).closest("[data-action]"),s=e.data("action");this.d[s]()},_onClickNavTitle:function(t){return $(t.target).hasClass("-disabled-")?void 0:"days"==this.d.view?this.d.view="months":void(this.d.view="years")}}}();
\ No newline at end of file
diff --git a/src/js/datepicker.js b/src/js/datepicker.js
index cfdc16d..ace16d6 100644
--- a/src/js/datepicker.js
+++ b/src/js/datepicker.js
@@ -44,7 +44,7 @@ var Datepicker;
multipleDates: false, // Boolean or Number
multipleDatesSeparator: ',',
- range: true,
+ range: false,
todayButton: false,
clearButton: false,
@@ -84,7 +84,8 @@ var Datepicker;
'altLeft': [18, 37],
'altDown': [18, 40],
'ctrlShiftUp': [16, 17, 38]
- };
+ },
+ datepicker;
Datepicker = function (el, options) {
this.el = el;
@@ -124,8 +125,9 @@ var Datepicker;
this.init()
};
+ datepicker = Datepicker;
- Datepicker.prototype = {
+ datepicker.prototype = {
viewIndexes: ['days', 'months', 'years'],
init: function () {
@@ -236,7 +238,7 @@ var Datepicker;
}
var selectedDates = this.selectedDates,
- parsedSelected = Datepicker.getParsedDate(selectedDates[0]),
+ parsedSelected = datepicker.getParsedDate(selectedDates[0]),
formattedDates,
_this = this,
dates = new Date(parsedSelected.year, parsedSelected.month, parsedSelected.date);
@@ -248,7 +250,7 @@ var Datepicker;
// Create new dates array, to separate it from original selectedDates
if (this.opts.multipleDates) {
dates = selectedDates.map(function(date) {
- var parsedDate = Datepicker.getParsedDate(date);
+ var parsedDate = datepicker.getParsedDate(date);
return new Date(parsedDate.year, parsedDate.month, parsedDate.date)
})
}
@@ -298,8 +300,8 @@ var Datepicker;
date = date || this.date;
var result = string,
locale = this.loc,
- decade = Datepicker.getDecade(date),
- d = Datepicker.getParsedDate(date);
+ decade = datepicker.getDecade(date),
+ d = datepicker.getParsedDate(date);
switch (true) {
case /@/.test(result):
@@ -407,7 +409,7 @@ var Datepicker;
if (!(date instanceof Date)) return;
return selected.some(function (curDate, i) {
- if (Datepicker.isSame(curDate, date)) {
+ if (datepicker.isSame(curDate, date)) {
selected.splice(i, 1);
_this.views[_this.currentView]._render();
_this._setInputValue();
@@ -431,6 +433,7 @@ var Datepicker;
this.minRange = '';
this.maxRange = '';
this.views[this.currentView]._render();
+ this._setInputValue();
if (this.opts.onSelect) {
this._triggerOnChange()
}
@@ -485,7 +488,7 @@ var Datepicker;
_isSelected: function (checkDate, cellType) {
return this.selectedDates.some(function (date) {
- return Datepicker.isSame(date, checkDate, cellType)
+ return datepicker.isSame(date, checkDate, cellType)
})
},
@@ -502,6 +505,7 @@ var Datepicker;
altValues = this.selectedDates.map(function (date) {
return _this.formatDate(altFormat, date)
});
+ altValues = altValues.join(this.opts.multipleDatesSeparator);
this.$altField.val(altValues);
}
@@ -519,9 +523,9 @@ var Datepicker;
*/
_isInRange: function (date, type) {
var time = date.getTime(),
- d = Datepicker.getParsedDate(date),
- min = Datepicker.getParsedDate(this.minDate),
- max = Datepicker.getParsedDate(this.maxDate),
+ d = datepicker.getParsedDate(date),
+ min = datepicker.getParsedDate(this.minDate),
+ max = datepicker.getParsedDate(this.maxDate),
dMinTime = new Date(d.year, d.month, min.date).getTime(),
dMaxTime = new Date(d.year, d.month, max.date).getTime(),
types = {
@@ -663,7 +667,7 @@ var Datepicker;
},
_handleHotKey: function (key) {
- var date = Datepicker.getParsedDate(this._getFocusedDate()),
+ var date = datepicker.getParsedDate(this._getFocusedDate()),
focusedParsed,
o = this.opts,
newDate,
@@ -711,7 +715,7 @@ var Datepicker;
break;
}
- totalDaysInNextMonth = Datepicker.getDaysCount(new Date(y,m));
+ totalDaysInNextMonth = datepicker.getDaysCount(new Date(y,m));
newDate = new Date(y,m,d);
// If next month has less days than current, set date to total days in that month
@@ -726,7 +730,7 @@ var Datepicker;
this.focused = newDate;
- focusedParsed = Datepicker.getParsedDate(newDate);
+ focusedParsed = datepicker.getParsedDate(newDate);
if (monthChanged && o.onChangeMonth) {
o.onChangeMonth(focusedParsed.month, focusedParsed.year)
}
@@ -780,7 +784,7 @@ var Datepicker;
_focusNextCell: function (keyCode, type) {
type = type || this.cellType;
- var date = Datepicker.getParsedDate(this._getFocusedDate()),
+ var date = datepicker.getParsedDate(this._getFocusedDate()),
y = date.year,
m = date.month,
d = date.date;
@@ -847,7 +851,7 @@ var Datepicker;
_getCell: function (date, type) {
type = type || this.cellType;
- var d = Datepicker.getParsedDate(date),
+ var d = datepicker.getParsedDate(date),
selector = '.datepicker--cell[data-year="' + d.year + '"]',
$cell;
@@ -962,7 +966,7 @@ var Datepicker;
if (this.opts.range && this.selectedDates.length == 1) {
this.minRange = this.selectedDates[0];
this.maxRange = '';
- if (Datepicker.less(this.minRange, this.focused)) {
+ if (datepicker.less(this.minRange, this.focused)) {
this.maxRange = this.minRange;
this.minRange = '';
}
@@ -993,7 +997,7 @@ var Datepicker;
if (this.opts.range && this.selectedDates.length == 1) {
this.minRange = this.selectedDates[0];
this.maxRange = '';
- if (Datepicker.less(this.minRange, this._focused)) {
+ if (datepicker.less(this.minRange, this._focused)) {
this.maxRange = this.minRange;
this.minRange = '';
}
@@ -1007,7 +1011,7 @@ var Datepicker;
},
get parsedDate() {
- return Datepicker.getParsedDate(this.date);
+ return datepicker.getParsedDate(this.date);
},
set date (val) {
@@ -1069,28 +1073,28 @@ var Datepicker;
},
get minTime() {
- var min = Datepicker.getParsedDate(this.minDate);
+ var min = datepicker.getParsedDate(this.minDate);
return new Date(min.year, min.month, min.date).getTime()
},
get maxTime() {
- var max = Datepicker.getParsedDate(this.maxDate);
+ var max = datepicker.getParsedDate(this.maxDate);
return new Date(max.year, max.month, max.date).getTime()
},
get curDecade() {
- return Datepicker.getDecade(this.date)
+ return datepicker.getDecade(this.date)
}
};
// Utils
// -------------------------------------------------
- Datepicker.getDaysCount = function (date) {
+ datepicker.getDaysCount = function (date) {
return new Date(date.getFullYear(), date.getMonth() + 1, 0).getDate();
};
- Datepicker.getParsedDate = function (date) {
+ datepicker.getParsedDate = function (date) {
return {
year: date.getFullYear(),
month: date.getMonth(),
@@ -1101,13 +1105,13 @@ var Datepicker;
}
};
- Datepicker.getDecade = function (date) {
+ datepicker.getDecade = function (date) {
var firstYear = Math.floor(date.getFullYear() / 10) * 10;
return [firstYear, firstYear + 9];
};
- Datepicker.template = function (str, data) {
+ datepicker.template = function (str, data) {
return str.replace(/#\{([\w]+)\}/g, function (source, match) {
if (data[match] || data[match] === 0) {
return data[match]
@@ -1115,10 +1119,10 @@ var Datepicker;
});
};
- Datepicker.isSame = function (date1, date2, type) {
+ datepicker.isSame = function (date1, date2, type) {
if (!date1 || !date2) return false;
- var d1 = Datepicker.getParsedDate(date1),
- d2 = Datepicker.getParsedDate(date2),
+ var d1 = datepicker.getParsedDate(date1),
+ d2 = datepicker.getParsedDate(date2),
_type = type ? type : 'day',
conditions = {
@@ -1130,12 +1134,12 @@ var Datepicker;
return conditions[_type];
};
- Datepicker.less = function (dateCompareTo, date, type) {
+ datepicker.less = function (dateCompareTo, date, type) {
if (!dateCompareTo || !date) return false;
return date.getTime() < dateCompareTo.getTime();
};
- Datepicker.bigger = function (dateCompareTo, date, type) {
+ datepicker.bigger = function (dateCompareTo, date, type) {
if (!dateCompareTo || !date) return false;
return date.getTime() > dateCompareTo.getTime();
};
@@ -1155,8 +1159,8 @@ var Datepicker;
};
$.fn[pluginName] = function ( options ) {
- if (Datepicker.prototype[options]) {
- Datepicker.prototype[options].apply(this.data(pluginName), Array.prototype.slice.call(arguments, 1));
+ if (datepicker.prototype[options]) {
+ datepicker.prototype[options].apply(this.data(pluginName), Array.prototype.slice.call(arguments, 1));
} else {
return this.each(function () {
if (!$.data(this, pluginName)) {
diff --git a/src/js/navigation.js b/src/js/navigation.js
index a0f28b5..352c105 100644
--- a/src/js/navigation.js
+++ b/src/js/navigation.js
@@ -66,6 +66,7 @@
},
html = Datepicker.template(button, data);
+ if ($('[data-action=' + type + ']', this.$buttonsContainer).length) return;
this.$buttonsContainer.append(html);
},
diff --git a/src/sass/_datepicker-config.scss b/src/sass/_datepicker-config.scss
index 771b10d..c4d94ba 100644
--- a/src/sass/_datepicker-config.scss
+++ b/src/sass/_datepicker-config.scss
@@ -24,7 +24,7 @@ $textColor: (
$bg: (
selected: #5cc4ef,
selectedHover: darken(#5cc4ef, 5),
- inRange: #EAF9FF,
+ inRange: rgba(#5cc4ef, .1),
hover: #f0f0f0
);
@@ -72,7 +72,7 @@ $transitionOffset: 8px;
color: darken(map_get($textColor, otherMonth), 7);
&.-focus- {
- background-color: lighten(map_get($bg, inRange), 1);
+ background-color: rgba(map_get($bg, inRange), .2);
}
}
diff --git a/src/sass/cell.scss b/src/sass/cell.scss
index e6d4a4d..af17a81 100644
--- a/src/sass/cell.scss
+++ b/src/sass/cell.scss
@@ -19,7 +19,7 @@
height: $dayCellSize;
z-index: 1;
- /*&:hover, */&.-focus- {
+ &.-focus- {
background: map_get($bg, hover);
}
@@ -30,10 +30,9 @@
color: map_get($textColor, common);
}
- //&:hover {
- // color: map_get($textColor, common);
- // //background: rgba(map_get($textColor, currentDate), .05);
- //}
+ &.-in-range- {
+ color: map_get($textColor, currentDate);
+ }
}
&.-in-range- {
@@ -44,7 +43,7 @@
border-radius: 0;
&.-focus- {
- background-color: darken(map_get($bg, inRange), 5);
+ background-color: rgba(map_get($bg, inRange), .2);
}
}
@@ -54,31 +53,38 @@
&.-focus- {
color: map_get($textColor, disabled);
- background: map_get($bg, hover);
+ }
+
+ &.-in-range- {
+ color: darken(map_get($textColor, disabled), 5);
}
&.-current- {
- &:hover {
+ &.-focus- {
color: map_get($textColor, disabled);
}
}
}
&.-range-from- {
- //background: darken(map_get($bg, hover), 3);
+ border: 1px solid rgba(map_get($bg, selected), .5);
+ background-color: map_get($bg, inRange);
border-radius: $datepickerBorderRadius 0 0 $datepickerBorderRadius;
}
&.-range-to- {
- //background: darken(map_get($bg, hover), 3);
+ border: 1px solid rgba(map_get($bg, selected), .5);
+ background-color: map_get($bg, inRange);
border-radius: 0 $datepickerBorderRadius $datepickerBorderRadius 0;
}
&.-range-from-.-range-to- {
border-radius: $datepickerBorderRadius;
+
}
&.-selected- {
color: #fff;
+ border: none;
background: map_get($bg, selected);
&.-current- {