www-thermferm/jqwidgets/jqxgrid.grouping.js

changeset 511
2d1d43c3a2c2
parent 373
f6850e0b5d35
child 617
b216f9d4b917
equal deleted inserted replaced
510:2da3d3340403 511:2d1d43c3a2c2
1 /* 1 /*
2 jQWidgets v3.8.0 (2015-Apr) 2 jQWidgets v4.5.2 (2017-May)
3 Copyright (c) 2011-2015 jQWidgets. 3 Copyright (c) 2011-2017 jQWidgets.
4 License: http://jqwidgets.com/license/ 4 License: http://jqwidgets.com/license/
5 */ 5 */
6 !function(a){a.jqx.dataview.grouping=function(){this.loadgrouprecords=function(b,c,d,e,f,g,h,i,j){for(var k=b,l=this,m=new Array,n=0;n<l.groups.length;n++)m[n]=l.generatekey();var o=new Array,p=0,m=m,q=new Array,r=c,s=c,t=l.groups.length;this.loadedrecords=new Array,this.bounditems=new Array,this.loadedrecords=new Array,this.loadedrootgroups=new Array,this.loadedgroups=new Array,this.loadedgroupsByKey=new Array,this.sortedgroups=new Array;var u=null!=this.sortdata,v=u?this.sortdata:this.records;if(this.pageable){var w=new Array,x=0;v[c]||(a.each(v,function(a,b){w[c+a++]=this}),v=w)}if(this.virtualmode){for(var w=new Array,x=0,r=0;r<d-c;r++)v[r]?w[c+x++]=v[r]:v[c+x]&&(w[c+x]=v[c+x],x++);r=0,v=w}for(var y=c;y<d;y++){var z={};z=u?a.extend({},v[y].value):a.extend({},v[y]),id=z[l.uniqueId],(f>=i||id!=h[f][l.uniqueId]||g&&g[id])&&(j[j.length]=f);for(var A=new Array,B=0,n=0;n<t;n++){var C=l.groups[n],D=z[C];null==D&&(D=""),A[B++]={value:D,hash:m[n]}}if(A.length!=t)break;for(var E=null,F="",G=-1,H=0;H<A.length;H++){G++;var I=A[H].value,J=A[H].hash;if(F=F+"_"+J+"_"+I,void 0==q[F]||null==q[F]){if(null==E)E={group:I,subItems:new Array,subGroups:new Array,level:0},o[p++]=E,E.uniqueid=l.generatekey(),l.loadedgroupsByKey[I]=E;else{var K={group:I,subItems:new Array,subGroups:new Array,parentItem:E,level:E.level+1};l.loadedgroupsByKey[E.uniqueid+"_"+I]=K,K.uniqueid=l.generatekey(),E.subGroups[E.subGroups.length++]=K,E=K}q[F]=E}else E=q[F]}null!=E?(void 0==z.uid&&(z.uid=this.getid(this.source.id,z,r)),u?(z.boundindex=v[y].index,this.recordsbyid["id"+z.uid]=v[y].value):(z.boundindex=r,this.recordsbyid["id"+z.uid]=v[y]),this.bounditems[z.boundindex]=z,this.sortedgroups[r]=z,z.uniqueid=l.generatekey(),z.parentItem=E,z.level=E.level+1,E.subItems[E.subItems.length++]=z):(void 0==z.uid&&(z.uid=this.getid(this.source.id,z,r)),u?(z.boundindex=v[y].index,this.recordsbyid["id"+z.uid]=v[y].value):(z.boundindex=r,this.recordsbyid["id"+z.uid]=v[y]),this.sortedgroups[r]=z,this.bounditems[z.boundindex]=z,z.uniqueid=l.generatekey()),f++,r++,s++}var L=function(a,c,d){for(var e=0;e<c.subItems.length;e++)c.subItems[e].visibleindex=b+d,a.rows[d]=c.subItems[e],a.loadedrecords[d]=c.subItems[e],d++;return d},M=function(a,c,d){var e=1,f=a.grid.columns.records?a.grid.columns.records:a.grid.columns;if(1==a.aggregates)for(var g=0;g<f.length;g++)f[g].aggregates&&(e=Math.max(e,f[g].aggregates.length));var h=function(c){if(1==a.aggregates)for(var g=function(e){var g=c,h={},i=function(b){for(var c=0;c<f.length;c++)if(f[c].aggregates)for(var d=a.grid.getcolumnaggregateddata(f[c].datafield,f[c].aggregates,!0,b),g=0;g<f[c].aggregates.length;g++)if(f[c].aggregates[e]){var i=f[c],j=f[c].aggregates[e],k=j;k=a.grid._getaggregatename(k);var l=k+":"+d[j];h[i.datafield]=l}};if(null!=g)if(h.level=g.level,h.visibleindex=b+d,h.uniqueid=a.generatekey(),a.rows[d]=h,a.loadedrecords[d++]=h,h.totalsrow=!0,c.subItems.length>0){g=c.subItems[c.subItems.length-1],h.parentItem=g.parentItem,h.parentItem.subItems&&(h.parentItem.subItems[h.parentItem.subItems.length]=h);var j=[],k=function(){for(var a=0;a<c.subItems.length;a++)c.subItems[a].totalsrow||(j[j.length]=c.subItems[a])};k(c),i(j)}else if(c.subGroups.length>0){g=c.subGroups[c.subGroups.length-1],h.level=g.level,h.parentItem=c,c.subGroups[c.subGroups.length]=h;var j=[],k=function(a){if(!a.totalsrow){for(var b=0;b<a.subItems.length;b++)a.subItems[b].totalsrow||(j[j.length]=a.subItems[b]);for(var b=0;b<a.subGroups.length;b++)k(a.subGroups[b])}};k(c),i(j)}},h=0;h<e;h++)g(h)};for(subGroup in c.subGroups){var i=c.subGroups[subGroup];i.subGroups&&(a.loadedgroups[a.loadedgroups.length]=i,i.visibleindex=b+d,a.rows[d]=i,a.loadedrecords[d]=i,d++,i.subGroups.length>0?d=M(a,i,d):i.subItems.length>0&&(d=L(a,i,d)))}return c.subItems.length>0&&(d=L(a,c,d)),h(c),d},N=o.length;this.loadedgroups=new Array,this.rows=new Array;for(var k=0,r=0;r<N;r++){var C=o[r];this.loadedrootgroups[r]=C,this.loadedgroups[this.loadedgroups.length]=C,C.visibleindex=b+k,this.rows[k]=C,this.loadedrecords[k]=C,k++,k=M(this,C,k)}return k},this._updategroupsinpage=function(b,c,d,e,f,g,h){var i=new Array,j=[];if(this.groupable&&this.groups.length>0){for(var k=0,l=new Array,m=new Array,n=0;n<b.groups.length;n++)m[n]=b.generatekey();var o=0,p=new Array,q=0;h>this.totalrecords&&(h=this.totalrecords);for(var r=g;r<h;r++){var s=a.extend({},b.sortedgroups[r]);if(id=s[b.uniqueId],!b.pagesize||d>=b.pagesize*b.pagenum&&d<b.pagesize*(b.pagenum+1)){(e>=f||id!=i[e][b.uniqueId]||updated&&updated[id])&&(j[j.length]=e);for(var t=new Array,u=0,n=0;n<b.groups.length;n++){var v=b.groups[n],w=s[v];null==w&&(w=""),t[u++]={value:w,hash:m[n]}}if(t.length!=b.groups.length)break;for(var x=null,y="",z=-1,A=0;A<t.length;A++){z++;var B=t[A].value,C=t[A].hash;if(y=y+"_"+C+"_"+B,void 0==l[y]||null==l[y]){if(null==x){x={group:B,subItems:new Array,subGroups:new Array,level:0},p[q++]=x;var D=b.loadedgroupsByKey[B];void 0!=D&&(x.visibleindex=D.visibleindex,x.uniqueid=D.uniqueid)}else{var E={group:B,subItems:new Array,subGroups:new Array,parentItem:x,level:x.level+1},D=b.loadedgroupsByKey[x.uniqueid+"_"+B];E.visibleindex=D.visibleindex,E.uniqueid=D.uniqueid,x.subGroups[x.subGroups.length++]=E,x=E}l[y]=x}else x=l[y]}null!=x&&(s.parentItem=x,s.level=x.level+1,x.subItems[x.subItems.length++]=s),e++}o++,d++}for(var F=function(b,c,d){for(var e=0;e<c.subItems.length;e++)i[d]=a.extend({},c.subItems[e]),d++;return d},G=function(a){var b=!1;for(subGroup in a.subGroups){var c=a.subGroups[subGroup];if(c.subGroups){if(c.subGroups.length>0){var d=G(c);if(d)return b=!0,!0}if(c.subItems.length>0)return b=!0,!0}}return a.subItems.length>0?(b=!0,!0):b},H=function(a,b,c){var d=1,e=a.grid.columns.records?a.grid.columns.records:a.grid.columns;if(1==a.aggregates)for(var f=0;f<e.length;f++)e[f].aggregates&&(d=Math.max(d,e[f].aggregates.length));var g=function(b){if(1==a.aggregates)for(var f=function(d){var f=b,g={},h=function(b){for(var c=0;c<e.length;c++)if(e[c].aggregates)for(var f=a.grid.getcolumnaggregateddata(e[c].datafield,e[c].aggregates,!0,b),h=0;h<e[c].aggregates.length;h++)if(e[c].aggregates[d]){var i=e[c],j=e[c].aggregates[d],k=j;k=a.grid._getaggregatename(k);var l=k+":"+f[j];g[i.datafield]=l}};if(null!=f)if(g.level=f.level,g.visibleindex=c,g.uniqueid=a.generatekey(),i[c]=g,a.loadedrecords[c++]=g,g.totalsrow=!0,b.subItems.length>0){f=b.subItems[b.subItems.length-1],g.parentItem=f.parentItem,g.parentItem.subItems&&(g.parentItem.subItems[g.parentItem.subItems.length]=g);var j=[],k=function(){for(var a=0;a<b.subItems.length;a++)b.subItems[a].totalsrow||(j[j.length]=b.subItems[a])};k(b),h(j)}else if(b.subGroups.length>0){f=b.subGroups[b.subGroups.length-1],g.level=f.level,g.parentItem=b,b.subGroups[b.subGroups.length]=g;var j=[],k=function(a){if(!a.totalsrow){for(var b=0;b<a.subItems.length;b++)a.subItems[b].totalsrow||(j[j.length]=a.subItems[b]);for(var b=0;b<a.subGroups.length;b++)k(a.subGroups[b])}};k(b),h(j)}},g=0;g<d;g++)f(g)};for(subGroup in b.subGroups){var h=b.subGroups[subGroup];h.subGroups&&G(h)&&(i[c]=h,c++,h.subGroups.length>0?c=H(a,h,c):h.subItems.length>0&&(c=F(a,h,c)),g(h))}return b.subItems.length>0&&(c=F(a,b,c)),g(b),c},o=0;o<p.length;o++){var v=p[o];G(v)&&(i[k]=v,k++,k=H(this,v,k))}}return i}},a.extend(a.jqx._jqxGrid.prototype,{_initgroupsheader:function(){if(this.groupsheader.css("visibility","hidden"),this._groupsheader()){this.groupsheader.css("visibility","inherit");var b=this,c=this.gridlocalization.groupsheaderstring;this.groupsheaderdiv=this.groupsheaderdiv||a('<div style="width: 100%; position: relative;"></div>'),this.groupsheaderdiv.height(this.groupsheaderheight),this.groupsheaderdiv.css("top",0),this.groupsheader.append(this.groupsheaderdiv),this.groupheadersbounds=new Array;var d=this.groups.length;this.groupsheaderdiv.children().remove(),this.groupsheaderdiv[0].innerHTML="";var e=new Array;if(d>0)a.each(this.groups,function(c){var f=this,g=b._getColumnText(this),h=g.label,i=b._rendergroupcolumn(h,f);if(i.addClass(b.toThemeProperty("jqx-grid-group-column")),b.groupsheaderdiv.append(i),b.closeablegroups){var j=a(i.find(".jqx-icon-close"));b.isTouchDevice()&&b.touchmode!==!0?b.addHandler(j,"touchstart",function(){return b.removegroupat(c),!1}):b.addHandler(j,"click",function(){return b.removegroupat(c),!1})}if(b.sortable&&b.addHandler(i,"click",function(){var a=b.getcolumn(f);return null!=a&&b._togglesort(a),!1}),e[e.length]=i,b._handlegroupstocolumnsdragdrop(this,i),c<d-1){var k=i.height(),l=a('<div style="float: left; position: relative;"></div>');b.rtl&&l.css("float","right"),l.width(b.groupindentwidth/3),l.height(1),l.css("top",k/2),l.addClass(b.toThemeProperty("jqx-grid-group-column-line")),b.groupsheaderdiv.append(l)}});else{var f=a('<div style="position: relative;">'+c+"</div>");this.groupsheaderdiv.append(f),this.rtl&&f.addClass(this.toThemeProperty("jqx-rtl"))}this._groupheaders=e,this._updategroupheadersbounds()}},_updategroupheadersbounds:function(){var b=this,c=this.groupsheaderdiv.children().outerHeight(),d=(this.groupsheader.height()-c)/2;this.groupsheaderdiv.css("top",d),this.rtl?(this.groupsheaderdiv.css("left",""),this.groupsheaderdiv.css("right",d)):(this.groupsheaderdiv.css("left",d),this.groupsheaderdiv.css("right","")),this.rtl&&this._groupheaders.reverse(),a.each(this._groupheaders,function(a){var c=this.coord();b.groupheadersbounds[a]={left:c.left,top:c.top,width:this.outerWidth(),height:this.outerHeight(),index:a}})},addgroup:function(a){if(a){var b=this;b.groups!==b.dataview.groups&&(b.dataview.groups=b.groups),b.groups[b.groups.length]=a,b.refreshgroups(),this._raiseEvent(12,{type:"Add",index:b.groups[b.groups.length],groups:b.groups})}},insertgroup:function(a,b){if(void 0!=a&&null!=a&&a>=0&&a<=this.groups.length&&b){var c=this;c.groups!==c.dataview.groups&&(c.dataview.groups=c.groups),c.groups.splice(a,0,b.toString()),c.refreshgroups(),this._raiseEvent(12,{type:"Insert",index:a,groups:c.groups})}},refreshgroups:function(){this._refreshdataview(),this._render(!0,!0,!0,!1),this._postrender("group")},_insertaftergroup:function(a,b){var c=this._getGroupIndexByDataField(a);this.insertgroup(c+1,b)},_insertbeforegroup:function(a,b){var c=this._getGroupIndexByDataField(a);this.insertgroup(c,b)},removegroupat:function(a){if(a>=0&&null!=a&&void 0!=a){var b=this;return b.groups!==b.dataview.groups&&(b.dataview.groups=b.groups),b.groups.splice(a,1),b.refreshgroups(),b.virtualmode&&b.updatebounddata(),this._raiseEvent(12,{type:"Remove",index:a,groups:b.groups}),!0}return!1},cleargroups:function(){var a=this;return a.groups=[],a.dataview.groups=a.groups,a.refreshgroups(),this._raiseEvent(12,{type:"Clear",index:-1,groups:a.groups}),!0},removegroup:function(a){if(null==a)return!1;var b=this.groups.indexOf(a.toString());return this.removegroupat(b)},getrootgroupscount:function(){var a=this.dataview.loadedrootgroups.length;return a},collapsegroup:function(a){if(a>=0&&a.toString().indexOf(".")===-1)return this._setrootgroupstate(a,!1);var b=a.toString().split("."),c=null;this.groupsVisibility||(this.groupsVisibility=new Array);for(var d=0;d<b.length;d++){var a=parseInt(b[d]);if(0==d){var c=this.dataview.loadedrootgroups[a];this.groupsVisibility[c.group]=null}else{var e=c.subGroups[a];e&&(c=e,d==b.length-1&&(this._setgroupstate(c,!1,!0),this.groupsVisibility[c.group]=null))}}},expandgroup:function(a){if(a>=0&&a.toString().indexOf(".")===-1)return this._setrootgroupstate(a,!0);for(var b=a.toString().split("."),c=null,d=0;d<b.length;d++){var a=parseInt(b[d]);if(0==d){var c=this.dataview.loadedrootgroups[a];this._setrootgroupstate(a,!0),this.groupsVisibility||(this.groupsVisibility=new Array),this.groupsVisibility[c.group]=c}else{var e=c.subGroups[a];e&&(c=e,this._setgroupstate(c,!0,!0),this.groupsVisibility||(this.groupsVisibility=new Array),this.groupsVisibility[c.group]=c)}}},collapseallgroups:function(a){this._setbatchgroupstate(!1,a)},expandallgroups:function(a){this._setbatchgroupstate(!0,a)},isgroupexpanded:function(a){var b=this.dataview.loadedrootgroups[a];if(null==b)return null;var c=this.expandedgroups[b.uniqueid].expanded;return c},getgroup:function(b){var c=this.dataview.loadedrootgroups[b];if(null==c)return null;var d=this.expandedgroups[c.uniqueid].expanded,e=c.group,f=c.level,g=new Array;this._getsubgroups(g,c);var h=this,i={group:e,level:f,expanded:d,subgroups:g};if(c.subItems){var j=new Array;a.each(c.subItems,function(){var a=this.boundindex;j[j.length]=h.getrowdata(a)}),j.length>0&&(i.subrows=j)}return i},getrootgroups:function(){for(var a=this.dataview.loadedrootgroups.length,b=new Array,c=0;c<a;c++)b[c]=this.getgroup(c);return b},_getsubgroups:function(b,c){var d=this;for(obj in c.subGroups){var e=c.subGroups[obj],f=d.expandedgroups[e.uniqueid].expanded,g=e.group,h=e.level;if(b[b.length]={group:g,level:h,expanded:f},e.subItems){var i=new Array;a.each(e.subItems,function(){var a=this.boundindex;i[i.length]=d.getrowdata(a)}),b[b.length-1].subrows=i}if(e.subGroups){var j=new Array;d._getsubgroups(j,e)}}return b},_setbatchgroupstate:function(a,b){var c=this;for(obj in this.dataview.loadedrootgroups)c._setrootgroupstate(obj,a,!1,!0);if(0==b)return c._requiresupdate=!0,c._renderrows(c.virtualsizeinfo),!0;var d=this.vScrollBar[0].style.visibility;return this.rendergridcontent(!0,!1),(d!=this.vScrollBar[0].style.visibility||this._hiddencolumns)&&(this._updatecolumnwidths(),this._updatecellwidths(),this._renderrows(this.virtualsizeinfo)),!0},_setrootgroupstate:function(a,b,c,d){if(void 0==a||null==a||a<0)return!1;if(!this.groupable||0==this.groups.length)return!1;var e=void 0==c||c;if(a>=0&&a<this.dataview.loadedrootgroups.length){var f=this.dataview.loadedrootgroups[a];if(this.pageable){for(var g=new Array,h=0;h<this.dataview.rows.length;h++)null!=this.dataview.rows[h].group&&0===this.dataview.rows[h].level&&g.push(this.dataview.rows[h]);if(f=g[a],!f)return}return this._setgroupstate(f,b,e,d)}return!1},_togglegroupstate:function(a,b){if(null==a||void 0==a)return!1;var c=this.vScrollInstance.value,d=this.expandedgroups[a.uniqueid];d=void 0!=d&&d.expanded,d=!d,this.groupsVisibility||(this.groupsVisibility=new Array),d?this.groupsVisibility[a.group]=a:this.groupsVisibility[a.group]=null;var e=this._setgroupstate(a,d,b);return this._newmax=null,0!==c&&"hidden"!==this.vScrollBar.css("visibility")&&(c<=this.vScrollInstance.max?this.vScrollInstance.setPosition(c):this.vScrollInstance.setPosition(this.vScrollInstance.max)),e},_setgroupstate:function(a,b,c,d){if(null==a||void 0==a)return!1;var e=!1;this.editable&&this.editcell&&this.endcelledit(this.editcell.row,this.editcell.column,!1,!1);var f=this.expandedgroups[a.uniqueid];if(void 0==f&&(f={expanded:!1},e=!0),f.expanded!=b&&(e=!0),e){if(this.expandedgroups[a.uniqueid]={expanded:b,group:a},this._setsubgroupsvisibility(this,a,!b,d),c){var g=this.vScrollBar[0].style.visibility;this.rendergridcontent(!0,!1),(g!=this.vScrollBar[0].style.visibility||this._hiddencolumns)&&(this._updatecolumnwidths(),this._updatecellwidths(),this._renderrows(this.virtualsizeinfo))}return void 0!=this.suspendgroupevents&&0!=this.suspendgroupevents||(b?this._raiseEvent(4,{group:a.group,parentgroup:a.parentItem?a.parentItem.group:null,level:a.level,visibleindex:a.visibleindex}):this._raiseEvent(5,{group:a.group,parentgroup:a.parentItem?a.parentItem.group:null,level:a.level,visibleindex:a.visibleindex})),!0}return!1},_setgroupitemsvisibility:function(a,b,c){for(var d=0;d<b.subItems.length;d++)a._setrowvisibility(b.subItems[d].visibleindex,c,!1)},_setsubgroupsvisibility:function(a,b,c,d){if(null!=b.parentItem){if(this.hiddens[b.parentItem.visibleindex])return}else if(null==b.parentItem&&this.hiddens[b.visibleindex])return;for(subGroup in b.subGroups){var e=b.subGroups[subGroup];c||a._setrowvisibility(e.visibleindex,c,!1);var f=!c;d?this.expandedgroups[e.uniqueid]={expanded:f,group:e}:f=void 0!=a.expandedgroups[e.uniqueid]&&a.expandedgroups[e.uniqueid].expanded,e.subGroups&&(e.subGroups.length>0?a._setsubgroupsvisibility(a,e,!f||c,d):e.subItems.length>0&&a._setgroupitemsvisibility(a,e,!f||c)),c&&a._setrowvisibility(e.visibleindex,c,!1)}b.subItems&&b.subItems.length>0&&a._setgroupitemsvisibility(a,b,c)},_handlecolumnsdragdrop:function(){var b=this,c=-1,d=!1;if(b.groupable){var e="mousemove.grouping"+this.element.id,f="mousedown.grouping"+this.element.id,g="mouseup.grouping"+this.element.id,h=!1;this.isTouchDevice()&&this.touchmode!==!0&&(h=!0,e=a.jqx.mobile.getTouchEventName("touchmove")+".grouping"+this.element.id,f=a.jqx.mobile.getTouchEventName("touchstart")+".grouping"+this.element.id,g=a.jqx.mobile.getTouchEventName("touchend")+".grouping"+this.element.id),this.removeHandler(a(document),e),this.addHandler(a(document),e,function(e){if(!b.showgroupsheader)return!0;if(null!=b.dragcolumn){var f=parseInt(e.pageX),g=parseInt(e.pageY);if(h){var i=b.getTouches(e),j=i[0];f=parseInt(j.pageX),g=parseInt(j.pageY)}var k=b.host.coord(),l=parseInt(k.left),m=parseInt(k.top);void 0!=b.dragmousedownoffset&&null!=b.dragmousedownoffset||(b.dragmousedownoffset={left:0,top:0});var n=parseInt(f)-parseInt(b.dragmousedownoffset.left),o=parseInt(g)-parseInt(b.dragmousedownoffset.top);if(b.dragcolumn.css({left:n+"px",top:o+"px"}),d=!1,f>=l&&f<=l+b.host.width()&&g>=m&&g<=m+b.host.height()&&(d=!0),c=-1,d){b.dragcolumnicon.removeClass(b.toThemeProperty("jqx-grid-dragcancel-icon")),b.dragcolumnicon.addClass(b.toThemeProperty("jqx-grid-drag-icon"));var p=b.groupsheader.coord(),q=p.top+b.groupsheader.height(),r=a.data(b.dragcolumn[0],"datarecord");if(r)var s=b.groups.indexOf(r.toString());else var s=-1;var t=s==-1||b.groups.length>1&&s>-1;null!=b.dropline&&(g>=p.top&&g<=q?t&&(c=b._handlegroupdroplines(f)):b.dropline.fadeOut("slow"))}else null!=b.dropline&&b.dropline.fadeOut("slow"),b.dragcolumnicon.removeClass(b.toThemeProperty("jqx-grid-drag-icon")),b.dragcolumnicon.addClass(b.toThemeProperty("jqx-grid-dragcancel-icon"));if(h)return e.preventDefault(),e.stopPropagation(),!1}}),this.removeHandler(a(document),g),this.addHandler(a(document),g,function(e){if(!b.showgroupsheader)return!0;b.__drag=!1,a(document.body).removeClass("jqx-disableselect");var f=parseInt(e.pageX),g=parseInt(e.pageY);if(h){var i=b.getTouches(e),j=i[0];f=parseInt(j.pageX),g=parseInt(j.pageY)}var k=b.host.coord(),l=(parseInt(k.left),parseInt(k.top)),m=b.groupsheader.height();if(b.showtoolbar&&(l+=b.toolbarheight),b.dragstarted=!1,b.dragmousedown=null,null!=b.dragcolumn){var n=a.data(b.dragcolumn[0],"datarecord");if(b.dragcolumn.remove(),b.dragcolumn=null,null!=n){if(!b.getcolumn(n).groupable)return void(null!=b.dropline&&(b.dropline.remove(),b.dropline=null));if(d)if(c!=-1){var o=c.index,p=b.groups[o],q=b._getGroupIndexByDataField(n);q!=o&&(void 0!=q&&q>=0&&b.groups.splice(q,1),"before"==c.position?b.rtl?b._insertaftergroup(p,n):b._insertbeforegroup(p,n):b.rtl?b._insertbeforegroup(p,n):b._insertaftergroup(p,n))}else if(0==b.groups.length)g>l&&g<=l+m&&b.addgroup(n);else if(g>l+m){var q=b._getGroupIndexByDataField(n);b.removegroupat(q)}null!=b.dropline&&(b.dropline.remove(),b.dropline=null)}}})}},_getGroupIndexByDataField:function(a){for(var b=0;b<this.groups.length;b++)if(this.groups[b]==a)return b;return-1},_isColumnInGroups:function(a){for(var b=0;b<this.groups.length;b++)if(this.groups[b]==a)return!0;return!1},_handlegroupdroplines:function(b){var c=this,d=-1;return a.each(c.groupheadersbounds,function(a){if(b<=this.left+this.width/2){var e=this.left-3;return a>0&&(e=this.left-1-c.groupindentwidth/6),c.dropline.css("left",e),c.dropline.css("top",this.top),c.dropline.height(this.height),c.dropline.fadeIn("slow"),d={index:a,position:"before"},c.rtl&&(d={index:c.groupheadersbounds.length-1-a,position:"before"}),!1}b>=this.left+this.width/2&&(c.dropline.css("left",1+this.left+this.width),c.dropline.css("top",this.top),c.dropline.height(this.height),c.dropline.fadeIn("slow"),d={index:a,position:"after"},c.rtl&&(d={index:c.groupheadersbounds.length-1-a,position:"after"}))}),d},_handlegroupstocolumnsdragdrop:function(b,c){this.dragmousedown=null,this.dragmousedownoffset=null,this.dragstarted=!1,this.dragcolumn=null;var d,e=this,f="mousedown",g="mousemove",h=!1;this.isTouchDevice()&&this.touchmode!==!0&&(h=!0,f=a.jqx.mobile.getTouchEventName("touchstart"),g=a.jqx.mobile.getTouchEventName("touchmove")),this.addHandler(c,"dragstart",function(a){return!1}),this.addHandler(c,f,function(b){if(!e.showgroupsheader)return!0;var c=b.pageX,d=b.pageY;if(e.__drag=!0,e.dragmousedown={left:c,top:d},h){var f=e.getTouches(b),g=f[0];c=g.pageX,d=g.pageY,e.dragmousedown={left:c,top:d},b.preventDefault&&b.preventDefault()}var i=a(b.target).coord();e.dragmousedownoffset={left:parseInt(c)-parseInt(i.left),top:parseInt(d-i.top)}}),this.addHandler(c,g,function(f){if(!e.showgroupsheader)return!0;if(e.dragmousedown){if(d={left:f.pageX,top:f.pageY},h){var g=e.getTouches(f),i=g[0];d={left:i.pageX,top:i.pageY}}if(!e.dragstarted&&null==e.dragcolumn){var j=Math.abs(d.left-e.dragmousedown.left),k=Math.abs(d.top-e.dragmousedown.top);(j>3||k>3)&&(e._createdragcolumn(c,d,!0),a(document.body).addClass("jqx-disableselect"),a.data(e.dragcolumn[0],"datarecord",b),f.preventDefault&&f.preventDefault())}}})},_createdragcolumn:function(b,c,d){var e=this,f=c;e.dragcolumn=a("<div></div>");var g=b.clone();e.dragcolumn.css("z-index",999999),g.css("border-width","1px"),g.css("opacity","0.4");var h=a(g.find("."+e.toThemeProperty("jqx-grid-column-menubutton")));h.length>0&&h.css("display","none");var i=a(g.find(".jqx-icon-close"));i.length>0&&i.css("display","none"),e.dragcolumnicon=a('<div style="z-index: 9999; position: absolute; left: 100%; top: 50%; margin-left: -18px; margin-top: -7px;"></div>'),e.dragcolumnicon.addClass(e.toThemeProperty("jqx-grid-drag-icon")),e.dragcolumn.css("float","left"),e.dragcolumn.css("position","absolute");e.host.coord();g.width(b.width()+16),e.dragcolumn.append(g),e.dragcolumn.height(b.height()),e.dragcolumn.width(g.width()),e.dragcolumn.append(e.dragcolumnicon),a(document.body).append(e.dragcolumn),g.css("margin-left",0),g.css("left",0),g.css("top",0),e.dragcolumn.css("left",f.left+e.dragmousedown.left),e.dragcolumn.css("top",f.top+e.dragmousedown.top),void 0!=d&&d&&(e.dropline=a('<div style="display: none; position: absolute;"></div>'),e.dropline.width(2),e.dropline.addClass(e.toThemeProperty("jqx-grid-group-drag-line")),a(document.body).append(e.dropline))},iscolumngroupable:function(a){return this._getcolumnproperty(a,"groupable")},_handlecolumnstogroupsdragdrop:function(b,c){this.dragmousedown=null,this.dragmousedownoffset=null,this.dragstarted=!1,this.dragcolumn=null;var d,e=this,f=!1;this.isTouchDevice()&&this.touchmode!==!0&&(f=!0);var g="mousedown.drag",d="mousemove.drag";f?(g=a.jqx.mobile.getTouchEventName("touchstart")+".drag",d=a.jqx.mobile.getTouchEventName("touchmove")+".drag"):this.addHandler(c,"dragstart",function(a){return!1}),this.addHandler(c,g,function(d){if(!e.showgroupsheader)return!0;if(e.__drag=!0,e._isColumnInGroups(b.displayfield))return"col-resize"!=c.css("cursor"),!0;if(0==b.groupable)return!0;var g=d.pageX,h=d.pageY;if(f){var i=e.getTouches(d),j=i[0];g=j.pageX,h=j.pageY}e.dragmousedown={left:g,top:h},f&&d.preventDefault&&d.preventDefault();var k=a(d.target).coord();e.dragmousedownoffset={left:parseInt(g)-parseInt(k.left),top:parseInt(h-k.top)}}),this.addHandler(c,d,function(g){if(!e.showgroupsheader)return!0;if(e._isColumnInGroups(b.displayfield))return"col-resize"!=c.css("cursor"),!0;if(e.dragmousedown){var h=g.pageX,i=g.pageY;if(f){var j=e.getTouches(g),k=j[0];h=k.pageX,i=k.pageY}if(d={left:h,top:i},!e.dragstarted&&null==e.dragcolumn){var l=Math.abs(d.left-e.dragmousedown.left),m=Math.abs(d.top-e.dragmousedown.top);(l>3||m>3)&&(e._createdragcolumn(c,d,!0),a.data(e.dragcolumn[0],"datarecord",b.displayfield),g.preventDefault&&g.preventDefault())}}})},_rendergroupcolumn:function(b,c){var d=a('<div style="float: left; position: relative;"></div>');if(this.rtl&&d.css("float","right"),null!=this.groupcolumnrenderer&&(d[0].innerHTML=this.groupcolumnrenderer(b),d.addClass(this.toThemeProperty("jqx-grid-group-column")),d.addClass(this.toThemeProperty("jqx-fill-state-normal"))),this.closeablegroups){""==d[0].innerHTML&&(d[0].innerHTML='<a style="float: left;" href="#">'+b+"</a>"),this.rtl&&(d[0].innerHTML='<a style="float: right;" href="#">'+b+"</a>");var e=this.rtl?"left":"right",f='<div style="float: '+e+'; min-height: 16px; min-width: 18px;"><div style="position: absolute; left: 100%; top: 50%; margin-left: -18px; margin-top: -8px; float: none; width: 16px; height: 16px;" class="'+this.toThemeProperty("jqx-icon-close")+'"></div></div>';if(a.jqx.browser.msie&&a.jqx.browser.version<8&&(f='<div style="float: left; min-height: 16px; min-width: 18px;"><div style="position: absolute; left: 100%; top: 50%; margin-left: -18px; margin-top: -8px; float: none; width: 16px; height: 16px;" class="'+this.toThemeProperty("jqx-icon-close")+'"></div></div>'),this.rtl){var f='<div style="float: '+e+'; min-height: 16px; min-width: 18px;"><div style="position: absolute; left: 0px; top: 50%; margin-top: -8px; float: none; width: 16px; height: 16px;" class="'+this.toThemeProperty("jqx-icon-close")+'"></div></div>';a.jqx.browser.msie&&a.jqx.browser.version<8&&(f='<div style="float: left; min-height: 16px; min-width: 18px;"><div style="position: absolute; left: 0px; top: 50%; margin-top: -8px; float: none; width: 16px; height: 16px;" class="'+this.toThemeProperty("jqx-icon-close")+'"></div></div>')}d[0].innerHTML+=f}else""==d[0].innerHTML&&(d[0].innerHTML='<a href="#">'+b+"</a>");if(this.sortable){var g=a('<div style="float: right; min-height: 16px; min-width: 18px;"><div style="position: absolute; left: 100%; top: 50%; margin-left: -16px; margin-top: -8px; float: none; width: 16px; height: 16px;" class="'+this.toThemeProperty("jqx-grid-column-sortascbutton")+'"></div></div>'),h=a('<div style="float: right; min-height: 16px; min-width: 18px;"><div style="position: absolute; left: 100%; top: 50%; margin-left: -16px; margin-top: -8px; float: none; width: 16px; height: 16px;" class="'+this.toThemeProperty("jqx-grid-column-sortdescbutton")+'"></div></div>');if(this.closeablegroups)var g=a('<div style="float: right; min-height: 16px; min-width: 18px;"><div style="position: absolute; left: 100%; top: 50%; margin-left: -32px; margin-top: -8px; float: none; width: 16px; height: 16px;" class="'+this.toThemeProperty("jqx-grid-column-sortascbutton")+'"></div></div>'),h=a('<div style="float: right; min-height: 16px; min-width: 18px;"><div style="position: absolute; left: 100%; top: 50%; margin-left: -32px; margin-top: -8px; float: none; width: 16px; height: 16px;" class="'+this.toThemeProperty("jqx-grid-column-sortdescbutton")+'"></div></div>');if(this.rtl){var g=a('<div style="float: right; min-height: 16px; min-width: 18px;"><div style="position: absolute; left: 0px; top: 50%; margin-left: 0px; margin-top: -8px; float: none; width: 16px; height: 16px;" class="'+this.toThemeProperty("jqx-grid-column-sortascbutton")+'"></div></div>'),h=a('<div style="float: right; min-height: 16px; min-width: 18px;"><div style="position: absolute; left: 0px; top: 50%; margin-left: 0px; margin-top: -8px; float: none; width: 16px; height: 16px;" class="'+this.toThemeProperty("jqx-grid-column-sortdescbutton")+'"></div></div>');if(this.closeablegroups)var g=a('<div style="float: right; min-height: 16px; min-width: 18px;"><div style="position: absolute; left: 0px; top: 50%; margin-left: 16px; margin-top: -8px; float: none; width: 16px; height: 16px;" class="'+this.toThemeProperty("jqx-grid-column-sortascbutton")+'"></div></div>'),h=a('<div style="float: right; min-height: 16px; min-width: 18px;"><div style="position: absolute; left: 0px; top: 50%; margin-left: 16px; margin-top: -8px; float: none; width: 16px; height: 16px;" class="'+this.toThemeProperty("jqx-grid-column-sortdescbutton")+'"></div></div>')}g.css("display","none"),h.css("display","none"),a.jqx.browser.msie&&a.jqx.browser.version<8&&(g.css("float","left"),h.css("float","left")),d.append(g),d.append(h),a.data(document.body,"groupsortelements"+c,{sortasc:g,sortdesc:h})}return d.addClass(this.toThemeProperty("jqx-fill-state-normal")),d.addClass(this.toThemeProperty("jqx-grid-group-column")),d},_rendergroup:function(b,c,d,e,f,g,h){var i=c,j=c.cells[d.level];this.rtl&&(j=c.cells[c.cells.length-1-d.level]);var k=this._findgroupstate(d.uniqueid);if(d.bounddata.subGroups.length>0||d.bounddata.subItems.length>0){var l=this.rtl?"-rtl":"",m=this.toThemeProperty("jqx-icon-arrow-right");l&&(m=this.toThemeProperty("jqx-icon-arrow-left")),k?j.className+=" "+this.toThemeProperty("jqx-grid-group-expand"+l)+" "+this.toThemeProperty("jqx-icon-arrow-down"):j.className+=" "+this.toThemeProperty("jqx-grid-group-collapse"+l)+" "+m}var n=this._getColumnText(this.groups[d.level]).label,o=this.groupindentwidth,p=this.rowdetails&&this.showrowdetailscolumn?(1+b)*o:b*o,q=h-p,r=d.level+1;this.rtl&&(r=0);for(var s=i.cells[r],t=2;void 0!=s&&"none"==s.style.display&&t<i.cells.length-1;)s=i.cells[r+t-1],t++;var u=a(s);if(s){if(s.style.width=parseInt(q)+"px",s.className.indexOf("jqx-grid-cell-filter")!=-1&&u.removeClass(this.toThemeProperty("jqx-grid-cell-filter")),s.className.indexOf("jqx-grid-cell-sort")!=-1&&u.removeClass(this.toThemeProperty("jqx-grid-cell-sort")),s.className.indexOf("jqx-grid-cell-pinned")!=-1&&u.removeClass(this.toThemeProperty("jqx-grid-cell-pinned")),null!=this.groupsrenderer){var v={group:d.group,level:d.level,parent:d.bounddata.parentItem,subGroups:d.bounddata.subGroups,subItems:d.bounddata.subItems,groupcolumn:this._getColumnText(this.groups[d.level]).column},w=this.groupsrenderer(n+": "+d.group,d.group,k,v);if(w)s.innerHTML=w;else{var x=d.bounddata.subItems.length>0?d.bounddata.subItems.length:d.bounddata.subGroups.length;if(this.showgroupaggregates){var y=d.bounddata.subItems.length>0?d.bounddata.subItems:d.bounddata.subGroups;x=0;for(var z=0;z<y.length;z++)y[z].totalsrow||x++}s.innerHTML='<div class="'+this.toThemeProperty("jqx-grid-groups-row")+'" style="position: absolute;"><span>'+n+': </span><span class="'+this.toThemeProperty("jqx-grid-groups-row-details")+'">'+d.group+" ("+x+")</span></div>"}}else{var A=this._getcolumnbydatafield(this.groups[d.level]),B=d.group;if(null==A)throw new Error("jqxGrid: Unable to find '"+this.groups[d.level]+"' group in the Grid's columns collection.");A.cellsformat&&a.jqx.dataFormat&&(a.jqx.dataFormat.isDate(B)?B=a.jqx.dataFormat.formatdate(B,A.cellsformat,this.gridlocalization):a.jqx.dataFormat.isNumber(B)&&(B=a.jqx.dataFormat.formatnumber(B,A.cellsformat,this.gridlocalization)));var x=d.bounddata.subItems.length>0?d.bounddata.subItems.length:d.bounddata.subGroups.length;if(this.showgroupaggregates){var y=d.bounddata.subItems.length>0?d.bounddata.subItems:d.bounddata.subGroups;x=0;for(var z=0;z<y.length;z++)y[z].totalsrow||x++}s.innerHTML='<div class="'+this.toThemeProperty("jqx-grid-groups-row")+'" style="position: absolute;"><span>'+n+': </span><span class="'+this.toThemeProperty("jqx-grid-groups-row-details")+'">'+B+" ("+x+")</span></div>"}if(this.rtl){A||(A=this._getcolumnbydatafield(this.groups[d.level]));var C="hidden"==this.hScrollBar.css("visibility")?0:this.hScrollInstance.max-this.hScrollInstance.value,D="hidden"==this.vScrollBar.css("visibility")?0:this.scrollbarsize+6,p=this.rowdetails&&this.showrowdetailscolumn?(2+d.level)*o:(1+d.level)*o;s.style.width=h+parseInt(C)-p-D+"px",u.addClass(this.toThemeProperty("jqx-rtl"));var E=a(c.cells[c.cells.length-1]).css("z-index");u.css("z-index",E);var F=u.find("div"),q=F.width();F.css("left","100%");var G=null!=this.columns.records[c.cells.length-2-d.level]&&this.columns.records[c.cells.length-2-d.level].pinned;if(this.table.width()<h&&(h=this.table.width(),"hidden"!=this.vScrollBar.css("visibility")&&(h+=this.vScrollBar.outerWidth())),A.pinned||G)this.rowdetails&&this.showrowdetailscolumn&&(h+=30),F.css("margin-left",-q),s.style.width=h+C-p-D+"px";else{var C="hidden"==this.hScrollBar.css("visibility")?0:this.hScrollInstance.max;
7 s.style.width=h+C-p-D+"px";var q=F.width();F.css("margin-left",-q)}}}}})}(jqxBaseFramework);
6 8
7 (function(a){a.jqx.dataview.grouping=function(){this.loadgrouprecords=function(E,H,s,F,I,f,R,G,x){var M=E;var j=this;var Q=new Array();for(var n=0;n<j.groups.length;n++){Q[n]=j.generatekey()}var K=new Array();var b=0;var Q=Q;var B=new Array();var P=H;var e=H;var C=j.groups.length;this.loadedrecords=new Array();this.bounditems=new Array();this.loadedrecords=new Array();this.loadedrootgroups=new Array();this.loadedgroups=new Array();this.loadedgroupsByKey=new Array();this.sortedgroups=new Array();var O=this.sortdata!=null;var S=O?this.sortdata:this.records;if(this.pageable){var A=Object.prototype.toString;var l=this.groups[0];Object.prototype.toString=(typeof l=="function")?l:function(){return this[l]};if(O){var c=this.sortfield;Object.prototype.toString=(typeof l=="function")?l:function(){return this[l]+" "+this[c]}}var u=new Array();var D=0;if(!S[H]){a.each(S,function(i,q){u[H+i++]=this});S=u}if(!O){if(S.sort){S.sort(function(q,i){if(q===undefined){q=null}if(i===undefined){i=null}if(q===null&&i===null){return 0}if(q===null&&i!==null){return 1}if(q!==null&&i===null){return -1}q=q.toString();i=i.toString();if(a.jqx.dataFormat.isNumber(q)&&a.jqx.dataFormat.isNumber(i)){if(q<i){return -1}if(q>i){return 1}return 0}else{if(a.jqx.dataFormat.isDate(q)&&a.jqx.dataFormat.isDate(i)){if(q<i){return -1}if(q>i){return 1}return 0}else{if(!a.jqx.dataFormat.isNumber(q)&&!a.jqx.dataFormat.isNumber(i)){q=String(q).toLowerCase();i=String(i).toLowerCase()}}}try{if(q<i){return -1}if(q>i){return 1}}catch(T){var U=T}return 0})}}else{S.sort(function(q,i){var q=q.value;var i=i.value;if(q===undefined){q=null}if(i===undefined){i=null}if(q===null&&i===null){return 0}if(q===null&&i!==null){return 1}if(q!==null&&i===null){return -1}if(a.jqx.dataFormat.isNumber(q)&&a.jqx.dataFormat.isNumber(i)){if(q<i){return -1}if(q>i){return 1}return 0}else{if(a.jqx.dataFormat.isDate(q)&&a.jqx.dataFormat.isDate(i)){if(q<i){return -1}if(q>i){return 1}return 0}else{if(!a.jqx.dataFormat.isNumber(q)&&!a.jqx.dataFormat.isNumber(i)){q=String(q).toLowerCase();i=String(i).toLowerCase()}}}try{if(q<i){return -1}if(q>i){return 1}}catch(T){var U=T}return 0})}Object.prototype.toString=A}if(this.virtualmode){var u=new Array();var D=0;for(var P=0;P<s-H;P++){if(S[P]){u[H+D++]=S[P]}else{if(S[H+D]){u[H+D]=S[H+D];D++}}}P=0;S=u}for(var d=H;d<s;d++){var y={};if(!O){y=a.extend({},S[d])}else{y=a.extend({},S[d].value)}id=y[j.uniqueId];if(I>=G||id!=R[I][j.uniqueId]||(f&&f[id])){x[x.length]=I}var L=new Array();var w=0;for(var n=0;n<C;n++){var t=j.groups[n];var J=y[t];if(J==null){J=""}L[w++]={value:J,hash:Q[n]}}if(L.length!=C){break}var k=null;var m="";var g=-1;for(var N=0;N<L.length;N++){g++;var p=L[N].value;var v=L[N].hash;m=m+"_"+v+"_"+p;if(B[m]!=undefined&&B[m]!=null){k=B[m];continue}if(k==null){k={group:p,subItems:new Array(),subGroups:new Array(),level:0};K[b++]=k;k.uniqueid=j.generatekey();j.loadedgroupsByKey[p]=k}else{var o={group:p,subItems:new Array(),subGroups:new Array(),parentItem:k,level:k.level+1};j.loadedgroupsByKey[k.uniqueid+"_"+p]=o;o.uniqueid=j.generatekey();k.subGroups[k.subGroups.length++]=o;k=o}B[m]=k}if(k!=null){if(undefined==y.uid){y.uid=this.getid(this.source.id,y,P)}if(!O){y.boundindex=P;this.recordsbyid["id"+y.uid]=S[d]}else{y.boundindex=S[d].index;this.recordsbyid["id"+y.uid]=S[d].value}this.bounditems[y.boundindex]=y;this.sortedgroups[P]=y;y.uniqueid=j.generatekey();y.parentItem=k;y.level=k.level+1;k.subItems[k.subItems.length++]=y}else{if(undefined==y.uid){y.uid=this.getid(this.source.id,y,P)}if(!O){y.boundindex=P;this.recordsbyid["id"+y.uid]=S[d]}else{y.boundindex=S[d].index;this.recordsbyid["id"+y.uid]=S[d].value}this.sortedgroups[P]=y;this.bounditems[y.boundindex]=y;y.uniqueid=j.generatekey()}I++;P++;e++}var h=function(q,T,U){for(var i=0;i<T.subItems.length;i++){T.subItems[i].visibleindex=E+U;q.rows[U]=T.subItems[i];q.loadedrecords[U]=T.subItems[i];U++}return U};var r=function(i,U,V){var q=function(Y){if(i.aggregates==true){var W=Y;var X={};if(W!=null){X.level=W.level;X.visibleindex=E+V;X.uniqueid=i.generatekey();i.rows[V]=X;i.loadedrecords[V++]=X;X.totalsrow=true;if(Y.subItems.length>0){W=Y.subItems[Y.subItems.length-1];X.parentItem=W.parentItem;if(X.parentItem.subItems){X.parentItem.subItems[X.parentItem.subItems.length]=X}}else{if(Y.subGroups.length>0){W=Y.subGroups[Y.subGroups.length-1];X.level=W.level;X.parentItem=Y;Y.subGroups[Y.subGroups.length]=X}}}}};for(subGroup in U.subGroups){var T=U.subGroups[subGroup];if(T.subGroups){i.loadedgroups[i.loadedgroups.length]=T;T.visibleindex=E+V;i.rows[V]=T;i.loadedrecords[V]=T;V++;if(T.subGroups.length>0){V=r(i,T,V)}else{if(T.subItems.length>0){V=h(i,T,V)}}q(T)}}if(U.subItems.length>0){V=h(i,U,V)}q(U);return V};var z=K.length;this.loadedgroups=new Array();this.rows=new Array();var M=0;for(var P=0;P<z;P++){var t=K[P];this.loadedrootgroups[P]=t;this.loadedgroups[this.loadedgroups.length]=t;t.visibleindex=E+M;this.rows[M]=t;this.loadedrecords[M]=t;M++;M=r(this,t,M)}return M};this._updategroupsinpage=function(C,r,K,d,u,j,f){var p=new Array();var w=[];if(this.groupable&&this.groups.length>0){var B=0;var h=new Array();var g=new Array();for(var m=0;m<C.groups.length;m++){g[m]=C.generatekey()}var F=0;var o=new Array();var k=0;if(f>this.totalrecords){f=this.totalrecords}for(var v=j;v<f;v++){var H=a.extend({},C.sortedgroups[v]);id=H[C.uniqueId];if(!C.pagesize||(K>=C.pagesize*C.pagenum&&K<C.pagesize*(C.pagenum+1))){if(d>=u||id!=p[d][C.uniqueId]||(updated&&updated[id])){w[w.length]=d}var e=new Array();var y=0;for(var m=0;m<C.groups.length;m++){var n=C.groups[m];var D=H[n];if(null==D){D=""}e[y++]={value:D,hash:g[m]}}if(e.length!=C.groups.length){break}var z=null;var s="";var c=-1;for(var A=0;A<e.length;A++){c++;var G=e[A].value;var l=e[A].hash;s=s+"_"+l+"_"+G;if(h[s]!=undefined&&h[s]!=null){z=h[s];continue}if(z==null){z={group:G,subItems:new Array(),subGroups:new Array(),level:0};o[k++]=z;var E=C.loadedgroupsByKey[G];if(E!=undefined){z.visibleindex=E.visibleindex;z.uniqueid=E.uniqueid}}else{var t={group:G,subItems:new Array(),subGroups:new Array(),parentItem:z,level:z.level+1};var E=C.loadedgroupsByKey[z.uniqueid+"_"+G];t.visibleindex=E.visibleindex;t.uniqueid=E.uniqueid;z.subGroups[z.subGroups.length++]=t;z=t}h[s]=z}if(z!=null){H.parentItem=z;H.level=z.level+1;z.subItems[z.subItems.length++]=H}d++}F++;K++}var x=function(L,M,q){for(var i=0;i<M.subItems.length;i++){p[q]=a.extend({},M.subItems[i]);q++}return q};var I=function(M){var q=false;for(subGroup in M.subGroups){var L=M.subGroups[subGroup];if(L.subGroups){if(L.subGroups.length>0){var i=I(L);if(i){q=true;return true}}if(L.subItems.length>0){q=true;return true}}}if(M.subItems.length>0){q=true;return true}return q};var b=function(q,M,i){for(subGroup in M.subGroups){var L=M.subGroups[subGroup];if(L.subGroups){if(I(L)){p[i]=L;i++;if(L.subGroups.length>0){i=b(q,L,i)}else{if(L.subItems.length>0){i=x(q,L,i)}}}}}if(M.subItems.length>0){i=x(q,M,i)}return i};var J=0;for(var F=0;F<o.length;F++){var n=o[F];if(I(n)){p[B]=n;B++;B=b(this,n,B)}}}return p}};a.extend(a.jqx._jqxGrid.prototype,{_initgroupsheader:function(){this.groupsheader.css("visibility","hidden");if(this._groupsheader()){this.groupsheader.css("visibility","inherit");var e=this;var c=this.gridlocalization.groupsheaderstring;this.groupsheaderdiv=this.groupsheaderdiv||a('<div style="width: 100%; position: relative;"></div>');this.groupsheaderdiv.height(this.groupsheaderheight);this.groupsheaderdiv.css("top",0);this.groupsheader.append(this.groupsheaderdiv);this.groupheadersbounds=new Array();var d=this.groups.length;this.groupsheaderdiv.children().remove();this.groupsheaderdiv[0].innerHTML="";var b=new Array();if(d>0){a.each(this.groups,function(i){var n=this;var m=e._getColumnText(this);var l=m.label;var k=e._rendergroupcolumn(l,n);k.addClass(e.toThemeProperty("jqx-grid-group-column"));e.groupsheaderdiv.append(k);if(e.closeablegroups){var j=a(k.find(".jqx-icon-close"));if(e.isTouchDevice()&&e.touchmode!==true){e.addHandler(j,"touchstart",function(){e.removegroupat(i);return false})}else{e.addHandler(j,"click",function(){e.removegroupat(i);return false})}}if(e.sortable){e.addHandler(k,"click",function(){var o=e.getcolumn(n);if(o!=null){e._togglesort(o)}return false})}b[b.length]=k;e._handlegroupstocolumnsdragdrop(this,k);if(i<d-1){var g=k.height();var h=a('<div style="float: left; position: relative;"></div>');if(e.rtl){h.css("float","right")}h.width(e.groupindentwidth/3);h.height(1);h.css("top",g/2);h.addClass(e.toThemeProperty("jqx-grid-group-column-line"));e.groupsheaderdiv.append(h)}})}else{var f=a('<div style="position: relative;">'+c+"</div>");this.groupsheaderdiv.append(f);if(this.rtl){f.addClass(this.toThemeProperty("jqx-rtl"))}}this._groupheaders=b;this._updategroupheadersbounds()}},_updategroupheadersbounds:function(){var c=this;var b=this.groupsheaderdiv.children().outerHeight();var d=(this.groupsheader.height()-b)/2;this.groupsheaderdiv.css("top",d);if(!this.rtl){this.groupsheaderdiv.css("left",d);this.groupsheaderdiv.css("right","")}else{this.groupsheaderdiv.css("left","");this.groupsheaderdiv.css("right",d)}if(this.rtl){this._groupheaders.reverse()}a.each(this._groupheaders,function(f){var e=this.coord();c.groupheadersbounds[f]={left:e.left,top:e.top,width:this.outerWidth(),height:this.outerHeight(),index:f}})},addgroup:function(c){if(c){var b=this;if(b.groups!==b.dataview.groups){b.dataview.groups=b.groups}b.groups[b.groups.length]=c;b.refreshgroups();this._raiseEvent(12,{type:"Add",index:b.groups[b.groups.length],groups:b.groups})}},insertgroup:function(d,c){if(d!=undefined&&d!=null&&d>=0&&d<=this.groups.length){if(c){var b=this;if(b.groups!==b.dataview.groups){b.dataview.groups=b.groups}b.groups.splice(d,0,c.toString());b.refreshgroups();this._raiseEvent(12,{type:"Insert",index:d,groups:b.groups})}}},refreshgroups:function(){this._refreshdataview();this._render(true,true,true,false)},_insertaftergroup:function(d,c){var b=this._getGroupIndexByDataField(d);this.insertgroup(b+1,c)},_insertbeforegroup:function(d,c){var b=this._getGroupIndexByDataField(d);this.insertgroup(b,c)},removegroupat:function(c){if(c>=0&&c!=null&&c!=undefined){var b=this;if(b.groups!==b.dataview.groups){b.dataview.groups=b.groups}b.groups.splice(c,1);b.refreshgroups();if(b.virtualmode){b.updatebounddata()}this._raiseEvent(12,{type:"Remove",index:c,groups:b.groups});return true}return false},cleargroups:function(){var b=this;b.groups=[];b.dataview.groups=b.groups;b.refreshgroups();this._raiseEvent(12,{type:"Clear",index:-1,groups:b.groups});return true},removegroup:function(c){if(c==null){return false}var b=this.groups.indexOf(c.toString());return this.removegroupat(b)},getrootgroupscount:function(){var b=this.dataview.loadedrootgroups.length;return b},collapsegroup:function(c){if(c>=0&&c.toString().indexOf(".")===-1){return this._setrootgroupstate(c,false)}var b=c.toString().split(".");var f=null;for(var d=0;d<b.length;d++){var c=parseInt(b[d]);if(d==0){var f=this.dataview.loadedrootgroups[c];this._setrootgroupstate(c,false)}else{var e=f.subGroups[c];if(e){f=e;this._setgroupstate(f,false,true)}}}},expandgroup:function(c){if(c>=0&&c.toString().indexOf(".")===-1){return this._setrootgroupstate(c,true)}var b=c.toString().split(".");var f=null;for(var d=0;d<b.length;d++){var c=parseInt(b[d]);if(d==0){var f=this.dataview.loadedrootgroups[c];this._setrootgroupstate(c,true)}else{var e=f.subGroups[c];if(e){f=e;this._setgroupstate(f,true,true)}}}},collapseallgroups:function(b){this._setbatchgroupstate(false,b)},expandallgroups:function(b){this._setbatchgroupstate(true,b)},getgroup:function(e){var j=this.dataview.loadedrootgroups[e];if(j==null){return null}var f=this.expandedgroups[j.uniqueid].expanded;var g=j.group;var b=j.level;var c=new Array();this._getsubgroups(c,j);var i=this;var d={group:g,level:b,expanded:f,subgroups:c};if(j.subItems){var h=new Array();a.each(j.subItems,function(){var k=this.boundindex;h[h.length]=i.getrowdata(k)});if(h.length>0){d.subrows=h}}return d},getrootgroups:function(){var d=this.dataview.loadedrootgroups.length;var c=new Array();for(var b=0;b<d;b++){c[b]=this.getgroup(b)}return c},_getsubgroups:function(c,j){var i=this;for(obj in j.subGroups){var g=j.subGroups[obj];var e=i.expandedgroups[g.uniqueid].expanded;var f=g.group;var b=g.level;c[c.length]={group:f,level:b,expanded:e};if(g.subItems){var h=new Array();a.each(g.subItems,function(){var k=this.boundindex;h[h.length]=i.getrowdata(k)});c[c.length-1].subrows=h}if(g.subGroups){var d=new Array();i._getsubgroups(d,g)}}return c},_setbatchgroupstate:function(b,e){var c=this;for(obj in this.dataview.loadedrootgroups){c._setrootgroupstate(obj,b,false,true)}if(e==false){c._requiresupdate=true;c._renderrows(c.virtualsizeinfo);return true}var d=this.vScrollBar[0].style.visibility;this.rendergridcontent(true,false);if(d!=this.vScrollBar[0].style.visibility||this._hiddencolumns){this._updatecolumnwidths();this._updatecellwidths();this._renderrows(this.virtualsizeinfo)}return true},_setrootgroupstate:function(d,b,f,c){if(d==undefined||d==null||d<0){return false}if(!this.groupable||this.groups.length==0){return false}var j=f!=undefined?f:true;if(d>=0&&d<this.dataview.loadedrootgroups.length){var h=this.dataview.loadedrootgroups[d];if(this.pageable){var g=new Array();for(var e=0;e<this.dataview.rows.length;e++){if(this.dataview.rows[e].group!=null&&this.dataview.rows[e].level===0){g.push(this.dataview.rows[e])}}h=g[d];if(!h){return}}return this._setgroupstate(h,b,j,c)}return false},_togglegroupstate:function(e,f){if(e==null||e==undefined){return false}var c=this.vScrollInstance.value;var d=this.expandedgroups[e.uniqueid];if(d==undefined){d=false}else{d=d.expanded}d=!d;var b=this._setgroupstate(e,d,f);if(c!==0&&this.vScrollBar.css("visibility")!=="hidden"){if(c<=this.vScrollInstance.max){this.vScrollInstance.setPosition(c)}else{this.vScrollInstance.setPosition(this.vScrollInstance.max)}}return b},_setgroupstate:function(f,b,h,c){if(f==null||f==undefined){return false}var e=false;if(this.editable&&this.editcell){this.endcelledit(this.editcell.row,this.editcell.column,false,false)}var d=this.expandedgroups[f.uniqueid];if(d==undefined){d={expanded:false};e=true}if(d.expanded!=b){e=true}if(e){this.expandedgroups[f.uniqueid]={expanded:b,group:f};this._setsubgroupsvisibility(this,f,!b,c);if(h){var g=this.vScrollBar[0].style.visibility;this.rendergridcontent(true,false);if(g!=this.vScrollBar[0].style.visibility||this._hiddencolumns){this._updatecolumnwidths();this._updatecellwidths();this._renderrows(this.virtualsizeinfo)}}if(undefined==this.suspendgroupevents||this.suspendgroupevents==false){if(b){this._raiseEvent(4,{group:f.group,parentgroup:f.parentItem?f.parentItem.group:null,level:f.level,visibleindex:f.visibleindex})}else{this._raiseEvent(5,{group:f.group,parentgroup:f.parentItem?f.parentItem.group:null,level:f.level,visibleindex:f.visibleindex})}}return true}return false},_setgroupitemsvisibility:function(c,e,d){for(var b=0;b<e.subItems.length;b++){c._setrowvisibility(e.subItems[b].visibleindex,d,false)}},_setsubgroupsvisibility:function(c,g,f,d){if(g.parentItem!=null){if(this.hiddens[g.parentItem.visibleindex]){return}}else{if(g.parentItem==null){if(this.hiddens[g.visibleindex]){return}}}for(subGroup in g.subGroups){var e=g.subGroups[subGroup];if(!f){c._setrowvisibility(e.visibleindex,f,false)}var b=!f;if(!d){if(c.expandedgroups[e.uniqueid]==undefined){b=false}else{b=c.expandedgroups[e.uniqueid].expanded}}else{this.expandedgroups[e.uniqueid]={expanded:b,group:e}}if(e.subGroups){if(e.subGroups.length>0){c._setsubgroupsvisibility(c,e,!b||f,d)}else{if(e.subItems.length>0){c._setgroupitemsvisibility(c,e,!b||f)}}}if(f){c._setrowvisibility(e.visibleindex,f,false)}}if(g.subItems&&g.subItems.length>0){c._setgroupitemsvisibility(c,g,f)}},_handlecolumnsdragdrop:function(){var d=this;var g=-1;var c=false;if(!d.groupable){return}var f="mousemove.grouping"+this.element.id;var e="mousedown.grouping"+this.element.id;var h="mouseup.grouping"+this.element.id;var b=false;if(this.isTouchDevice()&&this.touchmode!==true){b=true;f=a.jqx.mobile.getTouchEventName("touchmove")+".grouping"+this.element.id;e=a.jqx.mobile.getTouchEventName("touchstart")+".grouping"+this.element.id;h=a.jqx.mobile.getTouchEventName("touchend")+".grouping"+this.element.id}this.removeHandler(a(document),f);this.addHandler(a(document),f,function(j){if(!d.showgroupsheader){return true}if(d.dragcolumn!=null){var l=parseInt(j.pageX);var u=parseInt(j.pageY);if(b){var r=d.getTouches(j);var p=r[0];l=parseInt(p.pageX);u=parseInt(p.pageY)}var n=d.host.coord();var v=parseInt(n.left);var w=parseInt(n.top);if(d.dragmousedownoffset==undefined||d.dragmousedownoffset==null){d.dragmousedownoffset={left:0,top:0}}var t=parseInt(l)-parseInt(d.dragmousedownoffset.left);var i=parseInt(u)-parseInt(d.dragmousedownoffset.top);d.dragcolumn.css({left:t+"px",top:i+"px"});c=false;if(l>=v&&l<=v+d.host.width()){if(u>=w&&u<=w+d.host.height()){c=true}}g=-1;if(c){d.dragcolumnicon.removeClass(d.toThemeProperty("jqx-grid-dragcancel-icon"));d.dragcolumnicon.addClass(d.toThemeProperty("jqx-grid-drag-icon"));var s=d.groupsheader.coord();var m=s.top+d.groupsheader.height();var q=a.data(d.dragcolumn[0],"datarecord");if(q){var k=d.groups.indexOf(q.toString())}else{var k=-1}var o=(k==-1)||(d.groups.length>1&&k>-1);if(d.dropline!=null){if(u>=s.top&&u<=m){if(o){g=d._handlegroupdroplines(l)}}else{d.dropline.fadeOut("slow")}}}else{if(d.dropline!=null){d.dropline.fadeOut("slow")}d.dragcolumnicon.removeClass(d.toThemeProperty("jqx-grid-drag-icon"));d.dragcolumnicon.addClass(d.toThemeProperty("jqx-grid-dragcancel-icon"))}if(b){j.preventDefault();j.stopPropagation();return false}}});this.removeHandler(a(document),h);this.addHandler(a(document),h,function(i){if(!d.showgroupsheader){return true}d.__drag=false;a(document.body).removeClass("jqx-disableselect");var m=parseInt(i.pageX);var s=parseInt(i.pageY);if(b){var p=d.getTouches(i);var o=p[0];m=parseInt(o.pageX);s=parseInt(o.pageY)}var n=d.host.coord();var t=parseInt(n.left);var u=parseInt(n.top);var k=d.groupsheader.height();if(d.showtoolbar){u+=d.toolbarheight}d.dragstarted=false;d.dragmousedown=null;if(d.dragcolumn!=null){var l=a.data(d.dragcolumn[0],"datarecord");d.dragcolumn.remove();d.dragcolumn=null;if(l!=null){if(!d.getcolumn(l).groupable){if(d.dropline!=null){d.dropline.remove();d.dropline=null}return}if(c){if(g!=-1){var q=g.index;var r=d.groups[q];var j=d._getGroupIndexByDataField(l);if(j!=q){if(j!=undefined&&j>=0){d.groups.splice(j,1)}if(g.position=="before"){if(!d.rtl){d._insertbeforegroup(r,l)}else{d._insertaftergroup(r,l)}}else{if(!d.rtl){d._insertaftergroup(r,l)}else{d._insertbeforegroup(r,l)}}}}else{if(d.groups.length==0){if(s>u&&s<=u+k){d.addgroup(l)}}else{if(s>u+k){var j=d._getGroupIndexByDataField(l);d.removegroupat(j)}}}}if(d.dropline!=null){d.dropline.remove();d.dropline=null}}}})},_getGroupIndexByDataField:function(b){for(var c=0;c<this.groups.length;c++){if(this.groups[c]==b){return c}}return -1},_isColumnInGroups:function(c){for(var b=0;b<this.groups.length;b++){if(this.groups[b]==c){return true}}return false},_handlegroupdroplines:function(d){var b=this;var c=-1;a.each(b.groupheadersbounds,function(e){if(d<=this.left+this.width/2){var f=this.left-3;if(e>0){f=this.left-1-b.groupindentwidth/6}b.dropline.css("left",f);b.dropline.css("top",this.top);b.dropline.height(this.height);b.dropline.fadeIn("slow");c={index:e,position:"before"};if(b.rtl){c={index:b.groupheadersbounds.length-1-e,position:"before"}}return false}else{if(d>=this.left+this.width/2){b.dropline.css("left",1+this.left+this.width);b.dropline.css("top",this.top);b.dropline.height(this.height);b.dropline.fadeIn("slow");c={index:e,position:"after"};if(b.rtl){c={index:b.groupheadersbounds.length-1-e,position:"after"}}}}});return c},_handlegroupstocolumnsdragdrop:function(c,e){this.dragmousedown=null;this.dragmousedownoffset=null;this.dragstarted=false;this.dragcolumn=null;var f=this;var d;var h="mousedown";var g="mousemove";var b=false;if(this.isTouchDevice()&&this.touchmode!==true){b=true;h=a.jqx.mobile.getTouchEventName("touchstart");g=a.jqx.mobile.getTouchEventName("touchmove")}this.addHandler(e,"dragstart",function(i){return false});this.addHandler(e,h,function(i){if(!f.showgroupsheader){return true}var l=i.pageX;var k=i.pageY;f.__drag=true;f.dragmousedown={left:l,top:k};if(b){var j=f.getTouches(i);var n=j[0];l=n.pageX;k=n.pageY;f.dragmousedown={left:l,top:k};if(i.preventDefault){i.preventDefault()}}var m=a(i.target).coord();f.dragmousedownoffset={left:parseInt(l)-parseInt(m.left),top:parseInt(k-m.top)}});this.addHandler(e,g,function(i){if(!f.showgroupsheader){return true}if(f.dragmousedown){d={left:i.pageX,top:i.pageY};if(b){var k=f.getTouches(i);var m=k[0];d={left:m.pageX,top:m.pageY}}if(!f.dragstarted&&f.dragcolumn==null){var j=Math.abs(d.left-f.dragmousedown.left);var l=Math.abs(d.top-f.dragmousedown.top);if(j>3||l>3){f._createdragcolumn(e,d,true);a(document.body).addClass("jqx-disableselect");a.data(f.dragcolumn[0],"datarecord",c);if(i.preventDefault){i.preventDefault()}}}}})},_createdragcolumn:function(c,e,g){var h=this;var f=e;h.dragcolumn=a("<div></div>");var j=c.clone();h.dragcolumn.css("z-index",999999);j.css("border-width","1px");j.css("opacity","0.4");var i=a(j.find("."+h.toThemeProperty("jqx-grid-column-menubutton")));if(i.length>0){i.css("display","none")}var b=a(j.find(".jqx-icon-close"));if(b.length>0){b.css("display","none")}h.dragcolumnicon=a('<div style="z-index: 9999; position: absolute; left: 100%; top: 50%; margin-left: -18px; margin-top: -7px;"></div>');h.dragcolumnicon.addClass(h.toThemeProperty("jqx-grid-drag-icon"));h.dragcolumn.css("float","left");h.dragcolumn.css("position","absolute");var d=h.host.coord();j.width(c.width()+16);h.dragcolumn.append(j);h.dragcolumn.height(c.height());h.dragcolumn.width(j.width());h.dragcolumn.append(h.dragcolumnicon);a(document.body).append(h.dragcolumn);j.css("margin-left",0);j.css("left",0);j.css("top",0);h.dragcolumn.css("left",f.left+h.dragmousedown.left);h.dragcolumn.css("top",f.top+h.dragmousedown.top);if(g!=undefined&&g){h.dropline=a('<div style="display: none; position: absolute;"></div>');h.dropline.width(2);h.dropline.addClass(h.toThemeProperty("jqx-grid-group-drag-line"));a(document.body).append(h.dropline)}},iscolumngroupable:function(b){return this._getcolumnproperty(b,"groupable")},_handlecolumnstogroupsdragdrop:function(c,f){this.dragmousedown=null;this.dragmousedownoffset=null;this.dragstarted=false;this.dragcolumn=null;var g=this;var e;var b=false;if(this.isTouchDevice()&&this.touchmode!==true){b=true}var d="mousedown.drag";var e="mousemove.drag";if(b){d=a.jqx.mobile.getTouchEventName("touchstart")+".drag";e=a.jqx.mobile.getTouchEventName("touchmove")+".drag"}else{this.addHandler(f,"dragstart",function(h){return false})}this.addHandler(f,d,function(j){if(!g.showgroupsheader){return true}g.__drag=true;if(g._isColumnInGroups(c.displayfield)){if(f.css("cursor")!="col-resize"){return true}else{return true}}if(false==c.groupable){return true}var i=j.pageX;var h=j.pageY;if(b){var k=g.getTouches(j);var m=k[0];i=m.pageX;h=m.pageY}g.dragmousedown={left:i,top:h};if(b){if(j.preventDefault){j.preventDefault()}}var l=a(j.target).coord();g.dragmousedownoffset={left:parseInt(i)-parseInt(l.left),top:parseInt(h-l.top)}});this.addHandler(f,e,function(j){if(!g.showgroupsheader){return true}if(g._isColumnInGroups(c.displayfield)){if(f.css("cursor")!="col-resize"){return true}else{return true}}if(g.dragmousedown){var i=j.pageX;var h=j.pageY;if(b){var l=g.getTouches(j);var n=l[0];i=n.pageX;h=n.pageY}e={left:i,top:h};if(!g.dragstarted&&g.dragcolumn==null){var k=Math.abs(e.left-g.dragmousedown.left);var m=Math.abs(e.top-g.dragmousedown.top);if(k>3||m>3){g._createdragcolumn(f,e,true);a.data(g.dragcolumn[0],"datarecord",c.displayfield);if(j.preventDefault){j.preventDefault()}}}}})},_rendergroupcolumn:function(g,h){var e=a('<div style="float: left; position: relative;"></div>');if(this.rtl){e.css("float","right")}if(this.groupcolumnrenderer!=null){e[0].innerHTML=this.groupcolumnrenderer(g);e.addClass(this.toThemeProperty("jqx-grid-group-column"));e.addClass(this.toThemeProperty("jqx-fill-state-normal"))}if(this.closeablegroups){if(e[0].innerHTML==""){e[0].innerHTML='<a style="float: left;" href="#">'+g+"</a>"}if(this.rtl){e[0].innerHTML='<a style="float: right;" href="#">'+g+"</a>"}var d=!this.rtl?"right":"left";var c='<div style="float: '+d+'; min-height: 16px; min-width: 18px;"><div style="position: absolute; left: 100%; top: 50%; margin-left: -18px; margin-top: -8px; float: none; width: 16px; height: 16px;" class="'+this.toThemeProperty("jqx-icon-close")+'"></div></div>';if(a.jqx.browser.msie&&a.jqx.browser.version<8){c='<div style="float: left; min-height: 16px; min-width: 18px;"><div style="position: absolute; left: 100%; top: 50%; margin-left: -18px; margin-top: -8px; float: none; width: 16px; height: 16px;" class="'+this.toThemeProperty("jqx-icon-close")+'"></div></div>'}if(this.rtl){var c='<div style="float: '+d+'; min-height: 16px; min-width: 18px;"><div style="position: absolute; left: 0px; top: 50%; margin-top: -8px; float: none; width: 16px; height: 16px;" class="'+this.toThemeProperty("jqx-icon-close")+'"></div></div>';if(a.jqx.browser.msie&&a.jqx.browser.version<8){c='<div style="float: left; min-height: 16px; min-width: 18px;"><div style="position: absolute; left: 0px; top: 50%; margin-top: -8px; float: none; width: 16px; height: 16px;" class="'+this.toThemeProperty("jqx-icon-close")+'"></div></div>'}}e[0].innerHTML+=c}else{if(e[0].innerHTML==""){e[0].innerHTML='<a href="#">'+g+"</a>"}}if(this.sortable){var f=a('<div style="float: right; min-height: 16px; min-width: 18px;"><div style="position: absolute; left: 100%; top: 50%; margin-left: -16px; margin-top: -8px; float: none; width: 16px; height: 16px;" class="'+this.toThemeProperty("jqx-grid-column-sortascbutton")+'"></div></div>');var b=a('<div style="float: right; min-height: 16px; min-width: 18px;"><div style="position: absolute; left: 100%; top: 50%; margin-left: -16px; margin-top: -8px; float: none; width: 16px; height: 16px;" class="'+this.toThemeProperty("jqx-grid-column-sortdescbutton")+'"></div></div>');if(this.closeablegroups){var f=a('<div style="float: right; min-height: 16px; min-width: 18px;"><div style="position: absolute; left: 100%; top: 50%; margin-left: -32px; margin-top: -8px; float: none; width: 16px; height: 16px;" class="'+this.toThemeProperty("jqx-grid-column-sortascbutton")+'"></div></div>');var b=a('<div style="float: right; min-height: 16px; min-width: 18px;"><div style="position: absolute; left: 100%; top: 50%; margin-left: -32px; margin-top: -8px; float: none; width: 16px; height: 16px;" class="'+this.toThemeProperty("jqx-grid-column-sortdescbutton")+'"></div></div>')}if(this.rtl){var f=a('<div style="float: right; min-height: 16px; min-width: 18px;"><div style="position: absolute; left: 0px; top: 50%; margin-left: 0px; margin-top: -8px; float: none; width: 16px; height: 16px;" class="'+this.toThemeProperty("jqx-grid-column-sortascbutton")+'"></div></div>');var b=a('<div style="float: right; min-height: 16px; min-width: 18px;"><div style="position: absolute; left: 0px; top: 50%; margin-left: 0px; margin-top: -8px; float: none; width: 16px; height: 16px;" class="'+this.toThemeProperty("jqx-grid-column-sortdescbutton")+'"></div></div>');if(this.closeablegroups){var f=a('<div style="float: right; min-height: 16px; min-width: 18px;"><div style="position: absolute; left: 0px; top: 50%; margin-left: 16px; margin-top: -8px; float: none; width: 16px; height: 16px;" class="'+this.toThemeProperty("jqx-grid-column-sortascbutton")+'"></div></div>');var b=a('<div style="float: right; min-height: 16px; min-width: 18px;"><div style="position: absolute; left: 0px; top: 50%; margin-left: 16px; margin-top: -8px; float: none; width: 16px; height: 16px;" class="'+this.toThemeProperty("jqx-grid-column-sortdescbutton")+'"></div></div>')}}f.css("display","none");b.css("display","none");if(a.jqx.browser.msie&&a.jqx.browser.version<8){f.css("float","left");b.css("float","left")}e.append(f);e.append(b);a.data(document.body,"groupsortelements"+h,{sortasc:f,sortdesc:b})}e.addClass(this.toThemeProperty("jqx-fill-state-normal"));e.addClass(this.toThemeProperty("jqx-grid-group-column"));return e},_rendergroup:function(o,w,b,u,j,A,t){var F=w;var c=w.cells[b.level];if(this.rtl){c=w.cells[w.cells.length-1-b.level]}var E=this._findgroupstate(b.uniqueid);if(b.bounddata.subGroups.length>0||b.bounddata.subItems.length>0){var i=this.rtl?"-rtl":"";var B=this.toThemeProperty("jqx-icon-arrow-right");if(i){B=this.toThemeProperty("jqx-icon-arrow-left")}if(E){c.className+=" "+this.toThemeProperty("jqx-grid-group-expand"+i)+" "+this.toThemeProperty("jqx-icon-arrow-down")}else{c.className+=" "+this.toThemeProperty("jqx-grid-group-collapse"+i)+" "+B}}var s=this._getColumnText(this.groups[b.level]).label;var d=this.groupindentwidth;var q=this.rowdetails&&this.showrowdetailscolumn?(1+o)*d:(o)*d;var x=t-q;var g=b.level+1;if(this.rtl){g=0}var l=F.cells[g];var z=2;while(l!=undefined&&l.style.display=="none"&&z<F.cells.length-1){l=F.cells[g+z-1];z++}var f=a(l);if(!l){return}l.style.width=parseInt(x)+"px";if(l.className.indexOf("jqx-grid-cell-filter")!=-1){f.removeClass(this.toThemeProperty("jqx-grid-cell-filter"))}if(l.className.indexOf("jqx-grid-cell-sort")!=-1){f.removeClass(this.toThemeProperty("jqx-grid-cell-sort"))}if(l.className.indexOf("jqx-grid-cell-pinned")!=-1){f.removeClass(this.toThemeProperty("jqx-grid-cell-pinned"))}if(this.groupsrenderer!=null){var h={group:b.group,level:b.level,parent:b.bounddata.parentItem,subGroups:b.bounddata.subGroups,subItems:b.bounddata.subItems,groupcolumn:this._getColumnText(this.groups[b.level]).column};var p=this.groupsrenderer(s+": "+b.group,b.group,E,h);if(p){l.innerHTML=p}else{var k=b.bounddata.subItems.length>0?b.bounddata.subItems.length:b.bounddata.subGroups.length;l.innerHTML='<div class="'+this.toThemeProperty("jqx-grid-groups-row")+'" style="position: absolute;"><span>'+s+': </span><span class="'+this.toThemeProperty("jqx-grid-groups-row-details")+'">'+b.group+" ("+k+")</span></div>"}}else{var e=this._getcolumnbydatafield(this.groups[b.level]);var y=b.group;if(e!=null){if(e.cellsformat){if(a.jqx.dataFormat){if(a.jqx.dataFormat.isDate(y)){y=a.jqx.dataFormat.formatdate(y,e.cellsformat,this.gridlocalization)}else{if(a.jqx.dataFormat.isNumber(y)){y=a.jqx.dataFormat.formatnumber(y,e.cellsformat,this.gridlocalization)}}}}var k=b.bounddata.subItems.length>0?b.bounddata.subItems.length:b.bounddata.subGroups.length;l.innerHTML='<div class="'+this.toThemeProperty("jqx-grid-groups-row")+'" style="position: absolute;"><span>'+s+': </span><span class="'+this.toThemeProperty("jqx-grid-groups-row-details")+'">'+y+" ("+k+")</span></div>"}else{throw new Error("jqxGrid: Unable to find '"+this.groups[b.level]+"' group in the Grid's columns collection.")}}if(this.rtl){if(!e){e=this._getcolumnbydatafield(this.groups[b.level])}var r=this.hScrollBar.css("visibility")=="hidden"?0:this.hScrollInstance.max-this.hScrollInstance.value;var C=this.vScrollBar.css("visibility")=="hidden"?0:this.scrollbarsize+6;var q=this.rowdetails&&this.showrowdetailscolumn?(2+b.level)*d:(1+b.level)*d;l.style.width=t+parseInt(r)-q-C+"px";f.addClass(this.toThemeProperty("jqx-rtl"));var v=a(w.cells[w.cells.length-1]).css("z-index");f.css("z-index",v);var D=f.find("div");var x=D.width();D.css("left","100%");var n=this.columns.records[w.cells.length-2-b.level]!=null?this.columns.records[w.cells.length-2-b.level].pinned:false;if(this.table.width()<t){t=this.table.width();if(this.vScrollBar.css("visibility")!="hidden"){t+=this.vScrollBar.outerWidth()}}if(e.pinned||n){if(this.rowdetails&&this.showrowdetailscolumn){t+=30}D.css("margin-left",-x);l.style.width=t+r-q-C+"px"}else{var r=this.hScrollBar.css("visibility")=="hidden"?0:this.hScrollInstance.max;l.style.width=t+r-q-C+"px";var x=D.width();D.css("margin-left",-x)}}}})})(jqxBaseFramework);

mercurial