datatables.net-autofill 2.7.1 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/js/dataTables.autoFill.js +948 -1244
- package/js/dataTables.autoFill.min.js +3 -3
- package/js/dataTables.autoFill.min.mjs +3 -3
- package/js/dataTables.autoFill.mjs +930 -1226
- package/package.json +3 -15
- package/types/types.d.ts +189 -77
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! AutoFill
|
|
2
|
-
*
|
|
1
|
+
/*! AutoFill 3.0.0 for DataTables
|
|
2
|
+
* Copyright (c) SpryMedia Ltd - datatables.net/license
|
|
3
3
|
*/
|
|
4
|
-
(o=>{var i,n;"function"==typeof define&&define.amd?define(["jquery","datatables.net"],function(t){return o(t,window,document)}):"object"==typeof exports?(i=require("jquery"),n=function(t,e){e.fn.dataTable||require("datatables.net")(t,e)},"undefined"==typeof window?module.exports=function(t,e){return t=t||window,e=e||i(t),n(t,e),o(e,t,t.document)}:(n(window,i),module.exports=o(i,window,window.document))):o(jQuery,window,document)})(function(f,r,m){function d(t,e){if(!p.versionCheck||!p.versionCheck("1.11"))throw"Warning: AutoFill requires DataTables 1.11 or greater";this.c=f.extend(!0,{},p.defaults.autoFill,d.defaults,e),this.s={dt:new p.Api(t),namespace:".autoFill"+o++,scroll:{},scrollInterval:null,handle:{height:0,width:0},enabled:!1},this.dom={closeButton:f('<div class="dtaf-popover-close">×</div>'),handle:f('<div class="dt-autofill-handle"/>'),select:{top:f('<div class="dt-autofill-select top"/>'),right:f('<div class="dt-autofill-select right"/>'),bottom:f('<div class="dt-autofill-select bottom"/>'),left:f('<div class="dt-autofill-select left"/>')},background:f('<div class="dt-autofill-background"/>'),list:f('<div class="dt-autofill-list">'+this.s.dt.i18n("autoFill.info","")+"</div>").attr("aria-modal",!0).attr("role","dialog").append('<div class="dt-autofill-list-items"></div>'),dtScroll:null,offsetParent:null},this._constructor()}var p=f.fn.dataTable,o=0,t=(f.extend(d.prototype,{enabled:function(){return this.s.enabled},enable:function(t){var e=this;if(!1===t)return this.disable();this.s.enabled=!0,this._focusListener(),this.dom.handle.on("mousedown touchstart",function(t){return e._mousedown(t),!1}),f(r).on("resize",function(){0<f("div.dt-autofill-handle").length&&void 0!==e.dom.attachedTo&&e._attach(e.dom.attachedTo)});function o(){e.s.handle={height:!1,width:!1},f(e.dom.handle).css({height:"",width:""}),void 0!==e.dom.attachedTo&&e._attach(e.dom.attachedTo)}return f(r).on("orientationchange",function(){setTimeout(function(){o(),setTimeout(o,150)},50)}),this},disable:function(){return this.s.enabled=!1,this._focusListenerRemove(),this},_constructor:function(){var t=this,e=this.s.dt,o=f("div.dataTables_scrollBody, div.dt-scroll-body",this.s.dt.table().container());e.settings()[0].autoFill=this,o.length&&"static"===(this.dom.dtScroll=o).css("position")&&o.css("position","relative"),!1!==this.c.enable&&this.enable(),e.on("destroy.autoFill",function(){t._focusListenerRemove()})},_attach:function(t){var e=this.s.dt,o=e.cell(t).index(),i=this.dom.handle,n=this.s.handle;o&&-1!==e.columns(this.c.columns).indexes().indexOf(o.column)?(this.dom.offsetParent||(this.dom.offsetParent=f(e.table().node()).offsetParent()),n.height&&n.width||(i.appendTo("body"),n.height=i.outerHeight(),n.width=i.outerWidth()),o=this._getPosition(t,this.dom.offsetParent),this.dom.attachedTo=t,i.css({top:o.top+t.offsetHeight-n.height,left:o.left+t.offsetWidth-n.width}).appendTo(this.dom.offsetParent)):this._detach()},_actionSelector:function(o){var t,i,n=this,l=this.s.dt,s=d.actions,a=[];f.each(s,function(t,e){e.available(l,o)&&a.push(t)}),1===a.length&&!1===this.c.alwaysAsk?(t=s[a[0]].execute(l,o),this._update(t,o)):(1<a.length||this.c.alwaysAsk)&&(i=this.dom.list.children("div.dt-autofill-list-items").empty(),a.push("cancel"),f.each(a,function(t,e){i.append(f("<button/>").html(s[e].option(l,o)).append(f('<span class="dt-autofill-button"/>').html(l.i18n("autoFill.button",">"))).on("click",function(t){"button"===t.target.nodeName.toLowerCase()&&(t=s[e].execute(l,o,f(this).closest("button")),n._update(t,o),n.dom.background.remove(),n.dom.list.remove())}))}),this.dom.background.appendTo("body"),this.dom.background.one("click",function(){n.dom.background.remove(),n.dom.list.remove()}),this.dom.list.appendTo("body"),this.c.closeButton&&(this.dom.list.prepend(this.dom.closeButton).addClass(d.classes.closeable),this.dom.closeButton.on("click",function(){return n.dom.background.click()})),this.dom.list.css("margin-top",this.dom.list.outerHeight()/2*-1))},_detach:function(){this.dom.attachedTo=null,this.dom.handle.detach()},_drawSelection:function(t,e){var o,i=this.s.dt,n=this.s.start,l=f(this.dom.start),t={row:this.c.vertical?i.rows({page:"current"}).nodes().indexOf(t.parentNode):n.row,column:this.c.horizontal?f(t).index():n.column},s=i.column.index("toData",t.column),a=i.row(":eq("+t.row+")",{page:"current"}),a=f(i.cell(a.index(),s).node());i.cell(a).any()&&-1!==i.columns(this.c.columns).indexes().indexOf(s)&&-1!==t.row&&(this.s.end=t,i=n.row<t.row?l:a,s=n.row<t.row?a:l,o=n.column<t.column?l:a,n=n.column<t.column?a:l,i=this._getPosition(i.get(0)).top,o=this._getPosition(o.get(0)).left,t=this._getPosition(s.get(0)).top+s.outerHeight()-i,a=this._getPosition(n.get(0)).left+n.outerWidth()-o,(l=this.dom.select).top.css({top:i,left:o,width:a}),l.left.css({top:i,left:o,height:t}),l.bottom.css({top:i+t,left:o,width:a}),l.right.css({top:i,left:o+a,height:t}))},_editor:function(t){var e=this.s.dt,o=this.c.editor;if(o){for(var i={},n=[],l=o.fields(),s=0,a=t.length;s<a;s++)for(var d=0,r=t[s].length;d<r;d++){var c=t[s][d],u=e.settings()[0].aoColumns[c.index.column],h=u.editField;if(void 0===h)for(var f=u.mData,m=0,p=l.length;m<p;m++){var v=o.field(l[m]);if(v.dataSrc()===f){h=v.name();break}}if(!h)throw"Could not automatically determine field data. Please see https://datatables.net/tn/11";i[h]||(i[h]={});u=e.row(c.index.row).id();i[h][u]=c.set,n.push(c.index)}o.bubble(n,!1).multiSet(i).submit(null,function(){o.close()})}},_emitEvent:function(o,i){this.s.dt.iterator("table",function(t,e){f(t.nTable).triggerHandler(o+".dt",i)})},_focusListener:function(){var i=this,e=this.s.dt,t=this.s.namespace,o=null!==this.c.focus?this.c.focus:e.init().keys||e.settings()[0].keytable?"focus":"hover";"focus"===o?e.on("key-focus.autoFill",function(t,e,o){i._attach(o.node())}).on("key-blur.autoFill",function(t,e,o){i._detach()}):"click"===o?(f(e.table().body()).on("click"+t,"td, th",function(t){i._attach(this)}),f(m.body).on("click"+t,function(t){f(t.target).parents().filter(e.table().body()).length||i._detach()})):f(e.table().body()).on("mouseenter"+t+" touchstart"+t,"td, th",function(t){i._attach(this)}).on("mouseleave"+t+"touchend"+t,function(t){f(t.relatedTarget).hasClass("dt-autofill-handle")||i._detach()})},_focusListenerRemove:function(){var t=this.s.dt;t.off(".autoFill"),f(t.table().body()).off(this.s.namespace),f(m.body).off(this.s.namespace)},_getPosition:function(t,e){var o=t,i=0,n=0;e=e||f(f(this.s.dt.table().node())[0].offsetParent);do{var l=o.offsetTop,s=o.offsetLeft,a=f(o.offsetParent)}while((i+=l+ +parseInt(a.css("border-top-width")||0),n+=s+ +parseInt(a.css("border-left-width")||0),"body"!==o.nodeName.toLowerCase())&&(o=a.get(0),a.get(0)!==e.get(0)));return{top:i,left:n}},_mousedown:function(t){var e=this,o=this.s.dt,i=(this.dom.start=this.dom.attachedTo,this.s.start={row:o.rows({page:"current"}).nodes().indexOf(f(this.dom.start).parent()[0]),column:f(this.dom.start).index()},f(m.body).on("mousemove.autoFill touchmove.autoFill",function(t){e._mousemove(t),"touchmove"===t.type&&f(m.body).one("touchend.autoFill",function(){e._detach()})}).on("mouseup.autoFill touchend.autoFill",function(t){e._mouseup(t)}),this.dom.select),o=f(o.table().node()).offsetParent(),i=(i.top.appendTo(o),i.left.appendTo(o),i.right.appendTo(o),i.bottom.appendTo(o),this._drawSelection(this.dom.start,t),this.dom.handle.css("display","none"),this.dom.dtScroll);this.s.scroll={windowHeight:f(r).height(),windowWidth:f(r).width(),dtTop:i?i.offset().top:null,dtLeft:i?i.offset().left:null,dtHeight:i?i.outerHeight():null,dtWidth:i?i.outerWidth():null}},_mousemove:function(t){var e=t.touches&&t.touches.length?m.elementFromPoint(t.touches[0].clientX,t.touches[0].clientY):t.target,o=e.nodeName.toLowerCase();"td"!==o&&"th"!==o||(this._drawSelection(e,t),this._shiftScroll(t))},_mouseup:function(t){f(m.body).off(".autoFill");var e=this,n=this.s.dt,o=this.dom.select,o=(o.top.remove(),o.left.remove(),o.right.remove(),o.bottom.remove(),this.dom.handle.css("display","block"),this.s.start),i=this.s.end;if(o.row!==i.row||o.column!==i.column){var l,s=n.cell(":eq("+o.row+")",o.column+":visible",{page:"current"});if(f("div.DTE",s.node()).length)(l=n.editor()).on("submitSuccess.dtaf close.dtaf",function(){l.off(".dtaf"),setTimeout(function(){e._mouseup(t)},100)}).on("submitComplete.dtaf preSubmitCancelled.dtaf close.dtaf",function(){l.off(".dtaf")}),l.submit();else{for(var a=this._range(o.row,i.row),d=this._range(o.column,i.column),r=[],c=n.settings()[0].aoColumns,u=n.columns(this.c.columns).indexes(),h=0;h<a.length;h++)r.push(f.map(d,function(t){var e=n.row(":eq("+a[h]+")",{page:"current"}),e=n.cell(e.index(),t+":visible"),t=e.data(),o=e.index(),i=c[o.column].editField;if(void 0!==i&&(t=p.util.get(i)(n.row(o.row).data())),-1!==u.indexOf(o.column))return{cell:e,data:t,label:e.data(),index:o}}));this._actionSelector(r),clearInterval(this.s.scrollInterval),this.s.scrollInterval=null}}},_range:function(t,e){var o,i=[];if(t<=e)for(o=t;o<=e;o++)i.push(o);else for(o=t;e<=o;o--)i.push(o);return i},_shiftScroll:function(t){var e,o,i,n,l=this,s=this.s.scroll,a=!1,d=t.type.includes("touch")?t.touches[0].clientX:t.pageX-r.scrollX,t=t.type.includes("touch")?t.touches[0].clientY:t.pageY-r.scrollY;t<65?e=-5:t>s.windowHeight-65&&(e=5),d<65?o=-5:d>s.windowWidth-65&&(o=5),null!==s.dtTop&&t<s.dtTop+65?i=-5:null!==s.dtTop&&t>s.dtTop+s.dtHeight-65&&(i=5),null!==s.dtLeft&&d<s.dtLeft+65?n=-5:null!==s.dtLeft&&d>s.dtLeft+s.dtWidth-65&&(n=5),e||o||i||n?(s.windowVert=e,s.windowHoriz=o,s.dtVert=i,s.dtHoriz=n,a=!0):this.s.scrollInterval&&(clearInterval(this.s.scrollInterval),this.s.scrollInterval=null),!this.s.scrollInterval&&a&&(this.s.scrollInterval=setInterval(function(){var t;r.scrollTo(r.scrollX+(s.windowHoriz||0),r.scrollY+(s.windowVert||0)),(s.dtVert||s.dtHoriz)&&(t=l.dom.dtScroll[0],s.dtVert&&(t.scrollTop+=s.dtVert),s.dtHoriz)&&(t.scrollLeft+=s.dtHoriz)},20))},_update:function(t,e){if(!1!==t){var o,t=this.s.dt,i=t.columns(this.c.columns).indexes();if(this._emitEvent("preAutoFill",[t,e]),this._editor(e),null!==this.c.update?this.c.update:!this.c.editor){for(var n=0,l=e.length;n<l;n++)for(var s=0,a=e[n].length;s<a;s++)o=e[n][s],-1!==i.indexOf(o.index.column)&&o.cell.data(o.set);t.draw(!1)}this._emitEvent("autoFill",[t,e])}}}),d.actions={increment:{available:function(t,e){e=e[0][0].label;return!isNaN(e-parseFloat(e))},option:function(t,e){return t.i18n("autoFill.increment",'Increment / decrement each cell by: <input type="number" value="1">')},execute:function(t,e,o){for(var i=+e[0][0].data,n=+f("input",o).val(),l=0,s=e.length;l<s;l++)for(var a=0,d=e[l].length;a<d;a++)e[l][a].set=i,i+=n}},fill:{available:function(t,e){return!0},option:function(t,e){return t.i18n("autoFill.fill","Fill all cells with <i>%d</i>",e[0][0].label)},execute:function(t,e,o){for(var i=e[0][0].data,n=0,l=e.length;n<l;n++)for(var s=0,a=e[n].length;s<a;s++)e[n][s].set=i}},fillHorizontal:{available:function(t,e){return 1<e.length&&1<e[0].length},option:function(t,e){return t.i18n("autoFill.fillHorizontal","Fill cells horizontally")},execute:function(t,e,o){for(var i=0,n=e.length;i<n;i++)for(var l=0,s=e[i].length;l<s;l++)e[i][l].set=e[i][0].data}},fillVertical:{available:function(t,e){return 1<e.length&&1<e[0].length},option:function(t,e){return t.i18n("autoFill.fillVertical","Fill cells vertically")},execute:function(t,e,o){for(var i=0,n=e.length;i<n;i++)for(var l=0,s=e[i].length;l<s;l++)e[i][l].set=e[0][l].data}},cancel:{available:function(){return!1},option:function(t){return t.i18n("autoFill.cancel","Cancel")},execute:function(){return!1}}},d.version="2.7.1",d.defaults={alwaysAsk:!1,closeButton:!0,focus:null,columns:"",enable:!0,update:null,editor:null,vertical:!0,horizontal:!0},d.classes={btn:"btn",closeable:"dtaf-popover-closeable"},f.fn.dataTable.Api);return t.register("autoFill()",function(){return this}),t.register("autoFill().enabled()",function(){var t=this.context[0];return!!t.autoFill&&t.autoFill.enabled()}),t.register("autoFill().enable()",function(e){return this.iterator("table",function(t){t.autoFill&&t.autoFill.enable(e)})}),t.register("autoFill().disable()",function(){return this.iterator("table",function(t){t.autoFill&&t.autoFill.disable()})}),f(m).on("preInit.dt.autofill",function(t,e,o){var i,n;"dt"===t.namespace&&(t=e.oInit.autoFill,i=p.defaults.autoFill,t||i)&&(n=f.extend({},t,i),!1!==t)&&new d(e,n)}),p.AutoFill=d,f.fn.DataTable.AutoFill=d,p});
|
|
4
|
+
(e=>{var o;"function"==typeof define&&define.amd?define(["datatables.net"],function(t){return e(window,document,t)}):"object"==typeof exports?(o=function(t){t.DataTable||require("datatables.net")(t)},"undefined"==typeof window?module.exports=function(t){return t=t||window,o(t),e(t,t.document,t.DataTable)}:(o(window),module.exports=e(window,window.document,window.DataTable))):e(window,document,window.DataTable)})(function(c,n,u){var h=u.Dom,t=u.Api,d=u.util;if(!u||!u.versionCheck||!u.versionCheck("3"))throw"Warning: AutoFill requires DataTables 3 or greater";var o=0;class r{enabled(){return this.s.enabled}enable(t=!0){let e=this;var o=this.s.namespace;if(!1===t)return this.disable();this.s.enabled=!0,this._focusListener(),this.dom.handle.on("mousedown touchstart",function(t){return e._mousedown(t),!1});function i(){e.s.handle={height:0,width:0},e.dom.handle.css({height:"",width:""}),e.dom.attachedTo&&e._attach(e.dom.attachedTo)}return h.w.on("resize"+o,function(){0<h.s("div.dtaf-handle").count()&&e.dom.attachedTo&&e._attach(e.dom.attachedTo)}),h.w.on("orientationchange"+o,function(){setTimeout(function(){i(),setTimeout(i,150)},50)}),this}disable(){return this.s.enabled=!1,this._focusListenerRemove(),this}constructor(t,e){this.c=d.object.assignDeep({},r.defaults,e),this.s={dt:new u.Api(t),enabled:!1,end:{column:0,row:0},handle:{height:0,width:0},namespace:".autoFill"+o++,scroll:{windowHeight:0,windowWidth:0,dtTop:0,dtLeft:0,dtHeight:0,dtWidth:0},scrollInterval:null,start:{column:0,row:0}},this.dom={attachedTo:null,container:h.c("div").classAdd("dtaf-container"),closeButton:h.c("button").classAdd(r.classes.close).html("×"),dtScroll:null,handle:h.c("div").classAdd("dtaf-handle"),list:h.c("div").classAdd("dtaf-list").html(this.s.dt.i18n("autoFill.info","")).attr("aria-modal",!0).attr("role","dialog").append(h.c("div").classAdd("dtaf-list-items")),offsetParent:null,start:null,select:{top:h.c("div").classAdd("dtaf-select top"),right:h.c("div").classAdd("dtaf-select right"),bottom:h.c("div").classAdd("dtaf-select bottom"),left:h.c("div").classAdd("dtaf-select left")}},this.dom.list.appendTo(this.dom.container),this._init()}_init(){var t=this.s.dt,e=h.s(this.s.dt.table().container()).find("div.dt-scroll-body");t.settings()[0].autoFill=this,e.count()&&"static"===(this.dom.dtScroll=e).css("position")&&e.css("position","relative"),!1!==this.c.enable&&this.enable(),t.on("destroy.autoFill",()=>{this._focusListenerRemove(),this.dom.handle.off()})}_attach(t){var e=this.s.dt,o=e.cell(t).index(),i=this.dom.handle,l=this.s.handle;o&&-1!==e.columns(this.c.columns).indexes().indexOf(o.column)?(this.dom.offsetParent||(this.dom.offsetParent=e.table().node().offsetParent),l.height&&l.width||(i.appendTo("body"),l.height=i.height("outer"),l.width=i.width("outer")),o=this._getPosition(t,this.dom.offsetParent),this.dom.attachedTo=t,i.css({top:o.top+t.offsetHeight-l.height+"px",left:o.left+t.offsetWidth-l.width+"px"}).appendTo(this.dom.offsetParent)):this._detach()}_actionSelector(o){let i=this,l=this.s.dt,n=r.actions,s=[];if(d.object.each(n,function(t,e){e.available(l,o)&&s.push(t)}),1===s.length&&!1===this.c.alwaysAsk){var t=n[s[0]].execute(l,o,null);this._update(t,o)}else if(1<s.length||this.c.alwaysAsk){var a=this.dom.list.children("div.dtaf-list-items").empty();s.push("cancel");for(let t=0;t<s.length;t++){let e=s[t];a.append(h.c("button").classAdd(r.classes.btn).html(n[e].option(l,o)).append(h.c("span").classAdd("dtaf-button").html(l.i18n("autoFill.button",""))).on("click",function(t){"button"===t.target.nodeName.toLowerCase()&&(t=n[e].execute(l,o,h.s(this).closest("button")),i._update(t,o),i.dom.container.remove())}))}this.dom.container.appendTo("body"),this.dom.container.on("click",function(t){t.target===i.dom.container.get(0)&&i.dom.container.remove()}),this.c.closeButton&&(this.dom.list.prepend(this.dom.closeButton).classAdd(r.classes.closeable),this.dom.closeButton.on("click",function(){return i.dom.container.trigger("click")}))}}_detach(){this.dom.attachedTo=null,this.dom.handle.detach()}_drawSelection(t,e){var o,i=this.s.dt,l=this.s.start,n=h.s(this.dom.start),t={row:this.c.vertical?i.rows({page:"current"}).nodes().indexOf(t.parentNode):l.row,column:this.c.horizontal?h.s(t).index():l.column},s=i.column.index("toData",t.column),a=i.row(":eq("+t.row+")",{page:"current"}),a=h.s(i.cell(a.index(),s).node());i.cell(a.get(0)).any()&&-1!==i.columns(this.c.columns).indexes().indexOf(s)&&-1!==t.row&&(this.s.end=t,i=l.row<t.row?n:a,s=l.row<t.row?a:n,o=l.column<t.column?n:a,l=l.column<t.column?a:n,i=this._getPosition(i.get(0)).top,o=this._getPosition(o.get(0)).left,t=this._getPosition(s.get(0)).top+s.height("outer")-i,a=this._getPosition(l.get(0)).left+l.width("outer")-o,(n=this.dom.select).top.css({top:i+"px",left:o+"px",width:a+"px"}),n.left.css({top:i+"px",left:o+"px",height:t+"px"}),n.bottom.css({top:i+t+"px",left:o+"px",width:a+"px"}),n.right.css({top:i+"px",left:o+a+"px",height:t+"px"}))}_editor(l){var n=this.s.dt;let s=this.c.editor;if(s){var a={},d=[],c=s.fields();for(let i=0,t=l.length;i<t;i++)for(let t=0,e=l[i].length;t<e;t++){var r=l[i][t],u=n.settings()[0].columns[r.index.column];let o=u.editField;if(void 0===o){var h=u.data;for(let t=0,e=c.length;t<e;t++){var f=s.field(c[t]);if(f.dataSrc()===h){o=f.name();break}}}if(!o)throw"Could not automatically determine field data. Please see https://datatables.net/tn/11";if("string"!=typeof o)throw"AutoFill with multiple edit fields is not supported";a[o]||(a[o]={});u=n.row(r.index.row).id();a[o][u]=r.set,d.push(r.index)}s.bubble(d,!1).multiSet(a).submit(null,function(){s.close()})}}_emitEvent(t,e){this.s.dt.trigger(t,e)}_focusListener(){var i=this,e=this.s.dt,t=this.s.namespace,o=null!==this.c.focus?this.c.focus:e.init().keys||e.settings()[0].keytable?"focus":"hover";"focus"===o?e.on("key-focus.autoFill",function(t,e,o){i._attach(o.node())}).on("key-blur.autoFill",function(t,e,o){i._detach()}):"click"===o?(h.s(e.table().body()).on("click"+t,"td, th",function(t){i._attach(this)}),h.s(n.body).on("click"+t,function(t){h.s(t.target).closest(e.table().body()).count()||i._detach()})):h.s(e.table().body()).on("mouseenter"+t+" touchstart"+t,"td, th",function(t){i._attach(this)}).on("mouseleave"+t+"touchend"+t,function(t){h.s(t.relatedTarget).classHas("dtaf-handle")||i._detach()})}_focusListenerRemove(){var t=this.s.namespace,e=this.s.dt;e.off(".autoFill"),h.s(e.table().body()).off(t),h.s(n.body).off(t),h.w.off(t)}_getPosition(t,e){let o=h.s(this.s.dt.table().node().offsetParent),i=t,l,n=0,s=0;e&&(o=h.s(e));do{var a=i.offsetTop,d=i.offsetLeft;if(l=h.s(i.offsetParent),n+=a+ +parseInt(l.css("border-top-width")||"0"),s+=d+ +parseInt(l.css("border-left-width")||"0"),"body"===i.nodeName.toLowerCase())break}while(i=l.get(0),l.get(0)!==o.get(0));return{top:n,left:s}}_mousedown(t){let e=this;var o=this.s.dt,i=(this.dom.start=this.dom.attachedTo,this.s.start={row:o.rows({page:"current"}).nodes().indexOf(h.s(this.dom.start).parent().get(0)),column:h.s(this.dom.start).index()},h.s(n.body).on("mousemove.autoFill touchmove.autoFill",function(t){e._mousemove(t),"touchmove"===t.type&&h.s(n.body).one("touchend.autoFill",function(){e._detach()})}).on("mouseup.autoFill touchend.autoFill",function(t){e._mouseup(t)}),this.dom.select),o=o.table().node().offsetParent,i=(i.top.appendTo(o),i.left.appendTo(o),i.right.appendTo(o),i.bottom.appendTo(o),this._drawSelection(this.dom.start,t),this.dom.handle.css("display","none"),this.dom.dtScroll);this.s.scroll={windowHeight:c.innerHeight,windowWidth:c.innerWidth,dtTop:i?i.offset().top:0,dtLeft:i?i.offset().left:0,dtHeight:i?i.height("outer"):0,dtWidth:i?i.width("outer"):0}}_mousemove(t){var e=t.touches&&t.touches.length?n.elementFromPoint(t.touches[0].clientX,t.touches[0].clientY):t.target,o=e.nodeName.toLowerCase();"td"!==o&&"th"!==o||(this._drawSelection(e,t),this._shiftScroll(t))}_mouseup(e){h.s(n.body).off(".autoFill");let o=this,d=this.s.dt;var t=this.dom.select,t=(t.top.remove(),t.left.remove(),t.right.remove(),t.bottom.remove(),this.dom.handle.css("display","block"),this.s.start),i=this.s.end;if(t.row!==i.row||t.column!==i.column){var l=d.cell(":eq("+t.row+")",t.column+":visible",{page:"current"});if(h.s(l.node()).find("div.DTE").count()){let t=d.editor();t.on("submitSuccess.dtaf close.dtaf",function(){t.off(".dtaf"),setTimeout(function(){o._mouseup(e)},100)}).on("submitComplete.dtaf preSubmitCancelled.dtaf close.dtaf",function(){t.off(".dtaf")}),void t.submit()}else{let n=this._range(t.row,i.row);var c=this._range(t.column,i.column),r=[];let s=d.settings()[0].columns,a=d.columns(this.c.columns).indexes();for(let l=0;l<n.length;l++)r.push(c.map(function(t){var e=d.row(":eq("+n[l]+")",{page:"current"}),e=d.cell(e.index(),t+":visible");let o=e.data();var t=e.index(),i=s[t.column].editField;if(void 0!==i&&(o=u.util.get(i)(d.row(t.row).data())),-1!==a.indexOf(t.column))return{cell:e,data:o,label:e.data(),index:t}}).filter(t=>!!t));this._actionSelector(r),this.s.scrollInterval&&(clearInterval(this.s.scrollInterval),this.s.scrollInterval=null)}}}_range(t,e){var o,i=[];if(t<=e)for(o=t;o<=e;o++)i.push(o);else for(o=t;e<=o;o--)i.push(o);return i}_shiftScroll(t){var e,o,i,l,n=this,s=this.s.scroll,a=!1,d=t.type.includes("touch")?t.touches[0].clientX:t.pageX-c.scrollX,t=t.type.includes("touch")?t.touches[0].clientY:t.pageY-c.scrollY;t<65?e=-5:t>s.windowHeight-65&&(e=5),d<65?o=-5:d>s.windowWidth-65&&(o=5),null!==s.dtTop&&t<s.dtTop+65?i=-5:null!==s.dtTop&&t>s.dtTop+s.dtHeight-65&&(i=5),null!==s.dtLeft&&d<s.dtLeft+65?l=-5:null!==s.dtLeft&&d>s.dtLeft+s.dtWidth-65&&(l=5),e||o||i||l?(s.windowVert=e,s.windowHoriz=o,s.dtVert=i,s.dtHoriz=l,a=!0):this.s.scrollInterval&&(clearInterval(this.s.scrollInterval),this.s.scrollInterval=null),!this.s.scrollInterval&&a&&(this.s.scrollInterval=setInterval(function(){var t;c.scrollTo(c.scrollX+(s.windowHoriz||0),c.scrollY+(s.windowVert||0)),(s.dtVert||s.dtHoriz)&&((t=null==(t=n.dom.dtScroll)?void 0:t.get(0))&&s.dtVert&&(t.scrollTop+=s.dtVert),t)&&s.dtHoriz&&(t.scrollLeft+=s.dtHoriz)},20))}_update(t,i){if(!1!==t){var l,t=this.s.dt,n=t.columns(this.c.columns).indexes(),e=(this._emitEvent("preAutoFill",[t,i]),this._editor(i),null!==this.c.update?this.c.update:!this.c.editor);if(e){for(let o=0,t=i.length;o<t;o++)for(let t=0,e=i[o].length;t<e;t++)l=i[o][t],-1!==n.indexOf(l.index.column)&&l.cell.data(l.set);t.draw(!1)}this._emitEvent("autoFill",[t,i])}}}return r.actions={increment:{available:function(t,e){e=e[0][0].label;return!isNaN(e-parseFloat(e))},option:function(t,e){return t.i18n("autoFill.increment",'Increment / decrement each cell by: <input type="number" value="1">')},execute:function(t,i,e){let l=+i[0][0].data;var n=e?parseFloat(e.find("input").val()):1;for(let o=0,t=i.length;o<t;o++)for(let t=0,e=i[o].length;t<e;t++)i[o][t].set=l,l+=n}},fill:{available:function(t,e){return!0},option:function(t,e){return t.i18n("autoFill.fill","Fill all cells with <i>%d</i>",e[0][0].label)},execute:function(t,i,e){var l=i[0][0].data;for(let o=0,t=i.length;o<t;o++)for(let t=0,e=i[o].length;t<e;t++)i[o][t].set=l}},fillHorizontal:{available:function(t,e){return 1<e.length&&1<e[0].length},option:function(t,e){return t.i18n("autoFill.fillHorizontal","Fill cells horizontally")},execute:function(t,i,e){for(let o=0,t=i.length;o<t;o++)for(let t=0,e=i[o].length;t<e;t++)i[o][t].set=i[o][0].data}},fillVertical:{available:function(t,e){return 1<e.length&&1<e[0].length},option:function(t,e){return t.i18n("autoFill.fillVertical","Fill cells vertically")},execute:function(t,i,e){for(let o=0,t=i.length;o<t;o++)for(let t=0,e=i[o].length;t<e;t++)i[o][t].set=i[0][t].data}},cancel:{available:function(){return!1},option:function(t){return t.i18n("autoFill.cancel","Cancel")},execute:function(){return!1}}},r.classes={btn:"btn",close:"dtaf-list-close",closeable:"dtaf-list-closeable"},r.defaults={alwaysAsk:!1,closeButton:!0,focus:null,columns:"",enable:!0,update:!0,editor:null,vertical:!0,horizontal:!0},r.version="3.0.0",t.register("autoFill()",function(){return this.inst(this.context)}),t.register("autoFill().enabled()",function(){var t=this.context[0];return!!t.autoFill&&t.autoFill.enabled()}),t.register("autoFill().enable()",function(e){return this.iterator("table",function(t){t.autoFill&&t.autoFill.enable(e)})}),t.register("autoFill().disable()",function(){return this.iterator("table",function(t){t.autoFill&&t.autoFill.disable()})}),h.s(n).on("preInit.dt.autofill",function(t,e){var o,i;"dt"===t.namespace&&(t=e.init.autoFill,o=u.defaults.autoFill,t||o)&&(i={},d.is.plainObject(o)&&d.object.assign(i,o),d.is.plainObject(t)&&d.object.assign(i,t),!1!==t)&&new r(e,i)}),u.AutoFill=r,u});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! AutoFill
|
|
2
|
-
*
|
|
1
|
+
/*! AutoFill 3.0.0 for DataTables
|
|
2
|
+
* Copyright (c) SpryMedia Ltd - datatables.net/license
|
|
3
3
|
*/
|
|
4
|
-
import jQuery from"jquery";import DataTable from"datatables.net";let $=jQuery;var _instance=0,AutoFill=function(t,e){if(!DataTable.versionCheck||!DataTable.versionCheck("1.11"))throw"Warning: AutoFill requires DataTables 1.11 or greater";this.c=$.extend(!0,{},DataTable.defaults.autoFill,AutoFill.defaults,e),this.s={dt:new DataTable.Api(t),namespace:".autoFill"+_instance++,scroll:{},scrollInterval:null,handle:{height:0,width:0},enabled:!1},this.dom={closeButton:$('<div class="dtaf-popover-close">×</div>'),handle:$('<div class="dt-autofill-handle"/>'),select:{top:$('<div class="dt-autofill-select top"/>'),right:$('<div class="dt-autofill-select right"/>'),bottom:$('<div class="dt-autofill-select bottom"/>'),left:$('<div class="dt-autofill-select left"/>')},background:$('<div class="dt-autofill-background"/>'),list:$('<div class="dt-autofill-list">'+this.s.dt.i18n("autoFill.info","")+"</div>").attr("aria-modal",!0).attr("role","dialog").append('<div class="dt-autofill-list-items"></div>'),dtScroll:null,offsetParent:null},this._constructor()},Api=($.extend(AutoFill.prototype,{enabled:function(){return this.s.enabled},enable:function(t){var e=this;if(!1===t)return this.disable();this.s.enabled=!0,this._focusListener(),this.dom.handle.on("mousedown touchstart",function(t){return e._mousedown(t),!1}),$(window).on("resize",function(){0<$("div.dt-autofill-handle").length&&void 0!==e.dom.attachedTo&&e._attach(e.dom.attachedTo)});function o(){e.s.handle={height:!1,width:!1},$(e.dom.handle).css({height:"",width:""}),void 0!==e.dom.attachedTo&&e._attach(e.dom.attachedTo)}return $(window).on("orientationchange",function(){setTimeout(function(){o(),setTimeout(o,150)},50)}),this},disable:function(){return this.s.enabled=!1,this._focusListenerRemove(),this},_constructor:function(){var t=this,e=this.s.dt,o=$("div.dataTables_scrollBody, div.dt-scroll-body",this.s.dt.table().container());e.settings()[0].autoFill=this,o.length&&"static"===(this.dom.dtScroll=o).css("position")&&o.css("position","relative"),!1!==this.c.enable&&this.enable(),e.on("destroy.autoFill",function(){t._focusListenerRemove()})},_attach:function(t){var e=this.s.dt,o=e.cell(t).index(),i=this.dom.handle,l=this.s.handle;o&&-1!==e.columns(this.c.columns).indexes().indexOf(o.column)?(this.dom.offsetParent||(this.dom.offsetParent=$(e.table().node()).offsetParent()),l.height&&l.width||(i.appendTo("body"),l.height=i.outerHeight(),l.width=i.outerWidth()),o=this._getPosition(t,this.dom.offsetParent),this.dom.attachedTo=t,i.css({top:o.top+t.offsetHeight-l.height,left:o.left+t.offsetWidth-l.width}).appendTo(this.dom.offsetParent)):this._detach()},_actionSelector:function(o){var t,i,l=this,n=this.s.dt,s=AutoFill.actions,a=[];$.each(s,function(t,e){e.available(n,o)&&a.push(t)}),1===a.length&&!1===this.c.alwaysAsk?(t=s[a[0]].execute(n,o),this._update(t,o)):(1<a.length||this.c.alwaysAsk)&&(i=this.dom.list.children("div.dt-autofill-list-items").empty(),a.push("cancel"),$.each(a,function(t,e){i.append($("<button/>").html(s[e].option(n,o)).append($('<span class="dt-autofill-button"/>').html(n.i18n("autoFill.button",">"))).on("click",function(t){"button"===t.target.nodeName.toLowerCase()&&(t=s[e].execute(n,o,$(this).closest("button")),l._update(t,o),l.dom.background.remove(),l.dom.list.remove())}))}),this.dom.background.appendTo("body"),this.dom.background.one("click",function(){l.dom.background.remove(),l.dom.list.remove()}),this.dom.list.appendTo("body"),this.c.closeButton&&(this.dom.list.prepend(this.dom.closeButton).addClass(AutoFill.classes.closeable),this.dom.closeButton.on("click",function(){return l.dom.background.click()})),this.dom.list.css("margin-top",this.dom.list.outerHeight()/2*-1))},_detach:function(){this.dom.attachedTo=null,this.dom.handle.detach()},_drawSelection:function(t,e){var o,i=this.s.dt,l=this.s.start,n=$(this.dom.start),t={row:this.c.vertical?i.rows({page:"current"}).nodes().indexOf(t.parentNode):l.row,column:this.c.horizontal?$(t).index():l.column},s=i.column.index("toData",t.column),a=i.row(":eq("+t.row+")",{page:"current"}),a=$(i.cell(a.index(),s).node());i.cell(a).any()&&-1!==i.columns(this.c.columns).indexes().indexOf(s)&&-1!==t.row&&(this.s.end=t,i=l.row<t.row?n:a,s=l.row<t.row?a:n,o=l.column<t.column?n:a,l=l.column<t.column?a:n,i=this._getPosition(i.get(0)).top,o=this._getPosition(o.get(0)).left,t=this._getPosition(s.get(0)).top+s.outerHeight()-i,a=this._getPosition(l.get(0)).left+l.outerWidth()-o,(n=this.dom.select).top.css({top:i,left:o,width:a}),n.left.css({top:i,left:o,height:t}),n.bottom.css({top:i+t,left:o,width:a}),n.right.css({top:i,left:o+a,height:t}))},_editor:function(t){var e=this.s.dt,o=this.c.editor;if(o){for(var i={},l=[],n=o.fields(),s=0,a=t.length;s<a;s++)for(var d=0,r=t[s].length;d<r;d++){var c=t[s][d],u=e.settings()[0].aoColumns[c.index.column],h=u.editField;if(void 0===h)for(var f=u.mData,m=0,p=n.length;m<p;m++){var v=o.field(n[m]);if(v.dataSrc()===f){h=v.name();break}}if(!h)throw"Could not automatically determine field data. Please see https://datatables.net/tn/11";i[h]||(i[h]={});u=e.row(c.index.row).id();i[h][u]=c.set,l.push(c.index)}o.bubble(l,!1).multiSet(i).submit(null,function(){o.close()})}},_emitEvent:function(o,i){this.s.dt.iterator("table",function(t,e){$(t.nTable).triggerHandler(o+".dt",i)})},_focusListener:function(){var i=this,e=this.s.dt,t=this.s.namespace,o=null!==this.c.focus?this.c.focus:e.init().keys||e.settings()[0].keytable?"focus":"hover";"focus"===o?e.on("key-focus.autoFill",function(t,e,o){i._attach(o.node())}).on("key-blur.autoFill",function(t,e,o){i._detach()}):"click"===o?($(e.table().body()).on("click"+t,"td, th",function(t){i._attach(this)}),$(document.body).on("click"+t,function(t){$(t.target).parents().filter(e.table().body()).length||i._detach()})):$(e.table().body()).on("mouseenter"+t+" touchstart"+t,"td, th",function(t){i._attach(this)}).on("mouseleave"+t+"touchend"+t,function(t){$(t.relatedTarget).hasClass("dt-autofill-handle")||i._detach()})},_focusListenerRemove:function(){var t=this.s.dt;t.off(".autoFill"),$(t.table().body()).off(this.s.namespace),$(document.body).off(this.s.namespace)},_getPosition:function(t,e){var o=t,i=0,l=0;e=e||$($(this.s.dt.table().node())[0].offsetParent);do{var n=o.offsetTop,s=o.offsetLeft,a=$(o.offsetParent)}while((i+=n+ +parseInt(a.css("border-top-width")||0),l+=s+ +parseInt(a.css("border-left-width")||0),"body"!==o.nodeName.toLowerCase())&&(o=a.get(0),a.get(0)!==e.get(0)));return{top:i,left:l}},_mousedown:function(t){var e=this,o=this.s.dt,i=(this.dom.start=this.dom.attachedTo,this.s.start={row:o.rows({page:"current"}).nodes().indexOf($(this.dom.start).parent()[0]),column:$(this.dom.start).index()},$(document.body).on("mousemove.autoFill touchmove.autoFill",function(t){e._mousemove(t),"touchmove"===t.type&&$(document.body).one("touchend.autoFill",function(){e._detach()})}).on("mouseup.autoFill touchend.autoFill",function(t){e._mouseup(t)}),this.dom.select),o=$(o.table().node()).offsetParent(),i=(i.top.appendTo(o),i.left.appendTo(o),i.right.appendTo(o),i.bottom.appendTo(o),this._drawSelection(this.dom.start,t),this.dom.handle.css("display","none"),this.dom.dtScroll);this.s.scroll={windowHeight:$(window).height(),windowWidth:$(window).width(),dtTop:i?i.offset().top:null,dtLeft:i?i.offset().left:null,dtHeight:i?i.outerHeight():null,dtWidth:i?i.outerWidth():null}},_mousemove:function(t){var e=t.touches&&t.touches.length?document.elementFromPoint(t.touches[0].clientX,t.touches[0].clientY):t.target,o=e.nodeName.toLowerCase();"td"!==o&&"th"!==o||(this._drawSelection(e,t),this._shiftScroll(t))},_mouseup:function(t){$(document.body).off(".autoFill");var e=this,l=this.s.dt,o=this.dom.select,o=(o.top.remove(),o.left.remove(),o.right.remove(),o.bottom.remove(),this.dom.handle.css("display","block"),this.s.start),i=this.s.end;if(o.row!==i.row||o.column!==i.column){var n,s=l.cell(":eq("+o.row+")",o.column+":visible",{page:"current"});if($("div.DTE",s.node()).length)(n=l.editor()).on("submitSuccess.dtaf close.dtaf",function(){n.off(".dtaf"),setTimeout(function(){e._mouseup(t)},100)}).on("submitComplete.dtaf preSubmitCancelled.dtaf close.dtaf",function(){n.off(".dtaf")}),n.submit();else{for(var a=this._range(o.row,i.row),d=this._range(o.column,i.column),r=[],c=l.settings()[0].aoColumns,u=l.columns(this.c.columns).indexes(),h=0;h<a.length;h++)r.push($.map(d,function(t){var e=l.row(":eq("+a[h]+")",{page:"current"}),e=l.cell(e.index(),t+":visible"),t=e.data(),o=e.index(),i=c[o.column].editField;if(void 0!==i&&(t=DataTable.util.get(i)(l.row(o.row).data())),-1!==u.indexOf(o.column))return{cell:e,data:t,label:e.data(),index:o}}));this._actionSelector(r),clearInterval(this.s.scrollInterval),this.s.scrollInterval=null}}},_range:function(t,e){var o,i=[];if(t<=e)for(o=t;o<=e;o++)i.push(o);else for(o=t;e<=o;o--)i.push(o);return i},_shiftScroll:function(t){var e,o,i,l,n=this,s=this.s.scroll,a=!1,d=t.type.includes("touch")?t.touches[0].clientX:t.pageX-window.scrollX,t=t.type.includes("touch")?t.touches[0].clientY:t.pageY-window.scrollY;t<65?e=-5:t>s.windowHeight-65&&(e=5),d<65?o=-5:d>s.windowWidth-65&&(o=5),null!==s.dtTop&&t<s.dtTop+65?i=-5:null!==s.dtTop&&t>s.dtTop+s.dtHeight-65&&(i=5),null!==s.dtLeft&&d<s.dtLeft+65?l=-5:null!==s.dtLeft&&d>s.dtLeft+s.dtWidth-65&&(l=5),e||o||i||l?(s.windowVert=e,s.windowHoriz=o,s.dtVert=i,s.dtHoriz=l,a=!0):this.s.scrollInterval&&(clearInterval(this.s.scrollInterval),this.s.scrollInterval=null),!this.s.scrollInterval&&a&&(this.s.scrollInterval=setInterval(function(){var t;window.scrollTo(window.scrollX+(s.windowHoriz||0),window.scrollY+(s.windowVert||0)),(s.dtVert||s.dtHoriz)&&(t=n.dom.dtScroll[0],s.dtVert&&(t.scrollTop+=s.dtVert),s.dtHoriz)&&(t.scrollLeft+=s.dtHoriz)},20))},_update:function(t,e){if(!1!==t){var o,t=this.s.dt,i=t.columns(this.c.columns).indexes();if(this._emitEvent("preAutoFill",[t,e]),this._editor(e),null!==this.c.update?this.c.update:!this.c.editor){for(var l=0,n=e.length;l<n;l++)for(var s=0,a=e[l].length;s<a;s++)o=e[l][s],-1!==i.indexOf(o.index.column)&&o.cell.data(o.set);t.draw(!1)}this._emitEvent("autoFill",[t,e])}}}),AutoFill.actions={increment:{available:function(t,e){e=e[0][0].label;return!isNaN(e-parseFloat(e))},option:function(t,e){return t.i18n("autoFill.increment",'Increment / decrement each cell by: <input type="number" value="1">')},execute:function(t,e,o){for(var i=+e[0][0].data,l=+$("input",o).val(),n=0,s=e.length;n<s;n++)for(var a=0,d=e[n].length;a<d;a++)e[n][a].set=i,i+=l}},fill:{available:function(t,e){return!0},option:function(t,e){return t.i18n("autoFill.fill","Fill all cells with <i>%d</i>",e[0][0].label)},execute:function(t,e,o){for(var i=e[0][0].data,l=0,n=e.length;l<n;l++)for(var s=0,a=e[l].length;s<a;s++)e[l][s].set=i}},fillHorizontal:{available:function(t,e){return 1<e.length&&1<e[0].length},option:function(t,e){return t.i18n("autoFill.fillHorizontal","Fill cells horizontally")},execute:function(t,e,o){for(var i=0,l=e.length;i<l;i++)for(var n=0,s=e[i].length;n<s;n++)e[i][n].set=e[i][0].data}},fillVertical:{available:function(t,e){return 1<e.length&&1<e[0].length},option:function(t,e){return t.i18n("autoFill.fillVertical","Fill cells vertically")},execute:function(t,e,o){for(var i=0,l=e.length;i<l;i++)for(var n=0,s=e[i].length;n<s;n++)e[i][n].set=e[0][n].data}},cancel:{available:function(){return!1},option:function(t){return t.i18n("autoFill.cancel","Cancel")},execute:function(){return!1}}},AutoFill.version="2.7.1",AutoFill.defaults={alwaysAsk:!1,closeButton:!0,focus:null,columns:"",enable:!0,update:null,editor:null,vertical:!0,horizontal:!0},AutoFill.classes={btn:"btn",closeable:"dtaf-popover-closeable"},$.fn.dataTable.Api);Api.register("autoFill()",function(){return this}),Api.register("autoFill().enabled()",function(){var t=this.context[0];return!!t.autoFill&&t.autoFill.enabled()}),Api.register("autoFill().enable()",function(e){return this.iterator("table",function(t){t.autoFill&&t.autoFill.enable(e)})}),Api.register("autoFill().disable()",function(){return this.iterator("table",function(t){t.autoFill&&t.autoFill.disable()})}),$(document).on("preInit.dt.autofill",function(t,e,o){var i,l;"dt"===t.namespace&&(t=e.oInit.autoFill,i=DataTable.defaults.autoFill,t||i)&&(l=$.extend({},t,i),!1!==t)&&new AutoFill(e,l)}),DataTable.AutoFill=AutoFill,$.fn.DataTable.AutoFill=AutoFill;export default DataTable;
|
|
4
|
+
import DataTable,{Dom,util,Api}from"datatables.net";if(!DataTable||!DataTable.versionCheck||!DataTable.versionCheck("3"))throw"Warning: AutoFill requires DataTables 3 or greater";var _instance=0;class AutoFill{enabled(){return this.s.enabled}enable(t=!0){let e=this;var o=this.s.namespace;if(!1===t)return this.disable();this.s.enabled=!0,this._focusListener(),this.dom.handle.on("mousedown touchstart",function(t){return e._mousedown(t),!1});function i(){e.s.handle={height:0,width:0},e.dom.handle.css({height:"",width:""}),e.dom.attachedTo&&e._attach(e.dom.attachedTo)}return Dom.w.on("resize"+o,function(){0<Dom.s("div.dtaf-handle").count()&&e.dom.attachedTo&&e._attach(e.dom.attachedTo)}),Dom.w.on("orientationchange"+o,function(){setTimeout(function(){i(),setTimeout(i,150)},50)}),this}disable(){return this.s.enabled=!1,this._focusListenerRemove(),this}constructor(t,e){this.c=util.object.assignDeep({},AutoFill.defaults,e),this.s={dt:new DataTable.Api(t),enabled:!1,end:{column:0,row:0},handle:{height:0,width:0},namespace:".autoFill"+_instance++,scroll:{windowHeight:0,windowWidth:0,dtTop:0,dtLeft:0,dtHeight:0,dtWidth:0},scrollInterval:null,start:{column:0,row:0}},this.dom={attachedTo:null,container:Dom.c("div").classAdd("dtaf-container"),closeButton:Dom.c("button").classAdd(AutoFill.classes.close).html("×"),dtScroll:null,handle:Dom.c("div").classAdd("dtaf-handle"),list:Dom.c("div").classAdd("dtaf-list").html(this.s.dt.i18n("autoFill.info","")).attr("aria-modal",!0).attr("role","dialog").append(Dom.c("div").classAdd("dtaf-list-items")),offsetParent:null,start:null,select:{top:Dom.c("div").classAdd("dtaf-select top"),right:Dom.c("div").classAdd("dtaf-select right"),bottom:Dom.c("div").classAdd("dtaf-select bottom"),left:Dom.c("div").classAdd("dtaf-select left")}},this.dom.list.appendTo(this.dom.container),this._init()}_init(){var t=this.s.dt,e=Dom.s(this.s.dt.table().container()).find("div.dt-scroll-body");t.settings()[0].autoFill=this,e.count()&&"static"===(this.dom.dtScroll=e).css("position")&&e.css("position","relative"),!1!==this.c.enable&&this.enable(),t.on("destroy.autoFill",()=>{this._focusListenerRemove(),this.dom.handle.off()})}_attach(t){var e=this.s.dt,o=e.cell(t).index(),i=this.dom.handle,l=this.s.handle;o&&-1!==e.columns(this.c.columns).indexes().indexOf(o.column)?(this.dom.offsetParent||(this.dom.offsetParent=e.table().node().offsetParent),l.height&&l.width||(i.appendTo("body"),l.height=i.height("outer"),l.width=i.width("outer")),o=this._getPosition(t,this.dom.offsetParent),this.dom.attachedTo=t,i.css({top:o.top+t.offsetHeight-l.height+"px",left:o.left+t.offsetWidth-l.width+"px"}).appendTo(this.dom.offsetParent)):this._detach()}_actionSelector(o){let i=this,l=this.s.dt,n=AutoFill.actions,s=[];if(util.object.each(n,function(t,e){e.available(l,o)&&s.push(t)}),1===s.length&&!1===this.c.alwaysAsk){var t=n[s[0]].execute(l,o,null);this._update(t,o)}else if(1<s.length||this.c.alwaysAsk){var a=this.dom.list.children("div.dtaf-list-items").empty();s.push("cancel");for(let t=0;t<s.length;t++){let e=s[t];a.append(Dom.c("button").classAdd(AutoFill.classes.btn).html(n[e].option(l,o)).append(Dom.c("span").classAdd("dtaf-button").html(l.i18n("autoFill.button",""))).on("click",function(t){"button"===t.target.nodeName.toLowerCase()&&(t=n[e].execute(l,o,Dom.s(this).closest("button")),i._update(t,o),i.dom.container.remove())}))}this.dom.container.appendTo("body"),this.dom.container.on("click",function(t){t.target===i.dom.container.get(0)&&i.dom.container.remove()}),this.c.closeButton&&(this.dom.list.prepend(this.dom.closeButton).classAdd(AutoFill.classes.closeable),this.dom.closeButton.on("click",function(){return i.dom.container.trigger("click")}))}}_detach(){this.dom.attachedTo=null,this.dom.handle.detach()}_drawSelection(t,e){var o,i=this.s.dt,l=this.s.start,n=Dom.s(this.dom.start),t={row:this.c.vertical?i.rows({page:"current"}).nodes().indexOf(t.parentNode):l.row,column:this.c.horizontal?Dom.s(t).index():l.column},s=i.column.index("toData",t.column),a=i.row(":eq("+t.row+")",{page:"current"}),a=Dom.s(i.cell(a.index(),s).node());i.cell(a.get(0)).any()&&-1!==i.columns(this.c.columns).indexes().indexOf(s)&&-1!==t.row&&(this.s.end=t,i=l.row<t.row?n:a,s=l.row<t.row?a:n,o=l.column<t.column?n:a,l=l.column<t.column?a:n,i=this._getPosition(i.get(0)).top,o=this._getPosition(o.get(0)).left,t=this._getPosition(s.get(0)).top+s.height("outer")-i,a=this._getPosition(l.get(0)).left+l.width("outer")-o,(n=this.dom.select).top.css({top:i+"px",left:o+"px",width:a+"px"}),n.left.css({top:i+"px",left:o+"px",height:t+"px"}),n.bottom.css({top:i+t+"px",left:o+"px",width:a+"px"}),n.right.css({top:i+"px",left:o+a+"px",height:t+"px"}))}_editor(l){var n=this.s.dt;let s=this.c.editor;if(s){var a={},d=[],c=s.fields();for(let i=0,t=l.length;i<t;i++)for(let t=0,e=l[i].length;t<e;t++){var r=l[i][t],u=n.settings()[0].columns[r.index.column];let o=u.editField;if(void 0===o){var h=u.data;for(let t=0,e=c.length;t<e;t++){var f=s.field(c[t]);if(f.dataSrc()===h){o=f.name();break}}}if(!o)throw"Could not automatically determine field data. Please see https://datatables.net/tn/11";if("string"!=typeof o)throw"AutoFill with multiple edit fields is not supported";a[o]||(a[o]={});u=n.row(r.index.row).id();a[o][u]=r.set,d.push(r.index)}s.bubble(d,!1).multiSet(a).submit(null,function(){s.close()})}}_emitEvent(t,e){this.s.dt.trigger(t,e)}_focusListener(){var i=this,e=this.s.dt,t=this.s.namespace,o=null!==this.c.focus?this.c.focus:e.init().keys||e.settings()[0].keytable?"focus":"hover";"focus"===o?e.on("key-focus.autoFill",function(t,e,o){i._attach(o.node())}).on("key-blur.autoFill",function(t,e,o){i._detach()}):"click"===o?(Dom.s(e.table().body()).on("click"+t,"td, th",function(t){i._attach(this)}),Dom.s(document.body).on("click"+t,function(t){Dom.s(t.target).closest(e.table().body()).count()||i._detach()})):Dom.s(e.table().body()).on("mouseenter"+t+" touchstart"+t,"td, th",function(t){i._attach(this)}).on("mouseleave"+t+"touchend"+t,function(t){Dom.s(t.relatedTarget).classHas("dtaf-handle")||i._detach()})}_focusListenerRemove(){var t=this.s.namespace,e=this.s.dt;e.off(".autoFill"),Dom.s(e.table().body()).off(t),Dom.s(document.body).off(t),Dom.w.off(t)}_getPosition(t,e){let o=Dom.s(this.s.dt.table().node().offsetParent),i=t,l,n=0,s=0;e&&(o=Dom.s(e));do{var a=i.offsetTop,d=i.offsetLeft;if(l=Dom.s(i.offsetParent),n+=a+ +parseInt(l.css("border-top-width")||"0"),s+=d+ +parseInt(l.css("border-left-width")||"0"),"body"===i.nodeName.toLowerCase())break}while(i=l.get(0),l.get(0)!==o.get(0));return{top:n,left:s}}_mousedown(t){let e=this;var o=this.s.dt,i=(this.dom.start=this.dom.attachedTo,this.s.start={row:o.rows({page:"current"}).nodes().indexOf(Dom.s(this.dom.start).parent().get(0)),column:Dom.s(this.dom.start).index()},Dom.s(document.body).on("mousemove.autoFill touchmove.autoFill",function(t){e._mousemove(t),"touchmove"===t.type&&Dom.s(document.body).one("touchend.autoFill",function(){e._detach()})}).on("mouseup.autoFill touchend.autoFill",function(t){e._mouseup(t)}),this.dom.select),o=o.table().node().offsetParent,i=(i.top.appendTo(o),i.left.appendTo(o),i.right.appendTo(o),i.bottom.appendTo(o),this._drawSelection(this.dom.start,t),this.dom.handle.css("display","none"),this.dom.dtScroll);this.s.scroll={windowHeight:window.innerHeight,windowWidth:window.innerWidth,dtTop:i?i.offset().top:0,dtLeft:i?i.offset().left:0,dtHeight:i?i.height("outer"):0,dtWidth:i?i.width("outer"):0}}_mousemove(t){var e=t.touches&&t.touches.length?document.elementFromPoint(t.touches[0].clientX,t.touches[0].clientY):t.target,o=e.nodeName.toLowerCase();"td"!==o&&"th"!==o||(this._drawSelection(e,t),this._shiftScroll(t))}_mouseup(e){Dom.s(document.body).off(".autoFill");let o=this,d=this.s.dt;var t=this.dom.select,t=(t.top.remove(),t.left.remove(),t.right.remove(),t.bottom.remove(),this.dom.handle.css("display","block"),this.s.start),i=this.s.end;if(t.row!==i.row||t.column!==i.column){var l=d.cell(":eq("+t.row+")",t.column+":visible",{page:"current"});if(Dom.s(l.node()).find("div.DTE").count()){let t=d.editor();t.on("submitSuccess.dtaf close.dtaf",function(){t.off(".dtaf"),setTimeout(function(){o._mouseup(e)},100)}).on("submitComplete.dtaf preSubmitCancelled.dtaf close.dtaf",function(){t.off(".dtaf")}),void t.submit()}else{let n=this._range(t.row,i.row);var c=this._range(t.column,i.column),r=[];let s=d.settings()[0].columns,a=d.columns(this.c.columns).indexes();for(let l=0;l<n.length;l++)r.push(c.map(function(t){var e=d.row(":eq("+n[l]+")",{page:"current"}),e=d.cell(e.index(),t+":visible");let o=e.data();var t=e.index(),i=s[t.column].editField;if(void 0!==i&&(o=DataTable.util.get(i)(d.row(t.row).data())),-1!==a.indexOf(t.column))return{cell:e,data:o,label:e.data(),index:t}}).filter(t=>!!t));this._actionSelector(r),this.s.scrollInterval&&(clearInterval(this.s.scrollInterval),this.s.scrollInterval=null)}}}_range(t,e){var o,i=[];if(t<=e)for(o=t;o<=e;o++)i.push(o);else for(o=t;e<=o;o--)i.push(o);return i}_shiftScroll(t){var e,o,i,l,n=this,s=this.s.scroll,a=!1,d=t.type.includes("touch")?t.touches[0].clientX:t.pageX-window.scrollX,t=t.type.includes("touch")?t.touches[0].clientY:t.pageY-window.scrollY;t<65?e=-5:t>s.windowHeight-65&&(e=5),d<65?o=-5:d>s.windowWidth-65&&(o=5),null!==s.dtTop&&t<s.dtTop+65?i=-5:null!==s.dtTop&&t>s.dtTop+s.dtHeight-65&&(i=5),null!==s.dtLeft&&d<s.dtLeft+65?l=-5:null!==s.dtLeft&&d>s.dtLeft+s.dtWidth-65&&(l=5),e||o||i||l?(s.windowVert=e,s.windowHoriz=o,s.dtVert=i,s.dtHoriz=l,a=!0):this.s.scrollInterval&&(clearInterval(this.s.scrollInterval),this.s.scrollInterval=null),!this.s.scrollInterval&&a&&(this.s.scrollInterval=setInterval(function(){var t;window.scrollTo(window.scrollX+(s.windowHoriz||0),window.scrollY+(s.windowVert||0)),(s.dtVert||s.dtHoriz)&&((t=null==(t=n.dom.dtScroll)?void 0:t.get(0))&&s.dtVert&&(t.scrollTop+=s.dtVert),t)&&s.dtHoriz&&(t.scrollLeft+=s.dtHoriz)},20))}_update(t,i){if(!1!==t){var l,t=this.s.dt,n=t.columns(this.c.columns).indexes(),e=(this._emitEvent("preAutoFill",[t,i]),this._editor(i),null!==this.c.update?this.c.update:!this.c.editor);if(e){for(let o=0,t=i.length;o<t;o++)for(let t=0,e=i[o].length;t<e;t++)l=i[o][t],-1!==n.indexOf(l.index.column)&&l.cell.data(l.set);t.draw(!1)}this._emitEvent("autoFill",[t,i])}}}AutoFill.actions={increment:{available:function(t,e){e=e[0][0].label;return!isNaN(e-parseFloat(e))},option:function(t,e){return t.i18n("autoFill.increment",'Increment / decrement each cell by: <input type="number" value="1">')},execute:function(t,i,e){let l=+i[0][0].data;var n=e?parseFloat(e.find("input").val()):1;for(let o=0,t=i.length;o<t;o++)for(let t=0,e=i[o].length;t<e;t++)i[o][t].set=l,l+=n}},fill:{available:function(t,e){return!0},option:function(t,e){return t.i18n("autoFill.fill","Fill all cells with <i>%d</i>",e[0][0].label)},execute:function(t,i,e){var l=i[0][0].data;for(let o=0,t=i.length;o<t;o++)for(let t=0,e=i[o].length;t<e;t++)i[o][t].set=l}},fillHorizontal:{available:function(t,e){return 1<e.length&&1<e[0].length},option:function(t,e){return t.i18n("autoFill.fillHorizontal","Fill cells horizontally")},execute:function(t,i,e){for(let o=0,t=i.length;o<t;o++)for(let t=0,e=i[o].length;t<e;t++)i[o][t].set=i[o][0].data}},fillVertical:{available:function(t,e){return 1<e.length&&1<e[0].length},option:function(t,e){return t.i18n("autoFill.fillVertical","Fill cells vertically")},execute:function(t,i,e){for(let o=0,t=i.length;o<t;o++)for(let t=0,e=i[o].length;t<e;t++)i[o][t].set=i[0][t].data}},cancel:{available:function(){return!1},option:function(t){return t.i18n("autoFill.cancel","Cancel")},execute:function(){return!1}}},AutoFill.classes={btn:"btn",close:"dtaf-list-close",closeable:"dtaf-list-closeable"},AutoFill.defaults={alwaysAsk:!1,closeButton:!0,focus:null,columns:"",enable:!0,update:!0,editor:null,vertical:!0,horizontal:!0},AutoFill.version="3.0.0",Api.register("autoFill()",function(){return this.inst(this.context)}),Api.register("autoFill().enabled()",function(){var t=this.context[0];return!!t.autoFill&&t.autoFill.enabled()}),Api.register("autoFill().enable()",function(e){return this.iterator("table",function(t){t.autoFill&&t.autoFill.enable(e)})}),Api.register("autoFill().disable()",function(){return this.iterator("table",function(t){t.autoFill&&t.autoFill.disable()})}),Dom.s(document).on("preInit.dt.autofill",function(t,e){var o,i;"dt"===t.namespace&&(t=e.init.autoFill,o=DataTable.defaults.autoFill,t||o)&&(i={},util.is.plainObject(o)&&util.object.assign(i,o),util.is.plainObject(t)&&util.object.assign(i,t),!1!==t)&&new AutoFill(e,i)}),DataTable.AutoFill=AutoFill;export default DataTable;
|