/*! Copyright 2009-2019 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.5.1 ©2009-2019 SpryMedia Ltd - datatables.net/license */ var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.arrayIteratorImpl=function(b){var f=0;return function(){return f=m.recordsDisplay&& (h=m.recordsDisplay-1),a._focus(h,e.column,!0,d))}}});this.c.clipboard&&this._clipboard();c.on("destroy"+d,function(){a._blur(!0);c.off(d);b(c.table().body()).off("click"+d,"th, td").off("dblclick"+d,"th, td");b(k).off("mousedown"+d).off("keydown"+d).off("copy"+d).off("paste"+d)});var h=c.state.loaded();if(h&&h.keyTable)c.one("init",function(){var a=c.cell(h.keyTable);a.any()&&a.focus()});else this.c.focus&&c.cell(this.c.focus).focus()},_blur:function(a){if(this.s.enable&&this.s.lastFocus){var c= this.s.lastFocus.cell;b(c.node()).removeClass(this.c.className);this.s.lastFocus=null;a||(this._updateFixedColumns(c.index().column),this._emitEvent("key-blur",[this.s.dt,c]))}},_clipboard:function(){var a=this.s.dt,c=this,e=this.s.namespace;f.getSelection&&(b(k).on("copy"+e,function(a){a=a.originalEvent;var b=f.getSelection().toString(),d=c.s.lastFocus;!b&&d&&(a.clipboardData.setData("text/plain",d.cell.render(c.c.clipboardOrthogonal)),a.preventDefault())}),b(k).on("paste"+e,function(b){b=b.originalEvent; var d=c.s.lastFocus,e=k.activeElement,h=c.c.editor,n;!d||e&&"body"!==e.nodeName.toLowerCase()||(b.preventDefault(),f.clipboardData&&f.clipboardData.getData?n=f.clipboardData.getData("Text"):b.clipboardData&&b.clipboardData.getData&&(n=b.clipboardData.getData("text/plain")),h?h.inline(d.cell.index()).set(h.displayed()[0],n).submit():(d.cell.data(n),a.draw(!1)))}))},_columns:function(){var a=this.s.dt,b=a.columns(this.c.columns).indexes(),e=[];a.columns(":visible").every(function(a){-1!==b.indexOf(a)&& e.push(a)});return e},_editor:function(a,c,e){var d=this,m=this.s.dt,f=this.c.editor,h=this.s.lastFocus.cell,n=this.s.namespace;if(!(b("div.DTE",h.node()).length||null!==a&&(0<=a&&9>=a||11===a||12===a||14<=a&&31>=a||112<=a&&123>=a||127<=a&&159>=a))){c.stopPropagation();13===a&&c.preventDefault();var g=function(){f.one("open"+n,function(){f.off("cancelOpen"+n);e||b("div.DTE_Field_InputControl input, div.DTE_Field_InputControl textarea").select();m.keys.enable(e?"tab-only":"navigation-only");m.on("key-blur.editor", function(a,b,c){f.displayed()&&c.node()===h.node()&&f.submit()});e&&b(m.table().container()).addClass("dtk-focus-alt");f.on("preSubmitCancelled"+n,function(){setTimeout(function(){d._focus(h,null,!1)},50)});f.on("submitUnsuccessful"+n,function(){d._focus(h,null,!1)});f.one("close",function(){m.keys.enable(!0);m.off("key-blur.editor");f.off(n);b(m.table().container()).removeClass("dtk-focus-alt")})}).one("cancelOpen"+n,function(){f.off(n)}).inline(h.index())};13===a?(e=!0,b(k).one("keyup",function(){g()})): g()}},_emitEvent:function(a,c){this.s.dt.iterator("table",function(e,d){b(e.nTable).triggerHandler(a,c)})},_focus:function(a,c,e,d){var m=this,g=this.s.dt,h=g.page.info(),n=this.s.lastFocus;d||(d=null);if(this.s.enable){if("number"!==typeof a){if(!a.any())return;var r=a.index();c=r.column;a=g.rows({filter:"applied",order:"applied"}).indexes().indexOf(r.row);if(0>a)return;h.serverSide&&(a+=h.start)}if(-1!==h.length&&(a=h.start+h.length))this.s.focusDraw=!0,this.s.waitingForDraw=!0,g.one("draw", function(){m.s.focusDraw=!1;m.s.waitingForDraw=!1;m._focus(a,c,l,d)}).page(Math.floor(a/h.length)).draw(!1);else if(-1!==b.inArray(c,this._columns())){h.serverSide&&(a-=h.start);h=g.cells(null,c,{search:"applied",order:"applied"}).flatten();h=g.cell(h[a]);if(n){if(n.node===h.node()){this._emitEvent("key-refocus",[this.s.dt,h,d||null]);return}this._blur()}this._removeOtherFocus();n=b(h.node());n.addClass(this.c.className);this._updateFixedColumns(c);if(e===l||!0===e)this._scroll(b(f),b(k.body),n,"offset"), e=g.table().body().parentNode,e!==g.table().header().parentNode&&(e=b(e.parentNode),this._scroll(e,e,n,"position"));this.s.lastFocus={cell:h,node:h.node(),relative:{row:g.rows({page:"current"}).indexes().indexOf(h.index().row),column:h.index().column}};this._emitEvent("key-focus",[this.s.dt,h,d||null]);g.state.save()}}},_key:function(a){if(this.s.waitingForDraw)a.preventDefault();else{var c=this.s.enable,e=!0===c||"navigation-only"===c;if(c&&(!(0===a.keyCode||a.ctrlKey||a.metaKey||a.altKey)||a.ctrlKey&& a.altKey)){var d=this.s.lastFocus;if(d)if(this.s.dt.cell(d.node).any()){d=this.s.dt;var m=this.s.dt.settings()[0].oScroll.sY?!0:!1;if(!this.c.keys||-1!==b.inArray(a.keyCode,this.c.keys))switch(a.keyCode){case 9:this._shift(a,a.shiftKey?"left":"right",!0);break;case 27:this.s.blurable&&!0===c&&this._blur();break;case 33:case 34:e&&!m&&(a.preventDefault(),d.page(33===a.keyCode?"previous":"next").draw(!1));break;case 35:case 36:e&&(a.preventDefault(),c=d.cells({page:"current"}).indexes(),e=this._columns(), this._focus(d.cell(c[35===a.keyCode?c.length-1:e[0]]),null,!0,a));break;case 37:e&&this._shift(a,"left");break;case 38:e&&this._shift(a,"up");break;case 39:e&&this._shift(a,"right");break;case 40:e&&this._shift(a,"down");break;case 113:if(this.c.editor){this._editor(null,a,!0);break}default:!0===c&&this._emitEvent("key",[d,a.keyCode,this.s.lastFocus.cell,a])}}else this.s.lastFocus=null}}},_removeOtherFocus:function(){var a=this.s.dt.table().node();b.fn.dataTable.tables({api:!0}).iterator("table", function(b){this.table().node()!==a&&this.cell.blur()})},_scroll:function(a,b,e,d){var c=e[d](),f=e.outerHeight(),h=e.outerWidth(),k=b.scrollTop(),g=b.scrollLeft(),l=a.height();a=a.width();"position"===d&&(c.top+=parseInt(e.closest("table").css("top"),10));c.topk+l&&fg+a&&h=g.length-1?(l++,f=g[0]):f=g[d+1]:"left"===c?0===d?(l--,f=g[g.length-1]):f=g[d-1]:"up"===c?l--:"down"===c&&l++;0<=l&&l').css({position:"absolute",height:1,width:0,overflow:"hidden"}).insertBefore(c.table().node()).children().on("focus",function(b){var d=c.cell(":eq(0)",a._columns(),{page:"current"});d.any()&&a._focus(d,null,!0,b)})},_updateFixedColumns:function(a){var b=this.s.dt,e=b.settings()[0];if(e._oFixedColumns){var d=e.aoColumns.length-e._oFixedColumns.s.iRightColumns;(a= d)&&b.fixedColumns().update()}}});p.defaults={blurable:!0,className:"focus",clipboard:!0,clipboardOrthogonal:"display",columns:"",editor:null,editOnFocus:!1,focus:null,keys:null,tabIndex:null};p.version="2.5.1";b.fn.dataTable.KeyTable=p;b.fn.DataTable.KeyTable=p;g.Api.register("cell.blur()",function(){return this.iterator("table",function(a){a.keytable&&a.keytable.blur()})});g.Api.register("cell().focus()",function(){return this.iterator("cell",function(a,b,e){a.keytable&&a.keytable.focus(b,e)})}); g.Api.register("keys.disable()",function(){return this.iterator("table",function(a){a.keytable&&a.keytable.enable(!1)})});g.Api.register("keys.enable()",function(a){return this.iterator("table",function(b){b.keytable&&b.keytable.enable(a===l?!0:a)})});g.Api.register("keys.move()",function(a){return this.iterator("table",function(b){b.keytable&&b.keytable._shift(null,a,!1)})});g.ext.selector.cell.push(function(a,b,e){b=b.focused;a=a.keytable;var c=[];if(!a||b===l)return e;for(var f=0,g=e.length;f< g;f++)(!0===b&&a.focused(e[f])||!1===b&&!a.focused(e[f]))&&c.push(e[f]);return c});b(k).on("preInit.dt.dtk",function(a,c,e){"dt"===a.namespace&&(a=c.oInit.keys,e=g.defaults.keys,a||e)&&(e=b.extend({},e,a),!1!==a&&new p(c,e))});return p});