").addClass(css.button).attr({unselectable:"on",title:this._getLocaleValue("dropDownButtonTitle"),"data-localeid":"dropDownButtonTitle","data-localeattr":"title"}),$dropDownBtnIcon=$("
").addClass(css.buttonIcon),$dropDownCont=$("
").addClass(css.dropDown).width(options.dropDownWidth),$dropDownListCont=$("
").addClass(css.list),$dropDownList=$("
").addClass(css.listItemHolder),$dropDownScrollCont=$("").addClass(css.scrollHolder).attr("unselectable","on"),$dropDownScroll=$("
").addClass(css.scroll).attr("unselectable","on"),$loading=$("
").addClass(css.loading);switch(options.mode){case"dropdown":$combo.addClass(css.dropDownMode);break;case"readonlylist":$combo.addClass(css.readOnlyListMode);break;case"readonly":$combo.addClass(css.readOnlyMode);$comboWrapper.addClass(css.disabled);break}$fieldCont.addClass(css.fieldHolderLTR);if(!_options.ltr){$dropDownList.addClass(css.dropDownListRTL);$dropDownBtnCont.addClass(css.buttonRTL);$clearCont.addClass(css.clearRTL)}else{$dropDownBtnCont.addClass(css.buttonLTR)}if(options.grouping.key){$dropDownList.addClass(css.group)}$clearIcon.appendTo($clearCont);$dropDownBtnIcon.appendTo($dropDownBtnCont);$dropDownList.appendTo($dropDownListCont);$dropDownListCont.appendTo($dropDownCont);if(typeof options.headerTemplate==="string"){this._renderHeaderTemplate(css,options,$dropDownCont)}if(typeof options.footerTemplate==="string"){this._renderFooterTemplate(this.css,this.options,$dropDownCont,this)}if(options.virtualization){$dropDownListCont.addClass(css.listOverflow);$dropDownScrollCont.insertBefore($dropDownList);$dropDownScroll.appendTo($dropDownScrollCont)}if(this.element.is("input")){$input.wrap($fieldCont);$fieldCont=$input.parent();$fieldCont.wrap($combo);$combo=$fieldCont.parent();$combo.wrap($comboWrapper);$comboWrapper=$combo.parent();$clearCont.prependTo($combo);$dropDownBtnCont.prependTo($combo)}else{$input.appendTo($fieldCont);$dropDownBtnCont.appendTo($combo);$clearCont.appendTo($combo);$fieldCont.appendTo($combo);$combo.appendTo($comboWrapper)}$clearCont.hide();$hiddenInput.attr("name",options.inputName).appendTo($combo);$dropDownCont.css({height:0,top:-99999,left:-99999,overflow:"hidden"}).addClass(css.noBorder);if(options.dropDownAttachedToBody){$dropDownCont.appendTo($("body"))}else{$dropDownCont.appendTo($comboWrapper)}if(this.element.is("select")){$comboWrapper.insertBefore(this.element)}$comboWrapper.outerWidth(options.width);$comboWrapper.outerHeight(options.height);_options.$comboWrapper=$comboWrapper;_options.$combo=$combo;_options.$input=$input;_options.$hiddenInput=$hiddenInput;_options.$fieldCont=$fieldCont;_options.$clearCont=$clearCont;_options.$clearIcon=$clearIcon;_options.$dropDownBtnCont=$dropDownBtnCont;_options.$dropDownBtnIcon=$dropDownBtnIcon;_options.$dropDownCont=$dropDownCont;_options.$dropDownListCont=$dropDownListCont;_options.$dropDownList=$dropDownList;_options.$loading=$loading;this._setInputVal($input.val());if(options.virtualization){_options.$dropDownScrollCont=$dropDownScrollCont;_options.$dropDownScroll=$dropDownScroll}this._setupInput();if(options.disabled){this._disableCombo(true)}this._triggerRendered()},_itemInnerMarkup:function(data){var unwrappedData,dataItem,unwrappedDataItem;unwrappedData=this._unwrapData(data);dataItem=unwrappedData[this.options.textKey];unwrappedDataItem=this._unwrapData(dataItem);unwrappedDataItem=this._formatItem(unwrappedDataItem);unwrappedDataItem=$.ig.encode(unwrappedDataItem);return this.options.itemTemplate?$.ig.tmpl(this.options.itemTemplate,data):unwrappedDataItem},_formatItem:function(item){if($.ig&&$.ig.formatter){if(this.options.format==="auto"&&($.type(item)==="date"||$.type(item)==="number")){item=$.ig.formatter({val:item,reg:$.ig.regional[this.options.regional]})}else if(this._formatEnabled()){item=$.ig.formatter({val:item,format:this.options.format,reg:$.ig.regional[this.options.regional]})}}return item},_formatEnabled:function(){return!(this.options.format===""||this.options.format===null||this.options.format==="none")},_itemsToRenderCount:function(){return this._isPossibleToVirtualize()?this.options.visibleItemsCount:this.options.dataSource.dataView().length},_sortDataSource:function(){var options=this.options;options.dataSource.sort([{fieldName:options.grouping.key}],options.grouping.dir)},_groups:function(data){var prevGroup,curGroup,curData,len,i,options=this.options,groupKey=options.grouping.key,groups=[];data=data||options.dataSource.dataView();for(i=0,len=data.length;i';if(this._checkBoxesEnabled()){markup+=this._options.checkboxItemTemplate.replace("{css.checkbox}",css.checkbox).replace("{css.checkboxOff}",css.checkboxOff).replace("{css.listItemTextWithCheckbox}",css.listItemTextWithCheckbox).replace("{innerMarkup}",innerMarkup)}else{markup+=innerMarkup}markup+="";return markup},_itemsMarkup:function(){var i,dataView=this.options.dataSource.dataView(),dataLen=this._itemsToRenderCount(),markup="";for(i=0;i
").appendTo(container).attr("id",id+"_dialog");dialog[this.options.dialogWidget]({containment:containment,locale:{modalDialogCaptionText:titleLabel,buttonApplyText:searchButtonLabel,buttonCancelText:cancelButtonLabel},modalDialogWidth:opts.filterDialogWidth,modalDialogHeight:opts.filterDialogHeight,gridContainer:this.grid._rootContainer(),modalDialogOpening:$.proxy(this._filterDialogOpening,this),modalDialogOpened:$.proxy(this._filterDialogOpened,this),modalDialogMoving:$.proxy(this._filterDialogMove,this),modalDialogClosing:$.proxy(this._filterDialogClosing,this),modalDialogClosed:$.proxy(this._filterDialogClosed,this),buttonOKClick:$.proxy(this._filterDialogOkClicked,this),tabIndex:this._getNextTabIndex()});captionsContainer=dialog[this.options.dialogWidget]("getCaptionButtonContainer");closeButton=$("
").appendTo($("
").appendTo(captionsContainer).attr({href:"#",role:"button","data-localeid":"filterDialogCloseLabel","data-localeattr":"title",title:this._getLocaleValue("filterDialogCloseLabel"),tabindex:this._getNextTabIndex()}).addClass("ui-dialog-titlebar-close ui-corner-all")).bind({click:$.proxy(this._closeFilterDialog,this)}).addClass("ui-icon ui-icon-closethick");noCancel=this._trigger(this.events.filterDialogContentsRendering,null,{dialogElement:dialog,owner:this});if(noCancel){dialogContent=dialog[this.options.dialogWidget]("getContent");condObj={label1:this._getLocaleValue("filterDialogConditionLabel1"),label2:this._getLocaleValue("filterDialogConditionLabel2")};dropDownData=[{text:this._getLocaleValue("filterDialogAllLabel"),dataLocale:"filterDialogAllLabel",value:"all"},{text:this._getLocaleValue("filterDialogAnyLabel"),dataLocale:"filterDialogAnyLabel",value:"any"}];if(this.options.filterDialogAddConditionTemplate&&typeof this.options.filterDialogAddConditionTemplate==="string"){condElement=$(this._fTmplWrappers[this.grid.id()+"_filterDialogAddConditionTemplate"](condObj))}else{condElement=$("
")}condElement.appendTo(dialogContent).addClass(this.css.filterDialogAddCondition);if(this.options.filterDialogAddConditionDropDownTemplate&&typeof this.options.filterDialogAddConditionDropDownTemplate==="string"){condDropDown=$(this._fTmplWrappers[this.grid.id()+"_filterDialogAddConditionDropDownTemplate"](dropDownData));condDropDown.appendTo(condElement.find("div").addClass(this.css.filterDialogAddConditionDropDown).find("select"))}else{condElement.find("div").addClass(this.css.filterDialogAddConditionDropDown).find("input").igTextEditor({language:this.grid.options.language,preventSubmitOnEnter:true,listItems:[dropDownData[0].text,dropDownData[1].text],button:"dropdown",isLimitedToListValues:true,allowNullValue:false,buttonType:"dropdown",height:24,width:"80px",value:dropDownData[0].text,dropDownAttachedToBody:true})}addClearButtons=$("
").appendTo(dialogContent);$(toStaticHTML('
')).attr({tabindex:this._getNextTabIndex(),"data-af-add-button":true,"data-localeid":"filterDialogAddLabel","data-localeattr":"value"}).appendTo($("
").appendTo(addClearButtons).addClass(this.css.filterDialogAddButton)).igButton({labelText:this._getLocaleValue("filterDialogAddLabel"),width:this.options.filterDialogAddButtonWidth,tabindex:this._getNextTabIndex()}).bind({click:$.proxy(this._addFilterFromDialog,this)});$("
").attr({id:id+"_afd_clearall",tabindex:this._getNextTabIndex(),"data-af-clear-all-button":true}).appendTo(addClearButtons).css("float","right").igButton({labelText:this._getLocaleValue("filterDialogClearAllLabel"),click:$.proxy(this._filterDialogClearAll,this),css:{buttonClasses:this.css.filterDialogClearAllButton,buttonHoverClasses:"",buttonActiveClasses:"",buttonFocusClasses:"",buttonLabelClass:""}});$("
").appendTo(dialogContent).attr("id",dialog.attr("id")+"_error").hide().text(this._getLocaleValue("filterDialogErrorLabel")).addClass("ui-widget ui-state-error ui-igvalidator-label");$("
").appendTo(dialogContent).addClass(this.css.filterDialogFiltersTable).css("width","100%").css("border-collapse","collapse").css("border-spacing",0);if(this._hc===true){limit=this.grid._rootContainer().find("#"+this.grid.element[0].id.split("_")[0]+"_container")}else{limit=this.grid._rootContainer()}dialog.bind({keydown:function(e){var tabElems,first,last;if(e.keyCode===$.ui.keyCode.ESCAPE){f._closeFilterDialog(e)}if(e.keyCode!==$.ui.keyCode.TAB){return}tabElems=$(":tabbable",dialog);first=tabElems.first();last=tabElems.last();if(e.target===last[0]&&!e.shiftKey){first.focus(1);return false}if(e.target===first[0]&&e.shiftKey){last.focus(1);return false}},drag:function(){dialog.find("input[data-af-col]").igTextEditor("hideDropDown")}});dialog.find(".ui-dialog-content").bind({scroll:function(){dialog.find("input[data-af-col]").igTextEditor("hideDropDown")}});this._trigger(this.events.filterDialogContentsRendered,null,{dialogElement:dialog,owner:this})}},_setResizableEnv:function(){var initH,e=this._getFilterDialog(),rCont=e.find(">.ui-dialog-content"),hCont=e.find(">.ui-dialog-titlebar"),bCont=e.find(">.ui-dialog-buttonpane");if(!this._resizeCont){this._resizeCont=rCont;initH=e.height()-hCont.outerHeight()-(rCont.outerHeight()-rCont.height())-bCont.outerHeight();this._setFilterDialogContentHeight(initH)}this._resizeCont=rCont;if(e[0].style.height===""){e.css("height",e.height())}this._trigger(this.events.filterDialogOpened,null,{dialog:e,owner:this})},_resizeHandler:function(event,ui){var u=ui.originalElement,heightDifference,e=this._getFilterDialog(),rCont=e.find(">.ui-dialog-content"),hCont=e.find(">.ui-dialog-titlebar"),bCont=e.find(">.ui-dialog-buttonpane"),pad=rCont.outerHeight()-rCont.height();heightDifference=hCont.outerHeight(true)+bCont.outerHeight(true)+pad;this._setFilterDialogContentHeight(u.height()-heightDifference)},_setFilterDialogContentHeight:function(height){this._resizeCont.css({height:height+"px"})},_changeFilterCondition:function(e){var editor,condition,$target=$(e.target),$row=$target.closest("[data-af-row]");if(!$row.length){$row=$target.closest("tr")}condition=this._getColumnCondByText(e.target.value,this._dialogCurrentColumn);editor=this._getDialogExprSelByRow($row);this._setFilterDialogInput(editor,condition)},_setFilterDialogInput:function(editor,condition){var editorProvider=editor.data("provider"),requiresEntry=this.requiresFilteringExpression(condition);if(!editorProvider){return}this._setEditorOption(editorProvider.getEditor(),"readOnly",!requiresEntry);if(!requiresEntry){this._editorValueForCondition(condition,editorProvider)}},_getDialogColSelByRow:function($frow){var $elem=$frow.find("[data-af-col]");if(!$elem.length){$elem=$frow.find("td:first").find("input").first()}return $elem},_getDialogCondSelByRow:function($frow){var $elem=$frow.find("[data-af-cond]");if(!$elem.length){$elem=$frow.find("td:nth-child(2)").find("input").first()}return $elem},_getDialogExprSelByRow:function($frow){var $elem=$frow.find("[data-af-expr]");if(!$elem.length){$elem=$frow.find("td:nth-child(3)").find("input").first()}return $elem},_getDialogRmvBtnByRow:function($frow){var $elem=$frow.find("[data-af-rmv]");if(!$elem.length){$elem=$frow.find("td:last").find("span")}return $elem},_getNextTabIndex:function(){var gti=this.grid.options.tabIndex;return gti+1},_getIntialConditionForCol:function(colSettings,key){var colSetting=colSettings.filter(function(obj){return obj.columnKey===key})[0],cond=colSetting.condition,condList=colSetting.conditionList||this._populateConditionsList(key,this._getColType(key)).map(function(obj){return obj.condition});if(colSetting.customConditions&&colSetting.customConditions.hasOwnProperty(cond)){cond=key+"_"+cond}if(condList){if(condList.indexOf(cond)!==-1){return condList[condList.indexOf(cond)]}else{if(cond===this._getDefaultCondition(this._getColType(key))){return condList[0]}else{throw new Error($.ig.util.stringFormat(this._getLocaleValue("initialConditionIsNotInTheConditionsListArrayOrIsNotInTheDefaultConditions"),key))}}}return this._getDefaultCondition(this._getColType(key))},_addFilterFromDialog:function(e,expression){var tableBody=this.grid._rootContainer().find("#"+this.grid.container().attr("id")+"_dialog table tbody"),cs=this.options.columnSettings,rows,filterObj={},filterRow,colKeys,i,noCancel=true,field,type,cnd,defaultValue,condition,col,conds,shouldDisable=false,input,editorWidth=this.options.filterDialogFilterDropDownDefaultWidth||120;noCancel=this._trigger(this.events.filterDialogFilterAdding,null,{filtersTableBody:tableBody,owner:this});if(noCancel){rows=this._getFilterDialog().find("[data-af-row]");if(!rows.length){rows=tableBody.children()}if(rows.length>=this.options.filterDialogMaxFilterCount){this.grid._rootContainer().find("#"+this.grid.container().attr("id")+"_dialog_error").show();return}if(expression===undefined){col=this.grid.columnByKey(this._dialogCurrentColumn);field=col.headerText;if(this._dialogCurrentType==="object"){this._dialogCurrentType=this._getColType(this._dialogCurrentColumn)}type=this._dialogCurrentType}else{col=this.grid.columnByKey(expression.fieldName);if(col!==null){field=col.headerText;if(col.dataType==="object"){type=this._getColType(expression.fieldName)}else{type=col.dataType}}condition=this._resolveConditionNameFromExpression(expression);defaultValue=expression.expr;if((type==="date"||type==="time")&&$.type(defaultValue)==="number"&&this.grid.options.enableUTCDates){defaultValue=new Date(defaultValue)}}if(this.options.filterDialogFilterTemplate&&typeof this.options.filterDialogFilterTemplate==="string"){filterRow=$(this._fTmplWrappers[this.grid.id()+"_filterDialogFilterTemplate"](filterObj))}else{filterRow=$("
| "+" | "+" | |
")}filterRow.appendTo(tableBody);colKeys=[];for(i=0;i
0){cnd.igTextEditor("value",conds.filter(function(c){return c.condition===condition})[0].text)}cnd.attr("disabled",shouldDisable);cnd.bind("igtexteditordropdownitemselected",$.proxy(this._changeFilterCondition,this));input=this._getDialogExprSelByRow(filterRow);this._populateFilterDialogInput(input,type,defaultValue,col,condition,shouldDisable);input.attr("disabled",shouldDisable);if(cnd.length&&!this.requiresFilteringExpression(condition)){this._changeFilterCondition({target:cnd[0],initCond:this._getIntialConditionForCol(cs,col.key)})}this._getDialogRmvBtnByRow(filterRow).attr("tabindex",this._getNextTabIndex()).addClass(this.css.filterDialogFilterRemoveButton).bind({mousedown:$.proxy(this._removeFilterFromDialog,this)});this._trigger(this.events.filterDialogFilterAdded,null,{filter:filterRow,owner:this})}},_filterDialogClearAll:function(e){var tableBody=this.grid._rootContainer().find("#"+this.grid.container().attr("id")+"_dialog table tbody");tableBody.empty();this.grid._rootContainer().find("#"+this.grid.container().attr("id")+"_dialog_error").hide();if(e){e.preventDefault()}},_polulateFilterConditionDropDown:function(e,args){var selectedColName=args.newValue,conditionListElem,cols=this.grid.options.columns,type,input,i,col,conds,$tr,$target=$(e.target),cs=this.options.columnSettings;$tr=$target.closest("[data-af-row]");if(!$tr.length){$tr=$target.closest("tr")}conditionListElem=this._getDialogCondSelByRow($tr);input=this._getDialogExprSelByRow($tr);for(i=0;i0){for(i=0;i"+""+""+list[i].text+"";liHtml+=cond}ul.append(liHtml)},_checkCloseDropDown:function(evt){var colKey=$(evt.target).closest("ul").parent().attr("aria-describedby"),colIndex;if(!$(evt.target).closest("ul").data("focussed")&&!this._cancelNextBlur&&this.options){$.each(this.options.columnSettings,function(index,col){if(col.columnKey===colKey){colIndex=index;return false}});this._closeDropDown({target:this._editorProviders[colIndex].getEditor().element,currentTarget:this._editorProviders[colIndex].getEditor().element})}else if(this._cancelNextBlur){this.grid._rootContainer().find("#"+this.grid.id()+"_dd_"+colKey+"_button").focus();this._cancelNextBlur=false}},_renderDropDownElement:function(id,colName){var ul,container;ul=$("").appendTo(this.grid._rootContainer()).addClass(this.css.filterDropDownList);container=$("").appendTo(this.grid._rootContainer()).attr({id:id,"data-filter-dropdown":true,"aria-describedBy":colName}).addClass(this.css.filterDropDown).css("overflow","hidden").css("position","absolute").hide();if(!$.ig.util.isIE){container.css("overflow-y","auto")}container.remove();if(this.options.filterDropDownWidth>0){ul.css("width",this.options.filterDropDownWidth)}if(this.options.filterDropDownHeight>0){container.css("height",this.options.filterDropDownHeight)}ul.data("colName",colName);ul.wrap(container);ul.parent().data("efh","1");this.grid._rootContainer().find("#"+id).delegate("li",{mousedown:$.proxy(this._selectDropDownItem,this),mouseover:$.proxy(this._hoverDropDownItem,this),mouseout:$.proxy(this._unhoverDropDownItem,this)});return ul},_hoverButton:function(event){var $target=$(event.currentTarget).find("span");if(this.options.mode==="advanced"){$target.addClass(this.css.filterButtonAdvancedHover)}else{$target.addClass(this.css.filterButtonHover)}},_unhoverButton:function(event){var $target=$(event.currentTarget).find("span");if(this.options.mode==="advanced"){$target.removeClass(this.css.filterButtonAdvancedHover)}else{$target.removeClass(this.css.filterButtonHover)}},_activateButton:function(event){var $target=$(event.currentTarget).find("span"),dd=this.grid._rootContainer().find("#"+this.grid.id()+"_filtering_dd");dd.data("focussed",true);if(this._dontApplyStyles){this._dontApplyStyles=false;return}if(this.options.mode==="advanced"){$target.addClass(this.css.filterButtonAdvancedActive)}else{$target.addClass(this.css.filterButtonActive)}},_deactivateButton:function(event){var target=$(event.target).find("span"),self=this,id=$(event.target).attr("id")||$(event.currentTarget).attr("id"),ddId,dd,closeOnBlurTO,colKey,index;if(this.options.mode==="advanced"&&!this.options.advancedModeEditorsVisible){target.removeClass(this.css.filterButtonAdvancedActive)}else{ddId=this.grid.id()+"_filtering_dd";dd=this.grid._rootContainer().find("#"+ddId).find("ul");index=(this.grid.id()+"_dd_").length;colKey=id.substring(index,id.lastIndexOf("_button"));dd.data("focussed",false);
closeOnBlurTO=this._animating&&colKey===this._animatingId?this.options.filterDropDownAnimationDuration:0;if(colKey===this._animatingId){setTimeout(function(){self._checkCloseDropDown({target:dd,currentTarget:dd})},closeOnBlurTO)}target.removeClass(this.css.filterButtonActive)}},_toggleDropDown:function(event,close,dontFocus){var $target=$(event.currentTarget),colKey=this.grid.getColumnByTD($target.closest("td")).column.key,id=this.grid.id()+"_filtering_dd",maxZ,dd,left,top,noCancel=true,button=$target,rOffset,block=this.grid._rootContainer().find("#"+this.grid.container().attr("id")+"_block"),dialog=this._getFilterDialog();if(this._animating&&(id===this._animatingId||colKey===this._animatingId)){return}maxZ=$.ig.getMaxZIndex(this.grid.container().attr("id")+"_dialog");block.css("zIndex",maxZ+1);dialog.css("zIndex",maxZ+2);dd=this.grid._rootContainer().find("#"+id);this._isClosing=false;if(dd.attr("aria-describedby")===colKey&&dd.is(":visible")){this._isClosing=true}dd.attr("aria-describedby",colKey);if(!this._isClosing&&noCancel){$(dd.children()[0]).empty();this._renderDropDown(this._getColType(colKey),this.grid.id()+"_dd_filtering",colKey);if(!close){noCancel=this._trigger(this.events.dropDownOpening,null,{dropDown:dd,owner:this})}}if(dd.is(":visible")){noCancel=this._trigger(this.events.dropDownClosing,null,{dropDown:dd,owner:this})}dd.css("zIndex",maxZ+3);if(!(!dd.is(":visible")&&close===true)){this._animating=true;this._animatingId=colKey}if(this._openingAnimation!==true){this._dontFocus=dontFocus}else{this._dontFocus=null}if(dd.find("ul > li").length===0){return}if(noCancel){left=$.ig.util.offset(button).left;top=$.ig.util.offset(button).top+button.outerHeight();if(dd.igOffset().left!==left||dd.igOffset().top!==top){rOffset=$.ig.util.getRelativeOffset(dd);left-=rOffset.left;top-=rOffset.top;dd.css("left",left).css("top",top)}this._currentTarget=$target;this._dd=dd;if(!this._isClosing){this._opendd=dd}if($.ig.util.isIE){dd.css("overflow-x","hidden");dd.css("overflow-y","hidden")}if(close!==undefined&&close===true){if(dd.is(":visible")){if(this.options.filterDropDownAnimations!=="none"){dd.hide(this.options.filterDropDownAnimationDuration,$.proxy(this._animationEnd,this))}else{dd.hide();this._trigger(this.events.dropDownClosed,null,{dropDown:dd,owner:this})}}}else{if(this.options.filterDropDownAnimations!=="none"){if(dd.is(":visible")&&!this._isClosing){if(noCancel){dd.hide();this._trigger(this.events.dropDownClosed,null,{dropDown:dd,owner:this})}else{return}}this._openingTarget=this._currentTarget;this._openingAnimation=true;dd.toggle(this.options.filterDropDownAnimationDuration,$.proxy(this._animationEnd,this))}else{dd.toggle();if(this._isClosing){this._trigger(this.events.dropDownClosed,null,{dropDown:dd,owner:this})}else{this._trigger(this.events.dropDownOpened,null,{dropDown:dd,owner:this});dd.scrollTop(0)}if(dontFocus!==true){this._dontApplyStyles=true;$target.focus()}}}}if($.type(event.stopPropagation)==="function"){event.stopPropagation()}},_animationEnd:function(){if(this.options===null){return}if(this._isClosing===true){this._trigger(this.events.dropDownClosed,null,{dropDown:this._dd,owner:this})}else{this._trigger(this.events.dropDownOpened,null,{dropDown:this._opendd,owner:this});this._openingAnimation=false;this._dd.scrollTop(0)}if(this._dd&&$.ig.util.isIE){this._dd.css("overflow-y","auto")}this._isClosing=null;if(this._dontFocus!==true){this._dontApplyStyles=true}this._animating=false},_toggleDropDownKeyboard:function(event){var parent,selectedItem,$target=$(event.target),ddVisible,dd=$("#"+this.grid.id()+"_filtering_dd").find("ul");if(event.keyCode===$.ui.keyCode.ENTER||event.keyCode===$.ui.keyCode.SPACE){if(!$target.is("input")){event.stopPropagation();event.preventDefault()}parent=dd;if(parent.data("selectedItem")||parent.data("selectedItem")===0){selectedItem=parent.find("li:nth-child("+(parent.data("selectedItem")+1)+")");ddVisible=$("#"+this.grid.id()+"_filtering_dd").find("ul").is(":visible");if($(selectedItem).hasClass("ui-iggrid-filterddlistitemadvanced")&&ddVisible){this._openFilterDialog(event)}}if(selectedItem&&ddVisible){event.currentTarget=selectedItem;this._selectDropDownItem(event)}else{this._toggleDropDown(event)}}else if(event.keyCode===$.ui.keyCode.DOWN||event.keyCode===$.ui.keyCode.UP){this._handleKeyboardNavigation(event)}else if($.ui.keyCode.TAB){this._toggleDropDown(event,true)}},_handleKeyboardNavigation:function(event){var $target=$(event.target),dd,colKey;if($target.is("a")||$target.is("input")){colKey=this.grid.getColumnByTD($target.closest("td")).column.key;dd=$("#"+this.grid.id()+"_filtering_dd").find("ul");$target=dd.find("li.ui-iggrid-filterddlistitemactive").length>0?dd.find("li.ui-iggrid-filterddlistitemactive"):dd}event.stopPropagation();event.preventDefault();if(event.keyCode===$.ui.keyCode.DOWN){this._selectDropDownItem({currentTarget:$target},"next")}else if(event.keyCode===$.ui.keyCode.UP){this._selectDropDownItem({currentTarget:$target},"prev")}},_changeSelectionKeyboard:function(event){var buttonId,$target,prevElem;if(event.keyCode===$.ui.keyCode.DOWN||event.keyCode===$.ui.keyCode.UP){this._handleKeyboardNavigation(event)}else if(event.keyCode===$.ui.keyCode.ENTER){event.stopPropagation();event.preventDefault();this._selectDropDownItem(event)}else if(event.keyCode===$.ui.keyCode.TAB){event.stopPropagation();event.preventDefault();buttonId=this.grid.id()+"_dd_"+$(event.target).closest("div").attr("aria-describedby")+"_button";$target=this.grid.container().find("#"+buttonId);if(!event.shiftKey){$target.closest("td").find("input:tabbable").focus()}else{prevElem=$target.closest("td").prev("td");if(prevElem.length===0){prevElem=$target.closest("tr").prev()}prevElem.find(":tabbable").last().focus()}}},_closeDropDown:function(event){var curTarget=$(event.currentTarget),id=this.grid.id()+"_filtering_dd",closestUL=curTarget.closest("ul"),$target=curTarget.find("span"),dd;if(this._openingTarget&&event.target.id===this._openingTarget.attr("id")&&this._openingAnimation===true){return}dd=closestUL.length!==0?closestUL.closest("ul"):this.grid._rootContainer().find("#"+id);if(dd&&!dd.is(":visible")){$target.removeClass(this.css.filterButtonActive);return}this._toggleDropDown({currentTarget:event.currentTarget},true,true);if(this._dontApplyStyles){this._dontApplyStyles=false;return}if(this.options.mode==="advanced"){$target.removeClass(this.css.filterButtonAdvancedActive)}else{$target.removeClass(this.css.filterButtonActive)}},_getColType:function(colkey){var type=this.grid.dataSource._getFieldTypeFromSchema(colkey);if(type===undefined){type=this.grid.columnByKey(colkey).dataType}return type},_hasEditor:function(editorProvider){return $.type(editorProvider.getEditor)==="function"},_selectDropDownItem:function(event,nav,expr){var $target=$(event.currentTarget),filterCondition,colIndex,sel,parent,requiresEntry,button,currentCond,targetParent,evtArgs,focT,type,colKey,colType,currEditorProvider,editor,clearButton;if($target.find("input").length>0&&this.options.mode==="advanced"&&!this.options.advancedModeEditorsVisible){return}if(nav==="next"||nav==="prev"){parent=$target.parent()}if(nav==="next"){if(parent.data("selectedItem")===undefined){$target=parent.find("li:first")}else{$target=parent.find("li:nth-child("+(parent.data("selectedItem")+1)+")");if($target.next().length===0){$target=parent.find("li:first")}else{$target=$target.next()}}}if(nav==="prev"){if(parent.data("selectedItem")===undefined){$target=parent.find("li:last")}else{$target=parent.find("li:nth-child("+(parent.data("selectedItem")+1)+")");if($target.prev().length===0){$target=parent.find("li:last")}else{$target=$target.prev()}}}filterCondition=$target.attr("data-cond");colKey=$target.closest("div").attr("aria-describedBy");button=this.grid._rootContainer().find("#"+this.grid.id()+"_dd_"+colKey+"_button");button.attr("title",this._getLocaleValue("tooltipTemplate").replace("${condition}",this._getLocaleValue("noFilterLabel")));if($target.attr("data-cond")===""){button.attr("title",this._getLocaleValue("tooltipTemplate").replace("${condition}",this._getLocaleValue("noFilterLabel")))}$.each(this.options.columnSettings,function(index,col){if(col.columnKey===colKey){colIndex=index;return false}});if(!colIndex&&expr){$.each(this.options.columnSettings,function(index,col){if(col.columnKey===expr.fieldName){colIndex=index;return false}})}currentCond=this.options.columnSettings[parseInt(colIndex,10)].condition;targetParent=$target.parent();sel=targetParent.data("selectedItem");type=this._getColType(this.grid.options.columns[colIndex].key);requiresEntry=this.requiresFilteringExpression(filterCondition);if($target[0]!==document.activeElement){$target.parent().data("focussed",true);$target.focus()}if(filterCondition!==undefined&&filterCondition!==""){this.options.columnSettings[parseInt(colIndex,10)].condition=filterCondition;if(sel!==undefined){targetParent.find("li:nth-child("+(sel+1)+")").removeClass(this.css.filterDropDownListItemActive)}$target.addClass(this.css.filterDropDownListItemActive);targetParent.data("selectedItem",$("li",targetParent).index($target));this._setEditorOption(this._editorProviders[colIndex].getEditor(),"placeHolder",this._getNullTextByCondition(filterCondition))}else if(currentCond==="empty"||currentCond==="notEmpty"||currentCond==="null"||currentCond==="notNull"||!this.requiresFilteringExpression(currentCond)){this.options.columnSettings[parseInt(colIndex,10)].condition=this._getDefaultCondition(type);if(sel!==undefined){targetParent.find("li:nth-child("+(sel+1)+")").removeClass(this.css.filterDropDownListItemActive);targetParent.data("selectedItem",null);if(this._isBool(this.grid.options.columns[colIndex].dataType)){this._setEditorOption(this._editorProviders[colIndex].getEditor(),"placeHolder","")}else{this._setEditorOption(this._editorProviders[colIndex].getEditor(),"placeHolder",this._getNullTextByCondition(this._getDefaultCondition(type)))}}if(currentCond==="null"||this.grid.options.columns[colIndex].dataType==="date"||this.grid.options.columns[colIndex].dataType==="time"){this._setEditorOption(this._editorProviders[colIndex].getEditor(),"placeHolder",this._getNullTextByCondition(this._getDefaultCondition(type)))}}if($target.hasClass("ui-iggrid-filterddlistitemclear")){if(sel!==undefined){targetParent.find("li:nth-child("+(sel+1)+")").removeClass(this.css.filterDropDownListItemActive)}$target.addClass(this.css.filterDropDownListItemActive);targetParent.data("selectedItem",$("li",targetParent).index($target))}currEditorProvider=this._editorProviders[colIndex];editor=currEditorProvider.getEditor();if(nav===undefined||event.keyCode===$.ui.keyCode.ENTER||event.keyCode===$.ui.keyCode.SPACE){if($target.hasClass("ui-iggrid-filterddlistitemclear")||this.options.filterDropDownItemIcons===true&&$target.find(".ui-iggrid-filtericonclear").length>0){if(!requiresEntry||filterCondition===undefined||filterCondition===""){colType=this._getColType(this.grid.options.columns[colIndex].key);this._setEditorOption(editor,"readOnly",this._isBool(colType))}currEditorProvider.setValue(null);this._filterDataSourceClear(this.grid.options.columns[colIndex].key,colIndex);this._toggleDropDown({currentTarget:editor.element},true);button.focus()}else{if(!requiresEntry&&!expr){this._setEditorOption(editor,"readOnly",true);this._editorValueForCondition(filterCondition,currEditorProvider);clearButton=this._editorProviders[colIndex].editor.clearButton();if(clearButton.attr("id")&&clearButton.attr("id").indexOf("clearButton")!==-1){clearButton.hide()}this._args=undefined;this._filterInternal(colIndex,this.grid.options.columns[colIndex].key);button.focus()}else{var editorValue=this._getEditorVal(currEditorProvider);if(editorValue!==""&&editorValue!==null){if(editor.setFocus){editor.setFocus(true)}else if(editor.element.focus){editor.element.focus()}var editorDisplayValue=editor.displayValue?editor.displayValue():editorValue;evtArgs={owner:editor,text:editorDisplayValue};this._filter(event,evtArgs)}}if(requiresEntry){this._setEditorOption(editor,"readOnly",false);if(nav===undefined&&filterCondition!==undefined){focT=$.ig.util.isTouchDevice()?this.options.filterDropDownAnimationDuration:-1;if(editor.setFocus){editor.setFocus(focT)}else if(editor.element.focus){editor.element.focus(focT)}}}}this._toggleDropDown({currentTarget:editor.element},true);$target.parent().data("focussed",false)}},requiresFilteringExpression:function(filterCondition){var custConds=this._dsTransformedCustomConditions;if(this.grid.dataSource._isFilteringExprNotReq(filterCondition)){return false}if(custConds&&custConds[filterCondition]){return custConds[filterCondition].requireExpr}if(filterCondition===undefined||filterCondition===null){return false}return true},_editorValueForCondition:function(filterCondition,editorProvider){var date=new Date,custConds=this._dsTransformedCustomConditions,colKey;if(filterCondition==="true"){editorProvider.setValue(this._getLocaleValue("trueLabel"))}else if(filterCondition==="false"){editorProvider.setValue(this._getLocaleValue("falseLabel"))}else if(filterCondition==="today"){colKey=editorProvider.getEditor().element.data("colKey");if(this.grid.columnByKey(colKey).dateDisplayType==="utc"){editorProvider.setValue(new Date(Date.UTC(date.getFullYear(),date.getMonth(),date.getDate(),0,0,0,0)))}else{editorProvider.setValue(date)}}else if(filterCondition==="yesterday"){colKey=editorProvider.getEditor().element.data("colKey");if(this.grid.columnByKey(colKey).dateDisplayType==="utc"){editorProvider.setValue(new Date(Date.UTC(date.getFullYear(),date.getMonth(),date.getDate()-1,0,0,0,0)))}else{editorProvider.setValue(new Date(date.getFullYear(),date.getMonth(),date.getDate()-1,0,0,0,0))}}else if(custConds&&custConds[filterCondition]){editorProvider.setValue(custConds[filterCondition].expressionText)}else{editorProvider.setValue(null)}},_assignTemplates:function(){var self=this,opts=self.options,gId=this.grid.id();this._fTmplWrappers={};this._fTmplWrappers[gId+"_filterDialogFilterTemplate"]=function(d){return $.ig.tmpl(opts.filterDialogFilterTemplate,d)};this._fTmplWrappers[gId+"_filterDialogAddConditionTemplate"]=function(d){return $.ig.tmpl(opts.filterDialogAddConditionTemplate,d)};this._fTmplWrappers[gId+"_filterDialogAddConditionDropDownTemplate"]=function(d){return $.ig.tmpl(opts.filterDialogAddConditionDropDownTemplate,d)};this._fTmplWrappers[gId+"_filterDialogFilterConditionTemplate"]=function(d){return $.ig.tmpl(opts.filterDialogFilterConditionTemplate,d)};if(String(this.grid.options.templatingEngine).toLowerCase()==="jsrender"){this._jsr=true;$.templates(gId+"_filterDialogFilterTemplate",opts.filterDialogFilterTemplate);$.templates(gId+"_filterDialogAddConditionTemplate",opts.filterDialogAddConditionTemplate);$.templates(gId+"_filterDialogAddConditionDropDownTemplate",opts.filterDialogAddConditionDropDownTemplate);$.templates(gId+"_filterDialogFilterConditionTemplate",opts.filterDialogFilterConditionTemplate);this._fTmplWrappers=$.render}},_hoverDropDownItem:function(event){if($(event.currentTarget).find("input").length===0){$(event.currentTarget).addClass(this.css.filterDropDownListItemHover)}},_unhoverDropDownItem:function(event){$(event.currentTarget).removeClass(this.css.filterDropDownListItemHover)},_virtualHorizontalScroll:function(event,args){var start=args.startColIndex,i,headers=this.grid.headersTable().find("th"),columnKey;if(this._currentTarget){this._toggleDropDown({currentTarget:this._currentTarget},true)}if(this.options.mode==="advanced"&&this.options.advancedModeEditorsVisible!==true){for(i=0;itr.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;i
0){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"})})($);/*!@license
* Infragistics.Web.ClientUI Grid Column Hiding 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
* infragistics.ui.widget.js
* infragistics.ui.grid.framework.js
* infragistics.ui.shared.js
* infragistics.dataSource.js
* infragistics.util.js
* infragistics.ui.grid.shared.js
* infragistics.ui.grid.featurechooser.js
*/
(function($){$.widget("ui.igGridHiding",$.ui.igWidget,{options:{columnSettings:[{columnKey:null,columnIndex:null,allowHiding:true,hidden:false}],hiddenColumnIndicatorHeaderWidth:7,columnChooserContainment:"owner",columnChooserWidth:350,columnChooserHeight:"",dropDownAnimationDuration:500,columnChooserCaptionText:undefined,columnChooserDisplayText:undefined,hiddenColumnIndicatorTooltipText:undefined,columnHideText:undefined,columnChooserShowText:undefined,columnChooserHideText:undefined,columnChooserResetButtonLabel:undefined,columnChooserButtonApplyText:undefined,columnChooserButtonCancelText:undefined,locale:{columnChooserDisplayText:undefined,hiddenColumnIndicatorTooltipText:undefined,columnHideText:undefined,columnChooserCaptionLabel:undefined,columnChooserCloseButtonTooltip:undefined,hideColumnIconTooltip:undefined,columnChooserShowText:undefined,columnChooserHideText:undefined,columnChooserResetButtonLabel:undefined,columnChooserButtonApplyText:undefined,columnChooserButtonCancelText:undefined},columnChooserHideOnClick:false,columnChooserAnimationDuration:200,dialogWidget:"igGridModalDialog",inherit:false},css:{columnChooser:"ui-dialog ui-draggable ui-resizable ui-iggrid-dialog ui-widget ui-widget-content ui-corner-all",columnChooserHeaderCaption:"ui-dialog-titlebar ui-iggrid-columnchooser-caption ui-widget-header ui-corner-top ui-helper-reset ui-helper-clearfix",columnChooserHeaderCaptionTitle:"ui-dialog-title ui-iggrid-columnchooser-caption-title",columnChooserContent:"ui-dialog-content ui-iggrid-columnchooser-content",hidingHeaderIndicator:"ui-iggrid-hiding-indicator",columnChooserHandleBar:"ui-iggrid-columnchooser-handlebar",hiddenColumnIndicator:"ui-iggrid-hiding-hiddencolumnindicator",hiddenColumnIndicatorSelected:"ui-iggrid-hiding-indicator-selected",hiddenColumnIndicatorMouseOver:"ui-iggrid-hiding-indicator-mouseover",hiddenColumnsDropDown:"ui-iggrid-hiding-dropdown-dialog ui-widget ui-widget-content ui-corner-all",hiddenColumnsDropDownList:"ui-iggrid-hiding-dropdown-list ui-menu",hiddenColumnsDropDownItem:"ui-iggrid-hiding-dropdown-ddlistitemicons ui-state-default",hiddenColumnsDropDownItemHover:"ui-iggrid-hiding-dropdown-listitem-hover ui-state-active ui-state-hover",hiddenColumnsDropDownItemText:"ui-iggrid-hiding-dropdown-ddlistitemtext",columnChooserListItems:"ui-iggrid-columnchooser-listitems",columnChooserItem:"ui-iggrid-columnchooser-item ui-widget-content",columnChooserItemHidden:"ui-iggrid-columnchooser-itemhidden",columnChooserHideButton:"ui-iggrid-columnchooser-hidebutton",columnChooserItemText:"ui-iggrid-dialog-text",featureChooserHidingIcon:"ui-icon ui-iggrid-icon-hide",featureChooserModalDialogIcon:"ui-icon ui-iggrid-icon-column-chooser"},events:{columnHiding:"columnHiding",columnHidingRefused:"columnHidingRefused",columnShowingRefused:"columnShowingRefused",multiColumnHiding:"multiColumnHiding",columnHidden:"columnHidden",columnShowing:"columnShowing",columnShown:"columnShown",columnChooserOpening:"columnChooserOpening",columnChooserOpened:"columnChooserOpened",columnChooserMoving:"columnChooserMoving",columnChooserClosing:"columnChooserClosing",columnChooserClosed:"columnChooserClosed",columnChooserContentsRendering:"columnChooserContentsRendering",columnChooserContentsRendered:"columnChooserContentsRendered",columnChooserButtonApplyClick:"columnChooserButtonApplyClick",columnChooserButtonResetClick:"columnChooserButtonResetClick"},renderInFeatureChooser:true,_headerHashDataKey:"igGrid-hiding-hash",_createWidget:function(){this.options.columnSettings=[];$.Widget.prototype._createWidget.apply(this,arguments)},_getModalDialog:function(){return this.grid._rootContainer().find("#"+this.grid.id()+"_hiding_modalDialog")},_changeLocaleForHidingDialog:function(){var $dialog=this._getModalDialog(),$buttonReset;if($dialog.length){$dialog[this.options.dialogWidget]("option",{locale:{modalDialogCaptionText:this._getLocaleValue("columnChooserCaptionLabel"),buttonApplyText:this._getLocaleValue("columnChooserButtonApplyText"),buttonCancelText:this._getLocaleValue("columnChooserButtonCancelText")}});$.ui.igWidget.prototype.changeLocale.call(this,$dialog);$buttonReset=$("#"+this.grid.id()+"_hiding_modalDialog_reset_button");$buttonReset.igButton("option","labelText",this._getLocaleValue("columnChooserResetButtonLabel"))}},_changeLocaleForFeatureChooser:function(){var fc=this.grid.element.data("igGridFeatureChooser");if(fc&&this.renderInFeatureChooser){fc._removeFeature("Hiding");fc._removeFeature("ColumnChooser");this._initFeatureChooser()}},changeLocale:function(){var btnLabel=this._getLocaleValue("columnChooserDisplayText"),$container=this.grid.container(),self=this;this._changeLocaleForHidingDialog();this._changeLocaleForFeatureChooser();$container.find("[data-hiddencolumn-indicator-container],"+"[data-hiddencolumn-indicator],"+"[data-hiding-indicator]").each(function(){self._changeLocaleForElement($(this))});btnLabel=this._getLocaleValue("columnChooserDisplayText");$container.children("div[data-hiding-inddropdown='"+this.grid.id()+"']").find("[data-button-show-column-chooser]").each(function(){$(this).igButton("option","labelText",btnLabel)})},_registerWidget:$.noop,_unregisterWidget:$.noop,_setOption:function(key){switch(key){case"language":case"locale":case"regional":this._superApply(arguments);break;default:throw new Error(this._getLocaleValue("optionChangeNotSupported").replace("{optionName}",key))}},changeGlobalLanguage:function(){},changeGlobalRegional:function(){},destroy:function(){var fc,self=this,modalDialog=this._getModalDialog();this.grid.element.unbind(".hiding");this.grid.headersTable().find("> thead > tr > th").not("[data-skip=true]").each(function(){var th=$(this);th.find("a[data-hiding-indicator=true]").remove();self._clearHiddenColumnIndicator(true,th);self._clearHiddenColumnIndicator(false,th)});$("div[data-hiding-inddropdown='"+this.grid.id()+"']").remove();this._detachEvents();modalDialog[this.options.dialogWidget]("getCaptionButtonContainer");modalDialog.remove();fc=this.grid.element.data("igGridFeatureChooser");if(fc&&this.renderInFeatureChooser){fc._removeFeature("Hiding");fc._removeFeature("ColumnChooser")}this._superApply(arguments);return this},showColumnChooser:function(){this._openColumnChooser(false)},hideColumnChooser:function(){this._closeColumnChooser(false)},showColumn:function(column,callback){this.grid.showColumn(column,callback)},hideColumn:function(column,callback){this.grid.hideColumn(column,callback)},hideMultiColumns:function(columns,callback){this.grid._setHiddenMultipleColumns([],columns,callback)},showMultiColumns:function(columns,callback){this.grid._setHiddenMultipleColumns(columns,[],callback)},_showColumnFromUI:function(column){var columnKey,columnIndex,noCancel,self=this;if(typeof column==="number"){columnIndex=column}else{columnKey=column}noCancel=this._trigger(this.events.columnShowing,null,{owner:this,columnKey:columnKey,columnIndex:columnIndex});if(!this.grid._isShowingAllowed([column])){this._trigger(this.events.columnShowingRefused,null,{owner:this,columnKeys:[columnKey]});return false}if(noCancel){self.grid._loadingIndicator.show();setTimeout(function(){self.grid._setHidden(column,false);self._trigger(self.events.columnShown,null,{owner:self,columnKey:columnKey,columnIndex:columnIndex});self.grid._loadingIndicator.hide()},0)}return noCancel},_setHiddenMultipleColumns:function(columnsToShow,columnsToHide,callEvents,callback){var self=this,grid=self.grid,columnKey,columnIndex;grid._loadingIndicator.show();setTimeout(function(){var i,column,noCancel,cols=[],c;for(i=0;i ").addClass("ui-iggrid-indicatorcontainer").appendTo(th)}$a=$("").css("display","inline").attr({"data-hiding-indicator":"true",href:"#","data-localeid":"hideColumnIconTooltip","data-localeattr":"title",title:this._getLocaleValue("hideColumnIconTooltip")}).bind("keydown.hiding",function(event){if(event.keyCode===$.ui.keyCode.ENTER||event.keyCode===$.ui.keyCode.SPACE){if(isMultiColumnHeader){self._hideMultiColumnFromUI(th.attr("data-mch-id"))}else{self._hideColumnFromUI(columnKey)}event.preventDefault();event.stopPropagation()}}).appendTo(indicatorContainer);$("«").addClass(this.css.hidingHeaderIndicator).appendTo($a).bind("click.hiding",function(event){$(this).parent().mouseout();self._closeColumnChooser(event);if(isMultiColumnHeader){self._hideMultiColumnFromUI(th.attr("data-mch-id"))}else{self._hideColumnFromUI(columnKey)}event.preventDefault();event.stopPropagation()});this.grid._enableHeaderCellFeature(th)},_populateMultiColumnHeadersLevel0:function(){var i,j,self=this,cols=this.grid._oldCols,colsLength=cols.length,ths=$(this.grid._headerCells),level0=[],level0Length,visibleColumns=this.grid._visibleColumns();for(i=0;i thead > tr th").not("[data-skip=true]").not("[data-isheadercell=true]");this._populateMultiColumnHeadersLevel0();thsMultiHeader.each(function(){var th=$(this),id=th.attr("id"),col,allowHiding=true;if(id){id=id.replace(self.grid.id()+"_","");if(id){col=self._getColumnSettings(null,id);if(col&&col.allowHiding===false){allowHiding=false}}}if(allowHiding){self._renderHidingColumnIcon(th,null,true)}});ths=$(this.grid._headerCells)}else{ths=this.grid.headersTable().find("> thead > tr > th").not("[data-skip=true]")}ths.find("a[data-hiding-indicator=true]").remove();ths.each(function(index){var th=$(this),visibleColumns=self.grid._visibleColumns(),visibleIndex,columnKey;if(self.grid.options.virtualizationMode==="fixed"&&(self.grid.options.virtualization===true||self.grid.options.columnVirtualization===true)){visibleIndex=(self.grid._startColIndex||0)+index}else{visibleIndex=index}columnKey=visibleColumns[visibleIndex].key;if($.inArray(columnKey,self._hidingIconColumnKeys)!==-1){self._renderHidingColumnIcon(th,columnKey)}})},_headerRendered:function(event,ui){if(ui.owner.element.attr("id")!==this.grid.element.attr("id")){return}this._renderHidingIcons();this._renderColumnChooser()},_columnChooserButtonOKClick:function(){var self=this,changedColumns=self._columnsToHide,columnsToHide=[],columnsToShow=[],noCancel,modalDialog=this._getModalDialog();$.each(this.grid.options.columns,function(columnIndex,column){var cs,columnIdentifier,col;cs=self._getColumnSettingsByIndex(columnIndex);if(!cs.allowHiding){return}columnIdentifier=cs.columnKey||cs.columnIndex||column.key;col=changedColumns[columnIdentifier];if(col!==null&&col!==undefined){if(col){if(column.hidden===false){columnsToHide.push(columnIdentifier)}}else{if(column.hidden===true){columnsToShow.push(columnIdentifier)}}}});noCancel=this._trigger(this.events.columnChooserButtonApplyClick,null,{columnChooserElement:modalDialog,owner:this,columnsToHide:columnsToHide,columnsToShow:columnsToShow});if(!this.grid._isHidingAllowed(columnsToHide)){this._trigger(this.events.columnHidingRefused,null,{owner:this,columnKeys:columnsToHide});return}if(!this.grid._isShowingAllowed(columnsToShow)){this._trigger(this.events.columnShowingRefused,null,{owner:this,columnKeys:columnsToShow});return}if(noCancel){self._setHiddenMultipleColumns(columnsToShow,columnsToHide,true);self._getModalDialog()[this.options.dialogWidget]("closeModalDialog",true)}},isToRenderButtonReset:function(){var self=this,columnsToHide=self._columnsToHide,result=false;$.each(this.grid.options.columns,function(columnIndex,column){var cs,columnIdentifier,col,isHidden;cs=self._getColumnSettingsByIndex(columnIndex);if(cs&&!cs.allowHiding){return true}columnIdentifier=cs.columnKey||cs.columnIndex||column.key;col=columnsToHide[columnIdentifier];if(column._initiallyHidden===true){isHidden=true}else{isHidden=cs.hidden}if(col!==null&&col!==undefined){if(col!==isHidden){result=true;return false}}});return result},_isVisibleColumnsNotAllowHiding:function(){var self=this,res=false;$.each(this.grid.options.columns,function(columnIndex,column){var cs;cs=self._getColumnSettingsByIndex(columnIndex);if(cs&&!cs.allowHiding&&!column.hidden){res=true;return false}});return res},_columnChooserOpening:function(){var $ul,noCancel,$content,self=this,o=this.options,css=this.css,countColumnsAllowHiding=0,modalDialog=this._getModalDialog();noCancel=this._trigger(this.events.columnChooserOpening,null,{columnChooserElement:modalDialog,owner:this});if(noCancel){noCancel=this._trigger(this.events.columnChooserContentsRendering,null,{columnChooserElement:modalDialog,owner:this});if(noCancel){this.removeColumnChooserResetButton();$content=modalDialog[this.options.dialogWidget]("getContent");$content.empty();$ul=$("").addClass(css.columnChooserListItems).appendTo($content);this._columnsToHide={};$.each(this.grid.options.columns,function(columnIndex,column){var cs,columnIdentifier,$a,$li;cs=self._getColumnSettingsByIndex(columnIndex);if(!cs.allowHiding){return}countColumnsAllowHiding++;columnIdentifier=cs.columnKey||cs.columnIndex||column.key;$li=$("").attr("id",self.grid.element[0].id+"_"+columnIdentifier+"_columnchooser_li").addClass(css.columnChooserItem).append(""+column.headerText+"");$li.appendTo($ul);$a=$li.find("a:first");if(o.columnChooserHideOnClick===true){$li.bind("click.hiding",function(event){var isHidden;if($a.attr("ishidden")==="1"){noCancel=self._showColumnFromUI(columnIdentifier);isHidden=false}else{noCancel=self._hideColumnFromUI(columnIdentifier);isHidden=true}if(noCancel){self._renderColumnChooserHideButton($a,isHidden)}event.preventDefault();event.stopPropagation();return false})}else{$li.bind("click.hiding",function(event){var isHidden,key,c;event.preventDefault();event.stopPropagation();if($a.attr("ishidden")==="1"){isHidden=false}else{isHidden=true}if(isHidden&&self.grid.hasFixedColumns()){c=[];for(key in self._columnsToHide){if(self._columnsToHide.hasOwnProperty(key)&&self._columnsToHide[key]){c.push(key)}}c.push(columnIdentifier);if(!self.grid._isHidingAllowed(c)){return}}if(isHidden&&!self._isVisibleColumnsNotAllowHiding()&&$ul.find("a[ishidden=1]").length===countColumnsAllowHiding-1){return}self._columnsToHide[columnIdentifier]=isHidden;self._renderColumnChooserHideButton($a,isHidden);if(self.isToRenderButtonReset()){self.renderColumnChooserResetButton()}else{self.removeColumnChooserResetButton()}return false})}self._columnsToHide[columnIdentifier]=column.hidden;self._renderColumnChooserHideButton($a,column.hidden)});this._trigger(this.events.columnChooserContentsRendered,null,{columnChooserElement:modalDialog,owner:this});if(o.columnChooserHideOnClick===false&&self.isToRenderButtonReset()){self.renderColumnChooserResetButton()}}this._trigger(this.events.columnChooserOpened,null,{columnChooserElement:modalDialog,owner:this})}return noCancel},resetHidingColumnChooser:function(){var self=this;$.each(this.grid.options.columns,function(columnIndex,column){var cs,columnIdentifier,isToHide;cs=self._getColumnSettingsByIndex(columnIndex);if(!cs){return true}if(!cs.allowHiding){return true}isToHide=cs.hidden;if(column._initiallyHidden===true){isToHide=true}columnIdentifier=cs.columnKey||cs.columnIndex||column.key;self._columnsToHide[columnIdentifier]=isToHide;self._renderColumnChooserHideButton(self.grid._rootContainer().find("#"+self.grid.id()+"_"+columnIdentifier+"_columnchooser_li a:first"),isToHide)});self.removeColumnChooserResetButton()},renderColumnChooserResetButton:function(){var self=this,resetButtonId=this.grid.id()+"_hiding_modalDialog_reset_button",modalDialog=this.grid._rootContainer().find("#"+this.grid.id()+"_hiding_modalDialog"),$captionButtonContainer,$resetButton;if(this.grid._rootContainer().find("#"+resetButtonId).length===0){$captionButtonContainer=modalDialog[this.options.dialogWidget]("getCaptionButtonContainer");$resetButton=$("").attr("id",resetButtonId).appendTo($captionButtonContainer);$resetButton.igButton({labelText:this._getLocaleValue("columnChooserResetButtonLabel"),click:function(e){self._trigger(self.events.columnChooserButtonResetClick,e,{columnChooserElement:modalDialog,owner:self});self.resetHidingColumnChooser()}})}},removeColumnChooserResetButton:function(){this.grid._rootContainer().find("#"+this.grid.id()+"_hiding_modalDialog_reset_button").remove()},_renderColumnChooserHideButton:function($a,isHidden){var attrIsHidden,css=this.css,$li=$a.closest("li"),localeId;if(isHidden===false){attrIsHidden="0";localeId="columnChooserHideText";$li.removeClass(css.columnChooserItemHidden)}else{attrIsHidden="1";localeId="columnChooserShowText";$li.addClass(css.columnChooserItemHidden)}$a.attr({ishidden:attrIsHidden,"data-localeid":localeId}).text(this._getLocaleValue(localeId))},_renderColumnChooser:function(){this._getModalDialog().remove();var $buttonOK,self=this,o=this.options,$captionButtonContainer,containment=this.grid._rootContainer(),modalDialog;if(this.options.columnChooserContainment!=="owner"){containment="window"}modalDialog=$("").appendTo(this.grid._rootContainer()).attr("id",this.grid.id()+"_hiding_modalDialog");modalDialog[this.options.dialogWidget]({modalDialogWidth:o.columnChooserWidth,modalDialogHeight:o.columnChooserHeight,locale:{modalDialogCaptionText:this._getLocaleValue("columnChooserCaptionLabel"),buttonApplyText:this._getLocaleValue("columnChooserButtonApplyText"),buttonCancelText:this._getLocaleValue("columnChooserButtonCancelText")},containment:containment,gridContainer:this.grid.container(),renderFooterButtons:!o.columnChooserHideOnClick,animationDuration:o.columnChooserAnimationDuration,modalDialogOpening:function(event,args){return self._columnChooserOpening(event,args)},modalDialogMoving:function(e,ui){self._trigger(self.events.columnChooserMoving,null,{columnChooserElement:$(e.target),owner:self,originalPosition:ui.originalPosition,position:ui.position})},modalDialogClosing:function(){return self._trigger(self.events.columnChooserClosing,null,{columnChooserElement:modalDialog,owner:self})},modalDialogClosed:function(){self._trigger(self.events.columnChooserClosed,null,{columnChooserElement:modalDialog,owner:self})}});if(!o.columnChooserHideOnClick){$buttonOK=this.grid._rootContainer().find("#"+this.grid.id()+"_hiding_modalDialog_footer_buttonok");$buttonOK.bind("igbuttonclick",function(e){self._columnChooserButtonOKClick(e);e.preventDefault()})}else{$captionButtonContainer=modalDialog[this.options.dialogWidget]("getCaptionButtonContainer");$("").bind("click.hiding",function(event){modalDialog[self.options.dialogWidget]("closeModalDialog",true);event.preventDefault();event.stopPropagation();return false}).addClass("ui-icon ui-icon-closethick").appendTo($("").appendTo($captionButtonContainer).attr("title",this._getLocaleValue("columnChooserCloseButtonTooltip")).attr("href","#").attr("role","button").addClass("ui-dialog-titlebar-close ui-corner-all"))}},_hidingFinished:function(){if(this.options.virtualization===true&&this.options.virtualizationMode==="fixed"){return}if(this.options.columnVirtualization===true){return}this._renderHiddenColumnIndicators()},_virtualHorizontalScroll:function(){this._renderHiddenColumnIndicators();this._renderHidingIcons()},_getIndicators:function(indicators,isFixed){var i,col,columns=this.grid.options.columns,columnsLength=columns.length,visibleIndex=0,fixed;for(i=0;i thead > tr > th[data-hiddenreplacement=true]").each(function(){var a=self._renderHiddenColumnIndicator(true,$(this));self._bindDropDownToIndicator(a.find("span"),indicators[0])})}else{ths=this.grid._isMultiColumnGrid?$(this.grid._headerCells):this.grid.headersTable().find("> thead > tr > th").not("[data-skip=true]");if(hasFixedColumns){if(this.grid._isMultiColumnGrid){fHCells=$();ufHCells=$();$.each(this.grid._headerCells,function(index,cell){if(self.grid._isFixedElement(cell)){fHCells.push(cell)}else{ufHCells.push(cell)}});this._renderHiddenColumnIndicatorsHelper(ufHCells,indicators,false);this._renderHiddenColumnIndicatorsHelper(fHCells,fixedIndicators,true)}else{this._renderHiddenColumnIndicatorsHelper(ths,indicators,false);ths=this.grid.fixedHeadersTable().find("thead > tr > th").not("[data-skip=true]");this._renderHiddenColumnIndicatorsHelper(ths,fixedIndicators,true)}}else{this._renderHiddenColumnIndicatorsHelper(ths,indicators)}}},_renderHiddenColumnIndicatorsHelper:function(ths,indicators,isFixed){var self=this;ths.each(function(index){var th=$(this),div,visibleIndex;if(self.grid.options.virtualization===true&&self.grid.options.virtualizationMode==="fixed"||self.grid.options.columnVirtualization===true){visibleIndex=self.grid._startColIndex+index}else{visibleIndex=index}self._clearHiddenColumnIndicator(true,th);self._clearHiddenColumnIndicator(false,th);if(indicators[visibleIndex]!==undefined){div=self._renderHiddenColumnIndicator(true,th);self._bindDropDownToIndicator(div.find("span"),indicators[visibleIndex])}if(visibleIndex===self.grid._visibleColumns(isFixed).length-1){if(indicators[visibleIndex+1]!==undefined){div=self._renderHiddenColumnIndicator(false,th);self._bindDropDownToIndicator(div.find("span"),indicators[visibleIndex+1])}}});this.grid._fireInternalEvent("_hiddenColumnIndicatorsRendered",ths)},_renderHiddenColumnIndicator:function(left,th){var padding,margin,nonPaddedIndicatorsAttr,position,indicatorMarkup,spanMarkup,paddingValue,div,span;if(left){padding="padding-left";margin="margin-left";position="left";indicatorMarkup="";spanMarkup="";nonPaddedIndicatorsAttr="[data-nonpaddedindicator=left]"}else{padding="padding-right";margin="margin-right";position="right";indicatorMarkup="";spanMarkup="";nonPaddedIndicatorsAttr="[data-nonpaddedindicator=right]"}paddingValue=parseInt(th.css(padding),10)+this.options.hiddenColumnIndicatorHeaderWidth;th.css(padding,paddingValue+"px");th.find(nonPaddedIndicatorsAttr).css(margin,-paddingValue+"px");div=$(indicatorMarkup).attr({"data-hiddencolumn-indicator-container":true,"data-localeid":"hiddenColumnIndicatorTooltipText","data-localeattr":"title",tabindex:this.grid.options.tabIndex,title:this._getLocaleValue("hiddenColumnIndicatorTooltipText")}).css("position","relative").css("width","100%").css("height","0px").css("top","0px").css("left","0px").prependTo(th);span=$(spanMarkup).attr({"data-hiddencolumn-indicator":true,"data-localeid":"hiddenColumnIndicatorTooltipText","data-localeattr":"title",title:this._getLocaleValue("hiddenColumnIndicatorTooltipText"),"data-skip-event":"true"}).css("position","absolute").css(margin,-paddingValue+"px").css(position,"0px").css("width",this.options.hiddenColumnIndicatorHeaderWidth+"px").addClass(this.css.hiddenColumnIndicator).appendTo(div);if($.ig.util.isIE7){span.css({top:-parseInt(th.css("padding-top"),10),height:th.innerHeight()})}return div},_clearHiddenColumnIndicator:function(left,th){var padding,paddingValue,indicatorSelector,indicator;if(left){padding="padding-left";indicatorSelector="div[data-hiddencolindicator=left]"}else{padding="padding-right";indicatorSelector="div[data-hiddencolindicator=right]"}indicator=th.find(indicatorSelector);if(indicator.length!==0){indicator.remove();paddingValue=parseInt(th.css(padding),10);th.css(padding,paddingValue-this.options.hiddenColumnIndicatorHeaderWidth+"px")}},_onBlurDDElement:function(e,button,dropDown){var self=this;self._activeDD=null;clearTimeout(self._blurTimeout);self._blurTimeout=setTimeout(function(){if(!self._activeDD||self._activeDD!==dropDown){self._toggleDropDown(button,dropDown,true)}},1)},_onFocusDDElement:function(e,button,dropDown){this._activeDD=dropDown},_bindDropDownToIndicator:function(button,columnKeys){var self=this,$hInd=button.closest("[data-hiddencolindicator]"),dropDown=this._renderDropDown(button,columnKeys);dropDown.find("ul,[tabindex],a").bind({blur:function(e){self._onBlurDDElement(e,button,dropDown)},focus:function(e){self._onFocusDDElement(e,button,dropDown)}});dropDown.bind({keydown:function(e){var $li,keyCode=e.keyCode,$target=$(e.target);switch(keyCode){case $.ui.keyCode.ESCAPE:self._toggleDropDown(button,dropDown,true);$hInd.focus();break;case $.ui.keyCode.ENTER:case $.ui.keyCode.SPACE:if($target.is("li")){$target.mousedown();e.preventDefault()}break;case $.ui.keyCode.TAB:$li=$target;if(!$li.is("li")){$li=$target.closest("li")}if(!e.shiftKey){if($li.is(":last-child")){$li.closest("ul").find("li:first-child").focus();e.preventDefault()}}else{if($li.is(":first-child")){$li.closest("ul").find("li:last-child").focus();e.preventDefault()}}break}}});$hInd.bind({keydown:function(e){if(e.keyCode===$.ui.keyCode.ENTER||e.keyCode===$.ui.keyCode.SPACE){self._toggleDropDown(button,dropDown,false);e.preventDefault();e.stopPropagation()}}});button.parent().bind({mousedown:function(e){self._toggleDropDown(button,dropDown,false);e.preventDefault();e.stopPropagation()},mouseover:function(){if(button.attr("data-indicator-selected")!=="true"){button.addClass(self.css.hiddenColumnIndicatorMouseOver)}},mouseout:function(){button.removeClass(self.css.hiddenColumnIndicatorMouseOver);
},mouseup:function(e){e.preventDefault();e.stopPropagation()},click:function(e){e.preventDefault();e.stopPropagation()}})},_renderDropDown:function(button,columnKeys){var self=this,dropDown,list;dropDown=$("").css("position","absolute").css("display","none").addClass(this.css.hiddenColumnsDropDown).appendTo(this.grid._rootContainer());list=$("").addClass(this.css.hiddenColumnsDropDownList).appendTo(dropDown);$.each(columnKeys,function(index,columnKey){$("").addClass(self.css.hiddenColumnsDropDownItem).bind({mouseover:function(e){$(e.currentTarget).addClass(self.css.hiddenColumnsDropDownItemHover)},mouseout:function(e){$(e.currentTarget).removeClass(self.css.hiddenColumnsDropDownItemHover)},mousedown:function(e){self._closeColumnChooser(e);self._showColumnFromUI(columnKey);self._toggleDropDown(button,dropDown,true)}}).append($("").addClass(self.css.hiddenColumnsDropDownItemText).html(self.grid.columnByKey(columnKey).headerText)).appendTo(list)});$("").appendTo($("").appendTo(list)).igButton({labelText:this._getLocaleValue("columnChooserDisplayText"),mousedown:function(event){if(event.target){setTimeout(function(){$(event.target).removeClass("ui-state-active")},0)}self._openColumnChooser(true);self._toggleDropDown(button,dropDown,true)},keydown:function(e){if(e.keyCode===$.ui.keyCode.ENTER||e.keyCode===$.ui.keyCode.SPACE){$(e.target).mousedown();e.preventDefault()}}});return dropDown},_toggleDropDown:function(button,dropDown,isCalledFromBlur){var th,rOffset,isLast,offset,left,self=this,isVisible=dropDown.is(":visible")===true;if(dropDown.data("isAnimating")===true||isVisible===false&&isCalledFromBlur===true){return}if(!isVisible){th=button.closest("th");isLast=button.closest("div").attr("data-hiddencolindicator")==="right";offset=$.ig.util.offset(th);if(isLast){left=offset.left+th.outerWidth()-dropDown.outerWidth()}else{left=th.closest("div").outerWidth()-th.igPosition().left thead > tr > th").not("[data-skip=true]").each(function(){var th=$(this);self._clearHiddenColumnIndicator(true,th);self._clearHiddenColumnIndicator(false,th)});this._renderHiddenColumnIndicators()},_detachEvents:function(){if(this._headerCellRenderedHandler!==null&&this._headerCellRenderedHandler!==undefined){this.grid.element.unbind("iggridheadercellrendered",this._headerCellRenderedHandler)}if(this._headerRenderedHandler!==null&&this._headerRenderedHandler!==undefined){this.grid.element.unbind("iggridheaderrendered",this._headerRenderedHandler)}if(this._virtualHorizontalScrollHandler!==null&&this._virtualHorizontalScrollHandler!==undefined){this.grid.element.unbind("iggridvirtualhorizontalscroll",this._virtualHorizontalScrollHandler)}if(this._columnsMovedHandler!==null&&this._columnsMovedHandler!==undefined){this.grid.element.unbind("iggrid_columnsmoved",this._columnsMovedHandler)}},_injectGrid:function(gridInstance){var i,j,cs,col,children;this.grid=gridInstance;this._detachEvents();this._headerRenderedHandler=$.proxy(this._headerRendered,this);this._headerCellRenderedHandler=$.proxy(this._headerCellRendered,this);this._virtualHorizontalScrollHandler=$.proxy(this._virtualHorizontalScroll,this);this._columnsMovedHandler=$.proxy(this._columnsMoved,this);this.grid.element.bind("iggridheadercellrendered",this._headerCellRenderedHandler);this.grid.element.bind("iggridheaderrendered",this._headerRenderedHandler);this.grid.element.bind("iggridvirtualhorizontalscroll",this._virtualHorizontalScrollHandler);this.grid.element.bind("iggrid_columnsmoved",this._columnsMovedHandler);if(this.grid.element.igGridFeatureChooser!==undefined){this.grid.element.igGridFeatureChooser()}else{throw new Error(this._getLocaleValue("featureChooserNotReferenced"))}for(i=0;i0){for(i=0;i td > div").slideDown(this.options.animationDuration,function(ctx){handler.apply(this,[ctx,callback])})}else{tr.next().find("> td > div").show();c.addClass(this.css.expandColumnExpanded).find(".ui-iggrid-expandbutton").removeClass(this.css.expandButton).addClass(this.css.expandButtonExpanded).attr({title:this._getLocaleValue("collapseTooltip"),"data-localeid":"collapseTooltip","data-localeattr":"title"})}tr.attr("state","e");tr.attr("aria-expanded",true);tr.next().children().first().removeClass(this.css.childGridAreaCollapsed).addClass(this.css.childGridArea);if(!this.options.expandCollapseAnimations){this._rowExpanded({owner:this,parentrow:tr});if(!suppressEvents){this._trigger(this.events.rowExpanded,null,{owner:this,parentrow:tr})}else if(callback){$.ig.util.invokeCallback(callback,[this,tr])}}}},expanded:function(element){var $e=element.length!==undefined?element:$(element);if($e===null||$e===undefined){return false}if($e.attr("state")!=="e"||$e.attr("state")===undefined){return false}return true},_expandendnoevents:function(ctx,callback){var expcell,expcellspan,rootgrid,$this=ctx?$(ctx):$(this),prow=$this.closest("tr[data-container]").prev();rootgrid=this._rootgrid||$this.closest(".ui-iggrid-root").data("igHierarchicalGrid");expcell=$this.closest("[data-container=true]").prev().find(".ui-iggrid-expandcolumn");expcellspan=expcell.find(".ui-iggrid-expandbutton");expcell.addClass(rootgrid.css.expandColumnExpanded);expcellspan.removeClass(rootgrid.css.expandButton).addClass(rootgrid.css.expandButtonExpanded).attr({title:rootgrid._getLocaleValue("collapseTooltip"),"data-localeid":"collapseTooltip","data-localeattr":"title"});rootgrid._rowExpanded({owner:rootgrid,parentrow:prow});if(rootgrid._animationQueue[prow.attr("data-id")+"_"+prow.index()]===true){delete rootgrid._animationQueue[prow.attr("data-id")+"_"+prow.index()]}if(callback){$.ig.util.invokeCallback(callback,[rootgrid,prow])}},_expandend:function(){var $this=$(this),rootgrid,prow=$this.closest("tr[data-container]").prev(),parentGrid=prow.closest(".ui-iggrid-table").data("igGrid");rootgrid=this._rootgrid||$this.closest(".ui-iggrid-root").data("igHierarchicalGrid");rootgrid._expandendnoevents(this);parentGrid._adjustLastColumnWidth(false);rootgrid._trigger(rootgrid.events.rowExpanded,null,{owner:rootgrid,parentrow:prow})},_collapseendnoevents:function(ctx,callback){var expcell,expcellspan,rootgrid,$this=ctx?$(ctx):$(this),ctd=$this.closest(".ui-iggrid-childarea"),prow=$this.closest("tr[data-container]").prev();rootgrid=this._rootgrid||$this.closest(".ui-iggrid-root").data("igHierarchicalGrid");ctd.removeClass(rootgrid.css.childGridArea).addClass(rootgrid.css.childGridAreaCollapsed);ctd.closest("tr").css("display","none").css("visibility","hidden");expcell=$this.closest("[data-container=true]").prev().find(".ui-iggrid-expandcolumn");expcellspan=expcell.find(".ui-iggrid-expandbutton");expcell.removeClass(rootgrid.css.expandColumnExpanded);expcellspan.removeClass(rootgrid.css.expandButtonExpanded).addClass(rootgrid.css.expandButton).attr({title:rootgrid._getLocaleValue("expandTooltip"),"data-localeid":"expandTooltip","data-localeattr":"title"});if(rootgrid._animationQueue[prow.attr("data-id")+"_"+prow.index()]===true){delete rootgrid._animationQueue[prow.attr("data-id")+"_"+prow.index()]}if(callback){$.ig.util.invokeCallback(callback,[rootgrid,prow])}},_collapseend:function(){var $this=$(this),rootgrid,prow=$this.closest("tr[data-container]").prev(),parentGrid=prow.closest(".ui-iggrid-table").data("igGrid");rootgrid=this._rootgrid||$this.closest(".ui-iggrid-root").data("igHierarchicalGrid");rootgrid._collapseendnoevents(this);parentGrid._adjustLastColumnWidth(false);rootgrid._trigger(rootgrid.events.rowCollapsed,null,{owner:rootgrid,parentrow:prow})},collapse:function(id,callback){this._collapse(id,true,callback)},_collapse:function(id,suppressEvents,callback){var tr=$(id),c,noCancel=true,handler,rootgrid;if(this.collapsed(tr)){return}if(!suppressEvents){noCancel=this._trigger(this.events.rowCollapsing,null,{owner:this,parentrow:tr})}rootgrid=this._rootgrid||this.element.closest(".ui-iggrid-root").data("igHierarchicalGrid");if(noCancel){if(this.options.expandCollapseAnimations){if(rootgrid._animationQueue[tr.attr("data-id")+"_"+tr.index()]===true){return}rootgrid._animationQueue[tr.attr("data-id")+"_"+tr.index()]=true}c=tr.find(".ui-iggrid-expandcolumn");if(this.options.expandCollapseAnimations){if(!suppressEvents){handler=this._collapseend}else{handler=this._collapseendnoevents}this._rowCollapsed({owner:this,parentrow:tr});tr.next().find("> td > div").slideUp(this.options.animationDuration,function(ctx){handler.apply(this,[ctx,callback])})}else{this._rowCollapsed({owner:this,parentrow:tr});tr.next().find("> td > div").hide();tr.next().children().first().removeClass(this.css.childGridArea).addClass(this.css.childGridAreaCollapsed);tr.next().css("display","none").css("visibility","hidden");c.find(".ui-iggrid-expandbutton").removeClass(this.css.expandButtonExpanded).addClass(this.css.expandButton).attr({title:this._getLocaleValue("expandTooltip"),"data-localeid":"expandTooltip","data-localeattr":"title"});if(!suppressEvents){this._trigger(this.events.rowCollapsed,null,{owner:this,parentrow:tr})}else if(callback){$.ig.util.invokeCallback(callback,[this,tr])}}tr.attr("state","c");tr.attr("aria-expanded",false)}},collapsed:function(element){var $e=element.length!==undefined?element:$(element);if($e===null||$e===undefined){return true}if($e.attr("state")==="c"||$e.attr("state")===undefined){return true}return false},populated:function(element){var $e=element.length!==undefined?element:$(element);if($e===null||$e===undefined){return false}if($e.attr("c")==="true"){return true}return false},_mouseOver:function(event){$(event.target).addClass(this.css.expandButtonHover)},_mouseOut:function(event){$(event.target).removeClass(this.css.expandButtonHover).addClass(this.css.expandButton)},_toggleInternalWithDelay:function(event){var self=this;setTimeout(function(){self._toggleInternal(event)},0);event.stopImmediatePropagation()},_toggleInternal:function(event,suppressEvents,callback){var created=$(event.target).closest("tr").attr("c"),tr=$(event.target).closest("tr"),p=tr.find(".ui-iggrid-expandcolumn"),hgrid=this,isExpand,expandTout=this.options.virtualization===true?50:0;isExpand=$(event.target).hasClass("ui-iggrid-expandbutton")||$(event.target).children(".ui-iggrid-expandbutton").length>0;if(!created&&this.options.initialDataBindDepth===-1&&isExpand){this.indicator.refreshPos();if(!$.ig.util.isWebKit){p.find(".ui-iggrid-expandbutton").css("visibility","hidden");this.indicator.show(false)}else{this.indicator.show(false)}setTimeout(function(){hgrid._toggleInternalAsync(event,suppressEvents,callback)},expandTout)}else{hgrid._toggleInternalAsync(event,suppressEvents,callback)}if(!suppressEvents){if(event.originalEvent&&typeof event.originalEvent.cancelBubble==="unknown"){event.originalEvent={}}event.stopImmediatePropagation()}},_toggleInternalAsync:function(event,suppressEvents,callback){var $td=$(event.target),parentrow=$td.closest("tr"),rowid="",keyspath="",keyspathvar="",pgridp,level=-1,sp=false,restSettingsSet,childds,created=parentrow.attr("c"),childrow,childgrids=[],ds,opts=[],id,k,isHierarchical,tmpkey,pki,key,pgInstance,cs,popts,i,j,h,parentLevel=0,tmpgrid,state=parentrow.attr("state"),animatec,noCancel=true,noCancelChild=true,pid,instanceOfDs,eArgs,currPathVar,paths,ids,childGrid,createdChildGrids=[];if($td.is("td")&&$td.attr("data-parent")!=="true"||$td.closest("td").attr("data-parent")!=="true"){return}if(state===undefined){state="c"}restSettingsSet=this.options.restSettings.update.url!==null||this.options.restSettings.update.template!==null||this.options.restSettings.create.url!==null||this.options.restSettings.create.template!==null||this.options.restSettings.remove.url!==null||this.options.restSettings.remove.template!==null;if(!created&&state==="c"){parentrow.after("
");childrow=parentrow.next();childrow.attr("data-container",true);popts=parentrow.closest("table").data("igGrid").options;opts=this._optsFor(popts);pgridp=parentrow.closest(".ui-iggrid-table");keyspath+=pgridp.attr("data-path")||"";rowid+=pgridp.attr("data-ids")||"";k=parentrow.closest("table").data("igGrid").options.primaryKey;if(rowid===""){rowid=k+":"+parentrow.attr("data-id")}else{rowid+=this.options.pathSeparator+k+":"+parentrow.attr("data-id")}cs=parentrow.find("td,th").length;animatec=$("").appendTo($(" | ").appendTo(childrow).addClass(this.css.childGridArea).attr("colspan",cs));for(i=0;i").appendTo(animatec).attr("data-childgrid",true));key=opts[i].key!==undefined?opts[i].key:opts[i].childrenDataProperty;childgrids[i].attr("id",this.root()[0].id+"_"+parentrow.attr("data-id")+"_"+key+"_child");parentLevel=parseInt(parentrow.closest("table").attr("data-level"),10);childgrids[i].attr("id",childgrids[i].attr("id").replace(",","-")).attr("data-level",parentLevel+1);if(keyspath===""){keyspathvar=opts[i].childrenDataProperty===undefined?opts[i].key:opts[i].childrenDataProperty}else{keyspathvar=this.options.pathSeparator+(opts[i].childrenDataProperty===undefined?opts[i].key:opts[i].childrenDataProperty)}childds=this._hds.dataAt(rowid,keyspath+keyspathvar);if(childds===null||childds===undefined){childds=[]}else if($.type(childds)!=="array"&&!opts[i].responseDataKey&&childds!==undefined){childds=[childds]}isHierarchical=false;if(opts[i].columnLayouts&&opts[i].columnLayouts.length>0){isHierarchical=true}if(isHierarchical){this._regevents(childgrids[i],this)}level=rowid.split(this.options.pathSeparator).length;if(level>this.options.initialDataBindDepth&&this.options.initialDataBindDepth!==-1){sp=true}ds=this._hdsoptions().dataSource;eArgs={owner:this,options:opts[i],element:childgrids[i],id:rowid,path:keyspath+keyspathvar};if(!sp){opts[i].dataSource=childds;if($.type(ds)==="string"&&this.options.rest!==true&&!opts[i].dataSourceUrl){opts[i].dataSourceUrl=ds}if(opts[i].dataSourceUrl&&$.type(opts[i].dataSourceUrl)==="string"){if(!this.options.odata){opts[i].dataSourceUrl=$.ig.util.appendToQueryString(opts[i].dataSourceUrl,this._hds._encodeUrlPath(rowid,opts[i].key))}else{opts[i].dataSourceUrl=this._getOdataChildUrl(parentrow,keyspathvar,opts[i])}}if(this.options.autoGenerateLayouts===true){opts[i]._recurseSchema=true}noCancelChild=$.event.trigger(this.events.childGridCreating,eArgs,childgrids[i][0]);noCancelChild=childgrids[i].attr("data-create")!=="false"&&noCancelChild!==false;if(noCancelChild){if((this.options.rest||this.options.odata)&&restSettingsSet===true){this._inheritRestSettings(null,parentrow.attr("data-id"),keyspathvar.toLowerCase(),popts,opts[i])}if(isHierarchical){opts[i]._isHierarchicalGrid=true}opts[i].layoutPath=keyspath+keyspathvar;pgInstance=parentrow.closest(".ui-iggrid-table").data("igGrid");if(pgInstance){opts[i].foreignKeyValue=pgInstance._fixPKValue(parentrow.data("id"))}else{opts[i].foreignKeyValue=parentrow.data("id")}h=$.proxy(this._childRendered,this);childgrids[i].bind("iggridrendered.hierarchicalgrid",h);childgrids[i].igGrid(opts[i]);childgrids[i].attr("data-path",keyspath+keyspathvar);childgrids[i].attr("data-ids",rowid);if(opts[i].dataSourceUrl&&$.type(opts[i].dataSourceUrl)==="string"&&this.options.odata){childGrid=childgrids[i].data("igGrid");childGrid.options.responseDataKey=this.options.responseDataKey;childGrid.dataSource.schema().schema.searchField=this.options.responseDataKey}if(isHierarchical){this._regToggleEvent(childgrids[i],this)}childgrids[i].trigger(this.events.childGridCreated,{owner:this,element:childgrids[i]});createdChildGrids.push(childgrids[i])}if(opts[i].primaryKey===null||opts[i].primaryKey===undefined){if(opts[i].dataSource&&typeof opts[i].dataSource._xmlToArray==="function"&&typeof opts[i].dataSource._encodePkParams==="function"){throw new Error(this._getLocaleValue("noPrimaryKey"))}tmpgrid=childgrids[i].data("igGrid");tmpkey=tmpgrid.dataSource.schema().schema.searchField;if(tmpkey!==null){for(pki=0;pki
").insertBefore(tmpgrid.container()).addClass(this.css.childGridSeparator)}}},_getOdataChildUrl:function(parentrow,keyspathvar,childGridOpts){var popts=parentrow.closest("table").data("igGrid").options,ds=this._hdsoptions().dataSource,instanceOfDs=ds&&typeof ds._xmlToArray==="function"&&typeof ds._encodePkParams==="function",dsobj=instanceOfDs?ds.settings.dataSource:ds,dsString=popts.dataSource&&typeof popts.dataSource._xmlToArray==="function"&&typeof popts.dataSource._encodePkParams==="function"?popts.dataSource.settings.dataSource:popts.dataSource,childds=parentrow.closest("table").data("igGrid").dataSource.data(),tmpkey=parentrow.attr("data-id"),k=popts.primaryKey,dsURL,pki,pid,currPathVar;if(parentrow.closest("table").data("igGrid").columnByKey(k).dataType==="number"){tmpkey=parseInt(tmpkey,10)}pid=typeof tmpkey==="string"?"'"+tmpkey+"'":tmpkey;for(pki=0;pki
0){return}layout.columns=args.owner.options.columns},_findLayout:function(layouts,key){var i,layout;for(i=0;layouts&&i0&&!this.options.autoGenerateColumns){schema={};schema.fields=[];j=0;for(i=0;i0&&$.type(this.options.dataSource)==="array"){rec=this.options.dataSource[0];for(prop in rec){if(rec.hasOwnProperty(prop)){for(k=0;k0){
for(j=0;j0){for(j=0;j").prependTo(row).css("border-width",0).attr("data-skip",true)}else{$(" | ").appendTo(row).css("border-width",0).attr("data-skip",true)}},_renderExtraFooterCell:function(row,colgroup,prepend,cssClass){if(prepend===true){$(" | ").addClass(cssClass).prependTo(row).attr("data-skip",true)}else{$(" | ").addClass(cssClass).appendTo(row).attr("data-skip",true)}},_dataBound:function(sender,args){var senderId=sender.currentTarget.id,ownerId=args.owner.element[0].id,o=args.owner.options;if(ownerId!==senderId&&ownerId!==senderId+"_table"){return}if(o.primaryKey===null||o.primaryKey===undefined){this._generatePrimaryKeyValues(args.dataSource.data());o.primaryKey="ig_pk"}},_headerrenderedinternal:function(sender,args){if(args.owner.element[0].id!==sender.currentTarget.id&&args.owner.element[0].id!==sender.currentTarget.id+"_table"){return}var self=this,flatRenderColgroup=args.owner._renderColgroup,tmpid,$thDataSkip;args.owner._cleanupTBody=function(){var $tbody=this.element.children("tbody");this._fireInternalEvent("_cleanupTBody");$tbody.children("tr").remove();return $tbody};args.owner._renderRecord=$.proxy(this._hierarchicalRenderRecord,args.owner);args.owner._getFirstVisibleTR=$.proxy(this._hierarchicalGetFirstVisibleTR,args.owner);args.owner._getLastVisibleTR=$.proxy(this._hierarchicalGetLastVisibleTR,args.owner);args.owner._renderColgroup=function(){self._hierarchicalRenderColgroup.apply(args.owner,$.merge([flatRenderColgroup,self],arguments))};args.owner._headerInitCallbacks.push({type:"HierarchicalGrid",func:$.proxy(this._renderExtraHeaderCell,this)});args.owner._footerInitCallbacks.push({type:"HierarchicalGrid",func:$.proxy(this._renderExtraFooterCell,this)});args.owner._trigger("headerextracellsmodified",null,{owner:args.owner});if(args.table.attr("id")!==args.owner.element.attr("id")&&$(args.table).find("colgroup col[data-expander]").length===0){$("").attr("data-skip","true").attr("data-expander",true).prependTo(args.table.find("colgroup")).width(this.options.expandColWidth)}$thDataSkip=$(" | ");$("").appendTo($thDataSkip.prependTo(args.table.find("thead tr:first")).addClass(this.css.expandHeaderCell).attr("data-skip",true)).addClass(this.css.expandHeaderCellTriangle);if(args.owner._isMultiColumnGrid){$thDataSkip.attr("rowspan",args.owner._maxLevel+1)}if(args.owner._isWrapped){tmpid=args.owner.element.attr("id").substring(0,args.owner.element.attr("id").indexOf("_table"));args.owner.container().find("#"+tmpid).unbind("iggridheaderrenderedinternal",args.owner.element.data("hr"));args.owner.container().find("#"+tmpid).removeData("hr")}else{args.owner.element.unbind("iggridheaderrenderedinternal",args.owner.element.data("hr"));args.owner.element.removeData("hr")}},_checkIsMultiColumnHeader:function(lobj){var i,cols=lobj.columns,colsLength;if(cols){colsLength=cols.length;for(i=0;i";layouts=this.options.columnLayouts;hasChildren=false;lod=hg?hg.options.initialDataBindDepth>-1:false;if(!lod){for(i=0;layouts&&i0||this._shouldAlwaysRenderChildIndicator)){hasChildren=true;break}}else{if(data[childprop]){if(data[childprop].length!==undefined&&(data[childprop].length>0||this._shouldAlwaysRenderChildIndicator)){hasChildren=true;break}if(this.options.responseDataKey&&data[childprop][this.options.responseDataKey]&&data[childprop][this.options.responseDataKey].length!==undefined&&(data[childprop][this.options.responseDataKey].length>0||this._shouldAlwaysRenderChildIndicator)){hasChildren=true;break}}}}}}else{hasChildren=true}if(hasChildren){markup=""+""}dstr+=""+markup+" | ";noVisibleColumns=true;$(this.options.columns).each(function(colIndex){var col=grid.options.columns[colIndex];cellClass=false;if(col.hidden){return}noVisibleColumns=false;dstr+=""+temp;cellClass=true}dstr=grid._editCellStyle(dstr,data,colIndex,col,cellClass)}else{dstr+=grid._addCellStyle(data,colIndex,col)+">"+grid._renderCell(data[colIndex],this,data)}dstr+=" | "}else{if(this.template&&this.template.length){temp=grid._renderTemplatedCell(data,this);if(temp.indexOf(""+temp;cellClass=true}dstr=grid._editCellStyle(dstr,data,this.key,col,cellClass)}else{dstr+=grid._addCellStyle(data,this.key,col)+">"+grid._renderCell(data[this.key],this,data)}dstr+=" | "}});if(noVisibleColumns){dstr+=" | "}dstr+="";return dstr},_generatePrimaryKeyValues:function(ds){ds=ds||[];var i,len=ds.length;for(i=0;icolgroup");if($colgroup.find(">col[data-expander]").length>0){return}$("").prependTo($colgroup).css("width",hierarchicalGrid.options.expandColWidth).attr("data-skip","true").attr("data-expander",true)},_schemaGenerated:function(event,args){var hg,i,rec,schema=args.schema,ds=args.dataSource,$this=args.owner,prop;hg=$this.element.closest(".ui-iggrid-root").data("igHierarchicalGrid");if(!hg){hg=$this.element.hasClass(".ui-iggrid-root")?$this.element:undefined}if(!hg||hg.options.initialDataBindDepth>-1){return}for(i=0;ds&&ds.length&&$.type(ds)==="array"&&i0&&$.type(popts.columnLayouts)==="array"){layouts=popts.columnLayouts;for(j=0;j0){nowrite=true}child.features[j]=$.extend(true,{},parent.features[i],f);if(!nowrite){child.features[j].columnSettings=[]}}}}},_regevents:function(e,context){var headerRenderedInternal,datarendered,schemaGenerated,columnStateChanged;headerRenderedInternal=$.proxy(context._headerrenderedinternal,context);datarendered=$.proxy(this._handleBatchExpandRender,context);schemaGenerated=$.proxy(this._schemaGenerated,context);columnStateChanged=$.proxy(this._columnStateChanged,context);e.bind("iggridheaderrenderedinternal.hierarchicalgrid",headerRenderedInternal);e.bind("iggriddatarendered.hierarchicalgrid",datarendered);e.bind("iggridschemagenerated.hierarchicalgrid",schemaGenerated);e.bind("iggriddatabound.hierarchicalgrid",$.proxy(this._dataBound,this));e.bind("iggridcolumnscollectionmodified.hierarchicalgrid",columnStateChanged);e.data("hr",headerRenderedInternal)},_regToggleEvent:function(e,context){var toggle;toggle=$.proxy(context._toggleInternalWithDelay,context);e.undelegate(".ui-iggrid-expandcolumn > .ui-iggrid-expandbuttoncontainer","mousedown");e.delegate(".ui-iggrid-expandcolumn > .ui-iggrid-expandbuttoncontainer","mousedown",toggle)},commit:function(){var elem=this.element;elem.find(".ui-iggrid-table").each(function(){$(this).igGrid("commit")});elem.igGrid("commit")},rollback:function(rebind){var elem=this.element;elem.find(".ui-iggrid-table").each(function(){$(this).igGrid("rollback",null,rebind)});elem.igGrid("rollback",null,rebind)},_addToLog:function(elem,taLog,child){var grid=elem.data("igGrid"),ds=grid?grid.dataSource:null,gridLog=ds?ds.allTransactions():[],i;if(!gridLog.length){return}this._dsLog=this._dsLog||[];this._dsLog.push(ds);for(i=0;i0){logs[i]._saveChangesSuccess(data,textStatus,jqXHR)}if(success){success(data,textStatus,jqXHR)}},error:function(jqXHR,textStatus,errorThrown){var logs=self._dsLog,i=logs?logs.length:0;while(i-- >0){logs[i]._saveChangesError(jqXHR,textStatus,errorThrown)}if(error){error(jqXHR,textStatus,errorThrown)}}};$.ajax(opts)},_saveChangesForEachGrid:function(success,error){this.rootWidget().saveChanges(success,error);$.each(this.allChildrenWidgets(),function(){this.saveChanges(success,error)})},_handleBatchExpandRender:function(sender,args){var level=0,grid=args.owner,keyspath,ds,hdsData,rowid,popts,pgridp,parentRow,k,gridId=grid.element[0].id,tId=sender.currentTarget.id;if(gridId!==tId&&gridId!==tId+"_table"){return}level=parseInt(grid.element.attr("data-level"),10);if(isNaN(level)){level=0;grid.element.attr("data-level",level)}if(level>0&&this.options.initialDataBindDepth===-1&&this._hds.settings.type==="json"&&$.type(grid.options.dataSource)==="string"){keyspath="";rowid="";popts=grid.options;parentRow=grid.element.closest("tr[data-container]").prev("tr");pgridp=parentRow.closest(".ui-iggrid-table");keyspath+=pgridp.attr("data-path")||"";rowid+=pgridp.attr("data-ids")||"";k=pgridp.data("igGrid").options.primaryKey;if(rowid===""){rowid=k+":"+parentRow.attr("data-id")}else{rowid+=this.options.pathSeparator+k+":"+parentRow.attr("data-id")}if(popts.childrenDataProperty===undefined){if(popts.key){keyspath+=popts.key}}else{keyspath+=popts.childrenDataProperty}hdsData=this._hds.dataAt(rowid,keyspath);ds=grid.dataSource;if(hdsData[popts.responseDataKey]){hdsData[popts.responseDataKey]=ds._dataView;hdsData.Metadata=ds.metadata()}}if(level>this.options.initialExpandDepth){return}if((this.options.initialDataBindDepth===-1||this.options.initialDataBindDepth>=this.options.initialExpandDepth)&&this.options.initialExpandDepth!==-1){setTimeout($.proxy(this._batchExpand,args.owner),1)}},_columnStateChanged:function(sender,args){if(args.owner._initialized){this._handleBatchExpandRender(sender,args)}},_inheritRestSettings:function(path,pid,layout,popts,copts){var crest=copts.restSettings,prest=popts.restSettings,rs,ptmpl,fullpath;if(!path){if(prest.update.template||prest.remove.template){path=prest.update.template||prest.remove.template;path=path.replace("${id}",pid)}else{path=prest.create.url||prest.update.url||prest.remove.url;if(path.substr(path.length-1)!=="/"){path+="/"}path+=pid}if(layout.substr(0,1)==="/"){layout=layout.substr(1)}if(path.substr(path.length-1)!=="/"){path+="/"}fullpath=path+layout}else{fullpath=path}rs={update:{url:fullpath},create:{url:fullpath},remove:{url:fullpath}};if(crest.create.template&&prest.create.template){ptmpl=prest.create.template.replace("${id}",pid);crest.create.template=ptmpl+"/"+crest.create.template}if(crest.remove.template&&prest.remove.template){ptmpl=prest.remove.template.replace("${id}",pid);crest.remove.template=ptmpl+"/"+crest.remove.template}if(crest.update.template&&prest.update.template){ptmpl=prest.update.template.replace("${id}",pid);crest.update.template=ptmpl+"/"+crest.update.template}crest=$.extend(true,crest,rs)},_rowExpanded:function(args){var rowExpansion,rowHeight,parentGrid,currentHeight,rootGrid;rowExpansion=args.parentrow.next();if(rowExpansion.length===0||!rowExpansion.is("tr[data-container='true']")){return}rowHeight=rowExpansion.outerHeight();parentGrid=args.parentrow.closest(".ui-iggrid-table").data("igGrid");currentHeight=parentGrid._getScrollContainerHeight();parentGrid._setScrollContainerHeight(currentHeight+rowHeight);rootGrid=this.element.closest(".ui-iggrid-root").data("igGrid");if(rootGrid.options.rowVirtualization&&!parentGrid.options.height&&rootGrid.options.height){currentHeight=rootGrid._getScrollContainerHeight();rootGrid._setScrollContainerHeight(currentHeight+rowHeight)}},_rowCollapsed:function(args){var rowExpansion=args.parentrow.next(),rowHeight,parentGrid,currentHeight,rootGrid;if(rowExpansion.length===0||!rowExpansion.is("tr[data-container='true']")){return}rowHeight=rowExpansion.outerHeight();parentGrid=args.parentrow.closest(".ui-iggrid-table").data("igGrid");currentHeight=parentGrid._getScrollContainerHeight();parentGrid._setScrollContainerHeight(currentHeight-rowHeight);rootGrid=this.element.closest(".ui-iggrid-root").data("igGrid");if(rootGrid.options.rowVirtualization&&!parentGrid.options.height&&rootGrid.options.height){currentHeight=rootGrid._getScrollContainerHeight();rootGrid._setScrollContainerHeight(currentHeight-rowHeight)}},_hierarchicalGetFirstVisibleTR:function(visibleArea){var tableId="#"+this.element[0].id,firstVisibleTR;firstVisibleTR=$(tableId+" > tbody > tr:not([data-container='true'])").filter(function(){return this.offsetTop+$(this).height()>visibleArea.top}).first();return firstVisibleTR},_hierarchicalGetLastVisibleTR:function(visibleArea){var tableId="#"+this.element[0].id,lastVisibleTR;lastVisibleTR=$(tableId+" > tbody > tr:not([data-container='true'])").filter(function(){return this.offsetTop=0){row=tbody.find("tr").eq(index-sri);this._mergeRow(index,row,fireEvents)}this._rowMergingModel[index]=true;return}}var rowIndex=-1;for(var i=0;i=0){row=tbody.find("tr").eq(index-sri);this._unmergeRow(row)}this._rowMergingModel[index]=false;return}row=tbody.find("tr[data-id='"+id+"']").eq(0);this._unmergeRow(row);for(var i=0;i0},_dataRows:function(fixed,both){var table;if(both){table=this.grid.element.add(this.grid.fixedTable())}else{table=fixed?this.grid.fixedTable():this.grid.element}return table.children("tbody").children("tr:not([data-container='true'],[data-grouprow='true'],[data-summaryrow='true'])")},_addDummyGroupElements:function(dv,elements){var i,startIndex=this.grid._startRowIndex||0,endIndex=startIndex+this.grid._virtualRowCount||dv.length,visibleDv=dv.slice(startIndex,endIndex);for(i=0;itd[aria-describedby='"+cellAria+"']:not([gbsummarycell])");if(this._hasGroupedColumns()){this._addDummyGroupElements(dv,cells)}if(this.grid._isHierarchicalGrid){dv=dv.slice(0);this._addDummyChildGridElements(tbody,dv,cells)}i=sri>0?sri-1:0;prevCell=this.options.mergeType==="visual"?i-sri<0?$():cells.eq(i-sri):cells.eq(0);prevRec=dv[i++];for(i;i");this.grid.container().find("#"+buttonId).attr({"data-localeid":"loadMoreDataButtonText","data-localeattr":"value"}).igButton({labelText:this._getLocaleValue("loadMoreDataButtonText"),click:$.proxy(this._nextChunk,this),width:"100%"});if(this.grid.scrollContainer().data("igScroll")!==undefined){this._onIgScrollRendered()}else{this._onIgScrollRenderedHandler=$.proxy(this._onIgScrollRendered,this);this.grid.scrollContainer().on("igscrollrendered",this._onIgScrollRenderedHandler)}}}if(this._loadingIndicator){this._hideLoading()}},_onIgScrollRendered:function(){var loadMoreButton=$(".ui-iggrid-loadmorebutton",this.grid.scrollContainer());if(loadMoreButton.length>0){this.grid.scrollContainer().igScroll("option","syncedElemsV",[loadMoreButton]);this._igScrollUpdateHeightWithButton()}},_igScrollUpdateHeightWithButton:function(){var loadMoreButton=$(".ui-iggrid-loadmorebutton",this.grid.scrollContainer()),scrollHeight=this.grid.element.outerHeight()+loadMoreButton.outerHeight();this.grid.scrollContainer().igScroll("option","scrollHeight",scrollHeight);this.grid.scrollContainer().igScroll("refresh");if(!$.ig.util.isSafari&&$.ig.util.getScrollWidth()===0&&this.grid.scrollContainer().data("igScroll")._vBarContainer){this.grid.scrollContainer().data("igScroll")._vBarContainer.css("z-index",2)}},_checkNotSupportedScenarios:function(){if(this.options.loadTrigger==="auto"&&!this.grid.options.height){throw new Error(this._getLocaleValue("appendRowsOnDemandRequiresHeight"))}if(this.grid.options.virtualization||this.grid.options.rowVirtualization||this.grid.options.columnVirtualization){throw new Error(this._getLocaleValue("virtualizationNotSupported"))}var i,featureName,features=this.grid.options.features,featuresLength=features.length;if(featuresLength===1){return}for(i=0;i
=this.grid.dataSource.pageCount()-1){return}if(this._triggerEvents){noCancel=this._trigger(this.events.rowsRequesting,null,{owner:this,chunkIndex:this.options.currentChunkIndex+1,chunkSize:this.options.chunkSize})}if(noCancel){this._showLoading();this.grid.dataSource.settings.paging.pageSize=this.options.chunkSize;this.grid.dataSource.settings.paging.pageIndex=this.options.currentChunkIndex;this.grid.dataSource.settings.paging.appendPage=true;this._originalDataSourceCallback=this.grid.dataSource.settings.callback;this.grid.dataSource.settings.callback=this._appendRecordsHandler;this._requestPending=true;this.grid.dataSource.nextPage()}},_showLoading:function(){this._loadingIndicator.show()},_hideLoading:function(){this._loadingIndicator.hide()},destroy:function(){var buttonId=this.grid.id()+"_loadMoreButton",container=this.grid.options.height?this.grid.scrollContainer():this.grid.container(),button=container.find("div.ui-iggrid-loadmorebutton");this.grid.container().find("#"+buttonId).igButton("destroy");if(button){button.remove()}this.grid.element.unbind("iggridsortinginternalcolumnsorting",this._columnSortingHandler);this.grid.element.unbind("iggriduisoftdirty iggriduidirty",this._syncCurrentChunkIndexHandler);this.grid.scrollContainer().unbind("scroll",this._verticalScrollHandler);this.grid.scrollContainer().unbind("igscrollscrolling",this._verticalScrollHandler);if(this._onIgScrollRenderedHandler){this.grid.scrollContainer().unbind("igscrollrendered",this._onIgScrollRenderedHandler)}this._superApply(arguments);return this},_appendRecords:function(success,errmsg){var i,currentPage=[],noCancelError,sorting=this.grid.element.data("igGridSorting"),filtering=this.grid.element.data("igGridFiltering"),summaries=this.grid.element.data("igGridSummaries"),selection=this.grid.element.data("igGridSelection");if(success===true){currentPage=this.grid.dataSource.dataView().slice(this.grid.allRows().length-this.grid.pendingTransactions().length)}this._requestPending=false;this.grid.dataSource.settings.paging.pageIndex=0;this.grid.dataSource.settings.paging.appendPage=false;this.grid.dataSource.settings.callback=this._originalDataSourceCallback;for(i=0;i0){this._callDataRendered=false;sorting.sortMultiple();this._callDataRendered=true}}}else{sorting._dataRendered()}this._keepCurrentChunkIndex=false}if(filtering){this._keepCurrentChunkIndex=true;if(this.options.type==="remote"&&this.grid.dataSource.settings.filtering.type==="local"){if(!this._persistLocalFiltering){this.grid.dataSource.settings.filtering.expressions=[]}this._callDataRendered=false;filtering.filter(this.grid.dataSource.settings.filtering.expressions,true);this._callDataRendered=true}this._keepCurrentChunkIndex=false}if(summaries){if(this.options.type==="remote"&&this.grid.dataSource.settings.summaries.type==="local"){if(this._recalcLocalSummaries){summaries.calculateSummaries()}}}if(this.grid.scrollContainer().data("igScroll")!==undefined){if(this.options.loadTrigger==="auto"){this.grid.scrollContainer().igScroll("refresh")}else{this._igScrollUpdateHeightWithButton()}}this._hideLoading();if(success===false){noCancelError=this._trigger(this.grid.events.requestError,null,{owner:this,message:errmsg});if(noCancelError){throw new Error(errmsg)}}this.options.currentChunkIndex++;this._keepCurrentChunkIndex=false;if(this._triggerEvents){this._trigger(this.events.rowsRequested,null,{owner:this,chunkIndex:this.options.currentChunkIndex,chunkSize:this.options.chunkSize,rows:currentPage})}this._triggerEvents=true;if(this._initialProbeForChunkIndex||this.options.type==="local"){this._probeForNextChunk()}},_probeForNextChunk:function(){if(this.options.loadTrigger!=="auto"){return}var delta,scrollTop;if(this.grid.scrollContainer().data("igScroll")!==undefined){scrollTop=this.grid.scrollContainer().igScroll("option","scrollTop")}else{scrollTop=this.grid.scrollContainer().scrollTop()}delta=(scrollTop+this.grid.scrollContainer().height())/$(this.grid.element).height();if(delta>=1&&!this._requestPending){this._nextChunk()}else{this._initialProbeForChunkIndex=false}},_columnSorting:function(){this.grid.dataSource.settings.paging.pageSize=this.options.chunkSize*(this.options.currentChunkIndex+1);this._keepCurrentChunkIndex=true},_hidingFinishing:function(){this._keepCurrentChunkIndex=true},_gridCommit:function(){this._keepCurrentChunkIndex=true;this.grid.dataSource._dataView=this.grid.dataSource.data().slice(0,(this.options.currentChunkIndex+1)*this.options.chunkSize)},_internalRowDeleted:function(){var record=this.grid.dataSource.data()[this.grid.dataSource.dataView().length];if(this.options.type==="remote"){return}if(record){this._pushRecordIntoView(record)}this.options.currentChunkIndex=Math.min(this.options.currentChunkIndex,Math.max(Math.ceil(this.grid.dataSource.data().length/this.options.chunkSize)-1,0))},_internalRowAdded:function(row){var updating=this.grid.element.data("igGridUpdating");if(this.grid.options.autoCommit===true){if(this.grid.dataSource.dataView().length>this.options.chunkSize&&this.grid.dataSource.dataView().length%this.options.chunkSize!==0){this.grid.dataSource.dataView().pop();row=updating._combineRowElements(row.row);row.remove()}}},_syncCurrentChunkIndex:function(){if(this.options.type==="remote"&&this.grid.dataSource.settings.filtering.type==="local"){return}if(!this._keepCurrentChunkIndex){if(this.grid.dataSource.settings.paging.pageIndex!==this.options.currentChunkIndex){this.options.currentChunkIndex=this.grid.dataSource.settings.paging.pageIndex}this._keepCurrentChunkIndex=true}},_pushRecordIntoView:function(record){this.grid.renderNewRow(record);this.grid.dataSource.dataView().push(record)},nextChunk:function(){this._triggerEvents=false;this._nextChunk()}});$.extend($.ui.igGridAppendRowsOnDemand,{version:"19.1.20"})})($);/*!@license
* Infragistics.Web.ClientUI Grid Multi Headers 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
* infragistics.ui.grid.framework.js
* infragistics.ui.shared.js
* infragistics.dataSource.js
* infragistics.util.js
*/
(function($){$.widget("ui.igGridMultiColumnHeaders",$.ui.igWidget,{localeWidgetName:"igGridMultiColumnHeaders",css:{multiHeaderCell:"ui-iggrid-multiheader-cell",expandedHeaderIndicator:"ui-iggrid-multiheader-expanded",collapsedHeaderIndicator:"ui-iggrid-multiheader-collapsed",collapsibleIndicatorContainer:"ui-iggrid-indicatorcontainer ui-iggrid-collapsibleindicatorcontainer"},options:{inherit:false},events:{groupCollapsing:"groupCollapsing",groupCollapsed:"groupCollapsed",groupExpanding:"groupExpanding",groupExpanded:"groupExpanded"},_createWidget:function(){$.Widget.prototype._createWidget.apply(this,arguments)},changeLocale:function(){var self=this;this.grid.container().find("[data-expanded-state]").each(function(){self._changeLocaleForElement($(this))})},_registerWidget:$.noop,_unregisterWidget:$.noop,_renderingMultiColumnHeader:function(){this._renderHeaderColumns(this.grid._headerParent);this.grid._trigger(this.grid.events.headerRendered,null,{owner:this.grid,table:this.grid.headersTable()});this.grid._headerRenderCancel=false},_analyzeRowspanRows:function(oldCols,level){var i,col,groups=[],ml=this.grid._maxLevel-level,rowspan;for(i=0;i0){rowspan=col.rowspan}if(col.group!==undefined&&col.group!==null){groups.push({group:col.group,level:level+rowspan})}else{if(col.level===0){if(col.rowspan===null||col.rowspan===undefined||isNaN(col.rowspan)){if(ml+1-col.level>0){col.rowspan=ml+1-col.level}}}}if(this._rows[ml]===undefined||this._rows[ml]===null){this._rows[ml]=[]}this._rows[ml].push(col)}for(i=0;i').appendTo(headerContainer);for(i=0;i0){$container=$thead.empty().attr("role","rowgroup")}else{$container=$('').appendTo($container)}this._tr={};oldCols=this.grid._oldCols;this._rows={};this._analyzeRowspanRows(oldCols,0);for(i=this.grid._maxLevel;i>=0;i--){if(this._rows[i]!==null&&this._rows[i]!==undefined){this._renderRow($container,this._rows[i],i)}}for(i=0;icolgroup>col").eq(this.grid.getVisibleIndexByKey(key,true));$col.remove();parents=this.grid._getParentsMultiHeader(key);for(j=0;j0){mchElement=this.grid._getMultiHeaderColumnById(parentCol.identifier);if(mchElement&&mchElement.children){mchChildren=mchElement.children;isToHide=true;if(mchElement.hidden!==true){for(k=0;k"),$headerCell,childIds="",i,length;if(col.group){length=col.group.length;for(i=0;i").appendTo(pagerRight).addClass(this.css.pageDropDownContainer).attr({title:this._getLocaleValue("currentPageDropDownTooltip"),"data-localeid":"currentPageDropDownTooltip","data-localeattr":"title"});$("
").appendTo(dropDownContainer).text(this._getLocaleValue("currentPageDropDownLeadingLabel")).attr("data-localeid","currentPageDropDownLeadingLabel").addClass(this.css.pageDropDownLabels);kbrdNavEvents=this._getEditorKeyboardNavigation();edtrOpts={listItems:pagesArray,dropDownAttachedToBody:true,visibleItemsCount:this.dropDownVisibleItemsCount,suppressNotifications:true,isLimitedToListValues:true,width:this.options.defaultDropDownWidth,allowNullValue:false,buttonType:"dropdown",value:this.options.currentPageIndex+1,minValue:1,maxValue:pagesArray[pagesArray.length-1],dropDownListOpened:$.proxy(this._onSelectDropDownOpened,this),textChanged:$.proxy(this._onSelectDropDownPageIndex,this)};edtrOpts=$.extend(edtrOpts,kbrdNavEvents);this._curPageDD=$("
").appendTo(dropDownContainer).addClass(this.css.pageDropDownContainer).igNumericEditor(edtrOpts);this._curPageDD.igNumericEditor("selectedListIndex",this.options.currentPageIndex);$("
").appendTo(dropDownContainer).attr({"data-dd-container-label":id,"data-currentPageDropDownTrailingLabel":this.grid.dataSource.pageCount()}).text(this._getLocaleValue("currentPageDropDownTrailingLabel").replace("${count}",this.grid.dataSource.pageCount())).addClass(this.css.pageDropDownLabels)}if(this.options.showPrevNextPages===true){this._renderNextPage(pagerRight)}if(this.options.showFirstLastPages===true){this._renderLastPage(pagerRight)}if(this.options.showPageSizeDropDown&&this.options.pageSizeDropDownLocation==="inpager"){this._renderPageSizeDropDown(pagerRight)}this._bindEvents(pager);this._hideLoading(this.grid.element.children("tbody"));pager.show();if(this._shouldFirePageSizeChanged){this._shouldFirePageSizeChanged=false;this._trigger(this.events.pageSizeChanged,null,{pageSize:this.pageSize(),owner:this})}this._trigger(this.events.pagerRendered,null,{dataSource:this.grid.dataSource,owner:this});if(this._shouldFirePageIndexChanged){this._shouldFirePageIndexChanged=false;this._trigger(this.events.pageIndexChanged,null,{pageIndex:this.options.currentPageIndex,owner:this})}}},_getEditorKeyboardNavigation:function(){return{focus:function(e,args){var edtr=args.owner;if(edtr._dropDownList&&!edtr._dropDownList.is(":visible")){edtr.showDropDown()}},keydown:function(e,args){var edtr=args.owner,$activeItem;if(edtr._dropDownList&&edtr._dropDownList.is(":visible")){if(e.keyCode===$.ui.keyCode.DOWN){edtr._hoverNextDropDownListItem();e.preventDefault()}else if(e.keyCode===$.ui.keyCode.UP){edtr._hoverPreviousDropDownListItem();e.preventDefault()}else if(e.keyCode===$.ui.keyCode.ENTER){$activeItem=edtr._dropDownList.children(".ui-igedit-listitem").filter('[data-active="true"]');if($activeItem.length&&$activeItem.is(edtr.getSelectedListItem())&&$activeItem.text()!==edtr.field().val()){edtr.selectedListIndex(parseInt(edtr.field().val())-1);e.preventDefault()}}}}}},_onSelectDropDownOpened:function(event,args){var dd=args.owner,$ddCont=dd.dropDownContainer(),$selItem=dd.getSelectedListItem();if(!$selItem.length){return}$ddCont.scrollTop($selItem.igPosition().top-(this.dropDownVisibleItemsCount-1)*$selItem.outerHeight())},_onSelectDropDownPageIndex:function(event,args){var self=this;if(this._timeoutId!==undefined){clearTimeout(this._timeoutId)}if(parseInt(this.options.delayOnPageChanged,10)===0||event&&event.originalEvent&&event.originalEvent.type!=="keypress"){this._dropDownPageIndex(event,args)}else{this._timeoutId=setTimeout(function(){self._dropDownPageIndex(event,args)},this.options.delayOnPageChanged)}},_dropDownPageIndex:function(event,args){var noCancel=true,noCancelBinding=true,parsedString,editor=args.owner,val=args.text,pageInd=parseInt(val,10),mapping={"\uff11":"1","\uff12":"2","\uff13":"3","\uff14":"4","\uff15":"5","\uff16":"6","\uff17":"7","\uff18":"8","\uff19":"9","\uff10":"0"};if(val===""){return}if(isNaN(pageInd)){parsedString=val;$.each(mapping,function(jpVal,engVal){parsedString=parsedString.replace(new RegExp(jpVal,"g"),engVal)});pageInd=parseInt(parsedString,10);if(isNaN(pageInd)){editor.value(this.options.currentPageIndex+1);return}}if(pageInd<=0||pageInd>this.grid.dataSource.pageCount()){editor.hideDropDown();editor.value(this.options.currentPageIndex+1);return}if(pageInd-1===this.options.currentPageIndex){editor.hideDropDown();return}noCancel=this._trigger(this.events.pageIndexChanging,null,{newPageIndex:pageInd-1,currentPageIndex:this.options.currentPageIndex,owner:this});if(noCancel){noCancelBinding=this.grid._trigger(this.grid.events.dataBinding,null,{owner:this.grid,dataSource:this.grid.dataSource});if(noCancelBinding){editor.selectedListIndex(pageInd-1);this._shouldFirePageIndexChanged=true;if(!isNaN(pageInd)){this._showLoading();this.pageIndex(pageInd-1)}}}},_renderPrevPage:function(pager){var prev,self=this,imgspan;prev=$("
").appendTo(pager).addClass(this.css.prevPage).attr({title:this._getLocaleValue("prevPageTooltip"),"data-localeid":"prevPageTooltip","data-localeattr":"title"});if(this.options.currentPageIndex===0){$("
").appendTo(prev).addClass(this.css.prevPageImageDisabled);$("
").appendTo(prev).addClass(this.css.prevPageLabelDisabled).attr("data-localeid","prevPageLabelText").append(this._getLocaleValue("prevPageLabelText"))}else{prev.bind("mousedown",$.proxy(this._prevPage,this));imgspan=$("
").appendTo(prev).addClass(this.css.prevPageImage);$("
").appendTo(prev).addClass(this.css.prevPageLabel).attr("data-localeid","prevPageLabelText").append(this._getLocaleValue("prevPageLabelText"));imgspan.wrap(toStaticHTML('
'));prev.attr("tabIndex","0").bind({keydown:function(event){if(event.keyCode===$.ui.keyCode.ENTER||event.keyCode===$.ui.keyCode.SPACE){self._prevPage();event.stopPropagation();event.preventDefault()}},focus:function(event){$(event.currentTarget).closest("div").removeClass("ui-state-default").addClass("ui-state-focus")},blur:function(event){$(event.currentTarget).closest("div").removeClass("ui-state-focus").addClass("ui-state-default")}})}},_renderNextPage:function(pager){var next,self=this,imgspan;next=$("
").appendTo(pager).addClass(this.css.nextPage).attr({title:this._getLocaleValue("nextPageTooltip"),"data-localeid":"nextPageTooltip","data-localeattr":"title"});if(this.options.currentPageIndex===this.grid.dataSource.pageCount()-1){$("
").appendTo(next).addClass(this.css.nextPageLabelDisabled).attr("data-localeid","nextPageLabelText").append(this._getLocaleValue("nextPageLabelText"));$("
").appendTo(next).addClass(this.css.nextPageImageDisabled)}else{next.bind("mousedown",$.proxy(this._nextPage,this));$("
").appendTo(next).addClass(this.css.nextPageLabel).attr("data-localeid","nextPageLabelText").append(this._getLocaleValue("nextPageLabelText"));imgspan=$("
").appendTo(next).addClass(this.css.nextPageImage);imgspan.wrap(toStaticHTML('
'));next.attr("tabIndex","0").bind({keydown:function(event){if(event.keyCode===$.ui.keyCode.ENTER||event.keyCode===$.ui.keyCode.SPACE){self._nextPage();event.stopPropagation();event.preventDefault()}},focus:function(event){$(event.currentTarget).closest("div").removeClass("ui-state-default").addClass("ui-state-focus")},blur:function(event){$(event.currentTarget).closest("div").removeClass("ui-state-focus").addClass("ui-state-default")}})}},_renderFirstPage:function(pager){var first,self=this,imgspan;first=$("
").appendTo(pager).addClass(this.css.firstPage).attr({title:this._getLocaleValue("firstPageTooltip"),"data-localeid":"firstPageTooltip","data-localeattr":"title"});if(this.options.currentPageIndex===0){$("
").appendTo(first).addClass(this.css.firstPageImageDisabled);$("
").appendTo(first).addClass(this.css.firstPageLabelDisabled).attr("data-localeid","firstPageLabelText").append(this._getLocaleValue("firstPageLabelText"))}else{first.bind("mousedown",$.proxy(this._firstPage,this));imgspan=$("
").appendTo(first).addClass(this.css.firstPageImage);$("
").appendTo(first).addClass(this.css.firstPageLabel).attr("data-localeid","firstPageLabelText").append(this._getLocaleValue("firstPageLabelText"));imgspan.wrap(toStaticHTML('
'));first.attr("tabIndex","0").bind({keydown:function(event){if(event.keyCode===$.ui.keyCode.ENTER||event.keyCode===$.ui.keyCode.SPACE){self._firstPage();event.stopPropagation();event.preventDefault()}},focus:function(event){$(event.currentTarget).closest("div").removeClass("ui-state-default").addClass("ui-state-focus")},blur:function(event){$(event.currentTarget).closest("div").removeClass("ui-state-focus").addClass("ui-state-default")}})}},_renderLastPage:function(pager){var last,self=this,imgspan;last=$("
").appendTo(pager).addClass(this.css.lastPage).attr({title:this._getLocaleValue("lastPageTooltip"),"data-localeid":"lastPageTooltip","data-localeattr":"title"});if(this.options.currentPageIndex===this.grid.dataSource.pageCount()-1){$("
").appendTo(last).addClass(this.css.lastPageLabelDisabled).attr("data-localeid","lastPageLabelText").append(this._getLocaleValue("lastPageLabelText"));$("
").appendTo(last).addClass(this.css.lastPageImageDisabled)}else{last.bind("mousedown",$.proxy(this._lastPage,this));$("
").appendTo(last).addClass(this.css.lastPageLabel).attr("data-localeid","lastPageLabelText").append(this._getLocaleValue("lastPageLabelText"));imgspan=$("
").appendTo(last).addClass(this.css.lastPageImage);imgspan.wrap(toStaticHTML('
'));last.attr("tabIndex","0").bind({keydown:function(event){if(event.keyCode===$.ui.keyCode.ENTER||event.keyCode===$.ui.keyCode.SPACE){self._lastPage();event.stopPropagation();event.preventDefault()}},focus:function(event){$(event.currentTarget).closest("div").removeClass("ui-state-default").addClass("ui-state-focus")},blur:function(event){$(event.currentTarget).closest("div").removeClass("ui-state-focus").addClass("ui-state-default")}})}},_renderPageSizeDropDown:function(parent,prepend,insertAfter){var i,ps,editorId=this.grid.id()+"_editor",cClass,items,self=this,edtrOpts,kbrdNavEvents;cClass=this.options.pageSizeDropDownLocation==="above"?this.css.pageSizeDropDownContainerAbove:this.css.pageSizeDropDownContainer;if(insertAfter){parent=$("
").insertAfter(parent).addClass(cClass)}else{if(prepend){parent=$("
").prependTo(parent).addClass(cClass)}else{parent=$("
").appendTo(parent).addClass(cClass)}}parent.attr({"data-pagesize-dd-container":this.grid.id(),title:this._getLocaleValue("pageSizeDropDownTooltip"),"data-localeid":"pageSizeDropDownTooltip","data-localeattr":"title"});parent=$("
").appendTo(parent).addClass(this.css.pagingResults);if(prepend){$("
"+this._getLocaleValue("pageSizeDropDownTrailingLabel")+"").attr("data-localeid","pageSizeDropDownTrailingLabel").prependTo(parent).addClass(this.css.pageSizeLabel);
$("
").prependTo(parent).attr("id",editorId);$("
"+this._getLocaleValue("pageSizeDropDownLabel")+"").attr("data-localeid","pageSizeDropDownLabel").prependTo(parent).addClass(this.css.pageSizeLabel)}else{$("
"+this._getLocaleValue("pageSizeDropDownLabel")+"").attr("data-localeid","pageSizeDropDownLabel").appendTo(parent).addClass(this.css.pageSizeLabel);$("
").appendTo(parent).attr("id",editorId).addClass(this.css.pageSizeDropDown);$("
"+this._getLocaleValue("pageSizeDropDownTrailingLabel")+"").attr("data-localeid","pageSizeDropDownTrailingLabel").appendTo(parent).addClass(this.css.pageSizeLabel)}items=this.options.pageSizeList===null||this.options.pageSizeList.length===0?[5,10,20,25,50,75,100]:this.options.pageSizeList;if($.type(items)==="string"){items=items.split(",")}ps=this.pageSize();kbrdNavEvents=this._getEditorKeyboardNavigation();edtrOpts={width:this.options.defaultDropDownWidth,dropDownAttachedToBody:true,suppressNotifications:true,buttonType:"dropdown",dropDownOnReadOnly:true,listItems:items,allowNullValue:false,readOnly:true,textAlign:"left",value:ps,valueChanged:function(e,args){if(self.options.pageSizeDropDownLocation==="inpager"){setTimeout(function(){self._changePageSize(e,args)},0)}else{self._changePageSize(e,args)}},rendered:function(e,args){var edtr=args.owner;edtr.editorContainer().addClass(self.css.pageSizeDropDown);edtr.field().removeClass("ui-state-disabled");edtr.editorContainer().removeClass("ui-state-disabled")}};edtrOpts=$.extend(edtrOpts,kbrdNavEvents);this._pageSizeDD=this.grid.container().find("#"+editorId).igNumericEditor(edtrOpts);for(i=0;i
").appendTo(this.grid.headersTable().find("colgroup")).remove()}this._pageSizeDropDownRendered=true;this._trigger("pagingdropdownrendered")},_changePageSize:function(event,args){var noCancel=true,size=args.owner.value();noCancel=this._trigger(this.events.pageSizeChanging,null,{currentPageSize:this.pageSize(),newPageSize:size,owner:this});if(noCancel){if(this.options.type==="remote"){this.grid.element.trigger("iggriduidirty",{owner:this})}else{this.grid.element.trigger("iggriduisoftdirty",{owner:this})}this.pageSize(size);if(this.options.type==="remote"){this._shouldFirePageSizeChanged=true}else{this._trigger(this.events.pageSizeChanged,null,{pageSize:size,owner:this})}}else{args.owner.value(this.pageSize())}},_deleteOld:function(destroy){if(this._curPageDD){this._curPageDD.igNumericEditor("destroy");delete this._curPageDD}if(destroy&&this._pageSizeDD&&this._pageSizeDD.data("igNumericEditor")&&this._pageSizeDD.closest("body").length>0){this._pageSizeDD.igNumericEditor("destroy");delete this._pageSizeDD}},destroy:function(){var pager=this._pager();this.pageSize(0);this._deleteOld(true);this.grid.element.off(".paging");if(this.options.showPageSizeDropDown===true&&this.options.pageSizeDropDownLocation==="above"){$("#"+this.grid.container()[0].id+" .ui-iggrid-pagesizedropdowncontainerabove").remove()}pager.remove();if(this._loadingIndicator){delete this._loadingIndicator}this._superApply(arguments);return this},_injectGrid:function(gridInstance,isRebind){this.grid=gridInstance;if(this.options.type===null){this.options.type=this.grid._inferOpType()}if(!this.options.persist){if(isRebind){this.options.currentPageIndex=this._oPageIndex;this.options.pageSize=this._oPageSize}}else{this._loadPagingData()}this.grid.dataSource.settings.paging.type=this.options.type||"remote";this.grid.dataSource.settings.paging.pageIndex=this.options.currentPageIndex;if(this.options.type==="local"){this.grid.dataSource.persistedPageIndex(this.grid.dataSource.settings.paging.pageIndex)}this.grid.dataSource.settings.paging.pageSize=parseInt(this.options.pageSize,10);if(this.options.pageSizeUrlKey!==null&&this.options.pageIndexUrlKey){this.grid.dataSource.settings.paging.pageSizeUrlKey=this.options.pageSizeUrlKey;this.grid.dataSource.settings.paging.pageIndexUrlKey=this.options.pageIndexUrlKey}if(this.options.recordCountKey!==null){this.grid.dataSource.settings.responseTotalRecCountKey=this.options.recordCountKey}this.grid.dataSource.settings.paging.enabled=true;if(this._pageSizeDD){this._pageSizeDD.igNumericEditor("option","value",this.options.pageSize)}this.grid.element.off(".paging").on("iggridvirtualrecordsrender.paging",$.proxy(this._onVirtRecordsRender,this))}});$.extend($.ui.igGridPaging,{version:"19.1.20"})})($);/*!@license
* Infragistics.Web.ClientUI Grid Column Resizing 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
* infragistics.ui.widget.js
* infragistics.ui.grid.framework.js
* infragistics.ui.shared.js
* infragistics.dataSource.js
* infragistics.util.js
* infragistics.ui.grid.shared.js
* infragistics.ui.grid.featurechooser.js
*/
(function($){$.widget("ui.igGridResizing",$.ui.igWidget,{options:{allowDoubleClickToResize:true,deferredResizing:false,columnSettings:[{columnKey:null,columnIndex:null,allowResizing:true,minimumWidth:20,maximumWidth:null}],handleThreshold:5,inherit:false},css:{columnResizeLine:"ui-iggrid-resize-line",resizingHandleCursor:"ui-iggrid-resizing-handle-cursor",resizingHandle:"ui-iggrid-resizing-handle"},events:{columnResizing:"columnResizing",columnResizingRefused:"columnResizingRefused",columnResized:"columnResized"},_createWidget:function(){this.options.columnSettings=[];$.Widget.prototype._createWidget.apply(this,arguments)},_registerWidget:$.noop,_unregisterWidget:$.noop,_setOption:function(key,value){switch(key){case"locale":case"language":case"regional":this._super(key,value);break;default:throw new Error(this._getLocaleValue("optionChangeNotSupported").replace("{optionName}",key))}},changeGlobalLanguage:function(){},changeGlobalRegional:function(){},destroy:function(){this._clearResizingHandles();this.grid.element.unbind(".resizing");this._superApply(arguments);return this},resize:function(column,width){var columnIndex,gridWidth;if(typeof column==="number"){columnIndex=column}else{$.each(this.grid._visibleColumns(),function(index,col){if(col.key===column){columnIndex=index}});if(columnIndex===undefined){throw new Error(this._getLocaleValue("noSuchVisibleColumn"))}}if(width===undefined||width===null||width==="*"){this._autoResize(columnIndex,false,null)}else{if($.type(width)==="string"&&width.indexOf("%")>0){gridWidth=this.grid.element.width();width=parseInt(width,10)*gridWidth/100}this._resizeColumn(columnIndex,width,false,null)}},_headerRendered:function(){if(this.grid.element.igGridColumnFixing!==undefined){this._columnFixing=this.grid.element.data("igGridColumnFixing")}this._renderResizingHandles()},_columnsCollectionModified:function(){this._renderResizingHandles()},_columnsMoved:function(e,args){var ths,grid=this.grid,len=args.len,startIndex=args.start,endIndex=args.index,ind,after=endIndex-startIndex>0,$th;if(args.owner.id()!==this.grid.id()||!startIndex&&!len&&!endIndex){return}this._populateMultiColumnHeadersLevel0();if(after){endIndex-=len}if(grid._isMultiColumnGrid){ths=$(grid._headerCells)}else{if(grid.options.virtualization===true||grid.options.rowVirtualization===true){ths=grid.headersTable().find("> thead > tr").eq(0).children("th").not("[data-skip=true]")}else{ths=grid.headersTable().find("> thead > tr[data-header-row]").eq(0).children("th").not("[data-skip=true]")}}function funcCalibrateResizingHandle(ind){if(ths&&ths[ind]){$th=$(ths[ind]);$th.find('span[data-nonpaddedindicator="right"]').css("margin-right",-parseInt($th.css("padding-right"),10)+"px")}}if(after){ind=endIndex-1}else{ind=startIndex+len-1}funcCalibrateResizingHandle(ind);funcCalibrateResizingHandle(endIndex+len-1)},_hiddenColumnIndicatorsRendered:function(ths){if(this.grid._isMultiColumnGrid&&ths.length){ths=ths[0].closest("thead").find(">tr>th").not("[data-skip=true]")}ths.find('span[data-nonpaddedindicator="right"]').each(function(ind,span){var $span=$(span),$th=$span.closest("th");$span.css("margin-right",-parseInt($th.css("padding-right"),10)+"px")})},_fixedColumnsChanged:function(){this._renderResizingHandles()},_renderResizingHandles:function(){var self=this,i,ths,visibleColumns=this.grid._visibleColumns(),thsMultiHeader,gridId=this.grid.element.attr("id"),hasFixedColumns=this.grid.hasFixedColumns();this._clearResizingHandles();if(visibleColumns.length===0){return}if(this.grid._isMultiColumnGrid){thsMultiHeader=this.grid.headersTable().find("> thead > tr th").not("[data-skip=true]").not("[data-isheadercell=true]");if(hasFixedColumns){$.each(this.grid.fixedHeadersTable().find("> thead > tr th").not("[data-skip=true]").not("[data-isheadercell=true]"),function(index,th){thsMultiHeader.push($(th))})}this._populateMultiColumnHeadersLevel0();thsMultiHeader.each(function(){var a,th=$(this),mchId=th.data("mchId"),i,cs=self._oColumnSettings;for(i=0;i thead > tr").eq(0).children("th").not("[data-skip=true]")}}else{if(hasFixedColumns){ths=$();for(i=0;i thead > tr[data-header-row]").eq(0).children("th").not("[data-skip=true]")}}}ths.each(function(index){var a,cs,th=$(this),col=visibleColumns[index];if(col===null||col===undefined){return true}cs=self._findColumnSettingsByKey(col.key);if(cs.allowResizing){a=self._renderResizingHandle(th);self._bindResizingHandle(th,a.find("span"),col)}})},_renderResizingHandle:function(th){var div,a;if(!this._resizingHandles){this._resizingHandles=[]}div=$('').css("position","relative").css("width","100%").css("height","0px").css("top","0px").css("left","0px").prependTo(th);a=$("").attr("title","").prependTo(div);if($.ig.util.isIE9){a.addClass(this.css.resizingHandleCursor)}$('').attr("title","").css("position","absolute").css("margin-right",-parseInt(th.css("padding-right"),10)+"px").css("right","0px").css("width",this.options.handleThreshold+"px").addClass(this.css.resizingHandleCursor).addClass(this.css.resizingHandle).appendTo(a);this._resizingHandles.push(div);return a},_populateMultiColumnHeadersLevel0:function(){var i,j,self=this,cols=this.grid._oldCols||[],colsLength=cols.length,ths=$(this.grid._headerCells),level0=[],level0Length,visibleColumns=this.grid._visibleColumns();for(i=0;i-1){return this._resizeColumn(columnIndex,maxWidth,fireEvents,event)}},_cancelHoveringEffects:function(cancel){var topmostGrid=this.grid.element.closest(".ui-iggrid-root").data("igGrid");if(topmostGrid===undefined||topmostGrid===null){topmostGrid=this.grid}topmostGrid._cancelHoveringEffects=cancel},_startResizing:function(th){var body=$(document.body),resizeLineTop,heightOffset;this._resizing=true;this._cancelHoveringEffects(true);if(!$.ig.util.isIE10){$(document.activeElement).blur()}else{body.focus()}body.addClass(this.css.resizingHandleCursor);if(this.grid._isMultiColumnGrid){heightOffset=th.igOffset().top-this._gridContainerPositioningOffset().top}resizeLineTop=th.igOffset().top+this._gridContainerPositioningOffset().top;if(this.grid.options.height!==null&&this.grid.options.showHeader===true&&this.grid.options.fixedHeaders===false){resizeLineTop+=this.grid.scrollContainer().scrollTop()}this._resizeLine=$("").addClass(this.css.columnResizeLine).data("efh","1").css({height:this._calculateGridResizableHeight(heightOffset),top:resizeLineTop,visibility:"hidden"}).appendTo(this.grid.container());if($.ig.util.isIE8){this.grid.container().attr("tabIndex",this.grid.container().attr("tabIndex"))}return true},_doResizingMultiColumnHeader:function(event,$th,column){var i,width,resizeCellRange,resizeResult,range,vI,offsetLeft,offsetHeight,children=column.children,childrenLength=children.length,child=null,cellToResize;width=event.pageX-$th.igOffset().left;if(width<0){width=0}offsetHeight=$th.igOffset().top-this.grid.headersTable().igOffset().top;if(!this.options.deferredResizing){for(i=childrenLength-1;i>=0;i--){if(children[i].allowResizing&&!children[i].hidden){child=children[i];child.resized=!child.resized;if(child.resized){break}}}if(child!==null&&!child.hidden){cellToResize=$("#"+this.grid.element[0].id+"_"+child.key);vI=$.inArray(child,this.grid._visibleColumns());width=cellToResize[0].offsetWidth-$th[0].offsetWidth+width;resizeResult=this._resizeColumn(vI,width,true,event,vI)}if(!resizeResult){return true}if(!resizeResult.canceled){this._resizeLine.css("height",this._calculateGridResizableHeight(offsetHeight));this._resizeLine.css({left:$th.igOffset().left+$th.outerWidth()+this._gridContainerPositioningOffset().left,visibility:"visible"})}}else{offsetLeft=$th.igOffset().left;range={min:offsetLeft,max:offsetLeft};for(i=0;i0){this._resizeMCHDeffered(width,childrenToResize)}}$("body").removeClass(this.css.resizingHandleCursor);setTimeout(function(){self._resizing=false},0);this._cancelHoveringEffects(false);this._resizeLine.remove();this._resizeLine=undefined;return true},_resizeMCHDeffered:function(width,columns){var i,column,columnIndex,columnsLength=columns.length,visibleColumns=[],gridVC=this.grid._visibleColumns(),resizeInfo,newWidth=width,newColumnsToResize=[],avgWidth;if(columnsLength===0){return}for(i=0;i0){avgWidth=parseInt(width/columnsLength,10);for(i=0;i5&&newWidth!==width&&newColumnsToResize.length>0){this._resizeMCHDeffered(newWidth,newColumnsToResize)}},_stopResizing:function(event,th,column){var width,self=this,columnIndex=$.inArray(column,this.grid._visibleColumns());if(this.options.deferredResizing){width=event.pageX-th.igOffset().left;width=this._coerceRange(this._getRange(this.options.columnSettings[columnIndex]),width);this._resizeColumn(columnIndex,width,true,event)}$("body").removeClass(this.css.resizingHandleCursor);setTimeout(function(){self._resizing=false},0);this._cancelHoveringEffects(false);this._resizeLine.remove();this._resizeLine=undefined;return true},_resizeColumn:function(columnIndex,width,fireEvents,originalEvent,startIndex){var gridWidth,minimalVisibleAreaWidth=0,widthFixedContainer,visibleColumns=this.grid._visibleColumns(),columnKey=visibleColumns[columnIndex].key,typeW,hasWidthPx,w,tmpW,visibleIndex=columnIndex,headersTable=this.grid.options.showHeader?this.grid.headersTable():this.grid.element,cs,isFixed,headers,headerWidth,headerColumns,columnSettings=this.options.columnSettings,hasFixedCols=this.grid.hasFixedColumns(),columnsLength,headerColStyleWidth,hasPercentageWidth,actualColumnStyleWidths=[],actualColumnWidths=[],requiredColumnPercentageWidths=[],newColumnStyleWidths=[],i,widthToDistribute,shrinkColumns,widthDistributed,widthUsed,coercedWidth,widthPerColumn,range,totalWidth,readyColumns,readyColumnsCount,finalPixelWidth,allColumnsHaveWidth,noCancel,containerWidth,isResized=true,columnWithAllowedResizing,currColSettings;delete visibleColumns[columnIndex].oWidth;if(hasFixedCols){visibleIndex=this.grid.getVisibleIndexByKey(columnKey);isFixed=visibleColumns[columnIndex].fixed===true;if(isFixed){headersTable=this.grid.fixedHeadersTable()}}if(this.grid._isMultiColumnGrid){headers=$(this.grid._headerCells);headerWidth=headers.length>0?$(headers[columnIndex])[0].offsetWidth:headerWidth}else{if(this.grid.options.virtualization===true||this.grid.options.rowVirtualization===true){headers=headersTable.find("> thead > tr").first().children("th").not("[data-skip=true]")}else{headers=headersTable.find("> thead > tr[data-header-row]").first().children("th").not("[data-skip=true]")}if(!this.grid.options.showHeader){headers=headersTable.find("tbody>tr:not([data-container='true'],[data-grouprow='true']):first").children("td").not("[data-skip=true]")}headerWidth=headers.length>0?headers.get(visibleIndex).offsetWidth:headerWidth}headerColumns=headersTable.find("> colgroup > col").not("[data-skip=true]");columnSettings=this.options.columnSettings;columnsLength=headerColumns.length;columnWithAllowedResizing=headerColumns.length;headerColStyleWidth=headerColumns[visibleIndex].style.width;hasPercentageWidth=/%$/.test(headerColStyleWidth);$(headerColumns).each(function(ind){if(!columnSettings[ind].allowResizing){columnWithAllowedResizing--}});if(headerColStyleWidth===""){hasPercentageWidth=true;headerColumns.each(function(ind,col){if(col.style.width!==""){hasPercentageWidth=false;return false}})}if(fireEvents){noCancel=this._trigger(this.events.columnResizing,originalEvent,{owner:this,columnIndex:columnIndex,columnKey:columnKey,desiredWidth:width});if(!noCancel){return{canceled:true,originalWidth:width,newWidth:width}}}this.grid._fireInternalEvent("_internalColumnResized");if(columnKey!==undefined){cs=this._findColumnSettingsByKey(columnKey)}else{cs=columnSettings[columnIndex]}range=this._getRange(cs);width=this._coerceRange(range,width);width=Math.floor(width);if(width===range.min||width===range.max){isResized=false}if(isFixed){widthToDistribute=headerWidth-width;gridWidth=parseInt(this.grid.options.width,10);if(isNaN(gridWidth)||this.grid._gridHasWidthInPercent()){gridWidth=this.grid.container().outerWidth()}if(widthToDistribute<0){minimalVisibleAreaWidth=this._columnFixing.options.minimalVisibleAreaWidth;if(this._columnFixing._isVirtualGrid()){widthFixedContainer=this.grid._virtualcontainer().find("colgroup:first>col[data-fixed-col]").width()}else{widthFixedContainer=this.grid.fixedContainer().outerWidth()}if(widthFixedContainer-widthToDistribute>gridWidth-this.grid._scrollbarWidth()-minimalVisibleAreaWidth){if(fireEvents){this._trigger(this.events.columnResizingRefused,originalEvent,{owner:this,columnIndex:columnIndex,columnKey:columnKey,desiredWidth:width})}return{canceled:true,originalWidth:width,newWidth:width}}}}if($.ig.util.isWebKit&&hasPercentageWidth){totalWidth=headersTable[0].offsetWidth;for(i=0;i0?parseFloat(w)/100*totalWidth:parseFloat(w)}}}else if(headers.length>0){for(i=0;i.05)){widthPerColumn=widthToDistribute/(columnWithAllowedResizing-1);for(i=startIndex;i5e-6){widthUsed-=actualColumnWidths[i]-coercedWidth;actualColumnWidths[i]=coercedWidth;readyColumns[i]=true;readyColumnsCount++}widthDistributed+=widthUsed;widthToDistribute-=widthUsed}}}actualColumnWidths[columnIndex]-=widthDistributed;totalWidth=0;for(i=0;i0;if(typeW==="number"){visibleColumns[columnIndex].width=width}else if(typeW==="string"){if(!hasWidthPx){visibleColumns[columnIndex].width=String(width)}else{visibleColumns[columnIndex].width=newColumnStyleWidths[i]}}else{visibleColumns[columnIndex].width=newColumnStyleWidths[i]}}else{newColumnStyleWidths[i]=actualColumnStyleWidths[i];allColumnsHaveWidth=allColumnsHaveWidth&&parseInt(actualColumnStyleWidths[i],10)>=0}}this._applyToEachGridCOL(function(index,col){col.css("width",newColumnStyleWidths[index])},isFixed);containerWidth=this.grid._calculateContainerWidth(false);if(allColumnsHaveWidth){if(this.grid.options.width&&parseInt(this.grid.options.width,10)>0){if(!isFixed){this.grid._updateGridContentWidth()}if(this.grid.options.virtualization===true||this.grid.options.rowVirtualization===true){this.grid._oldScrollLeft=$("#"+this.grid.id()+"_horizontalScrollContainer").scrollLeft()}if(this.grid.options.rowVirtualization||this.grid.options.virtualization===true){tmpW=containerWidth-this.grid._scrollbarWidth();$("#"+this.grid.element[0].id+"_headers").css("width",containerWidth).css("max-width",containerWidth);this.grid.element.css("width",tmpW).css("max-width",tmpW);$("#"+this.grid.id()+"_footers").css("width",containerWidth).css("max-width",containerWidth)}}else{if(hasFixedCols&&!isFixed){this.grid._updateGridContentWidth()}this.grid._setContainerWidth($("#"+this.grid.id()+"_container"));if(this.grid.options.rowVirtualization||this.grid.options.virtualization===true){tmpW=containerWidth+this.grid._scrollbarWidth();$("#"+this.grid.element[0].id+"_headers_v").css("width",tmpW).css("max-width",tmpW);$("#"+this.grid.element[0].id+"_displayContainer").css("width",containerWidth).css("max-width",containerWidth);$("#"+this.grid.element[0].id+"_virtualContainer > colgroup > col").first().attr("width",containerWidth);$("#"+this.grid.id()+"_footer_container").css("width",tmpW).css("max-width",tmpW)}}}}if(hasFixedCols){this._columnFixing._containerResized(isFixed,widthToDistribute)}if(fireEvents){this._trigger(this.events.columnResized,originalEvent,{owner:this,columnIndex:columnIndex,columnKey:columnKey,originalWidth:headerWidth,newWidth:finalPixelWidth})}return{canceled:false,originalWidth:headerWidth,newWidth:finalPixelWidth,isResized:isResized}},_applyToEachGridCOL:function(appliedFunction,isFixed){var headersTable,footersTable;if(this.grid.options.showHeader){if(isFixed){headersTable=this.grid.fixedHeadersTable()}else{headersTable=this.grid.headersTable()}headersTable.find("> colgroup > col").not("[data-skip=true]").each(function(i){appliedFunction(i,$(this))})}if(this.grid.options.fixedHeaders===true&&this.grid.options.height!==null||this.grid.options.showHeader===false){if(isFixed){$("#"+this.grid.id()+"_fixed").find("> colgroup > col").not("[data-skip=true]").each(function(i){appliedFunction(i,$(this))})}else{this.grid.element.find("> colgroup > col").not("[data-skip=true]").each(function(i){appliedFunction(i,$(this))})}}if(this.grid.options.fixedFooters===true&&this.grid.options.height!==null){if(isFixed){footersTable=this.grid.fixedFootersTable()}else{footersTable=this.grid.footersTable()}footersTable.find("> colgroup > col").not("[data-skip=true]").each(function(i){appliedFunction(i,$(this))})}},_getRange:function(column){var min=column.minimumWidth,max=column.maximumWidth,gridWidth;if($.type(min)==="string"&&min.indexOf("%")>0){gridWidth=this.grid.element.width();min=parseInt(min,10)*gridWidth/100}if($.type(max)==="string"&&max.indexOf("%")>0){gridWidth=this.grid.element.width();max=parseInt(max,10)*gridWidth/100}min=isNaN(min)?0:min;min=Math.max(0,min);max=isNaN(max)?Infinity:max;return{min:min,max:max}},_coerceRange:function(range,value){value=Math.max(range.min,value);value=Math.min(range.max,value);return value},_gridContainerPositioningOffset:function(){var gridContainer=this.grid.container(),containerPosition=gridContainer.css("position"),gridContainerOffsetParent=gridContainer.offsetParent(),gridContainerPosition=gridContainer.igPosition(),gridContainerOffset=gridContainer.igOffset(),offsetParentScrollTop,offsetParentScrollLeft;if(containerPosition==="relative"||containerPosition==="absolute"){return{top:-gridContainerOffset.top,left:-gridContainerOffset.left}}if(gridContainerOffsetParent.is("body")){offsetParentScrollTop=0;offsetParentScrollLeft=0}else{offsetParentScrollTop=gridContainerOffsetParent.scrollTop();offsetParentScrollLeft=gridContainerOffsetParent.scrollLeft()}return{top:offsetParentScrollTop+gridContainerPosition.top-gridContainerOffset.top,left:offsetParentScrollLeft+gridContainerPosition.left-gridContainerOffset.left}},_calculateGridResizableHeight:function(heightOffset){var height,caption,headersTable,footersTable,scrollerContainer,hasVirtualization=this.grid.options.virtualization===true||this.grid.options.rowVirtualization===true||this.grid.options.columnVirtualization===true,hasWidthOrHeight=this.grid.options.height!==null||this.grid.options.width!==null;if(hasVirtualization){height=$("#"+this.grid.element[0].id+"_displayContainer").height()}else if(hasWidthOrHeight){height=this.grid.scrollContainer().height()}else{height=this.grid.element.height()}if(hasVirtualization||hasWidthOrHeight){headersTable=this.grid.headersTable();footersTable=this.grid.footersTable();if(this.grid.options.fixedHeaders===true&&this.grid.options.showHeader===true){if(headersTable.length!==0&&this.grid.element[0].id!==headersTable[0].id){height+=headersTable.height()}caption=headersTable.children("#"+this.grid.element[0].id+"_caption");if(caption.length!==0){if(!$.ig.util.isFF){height-=caption.outerHeight(true)}}}scrollerContainer=$("#"+this.element[0].id+"_hscroller_container");if(scrollerContainer.is(":visible")){height+=scrollerContainer.height()}if(this.grid.options.fixedFooters===true&&this.grid.options.showFooter===true&&footersTable.length!==0&&this.grid.element[0].id!==footersTable[0].id){height+=footersTable.height()}}if(heightOffset){height-=heightOffset}return height},_findColumnSettingsByKey:function(key,settings){var i;if(!settings){settings=this.options.columnSettings}for(i=0;i0){for(i=0;i").attr("id",this.grid.element[0].id+"_responsive_test_container").css("position","fixed").css("height","0px").css("top","-100px").text(" ").appendTo(this.grid.container())},_initializeModeRecognizers:function(){var self=this,transformed={},nval;$.each(this._modes,function(key,value){if(typeof value==="string"){nval=value.substring(0,1).toUpperCase()+value.substring(1);nval=new $.ig[nval+"Mode"]({key:key,visibilityTester:$.proxy(self._checkVisibilityByClass,self)})}else if(typeof value==="object"&&!value.isActive){nval=new $.ig.ResponsiveMode({minWidth:value.minWidth||-1,maxWidth:value.maxWidth||Number.MAX_VALUE,minHeight:value.minHeight||-1,maxHeight:value.maxHeight||Number.MAX_VALUE})}else{nval=value}transformed[key]=nval});return transformed},_flagClassConfiguration:function(){var byClass=false;$.each(this.options.columnSettings,function(){if(this.classes){byClass=true;return false}});return byClass},_getDefaultColumnTemplates:function(){var cache={},col,i;for(i=0;i
=this._vrw){return false}return false},_shouldRenderVerticallyByDefault:function(){var i,gw=this.grid.element.width(),gp=100,cw,cols=[],col,tcocww=0,p,aw;for(i=0;i","")}return $.ig.tmpl(this.options.singleColumnTemplate[this._mode],data).replace("","")},_renderRecord:function(data,index){if(this._vr){return this._renderRecordVerticalGrid(data,index)}if(this._scr){return this._renderRecordSingleColumnGrid(data,index)}return this._originalRenderRecord(data,index)},_renderRecordVerticalGrid:function(data,index){var i=0,str="",tstr,alt,vc=this.grid._visibleColumns(),key=this.grid.options.primaryKey;alt=index%2!==0&&this.grid.options.alternateRowStyles;for(i=0;i";str+=vc[i].headerText+" | ";str+='"+tstr}}else{str+=' aria-describedby="'+this.grid.id()+"_"+vc[i].key+'">'+this.grid._renderCell(data[vc[i].key],vc[i])}str+=" | "}return str},_renderRecordSingleColumnGrid:function(data,index){var str=""+tmplRes}str+=" | ";return str},_renderNewRow:function(rec){var tbody,go,index,virt;if(this._vr){tbody=this.element.children("tbody");go=this.grid.options;virt=go.virtualization===true||go.rowVirtualization===true;if(virt){this._renderVirtualRecordsContinuous();this._startRowIndex=0;this.virtualScrollTo(this._totalRowCount)}else{index=this.grid._getDataView().length-1;tbody.append(this.grid._renderRecord(rec,index))}}else{this._originalRenderNewRow(rec)}},_renderCell:function(val,col,record,displayStyle,returnObject){var type=col.dataType,format=col.format,o=this.grid.options,auto=o.autoFormat;if(record){val=this.grid.dataSource.getCellValue(col.key,record)}val=this.grid._fixDate(val,col);if(col.formatter){return col.formatter(val,record,this._mode)}if(!format&&type==="bool"&&o.renderCheckboxes){format="checkbox"}if(format==="checkbox"&&type!=="bool"){format=null}type=type==="date"||type==="number"?type:"";if(format||(auto===true||auto==="dateandnumber")&&type||auto&&auto===type){return $.ig.formatter(val,type,format,true,col.dateDisplayType==="utc",this.grid._getOffsetForCol(record,col),displayStyle,col.headerText,this.grid.options.tabIndex)}if(returnObject){return val}return val||val===0||val===false?val.toString():" "},_renderColgroup:function(table,isHeader,isFooter,autofitLastColumn){var colgroup,fcw,scw;this._vr=this._vr===null?this._shouldRenderVertically():this._vr;this._scr=this._scr===undefined||this._scr===null?this._isSingleColumn():this._scr;if(!this._vr&&!this._scr){this._originalRenderColgroup(table,isHeader,isFooter,autofitLastColumn);return}colgroup=$(table).find("colgroup");if(colgroup.length===0){colgroup=$("").prependTo(table)}colgroup.empty();if(this._vr){fcw=typeof this.options.propertiesColumnWidth==="string"?parseInt(this.options.propertiesColumnWidth,10):this.options.propertiesColumnWidth;scw=typeof this.options.valuesColumnWidth==="string"?parseInt(this.options.valuesColumnWidth,10):this.options.valuesColumnWidth;colgroup.append('')}else if(this._scr){colgroup.append('')}},_enableNoHeaderLayout:function(vr,scr){this.grid.element.addClass(this.css.verticalContainerCssClass);if(!this.grid.options.showHeader||!this.grid.options.fixedHeaders||this.grid.options.height===null){this.grid.headersTable().children("thead").css("display","none")}else{this.grid.headersTable().css("position","absolute");this.grid.headersTable().css("top","-100px")}this._vr=vr;this._scr=scr;this._modifySortingStyles();this._disableUpdating();this.grid._rerenderColgroups();this.grid._renderData()},_disableNoHeaderLayout:function(){this.grid.element.removeClass(this.css.verticalContainerCssClass);if(!this.grid.options.showHeader||!this.grid.options.fixedHeaders||this.grid.options.height===null){this.grid.headersTable().children("thead").css("display","")}else{this.grid.headersTable().css("position","");this.grid.headersTable().css("top","")}this._scr=false;this._vr=false;this._modifySortingStyles(true);this._enableUpdating();this.grid._rerenderColgroups();this.grid._renderData()},_disableUpdating:function(){if(this.grid.element.data("igGridUpdating")){this._em=this.grid.element.igGridUpdating("option","editMode");this._dm=this.grid.element.igGridUpdating("option","enableDeleteRow");this.grid.element.igGridUpdating("option","editMode","none");this.grid.element.igGridUpdating("option","enableDeleteRow",false)}},_enableUpdating:function(){if(this.grid.element.data("igGridUpdating")){if(this._em){this.grid.element.igGridUpdating("option","editMode",this._em)}if(this._dm){this.grid.element.igGridUpdating("option","enableDeleteRow",true)}}},_getGridColumnBySetting:function(cs){var col;if(cs.columnKey&&typeof cs.columnKey==="string"){col=this.grid.columnByKey(cs.columnKey)}else if(cs.columnIndex!==null&&cs.columnIndex!==undefined&&typeof cs.columnIndex==="number"&&cs.columnIndex>=0&&cs.columnIndex=this.settings.minWidth&&window.innerWidth<=this.settings.maxWidth&&window.innerHeight>=this.settings.minHeight&&window.innerHeight<=this.settings.maxHeight}});$.ig.InfragisticsMode=$.ig.InfragisticsMode||$.ig.ResponsiveMode.extend({settings:{key:"",visibilityTester:null},init:function(options){this._hc="ui-hidden-"+options.key;this._vc="ui-visible-"+options.key;this._super(options);return this},isActive:function(){if(typeof this.settings.visibilityTester==="function"){return this.settings.visibilityTester(this._hc)===false&&this.settings.visibilityTester(this._vc)===true}return this._super()}});$.ig.BootstrapMode=$.ig.BootstrapMode||$.ig.ResponsiveMode.extend({settings:{key:"",visibilityTester:null},init:function(options){this._hc="hidden-"+options.key;this._vc="visible-"+options.key;this._super(options);return this},isActive:function(){if(typeof this.settings.visibilityTester==="function"){return this.settings.visibilityTester(this._hc)===false&&this.settings.visibilityTester(this._vc)===true}return this._super()}})})($);/*!@license
* Infragistics.Web.ClientUI Grid Tooltips 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
* infragistics.ui.grid.framework.js
* infragistics.ui.editors.js
* infragistics.ui.shared.js
* infragistics.dataSource.js
* infragistics.util.js
*/
(function($){"use strict";$.widget("ui.igGridRowSelectors",$.ui.igWidget,{options:{enableRowNumbering:true,enableCheckBoxes:false,rowNumberingSeed:0,rowSelectorColumnWidth:null,requireSelection:true,showCheckBoxesOnFocus:false,inherit:false,enableSelectAllForPaging:true,selectAllForPagingTemplate:null,deselectAllForPagingTemplate:null,locale:{selectedRecordsText:undefined,deselectedRecordsText:undefined,selectAllText:undefined,deselectAllText:undefined}},css:{rowSelector:"ui-iggrid-rowselector-class",rowSelectorSelected:"ui-iggrid-selectedcell ui-state-active",rowSelectorActivated:"ui-iggrid-activecell ui-state-focus",headerRowSelector:"ui-iggrid-rowselector-header",footerRowSelector:"ui-iggrid-rowselector-footer",checkBox:"ui-state-default ui-corner-all ui-igcheckbox-normal",checkBoxOff:"ui-icon ui-icon-check ui-igcheckbox-normal-off",checkBoxOn:"ui-icon ui-icon-check ui-igcheckbox-normal-on",nodeHovered:"ui-state-hover"},events:{rowSelectorClicked:"rowSelectorClicked",checkBoxStateChanging:"checkBoxStateChanging",checkBoxStateChanged:"checkBoxStateChanged"},_createWidget:function(){$.Widget.prototype._createWidget.apply(this,arguments);if(this.options.rowSelectorColumnWidth===null){this.options.rowSelectorColumnWidth=55;if(this.options.enableCheckBoxes===true&&this.options.enableRowNumbering===true){this.options.rowSelectorColumnWidth+=15}}},_create:function(){this._cIdx=0;this._functionsRedirected=false;this._hovTR=null;this._gridRenderRecord=null;this._checkBoxesShown=false;this._v=false;this._ms=false},destroy:function(){this._unregisterEvents();this._unregisterRowSelectorEvents();this._unregisterSelectAllEvents();if(this._gridRenderRecordHandler!==undefined){this.grid._renderColgroup=this._flatRenderColgroup;this.grid._renderRecord=this._gridRenderRecordHandler}this._cleanInterface(false);if(this.grid._selection){this.grid._selection.removeSubscriber(this._subId,this.grid.id())}this._superApply(arguments);return this},_shouldRenderHeaderCheckBoxes:function(){return this.options.enableCheckBoxes===true&&this._ms},_renderHeaderRowSelectors:function(owner){var rows,i,cell,header,$thDataSkip;if(owner.id()!==this.grid.id()){return}rows=this.grid.headersTable().children("thead").children();if(rows.length>0){cell=rows.eq(0).find("th.ui-iggrid-expandheadercell").first();if(cell.length===0){this._index=0}else{this._index=cell.index()+1}if(this.grid._isMultiColumnGrid){$thDataSkip=$(" | ").prependTo(this.grid.headersTable().find("thead tr:nth-child(1)")).addClass(this.css.headerRowSelector).addClass(this.grid.css.headerClass).attr("data-role","rs").attr("data-skip","true");$thDataSkip.attr("rowspan",this.grid._maxLevel+1);if(this._shouldRenderHeaderCheckBoxes()){$(this._getCheckBox(true)).appendTo($thDataSkip)}}else{for(i=0;i"+($.ig.util.isIE7?" ":"")+"").addClass(this.css.headerRowSelector).addClass(i===0?this.grid.css.headerClass:"").attr("data-role","rs").attr("data-skip","true").insertBefore(rows.eq(i).children().eq(this._index))}if(this._shouldRenderHeaderCheckBoxes()&&i===0&&!header.children().length){$(this._getCheckBox(true)).appendTo(header)}}}}},_renderFooterRowSelectors:function(owner){var rows,i;if(owner.id()!==this.grid.id()){return}rows=this.grid.footersTable().children("tfoot").children();if(rows.length>0){for(i=0;i0){continue}$(""+($.ig.util.isIE7?" ":"")+" | ").addClass(this.css.footerRowSelector).attr("data-role","rs").attr("data-skip","true").insertBefore(rows.eq(i).children().eq(this._index))}}},_headerRendered:function(event,ui){this._ms=!this._skipRefresh&&this._getSelectionInstance().options.multipleSelection===true;this._renderHeaderRowSelectors(ui.owner);this._getColumnFixingInstance()},_footerRendered:function(event,ui){this._renderFooterRowSelectors(ui.owner)},_getColumnFixingInstance:function(){if(!this._columnFixing&&this.grid.element.data("igGridColumnFixing")){this._columnFixing=this.grid.element.data("igGridColumnFixing")}return this._columnFixing},_getSelectionInstance:function(){if(!this._selection&&this.grid.element.data("igGridSelection")){this._selection=this.grid.element.data("igGridSelection")}return this._selection},_recordsRendering:function(event,ui){var i,vs,ds=this.grid.dataSource,data=ds._filteredData||ds.data(),gbIsApplied=ds.isGroupByApplied(),gbData=ds._gbData;if(this.grid.id()!==ui.owner.id()){return}vs=ui.vrtWnd.start&&ui.vrtWnd.end?ui.vrtWnd.start:0;vs+=this.grid.dataSource.pageIndex()*this.grid.dataSource.pageSize();if(gbIsApplied&&gbData&&gbData.length&&ds.settings.groupby.pagingMode==="allRecords"){for(;vs").prependTo(cgrp).css("width",this.options.rowSelectorColumnWidth).attr("data-skip","true").attr("data-role","rs")}},_rsRenderRecord:function(data,rowIndex,isFixed){var markup=this._gridRenderRecord.apply(this,arguments),pre,app,idx,fCols=this.grid.hasFixedColumns(),fdLeft=this.grid.fixingDirection()==="left",rs;if(fCols&&!(isFixed&&fdLeft||!isFixed&&!fdLeft)){return markup}rs=this._getRowSelectorCellMarkup(isFixed&&!this.grid._fixedColumns.length?this._rowHasSelection(data):markup.indexOf("ui-iggrid-selectedcell")!==-1,data);idx=markup.indexOf("ui-iggrid-expandcolumn");if(idx>=0){app=markup.substr(idx);idx=idx+app.indexOf(" | ")+4;pre=markup.substring(0,idx+1);app=markup.substring(idx+1)}else{idx=markup.indexOf(">")+1;pre=markup.substring(0,idx);app=markup.substring(idx)}markup=pre+rs+app;return markup},_renderExtraHeaderCells:function(row,colgroup,prepend){this._renderExtraCells(row,colgroup,prepend,true)},_renderExtraFooterCells:function(row,colgroup,prepend,cssClass){this._renderExtraCells(row,colgroup,prepend,false,cssClass)},_renderExtraCells:function(row,colgroup,prepend,header,cssClass){var rHeader,rCol,index,cell;if(row.find("[data-role='rs']").length>0){return}if(header===true){rHeader=$(""+($.ig.util.isIE7?" ":"")+" | ").addClass(this.css.headerRowSelector).attr("data-role","rs").attr("data-skip","true")}else{rHeader=$(""+($.ig.util.isIE7?" ":"")+" | ").addClass(this.css.footerRowSelector).addClass(cssClass).attr("data-role","rs").attr("data-skip","true")}cell=row.find("th.ui-iggrid-expandheadercell,td.ui-iggrid-expandheadercellgb");if(cell.length===0){cell=row.children().first();index=0}else{index=cell.last().index()+1}if(index===0){rHeader.prependTo(row)}else{rHeader.insertBefore(row.children().eq(index))}if(colgroup){rCol=$("").attr("data-skip","true").attr("data-role","rs").css("width",this.options.rowSelectorColumnWidth);rCol.insertBefore(colgroup.children().eq(index))}},_registerRowSelectorEvents:function(){this._unregisterRowSelectorEvents();this._allTables().on("click.rowselectors","th."+this.css.rowSelector,this._rsClickHandler);this._allTables().on({"click.rowselectors":this._checkboxClickHandler,"keydown.rowselectors":this._checkboxClickHandler,"mouseover.rowselectors":this._checkboxMouseOverHandler,"mouseout.rowselectors":this._checkboxMouseOutHandler},"th."+this.css.rowSelector+" span[name='chk']");this._allHeaderTables().on({"click.rowselectors":this._hCheckboxClickHandler,"keydown.rowselectors":this._hCheckboxClickHandler,"mouseover.rowselectors":this._checkboxMouseOverHandler,"mouseout.rowselectors":this._checkboxMouseOutHandler},"th."+this.css.headerRowSelector+" span[name='hchk']")},_unregisterRowSelectorEvents:function(){this._allHeaderTables().off(".rowselectors");this._allTables().off(".rowselectors")},_allTables:function(){var ft=this.grid.fixedTable();return ft.add(this.grid.element)},_allHeaderTables:function(){var fht=this.grid.fixedHeadersTable();return fht.add(this.grid.headersTable())},_checkboxMouseOver:function(event){$(event.target).closest("span[data-role='checkbox']").addClass(this.css.nodeHovered)},_checkboxMouseOut:function(event){$(event.target).closest("span[data-role='checkbox']").removeClass(this.css.nodeHovered)},_checkBoxClicked:function(event){if(event.type==="keydown"&&event.keyCode!==$.ui.keyCode.ENTER&&event.keyCode!==$.ui.keyCode.SPACE){return}var trg=$(event.target).closest("span[name='chk']"),rCell=trg.parent(),rRow=rCell.parent(),args,rIdx=this._getVisibleRowIndex(rRow),rKey=rRow.attr("data-id"),noCancel,state=trg.attr("data-chk");if(rKey===""||rKey===null||rKey===undefined){rKey=rIdx}args={row:rRow,rowIndex:rIdx,rowKey:rKey,rowSelector:rCell,owner:this,grid:this.grid,currentState:state,newState:state==="off"?"on":"off",isHeader:false};noCancel=this._triggerCheckingEvent(event,args);if(noCancel===true){this._handleCheck(trg);delete args.currentState;args.state=args.newState;delete args.newState;this._triggerCheckedEvent(event,args)}event.preventDefault();event.stopPropagation()},_headerCheckBoxClicked:function(event){var trg=$(event.target).closest("span[name='hchk']"),args,noCancel,state=trg.attr("data-chk");if(event.type==="keydown"&&event.keyCode!==$.ui.keyCode.ENTER&&event.keyCode!==$.ui.keyCode.SPACE){return}args={owner:this,grid:this.grid,currentState:state,newState:state==="off"?"on":"off",isHeader:true};noCancel=this._triggerCheckingEvent(event,args);if(noCancel===true){this._handleHeaderCheck(trg);delete args.currentState;args.state=args.newState;delete args.newState;this._triggerCheckedEvent(event,args)}event.stopPropagation();event.preventDefault()},_handleCheck:function(checkbox){var row,rowId,upd,sel,offset;if(!checkbox){return}upd=this.grid.element.data("igGridUpdating");sel=this._getSelectionInstance();offset=this._v?this.grid._startRowIndex:0;row=checkbox.parent().parent();if(this.grid.hasFixedColumns()&&sel){row=row.add(sel._getRowByIndex(row.index(),!this.grid._isFixedElement(row)))}rowId=this.grid._fixPKValue(row.attr("data-id"));if(rowId===null||rowId===undefined){rowId=row.closest("tbody").children("tr:not([data-container])").index(row)+offset}if(this.grid._selection.settings.owner!==this.grid){this.grid._selection.changeOwner(this.grid)}if(checkbox.attr("data-chk")==="off"){if(sel.options.activation){this.grid._selection.activate(rowId,row)}this.grid._selection.select(rowId,true,{element:row,checkbox:checkbox})}else{this.grid._selection.deselect(rowId,{element:row,checkbox:checkbox})}if(sel&&sel._suspend){if(upd){if(upd.findInvalid()){return}upd._endEdit(null,true)}else{return}}},_handleHeaderCheck:function(checkbox){var sel,go=this.grid.options,v=go.virtualization||go.rowVirtualization,toCheck=checkbox.attr("data-chk")==="off";sel=this._getSelectionInstance();if(this.grid._selection.settings.owner!==this.grid){this.grid._selection.changeOwner(this.grid)}if(toCheck){if(v||this.grid.dataSource.isGroupByApplied()){this._selectAllVirtualRows(sel)}else{this._selectAllRows(sel)}this._alterCheckbox(checkbox,true)}else{if(v||this.grid.dataSource.isGroupByApplied()){this._deselectAllVirtualRows(sel)}else{this._deselectAllRows(sel)}this._alterCheckbox(checkbox,false)}if(this.options.enableSelectAllForPaging&&this.grid.element.data("igGridPaging")){this._renderOverlayByCheckstate(toCheck)}},changeLocale:function(){var $overlay=this.grid.container().find("[data-rs-overlay]").first();if($overlay.length){$overlay.remove();this._renderOverlayByCheckstate($overlay.attr("data-rs-overlay")==="true")}},_registerWidget:$.noop,_unregisterWidget:$.noop,_renderOverlayByCheckstate:function(toCheck){var dataViewLength=this._getDataView().length,allCheckedRecs=this._getSelectionInstance().selectedRows().length,templateData=[{checked:dataViewLength,unchecked:dataViewLength,allCheckedRecords:allCheckedRecs,totalRecordsCount:this._getDSLocalRecords().length}];this._renderOverlay(templateData,toCheck)},_getDSLocalRecords:function(){var ds=this.grid.dataSource,trecCount=ds.totalLocalRecordsCount();if(ds._filteredData&&ds._filteredData.length>=trecCount){return ds._filteredData}return this._getAllData()},_renderOverlay:function(templateData,toCheck){var hTable=this.grid.headersTable(),overlay;if(toCheck){overlay=this._getSelectAllOverlay(templateData)}else{overlay=this._getDeselectAllOverlay(templateData)}if(overlay){overlay.css({"z-index":"1000",width:"100%",position:"absolute",top:(this.grid.options.height||this.grid.options.width?hTable.parent().igPosition().top:hTable.igPosition().top)+hTable.find("thead:first").outerHeight()});overlay.children("div:first").css("padding-left",this.options.rowSelectorColumnWidth);overlay.appendTo(this.grid.container());this._registerSelectAllEvents(overlay)}},_getSelectAllOverlay:function(templateData){var ti=this.grid.options.tabIndex,overlay,selectAllTemplate;if(templateData[0].allCheckedRecords>=templateData[0].totalRecordsCount){return null}if(this.options.selectAllForPagingTemplate){overlay=this._jsr?$($.render([this.grid.id()+"_selectAllForPagingTemplate"](templateData))):$($.ig.tmpl(this.options.selectAllForPagingTemplate,templateData))}else{selectAllTemplate=this._getLocaleValue("selectedRecordsText").replace("${checked}",templateData[0].checked)+" "+this._getLocaleValue("selectAllText").replace("${totalRecordsCount}",templateData[0].totalRecordsCount)+"";overlay=this._getDefaultOverlay(selectAllTemplate,true)}return overlay},_getDeselectAllOverlay:function(templateData){var ti=this.grid.options.tabIndex,overlay,deselectAllTemplate;if(templateData[0].allCheckedRecords===0){return null}if(this.options.deselectAllForPagingTemplate){overlay=this._jsr?$($.render([this.grid.id()+"_deselectAllForPagingTemplate"](templateData))):$($.ig.tmpl(this.options.deselectAllForPagingTemplate,templateData))}else{deselectAllTemplate=this._getLocaleValue("deselectedRecordsText").replace("${unchecked}",templateData[0].unchecked)+" "+this._getLocaleValue("deselectAllText").replace("${totalRecordsCount}",templateData[0].totalRecordsCount)+"";overlay=this._getDefaultOverlay(deselectAllTemplate,false)}return overlay},_getDefaultOverlay:function(template,toCheck){var ti=this.grid.options.tabIndex;return $("").attr({"class":"ui-widget-header ui-priority-secondary","data-rs-overlay":!!toCheck,tabIndex:ti,id:this.grid.id()+(toCheck?"_":"_de")+"select_all_overlay"}).append($("
").html(template).append($("
").css("float","right").append($("
").addClass("ui-icon-close").addClass("ui-icon").addClass("ui-button").attr("data-rs-close-all","").attr("tabindex",ti))))},_registerSelectAllEvents:function(overlay){var self=this,overlayId=overlay.attr("id");this.grid.container().bind("mouseup.containerselectall",function(event){if(event.type==="mouseup"&&$(event.target).closest("#"+overlayId).length===0){$(this).unbind(".containerselectall");if($(overlay)){overlay.remove()}}});overlay.bind("blur.containerselectall",function(event){$(this).unbind(".containerselectall");if($(overlay)&&$(event.target).closest("#"+overlayId).length===0){overlay.remove()}});overlay.find("[data-rs-select-all]").bind("mouseup",function(event){self._selectAllFromOverlay();event.stopPropagation();overlay.remove()});overlay.find("[data-rs-deselect-all]").bind("mouseup",function(event){self._deselectAllFromOverlay();event.stopPropagation();overlay.remove()});overlay.find("[data-rs-select-all]").bind("keydown",function(event){if(event.keyCode===$.ui.keyCode.ENTER||event.keyCode===$.ui.keyCode.SPACE){self._selectAllFromOverlay();overlay.remove()}});overlay.find("[data-rs-deselect-all]").bind("keydown",function(event){if(event.keyCode===$.ui.keyCode.ENTER||event.keyCode===$.ui.keyCode.SPACE){self._deselectAllFromOverlay();overlay.remove()}});overlay.find("[data-rs-close-all]").bind("mouseup",function(event){event.stopPropagation();overlay.remove()});overlay.find("[data-rs-close-all]").bind("keydown",function(event){if(event.keyCode===$.ui.keyCode.ENTER||event.keyCode===$.ui.keyCode.SPACE){overlay.remove()}})},_selectAllFromOverlay:function(){this._changeCheckStateForAllRecords(this._getSelectionInstance(),true)},_deselectAllFromOverlay:function(){this._changeCheckStateForAllRecords(this._getSelectionInstance(),false)},_unregisterSelectAllEvents:function(){if(this.grid.element.data("igGridPaging")&&this.options.enableSelectAllForPaging){this.grid.container().unbind(".containerselectall");$(this.grid.id()+"_select_all_overlay").remove();$(this.grid.id()+"_deselect_all_overlay").remove()}},_updateHeader:function(){var dv=this._getDataView(),dvl=dv.length,sl,i,check=!!dvl,selection=this._getSelectionInstance(),pk=selection._pkProp;if(this.grid.element.data("igGridPaging")){for(i=0;i0&&inner.length>0){if(check===true){checkbox.attr("data-chk","on");inner.removeClass(this.css.checkBoxOff).addClass(this.css.checkBoxOn)}else{checkbox.attr("data-chk","off");inner.removeClass(this.css.checkBoxOn).addClass(this.css.checkBoxOff)}}},_getRowSelectorCellMarkup:function(selected){var markup="";markup+='';if(this.options.enableRowNumbering){markup+=this._getCurrentNumber()}if(this.options.enableCheckBoxes){markup+=this._getCheckBox(false,selected)}markup+=" | ";return markup},_getCheckBox:function(header,checked){var markup="";markup+='';markup+="";return markup},_getCurrentNumber:function(){return''+(++this._cIdx+this.options.rowNumberingSeed)+""},_selectAllRows:function(selection){var checkboxes=this._allCheckboxes(),i,range=[],row,rowId;if(checkboxes.length===0){return}for(i=0;i tr").eq(row.index()))}else{row=row.add(this.grid.fixedBodyContainer().find("tbody > tr").eq(row.index()))}}rowId=selection._pkProp?this.grid._fixPKValue(row.attr("data-id")):i;range.push({id:rowId,element:row,checkbox:checkboxes.eq(i)})}this._suspendHeader=true;this.grid._selection.rangeSelect(range,true,null,false,false);this._suspendHeader=false},_selectAllVirtualRows:function(selection){var dv=this._getDataView(),fr,lr,rangeStats;if(dv.length===0){return}if(selection._pkProp){fr=dv[0].__gbRecord?dv[0].id:dv[0][selection._pkProp];lr=dv[dv.length-1].__gbRecord?dv[dv.length-1].id:dv[dv.length-1][selection._pkProp]}else{fr=0;lr=dv.length-1}rangeStats=selection._getRecordRange(fr,lr,dv);this._suspendHeader=true;this.grid._selection.rangeSelect(rangeStats.range,true,null,false,false);if(this.grid.options.virtualizationMode==="continuous"){this.grid._correctScrollPosition(this.grid._getTotalRowsCount())}this._suspendHeader=false},_changeCheckStateForAllRecords:function(selection,toCheck){var dv=this._getDSLocalRecords(),fr,lr,rangeStats;if(dv.length===0){return}if(selection._pkProp){fr=dv[0][selection._pkProp];lr=dv[dv.length-1][selection._pkProp]}else{fr=0;lr=dv.length-1}rangeStats=selection._getRecordRange(fr,lr,dv);this._suspendHeader=true;if(toCheck){this.grid._selection.rangeSelect(rangeStats.range,true,null,rangeStats,false)}else{this.grid._selection.rangeDeselect(rangeStats.range,rangeStats,false)}this._suspendHeader=false},_deselectAllRows:function(selection){var checkboxes=this._allCheckboxes(),i,row,rowId,range=[];if(checkboxes.length===0){return}if(this.grid.element.data("igGridPaging")){for(i=0;i tr").eq(i))}rowId=selection._pkProp?this.grid._fixPKValue(row.attr("data-id")):i;range.push({id:rowId,element:row,checkbox:checkboxes.eq(i)})}this._suspendHeader=true;this.grid._selection.rangeDeselect(range,false,false);this._suspendHeader=false}else{this.grid._selection.deselectAll(false)}},_deselectAllVirtualRows:function(selection){var dv=this._getDataView(),rangeStats,fr,lr;if(dv.length===0){return}if(this.grid.element.data("igGridPaging")){if(selection._pkProp){fr=dv[0][selection._pkProp];lr=dv[dv.length-1][selection._pkProp]}else{fr=0;lr=dv.length-1}rangeStats=selection._getRecordRange(fr,lr,dv);this._suspendHeader=true;this.grid._selection.rangeDeselect(rangeStats.range,false,false);this._suspendHeader=false}else{this.grid._selection.deselectAll(false)}},_isFirstRowSelected:function(){var row=this.grid.element.find("tbody > tr:not([data-grouprow='true'],[data-summaryrow='true']):first"),rowId=row.attr("data-id");rowId=rowId!==null&&rowId!==undefined?this.grid._fixPKValue(rowId):this.grid.dataSource.pageIndex()*this.grid.dataSource.pageSize();return this.grid._selection.isSelected(rowId,this.grid)},_rowHasSelection:function(data){var sel=this._getSelectionInstance(),rowId=data[this.grid.options.primaryKey||"ig_pk"];if(!sel||rowId===null||rowId===undefined){return false}if(sel.options.mode==="cell"){return this.grid._selection.atLeastOneSelected(rowId,sel)}return this.grid._selection.isSelected(rowId,this.grid)},_rsRenderVirtualRecords:function(event,ui){var i=0,rs,rows,rowsLen;this._cIdx=0;if(this.grid.hasFixedColumns()&&this._getColumnFixingInstance().options.fixingDirection==="left"){rows=ui.fixedRows}else{rows=ui.rows}rowsLen=rows.length;for(i;i tr").eq(fRow.index())}else{fRow=this.grid.fixedBodyContainer().find("tbody > tr").eq(rRow.index())}}fdCell=this._getFirstDataCell(rRow,fRow);if(event.shiftKey&&this._ms){sel._shiftSelectChange(fdCell)}else{sel._singleSelectChange(fdCell,event.ctrlKey||event.metaKey)}args={row:rRow,fixedRow:fRow,rowIndex:rIdx,rowKey:rKey,rowSelector:rCell,owner:this,grid:this.grid};this._triggerClickEvent(event,args)},_getFirstDataCell:function(row,frow){if(frow&&frow.length>0){frow.children("td").not("[data-skip='true'],[data-parent='true']").first()}return row.children("td").not("[data-skip='true'],[data-parent='true']").first()},_mouseHoverRow:function(event){var par,tag,tr=event.target;while(tr){par=tr.parentNode;tag=tr.nodeName;if(tag==="TR"&&par.nodeName==="TBODY"){break}tr=tag==="TABLE"?null:par}if(this._hovTR!==tr){this._mouseHoverRowHelper(this._hovTR,tr);if(this.grid.hasFixedColumns()){this._mouseHoverFixedRow($(this._hovTR),$(tr))}this._hovTR=tr}},_mouseHoverRowHelper:function(hovTr,tr){if(hovTr&&$(hovTr).attr("data-container")!=="true"){$("th."+this.css.rowSelector,hovTr).removeClass(this.css.nodeHovered)}if(tr&&$(tr).attr("data-container")!=="true"){$("th."+this.css.rowSelector,tr).addClass(this.css.nodeHovered)}},_mouseHoverFixedRow:function($hovTR,$tr){var $fHTR,$fTR,ind;ind=$hovTR.index();$fHTR=this.grid.fixedBodyContainer().find("tr:nth-child("+(ind+1)+")");ind=$tr.index();$fTR=this.grid.fixedBodyContainer().find("tr:nth-child("+(ind+1)+")");this._mouseHoverRowHelper($fHTR,$fTR)},_mouseLeaveRow:function(){var ind,$fHTR;if(this._hovTR){$("th",this._hovTR).removeClass(this.css.nodeHovered);if(this.grid.hasFixedColumns()){ind=$(this._hovTR).index();$fHTR=this.grid.fixedBodyContainer().find("tr:nth-child("+(ind+1)+")");$fHTR.find("th").removeClass(this.css.nodeHovered)}this._hovTR=null}},_triggerClickEvent:function(event,args){this._trigger(this.events.rowSelectorClicked,event,args)},_triggerCheckingEvent:function(event,args){return this._trigger(this.events.checkBoxStateChanging,event,args)},_triggerCheckedEvent:function(event,args){this._trigger(this.events.checkBoxStateChanged,event,args)},_getVisibleRowIndex:function(row){return row.closest("tbody").children("tr:not([data-container='true'],[data-grouprow='true'],[data-summaryrow='true'])").index(row)},_getVisibleHRowIndex:function(row){return row.closest("tbody").children("tr:not([data-container='true'])").index(row)},_animateCheckboxes:function(trans){var h=this._headerCheckbox(),c=this._allCheckboxes(),all=h.add(c);if(trans===true){all.css("visibility","visible").css("opacity",0).animate({opacity:1},1e3)}else{all.css("opacity",1e3).animate({opacity:0},1e3,function(){$(this).css("visibility","hidden")})}this._checkBoxesShown=trans},_cleanInterface:function(isRebind){var header,footer,cols,rsCells,w;if(isRebind===true){this._alterCheckbox(this._headerCheckbox(),false);return}cols=this.grid.element.children("colgroup").children("[data-role='rs']");cols=cols.add(this.grid.fixedBodyContainer().find("colgroup").children("[data-role='rs']"));if(this.grid.options.fixedHeaders===true){cols=cols.add(this.grid.headersTable().children("colgroup").children("[data-role='rs']"));cols=cols.add(this.grid.fixedHeadersTable().children("colgroup").children("[data-role='rs']"))}if(this.grid.options.fixedFooters===true){cols=cols.add(this.grid.footersTable().children("colgroup").children("[data-role='rs']"));cols=cols.add(this.grid.fixedFootersTable().children("colgroup").children("[data-role='rs']"))}footer=this._footerRowSelectorCells();header=this._headerRowSelectorCells();rsCells=this._allRowSelectorCells();if(!this.grid.options.width&&this._functionsRedirected){w=this.grid.container().css("width");if(w&&!w.endsWith("%")){this.grid.container().css("width",parseInt(w,10)-this.options.rowSelectorColumnWidth)}}cols.remove();footer.remove();header.remove();rsCells.remove()},_allRowSelectorCells:function(){var rowSelectors,grid=this.grid;if(grid.hasFixedColumns()&&this._getColumnFixingInstance().options.fixingDirection==="left"){if(grid.options.virtualization||grid.options.rowVirtualization){rowSelectors=grid.fixedBodyContainer().find("tbody > tr > th."+this.css.rowSelector)}else{rowSelectors=grid.fixedBodyContainer().find("tbody > tr > th."+this.css.rowSelector)}}else{rowSelectors=grid.element.children("tbody").children("tr").children("th."+this.css.rowSelector)}return rowSelectors},_headerRowSelectorCells:function(){var headerCells=this.grid.headersTable().children("thead").find("th[data-role='rs']");
if(headerCells.length===0&&this.grid.hasFixedColumns()){headerCells=this.grid.fixedHeadersTable().children("thead").find("th[data-role='rs']")}return headerCells},_footerRowSelectorCells:function(){var footerCells=this.grid.footersTable().children("tfoot").find("td[data-role='rs']");if(footerCells.length===0&&this.grid.hasFixedColumns()){footerCells=this.grid.fixedFootersTable().children("tfoot").find("td[data-role='rs']")}return footerCells},_allCheckboxes:function(){var checkboxes=this.grid.element.children("tbody").children("tr").children("th").find("span[name='chk']");if(checkboxes.length===0&&this.grid.hasFixedColumns()&&this._getColumnFixingInstance().options.fixingDirection==="left"){checkboxes=this.grid.fixedBodyContainer().find("tbody > tr > th span[name='chk']")}return checkboxes},_headerCheckbox:function(){var checkbox=this.grid.headersTable().children("thead").find("tr > th span[name='hchk']");if(checkbox.length===0&&this.grid.hasFixedColumns()&&this._getColumnFixingInstance().options.fixingDirection==="left"){checkbox=this.grid.fixedHeadersTable().children("thead").find("tr > th span[name='hchk']")}return checkbox},_rowSelectorFromSelection:function(info){var element=info.element,rs,checkbox=info.checkbox,fixingDir;if(element.is("th")){return}if(checkbox){rs=checkbox.parent()}else{if(element.is("tr")||element.length===2){rs=element.children("th:first")}else if(this.grid.hasFixedColumns()){fixingDir=this.grid.fixedBodyContainer().attr("data-fixing-direction");if(fixingDir==="left"&&!this.grid._isFixedElement(element)){rs=this.grid.fixedBodyContainer().find("tbody > tr").eq(element.closest("tr").index()).children("th:first")}else if(fixingDir==="right"&&this.grid._isFixedElement(element)){rs=this.grid.element.find("tbody > tr").eq(element.closest("tr").index()).children("th:first")}}if(!rs){rs=element.closest("tr").children("th:first")}checkbox=this.options.enableCheckBoxes?rs.children("span:last"):null}return{rowSelector:rs,checkbox:checkbox}},_checkForSelection:function(){var i,isSelection=false;for(i=0;i0;if(this._hc===false){this._hc=this.grid.element.hasClass("ui-iggrid-root")}}this.grid._startRowIndex=this.grid._startRowIndex||0;this._defaultAttributes();if(this.options.persist){this._paintActive();this._renderAttributes();this._selection.invalid=true}else{this.clearSelection()}},_fixedColumnsChanged:function(args){if(args.isToFix&&args.isInit){this._unregisterEvents();this._registerEvents();this._selection.invalid=true}},_virtualRecordsRendering:function(){this._storedActiveElement=this.activeCell()||this.activeRow();if(this._storedActiveElement){this._storedActiveElement.element.blur()}},_virtualRecordsRender:function(evt,ui){var ae;if(ui.owner.id()!==this.grid.id()){return}this._selection.invalid=true;$(document).unbind("keydown."+this.grid.id());if(this.grid.options.virtualization===true&&this.grid.options.virtualizationMode==="continuous"){this._unregisterEvents();this._registerEvents()}this._paintActive();this._renderAttributes();if(this.options.mode==="cell"){ae=this.activeCell()}else{ae=this.activeRow()}if(ae&&ae.element instanceof $){ae.element.focus()}else if(this._storedActiveElement){if(this.options.mode==="cell"){this._getCellByIdentifier(this._storedActiveElement).focus()}else{this._getRowsByIdentifier(this._storedActiveElement.id).focus()}}},_columnsCollectionModified:function(evt,ui){if(ui.owner.id()===this.grid.id()){this._unregisterEvents();this._registerEvents();this._selection.invalid=true;this._paintActive()}},_hidingFinished:function(){if(this.options.persist){this._paintActive();this._selection.invalid=true}},_rowDeleted:function(rowId){var cellsForRow,colKey,cellId;this._selection.invalid=true;if(this.options.mode==="cell"){if(this._selection.settings.owner===this.grid){if(this._selection.activeElement&&this._selection.activeElement.id===rowId){this._selection.deactivate()}cellsForRow=this._selection.selection[rowId];for(colKey in cellsForRow){if(cellsForRow.hasOwnProperty(colKey)){cellId={id:rowId,columnKey:colKey};this._selection.deselect(cellId,null,false)}}}}else{if(this._selection.isActive(rowId,this.grid)){this._selection.deactivate()}if(this._selection.isSelected(rowId,this.grid)){this._selection.deselect(rowId,null,false)}}},_mouseDown:function(event){var target,targetGrid,gOpts=this.grid.options,re=new RegExp("^"+this.grid.id()+"(_fixed)?$"),hasVirtualization=gOpts.virtualization||gOpts.rowVirtualization||gOpts.columnVirtualization,scrollCont=hasVirtualization?this.grid._vdisplaycontainer():this.grid.scrollContainer();if(event&&event.which!==1){return}target=event&&event.target?$(event.target):null;this._mouseDownTarget=target;this._mouseDownScroll=scrollCont.length?scrollCont.scrollTop():0;this._prevDragTar=target[0];this._previousRangeCache=event.ctrlKey||event.metaKey?[]:null;if(this.options.allowMultipleRangeSelection&&this.options.mode==="cell"){this._selection._lockSelection()}targetGrid=target?target.closest(".ui-iggrid-table"):null;if(target&&target.hasClass("ui-iggrid-scrolldiv")){return}if(targetGrid&&targetGrid.length>0&&!targetGrid.attr("id").match(re)){return}this._isMouseDown=true;if(this.options.mouseDragSelect===false||this.options.multipleSelection===false||this.options.mode==="row"){return}this._firstDragCell=target},_mouseMove:function(event){var target=event&&event.target?$(event.target):null,fdc=this._firstDragCell,re,$tbl;if(event&&this._suspend){return}if(this.options.mode!=="cell"||!this.options.mouseDragSelect||!this._isMouseDown){return}target=target.closest("td,th");if(fdc&&fdc.length>0){$tbl=fdc.closest(".ui-iggrid-table");re=new RegExp("^"+this.grid.id()+"(_fixed)?$");if(target[0]!==this._prevDragTar&&target.closest(".ui-iggrid-table").attr("id").match(re)&&$tbl.length&&$tbl.attr("id").match(re)&&!(target.is("th")||target.attr("data-skip"))){this._selection.rangeSelectStart=this._identifierForTarget(fdc);this._dragSelect=true;this._prevDragTar=target[0];this._shiftSelectChange(target,false);this._storedActiveIndex=target.closest("td").index()}}},_mouseUp:function(event){var gOpts=this.grid.options,hasVirtualization=gOpts.virtualization||gOpts.rowVirtualization||gOpts.columnVirtualization,scrollCont=hasVirtualization?this.grid._vdisplaycontainer():this.grid.scrollContainer(),target=event&&event.target?$(event.target):null,targetGrid=target?target.closest(".ui-iggrid-table"):null,re=new RegExp("^"+this.grid.id()+"(_fixed)?$"),shouldCancel,self=this,ctrl;if(targetGrid&&targetGrid.length>0&&!targetGrid.attr("id").match(re)){return}this._isMouseDown=false;if(!target||this._dragSelect||this._suspend||!this._mouseDownTarget||this._mouseDownTarget[0]!==target[0]||event.which>1||$.ig.util.isTouch&&(scrollCont.length?scrollCont.scrollTop():0)!==this._mouseDownScroll){this._dragSelect=false;this._prevDragTar=null;this._firstDragCell=null;this._mouseDownTarget=null;return}if(target.closest(".ui-iggrid-rowselector-class").length===1||target.hasClass("ui-iggrid-childarea")||target.parent().hasClass("ui-iggrid-childarea")||target.hasClass("ui-widget-header")){return}if(this._hc){target.parents("tr[data-container]").each(function(){if($(this).closest(".ui-iggrid-table").attr("id")===self.grid.element.attr("id")){shouldCancel=true;return false}});if(shouldCancel){return}}if(event.shiftKey&&this.options.multipleSelection){this._shiftSelectChange(target,true)}else{ctrl=event.ctrlKey||event.metaKey||this.options.mode==="cell"&&this.options.multipleCellSelectOnClick;this._singleSelectChange(target,ctrl)}this._maxHistoryLength=this.grid.options.columns.length;this._selectionHistory=[{elem:target,elemIndex:target.index(),rowOfElem:target.closest("tr"),prevSelected:null,keyCode:null}]},_touchStart:function(event){event.target=$(document.elementFromPoint(event.originalEvent.touches[0].clientX,event.originalEvent.touches[0].clientY));event.which=1;if(event.target.hasClass("ui-iggrid-selectedcell")&&event.target.hasClass("ui-state-focus")){this._canDrag=true}else{this._canDrag=false}this._mouseDown(event)},_touchEnd:function(event){event.target=$(document.elementFromPoint(event.originalEvent.changedTouches[0].clientX,event.originalEvent.changedTouches[0].clientY));this._canDrag=false;this._mouseUp(event)},_touchMove:function(event){if(!this._isMouseDown||!this._canDrag){return true}event.preventDefault();event.target=$(document.elementFromPoint(event.originalEvent.touches[0].clientX,event.originalEvent.touches[0].clientY));this._mouseMove(event)},_pointerDown:function(event){this.grid.element.css("-ms-touch-action","none");this._mouseDown(event)},_pointerMove:function(event){this._mouseMove(event)},_pointerUp:function(event){this.grid.element.css("-ms-touch-action","auto");this._mouseUp(event)},_keyDown:function(event){var target,tId,targetGrid,re=new RegExp("^"+this.grid.id()+"(_fixed)?$"),el;if(event&&this._suspend){return}if(this.grid!==this._selection.settings.owner){return}if(this._isMouseDown===true){return}if(this.options.activation!==true){return}if(event.keyCode!==$.ui.keyCode.ENTER&&event.keyCode!==$.ui.keyCode.SPACE&&event.keyCode!==$.ui.keyCode.UP&&event.keyCode!==$.ui.keyCode.DOWN&&event.keyCode!==$.ui.keyCode.LEFT&&event.keyCode!==$.ui.keyCode.RIGHT){return}target=event&&event.target?$(event.target):null;tId=target?this._identifierForTarget(target):null;targetGrid=target?target.closest(".ui-iggrid-table"):null;if(targetGrid&&targetGrid.length>0&&!targetGrid.attr("id").match(re)){return}if(this._selection.activeElement===null||this._selection.activeElement===undefined){if(this.options.mode==="cell"){el=target.children("td:not([data-skip='true']):first");if(!el.length){return}this._singleSelectChange(el,false,false);if(event.keyCode===$.ui.keyCode.SPACE){event.preventDefault()}return}el=target.closest("tr");if(!el.length){return}this._selection.activate(this._identifierForRow(el),el)}event.preventDefault();if(event.keyCode===$.ui.keyCode.ENTER||event.keyCode===$.ui.keyCode.SPACE){if(this._suppressKey(event.keyCode)){return}if(!this._isDataElement(this._selection.activeElement)||!this._canBeSelected(tId,target)){this._handleToggle(event.ctrlKey||event.metaKey)}else{this._selection.toggle()}return}this._navigate(event.keyCode,event.ctrlKey||event.metaKey,event.shiftKey)},_selectStart:function(event){var re=new RegExp("^"+this.grid.id()+"(_fixed)?$"),target=event.target?$(event.target):null,targetGrid=target?target.closest(".ui-iggrid-table"):$();if(targetGrid.length>0&&!targetGrid.attr("id").match(re)){return}if(event&&this._suspend){return}if(this.options.mouseDragSelect===false||this.options.multipleSelection===false){return false}event.preventDefault()},_selectStartContainer:function(event){if(event.target&&$(event.target).hasClass("ui-iggrid-fixedcontainer")){event.preventDefault()}},_tbodyFocusIn:function(event){var target=event&&event.target?$(event.target):null,targetGrid=target?target.closest(".ui-iggrid-table"):null,re=new RegExp("^"+this.grid.id()+"(_fixed)?$"),reo;if(target.is("[data-rs-select-all]")||target.is("[data-rs-deselect-all]")){targetGrid=target?target.closest(".ui-iggrid").find(".ui-iggrid-table"):null}if(this._selection.settings.owner){reo=new RegExp("^"+this._selection.settings.owner.id()+"(_fixed)?$")}if(targetGrid&&targetGrid.length>0){if(!targetGrid.attr("id").match(re)){return}if(reo&&!targetGrid.attr("id").match(reo)){this._selection.changeOwner(this.grid)}}if(this.options.mode==="row"){if(target.is("tr")){this._selection.activate(this._identifierForRow(target),target)}}else{if(target.is("td")){this._selection.activate(this._identifierForTarget(target),target);if(!target.attr("data-gbsummary")){this._storedActiveIndex=target.index()}}}},_tbodyFocusOut:function(event){var target=event&&event.target?$(event.target):null,targetGrid=target?target.closest(".ui-iggrid-table"):null,re=new RegExp("^"+this.grid.id()+"(_fixed)?$"),id;if(targetGrid&&targetGrid.length>0&&!targetGrid.attr("id").match(re)){return}if(this.options.mode==="row"){if(target.is("tr")){id=this._identifierForRow(target);if(this._selection.isActive(id)){this._selection.deactivate()}}}else{if(target.is("td")){id=this._identifierForTarget(target);if(this._selection.isActive(id)){this._selection.deactivate()}}}},_preventDefault:function(event){if($(event.target).is("td")){event.preventDefault()}},_releaseMouse:function(){this._dragSelect=false;this._firstDragCell=null;this._isMouseDown=false;this._mouseDownTarget=null},_applyCellStyle:function(data,col){var identifier={id:data[this._pkProp],columnKey:col};return this._selection.isSelected(identifier,this.grid)?this.css.selectedCell:""},_applyRowStyle:function(data){var id=data.__gbRecord?data.id:data[this._pkProp];return this._selection.isSelected(id,this.grid)?this.css.selectedCell:""},_paintActive:function(){if(this._selection.activeElement&&this._selection.settings.owner===this.grid){if(this.options.mode==="row"){this._getRowsByIdentifier(this._selection.activeElement).addClass(this.css.activeRow)}else{this._getCellByIdentifier(this._selection.activeElement).addClass(this.css.activeCell)}}},_renderAttributes:function(){if(this._selection.selectionLength()){if(this.options.mode==="row"){this.grid.element.children("tbody").find("td.ui-iggrid-selectedcell").closest("tr").attr("aria-selected",true);this.grid.fixedBodyContainer().find("tbody").find("td.ui-iggrid-selectedcell").closest("tr").attr("aria-selected",true)}else{this.grid.element.children("tbody").find("td.ui-iggrid-selectedcell").attr("aria-selected",true);this.grid.fixedBodyContainer().find("tbody").find("td.ui-iggrid-selectedcell").attr("aria-selected",true)}}else{if(this.options.mode==="row"){this.grid.element.children("tbody").find("td:not('.ui-iggrid-selectedcell')").closest("tr").attr("aria-selected",false);this.grid.fixedBodyContainer().find("tbody").find("td:not('.ui-iggrid-selectedcell')").closest("tr").attr("aria-selected",false)}else{this.grid.element.children("tbody").find("td:not('.ui-iggrid-selectedcell')").attr("aria-selected",false);this.grid.fixedBodyContainer().find("tbody").find("td:not('.ui-iggrid-selectedcell')").attr("aria-selected",false)}}},_defaultAttributes:function(){if(this.options.mode==="row"){this.grid.element.children("tbody").children("tr").attr("aria-selected",false);this.grid.fixedBodyContainer().find("tbody").children("tr").attr("aria-selected",false)}else{this.grid.element.children("tbody").find("td").attr("aria-selected",false);this.grid.fixedBodyContainer().find("tbody").find("td").attr("aria-selected",false)}},clearSelection:function(){this._selection.cleanAll(this.grid)},selectCell:function(row,col,isFixed){var rowElement,cellId,cellElement,record;if(this.options.mode==="row"){return}if(this._isOutOfView(row,col)){record=this.grid._getDataView()[row];if(!record){return}if(this.grid._visibleColumns().lengththis._rangeSelectionStartIndex||nextRowIndex-prevRowIndex>0&&prevRowIndex=nextRow.children().length?nextRow.children().length-1:this._storedActiveIndex||currentCellIndex;nextElement=nextRow.children().eq(nextElementIndex);if(this._rowMergeOffset!==0){nextElementIndex+=this._rowMergeOffset;nextElement=nextRow.children().eq(nextElementIndex);this._rowMergeOffset=0}if(nextElement.attr("aria-rowmerged")!==undefined){while(nextElement.attr("aria-rowmerged")!==undefined){this._rowMergeOffset++;nextElementIndex--;nextElement=nextRow.children().eq(nextElementIndex)}}while(!nextElement.is(":visible")&&nextElement.attr("aria-rowmerged")===undefined){nextRow=this._getPrevRow(currentRow,wrapAround,isFixedElement,false,vVirt);currentRow=nextRow;if(this.options.mode==="row"||!nextRow){return nextRow}nextElement=nextRow.children().eq(nextElementIndex)}}else if(code===$.ui.keyCode.DOWN){nextRow=this._getNextRow(currentRow,wrapAround,isFixedElement,false,vVirt);if(cellRowSpan){var rowspan=parseInt(currentActiveElement.attr("rowspan"));nextRow=this._getRowByIndex(currentRow.index()+rowspan,isFixedElement);if(!nextRow.length){nextRow=this._firstRow(null,isFixedElement,hierRowSkip)}else if(nextRow.attr("data-container")){nextRow=this._firstRow(nextRow,isFixedElement,hierRowSkip)}}if(this.options.mode==="row"||!nextRow){return nextRow}nextElementIndex=currentCellIndex>=nextRow.children().length?nextRow.children().length-1:this._storedActiveIndex||currentCellIndex;nextElement=nextRow.children().eq(nextElementIndex);if(this._rowMergeOffset!==0){nextElementIndex+=this._rowMergeOffset;nextElement=nextRow.children().eq(nextElementIndex);this._rowMergeOffset=0}if(nextElement.attr("aria-rowmerged")!==undefined){while(nextElement.attr("aria-rowmerged")!==undefined){this._rowMergeOffset++;nextElementIndex--;nextElement=nextRow.children().eq(nextElementIndex)}}}else if(code===$.ui.keyCode.LEFT&&this.options.mode==="cell"){if(currentActiveElement.is(":first-child")){if(hasFixedCols&&!isFixedElement&&fixingDir==="left"){if(cellRowSpan&&this._selectionHistory.length>1){nextRow=this._getNextRowByEndMergedCell(code,wrapAround,isFixedElement,fixingDir)}else if(cellColSpan){currentCellIndex-=cellColSpanVal-1;nextRow=this._getRowByIndex(currentRow.index(),true)}else{nextRow=this._getRowByIndex(currentRow.index(),true)}}else if(hasFixedCols&&isFixedElement&&fixingDir==="right"){if(cellRowSpan&&this._selectionHistory.length>1){nextRow=this._getNextRowByEndMergedCell(code,wrapAround,isFixedElement,fixingDir)}else if(cellColSpan){currentCellIndex-=cellColSpanVal-1;nextRow=this._getRowByIndex(currentRow.index(),false)}else{nextRow=this._getRowByIndex(currentRow.index(),false)}}else{if(cellRowSpan&&this._selectionHistory.length>1){nextRow=this._getNextRowByEndMergedCell(code,wrapAround,isFixedElement,fixingDir)}else if(cellColSpan){currentCellIndex-=cellColSpanVal-1;nextRow=this._getPrevRow(currentRow,wrapAround,isFixedElement,hasFixedCols,vVirt)}else{nextRow=this._getPrevRow(currentRow,wrapAround,isFixedElement,hasFixedCols,vVirt)}this._cleanHistorySavePrevRow(code,wrapAround,isFixedElement,hasFixedCols,vVirt)}wrapped=true}else{if(cellRowSpan&&this._selectionHistory.length>1){if(this._selectionHistory[0].keyCode===$.ui.keyCode.UP){currentRow=this._selectionHistory[1].rowOfElem;nextRow=this._getPrevRow(currentRow,wrapAround,isFixedElement,false,vVirt)}else if(this._selectionHistory[0].keyCode===$.ui.keyCode.DOWN){nextRow=this._selectionHistory[0].rowOfElem}else if(this._selectionHistory[0].keyCode===$.ui.keyCode.RIGHT){nextRow=this._selectionHistory[1].rowOfElem}else if(this._selectionHistory[0].keyCode===$.ui.keyCode.LEFT&&isFixedElement){lastSmallSelection=this._findLastSmallestCellGroupSelected();nextRow=this._getRowByIndex(lastSmallSelection.rowOfElem.index(),true)}else if(this._selectionHistory[0].keyCode===$.ui.keyCode.LEFT){lastSmallSelection=this._findLastSmallestCellGroupSelected();nextRow=this._getRowByIndex(lastSmallSelection.rowOfElem.index(),false)}else{nextRow=currentRow}}else{nextRow=currentRow}}if(!nextRow||nextRow.length===0){return null}nextElementIndex=wrapped?nextRow.children().length-1:currentCellIndex-1;nextElement=nextRow.children().eq(nextElementIndex);if(nextElement.attr("colspan")===undefined){this._rowMergeOffset=0}while(!nextElement.is(":visible")){if(nextElement.attr("aria-rowmerged")!==undefined){while(nextElement.attr("aria-rowmerged")!==undefined){this._rowMergeOffset++;nextElementIndex--;nextElement=nextRow.children().eq(nextElementIndex)}}else{nextRow=this._getPrevRow(nextRow,wrapAround,isFixedElement,false,vVirt);nextElementIndex=wrapped?nextRow.children().length-1:currentCellIndex-1;nextElement=nextRow.children().eq(nextElementIndex)}}this._revertH=wrapped}else if(code===$.ui.keyCode.RIGHT&&this.options.mode==="cell"){if(currentActiveElement.is(":last-child")){if(hasFixedCols&&isFixedElement&&fixingDir==="left"){if(cellRowSpan&&this._selectionHistory.length>1){nextRow=this._getNextRowByEndMergedCell(code,wrapAround,isFixedElement,fixingDir)}else if(cellColSpan){currentCellIndex+=cellColSpanVal-1;nextRow=this._getRowByIndex(currentRow.index(),false)}else{nextRow=this._getRowByIndex(currentRow.index(),false)}}else if(hasFixedCols&&!isFixedElement&&fixingDir==="right"){if(cellRowSpan&&this._selectionHistory.length>1){nextRow=this._getNextRowByEndMergedCell(code,wrapAround,isFixedElement,fixingDir)}else if(cellColSpan){currentCellIndex+=cellColSpanVal-1;
nextRow=this._getRowByIndex(currentRow.index(),true)}else{nextRow=this._getRowByIndex(currentRow.index(),true)}}else{if(cellRowSpan&&this._selectionHistory.length>1){nextRow=this._getNextRowByEndMergedCell(code,wrapAround,isFixedElement,fixingDir)}else if(cellColSpan){currentCellIndex+=cellColSpanVal-1;nextRow=this._getNextRow(currentRow,wrapAround,isFixedElement,hasFixedCols,vVirt)}else{nextRow=this._getNextRow(currentRow,wrapAround,isFixedElement,hasFixedCols,vVirt)}this._cleanHistorySaveNextRow(code,wrapAround,isFixedElement,hasFixedCols,vVirt)}wrapped=true}else{if(cellRowSpan&&this._selectionHistory.length>1){if(this._selectionHistory[0].keyCode===$.ui.keyCode.UP){currentRow=this._selectionHistory[1].rowOfElem;nextRow=this._getPrevRow(currentRow,wrapAround,isFixedElement,false,vVirt)}else if(this._selectionHistory[0].keyCode===$.ui.keyCode.DOWN){nextRow=this._selectionHistory[0].rowOfElem}else if(this._selectionHistory[0].keyCode===$.ui.keyCode.LEFT){nextRow=this._selectionHistory[1].rowOfElem}else if(this._selectionHistory[0].keyCode===$.ui.keyCode.RIGHT&&isFixedElement){lastSmallSelection=this._findLastSmallestCellGroupSelected();nextRow=this._getRowByIndex(lastSmallSelection.rowOfElem.index(),true)}else if(this._selectionHistory[0].keyCode===$.ui.keyCode.RIGHT){lastSmallSelection=this._findLastSmallestCellGroupSelected();nextRow=this._getRowByIndex(lastSmallSelection.rowOfElem.index(),false)}else{nextRow=currentRow}}else if(cellColSpan){if(this.grid.options.columns.length<=currentCellIndex+parseInt(cellColSpanVal)){currentCellIndex=-1;nextRow=this._getNextRow(currentRow,wrapAround,!isFixedElement,hasFixedCols,vVirt)}else{currentCellIndex+=parseInt(cellColSpanVal)-1;nextRow=currentRow}}else{nextRow=currentRow}}if(!nextRow){return null}nextElementIndex=wrapped?0:currentCellIndex+1;nextElement=nextRow.children().eq(nextElementIndex);if(nextElement.attr("colspan")===undefined){this._rowMergeOffset=0}while(!nextElement.is(":visible")){if(nextElement.attr("aria-rowmerged")!==undefined){while(nextElement.attr("aria-rowmerged")!==undefined){this._rowMergeOffset++;nextRow=this._getPrevRow(nextRow,wrapAround,isFixedElement,false,vVirt);nextElementIndex=wrapped?0:currentCellIndex+1;nextElement=nextRow.children().eq(nextElementIndex)}}else{nextRow=this._getPrevRow(nextRow,wrapAround,isFixedElement,false,vVirt);nextElementIndex=wrapped?0:currentCellIndex+1;nextElement=nextRow.children().eq(nextElementIndex)}}this._revertH=wrapped}if(nextElement&&!nextElement.attr("data-gbsummary")){this._storedActiveIndex=nextElementIndex}if(!this._selectionHistory){this._maxHistoryLength=this.grid.options.columns.length;this._selectionHistory=[{elem:nextElement,elemIndex:nextElementIndex,rowOfElem:nextRow,keyCode:null}]}else{this._selectionHistory.unshift({elem:nextElement,elemIndex:nextElementIndex,rowOfElem:nextRow,keyCode:code});if(this._selectionHistory.length>this._maxHistoryLength){this._selectionHistory.splice(this._maxHistoryLength)}}return nextElement},_findLastSmallestCellGroupSelected:function(){var i,nextCell,curCell,targetCell=this._selectionHistory[0],curRowspan=targetCell.elem&&targetCell.elem.attr("rowspan")?parseInt(targetCell.elem.attr("rowspan")):0;for(i=1;i=this.grid._virtualRowCount-1){this._scrollVmanual(true);return null}}if(currentRow.first().parent().children((hierRowSkip.length>0?":not("+hierRowSkip+")":"")+":visible:last")[0]===currentRow[0]){if(wrapAround){nextRow=this._firstRow(null,swap?!isFixed:isFixed,hierRowSkip)}else{return}this._revertV=true}else{if(isFixed&&$.ig.util.isIE){currentRow.width()}if(swap){nextRow=this._getRowByIndex(currentRow.index()+1,!isFixed)}else{nextRow=currentRow.nextAll("tr"+(hierRowSkip.length>0?":not("+hierRowSkip+")":"")+":visible").first()}this._revertV=false}if(nextRow.attr("data-container")){nextRow=this._firstRow(nextRow,swap?!isFixed:isFixed,hierRowSkip)}return nextRow},_getPrevRow:function(currentRow,wrapAround,isFixed,swap,virt){var hierRowSkip=this.options.skipChildren?"[data-container=true]":"",nextRow,cIdx;if(virt){cIdx=currentRow.index();if(cIdx<=0){this._scrollVmanual(false);return null}}if(currentRow.is(":first-child")){if(wrapAround){nextRow=this._lastRow(null,swap?!isFixed:isFixed,hierRowSkip)}else{return}this._revertV=true}else{if(isFixed&&$.ig.util.isIE){currentRow.width()}if(swap){nextRow=this._getRowByIndex(currentRow.index()-1,!isFixed)}else{nextRow=currentRow.prevAll("tr"+(hierRowSkip.length>0?":not("+hierRowSkip+")":"")+":visible").first()}this._revertV=false}if(nextRow.attr("data-container")){nextRow=this._lastRow(nextRow,swap?!isFixed:isFixed,hierRowSkip)}return nextRow},_lastRow:function(container,fixed,rowSkip){var body;if(container){body=container.find("tbody")}else if(fixed){body=this.grid.fixedBodyContainer().find("tbody")}else{body=this.grid.element.children("tbody")}return body.children("tr"+(rowSkip.length>0?":not("+rowSkip+")":"")+":visible").last()},_firstRow:function(container,fixed,rowSkip){var body;if(container){body=container.find("tbody")}else if(fixed){body=this.grid.fixedBodyContainer().find("tbody")}else{body=this.grid.element.children("tbody")}return body.children("tr"+(rowSkip.length>0?":not("+rowSkip+")":"")).first()},_createUidForData:function(){var i=0,ds=this.grid.dataSource?this.grid.dataSource._data:[];for(i=0;i0){rootGrid=rootGrid.data("igGrid")}else{rootGrid=this.grid}opts={multipleSelection:this.options.multipleSelection,byIndex:this._pkProp===null,owner:this.grid};if(this.options.mode==="row"){rootGrid._selectionCollection=rootGrid._selectionCollection||new $.ig.SelectedRowsCollection(opts)}else{rootGrid._selectionCollection=rootGrid._selectionCollection||new $.ig.SelectedCellsCollection(opts)}this._selection=rootGrid._selectionCollection;this.grid._selection=this._selection;if(!this._subId){this._subId=this._selection.addSubscriber(this,this.grid.id())}},_setScroll:function(code,nextActiveElement){var scrollHDir;var scrollVDir=this._revertV?code===$.ui.keyCode.DOWN||code===$.ui.keyCode.RIGHT?"up":"down":code===$.ui.keyCode.DOWN||code===$.ui.keyCode.RIGHT?"down":"up";this._setScrollTop(nextActiveElement,this.grid.element.parent(),nextActiveElement.closest("tr"),scrollVDir,nextActiveElement.closest("tr").index());if(this.options.mode==="cell"&&(code===$.ui.keyCode.LEFT||code===$.ui.keyCode.RIGHT)&&!this.grid._isFixedElement(nextActiveElement)){scrollHDir=this._revertH?code===$.ui.keyCode.LEFT?"right":"left":code===$.ui.keyCode.LEFT?"left":"right";this._setScrollLeft(this.grid._hscrollbarcontent(),nextActiveElement,scrollHDir,nextActiveElement.index())}},_setScrollTop:function(nextActiveElement,parent,child,direction,index){var childh,isDown,isUp,v,c,parentOffset=parent.igOffset(),childOffset=child.igOffset();if(!child||child.length===0){return}v=this.grid.options.virtualization||this.grid.options.rowVirtualization;c=v&&this.grid.options.virtualizationMode==="continuous";if(nextActiveElement.attr("rowspan")!==undefined){if(direction==="down"){childh=nextActiveElement.outerHeight()+child.outerHeight()-($(parent).outerHeight()-(childOffset.top-parentOffset.top))}else{childh=child.outerHeight()-(childOffset.top-parentOffset.top)}}else{childh=v&&!c?parseInt(this.grid.options.avgRowHeight,10):child.outerHeight()}if(!v||c){if(nextActiveElement.attr("rowspan")!==undefined){isDown=childOffset.top+nextActiveElement.outerHeight()+this.grid._scrollbarWidth()>parentOffset.top+$(parent).outerHeight()}else{isDown=childOffset.top+childh+this.grid._scrollbarWidth()>parentOffset.top+$(parent).outerHeight()}isUp=childOffset.top-childh/2<=parentOffset.top||c&&index<0}if(index===0&&(!v||c)){parent[0].scrollTop=0}else if(direction==="down"){if(isDown){if(c){this.grid._onVirtualVerticalScroll({},childh,direction)}}}else{if(isUp){if(c){this.grid._onVirtualVerticalScroll({},childh,direction)}}}},_setScrollLeft:function(parent,child,direction,index){var parentOffset=parent.igOffset(),sc,childOffset=child.igOffset(),fullLeft;if(!child||!child.length||!parent.length){return}sc=this.grid.scrollContainer();fullLeft=childOffset.left+(sc.length>0?sc.scrollLeft():0);if(index===0){parent[0].scrollLeft=0;this.grid._synchronizeHScroll()}else if(direction==="right"){if(fullLeft+child.outerWidth()>parentOffset.left+parent.outerWidth()){parent[0].scrollLeft=fullLeft-(parentOffset.left+parent.outerWidth())+child.outerWidth();this.grid._synchronizeHScroll()}}else{if(childOffset.left=0&&srId=0&&erIdendRecordIndex){recordRange=dv.slice(endRecordIndex,startRecordIndex+1)}else{recordRange=dv.slice(startRecordIndex,endRecordIndex+1)}startRecordIndex=Math.min(startRecordIndex,endRecordIndex);if(this.options.mode==="row"){if(!this._pkProp){for(i=0;iendPropIndex){propRange=vcols.slice(endPropIndex,startPropIndex+1)}else{propRange=vcols.slice(startPropIndex,endPropIndex+1)}if(!this._pkProp){for(i=0;iendRowIndex;if(reverse){startRowIndex=startRowIndex+endRowIndex;endRowIndex=startRowIndex-endRowIndex;startRowIndex=startRowIndex-endRowIndex}rowRange=this.grid.element.find("tbody").children("tr:not([data-container]):visible").slice(startRowIndex,endRowIndex+1);if(this.grid.hasFixedColumns()){fixedRowRange=this.grid.fixedBodyContainer().find("tbody").children("tr:not([data-container]):visible").slice(startRowIndex,endRowIndex+1)}if(this.options.mode==="row"){for(i=0;iendCellIndex;if(reverse){startCellIndex=startCellIndex+endCellIndex;endCellIndex=startCellIndex-endCellIndex;startCellIndex=startCellIndex-endCellIndex}crLength=endCellIndex-startCellIndex+1;cellRange=rowRange.find("td:nth-of-type(n+"+(startCellIndex+1)+"):nth-of-type(-n+"+(endCellIndex+1)+")");if(!cellRange.length){return{range:range}}row=cellRange.eq(0).parent();rowIndex=startRowIndex;startElementIndex=startElement.index();for(i=0;i=sri+vrc:false}return rv||cv?rowIdx=sri+vrc||(colIdx=sci+vcc):false},_isDataElement:function(identifier){var type=$.type(identifier);return type==="number"||type==="string"||!identifier.columnKey.startsWith("##")},_suppressKey:function(keyCode){var updating=this.grid.element.data("igGridUpdating"),key;switch(keyCode){case $.ui.keyCode.ENTER:key="enter";break;case $.ui.keyCode.SPACE:key="space";break}if(updating){return updating.options.startEditTriggers.indexOf(key)>=0}return false},_firstDataCellForRow:function(row){return row.children("td:not([data-skip='true'],td[data-parent]):first")},_canBeSelected:function(identifier,target){return!identifier.columnKey&&target&&target.is("tr")&&!target.attr("data-grouprow")&&!target.attr("data-summaryrow")||identifier.columnKey&&!identifier.columnKey.startsWith("##")},_identifierForTarget:function(target){if(target.is("tr")){return this._identifierForRow(target)}if(target.hasClass("ui-iggrid-nongrouprowemptycell")){return this._identifierForDataSkipCell(target,this._gbEmptyCellKey)}if(target.hasClass("ui-iggrid-expandcolumn")){if(target.attr("data-parent")){return this._identifierForDataSkipCell(target,this._hgCellKey)}return this._identifierForDataSkipCell(target,this._gbExpandCellKey)}if(target.attr("data-gbsummary")){return this._identifierForDataSkipCell(target,this._gbSummaryCellKey)}if(target.attr("gbsummaryiconcell")){return this._identifierForDataSkipCell(target,this._gbGroupSummaryIconCellKey)}if(target.attr("gbsummaryemptycell")){return this._identifierForDataSkipCell(target,this._gbGroupSummaryEmptyCellKey)}if(target.attr("gbsummarycell")){return this._identifierForDataSkipCellPerColumn(target,this._gbGroupSummaryCellKey,"{col}")}if(target.hasClass("ui-igtreegrid-non-data-column")&&target.attr("data-skip")){return this._identifierForDataSkipCell(target,this._tgExpandKey)}if(target.is("td")){return this._identifierForCell(target)}if(target.is("th")){return this._identifierForDataSkipCell(target,this._rsCellKey)}return null},_getRowId:function(row){var attrId=row.attr("data-id");if(row.attr("data-grouprow")||row.attr("data-summaryrow")){if(!this._pkProp){return null}return attrId}return this.grid._fixPKValue(attrId)},_identifierForCell:function(cell){var row=cell.parent(),id=this._getRowId(row);if(id===null||id===undefined){id=this._getIndexForRow(row)}return{id:id,columnKey:this._getColKeyForCell(cell)}},_identifierForRow:function(row){var id=this._getRowId(row);if(id!==null&&id!==undefined){return id}return this._getIndexForRow(row)},_identifierForDataSkipCell:function(cell,key){var row=cell.parent(),id=this._getRowId(row);if(id===null||id===undefined){id=this._getIndexForRow(row)}return{id:id,columnKey:key}},_identifierForDataSkipCellPerColumn:function(cell,key,replaceValue){var row=cell.parent(),id=this._getRowId(row),col=this.grid.getColumnByTD(cell);if(id===null||id===undefined){id=this._getIndexForRow(row)}key=key.replace(replaceValue,col.column.key);return{id:id,columnKey:key}},_getRowsByIdentifier:function(identifier){var urow,frow=$();if(!this._pkProp){if(this.grid.hasFixedColumns()){frow=this._getRowByIndex(identifier,true)}urow=this._getRowByIndex(identifier,false)}else{if(this.grid.hasFixedColumns()){frow=this.grid.rowById(identifier,true)}urow=this.grid.rowById(identifier,false)}return urow instanceof $?urow.add(frow):$()},_getCellByIdentifier:function(identifier){var cellRow,isFixed,skippedCells,colIndex,i,cols,sci=this.grid._startColIndex||0;if(identifier.columnKey&&identifier.columnKey.startsWith("##")){return this._getNonDataCellByIdentifier(identifier)}if(!this._pkProp){isFixed=this.grid.isFixedColumn(identifier.columnKey);cellRow=this._getRowByIndex(identifier.id,isFixed);cols=this.grid._visibleColumns(isFixed);skippedCells=cellRow.children("th,[data-skip=true],[data-parent]").length;for(i=0;i=0&&identifier0){args.row.id=a.range[a.range.length-1].id}else if(this._pkProp){args.row.id=a.id}}if(a.startIndex!==undefined){args.startIndex=a.startIndex;args.endIndex=a.endIndex}return this._trigger(this.events.rowSelectionChanging,null,args)},_onRowSelectionChanged:function(a){var args={owner:this,selectedRows:this._selection.selectedRows()};if(a.element&&a.element.length){args.row={element:a.element,index:a.index!==undefined?a.index:this._getIndexForRow(a.element)};if(this._pkProp){args.row.id=a.id||this._identifierForRow(a.element)}}else{args.row={element:$(),index:-1};if(this._pkProp){args.row.id=a.id}}return this._trigger(this.events.rowSelectionChanged,null,args)},_onCellSelectionChanging:function(a){var args={owner:this,selectedCells:this._selection.selectedCells()};if(a.element&&a.element.length){args.cell={element:a.element,row:a.row||a.element.closest("tr"),columnKey:a.id?a.id.columnKey:this._getColKeyForCell(a.element)};args.cell.index=a.index!==undefined?a.index:this._getColIndexByKey(args.cell.columnKey);args.cell.rowIndex=a.rowIndex!==undefined?a.rowIndex:this._getIndexForRow(args.cell.row);if(this._pkProp){args.cell.rowId=a.id?a.id.id:this._identifierForRow(args.cell.row)}}else{args.cell={element:$(),row:$(),columnKey:a.id.columnKey};args.cell.index=-1;args.cell.rowIndex=-1;if(this._pkProp){args.cell.rowId=a.id?a.id.id:null}}if(a.firstColumnIndex!==undefined){args.firstColumnIndex=a.firstColumnIndex;args.firstRowIndex=a.firstRowIndex;args.lastColumnIndex=a.lastColumnIndex;args.lastRowIndex=a.lastRowIndex}return this._trigger(this.events.cellSelectionChanging,null,args)},_onCellSelectionChanged:function(a){var args={owner:this,selectedCells:this._selection.selectedCells()};if(a.element&&a.element.length){args.cell={element:a.element,row:a.row||a.element.closest("tr"),columnKey:a.id?a.id.columnKey:this._getColKeyForCell(a.element)};args.cell.index=a.index!==undefined?a.index:this._getColIndexByKey(args.cell.columnKey);args.cell.rowIndex=a.rowIndex!==undefined?a.rowIndex:this._getIndexForRow(args.cell.row);if(this._pkProp){args.cell.rowId=a.rowId||this._identifierForRow(args.cell.row)}}else{args.cell={element:$(),row:$(),columnKey:a.id.columnKey};args.cell.index=-1;args.cell.rowIndex=-1;if(this._pkProp){args.cell.rowId=a.id?a.id.id:null}}return this._trigger(this.events.cellSelectionChanged,null,args)},_onRowActivationChanging:function(a){var args={owner:this,row:a?{element:a.element,index:this._getIndexForRow(a.element)}:null};if(this._pkProp&&a){args.row.id=a.id}return this._trigger(this.events.activeRowChanging,null,args)},_onRowActivationChanged:function(a){var args={owner:this,row:a?{element:a.element,index:this._getIndexForRow(a.element)}:null};if(this._pkProp&&a){args.row.id=a.id}return this._trigger(this.events.activeRowChanged,null,args)},_onCellActivationChanging:function(a){var args={owner:this,cell:a?{element:a.element,row:a.element.closest("tr")}:null},noCancel=true;if(a){args.cell.index=this._getColIndexByKey(a.id.columnKey);args.cell.rowIndex=this._getIndexForRow(args.cell.row);args.cell.columnKey=a.id.columnKey;if(this._pkProp){args.cell.rowId=a.id.id}}noCancel=this._trigger(this.events.activeCellChanging,null,args);if(!noCancel){this._storedActiveIndex=this._getCellByIdentifier(this._selection.activeElement).index()}return noCancel},_onCellActivationChanged:function(a){var args={owner:this,cell:a?{element:a.element,row:a.element.closest("tr")}:null};if(a){args.cell.index=this._getColIndexByKey(a.id.columnKey);args.cell.rowIndex=this._getIndexForRow(args.cell.row);args.cell.columnKey=a.id.columnKey;if(this._pkProp){args.cell.rowId=a.id.id}}return this._trigger(this.events.activeCellChanged,null,args)},_select:function(info){var element=info.element||this._selection.elementFromIdentifier(info.id);if(element.is("tr")){element.children("td").not("[data-skip=true]").addClass(this.css.selectedCell)}else{element.addClass(this.css.selectedCell)}element.attr("aria-selected",true)},_deselect:function(info){var element=info.element||this._selection.elementFromIdentifier(info.id);if(element.is("tr")){element.children("td").removeClass(this.css.selectedCell)}else{element.removeClass(this.css.selectedCell)}element.attr("aria-selected",false)},_resizeGridWidth:function(decrease){if(decrease&&this._gridWidthDecreased||!decrease&&!this._gridWidthDecreased){return}var grid=this.grid,diff,padding=parseInt(grid.element.find("tbody tr td:last-child").css(grid._padding),10),$col=grid.element.find("colgroup:first>col:last");this._scrollbarWidth=this._scrollbarWidth||grid._scrollbarWidth();diff=this._scrollbarWidth;this._gridWidthDecreased=false;if(decrease){diff=-diff;this._gridWidthDecreased=true}grid.element.find("tbody tr td:last-child").css({"padding-right":padding+diff,"border-right":diff>0?"1px":"0px"});grid.element.css("width",grid.element.width()+diff);$col.width($col.width()+diff)},_isScrollbarOverLastCells:function(){if(this._isScrollbarOverLastCellsCache===undefined||this._isScrollbarOverLastCellsCache===null){var opts=this.grid.options,hasFixedHeaders=opts.showHeader&&opts.fixedHeaders===true&&opts.height!==null,hasVirtualization=opts.virtualization===true||opts.columnVirtualization===true||opts.rowVirtualization===true,lastColInPixels=this.grid._lastColPixelWidth!==undefined&&this.grid._lastColPixelWidth!==null,hasHorizontalScrollbar=this.grid._hscrollbar().length>0;this._isScrollbarOverLastCellsCache=this.grid._hasVerticalScrollbar&&hasFixedHeaders&&!hasVirtualization&&hasHorizontalScrollbar&&lastColInPixels}return this._isScrollbarOverLastCellsCache},_activate:function(element){var initiallyFocused,me=this;if(element.is("tr")){element.addClass(this.css.activeRow);initiallyFocused=element.filter(".initially-focused");if(initiallyFocused.length){initiallyFocused.focus();initiallyFocused.removeClass("initially-focused");return}}else{element.addClass(this.css.activeCell)}if(this.options.mode==="cell"&&$.ig.util.isIE&&element.is(":last-child")&&this._isScrollbarOverLastCells()){
this._resizeGridWidth(true);element.focus();if(this._timeoutResizeGrid){clearTimeout(this._timeoutResizeGrid);this._timeoutResizeGrid=null}this._timeoutResizeGrid=setTimeout(function(){me._resizeGridWidth(false)},100)}else{element.focus()}},_deactivate:function(){if(this.grid.hasFixedColumns()){if(this.options.mode==="row"){this.grid.fixedBodyContainer().find("tbody").find("tr.ui-iggrid-activerow").removeClass(this.css.activeRow)}else{this.grid.fixedBodyContainer().find("tbody").find("td.ui-iggrid-activecell").removeClass(this.css.activeCell)}}if(this.options.mode==="row"){this.grid.element.find("tbody").find("tr.ui-iggrid-activerow").removeClass(this.css.activeRow)}else{this.grid.element.find("tbody").find("td.ui-iggrid-activecell").removeClass(this.css.activeCell)}},_clearSelection:function(){this.grid.fixedBodyContainer().find("tbody").find("td.ui-iggrid-selectedcell").removeClass(this.css.selectedCell).attr("aria-selected",false);this.grid.fixedBodyContainer().find("tbody").find("tr[aria-selected]").attr("aria-selected",false);this.grid.element.children("tbody").find("td.ui-iggrid-selectedcell").removeClass(this.css.selectedCell).attr("aria-selected",false);this.grid.element.children("tbody").find("tr[aria-selected]").attr("aria-selected",false)},_createHandlers:function(){this._dataRenderingHandler=$.proxy(this._dataRendering,this);this._virtualRecordsRenderingHandler=$.proxy(this._virtualRecordsRendering,this);this._virtualRecordsRendererHandler=$.proxy(this._virtualRecordsRender,this);this._columnsCollectionModifiedHandler=$.proxy(this._columnsCollectionModified,this);this._mouseDownHandler=$.proxy(this._mouseDown,this);this._mouseMoveHandler=$.proxy(this._mouseMove,this);this._mouseUpHandler=$.proxy(this._mouseUp,this);this._pointerDownHandler=$.proxy(this._pointerDown,this);this._pointerMoveHandler=$.proxy(this._pointerMove,this);this._pointerUpHandler=$.proxy(this._pointerUp,this);this._selectStartHandler=$.proxy(this._selectStart,this);this._selectStartContainerHandler=$.proxy(this._selectStartContainer,this);this._releaseMouseHandler=$.proxy(this._releaseMouse,this);this._touchStartHandler=$.proxy(this._touchStart,this);this._touchEndHandler=$.proxy(this._touchEnd,this);this._touchMoveHandler=$.proxy(this._touchMove,this);this._keyDownHandler=$.proxy(this._keyDown,this);this._containerFocusHandler=$.proxy(this._containerFocus,this);this._focusInHandler=$.proxy(this._tbodyFocusIn,this);this._focusOutHandler=$.proxy(this._tbodyFocusOut,this);this._preventDefaultHandler=$.proxy(this._preventDefault,this)},_unregisterEvents:function(){var gOpts=this.grid.options,tbody=this.grid.element.find("tbody").add(this.grid.fixedBodyContainer().find("tbody")),hasVirtualization=gOpts.virtualization||gOpts.rowVirtualization||gOpts.columnVirtualization,scrollCont=hasVirtualization?this.grid._vdisplaycontainer():this.grid.scrollContainer();if(this._tbodyBinding){tbody.unbind(this._tbodyBinding)}$(document).unbind("mouseup."+this.grid.id()+"_selection");scrollCont.unbind("scroll",this._releaseMouseHandler);this.grid.container().unbind("selectstart",this._selectStartContainerHandler);this.grid.element.removeClass("ui-iggrid-canceltextselection");if(this.options.mode==="row"){this.grid.element.find("tbody td").unbind("mousedown",this._preventDefaultHandler)}},_registerEvents:function(){var gOpts=this.grid.options,tbody=this.grid.element.find("tbody").add(this.grid.fixedBodyContainer().find("tbody")),hasVirtualization=gOpts.virtualization||gOpts.rowVirtualization||gOpts.columnVirtualization,scrollCont=hasVirtualization?this.grid._vdisplaycontainer():this.grid.scrollContainer();this._tbodyBinding=this._tbodyBinding||this._generateTbodyBinding();tbody.unbind(this._tbodyBinding).bind(this._tbodyBinding);$(document).bind("mouseup."+this.grid.id()+"_selection",this._releaseMouseHandler);scrollCont.bind("scroll",this._releaseMouseHandler);scrollCont.bind("igscrollscrolling",this._releaseMouseHandler);this.grid.container().bind("selectstart",this._selectStartContainerHandler);if(this.options.multipleSelection===true){this.grid.element.addClass("ui-iggrid-canceltextselection")}if(this.options.mode==="row"){this.grid.element.find("tbody td").bind("mousedown",this._preventDefaultHandler)}},_generateTbodyBinding:function(){var binding={};binding.selectstart=this._selectStartHandler;binding.focusin=this._focusInHandler;binding.focusout=this._focusOutHandler;binding.keydown=this._keyDownHandler;if($.ig.util.isTouch){binding.touchstart=this._touchStartHandler;binding.touchend=this._touchEndHandler;binding.touchmove=this._touchMoveHandler}if(window.navigator.msPointerEnabled||window.navigator.pointerEnabled){binding.MSPointerDown=this._pointerDownHandler;binding.MSPointerMove=this._pointerMoveHandler;binding.MSPointerUp=this._pointerUpHandler;binding.pointerdown=this._pointerDownHandler;binding.pointermove=this._pointerMoveHandler;binding.pointerup=this._pointerUpHandler}else{binding.mousedown=this._mouseDownHandler;binding.mousemove=this._mouseMoveHandler;binding.mouseup=this._mouseUpHandler}return binding},_injectGrid:function(gridInstance,isRebind){var i;this.grid=gridInstance;for(i=0;i0){return ownSelection._getIndexForRow(element)}return ownSelection._getRecordByIdentifier(identifier).index},onlyOneSelected:function(){return Object.keys(this.selection).length===1},_markSelected:function(identifier,info){this.selection[identifier]=info||true},_markUnselected:function(identifier){delete this.selection[identifier]},_selectedRowObject:function(identifier){var rowInfo=this.selection[identifier];if($.type(rowInfo)!=="object"){rowInfo={};this.selection[identifier]=rowInfo}if(this.invalid){rowInfo.element=this.elementFromIdentifier(identifier);rowInfo.index=this.elementPosition(identifier,rowInfo.element)}else{rowInfo.element=rowInfo.element||this.elementFromIdentifier(identifier);rowInfo.index=rowInfo.index!==undefined&&rowInfo.index!==null?rowInfo.index:this.elementPosition(identifier,rowInfo.element)}return $.extend(true,{},rowInfo,{id:identifier})},_selectionMode:function(){return"Row"}});$.ig.SelectedCellsCollection=$.ig.SelectedCellsCollection||$.ig.SelectionCollection.extend({isSelected:function(identifier,forOwner){if(forOwner&&this.settings.owner!==forOwner){return false}return this.selection[identifier.id]!==undefined&&this.selection[identifier.id][identifier.columnKey]!==undefined},atLeastOneSelected:function(rowId,forOwner){if(forOwner&&this.settings.owner!==forOwner){return false}return Object.keys(this.selection[rowId]).length>0},isActive:function(identifier,forOwner){if(forOwner&&this.settings.owner!==forOwner){return false}return this.activeElement&&this.activeElement.id===identifier.id&&this.activeElement.columnKey===identifier.columnKey},selectedCells:function(){var cells=[],sid,rowKey,columnKey,id;for(rowKey in this.selection){if(this.selection.hasOwnProperty(rowKey)){for(columnKey in this.selection[rowKey]){if(this.selection[rowKey].hasOwnProperty(columnKey)){id=this.settings.owner._fixPKValue(rowKey);id=isNaN(id)?rowKey:id;sid={id:id,columnKey:columnKey};cells.push(this._selectedCellObject(sid))}}}}this.invalid=false;return cells},activeCell:function(){var cell,pos;if(this.activeElement){cell=this.elementFromIdentifier(this.activeElement);pos=this.elementPosition(this.activeElement,cell);return{row:cell.parent(),id:this.activeElement.id,columnKey:this.activeElement.columnKey,rowIndex:pos.x,index:pos.y,element:cell}}return null},elementFromIdentifier:function(identifier){return this.settings.owner.element.data("igGridSelection")._getCellByIdentifier(identifier)},elementPosition:function(identifier,element){var ownSelection=this.settings.owner.element.data("igGridSelection");if(element&&element.length>0){return{x:ownSelection._getIndexForRow(element.parent()),y:element.index()}}return{x:ownSelection._getRecordByIdentifier(identifier.id).index,y:ownSelection._getColIndexByKey(identifier.columnKey)}},onlyOneSelected:function(){var rKeys=Object.keys(this.selection);if(rKeys.length===1){return Object.keys(this.selection[rKeys[0]]).length===1}return false},_lockSelection:function(){var rowId,cellId;for(rowId in this.selection){if(this.selection.hasOwnProperty(rowId)){for(cellId in this.selection[rowId]){if(this.selection[rowId].hasOwnProperty(cellId)){if($.type(this.selection[rowId][cellId]==="object")){this.selection[rowId][cellId].locked=true}else{this.selection[rowId][cellId]={locked:true}}}}}}},_markSelected:function(identifier,info){this.selection[identifier.id]=this.selection[identifier.id]||{};this.selection[identifier.id][identifier.columnKey]=info||true},_markUnselected:function(identifier){if(!this.selection[identifier.id]){return}delete this.selection[identifier.id][identifier.columnKey]},_unlockSelected:function(identifier){var c;if(!this.selection[identifier.id]){return false}c=this.selection[identifier.id][identifier.columnKey];if($.type(c)==="object"){if(!c.locked){delete this.selection[identifier.id][identifier.columnKey];return true}return false}delete this.selection[identifier.id][identifier.columnKey];return true},_rangeUnlock:function(range){var i;for(i=0;i0){if(self.grid.options.fixedHeaders===true){self.grid.headersTable().parent().scrollLeft(scrLeft)}if(self.grid.options.fixedFooters===true){self.grid.footersTable().parent().scrollLeft(scrLeft)}$scrContainer=self.grid.scrollContainer();if(!$scrContainer.length){$scrContainer=self.grid._vdisplaycontainer()}$scrContainer.scrollLeft(scrLeft)}}};this._dragStartHandler=function(event){var id,noCancel=true;noCancel=self.grid._trigger("headercelldragcancel",event,{});if(noCancel){id=$(event.target).closest(".ui-iggrid").attr("id").replace("_container","");if(self.grid.element.attr("id")!==id){return}event.stopPropagation();event.preventDefault()}else{return true}return false};this._mouseOverHandler=function(event){var id,$target=$(event.currentTarget),cs,colKey;id=$(event.target).closest(".ui-iggrid").attr("id").replace("_container","");if(self.grid.element.attr("id")!==id){return}colKey=$target.closest("th").attr("id");if(colKey){colKey=colKey.replace(id+"_","");cs=self._getColumnSettingByKey(colKey);if(cs&&cs.allowSorting!==false){$target.addClass(self.css.sortableColumnHeaderHover)}}};this._mouseOutHandler=function(event){var id;id=$(event.target).closest(".ui-iggrid").attr("id").replace("_container","");if(self.grid.element.attr("id")!==id){return}$(event.currentTarget).removeClass(self.css.sortableColumnHeaderHover)};$("#"+this.element[0].id).delegate("thead th",{click:this._clickHandler,mouseover:this._mouseOverHandler,mouseout:this._mouseOutHandler});$("#"+this.element[0].id+" thead th").bind("dragstart",this._dragStartHandler);$("#"+this.element[0].id+"_headers thead th").bind("dragstart",this._dragStartHandler);$(document).delegate("#"+this.element[0].id+"_headers thead th",{click:this._clickHandler,mouseover:this._mouseOverHandler,mouseout:this._mouseOutHandler});this._keyDownHandler=function(event){self._handleSortKb(event)};this._focusHandler=function(event){self._handleFocusKb(event)};this._blurHandler=function(event){self._handleBlurKb(event)};$("#"+this.element[0].id).delegate("thead th",{keydown:this._keyDownHandler,focus:this._focusHandler,blur:this._blurHandler});$(document).delegate("#"+this.element[0].id+"_headers thead th",{keydown:this._keyDownHandler,focus:this._focusHandler,blur:this._blurHandler})},changeGlobalLanguage:function(){},changeGlobalRegional:function(){},_changeLocaleForModalDialog:function(){var $button,$modalDialog=this._getModalDialog();if($modalDialog.length){$modalDialog[this.options.dialogWidget]({locale:{buttonApplyText:this._getLocaleValue("modalDialogButtonApplyText"),buttonCancelText:this._getLocaleValue("modalDialogButtonCancelText"),modalDialogCaptionText:this._getLocaleValue("modalDialogCaptionText")}});$button=this._getDialogClearAllButton();if($button.length){$button.igButton("option","labelText",this._getLocaleValue("modalDialogResetButton"))}$.ui.igWidget.prototype.changeLocale.call(this,$modalDialog)}},_changeLocaleForFeatureChooser:function(){var fc=this.grid.element.data("igGridFeatureChooser");if(fc&&this.renderInFeatureChooser){fc._removeFeature("SortingAscending");fc._removeFeature("SortingDescending");fc._removeFeature("MultipleSorting");this._featureChooserInitialized=false;this._initFC()}},_changeLocaleForThs:function(){var self=this;this.grid.headersTable().find("th").each(function(){var $th=$(this),sortDir=$th.attr("aria-sort");if(sortDir){self._setHeaderAttributes($th,sortDir)}else{self._removeHeaderAttributes($th)}})},changeLocale:function(){this._changeLocaleForModalDialog();this._changeLocaleForFeatureChooser();this._changeLocaleForThs()},_registerWidget:$.noop,_unregisterWidget:$.noop,_setOption:function(key,value){var $modalDialog=this._getModalDialog();this._super(key,value);switch(key){case"type":throw new Error(this._getLocaleValue("optionChangeNotSupported").replace("{optionName}",key));case"caseSensitive":this.grid.dataSource.settings.sorting.caseSensitive=this.options.caseSensitive;break;case"modalDialogSortOnClick":$modalDialog.remove();this._renderMultipleSortingDialog();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;default:break}},_handleSortKb:function(event){if($(event.target).attr("id")===undefined||$(event.target).attr("id")===null){return}var $el=$(event.target),key=$el.attr("id").replace(this.grid.element.attr("id")+"_",""),id;id=$el.closest(".ui-iggrid").attr("id").replace("_container","");if(this.grid.element.attr("id")!==id){return}if(event.keyCode===$.ui.keyCode.ENTER||event.keyCode===$.ui.keyCode.SPACE){if(this._checkSortingAllowed(key)){if(event.shiftKey){this.unsortColumn(key,$el)}else{if(this.sortColumn(key,null,$el)){this._clearActiveHeader();$el.addClass(this.css.sortableColumnHeaderActive);this._currentActiveHeader=$el}}}event.stopPropagation();event.preventDefault()}},_handleFocusKb:function(event){if(this._resizing&&this._resizing._resizing){return}var $target=$(event.target),id=$target.closest(".ui-iggrid").attr("id").replace("_container",""),colId=$target.closest("th").attr("id"),colKey;if(!colId){return}colKey=colId.replace(this.grid.id()+"_","");if(this.grid.element.attr("id")!==id||$target.attr("data-fixing-indicator")!==undefined||!this._checkSortingAllowed(colKey)||!$target.is("th")){return}$target.addClass(this.css.sortableColumnHeaderFocus)},_handleBlurKb:function(event){var id=$(event.target).closest(".ui-iggrid").attr("id").replace("_container","");if(this.grid.element.attr("id")!==id){return}$(event.target).removeClass(this.css.sortableColumnHeaderFocus)},_handleSort:function(event){if(this._resizing&&this._resizing._resizing){this._resizing._resizing=false;return}var $currentTarget=$(event.currentTarget),$th=$currentTarget.closest("th"),key=$th.attr("id").replace(this.grid.element.attr("id")+"_",""),isShiftClicked=false;this._clearActiveHeader();isShiftClicked=event.shiftKey;if(isShiftClicked){this.unsortColumn(key,$th)}else{if(this.sortColumn(key,null,$currentTarget)){$currentTarget.addClass(this.css.sortableColumnHeaderActive);this._currentActiveHeader=$th}}event.stopPropagation();event.preventDefault()},_checkSortingAllowed:function(colKey){var expr,s=this._getColumnSettingByKey(colKey);if(!s||s.allowSorting===false){return false}expr=this._findExpressionByColKey(colKey);if(expr&&expr.isGroupBy){return false}return true},_initLoadingIndicator:function(){this._loadingIndicator=this.grid.container().length>0?this.grid.container().igLoading().data("igLoading").indicator():this.grid.element.igLoading().data("igLoading").indicator()},_getHeaderCellByIdentifier:function(identifier){var $headerCell,colKey;if($.type(identifier)==="number"){colKey=this.grid.options.columns[identifier].key}else{colKey=identifier}$headerCell=$("#"+this.grid.element[0].id+"_"+colKey);return $headerCell},_removeHeaderAttributes:function($header){$header.attr({title:this._getLocaleValue("unsortedColumnTooltip"),"data-localeid":"unsortedColumnTooltip"}).removeAttr("aria-sort")},_setHeaderAttributes:function($header,sortDir){if(!sortDir){return}$header.attr({title:sortDir.startsWith("asc")?this._getLocaleValue("sortedColumnTooltip").replace("${direction}",this._getLocaleValue("ascending")):this._getLocaleValue("sortedColumnTooltip").replace("${direction}",this._getLocaleValue("descending")),"aria-sort":sortDir,"data-localeid":"sortedColumnTooltip","data-localeattr":"title"})},sortColumn:function(index,direction,header){var colKey,expr,noCancel=true,s,i,newDir,apiCall=!header,sortingNewExprs,curNewExpr,compareFunc;this._activeSortedCol=null;if($.type(index)==="number"){colKey=this.grid.options.columns[index].key}else{colKey=index}header=header||$("#"+this.grid.element[0].id+"_"+colKey);this._curColKey=colKey;expr=this.grid.dataSource.settings.sorting.expressions;s=this._getColumnSettingByKey(colKey);if(apiCall){this._clearActiveHeader()}if(!s||!apiCall&&!this._checkSortingAllowed(colKey)){return}if(direction){newDir=direction}else{if(!s.currentSortDirection||!s.currentSortDirection.startsWith("asc")&&!s.currentSortDirection.startsWith("desc")){newDir=s.firstSortDirection===undefined?this.options.firstSortDirection:s.firstSortDirection}else{newDir=s.currentSortDirection&&s.currentSortDirection.indexOf("asc")!==-1?"descending":"ascending"}}compareFunc=null;if(s&&s.compareFunc){if($.type(s.compareFunc)==="function"){compareFunc=s.compareFunc}else if(typeof s.compareFunc==="string"&&window[s.compareFunc]&&typeof window[s.compareFunc]==="function"){compareFunc=window[s.compareFunc]}}curNewExpr={fieldName:colKey,isSorting:true,dir:newDir.startsWith("asc")?"asc":"desc",compareFunc:compareFunc,layout:this.grid.options.key||null};sortingNewExprs=this.grid._getSortingExpressionsManager().addSortingExpression(expr.slice(),curNewExpr,this);this._trigger("internalcolumnsorting",null,{owner:this});sortingNewExprs=this.grid._getSortingExpressionsManager().setFormattersForSortingExprs(sortingNewExprs);if(!apiCall){noCancel=this._trigger(this.events.columnSorting,null,{columnKey:colKey,direction:newDir,owner:this,newExpressions:sortingNewExprs})}this.grid._fireInternalEvent("_sortedColumnsChanging",sortingNewExprs);if(noCancel){s.currentSortDirection=curNewExpr.dir.startsWith("asc")?"ascending":"descending";this._loadingIndicator.show();this._setHeaderAttributes(header,s.currentSortDirection);if(this.options.mode==="single"){for(i=0;i0&&this.grid.dataSource.settings.sorting.defaultFields.length===0){this.grid.dataSource.dataBind()}else{this.grid._renderData()}}}},clearSorting:function(){var i,se=[],exprs=this.grid.dataSource.settings.sorting.expressions;for(i=0;i0&&this.grid.dataSource.settings.sorting.defaultFields.length===0){this.grid.dataSource.dataBind()}else{this.grid.dataSource.sort(this.grid.dataSource.settings.sorting.expressions);this.grid._renderData()}if(!apiCall){this._trigger(this.events.columnSorted,null,{columnKey:colKey,direction:s.currentSortDirection,owner:this,expressions:this.grid.dataSource.settings.sorting.expressions})}}this._curSortDir=s.currentSortDirection}},_excludeExpr:function(key){if(this.options.persist&&!this._couldPreserveData()){return}var expr=this.grid.dataSource.settings.sorting.expressions,i;for(i=0;i").addClass(this.css.sortIndicator)}indicatorContainer=$th.find(".ui-iggrid-indicatorcontainer");if(indicatorContainer.length===0){indicatorContainer=$("
").appendTo($th).addClass("ui-iggrid-indicatorcontainer")}indicatorContainer.append(span);currentColumnSetting=this._getColumnSettingByKey(columnKey);if(this.options.applySortedColumnCss!==false&&ignoreActiveSelection!==true){if(hasFixedColumns&&this.grid._isFixedElement($th)){$tbody=this.grid.fixedTable().children("tbody")}else{$tbody=this.grid.element.children("tbody")}$cells=this.grid._getCellsByColKey($tbody.find(">tr:not([data-grouprow],[data-summaryrow])"),columnKey)}this._activeSortedCol=null;if(currentColumnSetting&¤tColumnSetting.currentSortDirection){if(currentColumnSetting.currentSortDirection.indexOf("asc")!==-1){span.removeClass(this.css.sortIndicatorDescending).addClass(this.css.sortIndicatorAscending);$th.removeClass(this.css.descendingColumnHeader).addClass(this.css.ascendingColumnHeader);this._setHeaderAttributes($th,"ascending");if(this.options.mode==="single"){$th.siblings("th").removeAttr("aria-sort")}if($cells){this._activeSortedCol={key:currentColumnSetting.columnKey,asc:true};$cells.removeClass(this.css.descendingColumn).addClass(this.css.ascendingColumn)}}else{span.removeClass(this.css.sortIndicatorAscending).addClass(this.css.sortIndicatorDescending);$th.removeClass(this.css.ascendingColumnHeader).addClass(this.css.descendingColumnHeader);this._setHeaderAttributes($th,"descending");if(this.options.mode==="single"){$th.siblings("th").removeAttr("aria-sort")}if($cells){this._activeSortedCol={key:currentColumnSetting.columnKey,asc:false};$cells.removeClass(this.css.ascendingColumn).addClass(this.css.descendingColumn)}}}else{this._removeHeaderAttributes($th);this._clearHeaderCellSortStyles($th)}if(prevHeight!==null&&prevHeight!==this.grid.headersTable().outerHeight()){this.grid._initializeHeights()}},_clearSortStateByColKey:function(key){var s=this._getColumnSettingByKey(key);this._clearSortStyles(key);if(!s){return}s.currentSortDirection=undefined},_clearSortStyles:function(key){if(key===undefined||key===null){return}var hk=this.grid.id()+"_"+key,$cells,i,$tbl,$th,cs;for(i=0;i
0){for(i=0;i0){for(i=0;i0){for(k=0;k-1:false,method:$.proxy(this._sortAscFromFeatureChooser,this),updateOnClickAll:false,groupName:"toggle",groupOrder:1,order:0,type:"toggle"});featureChooserInstance._renderInFeatureChooser(col.key,{name:"SortingDescending",text:this._getLocaleValue("featureChooserSortDesc"),textHide:this._getLocaleValue("featureChooserSortDesc"),iconClass:this.css.fcSortIndicatorDescending,iconClassOff:this.css.fcSortIndicatorDescending,isSelected:initialSorting&&typeof initialSorting==="string"?initialSorting.toLowerCase().indexOf("desc")>-1:false,method:$.proxy(this._sortDescFromFeatureChooser,this),updateOnClickAll:false,groupName:"toggle",groupOrder:1,order:0,type:"toggle"})}}}}if(this.options.mode!=="single"){for(i=0;i").appendTo(ui.th).addClass(this.css.sortIndicator);if(cs.currentSortDirection!==undefined){expr=this._findExpressionByColKey(cs.columnKey);if(expr&&!expr.isGroupBy){this._applySortStyles(cs.columnKey)}}}}this._initFC()},_featureChooserMenuToggling:function(event,args){var i,expr,isAsc,hasSorting=false,columnKey=args.columnKey,featureChooserInstance=this.grid.element.data("igGridFeatureChooser"),exprs=this.grid.dataSource.settings.sorting.expressions,exprsLength=exprs.length;if(!args.isVisible){for(i=0;i-1){isAsc=true}featureChooserInstance._setSelectedState("SortingDescending",columnKey,!isAsc,false);featureChooserInstance._setSelectedState("SortingAscending",columnKey,isAsc,false)}}if(!hasSorting){featureChooserInstance._setSelectedState("SortingDescending",columnKey,false,false);featureChooserInstance._setSelectedState("SortingAscending",columnKey,false,false)}}},_sortAscFromFeatureChooser:function(event,columnKey,isSelected){var featureChooserInstance=this.grid.element.data("igGridFeatureChooser"),gridId=this.grid.id(),$th=$("#"+gridId+"_"+columnKey);if(!featureChooserInstance){return}featureChooserInstance._setSelectedState("SortingDescending",columnKey,false,false);if(isSelected){this.sortColumn(columnKey,"asc",$th)}else{this.unsortColumn(columnKey,$th)}},_sortDescFromFeatureChooser:function(event,columnKey,isSelected){var featureChooserInstance=this.grid.element.data("igGridFeatureChooser"),gridId=this.grid.id(),$th=$("#"+gridId+"_"+columnKey);featureChooserInstance._setSelectedState("SortingAscending",columnKey,false,false);if(!featureChooserInstance){return}if(isSelected){this.sortColumn(columnKey,"desc",$th)}else{this.unsortColumn(columnKey,$th)}},_fixedColumnsChanged:function(args){var i,grid=this.grid,stngs=this.options.columnSettings,start=args.start,len=args.length,at=args.at,fixedTable=grid.fixedHeadersTable(),isAttachedSortingHandlers=fixedTable.data("attachedSortingHandlers");
if(isAttachedSortingHandlers!==true){fixedTable.data("attachedSortingHandlers",true);fixedTable.delegate("thead th",{click:this._clickHandler,mouseover:this._mouseOverHandler,mouseout:this._mouseOutHandler})}grid._rearrangeArray(stngs,start,len,at);for(i=0;i0){for(i=0;ii){$.ig.removeFromArray(exprs,i)}if(defaultExprs.length>i){$.ig.removeFromArray(defaultExprs,i)}}}},_clearUi:function(){var i,header,csd,isMCH=this.grid._isMultiColumnGrid,persist=this.options.persist;for(i=0;this._headers&&i tr").first().find("th").not("[ data-skip=true ]"),visibleColumns=this.grid._visibleColumns(),key;for(i=0;i"+text+"").appendTo(header).addClass("ui-iggrid-headertext");a.remove()}fc=this.grid.element.data("igGridFeatureChooser");if(fc&&this.renderInFeatureChooser){fc._removeFeature("SortingAscending");fc._removeFeature("SortingDescending");fc._removeFeature("MultipleSorting")}this._headers=null;if(this._loadingIndicator){delete this._loadingIndicator}modalDialog[this.options.dialogWidget]("getCaptionButtonContainer");modalDialog.remove();this._superApply(arguments);return this},_renderMultipleSortingDialog:function(){var $buttonOK,containment,self=this,o=this.options,modalDialogId=this.grid.element[0].id+"_multiplesorting_modalDialog",$captionButtonContainer,modalDialog;if(this.options.sortingDialogContainment==="owner"){containment=this.grid.container()}else{containment="window"}$("#"+modalDialogId).remove();modalDialog=$("").appendTo(this.grid._rootContainer()).attr("id",modalDialogId);modalDialog[this.options.dialogWidget]({containment:containment,locale:{buttonApplyText:this._getLocaleValue("modalDialogButtonApplyText"),buttonCancelText:this._getLocaleValue("modalDialogButtonCancelText"),modalDialogCaptionText:this._getLocaleValue("modalDialogCaptionText")},renderFooterButtons:!o.modalDialogSortOnClick,modalDialogWidth:o.modalDialogWidth,modalDialogHeight:o.modalDialogHeight,animationDuration:o.modalDialogAnimationDuration,gridContainer:this.grid.container(),modalDialogOpening:$.proxy(this._onDialogOpening,this),modalDialogMoving:$.proxy(this._onDialogMoving,this),modalDialogClosing:$.proxy(this._onDialogClosing,this),modalDialogClosed:$.proxy(this._onDialogClosed,this)});if(o.modalDialogSortOnClick){$captionButtonContainer=modalDialog[this.options.dialogWidget]("getCaptionButtonContainer");$("").bind("click.hiding",function(event){modalDialog[self.options.dialogWidget]("closeModalDialog",true);event.preventDefault();event.stopPropagation();return false}).addClass("ui-icon ui-icon-closethick").appendTo($("").appendTo($captionButtonContainer).attr("title",this._getLocaleValue("columnChooserCloseButtonTooltip")).attr("href","#").attr("role","button").addClass("ui-dialog-titlebar-close ui-corner-all"))}else{$captionButtonContainer=modalDialog[this.options.dialogWidget]("getCaptionButtonContainer");$buttonOK=$("#"+this.grid.element[0].id+"_multiplesorting_modalDialog_footer_buttonok");$buttonOK.bind("igbuttonclick",function(e){self._multiplesortingDialogButtonOKClick(e);e.preventDefault()})}},openMultipleSortingDialog:function(){var modalDialog=$("#"+this.grid.element[0].id+"_multiplesorting_modalDialog");modalDialog[this.options.dialogWidget]("openModalDialog")},closeMultipleSortingDialog:function(){var modalDialog=$("#"+this.grid.element[0].id+"_multiplesorting_modalDialog");modalDialog[this.options.dialogWidget]("closeModalDialog")},_onDialogOpening:function(e,args){var noCancel=this._trigger(this.events.modalDialogOpening,e,{modalDialogElement:args.modalDialog,owner:this});if(noCancel){this._tempExpr=this.grid.dataSource.settings.sorting.expressions.slice(0);this.renderMultipleSortingDialogContent(true);this._trigger(this.events.modalDialogOpened,e,{modalDialogElement:args.modalDialog,owner:this})}return noCancel},_onDialogMoving:function(e,ui){this._trigger(this.events.modalDialogMoving,e,{modalDialogElement:e.target,owner:this,originalPosition:ui.originalPosition,position:ui.position})},_onDialogClosing:function(e,args){return this._trigger(this.events.modalDialogClosing,e,{modalDialogElement:args.modalDialog,owner:this})},_onDialogClosed:function(e,args){this._trigger(this.events.modalDialogClosed,e,{modalDialogElement:args.modalDialog,owner:this})},renderMultipleSortingDialogContent:function(isToCallEvents){var $content,$sortedColumns,$unsortedColumns,i,noCancel=true,self=this,tempExpr,grid=this.grid,columns=grid.options.columns,css=this.css,modalDialog=$("#"+grid.element[0].id+"_multiplesorting_modalDialog");if(isToCallEvents){noCancel=this._trigger(this.events.modalDialogContentsRendering,null,{modalDialogElement:modalDialog,owner:this})}if(noCancel){this.removeDialogClearButton();$content=modalDialog[this.options.dialogWidget]("getContent");$content.empty();$sortedColumns=$("").attr("id",grid.element[0].id+"_multiplesorting_modalDialog_sortedcolumns").addClass(css.dialogSortedColumns).appendTo($content);$unsortedColumns=$("").attr("id",grid.element[0].id+"_multiplesorting_modalDialog_unsortedcolumns").addClass(css.dialogUnsortedColumns).appendTo($content);$("").addClass(css.dialogSortedColumnsList).appendTo($sortedColumns);$("").addClass(css.dialogUnsortedColumnsList).appendTo($unsortedColumns);tempExpr=self._tempExpr||[];tempExpr.forEach(function(se){var key=se.fieldName,cs=self._getColumnSettingByKey(key);if(!cs||self._checkSortingAllowed(key)===false){return}self._renderDialogSortedColumn(grid.columnByKey(key),cs.columnIndex,se.dir)});$.each(columns,function(columnIndex,column){var cs,direction,key=column.key;cs=self._getColumnSettingByKey(key);if(!cs||self._checkSortingAllowed(key)===false){return true}for(i=0;i").attr("id",self.grid.element[0].id+"_"+key+"_multiplesorting_sorted_li").addClass(css.dialogSortedColumnsItem);$li.appendTo($ul);if(columnIndex!==null&&columnIndex!==undefined){$li.attr("li-order",columnIndex)}liHTML=""+"\t"+""+""+column.headerText+""+"";$li.bind({click:function(e){self._curColKey=key;self._dialogButtonAscDescClick(key);if(self._isToRenderButtonClearAll()){self._renderDialogButtonClearAll()}else{self.removeDialogClearButton()}e.preventDefault();e.stopPropagation()}});$li.html(liHTML);$buttonUnsort=$("#"+buttonUnsortId);if(direction!==undefined){if(direction.indexOf("asc")!==-1){self._setDialogButtonAscDesc(true,key)}else{self._setDialogButtonAscDesc(false,key)}}else{self._setDialogButtonAscDesc(true,key)}$buttonUnsort.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,gridId=self.grid.element[0].id,modalDialog=$("#"+gridId+"_multiplesorting_modalDialog");noCancel=self._trigger(self.events.modalDialogButtonUnsortClick,e,{modalDialogElement:modalDialog,owner:self,columnKey:key});if(noCancel){$li.remove();if(o.modalDialogSortOnClick===true){self.unsortColumn(key,$("#"+gridId+"_"+key))}else{self._removeExprByKey(key,self._tempExpr)}self._renderDialogUnsortedColumn(column,columnIndex,direction);if(self._isToRenderButtonClearAll()){self._renderDialogButtonClearAll()}else{self.removeDialogClearButton()}}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(colKey){var o=this.options,noCancel,modalDialog=$("#"+this.grid.element[0].id+"_multiplesorting_modalDialog"),$buttonAscDesc=$("#"+this.grid.element[0].id+"_"+colKey+"_multiplesorting_modalDialog_sortedcolumns_buttonascdesc"),isAsc=$buttonAscDesc.data("isAsc");noCancel=this._trigger(this.events.modalDialogSortingChanged,null,{modalDialogElement:modalDialog,owner:this,columnKey:colKey,isAsc:!isAsc});if(noCancel){this._curColKey=colKey;if(this._isToRenderButtonClearAll()){this._renderDialogButtonClearAll()}else{this.removeDialogClearButton()}if(isAsc===true){if(o.modalDialogSortOnClick===true){this.sortColumn(colKey,"descending",this._getHeaderCellByIdentifier(colKey))}else{this._sortTempExprs(colKey,"desc")}this._setDialogButtonAscDesc(false,colKey)}else{if(o.modalDialogSortOnClick===true){this.sortColumn(colKey,"ascending",this._getHeaderCellByIdentifier(colKey))}else{this._sortTempExprs(colKey,"asc")}this._setDialogButtonAscDesc(true,colKey)}}},_setDialogButtonAscDesc:function(isAsc,colKey){var css=this.css,buttonAscDescId=this.grid.element[0].id+"_"+colKey+"_multiplesorting_modalDialog_sortedcolumns_buttonascdesc",$buttonAscDesc=$("#"+buttonAscDescId),$spanIcon=$buttonAscDesc.find("span:eq(0)");$buttonAscDesc.data("isAsc",isAsc);if(isAsc===true){$buttonAscDesc.attr({title:this._getLocaleValue("modalDialogCaptionButtonDesc"),"data-localeid":"modalDialogCaptionButtonDesc","data-localeattr":"title"}).removeClass(css.dialogButtonDesc).addClass(css.dialogButtonAsc);$spanIcon.removeClass(css.dialogButtonDescIcon).addClass(css.dialogButtonAscIcon)}else{$buttonAscDesc.attr({title:this._getLocaleValue("modalDialogCaptionButtonAsc"),"data-localeid":"modalDialogCaptionButtonAsc","data-localeattr":"title"}).removeClass(css.dialogButtonAsc).addClass(css.dialogButtonDesc);$spanIcon.removeClass(css.dialogButtonAscIcon).addClass(css.dialogButtonDescIcon)}},_removeExprByKey:function(colKey,exprs){var i,len=exprs.length;for(i=0;i").attr("id",self.grid.element[0].id+"_"+key+"_multiplesorting_unsorted_li").addClass(css.dialogUnsortedColumnsItem).append(" "+column.headerText+"");this._insertColumnModalDialog($ul,$li,columnIndex);if(columnIndex!==null&&columnIndex!==undefined){$li.attr("li-order",columnIndex)}$a=$li.find("a:first");$a.addClass(css.modalDialogSortByColumn);$a.attr({"data-localeid":"modalDialogSortByButtonText"}).html(this._getLocaleValue("modalDialogSortByButtonText"));$li.bind({keydown:function(e){if(event.keyCode===$.ui.keyCode.ENTER||event.keyCode===$.ui.keyCode.SPACE){$li.click();e.preventDefault();e.stopPropagation()}},click:function(e){var noCancel,modalDialog=$("#"+self.grid.element[0].id+"_multiplesorting_modalDialog");noCancel=self._trigger(self.events.modalDialogSortClick,e,{modalDialogElement:modalDialog,owner:self,columnKey:key});if(noCancel){$li.remove();self._renderDialogSortedColumn(column,columnIndex,direction);self._sortTempExprs(column.key,direction);if(o.modalDialogSortOnClick){self.sortColumn(key,null,self._getHeaderCellByIdentifier(key))}else{if(self._isToRenderButtonClearAll()){self._renderDialogButtonClearAll()}else{self.removeDialogClearButton()}}}e.preventDefault();e.stopPropagation()}});return $li},_isToRenderButtonClearAll:function(){var i,j,cs,columnKey,expr=this._tempExpr;for(i=0;i").attr("id",resetButtonId).appendTo($captionButtonContainer);$resetButton.igButton({labelText:this._getLocaleValue("modalDialogResetButton"),click:$.proxy(this._onDialogButtonClearAllClick,this)})}},_multiplesortingDialogButtonOKClick:function(e){var noCancel,exprs=this.grid._getSortingExpressionsManager().setFormattersForSortingExprs(this._tempExpr),modalDialog=$("#"+this.grid.element[0].id+"_multiplesorting_modalDialog");noCancel=this._trigger(this.events.modalDialogButtonApplyClick,e,{modalDialogElement:modalDialog,owner:this,columnsToSort:this._tempExpr});if(noCancel){this.sortMultiple(exprs);modalDialog[this.options.dialogWidget]("closeModalDialog")}},_insertColumnModalDialog:function($ul,$li,pos){var i,$currLi,currPos,listItems=$ul.find("li"),listItemsLength=listItems.length;if(listItemsLength===0||pos===null||pos===undefined){$li.appendTo($ul);return}for(i=0;i=pos){$li.insertBefore($currLi);break}}if(i===listItemsLength){$li.appendTo($ul)}},_getColumnSettingByKey:function(key){var i,colSettings=this.options.columnSettings,len=colSettings.length;for(i=0;i-1){$.ig.removeFromArray(se,0,indToRemove)}for(i=0;i0){for(i=0;ilastCustomSummaryOperandIndex){lastCustomSummaryOperandIndex=this._customInitMethods[k].index}}if(this._customInitMethods.length===k){lastCustomSummaryOperandIndex++;column.summaryOperands[i].type="custom"+lastCustomSummaryOperandIndex;this._customInitMethods.push({summaryCalculator:column.summaryOperands[i].summaryCalculator,type:"custom"+lastCustomSummaryOperandIndex,index:lastCustomSummaryOperandIndex})}}methods.push(column.summaryOperands[i])}}}else{for(i=0;i0&&this._fcData[columnKey]!==true){this._renderHeaderCellButton($colCell,columnKey)}}else{this.grid._rootContainer().find("#"+this._id("summaries","header_column_icon",columnKey)).remove()}}}break;case"disabled":if(o.disabled!==value){o.disabled=value;if(value===true){this._clearAllRows()}else{this.calculateSummaries()}}break;case"type":if(o.type!==value){o.type=value;this._setDataSourceColumnSettingsOptions()}break;case"summaryExprUrlKey":if(o.summaryExprUrlKey!==value){o.summaryExprUrlKey=value;this._setDataSourceColumnSettingsOptions()}break;case"dropDownHeight":if(o.dropDownHeight!==value){o.dropDownHeight=value;columns=this.grid.options.columns;columnsLength=columns.length;for(i=0;i0&&this._fcData[columnKey]!==true&&this.options.showSummariesButton!==false){this._renderHeaderCellButton($colCell,columnKey)}}},_columnMap:function(){var o=this.options,cs=this.newColumnSettings,i,csLength=cs.length,elem,result=[];if(o.showSummariesButton===false){return false}for(i=0;i tr:first > :last-child").css(grid._padding));if(padding){grid._increaseLastCellVScrollbarPadding(grid.element,"tfoot","td",padding)}}if(this._isVirtualization()&&grid.options.virtualizationMode==="fixed"){grid._resetVirtualDom();grid._renderVirtualRecordsFixed()}}else{if(this._isVirtualization()){this.grid._synchronizeHScroll()}}}},_updatingApplied:function(){if(this.grid.options.autoCommit&&this._isRenderedSummariesRows){this.calculateSummaries()}},_rowDeleted:function(){this._updatingApplied()},_rowAdded:function(){this._updatingApplied()},_internalRowUpdated:function(){this._updatingApplied()},_internalCellUpdated:function(){this._updatingApplied()},isSummariesRowsHidden:function(){return this._isSummariesRowsHidden},calculateSummaries:function(){var h=this.grid.footersTable().outerHeight();this._trigger(this.events.rowsInitialize,null,{});this._calculateInternalSummaries();if(this.options.showDropDownButton===true){this._renderFooterIcons()}this._adjustHeights(h)},_adjustHeights:function(h){var grid=this.grid,gridHeight=grid.options.height;if(gridHeight===null||gridHeight===undefined){return}grid._fireInternalEvent("_summariesHeightsAdjusting");if(grid.hasFixedColumns()){this._syncFixedUnfixedRowHeights()}if(!h||h!==this.grid.footersTable().outerHeight()){grid._initializeHeights();if(this._isVirtualization()){var svst=this.grid._persistVirtualScrollTop;this.grid._persistVirtualScrollTop=true;this.grid._saveFirstVisibleTRIndex();grid._resetVirtualDom();grid._renderVirtualRecords();this.grid._persistVirtualScrollTop=svst}}if(grid.hasVerticalScrollbar()!==grid._hasVerticalScrollbar){grid._adjustLastColumnWidth(false)}},_removeFooterRows:function(){var i,sr=this._summariesRows,hasFixedColumns=this.grid.hasFixedColumns(),srLength=sr.length;for(i=0;i1&&this._analyzeAutoCompactRenderingMode()===true){for(i=0;iactiveMethods.length){for(i=0;imax){max=newMax}}summariesRowsLength=this._summariesRows.length;if(max>summariesRowsLength){return}for(i=0;i=9){this._getColumnFixingInstance()._syncTableHeights()}}else if(activeMethods.length>unactiveMethodsLength){this._initCompactModeSummariesRows()}this._renderFooterColumnInfo(columnKey,this._data[columnKey]);if(this._summariesRows.length===0){this._insertSummariesRows(this.defaultSummaryMethods[0].type.toLowerCase(),this.defaultSummaryMethods[0].order);this._renderFooterIcons()}this._adjustHeights()}if(isToRerender&&(compactRenderingMode===false||compactRenderingMode==="auto"&&this._analyzeAutoCompactRenderingMode()===false)){for(i=0;i1){this._removeRowsDataByType(methodNameToRemove);this.grid._rootContainer().find("#"+this._id("summaries","footer_row",methodNameToRemove)).remove();if(hasFixedColumns){this.grid._rootContainer().find("#"+this._id("summaries","footer_row",methodNameToRemove,"fixed")).remove()}}}if(this._summariesRows.length>=1&&isToRemoveFirstRow===true){for(i=0;i0&&this.grid._rootContainer().find("#"+this._id("summaries","footer_row_button_dd",this._summariesRows[0].type,columnKey)).length===0){this._renderFooterIcons()}this._adjustHeights()}},_analyzeAutoCompactRenderingMode:function(){var i,j,methods,cs,methodsLength,activeMethodsCount,columnSettingsLength=this.columnSettings.length;for(j=0;j1){return false}}}return true},_removeRowsDataByType:function(methodNameToRemove){if(methodNameToRemove===undefined||methodNameToRemove===null){return}var hasFixedColumns=this.grid.hasFixedColumns(),self=this;this._summariesRows=$.grep(this._summariesRows,function(n){if(n.type===methodNameToRemove){$(n).remove();if(hasFixedColumns){self.grid.container().find("#"+n.id+"_fixed").remove()}}return n.type!==methodNameToRemove})},_syncFixedUnfixedRowHeights:function(){var $tfoot=this.grid.footersTable().find("tfoot"),$fixedTFoot=this.grid.fixedFootersTable().find("tfoot"),summariesRows=$tfoot.find("tr[ data-role ]"),fixedSummariesRows=$fixedTFoot.find("tr[ data-role ]"),$fixedRow;$.each(summariesRows,function(index,r){var h,fixedRowHeight,rowHeight,$row=$(r);$fixedRow=fixedSummariesRows.eq(index);if($fixedRow.length===0){return true}fixedRowHeight=$fixedRow.height();rowHeight=$row.height();if(fixedRowHeight>rowHeight){h=fixedRowHeight}else{h=rowHeight}$row.height(h);$fixedRow.height(h)})},_clearFooterIcons:function(){var i,currentRow=this._currentRowShownIcons,columns,columnsLength;if(currentRow===null||currentRow===undefined){return}columns=this.grid.options.columns;columnsLength=columns.length;for(i=0;i").appendTo(this.grid._rootContainer().find("#"+this._id("summaries","footer_row_icon_container",methodName,columnKey))).addClass(self.css.footerButtonIcon);$button.wrap("");$button.data("columnKey",columnKey);$td=$button.closest("td");$td.data("columnKey",columnKey);$td.unbind(".summaries");$td.bind({"mousedown.summaries":function(e){self.toggleDropDown(columnKey,e);e.stopPropagation()}});$button.parent().bind({mousedown:$.proxy(self._onMouseDownFooterIcon,self),click:$.proxy(self._onClickFooterIcon,self),mouseover:$.proxy(self._onMouseOverFooterIcon,self),mouseout:$.proxy(self._onMouseOutFooterIcon,self),focus:$.proxy(self._onMouseOverFooterIcon,self),blur:$.proxy(self._onMouseOutFooterIcon,self),keydown:function(event){if(event.keyCode===$.ui.keyCode.ENTER||event.keyCode===$.ui.keyCode.SPACE){event.stopPropagation();event.preventDefault();self.toggleDropDown(null,event)}}})},_onMouseOverFooterIcon:function(e){var $button=$(e.target);if($button.closest("div").hasClass(this.css.footerButtonIconActive)===false){$button.closest("div").addClass(this.css.footerButtonIconHover)}},_onMouseOutFooterIcon:function(e){var $button=$(e.target);if($button.closest("div").hasClass(this.css.footerButtonIconActive)===false){$button.closest("div").removeClass(this.css.footerButtonIconHover)}},_onClickFooterIcon:function(e){e.preventDefault()},_onMouseDownFooterIcon:function(event){this.toggleDropDown(null,event)},_isFirstRowEmpty:function(){var i,res=true,columnKey,sr=this._summariesRows,data=null,row,gridColumns=this.grid.options.columns,gridColumnsLength=gridColumns.length;if(sr.length===0){return false}row=sr[0];for(i=0;ispan")}else{$td=$(event.target).closest("td");columnKey=$td.data("columnKey");$target=$td.find("a>span");if(!$target.length){return}}if(columnKey===null||columnKey===undefined){$target=$target.find("span");columnKey=$target.data("columnKey")}$dialog=this.grid._rootContainer().find("#"+this._id("summaries","methods_dialog",columnKey));top=$.ig.util.offset($target).top;left=$.ig.util.offset($target).left;self=this;isVisible=$dialog.is(":visible")===true;if($dialog.length===0||$dialog.data("isAnimating")===true){return}top-=$target.height()-2;if($target.is("span")===true){$dialog.data("buttonId",$target.parent().attr("id"))}if(!isVisible){rOffset=$.ig.util.getRelativeOffset($dialog);$dialog.css({top:top-$dialog.height()-rOffset.top,left:left-rOffset.left})}if(self._activeDialog!==null&&self._activeDialog!==undefined&&$dialog!==self._activeDialog&&columnKey!==self._activeDialog.data("columnKey")){self.showHideDialog(self._activeDialog)}if(isVisible===true){self._currentOpenedColumnKey=null}else{self._currentOpenedColumnKey=columnKey}self.showHideDialog($dialog)},showHideDialog:function($dialog){if($dialog===null||$dialog===undefined){return}var self=this,e=this.events,$button=this.grid._rootContainer().find("#"+$dialog.data("buttonId")),columnKey=$dialog.data("columnKey"),animationDuration=self.options.dropDownDialogAnimationDuration;if($dialog.data("isAnimating")===true&&self._activeDialog===$dialog){return}if($dialog.is(":visible")===true){if(this._trigger(e.dropDownClosing,null,{columnKey:columnKey,owner:this})===false){return}if($button!==null&&$button!==undefined){$button.closest("div").removeClass(self.css.footerButtonIconActive)}}else{if(this._trigger(e.dropDownOpening,null,{columnKey:columnKey,owner:this})===false){return}$dialog.css("min-width",self._getMinWidthOfDropDown($dialog));if($button!==null&&$button!==undefined){$button.closest("div").removeClass(self.css.footerButtonIconHover);$button.closest("div").addClass(self.css.footerButtonIconActive);this._rollbackCheckboxState(columnKey)}}if(animationDuration<=0){animationDuration=1}$dialog.data("isAnimating",true);$dialog.toggle("slide",{duration:animationDuration,direction:"down"},function(){$dialog.data("isAnimating",false);if($dialog.is(":visible")===true){$dialog.focus();self.grid._focusedElement=$dialog;self._activeDialog=$dialog;self._trigger(e.dropDownOpened,null,{columnKey:columnKey,owner:this})}else{self._trigger(e.dropDownClosed,null,{columnKey:columnKey,owner:this});self.grid._focusedElement=null;if(self.options.type==="remote"&&self.options.calculateRenderMode==="onselect"&&self.isToCalculateInRemoteMode===true){self.isToCalculateInRemoteMode=false;self._setDataSourceColumnSettingsOptions();self.grid.dataSource.dataBind()}if(self._activeDialog!==null&&self._activeDialog!==undefined&&self._activeDialog.data("columnKey")===columnKey){self._activeDialog=null}}})},_getMinWidthOfDropDown:function($dropDown){if(!$dropDown.length){return}var s=$dropDown.attr("style"),w;$dropDown.css({position:"absolute",display:"block",left:0,top:0,visibility:"hidden","min-width":""});w=$dropDown[0].getBoundingClientRect().width;$dropDown.attr("style",s);return Math.ceil(w)},_closeDropDown:function(){var $dialog=this._activeDialog;this.showHideDialog($dialog)},_setDataSourceColumnSettingsOptions:function(){var o=this.options;this.grid.dataSource.settings.summaries.columnSettings=this.newColumnSettings;this.grid.dataSource.settings.summaries.type=o.type;this.grid.dataSource.settings.summaries.summaryExecution=o.summaryExecution;this.grid.dataSource.settings.summaries.summaryExprUrlKey=o.summaryExprUrlKey;this.grid.dataSource.settings.summaries.summariesResponseKey=o.summariesResponseKey;if(this.grid.dataSource.type&&this.grid.dataSource.type()==="remoteUrl"&&this.grid._dataOptions&&$.type(this.grid._dataOptions.dataSource)==="string"){this.grid.dataSource.settings.dataSource=this.grid._dataOptions.dataSource}},_getColumnSettingByKey:function(columnKey){var i,len=this.columnSettings.length;if(columnKey===null||columnKey===undefined){return null}for(i=0;i").appendTo(columnCell);summaryHeaderIconContainer.addClass("ui-iggrid-indicatorcontainer")}this.grid._rootContainer().find("#"+buttonId).remove();$button=$("
").attr({href:"#",id:buttonId,tabindex:this.grid.options.tabIndex,title:this._getLocaleValue("summariesHeaderButtonTooltip"),"data-localeid":"summariesHeaderButtonTooltip","data-localeattr":"title"});$divHeaderButtonContainer=summaryHeaderIconContainer.find(".ui-iggrid-summaries-headerbuttoncontainer");if($divHeaderButtonContainer.length===0){$divHeaderButtonContainer=$("
").addClass(css.headerButtonContainer).appendTo(summaryHeaderIconContainer)}$button.appendTo($divHeaderButtonContainer);$("
").addClass(css.headerButtonIcon).appendTo($button);if($.ig.util.isIE7===true){$button.parent().addClass(this.css.baseClassIE7)}$button.hover(function(){$(this).parent().addClass(css.headerButtonIconHover)},function(){$(this).parent().removeClass(css.headerButtonIconHover)});$button.bind({click:function(event){event.preventDefault();event.stopPropagation();self._internalToggleSummariesRow(null,event)}})},_togglefromfc:function(event,columnKey,isSelected){this._internalToggleSummariesRow(isSelected,event)},_internalToggleSummariesRow:function(isToShow,event){if(isToShow===null||isToShow===undefined){isToShow=!this._isRenderedSummariesRows}if(this._trigger(this.events.summariesToggling,event,{isToShow:isToShow,owner:this})===false){return}this.toggleSummariesRows(isToShow,true);this._trigger(this.events.summariesToggled,event,{isShown:isToShow,owner:this})},toggleSummariesRows:function(isToShow,isInternalCall){var fc,cs,csLength,i,$hScroller,hScrollerLeft,grid=this.grid;if(isToShow===true){$hScroller=this.grid._rootContainer().find("#"+grid.id()+"_horizontalScrollContainer");if($hScroller.length>0&&(grid.options.columnVirtualization||grid._isColumnVirtualizationEnabled())){hScrollerLeft=$hScroller.scrollLeft();$hScroller.scrollLeft(0)}this.calculateSummaries();if(hScrollerLeft){setTimeout(function(){$hScroller.scrollLeft(hScrollerLeft)},0)}grid._synchronizeHScroll();this._isSummariesRowsHidden=false;if(this._summariesRows.length===0){cs=this.newColumnSettings;csLength=cs.length;this._insertSummariesRows(this.defaultSummaryMethods[0].type,this.defaultSummaryMethods[0].order);for(i=0;i
=9){grid.element.data("igGridColumnFixing")._syncTableHeights()}this._syncFixedUnfixedRowHeights()}},_renderDropDown:function(columnKey){var $dialog,$ul,i,j,$buttonOK,$buttonCancel,$div,minInd,swap,$li,id=this._id("summaries","methods_dialog",columnKey),methodsLength,cs=this._getColumnSettingByKey(columnKey),css=this.css,checkboxId,allowedMethods,self=this,o=this.options,isChecked=false,cssClassCheckBox,onFocusLi,onMousedownLi,toggleState,onBlurLi,onKeydownLi,onMousedown,onMouseover,onMouseout,$checkbox,onClick;if(cs===null||cs===undefined){return}allowedMethods=cs.summaryOperands;if(allowedMethods===null||allowedMethods===undefined){return}this.grid._rootContainer().find("#"+id).remove();$dialog=$("").appendTo(this.grid._rootContainer()).attr("id",id).css("position","absolute").css("width",this.options.dropDownWidth).css("height",this.options.dropDownHeight).addClass(this.css.columnSummariesDropdown).attr("tabindex",this.grid.options.tabIndex).hide();$dialog.data("methods",allowedMethods);$ul=$("").addClass(css.dropDownListContainer);$ul.appendTo($dialog);methodsLength=allowedMethods.length;for(i=0;iallowedMethods[j].order){minInd=j}}if(minInd!==i){swap=allowedMethods[minInd];allowedMethods[minInd]=allowedMethods[i];allowedMethods[i]=swap}}toggleState=function($checkbox,event){self.toggleCheckstate($checkbox);self._trigger(self.events.summariesMethodSelectionChanged,event,{columnKey:columnKey,isSelected:$checkbox.attr("data-chk").toLowerCase()==="on",methodName:$checkbox.data("methodName"),owner:this});if(o.calculateRenderMode==="onselect"){self._calculateSelectedSummaries(columnKey);if(self.grid.hasFixedColumns()){self._syncFixedUnfixedRowHeights()}}};onClick=function(event){toggleState($(event.currentTarget),event);if(self._activeDialog){self._activeDialog.data("focussed",true);self._activeDialog.focus()}event.preventDefault();event.stopPropagation()};onMousedown=function(event){if(self._activeDialog){self._activeDialog.data("focussed",true);self._activeDialog.focus()}event.preventDefault();event.stopPropagation()};onMouseover=function(event){$(event.currentTarget).addClass(css.checkboxHovered)};onMouseout=function(event){$(event.currentTarget).removeClass(css.checkboxHovered)};$dialog.bind({blur:function(){$dialog.data("focussed",false);setTimeout(function(){self._checkCloseDropDown($dialog)},10)},focus:function(){$dialog.data("focussed",true)},keydown:function(event){if(event.keyCode===$.ui.keyCode.ESCAPE||event.keyCode===$.ui.keyCode.SPACE||event.keyCode===$.ui.keyCode.ENTER){event.stopPropagation();event.preventDefault();self.toggleDropDown(null,event);if(self._summariesRows.length>0){self.grid.container().find("#"+self._id("summaries","footer_row_button_dd",self._summariesRows[0].type,columnKey)).focus()}}}});onFocusLi=function(){if(self._activeDialog){self._activeDialog.data("focussed",true)}};onBlurLi=function(){if(self._activeDialog){self._activeDialog.data("focussed",false)}setTimeout($.proxy(self._checkCloseDropDown,self),300)};onKeydownLi=function(event){var $liFocused=$(this),keyCode=event.keyCode;if(keyCode===$.ui.keyCode.ENTER||keyCode===$.ui.keyCode.SPACE){toggleState(self.grid.container().find("#"+$liFocused.data("checkboxId")),event);event.stopPropagation();event.preventDefault()}else if(keyCode===$.ui.keyCode.ESCAPE){$dialog.blur()}};onMousedownLi=function(event){toggleState(self.grid.container().find("#"+$(this).data("checkboxId")),event)};for(i=0;i").data("checkboxId",checkboxId).addClass(css.dropDownListItem).appendTo($ul).attr("tabindex",this.grid.options.tabIndex);$li.bind({focus:onFocusLi,blur:onBlurLi,keydown:onKeydownLi,mousedown:onMousedownLi});$("").appendTo($li);$("").html(allowedMethods[i].rowDisplayLabel).appendTo($li);$checkbox=this.grid._rootContainer().find("#"+checkboxId);$("").appendTo($checkbox);$checkbox.attr("data-chk",isChecked).attr("data-role","checkbox");$checkbox.data("methodName",allowedMethods[i].type);$checkbox.bind({click:onClick,mouseover:onMouseover,mouseout:onMouseout,mousedown:onMousedown})}$div=$("").addClass(this.css.footerDropdownButtonsContainer).appendTo($dialog);if(o.calculateRenderMode==="okcancelbuttons"){$buttonOK=$("");$buttonOK.attr({id:this._id("summaries","dialog_button_ok",columnKey),tabindex:this.grid.options.tabIndex}).appendTo($div);$buttonOK.igButton({link:{href:"#",title:""},labelText:this._getLocaleValue("dialogButtonOKText"),keydown:function(event){if(event.keyCode===$.ui.keyCode.ENTER||event.keyCode===$.ui.keyCode.SPACE){self._clickOKButton(columnKey)}if(event.keyCode!==$.ui.keyCode.TAB){event.stopPropagation();event.preventDefault()}},click:function(e){self._clickOKButton(columnKey);e.preventDefault();e.stopPropagation()},mousedown:function(event){event.preventDefault();event.stopPropagation()},focus:function(){if(self._activeDialog){self._activeDialog.data("focussed",true)}},blur:function(){if(self._activeDialog){self._activeDialog.data("focussed",false)}setTimeout($.proxy(self._checkCloseDropDown,self),300)}});$buttonCancel=$("");$buttonCancel.attr({id:this._id("summaries","dialog_button_cancel",columnKey),tabindex:this.grid.options.tabIndex}).appendTo($div);$buttonCancel.igButton({link:{href:"#",title:""},labelText:this._getLocaleValue("dialogButtonCancelText"),click:function(e){self._clickCancelButton(columnKey);e.preventDefault();e.stopPropagation()},mousedown:function(event){event.preventDefault();event.stopPropagation()},focus:function(){if(self._activeDialog){self._activeDialog.data("focussed",true)}},blur:function(){if(self._activeDialog){self._activeDialog.data("focussed",false)}setTimeout($.proxy(self._checkCloseDropDown,self),300)}})}$dialog.data("columnKey",columnKey)},_checkCloseDropDown:function($dialog){if(this._activeDialog===null){return}if(this._activeDialog.data("focussed")===false){setTimeout($.proxy(this._closeDropDown,this),10);return}if($dialog&&$dialog.is(":visible")&&$dialog.attr("id")!==this._activeDialog.attr("id")){this.showHideDialog($dialog)}},toggleCheckstate:function($checkbox){var noCancel;noCancel=true;if(noCancel){if($checkbox.attr("data-chk")==="on"){this.selectCheckBox($checkbox,false)}else{this.selectCheckBox($checkbox,true)}}},selectCheckBox:function($checkbox,isToSelect){var css=this.css,$innerSpan=$checkbox.children("span");if(isToSelect===true){$innerSpan.removeClass(css.checkboxOff).addClass(css.checkboxOn);$checkbox.attr("data-chk","on")}else{$innerSpan.removeClass(css.checkboxOn).addClass(css.checkboxOff);$checkbox.attr("data-chk","off")}},_clickOKButton:function(columnKey){var i,j,cs,$checkbox,columnSettingsLength=this.columnSettings.length,methods,methodsLength,eventData=[],elem;if(columnKey===null||columnKey===undefined){return}for(j=0;jmaxMethods){maxMethods=newMaxMethods;columnMaxMethods=cs[i]}}if(columnMaxMethods===undefined||columnMaxMethods===null){return}cmm=columnMaxMethods.summaryOperands;cmmLength=cmm.length;summariesRowsLength=this._summariesRows.length;if(summariesRowsLength>maxMethods){return}countRowsToAdd=maxMethods-summariesRowsLength;if(countRowsToAdd===0){return}k=0;for(i=0;i1){for(i=0;i").attr("id",footerRowId).attr("data-role","summaryrow"),elem={id:footerRowId,type:methodName,order:order},footerRowCellMousein=function(){$(this).addClass(css.footerRowCellHover)},footerRowCellMouseout=function(){$(this).removeClass(css.footerRowCellHover)};if(hasFixed===true){footerRowIdFixed=this._id("summaries","footer_row",methodName,"fixed");$footerRowFixed=$("
").attr("id",footerRowIdFixed).attr("data-role","summaryrow");$tfootFixed=this.grid.fixedFootersTable().find("tfoot")}if($tfoot===null||$tfoot===undefined){if($footer===undefined||$footer===null||$footer.length===0){$grid._renderFooter();$footer=$grid._footer}if($footer===undefined||$footer===null||$footer.length===0){return}$footer.css("display","");if(this._isVirtualization()===true){$tfoot=this.grid.footersTable().find("tfoot")}else if(this._isFixedFooters()===true){$tfoot=$footer.find("tfoot")}else{$tfoot=$footer}this._tfoot=$tfoot}if($tfoot.attr("id")!==""&&$tfoot.attr("id")!==null&&$tfoot.attr("id")!==undefined){$tfoot=this.grid._rootContainer().find("#"+$tfoot.attr("id"))}if(order===null){elem.order=this._summariesRows.length;this._summariesRows.push(elem);$footerRow.appendTo($tfoot);if(hasFixed){$footerRowFixed.appendTo($tfootFixed)}}else{srLength=this._summariesRows.length;if(srLength===0){this._summariesRows.push(elem);$footerRow.appendTo($tfoot);if(hasFixed){$footerRowFixed.appendTo($tfootFixed)}}else{if(this.options.compactRenderingMode===true||this.options.compactRenderingMode==="auto"&&this._analyzeAutoCompactRenderingMode()===true){$footerRow.appendTo($tfoot);if(hasFixed){$footerRowFixed.appendTo($tfootFixed)}this._summariesRows.push(elem)}else if(this.options.compactRenderingMode===false||this.options.compactRenderingMode==="auto"&&this._analyzeAutoCompactRenderingMode()===false){
for(i=0;i").attr("tabIndex",this.grid.options.tabIndex).attr("aria-describedby",this.grid.id()+"_"+gridColumns[j].key).addClass(css.footerRowCell).attr("data-key",gridColumns[j].key);if(gridColumns[j].fixed===true){$td.appendTo($footerRowFixed);this.grid._rootContainer().find("#"+footerRowIdFixed+" td.ui-state-default").hover(footerRowCellMousein,footerRowCellMouseout)}else{$td.appendTo($footerRow);this.grid._rootContainer().find("#"+footerRowId+" td.ui-state-default").hover(footerRowCellMousein,footerRowCellMouseout)}if(j===gridColumnsLength-1&&$grid.options.height&&parseInt($grid.options.height,10)>0){$td.css("width",parseInt(gridColumns[j].width,10)+$grid._scrollbarWidth())}else{$td.css("width",gridColumns[j].width)}this._renderInnerCellMarkup($td,methodName,gridColumns[j].key)}if(hasFixed&&this.grid.hasFixedDataSkippedColumns()&&this.grid.fixingDirection()==="left"){this.grid._footerInit($footerRowFixed,null,true,css.footerRowCell)}else{this.grid._footerInit($footerRow,null,true,css.footerRowCell)}},_renderInnerCellMarkup:function($td,methodName,columnKey){var $textContainer,$iconContainer;$textContainer=$("").attr("id",this._id("summaries","footer_row_text_container",methodName,columnKey)).addClass(this.css.footerRowTextContainer).appendTo($td).attr("data-localeid","emptyCellText").html(this._getLocaleValue("emptyCellText"));$iconContainer=$("").attr("id",this._id("summaries","footer_row_icon_container",methodName,columnKey)).addClass(this.css.footerRowIconContainer).insertBefore($textContainer);if($.ig.util.isIE7===true){$iconContainer.addClass(this.css.baseClassIE7)}if(this.options.showDropDownButton===false){$iconContainer.addClass(this.css.footerRowIconContainerEmpty);$textContainer.addClass(this.css.footerRowTextContainerEmpty)}},_virtualHorizontalScroll:function(event,args){if(this._isRenderedSummariesRows===false){return}var start=args.startColIndex,end=args.endColIndex,i,j,$row,$children,$td,sr=this._summariesRows,srLength=sr.length,columnSetting,columnKey,cols=this.grid._visibleColumns(),self=this;end=start+this.grid._virtualColumnCount;if(srLength>0){$children=sr[0];$.each($children,function(index,element){self.grid._rootContainer().find("#"+self._id("summaries","methods_dialog",$(element).attr("data-key"))).remove()})}for(i=0;i0){this.tooltip=existingTooltip;this.tooltip.data("users",this.tooltip.data("users")+1)}else{if(this.options.style==="tooltip"){this.tooltip=$("").attr("id",this.grid.id()+"_tooltips").attr("role","tooltip").addClass("ui-tooltip").addClass("ui-widget").addClass("ui-corner-all").addClass("ui-widget-content").addClass(this.css.tooltip).css({position:"absolute",display:"none","white-space":"normal","word-wrap":"break-word"});$("").attr("id",this.id()+"_content").addClass("ui-tooltip-content").addClass(this.css.tooltipContent).appendTo(this.tooltip)}else if(this.options.style==="popover"){this.tooltip=$("").attr("id",this.grid.id()+"_tooltips").igPopover({animationDuration:this.options.fadeTimespan,maxHeight:"auto",headerTemplate:{closeButton:closeButton}})}this.tooltip.data("users",1)}if(this.options.style==="tooltip"){tooltipContent=this.tooltip.children("[id$='_content']");if(window.navigator.msPointerEnabled||window.navigator.pointerEnabled){tooltipContent.bind("MSPointerEnter."+this.grid.id(),$.proxy(this._tooltipMouseEnter,this)).bind("pointerenter."+this.grid.id(),$.proxy(this._tooltipMouseEnter,this)).bind("MSPointerLeave."+this.grid.id(),$.proxy(this._tooltipMouseLeave,this)).bind("pointerleave."+this.grid.id(),$.proxy(this._tooltipMouseLeave,this))}else{tooltipContent.bind("mouseenter."+this.grid.id(),$.proxy(this._tooltipMouseEnter,this)).bind("mouseleave."+this.grid.id(),$.proxy(this._tooltipMouseLeave,this))}}this.tooltip.appendTo(this.grid._rootContainer())},_createRuler:function(){var existingRuler=this.grid._rootContainer().children("[id$='_ruler']");if(existingRuler.length>0){this.ruler=existingRuler;this.ruler.data("users",this.ruler.data("users")+1)}else{this.ruler=$("
").attr("id",this.id()+"_ruler").css({visibility:"hidden",position:"absolute"}).prependTo(this.grid._rootContainer());this.ruler.data("users",1)}},_displayOverflow:function(element){var ruler=this.ruler,cellTextHeight,dcell=element[0];ruler.text(element.text());ruler.css({"font-family":element.css("font-family"),"font-size":element.css("font-size"),"font-size-adjust":element.css("font-size-adjust"),"font-stretch":element.css("font-stretch"),"font-style":element.css("font-style"),"font-variant":element.css("font-variant"),"font-weight":element.css("font-weight"),"border-left":element.css("border-left"),"border-right":element.css("border-right"),"padding-left":element.css("padding-left"),"padding-top":element.css("padding-top"),"padding-right":element.css("padding-right"),"padding-bottom":element.css("padding-bottom"),overflow:element.css("overflow"),"white-space":element.css("white-space"),"word-break":element.css("word-break")});ruler.width(element.width());cellTextHeight=ruler.height();ruler.css({overflow:"visible","white-space":"normal","word-break":"break-all"});return dcell.offsetWidth
dcell.clientWidth||cellTextHeight0){col=element.index()-this._$thead.children(":first").children("th[data-skip='true']").length+hskip}else{col=element.index()-element.parent().find("td[data-parent='true'],td[data-skip='true'],th").length+hskip}}if(col<0){return val}if(!key){key=this.grid._visibleColumns()[col].key}this._pRowIdx=this._rowIdx;this._rowIdx=this._getRowIndex(element,row);if(this.grid.options.virtualization||this.grid.options.rowVirtualization){this._rowIdx+=sri}tlog=this.grid.dataSource.pendingTransactions();tid=parseInt(element.parent().attr("data-id"),10);for(i=tlog.length-1;i>=0;i--){if(tlog[i].type==="deleterow"){continue}if(tlog[i].type==="cell"){if(tlog[i].rowId===tid&&tlog[i].col===key){rec=$.extend(true,{},this.grid.dataSource.findRecordByKey(tlog[i].rowId));rec[key]=tlog[i].value;val=this.grid.dataSource.getCellValue(key,rec);break}}else{if(tlog[i].rowId===tid){val=this.grid.dataSource.getCellValue(key,tlog[i].row);break}}}if(val===undefined&&this.grid._getDataView()[this._rowIdx]!==undefined){val=this.grid.dataSource.getCellValue(key,this.grid._getDataView()[this._rowIdx])}if($.type(val)==="date"){val=$.ig.formatter(val,"date","dateTime",true,col?col.dateDisplayType==="utc":false,col&&rec?this.grid._getOffsetForCol(rec,col):0)}return val},_shouldShowForTarget:function(element){var shouldShow=true,dataIdx,hasFixedColumns=this.grid.hasFixedColumns(),col;switch(this.options.visibility){case"always":break;case"never":shouldShow=false;break;case"overflow":shouldShow=this._displayOverflow(element);break}if(shouldShow===false){return false}dataIdx=element.parent().children("td:not([data-parent],[data-skip='true'])").index(element);this._pColumnIdx=this._columnIdx;if(this.grid._isMultiColumnGrid){this._columnIdx=dataIdx}else{if(hasFixedColumns&&element.closest("[data-fixed-container]").length===1){this._columnIdx=this.grid.fixedHeadersTable().find("thead th[id]").not("[data-skip='true']").eq(dataIdx).data("columnIndex")}else{this._columnIdx=this._$thead.find("th[id]").not("[data-skip='true']").eq(dataIdx).data("columnIndex")}}if(this._columnIdx===undefined||this._columnIdx===null){this._columnIdx=dataIdx}if(this._columnIdx<0||this._columnIdx>=this.grid.options.columns.length){return false}this._pColumnKey=this._columnKey;if(hasFixedColumns){col=this.grid.getColumnByTD(element);if(col){this._columnKey=col.column.key}}else{if(this.grid._isMultiColumnGrid){this._columnKey=this.grid._visibleColumns()[dataIdx].key}else{this._columnKey=this.grid.options.columns[this._columnIdx].key}}return shouldShow&&this._shouldShowForColumn()},_shouldShowForColumn:function(){var i,colSettings=this.options.columnSettings;for(i=0;iwin.width()+win.scrollLeft()){left=win.width()-toffset.left-tfullw+win.scrollLeft()}if(top+tfullh+toffset.top>win.height()+win.scrollTop()){top=win.height()-toffset.top-tfullh+win.scrollTop()}tooltip.css({top:top,left:left})},_fixedColumnsChanged:function(fObj){var $tbodyFixed;if(fObj.isToFix&&fObj.isInit){$tbodyFixed=this.grid.fixedTable().find("tbody");this._registerMouseEvents($tbodyFixed)}},_createHandlers:function(){this._rowsRenderedHandler=$.proxy(this._rowsRendered,this);this._gridMouseLeaveHandler=$.proxy(this._gridMouseLeave,this);this._gridMouseMoveHandler=$.proxy(this._gridMouseMove,this);this._gridHeaderRenderingHandler=$.proxy(this._gridHeaderRendering,this)},_registerGridEvents:function(){this.grid.element.bind("iggridrowsrendered.tooltip",this._rowsRenderedHandler);this.grid.element.bind("iggridheaderrendering.tooltip",this._gridHeaderRenderingHandler)},_unregisterGridEvents:function(){this.grid.element.unbind("iggridrendered.tooltip",this._dataRenderedHandler);this.grid.element.unbind("iggridheaderrendering.tooltip",this._gridHeaderRenderingHandler)}});$.extend($.ui.igGridTooltips,{version:"19.1.20"})})($);/*!@license
* Infragistics.Web.ClientUI Grid Editing 19.1.20
*
* Copyright (c) 2011-2019 Infragistics Inc.
*
* http://www.infragistics.com/
*
* Depends on:
* jquery-1.9.1.js
* jquery.ui-1.9.0.js
* jquery.ui.widget.js
* infragistics.ui.grid.framework.js
* infragistics.ui.grid.shared.js
* infragistics.ui.editors.js
* infragistics.ui.validator.js
* infragistics.ui.combo.js
* infragistics.ui.rating.js
* infragistics.ui.shared.js
* infragistics.dataSource.js
* infragistics.util.js
*/
(function($){"use strict";$.widget("ui.igGridUpdating",$.ui.igWidget,{options:{columnSettings:[{columnKey:null,editorType:null,editorProvider:null,editorOptions:null,required:null,readOnly:null,validation:null,defaultValue:null}],editMode:"row",enableDeleteRow:true,enableAddRow:true,validation:false,doneLabel:null,doneTooltip:null,cancelLabel:null,cancelTooltip:null,addRowLabel:null,addRowTooltip:null,deleteRowLabel:null,deleteRowTooltip:null,showDoneCancelButtons:true,enableDataDirtyException:true,startEditTriggers:"click,F2,enter",horizontalMoveOnEnter:false,excelNavigationMode:false,saveChangesSuccessHandler:null,saveChangesErrorHandler:null,swipeDistance:"100px",wrapAround:true,rowEditDialogOptions:{containment:"owner",width:"415px",height:"350px",animationDuration:200,showReadonlyEditors:true,showEditorsForHiddenColumns:false,namesColumnWidth:"150px",editorsColumnWidth:null,showDoneCancelButtons:true,dialogTemplate:null,dialogTemplateSelector:null,editorsTemplate:null,editorsTemplateSelector:null},dialogWidget:"igGridModalDialog",inherit:false,locale:{doneLabel:undefined,doneTooltip:undefined,cancelLabel:undefined,cancelTooltip:undefined,addRowLabel:undefined,addRowTooltip:undefined,deleteRowLabel:undefined,deleteRowTooltip:undefined}},events:{editRowStarting:"editRowStarting",editRowStarted:"editRowStarted",editRowEnding:"editRowEnding",editRowEnded:"editRowEnded",editCellStarting:"editCellStarting",editCellStarted:"editCellStarted",editCellEnding:"editCellEnding",editCellEnded:"editCellEnded",rowAdding:"rowAdding",rowAdded:"rowAdded",rowDeleting:"rowDeleting",rowDeleted:"rowDeleted",dataDirty:"dataDirty",generatePrimaryKeyValue:"generatePrimaryKeyValue",rowEditDialogBeforeOpen:"rowEditDialogBeforeOpen",rowEditDialogAfterOpen:"rowEditDialogAfterOpen",rowEditDialogBeforeClose:"rowEditDialogBeforeClose",rowEditDialogAfterClose:"rowEditDialogAfterClose",rowEditDialogContentsRendered:"rowEditDialogContentsRendered"},css:{buttonContainer:"ui-iggrid-buttoncontainer ui-widget-content ui-corner-all",button:"ui-iggrid-button ui-state-default ui-corner-all",doneButton:"ui-iggrid-donebutton ui-priority-primary ui-corner-all",cancelButton:"ui-iggrid-cancelbutton ui-corner-all",deleteButton:"ui-iggrid-deletebutton ui-state-default ui-corner-all",buttonHover:"ui-iggrid-buttonhover ui-state-hover",buttonDisabled:"ui-iggrid-buttondisabled ui-state-disabled",buttonActive:"ui-iggrid-buttonactive ui-state-active",doneIcon:"ui-iggrid-doneicon ui-icon ui-icon-check",cancelIcon:"ui-iggrid-cancelicon ui-icon ui-icon-cancel",buttonIconOnly:"ui-iggrid-button-icon-only",editingCell:"ui-iggrid-editingcell",addRow:"ui-iggrid-addrow ui-widget-header",addRowHover:"ui-iggrid-addrowhover ui-state-hover",addRowActive:"ui-iggrid-addrowactive ui-state-active",addRowIcon:"ui-iggrid-addrowicon ui-icon ui-icon-circle-plus",deleteIcon:"ui-iggrid-deleteicon ui-icon ui-icon-circle-close",editor:"ui-iggrid-editor",rowEditDialogHeaderCaptionTitle:"ui-dialog-title",rowEditDialogCloseButton:"ui-icon ui-icon-close",rowEditDialog:"ui-dialog ui-draggable ui-resizable ui-iggrid-dialog ui-widget ui-widget-content ui-corner-all",blockArea:"ui-widget-overlay ui-iggrid-blockarea",rowEditDialogButtonsContainer:"ui-dialog-buttonpane ui-widget-content ui-helper-clearfix",rowEditDialogTable:"ui-iggrid-filtertable ui-helper-reset"},_createWidget:function(){this.options.columnSettings=[];$.Widget.prototype._createWidget.apply(this,arguments)},setCellValue:function(rowId,colKey,value){var provider,providerWrapper;if(rowId===null||rowId===undefined||$.type(colKey)!=="string"){return}if(value===undefined){throw new Error(this._getLocaleValue("undefinedCellValue"))}if(!this._recOrPropFound(rowId,colKey)){throw new Error(this._getLocaleValue("recordOrPropertyNotFoundException"))}if(this.isEditing()&&this._editingForRowId===rowId){providerWrapper=this._providerForKey(colKey);if(this._originalValues.hasOwnProperty(colKey)&&providerWrapper){provider=providerWrapper.igEditorFilter("option","provider");provider.setValue(value);this._editorTextChanged();return}else{this.endEdit(false,false)}}this._updateCell(rowId,colKey,value)},updateRow:function(rowId,values){var key,provider,providerWrapper,shouldUpdate=false;if(rowId===null||rowId===undefined||$.type(values)!=="object"){return}if(!this._recOrPropFound(rowId)){throw new Error(this._getLocaleValue("recordOrPropertyNotFoundException"))}if(this.isEditing()&&this._editingForRowId===rowId){for(key in values){providerWrapper=this._providerForKey(key);if(values.hasOwnProperty(key)&&this._originalValues.hasOwnProperty(key)&&providerWrapper){provider=providerWrapper.igEditorFilter("option","provider");provider.setValue(values[key])}else{this.endEdit(false,false);shouldUpdate=true;break}}this._editorTextChanged()}else{shouldUpdate=true}if(shouldUpdate){this._updateRow(rowId,values,null,null)}},addRow:function(values){var settings=this.options.columnSettings,i=settings?settings.length:0,defVals={},key,val;while(i-- >0){key=settings[i].columnKey;val=settings[i].defaultValue;if(val!==undefined&&key!==undefined&&key!==null){defVals[key]=val}}this._addRow(null,$.extend(defVals,values),defVals,true)},deleteRow:function(rowId){if(rowId===null||rowId===undefined){return}if(!this._recOrPropFound(rowId)){throw new Error(this._getLocaleValue("recordOrPropertyNotFoundException"))}if(this.isEditing()&&this._editingForRowId===rowId){this.endEdit(false)}this._deleteRow(null,rowId,true)},startEdit:function(rowId,column,raiseEvents){var columnIndex,columnKey,mode=this.options.editMode,visibleColumns=this.grid._visibleColumns(),cell,row;if(this.isEditing()){throw new Error(this._getLocaleValue("editingInProgress"))}if($.type(column)==="string"){columnKey=column;columnIndex=this._getVisibleIndexForKey(columnKey)}else if($.type(column)==="number"&&column>=0&&column0&&!targetGrid.attr("id").match(re)){return}this._storedScrollLeft-=this.grid.scrollContainer().scrollLeft()||0;this._storedScrollWidth-=this.grid.scrollContainer().width()||0;if(this.options.enableDeleteRow&&Math.abs(changedTouchX-this._firstTouchX)>parseInt(this.options.swipeDistance,10)&&this._firstTouchRow&&this._storedScrollLeft===0&&this._storedScrollWidth===0&&this._firstTouchRow.filter(":not([data-container],[data-grouprow],[data-summaryrow],.ui-iggrid-deletedrecord)").length){this.showDeleteButtonFor(this._firstTouchRow)}delete this._firstTouchX;delete this._firstTouchRow;delete this._storedScrollLeft;delete this._storedScrollWidth;delete this._firstTouchRow},_pointerDown:function(evt){var oe=evt.originalEvent;if(oe.pointerType!=="touch"){return}this._firstTouchX=oe.pageX;this._firstTouchRow=$(oe.target).closest("tr");this._storedScrollLeft=this.grid.scrollContainer().scrollLeft()||0;this._storedScrollWidth=this.grid.scrollContainer().width()||0;this.hideDeleteButton()},_pointerUp:function(evt){var oe=evt.originalEvent,changedTouchX;if(oe.pointerType!=="touch"){return}changedTouchX=oe.pageX;this._storedScrollLeft-=this.grid.scrollContainer().scrollLeft()||0;this._storedScrollWidth-=this.grid.scrollContainer().width()||0;if(this.options.enableDeleteRow&&Math.abs(changedTouchX-this._firstTouchX)>parseInt(this.options.swipeDistance,10)&&this._firstTouchRow&&this._storedScrollLeft===0&&this._storedScrollWidth===0&&this._firstTouchRow.filter(":not([data-container],[data-grouprow],[data-summaryrow],.ui-iggrid-deletedrecord)").length){this.showDeleteButtonFor(this._firstTouchRow)}delete this._firstTouchX;delete this._firstTouchRow;delete this._storedScrollLeft;delete this._storedScrollWidth;delete this._firstTouchRow},_addRowFocus:function(evt){$(evt.target).closest("tr").addClass(this.css.addRowActive)},_addRowBlur:function(evt){$(evt.target).closest("tr").removeClass(this.css.addRowActive)},_rowMouseEnter:function(evt){var row=$(evt.target).closest("tr");if(!this.isEditing()&&this._isEditableRow(row)){this.showDeleteButtonFor(row)}else{this.hideDeleteButton()}},_rowPointerEnter:function(evt){if(evt.originalEvent.pointerType==="mouse"){this._rowMouseEnter(evt)}},_containerMouseLeave:function(){this.hideDeleteButton()},_containerPointerLeave:function(evt){if(evt.originalEvent.pointerType!=="touch"){this.hideDeleteButton()}},_buttonMouseEnter:function(evt){var button=$(evt.target).closest(".ui-iggrid-button,.ui-iggrid-deletebutton");if(!button.hasClass("ui-state-disabled")){button.addClass(this.css.buttonHover)}},_buttonMouseLeave:function(evt){var button=$(evt.target).closest(".ui-iggrid-button,.ui-iggrid-deletebutton");button.removeClass(this.css.buttonHover)},_buttonFocus:function(evt){var button=$(evt.target).closest(".ui-iggrid-button,.ui-iggrid-deletebutton");if(!button.hasClass("ui-state-disabled")){button.addClass(this.css.buttonActive)}},_buttonBlur:function(evt){$(evt.target).removeClass(this.css.buttonActive)},_doneButtonClick:function(evt){var target=$(evt.target).closest(".ui-iggrid-button");if(!target.length||target.hasClass(this.css.buttonDisabled)){return}this._endEdit(evt,true)},_doneButtonKeyDown:function(evt){var cols=this._getColumnsOrderedByNavIndex();if(evt.keyCode===$.ui.keyCode.TAB&&evt.shiftKey){this._activateEditor(this._providerForKey(cols[cols.length-1].key))}},_doneButtonKeyUp:function(evt){var target=$(evt.target).closest(".ui-iggrid-button");if(!target.length||target.hasClass(this.css.buttonDisabled)||evt.keyCode!==$.ui.keyCode.ENTER){return}this._endEdit(evt,true)},_cancelButtonKeyDown:function(evt){var cols=this._getColumnsOrderedByNavIndex();if(evt.keyCode===$.ui.keyCode.TAB&&!evt.shiftKey){this._activateEditor(this._providerForKey(cols[0].key))}},_cancelButtonKeyUp:function(evt){if(evt.keyCode===$.ui.keyCode.ENTER){this._stopEditing()}},_deleteButtonClick:function(evt){var rowId=$(evt.target).closest(".ui-iggrid-deletebutton").data("button-for");if(this._deleteRow(evt,rowId,false)){this.hideDeleteButton()}},_touchDeleteButtonClick:function(evt){var rowId=this._editingForRowId,target=$(evt.target).closest(".ui-iggrid-button");if(this.isEditing()&&!target.hasClass(this.css.buttonDisabled)){this._endEdit(evt,false,false);this._deleteRow(evt,rowId,false)}},_touchDeleteButtonKeyUp:function(evt){var rowId,target=$(evt.target).closest(".ui-iggrid-button");if(evt.keyCode===$.ui.keyCode.ENTER){rowId=this._editingForRowId;if(this.isEditing()&&!target.hasClass(this.css.buttonDisabled)){this._endEdit(evt,false,false);this._deleteRow(evt,rowId,false)}}},_dialogCloseClick:function(evt){var dialog=$("#"+this.grid.id()+"_updating_dialog_container");if(dialog&&dialog.data()[this.options.dialogWidget]){dialog[this.options.dialogWidget]("closeModalDialog",false,evt)}},_dialogDone:function(evt,ui){ui.toClose=true},_dialogCancel:function(evt,ui){ui.toClose=true},_dialogClosing:function(evt,ui){var dialog=ui.modalDialog;if(ui.raiseEvents){this._trigger(this.events.rowEditDialogBeforeClose,evt,{owner:this,dialogElement:dialog})}return this._endEditDialog(evt,ui.accepted,ui.owner.getContent(),!ui.raiseEvents)},_dialogClosed:function(evt,ui){if(ui.raiseEvents){this._trigger(this.events.rowEditDialogAfterClose,evt,{owner:this,dialogElement:ui.modalDialog})}},_dialogOpening:function(evt,ui){var dialog=ui.modalDialog,opts=this.options.rowEditDialogOptions,rowId=this.grid._fixPKValue(dialog.attr("data-for-rowid")),isAdding=dialog.attr("data-isadding")==="true",content=dialog[this.options.dialogWidget]("getContent"),templateParent,she=opts.showEditorsForHiddenColumns,cols=$.extend([],this.grid.options.columns),values=isAdding?this._getDefaultValues():this._getLatestValues(rowId),cache=content.find("[data-render-tmpl]").children(),invalid=!!this._editorsContainerInvalid,at=dialog.data("at"),rArgs;if(cache.length){if(!invalid){cache.detach()}else{this._clearEditorsFromContainer(cache);cache.remove()}}this._renderDialogContent(content,values);this._initDialogEditors(content,cols,values);templateParent=content.find("[data-render-tmpl]");if(templateParent.length&&!templateParent.children().length){if(!invalid){cache.appendTo(templateParent)}else{this._renderDialogTemplate(templateParent,cols,!she);delete this._editorsContainerInvalid}}this._initDialogEditors(content,cols,values);if(isAdding&&!this._anyEditorInvalid()){this._enableDoneButton()}else{this._disableDoneButton()}this._originalValues=$.extend({},values,this._originalValues);rArgs={owner:this,rowAdding:isAdding,rowID:rowId};if(at!==null&&at!==undefined){rArgs=$.extend({parentID:at},rArgs)}this._trigger(this.events.rowEditDialogAfterOpen,evt,{owner:this,dialogElement:dialog});this._trigger(this.events.editRowStarted,evt,rArgs)},_dialogOpened:function(evt,ui){ui.shouldFocus=false;if(this._columnToFocus&&this._columnToFocus.data&&this._columnToFocus.data("igEditorFilter")){this._columnToFocus.igEditorFilter("setFocus")}},_editorErrorShowing:function(evt,ui){var colKey=this._getEditorKey(ui.owner.element);if(this._errorShownFor&&this._errorShownFor!==colKey){return false}},_editorErrorShown:function(evt,ui){var colKey=this._getEditorKey(ui.owner.element);this._errorShownFor=colKey;this._disableDoneButton()},_editorErrorHidden:function(){delete this._errorShownFor;this._enableDoneButton()},_editorTextChanged:function(){if(this._fromExitEditing){delete this._fromExitEditing;return}if(!this.findInvalid()){this._enableDoneButton()}else{this._disableDoneButton()}},_editorKeyDown:function(evt,ui,columnKey){var keyCode=evt.keyCode,rowId,editor=this._editors[columnKey],providerWrapper=editor.data("igEditorFilter"),provider,row=ui.owner.element.closest("tr"),isAdd=row.hasClass("ui-iggrid-addrow")||row.attr("data-new-row");if(!row.length){return}if(providerWrapper){provider=providerWrapper.options.provider}if(keyCode===$.ui.keyCode.ESCAPE){if(this._revertValueForEditor(provider,columnKey)){evt.stopPropagation();return}}if(this.options.editMode==="dialog"){return}rowId=isAdd?null:this._getRowId(row);this._navigateElement(evt,keyCode,row,rowId,columnKey,isAdd)},_stopEditing:function(){if(this.isEditing()){this._endEdit(null,false)}},_paintModifiedCells:function(){var transactions=this.grid.pendingTransactions(),tran,i;for(i=0;i").attr("aria-readonly",!!layout[i][j].col.readOnly).attr("aria-describedby",this.grid.id()+"_"+layout[i][j].col.key).attr("colspan",layout[i][j].cs||1).attr("rowspan",layout[i][j].rs||1).appendTo(newRow)}}newRow=thead.children("tr[data-new-row='true']");if(fixed&&this.grid.fixingDirection()==="left"||!fixed&&(this.grid.fixingDirection()!=="left"||!this.grid.hasFixedColumns())){addRow.find("th[data-skip='true'],td[data-skip='true']").remove();newRow.find("th[data-skip='true'],td[data-skip='true']").remove();this.grid._headerInit(addRow,null,true);this.grid._headerInit(newRow,null,true)}},_toggleAddRow:function(){var newRow=this.grid.headersTable().find("tr[data-new-row]"),addRow=this.grid.headersTable().find("tr[data-add-row]"),height;if(this.grid.hasFixedColumns()){newRow=newRow.add(this.grid.fixedHeadersTable().find("tr[data-new-row]"));addRow=addRow.add(this.grid.fixedHeadersTable().find("tr[data-add-row]"))}if(newRow.eq(0).is(":visible")){newRow.hide();addRow.show()}else{height=addRow.height();addRow.hide();newRow.show();newRow.css("height",height)}},_providerForKey:function(key){if(!this._editors){return null}return this._editors[key]||null},_startEditForElement:function(evt,target){var mode=this.options.editMode,td=target.is("td")?target:null,tr=target.is("tr")?target:target.parent(),isAdding=tr.hasClass("ui-iggrid-addrow"),rowId=isAdding?null:this._getRowId(tr),editEnded=true,col;if(mode==="dialog"){if(!td){td=tr.children("td:not([data-skip='true'],[data-parent='true'])").first()}if(!this._isDataCell(td)||!this._isEditableRow(tr)){return false}this._startEditDialog(evt,false,rowId,isAdding,null,td)}else if(mode==="row"||tr.hasClass("ui-iggrid-addrow")){if(!td){td=tr.children("td:not([data-skip='true'],[data-parent='true'])").first()}if(!this._isDataCell(td)||!this._isEditableRow(tr)){return false}if(this.isEditing()){if(this._editingForRowId===rowId){return false}editEnded=this._endEdit(evt,true,false)}return!editEnded?false:this._startEditForRow(evt,false,rowId,null,td)}else if(mode==="cell"){if(!this._isEditableCell(td)){return false}if(this.isEditing()){col=this._getColumnKeyForCell(td);if(rowId===this._editingForRowId&&col&&this._originalValues.hasOwnProperty(col)){return false}editEnded=this._endEdit(evt,true,false)}return!editEnded?false:this._startEditForCell(evt,false,rowId,col,td,true,isAdding)}return false},_startEditDialog:function(evt,suppress,rowId,adding,columnKey,element,at){var dialog=this._renderRowEditDialog(!!this._dialogInvalid),rArgs;rArgs={owner:this,rowAdding:adding,rowID:rowId};if(at!==null&&at!==undefined){dialog.data("at",at);rArgs=$.extend({parentID:at},rArgs)}if(!suppress&&!this._trigger(this.events.editRowStarting,evt,rArgs)){return false}dialog.attr({"data-for-rowid":rowId,"data-isadding":adding});if(!suppress){this._trigger(this.events.rowEditDialogBeforeOpen,evt,{owner:this,dialogElement:dialog})}this._disableDoneButton();if(element&&element.is("td")&&!columnKey){columnKey=this._getColumnKeyForCell(element)}this._columnToFocus=this._chooseColumnToFocus(adding,columnKey);dialog[this.options.dialogWidget]("openModalDialog");return true},_startEditForRow:function(evt,suppress,rowId,columnKey,element){var rowElement,args,editModeStarted=false,colElements,pair,columnToFocus=null,i,allValues,cellValue,isAdding,at;rowElement=this._resolveRowElement(element,rowId);isAdding=rowElement.hasClass("ui-iggrid-addrow");at=this.grid._normalizedKey(rowElement.data("parent-id"));args={owner:this,rowAdding:isAdding,rowID:rowId};if(at!==null&&at!==undefined){args=$.extend({parentID:at},args)}if(!suppress&&!this._trigger(this.events.editRowStarting,evt,args)){return}if(this._gridDirty){rowElement=this._resolveRowElement(isAdding?element:null,rowId);if(!rowElement||!rowElement.length){return}}if(isAdding){rowElement=this._combineRowElements(rowElement);if(!rowElement.attr("data-new-row")){rowElement=rowElement.siblings("[data-new-row]");this._toggleAddRow()}}if(element&&element.is("td")&&!columnKey){columnKey=this._getColumnKeyForCell(element)}if(this.grid._isMultiRowGrid()){columnToFocus=this._chooseColumnToFocusMrl(isAdding,columnKey)}else{columnToFocus=this._chooseColumnToFocus(isAdding,columnKey)}colElements=this._getEditableElementsForRow(rowElement);allValues=isAdding?this._getDefaultValues():this._getLatestValues(rowId);for(i=0;i0?id.substring(idx+10):null}if(!colKey){colKey=this._getColumnKeyForCell(element.closest("td"))}return colKey},_getEditorMargins:function(cell){if(!cell||!cell.length){return{x:0,y:0}}if(!this._editorMargins){var btw=parseInt(cell.css("borderTopWidth"),10);var paddingTop=parseInt(cell.css("paddingTop"),10);var blw=parseInt(cell.css("borderLeftWidth"),10);var paddingLeft=parseInt(cell.css("paddingLeft"),10);this._editorMargins={x:-1*(paddingLeft+blw),y:-1*(paddingTop+btw)}}return this._editorMargins},_getColSettingsForCol:function(colKey){var i,settings=this.options.columnSettings;if(!settings){return null}for(i=0;i=0){if(!cols[i].readOnly){nextCell=this.grid.cellById(rowId,cols[i].key);if(nextCell.css("display")==="none"){continue}this._startEditForCell(evt,false,rowId,cols[i].key,nextCell,true,false);evt.preventDefault();return}}curRow=this._nextEditableDataRow(curRow,"prev");if(!curRow.length&&wrap){curRow=this._lastEditableDataRow()}i=cols.length}},_navigateLeftForMultiRow:function(evt,row,rowId,columnKey,isAdd){var ni=this.grid.columnByKey(columnKey).navigationIndex,i,db,prevRow,prevCell,wrap=this.options.wrapAround&&!this.grid.options.virtualization&&!this.grid.options.rowVirtualization,cols=this._getColumnsOrderedByNavIndex();evt.preventDefault();for(i=0;i=0){ncol=this._getColumnByNavigationIndex(ni);if(!ncol.readOnly){nextCell=this.grid.cellById(rowId,ncol.key);this._startEditForCell(evt,false,rowId,ncol.key,nextCell,true,false);evt.preventDefault();return}}curRow=this._nextEditableDataRow(curRow,"prev");if(!curRow.length&&wrap){curRow=this._lastEditableDataRow()}ni=this.grid.options.columns.length}},_navigateRight:function(evt,row,rowId,columnKey,isAdd){if(!isAdd&&this.options.editMode==="cell"){if(this.grid._isMultiRowGrid()){return this._navigateRightForMultiCell(evt,rowId,columnKey)}return this._navigateRightForCell(evt,rowId,columnKey)}if(this.grid._isMultiRowGrid()){return this._navigateRightForMultiRow(evt,row,rowId,columnKey,isAdd)}return this._navigateRightForRow(evt,row,rowId,columnKey,isAdd)},_navigateRightForCell:function(evt,rowId,columnKey){var i,cols=this.grid._visibleColumns(),nextCell,curRow,wrap=this.options.wrapAround&&!this.grid.options.virtualization&&!this.grid.options.rowVirtualization;curRow=this.grid.rowById(rowId);if(!this._endEdit(evt,true,false,true)){return}if(!$.contains(document.documentElement,curRow[0])){curRow=this.grid.rowById(rowId)}for(i=0;i=this.grid._virtualRowCount-1&&command==="next"){this._scrollVmanual(true);return this._lastEditableDataRow()}if(cIdx<=0&&command==="prev"){this._scrollVmanual(false);return this._firstEditableDataRow()}}}row=row[command+"All"](query);if(row.length){row=this._resolveRowElement(null,this._getRowId(row))}if(vVirt&&go.virtualizationMode==="continuous"){this._setScroll(command==="next"?$.ui.keyCode.DOWN:$.ui.keyCode.UP,row)}return row},_firstEditableDataRow:function(){return this.element.children("tbody").children("tr:not([data-grouprow],[data-summaryrow],.ui-iggrid-deletedrecord):visible:first")},_lastEditableDataRow:function(){return this.element.children("tbody").children("tr:not([data-container],.ui-iggrid-deletedrecord):visible:last")},_updateUnboundValuesForRow:function(row){if(!this.grid._hasUnboundColumns){return}var i,uc=this.grid._unboundColumns,col,f,dataRec,key=row[this.grid.options.primaryKey],ind;if(!uc||!uc.length){return}for(i=0;i12||this.grid._hscrollbar().is(":visible")&&this.grid._hasVerticalScrollbar)&&this.grid.scrollContainer()&&this.grid.scrollContainer().has(cell).length},_selectionToggle:function(element,dontToggle){var sel=this.grid.element.data("igGridSelection");if(!sel){return}sel._suspend=!sel._suspend;if(element||dontToggle){this._actElement=element}else{this._actElement.focus()}},_selectionMode:function(){var sel=this.grid.element.data("igGridSelection");if(!sel){return null}return this.grid.element.data("igGridSelection").options.mode},_showDoneCancelButtons:function(){var container=this._findElementInScrollContainer(".ui-iggrid-buttoncontainer:first");if(!container.length){container=this._renderDoneCancelButtons()}container.show()},_hideDoneCancelButtons:function(){var container=this._findElementInScrollContainer(".ui-iggrid-buttoncontainer:first");if(container.length){container.hide()}},_positionDoneCancelButtons:function(row){var container=this._findElementInScrollContainer(".ui-iggrid-buttoncontainer:first"),sbw=this.grid._hasVerticalScrollbar===true?this.grid._scrollbarWidth():0,left,top,sc,contHeight,scHeight,rowPos,go=this.grid.options,v,hasHeight=go.height!==null&&go.height!==undefined,scrContainer;row=this._combineRowElements(row);sc=container.parent();left=sc.outerWidth()-container.outerWidth()-sbw+sc.scrollLeft();if(!sc.has(row).length&&sc[0]!==this.grid.container()[0]){top=sc.scrollTop()}else{contHeight=container.outerHeight();scHeight=sc.outerHeight();rowPos=row.last().igPosition();top=rowPos.top+row.outerHeight();if(top+contHeight>scHeight){top=row.first().igPosition().top-contHeight}if(!hasHeight){v=go.virtualization||go.rowVirtualization||go.columnVirtualization;scrContainer=v?this.grid._vdisplaycontainer():this.grid.scrollContainer();if(scrContainer.length){top+=scrContainer.igPosition().top}}top+=sc.scrollTop()}container.css({top:top,left:left})},_disableDoneButton:function(){if(this.options.editMode==="dialog"){$("#"+this.grid.id()+"_updating_dialog_container")[this.options.dialogWidget]("option","buttonApplyDisabled",true)}else{$("#"+this.grid.id()+"_updating_done").addClass(this.css.buttonDisabled).removeClass(this.css.buttonActive).attr("tabIndex",-1)}},_enableDoneButton:function(){if(this.options.editMode==="dialog"){$("#"+this.grid.id()+"_updating_dialog_container")[this.options.dialogWidget]("option","buttonApplyDisabled",false)}else{$("#"+this.grid.id()+"_updating_done").removeClass(this.css.buttonDisabled).attr("tabIndex",this._getNextTabIndex()+1)}},_updateTouchButtons:function(isAdding){var button=$("#"+this.grid.id()+"_updating_delete_touch");if(button.length){if(isAdding||!this.options.enableDeleteRow){button.addClass(this.css.buttonDisabled)}else{button.removeClass(this.css.buttonDisabled)}}},showDeleteButtonFor:function(row){var db=$("#"+this.grid.id()+"_updating_deletehover"),go=this.grid.options,v,hasHeight=go.height!==null&&go.height!==undefined,sbw=this.grid.hasVerticalScrollbar()===true?this.grid._scrollbarWidth():0,left,top,sc,offset=0,scrContainer,totalHeight,rowGrp=row.siblings("[data-id='"+row.attr("data-id")+"']").add(row);if(db.length){db.show();sc=db.parent();if(!hasHeight){v=go.virtualization||go.rowVirtualization||go.columnVirtualization;scrContainer=v?this.grid._vdisplaycontainer():this.grid.scrollContainer();if(scrContainer.length){offset=scrContainer.igPosition().top}}totalHeight=rowGrp.last().igPosition().top+rowGrp.last().outerHeight()-rowGrp.first().igPosition().top;left=sc.outerWidth()-db.outerWidth()-sbw+sc.scrollLeft()-5;top=rowGrp.first().igPosition().top+totalHeight/2-db.outerHeight()/2+sc.scrollTop()+offset;db.css({top:top,left:left});db.data("button-for",this._getRowId(row))}},hideDeleteButton:function(){var db=$("#"+this.grid.id()+"_updating_deletehover");if(db.length){db.hide()}},_getNextTabIndex:function(){var gti=this.grid.options.tabIndex;return gti+1},_getRowId:function(element){return this.grid._fixPKValue(element.attr("data-id"))},_getEditableElementsForRow:function(row){var result=[],i,cells=this._getEditableCellsForRow(row),editableCols=this._getEditableColsOrdered(),vcc=this.grid.hasFixedColumns()?this.grid._visibleColumns().length:this.grid._virtualColumnCount||this.grid._visibleColumns().length,vci=this.grid._startColIndex||0;for(i=0;i=vci&&i=0}}}},_rebindEditTriggers:function(){var selector="#"+this.grid.id()+">tbody>tr>td,#"+this.grid.id()+"_fixed>tbody>tr>td",hId,scr,v,go=this.grid.options;if(this.options.enableAddRow&&go.showHeader){hId=this.grid.headersTable().attr("id");selector+=",#"+hId+">thead>tr.ui-iggrid-addrow,#"+hId+"_fixed>thead>tr.ui-iggrid-addrow"}this.grid.container().off(".triggers");this.grid.container().on({"mousedown.triggers":this._handlers.mouseDown,"touchstart.triggers":this._handlers.mouseDown},selector);if(this._editTriggers.dblclick){this.grid.container().on({"dblclick.triggers":this._handlers.clickTrigger},selector)}else if(this._editTriggers.click){this.grid.container().on({"click.triggers":this._handlers.clickTrigger},selector)}this.grid.container().on({"keydown.triggers":this._handlers.keyDown},selector.replace(/>td/g,""));if(this.options.enableDeleteRow){this._renderDeleteButton()}v=go.virtualization||go.rowVirtualization||go.columnVirtualization;scr=v?this.grid._vdisplaycontainer():this.grid.scrollContainer();if(scr&&scr.length){scr.unbind("scroll",this._handlers.scroll).bind("scroll",this._handlers.scroll)}},_getLatestValues:function(id,columnKey){var original,record,transactions,i,notNew=false;original=this.grid.dataSource.findRecordByKey(id);record=$.extend(true,{},original);transactions=this.grid.dataSource.pendingTransactions();for(i=0;i0&&data[0][pk]!==null&&data[0][pk]!==undefined?$.type(data[0][pk]):null}this._pkt=pkType}return this._pkt},_updateUIForTransaction:function(t,element){var go=this.grid.options,autoCommit=go.autoCommit,v=go.virtualization||go.rowVirtualization||go.columnVirtualization,fv=go.virtualizationMode==="fixed",row,vals,pk,groupBy,grp,idx,nextRow,rowHeight,dataRows;switch(t.type){case"newrow":if(this.grid.element.children("tbody").children("tr."+this.grid.css.modifiedRecord+"[data-id='"+t.rowId+"']").length){return}groupBy=this.grid.element.data("igGridGroupBy");grp=groupBy&&groupBy.options&&groupBy.options.groupedColumns&&groupBy.options.groupedColumns.length>0;this._updateUnboundValuesForRow(t.row);if(v&&!autoCommit){break}if(grp){this.grid.element.data("igGridGroupBy")._renderNewRow(t.row,t.rowId)}else{this.grid.renderNewRow(t.row,t.rowId)}this.grid._updateGridContentWidth();row=this.grid.rowById(t.rowId);if(!autoCommit&&row.length){this._combineRowElements(row).addClass(this.grid.css.modifiedRecord)}break;case"cell":pk=autoCommit&&t.col===go.primaryKey?t.value:t.rowId;if(element){row=element.parent();row=row.siblings("[data-id='"+row.attr("data-id")+"']").add(row)}else{row=this.grid.rowById(t.rowId)}vals=this._getLatestValues(pk);vals[t.col]=t.value;this._updateUnboundValuesForRow(vals);if(!row||!row.length){break}rowHeight=row.height();this.grid._renderRow(vals,row);if(autoCommit&&v&&rowHeight!==row.height()){this._updateRowVirtualization(row,fv,t.type)}if(!autoCommit){this._combineRowElements(row).addClass(this.grid.css.modifiedRecord)}else{this._combineRowElements(row).attr("data-id",pk).data("id",pk)}break;case"row":pk=autoCommit&&t.row.hasOwnProperty(go.primaryKey)?t.row[go.primaryKey]:t.rowId;row=element||this.grid.rowById(pk);vals=$.extend({},this._getLatestValues(pk),t.row);this._updateUnboundValuesForRow(vals);if(!row||!row.length){break}rowHeight=row.height();this.grid._renderRow(vals,row);if(autoCommit&&v&&rowHeight!==row.height()){this._updateRowVirtualization(row,fv,t.type)}if(!autoCommit){this._combineRowElements(row).addClass(this.grid.css.modifiedRecord)}else{this._combineRowElements(row).attr("data-id",pk).data("id",pk)}break;case"deleterow":row=element||this.grid.rowById(t.rowId);if(autoCommit&&v){this._updateRowVirtualization(row,fv,t.type);this._notifyRowDeleted(t.rowId,row);break}if(!row||!row.length){if(autoCommit){this._notifyRowDeleted(t.rowId,row)}break}if(autoCommit){dataRows=this.grid.element.children("tbody").children("tr:not([data-container],[data-grouprow],[data-summaryrow])");idx=dataRows.index(row);row=this._combineRowElements(row);nextRow=row.next("tr[data-container='true']");if(nextRow.length===1){nextRow.remove()}row.remove();this.grid._reapplyZebraStyle(idx);this.grid._updateGridContentWidth();this._notifyRowDeleted(t.rowId,row)}else{this._combineRowElements(row).addClass(this.grid.css.deletedRecord)}break}return row},_processReadOnly:function(){var i,col,cols=this.grid.options.columns,colSettings=this.options.columnSettings;delete this._ec;for(i=0;i=targetNavIndex){return cols[i].key}i++;if(i===cols.length&&!rolledBack){i=0;rolledBack=true}}},_addDSSuccessHandler:function(){var fS,grid=this.grid;if(this._addChangesSuccessHandler!==null&&this._addChangesSuccessHandler!==undefined){grid.dataSource._removeChangesSuccessHandler(this._addChangesSuccessHandler)}fS=this.options.saveChangesSuccessHandler;if(fS){if($.type(fS)==="string"&&window[fS]&&$.type(window[fS])==="function"){fS=window[fS]}}if($.type(fS)!=="function"){fS=null}this._addChangesSuccessHandler=function(data){if(grid.rows().parent().find("."+grid.css.deletedRecord).length){grid._renderData()}grid.rows().removeClass(grid.css.modifiedRecord);if(fS){fS(data)}};grid.dataSource._addChangesSuccessHandler(this._addChangesSuccessHandler)},_addDSErrorHandler:function(){var fE;if(this._addChangesErrorHandler!==null&&this._addChangesErrorHandler!==undefined){this.grid.dataSource._removeChangesErrorHandler(this._addChangesErrorHandler)}if(this.options.saveChangesErrorHandler){fE=this.options.saveChangesErrorHandler;if($.type(fE)==="string"&&window[fE]&&$.type(window[fE])==="function"){fE=window[fE]}if($.type(fE)==="function"){this._addChangesErrorHandler=function(jqXHR,textStatus,errorThrown){fE(jqXHR,textStatus,errorThrown)};this.grid.dataSource._addChangesErrorHandler(this._addChangesErrorHandler)}}},_resolveRowElement:function(element,rowId){if(element){if(element.is("tr")){return element}if(element.is("td")&&(element.hasClass("ui-iggrid-addrow")||rowId===null)){if(element.parent().attr("data-new-row")){return element.parent().parent().children("[data-new-row]")}else{return element.parent()}}}return this.grid.rowById(rowId)},_updateRowVirtualization:function(row,fixed,type){var svst;if(fixed&&type==="deleteRow"){if(this.grid._startRowIndex+this.grid._virtualRowCount===this.grid._totalRowCount){this.grid._startRowIndex=Math.max(0,this.grid._startRowIndex-1)}this.grid._totalRowCount--;if(this.grid._virtualRowCount>this.grid._totalRowCount){this._virtPreRender(null,{owner:this.grid});this.grid._buildVirtualDom();this._virtPostRender(null,{owner:this.grid})}else{this.grid._renderVirtualRecords();this.grid._setScrollContainerHeight(this.grid._totalRowCount*parseInt(this.grid.options.avgRowHeight,10))}}else{svst=this.grid._persistVirtualScrollTop;this.grid._persistVirtualScrollTop=true;this.grid._saveFirstVisibleTRIndex();this.grid._renderVirtualRecords();this.grid._persistVirtualScrollTop=svst}},_childrenWithAddRowEnabled:function(opts,inheritedRule){var i,j,cl,clr;if(opts.columnLayouts){for(i=0;i0){for(j=0;j=0){if(pendingTransactions[i].rowId===rowId){return colKey?pendingTransactions[i].row.hasOwnProperty(colKey):true}}return false}return true},_activateEditor:function(editor){var cell=editor.closest("td");if(cell.length&&this.options.editMode!=="dialog"){this._scrollTo(cell)}editor.igEditorFilter("setFocus");setTimeout(function(){if(editor.data("igEditorFilter")){editor.igEditorFilter("setFocus")}},5)},_scrollTo:function(cell){var gOpts=this.grid.options,v=gOpts.virtualization||gOpts.rowVirtualization||gOpts.columnVirtualization,scrollContainer=v?this.grid._vdisplaycontainer():this.grid.scrollContainer(),cellPosition,ct,cl,paddingRight;if(scrollContainer.length&&scrollContainer.has(cell).length){cellPosition=cell.igPosition();paddingRight=this.grid.element.find("tbody > tr:first > :last-child").attr("data-vscr-padding-icrement");paddingRight=paddingRight&&!cell.is(":last-child")?parseInt(paddingRight,10):0;ct=cellPosition.top+scrollContainer.scrollTop();cl=cell.igOffset().left-cell.offsetParent().igOffset().left+scrollContainer.scrollLeft();if(cellPosition.left<0){scrollContainer.scrollLeft(cl)}else if(cl+cell.outerWidth()+paddingRight>scrollContainer.scrollLeft()+scrollContainer.outerWidth()){scrollContainer.scrollLeft(cl+cell.outerWidth()+paddingRight-scrollContainer.outerWidth())}if(cellPosition.top<0){scrollContainer.scrollTop(ct)}else if(ct+cell.outerHeight()>scrollContainer.scrollTop()+scrollContainer.outerHeight()){scrollContainer.scrollTop(ct+cell.outerHeight()-scrollContainer.outerHeight())}}},_setScroll:function(code,nextActiveElement){var scrollVDir=code===$.ui.keyCode.DOWN||code===$.ui.keyCode.RIGHT?"down":"up";this._setScrollTop(this.grid.element.parent(),nextActiveElement.closest("tr"),scrollVDir,nextActiveElement.closest("tr").index()+(this.grid._startRowIndex||0))},_setScrollTop:function(parent,child,direction,index){var parentOffset=parent.igOffset(),childOffset=child.igOffset(),childh,isDown,isUp,v,c;if(!child||child.length===0){return}v=this.grid.options.virtualization||this.grid.options.rowVirtualization;c=v&&this.grid.options.virtualizationMode==="continuous";childh=v&&!c?parseInt(this.grid.options.avgRowHeight,10):child.outerHeight();if(!v||c){isDown=childOffset.top+childh+this.grid._scrollbarWidth()>parentOffset.top+$(parent).outerHeight();isUp=childOffset.top-childh/2<=parentOffset.top||c&&index<0}if(index===0&&(!v||c)){parent[0].scrollTop=0}else if(direction==="down"){if(isDown){if(c){this.grid._onVirtualVerticalScroll({},childh,direction)}}}else{if(isUp){if(c){this.grid._onVirtualVerticalScroll({},childh,direction)}}}},_scrollVmanual:function(down){var sc=$("#"+this.grid.element[0].id+"_scrollContainer"),h=parseInt(this.grid.options.avgRowHeight,10);this.grid._ignoreScroll=true;if(down){sc.scrollTop(sc.scrollTop()+h)}else{sc.scrollTop(sc.scrollTop()-h)}this.grid._onVirtualVerticalScroll();this.grid._ignoreScroll=false;this._vscrolled=true},_deleteRow:function(evt,rowId,suppress){var arg,t,autoCommit=this.grid.options.autoCommit,row=this.grid.rowById(rowId);if(row.hasClass(this.grid.css.deletedRecord)){return}arg={owner:this,element:row,rowID:rowId};if(!suppress){if(!this._trigger(this.events.rowDeleting,evt,arg)){return false}}t=this.grid.dataSource.deleteRow(rowId,autoCommit);row=this._updateUIForTransaction(t,row);if(!suppress){this._trigger(this.events.rowDeleted,evt,arg)}return true},_deleteMultipleRows:function(evt){var selectedRows=this.grid.element.igGridSelection("selectedRows"),i;for(i=0;i").appendTo(this.grid._rootContainer()).attr("id",dialogSelector.substring(1));container[this.options.dialogWidget]({containment:containment,renderFooterButtons:opts.showDoneCancelButtons,modalDialogWidth:opts.width,modalDialogHeight:opts.height,locale:{modalDialogCaptionText:titleLabel,buttonApplyText:doneButtonLabel,buttonApplyTitle:doneButtonTitle,buttonCancelText:cancelButtonLabel,buttonCancelTitle:cancelButtonTitle},animationDuration:opts.animationDuration,buttonApplyDisabled:true,gridContainer:this.grid._rootContainer(),closeModalDialogOnEnter:true,modalDialogOpening:this._dialogHandlers.dialogOpening,modalDialogOpened:this._dialogHandlers.dialogOpened,modalDialogClosing:this._dialogHandlers.dialogClosing,modalDialogClosed:this._dialogHandlers.dialogClosed,buttonOKClick:this._dialogHandlers.dialogDone,buttonCancelClick:this._dialogHandlers.dialogCancel,tabIndex:this._getNextTabIndex()});captionsContainer=container[this.options.dialogWidget]("getCaptionButtonContainer");closeButton=$("
").attr("id",this.grid.id()+"_updating_dialog_closeButton").attr("tabindex",this._getNextTabIndex()).appendTo(captionsContainer);closeButton.igButton({onlyIcons:true,icons:{primary:this.css.rowEditDialogCloseButton},width:"20px",height:"20px",click:this._dialogHandlers.dialogCloseClick});this._dialogInvalid=false;this._editorsContainerInvalid=true;this._trigger(this.events.rowEditDialogContentsRendered,null,{owner:this,dialogElement:container});return container},_renderDialogContent:function(content,values){var opts=this.options.rowEditDialogOptions,colgroup,tmpl;this._clearEditorsFromContainer(content);content.empty();if(opts.dialogTemplateSelector){tmpl=$(opts.dialogTemplateSelector);content.append($(this._jsr?tmpl.render(values):$.ig.tmpl(tmpl.html().fullTrim(),values)))}else if(opts.dialogTemplate){tmpl=opts.dialogTemplate;content.append($(this._jsr?$.render[this.grid.id()+"_rowEditDialogTemplate"](values):$.ig.tmpl(tmpl,values)))}else{content.html(this._defaultDialogTemplate);content.find("table").addClass(this.css.rowEditDialogTable).css("table-layout","fixed");colgroup=content.find("colgroup");colgroup.children(":first").css("width",opts.namesColumnWidth);colgroup.children(":last").css("width",opts.editorsColumnWidth);colgroup.parent().css("width","100%")}},_renderDialogTemplate:function(tmplParent,cols,onlyVisible){var opts=this.options.rowEditDialogOptions,tmpl,i,tr,e;cols=onlyVisible?$.grep(cols,function(col){return!col.hidden}):cols;if(!opts.showReadonlyEditors){cols=$.grep(cols,function(col){return!col.readOnly})}if(opts.editorsTemplateSelector){tmpl=$(opts.editorsTemplateSelector);tmplParent.append($(this._jsr?tmpl.render(cols):$.ig.tmpl(tmpl.html().fullTrim(),cols)))}else if(opts.editorsTemplate){tmpl=opts.editorsTemplate;tmplParent.append($(this._jsr?$.render[this.grid.id()+"_rowEditDialogEditorsTemplate"](cols):$.ig.tmpl(tmpl,cols)))}else{for(i=0;i
");$(""+(cols[i].headerText||cols[i].key)+" | ").appendTo(tr);$(" | ").appendTo(tr);e=this._isMultiLineText(cols[i].key)?$(""):$("");e.attr("data-editor-for-"+cols[i].key,"").appendTo(tr.children(":last"));tr.appendTo(tmplParent)}}},_initDialogEditors:function(content,cols,values){var i=0,provider,providerWrapper,ro,key,element,val,settings;this._editors=this._editors||{};while(i ").css("position","absolute").attr("unselectable","on").addClass(this.css.buttonContainer);buttonsParent=this._addElementToScrollContainer(buttonContainer);doneButton=$("").css("display","inline-block").addClass(this.css.doneIcon).attr("unselectable","on").appendTo(doneButton);if(doneButtonLabel&&doneButton.length){$("").css("display","inline-block").attr({unselectable:"on","data-localeid":"doneLabel"}).html(doneButtonLabel).appendTo(doneButton)}else{doneButton.addClass(this.css.buttonIconOnly)}cancelButton=$("").attr("id",this.grid.id()+"_updating_cancel").addClass(this.css.button).addClass(this.css.cancelButton).attr({unselectable:"on",tabIndex:this._getNextTabIndex()+1,title:cancelButtonTitle,"data-localeid":"cancelTooltip","data-localeattr":"title"}).css({display:"inline-block",position:"relative"}).appendTo(buttonContainer);$("").css("display","inline-block").addClass(this.css.cancelIcon).attr("unselectable","on").appendTo(cancelButton);if(cancelButtonLabel&&cancelButtonLabel.length){$("").css("display","inline-block").attr({unselectable:"on","data-localeid":"cancelLabel"}).html(cancelButtonLabel).appendTo(cancelButton)}else{cancelButton.addClass(this.css.buttonIconOnly)}if(this._renderTouchUI&&this.options.enableDeleteRow){deleteButton=$("").attr("id",this.grid.id()+"_updating_delete_touch").addClass(this.css.button).addClass(this.css.doneButton).attr({unselectable:"on",tabIndex:this._getNextTabIndex()+1,title:this._getLocaleValue("deleteRowTooltip"),"data-localeid":"deleteRowTooltip","data-localeattr":"title"}).prependTo(buttonContainer);$("").css({display:"inline-block",left:0}).addClass(this.css.deleteIcon).attr("unselectable","on").appendTo(deleteButton);$("").css("display","inline-block").attr({unselectable:"on","data-localeid":"deleteRowLabel"}).html(this._getLocaleValue("deleteRowLabel")).appendTo(deleteButton);deleteButton.css({"float":"left",position:"relative"});doneButton.css("float","right");cancelButton.css("float","right");buttonContainer.css("width",buttonsParent.outerWidth()-sbw-2);deleteSelector="#"+deleteButton.attr("id")}doneSelector="#"+doneButton.attr("id");cancelSelector="#"+cancelButton.attr("id");this.grid.container().on({"mouseenter.donecancel":this._buttonHandlers.mouseEnter,"mouseleave.donecancel":this._buttonHandlers.mouseLeave,"focus.donecancel":this._buttonHandlers.focus,"blur.donecancel":this._buttonHandlers.blur},doneSelector+","+cancelSelector+(deleteSelector?","+deleteSelector:""));this.grid.container().on({"click.donecancel":this._buttonHandlers.doneClick,"keyup.donecancel":this._buttonHandlers.doneKeyUp,"keydown.donecancel":this._buttonHandlers.doneKeyDown},doneSelector);this.grid.container().on({"click.donecancel":this._buttonHandlers.cancelClick,"keyup.donecancel":this._buttonHandlers.cancelKeyUp,"keydown.donecancel":this._buttonHandlers.cancelKeyDown},cancelSelector);if(deleteSelector){this.grid.container().on({"click.donecancel":this._buttonHandlers.touchDeleteClick,"keyup.donecancel":this._buttonHandlers.touchDeleteKeyUp},deleteSelector)}return buttonContainer},_removeDoneCancelButtons:function(){var container=this._findElementInScrollContainer(".ui-iggrid-buttoncontainer:first");this.grid.container().off(".donecancel");container.remove()},_renderDeleteButton:function(){var deleteButton,deleteParent,ubodySelector="#"+this.grid.id()+">tbody",fbodySelector="#"+this.grid.id()+"_fixed>tbody",deleteSelector="#"+this.grid.id()+"_updating_deletehover",deleteButtonTitle=this._getLocaleValue("deleteRowTooltip"),pe=window.navigator.pointerEnabled;deleteButton=$(deleteSelector);if(deleteButton.length){return}deleteButton=$("").attr("id",deleteSelector.substring(1)).css("position","absolute").addClass(this.css.deleteButton).attr({unselectable:"on",title:deleteButtonTitle,"data-localeid":"deleteRowTooltip","data-localeattr":"title"});deleteButton.hide();$("").css("display","inline-block").addClass(this.css.deleteIcon).attr("unselectable","on").appendTo(deleteButton);deleteParent=this._addElementToScrollContainer(deleteButton);this.grid.container().on({"mouseenter.deletebutton":this._buttonHandlers.mouseEnter,"mouseleave.deletebutton":this._buttonHandlers.mouseLeave,"click.deletebutton":this._buttonHandlers.deleteClick,"keyup.deletebutton":this._buttonHandlers.deleteClick},deleteSelector);if(pe){this.grid.container().on({
"pointerover.deletebutton":this._handlers.pointerEnter},ubodySelector+">tr,"+fbodySelector+">tr")}else{this.grid.container().on({"mouseenter.deletebutton":this._handlers.mouseEnter},ubodySelector+">tr,"+fbodySelector+">tr")}this.grid.container().on({"MSPointerDown.deletebutton":this._handlers.pointerDown,"pointerdown.deletebutton":this._handlers.pointerDown,"MSPointerUp.deletebutton":this._handlers.pointerUp,"pointerup.deletebutton":this._handlers.pointerUp,"touchstart.deletebutton":this._handlers.touchStart,"touchend.deletebutton":this._handlers.touchEnd},ubodySelector+">tr,"+fbodySelector+">tr");if(deleteParent[0]===this.grid.container()[0]){if(pe){this.grid.container().bind("pointerleave.deletebutton",this._handlers.pointerLeave)}else{this.grid.container().bind("mouseleave.deletebutton",this._handlers.mouseLeave)}}else{if(pe){this.grid.container().on({"pointerleave.deletebutton":this._handlers.pointerLeave},"#"+deleteParent.attr("id"))}else{this.grid.container().on({"mouseleave.deletebutton":this._handlers.mouseLeave},"#"+deleteParent.attr("id"))}}},_removeDeleteButton:function(){$("#"+this.grid.id()+"_updating_deletehover").remove();this.grid.container().off(".deletebutton");this.grid.container().unbind(".deletebutton")},_renderAddNewRow:function(thead){var addRowLabel=this._getLocaleValue("addRowLabel"),addRowTitle=this._getLocaleValue("addRowTooltip"),addTr,newTr,mainTd,i,recVerticalSize;addTr=thead.children("tr[data-add-row='true']");if(!addTr.length){addTr=$("
").addClass(this.css.addRow).attr({"data-add-row":true,tabIndex:this.grid.options.tabIndex}).appendTo(thead)}addTr.empty();mainTd=$(" | ").attr({title:addRowTitle,"data-localeid":"addRowTooltip","data-localeattr":"title"}).addClass(this.css.addRow).appendTo(addTr);$("").css("display","inline-block").addClass(this.css.addRowIcon).appendTo(mainTd);$("").text(addRowLabel).css("outline",0).attr({tabIndex:0,"data-localeid":"addRowLabel"}).appendTo(mainTd);newTr=thead.children("tr[data-new-row='true']");if(!newTr.length){recVerticalSize=this.grid._recordVerticalSize();for(i=0;i").attr("data-new-row","true").attr("data-role","newrow").appendTo(thead).hide()}}},_generateDummyLayout:function(cols){var i,layout=[[]];for(i=0;i";this._editors=this._editors||{};if(this.grid.options.virtualizationMode!=="continuous"&&(this.grid.options.virtualization===true&&this.grid.options.width||this.grid.options.columnVirtualization===true)&&this.options.editMode==="row"){throw new Error(this._getLocaleValue("rowUpdatingNotSupportedWithColumnVirtualization"))}if(this.options.excelNavigationMode&&(this.options.editMode!=="cell"&&this.options.editMode!=="row")){throw new Error(this._getLocaleValue("excelNavigationNotSupportedWithCurrentEditMode"))}if(this.grid.options.autoCommit===false&&v){throw new Error(this._getLocaleValue("virtualizationNotSupportedWithoutAutoCommit"))}this._createHandlers();this._bindGridEvents();this._analyzeEditTriggers();if(this.grid.options._isHierarchicalGrid&&this.grid._originalOptions){if(this.options.inherit){this.grid._shouldAlwaysRenderChildIndicator=this._childrenWithAddRowEnabled(this.grid.options,this.options.enableAddRow)}else{this.grid._shouldAlwaysRenderChildIndicator=this._childrenWithAddRowEnabled(this.grid.options)}if(!this.grid.dataSource.settings.schema.layouts){hg=this.grid.element.closest(".ui-iggrid-root").data("igHierarchicalGrid");cl=[];hg._parseLayouts(cl,"",this.grid._originalOptions);this.grid.dataSource.settings.schema.layouts=cl}}this._renderTouchUI=$.ig.util.isTouch;if(window.navigator.msPointerEnabled||window.navigator.pointerEnabled){this.grid.element.css("-ms-touch-action","none");this.grid.element.css("touch-action","none")}if(String(this.grid.options.templatingEngine).toLowerCase()==="jsrender"){this._jsr=true;if(this.options.rowEditDialogOptions.dialogTemplate&&typeof this.options.rowEditDialogOptions.dialogTemplate==="string"){$.templates(this.grid.id()+"_rowEditDialogTemplate",this.options.rowEditDialogOptions.dialogTemplate)}if(this.options.rowEditDialogOptions.editorsTemplate&&typeof this.options.rowEditDialogOptions.editorsTemplate==="string"){$.templates(this.grid.id()+"_rowEditDialogEditorsTemplate",this.options.rowEditDialogOptions.editorsTemplate)}}}});$.extend($.ui.igGridUpdating,{version:"19.1.20"})})($);/*!@license
* Infragistics.Web.ClientUI Layout Manager 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
* infragistics.util.js
* infragistics.util.jquery.js
*/
(function($){$.widget("ui.igLayoutManager",{css:{item:"ig-layout-item",container:"ig-layout",flowItem:"ig-layout-flow-item",flow:"ig-layout-flow",vertical:"ig-layout-vertical",verticalItem:"ig-layout-vertical-item",border:"ig-layout-border",borderItem:"ig-layout-border-item",borderItemHidden:"ig-layout-border-item-hidden",borderHeader:"ig-layout-border-header",borderFooter:"ig-layout-border-footer",borderLeft:"ig-layout-border-left",borderCenter:"ig-layout-border-center",borderRight:"ig-layout-border-right",borderContainer:"ig-layout-border-container",gridItemAbs:"ig-layout-griditem-abs",gridItemRel:"ig-layout-griditem-rel"},options:{borderLayout:{leftWidth:"20%",rightWidth:"10%",showFooter:true,showHeader:true,showLeft:true,showRight:true},gridLayout:{animationDuration:500,cols:null,columnHeight:null,columnWidth:null,marginLeft:0,marginTop:0,overrideConfigOnSetOption:true,rearrangeItems:true,rows:null},height:null,itemCount:null,items:[{colIndex:0,colSpan:1,height:null,rowIndex:0,rowSpan:1,width:null}],layoutMode:"column",width:null},events:{internalResized:"internalResized",internalResizing:"internalResizing",itemRendered:"itemRendered",itemRendering:"itemRendering",rendered:"rendered"},_opt:null,_createWidget:function(options){this.options.items=[];this.options.gridLayout.useOffset=true;if(options&&options.items){options.items=$.extend(true,[],options.items)}$.Widget.prototype._createWidget.apply(this,arguments)},_create:function(){var self=this;this._opt={eventHandlers:{},gridLayout:null,borderLayout:null,scrollBarWidth:$.ig.util.getScrollWidth(),scrollBarHeight:$.ig.util.getScrollHeight(),resizeLayout:this.options.layoutMode==="grid"||this.options.layoutMode==="border"};this.element.addClass(this.css.container);if(this.options.width!==null){this.element.css("width",this.options.width)}if(this.options.height!==null){this.element.css("height",this.options.height)}if(this._opt.resizeLayout){this._opt.eventHandlers.windowResizeHandler=function(e){var noCancel=self._triggerInternalResizing(e);if(noCancel){self.reflow(false,null,e)}};$(window).on("resize",this._opt.eventHandlers.windowResizeHandler)}switch(this.options.layoutMode){case"grid":this._initGridLayout();break;case"border":this._initBorderLayout();break;case"flow":this._initFlowLayout();break;case"vertical":this._initVerticalLayout();break;default:break}},_setOption:function(option,value){if(this.options[option]===value){return}var opt=this.options,borderLayout=$.extend(true,{},this.options.borderLayout),initGridLayout,gridLayout;switch(option){case"gridLayout":if(opt.gridLayout.overrideConfigOnSetOption){gridLayout=$.extend(true,{overrideConfigOnSetOption:opt.gridLayout.overrideConfigOnSetOption,useOffset:opt.gridLayout.useOffset},{cols:null,rows:null,columnWidth:null,columnHeight:null,marginLeft:0,marginTop:0,rearrangeItems:true,animationDuration:500});initGridLayout=true}else{gridLayout=$.extend(true,{},this.options.gridLayout);initGridLayout=value.cols||value.rows||value.columnWidth||value.columnHeight||typeof value.marginLeft==="number"||typeof value.marginTop==="number"||value.useOffset}break;default:break}$.Widget.prototype._setOption.apply(this,arguments);switch(option){case"width":this.element.width(this.options.width);if(opt.layoutMode==="grid"){this.reflow(true)}break;case"height":this.element.height(this.options.height);if(opt.layoutMode==="grid"){this.reflow(true)}break;case"gridLayout":this.options.gridLayout=$.extend(true,{},gridLayout,this.options.gridLayout);if(initGridLayout){this._destroyGridLayout();this._initGlFromItemsConfig(false)}else{if(value.hasOwnProperty("rearrangeItems")){this._opt.gridLayout.rearrangeItems=value.rearrangeItems}if(value.hasOwnProperty("animationDuration")){this._opt.gridLayout.animationDuration=value.animationDuration}}break;case"borderLayout":this._destroyBorderLayout();this.options.borderLayout=$.extend(true,{},borderLayout,this.options.borderLayout);this._initBorderLayout();break;case"items":switch(opt.layoutMode){case"vertical":this._destroyVerticalLayout();this._initVerticalLayout();break;case"grid":this._initGlFromItemsConfig(false);break;case"flow":this._destroyFlowLayout();this._initFlowLayout();break}break;case"itemCount":switch(opt.layoutMode){case"vertical":this._destroyVerticalLayout();this._initVerticalLayout();break;case"flow":this._destroyFlowLayout();this._initFlowLayout();break}break;default:break}},reflow:function(forceReflow,animationDuration,event){var parsedDur;if(this.options.layoutMode==="grid"){parsedDur=parseInt(animationDuration,10);animationDuration=parsedDur>=0?parsedDur:this.options.gridLayout.animationDuration;this._reflowGlConfiguration(forceReflow,animationDuration,event)}if(this.options.layoutMode==="border"){this._setBorderLayoutPaddings()}},_initVerticalLayout:function(){var i,length=this.options.itemCount,items=this.options.items,item;this.element.addClass(this.css.vertical);if(length>0){for(i=0;i").appendTo(this.element).addClass(this.css.verticalItem);this.options.destroyItems=true;this._trigger(this.events.itemRendered,null,{item:item,index:i})}this._trigger(this.events.rendered,null,{owner:this})}else if(items&&items.length>0){this.element.empty();for(i=0;i
").appendTo(this.element).addClass(this.css.verticalItem);if(items[i].width){item.css("width",items[i].width)}if(items[i].height){item.css("height",items[i].height)}this._trigger(this.events.itemRendered,null,{item:item,index:i})}this.options.destroyItems=true;this._trigger(this.events.rendered,null,{owner:this})}else{this.element.children().addClass(this.css.verticalItem)}},_analyzeGlWidth:function(){var gl=this._opt.gridLayout,columnWidth=gl.columnWidth,ml=gl.marginLeft,elWidth=this.element.width(),analyzedColumnWidth,i;if(columnWidth){if(typeof columnWidth==="string"){analyzedColumnWidth=this._analyzeGlColumnWidth(columnWidth,elWidth,ml);gl.columnWidth=analyzedColumnWidth.columnWidth;gl.columnWidthRatio=analyzedColumnWidth.columnWidthRatio;gl.columnWidthHasAsterisk=analyzedColumnWidth.columnWidthHasAsterisk}else if($.isArray(columnWidth)){gl.columnWidthRatio=[];gl.columnWidthHasAsterisk=[];for(i=0;i0){analyzedColumnWidthRatio=units;analyzedColumnWidth=Math.floor(elWidth*units-marginLeft)}}else if(columnWidth==="*"){hasAsterisk=true}else{units=parseInt(columnWidth,10);if(!isNaN(units)&&units>0){analyzedColumnWidth=units}}return{columnWidth:analyzedColumnWidth,columnWidthRatio:analyzedColumnWidthRatio,columnWidthHasAsterisk:hasAsterisk}},_analyzeGlHeight:function(){var i,gl=this._opt.gridLayout,columnHeight=gl.columnHeight,mt=gl.marginTop,elHeight=this.element.height(),analyzedColumnHeight;if(columnHeight){if(typeof columnHeight==="string"){analyzedColumnHeight=this._analyzeGlColumnHeight(columnHeight,elHeight,mt);gl.columnHeight=analyzedColumnHeight.columnHeight;gl.columnHeightRatio=analyzedColumnHeight.columnHeightRatio;gl.columnHeightHasAsterisk=analyzedColumnHeight.columnHeightHasAsterisk}else if($.isArray(columnHeight)){gl.columnHeightRatio=[];gl.columnHeightHasAsterisk=[];for(i=0;i0){analyzedColumnHeightRatio=units;analyzedColumnHeight=Math.floor(elHeight*units-marginTop)}}else if(columnHeight==="*"){hasAsterisk=true}else{units=parseInt(columnHeight,10);if(!isNaN(units)&&units>0){analyzedColumnHeight=units}}return{columnHeight:analyzedColumnHeight,columnHeightRatio:analyzedColumnHeightRatio,columnHeightHasAsterisk:hasAsterisk}},_analyzeGlItems:function(){var gl=this._opt.gridLayout,items=this.options.items,cols=0,rows=0,item,itemCols,itemRows,i;for(i=0;items.length>i;i++){item=items[i];itemCols=item.colIndex+item.colSpan;itemRows=item.rowIndex+item.rowSpan;if(itemCols>cols){cols=itemCols}if(itemRows>rows){rows=itemRows}}if(cols>0){gl.cols=cols}if(rows>0){gl.rows=rows}},_analyzeGlColsRows:function(){var gl=this._opt.gridLayout,elWidth=this.element.width(),elHeight=this.element.height(),itemsLength=this.options.items.length,isColumnWidthNumber=gl.columnWidth&&typeof gl.columnWidth==="number"&&gl.columnWidth>0,isColumnWidthArray=gl.columnWidth&&$.isArray(gl.columnWidth),isColumnHeightNumber=gl.columnHeight&&typeof gl.columnHeight==="number"&&gl.columnHeight>0,isColumnHeightArray=gl.columnHeight&&$.isArray(gl.columnHeight),colsOption=false,rowsOption=false;if(isColumnWidthArray){gl.cols=gl.columnWidth.length}if(isColumnHeightArray){gl.rows=gl.columnHeight.length}colsOption=typeof gl.cols==="number"&&gl.cols>0;rowsOption=typeof gl.rows==="number"&&gl.rows>0;if(!colsOption){if(rowsOption){gl.cols=Math.ceil(itemsLength/gl.rows)}else{if(isColumnWidthNumber){gl.cols=Math.floor(elWidth/(gl.columnWidth+gl.marginLeft));gl.rows=Math.ceil(itemsLength/gl.cols)}else if(isColumnHeightNumber){gl.rows=Math.floor(elHeight/(gl.columnHeight+gl.marginTop));gl.cols=Math.ceil(itemsLength/gl.rows)}else{gl.cols=Math.ceil(Math.sqrt(itemsLength));gl.rows=Math.ceil(itemsLength/gl.cols)}}}else if(!rowsOption){gl.rows=Math.ceil(itemsLength/gl.cols)}return{hasColsInitially:colsOption,hasRowsInitially:rowsOption}},_analyzeGlNotSetWidthHeight:function(){var gl=this._opt.gridLayout,elWidth=this.element.width(),elHeight=this.element.height(),hasColumnWidth=typeof gl.columnWidth==="number"&&gl.columnWidth>0||gl.columnWidth==="*"||gl.columnWidth&&$.isArray(gl.columnWidth)&&this._isColumnsWidthOrHeightValid(gl.columnWidth),hasColumnHeight=typeof gl.columnHeight==="number"&&gl.columnHeight>0||gl.columnHeight==="*"||gl.columnHeight&&$.isArray(gl.columnHeight)&&this._isColumnsWidthOrHeightValid(gl.columnHeight);if(!hasColumnWidth){gl.columnWidth=Math.floor(elWidth*(1/gl.cols)-gl.marginLeft);gl.columnWidthRatio=1/gl.cols}if(!hasColumnHeight){gl.columnHeight=Math.floor(elHeight*(1/gl.rows)-gl.marginTop);gl.columnHeightRatio=1/gl.rows}},_isColumnsWidthOrHeightValid:function(arr){var i,isValid=arr&&arr.length>0;for(i=0;i0||arr[i]==="*";if(!isValid){break}}return isValid},_analyzeGlWidthAsterisks:function(){var gl=this._opt.gridLayout,elWidth=this._getContainerWidthNoScroll(),ml=gl.marginLeft,asterisksCount=0,i=0,occupiedWidth=0,widthForAsterisks,widthPerAsterisk,updated=false;if($.isArray(gl.columnWidthHasAsterisk)){for(i=0;i0){widthForAsterisks=elWidth-occupiedWidth;widthPerAsterisk=Math.floor(widthForAsterisks/asterisksCount)-ml;for(i=0;i0){heightForAsterisks=elHeight-occupiedHeight;heightPerAsterisk=Math.floor(heightForAsterisks/asterisksCount)-mt;for(i=0;i0||$.isArray(gl.columnWidth),hasColumnHeight=typeof gl.columnHeight==="number"&&gl.columnHeight>0||$.isArray(gl.columnHeight);if(!hasColumnHeight&&!hasColsOptionInitially&&!this._hasGlColumnWidthRatio()){gl.autoAdjustColumnHeight=true}if(!hasColumnWidth&&!hasRowsOptionInitially&&!this._hasGlColumnHeightRatio()){gl.autoAdjustColumnWidth=true}},_hasGlColumnWidthRatio:function(){var gl=this._opt.gridLayout,i;if($.isArray(gl.columnWidthRatio)){for(i=0;i").appendTo(this.element)}else{item=$currChild}itemData.item=item;gl.elements=gl.elements.add(item);if(colSpan>gl.minColCount){gl.minColCount=colSpan}width=this._calculateGlItemWidth(col,colSpan,colWidth,colsWidthMatrix,ml);height=this._calculateGlItemHeight(row,rowSpan,colHeight,colsHeightMatrix,mt);left=this._calculateGlItemLeft(col,colWidth,colsWidthMatrix,ml);top=this._calculateGlItemTop(row,colHeight,colsHeightMatrix,mt);if(gl.useOffset){top+=offset.top;left+=offset.left}item.addClass(this.css.item).addClass(this.css.gridItemAbs).attr("data-index",i).css({top:top,left:left,width:width,height:height});if(renderNewItem||initialRendering){this._trigger(this.events.itemRendered,null,{item:item,itemData:itemData,index:i})}}this._glSortItemsByPositionOrder();$children.slice(items.length).remove();if(initialRendering){this._trigger(this.events.rendered,null,{items:this.options.items})}},_calculateColumnsWidthOrHeightMatrix:function(sizes){var sizesMatrix=[],i=0,j=0,size=sizes.length;sizesMatrix.push(sizes.slice());for(i=0;i0){if(colWidth){baseLeft=col*colWidth}else{baseLeft=colsWidthMatrix[col-1][col-1]}}left=baseLeft+(col+1)*marginLeft;return left},_calculateGlItemTop:function(row,colHeight,colsHeightMatrix,marginTop){var baseTop=0,top;if(row>0){if(colHeight){baseTop=row*colHeight}else{baseTop=colsHeightMatrix[row-1][row-1]}}top=baseTop+(row+1)*marginTop;return top},_initGlFromItemsConfig:function(initialRendering){this._createGlConfig();this._renderGlItemsFromItemsConfig(initialRendering);this.reflow(false,0)},_renderGlItemsFromColsRows:function(initialRendering){var i,j,width,height,top,left,item,e=this.element,gl=this._opt.gridLayout,ml=gl.marginLeft,mt=gl.marginTop,rows=gl.rows,cols=gl.cols,colWidth=$.isArray(gl.columnWidth)?null:gl.columnWidth,colsWidthMatrix=$.isArray(gl.columnWidth)?this._calculateColumnsWidthOrHeightMatrix(gl.columnWidth):null,colHeight=$.isArray(gl.columnHeight)?null:gl.columnHeight,colsHeightMatrix=$.isArray(gl.columnHeight)?this._calculateColumnsWidthOrHeightMatrix(gl.columnHeight):null,offset=e.igOffset();for(i=0;i").appendTo(this.element).addClass(this.css.item).addClass(this.css.gridItemAbs).attr("data-index",i*gl.cols+j).css({top:top,left:left,width:width,height:height});this._trigger(this.events.itemRendered,null,{item:item})}}if(initialRendering){this._trigger(this.events.rendered,null,{items:this.options.items})}},_initGlFromColsRows:function(initialRendering){this._createGlConfig();this._renderGlItemsFromColsRows(initialRendering)},_initGridLayout:function(){var i,items=this.options.items,e=this.element,$children=e.children(),lenDiff=$children.length-this.options.items.length;if(lenDiff>0){for(i=0;i0){this._initGlFromItemsConfig(true)}else if($children.length===0){this._initGlFromColsRows(true)}},_setGlInitialConfig:function(){var gl=this._opt.gridLayout;gl.initialCols=gl.cols;gl.initialRows=gl.rows;gl.initialColWidth=gl.columnWidth;gl.initialColWidthRatio=gl.columnWidthRatio;gl.initialColHeight=gl.columnHeight;gl.initialColHeightRatio=gl.columnHeightRatio;gl.initialItems=$.extend(true,[],this.options.items)},_getContainerWidthNoScroll:function(){var widthNoScroll;if($.ig.util.isWebKit&&window.getComputedStyle){widthNoScroll=parseInt(window.getComputedStyle(this.element[0]).width,10)}else{widthNoScroll=this.element.width()-($.ig.util.hasVerticalScroll(this.element)?this._opt.scrollBarWidth:0)}return widthNoScroll},_getContainerHeightNoScroll:function(){var heightNoScroll;if($.ig.util.isWebKit&&window.getComputedStyle){heightNoScroll=parseInt(window.getComputedStyle(this.element[0]).height,10)}else{heightNoScroll=this.element.height()-($.ig.util.hasHorizontalScroll(this.element)?this._opt.scrollBarHeight:0)}return heightNoScroll},_glReflowNeeded:function(){var gl=this._opt.gridLayout,newContainerWidthNoScroll=this._getContainerWidthNoScroll(),newContainerHeightNoScroll=this._getContainerHeightNoScroll(),reflowNeeded=false,colsCouldBeAdjusted=false;colsCouldBeAdjusted=gl.columnWidth&&!$.isArray(gl.columnWidth)&&gl.cols!==Math.floor(newContainerWidthNoScroll/(gl.columnWidth+gl.marginLeft));reflowNeeded=gl.containerWidthNoScroll!==newContainerWidthNoScroll&&(this._hasGlColumnWidthRatio()||this._hasGlColumnWidthAsterisks()||colsCouldBeAdjusted);reflowNeeded=reflowNeeded||gl.containerHeightNoScroll!==newContainerHeightNoScroll&&(this._hasGlColumnHeightRatio()||this._hasGlColumnHeightAsterisks());return reflowNeeded},_reflowGlConfiguration:function(forceReflow,animationDuration,event){var self=this,e=this.element,gl=this._opt.gridLayout,ml=gl.marginLeft,mt=gl.marginTop,items=this.options.items,newContainerWidthNoScroll=this._getContainerWidthNoScroll(),newContainerHeightNoScroll=this._getContainerHeightNoScroll(),leftOffset=gl.useOffset?e.igOffset().left:0,topOffset=gl.useOffset?e.igOffset().top:0,colWidth,colHeight,colsWidthMatrix,colsHeightMatrix,col,row,colSpan,rowSpan,newColCount,newDim,helperArray,itemData,colWidthChanged,colHeightChanged,positionsChanged,foundMatch,currentRow,item,i,j,k,r,n,rearrangeCallback=function(){if(!gl.elements.is(":animated")){gl.animating=false;if(self._glReflowNeeded()){self.reflow(false,animationDuration,event)}else{self._triggerInternalResized(event)}}};if(items){if(gl.containerWidthNoScroll!==newContainerWidthNoScroll){colWidthChanged=this._updateGlColumnWidthByRatio(newContainerWidthNoScroll)}else{colWidthChanged=false}if(gl.containerHeightNoScroll!==newContainerHeightNoScroll){colHeightChanged=this._updateGlColumnHeightByRatio(newContainerHeightNoScroll)}else{colHeightChanged=false}if(gl.autoAdjustColumnWidth&&(gl.containerHeightNoScroll!==newContainerHeightNoScroll&&gl.rearrangeItems||forceReflow)){gl.rows=Math.max(Math.floor(newContainerHeightNoScroll/(gl.columnHeight+mt)),1);gl.columnWidthRatio=1/Math.ceil(items.length/gl.rows);gl.columnWidth=Math.floor(newContainerWidthNoScroll*gl.columnWidthRatio-ml);colWidthChanged=true}gl.containerWidthNoScroll=newContainerWidthNoScroll;gl.containerHeightNoScroll=newContainerHeightNoScroll;if(gl.rearrangeItems||forceReflow){if(gl.rearrangeItems){if(gl.columnWidthRatio&&!$.isArray(gl.columnWidthRatio)){newColCount=Math.floor(1/gl.columnWidthRatio)}else if(gl.columnWidth&&!$.isArray(gl.columnWidth)){newColCount=Math.floor(newContainerWidthNoScroll/(gl.columnWidth+ml))}else{newColCount=gl.cols}if(newColCount!==gl.cols&&$.isArray(gl.columnHeight)){if(Math.ceil(items.length/newColCount)!==gl.columnHeight.length){newColCount=gl.cols}else{colWidthChanged=colHeightChanged=true}}}else{if(gl.autoAdjustColumnWidth){newColCount=Math.ceil(items.length/gl.rows)}else if(gl.autoAdjustColumnHeight){newColCount=Math.floor(newContainerWidthNoScroll/(gl.columnWidth+ml))}else{newColCount=gl.cols}}if(gl.minColCount>newColCount){newColCount=gl.minColCount}if(newColCount!==gl.cols||forceReflow){if(newColCount===gl.initialCols){items=this.options.items=$.extend(true,[],gl.initialItems);gl.rows=gl.initialRows;gl.cols=gl.initialCols}else{gl.cols=newColCount;helperArray=[[]];helperArray[0].length=gl.cols||0;for(i=0;ihelperArray[j].length-k){foundMatch=false}else{currentRow=j+Math.floor(r/colSpan);if(!helperArray[currentRow]){helperArray[currentRow]=[];helperArray[currentRow].length=gl.cols}if(helperArray[currentRow][k+r%colSpan]===1){foundMatch=false}}}}if(foundMatch){itemData.rowIndex=j;itemData.colIndex=k;for(n=0;n0||gl.animating;for(i=0;i0){item.animate(newDim,{duration:animationDuration,queue:false,complete:rearrangeCallback})}else{item.css(newDim)}}else{if(colWidthChanged||forceReflow){newDim.left=this._calculateGlItemLeft(col,colWidth,colsWidthMatrix,ml)+leftOffset;newDim.width=this._calculateGlItemWidth(col,colSpan,colWidth,colsWidthMatrix,ml)}if(colHeightChanged||forceReflow){newDim.top=this._calculateGlItemTop(row,colHeight,colsHeightMatrix,mt)+topOffset;newDim.height=this._calculateGlItemHeight(row,rowSpan,colHeight,colsHeightMatrix,mt)}item.css(newDim)}}}if(!gl.animating){if(this._glReflowNeeded()){this.reflow(false,animationDuration,event)}else{if(gl.initialReflow){this._setGlInitialConfig();gl.initialReflow=false}this._triggerInternalResized(event)}}}},_updateGlColumnWidthByRatio:function(newContainerWidthNoScroll){var gl=this._opt.gridLayout,ml=gl.marginLeft,columnWidthUpdated=false,i;if($.isArray(gl.columnWidthRatio)){for(i=0;i