Socket
Socket
Sign inDemoInstall

datepicker-bootstrap

Package Overview
Dependencies
1
Maintainers
1
Versions
9
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 1.8.0 to 1.9.11

css/checkbox.css

382

js/core.js
/*
* Gijgo JavaScript Library v1.8.0
* Gijgo JavaScript Library v1.9.11
* http://gijgo.com/
*
* Copyright 2014, 2017 gijgo.com
* Copyright 2014, 2018 gijgo.com
* Released under the MIT license

@@ -252,4 +252,10 @@ */

monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
monthShortNames: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
monthShortNames: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
weekDaysMin: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],
weekDaysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
weekDays: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
am: 'AM',
pm: 'PM',
ok: 'Ok',
cancel: 'Cancel'
}

@@ -259,3 +265,3 @@ },

/** */ parseDate: function (value, format, locale) {
var i, year = 0, month = 0, date = 0, hour = 0, minute = 0, dateParts, formatParts, result;
var i, year = 0, month = 0, date = 1, hour = 0, minute = 0, dateParts, formatParts, result;

@@ -304,4 +310,6 @@ if (value && typeof value === 'string') {

formatParts = format.split(/[\s,-\.//\:]+/),
separators = format.replace(/[shtdmyHTDMY]/g, '');
separators = format.split(/s+|M+|H+|h+|t+|T+|d+|m+|y+/);
separators = separators.splice(1, separators.length - 2);
for (i = 0; i < formatParts.length; i++) {

@@ -345,5 +353,11 @@ separator = (separators[i] || '');

break;
case 'dd' :
case 'dd':
result += gj.core.pad(date.getDate()) + separator;
break;
case 'ddd':
result += gj.core.messages[locale || 'en-us'].weekDaysShort[date.getDay()] + separator;
break;
case 'dddd':
result += gj.core.messages[locale || 'en-us'].weekDays[date.getDay()] + separator;
break;
case 'm' :

@@ -392,3 +406,357 @@ result += (date.getMonth() + 1) + separator;

return !!navigator.userAgent.match(/Trident/g) || !!navigator.userAgent.match(/MSIE/g);
},
setChildPosition: function (mainEl, childEl) {
var mainElRect = mainEl.getBoundingClientRect(),
mainElHeight = gj.core.height(mainEl, true),
childElHeight = gj.core.height(childEl, true),
mainElWidth = gj.core.width(mainEl, true),
childElWidth = gj.core.width(childEl, true),
scrollY = window.scrollY || window.pageYOffset || 0,
scrollX = window.scrollX || window.pageXOffset || 0;
if ((mainElRect.top + mainElHeight + childElHeight) > window.innerHeight && mainElRect.top > childElHeight) {
childEl.style.top = Math.round(mainElRect.top + scrollY - childElHeight - 3) + 'px';
} else {
childEl.style.top = Math.round(mainElRect.top + scrollY + mainElHeight + 3) + 'px';
}
if (mainElRect.left + childElWidth > document.body.clientWidth) {
childEl.style.left = Math.round(mainElRect.left + scrollX + mainElWidth - childElWidth) + 'px';
} else {
childEl.style.left = Math.round(mainElRect.left + scrollX) + 'px';
}
},
height: function (el, margin) {
var result, style = window.getComputedStyle(el);
if (style.boxSizing === 'border-box') { // border-box include padding and border within the height
result = parseInt(style.height, 10);
} else {
result = parseInt(style.height, 10);
result += parseInt(style.paddingTop || 0, 10) + parseInt(style.paddingBottom || 0, 10);
result += parseInt(style.borderTopWidth || 0, 10) + parseInt(style.borderBottomWidth || 0, 10);
}
if (margin) {
result += parseInt(style.marginTop || 0, 10) + parseInt(style.marginBottom || 0, 10);
}
return result;
},
width: function (el, margin) {
var result, style = window.getComputedStyle(el);
if (style.boxSizing === 'border-box') { // border-box include padding and border within the width
result = parseInt(style.width, 10);
} else {
result = parseInt(style.width, 10);
result += parseInt(style.paddingLeft || 0, 10) + parseInt(style.paddingRight || 0, 10);
result += parseInt(style.borderLeftWidth || 0, 10) + parseInt(style.borderRightWidth || 0, 10);
}
if (margin) {
result += parseInt(style.marginLeft || 0, 10) + parseInt(style.marginRight || 0, 10);
}
return result;
},
addClasses: function (el, classes) {
var i, arr;
if (classes) {
arr = classes.split(' ');
for (i = 0; i < arr.length; i++) {
el.classList.add(arr[i]);
}
}
},
position: function (el) {
var xScroll, yScroll, left = 0, top = 0,
height = gj.core.height(el),
width = gj.core.width(el);
while (el) {
if (el.tagName == "BODY") {
xScroll = el.scrollLeft || document.documentElement.scrollLeft;
yScroll = el.scrollTop || document.documentElement.scrollTop;
left += el.offsetLeft - xScroll; // + el.clientLeft);
top += el.offsetTop - yScroll; // + el.clientTop);
} else {
left += el.offsetLeft - el.scrollLeft; // + el.clientLeft;
top += el.offsetTop - el.scrollTop; // + el.clientTop;
}
el = el.offsetParent;
}
return { top: top, left: left, bottom: top + height, right: left + width };
},
setCaretAtEnd: function (elem) {
var elemLen;
if (elem) {
elemLen = elem.value.length;
if (document.selection) { // For IE Only
elem.focus();
var oSel = document.selection.createRange();
oSel.moveStart('character', -elemLen);
oSel.moveStart('character', elemLen);
oSel.moveEnd('character', 0);
oSel.select();
} else if (elem.selectionStart || elem.selectionStart == '0') { // Firefox/Chrome
elem.selectionStart = elemLen;
elem.selectionEnd = elemLen;
elem.focus();
}
}
},
getScrollParent: function (node) {
if (node == null) {
return null;
} else if (node.scrollHeight > node.clientHeight) {
return node;
} else {
return gj.core.getScrollParent(node.parentNode);
}
}
};
gj.picker = {
messages: {
'en-us': {
}
}
};
gj.picker.methods = {
initialize: function ($input, data, methods) {
var $calendar, $rightIcon,
$picker = methods.createPicker($input, data),
$wrapper = $input.parent('div[role="wrapper"]');
if (data.uiLibrary === 'bootstrap') {
$rightIcon = $('<span class="input-group-addon">' + data.icons.rightIcon + '</span>');
} else if (data.uiLibrary === 'bootstrap4') {
$rightIcon = $('<span class="input-group-append"><button class="btn btn-outline-secondary border-left-0" type="button">' + data.icons.rightIcon + '</button></span>');
} else {
$rightIcon = $(data.icons.rightIcon);
}
$rightIcon.attr('role', 'right-icon');
if ($wrapper.length === 0) {
$wrapper = $('<div role="wrapper" />').addClass(data.style.wrapper); // The css class needs to be added before the wrapping, otherwise doesn't work.
$input.wrap($wrapper);
} else {
$wrapper.addClass(data.style.wrapper);
}
$wrapper = $input.parent('div[role="wrapper"]');
data.width && $wrapper.css('width', data.width);
$input.val(data.value).addClass(data.style.input).attr('role', 'input');
data.fontSize && $input.css('font-size', data.fontSize);
if (data.uiLibrary === 'bootstrap' || data.uiLibrary === 'bootstrap4') {
if (data.size === 'small') {
$wrapper.addClass('input-group-sm');
$input.addClass('form-control-sm');
} else if (data.size === 'large') {
$wrapper.addClass('input-group-lg');
$input.addClass('form-control-lg');
}
} else {
if (data.size === 'small') {
$wrapper.addClass('small');
} else if (data.size === 'large') {
$wrapper.addClass('large');
}
}
$rightIcon.on('click', function (e) {
if ($picker.is(':visible')) {
$input.close();
} else {
$input.open();
}
});
$wrapper.append($rightIcon);
if (data.footer !== true) {
$input.on('blur', function () {
$input.timeout = setTimeout(function () {
$input.close();
}, 500);
});
$picker.mousedown(function () {
clearTimeout($input.timeout);
$input.focus();
return false;
});
$picker.on('click', function () {
clearTimeout($input.timeout);
$input.focus();
});
}
}
};
gj.picker.widget = function ($element, jsConfig) {
var self = this,
methods = gj.picker.methods;
self.destroy = function () {
return methods.destroy(this);
};
return $element;
};
gj.picker.widget.prototype = new gj.widget();
gj.picker.widget.constructor = gj.picker.widget;
gj.picker.widget.prototype.init = function (jsConfig, type, methods) {
gj.widget.prototype.init.call(this, jsConfig, type);
this.attr('data-' + type, 'true');
gj.picker.methods.initialize(this, this.data(), gj[type].methods);
return this;
};
gj.picker.widget.prototype.open = function (type) {
var data = this.data(),
$picker = $('body').find('[role="picker"][guid="' + this.attr('data-guid') + '"]');
$picker.show();
$picker.closest('div[role="modal"]').show();
if (data.modal) {
gj.core.center($picker);
} else {
gj.core.setChildPosition(this[0], $picker[0]);
this.focus();
}
clearTimeout(this.timeout);
gj[type].events.open(this);
return this;
};
gj.picker.widget.prototype.close = function (type) {
var $picker = $('body').find('[role="picker"][guid="' + this.attr('data-guid') + '"]');
$picker.hide();
$picker.closest('div[role="modal"]').hide();
gj[type].events.close(this);
return this;
};
gj.picker.widget.prototype.destroy = function (type) {
var data = this.data(),
$parent = this.parent(),
$picker = $('body').find('[role="picker"][guid="' + this.attr('data-guid') + '"]');
if (data) {
this.off();
if ($picker.parent('[role="modal"]').length > 0) {
$picker.unwrap();
}
$picker.remove();
this.removeData();
this.removeAttr('data-type').removeAttr('data-guid').removeAttr('data-' + type);
this.removeClass();
$parent.children('[role="right-icon"]').remove();
this.unwrap();
}
return this;
};
gj.core.messages['bg-bg'] = {
monthNames: ['Януари', 'Февруари', 'Март', 'Април', 'Май', 'Юни', 'Юли', 'Август', 'Септември', 'Октомври', 'Ноември', 'Декември'],
monthShortNames: ['Яну', 'Фев', 'Мар', 'Апр', 'Май', 'Юни', 'Юли', 'Авг', 'Сеп', 'ОКт', 'Ное', 'Дек'],
weekDaysMin: ['Н', 'П', 'В', 'С', 'Ч', 'П', 'С'],
weekDaysShort: ['Нед', 'Пон', 'Вто', 'Сря', 'Чет', 'Пет', 'Съб'],
weekDays: ['Неделя', 'Понеделник', 'Вторник', 'Сряда', 'Четвъртък', 'Петък', 'Събота'],
am: 'AM',
pm: 'PM',
ok: 'ОК',
cancel: 'Отказ'
};
gj.core.messages['fr-fr'] = {
monthNames: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'],
monthShortNames: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'],
weekDaysMin: ['D', 'L', 'M', 'M', 'J', 'V', 'S'],
weekDaysShort: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'],
weekDays: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi'],
am: 'AM',
pm: 'PM',
ok: 'OK',
cancel: 'Annuler'
};
gj.core.messages['de-de'] = {
monthNames: ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'],
monthShortNames: ['Jan', 'Feb', 'Mär', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'],
weekDaysMin: ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'],
weekDaysShort: ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'],
weekDays: ['Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag'],
am: 'AM',
pm: 'PM',
ok: 'OK',
cancel: 'Abbrechen'
};
gj.core.messages['pt-br'] = {
monthNames: ['Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro'],
monthShortNames: ['Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun', 'Jul', 'Ago', 'Set', 'Out', 'Nov', 'Dez'],
weekDaysMin: ['D', 'S', 'T', 'Q', 'Q', 'S', 'S'],
weekDaysShort: ['Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sáb'],
weekDays: ['Domingo', 'Segunda-feira', 'Terça-feira', 'Quarta-feira', 'Quinta-feira', 'Sexta-feira', 'Sábado'],
am: 'AM',
pm: 'PM',
ok: 'OK',
cancel: 'Cancelar'
};
gj.core.messages['ru-ru'] = {
monthNames: ['Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'],
monthShortNames: ['Янв', 'Фев', 'Мар', 'Апр', 'Май', 'Июн', 'Июл', 'Авг', 'Сен', 'Окт', 'Ноя', 'Дек'],
weekDaysMin: ['Вс', 'Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб'],
weekDaysShort: ['вск', 'пнд', 'втр', 'срд', 'чтв', 'птн', 'сбт'],
weekDays: ['воскресенье', 'понедельник', 'вторник', 'среда', 'четверг', 'пятница', 'суббота'],
am: 'AM',
pm: 'PM',
ok: 'ОК',
cancel: 'Отмена'
};
gj.core.messages['es-es'] = {
monthNames: ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', 'julio', 'agosto', 'setiembre', 'octubre', 'noviembre', 'diciembre'],
monthShortNames: ['ene.', 'feb.', 'mar', 'abr.', 'may', 'jun', 'jul.', 'ago', 'set.', 'oct.', 'nov.', 'dic.'],
weekDaysMin: ['D', 'L', 'M', 'M', 'J', 'V', 'S'],
weekDaysShort: ['dom', 'lun', 'mar', 'mié', 'jue', 'vie', 'sáb'],
weekDays: ['domingo', 'lunes', 'martes', 'miércoles', 'jueves', 'viernes', 'sábado'],
am: 'AM',
pm: 'PM',
ok: 'OK',
cancel: 'Cancelar'
};
gj.core.messages['it-it'] = {
monthNames: ['gennaio', 'febbraio', 'marzo', 'aprile', 'maggio', 'giugno', 'luglio', 'agosto', 'settembre', 'ottobre', 'novembre', 'dicembre'],
monthShortNames: ['gen.', 'feb.', 'mar.', 'apr.', 'mag.', 'giu.', 'lug.', 'ago.', 'set.', 'ott.', 'nov.', 'dic.'],
weekDaysMin: ['Do', 'Lu', 'Ma', 'Me', 'Gi', 'Ve', 'Sa'],
weekDaysShort: ['Dom', 'Lun', 'Mar', 'Mer', 'Gio', 'Ven','Sab'],
weekDays: ['Domenica', 'Lunedì', 'Martedì', 'Mercoledì', 'Giovedì', 'Venerdì', 'Sabato'],
am: 'AM',
pm: 'PM',
ok: 'OK',
cancel: 'Annulla'
};
gj.core.messages['tr-tr'] = {
monthNames: ['ocak', 'şubat', 'mart', 'nisan', 'mayıs', 'haziran', 'temmuz', 'ağustos', 'eylül', 'ekim', 'kasım', 'aralık'],
monthShortNames: ['oca', 'şub', 'mar', 'nis', 'may', 'haz', 'tem', 'ağu', 'eyl', 'eki', 'kas', 'ara'],
weekDaysMin: ['P', 'S', 'Ç', 'P', 'C', 'C', 'P'],
weekDaysShort: ['pzt.', 'sl.', 'çar.', 'per.', 'cum.', 'cmt.', 'paz.'],
weekDays: ['pazartesi', 'salı', 'çarşamba', 'perşembe', 'cuma', 'cumartesi', 'pazar'],
am: 'AM',
pm: 'PM',
ok: 'Tamam',
cancel: 'İptal'
};

2

js/core.min.js

@@ -1,1 +0,1 @@

var gj={};gj.widget=function(){var a=this;a.xhr=null,a.generateGUID=function(){function a(){return Math.floor(65536*(1+Math.random())).toString(16).substring(1)}return a()+a()+"-"+a()+"-"+a()+"-"+a()+"-"+a()+a()+a()},a.mouseX=function(a){if(a){if(a.pageX)return a.pageX;if(a.clientX)return a.clientX+(document.documentElement.scrollLeft?document.documentElement.scrollLeft:document.body.scrollLeft);if(a.touches&&a.touches.length)return a.touches[0].pageX;if(a.changedTouches&&a.changedTouches.length)return a.changedTouches[0].pageX;if(a.originalEvent&&a.originalEvent.touches&&a.originalEvent.touches.length)return a.originalEvent.touches[0].pageX;if(a.originalEvent&&a.originalEvent.changedTouches&&a.originalEvent.changedTouches.length)return a.originalEvent.touches[0].pageX}return null},a.mouseY=function(a){if(a){if(a.pageY)return a.pageY;if(a.clientY)return a.clientY+(document.documentElement.scrollTop?document.documentElement.scrollTop:document.body.scrollTop);if(a.touches&&a.touches.length)return a.touches[0].pageY;if(a.changedTouches&&a.changedTouches.length)return a.changedTouches[0].pageY;if(a.originalEvent&&a.originalEvent.touches&&a.originalEvent.touches.length)return a.originalEvent.touches[0].pageY;if(a.originalEvent&&a.originalEvent.changedTouches&&a.originalEvent.changedTouches.length)return a.originalEvent.touches[0].pageY}return null}},gj.widget.prototype.init=function(a,b){var c,d,e;this.attr("data-type",b),d=$.extend(!0,{},this.getHTMLConfig()||{}),$.extend(!0,d,a||{}),e=this.getConfig(d,b),this.attr("data-guid",e.guid),this.data(e);for(c in e)gj[b].events.hasOwnProperty(c)&&(this.on(c,e[c]),delete e[c]);for(plugin in gj[b].plugins)gj[b].plugins.hasOwnProperty(plugin)&&gj[b].plugins[plugin].configure(this,e,d);return this},gj.widget.prototype.getConfig=function(a,b){var c,d,e,f;c=$.extend(!0,{},gj[b].config.base),d=a.hasOwnProperty("uiLibrary")?a.uiLibrary:c.uiLibrary,gj[b].config[d]&&$.extend(!0,c,gj[b].config[d]),e=a.hasOwnProperty("iconsLibrary")?a.iconsLibrary:c.iconsLibrary,gj[b].config[e]&&$.extend(!0,c,gj[b].config[e]);for(f in gj[b].plugins)gj[b].plugins.hasOwnProperty(f)&&($.extend(!0,c,gj[b].plugins[f].config.base),gj[b].plugins[f].config[d]&&$.extend(!0,c,gj[b].plugins[f].config[d]),gj[b].plugins[f].config[e]&&$.extend(!0,c,gj[b].plugins[f].config[e]));return $.extend(!0,c,a),c.guid||(c.guid=this.generateGUID()),c},gj.widget.prototype.getHTMLConfig=function(){var a=this.data(),b=this[0].attributes;return b.width&&(a.width=b.width.value),b.height&&(a.height=b.height.value),b.value&&(a.value=b.value.value),b.align&&(a.align=b.align.value),a&&a.source&&(a.dataSource=a.source,delete a.source),a},gj.widget.prototype.createDoneHandler=function(){var a=this;return function(b){"string"==typeof b&&JSON&&(b=JSON.parse(b)),gj[a.data("type")].methods.render(a,b)}},gj.widget.prototype.createErrorHandler=function(){return function(a){a&&a.statusText&&"abort"!==a.statusText&&alert(a.statusText)}},gj.widget.prototype.reload=function(a){var b,c,d=this.data(),e=this.data("type");return void 0===d.dataSource&&gj[e].methods.useHtmlDataSource(this,d),$.extend(d.params,a),$.isArray(d.dataSource)?(c=gj[e].methods.filter(this),gj[e].methods.render(this,c)):"string"==typeof d.dataSource?(b={url:d.dataSource,data:d.params},this.xhr&&this.xhr.abort(),this.xhr=$.ajax(b).done(this.createDoneHandler()).fail(this.createErrorHandler())):"object"==typeof d.dataSource&&(d.dataSource.data||(d.dataSource.data={}),$.extend(d.dataSource.data,d.params),b=$.extend(!0,{},d.dataSource),"json"===b.dataType&&"object"==typeof b.data&&(b.data=JSON.stringify(b.data)),b.success||(b.success=this.createDoneHandler()),b.error||(b.error=this.createErrorHandler()),this.xhr&&this.xhr.abort(),this.xhr=$.ajax(b)),this},gj.documentManager={events:{},subscribeForEvent:function(a,b,c){if(gj.documentManager.events[a]&&0!==gj.documentManager.events[a].length){if(gj.documentManager.events[a][b])throw"Event "+a+' for widget with guid="'+b+'" is already attached.';gj.documentManager.events[a].push({widgetId:b,callback:c})}else gj.documentManager.events[a]=[{widgetId:b,callback:c}],$(document).on(a,gj.documentManager.executeCallbacks)},executeCallbacks:function(a){var b=gj.documentManager.events[a.type];if(b)for(var c=0;c<b.length;c++)b[c].callback(a)},unsubscribeForEvent:function(a,b){var c=!1,d=gj.documentManager.events[a];if(d)for(var e=0;e<d.length;e++)d[e].widgetId===b&&(d.splice(e,1),c=!0,0===d.length&&($(document).off(a),delete gj.documentManager.events[a]));if(!c)throw'The "'+a+'" for widget with guid="'+b+"\" can't be removed."}},gj.core={messages:{"en-us":{monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthShortNames:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]}},parseDate:function(a,b,c){var d,e,f,g,h=0,i=0,j=0,k=0,l=0;if(a&&"string"==typeof a){if(/^\d+$/.test(a))g=new Date(a);else if(a.indexOf("/Date(")>-1)g=new Date(parseInt(a.substr(6),10));else if(a){for(e=a.split(/[\s,-\.\/\/\:]+/),f=b.split(/[\s,-\.\/\/\:]+/),d=0;d<f.length;d++)["d","dd"].indexOf(f[d])>-1?j=parseInt(e[d],10):["m","mm"].indexOf(f[d])>-1?i=parseInt(e[d],10)-1:"mmm"===f[d]?i=gj.core.messages[c||"en-us"].monthShortNames.indexOf(e[d]):"mmmm"===f[d]?i=gj.core.messages[c||"en-us"].monthNames.indexOf(e[d]):["yy","yyyy"].indexOf(f[d])>-1?(h=parseInt(e[d],10),"yy"===f[d]&&(h+=2e3)):["h","hh","H","HH"].indexOf(f[d])>-1?k=parseInt(e[d],10):["M","MM"].indexOf(f[d])>-1&&(l=parseInt(e[d],10));g=new Date(h,i,j,k,l)}}else"number"==typeof a?g=new Date(a):a instanceof Date&&(g=a);return g},formatDate:function(a,b,c){var d,e,f="",g=b.split(/[\s,-\.\/\/\:]+/),h=b.replace(/[shtdmyHTDMY]/g,"");for(i=0;i<g.length;i++)switch(d=h[i]||"",g[i]){case"s":f+=a.getSeconds()+d;break;case"ss":f+=gj.core.pad(a.getSeconds())+d;break;case"M":f+=a.getMinutes()+d;break;case"MM":f+=gj.core.pad(a.getMinutes())+d;break;case"H":f+=a.getHours()+d;break;case"HH":f+=gj.core.pad(a.getHours())+d;break;case"h":e=a.getHours()>12?a.getHours()%12:a.getHours(),f+=e+d;break;case"hh":e=a.getHours()>12?a.getHours()%12:a.getHours(),f+=gj.core.pad(e)+d;break;case"tt":f+=(a.getHours()>=12?"pm":"am")+d;break;case"TT":f+=(a.getHours()>=12?"PM":"AM")+d;break;case"d":f+=a.getDate()+d;break;case"dd":f+=gj.core.pad(a.getDate())+d;break;case"m":f+=a.getMonth()+1+d;break;case"mm":f+=gj.core.pad(a.getMonth()+1)+d;break;case"mmm":f+=gj.core.messages[c||"en-us"].monthShortNames[a.getMonth()]+d;break;case"mmmm":f+=gj.core.messages[c||"en-us"].monthNames[a.getMonth()]+d;break;case"yy":f+=a.getFullYear().toString().substr(2)+d;break;case"yyyy":f+=a.getFullYear()+d}return f},pad:function(a,b){for(a=String(a),b=b||2;a.length<b;)a="0"+a;return a},center:function(a){var b=$(window).width()/2-a.width()/2,c=$(window).height()/2-a.height()/2;a.css("position","absolute"),a.css("left",b>0?b:0),a.css("top",c>0?c:0)},isIE:function(){return!!navigator.userAgent.match(/Trident/g)||!!navigator.userAgent.match(/MSIE/g)}};
var gj={};gj.widget=function(){var a=this;a.xhr=null,a.generateGUID=function(){function a(){return Math.floor(65536*(1+Math.random())).toString(16).substring(1)}return a()+a()+"-"+a()+"-"+a()+"-"+a()+"-"+a()+a()+a()},a.mouseX=function(a){if(a){if(a.pageX)return a.pageX;if(a.clientX)return a.clientX+(document.documentElement.scrollLeft?document.documentElement.scrollLeft:document.body.scrollLeft);if(a.touches&&a.touches.length)return a.touches[0].pageX;if(a.changedTouches&&a.changedTouches.length)return a.changedTouches[0].pageX;if(a.originalEvent&&a.originalEvent.touches&&a.originalEvent.touches.length)return a.originalEvent.touches[0].pageX;if(a.originalEvent&&a.originalEvent.changedTouches&&a.originalEvent.changedTouches.length)return a.originalEvent.touches[0].pageX}return null},a.mouseY=function(a){if(a){if(a.pageY)return a.pageY;if(a.clientY)return a.clientY+(document.documentElement.scrollTop?document.documentElement.scrollTop:document.body.scrollTop);if(a.touches&&a.touches.length)return a.touches[0].pageY;if(a.changedTouches&&a.changedTouches.length)return a.changedTouches[0].pageY;if(a.originalEvent&&a.originalEvent.touches&&a.originalEvent.touches.length)return a.originalEvent.touches[0].pageY;if(a.originalEvent&&a.originalEvent.changedTouches&&a.originalEvent.changedTouches.length)return a.originalEvent.touches[0].pageY}return null}},gj.widget.prototype.init=function(a,b){var c,d,e;this.attr("data-type",b),d=$.extend(!0,{},this.getHTMLConfig()||{}),$.extend(!0,d,a||{}),e=this.getConfig(d,b),this.attr("data-guid",e.guid),this.data(e);for(c in e)gj[b].events.hasOwnProperty(c)&&(this.on(c,e[c]),delete e[c]);for(plugin in gj[b].plugins)gj[b].plugins.hasOwnProperty(plugin)&&gj[b].plugins[plugin].configure(this,e,d);return this},gj.widget.prototype.getConfig=function(a,b){var c,d,e,f;c=$.extend(!0,{},gj[b].config.base),d=a.hasOwnProperty("uiLibrary")?a.uiLibrary:c.uiLibrary,gj[b].config[d]&&$.extend(!0,c,gj[b].config[d]),e=a.hasOwnProperty("iconsLibrary")?a.iconsLibrary:c.iconsLibrary,gj[b].config[e]&&$.extend(!0,c,gj[b].config[e]);for(f in gj[b].plugins)gj[b].plugins.hasOwnProperty(f)&&($.extend(!0,c,gj[b].plugins[f].config.base),gj[b].plugins[f].config[d]&&$.extend(!0,c,gj[b].plugins[f].config[d]),gj[b].plugins[f].config[e]&&$.extend(!0,c,gj[b].plugins[f].config[e]));return $.extend(!0,c,a),c.guid||(c.guid=this.generateGUID()),c},gj.widget.prototype.getHTMLConfig=function(){var a=this.data(),b=this[0].attributes;return b.width&&(a.width=b.width.value),b.height&&(a.height=b.height.value),b.value&&(a.value=b.value.value),b.align&&(a.align=b.align.value),a&&a.source&&(a.dataSource=a.source,delete a.source),a},gj.widget.prototype.createDoneHandler=function(){var a=this;return function(b){"string"==typeof b&&JSON&&(b=JSON.parse(b)),gj[a.data("type")].methods.render(a,b)}},gj.widget.prototype.createErrorHandler=function(){return function(a){a&&a.statusText&&"abort"!==a.statusText&&alert(a.statusText)}},gj.widget.prototype.reload=function(a){var b,c,d=this.data(),e=this.data("type");return void 0===d.dataSource&&gj[e].methods.useHtmlDataSource(this,d),$.extend(d.params,a),$.isArray(d.dataSource)?(c=gj[e].methods.filter(this),gj[e].methods.render(this,c)):"string"==typeof d.dataSource?(b={url:d.dataSource,data:d.params},this.xhr&&this.xhr.abort(),this.xhr=$.ajax(b).done(this.createDoneHandler()).fail(this.createErrorHandler())):"object"==typeof d.dataSource&&(d.dataSource.data||(d.dataSource.data={}),$.extend(d.dataSource.data,d.params),b=$.extend(!0,{},d.dataSource),"json"===b.dataType&&"object"==typeof b.data&&(b.data=JSON.stringify(b.data)),b.success||(b.success=this.createDoneHandler()),b.error||(b.error=this.createErrorHandler()),this.xhr&&this.xhr.abort(),this.xhr=$.ajax(b)),this},gj.documentManager={events:{},subscribeForEvent:function(a,b,c){if(gj.documentManager.events[a]&&0!==gj.documentManager.events[a].length){if(gj.documentManager.events[a][b])throw"Event "+a+' for widget with guid="'+b+'" is already attached.';gj.documentManager.events[a].push({widgetId:b,callback:c})}else gj.documentManager.events[a]=[{widgetId:b,callback:c}],$(document).on(a,gj.documentManager.executeCallbacks)},executeCallbacks:function(a){var b=gj.documentManager.events[a.type];if(b)for(var c=0;c<b.length;c++)b[c].callback(a)},unsubscribeForEvent:function(a,b){var c=!1,d=gj.documentManager.events[a];if(d)for(var e=0;e<d.length;e++)d[e].widgetId===b&&(d.splice(e,1),c=!0,0===d.length&&($(document).off(a),delete gj.documentManager.events[a]));if(!c)throw'The "'+a+'" for widget with guid="'+b+"\" can't be removed."}},gj.core={messages:{"en-us":{monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthShortNames:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],weekDaysMin:["S","M","T","W","T","F","S"],weekDaysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],weekDays:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],am:"AM",pm:"PM",ok:"Ok",cancel:"Cancel"}},parseDate:function(a,b,c){var d,e,f,g,h=0,i=0,j=1,k=0,l=0;if(a&&"string"==typeof a){if(/^\d+$/.test(a))g=new Date(a);else if(a.indexOf("/Date(")>-1)g=new Date(parseInt(a.substr(6),10));else if(a){for(e=a.split(/[\s,-\.\/\/\:]+/),f=b.split(/[\s,-\.\/\/\:]+/),d=0;d<f.length;d++)["d","dd"].indexOf(f[d])>-1?j=parseInt(e[d],10):["m","mm"].indexOf(f[d])>-1?i=parseInt(e[d],10)-1:"mmm"===f[d]?i=gj.core.messages[c||"en-us"].monthShortNames.indexOf(e[d]):"mmmm"===f[d]?i=gj.core.messages[c||"en-us"].monthNames.indexOf(e[d]):["yy","yyyy"].indexOf(f[d])>-1?(h=parseInt(e[d],10),"yy"===f[d]&&(h+=2e3)):["h","hh","H","HH"].indexOf(f[d])>-1?k=parseInt(e[d],10):["M","MM"].indexOf(f[d])>-1&&(l=parseInt(e[d],10));g=new Date(h,i,j,k,l)}}else"number"==typeof a?g=new Date(a):a instanceof Date&&(g=a);return g},formatDate:function(a,b,c){var d,e,f="",g=b.split(/[\s,-\.\/\/\:]+/),h=b.split(/s+|M+|H+|h+|t+|T+|d+|m+|y+/);for(h=h.splice(1,h.length-2),i=0;i<g.length;i++)switch(d=h[i]||"",g[i]){case"s":f+=a.getSeconds()+d;break;case"ss":f+=gj.core.pad(a.getSeconds())+d;break;case"M":f+=a.getMinutes()+d;break;case"MM":f+=gj.core.pad(a.getMinutes())+d;break;case"H":f+=a.getHours()+d;break;case"HH":f+=gj.core.pad(a.getHours())+d;break;case"h":e=a.getHours()>12?a.getHours()%12:a.getHours(),f+=e+d;break;case"hh":e=a.getHours()>12?a.getHours()%12:a.getHours(),f+=gj.core.pad(e)+d;break;case"tt":f+=(a.getHours()>=12?"pm":"am")+d;break;case"TT":f+=(a.getHours()>=12?"PM":"AM")+d;break;case"d":f+=a.getDate()+d;break;case"dd":f+=gj.core.pad(a.getDate())+d;break;case"ddd":f+=gj.core.messages[c||"en-us"].weekDaysShort[a.getDay()]+d;break;case"dddd":f+=gj.core.messages[c||"en-us"].weekDays[a.getDay()]+d;break;case"m":f+=a.getMonth()+1+d;break;case"mm":f+=gj.core.pad(a.getMonth()+1)+d;break;case"mmm":f+=gj.core.messages[c||"en-us"].monthShortNames[a.getMonth()]+d;break;case"mmmm":f+=gj.core.messages[c||"en-us"].monthNames[a.getMonth()]+d;break;case"yy":f+=a.getFullYear().toString().substr(2)+d;break;case"yyyy":f+=a.getFullYear()+d}return f},pad:function(a,b){for(a=String(a),b=b||2;a.length<b;)a="0"+a;return a},center:function(a){var b=$(window).width()/2-a.width()/2,c=$(window).height()/2-a.height()/2;a.css("position","absolute"),a.css("left",b>0?b:0),a.css("top",c>0?c:0)},isIE:function(){return!!navigator.userAgent.match(/Trident/g)||!!navigator.userAgent.match(/MSIE/g)},setChildPosition:function(a,b){var c=a.getBoundingClientRect(),d=gj.core.height(a,!0),e=gj.core.height(b,!0),f=gj.core.width(a,!0),g=gj.core.width(b,!0),h=window.scrollY||window.pageYOffset||0,i=window.scrollX||window.pageXOffset||0;c.top+d+e>window.innerHeight&&c.top>e?b.style.top=Math.round(c.top+h-e-3)+"px":b.style.top=Math.round(c.top+h+d+3)+"px",c.left+g>document.body.clientWidth?b.style.left=Math.round(c.left+i+f-g)+"px":b.style.left=Math.round(c.left+i)+"px"},height:function(a,b){var c,d=window.getComputedStyle(a);return"border-box"===d.boxSizing?c=parseInt(d.height,10):(c=parseInt(d.height,10),c+=parseInt(d.paddingTop||0,10)+parseInt(d.paddingBottom||0,10),c+=parseInt(d.borderTopWidth||0,10)+parseInt(d.borderBottomWidth||0,10)),b&&(c+=parseInt(d.marginTop||0,10)+parseInt(d.marginBottom||0,10)),c},width:function(a,b){var c,d=window.getComputedStyle(a);return"border-box"===d.boxSizing?c=parseInt(d.width,10):(c=parseInt(d.width,10),c+=parseInt(d.paddingLeft||0,10)+parseInt(d.paddingRight||0,10),c+=parseInt(d.borderLeftWidth||0,10)+parseInt(d.borderRightWidth||0,10)),b&&(c+=parseInt(d.marginLeft||0,10)+parseInt(d.marginRight||0,10)),c},addClasses:function(a,b){var c,d;if(b)for(d=b.split(" "),c=0;c<d.length;c++)a.classList.add(d[c])},position:function(a){for(var b,c,d=0,e=0,f=gj.core.height(a),g=gj.core.width(a);a;)"BODY"==a.tagName?(b=a.scrollLeft||document.documentElement.scrollLeft,c=a.scrollTop||document.documentElement.scrollTop,d+=a.offsetLeft-b,e+=a.offsetTop-c):(d+=a.offsetLeft-a.scrollLeft,e+=a.offsetTop-a.scrollTop),a=a.offsetParent;return{top:e,left:d,bottom:e+f,right:d+g}},setCaretAtEnd:function(a){var b;if(a)if(b=a.value.length,document.selection){a.focus();var c=document.selection.createRange();c.moveStart("character",-b),c.moveStart("character",b),c.moveEnd("character",0),c.select()}else(a.selectionStart||"0"==a.selectionStart)&&(a.selectionStart=b,a.selectionEnd=b,a.focus())},getScrollParent:function(a){return null==a?null:a.scrollHeight>a.clientHeight?a:gj.core.getScrollParent(a.parentNode)}},gj.picker={messages:{"en-us":{}}},gj.picker.methods={initialize:function(a,b,c){var d,e=c.createPicker(a,b),f=a.parent('div[role="wrapper"]');d="bootstrap"===b.uiLibrary?$('<span class="input-group-addon">'+b.icons.rightIcon+"</span>"):"bootstrap4"===b.uiLibrary?$('<span class="input-group-append"><button class="btn btn-outline-secondary border-left-0" type="button">'+b.icons.rightIcon+"</button></span>"):$(b.icons.rightIcon),d.attr("role","right-icon"),0===f.length?(f=$('<div role="wrapper" />').addClass(b.style.wrapper),a.wrap(f)):f.addClass(b.style.wrapper),f=a.parent('div[role="wrapper"]'),b.width&&f.css("width",b.width),a.val(b.value).addClass(b.style.input).attr("role","input"),b.fontSize&&a.css("font-size",b.fontSize),"bootstrap"===b.uiLibrary||"bootstrap4"===b.uiLibrary?"small"===b.size?(f.addClass("input-group-sm"),a.addClass("form-control-sm")):"large"===b.size&&(f.addClass("input-group-lg"),a.addClass("form-control-lg")):"small"===b.size?f.addClass("small"):"large"===b.size&&f.addClass("large"),d.on("click",function(b){e.is(":visible")?a.close():a.open()}),f.append(d),!0!==b.footer&&(a.on("blur",function(){a.timeout=setTimeout(function(){a.close()},500)}),e.mousedown(function(){return clearTimeout(a.timeout),a.focus(),!1}),e.on("click",function(){clearTimeout(a.timeout),a.focus()}))}},gj.picker.widget=function(a,b){var c=this,d=gj.picker.methods;return c.destroy=function(){return d.destroy(this)},a},gj.picker.widget.prototype=new gj.widget,gj.picker.widget.constructor=gj.picker.widget,gj.picker.widget.prototype.init=function(a,b,c){return gj.widget.prototype.init.call(this,a,b),this.attr("data-"+b,"true"),gj.picker.methods.initialize(this,this.data(),gj[b].methods),this},gj.picker.widget.prototype.open=function(a){var b=this.data(),c=$("body").find('[role="picker"][guid="'+this.attr("data-guid")+'"]');return c.show(),c.closest('div[role="modal"]').show(),b.modal?gj.core.center(c):(gj.core.setChildPosition(this[0],c[0]),this.focus()),clearTimeout(this.timeout),gj[a].events.open(this),this},gj.picker.widget.prototype.close=function(a){var b=$("body").find('[role="picker"][guid="'+this.attr("data-guid")+'"]');return b.hide(),b.closest('div[role="modal"]').hide(),gj[a].events.close(this),this},gj.picker.widget.prototype.destroy=function(a){var b=this.data(),c=this.parent(),d=$("body").find('[role="picker"][guid="'+this.attr("data-guid")+'"]');return b&&(this.off(),d.parent('[role="modal"]').length>0&&d.unwrap(),d.remove(),this.removeData(),this.removeAttr("data-type").removeAttr("data-guid").removeAttr("data-"+a),this.removeClass(),c.children('[role="right-icon"]').remove(),this.unwrap()),this},gj.core.messages["bg-bg"]={monthNames:["Януари","Февруари","Март","Април","Май","Юни","Юли","Август","Септември","Октомври","Ноември","Декември"],monthShortNames:["Яну","Фев","Мар","Апр","Май","Юни","Юли","Авг","Сеп","ОКт","Ное","Дек"],weekDaysMin:["Н","П","В","С","Ч","П","С"],weekDaysShort:["Нед","Пон","Вто","Сря","Чет","Пет","Съб"],weekDays:["Неделя","Понеделник","Вторник","Сряда","Четвъртък","Петък","Събота"],am:"AM",pm:"PM",ok:"ОК",cancel:"Отказ"},gj.core.messages["fr-fr"]={monthNames:["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"],monthShortNames:["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc."],weekDaysMin:["D","L","M","M","J","V","S"],weekDaysShort:["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],weekDays:["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],am:"AM",pm:"PM",ok:"OK",cancel:"Annuler"},gj.core.messages["de-de"]={monthNames:["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],monthShortNames:["Jan","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],weekDaysMin:["So","Mo","Di","Mi","Do","Fr","Sa"],weekDaysShort:["So","Mo","Di","Mi","Do","Fr","Sa"],weekDays:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],am:"AM",pm:"PM",ok:"OK",cancel:"Abbrechen"},gj.core.messages["pt-br"]={monthNames:["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],monthShortNames:["Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez"],weekDaysMin:["D","S","T","Q","Q","S","S"],weekDaysShort:["Dom","Seg","Ter","Qua","Qui","Sex","Sáb"],weekDays:["Domingo","Segunda-feira","Terça-feira","Quarta-feira","Quinta-feira","Sexta-feira","Sábado"],am:"AM",pm:"PM",ok:"OK",cancel:"Cancelar"},gj.core.messages["ru-ru"]={monthNames:["Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь"],monthShortNames:["Янв","Фев","Мар","Апр","Май","Июн","Июл","Авг","Сен","Окт","Ноя","Дек"],weekDaysMin:["Вс","Пн","Вт","Ср","Чт","Пт","Сб"],weekDaysShort:["вск","пнд","втр","срд","чтв","птн","сбт"],weekDays:["воскресенье","понедельник","вторник","среда","четверг","пятница","суббота"],am:"AM",pm:"PM",ok:"ОК",cancel:"Отмена"},gj.core.messages["es-es"]={monthNames:["enero","febrero","marzo","abril","mayo","junio","julio","agosto","setiembre","octubre","noviembre","diciembre"],monthShortNames:["ene.","feb.","mar","abr.","may","jun","jul.","ago","set.","oct.","nov.","dic."],weekDaysMin:["D","L","M","M","J","V","S"],weekDaysShort:["dom","lun","mar","mié","jue","vie","sáb"],weekDays:["domingo","lunes","martes","miércoles","jueves","viernes","sábado"],am:"AM",pm:"PM",ok:"OK",cancel:"Cancelar"},gj.core.messages["it-it"]={monthNames:["gennaio","febbraio","marzo","aprile","maggio","giugno","luglio","agosto","settembre","ottobre","novembre","dicembre"],monthShortNames:["gen.","feb.","mar.","apr.","mag.","giu.","lug.","ago.","set.","ott.","nov.","dic."],weekDaysMin:["Do","Lu","Ma","Me","Gi","Ve","Sa"],weekDaysShort:["Dom","Lun","Mar","Mer","Gio","Ven","Sab"],weekDays:["Domenica","Lunedì","Martedì","Mercoledì","Giovedì","Venerdì","Sabato"],am:"AM",pm:"PM",ok:"OK",cancel:"Annulla"},gj.core.messages["tr-tr"]={monthNames:["ocak","şubat","mart","nisan","mayıs","haziran","temmuz","ağustos","eylül","ekim","kasım","aralık"],monthShortNames:["oca","şub","mar","nis","may","haz","tem","ağu","eyl","eki","kas","ara"],weekDaysMin:["P","S","Ç","P","C","C","P"],weekDaysShort:["pzt.","sl.","çar.","per.","cum.","cmt.","paz."],weekDays:["pazartesi","salı","çarşamba","perşembe","cuma","cumartesi","pazar"],am:"AM",pm:"PM",ok:"Tamam",cancel:"İptal"};
/*
* Gijgo DatePicker v1.8.0
* Gijgo DatePicker v1.9.11
* http://gijgo.com/datepicker
*
* Copyright 2014, 2017 gijgo.com
* Copyright 2014, 2018 gijgo.com
* Released under the MIT license

@@ -10,8 +10,3 @@ */

/** */ gj.datepicker = {
plugins: {},
messages: {
'en-us': {
weekDays: ['S', 'M', 'T', 'W', 'T', 'F', 'S']
}
}
plugins: {}
};

@@ -28,3 +23,3 @@

/** The minimum selectable date. When not set, there is no minimum */ minDate: undefined,
/** The minimum selectable date. When not set, there is no minimum. */ minDate: undefined,

@@ -55,6 +50,6 @@ /** The maximum selectable date. When not set, there is no maximum */ maxDate: undefined,

icons: {
/** datepicker icon definition. */ rightIcon: '<i class="gj-icon event" />',
/** datepicker icon definition. */ rightIcon: '<i class="gj-icon">event</i>',
previousMonth: '<i class="gj-icon chevron-left" />',
nextMonth: '<i class="gj-icon chevron-right" />'
previousMonth: '<i class="gj-icon chevron-left"></i>',
nextMonth: '<i class="gj-icon chevron-right"></i>'
},

@@ -64,6 +59,21 @@

/** The size of the datepicker input. */ size: 'default',
/** If set to true, the datepicker will have modal behavior. */ modal: false,
/** If set to true, add header to the datepicker. */ header: false,
/** If set to true, add footer with ok and cancel buttons to the datepicker. */ footer: false,
/** If set to true, show datepicker on input focus. */ showOnFocus: true,
/** If set to true, show datepicker icon on the right side of the input. */ showRightIcon: true,
style: {
modal: 'gj-modal',
wrapper: 'gj-datepicker gj-datepicker-md gj-unselectable',
input: 'gj-textbox-md',
calendar: 'gj-calendar gj-calendar-md'
calendar: 'gj-picker gj-picker-md datepicker gj-unselectable',
footer: '',
button: 'gj-button-md'
}

@@ -76,3 +86,5 @@ },

input: 'form-control',
calendar: 'gj-calendar gj-calendar-bootstrap'
calendar: 'gj-picker gj-picker-bootstrap datepicker gj-unselectable',
footer: 'modal-footer',
button: 'btn btn-default'
},

@@ -87,3 +99,5 @@ iconsLibrary: 'glyphicons',

input: 'form-control',
calendar: 'gj-calendar gj-calendar-bootstrap'
calendar: 'gj-picker gj-picker-bootstrap datepicker gj-unselectable',
footer: 'modal-footer',
button: 'btn btn-default'
},

@@ -114,19 +128,10 @@ showOtherMonths: true

this.attr('data-datepicker', 'true');
gj.datepicker.methods.initialize(this);
gj.datepicker.methods.initialize(this, this.data());
return this;
},
initialize: function ($datepicker) {
var data = $datepicker.data(), $calendar, $rightIcon,
initialize: function ($datepicker, data) {
var $calendar, $rightIcon,
$wrapper = $datepicker.parent('div[role="wrapper"]');
if (data.uiLibrary === 'bootstrap') {
$rightIcon = $('<span class="input-group-addon">' + data.icons.rightIcon + '</span>');
} else if (data.uiLibrary === 'bootstrap4') {
$rightIcon = $('<span class="input-group-append"><span class="input-group-text">' + data.icons.rightIcon + '</span></span>');
} else {
$rightIcon = $(data.icons.rightIcon);
}
$rightIcon.attr('role', 'right-icon');
if ($wrapper.length === 0) {

@@ -144,33 +149,73 @@ $wrapper = $('<div role="wrapper" />').addClass(data.style.wrapper); // The css class needs to be added before the wrapping, otherwise doesn't work.

data.fontSize && $datepicker.css('font-size', data.fontSize);
data.fontSize && $datepicker.css('font-size', data.fontSize);
if (data.uiLibrary === 'bootstrap' || data.uiLibrary === 'bootstrap4') {
if (data.size === 'small') {
$wrapper.addClass('input-group-sm');
$datepicker.addClass('form-control-sm');
} else if (data.size === 'large') {
$wrapper.addClass('input-group-lg');
$datepicker.addClass('form-control-lg');
}
} else {
if (data.size === 'small') {
$wrapper.addClass('small');
} else if (data.size === 'large') {
$wrapper.addClass('large');
}
}
$rightIcon.on('click', function (e) {
var $calendar = $('body').children('[role="calendar"][guid="' + $datepicker.attr('data-guid') + '"]');
if ($calendar.is(':visible')) {
gj.datepicker.methods.hide($datepicker);
if (data.showRightIcon) {
if (data.uiLibrary === 'bootstrap') {
$rightIcon = $('<span class="input-group-addon">' + data.icons.rightIcon + '</span>');
} else if (data.uiLibrary === 'bootstrap4') {
$rightIcon = $('<span class="input-group-append"><button class="btn btn-outline-secondary border-left-0" type="button">' + data.icons.rightIcon + '</button></span>');
} else {
gj.datepicker.methods.show($datepicker);
$rightIcon = $(data.icons.rightIcon);
}
});
$rightIcon.attr('role', 'right-icon');
$rightIcon.on('click', function (e) {
var $calendar = $('body').find('[role="calendar"][guid="' + $datepicker.attr('data-guid') + '"]');
if ($calendar.is(':visible')) {
gj.datepicker.methods.close($datepicker);
} else {
gj.datepicker.methods.open($datepicker, data);
}
});
$wrapper.append($rightIcon);
}
$datepicker.on('blur', function () {
$datepicker.timeout = setTimeout(function () {
gj.datepicker.methods.hide($datepicker);
}, 500);
});
if (data.showOnFocus) {
$datepicker.on('focus', function () {
gj.datepicker.methods.open($datepicker, data);
});
}
$wrapper.append($rightIcon);
$calendar = gj.datepicker.methods.createCalendar($datepicker, data);
$calendar = gj.datepicker.methods.createCalendar($datepicker);
if (data.footer !== true) {
$datepicker.on('blur', function () {
$datepicker.timeout = setTimeout(function () {
gj.datepicker.methods.close($datepicker);
}, 500);
});
$calendar.mousedown(function () {
clearTimeout($datepicker.timeout);
document.activeElement !== $datepicker[0] && $datepicker.focus();
return false;
});
$calendar.on('click', function () {
clearTimeout($datepicker.timeout);
document.activeElement !== $datepicker[0] && $datepicker.focus();
});
}
if (data.keyboardNavigation) {
$datepicker.on('keydown', gj.datepicker.methods.createKeyDownHandler($datepicker, $calendar));
$(document).on('keydown', gj.datepicker.methods.createKeyDownHandler($datepicker, $calendar, data));
}
},
createCalendar: function ($datepicker) {
var date, data = $datepicker.data(),
$calendar = $('<div role="calendar" />').addClass(data.style.calendar).attr('guid', $datepicker.attr('data-guid')),
$table = $('<table/>'),
$thead = $('<thead/>');
createCalendar: function ($datepicker, data) {
var date, $body, $footer, $btnCancel, $btnOk,
$calendar = $('<div role="calendar" type="month"/>').addClass(data.style.calendar).attr('guid', $datepicker.attr('data-guid'));

@@ -186,11 +231,83 @@ data.fontSize && $calendar.css('font-size', data.fontSize);

$datepicker.attr('month', date.getMonth());
$datepicker.attr('year', date.getFullYear());
$calendar.attr('month', date.getMonth());
$calendar.attr('year', date.getFullYear());
$row = $('<tr role="month-manager" />');
$row.append($('<th><div>' + data.icons.previousMonth + '</div></th>').on('click', gj.datepicker.methods.prevMonth($datepicker)));
$row.append('<th colspan="' + (data.calendarWeeks ? 6 : 5) + '"><div role="month"></div></th>');
$row.append($('<th><div>' + data.icons.nextMonth + '</div></th>').on('click', gj.datepicker.methods.nextMonth($datepicker)));
$thead.append($row);
gj.datepicker.methods.renderHeader($datepicker, $calendar, data, date);
$body = $('<div role="body" />');
$calendar.append($body);
if (data.footer) {
$footer = $('<div role="footer" class="' + data.style.footer + '" />');
$btnCancel = $('<button class="' + data.style.button + '">' + gj.core.messages[data.locale].cancel + '</button>');
$btnCancel.on('click', function () { $datepicker.close(); });
$footer.append($btnCancel);
$btnOk = $('<button class="' + data.style.button + '">' + gj.core.messages[data.locale].ok + '</button>');
$btnOk.on('click', function () {
var date, dayArr, dayStr = $calendar.attr('selectedDay');
if (dayStr) {
dayArr = dayStr.split('-');
date = new Date(dayArr[0], dayArr[1], dayArr[2], $calendar.attr('hour') || 0, $calendar.attr('minute') || 0);
gj.datepicker.methods.change($datepicker, $calendar, data, date);
} else {
$datepicker.close();
}
});
$footer.append($btnOk);
$calendar.append($footer);
}
$calendar.hide();
$('body').append($calendar);
if (data.modal) {
$calendar.wrapAll('<div role="modal" class="' + data.style.modal + '"/>');
gj.core.center($calendar);
}
return $calendar;
},
renderHeader: function ($datepicker, $calendar, data, date) {
var $header, $date, $year;
if (data.header) {
$header = $('<div role="header" />');
$year = $('<div role="year" />').on('click', function () {
gj.datepicker.methods.renderDecade($datepicker, $calendar, data);
$year.addClass('selected');
$date.removeClass('selected');
});
$year.html(gj.core.formatDate(date, 'yyyy', data.locale));
$header.append($year);
$date = $('<div role="date" class="selected" />').on('click', function () {
gj.datepicker.methods.renderMonth($datepicker, $calendar, data);
$date.addClass('selected');
$year.removeClass('selected');
});
$date.html(gj.core.formatDate(date, 'ddd, mmm dd', data.locale));
$header.append($date);
$calendar.append($header);
}
},
updateHeader: function ($calendar, data, date) {
$calendar.find('[role="header"] [role="year"]').removeClass('selected').html(gj.core.formatDate(date, 'yyyy', data.locale));
$calendar.find('[role="header"] [role="date"]').addClass('selected').html(gj.core.formatDate(date, 'ddd, mmm dd', data.locale));
$calendar.find('[role="header"] [role="hour"]').removeClass('selected').html(gj.core.formatDate(date, 'HH', data.locale));
$calendar.find('[role="header"] [role="minute"]').removeClass('selected').html(gj.core.formatDate(date, 'MM', data.locale));
},
createNavigation: function ($datepicker, $body, $table, data) {
var $row, $navigator, $thead = $('<thead/>');
$navigator = $('<div role="navigator" />');
$navigator.append($('<div>' + data.icons.previousMonth + '</div>').on('click', gj.datepicker.methods.prev($datepicker, data)));
$navigator.append($('<div role="period"></div>').on('click', gj.datepicker.methods.changePeriod($datepicker, data)));
$navigator.append($('<div>' + data.icons.nextMonth + '</div>').on('click', gj.datepicker.methods.next($datepicker, data)));
$body.append($navigator);
$row = $('<tr role="week-days" />');

@@ -200,7 +317,7 @@ if (data.calendarWeeks) {

}
for (i = data.weekStartDay; i < gj.datepicker.messages[data.locale].weekDays.length; i++) {
$row.append('<th><div>' + gj.datepicker.messages[data.locale].weekDays[i] + '</div></th>');
for (i = data.weekStartDay; i < gj.core.messages[data.locale].weekDaysMin.length; i++) {
$row.append('<th><div>' + gj.core.messages[data.locale].weekDaysMin[i] + '</div></th>');
}
for (i = 0; i < data.weekStartDay; i++) {
$row.append('<th><div>' + gj.datepicker.messages[data.locale].weekDays[i] + '</div></th>');
$row.append('<th><div>' + gj.core.messages[data.locale].weekDaysMin[i] + '</div></th>');
}

@@ -210,29 +327,19 @@ $thead.append($row);

$table.append($thead);
$table.append('<tbody/>');
$calendar.append($table);
$calendar.hide();
$('body').append($calendar);
return $calendar;
},
renderCalendar: function ($datepicker) {
renderMonth: function ($datepicker, $calendar, data) {
var weekDay, selectedDay, day, month, year, daysInMonth, total, firstDayPosition, i, now, prevMonth, nextMonth, $cell, $day, date,
data = $datepicker.data(),
$calendar = $('body').children('[role="calendar"][guid="' + $datepicker.attr('data-guid') + '"]'),
$table = $calendar.children('table'),
$tbody = $table.children('tbody');
$body = $calendar.children('[role="body"]'),
$table = $('<table/>'),
$tbody = $('<tbody/>');
$body.off().empty();
gj.datepicker.methods.createNavigation($datepicker, $body, $table, data);
month = parseInt($calendar.attr('month'), 10);
year = parseInt($calendar.attr('year'), 10);
clearTimeout($datepicker.timeout);
if ($datepicker.attr('day')) {
selectedDay = $datepicker.attr('day').split('-');
selectedDay = new Date(selectedDay[0], selectedDay[1], selectedDay[2]);
} else {
selectedDay = new Date(undefined);
}
month = parseInt($datepicker.attr('month'), 10);
year = parseInt($datepicker.attr('year'), 10);
$calendar.attr('type', 'month');
$calendar.find('div[role="period"]').text(gj.core.messages[data.locale].monthNames[month] + ' ' + year);
$table.find('thead [role="month"]').text(gj.core.messages[data.locale].monthNames[month] + ' ' + year);
daysInMonth = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);

@@ -246,4 +353,2 @@ if (year % 4 == 0 && year != 1900) {

$tbody.empty();
weekDay = 0;

@@ -256,9 +361,5 @@ $row = $('<tr />');

if (data.calendarWeeks && i === 1) {
$row.append('<td><div>' + gj.datepicker.methods.getWeekNumber(date) + '</div></td>');
$row.append('<td class="calendar-week"><div>' + gj.datepicker.methods.getWeekNumber(date) + '</div></td>');
}
if (prevMonth.year === selectedDay.getFullYear() && prevMonth.month === selectedDay.getMonth() && day === selectedDay.getDate()) {
$cell = $('<td class="selected" />');
} else {
$cell = $('<td class="other-month" />');
}
$cell = $('<td class="other-month" />');
if (data.showOtherMonths) {

@@ -268,4 +369,5 @@ $day = $('<div>' + day + '</div>');

if (data.selectOtherMonths && gj.datepicker.methods.isSelectable(data, date)) {
$cell.addClass('gj-cursor-pointer');
$day.on('click', gj.datepicker.methods.select($datepicker, $calendar, date));
$cell.addClass('gj-cursor-pointer').attr('day', day).attr('month', prevMonth.month).attr('year', prevMonth.year);
$day.on('click', gj.datepicker.methods.dayClickHandler($datepicker, $calendar, data, date));
$day.on('mousedown', function (e) { e.stopPropagation() });
} else {

@@ -288,9 +390,7 @@ $cell.addClass('disabled');

if (data.calendarWeeks) {
$row.append('<td><div>' + gj.datepicker.methods.getWeekNumber(date) + '</div></td>');
$row.append('<td class="calendar-week"><div>' + gj.datepicker.methods.getWeekNumber(date) + '</div></td>');
}
}
$cell = $('<td day="' + i + '" />');
if (year === selectedDay.getFullYear() && month === selectedDay.getMonth() && i === selectedDay.getDate()) {
$cell.addClass('selected');
} else if (year === now.getFullYear() && month === now.getMonth() && i === now.getDate()) {
$cell = $('<td day="' + i + '" month="' + month + '" year="' + year + '" />');
if (year === now.getFullYear() && month === now.getMonth() && i === now.getDate()) {
$cell.addClass('today');

@@ -303,3 +403,4 @@ } else {

$cell.addClass('gj-cursor-pointer');
$day.on('click', gj.datepicker.methods.select($datepicker, $calendar, date));
$day.on('click', gj.datepicker.methods.dayClickHandler($datepicker, $calendar, data, date));
$day.on('mousedown', function (e) { e.stopPropagation() });
} else {

@@ -320,16 +421,13 @@ $cell.addClass('disabled');

date = new Date(nextMonth.year, nextMonth.month, i);
if (nextMonth.year === selectedDay.getFullYear() && nextMonth.month === selectedDay.getMonth() && i === selectedDay.getDate()) {
$cell = $('<td class="selected" />');
} else {
$cell = $('<td class="other-month" />');
}
$cell = $('<td class="other-month" />');
if (data.showOtherMonths) {
$day = $('<div>' + i + '</div>');
$cell.append($day);
if (data.selectOtherMonths && gj.datepicker.methods.isSelectable(data, date)) {
$cell.addClass('gj-cursor-pointer');
$day.on('click', gj.datepicker.methods.select($datepicker, $calendar, date));
$cell.addClass('gj-cursor-pointer').attr('day', i).attr('month', nextMonth.month).attr('year', nextMonth.year);
$day.on('click', gj.datepicker.methods.dayClickHandler($datepicker, $calendar, data, date));
$day.on('mousedown', function (e) { e.stopPropagation() });
} else {
$cell.addClass('disabled');
}
$cell.append($day);
}

@@ -343,4 +441,94 @@ $row.append($cell);

}
$table.append($tbody);
$body.append($table);
if ($calendar.attr('selectedDay')) {
selectedDay = $calendar.attr('selectedDay').split('-');
date = new Date(selectedDay[0], selectedDay[1], selectedDay[2], $calendar.attr('hour') || 0, $calendar.attr('minute') || 0);
$calendar.find('tbody td[day="' + selectedDay[2] + '"][month="' + selectedDay[1] + '"]').addClass('selected');
gj.datepicker.methods.updateHeader($calendar, data, date);
}
},
renderYear: function ($datepicker, $calendar, data) {
var year, i, m, $month,
$table = $calendar.find('>[role="body"]>table'),
$tbody = $table.children('tbody');
$table.children('thead').hide();
year = parseInt($calendar.attr('year'), 10);
$calendar.attr('type', 'year');
$calendar.find('div[role="period"]').text(year);
$tbody.empty();
for (i = 0; i < 3; i++) {
$row = $('<tr />');
for (m = (i * 4); m <= (i * 4) + 3; m++) {
$month = $('<div>' + gj.core.messages[data.locale].monthShortNames[m] + '</div>');
$month.on('click', gj.datepicker.methods.selectMonth($datepicker, $calendar, data, m));
$cell = $('<td></td>').append($month);
$row.append($cell);
}
$tbody.append($row);
}
},
renderDecade: function ($datepicker, $calendar, data) {
var year, decade, i, y, $year,
$table = $calendar.find('>[role="body"]>table'),
$tbody = $table.children('tbody');
$table.children('thead').hide();
year = parseInt($calendar.attr('year'), 10);
decade = year - (year % 10);
$calendar.attr('type', 'decade');
$calendar.find('div[role="period"]').text(decade + ' - ' + (decade + 9));
$tbody.empty();
for (i = decade - 1; i <= decade + 10 ; i += 4) {
$row = $('<tr />');
for (y = i; y <= i + 3; y++) {
$year = $('<div>' + y + '</div>');
$year.on('click', gj.datepicker.methods.selectYear($datepicker, $calendar, data, y));
$cell = $('<td></td>').append($year);
$row.append($cell);
}
$tbody.append($row);
}
},
renderCentury: function ($datepicker, $calendar, data) {
var year, century, i, d, $decade,
$table = $calendar.find('>[role="body"]>table'),
$tbody = $table.children('tbody');
$table.children('thead').hide();
year = parseInt($calendar.attr('year'), 10);
century = year - (year % 100);
$calendar.attr('type', 'century');
$calendar.find('div[role="period"]').text(century + ' - ' + (century + 99));
$tbody.empty();
for (i = (century - 10); i < century + 100; i += 40) {
$row = $('<tr />');
for (d = i; d <= i + 30; d += 10) {
$decade = $('<div>' + d + '</div>');
$decade.on('click', gj.datepicker.methods.selectDecade($datepicker, $calendar, data, d));
$cell = $('<td></td>').append($decade);
$row.append($cell);
}
$tbody.append($row);
}
},
getWeekNumber: function (date) {

@@ -435,47 +623,91 @@ var d = new Date(date.valueOf());

prevMonth: function ($datepicker) {
prev: function ($datepicker, data) {
return function () {
var date,
month = parseInt($datepicker.attr('month'), 10),
year = parseInt($datepicker.attr('year'), 10);
var date, month, year, decade, century,
$calendar = $('body').find('[role="calendar"][guid="' + $datepicker.attr('data-guid') + '"]');
date = gj.datepicker.methods.getPrevMonth(month, year);
$datepicker.attr('month', date.month);
$datepicker.attr('year', date.year);
gj.datepicker.methods.renderCalendar($datepicker);
$datepicker.focus();
year = parseInt($calendar.attr('year'), 10);
switch ($calendar.attr('type')) {
case 'month':
month = parseInt($calendar.attr('month'), 10);
date = gj.datepicker.methods.getPrevMonth(month, year);
$calendar.attr('month', date.month);
$calendar.attr('year', date.year);
gj.datepicker.methods.renderMonth($datepicker, $calendar, data);
break;
case 'year':
$calendar.attr('year', year - 1);
gj.datepicker.methods.renderYear($datepicker, $calendar, data);
break;
case 'decade':
decade = year - (year % 10);
$calendar.attr('year', decade - 10);
gj.datepicker.methods.renderDecade($datepicker, $calendar, data);
break;
case 'century':
century = year - (year % 100);
$calendar.attr('year', century - 100);
gj.datepicker.methods.renderCentury($datepicker, $calendar, data);
break;
}
}
},
nextMonth: function ($datepicker) {
next: function ($datepicker, data) {
return function () {
var date,
month = parseInt($datepicker.attr('month'), 10),
year = parseInt($datepicker.attr('year'), 10);
var date, month, year, decade, century,
$calendar = $('body').find('[role="calendar"][guid="' + $datepicker.attr('data-guid') + '"]');
date = gj.datepicker.methods.getNextMonth(month, year);
year = parseInt($calendar.attr('year'), 10);
switch ($calendar.attr('type')) {
case 'month':
month = parseInt($calendar.attr('month'), 10);
date = gj.datepicker.methods.getNextMonth(month, year);
$calendar.attr('month', date.month);
$calendar.attr('year', date.year);
gj.datepicker.methods.renderMonth($datepicker, $calendar, data);
break;
case 'year':
$calendar.attr('year', year + 1);
gj.datepicker.methods.renderYear($datepicker, $calendar, data);
break;
case 'decade':
decade = year - (year % 10);
$calendar.attr('year', decade + 10);
gj.datepicker.methods.renderDecade($datepicker, $calendar, data);
break;
case 'century':
century = year - (year % 100);
$calendar.attr('year', century + 100);
gj.datepicker.methods.renderCentury($datepicker, $calendar, data);
break;
}
}
},
$datepicker.attr('month', date.month);
$datepicker.attr('year', date.year);
changePeriod: function ($datepicker, data) {
return function (e) {
var $calendar = $('body').find('[role="calendar"][guid="' + $datepicker.attr('data-guid') + '"]');
gj.datepicker.methods.renderCalendar($datepicker);
$datepicker.focus();
switch ($calendar.attr('type')) {
case 'month':
gj.datepicker.methods.renderYear($datepicker, $calendar, data);
break;
case 'year':
gj.datepicker.methods.renderDecade($datepicker, $calendar, data);
break;
case 'decade':
gj.datepicker.methods.renderCentury($datepicker, $calendar, data);
break;
}
}
},
select: function ($datepicker, $calendar, date) {
dayClickHandler: function ($datepicker, $calendar, data, date) {
return function (e) {
var value,
month = date.getMonth(),
year = date.getFullYear(),
data = $datepicker.data();
value = gj.core.formatDate(date, data.format, data.locale);
$datepicker.val(value);
gj.datepicker.events.change($datepicker);
$datepicker.attr('day', year + '-' + month + '-' + date.getDate());
$datepicker.attr('month', month);
$datepicker.attr('year', year);
gj.datepicker.methods.hide($datepicker);
e && e.stopPropagation();
gj.datepicker.methods.selectDay($datepicker, $calendar, data, date);
if (data.footer !== true && data.autoClose !== false) {
gj.datepicker.methods.change($datepicker, $calendar, data, date);
}
return $datepicker;

@@ -485,84 +717,165 @@ };

show: function ($datepicker) {
var data = $datepicker.data(),
offset = $datepicker.offset(),
$calendar = $('body').children('[role="calendar"][guid="' + $datepicker.attr('data-guid') + '"]');
change: function ($datepicker, $calendar, data, date) {
var day = date.getDate(),
month = date.getMonth(),
year = date.getFullYear(),
value = gj.core.formatDate(date, data.format, data.locale);
$calendar.attr('month', month);
$calendar.attr('year', year);
$datepicker.val(value);
gj.datepicker.events.change($datepicker);
if (window.getComputedStyle($calendar[0]).display !== 'none') {
gj.datepicker.methods.close($datepicker);
}
},
gj.datepicker.methods.renderCalendar($datepicker);
$calendar.css('left', offset.left).css('top', offset.top + $datepicker.outerHeight(true) + 3);
selectDay: function ($datepicker, $calendar, data, date) {
var day = date.getDate(),
month = date.getMonth(),
year = date.getFullYear();
$calendar.attr('selectedDay', year + '-' + month + '-' + day);
$calendar.find('tbody td').removeClass('selected');
$calendar.find('tbody td[day="' + day + '"][month="' + month + '"]').addClass('selected');
gj.datepicker.methods.updateHeader($calendar, data, date);
gj.datepicker.events.select($datepicker, 'day');
},
selectMonth: function ($datepicker, $calendar, data, month) {
return function (e) {
$calendar.attr('month', month);
gj.datepicker.methods.renderMonth($datepicker, $calendar, data);
gj.datepicker.events.select($datepicker, 'month');
};
},
selectYear: function ($datepicker, $calendar, data, year) {
return function (e) {
$calendar.attr('year', year);
gj.datepicker.methods.renderYear($datepicker, $calendar, data);
gj.datepicker.events.select($datepicker, 'year');
};
},
selectDecade: function ($datepicker, $calendar, data, year) {
return function (e) {
$calendar.attr('year', year);
gj.datepicker.methods.renderDecade($datepicker, $calendar, data);
gj.datepicker.events.select($datepicker, 'decade');
};
},
open: function ($datepicker, data) {
var date, $calendar = $('body').find('[role="calendar"][guid="' + $datepicker.attr('data-guid') + '"]');
if ($datepicker.val()) {
$datepicker.value($datepicker.val());
} else {
date = new Date();
$calendar.attr("month", date.getMonth());
$calendar.attr("year", date.getFullYear());
}
switch ($calendar.attr('type')) {
case 'month':
gj.datepicker.methods.renderMonth($datepicker, $calendar, data);
break;
case 'year':
gj.datepicker.methods.renderYear($datepicker, $calendar, data);
break;
case 'decade':
gj.datepicker.methods.renderDecade($datepicker, $calendar, data);
break;
case 'century':
gj.datepicker.methods.renderCentury($datepicker, $calendar, data);
break;
}
$calendar.show();
$datepicker.focus();
gj.datepicker.events.show($datepicker);
$calendar.closest('div[role="modal"]').show();
if (data.modal) {
gj.core.center($calendar);
} else {
gj.core.setChildPosition($datepicker[0], $calendar[0]);
document.activeElement !== $datepicker[0] && $datepicker.focus();
}
clearTimeout($datepicker.timeout);
gj.datepicker.events.open($datepicker);
},
hide: function ($datepicker) {
var $calendar = $('body').children('[role="calendar"][guid="' + $datepicker.attr('data-guid') + '"]');
close: function ($datepicker) {
var $calendar = $('body').find('[role="calendar"][guid="' + $datepicker.attr('data-guid') + '"]');
$calendar.hide();
gj.datepicker.events.hide($datepicker);
$calendar.closest('div[role="modal"]').hide();
gj.datepicker.events.close($datepicker);
},
createKeyDownHandler: function ($datepicker, $calendar) {
createKeyDownHandler: function ($datepicker, $calendar, data) {
return function (e) {
var month, year, day, index, $new,
var month, year, day, index, $new, $active, e = e || window.event;
if (window.getComputedStyle($calendar[0]).display !== 'none')
{
$active = gj.datepicker.methods.getActiveCell($calendar);
e = e || window.event;
if (e.keyCode == '38') { // up
index = $active.index();
$new = $active.closest('tr').prev('tr').find('td:eq(' + index + ')');
if (!$new.is('[day]')) {
gj.datepicker.methods.prevMonth($datepicker)();
$new = $calendar.find('tbody tr').last().find('td:eq(' + index + ')');
}
if ($new.is('[day]')) {
$new.addClass('focused');
$active.removeClass('focused');
}
} else if (e.keyCode == '40') { // down
index = $active.index();
$new = $active.closest('tr').next('tr').find('td:eq(' + index + ')');
if (!$new.is('[day]')) {
gj.datepicker.methods.nextMonth($datepicker)();
$new = $calendar.find('tbody tr').first().find('td:eq(' + index + ')');
if (e.keyCode == '38') { // up
index = $active.index();
$new = $active.closest('tr').prev('tr').find('td:eq(' + index + ')');
if (!$new.is('[day]')) {
$new = $calendar.find('tbody tr:eq(1)').find('td:eq(' + index + ')');
gj.datepicker.methods.prev($datepicker, data)();
$new = $calendar.find('tbody tr').last().find('td:eq(' + index + ')');
if ($new.is(':empty')) {
$new = $calendar.find('tbody tr').last().prev().find('td:eq(' + index + ')');
}
}
if ($new.is('[day]')) {
$new.addClass('focused');
$active.removeClass('focused');
}
} else if (e.keyCode == '40') { // down
index = $active.index();
$new = $active.closest('tr').next('tr').find('td:eq(' + index + ')');
if (!$new.is('[day]')) {
gj.datepicker.methods.next($datepicker, data)();
$new = $calendar.find('tbody tr').first().find('td:eq(' + index + ')');
if (!$new.is('[day]')) {
$new = $calendar.find('tbody tr:eq(1)').find('td:eq(' + index + ')');
}
}
if ($new.is('[day]')) {
$new.addClass('focused');
$active.removeClass('focused');
}
} else if (e.keyCode == '37') { // left
$new = $active.prev('td[day]:not(.disabled)');
if ($new.length === 0) {
$new = $active.closest('tr').prev('tr').find('td[day]').last();
}
if ($new.length === 0) {
gj.datepicker.methods.prev($datepicker, data)();
$new = $calendar.find('tbody tr').last().find('td[day]').last();
}
if ($new.length > 0) {
$new.addClass('focused');
$active.removeClass('focused');
}
} else if (e.keyCode == '39') { // right
$new = $active.next('[day]:not(.disabled)');
if ($new.length === 0) {
$new = $active.closest('tr').next('tr').find('td[day]').first();
}
if ($new.length === 0) {
gj.datepicker.methods.next($datepicker, data)();
$new = $calendar.find('tbody tr').first().find('td[day]').first();
}
if ($new.length > 0) {
$new.addClass('focused');
$active.removeClass('focused');
}
} else if (e.keyCode == '13') { // enter
day = parseInt($active.attr('day'), 10);
month = parseInt($active.attr('month'), 10);
year = parseInt($active.attr('year'), 10);
gj.datepicker.methods.dayClickHandler($datepicker, $calendar, data, new Date(year, month, day))();
} else if (e.keyCode == '27') { // esc
$datepicker.close();
}
if ($new.is('[day]')) {
$new.addClass('focused');
$active.removeClass('focused');
}
} else if (e.keyCode == '37') { // left
$new = $active.prev('td[day]:not(.disabled)');
if ($new.length === 0) {
$new = $active.closest('tr').prev('tr').find('td[day]').last();
}
if ($new.length === 0) {
gj.datepicker.methods.prevMonth($datepicker)();
$new = $calendar.find('tbody tr').last().find('td[day]').last();
}
if ($new.length > 0) {
$new.addClass('focused');
$active.removeClass('focused');
}
} else if (e.keyCode == '39' || e.keyCode == '9') { // right/tab(next)
$new = $active.next('[day]:not(.disabled)');
if ($new.length === 0) {
$new = $active.closest('tr').next('tr').find('td[day]').first();
}
if ($new.length === 0) {
gj.datepicker.methods.nextMonth($datepicker)();
$new = $calendar.find('tbody tr').first().find('td[day]').first();
}
if ($new.length > 0) {
$new.addClass('focused');
$active.removeClass('focused');
}
} else if (e.keyCode == '13') { // enter
day = parseInt($active.attr('day'), 10);
month = parseInt($datepicker.attr('month'), 10);
year = parseInt($datepicker.attr('year'), 10);
gj.datepicker.methods.select($datepicker, $calendar, new Date(year, month, day))();
} else if (e.keyCode == '27') { // esc
$datepicker.hide();
}

@@ -592,8 +905,6 @@ }

date = gj.core.parseDate(value, data.format, data.locale);
if (date) {
$calendar = $('body').children('[role="calendar"][guid="' + $datepicker.attr('data-guid') + '"]');
gj.datepicker.methods.select($datepicker, $calendar, date)();
} else {
$datepicker.val('');
}
if (date && date.getTime()) {
$calendar = $('body').find('[role="calendar"][guid="' + $datepicker.attr('data-guid') + '"]');
gj.datepicker.methods.dayClickHandler($datepicker, $calendar, data, date)();
}
return $datepicker;

@@ -605,6 +916,10 @@ }

var data = $datepicker.data(),
$parent = $datepicker.parent();
$parent = $datepicker.parent(),
$picker = $('body').find('[role="calendar"][guid="' + $datepicker.attr('data-guid') + '"]');
if (data) {
$datepicker.off();
$('body').children('[role="calendar"][guid="' + $datepicker.attr('data-guid') + '"]').remove();
if ($picker.parent('[role="modal"]').length > 0) {
$picker.unwrap();
}
$picker.remove();
$datepicker.removeData();

@@ -628,9 +943,15 @@ $datepicker.removeAttr('data-type').removeAttr('data-guid').removeAttr('data-datepicker');

/**
* Event fires when the datepicker is opened. */ show: function ($datepicker) {
return $datepicker.triggerHandler('show');
* Triggered when new value is selected inside the picker.
* */ select: function ($datepicker, type) {
return $datepicker.triggerHandler('select', [type]);
},
/**
* Event fires when the datepicker is closed. */ hide: function ($datepicker) {
return $datepicker.triggerHandler('hide');
* Event fires when the calendar is opened. */ open: function ($datepicker) {
return $datepicker.triggerHandler('open');
},
/**
* Event fires when the calendar is closed. */ close: function ($datepicker) {
return $datepicker.triggerHandler('close');
}

@@ -651,16 +972,10 @@ };

/** Show the calendar. */ self.show = function () {
gj.datepicker.methods.show(this);
/** Open the calendar. */ self.open = function () {
return methods.open(this, this.data());
};
/** Hide the calendar. */ self.hide = function () {
gj.datepicker.methods.hide(this);
/** Close the calendar. */ self.close = function () {
return methods.close(this);
};
//TODO Methods:
self.disableDates = function (dates) { };
self.disableWeekDay = function () { };
self.setMinDate = function () { };
self.setMaxDate = function () { };
$.extend($element, self);

@@ -694,42 +1009,1 @@ if ('true' !== $element.attr('data-datepicker')) {

})(jQuery);
gj.core.messages['bg-bg'] = {
monthNames: ['Януари', 'Февруари', 'Март', 'Април', 'Май', 'Юни', 'Юли', 'Август', 'Септември', 'Октомври', 'Ноември', 'Декември'],
monthShortNames: ['Яну', 'Фев', 'Мар', 'Апр', 'Май', 'Юни', 'Юли', 'Авг', 'Сеп', 'ОКт', 'Ное', 'Дек']
};
gj.datepicker.messages['bg-bg'] = {
weekDays: ['Н', 'П', 'В', 'С', 'Ч', 'П', 'С']
};
gj.core.messages['fr-fr'] = {
monthNames: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'],
monthShortNames: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.' ]
};
gj.datepicker.messages['fr-fr'] = {
weekDays: ['D', 'L', 'M', 'M', 'J', 'V', 'S' ]
};
gj.core.messages['de-de'] = {
monthNames: ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'],
monthShortNames: ['Jan', 'Feb', 'Mär', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez']
};
gj.datepicker.messages['de-de'] = {
weekDays: ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa']
};
gj.core.messages['pt-br'] = {
monthNames: ['Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro'],
monthShortNames: ['Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun', 'Jul', 'Ago', 'Set', 'Out', 'Nov', 'Dez' ]
};
gj.datepicker.messages['pt-br'] = {
//weekDays: ['Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sáb']
weekDays: ['D', 'S', 'T', 'Q', 'Q', 'S', 'S']
};
gj.core.messages['ru-ru'] = {
monthNames: ['Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'],
monthShortNames: ['Янв', 'Фев', 'Мар', 'Апр', 'Май', 'Июн', 'Июл', 'Авг', 'Сен', 'Окт', 'Ноя', 'Дек']
};
gj.datepicker.messages['ru-ru'] = {
weekDays: ['Вс', 'Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб']
};

@@ -1,1 +0,1 @@

gj.datepicker={plugins:{},messages:{"en-us":{weekDays:["S","M","T","W","T","F","S"]}}},gj.datepicker.config={base:{showOtherMonths:!1,selectOtherMonths:!0,width:void 0,minDate:void 0,maxDate:void 0,format:"mm/dd/yyyy",uiLibrary:"materialdesign",iconsLibrary:"materialicons",value:void 0,weekStartDay:0,disableDates:void 0,disableDaysOfWeek:void 0,calendarWeeks:!1,keyboardNavigation:!0,locale:"en-us",icons:{rightIcon:'<i class="gj-icon event" />',previousMonth:'<i class="gj-icon chevron-left" />',nextMonth:'<i class="gj-icon chevron-right" />'},fontSize:void 0,style:{wrapper:"gj-datepicker gj-datepicker-md gj-unselectable",input:"gj-textbox-md",calendar:"gj-calendar gj-calendar-md"}},bootstrap:{style:{wrapper:"gj-datepicker gj-datepicker-bootstrap gj-unselectable input-group",input:"form-control",calendar:"gj-calendar gj-calendar-bootstrap"},iconsLibrary:"glyphicons",showOtherMonths:!0},bootstrap4:{style:{wrapper:"gj-datepicker gj-datepicker-bootstrap gj-unselectable input-group",input:"form-control",calendar:"gj-calendar gj-calendar-bootstrap"},showOtherMonths:!0},fontawesome:{icons:{rightIcon:'<i class="fa fa-calendar" aria-hidden="true"></i>',previousMonth:'<i class="fa fa-chevron-left" aria-hidden="true"></i>',nextMonth:'<i class="fa fa-chevron-right" aria-hidden="true"></i>'}},glyphicons:{icons:{rightIcon:'<span class="glyphicon glyphicon-calendar"></span>',previousMonth:'<span class="glyphicon glyphicon-chevron-left"></span>',nextMonth:'<span class="glyphicon glyphicon-chevron-right"></span>'}}},gj.datepicker.methods={init:function(a){return gj.widget.prototype.init.call(this,a,"datepicker"),this.attr("data-datepicker","true"),gj.datepicker.methods.initialize(this),this},initialize:function(a){var b,c,d=a.data(),e=a.parent('div[role="wrapper"]');c="bootstrap"===d.uiLibrary?$('<span class="input-group-addon">'+d.icons.rightIcon+"</span>"):"bootstrap4"===d.uiLibrary?$('<span class="input-group-append"><span class="input-group-text">'+d.icons.rightIcon+"</span></span>"):$(d.icons.rightIcon),c.attr("role","right-icon"),0===e.length?(e=$('<div role="wrapper" />').addClass(d.style.wrapper),a.wrap(e)):e.addClass(d.style.wrapper),e=a.parent('div[role="wrapper"]'),d.width&&e.css("width",d.width),a.val(d.value).addClass(d.style.input).attr("role","input"),d.fontSize&&a.css("font-size",d.fontSize),c.on("click",function(b){$("body").children('[role="calendar"][guid="'+a.attr("data-guid")+'"]').is(":visible")?gj.datepicker.methods.hide(a):gj.datepicker.methods.show(a)}),a.on("blur",function(){a.timeout=setTimeout(function(){gj.datepicker.methods.hide(a)},500)}),e.append(c),b=gj.datepicker.methods.createCalendar(a),d.keyboardNavigation&&a.on("keydown",gj.datepicker.methods.createKeyDownHandler(a,b))},createCalendar:function(a){var b,c=a.data(),d=$('<div role="calendar" />').addClass(c.style.calendar).attr("guid",a.attr("data-guid")),e=$("<table/>"),f=$("<thead/>");for(c.fontSize&&d.css("font-size",c.fontSize),b=gj.core.parseDate(c.value,c.format,c.locale),!b||isNaN(b.getTime())?b=new Date:a.attr("day",b.getFullYear()+"-"+b.getMonth()+"-"+b.getDate()),a.attr("month",b.getMonth()),a.attr("year",b.getFullYear()),$row=$('<tr role="month-manager" />'),$row.append($("<th><div>"+c.icons.previousMonth+"</div></th>").on("click",gj.datepicker.methods.prevMonth(a))),$row.append('<th colspan="'+(c.calendarWeeks?6:5)+'"><div role="month"></div></th>'),$row.append($("<th><div>"+c.icons.nextMonth+"</div></th>").on("click",gj.datepicker.methods.nextMonth(a))),f.append($row),$row=$('<tr role="week-days" />'),c.calendarWeeks&&$row.append("<th><div>&nbsp;</div></th>"),i=c.weekStartDay;i<gj.datepicker.messages[c.locale].weekDays.length;i++)$row.append("<th><div>"+gj.datepicker.messages[c.locale].weekDays[i]+"</div></th>");for(i=0;i<c.weekStartDay;i++)$row.append("<th><div>"+gj.datepicker.messages[c.locale].weekDays[i]+"</div></th>");return f.append($row),e.append(f),e.append("<tbody/>"),d.append(e),d.hide(),$("body").append(d),d},renderCalendar:function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q=a.data(),r=$("body").children('[role="calendar"][guid="'+a.attr("data-guid")+'"]'),s=r.children("table"),t=s.children("tbody");for(clearTimeout(a.timeout),a.attr("day")?(c=a.attr("day").split("-"),c=new Date(c[0],c[1],c[2])):c=new Date(void 0),e=parseInt(a.attr("month"),10),f=parseInt(a.attr("year"),10),s.find('thead [role="month"]').text(gj.core.messages[q.locale].monthNames[e]+" "+f),g=new Array(31,28,31,30,31,30,31,31,30,31,30,31),f%4==0&&1900!=f&&(g[1]=29),h=g[e],i=(new Date(f,e,1).getDay()+7-q.weekStartDay)%7,t.empty(),b=0,$row=$("<tr />"),l=gj.datepicker.methods.getPrevMonth(e,f),j=1;j<=i;j++)d=g[l.month]-i+j,p=new Date(l.year,l.month,d),q.calendarWeeks&&1===j&&$row.append("<td><div>"+gj.datepicker.methods.getWeekNumber(p)+"</div></td>"),n=l.year===c.getFullYear()&&l.month===c.getMonth()&&d===c.getDate()?$('<td class="selected" />'):$('<td class="other-month" />'),q.showOtherMonths&&(o=$("<div>"+d+"</div>"),n.append(o),q.selectOtherMonths&&gj.datepicker.methods.isSelectable(q,p)?(n.addClass("gj-cursor-pointer"),o.on("click",gj.datepicker.methods.select(a,r,p))):n.addClass("disabled")),$row.append(n),b++;for(j>1&&t.append($row),k=new Date,j=1;j<=h;j++)p=new Date(f,e,j),0==b&&($row=$("<tr>"),q.calendarWeeks&&$row.append("<td><div>"+gj.datepicker.methods.getWeekNumber(p)+"</div></td>")),n=$('<td day="'+j+'" />'),f===c.getFullYear()&&e===c.getMonth()&&j===c.getDate()?n.addClass("selected"):f===k.getFullYear()&&e===k.getMonth()&&j===k.getDate()?n.addClass("today"):n.addClass("current-month"),o=$("<div>"+j+"</div>"),gj.datepicker.methods.isSelectable(q,p)?(n.addClass("gj-cursor-pointer"),o.on("click",gj.datepicker.methods.select(a,r,p))):n.addClass("disabled"),n.append(o),$row.append(n),7==++b&&(t.append($row),b=0);for(m=gj.datepicker.methods.getNextMonth(e,f),j=1;0!=b;j++)p=new Date(m.year,m.month,j),n=m.year===c.getFullYear()&&m.month===c.getMonth()&&j===c.getDate()?$('<td class="selected" />'):$('<td class="other-month" />'),q.showOtherMonths&&(o=$("<div>"+j+"</div>"),n.append(o),q.selectOtherMonths&&gj.datepicker.methods.isSelectable(q,p)?(n.addClass("gj-cursor-pointer"),o.on("click",gj.datepicker.methods.select(a,r,p))):n.addClass("disabled")),$row.append(n),7==++b&&(t.append($row),b=0)},getWeekNumber:function(a){var b=new Date(a.valueOf());b.setDate(b.getDate()+6),b=new Date(Date.UTC(b.getFullYear(),b.getMonth(),b.getDate())),b.setUTCDate(b.getUTCDate()+4-(b.getUTCDay()||7));var c=new Date(Date.UTC(b.getUTCFullYear(),0,1));return Math.ceil(((b-c)/864e5+1)/7)},getMinDate:function(a){var b;return a.minDate&&("string"==typeof a.minDate?b=gj.core.parseDate(a.minDate,a.format,a.locale):"function"==typeof a.minDate?"string"==typeof(b=a.minDate())&&(b=gj.core.parseDate(b,a.format,a.locale)):"function"==typeof a.minDate.getMonth&&(b=a.minDate)),b},getMaxDate:function(a){var b;return a.maxDate&&("string"==typeof a.maxDate?b=gj.core.parseDate(a.maxDate,a.format,a.locale):"function"==typeof a.maxDate?"string"==typeof(b=a.maxDate())&&(b=gj.core.parseDate(b,a.format,a.locale)):"function"==typeof a.maxDate.getMonth&&(b=a.maxDate)),b},isSelectable:function(a,b){var c,d=!0,e=gj.datepicker.methods.getMinDate(a),f=gj.datepicker.methods.getMaxDate(a);if(e&&b<e?d=!1:f&&b>f&&(d=!1),d){if(a.disableDates)if($.isArray(a.disableDates))for(c=0;c<a.disableDates.length;c++)a.disableDates[c]instanceof Date&&a.disableDates[c].getTime()===b.getTime()?d=!1:"string"==typeof a.disableDates[c]&&gj.core.parseDate(a.disableDates[c],a.format,a.locale).getTime()===b.getTime()&&(d=!1);else a.disableDates instanceof Function&&(d=a.disableDates(b));$.isArray(a.disableDaysOfWeek)&&a.disableDaysOfWeek.indexOf(b.getDay())>-1&&(d=!1)}return d},getPrevMonth:function(a,b){return date=new Date(b,a,1),date.setMonth(date.getMonth()-1),{month:date.getMonth(),year:date.getFullYear()}},getNextMonth:function(a,b){return date=new Date(b,a,1),date.setMonth(date.getMonth()+1),{month:date.getMonth(),year:date.getFullYear()}},prevMonth:function(a){return function(){var b,c=parseInt(a.attr("month"),10),d=parseInt(a.attr("year"),10);b=gj.datepicker.methods.getPrevMonth(c,d),a.attr("month",b.month),a.attr("year",b.year),gj.datepicker.methods.renderCalendar(a),a.focus()}},nextMonth:function(a){return function(){var b,c=parseInt(a.attr("month"),10),d=parseInt(a.attr("year"),10);b=gj.datepicker.methods.getNextMonth(c,d),a.attr("month",b.month),a.attr("year",b.year),gj.datepicker.methods.renderCalendar(a),a.focus()}},select:function(a,b,c){return function(b){var d,e=c.getMonth(),f=c.getFullYear(),g=a.data();return d=gj.core.formatDate(c,g.format,g.locale),a.val(d),gj.datepicker.events.change(a),a.attr("day",f+"-"+e+"-"+c.getDate()),a.attr("month",e),a.attr("year",f),gj.datepicker.methods.hide(a),a}},show:function(a){var b=(a.data(),a.offset()),c=$("body").children('[role="calendar"][guid="'+a.attr("data-guid")+'"]');gj.datepicker.methods.renderCalendar(a),c.css("left",b.left).css("top",b.top+a.outerHeight(!0)+3),c.show(),a.focus(),gj.datepicker.events.show(a)},hide:function(a){$("body").children('[role="calendar"][guid="'+a.attr("data-guid")+'"]').hide(),gj.datepicker.events.hide(a)},createKeyDownHandler:function(a,b){return function(c){var d,e,f,g,h,i=gj.datepicker.methods.getActiveCell(b);c=c||window.event,"38"==c.keyCode?(g=i.index(),h=i.closest("tr").prev("tr").find("td:eq("+g+")"),h.is("[day]")||(gj.datepicker.methods.prevMonth(a)(),h=b.find("tbody tr").last().find("td:eq("+g+")")),h.is("[day]")&&(h.addClass("focused"),i.removeClass("focused"))):"40"==c.keyCode?(g=i.index(),h=i.closest("tr").next("tr").find("td:eq("+g+")"),h.is("[day]")||(gj.datepicker.methods.nextMonth(a)(),h=b.find("tbody tr").first().find("td:eq("+g+")"),h.is("[day]")||(h=b.find("tbody tr:eq(1)").find("td:eq("+g+")"))),h.is("[day]")&&(h.addClass("focused"),i.removeClass("focused"))):"37"==c.keyCode?(h=i.prev("td[day]:not(.disabled)"),0===h.length&&(h=i.closest("tr").prev("tr").find("td[day]").last()),0===h.length&&(gj.datepicker.methods.prevMonth(a)(),h=b.find("tbody tr").last().find("td[day]").last()),h.length>0&&(h.addClass("focused"),i.removeClass("focused"))):"39"==c.keyCode||"9"==c.keyCode?(h=i.next("[day]:not(.disabled)"),0===h.length&&(h=i.closest("tr").next("tr").find("td[day]").first()),0===h.length&&(gj.datepicker.methods.nextMonth(a)(),h=b.find("tbody tr").first().find("td[day]").first()),h.length>0&&(h.addClass("focused"),i.removeClass("focused"))):"13"==c.keyCode?(f=parseInt(i.attr("day"),10),d=parseInt(a.attr("month"),10),e=parseInt(a.attr("year"),10),gj.datepicker.methods.select(a,b,new Date(e,d,f))()):"27"==c.keyCode&&a.hide()}},getActiveCell:function(a){var b=a.find("td[day].focused");return 0===b.length&&(b=a.find("td[day].selected"),0===b.length&&(b=a.find("td[day].today"),0===b.length&&(b=a.find("td[day]:not(.disabled)").first()))),b},value:function(a,b){var c,d,e=a.data();return void 0===b?a.val():(d=gj.core.parseDate(b,e.format,e.locale),d?(c=$("body").children('[role="calendar"][guid="'+a.attr("data-guid")+'"]'),gj.datepicker.methods.select(a,c,d)()):a.val(""),a)},destroy:function(a){var b=a.data(),c=a.parent();return b&&(a.off(),$("body").children('[role="calendar"][guid="'+a.attr("data-guid")+'"]').remove(),a.removeData(),a.removeAttr("data-type").removeAttr("data-guid").removeAttr("data-datepicker"),a.removeClass(),c.children('[role="right-icon"]').remove(),a.unwrap()),a}},gj.datepicker.events={change:function(a){return a.triggerHandler("change")},show:function(a){return a.triggerHandler("show")},hide:function(a){return a.triggerHandler("hide")}},gj.datepicker.widget=function(a,b){var c=this,d=gj.datepicker.methods;return c.value=function(a){return d.value(this,a)},c.destroy=function(){return d.destroy(this)},c.show=function(){gj.datepicker.methods.show(this)},c.hide=function(){gj.datepicker.methods.hide(this)},c.disableDates=function(a){},c.disableWeekDay=function(){},c.setMinDate=function(){},c.setMaxDate=function(){},$.extend(a,c),"true"!==a.attr("data-datepicker")&&d.init.call(a,b),a},gj.datepicker.widget.prototype=new gj.widget,gj.datepicker.widget.constructor=gj.datepicker.widget,function(a){a.fn.datepicker=function(a){var b;if(this&&this.length){if("object"!=typeof a&&a){if(b=new gj.datepicker.widget(this,null),b[a])return b[a].apply(this,Array.prototype.slice.call(arguments,1));throw"Method "+a+" does not exist."}return new gj.datepicker.widget(this,a)}}}(jQuery),gj.core.messages["bg-bg"]={monthNames:["Януари","Февруари","Март","Април","Май","Юни","Юли","Август","Септември","Октомври","Ноември","Декември"],monthShortNames:["Яну","Фев","Мар","Апр","Май","Юни","Юли","Авг","Сеп","ОКт","Ное","Дек"]},gj.datepicker.messages["bg-bg"]={weekDays:["Н","П","В","С","Ч","П","С"]},gj.core.messages["fr-fr"]={monthNames:["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"],monthShortNames:["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc."]},gj.datepicker.messages["fr-fr"]={weekDays:["D","L","M","M","J","V","S"]},gj.core.messages["de-de"]={monthNames:["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],monthShortNames:["Jan","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"]},gj.datepicker.messages["de-de"]={weekDays:["So","Mo","Di","Mi","Do","Fr","Sa"]},gj.core.messages["pt-br"]={monthNames:["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],monthShortNames:["Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez"]},gj.datepicker.messages["pt-br"]={weekDays:["D","S","T","Q","Q","S","S"]},gj.core.messages["ru-ru"]={monthNames:["Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь"],monthShortNames:["Янв","Фев","Мар","Апр","Май","Июн","Июл","Авг","Сен","Окт","Ноя","Дек"]},gj.datepicker.messages["ru-ru"]={weekDays:["Вс","Пн","Вт","Ср","Чт","Пт","Сб"]};
gj.datepicker={plugins:{}},gj.datepicker.config={base:{showOtherMonths:!1,selectOtherMonths:!0,width:void 0,minDate:void 0,maxDate:void 0,format:"mm/dd/yyyy",uiLibrary:"materialdesign",iconsLibrary:"materialicons",value:void 0,weekStartDay:0,disableDates:void 0,disableDaysOfWeek:void 0,calendarWeeks:!1,keyboardNavigation:!0,locale:"en-us",icons:{rightIcon:'<i class="gj-icon">event</i>',previousMonth:'<i class="gj-icon chevron-left"></i>',nextMonth:'<i class="gj-icon chevron-right"></i>'},fontSize:void 0,size:"default",modal:!1,header:!1,footer:!1,showOnFocus:!0,showRightIcon:!0,style:{modal:"gj-modal",wrapper:"gj-datepicker gj-datepicker-md gj-unselectable",input:"gj-textbox-md",calendar:"gj-picker gj-picker-md datepicker gj-unselectable",footer:"",button:"gj-button-md"}},bootstrap:{style:{wrapper:"gj-datepicker gj-datepicker-bootstrap gj-unselectable input-group",input:"form-control",calendar:"gj-picker gj-picker-bootstrap datepicker gj-unselectable",footer:"modal-footer",button:"btn btn-default"},iconsLibrary:"glyphicons",showOtherMonths:!0},bootstrap4:{style:{wrapper:"gj-datepicker gj-datepicker-bootstrap gj-unselectable input-group",input:"form-control",calendar:"gj-picker gj-picker-bootstrap datepicker gj-unselectable",footer:"modal-footer",button:"btn btn-default"},showOtherMonths:!0},fontawesome:{icons:{rightIcon:'<i class="fa fa-calendar" aria-hidden="true"></i>',previousMonth:'<i class="fa fa-chevron-left" aria-hidden="true"></i>',nextMonth:'<i class="fa fa-chevron-right" aria-hidden="true"></i>'}},glyphicons:{icons:{rightIcon:'<span class="glyphicon glyphicon-calendar"></span>',previousMonth:'<span class="glyphicon glyphicon-chevron-left"></span>',nextMonth:'<span class="glyphicon glyphicon-chevron-right"></span>'}}},gj.datepicker.methods={init:function(a){return gj.widget.prototype.init.call(this,a,"datepicker"),this.attr("data-datepicker","true"),gj.datepicker.methods.initialize(this,this.data()),this},initialize:function(a,b){var c,d,e=a.parent('div[role="wrapper"]');0===e.length?(e=$('<div role="wrapper" />').addClass(b.style.wrapper),a.wrap(e)):e.addClass(b.style.wrapper),e=a.parent('div[role="wrapper"]'),b.width&&e.css("width",b.width),a.val(b.value).addClass(b.style.input).attr("role","input"),b.fontSize&&a.css("font-size",b.fontSize),"bootstrap"===b.uiLibrary||"bootstrap4"===b.uiLibrary?"small"===b.size?(e.addClass("input-group-sm"),a.addClass("form-control-sm")):"large"===b.size&&(e.addClass("input-group-lg"),a.addClass("form-control-lg")):"small"===b.size?e.addClass("small"):"large"===b.size&&e.addClass("large"),b.showRightIcon&&(d="bootstrap"===b.uiLibrary?$('<span class="input-group-addon">'+b.icons.rightIcon+"</span>"):"bootstrap4"===b.uiLibrary?$('<span class="input-group-append"><button class="btn btn-outline-secondary border-left-0" type="button">'+b.icons.rightIcon+"</button></span>"):$(b.icons.rightIcon),d.attr("role","right-icon"),d.on("click",function(c){$("body").find('[role="calendar"][guid="'+a.attr("data-guid")+'"]').is(":visible")?gj.datepicker.methods.close(a):gj.datepicker.methods.open(a,b)}),e.append(d)),b.showOnFocus&&a.on("focus",function(){gj.datepicker.methods.open(a,b)}),c=gj.datepicker.methods.createCalendar(a,b),!0!==b.footer&&(a.on("blur",function(){a.timeout=setTimeout(function(){gj.datepicker.methods.close(a)},500)}),c.mousedown(function(){return clearTimeout(a.timeout),document.activeElement!==a[0]&&a.focus(),!1}),c.on("click",function(){clearTimeout(a.timeout),document.activeElement!==a[0]&&a.focus()})),b.keyboardNavigation&&$(document).on("keydown",gj.datepicker.methods.createKeyDownHandler(a,c,b))},createCalendar:function(a,b){var c,d,e,f,g,h=$('<div role="calendar" type="month"/>').addClass(b.style.calendar).attr("guid",a.attr("data-guid"));return b.fontSize&&h.css("font-size",b.fontSize),c=gj.core.parseDate(b.value,b.format,b.locale),!c||isNaN(c.getTime())?c=new Date:a.attr("day",c.getFullYear()+"-"+c.getMonth()+"-"+c.getDate()),h.attr("month",c.getMonth()),h.attr("year",c.getFullYear()),gj.datepicker.methods.renderHeader(a,h,b,c),d=$('<div role="body" />'),h.append(d),b.footer&&(e=$('<div role="footer" class="'+b.style.footer+'" />'),f=$('<button class="'+b.style.button+'">'+gj.core.messages[b.locale].cancel+"</button>"),f.on("click",function(){a.close()}),e.append(f),g=$('<button class="'+b.style.button+'">'+gj.core.messages[b.locale].ok+"</button>"),g.on("click",function(){var c,d,e=h.attr("selectedDay");e?(d=e.split("-"),c=new Date(d[0],d[1],d[2],h.attr("hour")||0,h.attr("minute")||0),gj.datepicker.methods.change(a,h,b,c)):a.close()}),e.append(g),h.append(e)),h.hide(),$("body").append(h),b.modal&&(h.wrapAll('<div role="modal" class="'+b.style.modal+'"/>'),gj.core.center(h)),h},renderHeader:function(a,b,c,d){var e,f,g;c.header&&(e=$('<div role="header" />'),g=$('<div role="year" />').on("click",function(){gj.datepicker.methods.renderDecade(a,b,c),g.addClass("selected"),f.removeClass("selected")}),g.html(gj.core.formatDate(d,"yyyy",c.locale)),e.append(g),f=$('<div role="date" class="selected" />').on("click",function(){gj.datepicker.methods.renderMonth(a,b,c),f.addClass("selected"),g.removeClass("selected")}),f.html(gj.core.formatDate(d,"ddd, mmm dd",c.locale)),e.append(f),b.append(e))},updateHeader:function(a,b,c){a.find('[role="header"] [role="year"]').removeClass("selected").html(gj.core.formatDate(c,"yyyy",b.locale)),a.find('[role="header"] [role="date"]').addClass("selected").html(gj.core.formatDate(c,"ddd, mmm dd",b.locale)),a.find('[role="header"] [role="hour"]').removeClass("selected").html(gj.core.formatDate(c,"HH",b.locale)),a.find('[role="header"] [role="minute"]').removeClass("selected").html(gj.core.formatDate(c,"MM",b.locale))},createNavigation:function(a,b,c,d){var e,f,g=$("<thead/>");for(f=$('<div role="navigator" />'),f.append($("<div>"+d.icons.previousMonth+"</div>").on("click",gj.datepicker.methods.prev(a,d))),f.append($('<div role="period"></div>').on("click",gj.datepicker.methods.changePeriod(a,d))),f.append($("<div>"+d.icons.nextMonth+"</div>").on("click",gj.datepicker.methods.next(a,d))),b.append(f),e=$('<tr role="week-days" />'),d.calendarWeeks&&e.append("<th><div>&nbsp;</div></th>"),i=d.weekStartDay;i<gj.core.messages[d.locale].weekDaysMin.length;i++)e.append("<th><div>"+gj.core.messages[d.locale].weekDaysMin[i]+"</div></th>");for(i=0;i<d.weekStartDay;i++)e.append("<th><div>"+gj.core.messages[d.locale].weekDaysMin[i]+"</div></th>");g.append(e),c.append(g)},renderMonth:function(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s=b.children('[role="body"]'),t=$("<table/>"),u=$("<tbody/>");for(s.off().empty(),gj.datepicker.methods.createNavigation(a,s,t,c),g=parseInt(b.attr("month"),10),h=parseInt(b.attr("year"),10),b.attr("type","month"),b.find('div[role="period"]').text(gj.core.messages[c.locale].monthNames[g]+" "+h),i=new Array(31,28,31,30,31,30,31,31,30,31,30,31),h%4==0&&1900!=h&&(i[1]=29),j=i[g],k=(new Date(h,g,1).getDay()+7-c.weekStartDay)%7,d=0,$row=$("<tr />"),n=gj.datepicker.methods.getPrevMonth(g,h),l=1;l<=k;l++)f=i[n.month]-k+l,r=new Date(n.year,n.month,f),c.calendarWeeks&&1===l&&$row.append('<td class="calendar-week"><div>'+gj.datepicker.methods.getWeekNumber(r)+"</div></td>"),p=$('<td class="other-month" />'),c.showOtherMonths&&(q=$("<div>"+f+"</div>"),p.append(q),c.selectOtherMonths&&gj.datepicker.methods.isSelectable(c,r)?(p.addClass("gj-cursor-pointer").attr("day",f).attr("month",n.month).attr("year",n.year),q.on("click",gj.datepicker.methods.dayClickHandler(a,b,c,r)),q.on("mousedown",function(a){a.stopPropagation()})):p.addClass("disabled")),$row.append(p),d++;for(l>1&&u.append($row),m=new Date,l=1;l<=j;l++)r=new Date(h,g,l),0==d&&($row=$("<tr>"),c.calendarWeeks&&$row.append('<td class="calendar-week"><div>'+gj.datepicker.methods.getWeekNumber(r)+"</div></td>")),p=$('<td day="'+l+'" month="'+g+'" year="'+h+'" />'),h===m.getFullYear()&&g===m.getMonth()&&l===m.getDate()?p.addClass("today"):p.addClass("current-month"),q=$("<div>"+l+"</div>"),gj.datepicker.methods.isSelectable(c,r)?(p.addClass("gj-cursor-pointer"),q.on("click",gj.datepicker.methods.dayClickHandler(a,b,c,r)),q.on("mousedown",function(a){a.stopPropagation()})):p.addClass("disabled"),p.append(q),$row.append(p),7==++d&&(u.append($row),d=0);for(o=gj.datepicker.methods.getNextMonth(g,h),l=1;0!=d;l++)r=new Date(o.year,o.month,l),p=$('<td class="other-month" />'),c.showOtherMonths&&(q=$("<div>"+l+"</div>"),c.selectOtherMonths&&gj.datepicker.methods.isSelectable(c,r)?(p.addClass("gj-cursor-pointer").attr("day",l).attr("month",o.month).attr("year",o.year),q.on("click",gj.datepicker.methods.dayClickHandler(a,b,c,r)),q.on("mousedown",function(a){a.stopPropagation()})):p.addClass("disabled"),p.append(q)),$row.append(p),7==++d&&(u.append($row),d=0);t.append(u),s.append(t),b.attr("selectedDay")&&(e=b.attr("selectedDay").split("-"),r=new Date(e[0],e[1],e[2],b.attr("hour")||0,b.attr("minute")||0),b.find('tbody td[day="'+e[2]+'"][month="'+e[1]+'"]').addClass("selected"),gj.datepicker.methods.updateHeader(b,c,r))},renderYear:function(a,b,c){var d,e,f,g,h=b.find('>[role="body"]>table'),i=h.children("tbody");for(h.children("thead").hide(),d=parseInt(b.attr("year"),10),b.attr("type","year"),b.find('div[role="period"]').text(d),i.empty(),e=0;e<3;e++){for($row=$("<tr />"),f=4*e;f<=4*e+3;f++)g=$("<div>"+gj.core.messages[c.locale].monthShortNames[f]+"</div>"),g.on("click",gj.datepicker.methods.selectMonth(a,b,c,f)),$cell=$("<td></td>").append(g),$row.append($cell);i.append($row)}},renderDecade:function(a,b,c){var d,e,f,g,h,i=b.find('>[role="body"]>table'),j=i.children("tbody");for(i.children("thead").hide(),d=parseInt(b.attr("year"),10),e=d-d%10,b.attr("type","decade"),b.find('div[role="period"]').text(e+" - "+(e+9)),j.empty(),f=e-1;f<=e+10;f+=4){for($row=$("<tr />"),g=f;g<=f+3;g++)h=$("<div>"+g+"</div>"),h.on("click",gj.datepicker.methods.selectYear(a,b,c,g)),$cell=$("<td></td>").append(h),$row.append($cell);j.append($row)}},renderCentury:function(a,b,c){var d,e,f,g,h,i=b.find('>[role="body"]>table'),j=i.children("tbody");for(i.children("thead").hide(),d=parseInt(b.attr("year"),10),e=d-d%100,b.attr("type","century"),b.find('div[role="period"]').text(e+" - "+(e+99)),j.empty(),f=e-10;f<e+100;f+=40){for($row=$("<tr />"),g=f;g<=f+30;g+=10)h=$("<div>"+g+"</div>"),h.on("click",gj.datepicker.methods.selectDecade(a,b,c,g)),$cell=$("<td></td>").append(h),$row.append($cell);j.append($row)}},getWeekNumber:function(a){var b=new Date(a.valueOf());b.setDate(b.getDate()+6),b=new Date(Date.UTC(b.getFullYear(),b.getMonth(),b.getDate())),b.setUTCDate(b.getUTCDate()+4-(b.getUTCDay()||7));var c=new Date(Date.UTC(b.getUTCFullYear(),0,1));return Math.ceil(((b-c)/864e5+1)/7)},getMinDate:function(a){var b;return a.minDate&&("string"==typeof a.minDate?b=gj.core.parseDate(a.minDate,a.format,a.locale):"function"==typeof a.minDate?"string"==typeof(b=a.minDate())&&(b=gj.core.parseDate(b,a.format,a.locale)):"function"==typeof a.minDate.getMonth&&(b=a.minDate)),b},getMaxDate:function(a){var b;return a.maxDate&&("string"==typeof a.maxDate?b=gj.core.parseDate(a.maxDate,a.format,a.locale):"function"==typeof a.maxDate?"string"==typeof(b=a.maxDate())&&(b=gj.core.parseDate(b,a.format,a.locale)):"function"==typeof a.maxDate.getMonth&&(b=a.maxDate)),b},isSelectable:function(a,b){var c,d=!0,e=gj.datepicker.methods.getMinDate(a),f=gj.datepicker.methods.getMaxDate(a);if(e&&b<e?d=!1:f&&b>f&&(d=!1),d){if(a.disableDates)if($.isArray(a.disableDates))for(c=0;c<a.disableDates.length;c++)a.disableDates[c]instanceof Date&&a.disableDates[c].getTime()===b.getTime()?d=!1:"string"==typeof a.disableDates[c]&&gj.core.parseDate(a.disableDates[c],a.format,a.locale).getTime()===b.getTime()&&(d=!1);else a.disableDates instanceof Function&&(d=a.disableDates(b));$.isArray(a.disableDaysOfWeek)&&a.disableDaysOfWeek.indexOf(b.getDay())>-1&&(d=!1)}return d},getPrevMonth:function(a,b){return date=new Date(b,a,1),date.setMonth(date.getMonth()-1),{month:date.getMonth(),year:date.getFullYear()}},getNextMonth:function(a,b){return date=new Date(b,a,1),date.setMonth(date.getMonth()+1),{month:date.getMonth(),year:date.getFullYear()}},prev:function(a,b){return function(){var c,d,e,f,g,h=$("body").find('[role="calendar"][guid="'+a.attr("data-guid")+'"]');switch(e=parseInt(h.attr("year"),10),h.attr("type")){case"month":d=parseInt(h.attr("month"),10),c=gj.datepicker.methods.getPrevMonth(d,e),h.attr("month",c.month),h.attr("year",c.year),gj.datepicker.methods.renderMonth(a,h,b);break;case"year":h.attr("year",e-1),gj.datepicker.methods.renderYear(a,h,b);break;case"decade":f=e-e%10,h.attr("year",f-10),gj.datepicker.methods.renderDecade(a,h,b);break;case"century":g=e-e%100,h.attr("year",g-100),gj.datepicker.methods.renderCentury(a,h,b)}}},next:function(a,b){return function(){var c,d,e,f,g,h=$("body").find('[role="calendar"][guid="'+a.attr("data-guid")+'"]');switch(e=parseInt(h.attr("year"),10),h.attr("type")){case"month":d=parseInt(h.attr("month"),10),c=gj.datepicker.methods.getNextMonth(d,e),h.attr("month",c.month),h.attr("year",c.year),gj.datepicker.methods.renderMonth(a,h,b);break;case"year":h.attr("year",e+1),gj.datepicker.methods.renderYear(a,h,b);break;case"decade":f=e-e%10,h.attr("year",f+10),gj.datepicker.methods.renderDecade(a,h,b);break;case"century":g=e-e%100,h.attr("year",g+100),gj.datepicker.methods.renderCentury(a,h,b)}}},changePeriod:function(a,b){return function(c){var d=$("body").find('[role="calendar"][guid="'+a.attr("data-guid")+'"]');switch(d.attr("type")){case"month":gj.datepicker.methods.renderYear(a,d,b);break;case"year":gj.datepicker.methods.renderDecade(a,d,b);break;case"decade":gj.datepicker.methods.renderCentury(a,d,b)}}},dayClickHandler:function(a,b,c,d){return function(e){return e&&e.stopPropagation(),gj.datepicker.methods.selectDay(a,b,c,d),!0!==c.footer&&!1!==c.autoClose&&gj.datepicker.methods.change(a,b,c,d),a}},change:function(a,b,c,d){var e=(d.getDate(),d.getMonth()),f=d.getFullYear(),g=gj.core.formatDate(d,c.format,c.locale);b.attr("month",e),b.attr("year",f),a.val(g),gj.datepicker.events.change(a),"none"!==window.getComputedStyle(b[0]).display&&gj.datepicker.methods.close(a)},selectDay:function(a,b,c,d){var e=d.getDate(),f=d.getMonth(),g=d.getFullYear();b.attr("selectedDay",g+"-"+f+"-"+e),b.find("tbody td").removeClass("selected"),b.find('tbody td[day="'+e+'"][month="'+f+'"]').addClass("selected"),gj.datepicker.methods.updateHeader(b,c,d),gj.datepicker.events.select(a,"day")},selectMonth:function(a,b,c,d){return function(e){b.attr("month",d),gj.datepicker.methods.renderMonth(a,b,c),gj.datepicker.events.select(a,"month")}},selectYear:function(a,b,c,d){return function(e){b.attr("year",d),gj.datepicker.methods.renderYear(a,b,c),gj.datepicker.events.select(a,"year")}},selectDecade:function(a,b,c,d){return function(e){b.attr("year",d),gj.datepicker.methods.renderDecade(a,b,c),gj.datepicker.events.select(a,"decade")}},open:function(a,b){var c,d=$("body").find('[role="calendar"][guid="'+a.attr("data-guid")+'"]');switch(a.val()?a.value(a.val()):(c=new Date,d.attr("month",c.getMonth()),d.attr("year",c.getFullYear())),d.attr("type")){case"month":gj.datepicker.methods.renderMonth(a,d,b);break;case"year":gj.datepicker.methods.renderYear(a,d,b);break;case"decade":gj.datepicker.methods.renderDecade(a,d,b);break;case"century":gj.datepicker.methods.renderCentury(a,d,b)}d.show(),d.closest('div[role="modal"]').show(),b.modal?gj.core.center(d):(gj.core.setChildPosition(a[0],d[0]),document.activeElement!==a[0]&&a.focus()),clearTimeout(a.timeout),gj.datepicker.events.open(a)},close:function(a){var b=$("body").find('[role="calendar"][guid="'+a.attr("data-guid")+'"]');b.hide(),b.closest('div[role="modal"]').hide(),gj.datepicker.events.close(a)},createKeyDownHandler:function(a,b,c){return function(d){var e,f,g,h,i,j,d=d||window.event;"none"!==window.getComputedStyle(b[0]).display&&(j=gj.datepicker.methods.getActiveCell(b),"38"==d.keyCode?(h=j.index(),i=j.closest("tr").prev("tr").find("td:eq("+h+")"),i.is("[day]")||(gj.datepicker.methods.prev(a,c)(),i=b.find("tbody tr").last().find("td:eq("+h+")"),i.is(":empty")&&(i=b.find("tbody tr").last().prev().find("td:eq("+h+")"))),i.is("[day]")&&(i.addClass("focused"),j.removeClass("focused"))):"40"==d.keyCode?(h=j.index(),i=j.closest("tr").next("tr").find("td:eq("+h+")"),i.is("[day]")||(gj.datepicker.methods.next(a,c)(),i=b.find("tbody tr").first().find("td:eq("+h+")"),i.is("[day]")||(i=b.find("tbody tr:eq(1)").find("td:eq("+h+")"))),i.is("[day]")&&(i.addClass("focused"),j.removeClass("focused"))):"37"==d.keyCode?(i=j.prev("td[day]:not(.disabled)"),0===i.length&&(i=j.closest("tr").prev("tr").find("td[day]").last()),0===i.length&&(gj.datepicker.methods.prev(a,c)(),i=b.find("tbody tr").last().find("td[day]").last()),i.length>0&&(i.addClass("focused"),j.removeClass("focused"))):"39"==d.keyCode?(i=j.next("[day]:not(.disabled)"),0===i.length&&(i=j.closest("tr").next("tr").find("td[day]").first()),0===i.length&&(gj.datepicker.methods.next(a,c)(),i=b.find("tbody tr").first().find("td[day]").first()),i.length>0&&(i.addClass("focused"),j.removeClass("focused"))):"13"==d.keyCode?(g=parseInt(j.attr("day"),10),e=parseInt(j.attr("month"),10),f=parseInt(j.attr("year"),10),gj.datepicker.methods.dayClickHandler(a,b,c,new Date(f,e,g))()):"27"==d.keyCode&&a.close())}},getActiveCell:function(a){var b=a.find("td[day].focused");return 0===b.length&&(b=a.find("td[day].selected"),0===b.length&&(b=a.find("td[day].today"),0===b.length&&(b=a.find("td[day]:not(.disabled)").first()))),b},value:function(a,b){var c,d,e=a.data();return void 0===b?a.val():(d=gj.core.parseDate(b,e.format,e.locale),d&&d.getTime()&&(c=$("body").find('[role="calendar"][guid="'+a.attr("data-guid")+'"]'),gj.datepicker.methods.dayClickHandler(a,c,e,d)()),a)},destroy:function(a){var b=a.data(),c=a.parent(),d=$("body").find('[role="calendar"][guid="'+a.attr("data-guid")+'"]');return b&&(a.off(),d.parent('[role="modal"]').length>0&&d.unwrap(),d.remove(),a.removeData(),a.removeAttr("data-type").removeAttr("data-guid").removeAttr("data-datepicker"),a.removeClass(),c.children('[role="right-icon"]').remove(),a.unwrap()),a}},gj.datepicker.events={change:function(a){return a.triggerHandler("change")},select:function(a,b){return a.triggerHandler("select",[b])},open:function(a){return a.triggerHandler("open")},close:function(a){return a.triggerHandler("close")}},gj.datepicker.widget=function(a,b){var c=this,d=gj.datepicker.methods;return c.value=function(a){return d.value(this,a)},c.destroy=function(){return d.destroy(this)},c.open=function(){return d.open(this,this.data())},c.close=function(){return d.close(this)},$.extend(a,c),"true"!==a.attr("data-datepicker")&&d.init.call(a,b),a},gj.datepicker.widget.prototype=new gj.widget,gj.datepicker.widget.constructor=gj.datepicker.widget,function(a){a.fn.datepicker=function(a){var b;if(this&&this.length){if("object"!=typeof a&&a){if(b=new gj.datepicker.widget(this,null),b[a])return b[a].apply(this,Array.prototype.slice.call(arguments,1));throw"Method "+a+" does not exist."}return new gj.datepicker.widget(this,a)}}}(jQuery);
{
"name": "datepicker-bootstrap",
"version": "1.8.0",
"version": "1.9.11",
"description": "Datepicker by Gijgo.com is a plug-in for the jQuery Javascript library. It is a very fast and extandable tool, and will add advanced interaction controls to any date field. This plugin allows you to create datepickers using bootstrap or material design styles. Free open source tool distributed under MIT License.",

@@ -5,0 +5,0 @@ "main": "js/datepicker.js",

@@ -16,3 +16,5 @@ <a href="http://gijgo.com/datepicker">Datepicker</a> by Gijgo.com is a plug-in for the jQuery Javascript library. It is a very fast and extandable tool, and will add advanced interaction controls to any date field. This plugin allows you to create datepickers using bootstrap or material design styles. Free open source tool distributed under MIT License.

6. [Angular 6 Datepicker](http://gijgo.com/datepicker/example/angular-6)
<h2>Getting Started</h2>

@@ -24,3 +26,3 @@

<meta charset="utf-8" />
<title>Checkbox example</title>
<title>Datepicker example</title>
<script src="https://code.jquery.com/jquery-3.2.1.min.js" integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4=" crossorigin="anonymous"></script>

@@ -27,0 +29,0 @@ <script src="/js/core.js" type="text/javascript"></script>

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc