/*!@license * Infragistics.Web.ClientUI Outlook GroupBy feature 19.1.20 * * Copyright (c) 2011-2019 Infragistics Inc. * * http://www.infragistics.com/ * * Depends on: * jquery-1.9.1.js * jquery.ui.core.js * jquery.ui.widget.js * jquery.ui.mouse.js * jquery.ui.draggable.js * jquery.ui.droppable.js * infragistics.ui.widget.js * infragistics.ui.grid.framework.js * infragistics.ui.grid.shared.js * infragistics.ui.grid.featurechooser.js */ (function(factory){if(typeof define==="function"&&define.amd){define(["./infragistics.ui.grid.featurechooser","./infragistics.ui.tree"],factory)}else{return factory(jQuery)}})(function($){$.widget("ui.igGridGroupBy",$.ui.igWidget,{css:{dragMarkup:"ui-iggrid-dragMarkup",groupByArea:"ui-iggrid-groupbyarea",groupByAreaText:"ui-iggrid-groupbyareatext",groupedRow:"ui-iggrid-groupedrow",summaryRow:"ui-iggrid-summaryrow",expandHeaderCellGroupBy:"ui-iggrid-header ui-widget-header",groupByExpandCellExpanded:"ui-icon ui-iggrid-expandbutton ui-iggrid-expandbuttonexpanded ui-icon-minus",groupBySummaryIcon:"ui-icon ui-icon-calculator ui-iggrid-groupsummary-icon",groupByExpandCellCollapsed:"ui-icon ui-iggrid-expandbutton ui-icon-plus",groupByAreaDropHover:"ui-iggrid-groupbyareahover",groupByExpandColumn:"ui-iggrid-expandcolumn",groupBySummaryColumn:"ui-iggrid-summarycolumn",groupBySummaryIconColumn:"ui-iggrid-summaryiconcolumn",groupBySummaryEmptyCellColumn:"ui-iggrid-summaryemptycellcolumn",nonGroupRowEmptyCell:"ui-iggrid-nongrouprowemptycell",groupedColumnLabel:"ui-iggrid-groupedcolumnlabel ui-state-default",groupedColumnLabelText:"ui-iggrid-groupedcolumnlabeltext",groupByRemoveButton:"ui-icon ui-icon-circle-close ui-iggrid-groupbyremovebutton",groupedColumnLabelRightEdgeEnd:"ui-iggrid-groupbylabelrightedgeend",groupedColumnLabelRightEdge:"ui-iggrid-groupbylabelrightedge",groupedColumnLayoutLabel:"ui-iggrid-groupbylayoutlabel",headerExtraCell:"ui-iggrid-expandheadercellgb",footerExtraCell:"ui-widget-content ui-iggrid-footerextracell",featureChooserIconClass:"ui-icon ui-iggrid-icon-groupby",dialogGroupedColumns:"ui-iggrid-groupby-dialog-groupedcolumns",dialogUnroupedColumns:"ui-iggrid-groupby-dialog-ungroupedcolumns",dialogGroupedItem:"ui-widget-content",dialogUngroupedItem:"ui-widget-content",dialogUngroupedColumnsGroupByButton:"ui-iggrid-dialog-groupby-button",dialogUngroupedColumnsText:"ui-iggrid-dialog-text",dialogButtonAsc:"ui-button ui-corner-all ui-button-icon-only ig-sorting-indicator",dialogButtonAscIcon:"ui-button-icon-primary ui-icon ui-icon-arrowthick-1-n",dialogButtonDesc:"ui-button ui-corner-all ui-button-icon-only ig-sorting-indicator",dialogButtonDescIcon:"ui-button-icon-primary ui-icon ui-icon-arrowthick-1-s",dialogButtonUngroup:"ui-iggrid-dialog-groupedbuttons ui-button ui-widget ui-state-default ui-corner-all ui-button-icon-only ui-igbutton ui-widget-content ui-igbutton-remove",dialogButtonUngroupContainer:"ui-button-icon-primary ui-icon ui-icon-circle-close",dialogGroupedColumnTextContainer:"ui-iggrid-dialog-text",dialogListGroupedColumns:"ui-iggrid-dialog-list-groupedcolumns",dialogListUngroupedColumns:"ui-iggrid-dialog-list-ungroupedcolumns",dialogLayoutsDDButton:"ui-icon ui-icon-triangle-1-s ui-iggrid-dialog-layouts-dd-button",dropDownLayoutsContainer:"ui-iggrid-featurechooser-dropdown-dialog ui-widget ui-widget-content ui-corner-all",dialogLayoutsDDField:"ui-iggrid-dialog-layouts-dd-field",dialogLayoutsDD:"ui-iggrid-dialog-layouts-dd ui-widget-content ui-corner-all ig-combo-icon-container",modalDialogTreeContainer:"ui-iggrid-groupby-dialog-tree",modalDialogLayoutsContainer:"ui-iggrid-groupby-dialog-layoutscontainer",dialogButtonsHover:"ui-state-hover",groupByLastEmptyCell:"ui-iggrid-last-emptycell"},renderInFeatureChooser:false,options:{groupByAreaVisibility:"top",initialExpand:true,pagingMode:"allRecords",expansionIndicatorVisibility:true,groupByLabelWidth:null,labelDragHelperOpacity:.5,indentation:30,defaultSortingDirection:"asc",groupedColumns:[{key:null,dir:"asc",layout:null,col:null}],resultResponseKey:null,groupedRowTextTemplate:"${key}: ${val} (${count})",type:null,groupByUrlKey:null,groupByUrlKeyAscValue:null,groupByUrlKeyDescValue:null,summarySettings:{multiSummaryDelimiter:",",summaryFormat:"#.00"},columnSettings:[{allowGrouping:true,isGroupBy:false,compareFunc:null,groupComparerFunction:null,groupLabelFormatter:null,dir:"asc",summaries:[{summaryFunction:"avg",text:null,customSummary:null}],groupSummaries:[{summaryFunction:null,label:"",summaryTemplate:"{label}{result}",format:null}]}],expandTooltip:undefined,collapseTooltip:undefined,removeButtonTooltip:undefined,modalDialogGroupByButtonText:undefined,modalDialogCaptionButtonDesc:undefined,modalDialogCaptionButtonAsc:undefined,modalDialogCaptionButtonUngroup:undefined,modalDialogCaptionText:undefined,modalDialogDropDownLabel:undefined,modalDialogRootLevelHierarchicalGrid:undefined,modalDialogDropDownButtonCaption:undefined,modalDialogClearAllButtonLabel:undefined,emptyGroupByAreaContentSelectColumnsCaption:undefined,modalDialogButtonApplyText:undefined,modalDialogButtonCancelText:undefined,locale:{emptyGroupByAreaContent:undefined,emptyGroupByAreaContentSelectColumns:undefined,emptyGroupByAreaContentSelectColumnsCaption:undefined,expandTooltip:undefined,collapseTooltip:undefined,removeButtonTooltip:undefined,modalDialogCaptionButtonDesc:undefined,modalDialogCaptionButtonAsc:undefined,modalDialogCaptionButtonUngroup:undefined,modalDialogGroupByButtonText:undefined,modalDialogCaptionText:undefined,modalDialogDropDownLabel:undefined,modalDialogClearAllButtonLabel:undefined,modalDialogRootLevelHierarchicalGrid:undefined,modalDialogDropDownButtonCaption:undefined,modalDialogButtonApplyText:undefined,modalDialogButtonCancelText:undefined,summaryRowTitle:undefined,summaryIconTitle:undefined},modalDialogGroupByOnClick:false,modalDialogDropDownWidth:200,modalDialogDropDownAreaWidth:null,modalDialogAnimationDuration:200,modalDialogWidth:400,modalDialogHeight:"",useGridColumnFormatter:true,persist:true,groupByDialogContainment:"owner",dialogWidget:"igGridModalDialog",inherit:false,groupSummaries:[{summaryFunction:"",label:"",summaryTemplate:"{label}{value}",format:null}],groupSummariesPosition:"bottom"},events:{groupedColumnsChanging:"groupedColumnsChanging",groupedColumnsChanged:"groupedColumnsChanged",modalDialogMoving:"modalDialogMoving",modalDialogClosing:"modalDialogClosing",modalDialogClosed:"modalDialogClosed",modalDialogOpening:"modalDialogOpening",modalDialogOpened:"modalDialogOpened",modalDialogContentsRendering:"modalDialogContentsRendering",modalDialogContentsRendered:"modalDialogContentsRendered",modalDialogButtonApplyClick:"modalDialogButtonApplyClick",modalDialogButtonResetClick:"modalDialogButtonResetClick",modalDialogGroupingColumn:"modalDialogGroupingColumn",modalDialogGroupColumn:"modalDialogGroupColumn",modalDialogUngroupingColumn:"modalDialogUngroupingColumn",modalDialogUngroupColumn:"modalDialogUngroupColumn",modalDialogSortGroupedColumn:"modalDialogSortGroupedColumn"},_create:function(){this._orderedGroupedCols=[]},_createWidget:function(){this.options.columnSettings=[];this.options.groupedColumns=[];this.options.groupSummaries=false;this._tempSortingExpr=[];this._tempGroupedColumns=[];this._tempOrderedGroupedCols=[];this._tempOptions={};this._currentTreeLayer=null;this._isInitFC=false;this._modalSelectedLayout=null;$.Widget.prototype._createWidget.apply(this,arguments)},_getModalDialog:function(){return this.grid._rootContainer().find("#"+this.grid.id()+"_groupby_modalDialog")},changeGlobalLanguage:function(){},changeGlobalRegional:function(){},changeLocale:function(){var $dialog=this._getModalDialog(),self=this,colHeaderText;this._setGroupAreaTextContent($(".ui-iggrid-groupbyarea .ui-iggrid-groupbyareatext",this.grid.container()));this._super($(".ui-iggrid-grouparealist",this.grid.container()));this._super($("tbody>tr.ui-iggrid-groupedrow",this.grid.container()));this.grid.container().find("tr.ui-iggrid-summaryrow>td[gbsummaryiconcell]").each(function(){$(this).attr("title",self._getSummaryIconTitle($(this).data("colheader"),$(this).data("groupval")))});if($dialog.length){$dialog[this.options.dialogWidget]("option","locale",{modalDialogCaptionText:this._getLocaleValue("modalDialogCaptionText"),buttonApplyText:this._getLocaleValue("modalDialogButtonApplyText"),buttonCancelText:this._getLocaleValue("modalDialogButtonCancelText")});this._super($dialog);$dialog.find("a[data-localeid='modalDialogGroupByButtonText']").each(function(){colHeaderText=$(this).parent().next("span.ui-iggrid-dialog-text").text();$(this).attr("aria-label",self._getLocaleValue("modalDialogGroupByButtonText")+" "+colHeaderText)});$dialog.find("button[data-localeid='modalDialogCaptionButtonUngroup']").each(function(){colHeaderText=$(this).prev("span.ui-iggrid-dialog-text").text();$(this).attr("aria-label",self._getLocaleValue("modalDialogCaptionButtonUngroup")+" "+colHeaderText)})}},_registerWidget:$.noop,_unregisterWidget:$.noop,changeRegional:function(){var html;if(this.options.groupedColumns.length>0){html=this._generateGroupByRowsMarkup(this._getDataView(),this._startRowIndex,this._endRowIndex);this.grid.element.find(">tbody").empty().html(html)}},_setOption:function(key,value){var modalDialog=this._getModalDialog();this._super(key,value);if(key==="expansionIndicatorVisibility"){throw new Error(this._getLocaleValue("optionChangeNotSupported").replace("{optionName}",key))}switch(key){case"modalDialogGroupByOnClick":this._getModalDialog().remove();this._renderGroupByDialog();break;case"modalDialogAnimationDuration":modalDialog[this.options.dialogWidget]("option","animationDuration",value);break;case"modalDialogWidth":modalDialog[this.options.dialogWidget]("option","modalDialogWidth",value);break;case"modalDialogHeight":modalDialog[this.options.dialogWidget]("option","modalDialogHeight",value);break;case"groupByAreaVisibility":this._setGroupByAreaVisibility(value);break;default:break}},_setGroupByAreaVisibility:function(groupByAreaVisibility){var groupby=this,$footer,caption,groupbyarea=$("#"+this.grid.element.attr("id")+"_groupbyarea"),init=this.grid._initialized,$cntnr=this.grid.container();groupbyarea.remove();if(groupByAreaVisibility==="top"){caption=this.grid._caption();groupbyarea=caption.length?$("
").insertAfter(caption):$("
").prependTo($cntnr)}else if(groupByAreaVisibility==="bottom"){$footer=$cntnr.find(".ui-iggrid-footer").last();if(init&&$footer.length&&$footer.is(":visible")){groupbyarea=$("
").insertBefore($footer)}else{groupbyarea=$("
").appendTo($cntnr)}}else if(groupByAreaVisibility==="hidden"){if(init){this.grid._initializeHeights()}return}groupbyarea.attr("id",this.grid.element.attr("id")+"_groupbyarea").addClass(this.css.groupByArea);this._setGroupAreaTextContent($("").appendTo(groupbyarea).addClass(this.css.groupByAreaText));groupbyarea.droppable({accept:"th:not([ groupby-disabled ])",hoverClass:groupby.css.groupByAreaDropHover,drop:function(event,ui){var accepted,isdescendant;isdescendant=ui.draggable.closest(".ui-iggrid-root").attr("id")===groupby.grid.id()||ui.draggable.closest(".ui-iggrid").find(".ui-iggrid-root").length>0;if(!groupby.grid.element.hasClass("ui-iggrid-root")){isdescendant=true}accepted=ui.draggable.hasClass("ui-iggrid-header")&&isdescendant;if(accepted){groupby._groupBy(event,ui.draggable)}}});if(this.grid._isMultiColumnGrid){groupbyarea.droppable("option","tolerance","touch")}if(init){this.grid._initializeHeights();this._groupAreaList()}},_headerRendered:function(event,args){if(args.owner.id()!==this.grid.id()){return}if(args.owner.element.attr("data-childgrid")){return}this._renderGroupByDialog();this._setGroupByAreaVisibility(this.options.groupByAreaVisibility)},_renderGroupByDialog:function(){var $buttonOK,containment,self=this,o=this.options,$captionButtonContainer,modalDialog;if(this.options.groupByDialogContainment==="owner"){containment=this.grid.container()}else{containment="window"}modalDialog=$("
").appendTo(this.grid._rootContainer()).attr("id",this.grid.id()+"_groupby_modalDialog");modalDialog[this.options.dialogWidget]({renderFooterButtons:!o.modalDialogGroupByOnClick,modalDialogWidth:o.modalDialogWidth,modalDialogHeight:o.modalDialogHeight,animationDuration:o.modalDialogAnimationDuration,locale:{modalDialogCaptionText:self._getLocaleValue("modalDialogCaptionText"),buttonApplyText:self._getLocaleValue("modalDialogButtonApplyText"),buttonCancelText:self._getLocaleValue("modalDialogButtonCancelText")},containment:containment,gridContainer:this.grid.container(),modalDialogOpening:function(event,args){return self._groupByDialogOpening(event,args)},modalDialogOpened:function(){self._trigger(self.events.modalDialogOpened,null,{modalDialogElement:modalDialog,owner:self})},modalDialogMoving:function(e,ui){self._trigger(self.events.modalDialogMoving,null,{modalDialogElement:e.target,owner:self,originalPosition:ui.originalPosition,position:ui.position})},modalDialogClosing:function(){return self._trigger(self.events.modalDialogClosing,null,{modalDialogElement:modalDialog,owner:self})},modalDialogClosed:function(){self._trigger(self.events.modalDialogClosed,null,{modalDialogElement:modalDialog,owner:self})}});if(o.modalDialogGroupByOnClick){$captionButtonContainer=modalDialog[this.options.dialogWidget]("getCaptionButtonContainer");$("").bind("click.hiding",function(event){modalDialog[o.dialogWidget]("closeModalDialog",true,event);event.preventDefault();event.stopPropagation();return false}).addClass("ui-icon ui-icon-closethick").appendTo($("").appendTo($captionButtonContainer).attr({title:this._getLocaleValue("columnChooserCloseButtonTooltip"),href:"#",role:"button","data-localeid":"columnChooserCloseButtonTooltip","data-localeattr":"title"}).addClass("ui-dialog-titlebar-close ui-corner-all"))}else{$captionButtonContainer=modalDialog[this.options.dialogWidget]("getCaptionButtonContainer");$buttonOK=this.grid.container().find("#"+this.grid.id()+"_groupby_modalDialog_footer_buttonok");$buttonOK.bind("igbuttonclick",function(e){self._groupByDialogButtonOKClick(e)})}},openGroupByDialog:function(){var modalDialog=this._getModalDialog();modalDialog[this.options.dialogWidget]("openModalDialog")},closeGroupByDialog:function(){var modalDialog=this._getModalDialog();modalDialog[this.options.dialogWidget]("closeModalDialog")},_groupByDialogOpening:function(){var noCancel,modalDialog=this._getModalDialog();noCancel=this._trigger(this.events.modalDialogOpening,null,{modalDialogElement:modalDialog,owner:this});if(noCancel){this.renderGroupByModalDialog()}return noCancel},renderGroupByModalDialog:function(){var $content,i,self=this,o=this.options,css=this.css,modalDialog=this._getModalDialog(),noCancel,$groupedColumns,$ungroupedColumns;noCancel=this._trigger(this.events.modalDialogContentsRendering,null,{modalDialogElement:modalDialog,owner:this});if(noCancel){$content=modalDialog[this.options.dialogWidget]("getContent");$content.empty();self._tempGroupedColumns=o.groupedColumns.slice(0);self._tempOrderedGroupedCols=self._orderedGroupedCols.slice(0);self._tempSortingExpr=self.grid.dataSource.settings.sorting.expressions.slice(0);self._tempOptions={columnLayouts:[]};if(this.grid.options.columnLayouts&&this.grid.options.columnLayouts.length>0){for(i=0;i").attr("id",this.grid.id()+"_groupby_modalDialog_groupedcolumns").addClass(css.dialogGroupedColumns).appendTo($content);$ungroupedColumns=$("
").attr("id",this.grid.id()+"_groupby_modalDialog_ungroupedcolumns").addClass(css.dialogUnroupedColumns).appendTo($content);$("").addClass(css.dialogListGroupedColumns).appendTo($groupedColumns);$("").addClass(css.dialogListUngroupedColumns).appendTo($ungroupedColumns);this._renderColumnsDialog(this.grid.options.columns);this._currentTreeLayer=null;if(this._isToRenderClearAllButton()){this._renderDialogButtonClearAll()}else{this.grid.container().find("#"+this.grid.id()+"_groupbydialog_reset_button").remove()}this._trigger(this.events.modalDialogContentsRendered,null,{modalDialogElement:modalDialog,owner:this})}},_renderLayoutsDropDown:function(){var o=this.options,fn,w,dW,$ddField,self=this,css=this.css,modalDialog=this._getModalDialog(),$content=modalDialog[this.options.dialogWidget]("getContent"),cancelFunc,htmlLayouts,$buttonDD,$dropDown,$tree,dropDownId=this.grid.id()+"_groupby_modalDialog_layoutsDD",modalDialogDropDownAreaWidth=o.modalDialogDropDownAreaWidth||o.modalDialogDropDownWidth,columnLayoutsData=this.grid.options.columnLayouts.slice(0),$layoutsContainer;$layoutsContainer=$("
").attr("id",this.grid.id()+"_groupby_modalDialog_layoutsContainer").addClass(css.modalDialogLayoutsContainer).appendTo($content);htmlLayouts="
"+this._getLocaleValue("modalDialogDropDownLabel")+"
"+"
"+"\t
"+this._getLocaleValue("modalDialogRootLevelHierarchicalGrid")+"
"+"\t^"+"\t
"+"
"+"
";$layoutsContainer.html(htmlLayouts);$buttonDD=this.grid.container().find("#"+this.grid.id()+"_groupby_modalDialog_layoutsDDButton");$buttonDD.wrap("");cancelFunc=function(e){e.preventDefault();e.stopPropagation()};$buttonDD.closest("div").bind({mousedown:function(event){self._toggleDropDown(event,false)},mouseup:cancelFunc,click:cancelFunc});$buttonDD.addClass(css.dialogLayoutsDDButton);if(this._checkIsGroupByInherit(this.grid.options)===false){columnLayoutsData=this._getEnabledGroupByLayouts(columnLayoutsData)}if(columnLayoutsData.length>0||this._checkIsGroupByEnabled(this.grid.options)){$dropDown=this.grid.container().find("#"+dropDownId);$dropDown.remove();$dropDown=$("
");$dropDown.attr("id",dropDownId).css({position:"absolute",display:"none","z-index":"1000"}).addClass(this.css.dropDownLayoutsContainer).appendTo(this.grid.container().find("#"+this.grid.id()+"_groupby_modalDialog_content")).bind({mousedown:function(){clearTimeout(self._dropDownTimeout);setTimeout(function(){$buttonDD.closest("a").focus()},10)}});if(o.modalDialogDropDownWidth){$buttonDD.closest("div").width(o.modalDialogDropDownWidth)}if(modalDialogDropDownAreaWidth){$dropDown.width(modalDialogDropDownAreaWidth)}if(o.modalDialogDropDownWidth&&(!o.modalDialogDropDownWidth.indexOf||o.modalDialogDropDownWidth.indexOf("%")===-1)){w=$buttonDD.closest("div").width()-$buttonDD.outerWidth();$ddField=this.grid.container().find("#"+this.grid.id()+"_groupby_modalDialog_layoutsDDField");$ddField.width(w);dW=$ddField.outerWidth()-w;if(dW>0){w-=dW;$ddField.width(w-2)}}$tree=$("
").attr("id",this.grid.id()+"_groupby_modal_treeLayouts").addClass(css.modalDialogTreeContainer);$tree.appendTo($dropDown);columnLayoutsData=[{key:"Root",columnLayouts:columnLayoutsData,isRoot:true}];$tree.igTree({dataSourceType:"json",dataSource:columnLayoutsData,initialExpandDepth:1e6,bindings:{textKey:"key",childDataProperty:"columnLayouts"},nodeClick:function(event,args){var data=args.node.data,keyLayout=data.key,$groupedUL=self.grid.container().find("#"+self.grid.id()+"_groupby_modalDialog_groupedcolumns ul"),$ungroupedUL=self.grid.container().find("#"+self.grid.id()+"_groupby_modalDialog_ungroupedcolumns ul");if(data.dislabledGroupBy===true){return}$groupedUL.empty();$ungroupedUL.empty();self.grid.container().find("#"+self.grid.id()+"_groupby_modalDialog_layoutsDDField").text(keyLayout);if(args.node.path.length===1){self._renderColumnsDialog(self.grid.options.columns);self._currentTreeLayer=null}else{self._currentTreeLayer=keyLayout;self._renderColumnsDialog(data.columns,keyLayout)}self._toggleDropDown()}});fn=function(){self._dropDownTimeout=setTimeout(function(){self.closeDropDown()},200)};$buttonDD.closest("a").bind({focus:function(){self._igTreeHasFocus=true;clearTimeout(self._dropDownTimeout)},blur:function(){self._igTreeHasFocus=false;fn()}});$tree.find("a").bind({focus:function(){clearTimeout(self._dropDownTimeout)},blur:function(){fn()}});$tree.find("span.ui-igtree-expander.ui-icon").bind({click:function(){clearTimeout(self._dropDownTimeout);setTimeout(function(){$buttonDD.closest("a").focus()},10)}})}},openDropDown:function(){var $dropDown=this.grid.container().find("#"+this.grid.id()+"_groupby_modalDialog_layoutsDD");if($dropDown.is(":visible")===false){this._toggleDropDown()}},closeDropDown:function(){var $dropDown=this.grid.container().find("#"+this.grid.id()+"_groupby_modalDialog_layoutsDD");if($dropDown.is(":visible")===true){this._toggleDropDown()}},_getEnabledGroupByLayouts:function(layouts){var resultLayouts=[],i,tempChildLayouts,layout;if(layouts){for(i=0;i0){layout.columnLayouts=tempChildLayouts}else{layout.columnLayouts=null}}if(this._checkIsGroupByEnabled(layout)){resultLayouts.push(layout)}else if(layout.columnLayouts!==null&&layout.columnLayouts!==undefined){layout.dislabledGroupBy=true;resultLayouts.push(layout)}}}return resultLayouts},_checkIsGroupByInherit:function(layout){var i;if(layout&&layout.features){for(i=0;i-1){s.splice(found,1)}return}else{if(found>-1){if(s[found].isGroupBy){s[found]=sexpr}else{s.splice(found,1);this._addSortingExpression(s,sexpr)}}else{this._addSortingExpression(s,sexpr)}}if(gc.length===0&&!layout){gcTemp=this._tempGroupedColumns.slice(0);this._allGroupedCols(gcTemp);gc=gcTemp.slice(0)}for(i=0;i0||this._checkRenderLayoutsClearAll(this.grid.options)){return true}return false},_checkRenderLayoutsClearAll:function(layout){var i,j,fcs;if(layout!==null&&layout.features){for(i=0;i").attr("id",self.grid.id()+"_"+key+"_groupbydialog_grouped_li").addClass(css.dialogGroupedItem);$li.appendTo($ul);liHTML=""+"\t"+""+""+column.headerText+""+"";$li.html(liHTML);$buttonUngroup=this.grid.container().find("#"+buttonUngroupId);self._setDialogButtonAscDesc(dir==="asc",key);$li.bind({keydown:function(e){if(e.keyCode===$.ui.keyCode.ENTER||e.keyCode===$.ui.keyCode.SPACE){$li.click();e.preventDefault();e.stopPropagation()}},click:function(){self._dialogButtonAscDescClick(key,layout)}});$buttonUngroup.bind({keydown:function(e){if(e.keyCode===$.ui.keyCode.ENTER||e.keyCode===$.ui.keyCode.SPACE){e.target.click();e.preventDefault();e.stopPropagation()}},click:function(e){var noCancel,$nextLi;noCancel=self._trigger(self.events.modalDialogUngroupingColumn,e,{key:key,layout:layout,owner:self});if(noCancel){$li.remove();if(o.modalDialogGroupByOnClick===true){self.ungroupByColumn(key,layout)}else{self._setGroupByTempExpr(key,false,"",layout)}$nextLi=self._renderDialogUngroupedColumn(column,layout);$nextLi.find(":focusable").first().focus();if(self.grid.container().find("#"+self.grid.id()+"_groupby_modalDialog_groupedcolumns ul li").length===0&&self._isToRenderClearAllButton()===false){self.grid.container().find("#"+self.grid.id()+"_groupbydialog_reset_button").remove()}self._trigger(self.events.modalDialogUngroupColumn,e,{key:key,layout:layout,owner:self,groupedColumns:self._tempGroupedColumns})}e.preventDefault();e.stopPropagation()},mouseover:function(){if(!$(this).hasClass(css.dialogButtonsHover)){$(this).addClass(css.dialogButtonsHover)}},mouseout:function(){if($(this).hasClass(css.dialogButtonsHover)){$(this).removeClass(css.dialogButtonsHover)}}});return $li},_dialogButtonAscDescClick:function(key,layout){var o=this.options,noCancel,$buttonAscDesc=this.grid.container().find("#"+this.grid.id()+"_"+key+"_groupbydialog_groupedcolumns_buttonascdesc"),modalDialog=this._getModalDialog(),isAsc=$buttonAscDesc.data("isAsc"),dir=isAsc?"desc":"asc";noCancel=this._trigger(this.events.modalDialogSortGroupedColumn,null,{modalDialogElement:modalDialog,owner:this,key:key,isAsc:!isAsc,layout:layout});if(noCancel){if(o.modalDialogGroupByOnClick===true){this._setSortingTempExpr(key,dir,layout);this.grid.dataSource.settings.sorting.expressions=this._filterExpressionsByLayout(this._tempSortingExpr);this._setExprFormatter(this.grid.dataSource.settings.sorting.expressions);this._rebind()}else{this._setSortingTempExpr(key,dir,layout)}this._setDialogButtonAscDesc(!isAsc,key)}},_setDialogButtonAscDesc:function(isAsc,key){var css=this.css,$buttonAscDesc=this.grid.container().find("#"+this.grid.id()+"_"+key+"_groupbydialog_groupedcolumns_buttonascdesc"),$spanIcon=$buttonAscDesc.find("span:eq(0)"),caption,localeAttrId;if(isAsc===true){$buttonAscDesc.removeClass(css.dialogButtonDesc).addClass(css.dialogButtonAsc);$spanIcon.removeClass(css.dialogButtonDescIcon).addClass(css.dialogButtonAscIcon);caption=this._getLocaleValue("modalDialogCaptionButtonAsc");localeAttrId="modalDialogCaptionButtonAsc"}else{$buttonAscDesc.removeClass(css.dialogButtonAsc).addClass(css.dialogButtonDesc);$spanIcon.removeClass(css.dialogButtonAscIcon).addClass(css.dialogButtonDescIcon);caption=this._getLocaleValue("modalDialogCaptionButtonDesc");localeAttrId="modalDialogCaptionButtonDesc"}$buttonAscDesc.data("isAsc",isAsc).attr("title",caption).attr("data-localeid",localeAttrId)},_renderDialogButtonClearAll:function(){if(this.options.modalDialogGroupByOnClick===true){return}var self=this,resetButtonId=self.grid.id()+"_groupbydialog_reset_button",modalDialog=this._getModalDialog(),$captionButtonContainer,$resetButton;if(this.grid.container().find("#"+resetButtonId).length===0){$captionButtonContainer=modalDialog[this.options.dialogWidget]("getCaptionButtonContainer");$resetButton=$("").attr("id",resetButtonId).attr("data-localeid","modalDialogClearAllButtonLabel").appendTo($captionButtonContainer);$resetButton.igButton({labelText:self._getLocaleValue("modalDialogClearAllButtonLabel"),click:function(e){var noCancel,$groupedUL,$ungroupedUL,layouts=[];noCancel=self._trigger(self.events.modalDialogButtonResetClick,e,{modalDialogElement:modalDialog,owner:self});if(noCancel){self._clearAllGroupedColumns();self._tempSortingExpr=self.grid.dataSource.settings.sorting.expressions.slice(0);$groupedUL=self.grid.container().find("#"+self.grid.id()+"_groupby_modalDialog_groupedcolumns ul");$ungroupedUL=self.grid.container().find("#"+self.grid.id()+"_groupby_modalDialog_ungroupedcolumns ul");$groupedUL.empty();$ungroupedUL.empty();self._tempSortingExpr=[];self._tempOrderedGroupedCols=[];if(!self._currentTreeLayer){self._renderColumnsDialog(self.grid.options.columns)}else{self._findLayout(self._currentTreeLayer,self._tempOptions,layouts);if(layouts.length>0){self._renderColumnsDialog(layouts[0].columns,self._currentTreeLayer)}}$(this).remove()}}})}},_renderDialogUngroupedColumn:function(column,layout){var self=this,$li,$a,key=column.key,o=this.options,css=this.css,$ul=this.grid.container().find("#"+this.grid.id()+"_groupby_modalDialog_ungroupedcolumns ul");$li=$("
  • ").attr("id",self.grid.id()+"_"+key+"_groupbydialog_grouped_li").addClass(css.dialogUngroupedItem).append(" "+column.headerText+"");$li.appendTo($ul);$a=$li.find("a:first");$a.addClass(css.modalDialogSortByColumn);$a.html(self._getLocaleValue("modalDialogGroupByButtonText"));$a.attr("data-localeid","modalDialogGroupByButtonText");$a.attr("aria-label",self._getLocaleValue("modalDialogGroupByButtonText")+" "+column.headerText);$li.bind({click:function(e){var noCancel,$nextLi;noCancel=self._trigger(self.events.modalDialogGroupingColumn,e,{key:key,layout:layout,owner:self});if(noCancel){$li.remove();if(o.modalDialogGroupByOnClick){self.groupByColumn(key,layout)}else{self._setGroupByTempExpr(key,true,o.defaultSortingDirection,layout)}self._renderDialogButtonClearAll();$nextLi=self._renderDialogGroupedColumn(column,layout);$nextLi.find(":focusable").first().focus();self._renderDialogButtonClearAll();self._trigger(self.events.modalDialogGroupColumn,e,{key:key,layout:layout,owner:self,groupedColumns:self._tempGroupedColumns})}e.preventDefault();e.stopPropagation()}});return $li},_setGroupAreaTextContent:function($area){var text=this._getLocaleValue("emptyGroupByAreaContent"),linkText=this._getLocaleValue("emptyGroupByAreaContentSelectColumns"),linkTextCaption=this._getLocaleValue("emptyGroupByAreaContentSelectColumnsCaption"),$a,self=this;text=text.replace("{0}",""+linkText+"");$area.html(text);$a=this.grid.container().find("#"+this.grid.id()+"_link_selectcolumns");$a.bind({click:function(e){self.openGroupByDialog();e.preventDefault();e.stopPropagation()}})},_headerCellDragCancel:function(){return false},_headerCellRendered:function(event,args){var groupby=this,cs,hg,hgTemp,isMultiColumnHeaderGrid=this.grid._isMultiColumnGrid;if(args.owner.id()!==this.grid.id()){return}if(args.isMultiColumnHeader===true){return}hg=groupby.grid.element.hasClass("ui-iggrid-root")?groupby.grid.container():groupby.grid.element.closest(".ui-iggrid-root");if(hg.length===0){hg=groupby.grid.container()}else{hgTemp=hg.closest(".ui-widget");if(hgTemp.length>0){hg=hgTemp}}cs=this._getColumnSettingByKey(args.columnKey);if(!$.ig.util.isIE||$.ig.util.browserVersion>=9){args.th.find(".ui-iggrid-headertext").css("width","100%")}if(cs&&cs.allowGrouping||!cs){args.th.draggable({containment:hg,appendTo:hg,distance:5,revert:"invalid",scroll:false,cancel:"div.ui-iggrid-indicatorcontainer",helper:function(event){var th,helperDOM;if($(event.target).is("span")){groupby._spanDragging=true}else{groupby._spanDragging=false}th=$(event.target).closest("th");helperDOM=th.clone().css("overflow","hidden").width(th.width()).addClass("ui-widget ui-iggrid").wrap($("
    ").width(th.outerWidth()));if(isMultiColumnHeaderGrid){helperDOM.height(th.height())}return helperDOM.parent()},opacity:groupby.options.labelDragHelperOpacity,drag:function(event,ui){var groupbyarea;groupby._isDragging=true;groupbyarea=$(".ui-iggrid-groupbyarea",hg);if(!groupbyarea.hasClass("ui-iggrid-groupbyareahover")&&!groupby._movingEnabled){if(groupby._spanDragging){ui.helper.find("span").css("cursor","no-drop")}else{ui.helper.css("cursor","no-drop")}}else{if(groupby._spanDragging){ui.helper.find("span").css("cursor","move")}else{ui.helper.css("cursor","move")}}},stop:function(){groupby._isDragging=false}}).bind({mouseover:groupby._headerMouseOverHandler,mouseout:groupby._headerMouseOutHandler});if(args.owner.element.attr("data-childgrid")){args.th.attr("data-layout",args.owner.options.key).attr("data-grid-id",args.owner.element.attr("id"))}}},_getColumnSettingByKey:function(key){var i;for(i=0;i0){this._renderRecordsInternal(args)}else{return true}return false},_recordsRendered:function(ui,args){var currentScrollTop=$(window).scrollTop();if(!args.tbody.is(":visible")){args.tbody.css("display","")}if(this._scrolltop!==0&¤tScrollTop!==0&&this._scrolltop!==currentScrollTop){$(window).scrollTop(this._scrolltop)}},_generateGroupByRowsMarkup:function(ds,start,end){var i,html="",dsRow,rowHtml,idx,pre,app,grid=this.grid,dataRecCount=0;for(i=start;i<=end;i++){dsRow=ds[i];if(!dsRow.__gbRecord&&!dsRow.__gbSummaryRecord){rowHtml=grid._renderRecord(dsRow,i,false,dataRecCount);dataRecCount++;idx=rowHtml.indexOf(">")+1;pre=rowHtml.substring(0,idx);app=rowHtml.substring(idx);html+=pre+''+app}else if(!dsRow.__gbRecord){html+=this._renderSummaryRecord(dsRow,i)}else{html+=this._renderGroupRow(dsRow,i)}}return html},_renderRecordsInternal:function(args){var grid=this.grid,ds,noCancel=true,dataSkipWidth=0,scrollContainer,start,end,vrtWnd,tbody=grid.element.children("tbody"),html,$thDataSkip;noCancel=grid._trigger(grid.events.rowsRendering,null,args);if(noCancel){ds=this._getDataView();if(this._colspan===undefined||this._colspan===null){this._determineColspan()}if(!grid.headersTable().find("thead tr th").hasClass("ui-iggrid-expandheadercellgb")){$thDataSkip=$("").prependTo(grid.headersTable().find("thead tr:nth-child(1)")).addClass(this.css.expandHeaderCellGroupBy).addClass(this.css.headerExtraCell).attr("data-skip",true);if(grid._isMultiColumnGrid){$thDataSkip.attr("rowspan",grid._maxLevel+1)}}tbody.show();if(this.grid.options.virtualization){vrtWnd=args.vrtWnd;start=vrtWnd.start;end=vrtWnd.end;if(start===undefined){start=0;end=ds.length-1}if(start!==undefined&&end===undefined){end=start;if(end>ds.length-1){end=ds.length-1}start=0}if(start<0||start>ds.length-1){start=0;grid._startRowIndex=0}if(!start){grid._virtualRowCount=grid._determineVirtualRowCount();if(grid._virtualRowCount>ds.length){grid._virtualRowCount=ds.length}end=grid._virtualRowCount}else if(start>=end){grid._virtualRowCount=grid._determineVirtualRowCount();end=start+grid._virtualRowCount}if(end>ds.length-1){end=ds.length-1}if(!start&&!end&&ds.length){grid._virtualRowCount=grid._determineVirtualRowCount();grid._totalRowCount=grid._getTotalRowCount();if(grid._virtualRowCount>grid._totalRowCount){grid._virtualRowCount=grid._totalRowCount}end=grid._virtualRowCount-1}}else{start=0;end=ds.length-1}this._startRowIndex=start;this._endRowIndex=end;html=this._generateGroupByRowsMarkup(ds,start,end);this._expandedRowCount=0;if(window.MSApp===undefined){tbody.html(html)}else{MSApp.execUnsafeLocalFunction(function(){tbody.html(html)})}if(grid.options.width===null){grid._setContainerWidth(grid.container())}else{grid._updateGridContentWidth()}if(grid._persistVirtualScrollTop&&grid._prevFirstVisibleTROffset){if(grid.options.virtualization!==true&&grid.options.rowVirtualization!==true){grid.scrollContainer()[0].scrollTop=grid._prevFirstVisibleTROffset}}scrollContainer=grid._virtualcontainer().length>0?grid._virtualcontainer():grid.scrollContainer();if(this.options.groupedColumns.length>0&&scrollContainer.length>0&&grid.element.width()>scrollContainer.width()&&(grid.options.virtualization===true||grid.options.rowVirtualization===true)){$(grid.element).find(">colgroup>col[ data-skip=true ]").each(function(){dataSkipWidth+=parseInt(this.style.width,10)});grid._setGridContentWidth(grid._calculateContainerWidth(false)+dataSkipWidth)}tbody.find("[data-id='"+this._focusCellId+"']").find(">td[gbexpandcell]").focus();this._focusCellId=null;grid._buildVirtualDomForContinuousVirtualization();this.grid._trigger(this.grid.events.rowsRendered,null,{owner:this.grid,tbody:tbody})}},_encodeSummaryParams:function(owner,params){var cs=this.options.columnSettings,i,j,key;for(i=0;i0){for(j=0;j0?parseInt(this.options.indentation,10)*indent:0,cscol,htext,text,state,css,i,cs=this.options.columnSettings,shtml="",tmpl,title,j,hide=false;if(!collapsed){css=this.css.groupByExpandCellExpanded;title=this._getLocaleValue("collapseTooltip")}else{css=this.css.groupByExpandCellCollapsed;title=this._getLocaleValue("expandTooltip");if(indent>0&&!this.grid.options.virtualization){hide=true}}if(this.options.expansionIndicatorVisibility){expcell=""}else{expcell=""}tmpl=this.options.groupedRowTextTemplate;col=this.grid.columnByKey(field);if(colCustomSetting&&colCustomSetting.groupLabelFormatter){if(typeof colCustomSetting.groupLabelFormatter==="function"){val=colCustomSetting.groupLabelFormatter(val)}else{val=window[colCustomSetting.groupLabelFormatter](val)}}else if(this.options.useGridColumnFormatter===true){val=this.grid._renderCell(val,col,gbRec.recs&&gbRec.recs.length?gbRec.recs[0]:null," ")}tmpl=tmpl.replace(new RegExp("\\$\\{key\\}","g"),col.headerText);if(customName){text=tmpl.replace(new RegExp("\\$\\{val\\}","g"),customName).replace(new RegExp("\\$\\{count\\}","g"),"__sum__")}else{text=tmpl.replace(new RegExp("\\$\\{val\\}","g"),val).replace(new RegExp("\\$\\{count\\}","g"),"__sum__")}if(!collapsed){state="expanded"}else{state="collapsed"}for(i=0;i"+text+"";tr=""+expcell+textcell+"";tr=this._calcRealSummary(tr,gbRec.fieldName,gbRec.val,gbRec.recs,gbRec.recs);tr=tr.replace(new RegExp("__sum__","g"),gbRec.recs.length);return tr},_getSummaryIconTitle:function(colHeader,groupVal){return this._getLocaleValue("summaryIconTitle").replace("{0}",colHeader).replace("{1}",groupVal)},_renderSummaryRecord:function(gbRec,rowInd){var grid=this.grid,cols=grid.options.columns,indent=gbRec.level-1,margin=indent>0?parseInt(this.options.indentation,10)*indent:0,tr="",groupVal=gbRec.groupValue,colIndex,summIndex,summLabel,summValue,colSetting,i,emptyCells,compareFunc,col,cscol,colKey,colHeader,summaryIconTitle;tr+="";colKey=gbRec.id.split(":")[indent*2];cscol=this.grid.columnByKey(colKey);colHeader=cscol?cscol.headerText:colKey;if(cscol&&(cscol.dataType==="date"||cscol.dataType==="time")){groupVal=new Date(parseInt(groupVal,10))}groupVal=this.grid._renderCell(groupVal,cscol);summaryIconTitle=this._getSummaryIconTitle(colHeader,groupVal);tr+=""+""+""+""+""+"";emptyCells=this.grid.headersTable().find("colgroup").children("[ data-skip ]").length-1;for(i=0;i"}compareFunc=function(target){return target.columnKey===col.key};for(colIndex=0;colIndex";if(!gbRec.summaries[col.key]){tr+="";continue}for(summIndex=0;summIndex"+colSetting[0].groupSummaries[summIndex].summaryTemplate.replace("{label}",summLabel).replace("{value}",summValue)+"
    "}tr+=""}tr+="";return tr},_renderNewRow:function(rec){var tbody=this.grid.element.children("tbody"),dataRows=tbody.children("tr:not([ data-container='true' ],[ data-grouprow='true' ])"),index=dataRows.length,row;row=$(this.grid._renderRecord(rec,index));dataRows.last().find("td."+this.css.nonGroupRowEmptyCell).removeClass(this.css.groupByLastEmptyCell);if(this.groupByColumns().length>0){$("").addClass(this.css.nonGroupRowEmptyCell).addClass(this.css.groupByLastEmptyCell).attr("tabindex",this.grid.options.tabIndex).attr("data-skip",true).prependTo(row)}if(this.grid.options.virtualization){this.grid._buildVirtualDomForContinuousVirtualization()}MSApp.execUnsafeLocalFunction(function(){tbody.append(row)})},_summaries:function(contents,data,gcval,allGroupData){var i,j,cs=this.options.columnSettings,s,ret=contents,arr,val,argsData,format;if(contents&&contents.indexOf&&contents.indexOf("$$value$$")===-1){return contents}for(i=0;i0){arr=this._arr(cs[i].columnKey,data);for(j=0;j0){indent+=indentation*this.options.groupedColumns.length;if(this.options.indentation&&this.options.indentation.indexOf&&this.options.indentation.indexOf("%")>=0){indent=this.options.indentation}this._indent=indent;this._addOrUpdateDataSkipCol(indent)}$cntnr=this.grid.container();if(this._isgroup!==null&&this._isgroup!==undefined&&$cntnr.length&&$cntnr[0].style.width&&!this.grid.options.width){if(this._isgroup===true){if(this.grid.options.virtualization!==true){$cntnr.width(parseInt($cntnr.width(),10)+indentation)}}else{$cntnr.width(parseInt($cntnr.width(),10)-indentation);indentation*=-1}if(this.grid.options.virtualization===true&&this.grid.options.virtualizationMode==="continuous"){this.grid._setDisplayContainerWidth(this.grid._getDisplayContainerWidth()+indentation);this.grid._setVHeadersWidth(this.grid._getVHeadersWidth()+indentation)}this._isgroup=null}this._tbody=args.tbody;if(!this._isgroup&&this.groupByColumns().length>0){this._groupAreaList()}event.stopPropagation()},_checkGroupExists:function(key){var exists=false,i;for(i=0;i0&&!this.grid.options.width){this.grid.container().width(parseInt(this.grid.container().width(),10)-indent)}this.grid.dataSource.settings.sorting.expressions=[];this.options.groupedColumns=[];this._orderedGroupedCols=[];if(!this._hierarchical){cols=[]}else{for(i=0;i0?"asc":"desc";if(layout){groupby._findLayout(layout,groupby.grid.options,layouts);lobj=layouts[0];for(i=0;lobj&&igrid._avgRowHeight){grid._avgRowHeight=avgRowHeight;grid._updateVirtualScrollContainer()}}else{$scrCntnr=grid.scrollContainer();scrTop=$scrCntnr.scrollTop();grid._renderData();$scrCntnr.scrollTop(scrTop)}this.grid._adjustLastColumnWidth(false);this._saveCollapseStates(grid)},_toggleGroup:function(event){var parentrow=$(event.target).closest("tr"),grid,exp=parentrow.attr("data-state")!=="expanded";if(this._hierarchical){grid=parentrow.closest(".ui-iggrid-table").data("igGrid")}else{grid=this.grid}this._focusCellId=parentrow.attr("data-id");this._expandCollapseRow(parentrow.attr("data-id"),exp,grid,parentrow);event.stopPropagation()},_groupAreaList:function(){var area=$(".ui-iggrid-groupbyarea",this.grid.container()),layout,allgrouped=[],dropFunc,mousedownFunc,list=area.find("ul"),i,groupby=this,css,key,item,itemEdge,helperFunc,overFunc,outFunc,text;allgrouped=this.groupByColumns();if(list.length>0){list.empty()}else{list=$("
      ").appendTo(area).addClass("ui-iggrid-grouparealist")}helperFunc=function(event){var li=null;if($(event.target).is("li")){li=$(event.target)}else{li=$(event.target).closest("li")}li=li.clone();li.find(".ui-iggrid-groupbylabelrightedgeend").remove();li.find(".ui-iggrid-groupbylabelrightedge").remove();li.find(".ui-iggrid-groupbyremovebutton").remove();li.attr("data-dragging",true);return li};overFunc=function(event,ui){var $li;if(!ui.draggable.hasClass("ui-iggrid-groupedcolumnlabel")){return false}if(ui.draggable.attr("data-key")===$(this).attr("data-key")){return false}if(groupby._thOver){$li=ui.draggable.closest("ul").find("li[ data-key="+groupby._thOver+" ]");if($li.length>0&&$li.hasClass("ui-iggrid-groupbydroppableedge")){$li.removeClass("ui-iggrid-groupbydroppableedge")}}groupby._thOver=$(event.target).attr("data-key");$(event.target).addClass("ui-iggrid-groupbydroppableedge")};outFunc=function(event,ui){if(!ui.draggable.hasClass("ui-iggrid-groupedcolumnlabel")){return false}if(ui.draggable.attr("data-key")===$(this).attr("data-key")){return false}$(event.target).removeClass("ui-iggrid-groupbydroppableedge")};dropFunc=function(event,ui){var parent,$dragged,$target;$(this).removeClass("ui-iggrid-groupbydroppableedge");if(!ui.draggable.hasClass("ui-iggrid-groupedcolumnlabel")){return}if(ui.draggable.attr("data-key")!==$(this).attr("data-key")){parent=$(this).closest("ul");$target=$(this);$dragged=ui.draggable;if($dragged.index()>$target.index()){$dragged.insertBefore($target)}else{$dragged.insertAfter($target)}parent.find("li[ data-dragging=true ]").remove();parent.find("li").removeClass("ui-iggrid-groupbydroppableedge");groupby._regroup();groupby._groupAreaList();event.preventDefault();event.stopPropagation();return false}return};mousedownFunc=function(event){event.preventDefault();event.stopPropagation();return false};for(i=0;i").appendTo(list).addClass(this.css.groupedColumnLabel).css("float","left").attr("data-key",key).attr("data-layout",layout||"").bind({mouseup:$.proxy(this._changeSortState,this)}).draggable({containment:"body",appendTo:"parent",distance:5,revert:"invalid",helper:helperFunc}).droppable({accept:"li",tolerance:"touch",over:overFunc,out:outFunc,drop:dropFunc});if(this.options.groupByLabelWidth!==null){item.width(this.options.groupByLabelWidth)}itemEdge=$("").appendTo(item).css({"float":"right"}).addClass(this.css.groupedColumnLabel).addClass(this.css.groupedColumnLabelRightEdgeEnd);itemEdge.attr("data-marker","edge");item.prev().find("span[ data-marker ]").removeClass(this.css.groupedColumnLabelRightEdgeEnd).addClass(this.css.groupedColumnLabelRightEdge);if(layout){$(""+text+"").appendTo(item).addClass(this.css.groupedColumnLabelText);$(""+layout+"").prependTo(item).addClass(this.css.groupedColumnLayoutLabel)}else{$(""+text+"").appendTo(item)}$("").appendTo(item).addClass(css);if(!$.ig.util.isTouch){$("").appendTo(item).addClass("ui-iggrid-groupbyremovebutton").attr("data-localeid","removeButtonTooltip").attr("data-localeattr","title").attr("title",groupby._getLocaleValue("removeButtonTooltip")).bind({mouseup:$.proxy(groupby._removeButtonClick,groupby),mousedown:mousedownFunc})}if($.ig.util.isIE7&&item.width()>300){item.width(260)}else{item.width(Math.ceil(item.width())+22)}}list.children().bind({mouseover:$.proxy(this._showRemoveButton,this),mouseout:$.proxy(this._hideRemoveButton,this)})},_changeSortState:function(event){var li=$(event.target).closest("li"),key=li.attr("data-key"),i,layout=li.attr("data-layout"),layouts,eArgs,j,gc=this._orderedGroupedCols,s=this.grid.dataSource.settings.sorting.expressions,settings,lobj,noCancel;for(i=0;i0){for(i=0;i0){for(i=0;i0){if(prepend===true){$("").addClass(this.css.footerExtraCell).prependTo(row).attr("data-skip",true)}else{$("").addClass(this.css.footerExtraCell).appendTo(row).attr("data-skip",true)}}},_renderExtraHeaderCells:function(row,colgroup,prepend){if(this.options.groupedColumns.length>0){if(prepend===true){$("").prependTo(row).addClass(this.css.headerExtraCell).attr("data-skip",true);if(colgroup){$("").prependTo(colgroup).attr("data-skip",true).css("width",this.options.indentation)}}else{$("").appendTo(row).addClass(this.css.headerExtraCell).attr("data-skip",true);if(colgroup){$("").appendTo(colgroup).attr("data-skip",true).css("width",this.options.indentation)}}}},_addOrUpdateDataSkipCol:function(width){var $colgroup,attrs,$col,$htbl=this.grid.headersTable(),$ftbl=this.grid.footersTable();$colgroup=this.grid.element.children("colgroup");$col=$colgroup.children("[data-groupby-col]");if(!$col.length){attrs={"data-skip":"true","data-groupby-col":"true"};$("").prependTo($colgroup).attr(attrs).width(width);if($htbl.attr("id")!==this.grid.element.attr("id")){$("").prependTo($htbl.children("colgroup")).attr(attrs).width(width)}if($ftbl.attr("id")!==this.grid.element.attr("id")){$("").prependTo($ftbl.children("colgroup")).attr(attrs).width(width)}}else{$col.width(width);$htbl.find(">colgroup>col[data-groupby-col]").width(width);$ftbl.find(">colgroup>col[data-groupby-col]").width(width)}},_columnsCollectionModified:function(event,args){if(args.owner.id()!==this.grid.id()){return}args.tbody=this.grid.element.children("tbody");if(this.options.groupedColumns.length>0){this._addOrUpdateDataSkipCol(this._indent);if(this.grid.options.width===null){this.grid._setContainerWidth(this.grid.container())}else{this.grid._updateGridContentWidth()}}this._dataEmpty(event,args)},_onUIDirty:function(){if(this.options.persist){return}this.ungroupAll()},_saveSortingExpressions:function(){if(this.options.persist){this.grid._savePersistenceData(this.grid.dataSource.settings.sorting.expressions,"sorting");this._groupedColumns=this._orderedGroupedCols;this._optionsGC=this.options.groupedColumns}this.grid._fireInternalEvent("_sortedColumnsChanging",this.grid.dataSource.settings.sorting.expressions)},_saveCollapseStates:function(grid){grid=grid||this.grid;grid._savePersistenceData(grid.dataSource._gbCollapsed,"gbCollapsed",grid.element[0].id)},_getSortingExpressions:function(){return this.grid._getPersistenceData("sorting")},_restoreGroupBy:function(){var se=this._getSortingExpressions(),col,layouts,lobj,i,key,nse=[];this.grid.dataSource._gbCollapsed=this.grid._getPersistenceData("gbCollapsed",this.grid.element[0].id);if(this._groupedColumns){this._orderedGroupedCols=this._groupedColumns}if(this._optionsGC){this.grid.dataSource.settings.sorting.expressions=se;this.grid.dataSource.settings.sorting.defaultFields=se;this.options.groupedColumns=this._optionsGC;if(this.grid._hasUnboundColumns&&this.options.type==="local"){nse=[];for(i=0;i0&&this.grid._isDataBoundCalled){this.grid._trigger("headerExtraCellsModified",null,{owner:this})}},_filterExpressionsByLayout:function(exprs,layout){exprs=exprs||[];layout=!layout||layout===""?null:layout;var i,len=exprs.length,res=[];for(i=0;icol:not([ data-hiding ])").length-1}else{if(this.grid.options.showHeader){this._colspan=this.grid.headersTable().find("thead > tr:first").children("th:not(.ui-iggrid-expandheadercellgb)").length}else{this._colspan=this.grid.container().find("#"+this.grid.id()+" colgroup:first>col").length-1}}},_removeOverridenFunctions:function(){if(this._getDataViewHandler){this.grid._getDataView=this._getDataViewHandler}if(this._renderRecordsForVirtRowCountHandler){this.grid._renderRecordsForVirtRowCount=this._renderRecordsForVirtRowCountHandler}if(this._renderNewRowHandler){this.grid.renderNewRow=this._renderNewRowHandler}},_overrideFunctions:function(){if(!this._getDataViewHandler){this._getDataViewHandler=$.proxy(this.grid._getDataView,this.grid);this.grid._getDataView=$.proxy(this._getDataView,this)}if(!this._renderRecordsForVirtRowCountHandler){this._renderRecordsForVirtRowCountHandler=$.proxy(this.grid._renderRecordsForVirtRowCount,this.grid);this.grid._renderRecordsForVirtRowCount=$.proxy(this._renderRecordsForVirtRowCount,this)}if(!this._renderNewRowHandler){this._renderNewRowHandler=$.proxy(this.grid.renderNewRow,this.grid);this.grid.renderNewRow=$.proxy(this._renderNewRow,this)}},_renderRecordsForVirtRowCount:function(ds,rowNumber,rrFunc){var data=ds.slice(0,rowNumber),html;if(this._colspan===undefined||this._colspan===null){this._determineColspan()}if(this.options.groupedColumns.length>0){html=this._generateGroupByRowsMarkup(data,0,data.length-1)}else{html=this._renderRecordsForVirtRowCountHandler.call(this,ds,rowNumber,rrFunc)}return html},_getDataView:function(){if(this.options.groupedColumns.length>0){return this.grid.dataSource.groupByDataView()}return this._getDataViewHandler()},_removeInitCallbacks:function(){var i;for(i=0;this.grid._headerInitCallbacks&&i0){bEmptySummaries=false;summaries=this._getApplicableSummaries(cols[i].dataType,this.options.groupSummaries,defaultSummaries);columnDefault.groupSummaries.push.apply(columnDefault.groupSummaries,summaries)}resSummariesSettings[cols[i].key]=columnDefault}getColSettingsByKey=function(colKey){return colSettings.filter(function(target){return target.columnKey===colKey})};for(i=0;i0){bEmptySummaries=false;summaries=this._getApplicableSummaries(cols[i].dataType,columnSetting.groupSummaries,defaultSummaries);resSummariesSettings[cols[i].key].groupSummaries=summaries}else if($.isArray(columnSetting.groupSummaries)){resSummariesSettings[cols[i].key].groupSummaries=[]}}for(i=0;i0){for(j=0;j0&&this.grid.options.key){ layoutGrouped=[];for(i=0;i0){this._addOrUpdateDataSkipCol(this._indent);this.grid._adjustLastColumnWidth(true)}},_checkGridNotSupportedFeatures:function(){var gridOptions=this.grid.options;if((gridOptions.virtualization===true||gridOptions.rowVirtualization===true||gridOptions.columnVirtualization===true)&&gridOptions.virtualizationMode==="fixed"){throw new Error(this._getLocaleValue("fixedVirualizationNotSupported"))}}});$.extend($.ui.igGridGroupBy,{version:"19.1.20"});return $});