/*!@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(factory){if(typeof define==="function"&&define.amd){define(["./infragistics.ui.grid.shared","./infragistics.ui.editors"],factory)}else{return factory(jQuery)}})(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"});return $});