From 33d7175def20b2dc74a3b1b915b18dd1df22c942 Mon Sep 17 00:00:00 2001 From: Allan Jardine Date: Tue, 2 May 2023 11:57:39 +0100 Subject: [PATCH] New: `dt-api display()` method which can be used to programmatically control the displayed calender month DD-2622 https://datatables.net/forums/discussion/76153 --- dist/dataTables.dateTime.js | 22 ++++++++++++++++++++++ dist/dataTables.dateTime.min.js | 2 +- dist/dataTables.dateTime.min.mjs | 2 +- dist/dataTables.dateTime.mjs | 22 ++++++++++++++++++++++ js/dataTables.dateTime.js | 28 +++++++++++++++++++++++++--- 5 files changed, 71 insertions(+), 5 deletions(-) diff --git a/dist/dataTables.dateTime.js b/dist/dataTables.dateTime.js index 27401a8..ddeaf15 100644 --- a/dist/dataTables.dateTime.js +++ b/dist/dataTables.dateTime.js @@ -216,6 +216,28 @@ $.extend( DateTime.prototype, { .off('.datetime'); }, + display: function (year, month) { + if (year !== undefined) { + this.s.display.setUTCFullYear(year); + } + + if (month !== undefined) { + this.s.display.setUTCMonth(month - 1); + } + + if (year !== undefined || month !== undefined) { + this._setTitle(); + this._setCalander(); + + return this; + } + + return { + month: this.s.display.getUTCMonth() + 1, + year: this.s.display.getUTCFullYear() + }; + }, + errorMsg: function ( msg ) { var error = this.dom.error; diff --git a/dist/dataTables.dateTime.min.js b/dist/dataTables.dateTime.min.js index 66ee40a..d8f9e1e 100644 --- a/dist/dataTables.dateTime.min.js +++ b/dist/dataTables.dateTime.min.js @@ -3,4 +3,4 @@ * © SpryMedia Ltd, all rights reserved. * License: MIT datatables.net/license/mit */ -!function(s){var i;"function"==typeof define&&define.amd?define(["jquery"],function(t){return s(t,window,document)}):"object"==typeof exports?(i=require("jquery"),"undefined"==typeof window?module.exports=function(t,e){return t=t||window,e=e||i(t),s(e,t,t.document)}:module.exports=s(i,window,window.document)):s(jQuery,window,document)}(function(C,o,i,n){"use strict";function a(t,e){if(a.factory(t,e))return a;if(void 0===r&&(r=o.moment||o.dayjs||o.luxon||null),this.c=C.extend(!0,{},a.defaults,e),e=this.c.classPrefix,this.c.i18n,!r&&"YYYY-MM-DD"!==this.c.format)throw"DateTime: Without momentjs, dayjs or luxon only the format 'YYYY-MM-DD' can be used";"string"==typeof this.c.minDate&&(this.c.minDate=new Date(this.c.minDate)),"string"==typeof this.c.maxDate&&(this.c.maxDate=new Date(this.c.maxDate));var s=C('
');this.dom={container:s,date:s.find("."+e+"-date"),title:s.find("."+e+"-title"),calendar:s.find("."+e+"-calendar"),time:s.find("."+e+"-time"),error:s.find("."+e+"-error"),buttons:s.find("."+e+"-buttons"),clear:s.find("."+e+"-clear"),today:s.find("."+e+"-today"),previous:s.find("."+e+"-iconLeft"),next:s.find("."+e+"-iconRight"),input:C(t)},this.s={d:null,display:null,minutesRange:null,secondsRange:null,namespace:"dateime-"+a._instance++,parts:{date:null!==this.c.format.match(/[YMD]|L(?!T)|l/),time:null!==this.c.format.match(/[Hhm]|LT|LTS/),seconds:-1!==this.c.format.indexOf("s"),hours12:null!==this.c.format.match(/[haA]/)}},this.dom.container.append(this.dom.date).append(this.dom.time).append(this.dom.error),this.dom.date.append(this.dom.title).append(this.dom.buttons).append(this.dom.calendar),this._constructor()}var r;return C.extend(a.prototype,{destroy:function(){this._hide(!0),this.dom.container.off().empty(),this.dom.input.removeAttr("autocomplete").off(".datetime")},errorMsg:function(t){var e=this.dom.error;return t?e.html(t):e.empty(),this},hide:function(){return this._hide(),this},max:function(t){return this.c.maxDate="string"==typeof t?new Date(t):t,this._optionsTitle(),this._setCalander(),this},min:function(t){return this.c.minDate="string"==typeof t?new Date(t):t,this._optionsTitle(),this._setCalander(),this},owns:function(t){return 0s;t.setUTCMonth(e),i&&(t.setUTCDate(s),t.setUTCMonth(e))},_daysInMonth:function(t,e){return[31,t%4==0&&(t%100!=0||t%400==0)?29:28,31,30,31,30,31,31,30,31,30,31][e]},_dateToUtc:function(t){return t&&new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds()))},_dateToUtcString:function(t){return this._isLuxon()?r.DateTime.fromJSDate(t).toUTC().toISODate():t.getUTCFullYear()+"-"+this._pad(t.getUTCMonth()+1)+"-"+this._pad(t.getUTCDate())},_hide:function(t){!t&&"hidden"===this.dom.input.attr("type")||(t=this.s.namespace,this.dom.container.detach(),C(o).off("."+t),C(i).off("keydown."+t),C("div.dataTables_scrollBody").off("scroll."+t),C("div.DTE_Body_Content").off("scroll."+t),C("body").off("click."+t),C(this.dom.input[0].offsetParent).off("."+t))},_hours24To12:function(t){return 0===t?12:12':(e=["selectable"],s=this.c.classPrefix,t.disabled&&e.push("disabled"),t.today&&e.push("now"),t.selected&&e.push("selected"),'")},_htmlMonth:function(t,e){for(var s=this._dateToUtc(new Date),i=this._daysInMonth(t,e),n=new Date(Date.UTC(t,e,1)).getUTCDay(),a=[],o=[],r=(0"+o.join("")+""),o=[],u=0)}var v,D=this.c.classPrefix,g=D+"-table";return this.c.showWeekNumber&&(g+=" weekNumber"),l&&(v=l>=new Date(Date.UTC(t,e,1,0,0,0)),this.dom.title.find("div."+D+"-iconLeft").css("display",v?"none":"block")),h&&(v=h'+this._htmlMonthHead()+""+a.join("")+""},_htmlMonthHead:function(){var t=[],e=this.c.firstDay,s=this.c.i18n;this.c.showWeekNumber&&t.push("");for(var i=0;i<7;i++)t.push(""+function(t){for(t+=e;7<=t;)t-=7;return s.weekdays[t]}(i)+"");return t.join("")},_htmlWeekOfYear:function(t,e,s){e=new Date(s,e,t,0,0,0,0),e.setDate(e.getDate()+4-(e.getDay()||7)),t=new Date(s,0,1),s=Math.ceil(((e-t)/864e5+1)/7);return''+s+""},_isLuxon:function(){return!!(r&&r.DateTime&&r.Duration&&r.Settings)},_needValue:function(){return this.s.d||(this.s.d=this._dateToUtc(new Date),this.s.parts.time)||(this.s.d.setUTCHours(0),this.s.d.setUTCMinutes(0),this.s.d.setSeconds(0),this.s.d.setMilliseconds(0)),this.s.d},_options:function(t,e,s){s=s||e;var i=this.dom.container.find("select."+this.c.classPrefix+"-"+t);i.empty();for(var n=0,a=e.length;n'+s[n]+"")},_optionSet:function(t,e){var t=this.dom.container.find("select."+this.c.classPrefix+"-"+t),s=t.parent().children("span"),e=(t.val(e),t.find("option:selected"));s.html(0!==e.length?e.text():this.c.i18n.unknown)},_optionsTime:function(n,a,o,r,t){var e,d=this.c.classPrefix,s=this.dom.container.find("div."+d+"-"+n),i=12===a?function(t){return t}:this._pad,l=(d=this.c.classPrefix)+"-table",h=this.c.i18n;if(s.length){var c="",u=10,m=function(t,e,s){12===a&&"number"==typeof t&&(12<=o&&(t+=12),12==t?t=0:24==t&&(t=12));var i=o===t||"am"===t&&o<12||"pm"===t&&12<=o?"selected":"";return"number"==typeof t&&r&&-1===C.inArray(t,r)&&(i+=" disabled"),s&&(i+=" "+s),'"};if(12===a){for(c+="",e=1;e<=6;e++)c+=m(e,i(e));for(c=(c+=m("am",h.amPm[0]))+""+"",e=7;e<=12;e++)c+=m(e,i(e));c=c+m("pm",h.amPm[1])+"",u=7}else{if(24===a)for(var f=0,p=0;p<4;p++){for(c+="",e=0;e<6;e++)c+=m(f,i(f)),f++;c+=""}else{for(c+="",p=0;p<60;p+=10)c+=m(p,i(p),"range");var c=c+""+(''),y=null!==t?t:-1===o?0:10*Math.floor(o/10);for(c+="",p=y+1;p"}u=6}s.empty().append('
"+c+"
'+h[n]+"
")}},_optionsTitle:function(){var t=this.c.i18n,e=this.c.minDate,s=this.c.maxDate,e=e?e.getFullYear():null,s=s?s.getFullYear():null,e=null!==e?e:(new Date).getFullYear()-this.c.yearRange,s=null!==s?s:(new Date).getFullYear()+this.c.yearRange;this._options("month",this._range(0,11),t.months),this._options("year",this._range(e,s)),this.dom.today.text(t.today).text(t.today),this.dom.clear.text(t.clear).text(t.clear),this.dom.previous.attr("title",t.previous).children("button").text(t.previous),this.dom.next.attr("title",t.next).children("button").text(t.next)},_pad:function(t){return t<10?"0"+t:t},_position:function(){var t,e,s,i="input"===this.c.attachTo?this.dom.input.position():this.dom.input.offset(),n=this.dom.container,a=this.dom.input.outerHeight();n.hasClass("inline")?n.insertAfter(this.dom.input):(this.s.parts.date&&this.s.parts.time&&550C(o).height()&&(a=i.top-t,n.css("top",a<0?0:a)),e+i.left>C(o).width()&&(s=C(o).width()-e,"input"===this.c.attachTo&&(s-=C(n).offsetParent().offset().left),n.css("left",s<0?0:s)))},_range:function(t,e,s){var i=[];s=s||1;for(var n=t;n<=e;n+=s)i.push(n);return i},_setCalander:function(){this.s.display&&this.dom.calendar.empty().append(this._htmlMonth(this.s.display.getUTCFullYear(),this.s.display.getUTCMonth()))},_setTitle:function(){this._optionSet("month",this.s.display.getUTCMonth()),this._optionSet("year",this.s.display.getUTCFullYear())},_setTime:function(){function t(t){return e.c[t+"Available"]||e._range(0,59,e.c[t+"Increment"])}var e=this,s=this.s.d,i=null,n=null!=(i=this._isLuxon()?r.DateTime.fromJSDate(s).toUTC():i)?i.hour:s?s.getUTCHours():-1;this._optionsTime("hours",this.s.parts.hours12?12:24,n,this.c.hoursAvailable),this._optionsTime("minutes",60,null!=i?i.minute:s?s.getUTCMinutes():-1,t("minutes"),this.s.minutesRange),this._optionsTime("seconds",60,null!=i?i.second:s?s.getSeconds():-1,t("seconds"),this.s.secondsRange)},_show:function(){var e=this,t=this.s.namespace,s=(this._position(),C(o).on("scroll."+t+" resize."+t,function(){e._position()}),C("div.DTE_Body_Content").on("scroll."+t,function(){e._position()}),C("div.dataTables_scrollBody").on("scroll."+t,function(){e._position()}),this.dom.input[0].offsetParent);s!==i.body&&C(s).on("scroll."+t,function(){e._position()}),C(i).on("keydown."+t,function(t){9!==t.keyCode&&27!==t.keyCode&&13!==t.keyCode||e._hide()}),setTimeout(function(){C("body").on("click."+t,function(t){C(t.target).parents().filter(e.dom.container).length||t.target===e.dom.input[0]||e._hide()})},10)},_writeOutput:function(t){var e=this.s.d,s="";e&&(s=this._convert(e,null,this.c.format)),this.dom.input.val(s).trigger("change",{write:e}),"hidden"===this.dom.input.attr("type")&&this.val(s,!1),t&&this.dom.input.focus()}}),a.use=function(t){r=t},a._instance=0,a.type="DateTime",a.defaults={attachTo:"body",buttons:{clear:!1,today:!1},classPrefix:"dt-datetime",disableDays:null,firstDay:1,format:"YYYY-MM-DD",hoursAvailable:null,i18n:{clear:"Clear",previous:"Previous",next:"Next",months:["January","February","March","April","May","June","July","August","September","October","November","December"],weekdays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],amPm:["am","pm"],hours:"Hour",minutes:"Minute",seconds:"Second",unknown:"-",today:"Today"},maxDate:null,minDate:null,minutesAvailable:null,minutesIncrement:1,strict:!0,locale:"en",onChange:function(){},secondsAvailable:null,secondsIncrement:1,showWeekNumber:!1,yearRange:25},a.version="1.4.1",a.factory=function(t,e){var s=!1;return t&&t.document&&(i=(o=t).document),e&&e.fn&&e.fn.jquery&&(C=e,s=!0),s},o.DateTime||(o.DateTime=a),o.DataTable&&(o.DataTable.DateTime=a),C.fn.dtDateTime=function(t){return this.each(function(){new a(this,t)})},C.fn.dataTable&&(C.fn.dataTable.DateTime=a,C.fn.DataTable.DateTime=a,C.fn.dataTable.Editor)&&(C.fn.dataTable.Editor.DateTime=a),a}); \ No newline at end of file +!function(s){var i;"function"==typeof define&&define.amd?define(["jquery"],function(t){return s(t,window,document)}):"object"==typeof exports?(i=require("jquery"),"undefined"==typeof window?module.exports=function(t,e){return t=t||window,e=e||i(t),s(e,t,t.document)}:module.exports=s(i,window,window.document)):s(jQuery,window,document)}(function(g,o,i,n){"use strict";function a(t,e){if(a.factory(t,e))return a;if(void 0===r&&(r=o.moment||o.dayjs||o.luxon||null),this.c=g.extend(!0,{},a.defaults,e),e=this.c.classPrefix,this.c.i18n,!r&&"YYYY-MM-DD"!==this.c.format)throw"DateTime: Without momentjs, dayjs or luxon only the format 'YYYY-MM-DD' can be used";"string"==typeof this.c.minDate&&(this.c.minDate=new Date(this.c.minDate)),"string"==typeof this.c.maxDate&&(this.c.maxDate=new Date(this.c.maxDate));var s=g('
');this.dom={container:s,date:s.find("."+e+"-date"),title:s.find("."+e+"-title"),calendar:s.find("."+e+"-calendar"),time:s.find("."+e+"-time"),error:s.find("."+e+"-error"),buttons:s.find("."+e+"-buttons"),clear:s.find("."+e+"-clear"),today:s.find("."+e+"-today"),previous:s.find("."+e+"-iconLeft"),next:s.find("."+e+"-iconRight"),input:g(t)},this.s={d:null,display:null,minutesRange:null,secondsRange:null,namespace:"dateime-"+a._instance++,parts:{date:null!==this.c.format.match(/[YMD]|L(?!T)|l/),time:null!==this.c.format.match(/[Hhm]|LT|LTS/),seconds:-1!==this.c.format.indexOf("s"),hours12:null!==this.c.format.match(/[haA]/)}},this.dom.container.append(this.dom.date).append(this.dom.time).append(this.dom.error),this.dom.date.append(this.dom.title).append(this.dom.buttons).append(this.dom.calendar),this._constructor()}var r;return g.extend(a.prototype,{destroy:function(){this._hide(!0),this.dom.container.off().empty(),this.dom.input.removeAttr("autocomplete").off(".datetime")},display:function(t,e){return t!==n&&this.s.display.setUTCFullYear(t),e!==n&&this.s.display.setUTCMonth(e-1),t!==n||e!==n?(this._setTitle(),this._setCalander(),this):{month:this.s.display.getUTCMonth()+1,year:this.s.display.getUTCFullYear()}},errorMsg:function(t){var e=this.dom.error;return t?e.html(t):e.empty(),this},hide:function(){return this._hide(),this},max:function(t){return this.c.maxDate="string"==typeof t?new Date(t):t,this._optionsTitle(),this._setCalander(),this},min:function(t){return this.c.minDate="string"==typeof t?new Date(t):t,this._optionsTitle(),this._setCalander(),this},owns:function(t){return 0s;t.setUTCMonth(e),i&&(t.setUTCDate(s),t.setUTCMonth(e))},_daysInMonth:function(t,e){return[31,t%4==0&&(t%100!=0||t%400==0)?29:28,31,30,31,30,31,31,30,31,30,31][e]},_dateToUtc:function(t){return t&&new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds()))},_dateToUtcString:function(t){return this._isLuxon()?r.DateTime.fromJSDate(t).toUTC().toISODate():t.getUTCFullYear()+"-"+this._pad(t.getUTCMonth()+1)+"-"+this._pad(t.getUTCDate())},_hide:function(t){!t&&"hidden"===this.dom.input.attr("type")||(t=this.s.namespace,this.dom.container.detach(),g(o).off("."+t),g(i).off("keydown."+t),g("div.dataTables_scrollBody").off("scroll."+t),g("div.DTE_Body_Content").off("scroll."+t),g("body").off("click."+t),g(this.dom.input[0].offsetParent).off("."+t))},_hours24To12:function(t){return 0===t?12:12':(e=["selectable"],s=this.c.classPrefix,t.disabled&&e.push("disabled"),t.today&&e.push("now"),t.selected&&e.push("selected"),'")},_htmlMonth:function(t,e){for(var s=this._dateToUtc(new Date),i=this._daysInMonth(t,e),n=new Date(Date.UTC(t,e,1)).getUTCDay(),a=[],o=[],r=(0"+o.join("")+""),o=[],c=0)}var v,D=this.c.classPrefix,C=D+"-table";return this.c.showWeekNumber&&(C+=" weekNumber"),l&&(v=l>=new Date(Date.UTC(t,e,1,0,0,0)),this.dom.title.find("div."+D+"-iconLeft").css("display",v?"none":"block")),h&&(v=h'+this._htmlMonthHead()+""+a.join("")+""},_htmlMonthHead:function(){var t=[],e=this.c.firstDay,s=this.c.i18n;this.c.showWeekNumber&&t.push("");for(var i=0;i<7;i++)t.push(""+function(t){for(t+=e;7<=t;)t-=7;return s.weekdays[t]}(i)+"");return t.join("")},_htmlWeekOfYear:function(t,e,s){e=new Date(s,e,t,0,0,0,0),e.setDate(e.getDate()+4-(e.getDay()||7)),t=new Date(s,0,1),s=Math.ceil(((e-t)/864e5+1)/7);return''+s+""},_isLuxon:function(){return!!(r&&r.DateTime&&r.Duration&&r.Settings)},_needValue:function(){return this.s.d||(this.s.d=this._dateToUtc(new Date),this.s.parts.time)||(this.s.d.setUTCHours(0),this.s.d.setUTCMinutes(0),this.s.d.setSeconds(0),this.s.d.setMilliseconds(0)),this.s.d},_options:function(t,e,s){s=s||e;var i=this.dom.container.find("select."+this.c.classPrefix+"-"+t);i.empty();for(var n=0,a=e.length;n'+s[n]+"")},_optionSet:function(t,e){var t=this.dom.container.find("select."+this.c.classPrefix+"-"+t),s=t.parent().children("span"),e=(t.val(e),t.find("option:selected"));s.html(0!==e.length?e.text():this.c.i18n.unknown)},_optionsTime:function(n,a,o,r,t){var e,d=this.c.classPrefix,s=this.dom.container.find("div."+d+"-"+n),i=12===a?function(t){return t}:this._pad,l=(d=this.c.classPrefix)+"-table",h=this.c.i18n;if(s.length){var u="",c=10,m=function(t,e,s){12===a&&"number"==typeof t&&(12<=o&&(t+=12),12==t?t=0:24==t&&(t=12));var i=o===t||"am"===t&&o<12||"pm"===t&&12<=o?"selected":"";return"number"==typeof t&&r&&-1===g.inArray(t,r)&&(i+=" disabled"),s&&(i+=" "+s),'"};if(12===a){for(u+="",e=1;e<=6;e++)u+=m(e,i(e));for(u=(u+=m("am",h.amPm[0]))+""+"",e=7;e<=12;e++)u+=m(e,i(e));u=u+m("pm",h.amPm[1])+"",c=7}else{if(24===a)for(var f=0,p=0;p<4;p++){for(u+="",e=0;e<6;e++)u+=m(f,i(f)),f++;u+=""}else{for(u+="",p=0;p<60;p+=10)u+=m(p,i(p),"range");var u=u+""+(''),y=null!==t?t:-1===o?0:10*Math.floor(o/10);for(u+="",p=y+1;p"}c=6}s.empty().append('
"+u+"
'+h[n]+"
")}},_optionsTitle:function(){var t=this.c.i18n,e=this.c.minDate,s=this.c.maxDate,e=e?e.getFullYear():null,s=s?s.getFullYear():null,e=null!==e?e:(new Date).getFullYear()-this.c.yearRange,s=null!==s?s:(new Date).getFullYear()+this.c.yearRange;this._options("month",this._range(0,11),t.months),this._options("year",this._range(e,s)),this.dom.today.text(t.today).text(t.today),this.dom.clear.text(t.clear).text(t.clear),this.dom.previous.attr("title",t.previous).children("button").text(t.previous),this.dom.next.attr("title",t.next).children("button").text(t.next)},_pad:function(t){return t<10?"0"+t:t},_position:function(){var t,e,s,i="input"===this.c.attachTo?this.dom.input.position():this.dom.input.offset(),n=this.dom.container,a=this.dom.input.outerHeight();n.hasClass("inline")?n.insertAfter(this.dom.input):(this.s.parts.date&&this.s.parts.time&&550g(o).height()&&(a=i.top-t,n.css("top",a<0?0:a)),e+i.left>g(o).width()&&(s=g(o).width()-e,"input"===this.c.attachTo&&(s-=g(n).offsetParent().offset().left),n.css("left",s<0?0:s)))},_range:function(t,e,s){var i=[];s=s||1;for(var n=t;n<=e;n+=s)i.push(n);return i},_setCalander:function(){this.s.display&&this.dom.calendar.empty().append(this._htmlMonth(this.s.display.getUTCFullYear(),this.s.display.getUTCMonth()))},_setTitle:function(){this._optionSet("month",this.s.display.getUTCMonth()),this._optionSet("year",this.s.display.getUTCFullYear())},_setTime:function(){function t(t){return e.c[t+"Available"]||e._range(0,59,e.c[t+"Increment"])}var e=this,s=this.s.d,i=null,n=null!=(i=this._isLuxon()?r.DateTime.fromJSDate(s).toUTC():i)?i.hour:s?s.getUTCHours():-1;this._optionsTime("hours",this.s.parts.hours12?12:24,n,this.c.hoursAvailable),this._optionsTime("minutes",60,null!=i?i.minute:s?s.getUTCMinutes():-1,t("minutes"),this.s.minutesRange),this._optionsTime("seconds",60,null!=i?i.second:s?s.getSeconds():-1,t("seconds"),this.s.secondsRange)},_show:function(){var e=this,t=this.s.namespace,s=(this._position(),g(o).on("scroll."+t+" resize."+t,function(){e._position()}),g("div.DTE_Body_Content").on("scroll."+t,function(){e._position()}),g("div.dataTables_scrollBody").on("scroll."+t,function(){e._position()}),this.dom.input[0].offsetParent);s!==i.body&&g(s).on("scroll."+t,function(){e._position()}),g(i).on("keydown."+t,function(t){9!==t.keyCode&&27!==t.keyCode&&13!==t.keyCode||e._hide()}),setTimeout(function(){g("body").on("click."+t,function(t){g(t.target).parents().filter(e.dom.container).length||t.target===e.dom.input[0]||e._hide()})},10)},_writeOutput:function(t){var e=this.s.d,s="";e&&(s=this._convert(e,null,this.c.format)),this.dom.input.val(s).trigger("change",{write:e}),"hidden"===this.dom.input.attr("type")&&this.val(s,!1),t&&this.dom.input.focus()}}),a.use=function(t){r=t},a._instance=0,a.type="DateTime",a.defaults={attachTo:"body",buttons:{clear:!1,today:!1},classPrefix:"dt-datetime",disableDays:null,firstDay:1,format:"YYYY-MM-DD",hoursAvailable:null,i18n:{clear:"Clear",previous:"Previous",next:"Next",months:["January","February","March","April","May","June","July","August","September","October","November","December"],weekdays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],amPm:["am","pm"],hours:"Hour",minutes:"Minute",seconds:"Second",unknown:"-",today:"Today"},maxDate:null,minDate:null,minutesAvailable:null,minutesIncrement:1,strict:!0,locale:"en",onChange:function(){},secondsAvailable:null,secondsIncrement:1,showWeekNumber:!1,yearRange:25},a.version="1.4.1",a.factory=function(t,e){var s=!1;return t&&t.document&&(i=(o=t).document),e&&e.fn&&e.fn.jquery&&(g=e,s=!0),s},o.DateTime||(o.DateTime=a),o.DataTable&&(o.DataTable.DateTime=a),g.fn.dtDateTime=function(t){return this.each(function(){new a(this,t)})},g.fn.dataTable&&(g.fn.dataTable.DateTime=a,g.fn.DataTable.DateTime=a,g.fn.dataTable.Editor)&&(g.fn.dataTable.Editor.DateTime=a),a}); \ No newline at end of file diff --git a/dist/dataTables.dateTime.min.mjs b/dist/dataTables.dateTime.min.mjs index c53ff2b..3d1b642 100644 --- a/dist/dataTables.dateTime.min.mjs +++ b/dist/dataTables.dateTime.min.mjs @@ -3,4 +3,4 @@ * © SpryMedia Ltd, all rights reserved. * License: MIT datatables.net/license/mit */ -import jQuery from"jquery";let $=jQuery;var dateLib,DateTime=function(t,e){if(DateTime.factory(t,e))return DateTime;void 0===dateLib&&(dateLib=window.moment||window.dayjs||window.luxon||null),this.c=$.extend(!0,{},DateTime.defaults,e);e=this.c.classPrefix;this.c.i18n;if(!dateLib&&"YYYY-MM-DD"!==this.c.format)throw"DateTime: Without momentjs, dayjs or luxon only the format 'YYYY-MM-DD' can be used";"string"==typeof this.c.minDate&&(this.c.minDate=new Date(this.c.minDate)),"string"==typeof this.c.maxDate&&(this.c.maxDate=new Date(this.c.maxDate));var s=$('
');this.dom={container:s,date:s.find("."+e+"-date"),title:s.find("."+e+"-title"),calendar:s.find("."+e+"-calendar"),time:s.find("."+e+"-time"),error:s.find("."+e+"-error"),buttons:s.find("."+e+"-buttons"),clear:s.find("."+e+"-clear"),today:s.find("."+e+"-today"),previous:s.find("."+e+"-iconLeft"),next:s.find("."+e+"-iconRight"),input:$(t)},this.s={d:null,display:null,minutesRange:null,secondsRange:null,namespace:"dateime-"+DateTime._instance++,parts:{date:null!==this.c.format.match(/[YMD]|L(?!T)|l/),time:null!==this.c.format.match(/[Hhm]|LT|LTS/),seconds:-1!==this.c.format.indexOf("s"),hours12:null!==this.c.format.match(/[haA]/)}},this.dom.container.append(this.dom.date).append(this.dom.time).append(this.dom.error),this.dom.date.append(this.dom.title).append(this.dom.buttons).append(this.dom.calendar),this._constructor()};$.extend(DateTime.prototype,{destroy:function(){this._hide(!0),this.dom.container.off().empty(),this.dom.input.removeAttr("autocomplete").off(".datetime")},errorMsg:function(t){var e=this.dom.error;return t?e.html(t):e.empty(),this},hide:function(){return this._hide(),this},max:function(t){return this.c.maxDate="string"==typeof t?new Date(t):t,this._optionsTitle(),this._setCalander(),this},min:function(t){return this.c.minDate="string"==typeof t?new Date(t):t,this._optionsTitle(),this._setCalander(),this},owns:function(t){return 0<$(t).parents().filter(this.dom.container).length},val:function(t,e){return void 0===t?this.s.d:(t instanceof Date?this.s.d=this._dateToUtc(t):null===t||""===t?this.s.d=null:"--now"===t?this.s.d=this._dateToUtc(new Date):"string"==typeof t&&(this.s.d=this._dateToUtc(this._convert(t,this.c.format,null))),!e&&void 0!==e||(this.s.d?this._writeOutput():this.dom.input.val(t)),this.s.display=this.s.d?new Date(this.s.d.toString()):new Date,this.s.display.setUTCDate(1),this._setTitle(),this._setCalander(),this._setTime(),this)},valFormat:function(t,e){return e?(this.val(this._convert(e,t,null)),this):this._convert(this.val(),null,t)},_constructor:function(){function n(){var t=o.dom.input.val();t!==e&&(o.c.onChange.call(o,t,o.s.d,o.dom.input),e=t)}var o=this,d=this.c.classPrefix,e=this.dom.input.val();this.s.parts.date||this.dom.date.css("display","none"),this.s.parts.time||this.dom.time.css("display","none"),this.s.parts.seconds||(this.dom.time.children("div."+d+"-seconds").remove(),this.dom.time.children("span").eq(1).remove()),this.c.buttons.clear||this.dom.clear.css("display","none"),this.c.buttons.today||this.dom.today.css("display","none"),this._optionsTitle(),$(document).on("i18n.dt",function(t,e){e.oLanguage.datetime&&($.extend(!0,o.c.i18n,e.oLanguage.datetime),o._optionsTitle())}),"hidden"===this.dom.input.attr("type")&&(this.dom.container.addClass("inline"),this.c.attachTo="input",this.val(this.dom.input.val(),!1),this._show()),e&&this.val(e,!1),this.dom.input.attr("autocomplete","off").on("focus.datetime click.datetime",function(){o.dom.container.is(":visible")||o.dom.input.is(":disabled")||(o.val(o.dom.input.val(),!1),o._show())}).on("keyup.datetime",function(){o.dom.container.is(":visible")&&o.val(o.dom.input.val(),!1)}),this.dom.container.on("change","select",function(){var t,e,s=$(this),i=s.val();s.hasClass(d+"-month")?(o._correctMonth(o.s.display,i),o._setTitle(),o._setCalander()):s.hasClass(d+"-year")?(o.s.display.setUTCFullYear(i),o._setTitle(),o._setCalander()):s.hasClass(d+"-hours")||s.hasClass(d+"-ampm")?(o.s.parts.hours12?(t=+$(o.dom.container).find("."+d+"-hours").val(),e="pm"===$(o.dom.container).find("."+d+"-ampm").val(),o.s.d.setUTCHours(12!=t||e?e&&12!=t?12+t:t:0)):o.s.d.setUTCHours(i),o._setTime(),o._writeOutput(!0),n()):s.hasClass(d+"-minutes")?(o.s.d.setUTCMinutes(i),o._setTime(),o._writeOutput(!0),n()):s.hasClass(d+"-seconds")&&(o.s.d.setSeconds(i),o._setTime(),o._writeOutput(!0),n()),o.dom.input.focus(),o._position()}).on("click",function(t){var e=o.s.d,s="span"===t.target.nodeName.toLowerCase()?t.target.parentNode:t.target,i=s.nodeName.toLowerCase();if("select"!==i)if(t.stopPropagation(),"a"===i&&(t.preventDefault(),$(s).hasClass(d+"-clear")?(o.s.d=null,o.dom.input.val(""),o._writeOutput(),o._setCalander(),o._setTime(),n()):$(s).hasClass(d+"-today")&&(o.s.display=new Date,o._setTitle(),o._setCalander())),"button"===i){t=$(s),i=t.parent();if(i.hasClass("disabled")&&!i.hasClass("range"))t.blur();else if(i.hasClass(d+"-iconLeft"))o.s.display.setUTCMonth(o.s.display.getUTCMonth()-1),o._setTitle(),o._setCalander(),o.dom.input.focus();else if(i.hasClass(d+"-iconRight"))o._correctMonth(o.s.display,o.s.display.getUTCMonth()+1),o._setTitle(),o._setCalander(),o.dom.input.focus();else{if(t.parents("."+d+"-time").length){var s=t.data("value"),a=t.data("unit"),e=o._needValue();if("minutes"===a){if(i.hasClass("disabled")&&i.hasClass("range"))return o.s.minutesRange=s,void o._setTime();o.s.minutesRange=null}if("seconds"===a){if(i.hasClass("disabled")&&i.hasClass("range"))return o.s.secondsRange=s,void o._setTime();o.s.secondsRange=null}if("am"===s){if(!(12<=e.getUTCHours()))return;s=e.getUTCHours()-12}else if("pm"===s){if(!(e.getUTCHours()<12))return;s=e.getUTCHours()+12}e["hours"===a?"setUTCHours":"minutes"===a?"setUTCMinutes":"setSeconds"](s),o._setCalander(),o._setTime(),o._writeOutput(!0)}else(e=o._needValue()).setUTCDate(1),e.setUTCFullYear(t.data("year")),e.setUTCMonth(t.data("month")),e.setUTCDate(t.data("day")),o._writeOutput(!0),o.s.parts.time?(o._setCalander(),o._setTime()):setTimeout(function(){o._hide()},10);n()}}else o.dom.input.focus()})},_compareDates:function(t,e){return this._isLuxon()?dateLib.DateTime.fromJSDate(t).toUTC().toISODate()===dateLib.DateTime.fromJSDate(e).toUTC().toISODate():this._dateToUtcString(t)===this._dateToUtcString(e)},_convert:function(t,e,s){var i;return t&&(dateLib?this._isLuxon()?(i=t instanceof Date?dateLib.DateTime.fromJSDate(t).toUTC():dateLib.DateTime.fromFormat(t,e)).isValid?s?i.toFormat(s):i.toJSDate():null:(i=t instanceof Date?dateLib.utc(t,void 0,this.c.locale,this.c.strict):dateLib(t,e,this.c.locale,this.c.strict)).isValid()?s?i.format(s):i.toDate():null:!e&&!s||e&&s?t:e?(i=t.match(/(\d{4})\-(\d{2})\-(\d{2})/))?new Date(i[1],i[2]-1,i[3]):null:t.getUTCFullYear()+"-"+this._pad(t.getUTCMonth()+1)+"-"+this._pad(t.getUTCDate()))},_correctMonth:function(t,e){var s=this._daysInMonth(t.getUTCFullYear(),e),i=t.getUTCDate()>s;t.setUTCMonth(e),i&&(t.setUTCDate(s),t.setUTCMonth(e))},_daysInMonth:function(t,e){return[31,t%4==0&&(t%100!=0||t%400==0)?29:28,31,30,31,30,31,31,30,31,30,31][e]},_dateToUtc:function(t){return t&&new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds()))},_dateToUtcString:function(t){return this._isLuxon()?dateLib.DateTime.fromJSDate(t).toUTC().toISODate():t.getUTCFullYear()+"-"+this._pad(t.getUTCMonth()+1)+"-"+this._pad(t.getUTCDate())},_hide:function(t){!t&&"hidden"===this.dom.input.attr("type")||(t=this.s.namespace,this.dom.container.detach(),$(window).off("."+t),$(document).off("keydown."+t),$("div.dataTables_scrollBody").off("scroll."+t),$("div.DTE_Body_Content").off("scroll."+t),$("body").off("click."+t),$(this.dom.input[0].offsetParent).off("."+t))},_hours24To12:function(t){return 0===t?12:12':(e=["selectable"],s=this.c.classPrefix,t.disabled&&e.push("disabled"),t.today&&e.push("now"),t.selected&&e.push("selected"),'")},_htmlMonth:function(t,e){for(var s=this._dateToUtc(new Date),i=this._daysInMonth(t,e),a=new Date(Date.UTC(t,e,1)).getUTCDay(),n=[],o=[],d=(0"+o.join("")+""),o=[],u=0)}var D,v=this.c.classPrefix,b=v+"-table";return this.c.showWeekNumber&&(b+=" weekNumber"),l&&(D=l>=new Date(Date.UTC(t,e,1,0,0,0)),this.dom.title.find("div."+v+"-iconLeft").css("display",D?"none":"block")),h&&(D=h'+this._htmlMonthHead()+""+n.join("")+""},_htmlMonthHead:function(){var t=[],e=this.c.firstDay,s=this.c.i18n;this.c.showWeekNumber&&t.push("");for(var i=0;i<7;i++)t.push(""+function(t){for(t+=e;7<=t;)t-=7;return s.weekdays[t]}(i)+"");return t.join("")},_htmlWeekOfYear:function(t,e,s){e=new Date(s,e,t,0,0,0,0),e.setDate(e.getDate()+4-(e.getDay()||7)),t=new Date(s,0,1),s=Math.ceil(((e-t)/864e5+1)/7);return''+s+""},_isLuxon:function(){return!!(dateLib&&dateLib.DateTime&&dateLib.Duration&&dateLib.Settings)},_needValue:function(){return this.s.d||(this.s.d=this._dateToUtc(new Date),this.s.parts.time)||(this.s.d.setUTCHours(0),this.s.d.setUTCMinutes(0),this.s.d.setSeconds(0),this.s.d.setMilliseconds(0)),this.s.d},_options:function(t,e,s){s=s||e;var i=this.dom.container.find("select."+this.c.classPrefix+"-"+t);i.empty();for(var a=0,n=e.length;a'+s[a]+"")},_optionSet:function(t,e){var t=this.dom.container.find("select."+this.c.classPrefix+"-"+t),s=t.parent().children("span"),e=(t.val(e),t.find("option:selected"));s.html(0!==e.length?e.text():this.c.i18n.unknown)},_optionsTime:function(a,n,o,d,t){var e,r=this.c.classPrefix,s=this.dom.container.find("div."+r+"-"+a),i=12===n?function(t){return t}:this._pad,l=(r=this.c.classPrefix)+"-table",h=this.c.i18n;if(s.length){function c(t,e,s){12===n&&"number"==typeof t&&(12<=o&&(t+=12),12==t?t=0:24==t&&(t=12));var i=o===t||"am"===t&&o<12||"pm"===t&&12<=o?"selected":"";return"number"==typeof t&&d&&-1===$.inArray(t,d)&&(i+=" disabled"),s&&(i+=" "+s),'"}var u="",m=10;if(12===n){for(u+="",e=1;e<=6;e++)u+=c(e,i(e));for(u=(u+=c("am",h.amPm[0]))+""+"",e=7;e<=12;e++)u+=c(e,i(e));u=u+c("pm",h.amPm[1])+"",m=7}else{if(24===n)for(var f=0,p=0;p<4;p++){for(u+="",e=0;e<6;e++)u+=c(f,i(f)),f++;u+=""}else{for(u+="",p=0;p<60;p+=10)u+=c(p,i(p),"range");var u=u+""+(''),T=null!==t?t:-1===o?0:10*Math.floor(o/10);for(u+="",p=T+1;p"}m=6}s.empty().append('
"+u+"
'+h[a]+"
")}},_optionsTitle:function(){var t=this.c.i18n,e=this.c.minDate,s=this.c.maxDate,e=e?e.getFullYear():null,s=s?s.getFullYear():null,e=null!==e?e:(new Date).getFullYear()-this.c.yearRange,s=null!==s?s:(new Date).getFullYear()+this.c.yearRange;this._options("month",this._range(0,11),t.months),this._options("year",this._range(e,s)),this.dom.today.text(t.today).text(t.today),this.dom.clear.text(t.clear).text(t.clear),this.dom.previous.attr("title",t.previous).children("button").text(t.previous),this.dom.next.attr("title",t.next).children("button").text(t.next)},_pad:function(t){return t<10?"0"+t:t},_position:function(){var t,e,s,i="input"===this.c.attachTo?this.dom.input.position():this.dom.input.offset(),a=this.dom.container,n=this.dom.input.outerHeight();a.hasClass("inline")?a.insertAfter(this.dom.input):(this.s.parts.date&&this.s.parts.time&&550<$(window).width()?a.addClass("horizontal"):a.removeClass("horizontal"),"input"===this.c.attachTo?a.css({top:i.top+n,left:i.left}).insertAfter(this.dom.input):a.css({top:i.top+n,left:i.left}).appendTo("body"),t=a.outerHeight(),e=a.outerWidth(),s=$(window).scrollTop(),i.top+n+t-s>$(window).height()&&(n=i.top-t,a.css("top",n<0?0:n)),e+i.left>$(window).width()&&(s=$(window).width()-e,"input"===this.c.attachTo&&(s-=$(a).offsetParent().offset().left),a.css("left",s<0?0:s)))},_range:function(t,e,s){var i=[];s=s||1;for(var a=t;a<=e;a+=s)i.push(a);return i},_setCalander:function(){this.s.display&&this.dom.calendar.empty().append(this._htmlMonth(this.s.display.getUTCFullYear(),this.s.display.getUTCMonth()))},_setTitle:function(){this._optionSet("month",this.s.display.getUTCMonth()),this._optionSet("year",this.s.display.getUTCFullYear())},_setTime:function(){function t(t){return e.c[t+"Available"]||e._range(0,59,e.c[t+"Increment"])}var e=this,s=this.s.d,i=null,a=null!=(i=this._isLuxon()?dateLib.DateTime.fromJSDate(s).toUTC():i)?i.hour:s?s.getUTCHours():-1;this._optionsTime("hours",this.s.parts.hours12?12:24,a,this.c.hoursAvailable),this._optionsTime("minutes",60,null!=i?i.minute:s?s.getUTCMinutes():-1,t("minutes"),this.s.minutesRange),this._optionsTime("seconds",60,null!=i?i.second:s?s.getSeconds():-1,t("seconds"),this.s.secondsRange)},_show:function(){var e=this,t=this.s.namespace,s=(this._position(),$(window).on("scroll."+t+" resize."+t,function(){e._position()}),$("div.DTE_Body_Content").on("scroll."+t,function(){e._position()}),$("div.dataTables_scrollBody").on("scroll."+t,function(){e._position()}),this.dom.input[0].offsetParent);s!==document.body&&$(s).on("scroll."+t,function(){e._position()}),$(document).on("keydown."+t,function(t){9!==t.keyCode&&27!==t.keyCode&&13!==t.keyCode||e._hide()}),setTimeout(function(){$("body").on("click."+t,function(t){$(t.target).parents().filter(e.dom.container).length||t.target===e.dom.input[0]||e._hide()})},10)},_writeOutput:function(t){var e=this.s.d,s="";e&&(s=this._convert(e,null,this.c.format)),this.dom.input.val(s).trigger("change",{write:e}),"hidden"===this.dom.input.attr("type")&&this.val(s,!1),t&&this.dom.input.focus()}}),DateTime.use=function(t){dateLib=t},DateTime._instance=0,DateTime.type="DateTime",DateTime.defaults={attachTo:"body",buttons:{clear:!1,today:!1},classPrefix:"dt-datetime",disableDays:null,firstDay:1,format:"YYYY-MM-DD",hoursAvailable:null,i18n:{clear:"Clear",previous:"Previous",next:"Next",months:["January","February","March","April","May","June","July","August","September","October","November","December"],weekdays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],amPm:["am","pm"],hours:"Hour",minutes:"Minute",seconds:"Second",unknown:"-",today:"Today"},maxDate:null,minDate:null,minutesAvailable:null,minutesIncrement:1,strict:!0,locale:"en",onChange:function(){},secondsAvailable:null,secondsIncrement:1,showWeekNumber:!1,yearRange:25},DateTime.version="1.4.1",DateTime.factory=function(t,e){var s=!1;return t&&t.document&&(window=t,document=t.document),e&&e.fn&&e.fn.jquery&&($=e,s=!0),s},window.DateTime||(window.DateTime=DateTime),window.DataTable&&(window.DataTable.DateTime=DateTime),$.fn.dtDateTime=function(t){return this.each(function(){new DateTime(this,t)})},$.fn.dataTable&&($.fn.dataTable.DateTime=DateTime,$.fn.DataTable.DateTime=DateTime,$.fn.dataTable.Editor)&&($.fn.dataTable.Editor.DateTime=DateTime);export default DateTime; \ No newline at end of file +import jQuery from"jquery";let $=jQuery;var dateLib,DateTime=function(t,e){if(DateTime.factory(t,e))return DateTime;void 0===dateLib&&(dateLib=window.moment||window.dayjs||window.luxon||null),this.c=$.extend(!0,{},DateTime.defaults,e);e=this.c.classPrefix;this.c.i18n;if(!dateLib&&"YYYY-MM-DD"!==this.c.format)throw"DateTime: Without momentjs, dayjs or luxon only the format 'YYYY-MM-DD' can be used";"string"==typeof this.c.minDate&&(this.c.minDate=new Date(this.c.minDate)),"string"==typeof this.c.maxDate&&(this.c.maxDate=new Date(this.c.maxDate));var s=$('
');this.dom={container:s,date:s.find("."+e+"-date"),title:s.find("."+e+"-title"),calendar:s.find("."+e+"-calendar"),time:s.find("."+e+"-time"),error:s.find("."+e+"-error"),buttons:s.find("."+e+"-buttons"),clear:s.find("."+e+"-clear"),today:s.find("."+e+"-today"),previous:s.find("."+e+"-iconLeft"),next:s.find("."+e+"-iconRight"),input:$(t)},this.s={d:null,display:null,minutesRange:null,secondsRange:null,namespace:"dateime-"+DateTime._instance++,parts:{date:null!==this.c.format.match(/[YMD]|L(?!T)|l/),time:null!==this.c.format.match(/[Hhm]|LT|LTS/),seconds:-1!==this.c.format.indexOf("s"),hours12:null!==this.c.format.match(/[haA]/)}},this.dom.container.append(this.dom.date).append(this.dom.time).append(this.dom.error),this.dom.date.append(this.dom.title).append(this.dom.buttons).append(this.dom.calendar),this._constructor()};$.extend(DateTime.prototype,{destroy:function(){this._hide(!0),this.dom.container.off().empty(),this.dom.input.removeAttr("autocomplete").off(".datetime")},display:function(t,e){return void 0!==t&&this.s.display.setUTCFullYear(t),void 0!==e&&this.s.display.setUTCMonth(e-1),void 0!==t||void 0!==e?(this._setTitle(),this._setCalander(),this):{month:this.s.display.getUTCMonth()+1,year:this.s.display.getUTCFullYear()}},errorMsg:function(t){var e=this.dom.error;return t?e.html(t):e.empty(),this},hide:function(){return this._hide(),this},max:function(t){return this.c.maxDate="string"==typeof t?new Date(t):t,this._optionsTitle(),this._setCalander(),this},min:function(t){return this.c.minDate="string"==typeof t?new Date(t):t,this._optionsTitle(),this._setCalander(),this},owns:function(t){return 0<$(t).parents().filter(this.dom.container).length},val:function(t,e){return void 0===t?this.s.d:(t instanceof Date?this.s.d=this._dateToUtc(t):null===t||""===t?this.s.d=null:"--now"===t?this.s.d=this._dateToUtc(new Date):"string"==typeof t&&(this.s.d=this._dateToUtc(this._convert(t,this.c.format,null))),!e&&void 0!==e||(this.s.d?this._writeOutput():this.dom.input.val(t)),this.s.display=this.s.d?new Date(this.s.d.toString()):new Date,this.s.display.setUTCDate(1),this._setTitle(),this._setCalander(),this._setTime(),this)},valFormat:function(t,e){return e?(this.val(this._convert(e,t,null)),this):this._convert(this.val(),null,t)},_constructor:function(){function n(){var t=o.dom.input.val();t!==e&&(o.c.onChange.call(o,t,o.s.d,o.dom.input),e=t)}var o=this,d=this.c.classPrefix,e=this.dom.input.val();this.s.parts.date||this.dom.date.css("display","none"),this.s.parts.time||this.dom.time.css("display","none"),this.s.parts.seconds||(this.dom.time.children("div."+d+"-seconds").remove(),this.dom.time.children("span").eq(1).remove()),this.c.buttons.clear||this.dom.clear.css("display","none"),this.c.buttons.today||this.dom.today.css("display","none"),this._optionsTitle(),$(document).on("i18n.dt",function(t,e){e.oLanguage.datetime&&($.extend(!0,o.c.i18n,e.oLanguage.datetime),o._optionsTitle())}),"hidden"===this.dom.input.attr("type")&&(this.dom.container.addClass("inline"),this.c.attachTo="input",this.val(this.dom.input.val(),!1),this._show()),e&&this.val(e,!1),this.dom.input.attr("autocomplete","off").on("focus.datetime click.datetime",function(){o.dom.container.is(":visible")||o.dom.input.is(":disabled")||(o.val(o.dom.input.val(),!1),o._show())}).on("keyup.datetime",function(){o.dom.container.is(":visible")&&o.val(o.dom.input.val(),!1)}),this.dom.container.on("change","select",function(){var t,e,s=$(this),i=s.val();s.hasClass(d+"-month")?(o._correctMonth(o.s.display,i),o._setTitle(),o._setCalander()):s.hasClass(d+"-year")?(o.s.display.setUTCFullYear(i),o._setTitle(),o._setCalander()):s.hasClass(d+"-hours")||s.hasClass(d+"-ampm")?(o.s.parts.hours12?(t=+$(o.dom.container).find("."+d+"-hours").val(),e="pm"===$(o.dom.container).find("."+d+"-ampm").val(),o.s.d.setUTCHours(12!=t||e?e&&12!=t?12+t:t:0)):o.s.d.setUTCHours(i),o._setTime(),o._writeOutput(!0),n()):s.hasClass(d+"-minutes")?(o.s.d.setUTCMinutes(i),o._setTime(),o._writeOutput(!0),n()):s.hasClass(d+"-seconds")&&(o.s.d.setSeconds(i),o._setTime(),o._writeOutput(!0),n()),o.dom.input.focus(),o._position()}).on("click",function(t){var e=o.s.d,s="span"===t.target.nodeName.toLowerCase()?t.target.parentNode:t.target,i=s.nodeName.toLowerCase();if("select"!==i)if(t.stopPropagation(),"a"===i&&(t.preventDefault(),$(s).hasClass(d+"-clear")?(o.s.d=null,o.dom.input.val(""),o._writeOutput(),o._setCalander(),o._setTime(),n()):$(s).hasClass(d+"-today")&&(o.s.display=new Date,o._setTitle(),o._setCalander())),"button"===i){t=$(s),i=t.parent();if(i.hasClass("disabled")&&!i.hasClass("range"))t.blur();else if(i.hasClass(d+"-iconLeft"))o.s.display.setUTCMonth(o.s.display.getUTCMonth()-1),o._setTitle(),o._setCalander(),o.dom.input.focus();else if(i.hasClass(d+"-iconRight"))o._correctMonth(o.s.display,o.s.display.getUTCMonth()+1),o._setTitle(),o._setCalander(),o.dom.input.focus();else{if(t.parents("."+d+"-time").length){var s=t.data("value"),a=t.data("unit"),e=o._needValue();if("minutes"===a){if(i.hasClass("disabled")&&i.hasClass("range"))return o.s.minutesRange=s,void o._setTime();o.s.minutesRange=null}if("seconds"===a){if(i.hasClass("disabled")&&i.hasClass("range"))return o.s.secondsRange=s,void o._setTime();o.s.secondsRange=null}if("am"===s){if(!(12<=e.getUTCHours()))return;s=e.getUTCHours()-12}else if("pm"===s){if(!(e.getUTCHours()<12))return;s=e.getUTCHours()+12}e["hours"===a?"setUTCHours":"minutes"===a?"setUTCMinutes":"setSeconds"](s),o._setCalander(),o._setTime(),o._writeOutput(!0)}else(e=o._needValue()).setUTCDate(1),e.setUTCFullYear(t.data("year")),e.setUTCMonth(t.data("month")),e.setUTCDate(t.data("day")),o._writeOutput(!0),o.s.parts.time?(o._setCalander(),o._setTime()):setTimeout(function(){o._hide()},10);n()}}else o.dom.input.focus()})},_compareDates:function(t,e){return this._isLuxon()?dateLib.DateTime.fromJSDate(t).toUTC().toISODate()===dateLib.DateTime.fromJSDate(e).toUTC().toISODate():this._dateToUtcString(t)===this._dateToUtcString(e)},_convert:function(t,e,s){var i;return t&&(dateLib?this._isLuxon()?(i=t instanceof Date?dateLib.DateTime.fromJSDate(t).toUTC():dateLib.DateTime.fromFormat(t,e)).isValid?s?i.toFormat(s):i.toJSDate():null:(i=t instanceof Date?dateLib.utc(t,void 0,this.c.locale,this.c.strict):dateLib(t,e,this.c.locale,this.c.strict)).isValid()?s?i.format(s):i.toDate():null:!e&&!s||e&&s?t:e?(i=t.match(/(\d{4})\-(\d{2})\-(\d{2})/))?new Date(i[1],i[2]-1,i[3]):null:t.getUTCFullYear()+"-"+this._pad(t.getUTCMonth()+1)+"-"+this._pad(t.getUTCDate()))},_correctMonth:function(t,e){var s=this._daysInMonth(t.getUTCFullYear(),e),i=t.getUTCDate()>s;t.setUTCMonth(e),i&&(t.setUTCDate(s),t.setUTCMonth(e))},_daysInMonth:function(t,e){return[31,t%4==0&&(t%100!=0||t%400==0)?29:28,31,30,31,30,31,31,30,31,30,31][e]},_dateToUtc:function(t){return t&&new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds()))},_dateToUtcString:function(t){return this._isLuxon()?dateLib.DateTime.fromJSDate(t).toUTC().toISODate():t.getUTCFullYear()+"-"+this._pad(t.getUTCMonth()+1)+"-"+this._pad(t.getUTCDate())},_hide:function(t){!t&&"hidden"===this.dom.input.attr("type")||(t=this.s.namespace,this.dom.container.detach(),$(window).off("."+t),$(document).off("keydown."+t),$("div.dataTables_scrollBody").off("scroll."+t),$("div.DTE_Body_Content").off("scroll."+t),$("body").off("click."+t),$(this.dom.input[0].offsetParent).off("."+t))},_hours24To12:function(t){return 0===t?12:12':(e=["selectable"],s=this.c.classPrefix,t.disabled&&e.push("disabled"),t.today&&e.push("now"),t.selected&&e.push("selected"),'")},_htmlMonth:function(t,e){for(var s=this._dateToUtc(new Date),i=this._daysInMonth(t,e),a=new Date(Date.UTC(t,e,1)).getUTCDay(),n=[],o=[],d=(0"+o.join("")+""),o=[],u=0)}var v,D=this.c.classPrefix,b=D+"-table";return this.c.showWeekNumber&&(b+=" weekNumber"),l&&(v=l>=new Date(Date.UTC(t,e,1,0,0,0)),this.dom.title.find("div."+D+"-iconLeft").css("display",v?"none":"block")),h&&(v=h'+this._htmlMonthHead()+""+n.join("")+""},_htmlMonthHead:function(){var t=[],e=this.c.firstDay,s=this.c.i18n;this.c.showWeekNumber&&t.push("");for(var i=0;i<7;i++)t.push(""+function(t){for(t+=e;7<=t;)t-=7;return s.weekdays[t]}(i)+"");return t.join("")},_htmlWeekOfYear:function(t,e,s){e=new Date(s,e,t,0,0,0,0),e.setDate(e.getDate()+4-(e.getDay()||7)),t=new Date(s,0,1),s=Math.ceil(((e-t)/864e5+1)/7);return''+s+""},_isLuxon:function(){return!!(dateLib&&dateLib.DateTime&&dateLib.Duration&&dateLib.Settings)},_needValue:function(){return this.s.d||(this.s.d=this._dateToUtc(new Date),this.s.parts.time)||(this.s.d.setUTCHours(0),this.s.d.setUTCMinutes(0),this.s.d.setSeconds(0),this.s.d.setMilliseconds(0)),this.s.d},_options:function(t,e,s){s=s||e;var i=this.dom.container.find("select."+this.c.classPrefix+"-"+t);i.empty();for(var a=0,n=e.length;a'+s[a]+"")},_optionSet:function(t,e){var t=this.dom.container.find("select."+this.c.classPrefix+"-"+t),s=t.parent().children("span"),e=(t.val(e),t.find("option:selected"));s.html(0!==e.length?e.text():this.c.i18n.unknown)},_optionsTime:function(a,n,o,d,t){var e,r=this.c.classPrefix,s=this.dom.container.find("div."+r+"-"+a),i=12===n?function(t){return t}:this._pad,l=(r=this.c.classPrefix)+"-table",h=this.c.i18n;if(s.length){function c(t,e,s){12===n&&"number"==typeof t&&(12<=o&&(t+=12),12==t?t=0:24==t&&(t=12));var i=o===t||"am"===t&&o<12||"pm"===t&&12<=o?"selected":"";return"number"==typeof t&&d&&-1===$.inArray(t,d)&&(i+=" disabled"),s&&(i+=" "+s),'"}var u="",m=10;if(12===n){for(u+="",e=1;e<=6;e++)u+=c(e,i(e));for(u=(u+=c("am",h.amPm[0]))+""+"",e=7;e<=12;e++)u+=c(e,i(e));u=u+c("pm",h.amPm[1])+"",m=7}else{if(24===n)for(var f=0,p=0;p<4;p++){for(u+="",e=0;e<6;e++)u+=c(f,i(f)),f++;u+=""}else{for(u+="",p=0;p<60;p+=10)u+=c(p,i(p),"range");var u=u+""+(''),T=null!==t?t:-1===o?0:10*Math.floor(o/10);for(u+="",p=T+1;p"}m=6}s.empty().append('
"+u+"
'+h[a]+"
")}},_optionsTitle:function(){var t=this.c.i18n,e=this.c.minDate,s=this.c.maxDate,e=e?e.getFullYear():null,s=s?s.getFullYear():null,e=null!==e?e:(new Date).getFullYear()-this.c.yearRange,s=null!==s?s:(new Date).getFullYear()+this.c.yearRange;this._options("month",this._range(0,11),t.months),this._options("year",this._range(e,s)),this.dom.today.text(t.today).text(t.today),this.dom.clear.text(t.clear).text(t.clear),this.dom.previous.attr("title",t.previous).children("button").text(t.previous),this.dom.next.attr("title",t.next).children("button").text(t.next)},_pad:function(t){return t<10?"0"+t:t},_position:function(){var t,e,s,i="input"===this.c.attachTo?this.dom.input.position():this.dom.input.offset(),a=this.dom.container,n=this.dom.input.outerHeight();a.hasClass("inline")?a.insertAfter(this.dom.input):(this.s.parts.date&&this.s.parts.time&&550<$(window).width()?a.addClass("horizontal"):a.removeClass("horizontal"),"input"===this.c.attachTo?a.css({top:i.top+n,left:i.left}).insertAfter(this.dom.input):a.css({top:i.top+n,left:i.left}).appendTo("body"),t=a.outerHeight(),e=a.outerWidth(),s=$(window).scrollTop(),i.top+n+t-s>$(window).height()&&(n=i.top-t,a.css("top",n<0?0:n)),e+i.left>$(window).width()&&(s=$(window).width()-e,"input"===this.c.attachTo&&(s-=$(a).offsetParent().offset().left),a.css("left",s<0?0:s)))},_range:function(t,e,s){var i=[];s=s||1;for(var a=t;a<=e;a+=s)i.push(a);return i},_setCalander:function(){this.s.display&&this.dom.calendar.empty().append(this._htmlMonth(this.s.display.getUTCFullYear(),this.s.display.getUTCMonth()))},_setTitle:function(){this._optionSet("month",this.s.display.getUTCMonth()),this._optionSet("year",this.s.display.getUTCFullYear())},_setTime:function(){function t(t){return e.c[t+"Available"]||e._range(0,59,e.c[t+"Increment"])}var e=this,s=this.s.d,i=null,a=null!=(i=this._isLuxon()?dateLib.DateTime.fromJSDate(s).toUTC():i)?i.hour:s?s.getUTCHours():-1;this._optionsTime("hours",this.s.parts.hours12?12:24,a,this.c.hoursAvailable),this._optionsTime("minutes",60,null!=i?i.minute:s?s.getUTCMinutes():-1,t("minutes"),this.s.minutesRange),this._optionsTime("seconds",60,null!=i?i.second:s?s.getSeconds():-1,t("seconds"),this.s.secondsRange)},_show:function(){var e=this,t=this.s.namespace,s=(this._position(),$(window).on("scroll."+t+" resize."+t,function(){e._position()}),$("div.DTE_Body_Content").on("scroll."+t,function(){e._position()}),$("div.dataTables_scrollBody").on("scroll."+t,function(){e._position()}),this.dom.input[0].offsetParent);s!==document.body&&$(s).on("scroll."+t,function(){e._position()}),$(document).on("keydown."+t,function(t){9!==t.keyCode&&27!==t.keyCode&&13!==t.keyCode||e._hide()}),setTimeout(function(){$("body").on("click."+t,function(t){$(t.target).parents().filter(e.dom.container).length||t.target===e.dom.input[0]||e._hide()})},10)},_writeOutput:function(t){var e=this.s.d,s="";e&&(s=this._convert(e,null,this.c.format)),this.dom.input.val(s).trigger("change",{write:e}),"hidden"===this.dom.input.attr("type")&&this.val(s,!1),t&&this.dom.input.focus()}}),DateTime.use=function(t){dateLib=t},DateTime._instance=0,DateTime.type="DateTime",DateTime.defaults={attachTo:"body",buttons:{clear:!1,today:!1},classPrefix:"dt-datetime",disableDays:null,firstDay:1,format:"YYYY-MM-DD",hoursAvailable:null,i18n:{clear:"Clear",previous:"Previous",next:"Next",months:["January","February","March","April","May","June","July","August","September","October","November","December"],weekdays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],amPm:["am","pm"],hours:"Hour",minutes:"Minute",seconds:"Second",unknown:"-",today:"Today"},maxDate:null,minDate:null,minutesAvailable:null,minutesIncrement:1,strict:!0,locale:"en",onChange:function(){},secondsAvailable:null,secondsIncrement:1,showWeekNumber:!1,yearRange:25},DateTime.version="1.4.1",DateTime.factory=function(t,e){var s=!1;return t&&t.document&&(window=t,document=t.document),e&&e.fn&&e.fn.jquery&&($=e,s=!0),s},window.DateTime||(window.DateTime=DateTime),window.DataTable&&(window.DataTable.DateTime=DateTime),$.fn.dtDateTime=function(t){return this.each(function(){new DateTime(this,t)})},$.fn.dataTable&&($.fn.dataTable.DateTime=DateTime,$.fn.DataTable.DateTime=DateTime,$.fn.dataTable.Editor)&&($.fn.dataTable.Editor.DateTime=DateTime);export default DateTime; \ No newline at end of file diff --git a/dist/dataTables.dateTime.mjs b/dist/dataTables.dateTime.mjs index 88e8124..b7f48d1 100644 --- a/dist/dataTables.dateTime.mjs +++ b/dist/dataTables.dateTime.mjs @@ -180,6 +180,28 @@ $.extend( DateTime.prototype, { .off('.datetime'); }, + display: function (year, month) { + if (year !== undefined) { + this.s.display.setUTCFullYear(year); + } + + if (month !== undefined) { + this.s.display.setUTCMonth(month - 1); + } + + if (year !== undefined || month !== undefined) { + this._setTitle(); + this._setCalander(); + + return this; + } + + return { + month: this.s.display.getUTCMonth() + 1, + year: this.s.display.getUTCFullYear() + }; + }, + errorMsg: function ( msg ) { var error = this.dom.error; diff --git a/js/dataTables.dateTime.js b/js/dataTables.dateTime.js index 698f4d5..847387f 100644 --- a/js/dataTables.dateTime.js +++ b/js/dataTables.dateTime.js @@ -1,4 +1,4 @@ -/*! DateTime picker for DataTables.net v1.4.1 +/*! DateTime picker for DataTables.net v1.5.0-dev * * © SpryMedia Ltd, all rights reserved. * License: MIT datatables.net/license/mit @@ -6,7 +6,7 @@ /** * @summary DateTime picker for DataTables.net - * @version 1.4.1 + * @version 1.5.0-dev * @file dataTables.dateTime.js * @author SpryMedia Ltd * @contact www.datatables.net/contact @@ -174,6 +174,28 @@ $.extend( DateTime.prototype, { .off('.datetime'); }, + display: function (year, month) { + if (year !== undefined) { + this.s.display.setUTCFullYear(year); + } + + if (month !== undefined) { + this.s.display.setUTCMonth(month - 1); + } + + if (year !== undefined || month !== undefined) { + this._setTitle(); + this._setCalander(); + + return this; + } + + return { + month: this.s.display.getUTCMonth() + 1, + year: this.s.display.getUTCFullYear() + }; + }, + errorMsg: function ( msg ) { var error = this.dom.error; @@ -1613,7 +1635,7 @@ DateTime.defaults = { yearRange: 25 }; -DateTime.version = '1.4.1'; +DateTime.version = '1.5.0-dev'; /** * CommonJS factory function pass through. Matches DataTables.