Project

General

Profile

1
!function(t){var e;window.UIkit&&(e=t(UIkit)),"function"==typeof define&&define.amd&&define("uikit-datepicker",["uikit"],function(){return e||t(UIkit)})}(function(m){"use strict";var r,d=!1;return m.component("datepicker",{defaults:{mobile:!1,weekstart:1,i18n:{months:["January","February","March","April","May","June","July","August","September","October","November","December"],weekdays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]},format:"DD.MM.YYYY",offsettop:5,maxDate:!1,minDate:!1,pos:"auto",addClass:"",template:function(t,e){var a,i="";if(i+='<div class="uk-datepicker-nav uk-clearfix">',i+='<a href="" class="uk-datepicker-previous"></a>',i+='<a href="" class="uk-datepicker-next"></a>',m.formSelect){var o,n,s,r=(new Date).getFullYear(),d=[];for(a=0;a<e.i18n.months.length;a++)a==t.month?d.push('<option value="'+a+'" selected>'+e.i18n.months[a]+"</option>"):d.push('<option value="'+a+'">'+e.i18n.months[a]+"</option>");for(o='<span class="uk-form-select">'+e.i18n.months[t.month]+'<select class="update-picker-month">'+d.join("")+"</select></span>",d=[],n=t.minDate?t.minDate.year():r-50,s=t.maxDate?t.maxDate.year():r+20,a=n;a<=s;a++)a==t.year?d.push('<option value="'+a+'" selected>'+a+"</option>"):d.push('<option value="'+a+'">'+a+"</option>");i+='<div class="uk-datepicker-heading">'+o+" "+('<span class="uk-form-select">'+t.year+'<select class="update-picker-year">'+d.join("")+"</select></span>")+"</div>"}else i+='<div class="uk-datepicker-heading">'+e.i18n.months[t.month]+" "+t.year+"</div>";for(i+="</div>",i+='<table class="uk-datepicker-table">',i+="<thead>",a=0;a<t.weekdays.length;a++)t.weekdays[a]&&(i+="<th>"+t.weekdays[a]+"</th>");for(i+="</thead>",i+="<tbody>",a=0;a<t.days.length;a++)if(t.days[a]&&t.days[a].length){i+="<tr>";for(var u=0;u<t.days[a].length;u++)if(t.days[a][u]){var h=t.days[a][u],p=[];h.inmonth||p.push("uk-datepicker-table-muted"),h.selected&&p.push("uk-active"),h.disabled&&p.push("uk-datepicker-date-disabled uk-datepicker-table-muted"),i+='<td><a href="" class="'+p.join(" ")+'" data-date="'+h.day.format()+'">'+h.day.format("D")+"</a></td>"}i+="</tr>"}return i+="</tbody>",i+="</table>"}},boot:function(){m.$win.on("resize orientationchange",function(){d&&d.hide()}),m.$html.on("focus.datepicker.uikit","[data-uk-datepicker]",function(t){var e=m.$(this);e.data("datepicker")||(t.preventDefault(),m.datepicker(e,m.Utils.options(e.attr("data-uk-datepicker"))),e.trigger("focus"))}),m.$html.on("click focus","*",function(t){var e=m.$(t.target);!d||e[0]==r[0]||e.data("datepicker")||e.parents(".uk-datepicker:first").length||d.hide()})},init:function(){if(!m.support.touch||"date"!=this.element.attr("type")||this.options.mobile){var t=this;this.current=this.element.val()?moment(this.element.val(),this.options.format):moment(),this.on("click focus",function(){d!==t&&t.pick(this.value?this.value:t.options.minDate?t.options.minDate:"")}).on("change",function(){t.element.val()&&!moment(t.element.val(),t.options.format).isValid()&&t.element.val(moment().format(t.options.format))}),r||((r=m.$('<div class="uk-dropdown uk-datepicker '+t.options.addClass+'"></div>')).on("click",".uk-datepicker-next, .uk-datepicker-previous, [data-date]",function(t){t.stopPropagation(),t.preventDefault();var e=m.$(this);if(e.hasClass("uk-datepicker-date-disabled"))return!1;e.is("[data-date]")?(d.current=moment(e.data("date")),d.element.val(d.current.isValid()?d.current.format(d.options.format):null).trigger("change"),r.removeClass("uk-dropdown-shown"),setTimeout(function(){r.removeClass("uk-dropdown-active")},280),d.hide()):d.add(e.hasClass("uk-datepicker-next")?1:-1,"months")}),r.on("change",".update-picker-month, .update-picker-year",function(){var t=m.$(this);d[t.is(".update-picker-year")?"setYear":"setMonth"](Number(t.val()))}),r.appendTo("body"))}},pick:function(t){var e=this.element.offset(),a=parseInt(e.left),i=parseInt(e.top),o={left:a,right:""};this.current=isNaN(t)?moment(t,this.options.format):moment(),this.initdate=this.current.format("YYYY-MM-DD"),this.update(),!$(this.element[0]).closest(".ui-dialog").length&&!$(this.element[0]).closest(".uk-modal").length||r.hasClass("dropdown-modal")||r.addClass("dropdown-modal"),("right"==m.langdirection||window.innerWidth-a-r.outerWidth()<0)&&(o.right=window.innerWidth-(window.innerWidth-$("body").width())-(o.left+this.element.outerWidth()),o.left="");var n=i-this.element.outerHeight()+this.element.height()-this.options.offsettop-r.outerHeight(),s=i+this.element.outerHeight()+this.options.offsettop;o.top=s,"top"==this.options.pos?(o.top=n,r.addClass("dp-top")):"auto"==this.options.pos&&window.innerHeight-s-r.outerHeight()+m.$win.scrollTop()<0&&0<=n&&(o.top=n,r.addClass("dp-top")),o.minWidth=r.actual("outerWidth"),r.css(o).addClass("uk-dropdown-active uk-dropdown-shown"),this.trigger("show.uk.datepicker"),d=this},add:function(t,e){this.current.add(t,e),this.update()},setMonth:function(t){this.current.month(t),this.update()},setYear:function(t){this.current.year(t),this.update()},update:function(){var t=this.getRows(this.current.year(),this.current.month()),e=this.options.template(t,this.options);r.html(e),this.trigger("update.uk.datepicker")},getRows:function(t,e){var i=this.options,a=moment().format("YYYY-MM-DD"),o=[31,t%4==0&&t%100!=0||t%400==0?29:28,31,30,31,30,31,31,30,31,30,31][e],n=new Date(t,e,1,12).getDay(),s={month:e,year:t,weekdays:[],days:[],maxDate:!1,minDate:!1},r=[];!1!==i.maxDate&&(s.maxDate=isNaN(i.maxDate)?moment(i.maxDate,i.format).startOf("day").hours(12):moment().add(i.maxDate,"days").startOf("day").hours(12)),!1!==i.minDate&&(s.minDate=isNaN(i.minDate)?moment(i.minDate,i.format).startOf("day").hours(12):moment().add(i.minDate-1,"days").startOf("day").hours(12)),s.weekdays=function(){for(var t=0,e=[];t<7;t++){for(var a=t+(i.weekstart||0);7<=a;)a-=7;e.push(i.i18n.weekdays[a])}return e}(),i.weekstart&&0<i.weekstart&&(n-=i.weekstart)<0&&(n+=7);for(var d,u,h,p,m,c=o+n,l=c;7<l;)l-=7;c+=7-l;for(var f=0,k=0;f<c;f++)d=new Date(t,e,f-n+1,12),u=s.minDate&&s.minDate>d||s.maxDate&&d>s.maxDate,m=!(f<n||o+n<=f),d=moment(d),h=this.initdate==d.format("YYYY-MM-DD"),p=a==d.format("YYYY-MM-DD"),r.push({selected:h,today:p,disabled:u,day:d,inmonth:m}),7==++k&&(s.days.push(r),r=[],k=0);return s},hide:function(){d&&d===this&&(r.removeClass("uk-dropdown-shown"),setTimeout(function(){r.removeClass("uk-dropdown-active dp-top")},280),d=!1,this.trigger("hide.uk.datepicker"))}}),m.Utils.moment=moment(),m.datepicker});
(19-19/27)