ax5ui-grid
Version:
A grid plugin that works with Bootstrap & jQuery
2 lines • 127 kB
JavaScript
"use strict";var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};!function(){var t=ax5.ui,i=ax5.util,e=void 0;t.addClass({className:"grid"},function(){return function(){var n=this,o=void 0,a={33:"KEY_PAGEUP",34:"KEY_PAGEDOWN",35:"KEY_END",36:"KEY_HOME",37:"KEY_LEFT",38:"KEY_UP",39:"KEY_RIGHT",40:"KEY_DOWN"};this.instanceId=ax5.getGuid(),this.config={theme:"default",animateTime:250,debounceTime:250,appendDebouncer:null,appendDebounceTimes:0,appendProgressIcon:"...",appendProgress:!1,frozenColumnIndex:0,frozenRowIndex:0,showLineNumber:!1,showRowSelector:!1,multipleSelect:!0,virtualScrollY:!0,virtualScrollX:!0,headerSelect:!0,virtualScrollYCountMargin:0,virtualScrollAccelerated:!0,virtualScrollAcceleratedDelayTime:10,height:0,columnMinWidth:100,lineNumberColumnWidth:30,rowSelectorColumnWidth:26,sortable:void 0,remoteSort:!1,header:{display:!0,align:!1,columnHeight:26,columnPadding:3,columnBorderWidth:1,selector:!0},body:{align:!1,columnHeight:26,columnPadding:3,columnBorderWidth:1,grouping:!1,mergeCells:!1},rightSum:!1,footSum:!1,page:{height:25,display:!0,statusDisplay:!0,navigationItemCount:5},scroller:{size:15,barMinSize:15,trackPadding:4},columnKeys:{selected:"__selected__",modified:"__modified__",deleted:"__deleted__",disableSelection:"__disable_selection__"},tree:{use:!1,hashDigit:8,indentWidth:10,arrowWidth:15,iconWidth:18,icons:{openedArrow:"▾",collapsedArrow:"▸",groupIcon:"⊚",collapsedGroupIcon:"⊚",itemIcon:"⊙"},columnKeys:{parentKey:"pid",selfKey:"id",collapse:"collapse",hidden:"hidden",parentHash:"__hp__",selfHash:"__hs__",children:"__children__",depth:"__depth__"}}},this.xvar={bodyTrHeight:0,scrollContentWidth:0,scrollContentHeight:0,scrollTimer:null},this.columns=[],this.colGroup=[],this.footSumColumns=[],this.bodyGrouping={},this.list=[],this.proxyList=null,this.page=null,this.selectedDataIndexs=[],this.deletedList=[],this.sortInfo={},this.focusedColumn={},this.selectedColumn={},this.isInlineEditing=!1,this.inlineEditing={},this.listIndexMap={},this.contextMenu=null,this.headerTable={},this.leftHeaderData={},this.headerData={},this.rightHeaderData={},this.bodyRowTable={},this.leftBodyRowData={},this.bodyRowData={},this.rightBodyRowData={},this.bodyRowMap={},this.bodyGroupingTable={},this.leftBodyGroupingData={},this.bodyGroupingData={},this.rightBodyGroupingData={},this.bodyGroupingMap={},this.footSumTable={},this.leftFootSumData={},this.footSumData={},this.needToPaintSum=!0,o=this.config;var l=function(){var t={instanceId:this.id};return this.$target.html(e.tmpl.get("main",t)),this.$={container:{hidden:this.$target.find('[data-ax5grid-container="hidden"]'),root:this.$target.find('[data-ax5grid-container="root"]'),header:this.$target.find('[data-ax5grid-container="header"]'),body:this.$target.find('[data-ax5grid-container="body"]'),page:this.$target.find('[data-ax5grid-container="page"]'),scroller:this.$target.find('[data-ax5grid-container="scroller"]')},panel:{"aside-header":this.$target.find('[data-ax5grid-panel="aside-header"]'),"left-header":this.$target.find('[data-ax5grid-panel="left-header"]'),header:this.$target.find('[data-ax5grid-panel="header"]'),"header-scroll":this.$target.find('[data-ax5grid-panel-scroll="header"]'),"right-header":this.$target.find('[data-ax5grid-panel="right-header"]'),"top-aside-body":this.$target.find('[data-ax5grid-panel="top-aside-body"]'),"top-left-body":this.$target.find('[data-ax5grid-panel="top-left-body"]'),"top-body":this.$target.find('[data-ax5grid-panel="top-body"]'),"top-body-scroll":this.$target.find('[data-ax5grid-panel-scroll="top-body"]'),"top-right-body":this.$target.find('[data-ax5grid-panel="top-right-body"]'),"aside-body":this.$target.find('[data-ax5grid-panel="aside-body"]'),"aside-body-scroll":this.$target.find('[data-ax5grid-panel-scroll="aside-body"]'),"left-body":this.$target.find('[data-ax5grid-panel="left-body"]'),"left-body-scroll":this.$target.find('[data-ax5grid-panel-scroll="left-body"]'),body:this.$target.find('[data-ax5grid-panel="body"]'),"body-scroll":this.$target.find('[data-ax5grid-panel-scroll="body"]'),"right-body":this.$target.find('[data-ax5grid-panel="right-body"]'),"right-body-scroll":this.$target.find('[data-ax5grid-panel-scroll="right-body"]'),"bottom-aside-body":this.$target.find('[data-ax5grid-panel="bottom-aside-body"]'),"bottom-left-body":this.$target.find('[data-ax5grid-panel="bottom-left-body"]'),"bottom-body":this.$target.find('[data-ax5grid-panel="bottom-body"]'),"bottom-body-scroll":this.$target.find('[data-ax5grid-panel-scroll="bottom-body"]'),"bottom-right-body":this.$target.find('[data-ax5grid-panel="bottom-right-body"]')},livePanelKeys:[],scroller:{vertical:this.$target.find('[data-ax5grid-scroller="vertical"]'),"vertical-bar":this.$target.find('[data-ax5grid-scroller="vertical-bar"]'),horizontal:this.$target.find('[data-ax5grid-scroller="horizontal"]'),"horizontal-bar":this.$target.find('[data-ax5grid-scroller="horizontal-bar"]'),corner:this.$target.find('[data-ax5grid-scroller="corner"]')},page:{navigation:this.$target.find('[data-ax5grid-page="navigation"]'),status:this.$target.find('[data-ax5grid-page="status"]')},form:{clipboard:this.$target.find('[data-ax5grid-form="clipboard"]')},resizer:{vertical:this.$target.find('[data-ax5grid-resizer="vertical"]'),horizontal:this.$target.find('[data-ax5grid-resizer="horizontal"]')}},this.$.container.root.css({height:this.config.height||this.config._height}),this},r=function(t){i.isArray(t)||(t=[]),this.columns=i.deepCopy(t),this.headerTable=e.util.makeHeaderTable.call(this,this.columns),this.xvar.frozenColumnIndex=o.frozenColumnIndex||0,this.bodyRowTable=e.util.makeBodyRowTable.call(this,this.columns),this.bodyRowMap=e.util.makeBodyRowMap.call(this,this.bodyRowTable),this.xvar.bodyTrHeight=this.bodyRowTable.rows.length*this.config.body.columnHeight;for(var n={},a=0,l=this.headerTable.rows.length;a<l;a++)for(var r=this.headerTable.rows[a],s=0,d=r.cols.length;s<d;s++)n[r.cols[s].colIndex]=jQuery.extend({},r.cols[s]);this.colGroup=[];for(var c in n)this.colGroup.push(n[c]);return this},s=function(){r.call(this,this.config.columns),d.call(this),this.config.footSum&&(c.call(this,this.config.footSum),this.needToPaintSum=!0),this.config.body.grouping&&h.call(this,this.config.body.grouping),u.call(this,!0),e.header.repaint.call(this,!0),e.body.repaint.call(this,!0),e.scroller.resize.call(this)},d=function(){var t=this.$.container.root.width()-function(){var t=0;return o.showLineNumber&&(t+=o.lineNumberColumnWidth),o.showRowSelector&&(t+=o.rowSelectorColumnWidth),t+=o.scroller.size}(),e=0,n=void 0,a=[],l=this.colGroup,r=void 0,s=void 0;for(r=0,s=l.length;r<s;r++)i.isNumber(l[r].width)?e+=l[r]._width=l[r].width:"*"===l[r].width?a.push(r):"%"===i.right(l[r].width,1)&&(e+=l[r]._width=t*i.left(l[r].width,"%")/100);if(a.length>0)for(n=(t-e)/a.length,r=0,s=a.length;r<s;r++)l[a[r]]._width=n},c=function(t){i.isArray(t)?this.footSumTable=e.util.makeFootSumTable.call(this,this.footSumColumns=t):(this.footSumColumns=[],this.footSumTable={})},h=function(t){var i=jQuery.extend({},t);"by"in i&&"columns"in i?(this.bodyGrouping={by:i.by,columns:i.columns},this.bodyGroupingTable=e.util.makeBodyGroupingTable.call(this,this.bodyGrouping.columns),this.sortInfo=function(){for(var t={},i=0,e=this.bodyGrouping.by.length;i<e;i++){t[this.bodyGrouping.by[i]]={orderBy:"asc",seq:i,fixed:!0};for(var n=0,o=this.colGroup.length;n<o;n++)this.colGroup[n].key===this.bodyGrouping.by[i]&&(this.colGroup[n].sort="asc",this.colGroup[n].sortFixed=!0)}return t}.call(this)):o.body.grouping=!1},u=function(t){var i=this.proxyList?this.proxyList:this.list;if(Math.min(this.$target.innerWidth(),this.$target.innerHeight())<5)return!1;this.config.height||this.$.container.root.css({height:this.config._height=this.$target.height()});var e=this.$.container.root.width(),n=this.$.container.root.height(),a=e,l=n,r=o.asidePanelWidth=function(){var t=0;return o.showLineNumber&&(t+=o.lineNumberColumnWidth),o.showRowSelector&&(t+=o.rowSelectorColumnWidth),t}(),s=o.frozenPanelWidth=function(t,i){for(var e=0,n=0,o=i;n<o;n++)e+=t[n]._width;return e}(this.colGroup,o.frozenColumnIndex),d=void 0,c=void 0,h=void 0,u=0,g=function(t){return o.frozenRowIndex*t}(this.xvar.bodyTrHeight),f=function(t){return this.footSumColumns.length*t}.call(this,this.xvar.bodyTrHeight),x=o.header.display?this.headerTable.rows.length*o.header.columnHeight:0,p=o.page.display?o.page.height:0;(function(){d=n-x-p-f<i.length*this.xvar.bodyTrHeight?this.config.scroller.size:0,c=function(){for(var t=0,i=e-r-d,n=0,o=this.colGroup.length;n<o;n++)t+=this.colGroup[n]._width;return t>i?this.config.scroller.size:0}.call(this),c>0&&(d=n-x-p-f-c<i.length*this.xvar.bodyTrHeight?this.config.scroller.size:0)}).call(this),a=e-d,l=n-p-c,h=l-x;var v=function(t,i,e,n){var l={},d=!1;switch(e){case"aside":0===r?d=!0:(l.left=0,l.width=r);break;case"left":0===o.frozenColumnIndex?d=!0:(l.left=r,l.width=s);break;case"right":o.rightSum||(d=!0);break;default:"page"!==n&&(0===o.frozenColumnIndex?l.left=r:l.left=s+r,l.width=a-r-s-u)}if(d)return t.hide(),this;if("body"===n)switch(i){case"top":0==o.frozenRowIndex?d=!0:(l.top=0,l.height=g);break;case"bottom":o.footSum?(l.top=h-f,l.height=f):d=!0;break;default:l.top=g,l.height=h-g-f}else"header"===n?l.height=x:"page"===n&&(0==p?d=!0:l.height=p);return d?(t.hide(),this):(t.show().css(l),this)},m=function(t,i,e,n){var o={},r=!1;switch(n){case"vertical":i>0?(o.width=i,o.height=l,o.bottom=e+p):r=!0;break;case"horizontal":e>0?(o.width=a,o.height=e,o.right=i,o.bottom=p):r=!0;break;case"corner":i>0&&e>0?(o.width=i,o.height=e,o.bottom=p):r=!0}return r?(t.hide(),this):void t.show().css(o)};return this.$.container.header.css({height:x}),this.$.container.body.css({height:h}),v.call(this,this.$.panel["aside-header"],"","aside","header"),v.call(this,this.$.panel["left-header"],"","left","header"),v.call(this,this.$.panel.header,"","","header"),v.call(this,this.$.panel["right-header"],"","right","header"),v.call(this,this.$.panel["top-aside-body"],"top","aside","body"),v.call(this,this.$.panel["top-left-body"],"top","left","body"),v.call(this,this.$.panel["top-body"],"top","","body"),v.call(this,this.$.panel["top-right-body"],"top","right","body"),v.call(this,this.$.panel["aside-body"],"","aside","body"),v.call(this,this.$.panel["left-body"],"","left","body"),v.call(this,this.$.panel.body,"","","body"),v.call(this,this.$.panel["right-body"],"","right","body"),v.call(this,this.$.panel["bottom-aside-body"],"bottom","aside","body"),v.call(this,this.$.panel["bottom-left-body"],"bottom","left","body"),v.call(this,this.$.panel["bottom-body"],"bottom","","body"),v.call(this,this.$.panel["bottom-right-body"],"bottom","right","body"),m.call(this,this.$.scroller.vertical,d,c,"vertical"),m.call(this,this.$.scroller.horizontal,d,c,"horizontal"),m.call(this,this.$.scroller.corner,d,c,"corner"),v.call(this,this.$.container.page,"","","page"),this.xvar.bodyHeight=this.$.panel.body.height(),this.xvar.bodyWidth=this.$.panel.body.width(),!0},g=function(t){if(e.header.repaint.call(this),i.isFunction(this.config.remoteSort)){var n={sortInfo:[]};for(var o in t)n.sortInfo.push({key:o,orderBy:t[o].orderBy,seq:t[o].seq});n.sortInfo.sort(function(t,i){return t.seq>i.seq}),this.config.remoteSort.call(n,n)}else this.config.body.grouping?this.list=e.data.initData.call(this,e.data.sort.call(this,t,e.data.clearGroupingData.call(this,this.list))):this.list=e.data.sort.call(this,t,e.data.clearGroupingData.call(this,this.list),{resetLineNumber:!0}),e.body.repaint.call(this,!0),e.scroller.resize.call(this)};this.init=function(t){if(o=jQuery.extend(!0,{},o,t),!o.target)return console.log(ax5.info.getError("ax5grid","401","init")),this;this.onStateChanged=o.onStateChanged,this.onClick=o.onClick,this.onLoad=o.onLoad,this.onDataChanged=o.body.onDataChanged,this.$target=jQuery(o.target),function(t){i.isObject(t)&&!t.error&&(o=jQuery.extend(!0,o,t))}.call(this,i.parseJson(this.$target.attr("data-ax5grid-config"),!0));var s=this.config=o;return this.config.height||(this.config._height=this.$target.height()),this.id||(this.id=this.$target.data("data-ax5grid-id")),this.id||(this.id="ax5grid-"+this.instanceId,this.$target.data("data-ax5grid-id",s.id)),e.data.init.call(this),this.config.tree.use&&(this.sortInfo={},this.sortInfo[this.config.tree.columnKeys.selfHash]={orderBy:"asc",seq:0,fixed:!0}),l.call(this),r.call(this,s.columns),d.call(this),s.footSum&&c.call(this,s.footSum),s.body.grouping&&h.call(this,s.body.grouping),u.call(this,!0),e.header.init.call(this),e.header.repaint.call(this),e.body.init.call(this),e.body.repaint.call(this),e.scroller.init.call(this),e.scroller.resize.call(this),jQuery(window).bind("resize.ax5grid-"+this.id,function(){u.call(n),e.scroller.resize.call(n),e.body.repaint.call(n)}),jQuery(document.body).on("click.ax5grid-"+this.id,function(t){var o=!1,a=i.findParentNode(t.target,function(t){return!!(o=t.getAttribute("data-ax5grid-inline-edit-picker"))||"root"===t.getAttribute("data-ax5grid-container")});a&&a.getAttribute("data-ax5grid-instance")===this.id?n.focused=!0:(n.focused=!1,e.body.blur.call(this))}.bind(this)),jQuery(window).on("keydown.ax5grid-"+this.instanceId,function(t){n.focused&&(n.isInlineEditing?t.which==ax5.info.eventKeys.ESC?n.keyDown("ESC",t.originalEvent):t.which==ax5.info.eventKeys.RETURN?n.keyDown("RETURN",t.originalEvent):t.which==ax5.info.eventKeys.TAB?(n.keyDown("TAB",t.originalEvent),i.stopEvent(t)):t.which==ax5.info.eventKeys.UP?n.keyDown("RETURN",{shiftKey:!0}):t.which==ax5.info.eventKeys.DOWN&&n.keyDown("RETURN",{}):t.metaKey||t.ctrlKey?67==t.which&&n.copySelect():a[t.which]?(n.keyDown(a[t.which],t.originalEvent),i.stopEvent(t)):t.which==ax5.info.eventKeys.ESC?n.focused&&e.body.blur.call(n):t.which==ax5.info.eventKeys.RETURN||t.which==ax5.info.eventKeys.SPACE?n.keyDown("RETURN",t.originalEvent):t.which==ax5.info.eventKeys.TAB?i.stopEvent(t):Object.keys(n.focusedColumn).length)}),jQuery(window).on("keyup.ax5grid-"+this.instanceId,function(t){n.focused&&(n.isInlineEditing||t.metaKey||t.ctrlKey||a[t.which]||t.which==ax5.info.eventKeys.ESC||t.which==ax5.info.eventKeys.RETURN||t.which==ax5.info.eventKeys.SPACE||t.which==ax5.info.eventKeys.TAB||Object.keys(n.focusedColumn).length&&n.keyDown("INLINE_EDIT",t.originalEvent))}),setTimeout(function(){this.onLoad&&this.onLoad.call({self:this})}.bind(this)),this},this.align=function(){return u.call(this)&&(e.body.repaint.call(this),e.scroller.resize.call(this)),this},this.repaint=function(){return e.header.repaint.call(this),e.body.repaint.call(this,!0),e.scroller.resize.call(this),this},this.keyDown=function(){var t={KEY_UP:function(){e.body.moveFocus.call(this,"UP")},KEY_DOWN:function(){e.body.moveFocus.call(this,"DOWN")},KEY_LEFT:function(){e.body.moveFocus.call(this,"LEFT")},KEY_RIGHT:function(){e.body.moveFocus.call(this,"RIGHT")},KEY_HOME:function(){e.body.moveFocus.call(this,"HOME")},KEY_END:function(){e.body.moveFocus.call(this,"END")},INLINE_EDIT:function(t){e.body.inlineEdit.active.call(this,this.focusedColumn,t),/[0-9a-zA-Z]/.test(t.key)||i.stopEvent(t)},ESC:function(t){e.body.inlineEdit.keydown.call(this,"ESC")},RETURN:function(t){var n=0;for(var o in this.inlineEditing){if(n++,!e.body.inlineEdit.keydown.call(this,"RETURN",o))return!1;1==n&&e.body.moveFocus.call(this,t.shiftKey?"UP":"DOWN")&&e.body.inlineEdit.keydown.call(this,"RETURN")}0==n&&(e.body.inlineEdit.keydown.call(this,"RETURN"),i.stopEvent(t))},TAB:function(t){var i=0;for(var n in this.inlineEditing)i++,e.body.inlineEdit.keydown.call(this,"RETURN",n,{moveFocus:!0}),1==i&&e.body.moveFocus.call(this,t.shiftKey?"LEFT":"RIGHT")&&e.body.inlineEdit.keydown.call(this,"RETURN",void 0,{moveFocus:!0})}};return function(i,e){return i in t&&t[i].call(this,e),this}}(),this.copySelect=function(){var t=void 0,i=this.$.form.clipboard,e=[],n="",o=void 0,a=void 0,l=void 0,r=0;for(var s in this.selectedColumn){var d=this.selectedColumn[s];if(d){"undefined"==typeof l&&(l=d.dindex,o=d.rowIndex,a=d.rowIndex),l==d.dindex&&o==d.rowIndex||r++,e[r]||(e[r]=[]);var c=this.bodyRowMap[d.rowIndex+"_"+d.colIndex];c?this.list[d.dindex].__isGrouping?e[r].push(this.list[d.dindex][d.colIndex]):e[r].push(this.list[d.dindex][c.key]):e[r].push(""),l=d.dindex,o=d.rowIndex}}e.forEach(function(t){n+=t.join("\t")+"\n"}),i.get(0).innerText=n,i.select();try{t=document.execCommand("copy")}catch(h){t=!1}return t},this.setData=function(t){var i="undefined"==typeof this.xvar.paintStartRowIndex;return e.data.set.call(this,t),e.body.repaint.call(this),i||e.body.scrollTo.call(this,{top:0}),u.call(this),e.scroller.resize.call(this),e.page.navigationUpdate.call(this),i=null,this},this.getList=function(t){return e.data.getList.call(this,t)},this.setHeight=function(t){return"100%"==t&&(t=this.$target.offsetParent().innerHeight()),this.$target.css({height:t}),this.$.container.root.css({height:t}),u.call(this),e.body.repaint.call(this,"reset"),e.scroller.resize.call(this),this},this.addRow=function(t,i,n){var o=this;return e.data.add.call(this,t,i,n),u.call(this),e.body.repaint.call(this,"reset"),n&&n.focus?setTimeout(function(){e.body.moveFocus.call(o,n.focus)},1):e.scroller.resize.call(this),this},this.appendToList=function(t){return e.data.append.call(this,t,function(){u.call(this),e.body.repaint.call(this),e.scroller.resize.call(this)}.bind(this)),this},this.removeRow=function(t){return e.data.remove.call(this,t),u.call(this),e.body.repaint.call(this,"reset"),e.body.moveFocus.call(this,this.config.body.grouping?"START":"END"),e.scroller.resize.call(this),this},this.updateRow=function(t,i){return e.data.update.call(this,t,i),e.body.repaintRow.call(this,i),this},this.updateChildRows=function(t,i,n){return e.data.updateChild.call(this,t,i,n),this.xvar.paintStartRowIndex=void 0,this.xvar.paintStartColumnIndex=void 0,e.body.repaint.call(this),this},this.deleteRow=function(t){return e.data.deleteRow.call(this,t),u.call(this),e.body.repaint.call(this,"reset"),e.scroller.resize.call(this),this},this.setValue=function(t,i,n){var o=void 0;if(e.data.setValue.call(this,t,o,i,n)){var a=function(t,i,n,o,a,l){for(var r=0,s=i.length;r<s;r++)for(var d=0,c=i[r].cols.length;d<c;d++)i[r].cols[d].key==a&&(this.xvar.frozenRowIndex>n?e.body.repaintCell.call(this,"top-"+t,n,o,r,d,l):e.body.repaintCell.call(this,t+"-scroll",n,o,r,d,l))};a.call(this,"left-body",this.leftBodyRowData.rows,t,o,i,n),a.call(this,"body",this.bodyRowData.rows,t,o,i,n)}return this},this.addColumn=function(){var t={first:function(t){this.config.columns=[].concat(t).concat(this.config.columns)},last:function(t){this.config.columns=this.config.columns.concat([].concat(t))}};return function(e,n){if("undefined"==typeof e)throw"_column must not be null";if("undefined"==typeof n&&(n="last"),n in t)t[n].call(this,e);else{if(!i.isNumber(n))throw"invalid argument _cindex";if(i.isArray(e))for(var o=0,a=e.length;o<a;o++)this.config.columns.splice(n+o,0,e[o]);else this.config.columns.splice(n,0,e)}return s.call(this),this}}(),this.removeColumn=function(){var t={first:function(t){this.config.columns.splice(t,1)},last:function(){this.config.columns.splice(this.config.columns.length-1,1)}};return function(e){if("undefined"==typeof e&&(e="last"),e in t)t[e].call(this,e);else{if(!i.isNumber(e))throw"invalid argument _cindex";this.config.columns.splice(e,1)}return s.call(this),this}}(),this.updateColumn=function(t,e){if(!i.isNumber(e))throw"invalid argument _cindex";return this.config.columns.splice(e,1,t),s.call(this),this},this.setColumnWidth=function(t,i){return this.colGroup[this.xvar.columnResizerIndex]._width=t,this.needToPaintSum=!0,e.header.repaint.call(this),e.body.repaint.call(this,!0),e.scroller.resize.call(this),u.call(this),this},this.getColumnSortInfo=function(){var t={sortInfo:[]};for(var i in this.sortInfo)t.sortInfo.push({key:i,orderBy:this.sortInfo[i].orderBy,seq:this.sortInfo[i].seq});return t.sortInfo.sort(function(t,i){return t.seq>i.seq}),t.sortInfo},this.setColumnSort=function(t){return"undefined"!=typeof t&&(this.sortInfo=t,e.header.applySortStatus.call(this,t)),g.call(this,t||this.sortInfo),this},this.select=function(t,n){if(i.isNumber(t)){var o=t;this.config.multipleSelect?n&&n.selectedClear&&this.clearSelect():this.clearSelect(),e.data.select.call(this,o,void 0,n&&n.selected),e.body.updateRowState.call(this,["selected"],o,void 0)}return this},this.clickBody=function(t){return e.body.click.call(this,t),this},this.DBLClickBody=function(t){return e.body.dblClick.call(this,t),this},this.clearSelect=function(){return e.body.updateRowState.call(this,["selectedClear"]),e.data.clearSelect.call(this),this},this.selectAll=function(t){return e.data.selectAll.call(this,t&&t.selected,t),e.body.updateRowStateAll.call(this,["selected"]),this},this.exportExcel=function(t){var i=[];return i.push('<table border="1">'),i.push(e.header.getExcelString.call(this)),i.push(e.body.getExcelString.call(this)),i.push("</table>"),"undefined"==typeof t?i.join(""):(e.excel["export"].call(this,[i.join("")],t),this)},this.focus=function(t){if(e.body.moveFocus.call(this,t)){var i=void 0;for(var n in this.focusedColumn){i=jQuery.extend({},this.focusedColumn[n],!0);break}i&&this.select(i.dindex,{selectedClear:!0})}else if("undefined"==typeof this.selectedDataIndexs[0])this.select(0);else{var o=this.selectedDataIndexs[0],a={UP:function(){o>0&&(this.select(o-1,{selectedClear:!0}),e.body.moveFocus.call(this,o-1))},DOWN:function(){o<this.list.length-1&&(this.select(o+1,{selectedClear:!0}),e.body.moveFocus.call(this,o+1))},HOME:function(){this.select(0,{selectedClear:!0}),e.body.moveFocus.call(this,0)},END:function(){this.select(this.list.length-1,{selectedClear:!0}),e.body.moveFocus.call(this,this.list.length-1)}};t in a&&a[t].call(this)}return this},this.destroy=function(){var i=this.instanceId;return this.$target.empty(),this.list=[],t.grid_instance=ax5.util.filter(t.grid_instance,function(){return this.instanceId!=i}),null},this.main=function(){t.grid_instance=t.grid_instance||[],t.grid_instance.push(this),arguments&&i.isObject(arguments[0])&&this.setConfig(arguments[0])}.apply(this,arguments)}}()),e=ax5.ui.grid}(),function(){var t=ax5.ui.grid,i=ax5.util,e={focusClear:function(){var t=this,i=void 0;for(var e in t.focusedColumn)i=t.focusedColumn[e],i&&t.$.panel[i.panelName].find('[data-ax5grid-tr-data-index="'+i.dindex+'"]').find('[data-ax5grid-column-rowindex="'+i.rowIndex+'"][data-ax5grid-column-colindex="'+i.colIndex+'"]').removeAttr("data-ax5grid-column-focused");t.focusedColumn={}},clear:function(){var t=this,i=void 0;for(var e in t.selectedColumn)i=t.selectedColumn[e],i&&t.$.panel[i.panelName].find('[data-ax5grid-tr-data-index="'+i.dindex+'"]').find('[data-ax5grid-column-rowindex="'+i.rowIndex+'"][data-ax5grid-column-colindex="'+i.colIndex+'"]').removeAttr("data-ax5grid-column-selected");t.selectedColumn={}},init:function(i){var n=this;if(this.isInlineEditing)for(var o in this.inlineEditing)if(o==i.dindex+"_"+i.colIndex+"_"+i.rowIndex)return this;e.focusClear.call(n),n.focusedColumn[i.dindex+"_"+i.colIndex+"_"+i.rowIndex]={panelName:i.panelName,dindex:i.dindex,doindex:i.doindex,rowIndex:i.rowIndex,colIndex:i.colIndex,colspan:i.colspan},e.clear.call(n),n.xvar.selectedRange={start:[i.dindex,i.rowIndex,i.colIndex,i.colspan-1],end:null},n.selectedColumn[i.dindex+"_"+i.colIndex+"_"+i.rowIndex]=function(t){return!t&&{panelName:i.panelName,dindex:i.dindex,doindex:i.doindex,rowIndex:i.rowIndex,colIndex:i.colIndex,colspan:i.colspan}}(n.selectedColumn[i.dindex+"_"+i.colIndex+"_"+i.rowIndex]),this.$.panel[i.panelName].find('[data-ax5grid-tr-data-index="'+i.dindex+'"]').find('[data-ax5grid-column-rowindex="'+i.rowIndex+'"][data-ax5grid-column-colindex="'+i.colIndex+'"]').attr("data-ax5grid-column-focused","true").attr("data-ax5grid-column-selected","true"),this.isInlineEditing&&t.body.inlineEdit.deActive.call(this,"RETURN")},update:function(t){var i=this,n=void 0,o=void 0,a=void 0,l=void 0,r=void 0;i.xvar.selectedRange.end=[t.dindex,t.rowIndex,t.colIndex,t.colspan-1],e.clear.call(i);var s={r:{s:Math.min(i.xvar.selectedRange.start[0],i.xvar.selectedRange.end[0]),e:Math.max(i.xvar.selectedRange.start[0],i.xvar.selectedRange.end[0])},c:{s:Math.min(i.xvar.selectedRange.start[2],i.xvar.selectedRange.end[2]),e:Math.max(i.xvar.selectedRange.start[2]+i.xvar.selectedRange.start[3],i.xvar.selectedRange.end[2]+i.xvar.selectedRange.end[3])}};for(n=s.r.s;n<=s.r.e;n++)for(r=this.bodyRowTable.rows.length,l=0;l<r;l++)for(a=s.c.s;a<=s.c.e;a++){var d=[],c="";i.xvar.frozenRowIndex>n&&d.push("top"),i.xvar.frozenColumnIndex>a&&d.push("left"),d.push("body"),"top"!==d[0]&&d.push("scroll"),c=d.join("-"),i.selectedColumn[n+"_"+a+"_"+l]={panelName:c,dindex:n,rowIndex:l,colIndex:a,colspan:t.colspan},d=null,c=null}n=null,o=null,a=null,l=null;for(var h in i.selectedColumn){var u=i.selectedColumn[h];u&&i.$.panel[u.panelName].find('[data-ax5grid-tr-data-index="'+u.dindex+'"]').find('[data-ax5grid-column-rowindex="'+u.rowIndex+'"][data-ax5grid-column-colindex="'+u.colIndex+'"]').attr("data-ax5grid-column-selected","true")}}},n={on:function(t){var o=this;this.inlineEditing[t.dindex+"_"+t.colIndex+"_"+t.rowIndex]||(e.init.call(o,t),this.$.container.body.on("mousemove.ax5grid-"+this.instanceId,'[data-ax5grid-column-attr="default"]',function(t){this.getAttribute("data-ax5grid-column-rowIndex")&&(e.update.call(o,{panelName:this.getAttribute("data-ax5grid-panel-name"),dindex:Number(this.getAttribute("data-ax5grid-data-index")),doindex:Number(this.getAttribute("data-ax5grid-data-o-index")),rowIndex:Number(this.getAttribute("data-ax5grid-column-rowIndex")),colIndex:Number(this.getAttribute("data-ax5grid-column-colIndex")),colspan:Number(this.getAttribute("colspan"))}),i.stopEvent(t))}).on("mouseup.ax5grid-"+this.instanceId,function(){n.off.call(o)}).on("mouseleave.ax5grid-"+this.instanceId,function(){n.off.call(o)}),jQuery(document.body).attr("unselectable","on").css("user-select","none").on("selectstart",!1))},off:function(){this.$.container.body.off("mousemove.ax5grid-"+this.instanceId).off("mouseup.ax5grid-"+this.instanceId).off("mouseleave.ax5grid-"+this.instanceId),jQuery(document.body).removeAttr("unselectable").css("user-select","auto").off("selectstart")}},o=function(t,i,e,n){var o=this,a=this.config,l={selected:function(t,i){if(this.list[i])for(var e=this.$.livePanelKeys.length;e--;)this.$.panel[this.$.livePanelKeys[e]].find('[data-ax5grid-tr-data-index="'+t+'"]').attr("data-ax5grid-selected",this.list[i][a.columnKeys.selected])},selectedClear:function(){var t=this.list.length,i=void 0;if(this.proxyList){for(;t--;)this.list[t][a.columnKeys.selected]=!1;for(t=this.proxyList.length;t--;){if(this.list[e][a.columnKeys.selected])for(i=this.$.livePanelKeys.length;i--;)this.$.panel[this.$.livePanelKeys[i]].find('[data-ax5grid-tr-data-index="'+t+'"]').attr("data-ax5grid-selected",!1);this.proxyList[t][a.columnKeys.selected]=!1;var e=this.proxyList[t].__original_index__}}else for(;t--;){if(this.list[t][a.columnKeys.selected])for(i=this.$.livePanelKeys.length;i--;)this.$.panel[this.$.livePanelKeys[i]].find('[data-ax5grid-tr-data-index="'+t+'"]').attr("data-ax5grid-selected",!1);this.list[t][a.columnKeys.selected]=!1}},cellChecked:function(t,i,e){var n=(e.key,e.rowIndex),o=e.colIndex,a=function(){var i=[];return this.xvar.frozenRowIndex>t&&i.push("top"),this.xvar.frozenColumnIndex>o&&i.push("left"),i.push("body"),"top"!==i[0]&&i.push("scroll"),i.join("-")}.call(this);this.$.panel[a].find('[data-ax5grid-tr-data-index="'+t+'"]').find('[data-ax5grid-column-rowIndex="'+n+'"][data-ax5grid-column-colIndex="'+o+'"]').find('[data-ax5grid-editor="checkbox"]').attr("data-ax5grid-checked",""+e.checked)}};"undefined"==typeof e&&(e=i),t.forEach(function(t){if(!l[t])throw"invaild state name";l[t].call(o,i,e,n)})},a=function(i,e){var n=this,o=(this.config,{selected:function(i){t.body.repaint.call(this,!0)}});i.forEach(function(t){if(!o[t])throw"invaild state name";o[t].call(n,e)})},l=function(){var e=this;this.$.container.body.on("click","[data-ax5grid-column-attr]",function(i){var n=void 0,a=void 0,l=void 0,r=void 0,s=void 0,d=void 0,c=void 0,h=void 0,u={"default":function(n){var a=e.bodyRowMap[n.rowIndex+"_"+n.colIndex],l={self:e,page:e.page,list:e.list,item:e.list[n.doindex],dindex:n.dindex,doindex:n.doindex,rowIndex:n.rowIndex,colIndex:n.colIndex,column:a,value:e.list[n.dindex][a.key]};if(a.editor&&"checkbox"===a.editor.type){var r=t.data.getValue.call(e,n.dindex,n.doindex,a.key),s=void 0,d=void 0;d=a.editor.config&&a.editor.config.trueValue?(s=!(r==a.editor.config.trueValue))?a.editor.config.trueValue:a.editor.config.falseValue:s=0==r||"false"==r||r<"1"?"true":"false",t.data.setValue.call(e,n.dindex,n.doindex,a.key,d),o.call(e,["cellChecked"],n.dindex,n.doindex,{key:a.key,rowIndex:n.rowIndex,colIndex:n.colIndex,editorConfig:a.editor.config,checked:s})}e.config.body.onClick&&e.config.body.onClick.call(l,l,i)},rowSelector:function(i){var n=e.list[i.doindex];return!n[e.config.columnKeys.disableSelection]&&(e.config.multipleSelect||e.selectedDataIndexs[0]===i.doindex||(o.call(e,["selectedClear"]),t.data.clearSelect.call(e)),t.data.select.call(e,i.dindex,i.doindex,void 0,{internalCall:!0}),void o.call(e,["selected"],i.dindex,i.doindex))},lineNumber:function(t){},"tree-control":function(t,i){y.call(e,t.dindex,t.doindex)}};n=this.getAttribute("data-ax5grid-panel-name"),a=this.getAttribute("data-ax5grid-column-attr"),l=Number(this.getAttribute("data-ax5grid-column-row")),r=Number(this.getAttribute("data-ax5grid-column-col")),c=Number(this.getAttribute("data-ax5grid-column-rowIndex")),h=Number(this.getAttribute("data-ax5grid-column-colIndex")),s=Number(this.getAttribute("data-ax5grid-data-index")),d=Number(this.getAttribute("data-ax5grid-data-o-index")),a in u&&u[a]({panelName:n,attr:a,row:l,col:r,dindex:s,doindex:d,rowIndex:c,colIndex:h},this)}),this.$.container.body.on("dblclick","[data-ax5grid-column-attr]",function(n){var o=void 0,a=void 0,l=void 0,r=void 0,s=void 0,d=void 0,c=void 0,h=void 0,u={"default":function(o){if(e.isInlineEditing)for(var a in e.inlineEditing)if(a==o.dindex+"_"+o.colIndex+"_"+o.rowIndex)return this;var l=e.bodyRowMap[o.rowIndex+"_"+o.colIndex],r="";l&&(e.list[s].__isGrouping||(r=t.data.getValue.call(e,s,d,l.key)));var c=e.colGroup[o.colIndex].editor;if(i.isObject(c))t.body.inlineEdit.active.call(e,e.focusedColumn,n,r);else if(e.config.body.onDBLClick){var h={self:e,page:e.page,list:e.list,item:e.list[o.dindex],dindex:o.dindex,doindex:o.doindex,rowIndex:o.rowIndex,colIndex:o.colIndex,column:l,value:e.list[o.dindex][l.key]};e.config.body.onDBLClick.call(h)}},rowSelector:function(t){},lineNumber:function(t){}};o=this.getAttribute("data-ax5grid-panel-name"),a=this.getAttribute("data-ax5grid-column-attr"),l=Number(this.getAttribute("data-ax5grid-column-row")),r=Number(this.getAttribute("data-ax5grid-column-col")),c=Number(this.getAttribute("data-ax5grid-column-rowIndex")),h=Number(this.getAttribute("data-ax5grid-column-colIndex")),s=Number(this.getAttribute("data-ax5grid-data-index")),d=Number(this.getAttribute("data-ax5grid-data-o-index")),a in u&&u[a]({panelName:o,attr:a,row:l,col:r,dindex:s,doindex:d,rowIndex:c,colIndex:h})}),this.config.contextMenu&&this.$.container.body.on("contextmenu",function(t){var n=void 0,o=void 0,a=void 0,l=void 0,r=void 0,s=void 0,d=void 0,c={};n=i.findParentNode(t.target,function(t){if(t.getAttribute("data-ax5grid-column-attr"))return!0}),n&&(l=Number(n.getAttribute("data-ax5grid-column-rowIndex")),r=Number(n.getAttribute("data-ax5grid-column-colIndex")),o=Number(n.getAttribute("data-ax5grid-data-index")),a=Number(n.getAttribute("data-ax5grid-data-o-index")),d=e.bodyRowMap[l+"_"+r],s=e.list[o]),e.contextMenu||(e.contextMenu=new ax5.ui.menu),e.contextMenu.setConfig(e.config.contextMenu),c={element:n,dindex:o,doindex:a,rowIndex:l,colIndex:r,item:s,column:d,gridSelf:e},e.contextMenu.popup(t,{filter:function(){
return e.config.contextMenu.popupFilter.call(this,this,c)},param:c}),i.stopEvent(t.originalEvent),n=null,o=null,a=null,l=null,r=null,s=null,d=null,c=null}),this.$.container.body.on("mousedown",'[data-ax5grid-column-attr="default"]',function(t){return!e.xvar.touchmoved&&void(this.getAttribute("data-ax5grid-column-rowIndex")&&n.on.call(e,{panelName:this.getAttribute("data-ax5grid-panel-name"),dindex:Number(this.getAttribute("data-ax5grid-data-index")),doindex:Number(this.getAttribute("data-ax5grid-data-o-index")),rowIndex:Number(this.getAttribute("data-ax5grid-column-rowIndex")),colIndex:Number(this.getAttribute("data-ax5grid-column-colIndex")),colspan:Number(this.getAttribute("colspan"))}))}).on("dragstart",function(t){return i.stopEvent(t),!1}),r.call(this),this.xvar.paintRowCountMargin=this.config.virtualScrollYCountMargin,this.xvar.paintRowCountTopMargin=this.config.virtualScrollYCountMargin-Math.floor(this.config.virtualScrollYCountMargin/2),this.config.virtualScrollAccelerated?this.__throttledScroll=i.throttle(function(t,i){this.config.virtualScrollY&&!i.noRepaint&&"top"in t?h.call(this):this.config.virtualScrollX&&!i.noRepaint&&"left"in t&&h.call(this),i.callback&&i.callback()},this.config.virtualScrollAcceleratedDelayTime):this.__throttledScroll=!1},r=function(){var i=this.config,e=t.util.divideTableByFrozenColumnIndex(this.bodyRowTable,this.xvar.frozenColumnIndex);if(this.asideBodyRowData=function(t){for(var e={rows:[]},n=0,o=t.rows.length;n<o;n++)if(e.rows[n]={cols:[]},0===n){var a={label:"",colspan:1,rowspan:t.rows.length,colIndex:null},l={};i.showLineNumber&&(l=jQuery.extend({},a,{width:i.lineNumberColumnWidth,_width:i.lineNumberColumnWidth,columnAttr:"lineNumber",label:" ",key:"__d-index__"}),e.rows[n].cols.push(l)),i.showRowSelector&&(l=jQuery.extend({},a,{width:i.rowSelectorColumnWidth,_width:i.rowSelectorColumnWidth,columnAttr:"rowSelector",label:"",key:"__d-checkbox__"}),e.rows[n].cols.push(l))}return e}.call(this,this.bodyRowTable),this.leftBodyRowData=e.leftData,this.bodyRowData=e.rightData,i.body.grouping){var n=t.util.divideTableByFrozenColumnIndex(this.bodyGroupingTable,this.xvar.frozenColumnIndex);this.asideBodyGroupingData=function(t){for(var e={rows:[]},n=0,o=t.rows.length;n<o;n++)if(e.rows[n]={cols:[]},0===n){var a={label:"",colspan:1,rowspan:t.rows.length,colIndex:null},l={};i.showLineNumber&&(l=jQuery.extend({},a,{width:i.lineNumberColumnWidth,_width:i.lineNumberColumnWidth,columnAttr:"lineNumber",label:" ",key:"__d-index__"}),e.rows[n].cols.push(l)),i.showRowSelector&&(l=jQuery.extend({},a,{width:i.rowSelectorColumnWidth,_width:i.rowSelectorColumnWidth,columnAttr:"rowSelector",label:"",key:"__d-checkbox__"}),e.rows[n].cols.push(l))}return e}.call(this,this.bodyGroupingTable),this.leftBodyGroupingData=n.leftData,this.bodyGroupingData=n.rightData,this.bodyGroupingMap=t.util.makeBodyRowMap.call(this,this.bodyGroupingTable)}if(this.leftFootSumData={},this.footSumData={},this.config.footSum){var o=t.util.divideTableByFrozenColumnIndex(this.footSumTable,this.xvar.frozenColumnIndex);this.leftFootSumData=o.leftData,this.footSumData=o.rightData}},s=function(e,n,o,a,l,r){var s=a.key,d={"<":"<",">":">"};if("__d-index__"===s)return"undefined"!=typeof n.__index?n.__index+1:"";if("__d-checkbox__"===s)return'<div class="checkBox" style="max-height: '+(a.width-10)+"px;min-height: "+(a.width-10)+'px;"></div>';if(a.editor&&function(i){return i.type in t.inlineEditor&&"inline"==t.inlineEditor[i.type].editMode}(a.editor))return l=l||t.data.getValue.call(this,o,n.__origin_index__,s),i.isFunction(a.editor.disabled)&&a.editor.disabled.call({list:e,dindex:o,item:e[o],key:s,value:l})?l:r?l:t.inlineEditor[a.editor.type].getHtml(this,a.editor,l);var c={formatter:function(){var r={key:s,value:l||t.data.getValue.call(this,o,n.__origin_index__,s),dindex:o,item:n,list:e};return i.isFunction(a.formatter)?a.formatter.call(r):t.formatter[a.formatter].call(r)},"default":function(){var i="";return"undefined"!=typeof l?i=l:(l=/[\.\[\]]/.test(s)?t.data.getValue.call(this,o,n.__origin_index__,s):n[s],null!==l&&"undefined"!=typeof l&&(i=l)),"string"!=typeof i?i:i.replace(/[<>]/g,function(t){return d[t]||t})},treeControl:function(t){var i=this.config,e=this.config.tree.columnKeys,a="";return n[e.children].length?(a+='<a data-ax5grid-data-index="'+o+'" data-ax5grid-column-attr="tree-control" data-ax5grid-tnode-arrow="" style="width: '+i.tree.arrowWidth+"px;padding-left:"+n[e.depth]*i.tree.indentWidth+'px;">',a+=n[e.collapse]?i.tree.icons.collapsedArrow:i.tree.icons.openedArrow,a+="</a>"):a+='<span data-ax5grid-tnode-arrow="" style="width: '+i.tree.arrowWidth+"px;padding-left:"+n[e.depth]*i.tree.indentWidth+'px;"> </span>',a+='<span data-ax5grid-tnode-item="'+(n[e.children].length?"group":"item")+'" style="width: '+i.tree.iconWidth+'px;">',a+=n[e.children].length?n[e.collapse]?i.tree.icons.collapsedGroupIcon:i.tree.icons.groupIcon:i.tree.icons.itemIcon,a+="</span>",a+t}},h=a.formatter?c.formatter.call(this):c["default"].call(this);return this.config.tree.use&&a.treeControl&&(h=c.treeControl.call(this,h)),h},d=function(e,n,o){var a=void 0,l=void 0,r=o.key,s=o.label;return"undefined"==typeof r?(l={key:r,list:e.__groupingList,groupBy:e.__groupingBy},a=i.isFunction(s)?s.call(l):s,e[o.colIndex]=a,a):"__d-index__"===r?"":"__d-checkbox__"===r?"":o.collector?(l={key:r,list:e.__groupingList},a=i.isFunction(o.collector)?o.collector.call(l):t.collector[o.collector].call(l),e[o.colIndex]=a,o.formatter?(l.value=a,i.isFunction(o.formatter)?o.formatter.call(l):t.formatter[o.formatter].call(l)):a):" "},c=function(e,n){var o=n.key,a=n.label;if("undefined"==typeof o)return a;if("__d-index__"===o||"__d-checkbox__"===o)return" ";if(n.collector){var l={key:o,list:e},r=void 0;return r=i.isFunction(n.collector)?n.collector.call(l):t.collector[n.collector].call(l),n.formatter?(l.value=r,i.isFunction(n.formatter)?n.formatter.call(l):t.formatter[n.formatter].call(l)):r}return" "},h=function(e){var n=this.config,o=this.proxyList?this.proxyList:this.list;e&&(r.call(this),this.xvar.paintStartRowIndex=void 0,this.xvar.paintStartColumnIndex=void 0);var a=void 0,l=void 0;if(this.config.virtualScrollY?(l=a=Math.floor(-this.$.panel["body-scroll"].position().top/this.xvar.bodyTrHeight)+this.xvar.frozenRowIndex,this.xvar.paintRowCountTopMargin<a&&(a-=this.xvar.paintRowCountTopMargin)):a=this.xvar.frozenRowIndex,isNaN(a))return this;var h=0,u=0,g=null,f=null,x=-this.$.panel["body-scroll"].position().left;if(this.config.virtualScrollX){for(var p=this.xvar.frozenColumnIndex;p<this.colGroup.length;p++)this.colGroup[p]._sx=p==this.xvar.frozenColumnIndex?0:this.colGroup[p-1]._ex,this.colGroup[p]._ex=this.colGroup[p]._sx+this.colGroup[p]._width,this.colGroup[p]._sx<=x&&this.colGroup[p]._ex>=x&&(h=p),this.colGroup[p]._sx<=x+this.xvar.bodyWidth&&this.colGroup[p]._ex>=x+this.xvar.bodyWidth&&(u=p,null===g&&(g=this.colGroup[h]._sx),null===f&&(f=this.xvar.scrollContentWidth-this.colGroup[p]._ex));null===g&&(g=0),null===f&&(f=0),this.$.panel["top-body-scroll"].css({"padding-left":g,"padding-right":f}),this.$.panel["body-scroll"].css({"padding-left":g,"padding-right":f}),this.$.panel["bottom-body-scroll"].css({"padding-left":g,"padding-right":f})}var v="undefined"==typeof this.xvar.paintStartRowIndex,m=this.headerColGroup,y=this.asideBodyRowData,b=this.leftBodyRowData,w=this.bodyRowData,I=this.leftFootSumData,_=this.footSumData,C=this.asideBodyGroupingData,R=this.leftBodyGroupingData,S=this.bodyGroupingData,E=n.body.align,$=void 0,z=void 0;if(this.config.virtualScrollY?(z=Math.ceil(this.xvar.bodyHeight/this.xvar.bodyTrHeight),$=z+(this.xvar.paintRowCountMargin||1)):z=$=o.length,this.xvar.paintRowCountTopMargin<a&&Math.abs(this.xvar.paintStartRowIndex-a)<=this.xvar.paintRowCountTopMargin&&(a=this.xvar.paintStartRowIndex),this.xvar.dataRowCount===o.length&&this.xvar.paintStartRowIndex===a&&this.xvar.paintRowCount===$&&this.xvar.paintStartColumnIndex===h&&this.xvar.paintEndColumnIndex===u)return this;(g||f)&&(m=[].concat(m).splice(h-this.xvar.frozenColumnIndex,u-h+1+this.xvar.frozenColumnIndex),w=t.util.getTableByStartEndColumnIndex(w,h,u),n.body.grouping&&(S=t.util.getTableByStartEndColumnIndex(S,h,u)),n.footSum&&(_=t.util.getTableByStartEndColumnIndex(_,h,u)),this.xvar.paintStartColumnIndex===h&&this.xvar.paintEndColumnIndex===u||(this.needToPaintSum=!0)),this.xvar.scrollContentHeight=this.xvar.bodyTrHeight*(o.length-this.xvar.frozenRowIndex),this.xvar.scrollContentHeight<0&&(this.xvar.scrollContentHeight=0),this.$.livePanelKeys=[];var k=function(t,e,o,a,l,r){var c=this.$.panel[t];if(!v&&!r)return this.$.livePanelKeys.push(t),!1;var h=[],u=void 0,g=void 0,f=void 0,x=void 0,p=void 0,m=void 0,y=void 0,b=void 0,w=void 0,I=void 0,_=void 0,C=function(){return"undefined"!=typeof r&&"undefined"!=typeof r.paintStartRowIndex||(r={paintStartRowIndex:0,paintRowCount:l.length},!1)}(),R="#fff 0px, #fff "+(n.body.columnHeight-n.body.columnBorderWidth)+"px, #eee "+(n.body.columnHeight-n.body.columnBorderWidth)+"px, #eee "+n.body.columnHeight+"px";for(C&&h.push('<div style="background:repeating-linear-gradient(to top, '+R+");font-size:0;line-height:0;height: "+(r.paintStartRowIndex-this.xvar.frozenRowIndex)*r.bodyTrHeight+'px;"></div>'),h.push('<table border="0" cellpadding="0" cellspacing="0">'),h.push("<colgroup>"),u=0,g=e.length;u<g;u++)h.push('<col style="width:'+e[u]._width+'px;" />');for(h.push("<col />"),h.push("</colgroup>"),f=r.paintStartRowIndex,x=function(){var t=void 0;return t=l.length,r.paintRowCount+r.paintStartRowIndex<t&&(t=r.paintRowCount+r.paintStartRowIndex),t}();f<x;f++)if(l[f]){var S=!1,$=void 0,z="undefined"!=typeof l[f].__origin_index__?l[f].__origin_index__:f;a&&"__isGrouping"in l[f]?($=a,S=!0):$=o;for(p=0,m=$.rows.length;p<m;p++){for(h.push('<tr class="tr-'+f%4,n.body.trStyleClass?i.isFunction(n.body.trStyleClass)?" "+n.body.trStyleClass.call({item:l[f],index:f},l[f],f):" "+n.body.trStyleClass:"",'"',S?' data-ax5grid-grouping-tr="true"':"",' data-ax5grid-tr-data-index="'+f+'"',' data-ax5grid-tr-data-o-index="'+z+'"',' data-ax5grid-selected="'+(l[f][n.columnKeys.selected]||"false")+'"',' data-ax5grid-disable-selection="'+(l[f][n.columnKeys.disableSelection]||"false")+'"',">"),y=0,b=$.rows[p].cols.length;y<b;y++)w=$.rows[p].cols[y],I=n.body.columnHeight*w.rowspan-n.body.columnBorderWidth,_=w.align||E,h.push("<td ",'data-ax5grid-panel-name="'+t+'" ','data-ax5grid-data-index="'+f+'" ','data-ax5grid-data-o-index="'+z+'" ','data-ax5grid-column-row="'+p+'" ','data-ax5grid-column-col="'+y+'" ','data-ax5grid-column-rowIndex="'+w.rowIndex+'" ','data-ax5grid-column-colIndex="'+w.colIndex+'" ','data-ax5grid-column-attr="'+(w.columnAttr||"default")+'" ',function(t,i){var e="";return t&&(e+='data-ax5grid-column-focused="true" '),i&&(e+='data-ax5grid-column-selected="true" '),e}(this.focusedColumn[f+"_"+w.colIndex+"_"+w.rowIndex],this.selectedColumn[f+"_"+w.colIndex+"_"+w.rowIndex]),'colspan="'+w.colspan+'" ','rowspan="'+w.rowspan+'" ','class="'+function(t){var e="";return t.styleClass&&(e+=i.isFunction(t.styleClass)?t.styleClass.call({column:t,key:t.key,item:l[f],index:f})+" ":t.styleClass+" "),n.body.columnBorderWidth&&(e+="hasBorder "),y==b-1&&(e+="isLastColumn "),e}.call(this,w)+'" ','style="height: '+I+'px;min-height: 1px;">'),h.push(function(t){var i=n.body.columnHeight-2*n.body.columnPadding-n.body.columnBorderWidth;return w.multiLine||(t=n.body.columnHeight-n.body.columnBorderWidth),'<span data-ax5grid-cellHolder="'+(w.multiLine?"multiLine":"")+'" '+(_?'data-ax5grid-text-align="'+_+'"':"")+'" style="height:'+t+"px;"+(w.multiLine?"":"line-height: "+i+"px;")+'">'}(I),S?d.call(this,l[f],f,w):s.call(this,l,l[f],f,w),"</span>"),h.push("</td>");h.push("<td ",'data-ax5grid-column-row="null" ','data-ax5grid-column-col="null" ','data-ax5grid-data-index="'+f+'" ','data-ax5grid-data-o-index="'+z+'" ','data-ax5grid-column-attr="default" ','style="height: '+n.body.columnHeight+'px;min-height: 1px;" ',"></td>"),h.push("</tr>")}}return h.push("</table>"),C&&l.length&&h.push('<div style="background:repeating-linear-gradient(to bottom, '+R+");font-size:0;line-height:0;height: "+(l.length-f)*r.bodyTrHeight+'px;"></div>'),c.empty(),h=h.join(""),c.get(0).innerHTML=h,this.$.livePanelKeys.push(t),!0},T=function(t,e,o,a,l){var r=this.$.panel[t];if(!v&&!l)return this.$.livePanelKeys.push(t),!1;var s=[],d=void 0,h=void 0,u=void 0,g=void 0,f=void 0,x=void 0,p=void 0,m=void 0,y=void 0;for(s.push('<table border="0" cellpadding="0" cellspacing="0">'),s.push("<colgroup>"),d=0,h=e.length;d<h;d++)s.push('<col style="width:'+e[d]._width+'px;" />');for(s.push("<col />"),s.push("</colgroup>"),u=0,g=o.rows.length;u<g;u++){for(s.push('<tr class="tr-sum">'),f=0,x=o.rows[u].cols.length;f<x;f++)p=o.rows[u].cols[f],m=n.body.columnHeight*p.rowspan-n.body.columnBorderWidth,y=p.align||E,s.push("<td ",'data-ax5grid-panel-name="'+t+'" ','data-ax5grid-column-row="'+u+'" ','data-ax5grid-column-col="'+f+'" ','data-ax5grid-column-rowIndex="'+u+'" ','data-ax5grid-column-colIndex="'+p.colIndex+'" ','data-ax5grid-column-attr="'+(p.columnAttr||"sum")+'" ',function(t,i){var e="";return t&&(e+='data-ax5grid-column-focused="true" '),i&&(e+='data-ax5grid-column-selected="true" '),e}(this.focusedColumn["sum_"+p.colIndex+"_"+u],this.selectedColumn["sum_"+p.colIndex+"_"+u]),'colspan="'+p.colspan+'" ','rowspan="'+p.rowspan+'" ','class="'+function(t){var e="";return t.styleClass&&(e+=i.isFunction(t.styleClass)?t.styleClass.call({column:t,key:t.key,isFootSum:!0})+" ":t.styleClass+" "),n.body.columnBorderWidth&&(e+="hasBorder "),f==x-1&&(e+="isLastColumn "),e}.call(this,p)+'" ','style="height: '+m+'px;min-height: 1px;">'),s.push(function(t){var i=n.body.columnHeight-2*n.body.columnPadding-n.body.columnBorderWidth;return p.multiLine||(t=n.body.columnHeight-n.body.columnBorderWidth),'<span data-ax5grid-cellHolder="'+(p.multiLine?"multiLine":"")+'" '+(y?'data-ax5grid-text-align="'+y+'"':"")+'" style="height:'+t+"px;"+(p.multiLine?"":"line-height: "+i+"px;")+'">'}(m),c.call(this,a,p),"</span>"),s.push("</td>");s.push("<td ",'data-ax5grid-column-row="null" ','data-ax5grid-column-col="null" ','data-ax5grid-column-attr="sum" ','style="height: '+n.body.columnHeight+'px;min-height: 1px;" ',"></td>"),s.push("</tr>")}return s.push("</table>"),r.empty(),s=s.join(""),r.get(0).innerHTML=s,this.$.livePanelKeys.push(t),!0},H=function(t,e,o,a,l){for(var r=[],s=this.$.panel[t],d={},c=void 0,h=s.find("tr"),u=0,g=h.length;u<g;u++){var f=void 0,x=void 0;f=h[u].childNodes,x=[];for(var p=0,v=f.length;p<v;p++){var m={$:jQuery(f[p])};"null"!=m.$.attr("data-ax5grid-column-col")&&(m.dindex=m.$.attr("data-ax5grid-data-index"),m.tri=m.$.attr("data-ax5grid-column-row"),m.ci=m.$.attr("data-ax5grid-column-col"),m.rowIndex=m.$.attr("data-ax5grid-column-rowIndex"),m.colIndex=m.$.attr("data-ax5grid-column-colIndex"),m.rowspan=m.$.attr("rowspan"),m.text=m.$.text(),x.push(m)),m=null}r.push(x)}if(r.length>1){c=!1;for(var y=function(t,o){for(var a=[],l=function(o,l){!e[o].editor&&function(){return!i.isArray(n.body.mergeCells)||ax5.util.search(n.body.mergeCells,e[o].key)>-1}()&&(d[o]&&function(){if(a.length>0){var i=!0;return a.forEach(function(e){r[t-1][e].text!=r[t][e].text&&(i=!1)}),i}return!0}()&&d[o].text==r[t][o].text?(r[t][o].rowspan=0,r[d[o].ri][o].rowspan++,c=!0):d[o]={ri:t,ci:o,text:r[t][o].text},a.push(o))},s=0,h=r[t].length;s<h;s++)l(s,h)},b=0,w=r.length;b<w;b++)y(b,w);if(c)for(var I=0,_=r.length;I<_;I++)for(var C=0,R=r[I].length;C<R;C++)0==r[I][C].rowspan?r[I][C].$.remove():r[I][C].rowspan>1&&r[I][C].$.attr("rowspan",r[I][C].rowspan).addClass("merged")}},N={paintStartRowIndex:a,paintRowCount:$,paintStartColumnIndex:h,paintEndColumnIndex:u,nopaintLeftColumnsWidth:g,nopaintRightColumnsWidth:f,bodyTrHeight:this.xvar.bodyTrHeight,virtualScrollX:this.config.virtualScrollX,virtualScrollY:this.config.virtualScrollY},D=jQuery.extend({},N,{paintStartRowIndex:0,paintRowCount:this.xvar.frozenRowIndex});n.asidePanelWidth>0&&(this.xvar.frozenRowIndex>0&&k.call(this,"top-aside-body",this.asideColGroup,y,C,o.slice(0,this.xvar.frozenRowIndex),D),k.call(this,"aside-body-scroll",this.asideColGroup,y,C,o,N),n.footSum&&T.call(this,"bottom-aside-body",this.asideColGroup,y,null,this.list)),this.xvar.frozenColumnIndex>0&&(this.xvar.frozenRowIndex>0&&k.call(this,"top-left-body",this.leftHeaderColGroup,b,R,o.slice(0,this.xvar.frozenRowIndex),D),k.call(this,"left-body-scroll",this.leftHeaderColGroup,b,R,o,N),n.footSum&&this.needToPaintSum&&T.call(this,"bottom-left-body",this.leftHeaderColGroup,I,this.list)),this.xvar.frozenRowIndex>0&&k.call(this,"top-body-scroll",m,w,S,o.slice(0,this.xvar.frozenRowIndex),D),k.call(this,"body-scroll",m,w,S,o,N),n.footSum&&this.needToPaintSum&&T.call(this,"bottom-body-scroll",m,_,this.list,N),n.rightSum,n.body.mergeCells&&o.length&&(this.xvar.frozenColumnIndex>0&&(this.xvar.frozenRowIndex>0&&H.call(this,"top-left-body",this.leftHeaderColGroup,b,o.slice(0,this.xvar.frozenRowIndex)),H.call(this,"left-body-scroll",this.leftHeaderColGroup,b,o,N)),this.xvar.frozenRowIndex>0&&H.call(this,"top-body-scroll",this.headerColGroup,w,o.slice(0,this.xvar.frozenRowIndex)),H.call(this,"body-scroll",this.headerColGroup,w,o,N)),this.xvar.virtualPaintStartRowIndex=l,this.xvar.paintStartRowIndex=a,this.xvar.paintRowCount=$,this.xvar.virtualPaintRowCount=z,this.xvar.paintStartColumnIndex=h,this.xvar.paintEndColumnIndex=u,this.xvar.nopaintLeftColumnsWidth=g,this.xvar.nopaintRightColumnsWidth=f,this.xvar.dataRowCount=o.length,this.needToPaintSum=!1,t.page.statusUpdate.call(this)},u=function(e,n,o,a,l,r){var h=this,u=this.config,g=this.list,f=this.$.panel[e].find('[data-ax5grid-tr-data-index="'+n+'"]').find('[data-ax5grid-column-rowindex="'+a+'"][data-ax5grid-column-colindex="'+l+'"]').find("[data-ax5grid-cellholder]"),x=this.colGroup,p=x[l];f.html(s.call(this,g,g[n],n,p)),p.editor&&p.editor.updateWith&&p.editor.updateWith.forEach(function(i){x.forEach(function(e){if(