LocalCDN-Firefox-Chrome-Brave/resources/datatables/1.10.25/dataTables.keyTable.min.jsm

37 lines
11 KiB
JavaScript

/*!
Copyright 2009-2021 SpryMedia Ltd.
This source file is free software, available under the following license:
MIT license - http://datatables.net/license/mit
This source file is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
or FITNESS FOR A PARTICULAR PURPOSE. See the license files for details.
For details please refer to: http://www.datatables.net
KeyTable 2.6.2
©2009-2021 SpryMedia Ltd - datatables.net/license
*/
(function(h){"function"===typeof define&&define.amd?define(["jquery","datatables.net"],function(p){return h(p,window,document)}):"object"===typeof exports?module.exports=function(p,m){p||(p=window);m&&m.fn.dataTable||(m=require("datatables.net")(p,m).$);return h(m,p,p.document)}:h(jQuery,window,document)})(function(h,p,m,u){var q=h.fn.dataTable,w=0,x=0,r=function(a,b){if(!q.versionCheck||!q.versionCheck("1.10.8"))throw"KeyTable requires DataTables 1.10.8 or newer";this.c=h.extend(!0,{},q.defaults.keyTable,
r.defaults,b);this.s={dt:new q.Api(a),enable:!0,focusDraw:!1,waitingForDraw:!1,lastFocus:null,namespace:".keyTable-"+w++,tabInput:null};this.dom={};a=this.s.dt.settings()[0];if(b=a.keytable)return b;a.keytable=this;this._constructor()};h.extend(r.prototype,{blur:function(){this._blur()},enable:function(a){this.s.enable=a},enabled:function(){return this.s.enable},focus:function(a,b){this._focus(this.s.dt.cell(a,b))},focused:function(a){if(!this.s.lastFocus)return!1;var b=this.s.lastFocus.cell.index();
return a.row===b.row&&a.column===b.column},_constructor:function(){this._tabInput();var a=this,b=this.s.dt,d=h(b.table().node()),c=this.s.namespace,f=!1;"static"===d.css("position")&&d.css("position","relative");h(b.table().body()).on("click"+c,"th, td",function(e){if(!1!==a.s.enable){var l=b.cell(this);l.any()&&a._focus(l,null,!1,e)}});h(m).on("keydown"+c,function(e){f||a._key(e)});if(this.c.blurable)h(m).on("mousedown"+c,function(e){h(e.target).parents(".dataTables_filter").length&&a._blur();h(e.target).parents().filter(b.table().container()).length||
h(e.target).parents("div.DTE").length||h(e.target).parents("div.editor-datetime").length||h(e.target).parents("div.dt-datetime").length||h(e.target).parents().filter(".DTFC_Cloned").length||a._blur()});if(this.c.editor){var k=this.c.editor;k.on("open.keyTableMain",function(e,l,n){"inline"!==l&&a.s.enable&&(a.enable(!1),k.one("close"+c,function(){a.enable(!0)}))});if(this.c.editOnFocus)b.on("key-focus"+c+" key-refocus"+c,function(e,l,n,t){a._editor(null,t,!0)});b.on("key"+c,function(e,l,n,t,v){a._editor(n,
v,!1)});h(b.table().body()).on("dblclick"+c,"th, td",function(e){!1!==a.s.enable&&b.cell(this).any()&&(a.s.lastFocus&&this!==a.s.lastFocus.cell.node()||a._editor(null,e,!0))});k.on("preSubmit",function(){f=!0}).on("preSubmitCancelled",function(){f=!1}).on("submitComplete",function(){f=!1})}if(b.settings()[0].oFeatures.bStateSave)b.on("stateSaveParams"+c,function(e,l,n){n.keyTable=a.s.lastFocus?a.s.lastFocus.cell.index():null});b.on("column-visibility"+c,function(e){a._tabInput()});b.on("draw"+c,function(e){a._tabInput();
if(!a.s.focusDraw&&a.s.lastFocus){var l=a.s.lastFocus.relative,n=b.page.info(),t=l.row+n.start;0!==n.recordsDisplay&&(t>=n.recordsDisplay&&(t=n.recordsDisplay-1),a._focus(t,l.column,!0,e))}});this.c.clipboard&&this._clipboard();b.on("destroy"+c,function(){a._blur(!0);b.off(c);h(b.table().body()).off("click"+c,"th, td").off("dblclick"+c,"th, td");h(m).off("mousedown"+c).off("keydown"+c).off("copy"+c).off("paste"+c)});var g=b.state.loaded();if(g&&g.keyTable)b.one("init",function(){var e=b.cell(g.keyTable);
e.any()&&e.focus()});else this.c.focus&&b.cell(this.c.focus).focus()},_blur:function(a){if(this.s.enable&&this.s.lastFocus){var b=this.s.lastFocus.cell;h(b.node()).removeClass(this.c.className);this.s.lastFocus=null;a||(this._updateFixedColumns(b.index().column),this._emitEvent("key-blur",[this.s.dt,b]))}},_clipboard:function(){var a=this.s.dt,b=this,d=this.s.namespace;p.getSelection&&(h(m).on("copy"+d,function(c){c=c.originalEvent;var f=p.getSelection().toString(),k=b.s.lastFocus;!f&&k&&(c.clipboardData.setData("text/plain",
k.cell.render(b.c.clipboardOrthogonal)),c.preventDefault())}),h(m).on("paste"+d,function(c){c=c.originalEvent;var f=b.s.lastFocus,k=m.activeElement,g=b.c.editor,e;!f||k&&"body"!==k.nodeName.toLowerCase()||(c.preventDefault(),p.clipboardData&&p.clipboardData.getData?e=p.clipboardData.getData("Text"):c.clipboardData&&c.clipboardData.getData&&(e=c.clipboardData.getData("text/plain")),g?g.inline(f.cell.index()).set(g.displayed()[0],e).submit():(f.cell.data(e),a.draw(!1)))}))},_columns:function(){var a=
this.s.dt,b=a.columns(this.c.columns).indexes(),d=[];a.columns(":visible").every(function(c){-1!==b.indexOf(c)&&d.push(c)});return d},_editor:function(a,b,d){if(this.s.lastFocus&&(!b||"draw"!==b.type)){var c=this,f=this.s.dt,k=this.c.editor,g=this.s.lastFocus.cell,e=this.s.namespace+"e"+x++;if(!(h("div.DTE",g.node()).length||null!==a&&(0<=a&&9>=a||11===a||12===a||14<=a&&31>=a||112<=a&&123>=a||127<=a&&159>=a))){b&&(b.stopPropagation(),13===a&&b.preventDefault());var l=function(){k.one("open"+e,function(){k.off("cancelOpen"+
e);d||h("div.DTE_Field_InputControl input, div.DTE_Field_InputControl textarea").select();f.keys.enable(d?"tab-only":"navigation-only");f.on("key-blur.editor",function(n,t,v){k.displayed()&&v.node()===g.node()&&k.submit()});d&&h(f.table().container()).addClass("dtk-focus-alt");k.on("preSubmitCancelled"+e,function(){setTimeout(function(){c._focus(g,null,!1)},50)});k.on("submitUnsuccessful"+e,function(){c._focus(g,null,!1)});k.one("close"+e,function(){f.keys.enable(!0);f.off("key-blur.editor");k.off(e);
h(f.table().container()).removeClass("dtk-focus-alt");c.s.returnSubmit&&(c.s.returnSubmit=!1,c._emitEvent("key-return-submit",[f,g]))})}).one("cancelOpen"+e,function(){k.off(e)}).inline(g.index())};13===a?(d=!0,h(m).one("keyup",function(){l()})):l()}}},_emitEvent:function(a,b){this.s.dt.iterator("table",function(d,c){h(d.nTable).triggerHandler(a,b)})},_focus:function(a,b,d,c){var f=this,k=this.s.dt,g=k.page.info(),e=this.s.lastFocus;c||(c=null);if(this.s.enable){if("number"!==typeof a){if(!a.any())return;
var l=a.index();b=l.column;a=k.rows({filter:"applied",order:"applied"}).indexes().indexOf(l.row);if(0>a)return;g.serverSide&&(a+=g.start)}if(-1!==g.length&&(a<g.start||a>=g.start+g.length))this.s.focusDraw=!0,this.s.waitingForDraw=!0,k.one("draw",function(){f.s.focusDraw=!1;f.s.waitingForDraw=!1;f._focus(a,b,u,c)}).page(Math.floor(a/g.length)).draw(!1);else if(-1!==h.inArray(b,this._columns())){g.serverSide&&(a-=g.start);g=k.cells(null,b,{search:"applied",order:"applied"}).flatten();g=k.cell(g[a]);
if(e){if(e.node===g.node()){this._emitEvent("key-refocus",[this.s.dt,g,c||null]);return}this._blur()}this._removeOtherFocus();e=h(g.node());e.addClass(this.c.className);this._updateFixedColumns(b);if(d===u||!0===d)this._scroll(h(p),h(m.body),e,"offset"),d=k.table().body().parentNode,d!==k.table().header().parentNode&&(d=h(d.parentNode),this._scroll(d,d,e,"position"));this.s.lastFocus={cell:g,node:g.node(),relative:{row:k.rows({page:"current"}).indexes().indexOf(g.index().row),column:g.index().column}};
this._emitEvent("key-focus",[this.s.dt,g,c||null]);k.state.save()}}},_key:function(a){if(this.s.waitingForDraw)a.preventDefault();else{var b=this.s.enable;this.s.returnSubmit="navigation-only"!==b&&"tab-only"!==b||13!==a.keyCode?!1:!0;var d=!0===b||"navigation-only"===b;if(b&&(!(0===a.keyCode||a.ctrlKey||a.metaKey||a.altKey)||a.ctrlKey&&a.altKey)){var c=this.s.lastFocus;if(c)if(this.s.dt.cell(c.node).any()){c=this.s.dt;var f=this.s.dt.settings()[0].oScroll.sY?!0:!1;if(!this.c.keys||-1!==h.inArray(a.keyCode,
this.c.keys))switch(a.keyCode){case 9:this._shift(a,a.shiftKey?"left":"right",!0);break;case 27:this.c.blurable&&!0===b&&this._blur();break;case 33:case 34:d&&!f&&(a.preventDefault(),c.page(33===a.keyCode?"previous":"next").draw(!1));break;case 35:case 36:d&&(a.preventDefault(),b=c.cells({page:"current"}).indexes(),d=this._columns(),this._focus(c.cell(b[35===a.keyCode?b.length-1:d[0]]),null,!0,a));break;case 37:d&&this._shift(a,"left");break;case 38:d&&this._shift(a,"up");break;case 39:d&&this._shift(a,
"right");break;case 40:d&&this._shift(a,"down");break;case 113:if(this.c.editor){this._editor(null,a,!0);break}default:!0===b&&this._emitEvent("key",[c,a.keyCode,this.s.lastFocus.cell,a])}}else this.s.lastFocus=null}}},_removeOtherFocus:function(){var a=this.s.dt.table().node();h.fn.dataTable.tables({api:!0}).iterator("table",function(b){this.table().node()!==a&&this.cell.blur()})},_scroll:function(a,b,d,c){var f=d[c](),k=d.outerHeight(),g=d.outerWidth(),e=b.scrollTop(),l=b.scrollLeft(),n=a.height();
a=a.width();"position"===c&&(f.top+=parseInt(d.closest("table").css("top"),10));f.top<e&&b.scrollTop(f.top);f.left<l&&b.scrollLeft(f.left);f.top+k>e+n&&k<n&&b.scrollTop(f.top+k-n);f.left+g>l+a&&g<a&&b.scrollLeft(f.left+g-a)},_shift:function(a,b,d){var c=this.s.dt,f=c.page.info(),k=f.recordsDisplay,g=this._columns(),e=this.s.lastFocus;if(e){var l=e.cell;l&&(e=c.rows({filter:"applied",order:"applied"}).indexes().indexOf(l.index().row),f.serverSide&&(e+=f.start),c=c.columns(g).indexes().indexOf(l.index().column),
f=e,e=g[c],"right"===b?c>=g.length-1?(f++,e=g[0]):e=g[c+1]:"left"===b?0===c?(f--,e=g[g.length-1]):e=g[c-1]:"up"===b?f--:"down"===b&&f++,0<=f&&f<k&&-1!==h.inArray(e,g)?(a&&a.preventDefault(),this._focus(f,e,!0,a)):d&&this.c.blurable?this._blur():a&&a.preventDefault())}},_tabInput:function(){var a=this,b=this.s.dt,d=null!==this.c.tabIndex?this.c.tabIndex:b.settings()[0].iTabIndex;-1!=d&&(this.s.tabInput||(d=h('<div><input type="text" tabindex="'+d+'"/></div>').css({position:"absolute",height:1,width:0,
overflow:"hidden"}),d.children().on("focus",function(c){var f=b.cell(":eq(0)",a._columns(),{page:"current"});f.any()&&a._focus(f,null,!0,c)}),this.s.tabInput=d),(d=this.s.dt.cell(":eq(0)","0:visible",{page:"current",order:"current"}).node())&&h(d).prepend(this.s.tabInput))},_updateFixedColumns:function(a){var b=this.s.dt,d=b.settings()[0];if(d._oFixedColumns){var c=d.aoColumns.length-d._oFixedColumns.s.iRightColumns;(a<d._oFixedColumns.s.iLeftColumns||a>=c)&&b.fixedColumns().update()}}});r.defaults=
{blurable:!0,className:"focus",clipboard:!0,clipboardOrthogonal:"display",columns:"",editor:null,editOnFocus:!1,focus:null,keys:null,tabIndex:null};r.version="2.6.2";h.fn.dataTable.KeyTable=r;h.fn.DataTable.KeyTable=r;q.Api.register("cell.blur()",function(){return this.iterator("table",function(a){a.keytable&&a.keytable.blur()})});q.Api.register("cell().focus()",function(){return this.iterator("cell",function(a,b,d){a.keytable&&a.keytable.focus(b,d)})});q.Api.register("keys.disable()",function(){return this.iterator("table",
function(a){a.keytable&&a.keytable.enable(!1)})});q.Api.register("keys.enable()",function(a){return this.iterator("table",function(b){b.keytable&&b.keytable.enable(a===u?!0:a)})});q.Api.register("keys.enabled()",function(a){a=this.context;return a.length?a[0].keytable?a[0].keytable.enabled():!1:!1});q.Api.register("keys.move()",function(a){return this.iterator("table",function(b){b.keytable&&b.keytable._shift(null,a,!1)})});q.ext.selector.cell.push(function(a,b,d){b=b.focused;a=a.keytable;var c=[];
if(!a||b===u)return d;for(var f=0,k=d.length;f<k;f++)(!0===b&&a.focused(d[f])||!1===b&&!a.focused(d[f]))&&c.push(d[f]);return c});h(m).on("preInit.dt.dtk",function(a,b,d){"dt"===a.namespace&&(a=b.oInit.keys,d=q.defaults.keys,a||d)&&(d=h.extend({},d,a),!1!==a&&new r(b,d))});return r});