update datepicker to upstream

This commit is contained in:
vitalets
2013-01-01 21:18:54 +04:00
parent bd44849e13
commit 65c027f26b
31 changed files with 337 additions and 635 deletions

@ -4,6 +4,7 @@ X-editable changelog
Version 1.3.1 wip Version 1.3.1 wip
---------------------------- ----------------------------
[enh] update bootstrap-datepicker to upstream (vitalets)
[enh] 'display' method: added param 'response' allowing to show text directly from server (vitalets) [enh] 'display' method: added param 'response' allowing to show text directly from server (vitalets)
[enh] new util method `$.fn.editableutils.itemsByValue` to easily get selected items for sourced-inputs (vitalets) [enh] new util method `$.fn.editableutils.itemsByValue` to easily get selected items for sourced-inputs (vitalets)
[enh] convert newlines to <br> in error message for more pretty display (vitalets) [enh] convert newlines to <br> in error message for more pretty display (vitalets)

@ -13,22 +13,26 @@
-webkit-border-radius: 4px; -webkit-border-radius: 4px;
-moz-border-radius: 4px; -moz-border-radius: 4px;
border-radius: 4px; border-radius: 4px;
direction: ltr;
/*.dow { /*.dow {
border-top: 1px solid #ddd !important; border-top: 1px solid #ddd !important;
}*/ }*/
}
}
.datepicker-inline { .datepicker-inline {
width: 220px; width: 220px;
/* height: 220px; */
} }
.datepicker.datepicker-rtl {
.datepicker-float { direction: rtl;
}
.datepicker.datepicker-rtl table tr td span {
float: right;
}
.datepicker-dropdown {
top: 0; top: 0;
left: 0; left: 0;
} }
.datepicker-dropdown:before {
.datepicker-float:before {
content: ''; content: '';
display: inline-block; display: inline-block;
border-left: 7px solid transparent; border-left: 7px solid transparent;
@ -39,7 +43,7 @@
top: -7px; top: -7px;
left: 6px; left: 6px;
} }
.datepicker-float:after { .datepicker-dropdown:after {
content: ''; content: '';
display: inline-block; display: inline-block;
border-left: 6px solid transparent; border-left: 6px solid transparent;
@ -72,29 +76,31 @@
-webkit-border-radius: 4px; -webkit-border-radius: 4px;
-moz-border-radius: 4px; -moz-border-radius: 4px;
border-radius: 4px; border-radius: 4px;
/* vitalets: required to disable css inheritance when display inline inside table */ border: none;
border: none !important;
background-color: transparent !important;
} }
.datepicker td.day:hover { .table-striped .datepicker table tr td,
background: #eeeeee !important; /* disable inheritance for inline */ .table-striped .datepicker table tr th {
background-color: transparent;
}
.datepicker table tr td.day:hover {
background: #eeeeee;
cursor: pointer; cursor: pointer;
} }
.datepicker td.old, .datepicker table tr td.old,
.datepicker td.new { .datepicker table tr td.new {
color: #999999; color: #999999;
} }
.datepicker td.disabled, .datepicker table tr td.disabled,
.datepicker td.disabled:hover { .datepicker table tr td.disabled:hover {
background: none; background: none;
color: #999999; color: #999999;
cursor: default; cursor: default;
} }
.datepicker td.today, .datepicker table tr td.today,
.datepicker td.today:hover, .datepicker table tr td.today:hover,
.datepicker td.today.disabled, .datepicker table tr td.today.disabled,
.datepicker td.today.disabled:hover { .datepicker table tr td.today.disabled:hover {
background-color: #fde19a !important; /* disable inheritance for inline */ background-color: #fde19a;
background-image: -moz-linear-gradient(top, #fdd49a, #fdf59a); background-image: -moz-linear-gradient(top, #fdd49a, #fdf59a);
background-image: -ms-linear-gradient(top, #fdd49a, #fdf59a); background-image: -ms-linear-gradient(top, #fdd49a, #fdf59a);
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fdd49a), to(#fdf59a)); background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fdd49a), to(#fdf59a));
@ -105,116 +111,44 @@
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fdd49a', endColorstr='#fdf59a', GradientType=0); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fdd49a', endColorstr='#fdf59a', GradientType=0);
border-color: #fdf59a #fdf59a #fbed50; border-color: #fdf59a #fdf59a #fbed50;
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
filter: progid:dximagetransform.microsoft.gradient(enabled=false); filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
} }
.datepicker td.today:hover, .datepicker table tr td.today:hover,
.datepicker td.today:hover:hover, .datepicker table tr td.today:hover:hover,
.datepicker td.today.disabled:hover, .datepicker table tr td.today.disabled:hover,
.datepicker td.today.disabled:hover:hover, .datepicker table tr td.today.disabled:hover:hover,
.datepicker td.today:active, .datepicker table tr td.today:active,
.datepicker td.today:hover:active, .datepicker table tr td.today:hover:active,
.datepicker td.today.disabled:active, .datepicker table tr td.today.disabled:active,
.datepicker td.today.disabled:hover:active, .datepicker table tr td.today.disabled:hover:active,
.datepicker td.today.active, .datepicker table tr td.today.active,
.datepicker td.today:hover.active, .datepicker table tr td.today:hover.active,
.datepicker td.today.disabled.active, .datepicker table tr td.today.disabled.active,
.datepicker td.today.disabled:hover.active, .datepicker table tr td.today.disabled:hover.active,
.datepicker td.today.disabled, .datepicker table tr td.today.disabled,
.datepicker td.today:hover.disabled, .datepicker table tr td.today:hover.disabled,
.datepicker td.today.disabled.disabled, .datepicker table tr td.today.disabled.disabled,
.datepicker td.today.disabled:hover.disabled, .datepicker table tr td.today.disabled:hover.disabled,
.datepicker td.today[disabled], .datepicker table tr td.today[disabled],
.datepicker td.today:hover[disabled], .datepicker table tr td.today:hover[disabled],
.datepicker td.today.disabled[disabled], .datepicker table tr td.today.disabled[disabled],
.datepicker td.today.disabled:hover[disabled] { .datepicker table tr td.today.disabled:hover[disabled] {
background-color: #fdf59a !important; /* disable inheritance for inline */ background-color: #fdf59a;
} }
.datepicker td.today:active, .datepicker table tr td.today:active,
.datepicker td.today:hover:active, .datepicker table tr td.today:hover:active,
.datepicker td.today.disabled:active, .datepicker table tr td.today.disabled:active,
.datepicker td.today.disabled:hover:active, .datepicker table tr td.today.disabled:hover:active,
.datepicker td.today.active, .datepicker table tr td.today.active,
.datepicker td.today:hover.active, .datepicker table tr td.today:hover.active,
.datepicker td.today.disabled.active, .datepicker table tr td.today.disabled.active,
.datepicker td.today.disabled:hover.active { .datepicker table tr td.today.disabled:hover.active {
background-color: #fbf069 \9; background-color: #fbf069 \9;
} }
.datepicker td.active, .datepicker table tr td.active,
.datepicker td.active:hover, .datepicker table tr td.active:hover,
.datepicker td.active.disabled, .datepicker table tr td.active.disabled,
.datepicker td.active.disabled:hover { .datepicker table tr td.active.disabled:hover {
background-color: #006dcc !important; /* disable inheritance for inline */
background-image: -moz-linear-gradient(top, #0088cc, #0044cc);
background-image: -ms-linear-gradient(top, #0088cc, #0044cc);
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc));
background-image: -webkit-linear-gradient(top, #0088cc, #0044cc);
background-image: -o-linear-gradient(top, #0088cc, #0044cc);
background-image: linear-gradient(top, #0088cc, #0044cc);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0044cc', GradientType=0);
border-color: #0044cc #0044cc #002a80;
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
filter: progid:dximagetransform.microsoft.gradient(enabled=false);
color: #fff;
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
}
.datepicker td.active:hover,
.datepicker td.active:hover:hover,
.datepicker td.active.disabled:hover,
.datepicker td.active.disabled:hover:hover,
.datepicker td.active:active,
.datepicker td.active:hover:active,
.datepicker td.active.disabled:active,
.datepicker td.active.disabled:hover:active,
.datepicker td.active.active,
.datepicker td.active:hover.active,
.datepicker td.active.disabled.active,
.datepicker td.active.disabled:hover.active,
.datepicker td.active.disabled,
.datepicker td.active:hover.disabled,
.datepicker td.active.disabled.disabled,
.datepicker td.active.disabled:hover.disabled,
.datepicker td.active[disabled],
.datepicker td.active:hover[disabled],
.datepicker td.active.disabled[disabled],
.datepicker td.active.disabled:hover[disabled] {
background-color: #0044cc;
}
.datepicker td.active:active,
.datepicker td.active:hover:active,
.datepicker td.active.disabled:active,
.datepicker td.active.disabled:hover:active,
.datepicker td.active.active,
.datepicker td.active:hover.active,
.datepicker td.active.disabled.active,
.datepicker td.active.disabled:hover.active {
background-color: #003399 \9;
}
.datepicker td span {
display: block;
width: 23%;
height: 54px;
line-height: 54px;
float: left;
margin: 1%;
cursor: pointer;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
}
.datepicker td span:hover {
background: #eeeeee;
}
.datepicker td span.disabled,
.datepicker td span.disabled:hover {
background: none;
color: #999999;
cursor: default;
}
.datepicker td span.active,
.datepicker td span.active:hover,
.datepicker td span.active.disabled,
.datepicker td span.active.disabled:hover {
background-color: #006dcc; background-color: #006dcc;
background-image: -moz-linear-gradient(top, #0088cc, #0044cc); background-image: -moz-linear-gradient(top, #0088cc, #0044cc);
background-image: -ms-linear-gradient(top, #0088cc, #0044cc); background-image: -ms-linear-gradient(top, #0088cc, #0044cc);
@ -226,43 +160,115 @@
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0044cc', GradientType=0); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0044cc', GradientType=0);
border-color: #0044cc #0044cc #002a80; border-color: #0044cc #0044cc #002a80;
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
filter: progid:dximagetransform.microsoft.gradient(enabled=false); filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
color: #fff; color: #fff;
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
} }
.datepicker td span.active:hover, .datepicker table tr td.active:hover,
.datepicker td span.active:hover:hover, .datepicker table tr td.active:hover:hover,
.datepicker td span.active.disabled:hover, .datepicker table tr td.active.disabled:hover,
.datepicker td span.active.disabled:hover:hover, .datepicker table tr td.active.disabled:hover:hover,
.datepicker td span.active:active, .datepicker table tr td.active:active,
.datepicker td span.active:hover:active, .datepicker table tr td.active:hover:active,
.datepicker td span.active.disabled:active, .datepicker table tr td.active.disabled:active,
.datepicker td span.active.disabled:hover:active, .datepicker table tr td.active.disabled:hover:active,
.datepicker td span.active.active, .datepicker table tr td.active.active,
.datepicker td span.active:hover.active, .datepicker table tr td.active:hover.active,
.datepicker td span.active.disabled.active, .datepicker table tr td.active.disabled.active,
.datepicker td span.active.disabled:hover.active, .datepicker table tr td.active.disabled:hover.active,
.datepicker td span.active.disabled, .datepicker table tr td.active.disabled,
.datepicker td span.active:hover.disabled, .datepicker table tr td.active:hover.disabled,
.datepicker td span.active.disabled.disabled, .datepicker table tr td.active.disabled.disabled,
.datepicker td span.active.disabled:hover.disabled, .datepicker table tr td.active.disabled:hover.disabled,
.datepicker td span.active[disabled], .datepicker table tr td.active[disabled],
.datepicker td span.active:hover[disabled], .datepicker table tr td.active:hover[disabled],
.datepicker td span.active.disabled[disabled], .datepicker table tr td.active.disabled[disabled],
.datepicker td span.active.disabled:hover[disabled] { .datepicker table tr td.active.disabled:hover[disabled] {
background-color: #0044cc; background-color: #0044cc;
} }
.datepicker td span.active:active, .datepicker table tr td.active:active,
.datepicker td span.active:hover:active, .datepicker table tr td.active:hover:active,
.datepicker td span.active.disabled:active, .datepicker table tr td.active.disabled:active,
.datepicker td span.active.disabled:hover:active, .datepicker table tr td.active.disabled:hover:active,
.datepicker td span.active.active, .datepicker table tr td.active.active,
.datepicker td span.active:hover.active, .datepicker table tr td.active:hover.active,
.datepicker td span.active.disabled.active, .datepicker table tr td.active.disabled.active,
.datepicker td span.active.disabled:hover.active { .datepicker table tr td.active.disabled:hover.active {
background-color: #003399 \9; background-color: #003399 \9;
} }
.datepicker td span.old { .datepicker table tr td span {
display: block;
width: 23%;
height: 54px;
line-height: 54px;
float: left;
margin: 1%;
cursor: pointer;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
}
.datepicker table tr td span:hover {
background: #eeeeee;
}
.datepicker table tr td span.disabled,
.datepicker table tr td span.disabled:hover {
background: none;
color: #999999;
cursor: default;
}
.datepicker table tr td span.active,
.datepicker table tr td span.active:hover,
.datepicker table tr td span.active.disabled,
.datepicker table tr td span.active.disabled:hover {
background-color: #006dcc;
background-image: -moz-linear-gradient(top, #0088cc, #0044cc);
background-image: -ms-linear-gradient(top, #0088cc, #0044cc);
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc));
background-image: -webkit-linear-gradient(top, #0088cc, #0044cc);
background-image: -o-linear-gradient(top, #0088cc, #0044cc);
background-image: linear-gradient(top, #0088cc, #0044cc);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0044cc', GradientType=0);
border-color: #0044cc #0044cc #002a80;
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
color: #fff;
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
}
.datepicker table tr td span.active:hover,
.datepicker table tr td span.active:hover:hover,
.datepicker table tr td span.active.disabled:hover,
.datepicker table tr td span.active.disabled:hover:hover,
.datepicker table tr td span.active:active,
.datepicker table tr td span.active:hover:active,
.datepicker table tr td span.active.disabled:active,
.datepicker table tr td span.active.disabled:hover:active,
.datepicker table tr td span.active.active,
.datepicker table tr td span.active:hover.active,
.datepicker table tr td span.active.disabled.active,
.datepicker table tr td span.active.disabled:hover.active,
.datepicker table tr td span.active.disabled,
.datepicker table tr td span.active:hover.disabled,
.datepicker table tr td span.active.disabled.disabled,
.datepicker table tr td span.active.disabled:hover.disabled,
.datepicker table tr td span.active[disabled],
.datepicker table tr td span.active:hover[disabled],
.datepicker table tr td span.active.disabled[disabled],
.datepicker table tr td span.active.disabled:hover[disabled] {
background-color: #0044cc;
}
.datepicker table tr td span.active:active,
.datepicker table tr td span.active:hover:active,
.datepicker table tr td span.active.disabled:active,
.datepicker table tr td span.active.disabled:hover:active,
.datepicker table tr td span.active.active,
.datepicker table tr td span.active:hover.active,
.datepicker table tr td span.active.disabled.active,
.datepicker table tr td span.active.disabled:hover.active {
background-color: #003399 \9;
}
.datepicker table tr td span.old {
color: #999999; color: #999999;
} }
.datepicker th.switch { .datepicker th.switch {

@ -36,51 +36,45 @@
this.element = $(element); this.element = $(element);
this.language = options.language||this.element.data('date-language')||"en"; this.language = options.language||this.element.data('date-language')||"en";
this.language = this.language in dates ? this.language : "en"; this.language = this.language in dates ? this.language : "en";
this.isRTL = dates[this.language].rtl||false;
this.format = DPGlobal.parseFormat(options.format||this.element.data('date-format')||'mm/dd/yyyy'); this.format = DPGlobal.parseFormat(options.format||this.element.data('date-format')||'mm/dd/yyyy');
this.isInline = false; this.isInline = false;
this.isInput = this.element.is('input'); this.isInput = this.element.is('input');
this.component = this.element.is('.date') ? this.element.find('.add-on') : false; this.component = this.element.is('.date') ? this.element.find('.add-on') : false;
this.hasInput = this.component && this.element.find('input').length; this.hasInput = this.component && this.element.find('input').length;
if(this.component && this.component.length === 0) if(this.component && this.component.length === 0)
this.component = false; this.component = false;
if (this.isInput) { //single input this._attachEvents();
this.element.on({
focus: $.proxy(this.show, this),
keyup: $.proxy(this.update, this),
keydown: $.proxy(this.keydown, this)
});
} else if(this.component && this.hasInput) { //component: input + button
// For components that are not readonly, allow keyboard nav
this.element.find('input').on({
focus: $.proxy(this.show, this),
keyup: $.proxy(this.update, this),
keydown: $.proxy(this.keydown, this)
});
this.component.on('click', $.proxy(this.show, this)); this.forceParse = true;
} else if(this.element.is('div')) { //inline datepicker if ('forceParse' in options) {
this.isInline = true; this.forceParse = options.forceParse;
} else { } else if ('dateForceParse' in this.element.data()) {
this.element.on('click', $.proxy(this.show, this)); this.forceParse = this.element.data('date-force-parse');
} }
this.picker = $(DPGlobal.template) this.picker = $(DPGlobal.template)
.appendTo(this.isInline ? this.element : 'body') .appendTo(this.isInline ? this.element : 'body')
.on({ .on({
click: $.proxy(this.click, this), click: $.proxy(this.click, this),
mousedown: $.proxy(this.mousedown, this) mousedown: $.proxy(this.mousedown, this)
}); });
if(this.isInline) {
this.picker.addClass('datepicker-inline');
} else {
this.picker.addClass('dropdown-menu');
}
if(this.isInline) {
this.picker.addClass('datepicker-inline');
} else {
this.picker.addClass('datepicker-dropdown dropdown-menu');
}
if (this.isRTL){
this.picker.addClass('datepicker-rtl');
this.picker.find('.prev i, .next i')
.toggleClass('icon-arrow-left icon-arrow-right');
}
$(document).on('mousedown', function (e) { $(document).on('mousedown', function (e) {
// Clicked outside the datepicker, hide it // Clicked outside the datepicker, hide it
if ($(e.target).closest('.datepicker').length == 0) { if ($(e.target).closest('.datepicker').length === 0) {
that.hide(); that.hide();
} }
}); });
@ -99,6 +93,7 @@
this.keyboardNavigation = this.element.data('date-keyboard-navigation'); this.keyboardNavigation = this.element.data('date-keyboard-navigation');
} }
this.viewMode = this.startViewMode = 0;
switch(options.startView || this.element.data('date-start-view')){ switch(options.startView || this.element.data('date-start-view')){
case 2: case 2:
case 'decade': case 'decade':
@ -108,11 +103,6 @@
case 'year': case 'year':
this.viewMode = this.startViewMode = 1; this.viewMode = this.startViewMode = 1;
break; break;
case 0:
case 'month':
default:
this.viewMode = this.startViewMode = 0;
break;
} }
this.todayBtn = (options.todayBtn||this.element.data('date-today-btn')||false); this.todayBtn = (options.todayBtn||this.element.data('date-today-btn')||false);
@ -122,21 +112,73 @@
this.weekEnd = ((this.weekStart + 6) % 7); this.weekEnd = ((this.weekStart + 6) % 7);
this.startDate = -Infinity; this.startDate = -Infinity;
this.endDate = Infinity; this.endDate = Infinity;
this.daysOfWeekDisabled = [];
this.setStartDate(options.startDate||this.element.data('date-startdate')); this.setStartDate(options.startDate||this.element.data('date-startdate'));
this.setEndDate(options.endDate||this.element.data('date-enddate')); this.setEndDate(options.endDate||this.element.data('date-enddate'));
this.setDaysOfWeekDisabled(options.daysOfWeekDisabled||this.element.data('date-days-of-week-disabled'));
this.fillDow(); this.fillDow();
this.fillMonths(); this.fillMonths();
this.update(); this.update();
this.showMode(); this.showMode();
if(this.isInline) { if(this.isInline) {
this.show(); this.show();
} }
}; };
Datepicker.prototype = { Datepicker.prototype = {
constructor: Datepicker, constructor: Datepicker,
_events: [],
_attachEvents: function(){
this._detachEvents();
if (this.isInput) { // single input
this._events = [
[this.element, {
focus: $.proxy(this.show, this),
keyup: $.proxy(this.update, this),
keydown: $.proxy(this.keydown, this)
}]
];
}
else if (this.component && this.hasInput){ // component: input + button
this._events = [
// For components that are not readonly, allow keyboard nav
[this.element.find('input'), {
focus: $.proxy(this.show, this),
keyup: $.proxy(this.update, this),
keydown: $.proxy(this.keydown, this)
}],
[this.component, {
click: $.proxy(this.show, this)
}]
];
}
else if (this.element.is('div')) { // inline datepicker
this.isInline = true;
}
else {
this._events = [
[this.element, {
click: $.proxy(this.show, this)
}]
];
}
for (var i=0, el, ev; i<this._events.length; i++){
el = this._events[i][0];
ev = this._events[i][1];
el.on(ev);
}
},
_detachEvents: function(){
for (var i=0, el, ev; i<this._events.length; i++){
el = this._events[i][0];
ev = this._events[i][1];
el.off(ev);
}
this._events = [];
},
show: function(e) { show: function(e) {
this.picker.show(); this.picker.show();
this.height = this.component ? this.component.outerHeight() : this.element.outerHeight(); this.height = this.component ? this.component.outerHeight() : this.element.outerHeight();
@ -154,7 +196,7 @@
}, },
hide: function(e){ hide: function(e){
if(this.isInline) return; if(this.isInline) return;
this.picker.hide(); this.picker.hide();
$(window).off('resize', this.place); $(window).off('resize', this.place);
this.viewMode = this.startViewMode; this.viewMode = this.startViewMode;
@ -162,7 +204,14 @@
if (!this.isInput) { if (!this.isInput) {
$(document).off('mousedown', this.hide); $(document).off('mousedown', this.hide);
} }
if (e && e.currentTarget.value)
if (
this.forceParse &&
(
this.isInput && this.element.val() ||
this.hasInput && this.element.find('input').val()
)
)
this.setValue(); this.setValue();
this.element.trigger({ this.element.trigger({
type: 'hide', type: 'hide',
@ -170,9 +219,15 @@
}); });
}, },
remove: function() {
this._detachEvents();
this.picker.remove();
delete this.element.data().datepicker;
},
getDate: function() { getDate: function() {
var d = this.getUTCDate(); var d = this.getUTCDate();
return new Date(d.getTime() + (d.getTimezoneOffset()*60000)) return new Date(d.getTime() + (d.getTimezoneOffset()*60000));
}, },
getUTCDate: function() { getUTCDate: function() {
@ -200,10 +255,10 @@
} }
}, },
getFormattedDate: function(format) { getFormattedDate: function(format) {
if(format == undefined) format = this.format; if(format == undefined) format = this.format;
return DPGlobal.formatDate(this.date, format, this.language); return DPGlobal.formatDate(this.date, format, this.language);
}, },
setStartDate: function(startDate){ setStartDate: function(startDate){
this.startDate = startDate||-Infinity; this.startDate = startDate||-Infinity;
@ -223,8 +278,20 @@
this.updateNavArrows(); this.updateNavArrows();
}, },
setDaysOfWeekDisabled: function(daysOfWeekDisabled){
this.daysOfWeekDisabled = daysOfWeekDisabled||[];
if (!$.isArray(this.daysOfWeekDisabled)) {
this.daysOfWeekDisabled = this.daysOfWeekDisabled.split(/,\s*/);
}
this.daysOfWeekDisabled = $.map(this.daysOfWeekDisabled, function (d) {
return parseInt(d, 10);
});
this.update();
this.updateNavArrows();
},
place: function(){ place: function(){
if(this.isInline) return; if(this.isInline) return;
var zIndex = parseInt(this.element.parents().filter(function() { var zIndex = parseInt(this.element.parents().filter(function() {
return $(this).css('z-index') != 'auto'; return $(this).css('z-index') != 'auto';
}).first().css('z-index'))+10; }).first().css('z-index'))+10;
@ -237,18 +304,19 @@
}, },
update: function(){ update: function(){
var date, fromArgs = false; var date, fromArgs = false;
if(arguments && arguments.length && (typeof arguments[0] === 'string' || arguments[0] instanceof Date)) { if(arguments && arguments.length && (typeof arguments[0] === 'string' || arguments[0] instanceof Date)) {
date = arguments[0]; date = arguments[0];
fromArgs = true; fromArgs = true;
} else { } else {
date = this.isInput ? this.element.prop('value') : this.element.data('date') || this.element.find('input').prop('value'); date = this.isInput ? this.element.prop('value') : this.element.data('date') || this.element.find('input').prop('value');
} }
this.date = DPGlobal.parseDate(date, this.format, this.language); this.date = DPGlobal.parseDate(date, this.format, this.language);
if(fromArgs) this.setValue(); if(fromArgs) this.setValue();
var oldViewDate = this.viewDate;
if (this.date < this.startDate) { if (this.date < this.startDate) {
this.viewDate = new Date(this.startDate); this.viewDate = new Date(this.startDate);
} else if (this.date > this.endDate) { } else if (this.date > this.endDate) {
@ -256,12 +324,19 @@
} else { } else {
this.viewDate = new Date(this.date); this.viewDate = new Date(this.date);
} }
if (oldViewDate && oldViewDate.getTime() != this.viewDate.getTime()){
this.element.trigger({
type: 'changeDate',
date: this.viewDate
});
}
this.fill(); this.fill();
}, },
fillDow: function(){ fillDow: function(){
var dowCnt = this.weekStart; var dowCnt = this.weekStart,
var html = '<tr>'; html = '<tr>';
while (dowCnt < this.weekStart + 7) { while (dowCnt < this.weekStart + 7) {
html += '<th class="dow">'+dates[this.language].daysMin[(dowCnt++)%7]+'</th>'; html += '<th class="dow">'+dates[this.language].daysMin[(dowCnt++)%7]+'</th>';
} }
@ -270,8 +345,8 @@
}, },
fillMonths: function(){ fillMonths: function(){
var html = ''; var html = '',
var i = 0 i = 0;
while (i < 12) { while (i < 12) {
html += '<span class="month">'+dates[this.language].monthsShort[i++]+'</span>'; html += '<span class="month">'+dates[this.language].monthsShort[i++]+'</span>';
} }
@ -324,7 +399,8 @@
if (currentDate && prevMonth.valueOf() == currentDate) { if (currentDate && prevMonth.valueOf() == currentDate) {
clsName += ' active'; clsName += ' active';
} }
if (prevMonth.valueOf() < this.startDate || prevMonth.valueOf() > this.endDate) { if (prevMonth.valueOf() < this.startDate || prevMonth.valueOf() > this.endDate ||
$.inArray(prevMonth.getUTCDay(), this.daysOfWeekDisabled) !== -1) {
clsName += ' disabled'; clsName += ' disabled';
} }
html.push('<td class="day'+clsName+'">'+prevMonth.getUTCDate() + '</td>'); html.push('<td class="day'+clsName+'">'+prevMonth.getUTCDate() + '</td>');
@ -465,7 +541,7 @@
var year = this.viewDate.getUTCFullYear(), var year = this.viewDate.getUTCFullYear(),
month = this.viewDate.getUTCMonth(); month = this.viewDate.getUTCMonth();
if (target.is('.old')) { if (target.is('.old')) {
if (month == 0) { if (month === 0) {
month = 11; month = 11;
year -= 1; year -= 1;
} else { } else {
@ -505,8 +581,8 @@
} }
if (element) { if (element) {
element.change(); element.change();
if (this.autoclose) { if (this.autoclose && (!which || which == 'date')) {
this.hide(); this.hide();
} }
} }
}, },
@ -652,16 +728,16 @@
if (dir) { if (dir) {
this.viewMode = Math.max(0, Math.min(2, this.viewMode + dir)); this.viewMode = Math.max(0, Math.min(2, this.viewMode + dir));
} }
/* /*
vitalets: fixing bug of very special conditions: vitalets: fixing bug of very special conditions:
jquery 1.7.1 + webkit + show inline datepicker in bootstrap popover. jquery 1.7.1 + webkit + show inline datepicker in bootstrap popover.
Method show() does not set display css correctly and datepicker is not shown. Method show() does not set display css correctly and datepicker is not shown.
Changed to .css('display', 'block') solve the problem. Changed to .css('display', 'block') solve the problem.
See https://github.com/vitalets/x-editable/issues/37 See https://github.com/vitalets/x-editable/issues/37
In jquery 1.7.2+ everything works fine. In jquery 1.7.2+ everything works fine.
*/ */
//this.picker.find('>div').hide().filter('.datepicker-'+DPGlobal.modes[this.viewMode].clsName).show(); //this.picker.find('>div').hide().filter('.datepicker-'+DPGlobal.modes[this.viewMode].clsName).show();
this.picker.find('>div').hide().filter('.datepicker-'+DPGlobal.modes[this.viewMode].clsName).css('display', 'block'); this.picker.find('>div').hide().filter('.datepicker-'+DPGlobal.modes[this.viewMode].clsName).css('display', 'block');
this.updateNavArrows(); this.updateNavArrows();
} }
@ -695,7 +771,7 @@
monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
today: "Today" today: "Today"
} }
} };
var DPGlobal = { var DPGlobal = {
modes: [ modes: [
@ -720,8 +796,8 @@
getDaysInMonth: function (year, month) { getDaysInMonth: function (year, month) {
return [31, (DPGlobal.isLeapYear(year) ? 29 : 28), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month] return [31, (DPGlobal.isLeapYear(year) ? 29 : 28), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month]
}, },
validParts: /dd?|mm?|MM?|yy(?:yy)?/g, validParts: /dd?|DD?|mm?|MM?|yy(?:yy)?/g,
nonpunctuation: /[^ -\/:-@\[-`{-~\t\n\r]+/g, nonpunctuation: /[^ -\/:-@\[\u3400-\u9fff-`{-~\t\n\r]+/g,
parseFormat: function(format){ parseFormat: function(format){
// IE treats \0 as a string end in inputs (truncating the value), // IE treats \0 as a string end in inputs (truncating the value),
// so it's a bad format delimiter, anyway // so it's a bad format delimiter, anyway
@ -781,10 +857,18 @@
setters_map['M'] = setters_map['MM'] = setters_map['mm'] = setters_map['m']; setters_map['M'] = setters_map['MM'] = setters_map['mm'] = setters_map['m'];
setters_map['dd'] = setters_map['d']; setters_map['dd'] = setters_map['d'];
date = UTCDate(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0); date = UTCDate(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0);
if (parts.length == format.parts.length) { var fparts = format.parts.slice();
for (var i=0, cnt = format.parts.length; i < cnt; i++) { // Remove noop parts
if (parts.length != fparts.length) {
fparts = $(fparts).filter(function(i,p){
return $.inArray(p, setters_order) !== -1;
}).toArray();
}
// Process remainder
if (parts.length == fparts.length) {
for (var i=0, cnt = fparts.length; i < cnt; i++) {
val = parseInt(parts[i], 10); val = parseInt(parts[i], 10);
part = format.parts[i]; part = fparts[i];
if (isNaN(val)) { if (isNaN(val)) {
switch(part) { switch(part) {
case 'MM': case 'MM':
@ -809,7 +893,7 @@
} }
for (var i=0, s; i<setters_order.length; i++){ for (var i=0, s; i<setters_order.length; i++){
s = setters_order[i]; s = setters_order[i];
if (s in parsed) if (s in parsed && !isNaN(parsed[s]))
setters_map[s](date, parsed[s]) setters_map[s](date, parsed[s])
} }
} }
@ -818,6 +902,8 @@
formatDate: function(date, format, language){ formatDate: function(date, format, language){
var val = { var val = {
d: date.getUTCDate(), d: date.getUTCDate(),
D: dates[language].daysShort[date.getUTCDay()],
DD: dates[language].days[date.getUTCDay()],
m: date.getUTCMonth() + 1, m: date.getUTCMonth() + 1,
M: dates[language].monthsShort[date.getUTCMonth()], M: dates[language].monthsShort[date.getUTCMonth()],
MM: dates[language].months[date.getUTCMonth()], MM: dates[language].months[date.getUTCMonth()],
@ -868,7 +954,7 @@
'</table>'+ '</table>'+
'</div>'+ '</div>'+
'</div>'; '</div>';
$.fn.datepicker.DPGlobal = DPGlobal; $.fn.datepicker.DPGlobal = DPGlobal;
}( window.jQuery ); }( window.jQuery );

@ -1,14 +0,0 @@
/**
* Bulgarian translation for bootstrap-datepicker
* Apostol Apostolov <apostol.s.apostolov@gmail.com>
*/
;(function($){
$.fn.datepicker.dates['bg'] = {
days: ["Неделя", "Понеделник", "Вторник", "Сряда", "Четвъртък", "Петък", "Събота", "Неделя"],
daysShort: ["Нед", "Пон", "Вто", "Сря", "Чет", "Пет", "Съб", "Нед"],
daysMin: ["Н", "П", "В", "С", "Ч", "П", "С", "Н"],
months: ["Януари", "Февруари", "Март", "Април", "Май", "Юни", "Юли", "Август", "Септември", "Октомври", "Ноември", "Декември"],
monthsShort: ["Ян", "Фев", "Мар", "Апр", "Май", "Юни", "Юли", "Авг", "Сеп", "Окт", "Ное", "Дек"],
today: "днес"
};
}(jQuery));

@ -1,13 +0,0 @@
/**
* Brazilian translation for bootstrap-datepicker
* Cauan Cabral <cauan@radig.com.br>
*/
;(function($){
$.fn.datepicker.dates['br'] = {
days: ["Domingo", "Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sábado", "Domingo"],
daysShort: ["Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sáb", "Dom"],
daysMin: ["Do", "Se", "Te", "Qu", "Qu", "Se", "Sa", "Do"],
months: ["Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"],
monthsShort: ["Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez"]
};
}(jQuery));

@ -1,14 +0,0 @@
/**
* Czech translation for bootstrap-datepicker
* Matěj Koubík <matej@koubik.name>
*/
;(function($){
$.fn.datepicker.dates['cs'] = {
days: ["Neděle", "Pondělí", "Úterý", "Středa", "Čtvrtek", "Pátek", "Sobota", "Neděle"],
daysShort: ["Ne", "Po", "Út", "St", "Čt", "Pá", "So", "Ne"],
daysMin: ["N", "P", "Ú", "St", "Č", "P", "So", "N"],
months: ["Leden", "Únor", "Březen", "Duben", "Květen", "Červen", "Červenec", "Srpen", "Září", "Říjen", "Listopad", "Prosinec"],
monthsShort: ["Led", "Úno", "Bře", "Dub", "Kvě", "Čer", "Čnc", "Srp", "Zář", "Říj", "Lis", "Pro"],
today: "Dnes"
};
}(jQuery));

@ -1,14 +0,0 @@
/**
* Danish translation for bootstrap-datepicker
* Christian Pedersen <http://github.com/chripede>
*/
;(function($){
$.fn.datepicker.dates['da'] = {
days: ["Søndag", "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag", "Søndag"],
daysShort: ["Søn", "Man", "Tir", "Ons", "Tor", "Fre", "Lør", "Søn"],
daysMin: ["Sø", "Ma", "Ti", "On", "To", "Fr", "Lø", "Sø"],
months: ["Januar", "Februar", "Marts", "April", "Maj", "Juni", "Juli", "August", "September", "Oktober", "November", "December"],
monthsShort: ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"],
today: "I Dag"
};
}(jQuery));

@ -1,14 +0,0 @@
/**
* German translation for bootstrap-datepicker
* Sam Zurcher <sam@orelias.ch>
*/
;(function($){
$.fn.datepicker.dates['de'] = {
days: ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag", "Sonntag"],
daysShort: ["Son", "Mon", "Die", "Mit", "Don", "Fre", "Sam", "Son"],
daysMin: ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa", "So"],
months: ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"],
monthsShort: ["Jan", "Feb", "Mär", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"],
today: "Heute"
};
}(jQuery));

@ -1,14 +0,0 @@
/**
* Spanish translation for bootstrap-datepicker
* Bruno Bonamin <bruno.bonamin@gmail.com>
*/
;(function($){
$.fn.datepicker.dates['es'] = {
days: ["Domingo", "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado", "Domingo"],
daysShort: ["Dom", "Lun", "Mar", "Mié", "Jue", "Vie", "Sáb", "Dom"],
daysMin: ["Do", "Lu", "Ma", "Mi", "Ju", "Vi", "Sa", "Do"],
months: ["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"],
monthsShort: ["Ene", "Feb", "Mar", "Abr", "May", "Jun", "Jul", "Ago", "Sep", "Oct", "Nov", "Dic"],
today: "Hoy"
};
}(jQuery));

@ -1,14 +0,0 @@
/**
* Finnish translation for bootstrap-datepicker
* Jaakko Salonen <https://github.com/jsalonen>
*/
;(function($){
$.fn.datepicker.dates['fi'] = {
days: ["sunnuntai", "maanantai", "tiistai", "keskiviikko", "torstai", "perjantai", "lauantai", "sunnuntai"],
daysShort: ["sun", "maa", "tii", "kes", "tor", "per", "lau", "sun"],
daysMin: ["su", "ma", "ti", "ke", "to", "pe", "la", "su"],
months: ["tammikuu", "helmikuu", "maaliskuu", "huhtikuu", "toukokuu", "kesäkuu", "heinäkuu", "elokuu", "syyskuu", "lokakuu", "marraskuu", "joulukuu"],
monthsShort: ["tam", "hel", "maa", "huh", "tou", "kes", "hei", "elo", "syy", "lok", "mar", "jou"],
today: "tänään"
};
}(jQuery));

@ -1,14 +0,0 @@
/**
* French translation for bootstrap-datepicker
* Nico Mollet <nico.mollet@gmail.com>
*/
;(function($){
$.fn.datepicker.dates['fr'] = {
days: ["Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi", "Dimanche"],
daysShort: ["Dim", "Lun", "Mar", "Mer", "Jeu", "Ven", "Sam", "Dim"],
daysMin: ["D", "L", "Ma", "Me", "J", "V", "S", "D"],
months: ["Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre"],
monthsShort: ["Jan", "Fev", "Mar", "Avr", "Mai", "Jui", "Jul", "Aou", "Sep", "Oct", "Nov", "Dec"],
today: "Aujourd'hui"
};
}(jQuery));

@ -1,13 +0,0 @@
/**
* Bahasa translation for bootstrap-datepicker
* Azwar Akbar <azwar.akbar@gmail.com>
*/
;(function($){
$.fn.datepicker.dates['id'] = {
days: ["Minggu", "Senin", "Selasa", "Rabu", "Kamis", "Jumat", "Sabtu", "Minggu"],
daysShort: ["Mgu", "Sen", "Sel", "Rab", "Kam", "Jum", "Sab", "Mgu"],
daysMin: ["Mg", "Sn", "Sl", "Ra", "Ka", "Ju", "Sa", "Mg"],
months: ["Januari", "Februari", "Maret", "April", "Mei", "Juni", "Juli", "Agustus", "September", "Oktober", "November", "Desember"],
monthsShort: ["Jan", "Feb", "Mar", "Apr", "Mei", "Jun", "Jul", "Ags", "Sep", "Okt", "Nov", "Des"]
};
}(jQuery));

@ -1,14 +0,0 @@
/**
* Icelandic translation for bootstrap-datepicker
* Hinrik Örn Sigurðsson <hinrik.sig@gmail.com>
*/
;(function($){
$.fn.datepicker.dates['is'] = {
days: ["Sunnudagur", "Mánudagur", "Þriðjudagur", "Miðvikudagur", "Fimmtudagur", "Föstudagur", "Laugardagur", "Sunnudagur"],
daysShort: ["Sun", "Mán", "Þri", "Mið", "Fim", "Fös", "Lau", "Sun"],
daysMin: ["Su", "Má", "Þr", "Mi", "Fi", "Fö", "La", "Su"],
months: ["Janúar", "Febrúar", "Mars", "Apríl", "Maí", "Júní", "Júlí", "Ágúst", "September", "Október", "Nóvember", "Desember"],
monthsShort: ["Jan", "Feb", "Mar", "Apr", "Maí", "Jún", "Júl", "Ágú", "Sep", "Okt", "Nóv", "Des"],
today: "Í Dag"
};
}(jQuery));

@ -1,14 +0,0 @@
/**
* Italian translation for bootstrap-datepicker
* Enrico Rubboli <rubboli@gmail.com>
*/
;(function($){
$.fn.datepicker.dates['it'] = {
days: ["Domenica", "Lunedi", "Martedi", "Mercoledi", "Giovedi", "Venerdi", "Sabato", "Domenica"],
daysShort: ["Dom", "Lun", "Mar", "Mer", "Gio", "Ven", "Sab", "Dom"],
daysMin: ["Do", "Lu", "Ma", "Me", "Gi", "Ve", "Sa", "Do"],
months: ["Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre"],
monthsShort: ["Gen", "Feb", "Mar", "Apr", "Mag", "Giu", "Lug", "Ago", "Set", "Ott", "Nov", "Dic"],
today: "Oggi"
};
}(jQuery));

@ -1,13 +0,0 @@
/**
* Japanese translation for bootstrap-datepicker
* Norio Suzuki <https://github.com/suzuki/>
*/
;(function($){
$.fn.datepicker.dates['ja'] = {
days: ["日曜", "月曜", "火曜", "水曜", "木曜", "金曜", "土曜", "日曜"],
daysShort: ["日", "月", "火", "水", "木", "金", "土", "日"],
daysMin: ["日", "月", "火", "水", "木", "金", "土", "日"],
months: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"],
monthsShort: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"]
};
}(jQuery));

@ -1,13 +0,0 @@
/**
* Korean translation for bootstrap-datepicker
* Gu Youn <http://github.com/guyoun>
*/
;(function($){
$.fn.datepicker.dates['kr'] = {
days: ["일요일", "월요일", "화요일", "수요일", "목요일", "금요일", "토요일", "일요일"],
daysShort: ["일", "월", "화", "수", "목", "금", "토", "일"],
daysMin: ["일", "월", "화", "수", "목", "금", "토", "일"],
months: ["1월", "2월", "3월", "4월", "5월", "6월", "7월", "8월", "9월", "10월", "11월", "12월"],
monthsShort: ["1월", "2월", "3월", "4월", "5월", "6월", "7월", "8월", "9월", "10월", "11월", "12월"],
};
}(jQuery));

@ -1,15 +0,0 @@
/**
* Lithuanian translation for bootstrap-datepicker
* Šarūnas Gliebus <ssharunas@yahoo.co.uk>
*/
;(function($){
$.fn.datepicker.dates['lt'] = {
days: ["Sekmadienis", "Pirmadienis", "Antradienis", "Trečiadienis", "Ketvirtadienis", "Penktadienis", "Šeštadienis", "Sekmadienis"],
daysShort: ["S", "Pr", "A", "T", "K", "Pn", "Š", "S"],
daysMin: ["Sk", "Pr", "An", "Tr", "Ke", "Pn", "Št", "Sk"],
months: ["Sausis", "Vasaris", "Kovas", "Balandis", "Gegužė", "Birželis", "Liepa", "Rugpjūtis", "Rugsėjis", "Spalis", "Lapkritis", "Gruodis"],
monthsShort: ["Sau", "Vas", "Kov", "Bal", "Geg", "Bir", "Lie", "Rugp", "Rugs", "Spa", "Lap", "Gru"],
weekStart: 1
};
}(jQuery));

@ -1,16 +0,0 @@
/**
* Latvian translation for bootstrap-datepicker
* Artis Avotins <artis@apit.lv>
*/
;(function($){
$.fn.datepicker.dates['lv'] = {
days: ["Svētdiena", "Pirmdiena", "Otrdiena", "Trešdiena", "Ceturtdiena", "Piektdiena", "Sestdiena", "Svētdiena"],
daysShort: ["Sv", "P", "O", "T", "C", "Pk", "S", "Sv"],
daysMin: ["Sv", "Pr", "Ot", "Tr", "Ce", "Pk", "St", "Sv"],
months: ["Janvāris", "Februāris", "Marts", "Aprīlis", "Maijs", "Jūnijs", "Jūlijs", "Augusts", "Septembris", "Oktobris", "Novembris", "Decembris"],
monthsShort: ["Jan", "Feb", "Mar", "Apr", "Mai", "Jūn", "Jūl", "Aug", "Sep", "Okt", "Nov", "Dec."],
today: "Šodien",
weekStart: 1
};
}(jQuery));

@ -1,14 +0,0 @@
/**
* Malay translation for bootstrap-datepicker
* Ateman Faiz <noorulfaiz@gmail.com>
*/
;(function($){
$.fn.datepicker.dates['ms'] = {
days: ["Ahad", "Isnin", "Selasa", "Rabu", "Khamis", "Jumaat", "Sabtu", "Ahad"],
daysShort: ["Aha", "Isn", "Sel", "Rab", "Kha", "Jum", "Sab", "Aha"],
daysMin: ["Ah", "Is", "Se", "Ra", "Kh", "Ju", "Sa", "Ah"],
months: ["Januari", "Februari", "Mac", "April", "Mei", "Jun", "Julai", "Ogos", "September", "Oktober", "November", "Disember"],
monthsShort: ["Jan", "Feb", "Mar", "Apr", "Mei", "Jun", "Jul", "Ogo", "Sep", "Okt", "Nov", "Dis"]
today: "Hari Ini"
};
}(jQuery));

@ -1,14 +0,0 @@
/**
* Norwegian (bokmål) translation for bootstrap-datepicker
* Fredrik Sundmyhr <http://github.com/fsundmyhr>
*/
;(function($){
$.fn.datepicker.dates['nb'] = {
days: ["Søndag", "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag", "Søndag"],
daysShort: ["Søn", "Man", "Tir", "Ons", "Tor", "Fre", "Lør", "Søn"],
daysMin: ["Sø", "Ma", "Ti", "On", "To", "Fr", "Lø", "Sø"],
months: ["Januar", "Februar", "Mars", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Desember"],
monthsShort: ["Jan", "Feb", "Mar", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Des"],
today: "I Dag"
};
}(jQuery));

@ -1,14 +0,0 @@
/**
* Dutch translation for bootstrap-datepicker
* Reinier Goltstein <mrgoltstein@gmail.com>
*/
;(function($){
$.fn.datepicker.dates['nl'] = {
days: ["Zondag", "Maandag", "Dinsdag", "Woensdag", "Donderdag", "Vrijdag", "Zaterdag", "Zondag"],
daysShort: ["Zo", "Ma", "Di", "Wo", "Do", "Vr", "Za", "Zo"],
daysMin: ["Zo", "Ma", "Di", "Wo", "Do", "Vr", "Za", "Zo"],
months: ["Januari", "Februari", "Maart", "April", "Mei", "Juni", "Juli", "Augustus", "September", "Oktober", "November", "December"],
monthsShort: ["Jan", "Feb", "Mrt", "Apr", "Mei", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"],
today: "Vandaag"
};
}(jQuery));

@ -1,14 +0,0 @@
/**
* Polish translation for bootstrap-datepicker
* Robert <rtpm@gazeta.pl>
*/
;(function($){
$.fn.datepicker.dates['pl'] = {
days: ["Niedziela", "Poniedziałek", "Wtorek", "Środa", "Czwartek", "Piątek", "Sobota", "Niedziela"],
daysShort: ["Nie", "Pn", "Wt", "Śr", "Czw", "Pt", "So", "Nie"],
daysMin: ["N", "Pn", "Wt", "Śr", "Cz", "Pt", "So", "N"],
months: ["Styczeń", "Luty", "Marzec", "Kwiecień", "Maj", "Czerwiec", "Lipiec", "Sierpień", "Wrzesień", "Październik", "Listopad", "Grudzień"],
monthsShort: ["Sty", "Lu", "Mar", "Kw", "Maj", "Cze", "Lip", "Sie", "Wrz", "Pa", "Lis", "Gru"],
today: "Dzisiaj"
};
}(jQuery));

@ -1,14 +0,0 @@
/**
* Brazilian translation for bootstrap-datepicker
* Cauan Cabral <cauan@radig.com.br>
*/
;(function($){
$.fn.datepicker.dates['pt-BR'] = {
days: ["Domingo", "Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sábado", "Domingo"],
daysShort: ["Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sáb", "Dom"],
daysMin: ["Do", "Se", "Te", "Qu", "Qu", "Se", "Sa", "Do"],
months: ["Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"],
monthsShort: ["Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez"],
today: "Hoje"
};
}(jQuery));

@ -1,14 +0,0 @@
/**
* Portuguese translation for bootstrap-datepicker
* Original code: Cauan Cabral <cauan@radig.com.br>
* Tiago Melo <tiago.blackcode@gmail.com>
*/
;(function($){
$.fn.datepicker.dates['pt'] = {
days: ["Domingo", "Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sábado", "Domingo"],
daysShort: ["Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sáb", "Dom"],
daysMin: ["Do", "Se", "Te", "Qu", "Qu", "Se", "Sa", "Do"],
months: ["Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"],
monthsShort: ["Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez"]
};
}(jQuery));

@ -1,14 +0,0 @@
/**
* Russian translation for bootstrap-datepicker
* Victor Taranenko <darwin@snowdale.com>
*/
;(function($){
$.fn.datepicker.dates['ru'] = {
days: ["Воскресенье", "Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота", "Воскресенье"],
daysShort: ["Вск", "Пнд", "Втр", "Срд", "Чтв", "Птн", "Суб", "Вск"],
daysMin: ["Вс", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб", "Вс"],
months: ["Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь"],
monthsShort: ["Янв", "Фев", "Мар", "Апр", "Май", "Июн", "Июл", "Авг", "Сен", "Окт", "Ноя", "Дек"],
today: "Сегодня"
};
}(jQuery));

@ -1,14 +0,0 @@
/**
* Slovene translation for bootstrap-datepicker
* Gregor Rudolf <gregor.rudolf@gmail.com>
*/
;(function($){
$.fn.datepicker.dates['sl'] = {
days: ["Nedelja", "Ponedeljek", "Torek", "Sreda", "Četrtek", "Petek", "Sobota", "Nedelja"],
daysShort: ["Ned", "Pon", "Tor", "Sre", "Čet", "Pet", "Sob", "Ned"],
daysMin: ["Ne", "Po", "To", "Sr", "Če", "Pe", "So", "Ne"],
months: ["Januar", "Februar", "Marec", "April", "Maj", "Junij", "Julij", "Avgust", "September", "Oktober", "November", "December"],
monthsShort: ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Avg", "Sep", "Okt", "Nov", "Dec"],
today: "Danes"
};
}(jQuery));

@ -1,14 +0,0 @@
/**
* Swedish translation for bootstrap-datepicker
* Patrik Ragnarsson <patrik@starkast.net>
*/
;(function($){
$.fn.datepicker.dates['sv'] = {
days: ["Söndag", "Måndag", "Tisdag", "Onsdag", "Torsdag", "Fredag", "Lördag", "Söndag"],
daysShort: ["Sön", "Mån", "Tis", "Ons", "Tor", "Fre", "Lör", "Sön"],
daysMin: ["Sö", "Må", "Ti", "On", "To", "Fr", "Lö", "Sö"],
months: ["Januari", "Februari", "Mars", "April", "Maj", "Juni", "Juli", "Augusti", "September", "Oktober", "November", "December"],
monthsShort: ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"],
today: "I Dag"
};
}(jQuery));

@ -1,14 +0,0 @@
/**
* Thai translation for bootstrap-datepicker
* Suchau Jiraprapot <seroz24@gmail.com>
*/
;(function($){
$.fn.datepicker.dates['th'] = {
days: ["อาทิตย์", "จันทร์", "อังคาร", "พุธ", "พฤหัส", "ศุกร์", "เสาร์", "อาทิตย์"],
daysShort: ["อา", "จ", "อ", "พ", "พฤ", "ศ", "ส", "อา"],
daysMin: ["อา", "จ", "อ", "พ", "พฤ", "ศ", "ส", "อา"],
months: ["มกราคม", "กุมภาพันธ์", "มีนาคม", "เมษายน", "พฤษภาคม", "มิถุนายน", "กรกฎาคม", "สิงหาคม", "กันยายน", "ตุลาคม", "พฤศจิกายน", "ธันวาคม"],
monthsShort: ["ม.ค.", "ก.พ.", "มี.ค.", "เม.ย.", "พ.ค.", "มิ.ย.", "ก.ค.", "ส.ค.", "ก.ย.", "ต.ค.", "พ.ย.", "ธ.ค."],
today: "วันนี้"
};
}(jQuery));

@ -1,15 +0,0 @@
/**
* Turkish translation for bootstrap-datepicker
* Serkan Algur <kaisercrazy_2@hotmail.com>
*/
;(function($){
$.fn.datepicker.dates['tr'] = {
days: ["Pazar", "Pazartesi", "Salı", "Çarşamba", "Perşembe", "Cuma", "Cumartesi", "Pazar"],
daysShort: ["Pz", "Pzt", "Sal", "Çrş", "Prş", "Cu", "Cts", "Pz"],
daysMin: ["Pz", "Pzt", "Sa", "Çr", "Pr", "Cu", "Ct", "Pz"],
months: ["Ocak", "Şubat", "Mart", "Nisan", "Mayıs", "Haziran", "Temmuz", "Ağustos", "Eylül", "Ekim", "Kasım", "Aralık"],
monthsShort: ["Oca", "Şub", "Mar", "Nis", "May", "Haz", "Tem", "Ağu", "Eyl", "Eki", "Kas", "Ara"],
today: "Bugün"
};
}(jQuery));

@ -1,14 +0,0 @@
/**
* Simplified Chinese translation for bootstrap-datepicker
* Yuan Cheung <advanimal@gmail.com>
*/
;(function($){
$.fn.datepicker.dates['zh-CN'] = {
days: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"],
daysShort: ["周日", "周一", "周二", "周三", "周四", "周五", "周六", "周日"],
daysMin: ["日", "一", "二", "三", "四", "五", "六", "日"],
months: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"],
monthsShort: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"],
today: "今日"
};
}(jQuery));

@ -1,13 +0,0 @@
/**
* Traditional Chinese translation for bootstrap-datepicker
* Rung-Sheng Jang <daniel@i-trend.co.cc>
*/
;(function($){
$.fn.datepicker.dates['zh-TW'] = {
days: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"],
daysShort: ["周日", "周一", "周二", "周三", "周四", "周五", "周六", "周日"],
daysMin: ["日", "一", "二", "三", "四", "五", "六", "日"],
months: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"],
monthsShort: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"]
};
}(jQuery));