New OnlyOffice build

pull/1/head
yflory 5 years ago
parent dee8007cc4
commit 70aad68d07

@ -12269,212 +12269,212 @@ null;this.clrSchemeMap=null;this.CellStyles=new AscCommonExcel.CCellStyles;this.
0)this.nActive=0;if(this.nActive>=this.aWorksheets.length)this.nActive=this.aWorksheets.length-1;var self=this;this.wsHandlers=new AscCommonExcel.asc_CHandlersList({"changeRefTablePart":function(table){self.dependencyFormulas.changeTableRef(table)},"changeColumnTablePart":function(tableName){self.dependencyFormulas.renameTableColumn(tableName)},"deleteColumnTablePart":function(tableName,deleted){self.dependencyFormulas.delColumnTable(tableName,deleted)},"onFilterInfo":function(){self.handlers.trigger("asc_onFilterInfo")}});
for(var i=0,length=tableCustomFunc.length;i<length;++i){var elem=tableCustomFunc[i];elem.column.applyTotalRowFormula(elem.formula,elem.ws,!bNoBuildDep)}this.forEach(function(ws){ws.initPostOpen(self.wsHandlers)});var wsActive=this.getActiveWs();if(wsActive&&wsActive.getHidden())wsActive.setHidden(false);if(!bNoBuildDep){this.dependencyFormulas.initOpen();this.dependencyFormulas.calcTree()}if(bSnapshot)this.snapshot=this._getSnapshot()};Workbook.prototype.forEach=function(callback,isCopyPaste){if(isCopyPaste)callback(this.getActiveWs(),
this.getActive());else for(var i=0,l=this.aWorksheets.length;i<l;++i)callback(this.aWorksheets[i],i)};Workbook.prototype.rebuildColors=function(){AscCommonExcel.g_oColorManager.rebuildColors();this.forEach(function(ws){ws.rebuildColors()})};Workbook.prototype.getDefaultFont=function(){return g_oDefaultFormat.Font.getName()};Workbook.prototype.getDefaultSize=function(){return g_oDefaultFormat.Font.getSize()};Workbook.prototype.getActive=function(){return this.nActive};Workbook.prototype.getActiveWs=
function(){return this.getWorksheet(this.nActive)};Workbook.prototype.setActive=function(index){if(index>=0&&index<this.aWorksheets.length){this.nActive=index;this.cleanFindResults();return true}return false};Workbook.prototype.setActiveById=function(sheetId){var ws=this.getWorksheetById(sheetId);return this.setActive(ws.getIndex())};Workbook.prototype.getSheetIdByIndex=function(index){var ws=this.getWorksheet(index);return ws?ws.getId():null};Workbook.prototype.getWorksheet=function(index){if(index>=
0&&index<this.aWorksheets.length)return this.aWorksheets[index];return null};Workbook.prototype.getWorksheetById=function(id){return this.aWorksheetsById[id]};Workbook.prototype.getWorksheetByName=function(name){for(var i=0;i<this.aWorksheets.length;i++)if(this.aWorksheets[i].getName()==name)return this.aWorksheets[i];return null};Workbook.prototype.getWorksheetIndexByName=function(name){for(var i=0;i<this.aWorksheets.length;i++)if(this.aWorksheets[i].getName()==name)return i;return null};Workbook.prototype.getWorksheetCount=
function(){return this.aWorksheets.length};Workbook.prototype.createWorksheet=function(indexBefore,sName,sId){this.dependencyFormulas.lockRecal();History.Create_NewPoint();History.TurnOff();var wsActive=this.getActiveWs();var oNewWorksheet=new Worksheet(this,this.aWorksheets.length,sId);if(this.checkValidSheetName(sName))oNewWorksheet.sName=sName;oNewWorksheet.initPostOpen(this.wsHandlers);if(null!=indexBefore&&indexBefore>=0&&indexBefore<this.aWorksheets.length)this.aWorksheets.splice(indexBefore,
0,oNewWorksheet);else{indexBefore=this.aWorksheets.length;this.aWorksheets.push(oNewWorksheet)}this.aWorksheetsById[oNewWorksheet.getId()]=oNewWorksheet;this._updateWorksheetIndexes(wsActive);History.TurnOn();this._insertWorksheetFormula(oNewWorksheet.index);History.Add(AscCommonExcel.g_oUndoRedoWorkbook,AscCH.historyitem_Workbook_SheetAdd,null,null,new UndoRedoData_SheetAdd(indexBefore,oNewWorksheet.getName(),null,oNewWorksheet.getId()));History.SetSheetUndo(wsActive.getId());History.SetSheetRedo(oNewWorksheet.getId());
this.dependencyFormulas.unlockRecal();return oNewWorksheet.index};Workbook.prototype.copyWorksheet=function(index,insertBefore,sName,sId,bFromRedo,tableNames){if(index>=0&&index<this.aWorksheets.length){this.dependencyFormulas.buildDependency();History.TurnOff();var wsActive=this.getActiveWs();var wsFrom=this.aWorksheets[index];var newSheet=new Worksheet(this,-1,sId);if(null!=insertBefore&&insertBefore>=0&&insertBefore<this.aWorksheets.length)this.aWorksheets.splice(insertBefore,0,newSheet);else this.aWorksheets.push(newSheet);
this.aWorksheetsById[newSheet.getId()]=newSheet;this._updateWorksheetIndexes(wsActive);var renameParams=newSheet.copyFrom(wsFrom,sName,tableNames);newSheet.initPostOpen(this.wsHandlers);History.TurnOn();this.dependencyFormulas.copyDefNameByWorksheet(wsFrom,newSheet,renameParams);this._insertWorksheetFormula(insertBefore);if(!tableNames)tableNames=newSheet.getTableNames();History.Add(AscCommonExcel.g_oUndoRedoWorkbook,AscCH.historyitem_Workbook_SheetAdd,null,null,new UndoRedoData_SheetAdd(insertBefore,
newSheet.getName(),wsFrom.getId(),newSheet.getId(),tableNames));History.SetSheetUndo(wsActive.getId());History.SetSheetRedo(newSheet.getId());if(!(bFromRedo===true))wsFrom.copyObjects(newSheet,wsFrom);this.sortDependency()}};Workbook.prototype.insertWorksheet=function(index,sheet){var wsActive=this.getActiveWs();if(null!=index&&index>=0&&index<this.aWorksheets.length)this.aWorksheets.splice(index,0,sheet);else this.aWorksheets.push(sheet);this.aWorksheetsById[sheet.getId()]=sheet;this._updateWorksheetIndexes(wsActive);
this._insertWorksheetFormula(index);this._insertTablePartsName(sheet);sheet._BuildDependencies(sheet.getCwf());this.sortDependency()};Workbook.prototype._insertTablePartsName=function(sheet){if(sheet&&sheet.TableParts&&sheet.TableParts.length)for(var i=0;i<sheet.TableParts.length;i++){var tablePart=sheet.TableParts[i];this.dependencyFormulas.addTableName(sheet,tablePart);tablePart.buildDependencies()}};Workbook.prototype._insertWorksheetFormula=function(index){if(index>0&&index<this.aWorksheets.length){var oWsBefore=
this.aWorksheets[index-1];this.dependencyFormulas.changeSheet(this.dependencyFormulas.prepareChangeSheet(oWsBefore.getId(),{insert:index}))}};Workbook.prototype.replaceWorksheet=function(indexFrom,indexTo){if(indexFrom>=0&&indexFrom<this.aWorksheets.length&&indexTo>=0&&indexTo<this.aWorksheets.length){var wsActive=this.getActiveWs();var oWsFrom=this.aWorksheets[indexFrom];var tempW={wF:oWsFrom,wFI:indexFrom,wTI:indexTo};if(tempW.wFI<tempW.wTI)tempW.wTI++;this.dependencyFormulas.lockRecal();var prepared=
this.dependencyFormulas.prepareChangeSheet(oWsFrom.getId(),{replace:tempW},null);var movedSheet=this.aWorksheets.splice(indexFrom,1);this.aWorksheets.splice(indexTo,0,movedSheet[0]);this._updateWorksheetIndexes(wsActive);this.dependencyFormulas.changeSheet(prepared);this._insertWorksheetFormula(indexTo);History.Add(AscCommonExcel.g_oUndoRedoWorkbook,AscCH.historyitem_Workbook_SheetMove,null,null,new UndoRedoData_FromTo(indexFrom,indexTo));this.dependencyFormulas.unlockRecal()}};Workbook.prototype.findSheetNoHidden=
function(nIndex){var i,ws,oRes=null,bFound=false,countWorksheets=this.getWorksheetCount();for(i=nIndex;i<countWorksheets;++i){ws=this.getWorksheet(i);if(false===ws.getHidden()){oRes=ws;bFound=true;break}}if(!bFound)for(i=nIndex-1;i>=0;--i){ws=this.getWorksheet(i);if(false===ws.getHidden()){oRes=ws;break}}return oRes};Workbook.prototype.removeWorksheet=function(nIndex,outputParams){var bEmpty=true;for(var i=0,length=this.aWorksheets.length;i<length;++i){var worksheet=this.aWorksheets[i];if(false==
worksheet.getHidden()&&i!=nIndex){bEmpty=false;break}}if(bEmpty)return-1;var removedSheet=this.getWorksheet(nIndex);if(removedSheet){var removedSheetId=removedSheet.getId();this.dependencyFormulas.lockRecal();var prepared=this.dependencyFormulas.prepareRemoveSheet(removedSheetId,removedSheet.getTableNames());var wsActive=this.getActiveWs();var oVisibleWs=null;this.aWorksheets.splice(nIndex,1);delete this.aWorksheetsById[removedSheetId];if(nIndex==this.getActive()){oVisibleWs=this.findSheetNoHidden(nIndex);
if(null!=oVisibleWs)wsActive=oVisibleWs}History.Add(AscCommonExcel.g_oUndoRedoWorkbook,AscCH.historyitem_Workbook_SheetRemove,null,null,new AscCommonExcel.UndoRedoData_SheetRemove(nIndex,removedSheetId,removedSheet));if(null!=oVisibleWs){History.SetSheetUndo(removedSheetId);History.SetSheetRedo(wsActive.getId())}if(null!=outputParams)outputParams.sheet=removedSheet;this._updateWorksheetIndexes(wsActive);this.dependencyFormulas.removeSheet(prepared);this.dependencyFormulas.unlockRecal();return wsActive.getIndex()}return-1};
Workbook.prototype._updateWorksheetIndexes=function(wsActive){this.forEach(function(ws,index){ws._setIndex(index)});if(null!=wsActive)this.setActive(wsActive.getIndex())};Workbook.prototype.checkUniqueSheetName=function(name){var workbookSheetCount=this.getWorksheetCount();for(var i=0;i<workbookSheetCount;i++)if(this.getWorksheet(i).getName()==name)return i;return-1};Workbook.prototype.checkValidSheetName=function(name){return name&&name.length<g_nSheetNameMaxLength};Workbook.prototype.getUniqueSheetNameFrom=
function(name,bCopy){var nIndex=1;var sNewName="";var fGetPostfix=null;if(bCopy){var result=/^(.*)\((\d)\)$/.exec(name);if(result){fGetPostfix=function(nIndex){return"("+nIndex+")"};name=result[1]}else{fGetPostfix=function(nIndex){return" ("+nIndex+")"};name=name}}else fGetPostfix=function(nIndex){return nIndex.toString()};var workbookSheetCount=this.getWorksheetCount();while(nIndex<1E4){var sPosfix=fGetPostfix(nIndex);sNewName=name+sPosfix;if(sNewName.length>g_nSheetNameMaxLength){name=name.substring(0,
g_nSheetNameMaxLength-sPosfix.length);sNewName=name+sPosfix}var bUniqueName=true;for(var i=0;i<workbookSheetCount;i++)if(this.getWorksheet(i).getName()==sNewName){bUniqueName=false;break}if(bUniqueName)break;nIndex++}return sNewName};Workbook.prototype._generateFontMap=function(){var oFontMap={"Arial":1};var i;oFontMap[g_oDefaultFormat.Font.getName()]=1;if(null!=this.theme)AscFormat.checkThemeFonts(oFontMap,this.theme.themeElements.fontScheme);for(i=1;i<=g_StyleCache.getXfCount();++i){var xf=g_StyleCache.getXf(i);
if(xf.font)oFontMap[xf.font.getName()]=1}this.sharedStrings.generateFontMap(oFontMap);this.forEach(function(ws){ws.generateFontMap(oFontMap)});this.CellStyles.generateFontMap(oFontMap);return oFontMap};Workbook.prototype.generateFontMap=function(){var oFontMap=this._generateFontMap();var aRes=[];for(var i in oFontMap)aRes.push(i);return aRes};Workbook.prototype.generateFontMap2=function(){var oFontMap=this._generateFontMap();var aRes=[];for(var i in oFontMap)aRes.push(new AscFonts.CFont(i,0,"",0));
AscFonts.FontPickerByCharacter.extendFonts(aRes);return aRes};Workbook.prototype.getAllImageUrls=function(){var aImageUrls=[];this.forEach(function(ws){ws.getAllImageUrls(aImageUrls)});return aImageUrls};Workbook.prototype.reassignImageUrls=function(oImages){this.forEach(function(ws){ws.reassignImageUrls(oImages)})};Workbook.prototype.recalcWB=function(rebuild,opt_sheetId){var formulas;if(rebuild){formulas=this.getAllFormulas();for(var i=0;i<formulas.length;++i){var formula=formulas[i];formula.removeDependencies();
formula.setFormula(formula.getFormula());formula.parse();formula.buildDependencies()}}else if(opt_sheetId){formulas=[];var ws=this.getWorksheetById(opt_sheetId);ws.getAllFormulas(formulas)}else formulas=this.getAllFormulas();this.dependencyFormulas.notifyChanged(formulas);this.dependencyFormulas.calcTree()};Workbook.prototype.checkDefName=function(checkName,scope){return this.dependencyFormulas.checkDefName(checkName,scope)};Workbook.prototype.getDefinedNamesWB=function(defNameListId,bLocale){return this.dependencyFormulas.getDefinedNamesWB(defNameListId,
bLocale)};Workbook.prototype.getDefinedNamesWS=function(sheetId){return this.dependencyFormulas.getDefinedNamesWS(sheetId)};Workbook.prototype.addDefName=function(name,ref,sheetId,hidden,isTable){return this.dependencyFormulas.addDefName(name,ref,sheetId,hidden,isTable)};Workbook.prototype.getDefinesNames=function(name,sheetId){return this.dependencyFormulas.getDefNameByName(name,sheetId)};Workbook.prototype.getDefinedName=function(name){var sheetId=this.getSheetIdByIndex(name.LocalSheetId);return this.dependencyFormulas.getDefNameByName(name.Name,
sheetId)};Workbook.prototype.delDefinesNames=function(defName){this.delDefinesNamesUndoRedo(this.getUndoDefName(defName))};Workbook.prototype.delDefinesNamesUndoRedo=function(defName){this.dependencyFormulas.removeDefName(defName.sheetId,defName.name);this.dependencyFormulas.calcTree()};Workbook.prototype.editDefinesNames=function(oldName,newName){return this.editDefinesNamesUndoRedo(this.getUndoDefName(oldName),this.getUndoDefName(newName))};Workbook.prototype.editDefinesNamesUndoRedo=function(oldName,
newName){var res=this.dependencyFormulas.editDefinesNames(oldName,newName);this.dependencyFormulas.calcTree();return res};Workbook.prototype.findDefinesNames=function(ref,sheetId,bLocale){return this.dependencyFormulas.getDefNameByRef(ref,sheetId,bLocale)};Workbook.prototype.unlockDefName=function(){this.dependencyFormulas.unlockDefName()};Workbook.prototype.unlockCurrentDefName=function(name,sheetId){this.dependencyFormulas.unlockCurrentDefName(name,sheetId)};Workbook.prototype.checkDefNameLock=
function(){return this.dependencyFormulas.checkDefNameLock()};Workbook.prototype._SerializeHistoryBase64=function(oMemory,item,aPointChangesBase64){if(!item.LocalChange){var nPosStart=oMemory.GetCurPosition();item.Serialize(oMemory,this.oApi.collaborativeEditing);var nPosEnd=oMemory.GetCurPosition();var nLen=nPosEnd-nPosStart;if(nLen>0)aPointChangesBase64.push(nLen+";"+oMemory.GetBase64Memory2(nPosStart,nLen))}};Workbook.prototype.SerializeHistory=function(){var aRes=[];var t,j,length2;AscCommon.CollaborativeEditing.Refresh_DCChanges();
var aActions=this.aCollaborativeActions.concat(History.GetSerializeArray());if(aActions.length>0){var oMemory=new AscCommon.CMemory;for(var i=0,length=aActions.length;i<length;++i){var aPointChanges=aActions[i];for(j=0,length2=aPointChanges.length;j<length2;++j){var item=aPointChanges[j];this._SerializeHistoryBase64(oMemory,item,aRes)}}this.aCollaborativeActions=[];this.snapshot=this._getSnapshot()}return aRes};Workbook.prototype._getSnapshot=function(){var wb=new Workbook(new AscCommonExcel.asc_CHandlersList,
this.oApi);wb.dependencyFormulas=this.dependencyFormulas.getSnapshot(wb);this.forEach(function(ws){ws=ws.getSnapshot(wb);wb.aWorksheets.push(ws);wb.aWorksheetsById[ws.getId()]=ws});wb.init({},true,false);return wb};Workbook.prototype.getAllFormulas=function(){var res=[];this.dependencyFormulas.getAllFormulas(res);this.forEach(function(ws){ws.getAllFormulas(res)});return res};Workbook.prototype._forwardTransformation=function(wbSnapshot,changesMine,changesTheir){History.TurnOff();var res1=this._forwardTransformationGetTransform(wbSnapshot,
changesTheir,changesMine);var res2=this._forwardTransformationGetTransform(wbSnapshot,changesMine,changesTheir);var i,elem,elemWrap;for(i=0;i<res1.modify.length;++i){elemWrap=res1.modify[i];elem=elemWrap.elem;elem.oClass.forwardTransformationSet(elem.nActionType,elem.oData,elem.nSheetId,elemWrap)}for(i=0;i<res2.modify.length;++i){elemWrap=res2.modify[i];elem=elemWrap.elem;elem.oClass.forwardTransformationSet(elem.nActionType,elem.oData,elem.nSheetId,elemWrap)}for(var oldName in res1.renameSheet){var ws=
this.getWorksheetByName(oldName);if(ws)ws.setName(res1.renameSheet[oldName])}History.TurnOn()};Workbook.prototype._forwardTransformationGetTransform=function(wbSnapshot,changesMaster,changesModify){var res={modify:[],renameSheet:{}};var changesMasterSelected=[];var i,elem;if(changesModify.length>0)for(i=0;i<changesMaster.length;++i){elem=changesMaster[i];if(elem.oClass&&elem.oClass.forwardTransformationIsAffect&&elem.oClass.forwardTransformationIsAffect(elem.nActionType))changesMasterSelected.push(elem)}if(changesMasterSelected.length>
0&&changesModify.length>0){var wbSnapshotCur=wbSnapshot._getSnapshot();var formulas=[];for(i=0;i<changesModify.length;++i){elem=changesModify[i];var renameRes=null;if(elem.oClass&&elem.oClass.forwardTransformationGet){var getRes=elem.oClass.forwardTransformationGet(elem.nActionType,elem.oData,elem.nSheetId);if(getRes&&getRes.formula)formulas.push(new ForwardTransformationFormula(elem,getRes.formula,null));if(getRes&&getRes.name)renameRes=this._forwardTransformationRenameStart(wbSnapshotCur._getSnapshot(),
changesMasterSelected,getRes)}if(elem.oClass&&elem.oClass.forwardTransformationIsAffect&&elem.oClass.forwardTransformationIsAffect(elem.nActionType)){if(formulas.length>0){this._forwardTransformationFormula(wbSnapshotCur._getSnapshot(),formulas,changesMasterSelected,res);formulas=[]}elem.oClass.Redo(elem.nActionType,elem.oData,elem.nSheetId,wbSnapshotCur)}if(renameRes)this._forwardTransformationRenameEnd(renameRes,res.renameSheet,getRes,elem)}this._forwardTransformationFormula(wbSnapshotCur,formulas,
changesMasterSelected,res)}return res};Workbook.prototype._forwardTransformationRenameStart=function(wbSnapshot,changes,getRes){var res={newName:null};for(var i=0;i<changes.length;++i){var elem=changes[i];elem.oClass.Redo(elem.nActionType,elem.oData,elem.nSheetId,wbSnapshot)}if(-1!=wbSnapshot.checkUniqueSheetName(getRes.name))res.newName=wbSnapshot.getUniqueSheetNameFrom(getRes.name,true);return res};Workbook.prototype._forwardTransformationRenameEnd=function(renameRes,renameSheet,getRes,elemCur){var isChange=
false;if(getRes.from){var renameCur=renameSheet[getRes.from];if(renameCur){delete renameSheet[getRes.from];getRes.from=renameCur;isChange=true}}if(renameRes&&renameRes.newName){renameSheet[getRes.name]=renameRes.newName;getRes.name=renameRes.newName;isChange=true}if(isChange&&elemCur.oClass.forwardTransformationSet)elemCur.oClass.forwardTransformationSet(elemCur.nActionType,elemCur.oData,elemCur.nSheetId,getRes)};Workbook.prototype._forwardTransformationFormula=function(wbSnapshot,formulas,changes,
res){if(formulas.length>0){var i,elem,ftFormula,ws;for(i=0;i<formulas.length;++i){ftFormula=formulas[i];ws=wbSnapshot.getWorksheetById(ftFormula.elem.nSheetId);if(ws){ftFormula.parsed=new parserFormula(ftFormula.formula,ftFormula,ws);ftFormula.parsed.parse();ftFormula.parsed.buildDependencies()}}for(var oldName in res.renameSheet){ws=wbSnapshot.getWorksheetByName(oldName);if(ws)ws.setName(res.renameSheet[oldName])}for(i=0;i<changes.length;++i){elem=changes[i];elem.oClass.Redo(elem.nActionType,elem.oData,
elem.nSheetId,wbSnapshot)}for(i=0;i<formulas.length;++i){ftFormula=formulas[i];if(ftFormula.parsed){ftFormula.parsed.removeDependencies();res.modify.push(ftFormula)}}}};Workbook.prototype.DeserializeHistory=function(aChanges,fCallback){var oThis=this;this.aCollaborativeActions=this.aCollaborativeActions.concat(History.GetSerializeArray());if(aChanges.length>0){this.bCollaborativeChanges=true;var dstLen=0;var aIndexes=[],i,length=aChanges.length,sChange;for(i=0;i<length;++i){sChange=aChanges[i];var nIndex=
sChange.indexOf(";");if(-1!=nIndex){dstLen+=parseInt(sChange.substring(0,nIndex));nIndex++}aIndexes.push(nIndex)}var pointer=g_memory.Alloc(dstLen);var stream=new AscCommon.FT_Stream2(pointer.data,dstLen);stream.obj=pointer.obj;var nCurOffset=0;var aUndoRedoElems=[];for(i=0;i<length;++i){sChange=aChanges[i];var oBinaryFileReader=new AscCommonExcel.BinaryFileReader;nCurOffset=oBinaryFileReader.getbase64DecodedData2(sChange,aIndexes[i],stream,nCurOffset);var item=new UndoRedoItemSerializable;item.Deserialize(stream);
aUndoRedoElems.push(item)}var wsViews=window["Asc"]["editor"].wb.wsViews;if(oThis.oApi.collaborativeEditing.getFast())AscCommon.CollaborativeEditing.Clear_DocumentPositions();for(var i in wsViews)if(isRealObject(wsViews[i])&&isRealObject(wsViews[i].objectRender)&&isRealObject(wsViews[i].objectRender.controller)){wsViews[i].endEditChart();if(oThis.oApi.collaborativeEditing.getFast()){var oState=wsViews[i].objectRender.saveStateBeforeLoadChanges();if(oState){if(oState.Pos)AscCommon.CollaborativeEditing.Add_DocumentPosition(oState.Pos);
if(oState.StartPos)AscCommon.CollaborativeEditing.Add_DocumentPosition(oState.StartPos);if(oState.EndPos)AscCommon.CollaborativeEditing.Add_DocumentPosition(oState.EndPos)}}wsViews[i].objectRender.controller.resetSelection()}oFormulaLocaleInfo.Parse=false;oFormulaLocaleInfo.DigitSep=false;AscFonts.IsCheckSymbols=true;History.Clear();History.TurnOff();var history=new AscCommon.CHistory;history.init(this);history.Create_NewPoint();history.SetSelection(null);history.SetSelectionRedo(null);var oRedoObjectParam=
new AscCommonExcel.RedoObjectParam;history.UndoRedoPrepare(oRedoObjectParam,false);var changesMine=[].concat.apply([],oThis.aCollaborativeActions);oThis._forwardTransformation(oThis.snapshot,changesMine,aUndoRedoElems);for(var i=0,length=aUndoRedoElems.length;i<length;++i){var item=aUndoRedoElems[i];if((null!=item.oClass||item.oData&&typeof item.oData.sChangedObjectId==="string")&&null!=item.nActionType){if(window["NATIVE_EDITOR_ENJINE"]===true&&window["native"]["CheckNextChange"])if(!window["native"]["CheckNextChange"]())break;
history.RedoAdd(oRedoObjectParam,item.oClass,item.nActionType,item.nSheetId,item.oRange,item.oData)}}AscFonts.IsCheckSymbols=false;var oFontMap=this._generateFontMap();window["Asc"]["editor"]._loadFonts(oFontMap,function(){if(oThis.oApi.collaborativeEditing.getFast())for(var i in wsViews)if(isRealObject(wsViews[i])&&isRealObject(wsViews[i].objectRender)&&isRealObject(wsViews[i].objectRender.controller)){var oState=wsViews[i].objectRender.getStateBeforeLoadChanges();if(oState){if(oState.Pos)AscCommon.CollaborativeEditing.Update_DocumentPosition(oState.Pos);
if(oState.StartPos)AscCommon.CollaborativeEditing.Update_DocumentPosition(oState.StartPos);if(oState.EndPos)AscCommon.CollaborativeEditing.Update_DocumentPosition(oState.EndPos)}wsViews[i].objectRender.loadStateAfterLoadChanges()}oFormulaLocaleInfo.Parse=true;oFormulaLocaleInfo.DigitSep=true;history.UndoRedoEnd(null,oRedoObjectParam,false);History.TurnOn();oThis.bCollaborativeChanges=false;oThis.snapshot=oThis._getSnapshot();if(null!=fCallback)fCallback()})}else if(null!=fCallback)fCallback()};Workbook.prototype.DeserializeHistoryNative=
function(oRedoObjectParam,data,isFull){if(null!=data){this.bCollaborativeChanges=true;if(null==oRedoObjectParam){var wsViews=window["Asc"]["editor"].wb.wsViews;for(var i in wsViews)if(isRealObject(wsViews[i])&&isRealObject(wsViews[i].objectRender)&&isRealObject(wsViews[i].objectRender.controller)){wsViews[i].endEditChart();wsViews[i].objectRender.controller.resetSelection()}History.Clear();History.Create_NewPoint();History.SetSelection(null);History.SetSelectionRedo(null);oRedoObjectParam=new AscCommonExcel.RedoObjectParam;
History.UndoRedoPrepare(oRedoObjectParam,false)}var stream=new AscCommon.FT_Stream2(data,data.length);stream.obj=null;var _count=stream.GetLong();var _pos=4;for(var i=0;i<_count;i++){if(window["NATIVE_EDITOR_ENJINE"]===true&&window["native"]["CheckNextChange"])if(!window["native"]["CheckNextChange"]())break;var _len=stream.GetLong();_pos+=4;stream.size=_pos+_len;stream.Seek(_pos);stream.Seek2(_pos);var item=new UndoRedoItemSerializable;item.Deserialize(stream);if((null!=item.oClass||item.oData&&typeof item.oData.sChangedObjectId===
"string")&&null!=item.nActionType)History.RedoAdd(oRedoObjectParam,item.oClass,item.nActionType,item.nSheetId,item.oRange,item.oData);_pos+=_len;stream.Seek2(_pos);stream.size=data.length}if(isFull){History.UndoRedoEnd(null,oRedoObjectParam,false);History.Clear();oRedoObjectParam=null}this.bCollaborativeChanges=false}return oRedoObjectParam};Workbook.prototype.getTableRangeForFormula=function(name,objectParam){var res=null;for(var i=0,length=this.aWorksheets.length;i<length;++i){var ws=this.aWorksheets[i];
res=ws.getTableRangeForFormula(name,objectParam);if(res!==null){res={wsID:ws.getId(),range:res};break}}return res};Workbook.prototype.getTableIndexColumnByName=function(tableName,columnName){var res=null;for(var i=0,length=this.aWorksheets.length;i<length;++i){var ws=this.aWorksheets[i];res=ws.getTableIndexColumnByName(tableName,columnName);if(res!==null){res={wsID:ws.getId(),index:res,name:ws.getTableNameColumnByIndex(tableName,res)};break}}return res};Workbook.prototype.getTableNameColumnByIndex=
function(tableName,columnIndex){var res=null;for(var i=0,length=this.aWorksheets.length;i<length;++i){var ws=this.aWorksheets[i];res=ws.getTableNameColumnByIndex(tableName,columnIndex);if(res!==null){res={wsID:ws.getId(),columnName:res};break}}return res};Workbook.prototype.getTableByName=function(tableName,wsID){var res=null;var ws=this.getWorksheetById(wsID);return ws.getTableByName(tableName)};Workbook.prototype.updateSparklineCache=function(sheet,ranges){this.forEach(function(ws){ws.updateSparklineCache(sheet,
ranges)})};Workbook.prototype.sortDependency=function(){this.dependencyFormulas.calcTree()};Workbook.prototype.charCountToModelColWidth=function(count){if(count<=0)return 0;return Asc.floor((count*this.maxDigitWidth+this.paddingPlusBorder)/this.maxDigitWidth*256)/256};Workbook.prototype.modelColWidthToColWidth=function(mcw){return Asc.floor((256*mcw+Asc.floor(128/this.maxDigitWidth))/256*this.maxDigitWidth)};Workbook.prototype.colWidthToCharCount=function(w){var pxInOneCharacter=this.maxDigitWidth+
this.paddingPlusBorder;return w<pxInOneCharacter?1-Asc.floor(100*(pxInOneCharacter-w)/pxInOneCharacter+.49999)/100:Asc.floor((w-this.paddingPlusBorder)/this.maxDigitWidth*100+.5)/100};Workbook.prototype.getUndoDefName=function(ascName){if(!ascName)return ascName;var sheetId=this.getSheetIdByIndex(ascName.LocalSheetId);return new UndoRedoData_DefinedNames(ascName.Name,ascName.Ref,sheetId,ascName.isTable,ascName.isXLNM)};Workbook.prototype.changeColorScheme=function(sSchemeName){var scheme=AscCommon.getColorSchemeByName(sSchemeName);
if(!scheme)scheme=this.theme.getExtraClrScheme(sSchemeName);if(!scheme)return;History.Create_NewPoint();History.Add(AscCommonExcel.g_oUndoRedoWorkbook,AscCH.historyitem_Workbook_ChangeColorScheme,null,null,new AscCommonExcel.UndoRedoData_ClrScheme(this.theme.themeElements.clrScheme,scheme));this.theme.themeElements.clrScheme=scheme;this.rebuildColors();return true};Workbook.prototype.cleanFindResults=function(){this.lastFindOptions=null;this.lastFindCells={}};Workbook.prototype.findCellText=function(options){var ws=
this.getActiveWs();var result=ws.findCellText(options),result2=null;if(!options.scanOnOnlySheet){var key=result&&result.col+"-"+result.row;if(!key||options.isEqual(this.lastFindOptions)&&this.lastFindCells[key]){var i,active=this.getActive(),start=0,end=this.getWorksheetCount();var inc=options.scanForward?+1:-1;for(i=active+inc;i<end&&i>=start;i+=inc){ws=this.getWorksheet(i);if(ws.getHidden())continue;result2=ws.findCellText(options);if(result2)break}if(!result2){if(options.scanForward){i=0;end=active}else{i=
end-1;start=active+1}inc*=-1;for(;i<end&&i>=start;i+=inc){ws=this.getWorksheet(i);if(ws.getHidden())continue;result2=ws.findCellText(options);if(result2)break}}if(result2){this.handlers.trigger("undoRedoHideSheet",i);key=result2.col+"-"+result2.row}}if(key){this.lastFindOptions=options.clone();this.lastFindCells[key]=true}}if(!result2&&!result)this.cleanFindResults();return result2||result};Workbook.prototype.getComment=function(id){if(id){var sheet;for(var i=0;i<this.aWorksheets.length;++i){sheet=
this.aWorksheets[i];for(var j=0;j<sheet.aComments.length;++j)if(id===sheet.aComments[j].asc_getGuid())return sheet.aComments[j]}}return null};var tempHelp=new ArrayBuffer(8);var tempHelpUnit=new Uint8Array(tempHelp);var tempHelpFloat=new Float64Array(tempHelp);function SheetMemory(structSize,maxIndex){this.data=null;this.count=0;this.structSize=structSize;this.maxIndex=maxIndex}SheetMemory.prototype.checkSize=function(index){var allocatedCount=this.data?this.data.length/this.structSize:0;if(allocatedCount<
index+1){var newAllocatedCount=Math.min(Math.max(1.5*this.count>>0,index+1),this.maxIndex+1);if(newAllocatedCount>allocatedCount){var oldData=this.data;this.data=new Uint8Array(newAllocatedCount*this.structSize);if(oldData)this.data.set(oldData)}}this.count=Math.min(Math.max(this.count,index+1),this.maxIndex+1)};SheetMemory.prototype.hasSize=function(index){return index+1<=this.count};SheetMemory.prototype.getSize=function(){return this.count};SheetMemory.prototype.clone=function(){var sheetMemory=
new SheetMemory(this.structSize,this.maxIndex);sheetMemory.data=this.data?new Uint8Array(this.data):null;sheetMemory.count=this.count;return sheetMemory};SheetMemory.prototype.deleteRange=function(start,deleteCount){if(start<this.count){var startOffset=start*this.structSize;if(start+deleteCount<this.count){var endOffset=(start+deleteCount)*this.structSize;this.data.set(this.data.subarray(endOffset),startOffset);this.data.fill(0,(this.count-deleteCount)*this.structSize);this.count-=deleteCount}else{this.data.fill(0,
startOffset);this.count=start}}};SheetMemory.prototype.insertRange=function(start,insertCount){if(start<this.count){this.checkSize(this.count-1+insertCount);var startOffset=start*this.structSize;if(start+insertCount<this.count){var endOffset=(start+insertCount)*this.structSize;var endData=(this.count-insertCount)*this.structSize;this.data.set(this.data.subarray(startOffset,endData),endOffset);this.data.fill(0,startOffset,endOffset)}else this.data.fill(0,startOffset)}};SheetMemory.prototype.copyRange=
function(sheetMemory,startFrom,startTo,count){var countCopied=0;if(startFrom<sheetMemory.count){countCopied=Math.min(count,sheetMemory.count-startFrom);this.checkSize(startTo+countCopied);countCopied=Math.min(countCopied,this.count-startTo);if(countCopied>0){var startOffsetFrom=startFrom*this.structSize;var endOffsetFrom=(startFrom+countCopied)*this.structSize;var startOffsetTo=startTo*this.structSize;this.data.set(sheetMemory.data.subarray(startOffsetFrom,endOffsetFrom),startOffsetTo)}}var countErase=
Math.min(count-countCopied,this.count-(startTo+countCopied));if(countErase>0){var startOffsetErase=(startTo+countCopied)*this.structSize;var endOffsetErase=(startTo+countCopied+countErase)*this.structSize;this.data.fill(0,startOffsetErase,endOffsetErase)}};SheetMemory.prototype.copyRangeByChunk=function(from,fromCount,to,toCount){if(from<this.count){this.checkSize(to+toCount-1);var fromStartOffset=from*this.structSize;var fromEndOffset=Math.min(from+fromCount,this.count)*this.structSize;var fromSubArray=
this.data.subarray(fromStartOffset,fromEndOffset);for(var i=to;i<to+toCount&&i<this.count;i+=fromCount)this.data.set(fromSubArray,i*this.structSize)}};SheetMemory.prototype.clear=function(start,end){end=Math.min(end,this.count);if(start<end)this.data.fill(0,start*this.structSize,end*this.structSize)};SheetMemory.prototype.getUint8=function(index,offset){offset+=index*this.structSize;return this.data[offset]};SheetMemory.prototype.setUint8=function(index,offset,val){offset+=index*this.structSize;this.data[offset]=
val};SheetMemory.prototype.getUint16=function(index,offset){offset+=index*this.structSize;return AscFonts.FT_Common.IntToUInt(this.data[offset]|this.data[offset+1]<<8)};SheetMemory.prototype.setUint16=function(index,offset,val){offset+=index*this.structSize;this.data[offset]=val&255;this.data[offset+1]=val>>>8&255};SheetMemory.prototype.getUint32=function(index,offset){offset+=index*this.structSize;return AscFonts.FT_Common.IntToUInt(this.data[offset]|this.data[offset+1]<<8|this.data[offset+2]<<16|
this.data[offset+3]<<24)};SheetMemory.prototype.setUint32=function(index,offset,val){offset+=index*this.structSize;this.data[offset]=val&255;this.data[offset+1]=val>>>8&255;this.data[offset+2]=val>>>16&255;this.data[offset+3]=val>>>24&255};SheetMemory.prototype.getFloat64=function(index,offset){offset+=index*this.structSize;tempHelpUnit[0]=this.data[offset];tempHelpUnit[1]=this.data[offset+1];tempHelpUnit[2]=this.data[offset+2];tempHelpUnit[3]=this.data[offset+3];tempHelpUnit[4]=this.data[offset+
4];tempHelpUnit[5]=this.data[offset+5];tempHelpUnit[6]=this.data[offset+6];tempHelpUnit[7]=this.data[offset+7];return tempHelpFloat[0]};SheetMemory.prototype.setFloat64=function(index,offset,val){offset+=index*this.structSize;tempHelpFloat[0]=val;this.data[offset]=tempHelpUnit[0];this.data[offset+1]=tempHelpUnit[1];this.data[offset+2]=tempHelpUnit[2];this.data[offset+3]=tempHelpUnit[3];this.data[offset+4]=tempHelpUnit[4];this.data[offset+5]=tempHelpUnit[5];this.data[offset+6]=tempHelpUnit[6];this.data[offset+
7]=tempHelpUnit[7]};function Worksheet(wb,_index,sId){this.workbook=wb;this.sName=this.workbook.getUniqueSheetNameFrom(g_sNewSheetNamePattern,false);this.bHidden=false;this.oSheetFormatPr=new AscCommonExcel.SheetFormatPr;this.index=_index;this.Id=null!=sId?sId:AscCommon.g_oIdCounter.Get_NewId();this.nRowsCount=0;this.nColsCount=0;this.rowsData=new SheetMemory(AscCommonExcel.g_nRowStructSize,gc_nMaxRow0);this.cellsByCol=[];this.cellsByColRowsCount=0;this.aCols=[];this.hiddenManager=new HiddenManager(this);
this.Drawings=[];this.TableParts=[];this.AutoFilter=null;this.oAllCol=null;this.aComments=[];var oThis=this;this.bExcludeHiddenRows=false;this.bIgnoreWriteFormulas=false;this.mergeManager=new RangeDataManager(function(data,from,to){if(History.Is_On()&&(null!=from||null!=to)){if(null!=from)from=from.clone();if(null!=to)to=to.clone();var oHistoryRange=from;if(null==oHistoryRange)oHistoryRange=to;History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_ChangeMerge,oThis.getId(),oHistoryRange,
new UndoRedoData_FromTo(new UndoRedoData_BBox(from),new UndoRedoData_BBox(to)))}if(null!=to){var maxRow=gc_nMaxRow0!==to.r2?to.r2:to.r1;var maxCol=gc_nMaxCol0!==to.c2?to.c2:to.c1;if(maxRow>=oThis.nRowsCount)oThis.nRowsCount=maxRow+1;if(maxCol>=oThis.nColsCount)oThis.nColsCount=maxCol+1}});this.mergeManager.worksheet=this;this.hyperlinkManager=new RangeDataManager(function(data,from,to,oChangeParam){if(History.Is_On()&&(null!=from||null!=to)){if(null!=from)from=from.clone();if(null!=to)to=to.clone();
var oHistoryRange=from;if(null==oHistoryRange)oHistoryRange=to;var oHistoryData=null;if(null==from||null==to)oHistoryData=data.clone();History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_ChangeHyperlink,oThis.getId(),oHistoryRange,new AscCommonExcel.UndoRedoData_FromToHyperlink(from,to,oHistoryData))}if(null!=to)data.Ref=oThis.getRange3(to.r1,to.c1,to.r2,to.c2);else if(oChangeParam&&oChangeParam.removeStyle&&null!=data.Ref)data.Ref.cleanFormat();if(null!=to){var maxRow=gc_nMaxRow0!==
to.r2?to.r2:to.r1;var maxCol=gc_nMaxCol0!==to.c2?to.c2:to.c1;if(maxRow>=oThis.nRowsCount)oThis.nRowsCount=maxRow+1;if(maxCol>=oThis.nColsCount)oThis.nColsCount=maxCol+1}});this.hyperlinkManager.setDependenceManager(this.mergeManager);this.DrawingDocument=new AscCommon.CDrawingDocument;this.sheetViews=[];this.aConditionalFormattingRules=[];this.updateConditionalFormattingRange=null;this.dataValidations=null;this.sheetPr=null;this.aFormulaExt=null;this.autoFilters=AscCommonExcel.AutoFilters!==undefined?
new AscCommonExcel.AutoFilters(this):null;this.oDrawingOjectsManager=new DrawingObjectsManager(this);this.contentChanges=new AscCommon.CContentChanges;this.aSparklineGroups=[];this.selectionRange=new AscCommonExcel.SelectionRange(this);this.sheetMergedStyles=new AscCommonExcel.SheetMergedStyles;this.pivotTables=[];this.headerFooter=new Asc.CHeaderFooter(this);this.rowBreaks=null;this.colBreaks=null;this.legacyDrawingHF=null;this.picture=null;this.PagePrintOptions=new Asc.asc_CPageOptions(this);this.formulaArrayLink=
null;this.lastFindOptions=null;this.bExcludeCollapsed=false;this.handlers=null}Worksheet.prototype.getCompiledStyle=function(row,col,opt_cell,opt_styleComponents){return getCompiledStyle(this.sheetMergedStyles,this.hiddenManager,row,col,opt_cell,this,opt_styleComponents)};Worksheet.prototype.getCompiledStyleCustom=function(row,col,needTable,needCell,needConditional,opt_cell){var res;var styleComponents=this.sheetMergedStyles.getStyle(this.hiddenManager,row,col,this);var ws=this;if(!needTable)styleComponents.table=
[];if(!needConditional)styleComponents.conditional=[];if(!needCell)res=getCompiledStyle(undefined,undefined,row,col,undefined,undefined,styleComponents);else if(opt_cell)res=getCompiledStyle(undefined,undefined,row,col,opt_cell,ws,styleComponents);else this._getCellNoEmpty(row,col,function(cell){res=getCompiledStyle(undefined,undefined,row,col,cell,ws,styleComponents)});return res};Worksheet.prototype.getColData=function(index){var sheetMemory=this.cellsByCol[index];if(!sheetMemory){sheetMemory=new SheetMemory(g_nCellStructSize,
gc_nMaxRow0);this.cellsByCol[index]=sheetMemory}return sheetMemory};Worksheet.prototype.getColDataNoEmpty=function(index){return this.cellsByCol[index]};Worksheet.prototype.getColDataLength=function(){return this.cellsByCol.length};Worksheet.prototype.getSnapshot=function(wb){var ws=new Worksheet(wb,this.index,this.Id);ws.sName=this.sName;for(var i=0;i<this.TableParts.length;++i){var table=this.TableParts[i];ws.addTablePart(table.clone(null),false)}for(i=0;i<this.sheetViews.length;++i)ws.sheetViews.push(this.sheetViews[i].clone());
return ws};Worksheet.prototype.addContentChanges=function(changes){this.contentChanges.Add(changes)};Worksheet.prototype.refreshContentChanges=function(){this.contentChanges.Refresh();this.contentChanges.Clear()};Worksheet.prototype.rebuildColors=function(){this.rebuildTabColor();for(var i=0;i<this.aSparklineGroups.length;++i)this.aSparklineGroups[i].cleanCache()};Worksheet.prototype.generateFontMap=function(oFontMap){for(var i=0,length=this.Drawings.length;i<length;++i){var drawing=this.Drawings[i];
if(drawing)drawing.getAllFonts(oFontMap)}if(this.headerFooter)this.headerFooter.getAllFonts(oFontMap)};Worksheet.prototype.getAllImageUrls=function(aImages){for(var i=0;i<this.Drawings.length;++i)this.Drawings[i].graphicObject.getAllRasterImages(aImages)};Worksheet.prototype.reassignImageUrls=function(oImages){for(var i=0;i<this.Drawings.length;++i)this.Drawings[i].graphicObject.Reassign_ImageUrls(oImages)};Worksheet.prototype.copyFrom=function(wsFrom,sName,tableNames){var i,elem,range;var t=this;
this.sName=this.workbook.checkValidSheetName(sName)?sName:this.workbook.getUniqueSheetNameFrom(wsFrom.sName,true);this.bHidden=wsFrom.bHidden;this.oSheetFormatPr=wsFrom.oSheetFormatPr.clone();this.nRowsCount=wsFrom.nRowsCount;this.nColsCount=wsFrom.nColsCount;var renameParams={lastName:wsFrom.getName(),newName:this.getName(),tableNameMap:{}};for(i=0;i<wsFrom.TableParts.length;++i){var tableFrom=wsFrom.TableParts[i];var tableTo=tableFrom.clone(null);if(tableNames&&tableNames.length)tableTo.changeDisplayName(tableNames[i]);
else tableTo.changeDisplayName(this.workbook.dependencyFormulas.getNextTableName());this.addTablePart(tableTo,true);renameParams.tableNameMap[tableFrom.DisplayName]=tableTo.DisplayName}for(i=0;i<this.TableParts.length;++i)this.TableParts[i].renameSheetCopy(this,renameParams);if(wsFrom.AutoFilter)this.AutoFilter=wsFrom.AutoFilter.clone();for(i in wsFrom.aCols){var col=wsFrom.aCols[i];if(null!=col)this.aCols[i]=col.clone(this)}if(null!=wsFrom.oAllCol)this.oAllCol=wsFrom.oAllCol.clone(this);this.rowsData=
wsFrom.rowsData.clone();wsFrom._forEachColData(function(sheetMemory,index){t.cellsByCol[index]=sheetMemory.clone()});this.cellsByColRowsCount=wsFrom.cellsByColRowsCount;var aMerged=wsFrom.mergeManager.getAll();for(i in aMerged){elem=aMerged[i];range=this.getRange3(elem.bbox.r1,elem.bbox.c1,elem.bbox.r2,elem.bbox.c2);range.mergeOpen()}var aHyperlinks=wsFrom.hyperlinkManager.getAll();for(i in aHyperlinks){elem=aHyperlinks[i];range=this.getRange3(elem.bbox.r1,elem.bbox.c1,elem.bbox.r2,elem.bbox.c2);
range.setHyperlinkOpen(elem.data)}if(null!=wsFrom.aComments)for(i=0;i<wsFrom.aComments.length;i++){var comment=wsFrom.aComments[i].clone();comment.wsId=this.getId();comment.nId="sheet"+comment.wsId+"_"+(i+1);this.aComments.push(comment)}for(i=0;i<wsFrom.sheetViews.length;++i)this.sheetViews.push(wsFrom.sheetViews[i].clone());for(i=0;i<wsFrom.aConditionalFormattingRules.length;++i)this.aConditionalFormattingRules.push(wsFrom.aConditionalFormattingRules[i].clone());if(wsFrom.dataValidations)this.dataValidations=
wsFrom.dataValidations.clone();if(wsFrom.sheetPr)this.sheetPr=wsFrom.sheetPr.clone();this.selectionRange=wsFrom.selectionRange.clone(this);var oldNewArrayFormulaMap=[];this._forEachCell(function(cell){if(cell.isFormula()){var parsed,notMainArrayCell;if(cell.transformSharedFormula())parsed=cell.getFormulaParsed();else{parsed=cell.getFormulaParsed();if(parsed.getArrayFormulaRef()){var listenerId=parsed.getListenerId();if(oldNewArrayFormulaMap[listenerId]){parsed=oldNewArrayFormulaMap[listenerId];notMainArrayCell=
true}else{parsed=parsed.clone(null,new CCellWithFormula(t,cell.nRow,cell.nCol),t);oldNewArrayFormulaMap[listenerId]=parsed}}else parsed=parsed.clone(null,new CCellWithFormula(t,cell.nRow,cell.nCol),t)}if(!notMainArrayCell){parsed.renameSheetCopy(renameParams);parsed.setFormulaString(parsed.assemble(true))}cell.setFormulaInternal(parsed,true);t.workbook.dependencyFormulas.addToBuildDependencyCell(cell)}});if(wsFrom.headerFooter)this.headerFooter=wsFrom.headerFooter.clone(this);return renameParams};
Worksheet.prototype.copyObjects=function(oNewWs,wsFrom){var i;if(null!=this.Drawings&&this.Drawings.length>0){var drawingObjects=new AscFormat.DrawingObjects;oNewWs.Drawings=[];AscFormat.NEW_WORKSHEET_DRAWING_DOCUMENT=oNewWs.DrawingDocument;for(i=0;i<this.Drawings.length;++i){var drawingObject=drawingObjects.cloneDrawingObject(this.Drawings[i]);drawingObject.graphicObject=this.Drawings[i].graphicObject.copy();drawingObject.graphicObject.setWorksheet(oNewWs);drawingObject.graphicObject.addToDrawingObjects();
var drawingBase=this.Drawings[i];drawingObject.graphicObject.setDrawingBaseCoords(drawingBase.from.col,drawingBase.from.colOff,drawingBase.from.row,drawingBase.from.rowOff,drawingBase.to.col,drawingBase.to.colOff,drawingBase.to.row,drawingBase.to.rowOff,drawingBase.Pos.X,drawingBase.Pos.Y,drawingBase.ext.cx,drawingBase.ext.cy);if(drawingObject.graphicObject.setDrawingBaseType)drawingObject.graphicObject.setDrawingBaseType(drawingBase.Type);oNewWs.Drawings[oNewWs.Drawings.length-1]=drawingObject}AscFormat.NEW_WORKSHEET_DRAWING_DOCUMENT=
null;drawingObjects.pushToAObjects(oNewWs.Drawings);drawingObjects.updateChartReferences2(parserHelp.getEscapeSheetName(wsFrom.sName),parserHelp.getEscapeSheetName(oNewWs.sName))}var newSparkline;for(i=0;i<this.aSparklineGroups.length;++i){newSparkline=this.aSparklineGroups[i].clone();newSparkline.setWorksheet(oNewWs,wsFrom);oNewWs.aSparklineGroups.push(newSparkline)}};Worksheet.prototype.initColumn=function(column){if(column)if(null!==column.width&&0!==column.width){column.widthPx=this.modelColWidthToColWidth(column.width);
column.charCount=this.colWidthToCharCount(column.widthPx)}else column.widthPx=column.charCount=null};Worksheet.prototype.initColumns=function(){this.initColumn(this.oAllCol);this.aCols.forEach(this.initColumn,this)};Worksheet.prototype.initPostOpen=function(handlers){this.PagePrintOptions.init();this.headerFooter.init();if(0===this.sheetViews.length)this.sheetViews.push(new AscCommonExcel.asc_CSheetViewSettings);this.hiddenManager.initPostOpen();this.oSheetFormatPr.correction();this.handlers=handlers;
this._setHandlersTablePart()};Worksheet.prototype._getValuesForConditionalFormatting=function(ranges,numbers){var res=[];for(var i=0;i<ranges.length;++i){var elem=ranges[i];var range=this.getRange3(elem.r1,elem.c1,elem.r2,elem.c2);res=res.concat(range._getValues(numbers))}return res};Worksheet.prototype._isConditionalFormattingIntersect=function(range,ranges){for(var i=0;i<ranges.length;++i)if(range.isIntersect(ranges[i]))return true;return false};Worksheet.prototype.setDirtyConditionalFormatting=
function(range){if(!range)range=new AscCommonExcel.MultiplyRange([new Asc.Range(0,0,gc_nMaxCol0,gc_nMaxRow0)]);if(this.updateConditionalFormattingRange)this.updateConditionalFormattingRange.union2(range);else this.updateConditionalFormattingRange=range.clone()};Worksheet.prototype._updateConditionalFormatting=function(){if(!this.updateConditionalFormattingRange)return;var range=this.updateConditionalFormattingRange;this.updateConditionalFormattingRange=null;var t=this;var aRules=this.aConditionalFormattingRules.sort(function(v1,
v2){return v2.priority-v1.priority});var oGradient1,oGradient2,aWeights,oRule,multiplyRange,oRuleElement,bboxCf,formulaParent,parsed1,parsed2;var o,l,cell,ranges,values,value,tmp,dxf,compareFunction,nc,sum;this.sheetMergedStyles.clearConditionalStyle(range);var getCacheFunction=function(rule,setFunc){var cache={cache:{},get:function(row,col){var cacheVal;var cacheRow=this.cache[row];if(!cacheRow){cacheRow={};this.cache[row]=cacheRow}else cacheVal=cacheRow[col];if(undefined===cacheVal){cacheVal=this.set(row,
col);cacheRow[col]=cacheVal}return cacheVal},set:function(row,col){if(rule)return setFunc(row,col)?rule.dxf:null;else return setFunc(row,col)}};return function(row,col){return cache.get(row,col)}};for(var i=0;i<aRules.length;++i){oRule=aRules[i];ranges=oRule.ranges;if(this._isConditionalFormattingIntersect(range,ranges)){multiplyRange=new AscCommonExcel.MultiplyRange(ranges);if(AscCommonExcel.ECfType.colorScale===oRule.type){if(1!==oRule.aRuleElements.length)continue;oRuleElement=oRule.aRuleElements[0];
if(!oRuleElement||oRule.type!==oRuleElement.type)continue;values=this._getValuesForConditionalFormatting(ranges,true);l=oRuleElement.aColors.length;if(0<values.length&&2<=l){aWeights=[];oGradient1=new AscCommonExcel.CGradient(oRuleElement.aColors[0],oRuleElement.aColors[1]);aWeights.push(oRule.getMin(values,t),oRule.getMax(values,t));if(2<l){oGradient2=new AscCommonExcel.CGradient(oRuleElement.aColors[1],oRuleElement.aColors[2]);aWeights.push(oRule.getMid(values,t));aWeights.sort(AscCommon.fSortAscending);
oGradient1.init(aWeights[0],aWeights[1]);oGradient2.init(aWeights[1],aWeights[2])}else{oGradient2=null;aWeights.sort(AscCommon.fSortAscending);oGradient1.init(aWeights[0],aWeights[1])}compareFunction=function(oGradient1,oGradient2){return function(row,col){var val,color,gradient;t._getCellNoEmpty(row,col,function(cell){val=cell&&cell.getNumberValue()});dxf=null;if(null!==val){dxf=new AscCommonExcel.CellXfs;gradient=oGradient2?oGradient2:oGradient1;if(val>=gradient.max)color=gradient.getMaxColor();
else if(val<=oGradient1.min)color=oGradient1.getMinColor();else{gradient=oGradient2&&val>oGradient1.max?oGradient2:oGradient1;color=gradient.calculateColor(val)}dxf.fill=new AscCommonExcel.Fill;dxf.fill.fromColor(color);dxf=g_StyleCache.addXf(dxf,true)}return dxf}}(oGradient1,oGradient2)}}else if(AscCommonExcel.ECfType.dataBar===oRule.type)continue;else if(AscCommonExcel.ECfType.top10===oRule.type){if(oRule.rank>0&&oRule.dxf){nc=0;values=this._getValuesForConditionalFormatting(ranges,false);o=oRule.bottom?
Number.MAX_VALUE:-Number.MAX_VALUE;for(cell=0;cell<values.length;++cell){value=values[cell];if(CellValueType.Number===value.type&&!isNaN(tmp=parseFloat(value.v))){++nc;value.v=tmp}else value.v=o}values.sort(function(condition){return function(v1,v2){return condition*(v2.v-v1.v)}}(oRule.bottom?-1:1));nc=Math.max(1,oRule.percent?Math.floor(nc*oRule.rank/100):oRule.rank);var threshold=values.length>=nc?values[nc-1].v:o;compareFunction=function(rule,threshold){return function(row,col){var val;t._getCellNoEmpty(row,
col,function(cell){val=cell?cell.getNumberValue():null});return null!==val&&(rule.bottom?val<=threshold:val>=threshold)?rule.dxf:null}}(oRule,threshold)}}else if(AscCommonExcel.ECfType.aboveAverage===oRule.type){if(!oRule.dxf)continue;values=this._getValuesForConditionalFormatting(ranges,false);sum=0;nc=0;for(cell=0;cell<values.length;++cell){value=values[cell];if(CellValueType.Number===value.type&&!isNaN(tmp=parseFloat(value.v))){++nc;value.v=tmp;sum+=tmp}else value.v=null}tmp=sum/nc;compareFunction=
function(rule,average,stdDev){return function(row,col){var val;t._getCellNoEmpty(row,col,function(cell){val=cell?cell.getNumberValue():null});return null!==val&&rule.getAverage(val,average,stdDev)?rule.dxf:null}}(oRule,tmp,sum)}else{if(!oRule.dxf)continue;switch(oRule.type){case AscCommonExcel.ECfType.duplicateValues:case AscCommonExcel.ECfType.uniqueValues:o=getUniqueKeys(this._getValuesForConditionalFormatting(ranges,false));compareFunction=function(rule,obj,condition){return function(row,col){var val;
t._getCellNoEmpty(row,col,function(cell){val=cell?cell.getValueWithoutFormat():""});return(val.length>0?condition===obj[val]:false)?rule.dxf:null}}(oRule,o,oRule.type===AscCommonExcel.ECfType.duplicateValues);break;case AscCommonExcel.ECfType.containsText:case AscCommonExcel.ECfType.notContainsText:case AscCommonExcel.ECfType.beginsWith:case AscCommonExcel.ECfType.endsWith:var operator;switch(oRule.type){case AscCommonExcel.ECfType.containsText:operator=AscCommonExcel.ECfOperator.Operator_containsText;
break;case AscCommonExcel.ECfType.notContainsText:operator=AscCommonExcel.ECfOperator.Operator_notContains;break;case AscCommonExcel.ECfType.beginsWith:operator=AscCommonExcel.ECfOperator.Operator_beginsWith;break;case AscCommonExcel.ECfType.endsWith:operator=AscCommonExcel.ECfOperator.Operator_endsWith;break}formulaParent=new AscCommonExcel.CConditionalFormattingFormulaParent(this,oRule,true);oRuleElement=oRule.getFormulaCellIs();parsed1=oRuleElement&&oRuleElement.getFormula&&oRuleElement.getFormula(this,
formulaParent);if(parsed1&&parsed1.hasRelativeRefs()){bboxCf=oRule.getBBox();compareFunction=getCacheFunction(oRule,function(rule,operator,formulaParent,rowLT,colLT){return function(row,col){var offset=new AscCommon.CellBase(row-rowLT,col-colLT);var bboxCell=new Asc.Range(col,row,col,row);var v1=rule.getValueCellIs(t,formulaParent,bboxCell,offset,false);var res;t._getCellNoEmpty(row,col,function(cell){res=rule.cellIs(operator,cell,v1)?rule.dxf:null});return res}}(oRule,operator,new AscCommonExcel.CConditionalFormattingFormulaParent(this,
oRule,true),bboxCf?bboxCf.r1:0,bboxCf?bboxCf.c1:0))}else compareFunction=function(rule,operator,v1){return function(row,col){var res;t._getCellNoEmpty(row,col,function(cell){res=rule.cellIs(operator,cell,v1)?rule.dxf:null});return res}}(oRule,operator,oRule.getValueCellIs(this));break;case AscCommonExcel.ECfType.containsErrors:compareFunction=function(rule){return function(row,col){var val;t._getCellNoEmpty(row,col,function(cell){val=cell?CellValueType.Error===cell.getType():false});return val?rule.dxf:
null}}(oRule);break;case AscCommonExcel.ECfType.notContainsErrors:compareFunction=function(rule){return function(row,col){var val;t._getCellNoEmpty(row,col,function(cell){val=cell?CellValueType.Error!==cell.getType():true});return val?rule.dxf:null}}(oRule);break;case AscCommonExcel.ECfType.containsBlanks:compareFunction=function(rule){return function(row,col){var val;t._getCellNoEmpty(row,col,function(cell){if(cell)val=""===cell.getValueWithoutFormat().replace(/^ +| +$/g,"");else val=true});return val?
rule.dxf:null}}(oRule);break;case AscCommonExcel.ECfType.notContainsBlanks:compareFunction=function(rule){return function(row,col){var val;t._getCellNoEmpty(row,col,function(cell){if(cell)val=""!==cell.getValueWithoutFormat().replace(/^ +| +$/g,"");else val=false});return val?rule.dxf:null}}(oRule);break;case AscCommonExcel.ECfType.timePeriod:if(oRule.timePeriod)compareFunction=function(rule,period){return function(row,col){var val;t._getCellNoEmpty(row,col,function(cell){val=cell?cell.getValueWithoutFormat():
""});var n=parseFloat(val);return period.start<=n&&n<period.end?rule.dxf:null}}(oRule,oRule.getTimePeriod());else continue;break;case AscCommonExcel.ECfType.cellIs:formulaParent=new AscCommonExcel.CConditionalFormattingFormulaParent(this,oRule,true);oRuleElement=oRule.aRuleElements[0];parsed1=oRuleElement&&oRuleElement.getFormula&&oRuleElement.getFormula(this,formulaParent);oRuleElement=oRule.aRuleElements[1];parsed2=oRuleElement&&oRuleElement.getFormula&&oRuleElement.getFormula(this,formulaParent);
if(parsed1&&parsed1.hasRelativeRefs()||parsed2&&parsed2.hasRelativeRefs()){bboxCf=oRule.getBBox();compareFunction=getCacheFunction(oRule,function(rule,ruleElem1,ruleElem2,formulaParent,rowLT,colLT){return function(row,col){var offset=new AscCommon.CellBase(row-rowLT,col-colLT);var bboxCell=new Asc.Range(col,row,col,row);var v1=ruleElem1&&ruleElem1.getValue(t,formulaParent,bboxCell,offset,false);var v2=ruleElem2&&ruleElem2.getValue(t,formulaParent,bboxCell,offset,false);var res;t._getCellNoEmpty(row,
col,function(cell){res=rule.cellIs(rule.operator,cell,v1,v2)?rule.dxf:null});return res}}(oRule,oRule.aRuleElements[0],oRule.aRuleElements[1],new AscCommonExcel.CConditionalFormattingFormulaParent(this,oRule,true),bboxCf?bboxCf.r1:0,bboxCf?bboxCf.c1:0))}else compareFunction=function(rule,v1,v2){return function(row,col){var res;t._getCellNoEmpty(row,col,function(cell){res=rule.cellIs(rule.operator,cell,v1,v2)?rule.dxf:null});return res}}(oRule,oRule.aRuleElements[0]&&oRule.aRuleElements[0].getValue(this),
oRule.aRuleElements[1]&&oRule.aRuleElements[1].getValue(this));break;case AscCommonExcel.ECfType.expression:bboxCf=oRule.getBBox();compareFunction=getCacheFunction(oRule,function(rule,formulaCF,formulaParent,rowLT,colLT){return function(row,col){var offset=new AscCommon.CellBase(row-rowLT,col-colLT);var bboxCell=new Asc.Range(col,row,col,row);var res=formulaCF&&formulaCF.getValue(t,formulaParent,bboxCell,offset,true);if(res&&res.tocBool){res=res.tocBool();if(res&&res.toBool)return res.toBool()}return false}}(oRule,
oRule.aRuleElements[0],new AscCommonExcel.CConditionalFormattingFormulaParent(this,oRule,true),bboxCf?bboxCf.r1:0,bboxCf?bboxCf.c1:0));break;default:continue;break}}if(compareFunction)this.sheetMergedStyles.setConditionalStyle(multiplyRange,compareFunction)}}};Worksheet.prototype._forEachRow=function(fAction){this.getRange3(0,0,gc_nMaxRow0,0)._foreachRowNoEmpty(fAction)};Worksheet.prototype._forEachCol=function(fAction){this.getRange3(0,0,0,gc_nMaxCol0)._foreachColNoEmpty(fAction)};Worksheet.prototype._forEachColData=
function(fAction){for(var i=0;i<this.cellsByCol.length;++i){var sheetMemory=this.cellsByCol[i];if(sheetMemory)fAction(sheetMemory,i)}};Worksheet.prototype._forEachCell=function(fAction){this.getRange3(0,0,gc_nMaxRow0,gc_nMaxCol0)._foreachNoEmpty(fAction)};Worksheet.prototype.getId=function(){return this.Id};Worksheet.prototype.getIndex=function(){return this.index};Worksheet.prototype.getName=function(){return this.sName!==undefined&&this.sName.length>0?this.sName:""};Worksheet.prototype.setName=
function(name,bFromUndoRedo){if(name.length<=g_nSheetNameMaxLength){var lastName=this.sName;History.Create_NewPoint();var prepared=this.workbook.dependencyFormulas.prepareChangeSheet(this.getId(),{rename:{from:lastName,to:name}});this.sName=name;this.workbook.dependencyFormulas.changeSheet(prepared);History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_Rename,this.getId(),null,new UndoRedoData_FromTo(lastName,name));if(!bFromUndoRedo){var _lastName=parserHelp.getEscapeSheetName(lastName);
var _newName=parserHelp.getEscapeSheetName(this.sName);for(var key in this.workbook.aWorksheets){var wsModel=this.workbook.aWorksheets[key];if(wsModel)wsModel.oDrawingOjectsManager.updateChartReferencesWidthHistory(_lastName,_newName,true)}}this.workbook.dependencyFormulas.calcTree()}else console.log(new Error("The sheet name must be less than 31 characters."))};Worksheet.prototype.getTabColor=function(){return this.sheetPr&&this.sheetPr.TabColor?Asc.colorObjToAscColor(this.sheetPr.TabColor):null};
Worksheet.prototype.setTabColor=function(color){if(!this.sheetPr)this.sheetPr=new AscCommonExcel.asc_CSheetPr;History.Create_NewPoint();History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_SetTabColor,this.getId(),null,new UndoRedoData_FromTo(this.sheetPr.TabColor?this.sheetPr.TabColor.clone():null,color?color.clone():null));this.sheetPr.TabColor=color;if(!this.workbook.bUndoChanges&&!this.workbook.bRedoChanges)this.workbook.handlers.trigger("asc_onUpdateTabColor",this.getIndex())};
Worksheet.prototype.rebuildTabColor=function(){if(this.sheetPr&&this.sheetPr.TabColor)this.workbook.handlers.trigger("asc_onUpdateTabColor",this.getIndex())};Worksheet.prototype.getHidden=function(){return true===this.bHidden};Worksheet.prototype.setHidden=function(hidden){var bOldHidden=this.bHidden,wb=this.workbook,wsActive=wb.getActiveWs(),oVisibleWs=null;this.bHidden=hidden;if(true==this.bHidden&&this.getIndex()==wsActive.getIndex()){oVisibleWs=wb.findSheetNoHidden(this.getIndex());if(null!=oVisibleWs){var nNewIndex=
oVisibleWs.getIndex();wb.setActive(nNewIndex);if(!wb.bUndoChanges&&!wb.bRedoChanges)wb.handlers.trigger("undoRedoHideSheet",nNewIndex)}}if(bOldHidden!=hidden){History.Create_NewPoint();History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_Hide,this.getId(),null,new UndoRedoData_FromTo(bOldHidden,hidden));if(null!=oVisibleWs){History.SetSheetUndo(wsActive.getId());History.SetSheetRedo(oVisibleWs.getId())}}};Worksheet.prototype.getSheetView=function(){return this.sheetViews[0]};
Worksheet.prototype.getSheetViewSettings=function(){return this.sheetViews[0].clone()};Worksheet.prototype.setDisplayGridlines=function(value){var view=this.sheetViews[0];if(value!==view.showGridLines){History.Create_NewPoint();History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_SetDisplayGridlines,this.getId(),null,new UndoRedoData_FromTo(view.showGridLines,value));view.showGridLines=value;if(!this.workbook.bUndoChanges&&!this.workbook.bRedoChanges)this.workbook.handlers.trigger("asc_onUpdateSheetViewSettings")}};
Worksheet.prototype.setDisplayHeadings=function(value){var view=this.sheetViews[0];if(value!==view.showRowColHeaders){History.Create_NewPoint();History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_SetDisplayHeadings,this.getId(),null,new UndoRedoData_FromTo(view.showRowColHeaders,value));view.showRowColHeaders=value;if(!this.workbook.bUndoChanges&&!this.workbook.bRedoChanges)this.workbook.handlers.trigger("asc_onUpdateSheetViewSettings")}};Worksheet.prototype.getRowsCount=function(){var result=
this.nRowsCount;var pane=this.sheetViews.length&&this.sheetViews[0].pane;if(pane&&pane.topLeftFrozenCell)result=Math.max(result,pane.topLeftFrozenCell.getRow0());return result};Worksheet.prototype.removeRows=function(start,stop,bExcludeHiddenRows){var removeRowsArr=bExcludeHiddenRows?this._getNoHiddenRowsArr(start,stop):[{start:start,stop:stop}];for(var i=removeRowsArr.length-1;i>=0;i--){var oRange=this.getRange(new CellAddress(removeRowsArr[i].start,0,0),new CellAddress(removeRowsArr[i].stop,gc_nMaxCol0,
0));oRange.deleteCellsShiftUp()}};Worksheet.prototype._getNoHiddenRowsArr=function(start,stop){var res=[];var elem=null;for(var i=start;i<=stop;i++)if(this.getRowHidden(i)){if(elem){res.push(elem);elem=null}}else{if(!elem){elem={};elem.start=i;elem.stop=i}else elem.stop++;if(i===stop)res.push(elem)}return res};Worksheet.prototype._updateFormulasParents=function(r1,c1,r2,c2,bbox,offset,shiftedShared){var t=this;var cellWithFormula;var shiftedArrayFormula={};this.getRange3(r1,c1,r2,c2)._foreachNoEmpty(function(cell){var newNRow=
cell.nRow+offset.row;var newNCol=cell.nCol+offset.col;var bHor=0!==offset.col;var toDelete=offset.col<0||offset.row<0;if(cell.isFormula()){var processed=c_oSharedShiftType.NeedTransform;var parsed=cell.getFormulaParsed();var shared=parsed.getShared();var arrayFormula=parsed.getArrayFormulaRef();var formulaRefObj=null;if(shared){processed=shiftedShared[parsed.getListenerId()];var isPreProcessed=c_oSharedShiftType.PreProcessed===processed;if(!processed||isPreProcessed){if(!processed){var bboxShift=
AscCommonExcel.shiftGetBBox(bbox,bHor);if(bboxShift.containsRange(shared.ref)&&(!toDelete||!bbox.isIntersect(shared.ref)))processed=c_oSharedShiftType.Processed;else processed=c_oSharedShiftType.NeedTransform}else if(isPreProcessed)processed=c_oSharedShiftType.Processed;if(c_oSharedShiftType.Processed===processed){var newRef=shared.ref.clone();newRef.forShift(bbox,offset,t.workbook.bUndoChanges);parsed.setSharedRef(newRef,!isPreProcessed);t.workbook.dependencyFormulas.addToChangedRange2(t.getId(),
newRef)}shiftedShared[parsed.getListenerId()]=processed}}else if(arrayFormula)if(!shiftedArrayFormula[parsed.getListenerId()]&&parsed.checkFirstCellArray(cell)){shiftedArrayFormula[parsed.getListenerId()]=1;var newArrayRef=arrayFormula.clone();newArrayRef.setOffset(offset);parsed.setArrayFormulaRef(newArrayRef)}else processed=c_oSharedShiftType.Processed;if(c_oSharedShiftType.NeedTransform===processed){var isTransform=cell.transformSharedFormula();parsed=cell.getFormulaParsed();if(isTransform)parsed.buildDependencies();
cellWithFormula=parsed.getParent();cellWithFormula.nRow=newNRow;cellWithFormula.nCol=newNCol;t.workbook.dependencyFormulas.addToChangedCell(cellWithFormula)}}t.cellsByColRowsCount=Math.max(t.cellsByColRowsCount,newNRow+1);t.nRowsCount=Math.max(t.nRowsCount,t.cellsByColRowsCount);t.nColsCount=Math.max(t.nColsCount,newNCol+1)})};Worksheet.prototype._removeRows=function(start,stop){var t=this;this.workbook.dependencyFormulas.lockRecal();History.Create_NewPoint();var nDif=-(stop-start+1);var oActualRange=
new Asc.Range(0,start,gc_nMaxCol0,stop);var offset=new AscCommon.CellBase(nDif,0);var renameRes=this.renameDependencyNodes(offset,oActualRange);var redrawTablesArr=this.autoFilters.insertRows("delCell",oActualRange,c_oAscDeleteOptions.DeleteRows);this.updatePivotOffset(oActualRange,offset);var collapsedInfo=null,lastRowIndex;var oDefRowPr=new AscCommonExcel.UndoRedoData_RowProp;this.getRange3(start,0,stop,gc_nMaxCol0)._foreachRowNoEmpty(function(row){var oOldProps=row.getHeightProp();lastRowIndex=
row.index;if(false===oOldProps.isEqual(oDefRowPr))History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_RowProp,t.getId(),row._getUpdateRange(),new UndoRedoData_IndexSimpleProp(row.getIndex(),true,oOldProps,oDefRowPr));row.setStyle(null);if(!t.workbook.bRedoChanges){if(collapsedInfo!==null&&collapsedInfo<row.getOutlineLevel())collapsedInfo=null;if(row.getCollapsed()){collapsedInfo=row.getOutlineLevel();t.setCollapsedRow(false,null,row)}}},function(cell){t._removeCell(null,null,
cell)});if(collapsedInfo!==null&&lastRowIndex===stop)this._getRow(stop+1,function(row){t.setCollapsedRow(true,null,row)});this._updateFormulasParents(start,0,gc_nMaxRow0,gc_nMaxCol0,oActualRange,offset,renameRes.shiftedShared);this.rowsData.deleteRange(start,-nDif);this._forEachColData(function(sheetMemory){sheetMemory.deleteRange(start,-nDif)});this.workbook.dependencyFormulas.notifyChanged(renameRes.changed);History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_RemoveRows,
this.getId(),new Asc.Range(0,start,gc_nMaxCol0,gc_nMaxRow0),new UndoRedoData_FromToRowCol(true,start,stop));this.autoFilters.redrawStylesTables(redrawTablesArr);this.workbook.dependencyFormulas.unlockRecal();return true};Worksheet.prototype.insertRowsBefore=function(index,count){var oRange=this.getRange(new CellAddress(index,0,0),new CellAddress(index+count-1,gc_nMaxCol0,0));oRange.addCellsShiftBottom()};Worksheet.prototype._getBordersForInsert=function(bbox,bRow){var t=this;var borders={};var offsetRow=
bRow&&bbox.r1>0?-1:0;var offsetCol=!bRow&&bbox.c1>0?-1:0;var r2=bRow?bbox.r1:bbox.r2;var c2=!bRow?bbox.c1:bbox.c2;if(0!==offsetRow||0!==offsetCol)this.getRange3(bbox.r1,bbox.c1,r2,c2)._foreachNoEmpty(function(cell){if(cell.xfs&&cell.xfs.border)t._getCellNoEmpty(cell.nRow+offsetRow,cell.nCol+offsetCol,function(neighbor){if(neighbor&&neighbor.xfs&&neighbor.xfs.border){var newBorder=neighbor.xfs.border.clone();newBorder.intersect(cell.xfs.border,g_oDefaultFormat.BorderAbs,true);borders[bRow?cell.nCol:
cell.nRow]=newBorder}})});return borders};Worksheet.prototype._insertRowsBefore=function(index,count){var t=this;this.workbook.dependencyFormulas.lockRecal();var oActualRange=new Asc.Range(0,index,gc_nMaxCol0,index+count-1);History.Create_NewPoint();var offset=new AscCommon.CellBase(count,0);var renameRes=this.renameDependencyNodes(offset,oActualRange);var redrawTablesArr=this.autoFilters.insertRows("insCell",oActualRange,c_oAscInsertOptions.InsertColumns);this.updatePivotOffset(oActualRange,offset);
this._updateFormulasParents(index,0,gc_nMaxRow0,gc_nMaxCol0,oActualRange,offset,renameRes.shiftedShared);var borders;if(index>0&&!this.workbook.bUndoChanges)borders=this._getBordersForInsert(oActualRange,true);this.rowsData.insertRange(index,count);this.nRowsCount=Math.max(this.nRowsCount,this.rowsData.getSize());this._forEachColData(function(sheetMemory){sheetMemory.insertRange(index,count);t.cellsByColRowsCount=Math.max(t.cellsByColRowsCount,sheetMemory.getSize())});this.nRowsCount=Math.max(this.nRowsCount,
this.cellsByColRowsCount);if(index>0&&!this.workbook.bUndoChanges){this.rowsData.copyRangeByChunk(index-1,1,index,count);this.nRowsCount=Math.max(this.nRowsCount,this.rowsData.getSize());this._forEachColData(function(sheetMemory){sheetMemory.copyRangeByChunk(index-1,1,index,count);t.cellsByColRowsCount=Math.max(t.cellsByColRowsCount,sheetMemory.getSize())});this.nRowsCount=Math.max(this.nRowsCount,this.cellsByColRowsCount);this.getRange3(index,0,index+count-1,gc_nMaxCol0)._foreachRowNoEmpty(function(row){row.setHidden(false)},
function(cell){cell.clearDataKeepXf(borders[cell.nCol])})}this.workbook.dependencyFormulas.notifyChanged(renameRes.changed);History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_AddRows,this.getId(),new Asc.Range(0,index,gc_nMaxCol0,gc_nMaxRow0),new UndoRedoData_FromToRowCol(true,index,index+count-1));this.autoFilters.redrawStylesTables(redrawTablesArr);this.workbook.dependencyFormulas.unlockRecal();return true};Worksheet.prototype.insertRowsAfter=function(index,count){return this.insertRowsBefore(index+
1,count)};Worksheet.prototype.getColsCount=function(){var result=this.nColsCount;var pane=this.sheetViews.length&&this.sheetViews[0].pane;if(pane&&pane.topLeftFrozenCell)result=Math.max(result,pane.topLeftFrozenCell.getCol0());return result};Worksheet.prototype.removeCols=function(start,stop){var oRange=this.getRange(new CellAddress(0,start,0),new CellAddress(gc_nMaxRow0,stop,0));oRange.deleteCellsShiftLeft()};Worksheet.prototype._removeCols=function(start,stop){var t=this;this.workbook.dependencyFormulas.lockRecal();
History.Create_NewPoint();var nDif=-(stop-start+1),i,j,length;var oActualRange=new Asc.Range(start,0,stop,gc_nMaxRow0);var offset=new AscCommon.CellBase(0,nDif);var renameRes=this.renameDependencyNodes(offset,oActualRange);var redrawTablesArr=this.autoFilters.insertColumn(oActualRange,nDif);this.updatePivotOffset(oActualRange,offset);var collapsedInfo=null,lastRowIndex;var oDefColPr=new AscCommonExcel.UndoRedoData_ColProp;this.getRange3(0,start,gc_nMaxRow0,stop)._foreachColNoEmpty(function(col){var nIndex=
col.getIndex();var oOldProps=col.getWidthProp();if(false===oOldProps.isEqual(oDefColPr))History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_ColProp,t.getId(),new Asc.Range(nIndex,0,nIndex,gc_nMaxRow0),new UndoRedoData_IndexSimpleProp(nIndex,false,oOldProps,oDefColPr));col.setStyle(null);lastRowIndex=col.index;if(!t.workbook.bRedoChanges){if(collapsedInfo!==null&&collapsedInfo<col.getOutlineLevel())collapsedInfo=null;if(col.getCollapsed()){collapsedInfo=col.getOutlineLevel();
t.setCollapsedCol(false,null,col)}}},function(cell){t._removeCell(null,null,cell)});if(collapsedInfo!==null&&lastRowIndex===stop){var curCol=this._getCol(stop+1);if(curCol)t.setCollapsedCol(true,null,curCol)}this._updateFormulasParents(0,start,gc_nMaxRow0,gc_nMaxCol0,oActualRange,offset,renameRes.shiftedShared);this.cellsByCol.splice(start,stop-start+1);this.aCols.splice(start,stop-start+1);for(i=start,length=this.aCols.length;i<length;++i){var elem=this.aCols[i];if(null!=elem)elem.moveHor(nDif)}this.workbook.dependencyFormulas.notifyChanged(renameRes.changed);
History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_RemoveCols,this.getId(),new Asc.Range(start,0,gc_nMaxCol0,gc_nMaxRow0),new UndoRedoData_FromToRowCol(false,start,stop));this.autoFilters.redrawStylesTables(redrawTablesArr);this.workbook.dependencyFormulas.unlockRecal();return true};Worksheet.prototype.insertColsBefore=function(index,count){var oRange=this.getRange3(0,index,gc_nMaxRow0,index+count-1);oRange.addCellsShiftRight()};Worksheet.prototype._insertColsBefore=function(index,
count){this.workbook.dependencyFormulas.lockRecal();var oActualRange=new Asc.Range(index,0,index+count-1,gc_nMaxRow0);History.Create_NewPoint();var offset=new AscCommon.CellBase(0,count);var renameRes=this.renameDependencyNodes(offset,oActualRange);var redrawTablesArr=this.autoFilters.insertColumn(oActualRange,count);this.updatePivotOffset(oActualRange,offset);this._updateFormulasParents(0,index,gc_nMaxRow0,gc_nMaxCol0,oActualRange,offset,renameRes.shiftedShared);var borders;if(index>0&&!this.workbook.bUndoChanges)borders=
this._getBordersForInsert(oActualRange,false);this.cellsByCol.splice(gc_nMaxCol0-count+1,count);for(var i=this.cellsByCol.length-1;i>=index;--i){this.cellsByCol[i+count]=this.cellsByCol[i];this.cellsByCol[i]=undefined}this.nColsCount=Math.max(this.nColsCount,this.getColDataLength());this.aCols.splice(gc_nMaxCol0-count+1,count);for(var i=this.aCols.length-1;i>=index;--i){this.aCols[i+count]=this.aCols[i];this.aCols[i]=undefined;if(this.aCols[i+count])this.aCols[i+count].moveHor(count)}this.nColsCount=
Math.max(this.nColsCount,this.aCols.length);if(!this.workbook.bUndoChanges){var oPrevCol=null;if(index>0)oPrevCol=this.aCols[index-1];if(null==oPrevCol&&null!=this.oAllCol)oPrevCol=this.oAllCol;if(null!=oPrevCol){History.LocalChange=true;for(var i=index;i<index+count;++i){var oNewCol=oPrevCol.clone();oNewCol.setHidden(null);oNewCol.BestFit=null;oNewCol.index=i;this.aCols[i]=oNewCol}History.LocalChange=false}var prevCellsByCol=index>0?this.cellsByCol[index-1]:null;if(prevCellsByCol){for(var i=index;i<
index+count;++i)this.cellsByCol[i]=prevCellsByCol.clone();this.nColsCount=Math.max(this.nColsCount,this.getColDataLength());this.getRange3(0,index,gc_nMaxRow0,index+count-1)._foreachNoEmpty(function(cell){cell.clearDataKeepXf(borders[cell.nRow])})}}this.workbook.dependencyFormulas.notifyChanged(renameRes.changed);History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_AddCols,this.getId(),new Asc.Range(index,0,gc_nMaxCol0,gc_nMaxRow0),new UndoRedoData_FromToRowCol(false,index,
index+count-1));this.autoFilters.redrawStylesTables(redrawTablesArr);this.workbook.dependencyFormulas.unlockRecal();return true};Worksheet.prototype.insertColsAfter=function(index,count){return this.insertColsBefore(index+1,count)};Worksheet.prototype.getDefaultWidth=function(){return this.oSheetFormatPr.dDefaultColWidth};Worksheet.prototype.getDefaultFontName=function(){return this.workbook.getDefaultFont()};Worksheet.prototype.getDefaultFontSize=function(){return this.workbook.getDefaultSize()};
Worksheet.prototype.getBaseColWidth=function(){return this.oSheetFormatPr.nBaseColWidth||8};Worksheet.prototype.charCountToModelColWidth=function(count){return this.workbook.charCountToModelColWidth(count)};Worksheet.prototype.modelColWidthToColWidth=function(mcw){return this.workbook.modelColWidthToColWidth(mcw)};Worksheet.prototype.colWidthToCharCount=function(w){return this.workbook.colWidthToCharCount(w)};Worksheet.prototype.getColWidth=function(index){var col=this._getColNoEmptyWithAll(index);
if(null!=col&&null!=col.width)return col.width;var dResult=this.oSheetFormatPr.dDefaultColWidth;if(dResult===undefined||dResult===null||dResult==0)dResult=-1;return dResult};Worksheet.prototype.setColWidth=function(width,start,stop){width=this.charCountToModelColWidth(width);if(0==width)return this.setColHidden(true,start,stop);if(null==start)return;if(null==stop)stop=start;History.Create_NewPoint();var oSelection=History.GetSelection();if(null!=oSelection){oSelection=oSelection.clone();oSelection.assign(start,
0,stop,gc_nMaxRow0);History.SetSelection(oSelection);History.SetSelectionRedo(oSelection)}var bNotAddCollapsed=true==this.workbook.bUndoChanges||true==this.workbook.bRedoChanges||this.bExcludeCollapsed;var _summaryRight=this.sheetPr?this.sheetPr.SummaryRight:true;var oThis=this,prevCol;var fProcessCol=function(col){if(col.width!=width){if(_summaryRight&&!bNotAddCollapsed&&col.getCollapsed())oThis.setCollapsedCol(false,null,col);else if(!_summaryRight&&!bNotAddCollapsed&&prevCol&&prevCol.getCollapsed())oThis.setCollapsedCol(false,
null,prevCol);prevCol=col;var oOldProps=col.getWidthProp();col.width=width;col.CustomWidth=true;col.BestFit=null;col.setHidden(null);oThis.initColumn(col);var oNewProps=col.getWidthProp();if(false==oOldProps.isEqual(oNewProps))History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_ColProp,oThis.getId(),col._getUpdateRange(),new UndoRedoData_IndexSimpleProp(col.index,false,oOldProps,oNewProps))}};if(0==start&&gc_nMaxCol0==stop){var col=this.getAllCol();fProcessCol(col);for(var i in this.aCols){var col=
this.aCols[i];if(null!=col)fProcessCol(col)}}else{if(!_summaryRight)if(!bNotAddCollapsed&&start>0)prevCol=this._getCol(start-1);for(var i=start;i<=stop;i++){var col=this._getCol(i);fProcessCol(col)}if(_summaryRight&&!bNotAddCollapsed&&prevCol){col=this._getCol(stop+1);if(col.getCollapsed())this.setCollapsedCol(false,null,col)}}};Worksheet.prototype.getColHidden=function(index){var col=this._getColNoEmptyWithAll(index);return col?col.getHidden():false};Worksheet.prototype.setColHidden=function(bHidden,
start,stop){if(null==start)return;if(null==stop)stop=start;History.Create_NewPoint();var oThis=this,outlineLevel;var bNotAddCollapsed=true==this.workbook.bUndoChanges||true==this.workbook.bRedoChanges||this.bExcludeCollapsed;var _summaryRight=this.sheetPr?this.sheetPr.SummaryRight:true;var fProcessCol=function(col){if(col&&!bNotAddCollapsed&&outlineLevel!==undefined&&outlineLevel!==col.getOutlineLevel())if(!_summaryRight)oThis.setCollapsedCol(bHidden,col.index-1);else oThis.setCollapsedCol(bHidden,
null,col);outlineLevel=col?col.getOutlineLevel():null;if(col.getHidden()!=bHidden){var oOldProps=col.getWidthProp();if(bHidden){col.setHidden(bHidden);if(null==col.width||true!=col.CustomWidth)col.width=0;col.CustomWidth=true;col.BestFit=null}else{col.setHidden(null);if(0>=col.width)col.width=null}var oNewProps=col.getWidthProp();if(false==oOldProps.isEqual(oNewProps))History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_ColProp,oThis.getId(),col._getUpdateRange(),new UndoRedoData_IndexSimpleProp(col.index,
false,oOldProps,oNewProps))}};if(!bNotAddCollapsed&&!_summaryRight&&start>0){col=this._getCol(start-1);outlineLevel=col.getOutlineLevel()}if(0!=start&&gc_nMaxCol0==stop){var col=null;if(false==bHidden)col=this.oAllCol;else col=this.getAllCol();if(null!=col)fProcessCol(col);for(var i in this.aCols){var col=this.aCols[i];if(null!=col)fProcessCol(col)}}else for(var i=start;i<=stop;i++){var col=null;if(false==bHidden)col=this._getColNoEmpty(i);else col=this._getCol(i);if(null!=col)fProcessCol(col)}if(!bNotAddCollapsed&&
outlineLevel&&_summaryRight){col=this._getCol(stop+1);if(col&&outlineLevel!==col.getOutlineLevel())oThis.setCollapsedCol(bHidden,null,col)}};Worksheet.prototype.setCollapsedCol=function(bCollapse,colIndex,curCol){var oThis=this;var fProcessCol=function(col){var oOldProps=col.getCollapsed();col.setCollapsed(bCollapse);var oNewProps=col.getCollapsed();if(oOldProps!==oNewProps)History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_CollapsedCol,oThis.getId(),col._getUpdateRange(),
new UndoRedoData_IndexSimpleProp(col.index,true,oOldProps,oNewProps))};if(curCol)fProcessCol(curCol);else this.getRange3(0,colIndex,0,colIndex)._foreachCol(fProcessCol)};Worksheet.prototype.setSummaryRight=function(val){if(!this.sheetPr)this.sheetPr=new AscCommonExcel.asc_CSheetPr;History.Create_NewPoint();History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_SetSummaryRight,this.getId(),null,new UndoRedoData_FromTo(this.sheetPr.SummaryRight,val));this.sheetPr.SummaryRight=val};
Worksheet.prototype.setSummaryBelow=function(val){if(!this.sheetPr)this.sheetPr=new AscCommonExcel.asc_CSheetPr;History.Create_NewPoint();History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_SetSummaryBelow,this.getId(),null,new UndoRedoData_FromTo(this.sheetPr.SummaryBelow,val));this.sheetPr.SummaryBelow=val};Worksheet.prototype.setGroupCol=function(bDel,start,stop){var oThis=this;var fProcessCol=function(col){var oOldProps=col.getOutlineLevel();col.setOutlineLevel(null,bDel);
var oNewProps=col.getOutlineLevel();if(oOldProps!==oNewProps)History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_GroupCol,oThis.getId(),col._getUpdateRange(),new UndoRedoData_IndexSimpleProp(col.index,true,oOldProps,oNewProps))};this.getRange3(0,start,0,stop)._foreachCol(fProcessCol)};Worksheet.prototype.setOutlineCol=function(val,start,stop){var oThis=this;var fProcessCol=function(col){var oOldProps=col.getOutlineLevel();col.setOutlineLevel(val);var oNewProps=col.getOutlineLevel();
if(oOldProps!==oNewProps)History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_GroupCol,oThis.getId(),col._getUpdateRange(),new UndoRedoData_IndexSimpleProp(col.index,true,oOldProps,oNewProps))};this.getRange3(0,start,0,stop)._foreachCol(fProcessCol)};Worksheet.prototype.getColCustomWidth=function(index){var isBestFit;var column=this._getColNoEmptyWithAll(index);if(!column)isBestFit=true;else if(column.getHidden())isBestFit=false;else isBestFit=!!(column.BestFit||null===column.BestFit&&
null===column.CustomWidth);return!isBestFit};Worksheet.prototype.setColBestFit=function(bBestFit,width,start,stop){if(null==start)return;if(null==stop)stop=start;History.Create_NewPoint();var oThis=this;var fProcessCol=function(col){var oOldProps=col.getWidthProp();if(bBestFit){col.BestFit=bBestFit;col.setHidden(null)}else col.BestFit=null;col.width=width;oThis.initColumn(col);var oNewProps=col.getWidthProp();if(false==oOldProps.isEqual(oNewProps))History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_ColProp,
oThis.getId(),col._getUpdateRange(),new UndoRedoData_IndexSimpleProp(col.index,false,oOldProps,oNewProps))};if(0!=start&&gc_nMaxCol0==stop){var col=null;if(bBestFit&&oDefaultMetrics.ColWidthChars==width)col=this.oAllCol;else col=this.getAllCol();if(null!=col)fProcessCol(col);for(var i in this.aCols){var col=this.aCols[i];if(null!=col)fProcessCol(col)}}else for(var i=start;i<=stop;i++){var col=null;if(bBestFit&&oDefaultMetrics.ColWidthChars==width)col=this._getColNoEmpty(i);else col=this._getCol(i);
if(null!=col)fProcessCol(col)}};Worksheet.prototype.isDefaultHeightHidden=function(){return null!=this.oSheetFormatPr.oAllRow&&this.oSheetFormatPr.oAllRow.getHidden()};Worksheet.prototype.isDefaultWidthHidden=function(){return null!=this.oAllCol&&this.oAllCol.getHidden()};Worksheet.prototype.setDefaultHeight=function(h){if(this.oSheetFormatPr.oAllRow&&!this.oSheetFormatPr.oAllRow.getCustomHeight())this.oSheetFormatPr.oAllRow.h=h};Worksheet.prototype.getDefaultHeight=function(){var dRes=null;if(null!=
this.oSheetFormatPr.oAllRow&&this.oSheetFormatPr.oAllRow.getCustomHeight())dRes=this.oSheetFormatPr.oAllRow.h;return dRes};Worksheet.prototype.getRowHeight=function(index){var res;this._getRowNoEmptyWithAll(index,function(row){res=row?row.getHeight():-1});return res};Worksheet.prototype.setRowHeight=function(height,start,stop,isCustom){if(0==height)return this.setRowHidden(true,start,stop);if(null==start)return;if(null==stop)stop=start;History.Create_NewPoint();var oThis=this,i;var oSelection=History.GetSelection();
if(null!=oSelection){oSelection=oSelection.clone();oSelection.assign(0,start,gc_nMaxCol0,stop);History.SetSelection(oSelection);History.SetSelectionRedo(oSelection)}var prevRow;var bNotAddCollapsed=true==this.workbook.bUndoChanges||true==this.workbook.bRedoChanges||this.bExcludeCollapsed;var _summaryBelow=this.sheetPr?this.sheetPr.SummaryBelow:true;var fProcessRow=function(row){if(row){if(_summaryBelow&&!bNotAddCollapsed&&row.getCollapsed())oThis.setCollapsedRow(false,null,row);else if(!_summaryBelow&&
!bNotAddCollapsed&&prevRow&&prevRow.getCollapsed())oThis.setCollapsedRow(false,null,prevRow);prevRow=row;var oOldProps=row.getHeightProp();row.setHeight(height);if(isCustom)row.setCustomHeight(true);row.setCalcHeight(true);row.setHidden(false);var oNewProps=row.getHeightProp();if(false===oOldProps.isEqual(oNewProps))History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_RowProp,oThis.getId(),row._getUpdateRange(),new UndoRedoData_IndexSimpleProp(row.index,true,oOldProps,oNewProps))}};
if(0==start&&gc_nMaxRow0==stop){fProcessRow(this.getAllRow());this._forEachRow(fProcessRow)}else{if(!_summaryBelow)if(!bNotAddCollapsed&&start>0)this._getRow(start-1,function(row){prevRow=row});this.getRange3(start,0,stop,0)._foreachRow(fProcessRow);if(_summaryBelow)if(!bNotAddCollapsed&&prevRow)this._getRow(stop+1,function(row){if(row.getCollapsed())oThis.setCollapsedRow(false,null,row)})}if(this.needRecalFormulas(start,stop))this.workbook.dependencyFormulas.calcTree()};Worksheet.prototype.getRowHidden=
function(index){var res;this._getRowNoEmptyWithAll(index,function(row){res=row?row.getHidden():false});return res};Worksheet.prototype.setRowHidden=function(bHidden,start,stop){if(null==start)return;if(null==stop)stop=start;History.Create_NewPoint();var oThis=this,i;var startIndex=null,endIndex=null,updateRange,outlineLevel;var bNotAddCollapsed=true==this.workbook.bUndoChanges||true==this.workbook.bRedoChanges||this.bExcludeCollapsed;var _summaryBelow=this.sheetPr?this.sheetPr.SummaryBelow:true;var fProcessRow=
function(row){if(row&&!bNotAddCollapsed&&outlineLevel!==undefined&&outlineLevel!==row.getOutlineLevel())if(!_summaryBelow)oThis.setCollapsedRow(bHidden,row.index-1);else oThis.setCollapsedRow(bHidden,null,row);outlineLevel=row?row.getOutlineLevel():null;if(row&&bHidden!=row.getHidden()){row.setHidden(bHidden);if(row.index===endIndex+1&&startIndex!==null)endIndex++;else{if(startIndex!==null){updateRange=new Asc.Range(0,startIndex,gc_nMaxCol0,endIndex);History.Add(AscCommonExcel.g_oUndoRedoWorksheet,
AscCH.historyitem_Worksheet_RowHide,oThis.getId(),updateRange,new UndoRedoData_FromToRowCol(bHidden,startIndex,endIndex))}startIndex=row.index;endIndex=row.index}}};if(0==start&&gc_nMaxRow0==stop);else{if(!_summaryBelow&&start>0&&!bNotAddCollapsed)this._getRow(start-1,function(row){if(row)outlineLevel=row.getOutlineLevel()});for(i=start;i<=stop;++i)false==bHidden?this._getRowNoEmpty(i,fProcessRow):this._getRow(i,fProcessRow);if(_summaryBelow&&outlineLevel&&!bNotAddCollapsed)this._getRow(stop+1,function(row){if(row&&
outlineLevel!==row.getOutlineLevel())oThis.setCollapsedRow(bHidden,null,row)});if(startIndex!==null){updateRange=new Asc.Range(0,startIndex,gc_nMaxCol0,endIndex);History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_RowHide,oThis.getId(),updateRange,new UndoRedoData_FromToRowCol(bHidden,startIndex,endIndex))}}if(this.needRecalFormulas(start,stop))this.workbook.dependencyFormulas.calcTree()};Worksheet.prototype.setCollapsedRow=function(bCollapse,rowIndex,curRow){var oThis=this;
var fProcessRow=function(row,bSave){var oOldProps=row.getCollapsed();row.setCollapsed(bCollapse);var oNewProps=row.getCollapsed();if(oOldProps!==oNewProps)History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_CollapsedRow,oThis.getId(),row._getUpdateRange(),new UndoRedoData_IndexSimpleProp(row.index,true,oOldProps,oNewProps));if(bSave)row.saveContent(true)};if(curRow)fProcessRow(curRow,true);else this.getRange3(rowIndex,0,rowIndex,0)._foreachRow(fProcessRow)};Worksheet.prototype.setGroupRow=
function(bDel,start,stop){var oThis=this;var fProcessRow=function(row){var oOldProps=row.getOutlineLevel();row.setOutlineLevel(null,bDel);var oNewProps=row.getOutlineLevel();if(oOldProps!==oNewProps)History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_GroupRow,oThis.getId(),row._getUpdateRange(),new UndoRedoData_IndexSimpleProp(row.index,true,oOldProps,oNewProps))};this.getRange3(start,0,stop,0)._foreachRow(fProcessRow)};Worksheet.prototype.setOutlineRow=function(val,start,
stop){var oThis=this;var fProcessRow=function(row){var oOldProps=row.getOutlineLevel();row.setOutlineLevel(val);var oNewProps=row.getOutlineLevel();if(oOldProps!==oNewProps)History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_GroupRow,oThis.getId(),row._getUpdateRange(),new UndoRedoData_IndexSimpleProp(row.index,true,oOldProps,oNewProps))};this.getRange3(start,0,stop,0)._foreachRow(fProcessRow)};Worksheet.prototype.getRowCustomHeight=function(index){var isCustomHeight=false;
this._getRowNoEmptyWithAll(index,function(row){if(!row)isCustomHeight=false;else if(row.getHidden())isCustomHeight=true;else isCustomHeight=row.getCustomHeight()});return isCustomHeight};Worksheet.prototype.setRowBestFit=function(bBestFit,height,start,stop){if(null==start)return;if(null==stop)stop=start;History.Create_NewPoint();var oThis=this,i;var isDefaultProp=true==bBestFit&&oDefaultMetrics.RowHeight==height;var fProcessRow=function(row){if(row){var oOldProps=row.getHeightProp();row.setCustomHeight(!bBestFit);
row.setCalcHeight(true);row.setHeight(height);var oNewProps=row.getHeightProp();if(false==oOldProps.isEqual(oNewProps))History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_RowProp,oThis.getId(),row._getUpdateRange(),new UndoRedoData_IndexSimpleProp(row.index,true,oOldProps,oNewProps))}};if(0==start&&gc_nMaxRow0==stop){fProcessRow(isDefaultProp?this.oSheetFormatPr.oAllRow:this.getAllRow());this._forEachRow(fProcessRow)}else{var range=this.getRange3(start,0,stop,0);if(isDefaultProp)range._foreachRowNoEmpty(fProcessRow);
else range._foreachRow(fProcessRow)}this.workbook.dependencyFormulas.calcTree()};Worksheet.prototype.getCell=function(oCellAdd){return this.getRange(oCellAdd,oCellAdd)};Worksheet.prototype.getCell2=function(sCellAdd){if(sCellAdd.indexOf("$")>-1)sCellAdd=sCellAdd.replace(/\$/g,"");return this.getRange2(sCellAdd)};Worksheet.prototype.getCell3=function(r1,c1){return this.getRange3(r1,c1,r1,c1)};Worksheet.prototype.getRange=function(cellAdd1,cellAdd2){var nRow1=cellAdd1.getRow0();var nCol1=cellAdd1.getCol0();
var nRow2=cellAdd2.getRow0();var nCol2=cellAdd2.getCol0();return this.getRange3(nRow1,nCol1,nRow2,nCol2)};Worksheet.prototype.getRange2=function(sRange){var bbox=AscCommonExcel.g_oRangeCache.getAscRange(sRange);if(null!=bbox)return Range.prototype.createFromBBox(this,bbox);return null};Worksheet.prototype.getRange3=function(r1,c1,r2,c2){var nRowMin=r1;var nRowMax=r2;var nColMin=c1;var nColMax=c2;if(r1>r2){nRowMax=r1;nRowMin=r2}if(c1>c2){nColMax=c1;nColMin=c2}return new Range(this,nRowMin,nColMin,
nRowMax,nColMax)};Worksheet.prototype.getRange4=function(r,c){return new Range(this,r,c,r,c)};Worksheet.prototype.getRowIterator=function(r1,c1,c2,callback){var it=new RowIterator;it.init(this,r1,c1,c2);callback(it);it.release()};Worksheet.prototype._removeCell=function(nRow,nCol,cell){var t=this;var processCell=function(cell){if(null!=cell){var sheetId=t.getId();if(false==cell.isEmpty()){var oUndoRedoData_CellData=new AscCommonExcel.UndoRedoData_CellData(cell.getValueData(),null);if(null!=cell.xfs)oUndoRedoData_CellData.style=
cell.xfs.clone();cell.setFormulaInternal(null);History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_RemoveCell,sheetId,new Asc.Range(nCol,nRow,nCol,nRow),new UndoRedoData_CellSimpleData(nRow,nCol,oUndoRedoData_CellData,null))}t.workbook.dependencyFormulas.addToChangedCell(cell);cell.clearData();cell.saveContent(true)}};if(null!=cell){nRow=cell.nRow;nCol=cell.nCol;processCell(cell)}else this._getCellNoEmpty(nRow,nCol,processCell)};Worksheet.prototype._getCell=function(row,col,
fAction){var wb=this.workbook;var targetCell=null;for(var k=0;k<wb.loadCells.length;++k){var elem=wb.loadCells[k];if(elem.nRow==row&&elem.nCol==col&&this===elem.ws){targetCell=elem;break}}if(null===targetCell){var cell=new Cell(this);wb.loadCells.push(cell);if(!cell.loadContent(row,col))this._initCell(cell,row,col);fAction(cell);cell.saveContent(true);wb.loadCells.pop()}else fAction(targetCell)};Worksheet.prototype._initRow=function(row,index){var t=this;row.setChanged(true);if(null!=this.oSheetFormatPr.oAllRow){row.copyFrom(this.oSheetFormatPr.oAllRow);
row.setIndex(index)}this.nRowsCount=index>=this.nRowsCount?index+1:this.nRowsCount};Worksheet.prototype._initCell=function(cell,nRow,nCol){var t=this;cell.setChanged(true);this._getRowNoEmpty(nRow,function(row){var oCol=t._getColNoEmptyWithAll(nCol);var xfs=null;if(row&&null!=row.xfs)xfs=row.xfs.clone();else if(null!=oCol&&null!=oCol.xfs)xfs=oCol.xfs.clone();cell.setStyleInternal(xfs);t.cellsByColRowsCount=Math.max(t.cellsByColRowsCount,nRow+1);t.nRowsCount=Math.max(t.nRowsCount,t.cellsByColRowsCount);
if(nCol>=t.nColsCount)t.nColsCount=nCol+1});var sheetMemory=this.getColData(nCol);sheetMemory.checkSize(nRow)};Worksheet.prototype._getCellNoEmpty=function(row,col,fAction){var wb=this.workbook;var targetCell=null;for(var k=0;k<wb.loadCells.length;++k){var elem=wb.loadCells[k];if(elem.nRow==row&&elem.nCol==col&&this===elem.ws){targetCell=elem;break}}if(null===targetCell){var cell=new Cell(this);var res=cell.loadContent(row,col)?cell:null;if(res&&fAction)wb.loadCells.push(cell);fAction(res);cell.saveContent(true);
if(res)wb.loadCells.pop()}else fAction(targetCell)};Worksheet.prototype._getRowNoEmpty=function(nRow,fAction){var row=new AscCommonExcel.Row(this);if(row.loadContent(nRow)){fAction(row);row.saveContent(true)}else fAction(null)};Worksheet.prototype._getRowNoEmptyWithAll=function(nRow,fAction){var t=this;this._getRowNoEmpty(nRow,function(row){if(!row)row=t.oSheetFormatPr.oAllRow;fAction(row)})};Worksheet.prototype._getColNoEmpty=function(col){return this.aCols[col]||null};Worksheet.prototype._getColNoEmptyWithAll=
function(col){return this._getColNoEmpty(col)||this.oAllCol};Worksheet.prototype._getRow=function(index,fAction){var row=null;if(g_nAllRowIndex==index)row=this.getAllRow();else{row=new AscCommonExcel.Row(this);if(!row.loadContent(index))this._initRow(row,index)}fAction(row);row.saveContent(true)};Worksheet.prototype._getCol=function(index){var oCurCol;if(g_nAllColIndex==index)oCurCol=this.getAllCol();else{oCurCol=this.aCols[index];if(null==oCurCol){if(null!=this.oAllCol){oCurCol=this.oAllCol.clone();
oCurCol.index=index}else oCurCol=new AscCommonExcel.Col(this,index);this.aCols[index]=oCurCol;this.nColsCount=index>=this.nColsCount?index+1:this.nColsCount}}return oCurCol};Worksheet.prototype._prepareMoveRangeGetCleanRanges=function(oBBoxFrom,oBBoxTo,wsTo){var intersection=oBBoxFrom.intersectionSimple(oBBoxTo);var aRangesToCheck=[];if(null!=intersection&&this===wsTo){var oThis=this;var fAddToRangesToCheck=function(aRangesToCheck,r1,c1,r2,c2){if(r1<=r2&&c1<=c2)aRangesToCheck.push(oThis.getRange3(r1,
c1,r2,c2))};if(intersection.r1==oBBoxTo.r1&&intersection.c1==oBBoxTo.c1){fAddToRangesToCheck(aRangesToCheck,oBBoxTo.r1,intersection.c2+1,intersection.r2,oBBoxTo.c2);fAddToRangesToCheck(aRangesToCheck,intersection.r2+1,oBBoxTo.c1,oBBoxTo.r2,oBBoxTo.c2)}else if(intersection.r2==oBBoxTo.r2&&intersection.c1==oBBoxTo.c1){fAddToRangesToCheck(aRangesToCheck,oBBoxTo.r1,oBBoxTo.c1,intersection.r1-1,oBBoxTo.c2);fAddToRangesToCheck(aRangesToCheck,intersection.r1,intersection.c2+1,oBBoxTo.r2,oBBoxTo.c2)}else if(intersection.r1==
oBBoxTo.r1&&intersection.c2==oBBoxTo.c2){fAddToRangesToCheck(aRangesToCheck,oBBoxTo.r1,oBBoxTo.c1,intersection.r2,intersection.c1-1);fAddToRangesToCheck(aRangesToCheck,intersection.r2+1,oBBoxTo.c1,oBBoxTo.r2,oBBoxTo.c2)}else if(intersection.r2==oBBoxTo.r2&&intersection.c2==oBBoxTo.c2){fAddToRangesToCheck(aRangesToCheck,oBBoxTo.r1,oBBoxTo.c1,intersection.r1-1,oBBoxTo.c2);fAddToRangesToCheck(aRangesToCheck,intersection.r1,oBBoxTo.c1,oBBoxTo.r2,intersection.c1-1)}}else aRangesToCheck.push(wsTo.getRange3(oBBoxTo.r1,
oBBoxTo.c1,oBBoxTo.r2,oBBoxTo.c2));return aRangesToCheck};Worksheet.prototype._prepareMoveRange=function(oBBoxFrom,oBBoxTo,wsTo){var res=0;if(!wsTo)wsTo=this;if(oBBoxFrom.isEqual(oBBoxTo)&&this===wsTo)return res;var range=wsTo.getRange3(oBBoxTo.r1,oBBoxTo.c1,oBBoxTo.r2,oBBoxTo.c2);var aMerged=wsTo.mergeManager.get(range.getBBox0());if(aMerged.outer.length>0)return-2;var aRangesToCheck=this._prepareMoveRangeGetCleanRanges(oBBoxFrom,oBBoxTo,wsTo);for(var i=0,length=aRangesToCheck.length;i<length;i++){range=
aRangesToCheck[i];range._foreachNoEmpty(function(cell){if(!cell.isNullTextString()){res=-1;return res}});if(0!=res)return res}return res};Worksheet.prototype._moveMergedAndHyperlinksPrepare=function(oBBoxFrom,oBBoxTo,copyRange,wsTo,offset){var res={merged:[],hyperlinks:[]};if(!(false==this.workbook.bUndoChanges&&(false==this.workbook.bRedoChanges||this.workbook.bCollaborativeChanges)))return res;var i,elem,bbox,data,wsFrom=this;var intersection=oBBoxFrom.intersectionSimple(oBBoxTo);History.LocalChange=
true;var merged=wsFrom.mergeManager.get(oBBoxFrom).inner;var mergedToRemove;if(!copyRange)mergedToRemove=merged;else if(null!==intersection)mergedToRemove=wsFrom.mergeManager.get(intersection).all;if(mergedToRemove)for(i=0;i<mergedToRemove.length;i++)wsFrom.mergeManager.removeElement(mergedToRemove[i]);var hyperlinks=wsFrom.hyperlinkManager.get(oBBoxFrom).inner;if(!copyRange)for(i=0;i<hyperlinks.length;i++)wsFrom.hyperlinkManager.removeElement(hyperlinks[i]);History.LocalChange=false;res.merged=merged;
res.hyperlinks=hyperlinks;return res};Worksheet.prototype._moveMergedAndHyperlinks=function(prepared,oBBoxFrom,oBBoxTo,copyRange,wsTo,offset){var i,elem,bbox,data;var intersection=oBBoxFrom.intersectionSimple(oBBoxTo);History.LocalChange=true;for(i=0;i<prepared.merged.length;i++){elem=prepared.merged[i];bbox=copyRange?elem.bbox.clone():elem.bbox;bbox.setOffset(offset);wsTo.mergeManager.add(bbox,elem.data)}if(!copyRange||null===intersection)for(i=0;i<prepared.hyperlinks.length;i++){elem=prepared.hyperlinks[i];
if(copyRange){bbox=elem.bbox.clone();data=elem.data.clone()}else{bbox=elem.bbox;data=elem.data}bbox.setOffset(offset);wsTo.hyperlinkManager.add(bbox,data)}History.LocalChange=false};Worksheet.prototype._moveCleanRanges=function(oBBoxFrom,oBBoxTo,copyRange,wsTo){var cleanRanges=this._prepareMoveRangeGetCleanRanges(oBBoxFrom,oBBoxTo,wsTo);for(var i=0;i<cleanRanges.length;i++){var range=cleanRanges[i];range.cleanAll();if(!copyRange)this.workbook.dependencyFormulas.deleteNodes(wsTo.getId(),range.getBBox0())}};
Worksheet.prototype._moveFormulas=function(oBBoxFrom,oBBoxTo,copyRange,wsTo,offset){if(!copyRange)this.workbook.dependencyFormulas.move(this.Id,oBBoxFrom,offset,wsTo.getId());this.getRange3(oBBoxFrom.r1,oBBoxFrom.c1,oBBoxFrom.r2,oBBoxFrom.c2)._foreachNoEmpty(function(cell){if(cell.transformSharedFormula()){var parsed=cell.getFormulaParsed();parsed.buildDependencies()}})};Worksheet.prototype._moveCells=function(oBBoxFrom,oBBoxTo,copyRange,wsTo,offset){var oThis=this;var nRowsCountNew=0;var nColsCountNew=
0;var dependencyFormulas=oThis.workbook.dependencyFormulas;var moveToOtherSheet=this!==wsTo;var isClearFromArea=!copyRange||copyRange&&oThis.workbook.bUndoChanges;var moveCells=function(copyRange,from,to,r1From,r1To,count){var fromData=oThis.getColDataNoEmpty(from);var toData;if(fromData){toData=wsTo.getColData(to);toData.copyRange(fromData,r1From,r1To,count);if(isClearFromArea)if(from!==to||moveToOtherSheet)fromData.clear(r1From,r1From+count);else if(r1From<r1To)fromData.clear(r1From,Math.min(r1From+
count,r1To));else fromData.clear(Math.max(r1From,r1To+count),r1From+count)}else{toData=wsTo.getColDataNoEmpty(to);if(toData)toData.clear(r1To,r1To+count)}if(toData){nRowsCountNew=Math.max(nRowsCountNew,toData.getSize());nColsCountNew=Math.max(nColsCountNew,to+1)}};if(oBBoxFrom.c1<oBBoxTo.c1)for(var i=0;i<oBBoxFrom.c2-oBBoxFrom.c1+1;++i)moveCells(copyRange,oBBoxFrom.c2-i,oBBoxTo.c2-i,oBBoxFrom.r1,oBBoxTo.r1,oBBoxFrom.r2-oBBoxFrom.r1+1);else for(var i=0;i<oBBoxFrom.c2-oBBoxFrom.c1+1;++i)moveCells(copyRange,
oBBoxFrom.c1+i,oBBoxTo.c1+i,oBBoxFrom.r1,oBBoxTo.r1,oBBoxFrom.r2-oBBoxFrom.r1+1);History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_MoveRange,this.getId(),new Asc.Range(0,0,gc_nMaxCol0,gc_nMaxRow0),new UndoRedoData_FromTo(new UndoRedoData_BBox(oBBoxFrom),new UndoRedoData_BBox(oBBoxTo),copyRange,wsTo.getId()));if(moveToOtherSheet)History.AddToUpdatesRegions(oBBoxTo,wsTo.getId());var shiftedArrayFormula={};var oldNewArrayFormulaMap={};wsTo.cellsByColRowsCount=Math.max(wsTo.cellsByColRowsCount,
nRowsCountNew);wsTo.nRowsCount=Math.max(wsTo.nRowsCount,wsTo.cellsByColRowsCount);wsTo.nColsCount=Math.max(wsTo.nColsCount,nColsCountNew);wsTo.getRange3(oBBoxTo.r1,oBBoxTo.c1,oBBoxTo.r2,oBBoxTo.c2)._foreachNoEmpty(function(cell){var formula=cell.getFormulaParsed();if(formula){var cellWithFormula=formula.getParent();var arrayFormula=formula.getArrayFormulaRef();var newArrayRef,newFormula;var preMoveCell={nRow:cell.nRow-offset.row,nCol:cell.nCol-offset.col};var isFirstCellArray=formula.checkFirstCellArray(preMoveCell)&&
!shiftedArrayFormula[formula.getListenerId()];if(copyRange){History.TurnOff();if(!arrayFormula||arrayFormula&&isFirstCellArray){newFormula=oThis._moveCellsFormula(cell,formula,cellWithFormula,copyRange,oBBoxFrom,wsTo);cellWithFormula=newFormula.getParent();cellWithFormula=new CCellWithFormula(wsTo,cell.nRow,cell.nCol);newFormula=newFormula.clone(null,cellWithFormula,wsTo);newFormula.changeOffset(offset,false,true);newFormula.setFormulaString(newFormula.assemble(true));cell.setFormulaInternal(newFormula,
!isClearFromArea);if(isFirstCellArray){newArrayRef=arrayFormula.clone();newArrayRef.setOffset(offset);newFormula.setArrayFormulaRef(newArrayRef);shiftedArrayFormula[newFormula.getListenerId()]=1;oldNewArrayFormulaMap[formula.getListenerId()]=newFormula}}else if(arrayFormula&&oldNewArrayFormulaMap[formula.getListenerId()])cell.setFormulaInternal(oldNewArrayFormulaMap[formula.getListenerId()],!isClearFromArea);History.TurnOn()}else if(arrayFormula){if(isFirstCellArray){newFormula=oThis._moveCellsFormula(cell,
formula,cellWithFormula,copyRange,oBBoxFrom,wsTo);cellWithFormula=newFormula.getParent();shiftedArrayFormula[formula.getListenerId()]=1;newArrayRef=arrayFormula.clone();newArrayRef.setOffset(offset);newFormula.setArrayFormulaRef(newArrayRef);cellWithFormula.ws=wsTo;cellWithFormula.nRow=cell.nRow;cellWithFormula.nCol=cell.nCol}}else{newFormula=oThis._moveCellsFormula(cell,formula,cellWithFormula,copyRange,oBBoxFrom,wsTo);cellWithFormula=newFormula.getParent();cellWithFormula.ws=wsTo;cellWithFormula.nRow=
cell.nRow;cellWithFormula.nCol=cell.nCol}if(arrayFormula){if(isFirstCellArray){dependencyFormulas.addToBuildDependencyArray(formula);if(newFormula)dependencyFormulas.addToBuildDependencyArray(newFormula)}}else dependencyFormulas.addToBuildDependencyCell(cell)}})};Worksheet.prototype._moveCellsFormula=function(cell,formula,cellWithFormula,copyRange,oBBoxFrom,wsTo){if(this!==wsTo)if(copyRange||!this.workbook.bUndoChanges){cellWithFormula=new CCellWithFormula(wsTo,cell.nRow,cell.nCol);formula=formula.clone(null,
cellWithFormula,wsTo);if(!copyRange)formula.convertTo3DRefs(oBBoxFrom);formula.moveToSheet(this,wsTo);formula.setFormulaString(formula.assemble(true));cell.setFormulaParsed(formula)}else{formula.moveToSheet(this,wsTo);formula.setFormulaString(formula.assemble(true))}return formula};Worksheet.prototype._moveRange=function(oBBoxFrom,oBBoxTo,copyRange,wsTo){if(!wsTo)wsTo=this;if(oBBoxFrom.isEqual(oBBoxTo)&&this===wsTo)return;History.Create_NewPoint();History.StartTransaction();this.workbook.dependencyFormulas.lockRecal();
var offset=new AscCommon.CellBase(oBBoxTo.r1-oBBoxFrom.r1,oBBoxTo.c1-oBBoxFrom.c1);var prepared=this._moveMergedAndHyperlinksPrepare(oBBoxFrom,oBBoxTo,copyRange,wsTo,offset);this._moveCleanRanges(oBBoxFrom,oBBoxTo,copyRange,wsTo);this._moveFormulas(oBBoxFrom,oBBoxTo,copyRange,wsTo,offset);this._moveCells(oBBoxFrom,oBBoxTo,copyRange,wsTo,offset);this._moveMergedAndHyperlinks(prepared,oBBoxFrom,oBBoxTo,copyRange,wsTo,offset);if(true==this.workbook.bUndoChanges||true==this.workbook.bRedoChanges)wsTo.autoFilters.unmergeTablesAfterMove(oBBoxTo);
if(false==this.workbook.bUndoChanges&&false==this.workbook.bRedoChanges)this.autoFilters._moveAutoFilters(oBBoxTo,oBBoxFrom,null,copyRange,true,oBBoxFrom,wsTo);this.workbook.dependencyFormulas.unlockRecal();History.EndTransaction();return true};Worksheet.prototype._shiftCellsLeft=function(oBBox){var t=this;var nLeft=oBBox.c1;var nRight=oBBox.c2;var dif=nLeft-nRight-1;var oActualRange=new Asc.Range(nLeft,oBBox.r1,gc_nMaxCol0,oBBox.r2);var offset=new AscCommon.CellBase(0,dif);var renameRes=this.renameDependencyNodes(offset,
oBBox);var redrawTablesArr=this.autoFilters.insertColumn(oBBox,dif);this.getRange3(oBBox.r1,oBBox.c1,oBBox.r2,oBBox.c2)._foreachNoEmpty(function(cell){t._removeCell(null,null,cell)});this._updateFormulasParents(oActualRange.r1,oActualRange.c1,oActualRange.r2,oActualRange.c2,oBBox,offset,renameRes.shiftedShared);var cellsByColLength=this.getColDataLength();for(var i=nRight+1;i<cellsByColLength;++i){var sheetMemoryFrom=this.getColDataNoEmpty(i);if(sheetMemoryFrom){this.getColData(i+dif).copyRange(sheetMemoryFrom,
oBBox.r1,oBBox.r1,oBBox.r2-oBBox.r1+1);sheetMemoryFrom.clear(oBBox.r1,oBBox.r2+1)}}this.workbook.dependencyFormulas.notifyChanged(renameRes.changed);History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_ShiftCellsLeft,this.getId(),oActualRange,new UndoRedoData_BBox(oBBox));this.autoFilters.redrawStylesTables(redrawTablesArr)};Worksheet.prototype._shiftCellsUp=function(oBBox){var t=this;var nTop=oBBox.r1;var nBottom=oBBox.r2;var dif=nTop-nBottom-1;var oActualRange=new Asc.Range(oBBox.c1,
oBBox.r1,oBBox.c2,gc_nMaxRow0);var offset=new AscCommon.CellBase(dif,0);var renameRes=this.renameDependencyNodes(offset,oBBox);var redrawTablesArr=this.autoFilters.insertRows("delCell",oBBox,c_oAscDeleteOptions.DeleteCellsAndShiftTop);this.getRange3(oBBox.r1,oBBox.c1,oBBox.r2,oBBox.c2)._foreachNoEmpty(function(cell){t._removeCell(null,null,cell)});this._updateFormulasParents(oActualRange.r1,oActualRange.c1,oActualRange.r2,oActualRange.c2,oBBox,offset,renameRes.shiftedShared);for(var i=oBBox.c1;i<=
oBBox.c2;++i){var sheetMemory=this.getColDataNoEmpty(i);if(sheetMemory)sheetMemory.deleteRange(nTop,-dif)}this.workbook.dependencyFormulas.notifyChanged(renameRes.changed);History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_ShiftCellsTop,this.getId(),oActualRange,new UndoRedoData_BBox(oBBox));this.autoFilters.redrawStylesTables(redrawTablesArr)};Worksheet.prototype._shiftCellsRight=function(oBBox,displayNameFormatTable){var nLeft=oBBox.c1;var nRight=oBBox.c2;var dif=nRight-
nLeft+1;var oActualRange=new Asc.Range(oBBox.c1,oBBox.r1,gc_nMaxCol0,oBBox.r2);var offset=new AscCommon.CellBase(0,dif);var renameRes=this.renameDependencyNodes(offset,oBBox);var redrawTablesArr=this.autoFilters.insertColumn(oBBox,dif,displayNameFormatTable);this._updateFormulasParents(oActualRange.r1,oActualRange.c1,oActualRange.r2,oActualRange.c2,oBBox,offset,renameRes.shiftedShared);var borders;if(nLeft>0&&!this.workbook.bUndoChanges)borders=this._getBordersForInsert(oBBox,false);var cellsByColLength=
this.getColDataLength();for(var i=cellsByColLength-1;i>=nLeft;--i){var sheetMemoryFrom=this.getColDataNoEmpty(i);if(sheetMemoryFrom){if(i+dif<=gc_nMaxCol0)this.getColData(i+dif).copyRange(sheetMemoryFrom,oBBox.r1,oBBox.r1,oBBox.r2-oBBox.r1+1);sheetMemoryFrom.clear(oBBox.r1,oBBox.r2+1)}}this.nColsCount=Math.max(this.nColsCount,this.getColDataLength());if(nLeft>0&&!this.workbook.bUndoChanges){var prevSheetMemory=this.getColDataNoEmpty(nLeft-1);if(prevSheetMemory){for(var i=nLeft;i<=nRight;++i)this.getColData(i).copyRange(prevSheetMemory,
oBBox.r1,oBBox.r1,oBBox.r2-oBBox.r1+1);this.nColsCount=Math.max(this.nColsCount,this.getColDataLength());this.getRange3(oBBox.r1,oBBox.c1,oBBox.r2,oBBox.c2)._foreachNoEmpty(function(cell){cell.clearDataKeepXf(borders[cell.nRow])})}}this.workbook.dependencyFormulas.notifyChanged(renameRes.changed);History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_ShiftCellsRight,this.getId(),oActualRange,new UndoRedoData_BBox(oBBox));this.autoFilters.redrawStylesTables(redrawTablesArr)};Worksheet.prototype._shiftCellsBottom=
function(oBBox,displayNameFormatTable){var t=this;var nTop=oBBox.r1;var nBottom=oBBox.r2;var dif=nBottom-nTop+1;var oActualRange=new Asc.Range(oBBox.c1,oBBox.r1,oBBox.c2,gc_nMaxRow0);var offset=new AscCommon.CellBase(dif,0);var renameRes=this.renameDependencyNodes(offset,oBBox);var redrawTablesArr;if(!this.workbook.bUndoChanges&&undefined===displayNameFormatTable)redrawTablesArr=this.autoFilters.insertRows("insCell",oBBox,c_oAscInsertOptions.InsertCellsAndShiftDown,displayNameFormatTable);this._updateFormulasParents(oActualRange.r1,
oActualRange.c1,oActualRange.r2,oActualRange.c2,oBBox,offset,renameRes.shiftedShared);var borders;if(nTop>0&&!this.workbook.bUndoChanges)borders=this._getBordersForInsert(oBBox,true);for(var i=oBBox.c1;i<=oBBox.c2;++i){var sheetMemory=this.getColDataNoEmpty(i);if(sheetMemory){sheetMemory.insertRange(nTop,dif);t.cellsByColRowsCount=Math.max(t.cellsByColRowsCount,sheetMemory.getSize())}}this.nRowsCount=Math.max(this.nRowsCount,this.cellsByColRowsCount);if(nTop>0&&!this.workbook.bUndoChanges){for(var i=
oBBox.c1;i<=oBBox.c2;++i){var sheetMemory=this.getColDataNoEmpty(i);if(sheetMemory){sheetMemory.copyRangeByChunk(nTop-1,1,nTop,dif);t.cellsByColRowsCount=Math.max(t.cellsByColRowsCount,sheetMemory.getSize())}}this.nRowsCount=Math.max(this.nRowsCount,this.cellsByColRowsCount);this.getRange3(oBBox.r1,oBBox.c1,oBBox.r2,oBBox.c2)._foreachNoEmpty(function(cell){cell.clearDataKeepXf(borders[cell.nCol])})}this.workbook.dependencyFormulas.notifyChanged(renameRes.changed);History.Add(AscCommonExcel.g_oUndoRedoWorksheet,
AscCH.historyitem_Worksheet_ShiftCellsBottom,this.getId(),oActualRange,new UndoRedoData_BBox(oBBox));if(!this.workbook.bUndoChanges&&undefined!==displayNameFormatTable)redrawTablesArr=this.autoFilters.insertRows("insCell",oBBox,c_oAscInsertOptions.InsertCellsAndShiftDown,displayNameFormatTable);if(!this.workbook.bUndoChanges)this.autoFilters.redrawStylesTables(redrawTablesArr)};Worksheet.prototype._setIndex=function(ind){this.index=ind};Worksheet.prototype._BuildDependencies=function(cellRange){var ca;
for(var i in cellRange){if(null===cellRange[i]){cellRange[i]=i;continue}ca=g_oCellAddressUtils.getCellAddress(i);this._getCellNoEmpty(ca.getRow0(),ca.getCol0(),function(c){if(c)c._BuildDependencies(true)})}};Worksheet.prototype._setHandlersTablePart=function(){if(!this.TableParts)return;for(var i=0;i<this.TableParts.length;i++)this.TableParts[i].setHandlers(this.handlers)};Worksheet.prototype.getTableRangeForFormula=function(name,objectParam){var res=null;if(!this.TableParts||!name)return res;for(var i=
0;i<this.TableParts.length;i++)if(this.TableParts[i].DisplayName.toLowerCase()===name.toLowerCase()){res=this.TableParts[i].getTableRangeForFormula(objectParam);break}return res};Worksheet.prototype.getTableIndexColumnByName=function(tableName,columnName){var res=null;if(!this.TableParts||!tableName)return res;for(var i=0;i<this.TableParts.length;i++)if(this.TableParts[i].DisplayName.toLowerCase()===tableName.toLowerCase()){res=this.TableParts[i].getTableIndexColumnByName(columnName);break}return res};
Worksheet.prototype.getTableNameColumnByIndex=function(tableName,columnIndex){var res=null;if(!this.TableParts||!tableName)return res;for(var i=0;i<this.TableParts.length;i++)if(this.TableParts[i].DisplayName.toLowerCase()===tableName.toLowerCase()){res=this.TableParts[i].getTableNameColumnByIndex(columnIndex);break}return res};Worksheet.prototype.getTableByName=function(tableName){var res=null;if(!this.TableParts||!tableName)return res;for(var i=0;i<this.TableParts.length;i++)if(this.TableParts[i].DisplayName.toLowerCase()===
function(){return this.getWorksheet(this.nActive)};Workbook.prototype.setActive=function(index){if(index>=0&&index<this.aWorksheets.length){this.nActive=index;this.cleanFindResults();return true}return false};Workbook.prototype.setActiveById=function(sheetId){var ws=this.getWorksheetById(sheetId);if(!ws&&Array.isArray(this.aWorksheets))ws=this.aWorksheets[this.aWorksheets.length-1];return this.setActive(ws.getIndex())};Workbook.prototype.getSheetIdByIndex=function(index){var ws=this.getWorksheet(index);
return ws?ws.getId():null};Workbook.prototype.getWorksheet=function(index){if(index>=0&&index<this.aWorksheets.length)return this.aWorksheets[index];return null};Workbook.prototype.getWorksheetById=function(id){return this.aWorksheetsById[id]};Workbook.prototype.getWorksheetByName=function(name){for(var i=0;i<this.aWorksheets.length;i++)if(this.aWorksheets[i].getName()==name)return this.aWorksheets[i];return null};Workbook.prototype.getWorksheetIndexByName=function(name){for(var i=0;i<this.aWorksheets.length;i++)if(this.aWorksheets[i].getName()==
name)return i;return null};Workbook.prototype.getWorksheetCount=function(){return this.aWorksheets.length};Workbook.prototype.createWorksheet=function(indexBefore,sName,sId){this.dependencyFormulas.lockRecal();History.Create_NewPoint();History.TurnOff();var wsActive=this.getActiveWs();var oNewWorksheet=new Worksheet(this,this.aWorksheets.length,sId);if(this.checkValidSheetName(sName))oNewWorksheet.sName=sName;oNewWorksheet.initPostOpen(this.wsHandlers);if(null!=indexBefore&&indexBefore>=0&&indexBefore<
this.aWorksheets.length)this.aWorksheets.splice(indexBefore,0,oNewWorksheet);else{indexBefore=this.aWorksheets.length;this.aWorksheets.push(oNewWorksheet)}this.aWorksheetsById[oNewWorksheet.getId()]=oNewWorksheet;this._updateWorksheetIndexes(wsActive);History.TurnOn();this._insertWorksheetFormula(oNewWorksheet.index);History.Add(AscCommonExcel.g_oUndoRedoWorkbook,AscCH.historyitem_Workbook_SheetAdd,null,null,new UndoRedoData_SheetAdd(indexBefore,oNewWorksheet.getName(),null,oNewWorksheet.getId()));
History.SetSheetUndo(wsActive.getId());History.SetSheetRedo(oNewWorksheet.getId());this.dependencyFormulas.unlockRecal();return oNewWorksheet.index};Workbook.prototype.copyWorksheet=function(index,insertBefore,sName,sId,bFromRedo,tableNames){if(index>=0&&index<this.aWorksheets.length){this.dependencyFormulas.buildDependency();History.TurnOff();var wsActive=this.getActiveWs();var wsFrom=this.aWorksheets[index];var newSheet=new Worksheet(this,-1,sId);if(null!=insertBefore&&insertBefore>=0&&insertBefore<
this.aWorksheets.length)this.aWorksheets.splice(insertBefore,0,newSheet);else this.aWorksheets.push(newSheet);this.aWorksheetsById[newSheet.getId()]=newSheet;this._updateWorksheetIndexes(wsActive);var renameParams=newSheet.copyFrom(wsFrom,sName,tableNames);newSheet.initPostOpen(this.wsHandlers);History.TurnOn();this.dependencyFormulas.copyDefNameByWorksheet(wsFrom,newSheet,renameParams);this._insertWorksheetFormula(insertBefore);if(!tableNames)tableNames=newSheet.getTableNames();History.Add(AscCommonExcel.g_oUndoRedoWorkbook,
AscCH.historyitem_Workbook_SheetAdd,null,null,new UndoRedoData_SheetAdd(insertBefore,newSheet.getName(),wsFrom.getId(),newSheet.getId(),tableNames));History.SetSheetUndo(wsActive.getId());History.SetSheetRedo(newSheet.getId());if(!(bFromRedo===true))wsFrom.copyObjects(newSheet,wsFrom);this.sortDependency()}};Workbook.prototype.insertWorksheet=function(index,sheet){var wsActive=this.getActiveWs();if(null!=index&&index>=0&&index<this.aWorksheets.length)this.aWorksheets.splice(index,0,sheet);else this.aWorksheets.push(sheet);
this.aWorksheetsById[sheet.getId()]=sheet;this._updateWorksheetIndexes(wsActive);this._insertWorksheetFormula(index);this._insertTablePartsName(sheet);sheet._BuildDependencies(sheet.getCwf());this.sortDependency()};Workbook.prototype._insertTablePartsName=function(sheet){if(sheet&&sheet.TableParts&&sheet.TableParts.length)for(var i=0;i<sheet.TableParts.length;i++){var tablePart=sheet.TableParts[i];this.dependencyFormulas.addTableName(sheet,tablePart);tablePart.buildDependencies()}};Workbook.prototype._insertWorksheetFormula=
function(index){if(index>0&&index<this.aWorksheets.length){var oWsBefore=this.aWorksheets[index-1];this.dependencyFormulas.changeSheet(this.dependencyFormulas.prepareChangeSheet(oWsBefore.getId(),{insert:index}))}};Workbook.prototype.replaceWorksheet=function(indexFrom,indexTo){if(indexFrom>=0&&indexFrom<this.aWorksheets.length&&indexTo>=0&&indexTo<this.aWorksheets.length){var wsActive=this.getActiveWs();var oWsFrom=this.aWorksheets[indexFrom];var tempW={wF:oWsFrom,wFI:indexFrom,wTI:indexTo};if(tempW.wFI<
tempW.wTI)tempW.wTI++;this.dependencyFormulas.lockRecal();var prepared=this.dependencyFormulas.prepareChangeSheet(oWsFrom.getId(),{replace:tempW},null);var movedSheet=this.aWorksheets.splice(indexFrom,1);this.aWorksheets.splice(indexTo,0,movedSheet[0]);this._updateWorksheetIndexes(wsActive);this.dependencyFormulas.changeSheet(prepared);this._insertWorksheetFormula(indexTo);History.Add(AscCommonExcel.g_oUndoRedoWorkbook,AscCH.historyitem_Workbook_SheetMove,null,null,new UndoRedoData_FromTo(indexFrom,
indexTo));this.dependencyFormulas.unlockRecal()}};Workbook.prototype.findSheetNoHidden=function(nIndex){var i,ws,oRes=null,bFound=false,countWorksheets=this.getWorksheetCount();for(i=nIndex;i<countWorksheets;++i){ws=this.getWorksheet(i);if(false===ws.getHidden()){oRes=ws;bFound=true;break}}if(!bFound)for(i=nIndex-1;i>=0;--i){ws=this.getWorksheet(i);if(false===ws.getHidden()){oRes=ws;break}}return oRes};Workbook.prototype.removeWorksheet=function(nIndex,outputParams){var bEmpty=true;for(var i=0,length=
this.aWorksheets.length;i<length;++i){var worksheet=this.aWorksheets[i];if(false==worksheet.getHidden()&&i!=nIndex){bEmpty=false;break}}if(bEmpty)return-1;var removedSheet=this.getWorksheet(nIndex);if(removedSheet){var removedSheetId=removedSheet.getId();this.dependencyFormulas.lockRecal();var prepared=this.dependencyFormulas.prepareRemoveSheet(removedSheetId,removedSheet.getTableNames());var wsActive=this.getActiveWs();var oVisibleWs=null;this.aWorksheets.splice(nIndex,1);delete this.aWorksheetsById[removedSheetId];
if(nIndex==this.getActive()){oVisibleWs=this.findSheetNoHidden(nIndex);if(null!=oVisibleWs)wsActive=oVisibleWs}History.Add(AscCommonExcel.g_oUndoRedoWorkbook,AscCH.historyitem_Workbook_SheetRemove,null,null,new AscCommonExcel.UndoRedoData_SheetRemove(nIndex,removedSheetId,removedSheet));if(null!=oVisibleWs){History.SetSheetUndo(removedSheetId);History.SetSheetRedo(wsActive.getId())}if(null!=outputParams)outputParams.sheet=removedSheet;this._updateWorksheetIndexes(wsActive);this.dependencyFormulas.removeSheet(prepared);
this.dependencyFormulas.unlockRecal();return wsActive.getIndex()}return-1};Workbook.prototype._updateWorksheetIndexes=function(wsActive){this.forEach(function(ws,index){ws._setIndex(index)});if(null!=wsActive)this.setActive(wsActive.getIndex())};Workbook.prototype.checkUniqueSheetName=function(name){var workbookSheetCount=this.getWorksheetCount();for(var i=0;i<workbookSheetCount;i++)if(this.getWorksheet(i).getName()==name)return i;return-1};Workbook.prototype.checkValidSheetName=function(name){return name&&
name.length<g_nSheetNameMaxLength};Workbook.prototype.getUniqueSheetNameFrom=function(name,bCopy){var nIndex=1;var sNewName="";var fGetPostfix=null;if(bCopy){var result=/^(.*)\((\d)\)$/.exec(name);if(result){fGetPostfix=function(nIndex){return"("+nIndex+")"};name=result[1]}else{fGetPostfix=function(nIndex){return" ("+nIndex+")"};name=name}}else fGetPostfix=function(nIndex){return nIndex.toString()};var workbookSheetCount=this.getWorksheetCount();while(nIndex<1E4){var sPosfix=fGetPostfix(nIndex);sNewName=
name+sPosfix;if(sNewName.length>g_nSheetNameMaxLength){name=name.substring(0,g_nSheetNameMaxLength-sPosfix.length);sNewName=name+sPosfix}var bUniqueName=true;for(var i=0;i<workbookSheetCount;i++)if(this.getWorksheet(i).getName()==sNewName){bUniqueName=false;break}if(bUniqueName)break;nIndex++}return sNewName};Workbook.prototype._generateFontMap=function(){var oFontMap={"Arial":1};var i;oFontMap[g_oDefaultFormat.Font.getName()]=1;if(null!=this.theme)AscFormat.checkThemeFonts(oFontMap,this.theme.themeElements.fontScheme);
for(i=1;i<=g_StyleCache.getXfCount();++i){var xf=g_StyleCache.getXf(i);if(xf.font)oFontMap[xf.font.getName()]=1}this.sharedStrings.generateFontMap(oFontMap);this.forEach(function(ws){ws.generateFontMap(oFontMap)});this.CellStyles.generateFontMap(oFontMap);return oFontMap};Workbook.prototype.generateFontMap=function(){var oFontMap=this._generateFontMap();var aRes=[];for(var i in oFontMap)aRes.push(i);return aRes};Workbook.prototype.generateFontMap2=function(){var oFontMap=this._generateFontMap();var aRes=
[];for(var i in oFontMap)aRes.push(new AscFonts.CFont(i,0,"",0));AscFonts.FontPickerByCharacter.extendFonts(aRes);return aRes};Workbook.prototype.getAllImageUrls=function(){var aImageUrls=[];this.forEach(function(ws){ws.getAllImageUrls(aImageUrls)});return aImageUrls};Workbook.prototype.reassignImageUrls=function(oImages){this.forEach(function(ws){ws.reassignImageUrls(oImages)})};Workbook.prototype.recalcWB=function(rebuild,opt_sheetId){var formulas;if(rebuild){formulas=this.getAllFormulas();for(var i=
0;i<formulas.length;++i){var formula=formulas[i];formula.removeDependencies();formula.setFormula(formula.getFormula());formula.parse();formula.buildDependencies()}}else if(opt_sheetId){formulas=[];var ws=this.getWorksheetById(opt_sheetId);ws.getAllFormulas(formulas)}else formulas=this.getAllFormulas();this.dependencyFormulas.notifyChanged(formulas);this.dependencyFormulas.calcTree()};Workbook.prototype.checkDefName=function(checkName,scope){return this.dependencyFormulas.checkDefName(checkName,scope)};
Workbook.prototype.getDefinedNamesWB=function(defNameListId,bLocale){return this.dependencyFormulas.getDefinedNamesWB(defNameListId,bLocale)};Workbook.prototype.getDefinedNamesWS=function(sheetId){return this.dependencyFormulas.getDefinedNamesWS(sheetId)};Workbook.prototype.addDefName=function(name,ref,sheetId,hidden,isTable){return this.dependencyFormulas.addDefName(name,ref,sheetId,hidden,isTable)};Workbook.prototype.getDefinesNames=function(name,sheetId){return this.dependencyFormulas.getDefNameByName(name,
sheetId)};Workbook.prototype.getDefinedName=function(name){var sheetId=this.getSheetIdByIndex(name.LocalSheetId);return this.dependencyFormulas.getDefNameByName(name.Name,sheetId)};Workbook.prototype.delDefinesNames=function(defName){this.delDefinesNamesUndoRedo(this.getUndoDefName(defName))};Workbook.prototype.delDefinesNamesUndoRedo=function(defName){this.dependencyFormulas.removeDefName(defName.sheetId,defName.name);this.dependencyFormulas.calcTree()};Workbook.prototype.editDefinesNames=function(oldName,
newName){return this.editDefinesNamesUndoRedo(this.getUndoDefName(oldName),this.getUndoDefName(newName))};Workbook.prototype.editDefinesNamesUndoRedo=function(oldName,newName){var res=this.dependencyFormulas.editDefinesNames(oldName,newName);this.dependencyFormulas.calcTree();return res};Workbook.prototype.findDefinesNames=function(ref,sheetId,bLocale){return this.dependencyFormulas.getDefNameByRef(ref,sheetId,bLocale)};Workbook.prototype.unlockDefName=function(){this.dependencyFormulas.unlockDefName()};
Workbook.prototype.unlockCurrentDefName=function(name,sheetId){this.dependencyFormulas.unlockCurrentDefName(name,sheetId)};Workbook.prototype.checkDefNameLock=function(){return this.dependencyFormulas.checkDefNameLock()};Workbook.prototype._SerializeHistoryBase64=function(oMemory,item,aPointChangesBase64){if(!item.LocalChange){var nPosStart=oMemory.GetCurPosition();item.Serialize(oMemory,this.oApi.collaborativeEditing);var nPosEnd=oMemory.GetCurPosition();var nLen=nPosEnd-nPosStart;if(nLen>0)aPointChangesBase64.push(nLen+
";"+oMemory.GetBase64Memory2(nPosStart,nLen))}};Workbook.prototype.SerializeHistory=function(){var aRes=[];var t,j,length2;AscCommon.CollaborativeEditing.Refresh_DCChanges();var aActions=this.aCollaborativeActions.concat(History.GetSerializeArray());if(aActions.length>0){var oMemory=new AscCommon.CMemory;for(var i=0,length=aActions.length;i<length;++i){var aPointChanges=aActions[i];for(j=0,length2=aPointChanges.length;j<length2;++j){var item=aPointChanges[j];this._SerializeHistoryBase64(oMemory,item,
aRes)}}this.aCollaborativeActions=[];this.snapshot=this._getSnapshot()}return aRes};Workbook.prototype._getSnapshot=function(){var wb=new Workbook(new AscCommonExcel.asc_CHandlersList,this.oApi);wb.dependencyFormulas=this.dependencyFormulas.getSnapshot(wb);this.forEach(function(ws){ws=ws.getSnapshot(wb);wb.aWorksheets.push(ws);wb.aWorksheetsById[ws.getId()]=ws});wb.init({},true,false);return wb};Workbook.prototype.getAllFormulas=function(){var res=[];this.dependencyFormulas.getAllFormulas(res);this.forEach(function(ws){ws.getAllFormulas(res)});
return res};Workbook.prototype._forwardTransformation=function(wbSnapshot,changesMine,changesTheir){History.TurnOff();var res1=this._forwardTransformationGetTransform(wbSnapshot,changesTheir,changesMine);var res2=this._forwardTransformationGetTransform(wbSnapshot,changesMine,changesTheir);var i,elem,elemWrap;for(i=0;i<res1.modify.length;++i){elemWrap=res1.modify[i];elem=elemWrap.elem;elem.oClass.forwardTransformationSet(elem.nActionType,elem.oData,elem.nSheetId,elemWrap)}for(i=0;i<res2.modify.length;++i){elemWrap=
res2.modify[i];elem=elemWrap.elem;elem.oClass.forwardTransformationSet(elem.nActionType,elem.oData,elem.nSheetId,elemWrap)}for(var oldName in res1.renameSheet){var ws=this.getWorksheetByName(oldName);if(ws)ws.setName(res1.renameSheet[oldName])}History.TurnOn()};Workbook.prototype._forwardTransformationGetTransform=function(wbSnapshot,changesMaster,changesModify){var res={modify:[],renameSheet:{}};var changesMasterSelected=[];var i,elem;if(changesModify.length>0)for(i=0;i<changesMaster.length;++i){elem=
changesMaster[i];if(elem.oClass&&elem.oClass.forwardTransformationIsAffect&&elem.oClass.forwardTransformationIsAffect(elem.nActionType))changesMasterSelected.push(elem)}if(changesMasterSelected.length>0&&changesModify.length>0){var wbSnapshotCur=wbSnapshot._getSnapshot();var formulas=[];for(i=0;i<changesModify.length;++i){elem=changesModify[i];var renameRes=null;if(elem.oClass&&elem.oClass.forwardTransformationGet){var getRes=elem.oClass.forwardTransformationGet(elem.nActionType,elem.oData,elem.nSheetId);
if(getRes&&getRes.formula)formulas.push(new ForwardTransformationFormula(elem,getRes.formula,null));if(getRes&&getRes.name)renameRes=this._forwardTransformationRenameStart(wbSnapshotCur._getSnapshot(),changesMasterSelected,getRes)}if(elem.oClass&&elem.oClass.forwardTransformationIsAffect&&elem.oClass.forwardTransformationIsAffect(elem.nActionType)){if(formulas.length>0){this._forwardTransformationFormula(wbSnapshotCur._getSnapshot(),formulas,changesMasterSelected,res);formulas=[]}elem.oClass.Redo(elem.nActionType,
elem.oData,elem.nSheetId,wbSnapshotCur)}if(renameRes)this._forwardTransformationRenameEnd(renameRes,res.renameSheet,getRes,elem)}this._forwardTransformationFormula(wbSnapshotCur,formulas,changesMasterSelected,res)}return res};Workbook.prototype._forwardTransformationRenameStart=function(wbSnapshot,changes,getRes){var res={newName:null};for(var i=0;i<changes.length;++i){var elem=changes[i];elem.oClass.Redo(elem.nActionType,elem.oData,elem.nSheetId,wbSnapshot)}if(-1!=wbSnapshot.checkUniqueSheetName(getRes.name))res.newName=
wbSnapshot.getUniqueSheetNameFrom(getRes.name,true);return res};Workbook.prototype._forwardTransformationRenameEnd=function(renameRes,renameSheet,getRes,elemCur){var isChange=false;if(getRes.from){var renameCur=renameSheet[getRes.from];if(renameCur){delete renameSheet[getRes.from];getRes.from=renameCur;isChange=true}}if(renameRes&&renameRes.newName){renameSheet[getRes.name]=renameRes.newName;getRes.name=renameRes.newName;isChange=true}if(isChange&&elemCur.oClass.forwardTransformationSet)elemCur.oClass.forwardTransformationSet(elemCur.nActionType,
elemCur.oData,elemCur.nSheetId,getRes)};Workbook.prototype._forwardTransformationFormula=function(wbSnapshot,formulas,changes,res){if(formulas.length>0){var i,elem,ftFormula,ws;for(i=0;i<formulas.length;++i){ftFormula=formulas[i];ws=wbSnapshot.getWorksheetById(ftFormula.elem.nSheetId);if(ws){ftFormula.parsed=new parserFormula(ftFormula.formula,ftFormula,ws);ftFormula.parsed.parse();ftFormula.parsed.buildDependencies()}}for(var oldName in res.renameSheet){ws=wbSnapshot.getWorksheetByName(oldName);
if(ws)ws.setName(res.renameSheet[oldName])}for(i=0;i<changes.length;++i){elem=changes[i];elem.oClass.Redo(elem.nActionType,elem.oData,elem.nSheetId,wbSnapshot)}for(i=0;i<formulas.length;++i){ftFormula=formulas[i];if(ftFormula.parsed){ftFormula.parsed.removeDependencies();res.modify.push(ftFormula)}}}};Workbook.prototype.DeserializeHistory=function(aChanges,fCallback){var oThis=this;this.aCollaborativeActions=this.aCollaborativeActions.concat(History.GetSerializeArray());if(aChanges.length>0){this.bCollaborativeChanges=
true;var dstLen=0;var aIndexes=[],i,length=aChanges.length,sChange;for(i=0;i<length;++i){sChange=aChanges[i];var nIndex=sChange.indexOf(";");if(-1!=nIndex){dstLen+=parseInt(sChange.substring(0,nIndex));nIndex++}aIndexes.push(nIndex)}var pointer=g_memory.Alloc(dstLen);var stream=new AscCommon.FT_Stream2(pointer.data,dstLen);stream.obj=pointer.obj;var nCurOffset=0;var aUndoRedoElems=[];for(i=0;i<length;++i){sChange=aChanges[i];var oBinaryFileReader=new AscCommonExcel.BinaryFileReader;nCurOffset=oBinaryFileReader.getbase64DecodedData2(sChange,
aIndexes[i],stream,nCurOffset);var item=new UndoRedoItemSerializable;item.Deserialize(stream);aUndoRedoElems.push(item)}var wsViews=window["Asc"]["editor"].wb.wsViews;if(oThis.oApi.collaborativeEditing.getFast())AscCommon.CollaborativeEditing.Clear_DocumentPositions();for(var i in wsViews)if(isRealObject(wsViews[i])&&isRealObject(wsViews[i].objectRender)&&isRealObject(wsViews[i].objectRender.controller)){wsViews[i].endEditChart();if(oThis.oApi.collaborativeEditing.getFast()){var oState=wsViews[i].objectRender.saveStateBeforeLoadChanges();
if(oState){if(oState.Pos)AscCommon.CollaborativeEditing.Add_DocumentPosition(oState.Pos);if(oState.StartPos)AscCommon.CollaborativeEditing.Add_DocumentPosition(oState.StartPos);if(oState.EndPos)AscCommon.CollaborativeEditing.Add_DocumentPosition(oState.EndPos)}}wsViews[i].objectRender.controller.resetSelection()}oFormulaLocaleInfo.Parse=false;oFormulaLocaleInfo.DigitSep=false;AscFonts.IsCheckSymbols=true;History.Clear();History.TurnOff();var history=new AscCommon.CHistory;history.init(this);history.Create_NewPoint();
history.SetSelection(null);history.SetSelectionRedo(null);var oRedoObjectParam=new AscCommonExcel.RedoObjectParam;history.UndoRedoPrepare(oRedoObjectParam,false);var changesMine=[].concat.apply([],oThis.aCollaborativeActions);oThis._forwardTransformation(oThis.snapshot,changesMine,aUndoRedoElems);for(var i=0,length=aUndoRedoElems.length;i<length;++i){var item=aUndoRedoElems[i];if((null!=item.oClass||item.oData&&typeof item.oData.sChangedObjectId==="string")&&null!=item.nActionType){if(window["NATIVE_EDITOR_ENJINE"]===
true&&window["native"]["CheckNextChange"])if(!window["native"]["CheckNextChange"]())break;history.RedoAdd(oRedoObjectParam,item.oClass,item.nActionType,item.nSheetId,item.oRange,item.oData)}}AscFonts.IsCheckSymbols=false;var oFontMap=this._generateFontMap();window["Asc"]["editor"]._loadFonts(oFontMap,function(){if(oThis.oApi.collaborativeEditing.getFast())for(var i in wsViews)if(isRealObject(wsViews[i])&&isRealObject(wsViews[i].objectRender)&&isRealObject(wsViews[i].objectRender.controller)){var oState=
wsViews[i].objectRender.getStateBeforeLoadChanges();if(oState){if(oState.Pos)AscCommon.CollaborativeEditing.Update_DocumentPosition(oState.Pos);if(oState.StartPos)AscCommon.CollaborativeEditing.Update_DocumentPosition(oState.StartPos);if(oState.EndPos)AscCommon.CollaborativeEditing.Update_DocumentPosition(oState.EndPos)}wsViews[i].objectRender.loadStateAfterLoadChanges()}oFormulaLocaleInfo.Parse=true;oFormulaLocaleInfo.DigitSep=true;history.UndoRedoEnd(null,oRedoObjectParam,false);History.TurnOn();
oThis.bCollaborativeChanges=false;oThis.snapshot=oThis._getSnapshot();if(null!=fCallback)fCallback()})}else if(null!=fCallback)fCallback()};Workbook.prototype.DeserializeHistoryNative=function(oRedoObjectParam,data,isFull){if(null!=data){this.bCollaborativeChanges=true;if(null==oRedoObjectParam){var wsViews=window["Asc"]["editor"].wb.wsViews;for(var i in wsViews)if(isRealObject(wsViews[i])&&isRealObject(wsViews[i].objectRender)&&isRealObject(wsViews[i].objectRender.controller)){wsViews[i].endEditChart();
wsViews[i].objectRender.controller.resetSelection()}History.Clear();History.Create_NewPoint();History.SetSelection(null);History.SetSelectionRedo(null);oRedoObjectParam=new AscCommonExcel.RedoObjectParam;History.UndoRedoPrepare(oRedoObjectParam,false)}var stream=new AscCommon.FT_Stream2(data,data.length);stream.obj=null;var _count=stream.GetLong();var _pos=4;for(var i=0;i<_count;i++){if(window["NATIVE_EDITOR_ENJINE"]===true&&window["native"]["CheckNextChange"])if(!window["native"]["CheckNextChange"]())break;
var _len=stream.GetLong();_pos+=4;stream.size=_pos+_len;stream.Seek(_pos);stream.Seek2(_pos);var item=new UndoRedoItemSerializable;item.Deserialize(stream);if((null!=item.oClass||item.oData&&typeof item.oData.sChangedObjectId==="string")&&null!=item.nActionType)History.RedoAdd(oRedoObjectParam,item.oClass,item.nActionType,item.nSheetId,item.oRange,item.oData);_pos+=_len;stream.Seek2(_pos);stream.size=data.length}if(isFull){History.UndoRedoEnd(null,oRedoObjectParam,false);History.Clear();oRedoObjectParam=
null}this.bCollaborativeChanges=false}return oRedoObjectParam};Workbook.prototype.getTableRangeForFormula=function(name,objectParam){var res=null;for(var i=0,length=this.aWorksheets.length;i<length;++i){var ws=this.aWorksheets[i];res=ws.getTableRangeForFormula(name,objectParam);if(res!==null){res={wsID:ws.getId(),range:res};break}}return res};Workbook.prototype.getTableIndexColumnByName=function(tableName,columnName){var res=null;for(var i=0,length=this.aWorksheets.length;i<length;++i){var ws=this.aWorksheets[i];
res=ws.getTableIndexColumnByName(tableName,columnName);if(res!==null){res={wsID:ws.getId(),index:res,name:ws.getTableNameColumnByIndex(tableName,res)};break}}return res};Workbook.prototype.getTableNameColumnByIndex=function(tableName,columnIndex){var res=null;for(var i=0,length=this.aWorksheets.length;i<length;++i){var ws=this.aWorksheets[i];res=ws.getTableNameColumnByIndex(tableName,columnIndex);if(res!==null){res={wsID:ws.getId(),columnName:res};break}}return res};Workbook.prototype.getTableByName=
function(tableName,wsID){var res=null;var ws=this.getWorksheetById(wsID);return ws.getTableByName(tableName)};Workbook.prototype.updateSparklineCache=function(sheet,ranges){this.forEach(function(ws){ws.updateSparklineCache(sheet,ranges)})};Workbook.prototype.sortDependency=function(){this.dependencyFormulas.calcTree()};Workbook.prototype.charCountToModelColWidth=function(count){if(count<=0)return 0;return Asc.floor((count*this.maxDigitWidth+this.paddingPlusBorder)/this.maxDigitWidth*256)/256};Workbook.prototype.modelColWidthToColWidth=
function(mcw){return Asc.floor((256*mcw+Asc.floor(128/this.maxDigitWidth))/256*this.maxDigitWidth)};Workbook.prototype.colWidthToCharCount=function(w){var pxInOneCharacter=this.maxDigitWidth+this.paddingPlusBorder;return w<pxInOneCharacter?1-Asc.floor(100*(pxInOneCharacter-w)/pxInOneCharacter+.49999)/100:Asc.floor((w-this.paddingPlusBorder)/this.maxDigitWidth*100+.5)/100};Workbook.prototype.getUndoDefName=function(ascName){if(!ascName)return ascName;var sheetId=this.getSheetIdByIndex(ascName.LocalSheetId);
return new UndoRedoData_DefinedNames(ascName.Name,ascName.Ref,sheetId,ascName.isTable,ascName.isXLNM)};Workbook.prototype.changeColorScheme=function(sSchemeName){var scheme=AscCommon.getColorSchemeByName(sSchemeName);if(!scheme)scheme=this.theme.getExtraClrScheme(sSchemeName);if(!scheme)return;History.Create_NewPoint();History.Add(AscCommonExcel.g_oUndoRedoWorkbook,AscCH.historyitem_Workbook_ChangeColorScheme,null,null,new AscCommonExcel.UndoRedoData_ClrScheme(this.theme.themeElements.clrScheme,scheme));
this.theme.themeElements.clrScheme=scheme;this.rebuildColors();return true};Workbook.prototype.cleanFindResults=function(){this.lastFindOptions=null;this.lastFindCells={}};Workbook.prototype.findCellText=function(options){var ws=this.getActiveWs();var result=ws.findCellText(options),result2=null;if(!options.scanOnOnlySheet){var key=result&&result.col+"-"+result.row;if(!key||options.isEqual(this.lastFindOptions)&&this.lastFindCells[key]){var i,active=this.getActive(),start=0,end=this.getWorksheetCount();
var inc=options.scanForward?+1:-1;for(i=active+inc;i<end&&i>=start;i+=inc){ws=this.getWorksheet(i);if(ws.getHidden())continue;result2=ws.findCellText(options);if(result2)break}if(!result2){if(options.scanForward){i=0;end=active}else{i=end-1;start=active+1}inc*=-1;for(;i<end&&i>=start;i+=inc){ws=this.getWorksheet(i);if(ws.getHidden())continue;result2=ws.findCellText(options);if(result2)break}}if(result2){this.handlers.trigger("undoRedoHideSheet",i);key=result2.col+"-"+result2.row}}if(key){this.lastFindOptions=
options.clone();this.lastFindCells[key]=true}}if(!result2&&!result)this.cleanFindResults();return result2||result};Workbook.prototype.getComment=function(id){if(id){var sheet;for(var i=0;i<this.aWorksheets.length;++i){sheet=this.aWorksheets[i];for(var j=0;j<sheet.aComments.length;++j)if(id===sheet.aComments[j].asc_getGuid())return sheet.aComments[j]}}return null};var tempHelp=new ArrayBuffer(8);var tempHelpUnit=new Uint8Array(tempHelp);var tempHelpFloat=new Float64Array(tempHelp);function SheetMemory(structSize,
maxIndex){this.data=null;this.count=0;this.structSize=structSize;this.maxIndex=maxIndex}SheetMemory.prototype.checkSize=function(index){var allocatedCount=this.data?this.data.length/this.structSize:0;if(allocatedCount<index+1){var newAllocatedCount=Math.min(Math.max(1.5*this.count>>0,index+1),this.maxIndex+1);if(newAllocatedCount>allocatedCount){var oldData=this.data;this.data=new Uint8Array(newAllocatedCount*this.structSize);if(oldData)this.data.set(oldData)}}this.count=Math.min(Math.max(this.count,
index+1),this.maxIndex+1)};SheetMemory.prototype.hasSize=function(index){return index+1<=this.count};SheetMemory.prototype.getSize=function(){return this.count};SheetMemory.prototype.clone=function(){var sheetMemory=new SheetMemory(this.structSize,this.maxIndex);sheetMemory.data=this.data?new Uint8Array(this.data):null;sheetMemory.count=this.count;return sheetMemory};SheetMemory.prototype.deleteRange=function(start,deleteCount){if(start<this.count){var startOffset=start*this.structSize;if(start+deleteCount<
this.count){var endOffset=(start+deleteCount)*this.structSize;this.data.set(this.data.subarray(endOffset),startOffset);this.data.fill(0,(this.count-deleteCount)*this.structSize);this.count-=deleteCount}else{this.data.fill(0,startOffset);this.count=start}}};SheetMemory.prototype.insertRange=function(start,insertCount){if(start<this.count){this.checkSize(this.count-1+insertCount);var startOffset=start*this.structSize;if(start+insertCount<this.count){var endOffset=(start+insertCount)*this.structSize;
var endData=(this.count-insertCount)*this.structSize;this.data.set(this.data.subarray(startOffset,endData),endOffset);this.data.fill(0,startOffset,endOffset)}else this.data.fill(0,startOffset)}};SheetMemory.prototype.copyRange=function(sheetMemory,startFrom,startTo,count){var countCopied=0;if(startFrom<sheetMemory.count){countCopied=Math.min(count,sheetMemory.count-startFrom);this.checkSize(startTo+countCopied);countCopied=Math.min(countCopied,this.count-startTo);if(countCopied>0){var startOffsetFrom=
startFrom*this.structSize;var endOffsetFrom=(startFrom+countCopied)*this.structSize;var startOffsetTo=startTo*this.structSize;this.data.set(sheetMemory.data.subarray(startOffsetFrom,endOffsetFrom),startOffsetTo)}}var countErase=Math.min(count-countCopied,this.count-(startTo+countCopied));if(countErase>0){var startOffsetErase=(startTo+countCopied)*this.structSize;var endOffsetErase=(startTo+countCopied+countErase)*this.structSize;this.data.fill(0,startOffsetErase,endOffsetErase)}};SheetMemory.prototype.copyRangeByChunk=
function(from,fromCount,to,toCount){if(from<this.count){this.checkSize(to+toCount-1);var fromStartOffset=from*this.structSize;var fromEndOffset=Math.min(from+fromCount,this.count)*this.structSize;var fromSubArray=this.data.subarray(fromStartOffset,fromEndOffset);for(var i=to;i<to+toCount&&i<this.count;i+=fromCount)this.data.set(fromSubArray,i*this.structSize)}};SheetMemory.prototype.clear=function(start,end){end=Math.min(end,this.count);if(start<end)this.data.fill(0,start*this.structSize,end*this.structSize)};
SheetMemory.prototype.getUint8=function(index,offset){offset+=index*this.structSize;return this.data[offset]};SheetMemory.prototype.setUint8=function(index,offset,val){offset+=index*this.structSize;this.data[offset]=val};SheetMemory.prototype.getUint16=function(index,offset){offset+=index*this.structSize;return AscFonts.FT_Common.IntToUInt(this.data[offset]|this.data[offset+1]<<8)};SheetMemory.prototype.setUint16=function(index,offset,val){offset+=index*this.structSize;this.data[offset]=val&255;this.data[offset+
1]=val>>>8&255};SheetMemory.prototype.getUint32=function(index,offset){offset+=index*this.structSize;return AscFonts.FT_Common.IntToUInt(this.data[offset]|this.data[offset+1]<<8|this.data[offset+2]<<16|this.data[offset+3]<<24)};SheetMemory.prototype.setUint32=function(index,offset,val){offset+=index*this.structSize;this.data[offset]=val&255;this.data[offset+1]=val>>>8&255;this.data[offset+2]=val>>>16&255;this.data[offset+3]=val>>>24&255};SheetMemory.prototype.getFloat64=function(index,offset){offset+=
index*this.structSize;tempHelpUnit[0]=this.data[offset];tempHelpUnit[1]=this.data[offset+1];tempHelpUnit[2]=this.data[offset+2];tempHelpUnit[3]=this.data[offset+3];tempHelpUnit[4]=this.data[offset+4];tempHelpUnit[5]=this.data[offset+5];tempHelpUnit[6]=this.data[offset+6];tempHelpUnit[7]=this.data[offset+7];return tempHelpFloat[0]};SheetMemory.prototype.setFloat64=function(index,offset,val){offset+=index*this.structSize;tempHelpFloat[0]=val;this.data[offset]=tempHelpUnit[0];this.data[offset+1]=tempHelpUnit[1];
this.data[offset+2]=tempHelpUnit[2];this.data[offset+3]=tempHelpUnit[3];this.data[offset+4]=tempHelpUnit[4];this.data[offset+5]=tempHelpUnit[5];this.data[offset+6]=tempHelpUnit[6];this.data[offset+7]=tempHelpUnit[7]};function Worksheet(wb,_index,sId){this.workbook=wb;this.sName=this.workbook.getUniqueSheetNameFrom(g_sNewSheetNamePattern,false);this.bHidden=false;this.oSheetFormatPr=new AscCommonExcel.SheetFormatPr;this.index=_index;this.Id=null!=sId?sId:AscCommon.g_oIdCounter.Get_NewId();this.nRowsCount=
0;this.nColsCount=0;this.rowsData=new SheetMemory(AscCommonExcel.g_nRowStructSize,gc_nMaxRow0);this.cellsByCol=[];this.cellsByColRowsCount=0;this.aCols=[];this.hiddenManager=new HiddenManager(this);this.Drawings=[];this.TableParts=[];this.AutoFilter=null;this.oAllCol=null;this.aComments=[];var oThis=this;this.bExcludeHiddenRows=false;this.bIgnoreWriteFormulas=false;this.mergeManager=new RangeDataManager(function(data,from,to){if(History.Is_On()&&(null!=from||null!=to)){if(null!=from)from=from.clone();
if(null!=to)to=to.clone();var oHistoryRange=from;if(null==oHistoryRange)oHistoryRange=to;History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_ChangeMerge,oThis.getId(),oHistoryRange,new UndoRedoData_FromTo(new UndoRedoData_BBox(from),new UndoRedoData_BBox(to)))}if(null!=to){var maxRow=gc_nMaxRow0!==to.r2?to.r2:to.r1;var maxCol=gc_nMaxCol0!==to.c2?to.c2:to.c1;if(maxRow>=oThis.nRowsCount)oThis.nRowsCount=maxRow+1;if(maxCol>=oThis.nColsCount)oThis.nColsCount=maxCol+1}});this.mergeManager.worksheet=
this;this.hyperlinkManager=new RangeDataManager(function(data,from,to,oChangeParam){if(History.Is_On()&&(null!=from||null!=to)){if(null!=from)from=from.clone();if(null!=to)to=to.clone();var oHistoryRange=from;if(null==oHistoryRange)oHistoryRange=to;var oHistoryData=null;if(null==from||null==to)oHistoryData=data.clone();History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_ChangeHyperlink,oThis.getId(),oHistoryRange,new AscCommonExcel.UndoRedoData_FromToHyperlink(from,to,oHistoryData))}if(null!=
to)data.Ref=oThis.getRange3(to.r1,to.c1,to.r2,to.c2);else if(oChangeParam&&oChangeParam.removeStyle&&null!=data.Ref)data.Ref.cleanFormat();if(null!=to){var maxRow=gc_nMaxRow0!==to.r2?to.r2:to.r1;var maxCol=gc_nMaxCol0!==to.c2?to.c2:to.c1;if(maxRow>=oThis.nRowsCount)oThis.nRowsCount=maxRow+1;if(maxCol>=oThis.nColsCount)oThis.nColsCount=maxCol+1}});this.hyperlinkManager.setDependenceManager(this.mergeManager);this.DrawingDocument=new AscCommon.CDrawingDocument;this.sheetViews=[];this.aConditionalFormattingRules=
[];this.updateConditionalFormattingRange=null;this.dataValidations=null;this.sheetPr=null;this.aFormulaExt=null;this.autoFilters=AscCommonExcel.AutoFilters!==undefined?new AscCommonExcel.AutoFilters(this):null;this.oDrawingOjectsManager=new DrawingObjectsManager(this);this.contentChanges=new AscCommon.CContentChanges;this.aSparklineGroups=[];this.selectionRange=new AscCommonExcel.SelectionRange(this);this.sheetMergedStyles=new AscCommonExcel.SheetMergedStyles;this.pivotTables=[];this.headerFooter=
new Asc.CHeaderFooter(this);this.rowBreaks=null;this.colBreaks=null;this.legacyDrawingHF=null;this.picture=null;this.PagePrintOptions=new Asc.asc_CPageOptions(this);this.formulaArrayLink=null;this.lastFindOptions=null;this.bExcludeCollapsed=false;this.handlers=null}Worksheet.prototype.getCompiledStyle=function(row,col,opt_cell,opt_styleComponents){return getCompiledStyle(this.sheetMergedStyles,this.hiddenManager,row,col,opt_cell,this,opt_styleComponents)};Worksheet.prototype.getCompiledStyleCustom=
function(row,col,needTable,needCell,needConditional,opt_cell){var res;var styleComponents=this.sheetMergedStyles.getStyle(this.hiddenManager,row,col,this);var ws=this;if(!needTable)styleComponents.table=[];if(!needConditional)styleComponents.conditional=[];if(!needCell)res=getCompiledStyle(undefined,undefined,row,col,undefined,undefined,styleComponents);else if(opt_cell)res=getCompiledStyle(undefined,undefined,row,col,opt_cell,ws,styleComponents);else this._getCellNoEmpty(row,col,function(cell){res=
getCompiledStyle(undefined,undefined,row,col,cell,ws,styleComponents)});return res};Worksheet.prototype.getColData=function(index){var sheetMemory=this.cellsByCol[index];if(!sheetMemory){sheetMemory=new SheetMemory(g_nCellStructSize,gc_nMaxRow0);this.cellsByCol[index]=sheetMemory}return sheetMemory};Worksheet.prototype.getColDataNoEmpty=function(index){return this.cellsByCol[index]};Worksheet.prototype.getColDataLength=function(){return this.cellsByCol.length};Worksheet.prototype.getSnapshot=function(wb){var ws=
new Worksheet(wb,this.index,this.Id);ws.sName=this.sName;for(var i=0;i<this.TableParts.length;++i){var table=this.TableParts[i];ws.addTablePart(table.clone(null),false)}for(i=0;i<this.sheetViews.length;++i)ws.sheetViews.push(this.sheetViews[i].clone());return ws};Worksheet.prototype.addContentChanges=function(changes){this.contentChanges.Add(changes)};Worksheet.prototype.refreshContentChanges=function(){this.contentChanges.Refresh();this.contentChanges.Clear()};Worksheet.prototype.rebuildColors=function(){this.rebuildTabColor();
for(var i=0;i<this.aSparklineGroups.length;++i)this.aSparklineGroups[i].cleanCache()};Worksheet.prototype.generateFontMap=function(oFontMap){for(var i=0,length=this.Drawings.length;i<length;++i){var drawing=this.Drawings[i];if(drawing)drawing.getAllFonts(oFontMap)}if(this.headerFooter)this.headerFooter.getAllFonts(oFontMap)};Worksheet.prototype.getAllImageUrls=function(aImages){for(var i=0;i<this.Drawings.length;++i)this.Drawings[i].graphicObject.getAllRasterImages(aImages)};Worksheet.prototype.reassignImageUrls=
function(oImages){for(var i=0;i<this.Drawings.length;++i)this.Drawings[i].graphicObject.Reassign_ImageUrls(oImages)};Worksheet.prototype.copyFrom=function(wsFrom,sName,tableNames){var i,elem,range;var t=this;this.sName=this.workbook.checkValidSheetName(sName)?sName:this.workbook.getUniqueSheetNameFrom(wsFrom.sName,true);this.bHidden=wsFrom.bHidden;this.oSheetFormatPr=wsFrom.oSheetFormatPr.clone();this.nRowsCount=wsFrom.nRowsCount;this.nColsCount=wsFrom.nColsCount;var renameParams={lastName:wsFrom.getName(),
newName:this.getName(),tableNameMap:{}};for(i=0;i<wsFrom.TableParts.length;++i){var tableFrom=wsFrom.TableParts[i];var tableTo=tableFrom.clone(null);if(tableNames&&tableNames.length)tableTo.changeDisplayName(tableNames[i]);else tableTo.changeDisplayName(this.workbook.dependencyFormulas.getNextTableName());this.addTablePart(tableTo,true);renameParams.tableNameMap[tableFrom.DisplayName]=tableTo.DisplayName}for(i=0;i<this.TableParts.length;++i)this.TableParts[i].renameSheetCopy(this,renameParams);if(wsFrom.AutoFilter)this.AutoFilter=
wsFrom.AutoFilter.clone();for(i in wsFrom.aCols){var col=wsFrom.aCols[i];if(null!=col)this.aCols[i]=col.clone(this)}if(null!=wsFrom.oAllCol)this.oAllCol=wsFrom.oAllCol.clone(this);this.rowsData=wsFrom.rowsData.clone();wsFrom._forEachColData(function(sheetMemory,index){t.cellsByCol[index]=sheetMemory.clone()});this.cellsByColRowsCount=wsFrom.cellsByColRowsCount;var aMerged=wsFrom.mergeManager.getAll();for(i in aMerged){elem=aMerged[i];range=this.getRange3(elem.bbox.r1,elem.bbox.c1,elem.bbox.r2,elem.bbox.c2);
range.mergeOpen()}var aHyperlinks=wsFrom.hyperlinkManager.getAll();for(i in aHyperlinks){elem=aHyperlinks[i];range=this.getRange3(elem.bbox.r1,elem.bbox.c1,elem.bbox.r2,elem.bbox.c2);range.setHyperlinkOpen(elem.data)}if(null!=wsFrom.aComments)for(i=0;i<wsFrom.aComments.length;i++){var comment=wsFrom.aComments[i].clone();comment.wsId=this.getId();comment.nId="sheet"+comment.wsId+"_"+(i+1);this.aComments.push(comment)}for(i=0;i<wsFrom.sheetViews.length;++i)this.sheetViews.push(wsFrom.sheetViews[i].clone());
for(i=0;i<wsFrom.aConditionalFormattingRules.length;++i)this.aConditionalFormattingRules.push(wsFrom.aConditionalFormattingRules[i].clone());if(wsFrom.dataValidations)this.dataValidations=wsFrom.dataValidations.clone();if(wsFrom.sheetPr)this.sheetPr=wsFrom.sheetPr.clone();this.selectionRange=wsFrom.selectionRange.clone(this);var oldNewArrayFormulaMap=[];this._forEachCell(function(cell){if(cell.isFormula()){var parsed,notMainArrayCell;if(cell.transformSharedFormula())parsed=cell.getFormulaParsed();
else{parsed=cell.getFormulaParsed();if(parsed.getArrayFormulaRef()){var listenerId=parsed.getListenerId();if(oldNewArrayFormulaMap[listenerId]){parsed=oldNewArrayFormulaMap[listenerId];notMainArrayCell=true}else{parsed=parsed.clone(null,new CCellWithFormula(t,cell.nRow,cell.nCol),t);oldNewArrayFormulaMap[listenerId]=parsed}}else parsed=parsed.clone(null,new CCellWithFormula(t,cell.nRow,cell.nCol),t)}if(!notMainArrayCell){parsed.renameSheetCopy(renameParams);parsed.setFormulaString(parsed.assemble(true))}cell.setFormulaInternal(parsed,
true);t.workbook.dependencyFormulas.addToBuildDependencyCell(cell)}});if(wsFrom.headerFooter)this.headerFooter=wsFrom.headerFooter.clone(this);return renameParams};Worksheet.prototype.copyObjects=function(oNewWs,wsFrom){var i;if(null!=this.Drawings&&this.Drawings.length>0){var drawingObjects=new AscFormat.DrawingObjects;oNewWs.Drawings=[];AscFormat.NEW_WORKSHEET_DRAWING_DOCUMENT=oNewWs.DrawingDocument;for(i=0;i<this.Drawings.length;++i){var drawingObject=drawingObjects.cloneDrawingObject(this.Drawings[i]);
drawingObject.graphicObject=this.Drawings[i].graphicObject.copy();drawingObject.graphicObject.setWorksheet(oNewWs);drawingObject.graphicObject.addToDrawingObjects();var drawingBase=this.Drawings[i];drawingObject.graphicObject.setDrawingBaseCoords(drawingBase.from.col,drawingBase.from.colOff,drawingBase.from.row,drawingBase.from.rowOff,drawingBase.to.col,drawingBase.to.colOff,drawingBase.to.row,drawingBase.to.rowOff,drawingBase.Pos.X,drawingBase.Pos.Y,drawingBase.ext.cx,drawingBase.ext.cy);if(drawingObject.graphicObject.setDrawingBaseType)drawingObject.graphicObject.setDrawingBaseType(drawingBase.Type);
oNewWs.Drawings[oNewWs.Drawings.length-1]=drawingObject}AscFormat.NEW_WORKSHEET_DRAWING_DOCUMENT=null;drawingObjects.pushToAObjects(oNewWs.Drawings);drawingObjects.updateChartReferences2(parserHelp.getEscapeSheetName(wsFrom.sName),parserHelp.getEscapeSheetName(oNewWs.sName))}var newSparkline;for(i=0;i<this.aSparklineGroups.length;++i){newSparkline=this.aSparklineGroups[i].clone();newSparkline.setWorksheet(oNewWs,wsFrom);oNewWs.aSparklineGroups.push(newSparkline)}};Worksheet.prototype.initColumn=function(column){if(column)if(null!==
column.width&&0!==column.width){column.widthPx=this.modelColWidthToColWidth(column.width);column.charCount=this.colWidthToCharCount(column.widthPx)}else column.widthPx=column.charCount=null};Worksheet.prototype.initColumns=function(){this.initColumn(this.oAllCol);this.aCols.forEach(this.initColumn,this)};Worksheet.prototype.initPostOpen=function(handlers){this.PagePrintOptions.init();this.headerFooter.init();if(0===this.sheetViews.length)this.sheetViews.push(new AscCommonExcel.asc_CSheetViewSettings);
this.hiddenManager.initPostOpen();this.oSheetFormatPr.correction();this.handlers=handlers;this._setHandlersTablePart()};Worksheet.prototype._getValuesForConditionalFormatting=function(ranges,numbers){var res=[];for(var i=0;i<ranges.length;++i){var elem=ranges[i];var range=this.getRange3(elem.r1,elem.c1,elem.r2,elem.c2);res=res.concat(range._getValues(numbers))}return res};Worksheet.prototype._isConditionalFormattingIntersect=function(range,ranges){for(var i=0;i<ranges.length;++i)if(range.isIntersect(ranges[i]))return true;
return false};Worksheet.prototype.setDirtyConditionalFormatting=function(range){if(!range)range=new AscCommonExcel.MultiplyRange([new Asc.Range(0,0,gc_nMaxCol0,gc_nMaxRow0)]);if(this.updateConditionalFormattingRange)this.updateConditionalFormattingRange.union2(range);else this.updateConditionalFormattingRange=range.clone()};Worksheet.prototype._updateConditionalFormatting=function(){if(!this.updateConditionalFormattingRange)return;var range=this.updateConditionalFormattingRange;this.updateConditionalFormattingRange=
null;var t=this;var aRules=this.aConditionalFormattingRules.sort(function(v1,v2){return v2.priority-v1.priority});var oGradient1,oGradient2,aWeights,oRule,multiplyRange,oRuleElement,bboxCf,formulaParent,parsed1,parsed2;var o,l,cell,ranges,values,value,tmp,dxf,compareFunction,nc,sum;this.sheetMergedStyles.clearConditionalStyle(range);var getCacheFunction=function(rule,setFunc){var cache={cache:{},get:function(row,col){var cacheVal;var cacheRow=this.cache[row];if(!cacheRow){cacheRow={};this.cache[row]=
cacheRow}else cacheVal=cacheRow[col];if(undefined===cacheVal){cacheVal=this.set(row,col);cacheRow[col]=cacheVal}return cacheVal},set:function(row,col){if(rule)return setFunc(row,col)?rule.dxf:null;else return setFunc(row,col)}};return function(row,col){return cache.get(row,col)}};for(var i=0;i<aRules.length;++i){oRule=aRules[i];ranges=oRule.ranges;if(this._isConditionalFormattingIntersect(range,ranges)){multiplyRange=new AscCommonExcel.MultiplyRange(ranges);if(AscCommonExcel.ECfType.colorScale===
oRule.type){if(1!==oRule.aRuleElements.length)continue;oRuleElement=oRule.aRuleElements[0];if(!oRuleElement||oRule.type!==oRuleElement.type)continue;values=this._getValuesForConditionalFormatting(ranges,true);l=oRuleElement.aColors.length;if(0<values.length&&2<=l){aWeights=[];oGradient1=new AscCommonExcel.CGradient(oRuleElement.aColors[0],oRuleElement.aColors[1]);aWeights.push(oRule.getMin(values,t),oRule.getMax(values,t));if(2<l){oGradient2=new AscCommonExcel.CGradient(oRuleElement.aColors[1],oRuleElement.aColors[2]);
aWeights.push(oRule.getMid(values,t));aWeights.sort(AscCommon.fSortAscending);oGradient1.init(aWeights[0],aWeights[1]);oGradient2.init(aWeights[1],aWeights[2])}else{oGradient2=null;aWeights.sort(AscCommon.fSortAscending);oGradient1.init(aWeights[0],aWeights[1])}compareFunction=function(oGradient1,oGradient2){return function(row,col){var val,color,gradient;t._getCellNoEmpty(row,col,function(cell){val=cell&&cell.getNumberValue()});dxf=null;if(null!==val){dxf=new AscCommonExcel.CellXfs;gradient=oGradient2?
oGradient2:oGradient1;if(val>=gradient.max)color=gradient.getMaxColor();else if(val<=oGradient1.min)color=oGradient1.getMinColor();else{gradient=oGradient2&&val>oGradient1.max?oGradient2:oGradient1;color=gradient.calculateColor(val)}dxf.fill=new AscCommonExcel.Fill;dxf.fill.fromColor(color);dxf=g_StyleCache.addXf(dxf,true)}return dxf}}(oGradient1,oGradient2)}}else if(AscCommonExcel.ECfType.dataBar===oRule.type)continue;else if(AscCommonExcel.ECfType.top10===oRule.type){if(oRule.rank>0&&oRule.dxf){nc=
0;values=this._getValuesForConditionalFormatting(ranges,false);o=oRule.bottom?Number.MAX_VALUE:-Number.MAX_VALUE;for(cell=0;cell<values.length;++cell){value=values[cell];if(CellValueType.Number===value.type&&!isNaN(tmp=parseFloat(value.v))){++nc;value.v=tmp}else value.v=o}values.sort(function(condition){return function(v1,v2){return condition*(v2.v-v1.v)}}(oRule.bottom?-1:1));nc=Math.max(1,oRule.percent?Math.floor(nc*oRule.rank/100):oRule.rank);var threshold=values.length>=nc?values[nc-1].v:o;compareFunction=
function(rule,threshold){return function(row,col){var val;t._getCellNoEmpty(row,col,function(cell){val=cell?cell.getNumberValue():null});return null!==val&&(rule.bottom?val<=threshold:val>=threshold)?rule.dxf:null}}(oRule,threshold)}}else if(AscCommonExcel.ECfType.aboveAverage===oRule.type){if(!oRule.dxf)continue;values=this._getValuesForConditionalFormatting(ranges,false);sum=0;nc=0;for(cell=0;cell<values.length;++cell){value=values[cell];if(CellValueType.Number===value.type&&!isNaN(tmp=parseFloat(value.v))){++nc;
value.v=tmp;sum+=tmp}else value.v=null}tmp=sum/nc;compareFunction=function(rule,average,stdDev){return function(row,col){var val;t._getCellNoEmpty(row,col,function(cell){val=cell?cell.getNumberValue():null});return null!==val&&rule.getAverage(val,average,stdDev)?rule.dxf:null}}(oRule,tmp,sum)}else{if(!oRule.dxf)continue;switch(oRule.type){case AscCommonExcel.ECfType.duplicateValues:case AscCommonExcel.ECfType.uniqueValues:o=getUniqueKeys(this._getValuesForConditionalFormatting(ranges,false));compareFunction=
function(rule,obj,condition){return function(row,col){var val;t._getCellNoEmpty(row,col,function(cell){val=cell?cell.getValueWithoutFormat():""});return(val.length>0?condition===obj[val]:false)?rule.dxf:null}}(oRule,o,oRule.type===AscCommonExcel.ECfType.duplicateValues);break;case AscCommonExcel.ECfType.containsText:case AscCommonExcel.ECfType.notContainsText:case AscCommonExcel.ECfType.beginsWith:case AscCommonExcel.ECfType.endsWith:var operator;switch(oRule.type){case AscCommonExcel.ECfType.containsText:operator=
AscCommonExcel.ECfOperator.Operator_containsText;break;case AscCommonExcel.ECfType.notContainsText:operator=AscCommonExcel.ECfOperator.Operator_notContains;break;case AscCommonExcel.ECfType.beginsWith:operator=AscCommonExcel.ECfOperator.Operator_beginsWith;break;case AscCommonExcel.ECfType.endsWith:operator=AscCommonExcel.ECfOperator.Operator_endsWith;break}formulaParent=new AscCommonExcel.CConditionalFormattingFormulaParent(this,oRule,true);oRuleElement=oRule.getFormulaCellIs();parsed1=oRuleElement&&
oRuleElement.getFormula&&oRuleElement.getFormula(this,formulaParent);if(parsed1&&parsed1.hasRelativeRefs()){bboxCf=oRule.getBBox();compareFunction=getCacheFunction(oRule,function(rule,operator,formulaParent,rowLT,colLT){return function(row,col){var offset=new AscCommon.CellBase(row-rowLT,col-colLT);var bboxCell=new Asc.Range(col,row,col,row);var v1=rule.getValueCellIs(t,formulaParent,bboxCell,offset,false);var res;t._getCellNoEmpty(row,col,function(cell){res=rule.cellIs(operator,cell,v1)?rule.dxf:
null});return res}}(oRule,operator,new AscCommonExcel.CConditionalFormattingFormulaParent(this,oRule,true),bboxCf?bboxCf.r1:0,bboxCf?bboxCf.c1:0))}else compareFunction=function(rule,operator,v1){return function(row,col){var res;t._getCellNoEmpty(row,col,function(cell){res=rule.cellIs(operator,cell,v1)?rule.dxf:null});return res}}(oRule,operator,oRule.getValueCellIs(this));break;case AscCommonExcel.ECfType.containsErrors:compareFunction=function(rule){return function(row,col){var val;t._getCellNoEmpty(row,
col,function(cell){val=cell?CellValueType.Error===cell.getType():false});return val?rule.dxf:null}}(oRule);break;case AscCommonExcel.ECfType.notContainsErrors:compareFunction=function(rule){return function(row,col){var val;t._getCellNoEmpty(row,col,function(cell){val=cell?CellValueType.Error!==cell.getType():true});return val?rule.dxf:null}}(oRule);break;case AscCommonExcel.ECfType.containsBlanks:compareFunction=function(rule){return function(row,col){var val;t._getCellNoEmpty(row,col,function(cell){if(cell)val=
""===cell.getValueWithoutFormat().replace(/^ +| +$/g,"");else val=true});return val?rule.dxf:null}}(oRule);break;case AscCommonExcel.ECfType.notContainsBlanks:compareFunction=function(rule){return function(row,col){var val;t._getCellNoEmpty(row,col,function(cell){if(cell)val=""!==cell.getValueWithoutFormat().replace(/^ +| +$/g,"");else val=false});return val?rule.dxf:null}}(oRule);break;case AscCommonExcel.ECfType.timePeriod:if(oRule.timePeriod)compareFunction=function(rule,period){return function(row,
col){var val;t._getCellNoEmpty(row,col,function(cell){val=cell?cell.getValueWithoutFormat():""});var n=parseFloat(val);return period.start<=n&&n<period.end?rule.dxf:null}}(oRule,oRule.getTimePeriod());else continue;break;case AscCommonExcel.ECfType.cellIs:formulaParent=new AscCommonExcel.CConditionalFormattingFormulaParent(this,oRule,true);oRuleElement=oRule.aRuleElements[0];parsed1=oRuleElement&&oRuleElement.getFormula&&oRuleElement.getFormula(this,formulaParent);oRuleElement=oRule.aRuleElements[1];
parsed2=oRuleElement&&oRuleElement.getFormula&&oRuleElement.getFormula(this,formulaParent);if(parsed1&&parsed1.hasRelativeRefs()||parsed2&&parsed2.hasRelativeRefs()){bboxCf=oRule.getBBox();compareFunction=getCacheFunction(oRule,function(rule,ruleElem1,ruleElem2,formulaParent,rowLT,colLT){return function(row,col){var offset=new AscCommon.CellBase(row-rowLT,col-colLT);var bboxCell=new Asc.Range(col,row,col,row);var v1=ruleElem1&&ruleElem1.getValue(t,formulaParent,bboxCell,offset,false);var v2=ruleElem2&&
ruleElem2.getValue(t,formulaParent,bboxCell,offset,false);var res;t._getCellNoEmpty(row,col,function(cell){res=rule.cellIs(rule.operator,cell,v1,v2)?rule.dxf:null});return res}}(oRule,oRule.aRuleElements[0],oRule.aRuleElements[1],new AscCommonExcel.CConditionalFormattingFormulaParent(this,oRule,true),bboxCf?bboxCf.r1:0,bboxCf?bboxCf.c1:0))}else compareFunction=function(rule,v1,v2){return function(row,col){var res;t._getCellNoEmpty(row,col,function(cell){res=rule.cellIs(rule.operator,cell,v1,v2)?rule.dxf:
null});return res}}(oRule,oRule.aRuleElements[0]&&oRule.aRuleElements[0].getValue(this),oRule.aRuleElements[1]&&oRule.aRuleElements[1].getValue(this));break;case AscCommonExcel.ECfType.expression:bboxCf=oRule.getBBox();compareFunction=getCacheFunction(oRule,function(rule,formulaCF,formulaParent,rowLT,colLT){return function(row,col){var offset=new AscCommon.CellBase(row-rowLT,col-colLT);var bboxCell=new Asc.Range(col,row,col,row);var res=formulaCF&&formulaCF.getValue(t,formulaParent,bboxCell,offset,
true);if(res&&res.tocBool){res=res.tocBool();if(res&&res.toBool)return res.toBool()}return false}}(oRule,oRule.aRuleElements[0],new AscCommonExcel.CConditionalFormattingFormulaParent(this,oRule,true),bboxCf?bboxCf.r1:0,bboxCf?bboxCf.c1:0));break;default:continue;break}}if(compareFunction)this.sheetMergedStyles.setConditionalStyle(multiplyRange,compareFunction)}}};Worksheet.prototype._forEachRow=function(fAction){this.getRange3(0,0,gc_nMaxRow0,0)._foreachRowNoEmpty(fAction)};Worksheet.prototype._forEachCol=
function(fAction){this.getRange3(0,0,0,gc_nMaxCol0)._foreachColNoEmpty(fAction)};Worksheet.prototype._forEachColData=function(fAction){for(var i=0;i<this.cellsByCol.length;++i){var sheetMemory=this.cellsByCol[i];if(sheetMemory)fAction(sheetMemory,i)}};Worksheet.prototype._forEachCell=function(fAction){this.getRange3(0,0,gc_nMaxRow0,gc_nMaxCol0)._foreachNoEmpty(fAction)};Worksheet.prototype.getId=function(){return this.Id};Worksheet.prototype.getIndex=function(){return this.index};Worksheet.prototype.getName=
function(){return this.sName!==undefined&&this.sName.length>0?this.sName:""};Worksheet.prototype.setName=function(name,bFromUndoRedo){if(name.length<=g_nSheetNameMaxLength){var lastName=this.sName;History.Create_NewPoint();var prepared=this.workbook.dependencyFormulas.prepareChangeSheet(this.getId(),{rename:{from:lastName,to:name}});this.sName=name;this.workbook.dependencyFormulas.changeSheet(prepared);History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_Rename,this.getId(),
null,new UndoRedoData_FromTo(lastName,name));if(!bFromUndoRedo){var _lastName=parserHelp.getEscapeSheetName(lastName);var _newName=parserHelp.getEscapeSheetName(this.sName);for(var key in this.workbook.aWorksheets){var wsModel=this.workbook.aWorksheets[key];if(wsModel)wsModel.oDrawingOjectsManager.updateChartReferencesWidthHistory(_lastName,_newName,true)}}this.workbook.dependencyFormulas.calcTree()}else console.log(new Error("The sheet name must be less than 31 characters."))};Worksheet.prototype.getTabColor=
function(){return this.sheetPr&&this.sheetPr.TabColor?Asc.colorObjToAscColor(this.sheetPr.TabColor):null};Worksheet.prototype.setTabColor=function(color){if(!this.sheetPr)this.sheetPr=new AscCommonExcel.asc_CSheetPr;History.Create_NewPoint();History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_SetTabColor,this.getId(),null,new UndoRedoData_FromTo(this.sheetPr.TabColor?this.sheetPr.TabColor.clone():null,color?color.clone():null));this.sheetPr.TabColor=color;if(!this.workbook.bUndoChanges&&
!this.workbook.bRedoChanges)this.workbook.handlers.trigger("asc_onUpdateTabColor",this.getIndex())};Worksheet.prototype.rebuildTabColor=function(){if(this.sheetPr&&this.sheetPr.TabColor)this.workbook.handlers.trigger("asc_onUpdateTabColor",this.getIndex())};Worksheet.prototype.getHidden=function(){return true===this.bHidden};Worksheet.prototype.setHidden=function(hidden){var bOldHidden=this.bHidden,wb=this.workbook,wsActive=wb.getActiveWs(),oVisibleWs=null;this.bHidden=hidden;if(true==this.bHidden&&
this.getIndex()==wsActive.getIndex()){oVisibleWs=wb.findSheetNoHidden(this.getIndex());if(null!=oVisibleWs){var nNewIndex=oVisibleWs.getIndex();wb.setActive(nNewIndex);if(!wb.bUndoChanges&&!wb.bRedoChanges)wb.handlers.trigger("undoRedoHideSheet",nNewIndex)}}if(bOldHidden!=hidden){History.Create_NewPoint();History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_Hide,this.getId(),null,new UndoRedoData_FromTo(bOldHidden,hidden));if(null!=oVisibleWs){History.SetSheetUndo(wsActive.getId());
History.SetSheetRedo(oVisibleWs.getId())}}};Worksheet.prototype.getSheetView=function(){return this.sheetViews[0]};Worksheet.prototype.getSheetViewSettings=function(){return this.sheetViews[0].clone()};Worksheet.prototype.setDisplayGridlines=function(value){var view=this.sheetViews[0];if(value!==view.showGridLines){History.Create_NewPoint();History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_SetDisplayGridlines,this.getId(),null,new UndoRedoData_FromTo(view.showGridLines,value));
view.showGridLines=value;if(!this.workbook.bUndoChanges&&!this.workbook.bRedoChanges)this.workbook.handlers.trigger("asc_onUpdateSheetViewSettings")}};Worksheet.prototype.setDisplayHeadings=function(value){var view=this.sheetViews[0];if(value!==view.showRowColHeaders){History.Create_NewPoint();History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_SetDisplayHeadings,this.getId(),null,new UndoRedoData_FromTo(view.showRowColHeaders,value));view.showRowColHeaders=value;if(!this.workbook.bUndoChanges&&
!this.workbook.bRedoChanges)this.workbook.handlers.trigger("asc_onUpdateSheetViewSettings")}};Worksheet.prototype.getRowsCount=function(){var result=this.nRowsCount;var pane=this.sheetViews.length&&this.sheetViews[0].pane;if(pane&&pane.topLeftFrozenCell)result=Math.max(result,pane.topLeftFrozenCell.getRow0());return result};Worksheet.prototype.removeRows=function(start,stop,bExcludeHiddenRows){var removeRowsArr=bExcludeHiddenRows?this._getNoHiddenRowsArr(start,stop):[{start:start,stop:stop}];for(var i=
removeRowsArr.length-1;i>=0;i--){var oRange=this.getRange(new CellAddress(removeRowsArr[i].start,0,0),new CellAddress(removeRowsArr[i].stop,gc_nMaxCol0,0));oRange.deleteCellsShiftUp()}};Worksheet.prototype._getNoHiddenRowsArr=function(start,stop){var res=[];var elem=null;for(var i=start;i<=stop;i++)if(this.getRowHidden(i)){if(elem){res.push(elem);elem=null}}else{if(!elem){elem={};elem.start=i;elem.stop=i}else elem.stop++;if(i===stop)res.push(elem)}return res};Worksheet.prototype._updateFormulasParents=
function(r1,c1,r2,c2,bbox,offset,shiftedShared){var t=this;var cellWithFormula;var shiftedArrayFormula={};this.getRange3(r1,c1,r2,c2)._foreachNoEmpty(function(cell){var newNRow=cell.nRow+offset.row;var newNCol=cell.nCol+offset.col;var bHor=0!==offset.col;var toDelete=offset.col<0||offset.row<0;if(cell.isFormula()){var processed=c_oSharedShiftType.NeedTransform;var parsed=cell.getFormulaParsed();var shared=parsed.getShared();var arrayFormula=parsed.getArrayFormulaRef();var formulaRefObj=null;if(shared){processed=
shiftedShared[parsed.getListenerId()];var isPreProcessed=c_oSharedShiftType.PreProcessed===processed;if(!processed||isPreProcessed){if(!processed){var bboxShift=AscCommonExcel.shiftGetBBox(bbox,bHor);if(bboxShift.containsRange(shared.ref)&&(!toDelete||!bbox.isIntersect(shared.ref)))processed=c_oSharedShiftType.Processed;else processed=c_oSharedShiftType.NeedTransform}else if(isPreProcessed)processed=c_oSharedShiftType.Processed;if(c_oSharedShiftType.Processed===processed){var newRef=shared.ref.clone();
newRef.forShift(bbox,offset,t.workbook.bUndoChanges);parsed.setSharedRef(newRef,!isPreProcessed);t.workbook.dependencyFormulas.addToChangedRange2(t.getId(),newRef)}shiftedShared[parsed.getListenerId()]=processed}}else if(arrayFormula)if(!shiftedArrayFormula[parsed.getListenerId()]&&parsed.checkFirstCellArray(cell)){shiftedArrayFormula[parsed.getListenerId()]=1;var newArrayRef=arrayFormula.clone();newArrayRef.setOffset(offset);parsed.setArrayFormulaRef(newArrayRef)}else processed=c_oSharedShiftType.Processed;
if(c_oSharedShiftType.NeedTransform===processed){var isTransform=cell.transformSharedFormula();parsed=cell.getFormulaParsed();if(isTransform)parsed.buildDependencies();cellWithFormula=parsed.getParent();cellWithFormula.nRow=newNRow;cellWithFormula.nCol=newNCol;t.workbook.dependencyFormulas.addToChangedCell(cellWithFormula)}}t.cellsByColRowsCount=Math.max(t.cellsByColRowsCount,newNRow+1);t.nRowsCount=Math.max(t.nRowsCount,t.cellsByColRowsCount);t.nColsCount=Math.max(t.nColsCount,newNCol+1)})};Worksheet.prototype._removeRows=
function(start,stop){var t=this;this.workbook.dependencyFormulas.lockRecal();History.Create_NewPoint();var nDif=-(stop-start+1);var oActualRange=new Asc.Range(0,start,gc_nMaxCol0,stop);var offset=new AscCommon.CellBase(nDif,0);var renameRes=this.renameDependencyNodes(offset,oActualRange);var redrawTablesArr=this.autoFilters.insertRows("delCell",oActualRange,c_oAscDeleteOptions.DeleteRows);this.updatePivotOffset(oActualRange,offset);var collapsedInfo=null,lastRowIndex;var oDefRowPr=new AscCommonExcel.UndoRedoData_RowProp;
this.getRange3(start,0,stop,gc_nMaxCol0)._foreachRowNoEmpty(function(row){var oOldProps=row.getHeightProp();lastRowIndex=row.index;if(false===oOldProps.isEqual(oDefRowPr))History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_RowProp,t.getId(),row._getUpdateRange(),new UndoRedoData_IndexSimpleProp(row.getIndex(),true,oOldProps,oDefRowPr));row.setStyle(null);if(!t.workbook.bRedoChanges){if(collapsedInfo!==null&&collapsedInfo<row.getOutlineLevel())collapsedInfo=null;if(row.getCollapsed()){collapsedInfo=
row.getOutlineLevel();t.setCollapsedRow(false,null,row)}}},function(cell){t._removeCell(null,null,cell)});if(collapsedInfo!==null&&lastRowIndex===stop)this._getRow(stop+1,function(row){t.setCollapsedRow(true,null,row)});this._updateFormulasParents(start,0,gc_nMaxRow0,gc_nMaxCol0,oActualRange,offset,renameRes.shiftedShared);this.rowsData.deleteRange(start,-nDif);this._forEachColData(function(sheetMemory){sheetMemory.deleteRange(start,-nDif)});this.workbook.dependencyFormulas.notifyChanged(renameRes.changed);
History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_RemoveRows,this.getId(),new Asc.Range(0,start,gc_nMaxCol0,gc_nMaxRow0),new UndoRedoData_FromToRowCol(true,start,stop));this.autoFilters.redrawStylesTables(redrawTablesArr);this.workbook.dependencyFormulas.unlockRecal();return true};Worksheet.prototype.insertRowsBefore=function(index,count){var oRange=this.getRange(new CellAddress(index,0,0),new CellAddress(index+count-1,gc_nMaxCol0,0));oRange.addCellsShiftBottom()};Worksheet.prototype._getBordersForInsert=
function(bbox,bRow){var t=this;var borders={};var offsetRow=bRow&&bbox.r1>0?-1:0;var offsetCol=!bRow&&bbox.c1>0?-1:0;var r2=bRow?bbox.r1:bbox.r2;var c2=!bRow?bbox.c1:bbox.c2;if(0!==offsetRow||0!==offsetCol)this.getRange3(bbox.r1,bbox.c1,r2,c2)._foreachNoEmpty(function(cell){if(cell.xfs&&cell.xfs.border)t._getCellNoEmpty(cell.nRow+offsetRow,cell.nCol+offsetCol,function(neighbor){if(neighbor&&neighbor.xfs&&neighbor.xfs.border){var newBorder=neighbor.xfs.border.clone();newBorder.intersect(cell.xfs.border,
g_oDefaultFormat.BorderAbs,true);borders[bRow?cell.nCol:cell.nRow]=newBorder}})});return borders};Worksheet.prototype._insertRowsBefore=function(index,count){var t=this;this.workbook.dependencyFormulas.lockRecal();var oActualRange=new Asc.Range(0,index,gc_nMaxCol0,index+count-1);History.Create_NewPoint();var offset=new AscCommon.CellBase(count,0);var renameRes=this.renameDependencyNodes(offset,oActualRange);var redrawTablesArr=this.autoFilters.insertRows("insCell",oActualRange,c_oAscInsertOptions.InsertColumns);
this.updatePivotOffset(oActualRange,offset);this._updateFormulasParents(index,0,gc_nMaxRow0,gc_nMaxCol0,oActualRange,offset,renameRes.shiftedShared);var borders;if(index>0&&!this.workbook.bUndoChanges)borders=this._getBordersForInsert(oActualRange,true);this.rowsData.insertRange(index,count);this.nRowsCount=Math.max(this.nRowsCount,this.rowsData.getSize());this._forEachColData(function(sheetMemory){sheetMemory.insertRange(index,count);t.cellsByColRowsCount=Math.max(t.cellsByColRowsCount,sheetMemory.getSize())});
this.nRowsCount=Math.max(this.nRowsCount,this.cellsByColRowsCount);if(index>0&&!this.workbook.bUndoChanges){this.rowsData.copyRangeByChunk(index-1,1,index,count);this.nRowsCount=Math.max(this.nRowsCount,this.rowsData.getSize());this._forEachColData(function(sheetMemory){sheetMemory.copyRangeByChunk(index-1,1,index,count);t.cellsByColRowsCount=Math.max(t.cellsByColRowsCount,sheetMemory.getSize())});this.nRowsCount=Math.max(this.nRowsCount,this.cellsByColRowsCount);this.getRange3(index,0,index+count-
1,gc_nMaxCol0)._foreachRowNoEmpty(function(row){row.setHidden(false)},function(cell){cell.clearDataKeepXf(borders[cell.nCol])})}this.workbook.dependencyFormulas.notifyChanged(renameRes.changed);History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_AddRows,this.getId(),new Asc.Range(0,index,gc_nMaxCol0,gc_nMaxRow0),new UndoRedoData_FromToRowCol(true,index,index+count-1));this.autoFilters.redrawStylesTables(redrawTablesArr);this.workbook.dependencyFormulas.unlockRecal();return true};
Worksheet.prototype.insertRowsAfter=function(index,count){return this.insertRowsBefore(index+1,count)};Worksheet.prototype.getColsCount=function(){var result=this.nColsCount;var pane=this.sheetViews.length&&this.sheetViews[0].pane;if(pane&&pane.topLeftFrozenCell)result=Math.max(result,pane.topLeftFrozenCell.getCol0());return result};Worksheet.prototype.removeCols=function(start,stop){var oRange=this.getRange(new CellAddress(0,start,0),new CellAddress(gc_nMaxRow0,stop,0));oRange.deleteCellsShiftLeft()};
Worksheet.prototype._removeCols=function(start,stop){var t=this;this.workbook.dependencyFormulas.lockRecal();History.Create_NewPoint();var nDif=-(stop-start+1),i,j,length;var oActualRange=new Asc.Range(start,0,stop,gc_nMaxRow0);var offset=new AscCommon.CellBase(0,nDif);var renameRes=this.renameDependencyNodes(offset,oActualRange);var redrawTablesArr=this.autoFilters.insertColumn(oActualRange,nDif);this.updatePivotOffset(oActualRange,offset);var collapsedInfo=null,lastRowIndex;var oDefColPr=new AscCommonExcel.UndoRedoData_ColProp;
this.getRange3(0,start,gc_nMaxRow0,stop)._foreachColNoEmpty(function(col){var nIndex=col.getIndex();var oOldProps=col.getWidthProp();if(false===oOldProps.isEqual(oDefColPr))History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_ColProp,t.getId(),new Asc.Range(nIndex,0,nIndex,gc_nMaxRow0),new UndoRedoData_IndexSimpleProp(nIndex,false,oOldProps,oDefColPr));col.setStyle(null);lastRowIndex=col.index;if(!t.workbook.bRedoChanges){if(collapsedInfo!==null&&collapsedInfo<col.getOutlineLevel())collapsedInfo=
null;if(col.getCollapsed()){collapsedInfo=col.getOutlineLevel();t.setCollapsedCol(false,null,col)}}},function(cell){t._removeCell(null,null,cell)});if(collapsedInfo!==null&&lastRowIndex===stop){var curCol=this._getCol(stop+1);if(curCol)t.setCollapsedCol(true,null,curCol)}this._updateFormulasParents(0,start,gc_nMaxRow0,gc_nMaxCol0,oActualRange,offset,renameRes.shiftedShared);this.cellsByCol.splice(start,stop-start+1);this.aCols.splice(start,stop-start+1);for(i=start,length=this.aCols.length;i<length;++i){var elem=
this.aCols[i];if(null!=elem)elem.moveHor(nDif)}this.workbook.dependencyFormulas.notifyChanged(renameRes.changed);History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_RemoveCols,this.getId(),new Asc.Range(start,0,gc_nMaxCol0,gc_nMaxRow0),new UndoRedoData_FromToRowCol(false,start,stop));this.autoFilters.redrawStylesTables(redrawTablesArr);this.workbook.dependencyFormulas.unlockRecal();return true};Worksheet.prototype.insertColsBefore=function(index,count){var oRange=this.getRange3(0,
index,gc_nMaxRow0,index+count-1);oRange.addCellsShiftRight()};Worksheet.prototype._insertColsBefore=function(index,count){this.workbook.dependencyFormulas.lockRecal();var oActualRange=new Asc.Range(index,0,index+count-1,gc_nMaxRow0);History.Create_NewPoint();var offset=new AscCommon.CellBase(0,count);var renameRes=this.renameDependencyNodes(offset,oActualRange);var redrawTablesArr=this.autoFilters.insertColumn(oActualRange,count);this.updatePivotOffset(oActualRange,offset);this._updateFormulasParents(0,
index,gc_nMaxRow0,gc_nMaxCol0,oActualRange,offset,renameRes.shiftedShared);var borders;if(index>0&&!this.workbook.bUndoChanges)borders=this._getBordersForInsert(oActualRange,false);this.cellsByCol.splice(gc_nMaxCol0-count+1,count);for(var i=this.cellsByCol.length-1;i>=index;--i){this.cellsByCol[i+count]=this.cellsByCol[i];this.cellsByCol[i]=undefined}this.nColsCount=Math.max(this.nColsCount,this.getColDataLength());this.aCols.splice(gc_nMaxCol0-count+1,count);for(var i=this.aCols.length-1;i>=index;--i){this.aCols[i+
count]=this.aCols[i];this.aCols[i]=undefined;if(this.aCols[i+count])this.aCols[i+count].moveHor(count)}this.nColsCount=Math.max(this.nColsCount,this.aCols.length);if(!this.workbook.bUndoChanges){var oPrevCol=null;if(index>0)oPrevCol=this.aCols[index-1];if(null==oPrevCol&&null!=this.oAllCol)oPrevCol=this.oAllCol;if(null!=oPrevCol){History.LocalChange=true;for(var i=index;i<index+count;++i){var oNewCol=oPrevCol.clone();oNewCol.setHidden(null);oNewCol.BestFit=null;oNewCol.index=i;this.aCols[i]=oNewCol}History.LocalChange=
false}var prevCellsByCol=index>0?this.cellsByCol[index-1]:null;if(prevCellsByCol){for(var i=index;i<index+count;++i)this.cellsByCol[i]=prevCellsByCol.clone();this.nColsCount=Math.max(this.nColsCount,this.getColDataLength());this.getRange3(0,index,gc_nMaxRow0,index+count-1)._foreachNoEmpty(function(cell){cell.clearDataKeepXf(borders[cell.nRow])})}}this.workbook.dependencyFormulas.notifyChanged(renameRes.changed);History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_AddCols,this.getId(),
new Asc.Range(index,0,gc_nMaxCol0,gc_nMaxRow0),new UndoRedoData_FromToRowCol(false,index,index+count-1));this.autoFilters.redrawStylesTables(redrawTablesArr);this.workbook.dependencyFormulas.unlockRecal();return true};Worksheet.prototype.insertColsAfter=function(index,count){return this.insertColsBefore(index+1,count)};Worksheet.prototype.getDefaultWidth=function(){return this.oSheetFormatPr.dDefaultColWidth};Worksheet.prototype.getDefaultFontName=function(){return this.workbook.getDefaultFont()};
Worksheet.prototype.getDefaultFontSize=function(){return this.workbook.getDefaultSize()};Worksheet.prototype.getBaseColWidth=function(){return this.oSheetFormatPr.nBaseColWidth||8};Worksheet.prototype.charCountToModelColWidth=function(count){return this.workbook.charCountToModelColWidth(count)};Worksheet.prototype.modelColWidthToColWidth=function(mcw){return this.workbook.modelColWidthToColWidth(mcw)};Worksheet.prototype.colWidthToCharCount=function(w){return this.workbook.colWidthToCharCount(w)};
Worksheet.prototype.getColWidth=function(index){var col=this._getColNoEmptyWithAll(index);if(null!=col&&null!=col.width)return col.width;var dResult=this.oSheetFormatPr.dDefaultColWidth;if(dResult===undefined||dResult===null||dResult==0)dResult=-1;return dResult};Worksheet.prototype.setColWidth=function(width,start,stop){width=this.charCountToModelColWidth(width);if(0==width)return this.setColHidden(true,start,stop);if(null==start)return;if(null==stop)stop=start;History.Create_NewPoint();var oSelection=
History.GetSelection();if(null!=oSelection){oSelection=oSelection.clone();oSelection.assign(start,0,stop,gc_nMaxRow0);History.SetSelection(oSelection);History.SetSelectionRedo(oSelection)}var bNotAddCollapsed=true==this.workbook.bUndoChanges||true==this.workbook.bRedoChanges||this.bExcludeCollapsed;var _summaryRight=this.sheetPr?this.sheetPr.SummaryRight:true;var oThis=this,prevCol;var fProcessCol=function(col){if(col.width!=width){if(_summaryRight&&!bNotAddCollapsed&&col.getCollapsed())oThis.setCollapsedCol(false,
null,col);else if(!_summaryRight&&!bNotAddCollapsed&&prevCol&&prevCol.getCollapsed())oThis.setCollapsedCol(false,null,prevCol);prevCol=col;var oOldProps=col.getWidthProp();col.width=width;col.CustomWidth=true;col.BestFit=null;col.setHidden(null);oThis.initColumn(col);var oNewProps=col.getWidthProp();if(false==oOldProps.isEqual(oNewProps))History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_ColProp,oThis.getId(),col._getUpdateRange(),new UndoRedoData_IndexSimpleProp(col.index,
false,oOldProps,oNewProps))}};if(0==start&&gc_nMaxCol0==stop){var col=this.getAllCol();fProcessCol(col);for(var i in this.aCols){var col=this.aCols[i];if(null!=col)fProcessCol(col)}}else{if(!_summaryRight)if(!bNotAddCollapsed&&start>0)prevCol=this._getCol(start-1);for(var i=start;i<=stop;i++){var col=this._getCol(i);fProcessCol(col)}if(_summaryRight&&!bNotAddCollapsed&&prevCol){col=this._getCol(stop+1);if(col.getCollapsed())this.setCollapsedCol(false,null,col)}}};Worksheet.prototype.getColHidden=
function(index){var col=this._getColNoEmptyWithAll(index);return col?col.getHidden():false};Worksheet.prototype.setColHidden=function(bHidden,start,stop){if(null==start)return;if(null==stop)stop=start;History.Create_NewPoint();var oThis=this,outlineLevel;var bNotAddCollapsed=true==this.workbook.bUndoChanges||true==this.workbook.bRedoChanges||this.bExcludeCollapsed;var _summaryRight=this.sheetPr?this.sheetPr.SummaryRight:true;var fProcessCol=function(col){if(col&&!bNotAddCollapsed&&outlineLevel!==
undefined&&outlineLevel!==col.getOutlineLevel())if(!_summaryRight)oThis.setCollapsedCol(bHidden,col.index-1);else oThis.setCollapsedCol(bHidden,null,col);outlineLevel=col?col.getOutlineLevel():null;if(col.getHidden()!=bHidden){var oOldProps=col.getWidthProp();if(bHidden){col.setHidden(bHidden);if(null==col.width||true!=col.CustomWidth)col.width=0;col.CustomWidth=true;col.BestFit=null}else{col.setHidden(null);if(0>=col.width)col.width=null}var oNewProps=col.getWidthProp();if(false==oOldProps.isEqual(oNewProps))History.Add(AscCommonExcel.g_oUndoRedoWorksheet,
AscCH.historyitem_Worksheet_ColProp,oThis.getId(),col._getUpdateRange(),new UndoRedoData_IndexSimpleProp(col.index,false,oOldProps,oNewProps))}};if(!bNotAddCollapsed&&!_summaryRight&&start>0){col=this._getCol(start-1);outlineLevel=col.getOutlineLevel()}if(0!=start&&gc_nMaxCol0==stop){var col=null;if(false==bHidden)col=this.oAllCol;else col=this.getAllCol();if(null!=col)fProcessCol(col);for(var i in this.aCols){var col=this.aCols[i];if(null!=col)fProcessCol(col)}}else for(var i=start;i<=stop;i++){var col=
null;if(false==bHidden)col=this._getColNoEmpty(i);else col=this._getCol(i);if(null!=col)fProcessCol(col)}if(!bNotAddCollapsed&&outlineLevel&&_summaryRight){col=this._getCol(stop+1);if(col&&outlineLevel!==col.getOutlineLevel())oThis.setCollapsedCol(bHidden,null,col)}};Worksheet.prototype.setCollapsedCol=function(bCollapse,colIndex,curCol){var oThis=this;var fProcessCol=function(col){var oOldProps=col.getCollapsed();col.setCollapsed(bCollapse);var oNewProps=col.getCollapsed();if(oOldProps!==oNewProps)History.Add(AscCommonExcel.g_oUndoRedoWorksheet,
AscCH.historyitem_Worksheet_CollapsedCol,oThis.getId(),col._getUpdateRange(),new UndoRedoData_IndexSimpleProp(col.index,true,oOldProps,oNewProps))};if(curCol)fProcessCol(curCol);else this.getRange3(0,colIndex,0,colIndex)._foreachCol(fProcessCol)};Worksheet.prototype.setSummaryRight=function(val){if(!this.sheetPr)this.sheetPr=new AscCommonExcel.asc_CSheetPr;History.Create_NewPoint();History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_SetSummaryRight,this.getId(),null,new UndoRedoData_FromTo(this.sheetPr.SummaryRight,
val));this.sheetPr.SummaryRight=val};Worksheet.prototype.setSummaryBelow=function(val){if(!this.sheetPr)this.sheetPr=new AscCommonExcel.asc_CSheetPr;History.Create_NewPoint();History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_SetSummaryBelow,this.getId(),null,new UndoRedoData_FromTo(this.sheetPr.SummaryBelow,val));this.sheetPr.SummaryBelow=val};Worksheet.prototype.setGroupCol=function(bDel,start,stop){var oThis=this;var fProcessCol=function(col){var oOldProps=col.getOutlineLevel();
col.setOutlineLevel(null,bDel);var oNewProps=col.getOutlineLevel();if(oOldProps!==oNewProps)History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_GroupCol,oThis.getId(),col._getUpdateRange(),new UndoRedoData_IndexSimpleProp(col.index,true,oOldProps,oNewProps))};this.getRange3(0,start,0,stop)._foreachCol(fProcessCol)};Worksheet.prototype.setOutlineCol=function(val,start,stop){var oThis=this;var fProcessCol=function(col){var oOldProps=col.getOutlineLevel();col.setOutlineLevel(val);
var oNewProps=col.getOutlineLevel();if(oOldProps!==oNewProps)History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_GroupCol,oThis.getId(),col._getUpdateRange(),new UndoRedoData_IndexSimpleProp(col.index,true,oOldProps,oNewProps))};this.getRange3(0,start,0,stop)._foreachCol(fProcessCol)};Worksheet.prototype.getColCustomWidth=function(index){var isBestFit;var column=this._getColNoEmptyWithAll(index);if(!column)isBestFit=true;else if(column.getHidden())isBestFit=false;else isBestFit=
!!(column.BestFit||null===column.BestFit&&null===column.CustomWidth);return!isBestFit};Worksheet.prototype.setColBestFit=function(bBestFit,width,start,stop){if(null==start)return;if(null==stop)stop=start;History.Create_NewPoint();var oThis=this;var fProcessCol=function(col){var oOldProps=col.getWidthProp();if(bBestFit){col.BestFit=bBestFit;col.setHidden(null)}else col.BestFit=null;col.width=width;oThis.initColumn(col);var oNewProps=col.getWidthProp();if(false==oOldProps.isEqual(oNewProps))History.Add(AscCommonExcel.g_oUndoRedoWorksheet,
AscCH.historyitem_Worksheet_ColProp,oThis.getId(),col._getUpdateRange(),new UndoRedoData_IndexSimpleProp(col.index,false,oOldProps,oNewProps))};if(0!=start&&gc_nMaxCol0==stop){var col=null;if(bBestFit&&oDefaultMetrics.ColWidthChars==width)col=this.oAllCol;else col=this.getAllCol();if(null!=col)fProcessCol(col);for(var i in this.aCols){var col=this.aCols[i];if(null!=col)fProcessCol(col)}}else for(var i=start;i<=stop;i++){var col=null;if(bBestFit&&oDefaultMetrics.ColWidthChars==width)col=this._getColNoEmpty(i);
else col=this._getCol(i);if(null!=col)fProcessCol(col)}};Worksheet.prototype.isDefaultHeightHidden=function(){return null!=this.oSheetFormatPr.oAllRow&&this.oSheetFormatPr.oAllRow.getHidden()};Worksheet.prototype.isDefaultWidthHidden=function(){return null!=this.oAllCol&&this.oAllCol.getHidden()};Worksheet.prototype.setDefaultHeight=function(h){if(this.oSheetFormatPr.oAllRow&&!this.oSheetFormatPr.oAllRow.getCustomHeight())this.oSheetFormatPr.oAllRow.h=h};Worksheet.prototype.getDefaultHeight=function(){var dRes=
null;if(null!=this.oSheetFormatPr.oAllRow&&this.oSheetFormatPr.oAllRow.getCustomHeight())dRes=this.oSheetFormatPr.oAllRow.h;return dRes};Worksheet.prototype.getRowHeight=function(index){var res;this._getRowNoEmptyWithAll(index,function(row){res=row?row.getHeight():-1});return res};Worksheet.prototype.setRowHeight=function(height,start,stop,isCustom){if(0==height)return this.setRowHidden(true,start,stop);if(null==start)return;if(null==stop)stop=start;History.Create_NewPoint();var oThis=this,i;var oSelection=
History.GetSelection();if(null!=oSelection){oSelection=oSelection.clone();oSelection.assign(0,start,gc_nMaxCol0,stop);History.SetSelection(oSelection);History.SetSelectionRedo(oSelection)}var prevRow;var bNotAddCollapsed=true==this.workbook.bUndoChanges||true==this.workbook.bRedoChanges||this.bExcludeCollapsed;var _summaryBelow=this.sheetPr?this.sheetPr.SummaryBelow:true;var fProcessRow=function(row){if(row){if(_summaryBelow&&!bNotAddCollapsed&&row.getCollapsed())oThis.setCollapsedRow(false,null,
row);else if(!_summaryBelow&&!bNotAddCollapsed&&prevRow&&prevRow.getCollapsed())oThis.setCollapsedRow(false,null,prevRow);prevRow=row;var oOldProps=row.getHeightProp();row.setHeight(height);if(isCustom)row.setCustomHeight(true);row.setCalcHeight(true);row.setHidden(false);var oNewProps=row.getHeightProp();if(false===oOldProps.isEqual(oNewProps))History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_RowProp,oThis.getId(),row._getUpdateRange(),new UndoRedoData_IndexSimpleProp(row.index,
true,oOldProps,oNewProps))}};if(0==start&&gc_nMaxRow0==stop){fProcessRow(this.getAllRow());this._forEachRow(fProcessRow)}else{if(!_summaryBelow)if(!bNotAddCollapsed&&start>0)this._getRow(start-1,function(row){prevRow=row});this.getRange3(start,0,stop,0)._foreachRow(fProcessRow);if(_summaryBelow)if(!bNotAddCollapsed&&prevRow)this._getRow(stop+1,function(row){if(row.getCollapsed())oThis.setCollapsedRow(false,null,row)})}if(this.needRecalFormulas(start,stop))this.workbook.dependencyFormulas.calcTree()};
Worksheet.prototype.getRowHidden=function(index){var res;this._getRowNoEmptyWithAll(index,function(row){res=row?row.getHidden():false});return res};Worksheet.prototype.setRowHidden=function(bHidden,start,stop){if(null==start)return;if(null==stop)stop=start;History.Create_NewPoint();var oThis=this,i;var startIndex=null,endIndex=null,updateRange,outlineLevel;var bNotAddCollapsed=true==this.workbook.bUndoChanges||true==this.workbook.bRedoChanges||this.bExcludeCollapsed;var _summaryBelow=this.sheetPr?
this.sheetPr.SummaryBelow:true;var fProcessRow=function(row){if(row&&!bNotAddCollapsed&&outlineLevel!==undefined&&outlineLevel!==row.getOutlineLevel())if(!_summaryBelow)oThis.setCollapsedRow(bHidden,row.index-1);else oThis.setCollapsedRow(bHidden,null,row);outlineLevel=row?row.getOutlineLevel():null;if(row&&bHidden!=row.getHidden()){row.setHidden(bHidden);if(row.index===endIndex+1&&startIndex!==null)endIndex++;else{if(startIndex!==null){updateRange=new Asc.Range(0,startIndex,gc_nMaxCol0,endIndex);
History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_RowHide,oThis.getId(),updateRange,new UndoRedoData_FromToRowCol(bHidden,startIndex,endIndex))}startIndex=row.index;endIndex=row.index}}};if(0==start&&gc_nMaxRow0==stop);else{if(!_summaryBelow&&start>0&&!bNotAddCollapsed)this._getRow(start-1,function(row){if(row)outlineLevel=row.getOutlineLevel()});for(i=start;i<=stop;++i)false==bHidden?this._getRowNoEmpty(i,fProcessRow):this._getRow(i,fProcessRow);if(_summaryBelow&&outlineLevel&&
!bNotAddCollapsed)this._getRow(stop+1,function(row){if(row&&outlineLevel!==row.getOutlineLevel())oThis.setCollapsedRow(bHidden,null,row)});if(startIndex!==null){updateRange=new Asc.Range(0,startIndex,gc_nMaxCol0,endIndex);History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_RowHide,oThis.getId(),updateRange,new UndoRedoData_FromToRowCol(bHidden,startIndex,endIndex))}}if(this.needRecalFormulas(start,stop))this.workbook.dependencyFormulas.calcTree()};Worksheet.prototype.setCollapsedRow=
function(bCollapse,rowIndex,curRow){var oThis=this;var fProcessRow=function(row,bSave){var oOldProps=row.getCollapsed();row.setCollapsed(bCollapse);var oNewProps=row.getCollapsed();if(oOldProps!==oNewProps)History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_CollapsedRow,oThis.getId(),row._getUpdateRange(),new UndoRedoData_IndexSimpleProp(row.index,true,oOldProps,oNewProps));if(bSave)row.saveContent(true)};if(curRow)fProcessRow(curRow,true);else this.getRange3(rowIndex,0,rowIndex,
0)._foreachRow(fProcessRow)};Worksheet.prototype.setGroupRow=function(bDel,start,stop){var oThis=this;var fProcessRow=function(row){var oOldProps=row.getOutlineLevel();row.setOutlineLevel(null,bDel);var oNewProps=row.getOutlineLevel();if(oOldProps!==oNewProps)History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_GroupRow,oThis.getId(),row._getUpdateRange(),new UndoRedoData_IndexSimpleProp(row.index,true,oOldProps,oNewProps))};this.getRange3(start,0,stop,0)._foreachRow(fProcessRow)};
Worksheet.prototype.setOutlineRow=function(val,start,stop){var oThis=this;var fProcessRow=function(row){var oOldProps=row.getOutlineLevel();row.setOutlineLevel(val);var oNewProps=row.getOutlineLevel();if(oOldProps!==oNewProps)History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_GroupRow,oThis.getId(),row._getUpdateRange(),new UndoRedoData_IndexSimpleProp(row.index,true,oOldProps,oNewProps))};this.getRange3(start,0,stop,0)._foreachRow(fProcessRow)};Worksheet.prototype.getRowCustomHeight=
function(index){var isCustomHeight=false;this._getRowNoEmptyWithAll(index,function(row){if(!row)isCustomHeight=false;else if(row.getHidden())isCustomHeight=true;else isCustomHeight=row.getCustomHeight()});return isCustomHeight};Worksheet.prototype.setRowBestFit=function(bBestFit,height,start,stop){if(null==start)return;if(null==stop)stop=start;History.Create_NewPoint();var oThis=this,i;var isDefaultProp=true==bBestFit&&oDefaultMetrics.RowHeight==height;var fProcessRow=function(row){if(row){var oOldProps=
row.getHeightProp();row.setCustomHeight(!bBestFit);row.setCalcHeight(true);row.setHeight(height);var oNewProps=row.getHeightProp();if(false==oOldProps.isEqual(oNewProps))History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_RowProp,oThis.getId(),row._getUpdateRange(),new UndoRedoData_IndexSimpleProp(row.index,true,oOldProps,oNewProps))}};if(0==start&&gc_nMaxRow0==stop){fProcessRow(isDefaultProp?this.oSheetFormatPr.oAllRow:this.getAllRow());this._forEachRow(fProcessRow)}else{var range=
this.getRange3(start,0,stop,0);if(isDefaultProp)range._foreachRowNoEmpty(fProcessRow);else range._foreachRow(fProcessRow)}this.workbook.dependencyFormulas.calcTree()};Worksheet.prototype.getCell=function(oCellAdd){return this.getRange(oCellAdd,oCellAdd)};Worksheet.prototype.getCell2=function(sCellAdd){if(sCellAdd.indexOf("$")>-1)sCellAdd=sCellAdd.replace(/\$/g,"");return this.getRange2(sCellAdd)};Worksheet.prototype.getCell3=function(r1,c1){return this.getRange3(r1,c1,r1,c1)};Worksheet.prototype.getRange=
function(cellAdd1,cellAdd2){var nRow1=cellAdd1.getRow0();var nCol1=cellAdd1.getCol0();var nRow2=cellAdd2.getRow0();var nCol2=cellAdd2.getCol0();return this.getRange3(nRow1,nCol1,nRow2,nCol2)};Worksheet.prototype.getRange2=function(sRange){var bbox=AscCommonExcel.g_oRangeCache.getAscRange(sRange);if(null!=bbox)return Range.prototype.createFromBBox(this,bbox);return null};Worksheet.prototype.getRange3=function(r1,c1,r2,c2){var nRowMin=r1;var nRowMax=r2;var nColMin=c1;var nColMax=c2;if(r1>r2){nRowMax=
r1;nRowMin=r2}if(c1>c2){nColMax=c1;nColMin=c2}return new Range(this,nRowMin,nColMin,nRowMax,nColMax)};Worksheet.prototype.getRange4=function(r,c){return new Range(this,r,c,r,c)};Worksheet.prototype.getRowIterator=function(r1,c1,c2,callback){var it=new RowIterator;it.init(this,r1,c1,c2);callback(it);it.release()};Worksheet.prototype._removeCell=function(nRow,nCol,cell){var t=this;var processCell=function(cell){if(null!=cell){var sheetId=t.getId();if(false==cell.isEmpty()){var oUndoRedoData_CellData=
new AscCommonExcel.UndoRedoData_CellData(cell.getValueData(),null);if(null!=cell.xfs)oUndoRedoData_CellData.style=cell.xfs.clone();cell.setFormulaInternal(null);History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_RemoveCell,sheetId,new Asc.Range(nCol,nRow,nCol,nRow),new UndoRedoData_CellSimpleData(nRow,nCol,oUndoRedoData_CellData,null))}t.workbook.dependencyFormulas.addToChangedCell(cell);cell.clearData();cell.saveContent(true)}};if(null!=cell){nRow=cell.nRow;nCol=cell.nCol;
processCell(cell)}else this._getCellNoEmpty(nRow,nCol,processCell)};Worksheet.prototype._getCell=function(row,col,fAction){var wb=this.workbook;var targetCell=null;for(var k=0;k<wb.loadCells.length;++k){var elem=wb.loadCells[k];if(elem.nRow==row&&elem.nCol==col&&this===elem.ws){targetCell=elem;break}}if(null===targetCell){var cell=new Cell(this);wb.loadCells.push(cell);if(!cell.loadContent(row,col))this._initCell(cell,row,col);fAction(cell);cell.saveContent(true);wb.loadCells.pop()}else fAction(targetCell)};
Worksheet.prototype._initRow=function(row,index){var t=this;row.setChanged(true);if(null!=this.oSheetFormatPr.oAllRow){row.copyFrom(this.oSheetFormatPr.oAllRow);row.setIndex(index)}this.nRowsCount=index>=this.nRowsCount?index+1:this.nRowsCount};Worksheet.prototype._initCell=function(cell,nRow,nCol){var t=this;cell.setChanged(true);this._getRowNoEmpty(nRow,function(row){var oCol=t._getColNoEmptyWithAll(nCol);var xfs=null;if(row&&null!=row.xfs)xfs=row.xfs.clone();else if(null!=oCol&&null!=oCol.xfs)xfs=
oCol.xfs.clone();cell.setStyleInternal(xfs);t.cellsByColRowsCount=Math.max(t.cellsByColRowsCount,nRow+1);t.nRowsCount=Math.max(t.nRowsCount,t.cellsByColRowsCount);if(nCol>=t.nColsCount)t.nColsCount=nCol+1});var sheetMemory=this.getColData(nCol);sheetMemory.checkSize(nRow)};Worksheet.prototype._getCellNoEmpty=function(row,col,fAction){var wb=this.workbook;var targetCell=null;for(var k=0;k<wb.loadCells.length;++k){var elem=wb.loadCells[k];if(elem.nRow==row&&elem.nCol==col&&this===elem.ws){targetCell=
elem;break}}if(null===targetCell){var cell=new Cell(this);var res=cell.loadContent(row,col)?cell:null;if(res&&fAction)wb.loadCells.push(cell);fAction(res);cell.saveContent(true);if(res)wb.loadCells.pop()}else fAction(targetCell)};Worksheet.prototype._getRowNoEmpty=function(nRow,fAction){var row=new AscCommonExcel.Row(this);if(row.loadContent(nRow)){fAction(row);row.saveContent(true)}else fAction(null)};Worksheet.prototype._getRowNoEmptyWithAll=function(nRow,fAction){var t=this;this._getRowNoEmpty(nRow,
function(row){if(!row)row=t.oSheetFormatPr.oAllRow;fAction(row)})};Worksheet.prototype._getColNoEmpty=function(col){return this.aCols[col]||null};Worksheet.prototype._getColNoEmptyWithAll=function(col){return this._getColNoEmpty(col)||this.oAllCol};Worksheet.prototype._getRow=function(index,fAction){var row=null;if(g_nAllRowIndex==index)row=this.getAllRow();else{row=new AscCommonExcel.Row(this);if(!row.loadContent(index))this._initRow(row,index)}fAction(row);row.saveContent(true)};Worksheet.prototype._getCol=
function(index){var oCurCol;if(g_nAllColIndex==index)oCurCol=this.getAllCol();else{oCurCol=this.aCols[index];if(null==oCurCol){if(null!=this.oAllCol){oCurCol=this.oAllCol.clone();oCurCol.index=index}else oCurCol=new AscCommonExcel.Col(this,index);this.aCols[index]=oCurCol;this.nColsCount=index>=this.nColsCount?index+1:this.nColsCount}}return oCurCol};Worksheet.prototype._prepareMoveRangeGetCleanRanges=function(oBBoxFrom,oBBoxTo,wsTo){var intersection=oBBoxFrom.intersectionSimple(oBBoxTo);var aRangesToCheck=
[];if(null!=intersection&&this===wsTo){var oThis=this;var fAddToRangesToCheck=function(aRangesToCheck,r1,c1,r2,c2){if(r1<=r2&&c1<=c2)aRangesToCheck.push(oThis.getRange3(r1,c1,r2,c2))};if(intersection.r1==oBBoxTo.r1&&intersection.c1==oBBoxTo.c1){fAddToRangesToCheck(aRangesToCheck,oBBoxTo.r1,intersection.c2+1,intersection.r2,oBBoxTo.c2);fAddToRangesToCheck(aRangesToCheck,intersection.r2+1,oBBoxTo.c1,oBBoxTo.r2,oBBoxTo.c2)}else if(intersection.r2==oBBoxTo.r2&&intersection.c1==oBBoxTo.c1){fAddToRangesToCheck(aRangesToCheck,
oBBoxTo.r1,oBBoxTo.c1,intersection.r1-1,oBBoxTo.c2);fAddToRangesToCheck(aRangesToCheck,intersection.r1,intersection.c2+1,oBBoxTo.r2,oBBoxTo.c2)}else if(intersection.r1==oBBoxTo.r1&&intersection.c2==oBBoxTo.c2){fAddToRangesToCheck(aRangesToCheck,oBBoxTo.r1,oBBoxTo.c1,intersection.r2,intersection.c1-1);fAddToRangesToCheck(aRangesToCheck,intersection.r2+1,oBBoxTo.c1,oBBoxTo.r2,oBBoxTo.c2)}else if(intersection.r2==oBBoxTo.r2&&intersection.c2==oBBoxTo.c2){fAddToRangesToCheck(aRangesToCheck,oBBoxTo.r1,
oBBoxTo.c1,intersection.r1-1,oBBoxTo.c2);fAddToRangesToCheck(aRangesToCheck,intersection.r1,oBBoxTo.c1,oBBoxTo.r2,intersection.c1-1)}}else aRangesToCheck.push(wsTo.getRange3(oBBoxTo.r1,oBBoxTo.c1,oBBoxTo.r2,oBBoxTo.c2));return aRangesToCheck};Worksheet.prototype._prepareMoveRange=function(oBBoxFrom,oBBoxTo,wsTo){var res=0;if(!wsTo)wsTo=this;if(oBBoxFrom.isEqual(oBBoxTo)&&this===wsTo)return res;var range=wsTo.getRange3(oBBoxTo.r1,oBBoxTo.c1,oBBoxTo.r2,oBBoxTo.c2);var aMerged=wsTo.mergeManager.get(range.getBBox0());
if(aMerged.outer.length>0)return-2;var aRangesToCheck=this._prepareMoveRangeGetCleanRanges(oBBoxFrom,oBBoxTo,wsTo);for(var i=0,length=aRangesToCheck.length;i<length;i++){range=aRangesToCheck[i];range._foreachNoEmpty(function(cell){if(!cell.isNullTextString()){res=-1;return res}});if(0!=res)return res}return res};Worksheet.prototype._moveMergedAndHyperlinksPrepare=function(oBBoxFrom,oBBoxTo,copyRange,wsTo,offset){var res={merged:[],hyperlinks:[]};if(!(false==this.workbook.bUndoChanges&&(false==this.workbook.bRedoChanges||
this.workbook.bCollaborativeChanges)))return res;var i,elem,bbox,data,wsFrom=this;var intersection=oBBoxFrom.intersectionSimple(oBBoxTo);History.LocalChange=true;var merged=wsFrom.mergeManager.get(oBBoxFrom).inner;var mergedToRemove;if(!copyRange)mergedToRemove=merged;else if(null!==intersection)mergedToRemove=wsFrom.mergeManager.get(intersection).all;if(mergedToRemove)for(i=0;i<mergedToRemove.length;i++)wsFrom.mergeManager.removeElement(mergedToRemove[i]);var hyperlinks=wsFrom.hyperlinkManager.get(oBBoxFrom).inner;
if(!copyRange)for(i=0;i<hyperlinks.length;i++)wsFrom.hyperlinkManager.removeElement(hyperlinks[i]);History.LocalChange=false;res.merged=merged;res.hyperlinks=hyperlinks;return res};Worksheet.prototype._moveMergedAndHyperlinks=function(prepared,oBBoxFrom,oBBoxTo,copyRange,wsTo,offset){var i,elem,bbox,data;var intersection=oBBoxFrom.intersectionSimple(oBBoxTo);History.LocalChange=true;for(i=0;i<prepared.merged.length;i++){elem=prepared.merged[i];bbox=copyRange?elem.bbox.clone():elem.bbox;bbox.setOffset(offset);
wsTo.mergeManager.add(bbox,elem.data)}if(!copyRange||null===intersection)for(i=0;i<prepared.hyperlinks.length;i++){elem=prepared.hyperlinks[i];if(copyRange){bbox=elem.bbox.clone();data=elem.data.clone()}else{bbox=elem.bbox;data=elem.data}bbox.setOffset(offset);wsTo.hyperlinkManager.add(bbox,data)}History.LocalChange=false};Worksheet.prototype._moveCleanRanges=function(oBBoxFrom,oBBoxTo,copyRange,wsTo){var cleanRanges=this._prepareMoveRangeGetCleanRanges(oBBoxFrom,oBBoxTo,wsTo);for(var i=0;i<cleanRanges.length;i++){var range=
cleanRanges[i];range.cleanAll();if(!copyRange)this.workbook.dependencyFormulas.deleteNodes(wsTo.getId(),range.getBBox0())}};Worksheet.prototype._moveFormulas=function(oBBoxFrom,oBBoxTo,copyRange,wsTo,offset){if(!copyRange)this.workbook.dependencyFormulas.move(this.Id,oBBoxFrom,offset,wsTo.getId());this.getRange3(oBBoxFrom.r1,oBBoxFrom.c1,oBBoxFrom.r2,oBBoxFrom.c2)._foreachNoEmpty(function(cell){if(cell.transformSharedFormula()){var parsed=cell.getFormulaParsed();parsed.buildDependencies()}})};Worksheet.prototype._moveCells=
function(oBBoxFrom,oBBoxTo,copyRange,wsTo,offset){var oThis=this;var nRowsCountNew=0;var nColsCountNew=0;var dependencyFormulas=oThis.workbook.dependencyFormulas;var moveToOtherSheet=this!==wsTo;var isClearFromArea=!copyRange||copyRange&&oThis.workbook.bUndoChanges;var moveCells=function(copyRange,from,to,r1From,r1To,count){var fromData=oThis.getColDataNoEmpty(from);var toData;if(fromData){toData=wsTo.getColData(to);toData.copyRange(fromData,r1From,r1To,count);if(isClearFromArea)if(from!==to||moveToOtherSheet)fromData.clear(r1From,
r1From+count);else if(r1From<r1To)fromData.clear(r1From,Math.min(r1From+count,r1To));else fromData.clear(Math.max(r1From,r1To+count),r1From+count)}else{toData=wsTo.getColDataNoEmpty(to);if(toData)toData.clear(r1To,r1To+count)}if(toData){nRowsCountNew=Math.max(nRowsCountNew,toData.getSize());nColsCountNew=Math.max(nColsCountNew,to+1)}};if(oBBoxFrom.c1<oBBoxTo.c1)for(var i=0;i<oBBoxFrom.c2-oBBoxFrom.c1+1;++i)moveCells(copyRange,oBBoxFrom.c2-i,oBBoxTo.c2-i,oBBoxFrom.r1,oBBoxTo.r1,oBBoxFrom.r2-oBBoxFrom.r1+
1);else for(var i=0;i<oBBoxFrom.c2-oBBoxFrom.c1+1;++i)moveCells(copyRange,oBBoxFrom.c1+i,oBBoxTo.c1+i,oBBoxFrom.r1,oBBoxTo.r1,oBBoxFrom.r2-oBBoxFrom.r1+1);History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_MoveRange,this.getId(),new Asc.Range(0,0,gc_nMaxCol0,gc_nMaxRow0),new UndoRedoData_FromTo(new UndoRedoData_BBox(oBBoxFrom),new UndoRedoData_BBox(oBBoxTo),copyRange,wsTo.getId()));if(moveToOtherSheet)History.AddToUpdatesRegions(oBBoxTo,wsTo.getId());var shiftedArrayFormula=
{};var oldNewArrayFormulaMap={};wsTo.cellsByColRowsCount=Math.max(wsTo.cellsByColRowsCount,nRowsCountNew);wsTo.nRowsCount=Math.max(wsTo.nRowsCount,wsTo.cellsByColRowsCount);wsTo.nColsCount=Math.max(wsTo.nColsCount,nColsCountNew);wsTo.getRange3(oBBoxTo.r1,oBBoxTo.c1,oBBoxTo.r2,oBBoxTo.c2)._foreachNoEmpty(function(cell){var formula=cell.getFormulaParsed();if(formula){var cellWithFormula=formula.getParent();var arrayFormula=formula.getArrayFormulaRef();var newArrayRef,newFormula;var preMoveCell={nRow:cell.nRow-
offset.row,nCol:cell.nCol-offset.col};var isFirstCellArray=formula.checkFirstCellArray(preMoveCell)&&!shiftedArrayFormula[formula.getListenerId()];if(copyRange){History.TurnOff();if(!arrayFormula||arrayFormula&&isFirstCellArray){newFormula=oThis._moveCellsFormula(cell,formula,cellWithFormula,copyRange,oBBoxFrom,wsTo);cellWithFormula=newFormula.getParent();cellWithFormula=new CCellWithFormula(wsTo,cell.nRow,cell.nCol);newFormula=newFormula.clone(null,cellWithFormula,wsTo);newFormula.changeOffset(offset,
false,true);newFormula.setFormulaString(newFormula.assemble(true));cell.setFormulaInternal(newFormula,!isClearFromArea);if(isFirstCellArray){newArrayRef=arrayFormula.clone();newArrayRef.setOffset(offset);newFormula.setArrayFormulaRef(newArrayRef);shiftedArrayFormula[newFormula.getListenerId()]=1;oldNewArrayFormulaMap[formula.getListenerId()]=newFormula}}else if(arrayFormula&&oldNewArrayFormulaMap[formula.getListenerId()])cell.setFormulaInternal(oldNewArrayFormulaMap[formula.getListenerId()],!isClearFromArea);
History.TurnOn()}else if(arrayFormula){if(isFirstCellArray){newFormula=oThis._moveCellsFormula(cell,formula,cellWithFormula,copyRange,oBBoxFrom,wsTo);cellWithFormula=newFormula.getParent();shiftedArrayFormula[formula.getListenerId()]=1;newArrayRef=arrayFormula.clone();newArrayRef.setOffset(offset);newFormula.setArrayFormulaRef(newArrayRef);cellWithFormula.ws=wsTo;cellWithFormula.nRow=cell.nRow;cellWithFormula.nCol=cell.nCol}}else{newFormula=oThis._moveCellsFormula(cell,formula,cellWithFormula,copyRange,
oBBoxFrom,wsTo);cellWithFormula=newFormula.getParent();cellWithFormula.ws=wsTo;cellWithFormula.nRow=cell.nRow;cellWithFormula.nCol=cell.nCol}if(arrayFormula){if(isFirstCellArray){dependencyFormulas.addToBuildDependencyArray(formula);if(newFormula)dependencyFormulas.addToBuildDependencyArray(newFormula)}}else dependencyFormulas.addToBuildDependencyCell(cell)}})};Worksheet.prototype._moveCellsFormula=function(cell,formula,cellWithFormula,copyRange,oBBoxFrom,wsTo){if(this!==wsTo)if(copyRange||!this.workbook.bUndoChanges){cellWithFormula=
new CCellWithFormula(wsTo,cell.nRow,cell.nCol);formula=formula.clone(null,cellWithFormula,wsTo);if(!copyRange)formula.convertTo3DRefs(oBBoxFrom);formula.moveToSheet(this,wsTo);formula.setFormulaString(formula.assemble(true));cell.setFormulaParsed(formula)}else{formula.moveToSheet(this,wsTo);formula.setFormulaString(formula.assemble(true))}return formula};Worksheet.prototype._moveRange=function(oBBoxFrom,oBBoxTo,copyRange,wsTo){if(!wsTo)wsTo=this;if(oBBoxFrom.isEqual(oBBoxTo)&&this===wsTo)return;History.Create_NewPoint();
History.StartTransaction();this.workbook.dependencyFormulas.lockRecal();var offset=new AscCommon.CellBase(oBBoxTo.r1-oBBoxFrom.r1,oBBoxTo.c1-oBBoxFrom.c1);var prepared=this._moveMergedAndHyperlinksPrepare(oBBoxFrom,oBBoxTo,copyRange,wsTo,offset);this._moveCleanRanges(oBBoxFrom,oBBoxTo,copyRange,wsTo);this._moveFormulas(oBBoxFrom,oBBoxTo,copyRange,wsTo,offset);this._moveCells(oBBoxFrom,oBBoxTo,copyRange,wsTo,offset);this._moveMergedAndHyperlinks(prepared,oBBoxFrom,oBBoxTo,copyRange,wsTo,offset);if(true==
this.workbook.bUndoChanges||true==this.workbook.bRedoChanges)wsTo.autoFilters.unmergeTablesAfterMove(oBBoxTo);if(false==this.workbook.bUndoChanges&&false==this.workbook.bRedoChanges)this.autoFilters._moveAutoFilters(oBBoxTo,oBBoxFrom,null,copyRange,true,oBBoxFrom,wsTo);this.workbook.dependencyFormulas.unlockRecal();History.EndTransaction();return true};Worksheet.prototype._shiftCellsLeft=function(oBBox){var t=this;var nLeft=oBBox.c1;var nRight=oBBox.c2;var dif=nLeft-nRight-1;var oActualRange=new Asc.Range(nLeft,
oBBox.r1,gc_nMaxCol0,oBBox.r2);var offset=new AscCommon.CellBase(0,dif);var renameRes=this.renameDependencyNodes(offset,oBBox);var redrawTablesArr=this.autoFilters.insertColumn(oBBox,dif);this.getRange3(oBBox.r1,oBBox.c1,oBBox.r2,oBBox.c2)._foreachNoEmpty(function(cell){t._removeCell(null,null,cell)});this._updateFormulasParents(oActualRange.r1,oActualRange.c1,oActualRange.r2,oActualRange.c2,oBBox,offset,renameRes.shiftedShared);var cellsByColLength=this.getColDataLength();for(var i=nRight+1;i<cellsByColLength;++i){var sheetMemoryFrom=
this.getColDataNoEmpty(i);if(sheetMemoryFrom){this.getColData(i+dif).copyRange(sheetMemoryFrom,oBBox.r1,oBBox.r1,oBBox.r2-oBBox.r1+1);sheetMemoryFrom.clear(oBBox.r1,oBBox.r2+1)}}this.workbook.dependencyFormulas.notifyChanged(renameRes.changed);History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_ShiftCellsLeft,this.getId(),oActualRange,new UndoRedoData_BBox(oBBox));this.autoFilters.redrawStylesTables(redrawTablesArr)};Worksheet.prototype._shiftCellsUp=function(oBBox){var t=
this;var nTop=oBBox.r1;var nBottom=oBBox.r2;var dif=nTop-nBottom-1;var oActualRange=new Asc.Range(oBBox.c1,oBBox.r1,oBBox.c2,gc_nMaxRow0);var offset=new AscCommon.CellBase(dif,0);var renameRes=this.renameDependencyNodes(offset,oBBox);var redrawTablesArr=this.autoFilters.insertRows("delCell",oBBox,c_oAscDeleteOptions.DeleteCellsAndShiftTop);this.getRange3(oBBox.r1,oBBox.c1,oBBox.r2,oBBox.c2)._foreachNoEmpty(function(cell){t._removeCell(null,null,cell)});this._updateFormulasParents(oActualRange.r1,
oActualRange.c1,oActualRange.r2,oActualRange.c2,oBBox,offset,renameRes.shiftedShared);for(var i=oBBox.c1;i<=oBBox.c2;++i){var sheetMemory=this.getColDataNoEmpty(i);if(sheetMemory)sheetMemory.deleteRange(nTop,-dif)}this.workbook.dependencyFormulas.notifyChanged(renameRes.changed);History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_ShiftCellsTop,this.getId(),oActualRange,new UndoRedoData_BBox(oBBox));this.autoFilters.redrawStylesTables(redrawTablesArr)};Worksheet.prototype._shiftCellsRight=
function(oBBox,displayNameFormatTable){var nLeft=oBBox.c1;var nRight=oBBox.c2;var dif=nRight-nLeft+1;var oActualRange=new Asc.Range(oBBox.c1,oBBox.r1,gc_nMaxCol0,oBBox.r2);var offset=new AscCommon.CellBase(0,dif);var renameRes=this.renameDependencyNodes(offset,oBBox);var redrawTablesArr=this.autoFilters.insertColumn(oBBox,dif,displayNameFormatTable);this._updateFormulasParents(oActualRange.r1,oActualRange.c1,oActualRange.r2,oActualRange.c2,oBBox,offset,renameRes.shiftedShared);var borders;if(nLeft>
0&&!this.workbook.bUndoChanges)borders=this._getBordersForInsert(oBBox,false);var cellsByColLength=this.getColDataLength();for(var i=cellsByColLength-1;i>=nLeft;--i){var sheetMemoryFrom=this.getColDataNoEmpty(i);if(sheetMemoryFrom){if(i+dif<=gc_nMaxCol0)this.getColData(i+dif).copyRange(sheetMemoryFrom,oBBox.r1,oBBox.r1,oBBox.r2-oBBox.r1+1);sheetMemoryFrom.clear(oBBox.r1,oBBox.r2+1)}}this.nColsCount=Math.max(this.nColsCount,this.getColDataLength());if(nLeft>0&&!this.workbook.bUndoChanges){var prevSheetMemory=
this.getColDataNoEmpty(nLeft-1);if(prevSheetMemory){for(var i=nLeft;i<=nRight;++i)this.getColData(i).copyRange(prevSheetMemory,oBBox.r1,oBBox.r1,oBBox.r2-oBBox.r1+1);this.nColsCount=Math.max(this.nColsCount,this.getColDataLength());this.getRange3(oBBox.r1,oBBox.c1,oBBox.r2,oBBox.c2)._foreachNoEmpty(function(cell){cell.clearDataKeepXf(borders[cell.nRow])})}}this.workbook.dependencyFormulas.notifyChanged(renameRes.changed);History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_ShiftCellsRight,
this.getId(),oActualRange,new UndoRedoData_BBox(oBBox));this.autoFilters.redrawStylesTables(redrawTablesArr)};Worksheet.prototype._shiftCellsBottom=function(oBBox,displayNameFormatTable){var t=this;var nTop=oBBox.r1;var nBottom=oBBox.r2;var dif=nBottom-nTop+1;var oActualRange=new Asc.Range(oBBox.c1,oBBox.r1,oBBox.c2,gc_nMaxRow0);var offset=new AscCommon.CellBase(dif,0);var renameRes=this.renameDependencyNodes(offset,oBBox);var redrawTablesArr;if(!this.workbook.bUndoChanges&&undefined===displayNameFormatTable)redrawTablesArr=
this.autoFilters.insertRows("insCell",oBBox,c_oAscInsertOptions.InsertCellsAndShiftDown,displayNameFormatTable);this._updateFormulasParents(oActualRange.r1,oActualRange.c1,oActualRange.r2,oActualRange.c2,oBBox,offset,renameRes.shiftedShared);var borders;if(nTop>0&&!this.workbook.bUndoChanges)borders=this._getBordersForInsert(oBBox,true);for(var i=oBBox.c1;i<=oBBox.c2;++i){var sheetMemory=this.getColDataNoEmpty(i);if(sheetMemory){sheetMemory.insertRange(nTop,dif);t.cellsByColRowsCount=Math.max(t.cellsByColRowsCount,
sheetMemory.getSize())}}this.nRowsCount=Math.max(this.nRowsCount,this.cellsByColRowsCount);if(nTop>0&&!this.workbook.bUndoChanges){for(var i=oBBox.c1;i<=oBBox.c2;++i){var sheetMemory=this.getColDataNoEmpty(i);if(sheetMemory){sheetMemory.copyRangeByChunk(nTop-1,1,nTop,dif);t.cellsByColRowsCount=Math.max(t.cellsByColRowsCount,sheetMemory.getSize())}}this.nRowsCount=Math.max(this.nRowsCount,this.cellsByColRowsCount);this.getRange3(oBBox.r1,oBBox.c1,oBBox.r2,oBBox.c2)._foreachNoEmpty(function(cell){cell.clearDataKeepXf(borders[cell.nCol])})}this.workbook.dependencyFormulas.notifyChanged(renameRes.changed);
History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_ShiftCellsBottom,this.getId(),oActualRange,new UndoRedoData_BBox(oBBox));if(!this.workbook.bUndoChanges&&undefined!==displayNameFormatTable)redrawTablesArr=this.autoFilters.insertRows("insCell",oBBox,c_oAscInsertOptions.InsertCellsAndShiftDown,displayNameFormatTable);if(!this.workbook.bUndoChanges)this.autoFilters.redrawStylesTables(redrawTablesArr)};Worksheet.prototype._setIndex=function(ind){this.index=ind};Worksheet.prototype._BuildDependencies=
function(cellRange){var ca;for(var i in cellRange){if(null===cellRange[i]){cellRange[i]=i;continue}ca=g_oCellAddressUtils.getCellAddress(i);this._getCellNoEmpty(ca.getRow0(),ca.getCol0(),function(c){if(c)c._BuildDependencies(true)})}};Worksheet.prototype._setHandlersTablePart=function(){if(!this.TableParts)return;for(var i=0;i<this.TableParts.length;i++)this.TableParts[i].setHandlers(this.handlers)};Worksheet.prototype.getTableRangeForFormula=function(name,objectParam){var res=null;if(!this.TableParts||
!name)return res;for(var i=0;i<this.TableParts.length;i++)if(this.TableParts[i].DisplayName.toLowerCase()===name.toLowerCase()){res=this.TableParts[i].getTableRangeForFormula(objectParam);break}return res};Worksheet.prototype.getTableIndexColumnByName=function(tableName,columnName){var res=null;if(!this.TableParts||!tableName)return res;for(var i=0;i<this.TableParts.length;i++)if(this.TableParts[i].DisplayName.toLowerCase()===tableName.toLowerCase()){res=this.TableParts[i].getTableIndexColumnByName(columnName);
break}return res};Worksheet.prototype.getTableNameColumnByIndex=function(tableName,columnIndex){var res=null;if(!this.TableParts||!tableName)return res;for(var i=0;i<this.TableParts.length;i++)if(this.TableParts[i].DisplayName.toLowerCase()===tableName.toLowerCase()){res=this.TableParts[i].getTableNameColumnByIndex(columnIndex);break}return res};Worksheet.prototype.getTableByName=function(tableName){var res=null;if(!this.TableParts||!tableName)return res;for(var i=0;i<this.TableParts.length;i++)if(this.TableParts[i].DisplayName.toLowerCase()===
tableName.toLowerCase()){res=this.TableParts[i];break}return res};Worksheet.prototype.isApplyFilterBySheet=function(){var res=false;if(this.AutoFilter&&this.AutoFilter.isApplyAutoFilter())res=true;if(false===res&&this.TableParts)for(var i=0;i<this.TableParts.length;i++)if(true===this.TableParts[i].isApplyAutoFilter()){res=true;break}return res};Worksheet.prototype.getTableNames=function(){var res=[];if(this.TableParts)for(var i=0;i<this.TableParts.length;i++)res.push(this.TableParts[i].DisplayName);
return res};Worksheet.prototype.renameDependencyNodes=function(offset,oBBox){return this.workbook.dependencyFormulas.shift(this.Id,oBBox,offset)};Worksheet.prototype.getAllCol=function(){if(null==this.oAllCol)this.oAllCol=new AscCommonExcel.Col(this,g_nAllColIndex);return this.oAllCol};Worksheet.prototype.getAllRow=function(){if(null==this.oSheetFormatPr.oAllRow){this.oSheetFormatPr.oAllRow=new AscCommonExcel.Row(this);this.oSheetFormatPr.oAllRow.setIndex(g_nAllRowIndex)}return this.oSheetFormatPr.oAllRow};
Worksheet.prototype.getAllRowNoEmpty=function(){return this.oSheetFormatPr.oAllRow};Worksheet.prototype.getHyperlinkByCell=function(row,col){var oHyperlink=this.hyperlinkManager.getByCell(row,col);return oHyperlink?oHyperlink.data:null};Worksheet.prototype.getMergedByCell=function(row,col){var oMergeInfo=this.mergeManager.getByCell(row,col);return oMergeInfo?oMergeInfo.bbox:null};Worksheet.prototype.getMergedByRange=function(bbox){return this.mergeManager.get(bbox)};Worksheet.prototype._expandRangeByMergedAddToOuter=

@ -9724,212 +9724,212 @@ null;this.clrSchemeMap=null;this.CellStyles=new AscCommonExcel.CCellStyles;this.
0)this.nActive=0;if(this.nActive>=this.aWorksheets.length)this.nActive=this.aWorksheets.length-1;var self=this;this.wsHandlers=new AscCommonExcel.asc_CHandlersList({"changeRefTablePart":function(table){self.dependencyFormulas.changeTableRef(table)},"changeColumnTablePart":function(tableName){self.dependencyFormulas.renameTableColumn(tableName)},"deleteColumnTablePart":function(tableName,deleted){self.dependencyFormulas.delColumnTable(tableName,deleted)},"onFilterInfo":function(){self.handlers.trigger("asc_onFilterInfo")}});
for(var i=0,length=tableCustomFunc.length;i<length;++i){var elem=tableCustomFunc[i];elem.column.applyTotalRowFormula(elem.formula,elem.ws,!bNoBuildDep)}this.forEach(function(ws){ws.initPostOpen(self.wsHandlers)});var wsActive=this.getActiveWs();if(wsActive&&wsActive.getHidden())wsActive.setHidden(false);if(!bNoBuildDep){this.dependencyFormulas.initOpen();this.dependencyFormulas.calcTree()}if(bSnapshot)this.snapshot=this._getSnapshot()};Workbook.prototype.forEach=function(callback,isCopyPaste){if(isCopyPaste)callback(this.getActiveWs(),
this.getActive());else for(var i=0,l=this.aWorksheets.length;i<l;++i)callback(this.aWorksheets[i],i)};Workbook.prototype.rebuildColors=function(){AscCommonExcel.g_oColorManager.rebuildColors();this.forEach(function(ws){ws.rebuildColors()})};Workbook.prototype.getDefaultFont=function(){return g_oDefaultFormat.Font.getName()};Workbook.prototype.getDefaultSize=function(){return g_oDefaultFormat.Font.getSize()};Workbook.prototype.getActive=function(){return this.nActive};Workbook.prototype.getActiveWs=
function(){return this.getWorksheet(this.nActive)};Workbook.prototype.setActive=function(index){if(index>=0&&index<this.aWorksheets.length){this.nActive=index;this.cleanFindResults();return true}return false};Workbook.prototype.setActiveById=function(sheetId){var ws=this.getWorksheetById(sheetId);return this.setActive(ws.getIndex())};Workbook.prototype.getSheetIdByIndex=function(index){var ws=this.getWorksheet(index);return ws?ws.getId():null};Workbook.prototype.getWorksheet=function(index){if(index>=
0&&index<this.aWorksheets.length)return this.aWorksheets[index];return null};Workbook.prototype.getWorksheetById=function(id){return this.aWorksheetsById[id]};Workbook.prototype.getWorksheetByName=function(name){for(var i=0;i<this.aWorksheets.length;i++)if(this.aWorksheets[i].getName()==name)return this.aWorksheets[i];return null};Workbook.prototype.getWorksheetIndexByName=function(name){for(var i=0;i<this.aWorksheets.length;i++)if(this.aWorksheets[i].getName()==name)return i;return null};Workbook.prototype.getWorksheetCount=
function(){return this.aWorksheets.length};Workbook.prototype.createWorksheet=function(indexBefore,sName,sId){this.dependencyFormulas.lockRecal();History.Create_NewPoint();History.TurnOff();var wsActive=this.getActiveWs();var oNewWorksheet=new Worksheet(this,this.aWorksheets.length,sId);if(this.checkValidSheetName(sName))oNewWorksheet.sName=sName;oNewWorksheet.initPostOpen(this.wsHandlers);if(null!=indexBefore&&indexBefore>=0&&indexBefore<this.aWorksheets.length)this.aWorksheets.splice(indexBefore,
0,oNewWorksheet);else{indexBefore=this.aWorksheets.length;this.aWorksheets.push(oNewWorksheet)}this.aWorksheetsById[oNewWorksheet.getId()]=oNewWorksheet;this._updateWorksheetIndexes(wsActive);History.TurnOn();this._insertWorksheetFormula(oNewWorksheet.index);History.Add(AscCommonExcel.g_oUndoRedoWorkbook,AscCH.historyitem_Workbook_SheetAdd,null,null,new UndoRedoData_SheetAdd(indexBefore,oNewWorksheet.getName(),null,oNewWorksheet.getId()));History.SetSheetUndo(wsActive.getId());History.SetSheetRedo(oNewWorksheet.getId());
this.dependencyFormulas.unlockRecal();return oNewWorksheet.index};Workbook.prototype.copyWorksheet=function(index,insertBefore,sName,sId,bFromRedo,tableNames){if(index>=0&&index<this.aWorksheets.length){this.dependencyFormulas.buildDependency();History.TurnOff();var wsActive=this.getActiveWs();var wsFrom=this.aWorksheets[index];var newSheet=new Worksheet(this,-1,sId);if(null!=insertBefore&&insertBefore>=0&&insertBefore<this.aWorksheets.length)this.aWorksheets.splice(insertBefore,0,newSheet);else this.aWorksheets.push(newSheet);
this.aWorksheetsById[newSheet.getId()]=newSheet;this._updateWorksheetIndexes(wsActive);var renameParams=newSheet.copyFrom(wsFrom,sName,tableNames);newSheet.initPostOpen(this.wsHandlers);History.TurnOn();this.dependencyFormulas.copyDefNameByWorksheet(wsFrom,newSheet,renameParams);this._insertWorksheetFormula(insertBefore);if(!tableNames)tableNames=newSheet.getTableNames();History.Add(AscCommonExcel.g_oUndoRedoWorkbook,AscCH.historyitem_Workbook_SheetAdd,null,null,new UndoRedoData_SheetAdd(insertBefore,
newSheet.getName(),wsFrom.getId(),newSheet.getId(),tableNames));History.SetSheetUndo(wsActive.getId());History.SetSheetRedo(newSheet.getId());if(!(bFromRedo===true))wsFrom.copyObjects(newSheet,wsFrom);this.sortDependency()}};Workbook.prototype.insertWorksheet=function(index,sheet){var wsActive=this.getActiveWs();if(null!=index&&index>=0&&index<this.aWorksheets.length)this.aWorksheets.splice(index,0,sheet);else this.aWorksheets.push(sheet);this.aWorksheetsById[sheet.getId()]=sheet;this._updateWorksheetIndexes(wsActive);
this._insertWorksheetFormula(index);this._insertTablePartsName(sheet);sheet._BuildDependencies(sheet.getCwf());this.sortDependency()};Workbook.prototype._insertTablePartsName=function(sheet){if(sheet&&sheet.TableParts&&sheet.TableParts.length)for(var i=0;i<sheet.TableParts.length;i++){var tablePart=sheet.TableParts[i];this.dependencyFormulas.addTableName(sheet,tablePart);tablePart.buildDependencies()}};Workbook.prototype._insertWorksheetFormula=function(index){if(index>0&&index<this.aWorksheets.length){var oWsBefore=
this.aWorksheets[index-1];this.dependencyFormulas.changeSheet(this.dependencyFormulas.prepareChangeSheet(oWsBefore.getId(),{insert:index}))}};Workbook.prototype.replaceWorksheet=function(indexFrom,indexTo){if(indexFrom>=0&&indexFrom<this.aWorksheets.length&&indexTo>=0&&indexTo<this.aWorksheets.length){var wsActive=this.getActiveWs();var oWsFrom=this.aWorksheets[indexFrom];var tempW={wF:oWsFrom,wFI:indexFrom,wTI:indexTo};if(tempW.wFI<tempW.wTI)tempW.wTI++;this.dependencyFormulas.lockRecal();var prepared=
this.dependencyFormulas.prepareChangeSheet(oWsFrom.getId(),{replace:tempW},null);var movedSheet=this.aWorksheets.splice(indexFrom,1);this.aWorksheets.splice(indexTo,0,movedSheet[0]);this._updateWorksheetIndexes(wsActive);this.dependencyFormulas.changeSheet(prepared);this._insertWorksheetFormula(indexTo);History.Add(AscCommonExcel.g_oUndoRedoWorkbook,AscCH.historyitem_Workbook_SheetMove,null,null,new UndoRedoData_FromTo(indexFrom,indexTo));this.dependencyFormulas.unlockRecal()}};Workbook.prototype.findSheetNoHidden=
function(nIndex){var i,ws,oRes=null,bFound=false,countWorksheets=this.getWorksheetCount();for(i=nIndex;i<countWorksheets;++i){ws=this.getWorksheet(i);if(false===ws.getHidden()){oRes=ws;bFound=true;break}}if(!bFound)for(i=nIndex-1;i>=0;--i){ws=this.getWorksheet(i);if(false===ws.getHidden()){oRes=ws;break}}return oRes};Workbook.prototype.removeWorksheet=function(nIndex,outputParams){var bEmpty=true;for(var i=0,length=this.aWorksheets.length;i<length;++i){var worksheet=this.aWorksheets[i];if(false==
worksheet.getHidden()&&i!=nIndex){bEmpty=false;break}}if(bEmpty)return-1;var removedSheet=this.getWorksheet(nIndex);if(removedSheet){var removedSheetId=removedSheet.getId();this.dependencyFormulas.lockRecal();var prepared=this.dependencyFormulas.prepareRemoveSheet(removedSheetId,removedSheet.getTableNames());var wsActive=this.getActiveWs();var oVisibleWs=null;this.aWorksheets.splice(nIndex,1);delete this.aWorksheetsById[removedSheetId];if(nIndex==this.getActive()){oVisibleWs=this.findSheetNoHidden(nIndex);
if(null!=oVisibleWs)wsActive=oVisibleWs}History.Add(AscCommonExcel.g_oUndoRedoWorkbook,AscCH.historyitem_Workbook_SheetRemove,null,null,new AscCommonExcel.UndoRedoData_SheetRemove(nIndex,removedSheetId,removedSheet));if(null!=oVisibleWs){History.SetSheetUndo(removedSheetId);History.SetSheetRedo(wsActive.getId())}if(null!=outputParams)outputParams.sheet=removedSheet;this._updateWorksheetIndexes(wsActive);this.dependencyFormulas.removeSheet(prepared);this.dependencyFormulas.unlockRecal();return wsActive.getIndex()}return-1};
Workbook.prototype._updateWorksheetIndexes=function(wsActive){this.forEach(function(ws,index){ws._setIndex(index)});if(null!=wsActive)this.setActive(wsActive.getIndex())};Workbook.prototype.checkUniqueSheetName=function(name){var workbookSheetCount=this.getWorksheetCount();for(var i=0;i<workbookSheetCount;i++)if(this.getWorksheet(i).getName()==name)return i;return-1};Workbook.prototype.checkValidSheetName=function(name){return name&&name.length<g_nSheetNameMaxLength};Workbook.prototype.getUniqueSheetNameFrom=
function(name,bCopy){var nIndex=1;var sNewName="";var fGetPostfix=null;if(bCopy){var result=/^(.*)\((\d)\)$/.exec(name);if(result){fGetPostfix=function(nIndex){return"("+nIndex+")"};name=result[1]}else{fGetPostfix=function(nIndex){return" ("+nIndex+")"};name=name}}else fGetPostfix=function(nIndex){return nIndex.toString()};var workbookSheetCount=this.getWorksheetCount();while(nIndex<1E4){var sPosfix=fGetPostfix(nIndex);sNewName=name+sPosfix;if(sNewName.length>g_nSheetNameMaxLength){name=name.substring(0,
g_nSheetNameMaxLength-sPosfix.length);sNewName=name+sPosfix}var bUniqueName=true;for(var i=0;i<workbookSheetCount;i++)if(this.getWorksheet(i).getName()==sNewName){bUniqueName=false;break}if(bUniqueName)break;nIndex++}return sNewName};Workbook.prototype._generateFontMap=function(){var oFontMap={"Arial":1};var i;oFontMap[g_oDefaultFormat.Font.getName()]=1;if(null!=this.theme)AscFormat.checkThemeFonts(oFontMap,this.theme.themeElements.fontScheme);for(i=1;i<=g_StyleCache.getXfCount();++i){var xf=g_StyleCache.getXf(i);
if(xf.font)oFontMap[xf.font.getName()]=1}this.sharedStrings.generateFontMap(oFontMap);this.forEach(function(ws){ws.generateFontMap(oFontMap)});this.CellStyles.generateFontMap(oFontMap);return oFontMap};Workbook.prototype.generateFontMap=function(){var oFontMap=this._generateFontMap();var aRes=[];for(var i in oFontMap)aRes.push(i);return aRes};Workbook.prototype.generateFontMap2=function(){var oFontMap=this._generateFontMap();var aRes=[];for(var i in oFontMap)aRes.push(new AscFonts.CFont(i,0,"",0));
AscFonts.FontPickerByCharacter.extendFonts(aRes);return aRes};Workbook.prototype.getAllImageUrls=function(){var aImageUrls=[];this.forEach(function(ws){ws.getAllImageUrls(aImageUrls)});return aImageUrls};Workbook.prototype.reassignImageUrls=function(oImages){this.forEach(function(ws){ws.reassignImageUrls(oImages)})};Workbook.prototype.recalcWB=function(rebuild,opt_sheetId){var formulas;if(rebuild){formulas=this.getAllFormulas();for(var i=0;i<formulas.length;++i){var formula=formulas[i];formula.removeDependencies();
formula.setFormula(formula.getFormula());formula.parse();formula.buildDependencies()}}else if(opt_sheetId){formulas=[];var ws=this.getWorksheetById(opt_sheetId);ws.getAllFormulas(formulas)}else formulas=this.getAllFormulas();this.dependencyFormulas.notifyChanged(formulas);this.dependencyFormulas.calcTree()};Workbook.prototype.checkDefName=function(checkName,scope){return this.dependencyFormulas.checkDefName(checkName,scope)};Workbook.prototype.getDefinedNamesWB=function(defNameListId,bLocale){return this.dependencyFormulas.getDefinedNamesWB(defNameListId,
bLocale)};Workbook.prototype.getDefinedNamesWS=function(sheetId){return this.dependencyFormulas.getDefinedNamesWS(sheetId)};Workbook.prototype.addDefName=function(name,ref,sheetId,hidden,isTable){return this.dependencyFormulas.addDefName(name,ref,sheetId,hidden,isTable)};Workbook.prototype.getDefinesNames=function(name,sheetId){return this.dependencyFormulas.getDefNameByName(name,sheetId)};Workbook.prototype.getDefinedName=function(name){var sheetId=this.getSheetIdByIndex(name.LocalSheetId);return this.dependencyFormulas.getDefNameByName(name.Name,
sheetId)};Workbook.prototype.delDefinesNames=function(defName){this.delDefinesNamesUndoRedo(this.getUndoDefName(defName))};Workbook.prototype.delDefinesNamesUndoRedo=function(defName){this.dependencyFormulas.removeDefName(defName.sheetId,defName.name);this.dependencyFormulas.calcTree()};Workbook.prototype.editDefinesNames=function(oldName,newName){return this.editDefinesNamesUndoRedo(this.getUndoDefName(oldName),this.getUndoDefName(newName))};Workbook.prototype.editDefinesNamesUndoRedo=function(oldName,
newName){var res=this.dependencyFormulas.editDefinesNames(oldName,newName);this.dependencyFormulas.calcTree();return res};Workbook.prototype.findDefinesNames=function(ref,sheetId,bLocale){return this.dependencyFormulas.getDefNameByRef(ref,sheetId,bLocale)};Workbook.prototype.unlockDefName=function(){this.dependencyFormulas.unlockDefName()};Workbook.prototype.unlockCurrentDefName=function(name,sheetId){this.dependencyFormulas.unlockCurrentDefName(name,sheetId)};Workbook.prototype.checkDefNameLock=
function(){return this.dependencyFormulas.checkDefNameLock()};Workbook.prototype._SerializeHistoryBase64=function(oMemory,item,aPointChangesBase64){if(!item.LocalChange){var nPosStart=oMemory.GetCurPosition();item.Serialize(oMemory,this.oApi.collaborativeEditing);var nPosEnd=oMemory.GetCurPosition();var nLen=nPosEnd-nPosStart;if(nLen>0)aPointChangesBase64.push(nLen+";"+oMemory.GetBase64Memory2(nPosStart,nLen))}};Workbook.prototype.SerializeHistory=function(){var aRes=[];var t,j,length2;AscCommon.CollaborativeEditing.Refresh_DCChanges();
var aActions=this.aCollaborativeActions.concat(History.GetSerializeArray());if(aActions.length>0){var oMemory=new AscCommon.CMemory;for(var i=0,length=aActions.length;i<length;++i){var aPointChanges=aActions[i];for(j=0,length2=aPointChanges.length;j<length2;++j){var item=aPointChanges[j];this._SerializeHistoryBase64(oMemory,item,aRes)}}this.aCollaborativeActions=[];this.snapshot=this._getSnapshot()}return aRes};Workbook.prototype._getSnapshot=function(){var wb=new Workbook(new AscCommonExcel.asc_CHandlersList,
this.oApi);wb.dependencyFormulas=this.dependencyFormulas.getSnapshot(wb);this.forEach(function(ws){ws=ws.getSnapshot(wb);wb.aWorksheets.push(ws);wb.aWorksheetsById[ws.getId()]=ws});wb.init({},true,false);return wb};Workbook.prototype.getAllFormulas=function(){var res=[];this.dependencyFormulas.getAllFormulas(res);this.forEach(function(ws){ws.getAllFormulas(res)});return res};Workbook.prototype._forwardTransformation=function(wbSnapshot,changesMine,changesTheir){History.TurnOff();var res1=this._forwardTransformationGetTransform(wbSnapshot,
changesTheir,changesMine);var res2=this._forwardTransformationGetTransform(wbSnapshot,changesMine,changesTheir);var i,elem,elemWrap;for(i=0;i<res1.modify.length;++i){elemWrap=res1.modify[i];elem=elemWrap.elem;elem.oClass.forwardTransformationSet(elem.nActionType,elem.oData,elem.nSheetId,elemWrap)}for(i=0;i<res2.modify.length;++i){elemWrap=res2.modify[i];elem=elemWrap.elem;elem.oClass.forwardTransformationSet(elem.nActionType,elem.oData,elem.nSheetId,elemWrap)}for(var oldName in res1.renameSheet){var ws=
this.getWorksheetByName(oldName);if(ws)ws.setName(res1.renameSheet[oldName])}History.TurnOn()};Workbook.prototype._forwardTransformationGetTransform=function(wbSnapshot,changesMaster,changesModify){var res={modify:[],renameSheet:{}};var changesMasterSelected=[];var i,elem;if(changesModify.length>0)for(i=0;i<changesMaster.length;++i){elem=changesMaster[i];if(elem.oClass&&elem.oClass.forwardTransformationIsAffect&&elem.oClass.forwardTransformationIsAffect(elem.nActionType))changesMasterSelected.push(elem)}if(changesMasterSelected.length>
0&&changesModify.length>0){var wbSnapshotCur=wbSnapshot._getSnapshot();var formulas=[];for(i=0;i<changesModify.length;++i){elem=changesModify[i];var renameRes=null;if(elem.oClass&&elem.oClass.forwardTransformationGet){var getRes=elem.oClass.forwardTransformationGet(elem.nActionType,elem.oData,elem.nSheetId);if(getRes&&getRes.formula)formulas.push(new ForwardTransformationFormula(elem,getRes.formula,null));if(getRes&&getRes.name)renameRes=this._forwardTransformationRenameStart(wbSnapshotCur._getSnapshot(),
changesMasterSelected,getRes)}if(elem.oClass&&elem.oClass.forwardTransformationIsAffect&&elem.oClass.forwardTransformationIsAffect(elem.nActionType)){if(formulas.length>0){this._forwardTransformationFormula(wbSnapshotCur._getSnapshot(),formulas,changesMasterSelected,res);formulas=[]}elem.oClass.Redo(elem.nActionType,elem.oData,elem.nSheetId,wbSnapshotCur)}if(renameRes)this._forwardTransformationRenameEnd(renameRes,res.renameSheet,getRes,elem)}this._forwardTransformationFormula(wbSnapshotCur,formulas,
changesMasterSelected,res)}return res};Workbook.prototype._forwardTransformationRenameStart=function(wbSnapshot,changes,getRes){var res={newName:null};for(var i=0;i<changes.length;++i){var elem=changes[i];elem.oClass.Redo(elem.nActionType,elem.oData,elem.nSheetId,wbSnapshot)}if(-1!=wbSnapshot.checkUniqueSheetName(getRes.name))res.newName=wbSnapshot.getUniqueSheetNameFrom(getRes.name,true);return res};Workbook.prototype._forwardTransformationRenameEnd=function(renameRes,renameSheet,getRes,elemCur){var isChange=
false;if(getRes.from){var renameCur=renameSheet[getRes.from];if(renameCur){delete renameSheet[getRes.from];getRes.from=renameCur;isChange=true}}if(renameRes&&renameRes.newName){renameSheet[getRes.name]=renameRes.newName;getRes.name=renameRes.newName;isChange=true}if(isChange&&elemCur.oClass.forwardTransformationSet)elemCur.oClass.forwardTransformationSet(elemCur.nActionType,elemCur.oData,elemCur.nSheetId,getRes)};Workbook.prototype._forwardTransformationFormula=function(wbSnapshot,formulas,changes,
res){if(formulas.length>0){var i,elem,ftFormula,ws;for(i=0;i<formulas.length;++i){ftFormula=formulas[i];ws=wbSnapshot.getWorksheetById(ftFormula.elem.nSheetId);if(ws){ftFormula.parsed=new parserFormula(ftFormula.formula,ftFormula,ws);ftFormula.parsed.parse();ftFormula.parsed.buildDependencies()}}for(var oldName in res.renameSheet){ws=wbSnapshot.getWorksheetByName(oldName);if(ws)ws.setName(res.renameSheet[oldName])}for(i=0;i<changes.length;++i){elem=changes[i];elem.oClass.Redo(elem.nActionType,elem.oData,
elem.nSheetId,wbSnapshot)}for(i=0;i<formulas.length;++i){ftFormula=formulas[i];if(ftFormula.parsed){ftFormula.parsed.removeDependencies();res.modify.push(ftFormula)}}}};Workbook.prototype.DeserializeHistory=function(aChanges,fCallback){var oThis=this;this.aCollaborativeActions=this.aCollaborativeActions.concat(History.GetSerializeArray());if(aChanges.length>0){this.bCollaborativeChanges=true;var dstLen=0;var aIndexes=[],i,length=aChanges.length,sChange;for(i=0;i<length;++i){sChange=aChanges[i];var nIndex=
sChange.indexOf(";");if(-1!=nIndex){dstLen+=parseInt(sChange.substring(0,nIndex));nIndex++}aIndexes.push(nIndex)}var pointer=g_memory.Alloc(dstLen);var stream=new AscCommon.FT_Stream2(pointer.data,dstLen);stream.obj=pointer.obj;var nCurOffset=0;var aUndoRedoElems=[];for(i=0;i<length;++i){sChange=aChanges[i];var oBinaryFileReader=new AscCommonExcel.BinaryFileReader;nCurOffset=oBinaryFileReader.getbase64DecodedData2(sChange,aIndexes[i],stream,nCurOffset);var item=new UndoRedoItemSerializable;item.Deserialize(stream);
aUndoRedoElems.push(item)}var wsViews=window["Asc"]["editor"].wb.wsViews;if(oThis.oApi.collaborativeEditing.getFast())AscCommon.CollaborativeEditing.Clear_DocumentPositions();for(var i in wsViews)if(isRealObject(wsViews[i])&&isRealObject(wsViews[i].objectRender)&&isRealObject(wsViews[i].objectRender.controller)){wsViews[i].endEditChart();if(oThis.oApi.collaborativeEditing.getFast()){var oState=wsViews[i].objectRender.saveStateBeforeLoadChanges();if(oState){if(oState.Pos)AscCommon.CollaborativeEditing.Add_DocumentPosition(oState.Pos);
if(oState.StartPos)AscCommon.CollaborativeEditing.Add_DocumentPosition(oState.StartPos);if(oState.EndPos)AscCommon.CollaborativeEditing.Add_DocumentPosition(oState.EndPos)}}wsViews[i].objectRender.controller.resetSelection()}oFormulaLocaleInfo.Parse=false;oFormulaLocaleInfo.DigitSep=false;AscFonts.IsCheckSymbols=true;History.Clear();History.TurnOff();var history=new AscCommon.CHistory;history.init(this);history.Create_NewPoint();history.SetSelection(null);history.SetSelectionRedo(null);var oRedoObjectParam=
new AscCommonExcel.RedoObjectParam;history.UndoRedoPrepare(oRedoObjectParam,false);var changesMine=[].concat.apply([],oThis.aCollaborativeActions);oThis._forwardTransformation(oThis.snapshot,changesMine,aUndoRedoElems);for(var i=0,length=aUndoRedoElems.length;i<length;++i){var item=aUndoRedoElems[i];if((null!=item.oClass||item.oData&&typeof item.oData.sChangedObjectId==="string")&&null!=item.nActionType){if(window["NATIVE_EDITOR_ENJINE"]===true&&window["native"]["CheckNextChange"])if(!window["native"]["CheckNextChange"]())break;
history.RedoAdd(oRedoObjectParam,item.oClass,item.nActionType,item.nSheetId,item.oRange,item.oData)}}AscFonts.IsCheckSymbols=false;var oFontMap=this._generateFontMap();window["Asc"]["editor"]._loadFonts(oFontMap,function(){if(oThis.oApi.collaborativeEditing.getFast())for(var i in wsViews)if(isRealObject(wsViews[i])&&isRealObject(wsViews[i].objectRender)&&isRealObject(wsViews[i].objectRender.controller)){var oState=wsViews[i].objectRender.getStateBeforeLoadChanges();if(oState){if(oState.Pos)AscCommon.CollaborativeEditing.Update_DocumentPosition(oState.Pos);
if(oState.StartPos)AscCommon.CollaborativeEditing.Update_DocumentPosition(oState.StartPos);if(oState.EndPos)AscCommon.CollaborativeEditing.Update_DocumentPosition(oState.EndPos)}wsViews[i].objectRender.loadStateAfterLoadChanges()}oFormulaLocaleInfo.Parse=true;oFormulaLocaleInfo.DigitSep=true;history.UndoRedoEnd(null,oRedoObjectParam,false);History.TurnOn();oThis.bCollaborativeChanges=false;oThis.snapshot=oThis._getSnapshot();if(null!=fCallback)fCallback()})}else if(null!=fCallback)fCallback()};Workbook.prototype.DeserializeHistoryNative=
function(oRedoObjectParam,data,isFull){if(null!=data){this.bCollaborativeChanges=true;if(null==oRedoObjectParam){var wsViews=window["Asc"]["editor"].wb.wsViews;for(var i in wsViews)if(isRealObject(wsViews[i])&&isRealObject(wsViews[i].objectRender)&&isRealObject(wsViews[i].objectRender.controller)){wsViews[i].endEditChart();wsViews[i].objectRender.controller.resetSelection()}History.Clear();History.Create_NewPoint();History.SetSelection(null);History.SetSelectionRedo(null);oRedoObjectParam=new AscCommonExcel.RedoObjectParam;
History.UndoRedoPrepare(oRedoObjectParam,false)}var stream=new AscCommon.FT_Stream2(data,data.length);stream.obj=null;var _count=stream.GetLong();var _pos=4;for(var i=0;i<_count;i++){if(window["NATIVE_EDITOR_ENJINE"]===true&&window["native"]["CheckNextChange"])if(!window["native"]["CheckNextChange"]())break;var _len=stream.GetLong();_pos+=4;stream.size=_pos+_len;stream.Seek(_pos);stream.Seek2(_pos);var item=new UndoRedoItemSerializable;item.Deserialize(stream);if((null!=item.oClass||item.oData&&typeof item.oData.sChangedObjectId===
"string")&&null!=item.nActionType)History.RedoAdd(oRedoObjectParam,item.oClass,item.nActionType,item.nSheetId,item.oRange,item.oData);_pos+=_len;stream.Seek2(_pos);stream.size=data.length}if(isFull){History.UndoRedoEnd(null,oRedoObjectParam,false);History.Clear();oRedoObjectParam=null}this.bCollaborativeChanges=false}return oRedoObjectParam};Workbook.prototype.getTableRangeForFormula=function(name,objectParam){var res=null;for(var i=0,length=this.aWorksheets.length;i<length;++i){var ws=this.aWorksheets[i];
res=ws.getTableRangeForFormula(name,objectParam);if(res!==null){res={wsID:ws.getId(),range:res};break}}return res};Workbook.prototype.getTableIndexColumnByName=function(tableName,columnName){var res=null;for(var i=0,length=this.aWorksheets.length;i<length;++i){var ws=this.aWorksheets[i];res=ws.getTableIndexColumnByName(tableName,columnName);if(res!==null){res={wsID:ws.getId(),index:res,name:ws.getTableNameColumnByIndex(tableName,res)};break}}return res};Workbook.prototype.getTableNameColumnByIndex=
function(tableName,columnIndex){var res=null;for(var i=0,length=this.aWorksheets.length;i<length;++i){var ws=this.aWorksheets[i];res=ws.getTableNameColumnByIndex(tableName,columnIndex);if(res!==null){res={wsID:ws.getId(),columnName:res};break}}return res};Workbook.prototype.getTableByName=function(tableName,wsID){var res=null;var ws=this.getWorksheetById(wsID);return ws.getTableByName(tableName)};Workbook.prototype.updateSparklineCache=function(sheet,ranges){this.forEach(function(ws){ws.updateSparklineCache(sheet,
ranges)})};Workbook.prototype.sortDependency=function(){this.dependencyFormulas.calcTree()};Workbook.prototype.charCountToModelColWidth=function(count){if(count<=0)return 0;return Asc.floor((count*this.maxDigitWidth+this.paddingPlusBorder)/this.maxDigitWidth*256)/256};Workbook.prototype.modelColWidthToColWidth=function(mcw){return Asc.floor((256*mcw+Asc.floor(128/this.maxDigitWidth))/256*this.maxDigitWidth)};Workbook.prototype.colWidthToCharCount=function(w){var pxInOneCharacter=this.maxDigitWidth+
this.paddingPlusBorder;return w<pxInOneCharacter?1-Asc.floor(100*(pxInOneCharacter-w)/pxInOneCharacter+.49999)/100:Asc.floor((w-this.paddingPlusBorder)/this.maxDigitWidth*100+.5)/100};Workbook.prototype.getUndoDefName=function(ascName){if(!ascName)return ascName;var sheetId=this.getSheetIdByIndex(ascName.LocalSheetId);return new UndoRedoData_DefinedNames(ascName.Name,ascName.Ref,sheetId,ascName.isTable,ascName.isXLNM)};Workbook.prototype.changeColorScheme=function(sSchemeName){var scheme=AscCommon.getColorSchemeByName(sSchemeName);
if(!scheme)scheme=this.theme.getExtraClrScheme(sSchemeName);if(!scheme)return;History.Create_NewPoint();History.Add(AscCommonExcel.g_oUndoRedoWorkbook,AscCH.historyitem_Workbook_ChangeColorScheme,null,null,new AscCommonExcel.UndoRedoData_ClrScheme(this.theme.themeElements.clrScheme,scheme));this.theme.themeElements.clrScheme=scheme;this.rebuildColors();return true};Workbook.prototype.cleanFindResults=function(){this.lastFindOptions=null;this.lastFindCells={}};Workbook.prototype.findCellText=function(options){var ws=
this.getActiveWs();var result=ws.findCellText(options),result2=null;if(!options.scanOnOnlySheet){var key=result&&result.col+"-"+result.row;if(!key||options.isEqual(this.lastFindOptions)&&this.lastFindCells[key]){var i,active=this.getActive(),start=0,end=this.getWorksheetCount();var inc=options.scanForward?+1:-1;for(i=active+inc;i<end&&i>=start;i+=inc){ws=this.getWorksheet(i);if(ws.getHidden())continue;result2=ws.findCellText(options);if(result2)break}if(!result2){if(options.scanForward){i=0;end=active}else{i=
end-1;start=active+1}inc*=-1;for(;i<end&&i>=start;i+=inc){ws=this.getWorksheet(i);if(ws.getHidden())continue;result2=ws.findCellText(options);if(result2)break}}if(result2){this.handlers.trigger("undoRedoHideSheet",i);key=result2.col+"-"+result2.row}}if(key){this.lastFindOptions=options.clone();this.lastFindCells[key]=true}}if(!result2&&!result)this.cleanFindResults();return result2||result};Workbook.prototype.getComment=function(id){if(id){var sheet;for(var i=0;i<this.aWorksheets.length;++i){sheet=
this.aWorksheets[i];for(var j=0;j<sheet.aComments.length;++j)if(id===sheet.aComments[j].asc_getGuid())return sheet.aComments[j]}}return null};var tempHelp=new ArrayBuffer(8);var tempHelpUnit=new Uint8Array(tempHelp);var tempHelpFloat=new Float64Array(tempHelp);function SheetMemory(structSize,maxIndex){this.data=null;this.count=0;this.structSize=structSize;this.maxIndex=maxIndex}SheetMemory.prototype.checkSize=function(index){var allocatedCount=this.data?this.data.length/this.structSize:0;if(allocatedCount<
index+1){var newAllocatedCount=Math.min(Math.max(1.5*this.count>>0,index+1),this.maxIndex+1);if(newAllocatedCount>allocatedCount){var oldData=this.data;this.data=new Uint8Array(newAllocatedCount*this.structSize);if(oldData)this.data.set(oldData)}}this.count=Math.min(Math.max(this.count,index+1),this.maxIndex+1)};SheetMemory.prototype.hasSize=function(index){return index+1<=this.count};SheetMemory.prototype.getSize=function(){return this.count};SheetMemory.prototype.clone=function(){var sheetMemory=
new SheetMemory(this.structSize,this.maxIndex);sheetMemory.data=this.data?new Uint8Array(this.data):null;sheetMemory.count=this.count;return sheetMemory};SheetMemory.prototype.deleteRange=function(start,deleteCount){if(start<this.count){var startOffset=start*this.structSize;if(start+deleteCount<this.count){var endOffset=(start+deleteCount)*this.structSize;this.data.set(this.data.subarray(endOffset),startOffset);this.data.fill(0,(this.count-deleteCount)*this.structSize);this.count-=deleteCount}else{this.data.fill(0,
startOffset);this.count=start}}};SheetMemory.prototype.insertRange=function(start,insertCount){if(start<this.count){this.checkSize(this.count-1+insertCount);var startOffset=start*this.structSize;if(start+insertCount<this.count){var endOffset=(start+insertCount)*this.structSize;var endData=(this.count-insertCount)*this.structSize;this.data.set(this.data.subarray(startOffset,endData),endOffset);this.data.fill(0,startOffset,endOffset)}else this.data.fill(0,startOffset)}};SheetMemory.prototype.copyRange=
function(sheetMemory,startFrom,startTo,count){var countCopied=0;if(startFrom<sheetMemory.count){countCopied=Math.min(count,sheetMemory.count-startFrom);this.checkSize(startTo+countCopied);countCopied=Math.min(countCopied,this.count-startTo);if(countCopied>0){var startOffsetFrom=startFrom*this.structSize;var endOffsetFrom=(startFrom+countCopied)*this.structSize;var startOffsetTo=startTo*this.structSize;this.data.set(sheetMemory.data.subarray(startOffsetFrom,endOffsetFrom),startOffsetTo)}}var countErase=
Math.min(count-countCopied,this.count-(startTo+countCopied));if(countErase>0){var startOffsetErase=(startTo+countCopied)*this.structSize;var endOffsetErase=(startTo+countCopied+countErase)*this.structSize;this.data.fill(0,startOffsetErase,endOffsetErase)}};SheetMemory.prototype.copyRangeByChunk=function(from,fromCount,to,toCount){if(from<this.count){this.checkSize(to+toCount-1);var fromStartOffset=from*this.structSize;var fromEndOffset=Math.min(from+fromCount,this.count)*this.structSize;var fromSubArray=
this.data.subarray(fromStartOffset,fromEndOffset);for(var i=to;i<to+toCount&&i<this.count;i+=fromCount)this.data.set(fromSubArray,i*this.structSize)}};SheetMemory.prototype.clear=function(start,end){end=Math.min(end,this.count);if(start<end)this.data.fill(0,start*this.structSize,end*this.structSize)};SheetMemory.prototype.getUint8=function(index,offset){offset+=index*this.structSize;return this.data[offset]};SheetMemory.prototype.setUint8=function(index,offset,val){offset+=index*this.structSize;this.data[offset]=
val};SheetMemory.prototype.getUint16=function(index,offset){offset+=index*this.structSize;return AscFonts.FT_Common.IntToUInt(this.data[offset]|this.data[offset+1]<<8)};SheetMemory.prototype.setUint16=function(index,offset,val){offset+=index*this.structSize;this.data[offset]=val&255;this.data[offset+1]=val>>>8&255};SheetMemory.prototype.getUint32=function(index,offset){offset+=index*this.structSize;return AscFonts.FT_Common.IntToUInt(this.data[offset]|this.data[offset+1]<<8|this.data[offset+2]<<16|
this.data[offset+3]<<24)};SheetMemory.prototype.setUint32=function(index,offset,val){offset+=index*this.structSize;this.data[offset]=val&255;this.data[offset+1]=val>>>8&255;this.data[offset+2]=val>>>16&255;this.data[offset+3]=val>>>24&255};SheetMemory.prototype.getFloat64=function(index,offset){offset+=index*this.structSize;tempHelpUnit[0]=this.data[offset];tempHelpUnit[1]=this.data[offset+1];tempHelpUnit[2]=this.data[offset+2];tempHelpUnit[3]=this.data[offset+3];tempHelpUnit[4]=this.data[offset+
4];tempHelpUnit[5]=this.data[offset+5];tempHelpUnit[6]=this.data[offset+6];tempHelpUnit[7]=this.data[offset+7];return tempHelpFloat[0]};SheetMemory.prototype.setFloat64=function(index,offset,val){offset+=index*this.structSize;tempHelpFloat[0]=val;this.data[offset]=tempHelpUnit[0];this.data[offset+1]=tempHelpUnit[1];this.data[offset+2]=tempHelpUnit[2];this.data[offset+3]=tempHelpUnit[3];this.data[offset+4]=tempHelpUnit[4];this.data[offset+5]=tempHelpUnit[5];this.data[offset+6]=tempHelpUnit[6];this.data[offset+
7]=tempHelpUnit[7]};function Worksheet(wb,_index,sId){this.workbook=wb;this.sName=this.workbook.getUniqueSheetNameFrom(g_sNewSheetNamePattern,false);this.bHidden=false;this.oSheetFormatPr=new AscCommonExcel.SheetFormatPr;this.index=_index;this.Id=null!=sId?sId:AscCommon.g_oIdCounter.Get_NewId();this.nRowsCount=0;this.nColsCount=0;this.rowsData=new SheetMemory(AscCommonExcel.g_nRowStructSize,gc_nMaxRow0);this.cellsByCol=[];this.cellsByColRowsCount=0;this.aCols=[];this.hiddenManager=new HiddenManager(this);
this.Drawings=[];this.TableParts=[];this.AutoFilter=null;this.oAllCol=null;this.aComments=[];var oThis=this;this.bExcludeHiddenRows=false;this.bIgnoreWriteFormulas=false;this.mergeManager=new RangeDataManager(function(data,from,to){if(History.Is_On()&&(null!=from||null!=to)){if(null!=from)from=from.clone();if(null!=to)to=to.clone();var oHistoryRange=from;if(null==oHistoryRange)oHistoryRange=to;History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_ChangeMerge,oThis.getId(),oHistoryRange,
new UndoRedoData_FromTo(new UndoRedoData_BBox(from),new UndoRedoData_BBox(to)))}if(null!=to){var maxRow=gc_nMaxRow0!==to.r2?to.r2:to.r1;var maxCol=gc_nMaxCol0!==to.c2?to.c2:to.c1;if(maxRow>=oThis.nRowsCount)oThis.nRowsCount=maxRow+1;if(maxCol>=oThis.nColsCount)oThis.nColsCount=maxCol+1}});this.mergeManager.worksheet=this;this.hyperlinkManager=new RangeDataManager(function(data,from,to,oChangeParam){if(History.Is_On()&&(null!=from||null!=to)){if(null!=from)from=from.clone();if(null!=to)to=to.clone();
var oHistoryRange=from;if(null==oHistoryRange)oHistoryRange=to;var oHistoryData=null;if(null==from||null==to)oHistoryData=data.clone();History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_ChangeHyperlink,oThis.getId(),oHistoryRange,new AscCommonExcel.UndoRedoData_FromToHyperlink(from,to,oHistoryData))}if(null!=to)data.Ref=oThis.getRange3(to.r1,to.c1,to.r2,to.c2);else if(oChangeParam&&oChangeParam.removeStyle&&null!=data.Ref)data.Ref.cleanFormat();if(null!=to){var maxRow=gc_nMaxRow0!==
to.r2?to.r2:to.r1;var maxCol=gc_nMaxCol0!==to.c2?to.c2:to.c1;if(maxRow>=oThis.nRowsCount)oThis.nRowsCount=maxRow+1;if(maxCol>=oThis.nColsCount)oThis.nColsCount=maxCol+1}});this.hyperlinkManager.setDependenceManager(this.mergeManager);this.DrawingDocument=new AscCommon.CDrawingDocument;this.sheetViews=[];this.aConditionalFormattingRules=[];this.updateConditionalFormattingRange=null;this.dataValidations=null;this.sheetPr=null;this.aFormulaExt=null;this.autoFilters=AscCommonExcel.AutoFilters!==undefined?
new AscCommonExcel.AutoFilters(this):null;this.oDrawingOjectsManager=new DrawingObjectsManager(this);this.contentChanges=new AscCommon.CContentChanges;this.aSparklineGroups=[];this.selectionRange=new AscCommonExcel.SelectionRange(this);this.sheetMergedStyles=new AscCommonExcel.SheetMergedStyles;this.pivotTables=[];this.headerFooter=new Asc.CHeaderFooter(this);this.rowBreaks=null;this.colBreaks=null;this.legacyDrawingHF=null;this.picture=null;this.PagePrintOptions=new Asc.asc_CPageOptions(this);this.formulaArrayLink=
null;this.lastFindOptions=null;this.bExcludeCollapsed=false;this.handlers=null}Worksheet.prototype.getCompiledStyle=function(row,col,opt_cell,opt_styleComponents){return getCompiledStyle(this.sheetMergedStyles,this.hiddenManager,row,col,opt_cell,this,opt_styleComponents)};Worksheet.prototype.getCompiledStyleCustom=function(row,col,needTable,needCell,needConditional,opt_cell){var res;var styleComponents=this.sheetMergedStyles.getStyle(this.hiddenManager,row,col,this);var ws=this;if(!needTable)styleComponents.table=
[];if(!needConditional)styleComponents.conditional=[];if(!needCell)res=getCompiledStyle(undefined,undefined,row,col,undefined,undefined,styleComponents);else if(opt_cell)res=getCompiledStyle(undefined,undefined,row,col,opt_cell,ws,styleComponents);else this._getCellNoEmpty(row,col,function(cell){res=getCompiledStyle(undefined,undefined,row,col,cell,ws,styleComponents)});return res};Worksheet.prototype.getColData=function(index){var sheetMemory=this.cellsByCol[index];if(!sheetMemory){sheetMemory=new SheetMemory(g_nCellStructSize,
gc_nMaxRow0);this.cellsByCol[index]=sheetMemory}return sheetMemory};Worksheet.prototype.getColDataNoEmpty=function(index){return this.cellsByCol[index]};Worksheet.prototype.getColDataLength=function(){return this.cellsByCol.length};Worksheet.prototype.getSnapshot=function(wb){var ws=new Worksheet(wb,this.index,this.Id);ws.sName=this.sName;for(var i=0;i<this.TableParts.length;++i){var table=this.TableParts[i];ws.addTablePart(table.clone(null),false)}for(i=0;i<this.sheetViews.length;++i)ws.sheetViews.push(this.sheetViews[i].clone());
return ws};Worksheet.prototype.addContentChanges=function(changes){this.contentChanges.Add(changes)};Worksheet.prototype.refreshContentChanges=function(){this.contentChanges.Refresh();this.contentChanges.Clear()};Worksheet.prototype.rebuildColors=function(){this.rebuildTabColor();for(var i=0;i<this.aSparklineGroups.length;++i)this.aSparklineGroups[i].cleanCache()};Worksheet.prototype.generateFontMap=function(oFontMap){for(var i=0,length=this.Drawings.length;i<length;++i){var drawing=this.Drawings[i];
if(drawing)drawing.getAllFonts(oFontMap)}if(this.headerFooter)this.headerFooter.getAllFonts(oFontMap)};Worksheet.prototype.getAllImageUrls=function(aImages){for(var i=0;i<this.Drawings.length;++i)this.Drawings[i].graphicObject.getAllRasterImages(aImages)};Worksheet.prototype.reassignImageUrls=function(oImages){for(var i=0;i<this.Drawings.length;++i)this.Drawings[i].graphicObject.Reassign_ImageUrls(oImages)};Worksheet.prototype.copyFrom=function(wsFrom,sName,tableNames){var i,elem,range;var t=this;
this.sName=this.workbook.checkValidSheetName(sName)?sName:this.workbook.getUniqueSheetNameFrom(wsFrom.sName,true);this.bHidden=wsFrom.bHidden;this.oSheetFormatPr=wsFrom.oSheetFormatPr.clone();this.nRowsCount=wsFrom.nRowsCount;this.nColsCount=wsFrom.nColsCount;var renameParams={lastName:wsFrom.getName(),newName:this.getName(),tableNameMap:{}};for(i=0;i<wsFrom.TableParts.length;++i){var tableFrom=wsFrom.TableParts[i];var tableTo=tableFrom.clone(null);if(tableNames&&tableNames.length)tableTo.changeDisplayName(tableNames[i]);
else tableTo.changeDisplayName(this.workbook.dependencyFormulas.getNextTableName());this.addTablePart(tableTo,true);renameParams.tableNameMap[tableFrom.DisplayName]=tableTo.DisplayName}for(i=0;i<this.TableParts.length;++i)this.TableParts[i].renameSheetCopy(this,renameParams);if(wsFrom.AutoFilter)this.AutoFilter=wsFrom.AutoFilter.clone();for(i in wsFrom.aCols){var col=wsFrom.aCols[i];if(null!=col)this.aCols[i]=col.clone(this)}if(null!=wsFrom.oAllCol)this.oAllCol=wsFrom.oAllCol.clone(this);this.rowsData=
wsFrom.rowsData.clone();wsFrom._forEachColData(function(sheetMemory,index){t.cellsByCol[index]=sheetMemory.clone()});this.cellsByColRowsCount=wsFrom.cellsByColRowsCount;var aMerged=wsFrom.mergeManager.getAll();for(i in aMerged){elem=aMerged[i];range=this.getRange3(elem.bbox.r1,elem.bbox.c1,elem.bbox.r2,elem.bbox.c2);range.mergeOpen()}var aHyperlinks=wsFrom.hyperlinkManager.getAll();for(i in aHyperlinks){elem=aHyperlinks[i];range=this.getRange3(elem.bbox.r1,elem.bbox.c1,elem.bbox.r2,elem.bbox.c2);
range.setHyperlinkOpen(elem.data)}if(null!=wsFrom.aComments)for(i=0;i<wsFrom.aComments.length;i++){var comment=wsFrom.aComments[i].clone();comment.wsId=this.getId();comment.nId="sheet"+comment.wsId+"_"+(i+1);this.aComments.push(comment)}for(i=0;i<wsFrom.sheetViews.length;++i)this.sheetViews.push(wsFrom.sheetViews[i].clone());for(i=0;i<wsFrom.aConditionalFormattingRules.length;++i)this.aConditionalFormattingRules.push(wsFrom.aConditionalFormattingRules[i].clone());if(wsFrom.dataValidations)this.dataValidations=
wsFrom.dataValidations.clone();if(wsFrom.sheetPr)this.sheetPr=wsFrom.sheetPr.clone();this.selectionRange=wsFrom.selectionRange.clone(this);var oldNewArrayFormulaMap=[];this._forEachCell(function(cell){if(cell.isFormula()){var parsed,notMainArrayCell;if(cell.transformSharedFormula())parsed=cell.getFormulaParsed();else{parsed=cell.getFormulaParsed();if(parsed.getArrayFormulaRef()){var listenerId=parsed.getListenerId();if(oldNewArrayFormulaMap[listenerId]){parsed=oldNewArrayFormulaMap[listenerId];notMainArrayCell=
true}else{parsed=parsed.clone(null,new CCellWithFormula(t,cell.nRow,cell.nCol),t);oldNewArrayFormulaMap[listenerId]=parsed}}else parsed=parsed.clone(null,new CCellWithFormula(t,cell.nRow,cell.nCol),t)}if(!notMainArrayCell){parsed.renameSheetCopy(renameParams);parsed.setFormulaString(parsed.assemble(true))}cell.setFormulaInternal(parsed,true);t.workbook.dependencyFormulas.addToBuildDependencyCell(cell)}});if(wsFrom.headerFooter)this.headerFooter=wsFrom.headerFooter.clone(this);return renameParams};
Worksheet.prototype.copyObjects=function(oNewWs,wsFrom){var i;if(null!=this.Drawings&&this.Drawings.length>0){var drawingObjects=new AscFormat.DrawingObjects;oNewWs.Drawings=[];AscFormat.NEW_WORKSHEET_DRAWING_DOCUMENT=oNewWs.DrawingDocument;for(i=0;i<this.Drawings.length;++i){var drawingObject=drawingObjects.cloneDrawingObject(this.Drawings[i]);drawingObject.graphicObject=this.Drawings[i].graphicObject.copy();drawingObject.graphicObject.setWorksheet(oNewWs);drawingObject.graphicObject.addToDrawingObjects();
var drawingBase=this.Drawings[i];drawingObject.graphicObject.setDrawingBaseCoords(drawingBase.from.col,drawingBase.from.colOff,drawingBase.from.row,drawingBase.from.rowOff,drawingBase.to.col,drawingBase.to.colOff,drawingBase.to.row,drawingBase.to.rowOff,drawingBase.Pos.X,drawingBase.Pos.Y,drawingBase.ext.cx,drawingBase.ext.cy);if(drawingObject.graphicObject.setDrawingBaseType)drawingObject.graphicObject.setDrawingBaseType(drawingBase.Type);oNewWs.Drawings[oNewWs.Drawings.length-1]=drawingObject}AscFormat.NEW_WORKSHEET_DRAWING_DOCUMENT=
null;drawingObjects.pushToAObjects(oNewWs.Drawings);drawingObjects.updateChartReferences2(parserHelp.getEscapeSheetName(wsFrom.sName),parserHelp.getEscapeSheetName(oNewWs.sName))}var newSparkline;for(i=0;i<this.aSparklineGroups.length;++i){newSparkline=this.aSparklineGroups[i].clone();newSparkline.setWorksheet(oNewWs,wsFrom);oNewWs.aSparklineGroups.push(newSparkline)}};Worksheet.prototype.initColumn=function(column){if(column)if(null!==column.width&&0!==column.width){column.widthPx=this.modelColWidthToColWidth(column.width);
column.charCount=this.colWidthToCharCount(column.widthPx)}else column.widthPx=column.charCount=null};Worksheet.prototype.initColumns=function(){this.initColumn(this.oAllCol);this.aCols.forEach(this.initColumn,this)};Worksheet.prototype.initPostOpen=function(handlers){this.PagePrintOptions.init();this.headerFooter.init();if(0===this.sheetViews.length)this.sheetViews.push(new AscCommonExcel.asc_CSheetViewSettings);this.hiddenManager.initPostOpen();this.oSheetFormatPr.correction();this.handlers=handlers;
this._setHandlersTablePart()};Worksheet.prototype._getValuesForConditionalFormatting=function(ranges,numbers){var res=[];for(var i=0;i<ranges.length;++i){var elem=ranges[i];var range=this.getRange3(elem.r1,elem.c1,elem.r2,elem.c2);res=res.concat(range._getValues(numbers))}return res};Worksheet.prototype._isConditionalFormattingIntersect=function(range,ranges){for(var i=0;i<ranges.length;++i)if(range.isIntersect(ranges[i]))return true;return false};Worksheet.prototype.setDirtyConditionalFormatting=
function(range){if(!range)range=new AscCommonExcel.MultiplyRange([new Asc.Range(0,0,gc_nMaxCol0,gc_nMaxRow0)]);if(this.updateConditionalFormattingRange)this.updateConditionalFormattingRange.union2(range);else this.updateConditionalFormattingRange=range.clone()};Worksheet.prototype._updateConditionalFormatting=function(){if(!this.updateConditionalFormattingRange)return;var range=this.updateConditionalFormattingRange;this.updateConditionalFormattingRange=null;var t=this;var aRules=this.aConditionalFormattingRules.sort(function(v1,
v2){return v2.priority-v1.priority});var oGradient1,oGradient2,aWeights,oRule,multiplyRange,oRuleElement,bboxCf,formulaParent,parsed1,parsed2;var o,l,cell,ranges,values,value,tmp,dxf,compareFunction,nc,sum;this.sheetMergedStyles.clearConditionalStyle(range);var getCacheFunction=function(rule,setFunc){var cache={cache:{},get:function(row,col){var cacheVal;var cacheRow=this.cache[row];if(!cacheRow){cacheRow={};this.cache[row]=cacheRow}else cacheVal=cacheRow[col];if(undefined===cacheVal){cacheVal=this.set(row,
col);cacheRow[col]=cacheVal}return cacheVal},set:function(row,col){if(rule)return setFunc(row,col)?rule.dxf:null;else return setFunc(row,col)}};return function(row,col){return cache.get(row,col)}};for(var i=0;i<aRules.length;++i){oRule=aRules[i];ranges=oRule.ranges;if(this._isConditionalFormattingIntersect(range,ranges)){multiplyRange=new AscCommonExcel.MultiplyRange(ranges);if(AscCommonExcel.ECfType.colorScale===oRule.type){if(1!==oRule.aRuleElements.length)continue;oRuleElement=oRule.aRuleElements[0];
if(!oRuleElement||oRule.type!==oRuleElement.type)continue;values=this._getValuesForConditionalFormatting(ranges,true);l=oRuleElement.aColors.length;if(0<values.length&&2<=l){aWeights=[];oGradient1=new AscCommonExcel.CGradient(oRuleElement.aColors[0],oRuleElement.aColors[1]);aWeights.push(oRule.getMin(values,t),oRule.getMax(values,t));if(2<l){oGradient2=new AscCommonExcel.CGradient(oRuleElement.aColors[1],oRuleElement.aColors[2]);aWeights.push(oRule.getMid(values,t));aWeights.sort(AscCommon.fSortAscending);
oGradient1.init(aWeights[0],aWeights[1]);oGradient2.init(aWeights[1],aWeights[2])}else{oGradient2=null;aWeights.sort(AscCommon.fSortAscending);oGradient1.init(aWeights[0],aWeights[1])}compareFunction=function(oGradient1,oGradient2){return function(row,col){var val,color,gradient;t._getCellNoEmpty(row,col,function(cell){val=cell&&cell.getNumberValue()});dxf=null;if(null!==val){dxf=new AscCommonExcel.CellXfs;gradient=oGradient2?oGradient2:oGradient1;if(val>=gradient.max)color=gradient.getMaxColor();
else if(val<=oGradient1.min)color=oGradient1.getMinColor();else{gradient=oGradient2&&val>oGradient1.max?oGradient2:oGradient1;color=gradient.calculateColor(val)}dxf.fill=new AscCommonExcel.Fill;dxf.fill.fromColor(color);dxf=g_StyleCache.addXf(dxf,true)}return dxf}}(oGradient1,oGradient2)}}else if(AscCommonExcel.ECfType.dataBar===oRule.type)continue;else if(AscCommonExcel.ECfType.top10===oRule.type){if(oRule.rank>0&&oRule.dxf){nc=0;values=this._getValuesForConditionalFormatting(ranges,false);o=oRule.bottom?
Number.MAX_VALUE:-Number.MAX_VALUE;for(cell=0;cell<values.length;++cell){value=values[cell];if(CellValueType.Number===value.type&&!isNaN(tmp=parseFloat(value.v))){++nc;value.v=tmp}else value.v=o}values.sort(function(condition){return function(v1,v2){return condition*(v2.v-v1.v)}}(oRule.bottom?-1:1));nc=Math.max(1,oRule.percent?Math.floor(nc*oRule.rank/100):oRule.rank);var threshold=values.length>=nc?values[nc-1].v:o;compareFunction=function(rule,threshold){return function(row,col){var val;t._getCellNoEmpty(row,
col,function(cell){val=cell?cell.getNumberValue():null});return null!==val&&(rule.bottom?val<=threshold:val>=threshold)?rule.dxf:null}}(oRule,threshold)}}else if(AscCommonExcel.ECfType.aboveAverage===oRule.type){if(!oRule.dxf)continue;values=this._getValuesForConditionalFormatting(ranges,false);sum=0;nc=0;for(cell=0;cell<values.length;++cell){value=values[cell];if(CellValueType.Number===value.type&&!isNaN(tmp=parseFloat(value.v))){++nc;value.v=tmp;sum+=tmp}else value.v=null}tmp=sum/nc;compareFunction=
function(rule,average,stdDev){return function(row,col){var val;t._getCellNoEmpty(row,col,function(cell){val=cell?cell.getNumberValue():null});return null!==val&&rule.getAverage(val,average,stdDev)?rule.dxf:null}}(oRule,tmp,sum)}else{if(!oRule.dxf)continue;switch(oRule.type){case AscCommonExcel.ECfType.duplicateValues:case AscCommonExcel.ECfType.uniqueValues:o=getUniqueKeys(this._getValuesForConditionalFormatting(ranges,false));compareFunction=function(rule,obj,condition){return function(row,col){var val;
t._getCellNoEmpty(row,col,function(cell){val=cell?cell.getValueWithoutFormat():""});return(val.length>0?condition===obj[val]:false)?rule.dxf:null}}(oRule,o,oRule.type===AscCommonExcel.ECfType.duplicateValues);break;case AscCommonExcel.ECfType.containsText:case AscCommonExcel.ECfType.notContainsText:case AscCommonExcel.ECfType.beginsWith:case AscCommonExcel.ECfType.endsWith:var operator;switch(oRule.type){case AscCommonExcel.ECfType.containsText:operator=AscCommonExcel.ECfOperator.Operator_containsText;
break;case AscCommonExcel.ECfType.notContainsText:operator=AscCommonExcel.ECfOperator.Operator_notContains;break;case AscCommonExcel.ECfType.beginsWith:operator=AscCommonExcel.ECfOperator.Operator_beginsWith;break;case AscCommonExcel.ECfType.endsWith:operator=AscCommonExcel.ECfOperator.Operator_endsWith;break}formulaParent=new AscCommonExcel.CConditionalFormattingFormulaParent(this,oRule,true);oRuleElement=oRule.getFormulaCellIs();parsed1=oRuleElement&&oRuleElement.getFormula&&oRuleElement.getFormula(this,
formulaParent);if(parsed1&&parsed1.hasRelativeRefs()){bboxCf=oRule.getBBox();compareFunction=getCacheFunction(oRule,function(rule,operator,formulaParent,rowLT,colLT){return function(row,col){var offset=new AscCommon.CellBase(row-rowLT,col-colLT);var bboxCell=new Asc.Range(col,row,col,row);var v1=rule.getValueCellIs(t,formulaParent,bboxCell,offset,false);var res;t._getCellNoEmpty(row,col,function(cell){res=rule.cellIs(operator,cell,v1)?rule.dxf:null});return res}}(oRule,operator,new AscCommonExcel.CConditionalFormattingFormulaParent(this,
oRule,true),bboxCf?bboxCf.r1:0,bboxCf?bboxCf.c1:0))}else compareFunction=function(rule,operator,v1){return function(row,col){var res;t._getCellNoEmpty(row,col,function(cell){res=rule.cellIs(operator,cell,v1)?rule.dxf:null});return res}}(oRule,operator,oRule.getValueCellIs(this));break;case AscCommonExcel.ECfType.containsErrors:compareFunction=function(rule){return function(row,col){var val;t._getCellNoEmpty(row,col,function(cell){val=cell?CellValueType.Error===cell.getType():false});return val?rule.dxf:
null}}(oRule);break;case AscCommonExcel.ECfType.notContainsErrors:compareFunction=function(rule){return function(row,col){var val;t._getCellNoEmpty(row,col,function(cell){val=cell?CellValueType.Error!==cell.getType():true});return val?rule.dxf:null}}(oRule);break;case AscCommonExcel.ECfType.containsBlanks:compareFunction=function(rule){return function(row,col){var val;t._getCellNoEmpty(row,col,function(cell){if(cell)val=""===cell.getValueWithoutFormat().replace(/^ +| +$/g,"");else val=true});return val?
rule.dxf:null}}(oRule);break;case AscCommonExcel.ECfType.notContainsBlanks:compareFunction=function(rule){return function(row,col){var val;t._getCellNoEmpty(row,col,function(cell){if(cell)val=""!==cell.getValueWithoutFormat().replace(/^ +| +$/g,"");else val=false});return val?rule.dxf:null}}(oRule);break;case AscCommonExcel.ECfType.timePeriod:if(oRule.timePeriod)compareFunction=function(rule,period){return function(row,col){var val;t._getCellNoEmpty(row,col,function(cell){val=cell?cell.getValueWithoutFormat():
""});var n=parseFloat(val);return period.start<=n&&n<period.end?rule.dxf:null}}(oRule,oRule.getTimePeriod());else continue;break;case AscCommonExcel.ECfType.cellIs:formulaParent=new AscCommonExcel.CConditionalFormattingFormulaParent(this,oRule,true);oRuleElement=oRule.aRuleElements[0];parsed1=oRuleElement&&oRuleElement.getFormula&&oRuleElement.getFormula(this,formulaParent);oRuleElement=oRule.aRuleElements[1];parsed2=oRuleElement&&oRuleElement.getFormula&&oRuleElement.getFormula(this,formulaParent);
if(parsed1&&parsed1.hasRelativeRefs()||parsed2&&parsed2.hasRelativeRefs()){bboxCf=oRule.getBBox();compareFunction=getCacheFunction(oRule,function(rule,ruleElem1,ruleElem2,formulaParent,rowLT,colLT){return function(row,col){var offset=new AscCommon.CellBase(row-rowLT,col-colLT);var bboxCell=new Asc.Range(col,row,col,row);var v1=ruleElem1&&ruleElem1.getValue(t,formulaParent,bboxCell,offset,false);var v2=ruleElem2&&ruleElem2.getValue(t,formulaParent,bboxCell,offset,false);var res;t._getCellNoEmpty(row,
col,function(cell){res=rule.cellIs(rule.operator,cell,v1,v2)?rule.dxf:null});return res}}(oRule,oRule.aRuleElements[0],oRule.aRuleElements[1],new AscCommonExcel.CConditionalFormattingFormulaParent(this,oRule,true),bboxCf?bboxCf.r1:0,bboxCf?bboxCf.c1:0))}else compareFunction=function(rule,v1,v2){return function(row,col){var res;t._getCellNoEmpty(row,col,function(cell){res=rule.cellIs(rule.operator,cell,v1,v2)?rule.dxf:null});return res}}(oRule,oRule.aRuleElements[0]&&oRule.aRuleElements[0].getValue(this),
oRule.aRuleElements[1]&&oRule.aRuleElements[1].getValue(this));break;case AscCommonExcel.ECfType.expression:bboxCf=oRule.getBBox();compareFunction=getCacheFunction(oRule,function(rule,formulaCF,formulaParent,rowLT,colLT){return function(row,col){var offset=new AscCommon.CellBase(row-rowLT,col-colLT);var bboxCell=new Asc.Range(col,row,col,row);var res=formulaCF&&formulaCF.getValue(t,formulaParent,bboxCell,offset,true);if(res&&res.tocBool){res=res.tocBool();if(res&&res.toBool)return res.toBool()}return false}}(oRule,
oRule.aRuleElements[0],new AscCommonExcel.CConditionalFormattingFormulaParent(this,oRule,true),bboxCf?bboxCf.r1:0,bboxCf?bboxCf.c1:0));break;default:continue;break}}if(compareFunction)this.sheetMergedStyles.setConditionalStyle(multiplyRange,compareFunction)}}};Worksheet.prototype._forEachRow=function(fAction){this.getRange3(0,0,gc_nMaxRow0,0)._foreachRowNoEmpty(fAction)};Worksheet.prototype._forEachCol=function(fAction){this.getRange3(0,0,0,gc_nMaxCol0)._foreachColNoEmpty(fAction)};Worksheet.prototype._forEachColData=
function(fAction){for(var i=0;i<this.cellsByCol.length;++i){var sheetMemory=this.cellsByCol[i];if(sheetMemory)fAction(sheetMemory,i)}};Worksheet.prototype._forEachCell=function(fAction){this.getRange3(0,0,gc_nMaxRow0,gc_nMaxCol0)._foreachNoEmpty(fAction)};Worksheet.prototype.getId=function(){return this.Id};Worksheet.prototype.getIndex=function(){return this.index};Worksheet.prototype.getName=function(){return this.sName!==undefined&&this.sName.length>0?this.sName:""};Worksheet.prototype.setName=
function(name,bFromUndoRedo){if(name.length<=g_nSheetNameMaxLength){var lastName=this.sName;History.Create_NewPoint();var prepared=this.workbook.dependencyFormulas.prepareChangeSheet(this.getId(),{rename:{from:lastName,to:name}});this.sName=name;this.workbook.dependencyFormulas.changeSheet(prepared);History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_Rename,this.getId(),null,new UndoRedoData_FromTo(lastName,name));if(!bFromUndoRedo){var _lastName=parserHelp.getEscapeSheetName(lastName);
var _newName=parserHelp.getEscapeSheetName(this.sName);for(var key in this.workbook.aWorksheets){var wsModel=this.workbook.aWorksheets[key];if(wsModel)wsModel.oDrawingOjectsManager.updateChartReferencesWidthHistory(_lastName,_newName,true)}}this.workbook.dependencyFormulas.calcTree()}else console.log(new Error("The sheet name must be less than 31 characters."))};Worksheet.prototype.getTabColor=function(){return this.sheetPr&&this.sheetPr.TabColor?Asc.colorObjToAscColor(this.sheetPr.TabColor):null};
Worksheet.prototype.setTabColor=function(color){if(!this.sheetPr)this.sheetPr=new AscCommonExcel.asc_CSheetPr;History.Create_NewPoint();History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_SetTabColor,this.getId(),null,new UndoRedoData_FromTo(this.sheetPr.TabColor?this.sheetPr.TabColor.clone():null,color?color.clone():null));this.sheetPr.TabColor=color;if(!this.workbook.bUndoChanges&&!this.workbook.bRedoChanges)this.workbook.handlers.trigger("asc_onUpdateTabColor",this.getIndex())};
Worksheet.prototype.rebuildTabColor=function(){if(this.sheetPr&&this.sheetPr.TabColor)this.workbook.handlers.trigger("asc_onUpdateTabColor",this.getIndex())};Worksheet.prototype.getHidden=function(){return true===this.bHidden};Worksheet.prototype.setHidden=function(hidden){var bOldHidden=this.bHidden,wb=this.workbook,wsActive=wb.getActiveWs(),oVisibleWs=null;this.bHidden=hidden;if(true==this.bHidden&&this.getIndex()==wsActive.getIndex()){oVisibleWs=wb.findSheetNoHidden(this.getIndex());if(null!=oVisibleWs){var nNewIndex=
oVisibleWs.getIndex();wb.setActive(nNewIndex);if(!wb.bUndoChanges&&!wb.bRedoChanges)wb.handlers.trigger("undoRedoHideSheet",nNewIndex)}}if(bOldHidden!=hidden){History.Create_NewPoint();History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_Hide,this.getId(),null,new UndoRedoData_FromTo(bOldHidden,hidden));if(null!=oVisibleWs){History.SetSheetUndo(wsActive.getId());History.SetSheetRedo(oVisibleWs.getId())}}};Worksheet.prototype.getSheetView=function(){return this.sheetViews[0]};
Worksheet.prototype.getSheetViewSettings=function(){return this.sheetViews[0].clone()};Worksheet.prototype.setDisplayGridlines=function(value){var view=this.sheetViews[0];if(value!==view.showGridLines){History.Create_NewPoint();History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_SetDisplayGridlines,this.getId(),null,new UndoRedoData_FromTo(view.showGridLines,value));view.showGridLines=value;if(!this.workbook.bUndoChanges&&!this.workbook.bRedoChanges)this.workbook.handlers.trigger("asc_onUpdateSheetViewSettings")}};
Worksheet.prototype.setDisplayHeadings=function(value){var view=this.sheetViews[0];if(value!==view.showRowColHeaders){History.Create_NewPoint();History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_SetDisplayHeadings,this.getId(),null,new UndoRedoData_FromTo(view.showRowColHeaders,value));view.showRowColHeaders=value;if(!this.workbook.bUndoChanges&&!this.workbook.bRedoChanges)this.workbook.handlers.trigger("asc_onUpdateSheetViewSettings")}};Worksheet.prototype.getRowsCount=function(){var result=
this.nRowsCount;var pane=this.sheetViews.length&&this.sheetViews[0].pane;if(pane&&pane.topLeftFrozenCell)result=Math.max(result,pane.topLeftFrozenCell.getRow0());return result};Worksheet.prototype.removeRows=function(start,stop,bExcludeHiddenRows){var removeRowsArr=bExcludeHiddenRows?this._getNoHiddenRowsArr(start,stop):[{start:start,stop:stop}];for(var i=removeRowsArr.length-1;i>=0;i--){var oRange=this.getRange(new CellAddress(removeRowsArr[i].start,0,0),new CellAddress(removeRowsArr[i].stop,gc_nMaxCol0,
0));oRange.deleteCellsShiftUp()}};Worksheet.prototype._getNoHiddenRowsArr=function(start,stop){var res=[];var elem=null;for(var i=start;i<=stop;i++)if(this.getRowHidden(i)){if(elem){res.push(elem);elem=null}}else{if(!elem){elem={};elem.start=i;elem.stop=i}else elem.stop++;if(i===stop)res.push(elem)}return res};Worksheet.prototype._updateFormulasParents=function(r1,c1,r2,c2,bbox,offset,shiftedShared){var t=this;var cellWithFormula;var shiftedArrayFormula={};this.getRange3(r1,c1,r2,c2)._foreachNoEmpty(function(cell){var newNRow=
cell.nRow+offset.row;var newNCol=cell.nCol+offset.col;var bHor=0!==offset.col;var toDelete=offset.col<0||offset.row<0;if(cell.isFormula()){var processed=c_oSharedShiftType.NeedTransform;var parsed=cell.getFormulaParsed();var shared=parsed.getShared();var arrayFormula=parsed.getArrayFormulaRef();var formulaRefObj=null;if(shared){processed=shiftedShared[parsed.getListenerId()];var isPreProcessed=c_oSharedShiftType.PreProcessed===processed;if(!processed||isPreProcessed){if(!processed){var bboxShift=
AscCommonExcel.shiftGetBBox(bbox,bHor);if(bboxShift.containsRange(shared.ref)&&(!toDelete||!bbox.isIntersect(shared.ref)))processed=c_oSharedShiftType.Processed;else processed=c_oSharedShiftType.NeedTransform}else if(isPreProcessed)processed=c_oSharedShiftType.Processed;if(c_oSharedShiftType.Processed===processed){var newRef=shared.ref.clone();newRef.forShift(bbox,offset,t.workbook.bUndoChanges);parsed.setSharedRef(newRef,!isPreProcessed);t.workbook.dependencyFormulas.addToChangedRange2(t.getId(),
newRef)}shiftedShared[parsed.getListenerId()]=processed}}else if(arrayFormula)if(!shiftedArrayFormula[parsed.getListenerId()]&&parsed.checkFirstCellArray(cell)){shiftedArrayFormula[parsed.getListenerId()]=1;var newArrayRef=arrayFormula.clone();newArrayRef.setOffset(offset);parsed.setArrayFormulaRef(newArrayRef)}else processed=c_oSharedShiftType.Processed;if(c_oSharedShiftType.NeedTransform===processed){var isTransform=cell.transformSharedFormula();parsed=cell.getFormulaParsed();if(isTransform)parsed.buildDependencies();
cellWithFormula=parsed.getParent();cellWithFormula.nRow=newNRow;cellWithFormula.nCol=newNCol;t.workbook.dependencyFormulas.addToChangedCell(cellWithFormula)}}t.cellsByColRowsCount=Math.max(t.cellsByColRowsCount,newNRow+1);t.nRowsCount=Math.max(t.nRowsCount,t.cellsByColRowsCount);t.nColsCount=Math.max(t.nColsCount,newNCol+1)})};Worksheet.prototype._removeRows=function(start,stop){var t=this;this.workbook.dependencyFormulas.lockRecal();History.Create_NewPoint();var nDif=-(stop-start+1);var oActualRange=
new Asc.Range(0,start,gc_nMaxCol0,stop);var offset=new AscCommon.CellBase(nDif,0);var renameRes=this.renameDependencyNodes(offset,oActualRange);var redrawTablesArr=this.autoFilters.insertRows("delCell",oActualRange,c_oAscDeleteOptions.DeleteRows);this.updatePivotOffset(oActualRange,offset);var collapsedInfo=null,lastRowIndex;var oDefRowPr=new AscCommonExcel.UndoRedoData_RowProp;this.getRange3(start,0,stop,gc_nMaxCol0)._foreachRowNoEmpty(function(row){var oOldProps=row.getHeightProp();lastRowIndex=
row.index;if(false===oOldProps.isEqual(oDefRowPr))History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_RowProp,t.getId(),row._getUpdateRange(),new UndoRedoData_IndexSimpleProp(row.getIndex(),true,oOldProps,oDefRowPr));row.setStyle(null);if(!t.workbook.bRedoChanges){if(collapsedInfo!==null&&collapsedInfo<row.getOutlineLevel())collapsedInfo=null;if(row.getCollapsed()){collapsedInfo=row.getOutlineLevel();t.setCollapsedRow(false,null,row)}}},function(cell){t._removeCell(null,null,
cell)});if(collapsedInfo!==null&&lastRowIndex===stop)this._getRow(stop+1,function(row){t.setCollapsedRow(true,null,row)});this._updateFormulasParents(start,0,gc_nMaxRow0,gc_nMaxCol0,oActualRange,offset,renameRes.shiftedShared);this.rowsData.deleteRange(start,-nDif);this._forEachColData(function(sheetMemory){sheetMemory.deleteRange(start,-nDif)});this.workbook.dependencyFormulas.notifyChanged(renameRes.changed);History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_RemoveRows,
this.getId(),new Asc.Range(0,start,gc_nMaxCol0,gc_nMaxRow0),new UndoRedoData_FromToRowCol(true,start,stop));this.autoFilters.redrawStylesTables(redrawTablesArr);this.workbook.dependencyFormulas.unlockRecal();return true};Worksheet.prototype.insertRowsBefore=function(index,count){var oRange=this.getRange(new CellAddress(index,0,0),new CellAddress(index+count-1,gc_nMaxCol0,0));oRange.addCellsShiftBottom()};Worksheet.prototype._getBordersForInsert=function(bbox,bRow){var t=this;var borders={};var offsetRow=
bRow&&bbox.r1>0?-1:0;var offsetCol=!bRow&&bbox.c1>0?-1:0;var r2=bRow?bbox.r1:bbox.r2;var c2=!bRow?bbox.c1:bbox.c2;if(0!==offsetRow||0!==offsetCol)this.getRange3(bbox.r1,bbox.c1,r2,c2)._foreachNoEmpty(function(cell){if(cell.xfs&&cell.xfs.border)t._getCellNoEmpty(cell.nRow+offsetRow,cell.nCol+offsetCol,function(neighbor){if(neighbor&&neighbor.xfs&&neighbor.xfs.border){var newBorder=neighbor.xfs.border.clone();newBorder.intersect(cell.xfs.border,g_oDefaultFormat.BorderAbs,true);borders[bRow?cell.nCol:
cell.nRow]=newBorder}})});return borders};Worksheet.prototype._insertRowsBefore=function(index,count){var t=this;this.workbook.dependencyFormulas.lockRecal();var oActualRange=new Asc.Range(0,index,gc_nMaxCol0,index+count-1);History.Create_NewPoint();var offset=new AscCommon.CellBase(count,0);var renameRes=this.renameDependencyNodes(offset,oActualRange);var redrawTablesArr=this.autoFilters.insertRows("insCell",oActualRange,c_oAscInsertOptions.InsertColumns);this.updatePivotOffset(oActualRange,offset);
this._updateFormulasParents(index,0,gc_nMaxRow0,gc_nMaxCol0,oActualRange,offset,renameRes.shiftedShared);var borders;if(index>0&&!this.workbook.bUndoChanges)borders=this._getBordersForInsert(oActualRange,true);this.rowsData.insertRange(index,count);this.nRowsCount=Math.max(this.nRowsCount,this.rowsData.getSize());this._forEachColData(function(sheetMemory){sheetMemory.insertRange(index,count);t.cellsByColRowsCount=Math.max(t.cellsByColRowsCount,sheetMemory.getSize())});this.nRowsCount=Math.max(this.nRowsCount,
this.cellsByColRowsCount);if(index>0&&!this.workbook.bUndoChanges){this.rowsData.copyRangeByChunk(index-1,1,index,count);this.nRowsCount=Math.max(this.nRowsCount,this.rowsData.getSize());this._forEachColData(function(sheetMemory){sheetMemory.copyRangeByChunk(index-1,1,index,count);t.cellsByColRowsCount=Math.max(t.cellsByColRowsCount,sheetMemory.getSize())});this.nRowsCount=Math.max(this.nRowsCount,this.cellsByColRowsCount);this.getRange3(index,0,index+count-1,gc_nMaxCol0)._foreachRowNoEmpty(function(row){row.setHidden(false)},
function(cell){cell.clearDataKeepXf(borders[cell.nCol])})}this.workbook.dependencyFormulas.notifyChanged(renameRes.changed);History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_AddRows,this.getId(),new Asc.Range(0,index,gc_nMaxCol0,gc_nMaxRow0),new UndoRedoData_FromToRowCol(true,index,index+count-1));this.autoFilters.redrawStylesTables(redrawTablesArr);this.workbook.dependencyFormulas.unlockRecal();return true};Worksheet.prototype.insertRowsAfter=function(index,count){return this.insertRowsBefore(index+
1,count)};Worksheet.prototype.getColsCount=function(){var result=this.nColsCount;var pane=this.sheetViews.length&&this.sheetViews[0].pane;if(pane&&pane.topLeftFrozenCell)result=Math.max(result,pane.topLeftFrozenCell.getCol0());return result};Worksheet.prototype.removeCols=function(start,stop){var oRange=this.getRange(new CellAddress(0,start,0),new CellAddress(gc_nMaxRow0,stop,0));oRange.deleteCellsShiftLeft()};Worksheet.prototype._removeCols=function(start,stop){var t=this;this.workbook.dependencyFormulas.lockRecal();
History.Create_NewPoint();var nDif=-(stop-start+1),i,j,length;var oActualRange=new Asc.Range(start,0,stop,gc_nMaxRow0);var offset=new AscCommon.CellBase(0,nDif);var renameRes=this.renameDependencyNodes(offset,oActualRange);var redrawTablesArr=this.autoFilters.insertColumn(oActualRange,nDif);this.updatePivotOffset(oActualRange,offset);var collapsedInfo=null,lastRowIndex;var oDefColPr=new AscCommonExcel.UndoRedoData_ColProp;this.getRange3(0,start,gc_nMaxRow0,stop)._foreachColNoEmpty(function(col){var nIndex=
col.getIndex();var oOldProps=col.getWidthProp();if(false===oOldProps.isEqual(oDefColPr))History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_ColProp,t.getId(),new Asc.Range(nIndex,0,nIndex,gc_nMaxRow0),new UndoRedoData_IndexSimpleProp(nIndex,false,oOldProps,oDefColPr));col.setStyle(null);lastRowIndex=col.index;if(!t.workbook.bRedoChanges){if(collapsedInfo!==null&&collapsedInfo<col.getOutlineLevel())collapsedInfo=null;if(col.getCollapsed()){collapsedInfo=col.getOutlineLevel();
t.setCollapsedCol(false,null,col)}}},function(cell){t._removeCell(null,null,cell)});if(collapsedInfo!==null&&lastRowIndex===stop){var curCol=this._getCol(stop+1);if(curCol)t.setCollapsedCol(true,null,curCol)}this._updateFormulasParents(0,start,gc_nMaxRow0,gc_nMaxCol0,oActualRange,offset,renameRes.shiftedShared);this.cellsByCol.splice(start,stop-start+1);this.aCols.splice(start,stop-start+1);for(i=start,length=this.aCols.length;i<length;++i){var elem=this.aCols[i];if(null!=elem)elem.moveHor(nDif)}this.workbook.dependencyFormulas.notifyChanged(renameRes.changed);
History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_RemoveCols,this.getId(),new Asc.Range(start,0,gc_nMaxCol0,gc_nMaxRow0),new UndoRedoData_FromToRowCol(false,start,stop));this.autoFilters.redrawStylesTables(redrawTablesArr);this.workbook.dependencyFormulas.unlockRecal();return true};Worksheet.prototype.insertColsBefore=function(index,count){var oRange=this.getRange3(0,index,gc_nMaxRow0,index+count-1);oRange.addCellsShiftRight()};Worksheet.prototype._insertColsBefore=function(index,
count){this.workbook.dependencyFormulas.lockRecal();var oActualRange=new Asc.Range(index,0,index+count-1,gc_nMaxRow0);History.Create_NewPoint();var offset=new AscCommon.CellBase(0,count);var renameRes=this.renameDependencyNodes(offset,oActualRange);var redrawTablesArr=this.autoFilters.insertColumn(oActualRange,count);this.updatePivotOffset(oActualRange,offset);this._updateFormulasParents(0,index,gc_nMaxRow0,gc_nMaxCol0,oActualRange,offset,renameRes.shiftedShared);var borders;if(index>0&&!this.workbook.bUndoChanges)borders=
this._getBordersForInsert(oActualRange,false);this.cellsByCol.splice(gc_nMaxCol0-count+1,count);for(var i=this.cellsByCol.length-1;i>=index;--i){this.cellsByCol[i+count]=this.cellsByCol[i];this.cellsByCol[i]=undefined}this.nColsCount=Math.max(this.nColsCount,this.getColDataLength());this.aCols.splice(gc_nMaxCol0-count+1,count);for(var i=this.aCols.length-1;i>=index;--i){this.aCols[i+count]=this.aCols[i];this.aCols[i]=undefined;if(this.aCols[i+count])this.aCols[i+count].moveHor(count)}this.nColsCount=
Math.max(this.nColsCount,this.aCols.length);if(!this.workbook.bUndoChanges){var oPrevCol=null;if(index>0)oPrevCol=this.aCols[index-1];if(null==oPrevCol&&null!=this.oAllCol)oPrevCol=this.oAllCol;if(null!=oPrevCol){History.LocalChange=true;for(var i=index;i<index+count;++i){var oNewCol=oPrevCol.clone();oNewCol.setHidden(null);oNewCol.BestFit=null;oNewCol.index=i;this.aCols[i]=oNewCol}History.LocalChange=false}var prevCellsByCol=index>0?this.cellsByCol[index-1]:null;if(prevCellsByCol){for(var i=index;i<
index+count;++i)this.cellsByCol[i]=prevCellsByCol.clone();this.nColsCount=Math.max(this.nColsCount,this.getColDataLength());this.getRange3(0,index,gc_nMaxRow0,index+count-1)._foreachNoEmpty(function(cell){cell.clearDataKeepXf(borders[cell.nRow])})}}this.workbook.dependencyFormulas.notifyChanged(renameRes.changed);History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_AddCols,this.getId(),new Asc.Range(index,0,gc_nMaxCol0,gc_nMaxRow0),new UndoRedoData_FromToRowCol(false,index,
index+count-1));this.autoFilters.redrawStylesTables(redrawTablesArr);this.workbook.dependencyFormulas.unlockRecal();return true};Worksheet.prototype.insertColsAfter=function(index,count){return this.insertColsBefore(index+1,count)};Worksheet.prototype.getDefaultWidth=function(){return this.oSheetFormatPr.dDefaultColWidth};Worksheet.prototype.getDefaultFontName=function(){return this.workbook.getDefaultFont()};Worksheet.prototype.getDefaultFontSize=function(){return this.workbook.getDefaultSize()};
Worksheet.prototype.getBaseColWidth=function(){return this.oSheetFormatPr.nBaseColWidth||8};Worksheet.prototype.charCountToModelColWidth=function(count){return this.workbook.charCountToModelColWidth(count)};Worksheet.prototype.modelColWidthToColWidth=function(mcw){return this.workbook.modelColWidthToColWidth(mcw)};Worksheet.prototype.colWidthToCharCount=function(w){return this.workbook.colWidthToCharCount(w)};Worksheet.prototype.getColWidth=function(index){var col=this._getColNoEmptyWithAll(index);
if(null!=col&&null!=col.width)return col.width;var dResult=this.oSheetFormatPr.dDefaultColWidth;if(dResult===undefined||dResult===null||dResult==0)dResult=-1;return dResult};Worksheet.prototype.setColWidth=function(width,start,stop){width=this.charCountToModelColWidth(width);if(0==width)return this.setColHidden(true,start,stop);if(null==start)return;if(null==stop)stop=start;History.Create_NewPoint();var oSelection=History.GetSelection();if(null!=oSelection){oSelection=oSelection.clone();oSelection.assign(start,
0,stop,gc_nMaxRow0);History.SetSelection(oSelection);History.SetSelectionRedo(oSelection)}var bNotAddCollapsed=true==this.workbook.bUndoChanges||true==this.workbook.bRedoChanges||this.bExcludeCollapsed;var _summaryRight=this.sheetPr?this.sheetPr.SummaryRight:true;var oThis=this,prevCol;var fProcessCol=function(col){if(col.width!=width){if(_summaryRight&&!bNotAddCollapsed&&col.getCollapsed())oThis.setCollapsedCol(false,null,col);else if(!_summaryRight&&!bNotAddCollapsed&&prevCol&&prevCol.getCollapsed())oThis.setCollapsedCol(false,
null,prevCol);prevCol=col;var oOldProps=col.getWidthProp();col.width=width;col.CustomWidth=true;col.BestFit=null;col.setHidden(null);oThis.initColumn(col);var oNewProps=col.getWidthProp();if(false==oOldProps.isEqual(oNewProps))History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_ColProp,oThis.getId(),col._getUpdateRange(),new UndoRedoData_IndexSimpleProp(col.index,false,oOldProps,oNewProps))}};if(0==start&&gc_nMaxCol0==stop){var col=this.getAllCol();fProcessCol(col);for(var i in this.aCols){var col=
this.aCols[i];if(null!=col)fProcessCol(col)}}else{if(!_summaryRight)if(!bNotAddCollapsed&&start>0)prevCol=this._getCol(start-1);for(var i=start;i<=stop;i++){var col=this._getCol(i);fProcessCol(col)}if(_summaryRight&&!bNotAddCollapsed&&prevCol){col=this._getCol(stop+1);if(col.getCollapsed())this.setCollapsedCol(false,null,col)}}};Worksheet.prototype.getColHidden=function(index){var col=this._getColNoEmptyWithAll(index);return col?col.getHidden():false};Worksheet.prototype.setColHidden=function(bHidden,
start,stop){if(null==start)return;if(null==stop)stop=start;History.Create_NewPoint();var oThis=this,outlineLevel;var bNotAddCollapsed=true==this.workbook.bUndoChanges||true==this.workbook.bRedoChanges||this.bExcludeCollapsed;var _summaryRight=this.sheetPr?this.sheetPr.SummaryRight:true;var fProcessCol=function(col){if(col&&!bNotAddCollapsed&&outlineLevel!==undefined&&outlineLevel!==col.getOutlineLevel())if(!_summaryRight)oThis.setCollapsedCol(bHidden,col.index-1);else oThis.setCollapsedCol(bHidden,
null,col);outlineLevel=col?col.getOutlineLevel():null;if(col.getHidden()!=bHidden){var oOldProps=col.getWidthProp();if(bHidden){col.setHidden(bHidden);if(null==col.width||true!=col.CustomWidth)col.width=0;col.CustomWidth=true;col.BestFit=null}else{col.setHidden(null);if(0>=col.width)col.width=null}var oNewProps=col.getWidthProp();if(false==oOldProps.isEqual(oNewProps))History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_ColProp,oThis.getId(),col._getUpdateRange(),new UndoRedoData_IndexSimpleProp(col.index,
false,oOldProps,oNewProps))}};if(!bNotAddCollapsed&&!_summaryRight&&start>0){col=this._getCol(start-1);outlineLevel=col.getOutlineLevel()}if(0!=start&&gc_nMaxCol0==stop){var col=null;if(false==bHidden)col=this.oAllCol;else col=this.getAllCol();if(null!=col)fProcessCol(col);for(var i in this.aCols){var col=this.aCols[i];if(null!=col)fProcessCol(col)}}else for(var i=start;i<=stop;i++){var col=null;if(false==bHidden)col=this._getColNoEmpty(i);else col=this._getCol(i);if(null!=col)fProcessCol(col)}if(!bNotAddCollapsed&&
outlineLevel&&_summaryRight){col=this._getCol(stop+1);if(col&&outlineLevel!==col.getOutlineLevel())oThis.setCollapsedCol(bHidden,null,col)}};Worksheet.prototype.setCollapsedCol=function(bCollapse,colIndex,curCol){var oThis=this;var fProcessCol=function(col){var oOldProps=col.getCollapsed();col.setCollapsed(bCollapse);var oNewProps=col.getCollapsed();if(oOldProps!==oNewProps)History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_CollapsedCol,oThis.getId(),col._getUpdateRange(),
new UndoRedoData_IndexSimpleProp(col.index,true,oOldProps,oNewProps))};if(curCol)fProcessCol(curCol);else this.getRange3(0,colIndex,0,colIndex)._foreachCol(fProcessCol)};Worksheet.prototype.setSummaryRight=function(val){if(!this.sheetPr)this.sheetPr=new AscCommonExcel.asc_CSheetPr;History.Create_NewPoint();History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_SetSummaryRight,this.getId(),null,new UndoRedoData_FromTo(this.sheetPr.SummaryRight,val));this.sheetPr.SummaryRight=val};
Worksheet.prototype.setSummaryBelow=function(val){if(!this.sheetPr)this.sheetPr=new AscCommonExcel.asc_CSheetPr;History.Create_NewPoint();History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_SetSummaryBelow,this.getId(),null,new UndoRedoData_FromTo(this.sheetPr.SummaryBelow,val));this.sheetPr.SummaryBelow=val};Worksheet.prototype.setGroupCol=function(bDel,start,stop){var oThis=this;var fProcessCol=function(col){var oOldProps=col.getOutlineLevel();col.setOutlineLevel(null,bDel);
var oNewProps=col.getOutlineLevel();if(oOldProps!==oNewProps)History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_GroupCol,oThis.getId(),col._getUpdateRange(),new UndoRedoData_IndexSimpleProp(col.index,true,oOldProps,oNewProps))};this.getRange3(0,start,0,stop)._foreachCol(fProcessCol)};Worksheet.prototype.setOutlineCol=function(val,start,stop){var oThis=this;var fProcessCol=function(col){var oOldProps=col.getOutlineLevel();col.setOutlineLevel(val);var oNewProps=col.getOutlineLevel();
if(oOldProps!==oNewProps)History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_GroupCol,oThis.getId(),col._getUpdateRange(),new UndoRedoData_IndexSimpleProp(col.index,true,oOldProps,oNewProps))};this.getRange3(0,start,0,stop)._foreachCol(fProcessCol)};Worksheet.prototype.getColCustomWidth=function(index){var isBestFit;var column=this._getColNoEmptyWithAll(index);if(!column)isBestFit=true;else if(column.getHidden())isBestFit=false;else isBestFit=!!(column.BestFit||null===column.BestFit&&
null===column.CustomWidth);return!isBestFit};Worksheet.prototype.setColBestFit=function(bBestFit,width,start,stop){if(null==start)return;if(null==stop)stop=start;History.Create_NewPoint();var oThis=this;var fProcessCol=function(col){var oOldProps=col.getWidthProp();if(bBestFit){col.BestFit=bBestFit;col.setHidden(null)}else col.BestFit=null;col.width=width;oThis.initColumn(col);var oNewProps=col.getWidthProp();if(false==oOldProps.isEqual(oNewProps))History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_ColProp,
oThis.getId(),col._getUpdateRange(),new UndoRedoData_IndexSimpleProp(col.index,false,oOldProps,oNewProps))};if(0!=start&&gc_nMaxCol0==stop){var col=null;if(bBestFit&&oDefaultMetrics.ColWidthChars==width)col=this.oAllCol;else col=this.getAllCol();if(null!=col)fProcessCol(col);for(var i in this.aCols){var col=this.aCols[i];if(null!=col)fProcessCol(col)}}else for(var i=start;i<=stop;i++){var col=null;if(bBestFit&&oDefaultMetrics.ColWidthChars==width)col=this._getColNoEmpty(i);else col=this._getCol(i);
if(null!=col)fProcessCol(col)}};Worksheet.prototype.isDefaultHeightHidden=function(){return null!=this.oSheetFormatPr.oAllRow&&this.oSheetFormatPr.oAllRow.getHidden()};Worksheet.prototype.isDefaultWidthHidden=function(){return null!=this.oAllCol&&this.oAllCol.getHidden()};Worksheet.prototype.setDefaultHeight=function(h){if(this.oSheetFormatPr.oAllRow&&!this.oSheetFormatPr.oAllRow.getCustomHeight())this.oSheetFormatPr.oAllRow.h=h};Worksheet.prototype.getDefaultHeight=function(){var dRes=null;if(null!=
this.oSheetFormatPr.oAllRow&&this.oSheetFormatPr.oAllRow.getCustomHeight())dRes=this.oSheetFormatPr.oAllRow.h;return dRes};Worksheet.prototype.getRowHeight=function(index){var res;this._getRowNoEmptyWithAll(index,function(row){res=row?row.getHeight():-1});return res};Worksheet.prototype.setRowHeight=function(height,start,stop,isCustom){if(0==height)return this.setRowHidden(true,start,stop);if(null==start)return;if(null==stop)stop=start;History.Create_NewPoint();var oThis=this,i;var oSelection=History.GetSelection();
if(null!=oSelection){oSelection=oSelection.clone();oSelection.assign(0,start,gc_nMaxCol0,stop);History.SetSelection(oSelection);History.SetSelectionRedo(oSelection)}var prevRow;var bNotAddCollapsed=true==this.workbook.bUndoChanges||true==this.workbook.bRedoChanges||this.bExcludeCollapsed;var _summaryBelow=this.sheetPr?this.sheetPr.SummaryBelow:true;var fProcessRow=function(row){if(row){if(_summaryBelow&&!bNotAddCollapsed&&row.getCollapsed())oThis.setCollapsedRow(false,null,row);else if(!_summaryBelow&&
!bNotAddCollapsed&&prevRow&&prevRow.getCollapsed())oThis.setCollapsedRow(false,null,prevRow);prevRow=row;var oOldProps=row.getHeightProp();row.setHeight(height);if(isCustom)row.setCustomHeight(true);row.setCalcHeight(true);row.setHidden(false);var oNewProps=row.getHeightProp();if(false===oOldProps.isEqual(oNewProps))History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_RowProp,oThis.getId(),row._getUpdateRange(),new UndoRedoData_IndexSimpleProp(row.index,true,oOldProps,oNewProps))}};
if(0==start&&gc_nMaxRow0==stop){fProcessRow(this.getAllRow());this._forEachRow(fProcessRow)}else{if(!_summaryBelow)if(!bNotAddCollapsed&&start>0)this._getRow(start-1,function(row){prevRow=row});this.getRange3(start,0,stop,0)._foreachRow(fProcessRow);if(_summaryBelow)if(!bNotAddCollapsed&&prevRow)this._getRow(stop+1,function(row){if(row.getCollapsed())oThis.setCollapsedRow(false,null,row)})}if(this.needRecalFormulas(start,stop))this.workbook.dependencyFormulas.calcTree()};Worksheet.prototype.getRowHidden=
function(index){var res;this._getRowNoEmptyWithAll(index,function(row){res=row?row.getHidden():false});return res};Worksheet.prototype.setRowHidden=function(bHidden,start,stop){if(null==start)return;if(null==stop)stop=start;History.Create_NewPoint();var oThis=this,i;var startIndex=null,endIndex=null,updateRange,outlineLevel;var bNotAddCollapsed=true==this.workbook.bUndoChanges||true==this.workbook.bRedoChanges||this.bExcludeCollapsed;var _summaryBelow=this.sheetPr?this.sheetPr.SummaryBelow:true;var fProcessRow=
function(row){if(row&&!bNotAddCollapsed&&outlineLevel!==undefined&&outlineLevel!==row.getOutlineLevel())if(!_summaryBelow)oThis.setCollapsedRow(bHidden,row.index-1);else oThis.setCollapsedRow(bHidden,null,row);outlineLevel=row?row.getOutlineLevel():null;if(row&&bHidden!=row.getHidden()){row.setHidden(bHidden);if(row.index===endIndex+1&&startIndex!==null)endIndex++;else{if(startIndex!==null){updateRange=new Asc.Range(0,startIndex,gc_nMaxCol0,endIndex);History.Add(AscCommonExcel.g_oUndoRedoWorksheet,
AscCH.historyitem_Worksheet_RowHide,oThis.getId(),updateRange,new UndoRedoData_FromToRowCol(bHidden,startIndex,endIndex))}startIndex=row.index;endIndex=row.index}}};if(0==start&&gc_nMaxRow0==stop);else{if(!_summaryBelow&&start>0&&!bNotAddCollapsed)this._getRow(start-1,function(row){if(row)outlineLevel=row.getOutlineLevel()});for(i=start;i<=stop;++i)false==bHidden?this._getRowNoEmpty(i,fProcessRow):this._getRow(i,fProcessRow);if(_summaryBelow&&outlineLevel&&!bNotAddCollapsed)this._getRow(stop+1,function(row){if(row&&
outlineLevel!==row.getOutlineLevel())oThis.setCollapsedRow(bHidden,null,row)});if(startIndex!==null){updateRange=new Asc.Range(0,startIndex,gc_nMaxCol0,endIndex);History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_RowHide,oThis.getId(),updateRange,new UndoRedoData_FromToRowCol(bHidden,startIndex,endIndex))}}if(this.needRecalFormulas(start,stop))this.workbook.dependencyFormulas.calcTree()};Worksheet.prototype.setCollapsedRow=function(bCollapse,rowIndex,curRow){var oThis=this;
var fProcessRow=function(row,bSave){var oOldProps=row.getCollapsed();row.setCollapsed(bCollapse);var oNewProps=row.getCollapsed();if(oOldProps!==oNewProps)History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_CollapsedRow,oThis.getId(),row._getUpdateRange(),new UndoRedoData_IndexSimpleProp(row.index,true,oOldProps,oNewProps));if(bSave)row.saveContent(true)};if(curRow)fProcessRow(curRow,true);else this.getRange3(rowIndex,0,rowIndex,0)._foreachRow(fProcessRow)};Worksheet.prototype.setGroupRow=
function(bDel,start,stop){var oThis=this;var fProcessRow=function(row){var oOldProps=row.getOutlineLevel();row.setOutlineLevel(null,bDel);var oNewProps=row.getOutlineLevel();if(oOldProps!==oNewProps)History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_GroupRow,oThis.getId(),row._getUpdateRange(),new UndoRedoData_IndexSimpleProp(row.index,true,oOldProps,oNewProps))};this.getRange3(start,0,stop,0)._foreachRow(fProcessRow)};Worksheet.prototype.setOutlineRow=function(val,start,
stop){var oThis=this;var fProcessRow=function(row){var oOldProps=row.getOutlineLevel();row.setOutlineLevel(val);var oNewProps=row.getOutlineLevel();if(oOldProps!==oNewProps)History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_GroupRow,oThis.getId(),row._getUpdateRange(),new UndoRedoData_IndexSimpleProp(row.index,true,oOldProps,oNewProps))};this.getRange3(start,0,stop,0)._foreachRow(fProcessRow)};Worksheet.prototype.getRowCustomHeight=function(index){var isCustomHeight=false;
this._getRowNoEmptyWithAll(index,function(row){if(!row)isCustomHeight=false;else if(row.getHidden())isCustomHeight=true;else isCustomHeight=row.getCustomHeight()});return isCustomHeight};Worksheet.prototype.setRowBestFit=function(bBestFit,height,start,stop){if(null==start)return;if(null==stop)stop=start;History.Create_NewPoint();var oThis=this,i;var isDefaultProp=true==bBestFit&&oDefaultMetrics.RowHeight==height;var fProcessRow=function(row){if(row){var oOldProps=row.getHeightProp();row.setCustomHeight(!bBestFit);
row.setCalcHeight(true);row.setHeight(height);var oNewProps=row.getHeightProp();if(false==oOldProps.isEqual(oNewProps))History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_RowProp,oThis.getId(),row._getUpdateRange(),new UndoRedoData_IndexSimpleProp(row.index,true,oOldProps,oNewProps))}};if(0==start&&gc_nMaxRow0==stop){fProcessRow(isDefaultProp?this.oSheetFormatPr.oAllRow:this.getAllRow());this._forEachRow(fProcessRow)}else{var range=this.getRange3(start,0,stop,0);if(isDefaultProp)range._foreachRowNoEmpty(fProcessRow);
else range._foreachRow(fProcessRow)}this.workbook.dependencyFormulas.calcTree()};Worksheet.prototype.getCell=function(oCellAdd){return this.getRange(oCellAdd,oCellAdd)};Worksheet.prototype.getCell2=function(sCellAdd){if(sCellAdd.indexOf("$")>-1)sCellAdd=sCellAdd.replace(/\$/g,"");return this.getRange2(sCellAdd)};Worksheet.prototype.getCell3=function(r1,c1){return this.getRange3(r1,c1,r1,c1)};Worksheet.prototype.getRange=function(cellAdd1,cellAdd2){var nRow1=cellAdd1.getRow0();var nCol1=cellAdd1.getCol0();
var nRow2=cellAdd2.getRow0();var nCol2=cellAdd2.getCol0();return this.getRange3(nRow1,nCol1,nRow2,nCol2)};Worksheet.prototype.getRange2=function(sRange){var bbox=AscCommonExcel.g_oRangeCache.getAscRange(sRange);if(null!=bbox)return Range.prototype.createFromBBox(this,bbox);return null};Worksheet.prototype.getRange3=function(r1,c1,r2,c2){var nRowMin=r1;var nRowMax=r2;var nColMin=c1;var nColMax=c2;if(r1>r2){nRowMax=r1;nRowMin=r2}if(c1>c2){nColMax=c1;nColMin=c2}return new Range(this,nRowMin,nColMin,
nRowMax,nColMax)};Worksheet.prototype.getRange4=function(r,c){return new Range(this,r,c,r,c)};Worksheet.prototype.getRowIterator=function(r1,c1,c2,callback){var it=new RowIterator;it.init(this,r1,c1,c2);callback(it);it.release()};Worksheet.prototype._removeCell=function(nRow,nCol,cell){var t=this;var processCell=function(cell){if(null!=cell){var sheetId=t.getId();if(false==cell.isEmpty()){var oUndoRedoData_CellData=new AscCommonExcel.UndoRedoData_CellData(cell.getValueData(),null);if(null!=cell.xfs)oUndoRedoData_CellData.style=
cell.xfs.clone();cell.setFormulaInternal(null);History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_RemoveCell,sheetId,new Asc.Range(nCol,nRow,nCol,nRow),new UndoRedoData_CellSimpleData(nRow,nCol,oUndoRedoData_CellData,null))}t.workbook.dependencyFormulas.addToChangedCell(cell);cell.clearData();cell.saveContent(true)}};if(null!=cell){nRow=cell.nRow;nCol=cell.nCol;processCell(cell)}else this._getCellNoEmpty(nRow,nCol,processCell)};Worksheet.prototype._getCell=function(row,col,
fAction){var wb=this.workbook;var targetCell=null;for(var k=0;k<wb.loadCells.length;++k){var elem=wb.loadCells[k];if(elem.nRow==row&&elem.nCol==col&&this===elem.ws){targetCell=elem;break}}if(null===targetCell){var cell=new Cell(this);wb.loadCells.push(cell);if(!cell.loadContent(row,col))this._initCell(cell,row,col);fAction(cell);cell.saveContent(true);wb.loadCells.pop()}else fAction(targetCell)};Worksheet.prototype._initRow=function(row,index){var t=this;row.setChanged(true);if(null!=this.oSheetFormatPr.oAllRow){row.copyFrom(this.oSheetFormatPr.oAllRow);
row.setIndex(index)}this.nRowsCount=index>=this.nRowsCount?index+1:this.nRowsCount};Worksheet.prototype._initCell=function(cell,nRow,nCol){var t=this;cell.setChanged(true);this._getRowNoEmpty(nRow,function(row){var oCol=t._getColNoEmptyWithAll(nCol);var xfs=null;if(row&&null!=row.xfs)xfs=row.xfs.clone();else if(null!=oCol&&null!=oCol.xfs)xfs=oCol.xfs.clone();cell.setStyleInternal(xfs);t.cellsByColRowsCount=Math.max(t.cellsByColRowsCount,nRow+1);t.nRowsCount=Math.max(t.nRowsCount,t.cellsByColRowsCount);
if(nCol>=t.nColsCount)t.nColsCount=nCol+1});var sheetMemory=this.getColData(nCol);sheetMemory.checkSize(nRow)};Worksheet.prototype._getCellNoEmpty=function(row,col,fAction){var wb=this.workbook;var targetCell=null;for(var k=0;k<wb.loadCells.length;++k){var elem=wb.loadCells[k];if(elem.nRow==row&&elem.nCol==col&&this===elem.ws){targetCell=elem;break}}if(null===targetCell){var cell=new Cell(this);var res=cell.loadContent(row,col)?cell:null;if(res&&fAction)wb.loadCells.push(cell);fAction(res);cell.saveContent(true);
if(res)wb.loadCells.pop()}else fAction(targetCell)};Worksheet.prototype._getRowNoEmpty=function(nRow,fAction){var row=new AscCommonExcel.Row(this);if(row.loadContent(nRow)){fAction(row);row.saveContent(true)}else fAction(null)};Worksheet.prototype._getRowNoEmptyWithAll=function(nRow,fAction){var t=this;this._getRowNoEmpty(nRow,function(row){if(!row)row=t.oSheetFormatPr.oAllRow;fAction(row)})};Worksheet.prototype._getColNoEmpty=function(col){return this.aCols[col]||null};Worksheet.prototype._getColNoEmptyWithAll=
function(col){return this._getColNoEmpty(col)||this.oAllCol};Worksheet.prototype._getRow=function(index,fAction){var row=null;if(g_nAllRowIndex==index)row=this.getAllRow();else{row=new AscCommonExcel.Row(this);if(!row.loadContent(index))this._initRow(row,index)}fAction(row);row.saveContent(true)};Worksheet.prototype._getCol=function(index){var oCurCol;if(g_nAllColIndex==index)oCurCol=this.getAllCol();else{oCurCol=this.aCols[index];if(null==oCurCol){if(null!=this.oAllCol){oCurCol=this.oAllCol.clone();
oCurCol.index=index}else oCurCol=new AscCommonExcel.Col(this,index);this.aCols[index]=oCurCol;this.nColsCount=index>=this.nColsCount?index+1:this.nColsCount}}return oCurCol};Worksheet.prototype._prepareMoveRangeGetCleanRanges=function(oBBoxFrom,oBBoxTo,wsTo){var intersection=oBBoxFrom.intersectionSimple(oBBoxTo);var aRangesToCheck=[];if(null!=intersection&&this===wsTo){var oThis=this;var fAddToRangesToCheck=function(aRangesToCheck,r1,c1,r2,c2){if(r1<=r2&&c1<=c2)aRangesToCheck.push(oThis.getRange3(r1,
c1,r2,c2))};if(intersection.r1==oBBoxTo.r1&&intersection.c1==oBBoxTo.c1){fAddToRangesToCheck(aRangesToCheck,oBBoxTo.r1,intersection.c2+1,intersection.r2,oBBoxTo.c2);fAddToRangesToCheck(aRangesToCheck,intersection.r2+1,oBBoxTo.c1,oBBoxTo.r2,oBBoxTo.c2)}else if(intersection.r2==oBBoxTo.r2&&intersection.c1==oBBoxTo.c1){fAddToRangesToCheck(aRangesToCheck,oBBoxTo.r1,oBBoxTo.c1,intersection.r1-1,oBBoxTo.c2);fAddToRangesToCheck(aRangesToCheck,intersection.r1,intersection.c2+1,oBBoxTo.r2,oBBoxTo.c2)}else if(intersection.r1==
oBBoxTo.r1&&intersection.c2==oBBoxTo.c2){fAddToRangesToCheck(aRangesToCheck,oBBoxTo.r1,oBBoxTo.c1,intersection.r2,intersection.c1-1);fAddToRangesToCheck(aRangesToCheck,intersection.r2+1,oBBoxTo.c1,oBBoxTo.r2,oBBoxTo.c2)}else if(intersection.r2==oBBoxTo.r2&&intersection.c2==oBBoxTo.c2){fAddToRangesToCheck(aRangesToCheck,oBBoxTo.r1,oBBoxTo.c1,intersection.r1-1,oBBoxTo.c2);fAddToRangesToCheck(aRangesToCheck,intersection.r1,oBBoxTo.c1,oBBoxTo.r2,intersection.c1-1)}}else aRangesToCheck.push(wsTo.getRange3(oBBoxTo.r1,
oBBoxTo.c1,oBBoxTo.r2,oBBoxTo.c2));return aRangesToCheck};Worksheet.prototype._prepareMoveRange=function(oBBoxFrom,oBBoxTo,wsTo){var res=0;if(!wsTo)wsTo=this;if(oBBoxFrom.isEqual(oBBoxTo)&&this===wsTo)return res;var range=wsTo.getRange3(oBBoxTo.r1,oBBoxTo.c1,oBBoxTo.r2,oBBoxTo.c2);var aMerged=wsTo.mergeManager.get(range.getBBox0());if(aMerged.outer.length>0)return-2;var aRangesToCheck=this._prepareMoveRangeGetCleanRanges(oBBoxFrom,oBBoxTo,wsTo);for(var i=0,length=aRangesToCheck.length;i<length;i++){range=
aRangesToCheck[i];range._foreachNoEmpty(function(cell){if(!cell.isNullTextString()){res=-1;return res}});if(0!=res)return res}return res};Worksheet.prototype._moveMergedAndHyperlinksPrepare=function(oBBoxFrom,oBBoxTo,copyRange,wsTo,offset){var res={merged:[],hyperlinks:[]};if(!(false==this.workbook.bUndoChanges&&(false==this.workbook.bRedoChanges||this.workbook.bCollaborativeChanges)))return res;var i,elem,bbox,data,wsFrom=this;var intersection=oBBoxFrom.intersectionSimple(oBBoxTo);History.LocalChange=
true;var merged=wsFrom.mergeManager.get(oBBoxFrom).inner;var mergedToRemove;if(!copyRange)mergedToRemove=merged;else if(null!==intersection)mergedToRemove=wsFrom.mergeManager.get(intersection).all;if(mergedToRemove)for(i=0;i<mergedToRemove.length;i++)wsFrom.mergeManager.removeElement(mergedToRemove[i]);var hyperlinks=wsFrom.hyperlinkManager.get(oBBoxFrom).inner;if(!copyRange)for(i=0;i<hyperlinks.length;i++)wsFrom.hyperlinkManager.removeElement(hyperlinks[i]);History.LocalChange=false;res.merged=merged;
res.hyperlinks=hyperlinks;return res};Worksheet.prototype._moveMergedAndHyperlinks=function(prepared,oBBoxFrom,oBBoxTo,copyRange,wsTo,offset){var i,elem,bbox,data;var intersection=oBBoxFrom.intersectionSimple(oBBoxTo);History.LocalChange=true;for(i=0;i<prepared.merged.length;i++){elem=prepared.merged[i];bbox=copyRange?elem.bbox.clone():elem.bbox;bbox.setOffset(offset);wsTo.mergeManager.add(bbox,elem.data)}if(!copyRange||null===intersection)for(i=0;i<prepared.hyperlinks.length;i++){elem=prepared.hyperlinks[i];
if(copyRange){bbox=elem.bbox.clone();data=elem.data.clone()}else{bbox=elem.bbox;data=elem.data}bbox.setOffset(offset);wsTo.hyperlinkManager.add(bbox,data)}History.LocalChange=false};Worksheet.prototype._moveCleanRanges=function(oBBoxFrom,oBBoxTo,copyRange,wsTo){var cleanRanges=this._prepareMoveRangeGetCleanRanges(oBBoxFrom,oBBoxTo,wsTo);for(var i=0;i<cleanRanges.length;i++){var range=cleanRanges[i];range.cleanAll();if(!copyRange)this.workbook.dependencyFormulas.deleteNodes(wsTo.getId(),range.getBBox0())}};
Worksheet.prototype._moveFormulas=function(oBBoxFrom,oBBoxTo,copyRange,wsTo,offset){if(!copyRange)this.workbook.dependencyFormulas.move(this.Id,oBBoxFrom,offset,wsTo.getId());this.getRange3(oBBoxFrom.r1,oBBoxFrom.c1,oBBoxFrom.r2,oBBoxFrom.c2)._foreachNoEmpty(function(cell){if(cell.transformSharedFormula()){var parsed=cell.getFormulaParsed();parsed.buildDependencies()}})};Worksheet.prototype._moveCells=function(oBBoxFrom,oBBoxTo,copyRange,wsTo,offset){var oThis=this;var nRowsCountNew=0;var nColsCountNew=
0;var dependencyFormulas=oThis.workbook.dependencyFormulas;var moveToOtherSheet=this!==wsTo;var isClearFromArea=!copyRange||copyRange&&oThis.workbook.bUndoChanges;var moveCells=function(copyRange,from,to,r1From,r1To,count){var fromData=oThis.getColDataNoEmpty(from);var toData;if(fromData){toData=wsTo.getColData(to);toData.copyRange(fromData,r1From,r1To,count);if(isClearFromArea)if(from!==to||moveToOtherSheet)fromData.clear(r1From,r1From+count);else if(r1From<r1To)fromData.clear(r1From,Math.min(r1From+
count,r1To));else fromData.clear(Math.max(r1From,r1To+count),r1From+count)}else{toData=wsTo.getColDataNoEmpty(to);if(toData)toData.clear(r1To,r1To+count)}if(toData){nRowsCountNew=Math.max(nRowsCountNew,toData.getSize());nColsCountNew=Math.max(nColsCountNew,to+1)}};if(oBBoxFrom.c1<oBBoxTo.c1)for(var i=0;i<oBBoxFrom.c2-oBBoxFrom.c1+1;++i)moveCells(copyRange,oBBoxFrom.c2-i,oBBoxTo.c2-i,oBBoxFrom.r1,oBBoxTo.r1,oBBoxFrom.r2-oBBoxFrom.r1+1);else for(var i=0;i<oBBoxFrom.c2-oBBoxFrom.c1+1;++i)moveCells(copyRange,
oBBoxFrom.c1+i,oBBoxTo.c1+i,oBBoxFrom.r1,oBBoxTo.r1,oBBoxFrom.r2-oBBoxFrom.r1+1);History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_MoveRange,this.getId(),new Asc.Range(0,0,gc_nMaxCol0,gc_nMaxRow0),new UndoRedoData_FromTo(new UndoRedoData_BBox(oBBoxFrom),new UndoRedoData_BBox(oBBoxTo),copyRange,wsTo.getId()));if(moveToOtherSheet)History.AddToUpdatesRegions(oBBoxTo,wsTo.getId());var shiftedArrayFormula={};var oldNewArrayFormulaMap={};wsTo.cellsByColRowsCount=Math.max(wsTo.cellsByColRowsCount,
nRowsCountNew);wsTo.nRowsCount=Math.max(wsTo.nRowsCount,wsTo.cellsByColRowsCount);wsTo.nColsCount=Math.max(wsTo.nColsCount,nColsCountNew);wsTo.getRange3(oBBoxTo.r1,oBBoxTo.c1,oBBoxTo.r2,oBBoxTo.c2)._foreachNoEmpty(function(cell){var formula=cell.getFormulaParsed();if(formula){var cellWithFormula=formula.getParent();var arrayFormula=formula.getArrayFormulaRef();var newArrayRef,newFormula;var preMoveCell={nRow:cell.nRow-offset.row,nCol:cell.nCol-offset.col};var isFirstCellArray=formula.checkFirstCellArray(preMoveCell)&&
!shiftedArrayFormula[formula.getListenerId()];if(copyRange){History.TurnOff();if(!arrayFormula||arrayFormula&&isFirstCellArray){newFormula=oThis._moveCellsFormula(cell,formula,cellWithFormula,copyRange,oBBoxFrom,wsTo);cellWithFormula=newFormula.getParent();cellWithFormula=new CCellWithFormula(wsTo,cell.nRow,cell.nCol);newFormula=newFormula.clone(null,cellWithFormula,wsTo);newFormula.changeOffset(offset,false,true);newFormula.setFormulaString(newFormula.assemble(true));cell.setFormulaInternal(newFormula,
!isClearFromArea);if(isFirstCellArray){newArrayRef=arrayFormula.clone();newArrayRef.setOffset(offset);newFormula.setArrayFormulaRef(newArrayRef);shiftedArrayFormula[newFormula.getListenerId()]=1;oldNewArrayFormulaMap[formula.getListenerId()]=newFormula}}else if(arrayFormula&&oldNewArrayFormulaMap[formula.getListenerId()])cell.setFormulaInternal(oldNewArrayFormulaMap[formula.getListenerId()],!isClearFromArea);History.TurnOn()}else if(arrayFormula){if(isFirstCellArray){newFormula=oThis._moveCellsFormula(cell,
formula,cellWithFormula,copyRange,oBBoxFrom,wsTo);cellWithFormula=newFormula.getParent();shiftedArrayFormula[formula.getListenerId()]=1;newArrayRef=arrayFormula.clone();newArrayRef.setOffset(offset);newFormula.setArrayFormulaRef(newArrayRef);cellWithFormula.ws=wsTo;cellWithFormula.nRow=cell.nRow;cellWithFormula.nCol=cell.nCol}}else{newFormula=oThis._moveCellsFormula(cell,formula,cellWithFormula,copyRange,oBBoxFrom,wsTo);cellWithFormula=newFormula.getParent();cellWithFormula.ws=wsTo;cellWithFormula.nRow=
cell.nRow;cellWithFormula.nCol=cell.nCol}if(arrayFormula){if(isFirstCellArray){dependencyFormulas.addToBuildDependencyArray(formula);if(newFormula)dependencyFormulas.addToBuildDependencyArray(newFormula)}}else dependencyFormulas.addToBuildDependencyCell(cell)}})};Worksheet.prototype._moveCellsFormula=function(cell,formula,cellWithFormula,copyRange,oBBoxFrom,wsTo){if(this!==wsTo)if(copyRange||!this.workbook.bUndoChanges){cellWithFormula=new CCellWithFormula(wsTo,cell.nRow,cell.nCol);formula=formula.clone(null,
cellWithFormula,wsTo);if(!copyRange)formula.convertTo3DRefs(oBBoxFrom);formula.moveToSheet(this,wsTo);formula.setFormulaString(formula.assemble(true));cell.setFormulaParsed(formula)}else{formula.moveToSheet(this,wsTo);formula.setFormulaString(formula.assemble(true))}return formula};Worksheet.prototype._moveRange=function(oBBoxFrom,oBBoxTo,copyRange,wsTo){if(!wsTo)wsTo=this;if(oBBoxFrom.isEqual(oBBoxTo)&&this===wsTo)return;History.Create_NewPoint();History.StartTransaction();this.workbook.dependencyFormulas.lockRecal();
var offset=new AscCommon.CellBase(oBBoxTo.r1-oBBoxFrom.r1,oBBoxTo.c1-oBBoxFrom.c1);var prepared=this._moveMergedAndHyperlinksPrepare(oBBoxFrom,oBBoxTo,copyRange,wsTo,offset);this._moveCleanRanges(oBBoxFrom,oBBoxTo,copyRange,wsTo);this._moveFormulas(oBBoxFrom,oBBoxTo,copyRange,wsTo,offset);this._moveCells(oBBoxFrom,oBBoxTo,copyRange,wsTo,offset);this._moveMergedAndHyperlinks(prepared,oBBoxFrom,oBBoxTo,copyRange,wsTo,offset);if(true==this.workbook.bUndoChanges||true==this.workbook.bRedoChanges)wsTo.autoFilters.unmergeTablesAfterMove(oBBoxTo);
if(false==this.workbook.bUndoChanges&&false==this.workbook.bRedoChanges)this.autoFilters._moveAutoFilters(oBBoxTo,oBBoxFrom,null,copyRange,true,oBBoxFrom,wsTo);this.workbook.dependencyFormulas.unlockRecal();History.EndTransaction();return true};Worksheet.prototype._shiftCellsLeft=function(oBBox){var t=this;var nLeft=oBBox.c1;var nRight=oBBox.c2;var dif=nLeft-nRight-1;var oActualRange=new Asc.Range(nLeft,oBBox.r1,gc_nMaxCol0,oBBox.r2);var offset=new AscCommon.CellBase(0,dif);var renameRes=this.renameDependencyNodes(offset,
oBBox);var redrawTablesArr=this.autoFilters.insertColumn(oBBox,dif);this.getRange3(oBBox.r1,oBBox.c1,oBBox.r2,oBBox.c2)._foreachNoEmpty(function(cell){t._removeCell(null,null,cell)});this._updateFormulasParents(oActualRange.r1,oActualRange.c1,oActualRange.r2,oActualRange.c2,oBBox,offset,renameRes.shiftedShared);var cellsByColLength=this.getColDataLength();for(var i=nRight+1;i<cellsByColLength;++i){var sheetMemoryFrom=this.getColDataNoEmpty(i);if(sheetMemoryFrom){this.getColData(i+dif).copyRange(sheetMemoryFrom,
oBBox.r1,oBBox.r1,oBBox.r2-oBBox.r1+1);sheetMemoryFrom.clear(oBBox.r1,oBBox.r2+1)}}this.workbook.dependencyFormulas.notifyChanged(renameRes.changed);History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_ShiftCellsLeft,this.getId(),oActualRange,new UndoRedoData_BBox(oBBox));this.autoFilters.redrawStylesTables(redrawTablesArr)};Worksheet.prototype._shiftCellsUp=function(oBBox){var t=this;var nTop=oBBox.r1;var nBottom=oBBox.r2;var dif=nTop-nBottom-1;var oActualRange=new Asc.Range(oBBox.c1,
oBBox.r1,oBBox.c2,gc_nMaxRow0);var offset=new AscCommon.CellBase(dif,0);var renameRes=this.renameDependencyNodes(offset,oBBox);var redrawTablesArr=this.autoFilters.insertRows("delCell",oBBox,c_oAscDeleteOptions.DeleteCellsAndShiftTop);this.getRange3(oBBox.r1,oBBox.c1,oBBox.r2,oBBox.c2)._foreachNoEmpty(function(cell){t._removeCell(null,null,cell)});this._updateFormulasParents(oActualRange.r1,oActualRange.c1,oActualRange.r2,oActualRange.c2,oBBox,offset,renameRes.shiftedShared);for(var i=oBBox.c1;i<=
oBBox.c2;++i){var sheetMemory=this.getColDataNoEmpty(i);if(sheetMemory)sheetMemory.deleteRange(nTop,-dif)}this.workbook.dependencyFormulas.notifyChanged(renameRes.changed);History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_ShiftCellsTop,this.getId(),oActualRange,new UndoRedoData_BBox(oBBox));this.autoFilters.redrawStylesTables(redrawTablesArr)};Worksheet.prototype._shiftCellsRight=function(oBBox,displayNameFormatTable){var nLeft=oBBox.c1;var nRight=oBBox.c2;var dif=nRight-
nLeft+1;var oActualRange=new Asc.Range(oBBox.c1,oBBox.r1,gc_nMaxCol0,oBBox.r2);var offset=new AscCommon.CellBase(0,dif);var renameRes=this.renameDependencyNodes(offset,oBBox);var redrawTablesArr=this.autoFilters.insertColumn(oBBox,dif,displayNameFormatTable);this._updateFormulasParents(oActualRange.r1,oActualRange.c1,oActualRange.r2,oActualRange.c2,oBBox,offset,renameRes.shiftedShared);var borders;if(nLeft>0&&!this.workbook.bUndoChanges)borders=this._getBordersForInsert(oBBox,false);var cellsByColLength=
this.getColDataLength();for(var i=cellsByColLength-1;i>=nLeft;--i){var sheetMemoryFrom=this.getColDataNoEmpty(i);if(sheetMemoryFrom){if(i+dif<=gc_nMaxCol0)this.getColData(i+dif).copyRange(sheetMemoryFrom,oBBox.r1,oBBox.r1,oBBox.r2-oBBox.r1+1);sheetMemoryFrom.clear(oBBox.r1,oBBox.r2+1)}}this.nColsCount=Math.max(this.nColsCount,this.getColDataLength());if(nLeft>0&&!this.workbook.bUndoChanges){var prevSheetMemory=this.getColDataNoEmpty(nLeft-1);if(prevSheetMemory){for(var i=nLeft;i<=nRight;++i)this.getColData(i).copyRange(prevSheetMemory,
oBBox.r1,oBBox.r1,oBBox.r2-oBBox.r1+1);this.nColsCount=Math.max(this.nColsCount,this.getColDataLength());this.getRange3(oBBox.r1,oBBox.c1,oBBox.r2,oBBox.c2)._foreachNoEmpty(function(cell){cell.clearDataKeepXf(borders[cell.nRow])})}}this.workbook.dependencyFormulas.notifyChanged(renameRes.changed);History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_ShiftCellsRight,this.getId(),oActualRange,new UndoRedoData_BBox(oBBox));this.autoFilters.redrawStylesTables(redrawTablesArr)};Worksheet.prototype._shiftCellsBottom=
function(oBBox,displayNameFormatTable){var t=this;var nTop=oBBox.r1;var nBottom=oBBox.r2;var dif=nBottom-nTop+1;var oActualRange=new Asc.Range(oBBox.c1,oBBox.r1,oBBox.c2,gc_nMaxRow0);var offset=new AscCommon.CellBase(dif,0);var renameRes=this.renameDependencyNodes(offset,oBBox);var redrawTablesArr;if(!this.workbook.bUndoChanges&&undefined===displayNameFormatTable)redrawTablesArr=this.autoFilters.insertRows("insCell",oBBox,c_oAscInsertOptions.InsertCellsAndShiftDown,displayNameFormatTable);this._updateFormulasParents(oActualRange.r1,
oActualRange.c1,oActualRange.r2,oActualRange.c2,oBBox,offset,renameRes.shiftedShared);var borders;if(nTop>0&&!this.workbook.bUndoChanges)borders=this._getBordersForInsert(oBBox,true);for(var i=oBBox.c1;i<=oBBox.c2;++i){var sheetMemory=this.getColDataNoEmpty(i);if(sheetMemory){sheetMemory.insertRange(nTop,dif);t.cellsByColRowsCount=Math.max(t.cellsByColRowsCount,sheetMemory.getSize())}}this.nRowsCount=Math.max(this.nRowsCount,this.cellsByColRowsCount);if(nTop>0&&!this.workbook.bUndoChanges){for(var i=
oBBox.c1;i<=oBBox.c2;++i){var sheetMemory=this.getColDataNoEmpty(i);if(sheetMemory){sheetMemory.copyRangeByChunk(nTop-1,1,nTop,dif);t.cellsByColRowsCount=Math.max(t.cellsByColRowsCount,sheetMemory.getSize())}}this.nRowsCount=Math.max(this.nRowsCount,this.cellsByColRowsCount);this.getRange3(oBBox.r1,oBBox.c1,oBBox.r2,oBBox.c2)._foreachNoEmpty(function(cell){cell.clearDataKeepXf(borders[cell.nCol])})}this.workbook.dependencyFormulas.notifyChanged(renameRes.changed);History.Add(AscCommonExcel.g_oUndoRedoWorksheet,
AscCH.historyitem_Worksheet_ShiftCellsBottom,this.getId(),oActualRange,new UndoRedoData_BBox(oBBox));if(!this.workbook.bUndoChanges&&undefined!==displayNameFormatTable)redrawTablesArr=this.autoFilters.insertRows("insCell",oBBox,c_oAscInsertOptions.InsertCellsAndShiftDown,displayNameFormatTable);if(!this.workbook.bUndoChanges)this.autoFilters.redrawStylesTables(redrawTablesArr)};Worksheet.prototype._setIndex=function(ind){this.index=ind};Worksheet.prototype._BuildDependencies=function(cellRange){var ca;
for(var i in cellRange){if(null===cellRange[i]){cellRange[i]=i;continue}ca=g_oCellAddressUtils.getCellAddress(i);this._getCellNoEmpty(ca.getRow0(),ca.getCol0(),function(c){if(c)c._BuildDependencies(true)})}};Worksheet.prototype._setHandlersTablePart=function(){if(!this.TableParts)return;for(var i=0;i<this.TableParts.length;i++)this.TableParts[i].setHandlers(this.handlers)};Worksheet.prototype.getTableRangeForFormula=function(name,objectParam){var res=null;if(!this.TableParts||!name)return res;for(var i=
0;i<this.TableParts.length;i++)if(this.TableParts[i].DisplayName.toLowerCase()===name.toLowerCase()){res=this.TableParts[i].getTableRangeForFormula(objectParam);break}return res};Worksheet.prototype.getTableIndexColumnByName=function(tableName,columnName){var res=null;if(!this.TableParts||!tableName)return res;for(var i=0;i<this.TableParts.length;i++)if(this.TableParts[i].DisplayName.toLowerCase()===tableName.toLowerCase()){res=this.TableParts[i].getTableIndexColumnByName(columnName);break}return res};
Worksheet.prototype.getTableNameColumnByIndex=function(tableName,columnIndex){var res=null;if(!this.TableParts||!tableName)return res;for(var i=0;i<this.TableParts.length;i++)if(this.TableParts[i].DisplayName.toLowerCase()===tableName.toLowerCase()){res=this.TableParts[i].getTableNameColumnByIndex(columnIndex);break}return res};Worksheet.prototype.getTableByName=function(tableName){var res=null;if(!this.TableParts||!tableName)return res;for(var i=0;i<this.TableParts.length;i++)if(this.TableParts[i].DisplayName.toLowerCase()===
function(){return this.getWorksheet(this.nActive)};Workbook.prototype.setActive=function(index){if(index>=0&&index<this.aWorksheets.length){this.nActive=index;this.cleanFindResults();return true}return false};Workbook.prototype.setActiveById=function(sheetId){var ws=this.getWorksheetById(sheetId);if(!ws&&Array.isArray(this.aWorksheets))ws=this.aWorksheets[this.aWorksheets.length-1];return this.setActive(ws.getIndex())};Workbook.prototype.getSheetIdByIndex=function(index){var ws=this.getWorksheet(index);
return ws?ws.getId():null};Workbook.prototype.getWorksheet=function(index){if(index>=0&&index<this.aWorksheets.length)return this.aWorksheets[index];return null};Workbook.prototype.getWorksheetById=function(id){return this.aWorksheetsById[id]};Workbook.prototype.getWorksheetByName=function(name){for(var i=0;i<this.aWorksheets.length;i++)if(this.aWorksheets[i].getName()==name)return this.aWorksheets[i];return null};Workbook.prototype.getWorksheetIndexByName=function(name){for(var i=0;i<this.aWorksheets.length;i++)if(this.aWorksheets[i].getName()==
name)return i;return null};Workbook.prototype.getWorksheetCount=function(){return this.aWorksheets.length};Workbook.prototype.createWorksheet=function(indexBefore,sName,sId){this.dependencyFormulas.lockRecal();History.Create_NewPoint();History.TurnOff();var wsActive=this.getActiveWs();var oNewWorksheet=new Worksheet(this,this.aWorksheets.length,sId);if(this.checkValidSheetName(sName))oNewWorksheet.sName=sName;oNewWorksheet.initPostOpen(this.wsHandlers);if(null!=indexBefore&&indexBefore>=0&&indexBefore<
this.aWorksheets.length)this.aWorksheets.splice(indexBefore,0,oNewWorksheet);else{indexBefore=this.aWorksheets.length;this.aWorksheets.push(oNewWorksheet)}this.aWorksheetsById[oNewWorksheet.getId()]=oNewWorksheet;this._updateWorksheetIndexes(wsActive);History.TurnOn();this._insertWorksheetFormula(oNewWorksheet.index);History.Add(AscCommonExcel.g_oUndoRedoWorkbook,AscCH.historyitem_Workbook_SheetAdd,null,null,new UndoRedoData_SheetAdd(indexBefore,oNewWorksheet.getName(),null,oNewWorksheet.getId()));
History.SetSheetUndo(wsActive.getId());History.SetSheetRedo(oNewWorksheet.getId());this.dependencyFormulas.unlockRecal();return oNewWorksheet.index};Workbook.prototype.copyWorksheet=function(index,insertBefore,sName,sId,bFromRedo,tableNames){if(index>=0&&index<this.aWorksheets.length){this.dependencyFormulas.buildDependency();History.TurnOff();var wsActive=this.getActiveWs();var wsFrom=this.aWorksheets[index];var newSheet=new Worksheet(this,-1,sId);if(null!=insertBefore&&insertBefore>=0&&insertBefore<
this.aWorksheets.length)this.aWorksheets.splice(insertBefore,0,newSheet);else this.aWorksheets.push(newSheet);this.aWorksheetsById[newSheet.getId()]=newSheet;this._updateWorksheetIndexes(wsActive);var renameParams=newSheet.copyFrom(wsFrom,sName,tableNames);newSheet.initPostOpen(this.wsHandlers);History.TurnOn();this.dependencyFormulas.copyDefNameByWorksheet(wsFrom,newSheet,renameParams);this._insertWorksheetFormula(insertBefore);if(!tableNames)tableNames=newSheet.getTableNames();History.Add(AscCommonExcel.g_oUndoRedoWorkbook,
AscCH.historyitem_Workbook_SheetAdd,null,null,new UndoRedoData_SheetAdd(insertBefore,newSheet.getName(),wsFrom.getId(),newSheet.getId(),tableNames));History.SetSheetUndo(wsActive.getId());History.SetSheetRedo(newSheet.getId());if(!(bFromRedo===true))wsFrom.copyObjects(newSheet,wsFrom);this.sortDependency()}};Workbook.prototype.insertWorksheet=function(index,sheet){var wsActive=this.getActiveWs();if(null!=index&&index>=0&&index<this.aWorksheets.length)this.aWorksheets.splice(index,0,sheet);else this.aWorksheets.push(sheet);
this.aWorksheetsById[sheet.getId()]=sheet;this._updateWorksheetIndexes(wsActive);this._insertWorksheetFormula(index);this._insertTablePartsName(sheet);sheet._BuildDependencies(sheet.getCwf());this.sortDependency()};Workbook.prototype._insertTablePartsName=function(sheet){if(sheet&&sheet.TableParts&&sheet.TableParts.length)for(var i=0;i<sheet.TableParts.length;i++){var tablePart=sheet.TableParts[i];this.dependencyFormulas.addTableName(sheet,tablePart);tablePart.buildDependencies()}};Workbook.prototype._insertWorksheetFormula=
function(index){if(index>0&&index<this.aWorksheets.length){var oWsBefore=this.aWorksheets[index-1];this.dependencyFormulas.changeSheet(this.dependencyFormulas.prepareChangeSheet(oWsBefore.getId(),{insert:index}))}};Workbook.prototype.replaceWorksheet=function(indexFrom,indexTo){if(indexFrom>=0&&indexFrom<this.aWorksheets.length&&indexTo>=0&&indexTo<this.aWorksheets.length){var wsActive=this.getActiveWs();var oWsFrom=this.aWorksheets[indexFrom];var tempW={wF:oWsFrom,wFI:indexFrom,wTI:indexTo};if(tempW.wFI<
tempW.wTI)tempW.wTI++;this.dependencyFormulas.lockRecal();var prepared=this.dependencyFormulas.prepareChangeSheet(oWsFrom.getId(),{replace:tempW},null);var movedSheet=this.aWorksheets.splice(indexFrom,1);this.aWorksheets.splice(indexTo,0,movedSheet[0]);this._updateWorksheetIndexes(wsActive);this.dependencyFormulas.changeSheet(prepared);this._insertWorksheetFormula(indexTo);History.Add(AscCommonExcel.g_oUndoRedoWorkbook,AscCH.historyitem_Workbook_SheetMove,null,null,new UndoRedoData_FromTo(indexFrom,
indexTo));this.dependencyFormulas.unlockRecal()}};Workbook.prototype.findSheetNoHidden=function(nIndex){var i,ws,oRes=null,bFound=false,countWorksheets=this.getWorksheetCount();for(i=nIndex;i<countWorksheets;++i){ws=this.getWorksheet(i);if(false===ws.getHidden()){oRes=ws;bFound=true;break}}if(!bFound)for(i=nIndex-1;i>=0;--i){ws=this.getWorksheet(i);if(false===ws.getHidden()){oRes=ws;break}}return oRes};Workbook.prototype.removeWorksheet=function(nIndex,outputParams){var bEmpty=true;for(var i=0,length=
this.aWorksheets.length;i<length;++i){var worksheet=this.aWorksheets[i];if(false==worksheet.getHidden()&&i!=nIndex){bEmpty=false;break}}if(bEmpty)return-1;var removedSheet=this.getWorksheet(nIndex);if(removedSheet){var removedSheetId=removedSheet.getId();this.dependencyFormulas.lockRecal();var prepared=this.dependencyFormulas.prepareRemoveSheet(removedSheetId,removedSheet.getTableNames());var wsActive=this.getActiveWs();var oVisibleWs=null;this.aWorksheets.splice(nIndex,1);delete this.aWorksheetsById[removedSheetId];
if(nIndex==this.getActive()){oVisibleWs=this.findSheetNoHidden(nIndex);if(null!=oVisibleWs)wsActive=oVisibleWs}History.Add(AscCommonExcel.g_oUndoRedoWorkbook,AscCH.historyitem_Workbook_SheetRemove,null,null,new AscCommonExcel.UndoRedoData_SheetRemove(nIndex,removedSheetId,removedSheet));if(null!=oVisibleWs){History.SetSheetUndo(removedSheetId);History.SetSheetRedo(wsActive.getId())}if(null!=outputParams)outputParams.sheet=removedSheet;this._updateWorksheetIndexes(wsActive);this.dependencyFormulas.removeSheet(prepared);
this.dependencyFormulas.unlockRecal();return wsActive.getIndex()}return-1};Workbook.prototype._updateWorksheetIndexes=function(wsActive){this.forEach(function(ws,index){ws._setIndex(index)});if(null!=wsActive)this.setActive(wsActive.getIndex())};Workbook.prototype.checkUniqueSheetName=function(name){var workbookSheetCount=this.getWorksheetCount();for(var i=0;i<workbookSheetCount;i++)if(this.getWorksheet(i).getName()==name)return i;return-1};Workbook.prototype.checkValidSheetName=function(name){return name&&
name.length<g_nSheetNameMaxLength};Workbook.prototype.getUniqueSheetNameFrom=function(name,bCopy){var nIndex=1;var sNewName="";var fGetPostfix=null;if(bCopy){var result=/^(.*)\((\d)\)$/.exec(name);if(result){fGetPostfix=function(nIndex){return"("+nIndex+")"};name=result[1]}else{fGetPostfix=function(nIndex){return" ("+nIndex+")"};name=name}}else fGetPostfix=function(nIndex){return nIndex.toString()};var workbookSheetCount=this.getWorksheetCount();while(nIndex<1E4){var sPosfix=fGetPostfix(nIndex);sNewName=
name+sPosfix;if(sNewName.length>g_nSheetNameMaxLength){name=name.substring(0,g_nSheetNameMaxLength-sPosfix.length);sNewName=name+sPosfix}var bUniqueName=true;for(var i=0;i<workbookSheetCount;i++)if(this.getWorksheet(i).getName()==sNewName){bUniqueName=false;break}if(bUniqueName)break;nIndex++}return sNewName};Workbook.prototype._generateFontMap=function(){var oFontMap={"Arial":1};var i;oFontMap[g_oDefaultFormat.Font.getName()]=1;if(null!=this.theme)AscFormat.checkThemeFonts(oFontMap,this.theme.themeElements.fontScheme);
for(i=1;i<=g_StyleCache.getXfCount();++i){var xf=g_StyleCache.getXf(i);if(xf.font)oFontMap[xf.font.getName()]=1}this.sharedStrings.generateFontMap(oFontMap);this.forEach(function(ws){ws.generateFontMap(oFontMap)});this.CellStyles.generateFontMap(oFontMap);return oFontMap};Workbook.prototype.generateFontMap=function(){var oFontMap=this._generateFontMap();var aRes=[];for(var i in oFontMap)aRes.push(i);return aRes};Workbook.prototype.generateFontMap2=function(){var oFontMap=this._generateFontMap();var aRes=
[];for(var i in oFontMap)aRes.push(new AscFonts.CFont(i,0,"",0));AscFonts.FontPickerByCharacter.extendFonts(aRes);return aRes};Workbook.prototype.getAllImageUrls=function(){var aImageUrls=[];this.forEach(function(ws){ws.getAllImageUrls(aImageUrls)});return aImageUrls};Workbook.prototype.reassignImageUrls=function(oImages){this.forEach(function(ws){ws.reassignImageUrls(oImages)})};Workbook.prototype.recalcWB=function(rebuild,opt_sheetId){var formulas;if(rebuild){formulas=this.getAllFormulas();for(var i=
0;i<formulas.length;++i){var formula=formulas[i];formula.removeDependencies();formula.setFormula(formula.getFormula());formula.parse();formula.buildDependencies()}}else if(opt_sheetId){formulas=[];var ws=this.getWorksheetById(opt_sheetId);ws.getAllFormulas(formulas)}else formulas=this.getAllFormulas();this.dependencyFormulas.notifyChanged(formulas);this.dependencyFormulas.calcTree()};Workbook.prototype.checkDefName=function(checkName,scope){return this.dependencyFormulas.checkDefName(checkName,scope)};
Workbook.prototype.getDefinedNamesWB=function(defNameListId,bLocale){return this.dependencyFormulas.getDefinedNamesWB(defNameListId,bLocale)};Workbook.prototype.getDefinedNamesWS=function(sheetId){return this.dependencyFormulas.getDefinedNamesWS(sheetId)};Workbook.prototype.addDefName=function(name,ref,sheetId,hidden,isTable){return this.dependencyFormulas.addDefName(name,ref,sheetId,hidden,isTable)};Workbook.prototype.getDefinesNames=function(name,sheetId){return this.dependencyFormulas.getDefNameByName(name,
sheetId)};Workbook.prototype.getDefinedName=function(name){var sheetId=this.getSheetIdByIndex(name.LocalSheetId);return this.dependencyFormulas.getDefNameByName(name.Name,sheetId)};Workbook.prototype.delDefinesNames=function(defName){this.delDefinesNamesUndoRedo(this.getUndoDefName(defName))};Workbook.prototype.delDefinesNamesUndoRedo=function(defName){this.dependencyFormulas.removeDefName(defName.sheetId,defName.name);this.dependencyFormulas.calcTree()};Workbook.prototype.editDefinesNames=function(oldName,
newName){return this.editDefinesNamesUndoRedo(this.getUndoDefName(oldName),this.getUndoDefName(newName))};Workbook.prototype.editDefinesNamesUndoRedo=function(oldName,newName){var res=this.dependencyFormulas.editDefinesNames(oldName,newName);this.dependencyFormulas.calcTree();return res};Workbook.prototype.findDefinesNames=function(ref,sheetId,bLocale){return this.dependencyFormulas.getDefNameByRef(ref,sheetId,bLocale)};Workbook.prototype.unlockDefName=function(){this.dependencyFormulas.unlockDefName()};
Workbook.prototype.unlockCurrentDefName=function(name,sheetId){this.dependencyFormulas.unlockCurrentDefName(name,sheetId)};Workbook.prototype.checkDefNameLock=function(){return this.dependencyFormulas.checkDefNameLock()};Workbook.prototype._SerializeHistoryBase64=function(oMemory,item,aPointChangesBase64){if(!item.LocalChange){var nPosStart=oMemory.GetCurPosition();item.Serialize(oMemory,this.oApi.collaborativeEditing);var nPosEnd=oMemory.GetCurPosition();var nLen=nPosEnd-nPosStart;if(nLen>0)aPointChangesBase64.push(nLen+
";"+oMemory.GetBase64Memory2(nPosStart,nLen))}};Workbook.prototype.SerializeHistory=function(){var aRes=[];var t,j,length2;AscCommon.CollaborativeEditing.Refresh_DCChanges();var aActions=this.aCollaborativeActions.concat(History.GetSerializeArray());if(aActions.length>0){var oMemory=new AscCommon.CMemory;for(var i=0,length=aActions.length;i<length;++i){var aPointChanges=aActions[i];for(j=0,length2=aPointChanges.length;j<length2;++j){var item=aPointChanges[j];this._SerializeHistoryBase64(oMemory,item,
aRes)}}this.aCollaborativeActions=[];this.snapshot=this._getSnapshot()}return aRes};Workbook.prototype._getSnapshot=function(){var wb=new Workbook(new AscCommonExcel.asc_CHandlersList,this.oApi);wb.dependencyFormulas=this.dependencyFormulas.getSnapshot(wb);this.forEach(function(ws){ws=ws.getSnapshot(wb);wb.aWorksheets.push(ws);wb.aWorksheetsById[ws.getId()]=ws});wb.init({},true,false);return wb};Workbook.prototype.getAllFormulas=function(){var res=[];this.dependencyFormulas.getAllFormulas(res);this.forEach(function(ws){ws.getAllFormulas(res)});
return res};Workbook.prototype._forwardTransformation=function(wbSnapshot,changesMine,changesTheir){History.TurnOff();var res1=this._forwardTransformationGetTransform(wbSnapshot,changesTheir,changesMine);var res2=this._forwardTransformationGetTransform(wbSnapshot,changesMine,changesTheir);var i,elem,elemWrap;for(i=0;i<res1.modify.length;++i){elemWrap=res1.modify[i];elem=elemWrap.elem;elem.oClass.forwardTransformationSet(elem.nActionType,elem.oData,elem.nSheetId,elemWrap)}for(i=0;i<res2.modify.length;++i){elemWrap=
res2.modify[i];elem=elemWrap.elem;elem.oClass.forwardTransformationSet(elem.nActionType,elem.oData,elem.nSheetId,elemWrap)}for(var oldName in res1.renameSheet){var ws=this.getWorksheetByName(oldName);if(ws)ws.setName(res1.renameSheet[oldName])}History.TurnOn()};Workbook.prototype._forwardTransformationGetTransform=function(wbSnapshot,changesMaster,changesModify){var res={modify:[],renameSheet:{}};var changesMasterSelected=[];var i,elem;if(changesModify.length>0)for(i=0;i<changesMaster.length;++i){elem=
changesMaster[i];if(elem.oClass&&elem.oClass.forwardTransformationIsAffect&&elem.oClass.forwardTransformationIsAffect(elem.nActionType))changesMasterSelected.push(elem)}if(changesMasterSelected.length>0&&changesModify.length>0){var wbSnapshotCur=wbSnapshot._getSnapshot();var formulas=[];for(i=0;i<changesModify.length;++i){elem=changesModify[i];var renameRes=null;if(elem.oClass&&elem.oClass.forwardTransformationGet){var getRes=elem.oClass.forwardTransformationGet(elem.nActionType,elem.oData,elem.nSheetId);
if(getRes&&getRes.formula)formulas.push(new ForwardTransformationFormula(elem,getRes.formula,null));if(getRes&&getRes.name)renameRes=this._forwardTransformationRenameStart(wbSnapshotCur._getSnapshot(),changesMasterSelected,getRes)}if(elem.oClass&&elem.oClass.forwardTransformationIsAffect&&elem.oClass.forwardTransformationIsAffect(elem.nActionType)){if(formulas.length>0){this._forwardTransformationFormula(wbSnapshotCur._getSnapshot(),formulas,changesMasterSelected,res);formulas=[]}elem.oClass.Redo(elem.nActionType,
elem.oData,elem.nSheetId,wbSnapshotCur)}if(renameRes)this._forwardTransformationRenameEnd(renameRes,res.renameSheet,getRes,elem)}this._forwardTransformationFormula(wbSnapshotCur,formulas,changesMasterSelected,res)}return res};Workbook.prototype._forwardTransformationRenameStart=function(wbSnapshot,changes,getRes){var res={newName:null};for(var i=0;i<changes.length;++i){var elem=changes[i];elem.oClass.Redo(elem.nActionType,elem.oData,elem.nSheetId,wbSnapshot)}if(-1!=wbSnapshot.checkUniqueSheetName(getRes.name))res.newName=
wbSnapshot.getUniqueSheetNameFrom(getRes.name,true);return res};Workbook.prototype._forwardTransformationRenameEnd=function(renameRes,renameSheet,getRes,elemCur){var isChange=false;if(getRes.from){var renameCur=renameSheet[getRes.from];if(renameCur){delete renameSheet[getRes.from];getRes.from=renameCur;isChange=true}}if(renameRes&&renameRes.newName){renameSheet[getRes.name]=renameRes.newName;getRes.name=renameRes.newName;isChange=true}if(isChange&&elemCur.oClass.forwardTransformationSet)elemCur.oClass.forwardTransformationSet(elemCur.nActionType,
elemCur.oData,elemCur.nSheetId,getRes)};Workbook.prototype._forwardTransformationFormula=function(wbSnapshot,formulas,changes,res){if(formulas.length>0){var i,elem,ftFormula,ws;for(i=0;i<formulas.length;++i){ftFormula=formulas[i];ws=wbSnapshot.getWorksheetById(ftFormula.elem.nSheetId);if(ws){ftFormula.parsed=new parserFormula(ftFormula.formula,ftFormula,ws);ftFormula.parsed.parse();ftFormula.parsed.buildDependencies()}}for(var oldName in res.renameSheet){ws=wbSnapshot.getWorksheetByName(oldName);
if(ws)ws.setName(res.renameSheet[oldName])}for(i=0;i<changes.length;++i){elem=changes[i];elem.oClass.Redo(elem.nActionType,elem.oData,elem.nSheetId,wbSnapshot)}for(i=0;i<formulas.length;++i){ftFormula=formulas[i];if(ftFormula.parsed){ftFormula.parsed.removeDependencies();res.modify.push(ftFormula)}}}};Workbook.prototype.DeserializeHistory=function(aChanges,fCallback){var oThis=this;this.aCollaborativeActions=this.aCollaborativeActions.concat(History.GetSerializeArray());if(aChanges.length>0){this.bCollaborativeChanges=
true;var dstLen=0;var aIndexes=[],i,length=aChanges.length,sChange;for(i=0;i<length;++i){sChange=aChanges[i];var nIndex=sChange.indexOf(";");if(-1!=nIndex){dstLen+=parseInt(sChange.substring(0,nIndex));nIndex++}aIndexes.push(nIndex)}var pointer=g_memory.Alloc(dstLen);var stream=new AscCommon.FT_Stream2(pointer.data,dstLen);stream.obj=pointer.obj;var nCurOffset=0;var aUndoRedoElems=[];for(i=0;i<length;++i){sChange=aChanges[i];var oBinaryFileReader=new AscCommonExcel.BinaryFileReader;nCurOffset=oBinaryFileReader.getbase64DecodedData2(sChange,
aIndexes[i],stream,nCurOffset);var item=new UndoRedoItemSerializable;item.Deserialize(stream);aUndoRedoElems.push(item)}var wsViews=window["Asc"]["editor"].wb.wsViews;if(oThis.oApi.collaborativeEditing.getFast())AscCommon.CollaborativeEditing.Clear_DocumentPositions();for(var i in wsViews)if(isRealObject(wsViews[i])&&isRealObject(wsViews[i].objectRender)&&isRealObject(wsViews[i].objectRender.controller)){wsViews[i].endEditChart();if(oThis.oApi.collaborativeEditing.getFast()){var oState=wsViews[i].objectRender.saveStateBeforeLoadChanges();
if(oState){if(oState.Pos)AscCommon.CollaborativeEditing.Add_DocumentPosition(oState.Pos);if(oState.StartPos)AscCommon.CollaborativeEditing.Add_DocumentPosition(oState.StartPos);if(oState.EndPos)AscCommon.CollaborativeEditing.Add_DocumentPosition(oState.EndPos)}}wsViews[i].objectRender.controller.resetSelection()}oFormulaLocaleInfo.Parse=false;oFormulaLocaleInfo.DigitSep=false;AscFonts.IsCheckSymbols=true;History.Clear();History.TurnOff();var history=new AscCommon.CHistory;history.init(this);history.Create_NewPoint();
history.SetSelection(null);history.SetSelectionRedo(null);var oRedoObjectParam=new AscCommonExcel.RedoObjectParam;history.UndoRedoPrepare(oRedoObjectParam,false);var changesMine=[].concat.apply([],oThis.aCollaborativeActions);oThis._forwardTransformation(oThis.snapshot,changesMine,aUndoRedoElems);for(var i=0,length=aUndoRedoElems.length;i<length;++i){var item=aUndoRedoElems[i];if((null!=item.oClass||item.oData&&typeof item.oData.sChangedObjectId==="string")&&null!=item.nActionType){if(window["NATIVE_EDITOR_ENJINE"]===
true&&window["native"]["CheckNextChange"])if(!window["native"]["CheckNextChange"]())break;history.RedoAdd(oRedoObjectParam,item.oClass,item.nActionType,item.nSheetId,item.oRange,item.oData)}}AscFonts.IsCheckSymbols=false;var oFontMap=this._generateFontMap();window["Asc"]["editor"]._loadFonts(oFontMap,function(){if(oThis.oApi.collaborativeEditing.getFast())for(var i in wsViews)if(isRealObject(wsViews[i])&&isRealObject(wsViews[i].objectRender)&&isRealObject(wsViews[i].objectRender.controller)){var oState=
wsViews[i].objectRender.getStateBeforeLoadChanges();if(oState){if(oState.Pos)AscCommon.CollaborativeEditing.Update_DocumentPosition(oState.Pos);if(oState.StartPos)AscCommon.CollaborativeEditing.Update_DocumentPosition(oState.StartPos);if(oState.EndPos)AscCommon.CollaborativeEditing.Update_DocumentPosition(oState.EndPos)}wsViews[i].objectRender.loadStateAfterLoadChanges()}oFormulaLocaleInfo.Parse=true;oFormulaLocaleInfo.DigitSep=true;history.UndoRedoEnd(null,oRedoObjectParam,false);History.TurnOn();
oThis.bCollaborativeChanges=false;oThis.snapshot=oThis._getSnapshot();if(null!=fCallback)fCallback()})}else if(null!=fCallback)fCallback()};Workbook.prototype.DeserializeHistoryNative=function(oRedoObjectParam,data,isFull){if(null!=data){this.bCollaborativeChanges=true;if(null==oRedoObjectParam){var wsViews=window["Asc"]["editor"].wb.wsViews;for(var i in wsViews)if(isRealObject(wsViews[i])&&isRealObject(wsViews[i].objectRender)&&isRealObject(wsViews[i].objectRender.controller)){wsViews[i].endEditChart();
wsViews[i].objectRender.controller.resetSelection()}History.Clear();History.Create_NewPoint();History.SetSelection(null);History.SetSelectionRedo(null);oRedoObjectParam=new AscCommonExcel.RedoObjectParam;History.UndoRedoPrepare(oRedoObjectParam,false)}var stream=new AscCommon.FT_Stream2(data,data.length);stream.obj=null;var _count=stream.GetLong();var _pos=4;for(var i=0;i<_count;i++){if(window["NATIVE_EDITOR_ENJINE"]===true&&window["native"]["CheckNextChange"])if(!window["native"]["CheckNextChange"]())break;
var _len=stream.GetLong();_pos+=4;stream.size=_pos+_len;stream.Seek(_pos);stream.Seek2(_pos);var item=new UndoRedoItemSerializable;item.Deserialize(stream);if((null!=item.oClass||item.oData&&typeof item.oData.sChangedObjectId==="string")&&null!=item.nActionType)History.RedoAdd(oRedoObjectParam,item.oClass,item.nActionType,item.nSheetId,item.oRange,item.oData);_pos+=_len;stream.Seek2(_pos);stream.size=data.length}if(isFull){History.UndoRedoEnd(null,oRedoObjectParam,false);History.Clear();oRedoObjectParam=
null}this.bCollaborativeChanges=false}return oRedoObjectParam};Workbook.prototype.getTableRangeForFormula=function(name,objectParam){var res=null;for(var i=0,length=this.aWorksheets.length;i<length;++i){var ws=this.aWorksheets[i];res=ws.getTableRangeForFormula(name,objectParam);if(res!==null){res={wsID:ws.getId(),range:res};break}}return res};Workbook.prototype.getTableIndexColumnByName=function(tableName,columnName){var res=null;for(var i=0,length=this.aWorksheets.length;i<length;++i){var ws=this.aWorksheets[i];
res=ws.getTableIndexColumnByName(tableName,columnName);if(res!==null){res={wsID:ws.getId(),index:res,name:ws.getTableNameColumnByIndex(tableName,res)};break}}return res};Workbook.prototype.getTableNameColumnByIndex=function(tableName,columnIndex){var res=null;for(var i=0,length=this.aWorksheets.length;i<length;++i){var ws=this.aWorksheets[i];res=ws.getTableNameColumnByIndex(tableName,columnIndex);if(res!==null){res={wsID:ws.getId(),columnName:res};break}}return res};Workbook.prototype.getTableByName=
function(tableName,wsID){var res=null;var ws=this.getWorksheetById(wsID);return ws.getTableByName(tableName)};Workbook.prototype.updateSparklineCache=function(sheet,ranges){this.forEach(function(ws){ws.updateSparklineCache(sheet,ranges)})};Workbook.prototype.sortDependency=function(){this.dependencyFormulas.calcTree()};Workbook.prototype.charCountToModelColWidth=function(count){if(count<=0)return 0;return Asc.floor((count*this.maxDigitWidth+this.paddingPlusBorder)/this.maxDigitWidth*256)/256};Workbook.prototype.modelColWidthToColWidth=
function(mcw){return Asc.floor((256*mcw+Asc.floor(128/this.maxDigitWidth))/256*this.maxDigitWidth)};Workbook.prototype.colWidthToCharCount=function(w){var pxInOneCharacter=this.maxDigitWidth+this.paddingPlusBorder;return w<pxInOneCharacter?1-Asc.floor(100*(pxInOneCharacter-w)/pxInOneCharacter+.49999)/100:Asc.floor((w-this.paddingPlusBorder)/this.maxDigitWidth*100+.5)/100};Workbook.prototype.getUndoDefName=function(ascName){if(!ascName)return ascName;var sheetId=this.getSheetIdByIndex(ascName.LocalSheetId);
return new UndoRedoData_DefinedNames(ascName.Name,ascName.Ref,sheetId,ascName.isTable,ascName.isXLNM)};Workbook.prototype.changeColorScheme=function(sSchemeName){var scheme=AscCommon.getColorSchemeByName(sSchemeName);if(!scheme)scheme=this.theme.getExtraClrScheme(sSchemeName);if(!scheme)return;History.Create_NewPoint();History.Add(AscCommonExcel.g_oUndoRedoWorkbook,AscCH.historyitem_Workbook_ChangeColorScheme,null,null,new AscCommonExcel.UndoRedoData_ClrScheme(this.theme.themeElements.clrScheme,scheme));
this.theme.themeElements.clrScheme=scheme;this.rebuildColors();return true};Workbook.prototype.cleanFindResults=function(){this.lastFindOptions=null;this.lastFindCells={}};Workbook.prototype.findCellText=function(options){var ws=this.getActiveWs();var result=ws.findCellText(options),result2=null;if(!options.scanOnOnlySheet){var key=result&&result.col+"-"+result.row;if(!key||options.isEqual(this.lastFindOptions)&&this.lastFindCells[key]){var i,active=this.getActive(),start=0,end=this.getWorksheetCount();
var inc=options.scanForward?+1:-1;for(i=active+inc;i<end&&i>=start;i+=inc){ws=this.getWorksheet(i);if(ws.getHidden())continue;result2=ws.findCellText(options);if(result2)break}if(!result2){if(options.scanForward){i=0;end=active}else{i=end-1;start=active+1}inc*=-1;for(;i<end&&i>=start;i+=inc){ws=this.getWorksheet(i);if(ws.getHidden())continue;result2=ws.findCellText(options);if(result2)break}}if(result2){this.handlers.trigger("undoRedoHideSheet",i);key=result2.col+"-"+result2.row}}if(key){this.lastFindOptions=
options.clone();this.lastFindCells[key]=true}}if(!result2&&!result)this.cleanFindResults();return result2||result};Workbook.prototype.getComment=function(id){if(id){var sheet;for(var i=0;i<this.aWorksheets.length;++i){sheet=this.aWorksheets[i];for(var j=0;j<sheet.aComments.length;++j)if(id===sheet.aComments[j].asc_getGuid())return sheet.aComments[j]}}return null};var tempHelp=new ArrayBuffer(8);var tempHelpUnit=new Uint8Array(tempHelp);var tempHelpFloat=new Float64Array(tempHelp);function SheetMemory(structSize,
maxIndex){this.data=null;this.count=0;this.structSize=structSize;this.maxIndex=maxIndex}SheetMemory.prototype.checkSize=function(index){var allocatedCount=this.data?this.data.length/this.structSize:0;if(allocatedCount<index+1){var newAllocatedCount=Math.min(Math.max(1.5*this.count>>0,index+1),this.maxIndex+1);if(newAllocatedCount>allocatedCount){var oldData=this.data;this.data=new Uint8Array(newAllocatedCount*this.structSize);if(oldData)this.data.set(oldData)}}this.count=Math.min(Math.max(this.count,
index+1),this.maxIndex+1)};SheetMemory.prototype.hasSize=function(index){return index+1<=this.count};SheetMemory.prototype.getSize=function(){return this.count};SheetMemory.prototype.clone=function(){var sheetMemory=new SheetMemory(this.structSize,this.maxIndex);sheetMemory.data=this.data?new Uint8Array(this.data):null;sheetMemory.count=this.count;return sheetMemory};SheetMemory.prototype.deleteRange=function(start,deleteCount){if(start<this.count){var startOffset=start*this.structSize;if(start+deleteCount<
this.count){var endOffset=(start+deleteCount)*this.structSize;this.data.set(this.data.subarray(endOffset),startOffset);this.data.fill(0,(this.count-deleteCount)*this.structSize);this.count-=deleteCount}else{this.data.fill(0,startOffset);this.count=start}}};SheetMemory.prototype.insertRange=function(start,insertCount){if(start<this.count){this.checkSize(this.count-1+insertCount);var startOffset=start*this.structSize;if(start+insertCount<this.count){var endOffset=(start+insertCount)*this.structSize;
var endData=(this.count-insertCount)*this.structSize;this.data.set(this.data.subarray(startOffset,endData),endOffset);this.data.fill(0,startOffset,endOffset)}else this.data.fill(0,startOffset)}};SheetMemory.prototype.copyRange=function(sheetMemory,startFrom,startTo,count){var countCopied=0;if(startFrom<sheetMemory.count){countCopied=Math.min(count,sheetMemory.count-startFrom);this.checkSize(startTo+countCopied);countCopied=Math.min(countCopied,this.count-startTo);if(countCopied>0){var startOffsetFrom=
startFrom*this.structSize;var endOffsetFrom=(startFrom+countCopied)*this.structSize;var startOffsetTo=startTo*this.structSize;this.data.set(sheetMemory.data.subarray(startOffsetFrom,endOffsetFrom),startOffsetTo)}}var countErase=Math.min(count-countCopied,this.count-(startTo+countCopied));if(countErase>0){var startOffsetErase=(startTo+countCopied)*this.structSize;var endOffsetErase=(startTo+countCopied+countErase)*this.structSize;this.data.fill(0,startOffsetErase,endOffsetErase)}};SheetMemory.prototype.copyRangeByChunk=
function(from,fromCount,to,toCount){if(from<this.count){this.checkSize(to+toCount-1);var fromStartOffset=from*this.structSize;var fromEndOffset=Math.min(from+fromCount,this.count)*this.structSize;var fromSubArray=this.data.subarray(fromStartOffset,fromEndOffset);for(var i=to;i<to+toCount&&i<this.count;i+=fromCount)this.data.set(fromSubArray,i*this.structSize)}};SheetMemory.prototype.clear=function(start,end){end=Math.min(end,this.count);if(start<end)this.data.fill(0,start*this.structSize,end*this.structSize)};
SheetMemory.prototype.getUint8=function(index,offset){offset+=index*this.structSize;return this.data[offset]};SheetMemory.prototype.setUint8=function(index,offset,val){offset+=index*this.structSize;this.data[offset]=val};SheetMemory.prototype.getUint16=function(index,offset){offset+=index*this.structSize;return AscFonts.FT_Common.IntToUInt(this.data[offset]|this.data[offset+1]<<8)};SheetMemory.prototype.setUint16=function(index,offset,val){offset+=index*this.structSize;this.data[offset]=val&255;this.data[offset+
1]=val>>>8&255};SheetMemory.prototype.getUint32=function(index,offset){offset+=index*this.structSize;return AscFonts.FT_Common.IntToUInt(this.data[offset]|this.data[offset+1]<<8|this.data[offset+2]<<16|this.data[offset+3]<<24)};SheetMemory.prototype.setUint32=function(index,offset,val){offset+=index*this.structSize;this.data[offset]=val&255;this.data[offset+1]=val>>>8&255;this.data[offset+2]=val>>>16&255;this.data[offset+3]=val>>>24&255};SheetMemory.prototype.getFloat64=function(index,offset){offset+=
index*this.structSize;tempHelpUnit[0]=this.data[offset];tempHelpUnit[1]=this.data[offset+1];tempHelpUnit[2]=this.data[offset+2];tempHelpUnit[3]=this.data[offset+3];tempHelpUnit[4]=this.data[offset+4];tempHelpUnit[5]=this.data[offset+5];tempHelpUnit[6]=this.data[offset+6];tempHelpUnit[7]=this.data[offset+7];return tempHelpFloat[0]};SheetMemory.prototype.setFloat64=function(index,offset,val){offset+=index*this.structSize;tempHelpFloat[0]=val;this.data[offset]=tempHelpUnit[0];this.data[offset+1]=tempHelpUnit[1];
this.data[offset+2]=tempHelpUnit[2];this.data[offset+3]=tempHelpUnit[3];this.data[offset+4]=tempHelpUnit[4];this.data[offset+5]=tempHelpUnit[5];this.data[offset+6]=tempHelpUnit[6];this.data[offset+7]=tempHelpUnit[7]};function Worksheet(wb,_index,sId){this.workbook=wb;this.sName=this.workbook.getUniqueSheetNameFrom(g_sNewSheetNamePattern,false);this.bHidden=false;this.oSheetFormatPr=new AscCommonExcel.SheetFormatPr;this.index=_index;this.Id=null!=sId?sId:AscCommon.g_oIdCounter.Get_NewId();this.nRowsCount=
0;this.nColsCount=0;this.rowsData=new SheetMemory(AscCommonExcel.g_nRowStructSize,gc_nMaxRow0);this.cellsByCol=[];this.cellsByColRowsCount=0;this.aCols=[];this.hiddenManager=new HiddenManager(this);this.Drawings=[];this.TableParts=[];this.AutoFilter=null;this.oAllCol=null;this.aComments=[];var oThis=this;this.bExcludeHiddenRows=false;this.bIgnoreWriteFormulas=false;this.mergeManager=new RangeDataManager(function(data,from,to){if(History.Is_On()&&(null!=from||null!=to)){if(null!=from)from=from.clone();
if(null!=to)to=to.clone();var oHistoryRange=from;if(null==oHistoryRange)oHistoryRange=to;History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_ChangeMerge,oThis.getId(),oHistoryRange,new UndoRedoData_FromTo(new UndoRedoData_BBox(from),new UndoRedoData_BBox(to)))}if(null!=to){var maxRow=gc_nMaxRow0!==to.r2?to.r2:to.r1;var maxCol=gc_nMaxCol0!==to.c2?to.c2:to.c1;if(maxRow>=oThis.nRowsCount)oThis.nRowsCount=maxRow+1;if(maxCol>=oThis.nColsCount)oThis.nColsCount=maxCol+1}});this.mergeManager.worksheet=
this;this.hyperlinkManager=new RangeDataManager(function(data,from,to,oChangeParam){if(History.Is_On()&&(null!=from||null!=to)){if(null!=from)from=from.clone();if(null!=to)to=to.clone();var oHistoryRange=from;if(null==oHistoryRange)oHistoryRange=to;var oHistoryData=null;if(null==from||null==to)oHistoryData=data.clone();History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_ChangeHyperlink,oThis.getId(),oHistoryRange,new AscCommonExcel.UndoRedoData_FromToHyperlink(from,to,oHistoryData))}if(null!=
to)data.Ref=oThis.getRange3(to.r1,to.c1,to.r2,to.c2);else if(oChangeParam&&oChangeParam.removeStyle&&null!=data.Ref)data.Ref.cleanFormat();if(null!=to){var maxRow=gc_nMaxRow0!==to.r2?to.r2:to.r1;var maxCol=gc_nMaxCol0!==to.c2?to.c2:to.c1;if(maxRow>=oThis.nRowsCount)oThis.nRowsCount=maxRow+1;if(maxCol>=oThis.nColsCount)oThis.nColsCount=maxCol+1}});this.hyperlinkManager.setDependenceManager(this.mergeManager);this.DrawingDocument=new AscCommon.CDrawingDocument;this.sheetViews=[];this.aConditionalFormattingRules=
[];this.updateConditionalFormattingRange=null;this.dataValidations=null;this.sheetPr=null;this.aFormulaExt=null;this.autoFilters=AscCommonExcel.AutoFilters!==undefined?new AscCommonExcel.AutoFilters(this):null;this.oDrawingOjectsManager=new DrawingObjectsManager(this);this.contentChanges=new AscCommon.CContentChanges;this.aSparklineGroups=[];this.selectionRange=new AscCommonExcel.SelectionRange(this);this.sheetMergedStyles=new AscCommonExcel.SheetMergedStyles;this.pivotTables=[];this.headerFooter=
new Asc.CHeaderFooter(this);this.rowBreaks=null;this.colBreaks=null;this.legacyDrawingHF=null;this.picture=null;this.PagePrintOptions=new Asc.asc_CPageOptions(this);this.formulaArrayLink=null;this.lastFindOptions=null;this.bExcludeCollapsed=false;this.handlers=null}Worksheet.prototype.getCompiledStyle=function(row,col,opt_cell,opt_styleComponents){return getCompiledStyle(this.sheetMergedStyles,this.hiddenManager,row,col,opt_cell,this,opt_styleComponents)};Worksheet.prototype.getCompiledStyleCustom=
function(row,col,needTable,needCell,needConditional,opt_cell){var res;var styleComponents=this.sheetMergedStyles.getStyle(this.hiddenManager,row,col,this);var ws=this;if(!needTable)styleComponents.table=[];if(!needConditional)styleComponents.conditional=[];if(!needCell)res=getCompiledStyle(undefined,undefined,row,col,undefined,undefined,styleComponents);else if(opt_cell)res=getCompiledStyle(undefined,undefined,row,col,opt_cell,ws,styleComponents);else this._getCellNoEmpty(row,col,function(cell){res=
getCompiledStyle(undefined,undefined,row,col,cell,ws,styleComponents)});return res};Worksheet.prototype.getColData=function(index){var sheetMemory=this.cellsByCol[index];if(!sheetMemory){sheetMemory=new SheetMemory(g_nCellStructSize,gc_nMaxRow0);this.cellsByCol[index]=sheetMemory}return sheetMemory};Worksheet.prototype.getColDataNoEmpty=function(index){return this.cellsByCol[index]};Worksheet.prototype.getColDataLength=function(){return this.cellsByCol.length};Worksheet.prototype.getSnapshot=function(wb){var ws=
new Worksheet(wb,this.index,this.Id);ws.sName=this.sName;for(var i=0;i<this.TableParts.length;++i){var table=this.TableParts[i];ws.addTablePart(table.clone(null),false)}for(i=0;i<this.sheetViews.length;++i)ws.sheetViews.push(this.sheetViews[i].clone());return ws};Worksheet.prototype.addContentChanges=function(changes){this.contentChanges.Add(changes)};Worksheet.prototype.refreshContentChanges=function(){this.contentChanges.Refresh();this.contentChanges.Clear()};Worksheet.prototype.rebuildColors=function(){this.rebuildTabColor();
for(var i=0;i<this.aSparklineGroups.length;++i)this.aSparklineGroups[i].cleanCache()};Worksheet.prototype.generateFontMap=function(oFontMap){for(var i=0,length=this.Drawings.length;i<length;++i){var drawing=this.Drawings[i];if(drawing)drawing.getAllFonts(oFontMap)}if(this.headerFooter)this.headerFooter.getAllFonts(oFontMap)};Worksheet.prototype.getAllImageUrls=function(aImages){for(var i=0;i<this.Drawings.length;++i)this.Drawings[i].graphicObject.getAllRasterImages(aImages)};Worksheet.prototype.reassignImageUrls=
function(oImages){for(var i=0;i<this.Drawings.length;++i)this.Drawings[i].graphicObject.Reassign_ImageUrls(oImages)};Worksheet.prototype.copyFrom=function(wsFrom,sName,tableNames){var i,elem,range;var t=this;this.sName=this.workbook.checkValidSheetName(sName)?sName:this.workbook.getUniqueSheetNameFrom(wsFrom.sName,true);this.bHidden=wsFrom.bHidden;this.oSheetFormatPr=wsFrom.oSheetFormatPr.clone();this.nRowsCount=wsFrom.nRowsCount;this.nColsCount=wsFrom.nColsCount;var renameParams={lastName:wsFrom.getName(),
newName:this.getName(),tableNameMap:{}};for(i=0;i<wsFrom.TableParts.length;++i){var tableFrom=wsFrom.TableParts[i];var tableTo=tableFrom.clone(null);if(tableNames&&tableNames.length)tableTo.changeDisplayName(tableNames[i]);else tableTo.changeDisplayName(this.workbook.dependencyFormulas.getNextTableName());this.addTablePart(tableTo,true);renameParams.tableNameMap[tableFrom.DisplayName]=tableTo.DisplayName}for(i=0;i<this.TableParts.length;++i)this.TableParts[i].renameSheetCopy(this,renameParams);if(wsFrom.AutoFilter)this.AutoFilter=
wsFrom.AutoFilter.clone();for(i in wsFrom.aCols){var col=wsFrom.aCols[i];if(null!=col)this.aCols[i]=col.clone(this)}if(null!=wsFrom.oAllCol)this.oAllCol=wsFrom.oAllCol.clone(this);this.rowsData=wsFrom.rowsData.clone();wsFrom._forEachColData(function(sheetMemory,index){t.cellsByCol[index]=sheetMemory.clone()});this.cellsByColRowsCount=wsFrom.cellsByColRowsCount;var aMerged=wsFrom.mergeManager.getAll();for(i in aMerged){elem=aMerged[i];range=this.getRange3(elem.bbox.r1,elem.bbox.c1,elem.bbox.r2,elem.bbox.c2);
range.mergeOpen()}var aHyperlinks=wsFrom.hyperlinkManager.getAll();for(i in aHyperlinks){elem=aHyperlinks[i];range=this.getRange3(elem.bbox.r1,elem.bbox.c1,elem.bbox.r2,elem.bbox.c2);range.setHyperlinkOpen(elem.data)}if(null!=wsFrom.aComments)for(i=0;i<wsFrom.aComments.length;i++){var comment=wsFrom.aComments[i].clone();comment.wsId=this.getId();comment.nId="sheet"+comment.wsId+"_"+(i+1);this.aComments.push(comment)}for(i=0;i<wsFrom.sheetViews.length;++i)this.sheetViews.push(wsFrom.sheetViews[i].clone());
for(i=0;i<wsFrom.aConditionalFormattingRules.length;++i)this.aConditionalFormattingRules.push(wsFrom.aConditionalFormattingRules[i].clone());if(wsFrom.dataValidations)this.dataValidations=wsFrom.dataValidations.clone();if(wsFrom.sheetPr)this.sheetPr=wsFrom.sheetPr.clone();this.selectionRange=wsFrom.selectionRange.clone(this);var oldNewArrayFormulaMap=[];this._forEachCell(function(cell){if(cell.isFormula()){var parsed,notMainArrayCell;if(cell.transformSharedFormula())parsed=cell.getFormulaParsed();
else{parsed=cell.getFormulaParsed();if(parsed.getArrayFormulaRef()){var listenerId=parsed.getListenerId();if(oldNewArrayFormulaMap[listenerId]){parsed=oldNewArrayFormulaMap[listenerId];notMainArrayCell=true}else{parsed=parsed.clone(null,new CCellWithFormula(t,cell.nRow,cell.nCol),t);oldNewArrayFormulaMap[listenerId]=parsed}}else parsed=parsed.clone(null,new CCellWithFormula(t,cell.nRow,cell.nCol),t)}if(!notMainArrayCell){parsed.renameSheetCopy(renameParams);parsed.setFormulaString(parsed.assemble(true))}cell.setFormulaInternal(parsed,
true);t.workbook.dependencyFormulas.addToBuildDependencyCell(cell)}});if(wsFrom.headerFooter)this.headerFooter=wsFrom.headerFooter.clone(this);return renameParams};Worksheet.prototype.copyObjects=function(oNewWs,wsFrom){var i;if(null!=this.Drawings&&this.Drawings.length>0){var drawingObjects=new AscFormat.DrawingObjects;oNewWs.Drawings=[];AscFormat.NEW_WORKSHEET_DRAWING_DOCUMENT=oNewWs.DrawingDocument;for(i=0;i<this.Drawings.length;++i){var drawingObject=drawingObjects.cloneDrawingObject(this.Drawings[i]);
drawingObject.graphicObject=this.Drawings[i].graphicObject.copy();drawingObject.graphicObject.setWorksheet(oNewWs);drawingObject.graphicObject.addToDrawingObjects();var drawingBase=this.Drawings[i];drawingObject.graphicObject.setDrawingBaseCoords(drawingBase.from.col,drawingBase.from.colOff,drawingBase.from.row,drawingBase.from.rowOff,drawingBase.to.col,drawingBase.to.colOff,drawingBase.to.row,drawingBase.to.rowOff,drawingBase.Pos.X,drawingBase.Pos.Y,drawingBase.ext.cx,drawingBase.ext.cy);if(drawingObject.graphicObject.setDrawingBaseType)drawingObject.graphicObject.setDrawingBaseType(drawingBase.Type);
oNewWs.Drawings[oNewWs.Drawings.length-1]=drawingObject}AscFormat.NEW_WORKSHEET_DRAWING_DOCUMENT=null;drawingObjects.pushToAObjects(oNewWs.Drawings);drawingObjects.updateChartReferences2(parserHelp.getEscapeSheetName(wsFrom.sName),parserHelp.getEscapeSheetName(oNewWs.sName))}var newSparkline;for(i=0;i<this.aSparklineGroups.length;++i){newSparkline=this.aSparklineGroups[i].clone();newSparkline.setWorksheet(oNewWs,wsFrom);oNewWs.aSparklineGroups.push(newSparkline)}};Worksheet.prototype.initColumn=function(column){if(column)if(null!==
column.width&&0!==column.width){column.widthPx=this.modelColWidthToColWidth(column.width);column.charCount=this.colWidthToCharCount(column.widthPx)}else column.widthPx=column.charCount=null};Worksheet.prototype.initColumns=function(){this.initColumn(this.oAllCol);this.aCols.forEach(this.initColumn,this)};Worksheet.prototype.initPostOpen=function(handlers){this.PagePrintOptions.init();this.headerFooter.init();if(0===this.sheetViews.length)this.sheetViews.push(new AscCommonExcel.asc_CSheetViewSettings);
this.hiddenManager.initPostOpen();this.oSheetFormatPr.correction();this.handlers=handlers;this._setHandlersTablePart()};Worksheet.prototype._getValuesForConditionalFormatting=function(ranges,numbers){var res=[];for(var i=0;i<ranges.length;++i){var elem=ranges[i];var range=this.getRange3(elem.r1,elem.c1,elem.r2,elem.c2);res=res.concat(range._getValues(numbers))}return res};Worksheet.prototype._isConditionalFormattingIntersect=function(range,ranges){for(var i=0;i<ranges.length;++i)if(range.isIntersect(ranges[i]))return true;
return false};Worksheet.prototype.setDirtyConditionalFormatting=function(range){if(!range)range=new AscCommonExcel.MultiplyRange([new Asc.Range(0,0,gc_nMaxCol0,gc_nMaxRow0)]);if(this.updateConditionalFormattingRange)this.updateConditionalFormattingRange.union2(range);else this.updateConditionalFormattingRange=range.clone()};Worksheet.prototype._updateConditionalFormatting=function(){if(!this.updateConditionalFormattingRange)return;var range=this.updateConditionalFormattingRange;this.updateConditionalFormattingRange=
null;var t=this;var aRules=this.aConditionalFormattingRules.sort(function(v1,v2){return v2.priority-v1.priority});var oGradient1,oGradient2,aWeights,oRule,multiplyRange,oRuleElement,bboxCf,formulaParent,parsed1,parsed2;var o,l,cell,ranges,values,value,tmp,dxf,compareFunction,nc,sum;this.sheetMergedStyles.clearConditionalStyle(range);var getCacheFunction=function(rule,setFunc){var cache={cache:{},get:function(row,col){var cacheVal;var cacheRow=this.cache[row];if(!cacheRow){cacheRow={};this.cache[row]=
cacheRow}else cacheVal=cacheRow[col];if(undefined===cacheVal){cacheVal=this.set(row,col);cacheRow[col]=cacheVal}return cacheVal},set:function(row,col){if(rule)return setFunc(row,col)?rule.dxf:null;else return setFunc(row,col)}};return function(row,col){return cache.get(row,col)}};for(var i=0;i<aRules.length;++i){oRule=aRules[i];ranges=oRule.ranges;if(this._isConditionalFormattingIntersect(range,ranges)){multiplyRange=new AscCommonExcel.MultiplyRange(ranges);if(AscCommonExcel.ECfType.colorScale===
oRule.type){if(1!==oRule.aRuleElements.length)continue;oRuleElement=oRule.aRuleElements[0];if(!oRuleElement||oRule.type!==oRuleElement.type)continue;values=this._getValuesForConditionalFormatting(ranges,true);l=oRuleElement.aColors.length;if(0<values.length&&2<=l){aWeights=[];oGradient1=new AscCommonExcel.CGradient(oRuleElement.aColors[0],oRuleElement.aColors[1]);aWeights.push(oRule.getMin(values,t),oRule.getMax(values,t));if(2<l){oGradient2=new AscCommonExcel.CGradient(oRuleElement.aColors[1],oRuleElement.aColors[2]);
aWeights.push(oRule.getMid(values,t));aWeights.sort(AscCommon.fSortAscending);oGradient1.init(aWeights[0],aWeights[1]);oGradient2.init(aWeights[1],aWeights[2])}else{oGradient2=null;aWeights.sort(AscCommon.fSortAscending);oGradient1.init(aWeights[0],aWeights[1])}compareFunction=function(oGradient1,oGradient2){return function(row,col){var val,color,gradient;t._getCellNoEmpty(row,col,function(cell){val=cell&&cell.getNumberValue()});dxf=null;if(null!==val){dxf=new AscCommonExcel.CellXfs;gradient=oGradient2?
oGradient2:oGradient1;if(val>=gradient.max)color=gradient.getMaxColor();else if(val<=oGradient1.min)color=oGradient1.getMinColor();else{gradient=oGradient2&&val>oGradient1.max?oGradient2:oGradient1;color=gradient.calculateColor(val)}dxf.fill=new AscCommonExcel.Fill;dxf.fill.fromColor(color);dxf=g_StyleCache.addXf(dxf,true)}return dxf}}(oGradient1,oGradient2)}}else if(AscCommonExcel.ECfType.dataBar===oRule.type)continue;else if(AscCommonExcel.ECfType.top10===oRule.type){if(oRule.rank>0&&oRule.dxf){nc=
0;values=this._getValuesForConditionalFormatting(ranges,false);o=oRule.bottom?Number.MAX_VALUE:-Number.MAX_VALUE;for(cell=0;cell<values.length;++cell){value=values[cell];if(CellValueType.Number===value.type&&!isNaN(tmp=parseFloat(value.v))){++nc;value.v=tmp}else value.v=o}values.sort(function(condition){return function(v1,v2){return condition*(v2.v-v1.v)}}(oRule.bottom?-1:1));nc=Math.max(1,oRule.percent?Math.floor(nc*oRule.rank/100):oRule.rank);var threshold=values.length>=nc?values[nc-1].v:o;compareFunction=
function(rule,threshold){return function(row,col){var val;t._getCellNoEmpty(row,col,function(cell){val=cell?cell.getNumberValue():null});return null!==val&&(rule.bottom?val<=threshold:val>=threshold)?rule.dxf:null}}(oRule,threshold)}}else if(AscCommonExcel.ECfType.aboveAverage===oRule.type){if(!oRule.dxf)continue;values=this._getValuesForConditionalFormatting(ranges,false);sum=0;nc=0;for(cell=0;cell<values.length;++cell){value=values[cell];if(CellValueType.Number===value.type&&!isNaN(tmp=parseFloat(value.v))){++nc;
value.v=tmp;sum+=tmp}else value.v=null}tmp=sum/nc;compareFunction=function(rule,average,stdDev){return function(row,col){var val;t._getCellNoEmpty(row,col,function(cell){val=cell?cell.getNumberValue():null});return null!==val&&rule.getAverage(val,average,stdDev)?rule.dxf:null}}(oRule,tmp,sum)}else{if(!oRule.dxf)continue;switch(oRule.type){case AscCommonExcel.ECfType.duplicateValues:case AscCommonExcel.ECfType.uniqueValues:o=getUniqueKeys(this._getValuesForConditionalFormatting(ranges,false));compareFunction=
function(rule,obj,condition){return function(row,col){var val;t._getCellNoEmpty(row,col,function(cell){val=cell?cell.getValueWithoutFormat():""});return(val.length>0?condition===obj[val]:false)?rule.dxf:null}}(oRule,o,oRule.type===AscCommonExcel.ECfType.duplicateValues);break;case AscCommonExcel.ECfType.containsText:case AscCommonExcel.ECfType.notContainsText:case AscCommonExcel.ECfType.beginsWith:case AscCommonExcel.ECfType.endsWith:var operator;switch(oRule.type){case AscCommonExcel.ECfType.containsText:operator=
AscCommonExcel.ECfOperator.Operator_containsText;break;case AscCommonExcel.ECfType.notContainsText:operator=AscCommonExcel.ECfOperator.Operator_notContains;break;case AscCommonExcel.ECfType.beginsWith:operator=AscCommonExcel.ECfOperator.Operator_beginsWith;break;case AscCommonExcel.ECfType.endsWith:operator=AscCommonExcel.ECfOperator.Operator_endsWith;break}formulaParent=new AscCommonExcel.CConditionalFormattingFormulaParent(this,oRule,true);oRuleElement=oRule.getFormulaCellIs();parsed1=oRuleElement&&
oRuleElement.getFormula&&oRuleElement.getFormula(this,formulaParent);if(parsed1&&parsed1.hasRelativeRefs()){bboxCf=oRule.getBBox();compareFunction=getCacheFunction(oRule,function(rule,operator,formulaParent,rowLT,colLT){return function(row,col){var offset=new AscCommon.CellBase(row-rowLT,col-colLT);var bboxCell=new Asc.Range(col,row,col,row);var v1=rule.getValueCellIs(t,formulaParent,bboxCell,offset,false);var res;t._getCellNoEmpty(row,col,function(cell){res=rule.cellIs(operator,cell,v1)?rule.dxf:
null});return res}}(oRule,operator,new AscCommonExcel.CConditionalFormattingFormulaParent(this,oRule,true),bboxCf?bboxCf.r1:0,bboxCf?bboxCf.c1:0))}else compareFunction=function(rule,operator,v1){return function(row,col){var res;t._getCellNoEmpty(row,col,function(cell){res=rule.cellIs(operator,cell,v1)?rule.dxf:null});return res}}(oRule,operator,oRule.getValueCellIs(this));break;case AscCommonExcel.ECfType.containsErrors:compareFunction=function(rule){return function(row,col){var val;t._getCellNoEmpty(row,
col,function(cell){val=cell?CellValueType.Error===cell.getType():false});return val?rule.dxf:null}}(oRule);break;case AscCommonExcel.ECfType.notContainsErrors:compareFunction=function(rule){return function(row,col){var val;t._getCellNoEmpty(row,col,function(cell){val=cell?CellValueType.Error!==cell.getType():true});return val?rule.dxf:null}}(oRule);break;case AscCommonExcel.ECfType.containsBlanks:compareFunction=function(rule){return function(row,col){var val;t._getCellNoEmpty(row,col,function(cell){if(cell)val=
""===cell.getValueWithoutFormat().replace(/^ +| +$/g,"");else val=true});return val?rule.dxf:null}}(oRule);break;case AscCommonExcel.ECfType.notContainsBlanks:compareFunction=function(rule){return function(row,col){var val;t._getCellNoEmpty(row,col,function(cell){if(cell)val=""!==cell.getValueWithoutFormat().replace(/^ +| +$/g,"");else val=false});return val?rule.dxf:null}}(oRule);break;case AscCommonExcel.ECfType.timePeriod:if(oRule.timePeriod)compareFunction=function(rule,period){return function(row,
col){var val;t._getCellNoEmpty(row,col,function(cell){val=cell?cell.getValueWithoutFormat():""});var n=parseFloat(val);return period.start<=n&&n<period.end?rule.dxf:null}}(oRule,oRule.getTimePeriod());else continue;break;case AscCommonExcel.ECfType.cellIs:formulaParent=new AscCommonExcel.CConditionalFormattingFormulaParent(this,oRule,true);oRuleElement=oRule.aRuleElements[0];parsed1=oRuleElement&&oRuleElement.getFormula&&oRuleElement.getFormula(this,formulaParent);oRuleElement=oRule.aRuleElements[1];
parsed2=oRuleElement&&oRuleElement.getFormula&&oRuleElement.getFormula(this,formulaParent);if(parsed1&&parsed1.hasRelativeRefs()||parsed2&&parsed2.hasRelativeRefs()){bboxCf=oRule.getBBox();compareFunction=getCacheFunction(oRule,function(rule,ruleElem1,ruleElem2,formulaParent,rowLT,colLT){return function(row,col){var offset=new AscCommon.CellBase(row-rowLT,col-colLT);var bboxCell=new Asc.Range(col,row,col,row);var v1=ruleElem1&&ruleElem1.getValue(t,formulaParent,bboxCell,offset,false);var v2=ruleElem2&&
ruleElem2.getValue(t,formulaParent,bboxCell,offset,false);var res;t._getCellNoEmpty(row,col,function(cell){res=rule.cellIs(rule.operator,cell,v1,v2)?rule.dxf:null});return res}}(oRule,oRule.aRuleElements[0],oRule.aRuleElements[1],new AscCommonExcel.CConditionalFormattingFormulaParent(this,oRule,true),bboxCf?bboxCf.r1:0,bboxCf?bboxCf.c1:0))}else compareFunction=function(rule,v1,v2){return function(row,col){var res;t._getCellNoEmpty(row,col,function(cell){res=rule.cellIs(rule.operator,cell,v1,v2)?rule.dxf:
null});return res}}(oRule,oRule.aRuleElements[0]&&oRule.aRuleElements[0].getValue(this),oRule.aRuleElements[1]&&oRule.aRuleElements[1].getValue(this));break;case AscCommonExcel.ECfType.expression:bboxCf=oRule.getBBox();compareFunction=getCacheFunction(oRule,function(rule,formulaCF,formulaParent,rowLT,colLT){return function(row,col){var offset=new AscCommon.CellBase(row-rowLT,col-colLT);var bboxCell=new Asc.Range(col,row,col,row);var res=formulaCF&&formulaCF.getValue(t,formulaParent,bboxCell,offset,
true);if(res&&res.tocBool){res=res.tocBool();if(res&&res.toBool)return res.toBool()}return false}}(oRule,oRule.aRuleElements[0],new AscCommonExcel.CConditionalFormattingFormulaParent(this,oRule,true),bboxCf?bboxCf.r1:0,bboxCf?bboxCf.c1:0));break;default:continue;break}}if(compareFunction)this.sheetMergedStyles.setConditionalStyle(multiplyRange,compareFunction)}}};Worksheet.prototype._forEachRow=function(fAction){this.getRange3(0,0,gc_nMaxRow0,0)._foreachRowNoEmpty(fAction)};Worksheet.prototype._forEachCol=
function(fAction){this.getRange3(0,0,0,gc_nMaxCol0)._foreachColNoEmpty(fAction)};Worksheet.prototype._forEachColData=function(fAction){for(var i=0;i<this.cellsByCol.length;++i){var sheetMemory=this.cellsByCol[i];if(sheetMemory)fAction(sheetMemory,i)}};Worksheet.prototype._forEachCell=function(fAction){this.getRange3(0,0,gc_nMaxRow0,gc_nMaxCol0)._foreachNoEmpty(fAction)};Worksheet.prototype.getId=function(){return this.Id};Worksheet.prototype.getIndex=function(){return this.index};Worksheet.prototype.getName=
function(){return this.sName!==undefined&&this.sName.length>0?this.sName:""};Worksheet.prototype.setName=function(name,bFromUndoRedo){if(name.length<=g_nSheetNameMaxLength){var lastName=this.sName;History.Create_NewPoint();var prepared=this.workbook.dependencyFormulas.prepareChangeSheet(this.getId(),{rename:{from:lastName,to:name}});this.sName=name;this.workbook.dependencyFormulas.changeSheet(prepared);History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_Rename,this.getId(),
null,new UndoRedoData_FromTo(lastName,name));if(!bFromUndoRedo){var _lastName=parserHelp.getEscapeSheetName(lastName);var _newName=parserHelp.getEscapeSheetName(this.sName);for(var key in this.workbook.aWorksheets){var wsModel=this.workbook.aWorksheets[key];if(wsModel)wsModel.oDrawingOjectsManager.updateChartReferencesWidthHistory(_lastName,_newName,true)}}this.workbook.dependencyFormulas.calcTree()}else console.log(new Error("The sheet name must be less than 31 characters."))};Worksheet.prototype.getTabColor=
function(){return this.sheetPr&&this.sheetPr.TabColor?Asc.colorObjToAscColor(this.sheetPr.TabColor):null};Worksheet.prototype.setTabColor=function(color){if(!this.sheetPr)this.sheetPr=new AscCommonExcel.asc_CSheetPr;History.Create_NewPoint();History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_SetTabColor,this.getId(),null,new UndoRedoData_FromTo(this.sheetPr.TabColor?this.sheetPr.TabColor.clone():null,color?color.clone():null));this.sheetPr.TabColor=color;if(!this.workbook.bUndoChanges&&
!this.workbook.bRedoChanges)this.workbook.handlers.trigger("asc_onUpdateTabColor",this.getIndex())};Worksheet.prototype.rebuildTabColor=function(){if(this.sheetPr&&this.sheetPr.TabColor)this.workbook.handlers.trigger("asc_onUpdateTabColor",this.getIndex())};Worksheet.prototype.getHidden=function(){return true===this.bHidden};Worksheet.prototype.setHidden=function(hidden){var bOldHidden=this.bHidden,wb=this.workbook,wsActive=wb.getActiveWs(),oVisibleWs=null;this.bHidden=hidden;if(true==this.bHidden&&
this.getIndex()==wsActive.getIndex()){oVisibleWs=wb.findSheetNoHidden(this.getIndex());if(null!=oVisibleWs){var nNewIndex=oVisibleWs.getIndex();wb.setActive(nNewIndex);if(!wb.bUndoChanges&&!wb.bRedoChanges)wb.handlers.trigger("undoRedoHideSheet",nNewIndex)}}if(bOldHidden!=hidden){History.Create_NewPoint();History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_Hide,this.getId(),null,new UndoRedoData_FromTo(bOldHidden,hidden));if(null!=oVisibleWs){History.SetSheetUndo(wsActive.getId());
History.SetSheetRedo(oVisibleWs.getId())}}};Worksheet.prototype.getSheetView=function(){return this.sheetViews[0]};Worksheet.prototype.getSheetViewSettings=function(){return this.sheetViews[0].clone()};Worksheet.prototype.setDisplayGridlines=function(value){var view=this.sheetViews[0];if(value!==view.showGridLines){History.Create_NewPoint();History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_SetDisplayGridlines,this.getId(),null,new UndoRedoData_FromTo(view.showGridLines,value));
view.showGridLines=value;if(!this.workbook.bUndoChanges&&!this.workbook.bRedoChanges)this.workbook.handlers.trigger("asc_onUpdateSheetViewSettings")}};Worksheet.prototype.setDisplayHeadings=function(value){var view=this.sheetViews[0];if(value!==view.showRowColHeaders){History.Create_NewPoint();History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_SetDisplayHeadings,this.getId(),null,new UndoRedoData_FromTo(view.showRowColHeaders,value));view.showRowColHeaders=value;if(!this.workbook.bUndoChanges&&
!this.workbook.bRedoChanges)this.workbook.handlers.trigger("asc_onUpdateSheetViewSettings")}};Worksheet.prototype.getRowsCount=function(){var result=this.nRowsCount;var pane=this.sheetViews.length&&this.sheetViews[0].pane;if(pane&&pane.topLeftFrozenCell)result=Math.max(result,pane.topLeftFrozenCell.getRow0());return result};Worksheet.prototype.removeRows=function(start,stop,bExcludeHiddenRows){var removeRowsArr=bExcludeHiddenRows?this._getNoHiddenRowsArr(start,stop):[{start:start,stop:stop}];for(var i=
removeRowsArr.length-1;i>=0;i--){var oRange=this.getRange(new CellAddress(removeRowsArr[i].start,0,0),new CellAddress(removeRowsArr[i].stop,gc_nMaxCol0,0));oRange.deleteCellsShiftUp()}};Worksheet.prototype._getNoHiddenRowsArr=function(start,stop){var res=[];var elem=null;for(var i=start;i<=stop;i++)if(this.getRowHidden(i)){if(elem){res.push(elem);elem=null}}else{if(!elem){elem={};elem.start=i;elem.stop=i}else elem.stop++;if(i===stop)res.push(elem)}return res};Worksheet.prototype._updateFormulasParents=
function(r1,c1,r2,c2,bbox,offset,shiftedShared){var t=this;var cellWithFormula;var shiftedArrayFormula={};this.getRange3(r1,c1,r2,c2)._foreachNoEmpty(function(cell){var newNRow=cell.nRow+offset.row;var newNCol=cell.nCol+offset.col;var bHor=0!==offset.col;var toDelete=offset.col<0||offset.row<0;if(cell.isFormula()){var processed=c_oSharedShiftType.NeedTransform;var parsed=cell.getFormulaParsed();var shared=parsed.getShared();var arrayFormula=parsed.getArrayFormulaRef();var formulaRefObj=null;if(shared){processed=
shiftedShared[parsed.getListenerId()];var isPreProcessed=c_oSharedShiftType.PreProcessed===processed;if(!processed||isPreProcessed){if(!processed){var bboxShift=AscCommonExcel.shiftGetBBox(bbox,bHor);if(bboxShift.containsRange(shared.ref)&&(!toDelete||!bbox.isIntersect(shared.ref)))processed=c_oSharedShiftType.Processed;else processed=c_oSharedShiftType.NeedTransform}else if(isPreProcessed)processed=c_oSharedShiftType.Processed;if(c_oSharedShiftType.Processed===processed){var newRef=shared.ref.clone();
newRef.forShift(bbox,offset,t.workbook.bUndoChanges);parsed.setSharedRef(newRef,!isPreProcessed);t.workbook.dependencyFormulas.addToChangedRange2(t.getId(),newRef)}shiftedShared[parsed.getListenerId()]=processed}}else if(arrayFormula)if(!shiftedArrayFormula[parsed.getListenerId()]&&parsed.checkFirstCellArray(cell)){shiftedArrayFormula[parsed.getListenerId()]=1;var newArrayRef=arrayFormula.clone();newArrayRef.setOffset(offset);parsed.setArrayFormulaRef(newArrayRef)}else processed=c_oSharedShiftType.Processed;
if(c_oSharedShiftType.NeedTransform===processed){var isTransform=cell.transformSharedFormula();parsed=cell.getFormulaParsed();if(isTransform)parsed.buildDependencies();cellWithFormula=parsed.getParent();cellWithFormula.nRow=newNRow;cellWithFormula.nCol=newNCol;t.workbook.dependencyFormulas.addToChangedCell(cellWithFormula)}}t.cellsByColRowsCount=Math.max(t.cellsByColRowsCount,newNRow+1);t.nRowsCount=Math.max(t.nRowsCount,t.cellsByColRowsCount);t.nColsCount=Math.max(t.nColsCount,newNCol+1)})};Worksheet.prototype._removeRows=
function(start,stop){var t=this;this.workbook.dependencyFormulas.lockRecal();History.Create_NewPoint();var nDif=-(stop-start+1);var oActualRange=new Asc.Range(0,start,gc_nMaxCol0,stop);var offset=new AscCommon.CellBase(nDif,0);var renameRes=this.renameDependencyNodes(offset,oActualRange);var redrawTablesArr=this.autoFilters.insertRows("delCell",oActualRange,c_oAscDeleteOptions.DeleteRows);this.updatePivotOffset(oActualRange,offset);var collapsedInfo=null,lastRowIndex;var oDefRowPr=new AscCommonExcel.UndoRedoData_RowProp;
this.getRange3(start,0,stop,gc_nMaxCol0)._foreachRowNoEmpty(function(row){var oOldProps=row.getHeightProp();lastRowIndex=row.index;if(false===oOldProps.isEqual(oDefRowPr))History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_RowProp,t.getId(),row._getUpdateRange(),new UndoRedoData_IndexSimpleProp(row.getIndex(),true,oOldProps,oDefRowPr));row.setStyle(null);if(!t.workbook.bRedoChanges){if(collapsedInfo!==null&&collapsedInfo<row.getOutlineLevel())collapsedInfo=null;if(row.getCollapsed()){collapsedInfo=
row.getOutlineLevel();t.setCollapsedRow(false,null,row)}}},function(cell){t._removeCell(null,null,cell)});if(collapsedInfo!==null&&lastRowIndex===stop)this._getRow(stop+1,function(row){t.setCollapsedRow(true,null,row)});this._updateFormulasParents(start,0,gc_nMaxRow0,gc_nMaxCol0,oActualRange,offset,renameRes.shiftedShared);this.rowsData.deleteRange(start,-nDif);this._forEachColData(function(sheetMemory){sheetMemory.deleteRange(start,-nDif)});this.workbook.dependencyFormulas.notifyChanged(renameRes.changed);
History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_RemoveRows,this.getId(),new Asc.Range(0,start,gc_nMaxCol0,gc_nMaxRow0),new UndoRedoData_FromToRowCol(true,start,stop));this.autoFilters.redrawStylesTables(redrawTablesArr);this.workbook.dependencyFormulas.unlockRecal();return true};Worksheet.prototype.insertRowsBefore=function(index,count){var oRange=this.getRange(new CellAddress(index,0,0),new CellAddress(index+count-1,gc_nMaxCol0,0));oRange.addCellsShiftBottom()};Worksheet.prototype._getBordersForInsert=
function(bbox,bRow){var t=this;var borders={};var offsetRow=bRow&&bbox.r1>0?-1:0;var offsetCol=!bRow&&bbox.c1>0?-1:0;var r2=bRow?bbox.r1:bbox.r2;var c2=!bRow?bbox.c1:bbox.c2;if(0!==offsetRow||0!==offsetCol)this.getRange3(bbox.r1,bbox.c1,r2,c2)._foreachNoEmpty(function(cell){if(cell.xfs&&cell.xfs.border)t._getCellNoEmpty(cell.nRow+offsetRow,cell.nCol+offsetCol,function(neighbor){if(neighbor&&neighbor.xfs&&neighbor.xfs.border){var newBorder=neighbor.xfs.border.clone();newBorder.intersect(cell.xfs.border,
g_oDefaultFormat.BorderAbs,true);borders[bRow?cell.nCol:cell.nRow]=newBorder}})});return borders};Worksheet.prototype._insertRowsBefore=function(index,count){var t=this;this.workbook.dependencyFormulas.lockRecal();var oActualRange=new Asc.Range(0,index,gc_nMaxCol0,index+count-1);History.Create_NewPoint();var offset=new AscCommon.CellBase(count,0);var renameRes=this.renameDependencyNodes(offset,oActualRange);var redrawTablesArr=this.autoFilters.insertRows("insCell",oActualRange,c_oAscInsertOptions.InsertColumns);
this.updatePivotOffset(oActualRange,offset);this._updateFormulasParents(index,0,gc_nMaxRow0,gc_nMaxCol0,oActualRange,offset,renameRes.shiftedShared);var borders;if(index>0&&!this.workbook.bUndoChanges)borders=this._getBordersForInsert(oActualRange,true);this.rowsData.insertRange(index,count);this.nRowsCount=Math.max(this.nRowsCount,this.rowsData.getSize());this._forEachColData(function(sheetMemory){sheetMemory.insertRange(index,count);t.cellsByColRowsCount=Math.max(t.cellsByColRowsCount,sheetMemory.getSize())});
this.nRowsCount=Math.max(this.nRowsCount,this.cellsByColRowsCount);if(index>0&&!this.workbook.bUndoChanges){this.rowsData.copyRangeByChunk(index-1,1,index,count);this.nRowsCount=Math.max(this.nRowsCount,this.rowsData.getSize());this._forEachColData(function(sheetMemory){sheetMemory.copyRangeByChunk(index-1,1,index,count);t.cellsByColRowsCount=Math.max(t.cellsByColRowsCount,sheetMemory.getSize())});this.nRowsCount=Math.max(this.nRowsCount,this.cellsByColRowsCount);this.getRange3(index,0,index+count-
1,gc_nMaxCol0)._foreachRowNoEmpty(function(row){row.setHidden(false)},function(cell){cell.clearDataKeepXf(borders[cell.nCol])})}this.workbook.dependencyFormulas.notifyChanged(renameRes.changed);History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_AddRows,this.getId(),new Asc.Range(0,index,gc_nMaxCol0,gc_nMaxRow0),new UndoRedoData_FromToRowCol(true,index,index+count-1));this.autoFilters.redrawStylesTables(redrawTablesArr);this.workbook.dependencyFormulas.unlockRecal();return true};
Worksheet.prototype.insertRowsAfter=function(index,count){return this.insertRowsBefore(index+1,count)};Worksheet.prototype.getColsCount=function(){var result=this.nColsCount;var pane=this.sheetViews.length&&this.sheetViews[0].pane;if(pane&&pane.topLeftFrozenCell)result=Math.max(result,pane.topLeftFrozenCell.getCol0());return result};Worksheet.prototype.removeCols=function(start,stop){var oRange=this.getRange(new CellAddress(0,start,0),new CellAddress(gc_nMaxRow0,stop,0));oRange.deleteCellsShiftLeft()};
Worksheet.prototype._removeCols=function(start,stop){var t=this;this.workbook.dependencyFormulas.lockRecal();History.Create_NewPoint();var nDif=-(stop-start+1),i,j,length;var oActualRange=new Asc.Range(start,0,stop,gc_nMaxRow0);var offset=new AscCommon.CellBase(0,nDif);var renameRes=this.renameDependencyNodes(offset,oActualRange);var redrawTablesArr=this.autoFilters.insertColumn(oActualRange,nDif);this.updatePivotOffset(oActualRange,offset);var collapsedInfo=null,lastRowIndex;var oDefColPr=new AscCommonExcel.UndoRedoData_ColProp;
this.getRange3(0,start,gc_nMaxRow0,stop)._foreachColNoEmpty(function(col){var nIndex=col.getIndex();var oOldProps=col.getWidthProp();if(false===oOldProps.isEqual(oDefColPr))History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_ColProp,t.getId(),new Asc.Range(nIndex,0,nIndex,gc_nMaxRow0),new UndoRedoData_IndexSimpleProp(nIndex,false,oOldProps,oDefColPr));col.setStyle(null);lastRowIndex=col.index;if(!t.workbook.bRedoChanges){if(collapsedInfo!==null&&collapsedInfo<col.getOutlineLevel())collapsedInfo=
null;if(col.getCollapsed()){collapsedInfo=col.getOutlineLevel();t.setCollapsedCol(false,null,col)}}},function(cell){t._removeCell(null,null,cell)});if(collapsedInfo!==null&&lastRowIndex===stop){var curCol=this._getCol(stop+1);if(curCol)t.setCollapsedCol(true,null,curCol)}this._updateFormulasParents(0,start,gc_nMaxRow0,gc_nMaxCol0,oActualRange,offset,renameRes.shiftedShared);this.cellsByCol.splice(start,stop-start+1);this.aCols.splice(start,stop-start+1);for(i=start,length=this.aCols.length;i<length;++i){var elem=
this.aCols[i];if(null!=elem)elem.moveHor(nDif)}this.workbook.dependencyFormulas.notifyChanged(renameRes.changed);History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_RemoveCols,this.getId(),new Asc.Range(start,0,gc_nMaxCol0,gc_nMaxRow0),new UndoRedoData_FromToRowCol(false,start,stop));this.autoFilters.redrawStylesTables(redrawTablesArr);this.workbook.dependencyFormulas.unlockRecal();return true};Worksheet.prototype.insertColsBefore=function(index,count){var oRange=this.getRange3(0,
index,gc_nMaxRow0,index+count-1);oRange.addCellsShiftRight()};Worksheet.prototype._insertColsBefore=function(index,count){this.workbook.dependencyFormulas.lockRecal();var oActualRange=new Asc.Range(index,0,index+count-1,gc_nMaxRow0);History.Create_NewPoint();var offset=new AscCommon.CellBase(0,count);var renameRes=this.renameDependencyNodes(offset,oActualRange);var redrawTablesArr=this.autoFilters.insertColumn(oActualRange,count);this.updatePivotOffset(oActualRange,offset);this._updateFormulasParents(0,
index,gc_nMaxRow0,gc_nMaxCol0,oActualRange,offset,renameRes.shiftedShared);var borders;if(index>0&&!this.workbook.bUndoChanges)borders=this._getBordersForInsert(oActualRange,false);this.cellsByCol.splice(gc_nMaxCol0-count+1,count);for(var i=this.cellsByCol.length-1;i>=index;--i){this.cellsByCol[i+count]=this.cellsByCol[i];this.cellsByCol[i]=undefined}this.nColsCount=Math.max(this.nColsCount,this.getColDataLength());this.aCols.splice(gc_nMaxCol0-count+1,count);for(var i=this.aCols.length-1;i>=index;--i){this.aCols[i+
count]=this.aCols[i];this.aCols[i]=undefined;if(this.aCols[i+count])this.aCols[i+count].moveHor(count)}this.nColsCount=Math.max(this.nColsCount,this.aCols.length);if(!this.workbook.bUndoChanges){var oPrevCol=null;if(index>0)oPrevCol=this.aCols[index-1];if(null==oPrevCol&&null!=this.oAllCol)oPrevCol=this.oAllCol;if(null!=oPrevCol){History.LocalChange=true;for(var i=index;i<index+count;++i){var oNewCol=oPrevCol.clone();oNewCol.setHidden(null);oNewCol.BestFit=null;oNewCol.index=i;this.aCols[i]=oNewCol}History.LocalChange=
false}var prevCellsByCol=index>0?this.cellsByCol[index-1]:null;if(prevCellsByCol){for(var i=index;i<index+count;++i)this.cellsByCol[i]=prevCellsByCol.clone();this.nColsCount=Math.max(this.nColsCount,this.getColDataLength());this.getRange3(0,index,gc_nMaxRow0,index+count-1)._foreachNoEmpty(function(cell){cell.clearDataKeepXf(borders[cell.nRow])})}}this.workbook.dependencyFormulas.notifyChanged(renameRes.changed);History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_AddCols,this.getId(),
new Asc.Range(index,0,gc_nMaxCol0,gc_nMaxRow0),new UndoRedoData_FromToRowCol(false,index,index+count-1));this.autoFilters.redrawStylesTables(redrawTablesArr);this.workbook.dependencyFormulas.unlockRecal();return true};Worksheet.prototype.insertColsAfter=function(index,count){return this.insertColsBefore(index+1,count)};Worksheet.prototype.getDefaultWidth=function(){return this.oSheetFormatPr.dDefaultColWidth};Worksheet.prototype.getDefaultFontName=function(){return this.workbook.getDefaultFont()};
Worksheet.prototype.getDefaultFontSize=function(){return this.workbook.getDefaultSize()};Worksheet.prototype.getBaseColWidth=function(){return this.oSheetFormatPr.nBaseColWidth||8};Worksheet.prototype.charCountToModelColWidth=function(count){return this.workbook.charCountToModelColWidth(count)};Worksheet.prototype.modelColWidthToColWidth=function(mcw){return this.workbook.modelColWidthToColWidth(mcw)};Worksheet.prototype.colWidthToCharCount=function(w){return this.workbook.colWidthToCharCount(w)};
Worksheet.prototype.getColWidth=function(index){var col=this._getColNoEmptyWithAll(index);if(null!=col&&null!=col.width)return col.width;var dResult=this.oSheetFormatPr.dDefaultColWidth;if(dResult===undefined||dResult===null||dResult==0)dResult=-1;return dResult};Worksheet.prototype.setColWidth=function(width,start,stop){width=this.charCountToModelColWidth(width);if(0==width)return this.setColHidden(true,start,stop);if(null==start)return;if(null==stop)stop=start;History.Create_NewPoint();var oSelection=
History.GetSelection();if(null!=oSelection){oSelection=oSelection.clone();oSelection.assign(start,0,stop,gc_nMaxRow0);History.SetSelection(oSelection);History.SetSelectionRedo(oSelection)}var bNotAddCollapsed=true==this.workbook.bUndoChanges||true==this.workbook.bRedoChanges||this.bExcludeCollapsed;var _summaryRight=this.sheetPr?this.sheetPr.SummaryRight:true;var oThis=this,prevCol;var fProcessCol=function(col){if(col.width!=width){if(_summaryRight&&!bNotAddCollapsed&&col.getCollapsed())oThis.setCollapsedCol(false,
null,col);else if(!_summaryRight&&!bNotAddCollapsed&&prevCol&&prevCol.getCollapsed())oThis.setCollapsedCol(false,null,prevCol);prevCol=col;var oOldProps=col.getWidthProp();col.width=width;col.CustomWidth=true;col.BestFit=null;col.setHidden(null);oThis.initColumn(col);var oNewProps=col.getWidthProp();if(false==oOldProps.isEqual(oNewProps))History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_ColProp,oThis.getId(),col._getUpdateRange(),new UndoRedoData_IndexSimpleProp(col.index,
false,oOldProps,oNewProps))}};if(0==start&&gc_nMaxCol0==stop){var col=this.getAllCol();fProcessCol(col);for(var i in this.aCols){var col=this.aCols[i];if(null!=col)fProcessCol(col)}}else{if(!_summaryRight)if(!bNotAddCollapsed&&start>0)prevCol=this._getCol(start-1);for(var i=start;i<=stop;i++){var col=this._getCol(i);fProcessCol(col)}if(_summaryRight&&!bNotAddCollapsed&&prevCol){col=this._getCol(stop+1);if(col.getCollapsed())this.setCollapsedCol(false,null,col)}}};Worksheet.prototype.getColHidden=
function(index){var col=this._getColNoEmptyWithAll(index);return col?col.getHidden():false};Worksheet.prototype.setColHidden=function(bHidden,start,stop){if(null==start)return;if(null==stop)stop=start;History.Create_NewPoint();var oThis=this,outlineLevel;var bNotAddCollapsed=true==this.workbook.bUndoChanges||true==this.workbook.bRedoChanges||this.bExcludeCollapsed;var _summaryRight=this.sheetPr?this.sheetPr.SummaryRight:true;var fProcessCol=function(col){if(col&&!bNotAddCollapsed&&outlineLevel!==
undefined&&outlineLevel!==col.getOutlineLevel())if(!_summaryRight)oThis.setCollapsedCol(bHidden,col.index-1);else oThis.setCollapsedCol(bHidden,null,col);outlineLevel=col?col.getOutlineLevel():null;if(col.getHidden()!=bHidden){var oOldProps=col.getWidthProp();if(bHidden){col.setHidden(bHidden);if(null==col.width||true!=col.CustomWidth)col.width=0;col.CustomWidth=true;col.BestFit=null}else{col.setHidden(null);if(0>=col.width)col.width=null}var oNewProps=col.getWidthProp();if(false==oOldProps.isEqual(oNewProps))History.Add(AscCommonExcel.g_oUndoRedoWorksheet,
AscCH.historyitem_Worksheet_ColProp,oThis.getId(),col._getUpdateRange(),new UndoRedoData_IndexSimpleProp(col.index,false,oOldProps,oNewProps))}};if(!bNotAddCollapsed&&!_summaryRight&&start>0){col=this._getCol(start-1);outlineLevel=col.getOutlineLevel()}if(0!=start&&gc_nMaxCol0==stop){var col=null;if(false==bHidden)col=this.oAllCol;else col=this.getAllCol();if(null!=col)fProcessCol(col);for(var i in this.aCols){var col=this.aCols[i];if(null!=col)fProcessCol(col)}}else for(var i=start;i<=stop;i++){var col=
null;if(false==bHidden)col=this._getColNoEmpty(i);else col=this._getCol(i);if(null!=col)fProcessCol(col)}if(!bNotAddCollapsed&&outlineLevel&&_summaryRight){col=this._getCol(stop+1);if(col&&outlineLevel!==col.getOutlineLevel())oThis.setCollapsedCol(bHidden,null,col)}};Worksheet.prototype.setCollapsedCol=function(bCollapse,colIndex,curCol){var oThis=this;var fProcessCol=function(col){var oOldProps=col.getCollapsed();col.setCollapsed(bCollapse);var oNewProps=col.getCollapsed();if(oOldProps!==oNewProps)History.Add(AscCommonExcel.g_oUndoRedoWorksheet,
AscCH.historyitem_Worksheet_CollapsedCol,oThis.getId(),col._getUpdateRange(),new UndoRedoData_IndexSimpleProp(col.index,true,oOldProps,oNewProps))};if(curCol)fProcessCol(curCol);else this.getRange3(0,colIndex,0,colIndex)._foreachCol(fProcessCol)};Worksheet.prototype.setSummaryRight=function(val){if(!this.sheetPr)this.sheetPr=new AscCommonExcel.asc_CSheetPr;History.Create_NewPoint();History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_SetSummaryRight,this.getId(),null,new UndoRedoData_FromTo(this.sheetPr.SummaryRight,
val));this.sheetPr.SummaryRight=val};Worksheet.prototype.setSummaryBelow=function(val){if(!this.sheetPr)this.sheetPr=new AscCommonExcel.asc_CSheetPr;History.Create_NewPoint();History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_SetSummaryBelow,this.getId(),null,new UndoRedoData_FromTo(this.sheetPr.SummaryBelow,val));this.sheetPr.SummaryBelow=val};Worksheet.prototype.setGroupCol=function(bDel,start,stop){var oThis=this;var fProcessCol=function(col){var oOldProps=col.getOutlineLevel();
col.setOutlineLevel(null,bDel);var oNewProps=col.getOutlineLevel();if(oOldProps!==oNewProps)History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_GroupCol,oThis.getId(),col._getUpdateRange(),new UndoRedoData_IndexSimpleProp(col.index,true,oOldProps,oNewProps))};this.getRange3(0,start,0,stop)._foreachCol(fProcessCol)};Worksheet.prototype.setOutlineCol=function(val,start,stop){var oThis=this;var fProcessCol=function(col){var oOldProps=col.getOutlineLevel();col.setOutlineLevel(val);
var oNewProps=col.getOutlineLevel();if(oOldProps!==oNewProps)History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_GroupCol,oThis.getId(),col._getUpdateRange(),new UndoRedoData_IndexSimpleProp(col.index,true,oOldProps,oNewProps))};this.getRange3(0,start,0,stop)._foreachCol(fProcessCol)};Worksheet.prototype.getColCustomWidth=function(index){var isBestFit;var column=this._getColNoEmptyWithAll(index);if(!column)isBestFit=true;else if(column.getHidden())isBestFit=false;else isBestFit=
!!(column.BestFit||null===column.BestFit&&null===column.CustomWidth);return!isBestFit};Worksheet.prototype.setColBestFit=function(bBestFit,width,start,stop){if(null==start)return;if(null==stop)stop=start;History.Create_NewPoint();var oThis=this;var fProcessCol=function(col){var oOldProps=col.getWidthProp();if(bBestFit){col.BestFit=bBestFit;col.setHidden(null)}else col.BestFit=null;col.width=width;oThis.initColumn(col);var oNewProps=col.getWidthProp();if(false==oOldProps.isEqual(oNewProps))History.Add(AscCommonExcel.g_oUndoRedoWorksheet,
AscCH.historyitem_Worksheet_ColProp,oThis.getId(),col._getUpdateRange(),new UndoRedoData_IndexSimpleProp(col.index,false,oOldProps,oNewProps))};if(0!=start&&gc_nMaxCol0==stop){var col=null;if(bBestFit&&oDefaultMetrics.ColWidthChars==width)col=this.oAllCol;else col=this.getAllCol();if(null!=col)fProcessCol(col);for(var i in this.aCols){var col=this.aCols[i];if(null!=col)fProcessCol(col)}}else for(var i=start;i<=stop;i++){var col=null;if(bBestFit&&oDefaultMetrics.ColWidthChars==width)col=this._getColNoEmpty(i);
else col=this._getCol(i);if(null!=col)fProcessCol(col)}};Worksheet.prototype.isDefaultHeightHidden=function(){return null!=this.oSheetFormatPr.oAllRow&&this.oSheetFormatPr.oAllRow.getHidden()};Worksheet.prototype.isDefaultWidthHidden=function(){return null!=this.oAllCol&&this.oAllCol.getHidden()};Worksheet.prototype.setDefaultHeight=function(h){if(this.oSheetFormatPr.oAllRow&&!this.oSheetFormatPr.oAllRow.getCustomHeight())this.oSheetFormatPr.oAllRow.h=h};Worksheet.prototype.getDefaultHeight=function(){var dRes=
null;if(null!=this.oSheetFormatPr.oAllRow&&this.oSheetFormatPr.oAllRow.getCustomHeight())dRes=this.oSheetFormatPr.oAllRow.h;return dRes};Worksheet.prototype.getRowHeight=function(index){var res;this._getRowNoEmptyWithAll(index,function(row){res=row?row.getHeight():-1});return res};Worksheet.prototype.setRowHeight=function(height,start,stop,isCustom){if(0==height)return this.setRowHidden(true,start,stop);if(null==start)return;if(null==stop)stop=start;History.Create_NewPoint();var oThis=this,i;var oSelection=
History.GetSelection();if(null!=oSelection){oSelection=oSelection.clone();oSelection.assign(0,start,gc_nMaxCol0,stop);History.SetSelection(oSelection);History.SetSelectionRedo(oSelection)}var prevRow;var bNotAddCollapsed=true==this.workbook.bUndoChanges||true==this.workbook.bRedoChanges||this.bExcludeCollapsed;var _summaryBelow=this.sheetPr?this.sheetPr.SummaryBelow:true;var fProcessRow=function(row){if(row){if(_summaryBelow&&!bNotAddCollapsed&&row.getCollapsed())oThis.setCollapsedRow(false,null,
row);else if(!_summaryBelow&&!bNotAddCollapsed&&prevRow&&prevRow.getCollapsed())oThis.setCollapsedRow(false,null,prevRow);prevRow=row;var oOldProps=row.getHeightProp();row.setHeight(height);if(isCustom)row.setCustomHeight(true);row.setCalcHeight(true);row.setHidden(false);var oNewProps=row.getHeightProp();if(false===oOldProps.isEqual(oNewProps))History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_RowProp,oThis.getId(),row._getUpdateRange(),new UndoRedoData_IndexSimpleProp(row.index,
true,oOldProps,oNewProps))}};if(0==start&&gc_nMaxRow0==stop){fProcessRow(this.getAllRow());this._forEachRow(fProcessRow)}else{if(!_summaryBelow)if(!bNotAddCollapsed&&start>0)this._getRow(start-1,function(row){prevRow=row});this.getRange3(start,0,stop,0)._foreachRow(fProcessRow);if(_summaryBelow)if(!bNotAddCollapsed&&prevRow)this._getRow(stop+1,function(row){if(row.getCollapsed())oThis.setCollapsedRow(false,null,row)})}if(this.needRecalFormulas(start,stop))this.workbook.dependencyFormulas.calcTree()};
Worksheet.prototype.getRowHidden=function(index){var res;this._getRowNoEmptyWithAll(index,function(row){res=row?row.getHidden():false});return res};Worksheet.prototype.setRowHidden=function(bHidden,start,stop){if(null==start)return;if(null==stop)stop=start;History.Create_NewPoint();var oThis=this,i;var startIndex=null,endIndex=null,updateRange,outlineLevel;var bNotAddCollapsed=true==this.workbook.bUndoChanges||true==this.workbook.bRedoChanges||this.bExcludeCollapsed;var _summaryBelow=this.sheetPr?
this.sheetPr.SummaryBelow:true;var fProcessRow=function(row){if(row&&!bNotAddCollapsed&&outlineLevel!==undefined&&outlineLevel!==row.getOutlineLevel())if(!_summaryBelow)oThis.setCollapsedRow(bHidden,row.index-1);else oThis.setCollapsedRow(bHidden,null,row);outlineLevel=row?row.getOutlineLevel():null;if(row&&bHidden!=row.getHidden()){row.setHidden(bHidden);if(row.index===endIndex+1&&startIndex!==null)endIndex++;else{if(startIndex!==null){updateRange=new Asc.Range(0,startIndex,gc_nMaxCol0,endIndex);
History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_RowHide,oThis.getId(),updateRange,new UndoRedoData_FromToRowCol(bHidden,startIndex,endIndex))}startIndex=row.index;endIndex=row.index}}};if(0==start&&gc_nMaxRow0==stop);else{if(!_summaryBelow&&start>0&&!bNotAddCollapsed)this._getRow(start-1,function(row){if(row)outlineLevel=row.getOutlineLevel()});for(i=start;i<=stop;++i)false==bHidden?this._getRowNoEmpty(i,fProcessRow):this._getRow(i,fProcessRow);if(_summaryBelow&&outlineLevel&&
!bNotAddCollapsed)this._getRow(stop+1,function(row){if(row&&outlineLevel!==row.getOutlineLevel())oThis.setCollapsedRow(bHidden,null,row)});if(startIndex!==null){updateRange=new Asc.Range(0,startIndex,gc_nMaxCol0,endIndex);History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_RowHide,oThis.getId(),updateRange,new UndoRedoData_FromToRowCol(bHidden,startIndex,endIndex))}}if(this.needRecalFormulas(start,stop))this.workbook.dependencyFormulas.calcTree()};Worksheet.prototype.setCollapsedRow=
function(bCollapse,rowIndex,curRow){var oThis=this;var fProcessRow=function(row,bSave){var oOldProps=row.getCollapsed();row.setCollapsed(bCollapse);var oNewProps=row.getCollapsed();if(oOldProps!==oNewProps)History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_CollapsedRow,oThis.getId(),row._getUpdateRange(),new UndoRedoData_IndexSimpleProp(row.index,true,oOldProps,oNewProps));if(bSave)row.saveContent(true)};if(curRow)fProcessRow(curRow,true);else this.getRange3(rowIndex,0,rowIndex,
0)._foreachRow(fProcessRow)};Worksheet.prototype.setGroupRow=function(bDel,start,stop){var oThis=this;var fProcessRow=function(row){var oOldProps=row.getOutlineLevel();row.setOutlineLevel(null,bDel);var oNewProps=row.getOutlineLevel();if(oOldProps!==oNewProps)History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_GroupRow,oThis.getId(),row._getUpdateRange(),new UndoRedoData_IndexSimpleProp(row.index,true,oOldProps,oNewProps))};this.getRange3(start,0,stop,0)._foreachRow(fProcessRow)};
Worksheet.prototype.setOutlineRow=function(val,start,stop){var oThis=this;var fProcessRow=function(row){var oOldProps=row.getOutlineLevel();row.setOutlineLevel(val);var oNewProps=row.getOutlineLevel();if(oOldProps!==oNewProps)History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_GroupRow,oThis.getId(),row._getUpdateRange(),new UndoRedoData_IndexSimpleProp(row.index,true,oOldProps,oNewProps))};this.getRange3(start,0,stop,0)._foreachRow(fProcessRow)};Worksheet.prototype.getRowCustomHeight=
function(index){var isCustomHeight=false;this._getRowNoEmptyWithAll(index,function(row){if(!row)isCustomHeight=false;else if(row.getHidden())isCustomHeight=true;else isCustomHeight=row.getCustomHeight()});return isCustomHeight};Worksheet.prototype.setRowBestFit=function(bBestFit,height,start,stop){if(null==start)return;if(null==stop)stop=start;History.Create_NewPoint();var oThis=this,i;var isDefaultProp=true==bBestFit&&oDefaultMetrics.RowHeight==height;var fProcessRow=function(row){if(row){var oOldProps=
row.getHeightProp();row.setCustomHeight(!bBestFit);row.setCalcHeight(true);row.setHeight(height);var oNewProps=row.getHeightProp();if(false==oOldProps.isEqual(oNewProps))History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_RowProp,oThis.getId(),row._getUpdateRange(),new UndoRedoData_IndexSimpleProp(row.index,true,oOldProps,oNewProps))}};if(0==start&&gc_nMaxRow0==stop){fProcessRow(isDefaultProp?this.oSheetFormatPr.oAllRow:this.getAllRow());this._forEachRow(fProcessRow)}else{var range=
this.getRange3(start,0,stop,0);if(isDefaultProp)range._foreachRowNoEmpty(fProcessRow);else range._foreachRow(fProcessRow)}this.workbook.dependencyFormulas.calcTree()};Worksheet.prototype.getCell=function(oCellAdd){return this.getRange(oCellAdd,oCellAdd)};Worksheet.prototype.getCell2=function(sCellAdd){if(sCellAdd.indexOf("$")>-1)sCellAdd=sCellAdd.replace(/\$/g,"");return this.getRange2(sCellAdd)};Worksheet.prototype.getCell3=function(r1,c1){return this.getRange3(r1,c1,r1,c1)};Worksheet.prototype.getRange=
function(cellAdd1,cellAdd2){var nRow1=cellAdd1.getRow0();var nCol1=cellAdd1.getCol0();var nRow2=cellAdd2.getRow0();var nCol2=cellAdd2.getCol0();return this.getRange3(nRow1,nCol1,nRow2,nCol2)};Worksheet.prototype.getRange2=function(sRange){var bbox=AscCommonExcel.g_oRangeCache.getAscRange(sRange);if(null!=bbox)return Range.prototype.createFromBBox(this,bbox);return null};Worksheet.prototype.getRange3=function(r1,c1,r2,c2){var nRowMin=r1;var nRowMax=r2;var nColMin=c1;var nColMax=c2;if(r1>r2){nRowMax=
r1;nRowMin=r2}if(c1>c2){nColMax=c1;nColMin=c2}return new Range(this,nRowMin,nColMin,nRowMax,nColMax)};Worksheet.prototype.getRange4=function(r,c){return new Range(this,r,c,r,c)};Worksheet.prototype.getRowIterator=function(r1,c1,c2,callback){var it=new RowIterator;it.init(this,r1,c1,c2);callback(it);it.release()};Worksheet.prototype._removeCell=function(nRow,nCol,cell){var t=this;var processCell=function(cell){if(null!=cell){var sheetId=t.getId();if(false==cell.isEmpty()){var oUndoRedoData_CellData=
new AscCommonExcel.UndoRedoData_CellData(cell.getValueData(),null);if(null!=cell.xfs)oUndoRedoData_CellData.style=cell.xfs.clone();cell.setFormulaInternal(null);History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_RemoveCell,sheetId,new Asc.Range(nCol,nRow,nCol,nRow),new UndoRedoData_CellSimpleData(nRow,nCol,oUndoRedoData_CellData,null))}t.workbook.dependencyFormulas.addToChangedCell(cell);cell.clearData();cell.saveContent(true)}};if(null!=cell){nRow=cell.nRow;nCol=cell.nCol;
processCell(cell)}else this._getCellNoEmpty(nRow,nCol,processCell)};Worksheet.prototype._getCell=function(row,col,fAction){var wb=this.workbook;var targetCell=null;for(var k=0;k<wb.loadCells.length;++k){var elem=wb.loadCells[k];if(elem.nRow==row&&elem.nCol==col&&this===elem.ws){targetCell=elem;break}}if(null===targetCell){var cell=new Cell(this);wb.loadCells.push(cell);if(!cell.loadContent(row,col))this._initCell(cell,row,col);fAction(cell);cell.saveContent(true);wb.loadCells.pop()}else fAction(targetCell)};
Worksheet.prototype._initRow=function(row,index){var t=this;row.setChanged(true);if(null!=this.oSheetFormatPr.oAllRow){row.copyFrom(this.oSheetFormatPr.oAllRow);row.setIndex(index)}this.nRowsCount=index>=this.nRowsCount?index+1:this.nRowsCount};Worksheet.prototype._initCell=function(cell,nRow,nCol){var t=this;cell.setChanged(true);this._getRowNoEmpty(nRow,function(row){var oCol=t._getColNoEmptyWithAll(nCol);var xfs=null;if(row&&null!=row.xfs)xfs=row.xfs.clone();else if(null!=oCol&&null!=oCol.xfs)xfs=
oCol.xfs.clone();cell.setStyleInternal(xfs);t.cellsByColRowsCount=Math.max(t.cellsByColRowsCount,nRow+1);t.nRowsCount=Math.max(t.nRowsCount,t.cellsByColRowsCount);if(nCol>=t.nColsCount)t.nColsCount=nCol+1});var sheetMemory=this.getColData(nCol);sheetMemory.checkSize(nRow)};Worksheet.prototype._getCellNoEmpty=function(row,col,fAction){var wb=this.workbook;var targetCell=null;for(var k=0;k<wb.loadCells.length;++k){var elem=wb.loadCells[k];if(elem.nRow==row&&elem.nCol==col&&this===elem.ws){targetCell=
elem;break}}if(null===targetCell){var cell=new Cell(this);var res=cell.loadContent(row,col)?cell:null;if(res&&fAction)wb.loadCells.push(cell);fAction(res);cell.saveContent(true);if(res)wb.loadCells.pop()}else fAction(targetCell)};Worksheet.prototype._getRowNoEmpty=function(nRow,fAction){var row=new AscCommonExcel.Row(this);if(row.loadContent(nRow)){fAction(row);row.saveContent(true)}else fAction(null)};Worksheet.prototype._getRowNoEmptyWithAll=function(nRow,fAction){var t=this;this._getRowNoEmpty(nRow,
function(row){if(!row)row=t.oSheetFormatPr.oAllRow;fAction(row)})};Worksheet.prototype._getColNoEmpty=function(col){return this.aCols[col]||null};Worksheet.prototype._getColNoEmptyWithAll=function(col){return this._getColNoEmpty(col)||this.oAllCol};Worksheet.prototype._getRow=function(index,fAction){var row=null;if(g_nAllRowIndex==index)row=this.getAllRow();else{row=new AscCommonExcel.Row(this);if(!row.loadContent(index))this._initRow(row,index)}fAction(row);row.saveContent(true)};Worksheet.prototype._getCol=
function(index){var oCurCol;if(g_nAllColIndex==index)oCurCol=this.getAllCol();else{oCurCol=this.aCols[index];if(null==oCurCol){if(null!=this.oAllCol){oCurCol=this.oAllCol.clone();oCurCol.index=index}else oCurCol=new AscCommonExcel.Col(this,index);this.aCols[index]=oCurCol;this.nColsCount=index>=this.nColsCount?index+1:this.nColsCount}}return oCurCol};Worksheet.prototype._prepareMoveRangeGetCleanRanges=function(oBBoxFrom,oBBoxTo,wsTo){var intersection=oBBoxFrom.intersectionSimple(oBBoxTo);var aRangesToCheck=
[];if(null!=intersection&&this===wsTo){var oThis=this;var fAddToRangesToCheck=function(aRangesToCheck,r1,c1,r2,c2){if(r1<=r2&&c1<=c2)aRangesToCheck.push(oThis.getRange3(r1,c1,r2,c2))};if(intersection.r1==oBBoxTo.r1&&intersection.c1==oBBoxTo.c1){fAddToRangesToCheck(aRangesToCheck,oBBoxTo.r1,intersection.c2+1,intersection.r2,oBBoxTo.c2);fAddToRangesToCheck(aRangesToCheck,intersection.r2+1,oBBoxTo.c1,oBBoxTo.r2,oBBoxTo.c2)}else if(intersection.r2==oBBoxTo.r2&&intersection.c1==oBBoxTo.c1){fAddToRangesToCheck(aRangesToCheck,
oBBoxTo.r1,oBBoxTo.c1,intersection.r1-1,oBBoxTo.c2);fAddToRangesToCheck(aRangesToCheck,intersection.r1,intersection.c2+1,oBBoxTo.r2,oBBoxTo.c2)}else if(intersection.r1==oBBoxTo.r1&&intersection.c2==oBBoxTo.c2){fAddToRangesToCheck(aRangesToCheck,oBBoxTo.r1,oBBoxTo.c1,intersection.r2,intersection.c1-1);fAddToRangesToCheck(aRangesToCheck,intersection.r2+1,oBBoxTo.c1,oBBoxTo.r2,oBBoxTo.c2)}else if(intersection.r2==oBBoxTo.r2&&intersection.c2==oBBoxTo.c2){fAddToRangesToCheck(aRangesToCheck,oBBoxTo.r1,
oBBoxTo.c1,intersection.r1-1,oBBoxTo.c2);fAddToRangesToCheck(aRangesToCheck,intersection.r1,oBBoxTo.c1,oBBoxTo.r2,intersection.c1-1)}}else aRangesToCheck.push(wsTo.getRange3(oBBoxTo.r1,oBBoxTo.c1,oBBoxTo.r2,oBBoxTo.c2));return aRangesToCheck};Worksheet.prototype._prepareMoveRange=function(oBBoxFrom,oBBoxTo,wsTo){var res=0;if(!wsTo)wsTo=this;if(oBBoxFrom.isEqual(oBBoxTo)&&this===wsTo)return res;var range=wsTo.getRange3(oBBoxTo.r1,oBBoxTo.c1,oBBoxTo.r2,oBBoxTo.c2);var aMerged=wsTo.mergeManager.get(range.getBBox0());
if(aMerged.outer.length>0)return-2;var aRangesToCheck=this._prepareMoveRangeGetCleanRanges(oBBoxFrom,oBBoxTo,wsTo);for(var i=0,length=aRangesToCheck.length;i<length;i++){range=aRangesToCheck[i];range._foreachNoEmpty(function(cell){if(!cell.isNullTextString()){res=-1;return res}});if(0!=res)return res}return res};Worksheet.prototype._moveMergedAndHyperlinksPrepare=function(oBBoxFrom,oBBoxTo,copyRange,wsTo,offset){var res={merged:[],hyperlinks:[]};if(!(false==this.workbook.bUndoChanges&&(false==this.workbook.bRedoChanges||
this.workbook.bCollaborativeChanges)))return res;var i,elem,bbox,data,wsFrom=this;var intersection=oBBoxFrom.intersectionSimple(oBBoxTo);History.LocalChange=true;var merged=wsFrom.mergeManager.get(oBBoxFrom).inner;var mergedToRemove;if(!copyRange)mergedToRemove=merged;else if(null!==intersection)mergedToRemove=wsFrom.mergeManager.get(intersection).all;if(mergedToRemove)for(i=0;i<mergedToRemove.length;i++)wsFrom.mergeManager.removeElement(mergedToRemove[i]);var hyperlinks=wsFrom.hyperlinkManager.get(oBBoxFrom).inner;
if(!copyRange)for(i=0;i<hyperlinks.length;i++)wsFrom.hyperlinkManager.removeElement(hyperlinks[i]);History.LocalChange=false;res.merged=merged;res.hyperlinks=hyperlinks;return res};Worksheet.prototype._moveMergedAndHyperlinks=function(prepared,oBBoxFrom,oBBoxTo,copyRange,wsTo,offset){var i,elem,bbox,data;var intersection=oBBoxFrom.intersectionSimple(oBBoxTo);History.LocalChange=true;for(i=0;i<prepared.merged.length;i++){elem=prepared.merged[i];bbox=copyRange?elem.bbox.clone():elem.bbox;bbox.setOffset(offset);
wsTo.mergeManager.add(bbox,elem.data)}if(!copyRange||null===intersection)for(i=0;i<prepared.hyperlinks.length;i++){elem=prepared.hyperlinks[i];if(copyRange){bbox=elem.bbox.clone();data=elem.data.clone()}else{bbox=elem.bbox;data=elem.data}bbox.setOffset(offset);wsTo.hyperlinkManager.add(bbox,data)}History.LocalChange=false};Worksheet.prototype._moveCleanRanges=function(oBBoxFrom,oBBoxTo,copyRange,wsTo){var cleanRanges=this._prepareMoveRangeGetCleanRanges(oBBoxFrom,oBBoxTo,wsTo);for(var i=0;i<cleanRanges.length;i++){var range=
cleanRanges[i];range.cleanAll();if(!copyRange)this.workbook.dependencyFormulas.deleteNodes(wsTo.getId(),range.getBBox0())}};Worksheet.prototype._moveFormulas=function(oBBoxFrom,oBBoxTo,copyRange,wsTo,offset){if(!copyRange)this.workbook.dependencyFormulas.move(this.Id,oBBoxFrom,offset,wsTo.getId());this.getRange3(oBBoxFrom.r1,oBBoxFrom.c1,oBBoxFrom.r2,oBBoxFrom.c2)._foreachNoEmpty(function(cell){if(cell.transformSharedFormula()){var parsed=cell.getFormulaParsed();parsed.buildDependencies()}})};Worksheet.prototype._moveCells=
function(oBBoxFrom,oBBoxTo,copyRange,wsTo,offset){var oThis=this;var nRowsCountNew=0;var nColsCountNew=0;var dependencyFormulas=oThis.workbook.dependencyFormulas;var moveToOtherSheet=this!==wsTo;var isClearFromArea=!copyRange||copyRange&&oThis.workbook.bUndoChanges;var moveCells=function(copyRange,from,to,r1From,r1To,count){var fromData=oThis.getColDataNoEmpty(from);var toData;if(fromData){toData=wsTo.getColData(to);toData.copyRange(fromData,r1From,r1To,count);if(isClearFromArea)if(from!==to||moveToOtherSheet)fromData.clear(r1From,
r1From+count);else if(r1From<r1To)fromData.clear(r1From,Math.min(r1From+count,r1To));else fromData.clear(Math.max(r1From,r1To+count),r1From+count)}else{toData=wsTo.getColDataNoEmpty(to);if(toData)toData.clear(r1To,r1To+count)}if(toData){nRowsCountNew=Math.max(nRowsCountNew,toData.getSize());nColsCountNew=Math.max(nColsCountNew,to+1)}};if(oBBoxFrom.c1<oBBoxTo.c1)for(var i=0;i<oBBoxFrom.c2-oBBoxFrom.c1+1;++i)moveCells(copyRange,oBBoxFrom.c2-i,oBBoxTo.c2-i,oBBoxFrom.r1,oBBoxTo.r1,oBBoxFrom.r2-oBBoxFrom.r1+
1);else for(var i=0;i<oBBoxFrom.c2-oBBoxFrom.c1+1;++i)moveCells(copyRange,oBBoxFrom.c1+i,oBBoxTo.c1+i,oBBoxFrom.r1,oBBoxTo.r1,oBBoxFrom.r2-oBBoxFrom.r1+1);History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_MoveRange,this.getId(),new Asc.Range(0,0,gc_nMaxCol0,gc_nMaxRow0),new UndoRedoData_FromTo(new UndoRedoData_BBox(oBBoxFrom),new UndoRedoData_BBox(oBBoxTo),copyRange,wsTo.getId()));if(moveToOtherSheet)History.AddToUpdatesRegions(oBBoxTo,wsTo.getId());var shiftedArrayFormula=
{};var oldNewArrayFormulaMap={};wsTo.cellsByColRowsCount=Math.max(wsTo.cellsByColRowsCount,nRowsCountNew);wsTo.nRowsCount=Math.max(wsTo.nRowsCount,wsTo.cellsByColRowsCount);wsTo.nColsCount=Math.max(wsTo.nColsCount,nColsCountNew);wsTo.getRange3(oBBoxTo.r1,oBBoxTo.c1,oBBoxTo.r2,oBBoxTo.c2)._foreachNoEmpty(function(cell){var formula=cell.getFormulaParsed();if(formula){var cellWithFormula=formula.getParent();var arrayFormula=formula.getArrayFormulaRef();var newArrayRef,newFormula;var preMoveCell={nRow:cell.nRow-
offset.row,nCol:cell.nCol-offset.col};var isFirstCellArray=formula.checkFirstCellArray(preMoveCell)&&!shiftedArrayFormula[formula.getListenerId()];if(copyRange){History.TurnOff();if(!arrayFormula||arrayFormula&&isFirstCellArray){newFormula=oThis._moveCellsFormula(cell,formula,cellWithFormula,copyRange,oBBoxFrom,wsTo);cellWithFormula=newFormula.getParent();cellWithFormula=new CCellWithFormula(wsTo,cell.nRow,cell.nCol);newFormula=newFormula.clone(null,cellWithFormula,wsTo);newFormula.changeOffset(offset,
false,true);newFormula.setFormulaString(newFormula.assemble(true));cell.setFormulaInternal(newFormula,!isClearFromArea);if(isFirstCellArray){newArrayRef=arrayFormula.clone();newArrayRef.setOffset(offset);newFormula.setArrayFormulaRef(newArrayRef);shiftedArrayFormula[newFormula.getListenerId()]=1;oldNewArrayFormulaMap[formula.getListenerId()]=newFormula}}else if(arrayFormula&&oldNewArrayFormulaMap[formula.getListenerId()])cell.setFormulaInternal(oldNewArrayFormulaMap[formula.getListenerId()],!isClearFromArea);
History.TurnOn()}else if(arrayFormula){if(isFirstCellArray){newFormula=oThis._moveCellsFormula(cell,formula,cellWithFormula,copyRange,oBBoxFrom,wsTo);cellWithFormula=newFormula.getParent();shiftedArrayFormula[formula.getListenerId()]=1;newArrayRef=arrayFormula.clone();newArrayRef.setOffset(offset);newFormula.setArrayFormulaRef(newArrayRef);cellWithFormula.ws=wsTo;cellWithFormula.nRow=cell.nRow;cellWithFormula.nCol=cell.nCol}}else{newFormula=oThis._moveCellsFormula(cell,formula,cellWithFormula,copyRange,
oBBoxFrom,wsTo);cellWithFormula=newFormula.getParent();cellWithFormula.ws=wsTo;cellWithFormula.nRow=cell.nRow;cellWithFormula.nCol=cell.nCol}if(arrayFormula){if(isFirstCellArray){dependencyFormulas.addToBuildDependencyArray(formula);if(newFormula)dependencyFormulas.addToBuildDependencyArray(newFormula)}}else dependencyFormulas.addToBuildDependencyCell(cell)}})};Worksheet.prototype._moveCellsFormula=function(cell,formula,cellWithFormula,copyRange,oBBoxFrom,wsTo){if(this!==wsTo)if(copyRange||!this.workbook.bUndoChanges){cellWithFormula=
new CCellWithFormula(wsTo,cell.nRow,cell.nCol);formula=formula.clone(null,cellWithFormula,wsTo);if(!copyRange)formula.convertTo3DRefs(oBBoxFrom);formula.moveToSheet(this,wsTo);formula.setFormulaString(formula.assemble(true));cell.setFormulaParsed(formula)}else{formula.moveToSheet(this,wsTo);formula.setFormulaString(formula.assemble(true))}return formula};Worksheet.prototype._moveRange=function(oBBoxFrom,oBBoxTo,copyRange,wsTo){if(!wsTo)wsTo=this;if(oBBoxFrom.isEqual(oBBoxTo)&&this===wsTo)return;History.Create_NewPoint();
History.StartTransaction();this.workbook.dependencyFormulas.lockRecal();var offset=new AscCommon.CellBase(oBBoxTo.r1-oBBoxFrom.r1,oBBoxTo.c1-oBBoxFrom.c1);var prepared=this._moveMergedAndHyperlinksPrepare(oBBoxFrom,oBBoxTo,copyRange,wsTo,offset);this._moveCleanRanges(oBBoxFrom,oBBoxTo,copyRange,wsTo);this._moveFormulas(oBBoxFrom,oBBoxTo,copyRange,wsTo,offset);this._moveCells(oBBoxFrom,oBBoxTo,copyRange,wsTo,offset);this._moveMergedAndHyperlinks(prepared,oBBoxFrom,oBBoxTo,copyRange,wsTo,offset);if(true==
this.workbook.bUndoChanges||true==this.workbook.bRedoChanges)wsTo.autoFilters.unmergeTablesAfterMove(oBBoxTo);if(false==this.workbook.bUndoChanges&&false==this.workbook.bRedoChanges)this.autoFilters._moveAutoFilters(oBBoxTo,oBBoxFrom,null,copyRange,true,oBBoxFrom,wsTo);this.workbook.dependencyFormulas.unlockRecal();History.EndTransaction();return true};Worksheet.prototype._shiftCellsLeft=function(oBBox){var t=this;var nLeft=oBBox.c1;var nRight=oBBox.c2;var dif=nLeft-nRight-1;var oActualRange=new Asc.Range(nLeft,
oBBox.r1,gc_nMaxCol0,oBBox.r2);var offset=new AscCommon.CellBase(0,dif);var renameRes=this.renameDependencyNodes(offset,oBBox);var redrawTablesArr=this.autoFilters.insertColumn(oBBox,dif);this.getRange3(oBBox.r1,oBBox.c1,oBBox.r2,oBBox.c2)._foreachNoEmpty(function(cell){t._removeCell(null,null,cell)});this._updateFormulasParents(oActualRange.r1,oActualRange.c1,oActualRange.r2,oActualRange.c2,oBBox,offset,renameRes.shiftedShared);var cellsByColLength=this.getColDataLength();for(var i=nRight+1;i<cellsByColLength;++i){var sheetMemoryFrom=
this.getColDataNoEmpty(i);if(sheetMemoryFrom){this.getColData(i+dif).copyRange(sheetMemoryFrom,oBBox.r1,oBBox.r1,oBBox.r2-oBBox.r1+1);sheetMemoryFrom.clear(oBBox.r1,oBBox.r2+1)}}this.workbook.dependencyFormulas.notifyChanged(renameRes.changed);History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_ShiftCellsLeft,this.getId(),oActualRange,new UndoRedoData_BBox(oBBox));this.autoFilters.redrawStylesTables(redrawTablesArr)};Worksheet.prototype._shiftCellsUp=function(oBBox){var t=
this;var nTop=oBBox.r1;var nBottom=oBBox.r2;var dif=nTop-nBottom-1;var oActualRange=new Asc.Range(oBBox.c1,oBBox.r1,oBBox.c2,gc_nMaxRow0);var offset=new AscCommon.CellBase(dif,0);var renameRes=this.renameDependencyNodes(offset,oBBox);var redrawTablesArr=this.autoFilters.insertRows("delCell",oBBox,c_oAscDeleteOptions.DeleteCellsAndShiftTop);this.getRange3(oBBox.r1,oBBox.c1,oBBox.r2,oBBox.c2)._foreachNoEmpty(function(cell){t._removeCell(null,null,cell)});this._updateFormulasParents(oActualRange.r1,
oActualRange.c1,oActualRange.r2,oActualRange.c2,oBBox,offset,renameRes.shiftedShared);for(var i=oBBox.c1;i<=oBBox.c2;++i){var sheetMemory=this.getColDataNoEmpty(i);if(sheetMemory)sheetMemory.deleteRange(nTop,-dif)}this.workbook.dependencyFormulas.notifyChanged(renameRes.changed);History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_ShiftCellsTop,this.getId(),oActualRange,new UndoRedoData_BBox(oBBox));this.autoFilters.redrawStylesTables(redrawTablesArr)};Worksheet.prototype._shiftCellsRight=
function(oBBox,displayNameFormatTable){var nLeft=oBBox.c1;var nRight=oBBox.c2;var dif=nRight-nLeft+1;var oActualRange=new Asc.Range(oBBox.c1,oBBox.r1,gc_nMaxCol0,oBBox.r2);var offset=new AscCommon.CellBase(0,dif);var renameRes=this.renameDependencyNodes(offset,oBBox);var redrawTablesArr=this.autoFilters.insertColumn(oBBox,dif,displayNameFormatTable);this._updateFormulasParents(oActualRange.r1,oActualRange.c1,oActualRange.r2,oActualRange.c2,oBBox,offset,renameRes.shiftedShared);var borders;if(nLeft>
0&&!this.workbook.bUndoChanges)borders=this._getBordersForInsert(oBBox,false);var cellsByColLength=this.getColDataLength();for(var i=cellsByColLength-1;i>=nLeft;--i){var sheetMemoryFrom=this.getColDataNoEmpty(i);if(sheetMemoryFrom){if(i+dif<=gc_nMaxCol0)this.getColData(i+dif).copyRange(sheetMemoryFrom,oBBox.r1,oBBox.r1,oBBox.r2-oBBox.r1+1);sheetMemoryFrom.clear(oBBox.r1,oBBox.r2+1)}}this.nColsCount=Math.max(this.nColsCount,this.getColDataLength());if(nLeft>0&&!this.workbook.bUndoChanges){var prevSheetMemory=
this.getColDataNoEmpty(nLeft-1);if(prevSheetMemory){for(var i=nLeft;i<=nRight;++i)this.getColData(i).copyRange(prevSheetMemory,oBBox.r1,oBBox.r1,oBBox.r2-oBBox.r1+1);this.nColsCount=Math.max(this.nColsCount,this.getColDataLength());this.getRange3(oBBox.r1,oBBox.c1,oBBox.r2,oBBox.c2)._foreachNoEmpty(function(cell){cell.clearDataKeepXf(borders[cell.nRow])})}}this.workbook.dependencyFormulas.notifyChanged(renameRes.changed);History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_ShiftCellsRight,
this.getId(),oActualRange,new UndoRedoData_BBox(oBBox));this.autoFilters.redrawStylesTables(redrawTablesArr)};Worksheet.prototype._shiftCellsBottom=function(oBBox,displayNameFormatTable){var t=this;var nTop=oBBox.r1;var nBottom=oBBox.r2;var dif=nBottom-nTop+1;var oActualRange=new Asc.Range(oBBox.c1,oBBox.r1,oBBox.c2,gc_nMaxRow0);var offset=new AscCommon.CellBase(dif,0);var renameRes=this.renameDependencyNodes(offset,oBBox);var redrawTablesArr;if(!this.workbook.bUndoChanges&&undefined===displayNameFormatTable)redrawTablesArr=
this.autoFilters.insertRows("insCell",oBBox,c_oAscInsertOptions.InsertCellsAndShiftDown,displayNameFormatTable);this._updateFormulasParents(oActualRange.r1,oActualRange.c1,oActualRange.r2,oActualRange.c2,oBBox,offset,renameRes.shiftedShared);var borders;if(nTop>0&&!this.workbook.bUndoChanges)borders=this._getBordersForInsert(oBBox,true);for(var i=oBBox.c1;i<=oBBox.c2;++i){var sheetMemory=this.getColDataNoEmpty(i);if(sheetMemory){sheetMemory.insertRange(nTop,dif);t.cellsByColRowsCount=Math.max(t.cellsByColRowsCount,
sheetMemory.getSize())}}this.nRowsCount=Math.max(this.nRowsCount,this.cellsByColRowsCount);if(nTop>0&&!this.workbook.bUndoChanges){for(var i=oBBox.c1;i<=oBBox.c2;++i){var sheetMemory=this.getColDataNoEmpty(i);if(sheetMemory){sheetMemory.copyRangeByChunk(nTop-1,1,nTop,dif);t.cellsByColRowsCount=Math.max(t.cellsByColRowsCount,sheetMemory.getSize())}}this.nRowsCount=Math.max(this.nRowsCount,this.cellsByColRowsCount);this.getRange3(oBBox.r1,oBBox.c1,oBBox.r2,oBBox.c2)._foreachNoEmpty(function(cell){cell.clearDataKeepXf(borders[cell.nCol])})}this.workbook.dependencyFormulas.notifyChanged(renameRes.changed);
History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_ShiftCellsBottom,this.getId(),oActualRange,new UndoRedoData_BBox(oBBox));if(!this.workbook.bUndoChanges&&undefined!==displayNameFormatTable)redrawTablesArr=this.autoFilters.insertRows("insCell",oBBox,c_oAscInsertOptions.InsertCellsAndShiftDown,displayNameFormatTable);if(!this.workbook.bUndoChanges)this.autoFilters.redrawStylesTables(redrawTablesArr)};Worksheet.prototype._setIndex=function(ind){this.index=ind};Worksheet.prototype._BuildDependencies=
function(cellRange){var ca;for(var i in cellRange){if(null===cellRange[i]){cellRange[i]=i;continue}ca=g_oCellAddressUtils.getCellAddress(i);this._getCellNoEmpty(ca.getRow0(),ca.getCol0(),function(c){if(c)c._BuildDependencies(true)})}};Worksheet.prototype._setHandlersTablePart=function(){if(!this.TableParts)return;for(var i=0;i<this.TableParts.length;i++)this.TableParts[i].setHandlers(this.handlers)};Worksheet.prototype.getTableRangeForFormula=function(name,objectParam){var res=null;if(!this.TableParts||
!name)return res;for(var i=0;i<this.TableParts.length;i++)if(this.TableParts[i].DisplayName.toLowerCase()===name.toLowerCase()){res=this.TableParts[i].getTableRangeForFormula(objectParam);break}return res};Worksheet.prototype.getTableIndexColumnByName=function(tableName,columnName){var res=null;if(!this.TableParts||!tableName)return res;for(var i=0;i<this.TableParts.length;i++)if(this.TableParts[i].DisplayName.toLowerCase()===tableName.toLowerCase()){res=this.TableParts[i].getTableIndexColumnByName(columnName);
break}return res};Worksheet.prototype.getTableNameColumnByIndex=function(tableName,columnIndex){var res=null;if(!this.TableParts||!tableName)return res;for(var i=0;i<this.TableParts.length;i++)if(this.TableParts[i].DisplayName.toLowerCase()===tableName.toLowerCase()){res=this.TableParts[i].getTableNameColumnByIndex(columnIndex);break}return res};Worksheet.prototype.getTableByName=function(tableName){var res=null;if(!this.TableParts||!tableName)return res;for(var i=0;i<this.TableParts.length;i++)if(this.TableParts[i].DisplayName.toLowerCase()===
tableName.toLowerCase()){res=this.TableParts[i];break}return res};Worksheet.prototype.isApplyFilterBySheet=function(){var res=false;if(this.AutoFilter&&this.AutoFilter.isApplyAutoFilter())res=true;if(false===res&&this.TableParts)for(var i=0;i<this.TableParts.length;i++)if(true===this.TableParts[i].isApplyAutoFilter()){res=true;break}return res};Worksheet.prototype.getTableNames=function(){var res=[];if(this.TableParts)for(var i=0;i<this.TableParts.length;i++)res.push(this.TableParts[i].DisplayName);
return res};Worksheet.prototype.renameDependencyNodes=function(offset,oBBox){return this.workbook.dependencyFormulas.shift(this.Id,oBBox,offset)};Worksheet.prototype.getAllCol=function(){if(null==this.oAllCol)this.oAllCol=new AscCommonExcel.Col(this,g_nAllColIndex);return this.oAllCol};Worksheet.prototype.getAllRow=function(){if(null==this.oSheetFormatPr.oAllRow){this.oSheetFormatPr.oAllRow=new AscCommonExcel.Row(this);this.oSheetFormatPr.oAllRow.setIndex(g_nAllRowIndex)}return this.oSheetFormatPr.oAllRow};
Worksheet.prototype.getAllRowNoEmpty=function(){return this.oSheetFormatPr.oAllRow};Worksheet.prototype.getHyperlinkByCell=function(row,col){var oHyperlink=this.hyperlinkManager.getByCell(row,col);return oHyperlink?oHyperlink.data:null};Worksheet.prototype.getMergedByCell=function(row,col){var oMergeInfo=this.mergeManager.getByCell(row,col);return oMergeInfo?oMergeInfo.bbox:null};Worksheet.prototype.getMergedByRange=function(bbox){return this.mergeManager.get(bbox)};Worksheet.prototype._expandRangeByMergedAddToOuter=

@ -9670,212 +9670,212 @@ null;this.clrSchemeMap=null;this.CellStyles=new AscCommonExcel.CCellStyles;this.
0)this.nActive=0;if(this.nActive>=this.aWorksheets.length)this.nActive=this.aWorksheets.length-1;var self=this;this.wsHandlers=new AscCommonExcel.asc_CHandlersList({"changeRefTablePart":function(table){self.dependencyFormulas.changeTableRef(table)},"changeColumnTablePart":function(tableName){self.dependencyFormulas.renameTableColumn(tableName)},"deleteColumnTablePart":function(tableName,deleted){self.dependencyFormulas.delColumnTable(tableName,deleted)},"onFilterInfo":function(){self.handlers.trigger("asc_onFilterInfo")}});
for(var i=0,length=tableCustomFunc.length;i<length;++i){var elem=tableCustomFunc[i];elem.column.applyTotalRowFormula(elem.formula,elem.ws,!bNoBuildDep)}this.forEach(function(ws){ws.initPostOpen(self.wsHandlers)});var wsActive=this.getActiveWs();if(wsActive&&wsActive.getHidden())wsActive.setHidden(false);if(!bNoBuildDep){this.dependencyFormulas.initOpen();this.dependencyFormulas.calcTree()}if(bSnapshot)this.snapshot=this._getSnapshot()};Workbook.prototype.forEach=function(callback,isCopyPaste){if(isCopyPaste)callback(this.getActiveWs(),
this.getActive());else for(var i=0,l=this.aWorksheets.length;i<l;++i)callback(this.aWorksheets[i],i)};Workbook.prototype.rebuildColors=function(){AscCommonExcel.g_oColorManager.rebuildColors();this.forEach(function(ws){ws.rebuildColors()})};Workbook.prototype.getDefaultFont=function(){return g_oDefaultFormat.Font.getName()};Workbook.prototype.getDefaultSize=function(){return g_oDefaultFormat.Font.getSize()};Workbook.prototype.getActive=function(){return this.nActive};Workbook.prototype.getActiveWs=
function(){return this.getWorksheet(this.nActive)};Workbook.prototype.setActive=function(index){if(index>=0&&index<this.aWorksheets.length){this.nActive=index;this.cleanFindResults();return true}return false};Workbook.prototype.setActiveById=function(sheetId){var ws=this.getWorksheetById(sheetId);return this.setActive(ws.getIndex())};Workbook.prototype.getSheetIdByIndex=function(index){var ws=this.getWorksheet(index);return ws?ws.getId():null};Workbook.prototype.getWorksheet=function(index){if(index>=
0&&index<this.aWorksheets.length)return this.aWorksheets[index];return null};Workbook.prototype.getWorksheetById=function(id){return this.aWorksheetsById[id]};Workbook.prototype.getWorksheetByName=function(name){for(var i=0;i<this.aWorksheets.length;i++)if(this.aWorksheets[i].getName()==name)return this.aWorksheets[i];return null};Workbook.prototype.getWorksheetIndexByName=function(name){for(var i=0;i<this.aWorksheets.length;i++)if(this.aWorksheets[i].getName()==name)return i;return null};Workbook.prototype.getWorksheetCount=
function(){return this.aWorksheets.length};Workbook.prototype.createWorksheet=function(indexBefore,sName,sId){this.dependencyFormulas.lockRecal();History.Create_NewPoint();History.TurnOff();var wsActive=this.getActiveWs();var oNewWorksheet=new Worksheet(this,this.aWorksheets.length,sId);if(this.checkValidSheetName(sName))oNewWorksheet.sName=sName;oNewWorksheet.initPostOpen(this.wsHandlers);if(null!=indexBefore&&indexBefore>=0&&indexBefore<this.aWorksheets.length)this.aWorksheets.splice(indexBefore,
0,oNewWorksheet);else{indexBefore=this.aWorksheets.length;this.aWorksheets.push(oNewWorksheet)}this.aWorksheetsById[oNewWorksheet.getId()]=oNewWorksheet;this._updateWorksheetIndexes(wsActive);History.TurnOn();this._insertWorksheetFormula(oNewWorksheet.index);History.Add(AscCommonExcel.g_oUndoRedoWorkbook,AscCH.historyitem_Workbook_SheetAdd,null,null,new UndoRedoData_SheetAdd(indexBefore,oNewWorksheet.getName(),null,oNewWorksheet.getId()));History.SetSheetUndo(wsActive.getId());History.SetSheetRedo(oNewWorksheet.getId());
this.dependencyFormulas.unlockRecal();return oNewWorksheet.index};Workbook.prototype.copyWorksheet=function(index,insertBefore,sName,sId,bFromRedo,tableNames){if(index>=0&&index<this.aWorksheets.length){this.dependencyFormulas.buildDependency();History.TurnOff();var wsActive=this.getActiveWs();var wsFrom=this.aWorksheets[index];var newSheet=new Worksheet(this,-1,sId);if(null!=insertBefore&&insertBefore>=0&&insertBefore<this.aWorksheets.length)this.aWorksheets.splice(insertBefore,0,newSheet);else this.aWorksheets.push(newSheet);
this.aWorksheetsById[newSheet.getId()]=newSheet;this._updateWorksheetIndexes(wsActive);var renameParams=newSheet.copyFrom(wsFrom,sName,tableNames);newSheet.initPostOpen(this.wsHandlers);History.TurnOn();this.dependencyFormulas.copyDefNameByWorksheet(wsFrom,newSheet,renameParams);this._insertWorksheetFormula(insertBefore);if(!tableNames)tableNames=newSheet.getTableNames();History.Add(AscCommonExcel.g_oUndoRedoWorkbook,AscCH.historyitem_Workbook_SheetAdd,null,null,new UndoRedoData_SheetAdd(insertBefore,
newSheet.getName(),wsFrom.getId(),newSheet.getId(),tableNames));History.SetSheetUndo(wsActive.getId());History.SetSheetRedo(newSheet.getId());if(!(bFromRedo===true))wsFrom.copyObjects(newSheet,wsFrom);this.sortDependency()}};Workbook.prototype.insertWorksheet=function(index,sheet){var wsActive=this.getActiveWs();if(null!=index&&index>=0&&index<this.aWorksheets.length)this.aWorksheets.splice(index,0,sheet);else this.aWorksheets.push(sheet);this.aWorksheetsById[sheet.getId()]=sheet;this._updateWorksheetIndexes(wsActive);
this._insertWorksheetFormula(index);this._insertTablePartsName(sheet);sheet._BuildDependencies(sheet.getCwf());this.sortDependency()};Workbook.prototype._insertTablePartsName=function(sheet){if(sheet&&sheet.TableParts&&sheet.TableParts.length)for(var i=0;i<sheet.TableParts.length;i++){var tablePart=sheet.TableParts[i];this.dependencyFormulas.addTableName(sheet,tablePart);tablePart.buildDependencies()}};Workbook.prototype._insertWorksheetFormula=function(index){if(index>0&&index<this.aWorksheets.length){var oWsBefore=
this.aWorksheets[index-1];this.dependencyFormulas.changeSheet(this.dependencyFormulas.prepareChangeSheet(oWsBefore.getId(),{insert:index}))}};Workbook.prototype.replaceWorksheet=function(indexFrom,indexTo){if(indexFrom>=0&&indexFrom<this.aWorksheets.length&&indexTo>=0&&indexTo<this.aWorksheets.length){var wsActive=this.getActiveWs();var oWsFrom=this.aWorksheets[indexFrom];var tempW={wF:oWsFrom,wFI:indexFrom,wTI:indexTo};if(tempW.wFI<tempW.wTI)tempW.wTI++;this.dependencyFormulas.lockRecal();var prepared=
this.dependencyFormulas.prepareChangeSheet(oWsFrom.getId(),{replace:tempW},null);var movedSheet=this.aWorksheets.splice(indexFrom,1);this.aWorksheets.splice(indexTo,0,movedSheet[0]);this._updateWorksheetIndexes(wsActive);this.dependencyFormulas.changeSheet(prepared);this._insertWorksheetFormula(indexTo);History.Add(AscCommonExcel.g_oUndoRedoWorkbook,AscCH.historyitem_Workbook_SheetMove,null,null,new UndoRedoData_FromTo(indexFrom,indexTo));this.dependencyFormulas.unlockRecal()}};Workbook.prototype.findSheetNoHidden=
function(nIndex){var i,ws,oRes=null,bFound=false,countWorksheets=this.getWorksheetCount();for(i=nIndex;i<countWorksheets;++i){ws=this.getWorksheet(i);if(false===ws.getHidden()){oRes=ws;bFound=true;break}}if(!bFound)for(i=nIndex-1;i>=0;--i){ws=this.getWorksheet(i);if(false===ws.getHidden()){oRes=ws;break}}return oRes};Workbook.prototype.removeWorksheet=function(nIndex,outputParams){var bEmpty=true;for(var i=0,length=this.aWorksheets.length;i<length;++i){var worksheet=this.aWorksheets[i];if(false==
worksheet.getHidden()&&i!=nIndex){bEmpty=false;break}}if(bEmpty)return-1;var removedSheet=this.getWorksheet(nIndex);if(removedSheet){var removedSheetId=removedSheet.getId();this.dependencyFormulas.lockRecal();var prepared=this.dependencyFormulas.prepareRemoveSheet(removedSheetId,removedSheet.getTableNames());var wsActive=this.getActiveWs();var oVisibleWs=null;this.aWorksheets.splice(nIndex,1);delete this.aWorksheetsById[removedSheetId];if(nIndex==this.getActive()){oVisibleWs=this.findSheetNoHidden(nIndex);
if(null!=oVisibleWs)wsActive=oVisibleWs}History.Add(AscCommonExcel.g_oUndoRedoWorkbook,AscCH.historyitem_Workbook_SheetRemove,null,null,new AscCommonExcel.UndoRedoData_SheetRemove(nIndex,removedSheetId,removedSheet));if(null!=oVisibleWs){History.SetSheetUndo(removedSheetId);History.SetSheetRedo(wsActive.getId())}if(null!=outputParams)outputParams.sheet=removedSheet;this._updateWorksheetIndexes(wsActive);this.dependencyFormulas.removeSheet(prepared);this.dependencyFormulas.unlockRecal();return wsActive.getIndex()}return-1};
Workbook.prototype._updateWorksheetIndexes=function(wsActive){this.forEach(function(ws,index){ws._setIndex(index)});if(null!=wsActive)this.setActive(wsActive.getIndex())};Workbook.prototype.checkUniqueSheetName=function(name){var workbookSheetCount=this.getWorksheetCount();for(var i=0;i<workbookSheetCount;i++)if(this.getWorksheet(i).getName()==name)return i;return-1};Workbook.prototype.checkValidSheetName=function(name){return name&&name.length<g_nSheetNameMaxLength};Workbook.prototype.getUniqueSheetNameFrom=
function(name,bCopy){var nIndex=1;var sNewName="";var fGetPostfix=null;if(bCopy){var result=/^(.*)\((\d)\)$/.exec(name);if(result){fGetPostfix=function(nIndex){return"("+nIndex+")"};name=result[1]}else{fGetPostfix=function(nIndex){return" ("+nIndex+")"};name=name}}else fGetPostfix=function(nIndex){return nIndex.toString()};var workbookSheetCount=this.getWorksheetCount();while(nIndex<1E4){var sPosfix=fGetPostfix(nIndex);sNewName=name+sPosfix;if(sNewName.length>g_nSheetNameMaxLength){name=name.substring(0,
g_nSheetNameMaxLength-sPosfix.length);sNewName=name+sPosfix}var bUniqueName=true;for(var i=0;i<workbookSheetCount;i++)if(this.getWorksheet(i).getName()==sNewName){bUniqueName=false;break}if(bUniqueName)break;nIndex++}return sNewName};Workbook.prototype._generateFontMap=function(){var oFontMap={"Arial":1};var i;oFontMap[g_oDefaultFormat.Font.getName()]=1;if(null!=this.theme)AscFormat.checkThemeFonts(oFontMap,this.theme.themeElements.fontScheme);for(i=1;i<=g_StyleCache.getXfCount();++i){var xf=g_StyleCache.getXf(i);
if(xf.font)oFontMap[xf.font.getName()]=1}this.sharedStrings.generateFontMap(oFontMap);this.forEach(function(ws){ws.generateFontMap(oFontMap)});this.CellStyles.generateFontMap(oFontMap);return oFontMap};Workbook.prototype.generateFontMap=function(){var oFontMap=this._generateFontMap();var aRes=[];for(var i in oFontMap)aRes.push(i);return aRes};Workbook.prototype.generateFontMap2=function(){var oFontMap=this._generateFontMap();var aRes=[];for(var i in oFontMap)aRes.push(new AscFonts.CFont(i,0,"",0));
AscFonts.FontPickerByCharacter.extendFonts(aRes);return aRes};Workbook.prototype.getAllImageUrls=function(){var aImageUrls=[];this.forEach(function(ws){ws.getAllImageUrls(aImageUrls)});return aImageUrls};Workbook.prototype.reassignImageUrls=function(oImages){this.forEach(function(ws){ws.reassignImageUrls(oImages)})};Workbook.prototype.recalcWB=function(rebuild,opt_sheetId){var formulas;if(rebuild){formulas=this.getAllFormulas();for(var i=0;i<formulas.length;++i){var formula=formulas[i];formula.removeDependencies();
formula.setFormula(formula.getFormula());formula.parse();formula.buildDependencies()}}else if(opt_sheetId){formulas=[];var ws=this.getWorksheetById(opt_sheetId);ws.getAllFormulas(formulas)}else formulas=this.getAllFormulas();this.dependencyFormulas.notifyChanged(formulas);this.dependencyFormulas.calcTree()};Workbook.prototype.checkDefName=function(checkName,scope){return this.dependencyFormulas.checkDefName(checkName,scope)};Workbook.prototype.getDefinedNamesWB=function(defNameListId,bLocale){return this.dependencyFormulas.getDefinedNamesWB(defNameListId,
bLocale)};Workbook.prototype.getDefinedNamesWS=function(sheetId){return this.dependencyFormulas.getDefinedNamesWS(sheetId)};Workbook.prototype.addDefName=function(name,ref,sheetId,hidden,isTable){return this.dependencyFormulas.addDefName(name,ref,sheetId,hidden,isTable)};Workbook.prototype.getDefinesNames=function(name,sheetId){return this.dependencyFormulas.getDefNameByName(name,sheetId)};Workbook.prototype.getDefinedName=function(name){var sheetId=this.getSheetIdByIndex(name.LocalSheetId);return this.dependencyFormulas.getDefNameByName(name.Name,
sheetId)};Workbook.prototype.delDefinesNames=function(defName){this.delDefinesNamesUndoRedo(this.getUndoDefName(defName))};Workbook.prototype.delDefinesNamesUndoRedo=function(defName){this.dependencyFormulas.removeDefName(defName.sheetId,defName.name);this.dependencyFormulas.calcTree()};Workbook.prototype.editDefinesNames=function(oldName,newName){return this.editDefinesNamesUndoRedo(this.getUndoDefName(oldName),this.getUndoDefName(newName))};Workbook.prototype.editDefinesNamesUndoRedo=function(oldName,
newName){var res=this.dependencyFormulas.editDefinesNames(oldName,newName);this.dependencyFormulas.calcTree();return res};Workbook.prototype.findDefinesNames=function(ref,sheetId,bLocale){return this.dependencyFormulas.getDefNameByRef(ref,sheetId,bLocale)};Workbook.prototype.unlockDefName=function(){this.dependencyFormulas.unlockDefName()};Workbook.prototype.unlockCurrentDefName=function(name,sheetId){this.dependencyFormulas.unlockCurrentDefName(name,sheetId)};Workbook.prototype.checkDefNameLock=
function(){return this.dependencyFormulas.checkDefNameLock()};Workbook.prototype._SerializeHistoryBase64=function(oMemory,item,aPointChangesBase64){if(!item.LocalChange){var nPosStart=oMemory.GetCurPosition();item.Serialize(oMemory,this.oApi.collaborativeEditing);var nPosEnd=oMemory.GetCurPosition();var nLen=nPosEnd-nPosStart;if(nLen>0)aPointChangesBase64.push(nLen+";"+oMemory.GetBase64Memory2(nPosStart,nLen))}};Workbook.prototype.SerializeHistory=function(){var aRes=[];var t,j,length2;AscCommon.CollaborativeEditing.Refresh_DCChanges();
var aActions=this.aCollaborativeActions.concat(History.GetSerializeArray());if(aActions.length>0){var oMemory=new AscCommon.CMemory;for(var i=0,length=aActions.length;i<length;++i){var aPointChanges=aActions[i];for(j=0,length2=aPointChanges.length;j<length2;++j){var item=aPointChanges[j];this._SerializeHistoryBase64(oMemory,item,aRes)}}this.aCollaborativeActions=[];this.snapshot=this._getSnapshot()}return aRes};Workbook.prototype._getSnapshot=function(){var wb=new Workbook(new AscCommonExcel.asc_CHandlersList,
this.oApi);wb.dependencyFormulas=this.dependencyFormulas.getSnapshot(wb);this.forEach(function(ws){ws=ws.getSnapshot(wb);wb.aWorksheets.push(ws);wb.aWorksheetsById[ws.getId()]=ws});wb.init({},true,false);return wb};Workbook.prototype.getAllFormulas=function(){var res=[];this.dependencyFormulas.getAllFormulas(res);this.forEach(function(ws){ws.getAllFormulas(res)});return res};Workbook.prototype._forwardTransformation=function(wbSnapshot,changesMine,changesTheir){History.TurnOff();var res1=this._forwardTransformationGetTransform(wbSnapshot,
changesTheir,changesMine);var res2=this._forwardTransformationGetTransform(wbSnapshot,changesMine,changesTheir);var i,elem,elemWrap;for(i=0;i<res1.modify.length;++i){elemWrap=res1.modify[i];elem=elemWrap.elem;elem.oClass.forwardTransformationSet(elem.nActionType,elem.oData,elem.nSheetId,elemWrap)}for(i=0;i<res2.modify.length;++i){elemWrap=res2.modify[i];elem=elemWrap.elem;elem.oClass.forwardTransformationSet(elem.nActionType,elem.oData,elem.nSheetId,elemWrap)}for(var oldName in res1.renameSheet){var ws=
this.getWorksheetByName(oldName);if(ws)ws.setName(res1.renameSheet[oldName])}History.TurnOn()};Workbook.prototype._forwardTransformationGetTransform=function(wbSnapshot,changesMaster,changesModify){var res={modify:[],renameSheet:{}};var changesMasterSelected=[];var i,elem;if(changesModify.length>0)for(i=0;i<changesMaster.length;++i){elem=changesMaster[i];if(elem.oClass&&elem.oClass.forwardTransformationIsAffect&&elem.oClass.forwardTransformationIsAffect(elem.nActionType))changesMasterSelected.push(elem)}if(changesMasterSelected.length>
0&&changesModify.length>0){var wbSnapshotCur=wbSnapshot._getSnapshot();var formulas=[];for(i=0;i<changesModify.length;++i){elem=changesModify[i];var renameRes=null;if(elem.oClass&&elem.oClass.forwardTransformationGet){var getRes=elem.oClass.forwardTransformationGet(elem.nActionType,elem.oData,elem.nSheetId);if(getRes&&getRes.formula)formulas.push(new ForwardTransformationFormula(elem,getRes.formula,null));if(getRes&&getRes.name)renameRes=this._forwardTransformationRenameStart(wbSnapshotCur._getSnapshot(),
changesMasterSelected,getRes)}if(elem.oClass&&elem.oClass.forwardTransformationIsAffect&&elem.oClass.forwardTransformationIsAffect(elem.nActionType)){if(formulas.length>0){this._forwardTransformationFormula(wbSnapshotCur._getSnapshot(),formulas,changesMasterSelected,res);formulas=[]}elem.oClass.Redo(elem.nActionType,elem.oData,elem.nSheetId,wbSnapshotCur)}if(renameRes)this._forwardTransformationRenameEnd(renameRes,res.renameSheet,getRes,elem)}this._forwardTransformationFormula(wbSnapshotCur,formulas,
changesMasterSelected,res)}return res};Workbook.prototype._forwardTransformationRenameStart=function(wbSnapshot,changes,getRes){var res={newName:null};for(var i=0;i<changes.length;++i){var elem=changes[i];elem.oClass.Redo(elem.nActionType,elem.oData,elem.nSheetId,wbSnapshot)}if(-1!=wbSnapshot.checkUniqueSheetName(getRes.name))res.newName=wbSnapshot.getUniqueSheetNameFrom(getRes.name,true);return res};Workbook.prototype._forwardTransformationRenameEnd=function(renameRes,renameSheet,getRes,elemCur){var isChange=
false;if(getRes.from){var renameCur=renameSheet[getRes.from];if(renameCur){delete renameSheet[getRes.from];getRes.from=renameCur;isChange=true}}if(renameRes&&renameRes.newName){renameSheet[getRes.name]=renameRes.newName;getRes.name=renameRes.newName;isChange=true}if(isChange&&elemCur.oClass.forwardTransformationSet)elemCur.oClass.forwardTransformationSet(elemCur.nActionType,elemCur.oData,elemCur.nSheetId,getRes)};Workbook.prototype._forwardTransformationFormula=function(wbSnapshot,formulas,changes,
res){if(formulas.length>0){var i,elem,ftFormula,ws;for(i=0;i<formulas.length;++i){ftFormula=formulas[i];ws=wbSnapshot.getWorksheetById(ftFormula.elem.nSheetId);if(ws){ftFormula.parsed=new parserFormula(ftFormula.formula,ftFormula,ws);ftFormula.parsed.parse();ftFormula.parsed.buildDependencies()}}for(var oldName in res.renameSheet){ws=wbSnapshot.getWorksheetByName(oldName);if(ws)ws.setName(res.renameSheet[oldName])}for(i=0;i<changes.length;++i){elem=changes[i];elem.oClass.Redo(elem.nActionType,elem.oData,
elem.nSheetId,wbSnapshot)}for(i=0;i<formulas.length;++i){ftFormula=formulas[i];if(ftFormula.parsed){ftFormula.parsed.removeDependencies();res.modify.push(ftFormula)}}}};Workbook.prototype.DeserializeHistory=function(aChanges,fCallback){var oThis=this;this.aCollaborativeActions=this.aCollaborativeActions.concat(History.GetSerializeArray());if(aChanges.length>0){this.bCollaborativeChanges=true;var dstLen=0;var aIndexes=[],i,length=aChanges.length,sChange;for(i=0;i<length;++i){sChange=aChanges[i];var nIndex=
sChange.indexOf(";");if(-1!=nIndex){dstLen+=parseInt(sChange.substring(0,nIndex));nIndex++}aIndexes.push(nIndex)}var pointer=g_memory.Alloc(dstLen);var stream=new AscCommon.FT_Stream2(pointer.data,dstLen);stream.obj=pointer.obj;var nCurOffset=0;var aUndoRedoElems=[];for(i=0;i<length;++i){sChange=aChanges[i];var oBinaryFileReader=new AscCommonExcel.BinaryFileReader;nCurOffset=oBinaryFileReader.getbase64DecodedData2(sChange,aIndexes[i],stream,nCurOffset);var item=new UndoRedoItemSerializable;item.Deserialize(stream);
aUndoRedoElems.push(item)}var wsViews=window["Asc"]["editor"].wb.wsViews;if(oThis.oApi.collaborativeEditing.getFast())AscCommon.CollaborativeEditing.Clear_DocumentPositions();for(var i in wsViews)if(isRealObject(wsViews[i])&&isRealObject(wsViews[i].objectRender)&&isRealObject(wsViews[i].objectRender.controller)){wsViews[i].endEditChart();if(oThis.oApi.collaborativeEditing.getFast()){var oState=wsViews[i].objectRender.saveStateBeforeLoadChanges();if(oState){if(oState.Pos)AscCommon.CollaborativeEditing.Add_DocumentPosition(oState.Pos);
if(oState.StartPos)AscCommon.CollaborativeEditing.Add_DocumentPosition(oState.StartPos);if(oState.EndPos)AscCommon.CollaborativeEditing.Add_DocumentPosition(oState.EndPos)}}wsViews[i].objectRender.controller.resetSelection()}oFormulaLocaleInfo.Parse=false;oFormulaLocaleInfo.DigitSep=false;AscFonts.IsCheckSymbols=true;History.Clear();History.TurnOff();var history=new AscCommon.CHistory;history.init(this);history.Create_NewPoint();history.SetSelection(null);history.SetSelectionRedo(null);var oRedoObjectParam=
new AscCommonExcel.RedoObjectParam;history.UndoRedoPrepare(oRedoObjectParam,false);var changesMine=[].concat.apply([],oThis.aCollaborativeActions);oThis._forwardTransformation(oThis.snapshot,changesMine,aUndoRedoElems);for(var i=0,length=aUndoRedoElems.length;i<length;++i){var item=aUndoRedoElems[i];if((null!=item.oClass||item.oData&&typeof item.oData.sChangedObjectId==="string")&&null!=item.nActionType){if(window["NATIVE_EDITOR_ENJINE"]===true&&window["native"]["CheckNextChange"])if(!window["native"]["CheckNextChange"]())break;
history.RedoAdd(oRedoObjectParam,item.oClass,item.nActionType,item.nSheetId,item.oRange,item.oData)}}AscFonts.IsCheckSymbols=false;var oFontMap=this._generateFontMap();window["Asc"]["editor"]._loadFonts(oFontMap,function(){if(oThis.oApi.collaborativeEditing.getFast())for(var i in wsViews)if(isRealObject(wsViews[i])&&isRealObject(wsViews[i].objectRender)&&isRealObject(wsViews[i].objectRender.controller)){var oState=wsViews[i].objectRender.getStateBeforeLoadChanges();if(oState){if(oState.Pos)AscCommon.CollaborativeEditing.Update_DocumentPosition(oState.Pos);
if(oState.StartPos)AscCommon.CollaborativeEditing.Update_DocumentPosition(oState.StartPos);if(oState.EndPos)AscCommon.CollaborativeEditing.Update_DocumentPosition(oState.EndPos)}wsViews[i].objectRender.loadStateAfterLoadChanges()}oFormulaLocaleInfo.Parse=true;oFormulaLocaleInfo.DigitSep=true;history.UndoRedoEnd(null,oRedoObjectParam,false);History.TurnOn();oThis.bCollaborativeChanges=false;oThis.snapshot=oThis._getSnapshot();if(null!=fCallback)fCallback()})}else if(null!=fCallback)fCallback()};Workbook.prototype.DeserializeHistoryNative=
function(oRedoObjectParam,data,isFull){if(null!=data){this.bCollaborativeChanges=true;if(null==oRedoObjectParam){var wsViews=window["Asc"]["editor"].wb.wsViews;for(var i in wsViews)if(isRealObject(wsViews[i])&&isRealObject(wsViews[i].objectRender)&&isRealObject(wsViews[i].objectRender.controller)){wsViews[i].endEditChart();wsViews[i].objectRender.controller.resetSelection()}History.Clear();History.Create_NewPoint();History.SetSelection(null);History.SetSelectionRedo(null);oRedoObjectParam=new AscCommonExcel.RedoObjectParam;
History.UndoRedoPrepare(oRedoObjectParam,false)}var stream=new AscCommon.FT_Stream2(data,data.length);stream.obj=null;var _count=stream.GetLong();var _pos=4;for(var i=0;i<_count;i++){if(window["NATIVE_EDITOR_ENJINE"]===true&&window["native"]["CheckNextChange"])if(!window["native"]["CheckNextChange"]())break;var _len=stream.GetLong();_pos+=4;stream.size=_pos+_len;stream.Seek(_pos);stream.Seek2(_pos);var item=new UndoRedoItemSerializable;item.Deserialize(stream);if((null!=item.oClass||item.oData&&typeof item.oData.sChangedObjectId===
"string")&&null!=item.nActionType)History.RedoAdd(oRedoObjectParam,item.oClass,item.nActionType,item.nSheetId,item.oRange,item.oData);_pos+=_len;stream.Seek2(_pos);stream.size=data.length}if(isFull){History.UndoRedoEnd(null,oRedoObjectParam,false);History.Clear();oRedoObjectParam=null}this.bCollaborativeChanges=false}return oRedoObjectParam};Workbook.prototype.getTableRangeForFormula=function(name,objectParam){var res=null;for(var i=0,length=this.aWorksheets.length;i<length;++i){var ws=this.aWorksheets[i];
res=ws.getTableRangeForFormula(name,objectParam);if(res!==null){res={wsID:ws.getId(),range:res};break}}return res};Workbook.prototype.getTableIndexColumnByName=function(tableName,columnName){var res=null;for(var i=0,length=this.aWorksheets.length;i<length;++i){var ws=this.aWorksheets[i];res=ws.getTableIndexColumnByName(tableName,columnName);if(res!==null){res={wsID:ws.getId(),index:res,name:ws.getTableNameColumnByIndex(tableName,res)};break}}return res};Workbook.prototype.getTableNameColumnByIndex=
function(tableName,columnIndex){var res=null;for(var i=0,length=this.aWorksheets.length;i<length;++i){var ws=this.aWorksheets[i];res=ws.getTableNameColumnByIndex(tableName,columnIndex);if(res!==null){res={wsID:ws.getId(),columnName:res};break}}return res};Workbook.prototype.getTableByName=function(tableName,wsID){var res=null;var ws=this.getWorksheetById(wsID);return ws.getTableByName(tableName)};Workbook.prototype.updateSparklineCache=function(sheet,ranges){this.forEach(function(ws){ws.updateSparklineCache(sheet,
ranges)})};Workbook.prototype.sortDependency=function(){this.dependencyFormulas.calcTree()};Workbook.prototype.charCountToModelColWidth=function(count){if(count<=0)return 0;return Asc.floor((count*this.maxDigitWidth+this.paddingPlusBorder)/this.maxDigitWidth*256)/256};Workbook.prototype.modelColWidthToColWidth=function(mcw){return Asc.floor((256*mcw+Asc.floor(128/this.maxDigitWidth))/256*this.maxDigitWidth)};Workbook.prototype.colWidthToCharCount=function(w){var pxInOneCharacter=this.maxDigitWidth+
this.paddingPlusBorder;return w<pxInOneCharacter?1-Asc.floor(100*(pxInOneCharacter-w)/pxInOneCharacter+.49999)/100:Asc.floor((w-this.paddingPlusBorder)/this.maxDigitWidth*100+.5)/100};Workbook.prototype.getUndoDefName=function(ascName){if(!ascName)return ascName;var sheetId=this.getSheetIdByIndex(ascName.LocalSheetId);return new UndoRedoData_DefinedNames(ascName.Name,ascName.Ref,sheetId,ascName.isTable,ascName.isXLNM)};Workbook.prototype.changeColorScheme=function(sSchemeName){var scheme=AscCommon.getColorSchemeByName(sSchemeName);
if(!scheme)scheme=this.theme.getExtraClrScheme(sSchemeName);if(!scheme)return;History.Create_NewPoint();History.Add(AscCommonExcel.g_oUndoRedoWorkbook,AscCH.historyitem_Workbook_ChangeColorScheme,null,null,new AscCommonExcel.UndoRedoData_ClrScheme(this.theme.themeElements.clrScheme,scheme));this.theme.themeElements.clrScheme=scheme;this.rebuildColors();return true};Workbook.prototype.cleanFindResults=function(){this.lastFindOptions=null;this.lastFindCells={}};Workbook.prototype.findCellText=function(options){var ws=
this.getActiveWs();var result=ws.findCellText(options),result2=null;if(!options.scanOnOnlySheet){var key=result&&result.col+"-"+result.row;if(!key||options.isEqual(this.lastFindOptions)&&this.lastFindCells[key]){var i,active=this.getActive(),start=0,end=this.getWorksheetCount();var inc=options.scanForward?+1:-1;for(i=active+inc;i<end&&i>=start;i+=inc){ws=this.getWorksheet(i);if(ws.getHidden())continue;result2=ws.findCellText(options);if(result2)break}if(!result2){if(options.scanForward){i=0;end=active}else{i=
end-1;start=active+1}inc*=-1;for(;i<end&&i>=start;i+=inc){ws=this.getWorksheet(i);if(ws.getHidden())continue;result2=ws.findCellText(options);if(result2)break}}if(result2){this.handlers.trigger("undoRedoHideSheet",i);key=result2.col+"-"+result2.row}}if(key){this.lastFindOptions=options.clone();this.lastFindCells[key]=true}}if(!result2&&!result)this.cleanFindResults();return result2||result};Workbook.prototype.getComment=function(id){if(id){var sheet;for(var i=0;i<this.aWorksheets.length;++i){sheet=
this.aWorksheets[i];for(var j=0;j<sheet.aComments.length;++j)if(id===sheet.aComments[j].asc_getGuid())return sheet.aComments[j]}}return null};var tempHelp=new ArrayBuffer(8);var tempHelpUnit=new Uint8Array(tempHelp);var tempHelpFloat=new Float64Array(tempHelp);function SheetMemory(structSize,maxIndex){this.data=null;this.count=0;this.structSize=structSize;this.maxIndex=maxIndex}SheetMemory.prototype.checkSize=function(index){var allocatedCount=this.data?this.data.length/this.structSize:0;if(allocatedCount<
index+1){var newAllocatedCount=Math.min(Math.max(1.5*this.count>>0,index+1),this.maxIndex+1);if(newAllocatedCount>allocatedCount){var oldData=this.data;this.data=new Uint8Array(newAllocatedCount*this.structSize);if(oldData)this.data.set(oldData)}}this.count=Math.min(Math.max(this.count,index+1),this.maxIndex+1)};SheetMemory.prototype.hasSize=function(index){return index+1<=this.count};SheetMemory.prototype.getSize=function(){return this.count};SheetMemory.prototype.clone=function(){var sheetMemory=
new SheetMemory(this.structSize,this.maxIndex);sheetMemory.data=this.data?new Uint8Array(this.data):null;sheetMemory.count=this.count;return sheetMemory};SheetMemory.prototype.deleteRange=function(start,deleteCount){if(start<this.count){var startOffset=start*this.structSize;if(start+deleteCount<this.count){var endOffset=(start+deleteCount)*this.structSize;this.data.set(this.data.subarray(endOffset),startOffset);this.data.fill(0,(this.count-deleteCount)*this.structSize);this.count-=deleteCount}else{this.data.fill(0,
startOffset);this.count=start}}};SheetMemory.prototype.insertRange=function(start,insertCount){if(start<this.count){this.checkSize(this.count-1+insertCount);var startOffset=start*this.structSize;if(start+insertCount<this.count){var endOffset=(start+insertCount)*this.structSize;var endData=(this.count-insertCount)*this.structSize;this.data.set(this.data.subarray(startOffset,endData),endOffset);this.data.fill(0,startOffset,endOffset)}else this.data.fill(0,startOffset)}};SheetMemory.prototype.copyRange=
function(sheetMemory,startFrom,startTo,count){var countCopied=0;if(startFrom<sheetMemory.count){countCopied=Math.min(count,sheetMemory.count-startFrom);this.checkSize(startTo+countCopied);countCopied=Math.min(countCopied,this.count-startTo);if(countCopied>0){var startOffsetFrom=startFrom*this.structSize;var endOffsetFrom=(startFrom+countCopied)*this.structSize;var startOffsetTo=startTo*this.structSize;this.data.set(sheetMemory.data.subarray(startOffsetFrom,endOffsetFrom),startOffsetTo)}}var countErase=
Math.min(count-countCopied,this.count-(startTo+countCopied));if(countErase>0){var startOffsetErase=(startTo+countCopied)*this.structSize;var endOffsetErase=(startTo+countCopied+countErase)*this.structSize;this.data.fill(0,startOffsetErase,endOffsetErase)}};SheetMemory.prototype.copyRangeByChunk=function(from,fromCount,to,toCount){if(from<this.count){this.checkSize(to+toCount-1);var fromStartOffset=from*this.structSize;var fromEndOffset=Math.min(from+fromCount,this.count)*this.structSize;var fromSubArray=
this.data.subarray(fromStartOffset,fromEndOffset);for(var i=to;i<to+toCount&&i<this.count;i+=fromCount)this.data.set(fromSubArray,i*this.structSize)}};SheetMemory.prototype.clear=function(start,end){end=Math.min(end,this.count);if(start<end)this.data.fill(0,start*this.structSize,end*this.structSize)};SheetMemory.prototype.getUint8=function(index,offset){offset+=index*this.structSize;return this.data[offset]};SheetMemory.prototype.setUint8=function(index,offset,val){offset+=index*this.structSize;this.data[offset]=
val};SheetMemory.prototype.getUint16=function(index,offset){offset+=index*this.structSize;return AscFonts.FT_Common.IntToUInt(this.data[offset]|this.data[offset+1]<<8)};SheetMemory.prototype.setUint16=function(index,offset,val){offset+=index*this.structSize;this.data[offset]=val&255;this.data[offset+1]=val>>>8&255};SheetMemory.prototype.getUint32=function(index,offset){offset+=index*this.structSize;return AscFonts.FT_Common.IntToUInt(this.data[offset]|this.data[offset+1]<<8|this.data[offset+2]<<16|
this.data[offset+3]<<24)};SheetMemory.prototype.setUint32=function(index,offset,val){offset+=index*this.structSize;this.data[offset]=val&255;this.data[offset+1]=val>>>8&255;this.data[offset+2]=val>>>16&255;this.data[offset+3]=val>>>24&255};SheetMemory.prototype.getFloat64=function(index,offset){offset+=index*this.structSize;tempHelpUnit[0]=this.data[offset];tempHelpUnit[1]=this.data[offset+1];tempHelpUnit[2]=this.data[offset+2];tempHelpUnit[3]=this.data[offset+3];tempHelpUnit[4]=this.data[offset+
4];tempHelpUnit[5]=this.data[offset+5];tempHelpUnit[6]=this.data[offset+6];tempHelpUnit[7]=this.data[offset+7];return tempHelpFloat[0]};SheetMemory.prototype.setFloat64=function(index,offset,val){offset+=index*this.structSize;tempHelpFloat[0]=val;this.data[offset]=tempHelpUnit[0];this.data[offset+1]=tempHelpUnit[1];this.data[offset+2]=tempHelpUnit[2];this.data[offset+3]=tempHelpUnit[3];this.data[offset+4]=tempHelpUnit[4];this.data[offset+5]=tempHelpUnit[5];this.data[offset+6]=tempHelpUnit[6];this.data[offset+
7]=tempHelpUnit[7]};function Worksheet(wb,_index,sId){this.workbook=wb;this.sName=this.workbook.getUniqueSheetNameFrom(g_sNewSheetNamePattern,false);this.bHidden=false;this.oSheetFormatPr=new AscCommonExcel.SheetFormatPr;this.index=_index;this.Id=null!=sId?sId:AscCommon.g_oIdCounter.Get_NewId();this.nRowsCount=0;this.nColsCount=0;this.rowsData=new SheetMemory(AscCommonExcel.g_nRowStructSize,gc_nMaxRow0);this.cellsByCol=[];this.cellsByColRowsCount=0;this.aCols=[];this.hiddenManager=new HiddenManager(this);
this.Drawings=[];this.TableParts=[];this.AutoFilter=null;this.oAllCol=null;this.aComments=[];var oThis=this;this.bExcludeHiddenRows=false;this.bIgnoreWriteFormulas=false;this.mergeManager=new RangeDataManager(function(data,from,to){if(History.Is_On()&&(null!=from||null!=to)){if(null!=from)from=from.clone();if(null!=to)to=to.clone();var oHistoryRange=from;if(null==oHistoryRange)oHistoryRange=to;History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_ChangeMerge,oThis.getId(),oHistoryRange,
new UndoRedoData_FromTo(new UndoRedoData_BBox(from),new UndoRedoData_BBox(to)))}if(null!=to){var maxRow=gc_nMaxRow0!==to.r2?to.r2:to.r1;var maxCol=gc_nMaxCol0!==to.c2?to.c2:to.c1;if(maxRow>=oThis.nRowsCount)oThis.nRowsCount=maxRow+1;if(maxCol>=oThis.nColsCount)oThis.nColsCount=maxCol+1}});this.mergeManager.worksheet=this;this.hyperlinkManager=new RangeDataManager(function(data,from,to,oChangeParam){if(History.Is_On()&&(null!=from||null!=to)){if(null!=from)from=from.clone();if(null!=to)to=to.clone();
var oHistoryRange=from;if(null==oHistoryRange)oHistoryRange=to;var oHistoryData=null;if(null==from||null==to)oHistoryData=data.clone();History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_ChangeHyperlink,oThis.getId(),oHistoryRange,new AscCommonExcel.UndoRedoData_FromToHyperlink(from,to,oHistoryData))}if(null!=to)data.Ref=oThis.getRange3(to.r1,to.c1,to.r2,to.c2);else if(oChangeParam&&oChangeParam.removeStyle&&null!=data.Ref)data.Ref.cleanFormat();if(null!=to){var maxRow=gc_nMaxRow0!==
to.r2?to.r2:to.r1;var maxCol=gc_nMaxCol0!==to.c2?to.c2:to.c1;if(maxRow>=oThis.nRowsCount)oThis.nRowsCount=maxRow+1;if(maxCol>=oThis.nColsCount)oThis.nColsCount=maxCol+1}});this.hyperlinkManager.setDependenceManager(this.mergeManager);this.DrawingDocument=new AscCommon.CDrawingDocument;this.sheetViews=[];this.aConditionalFormattingRules=[];this.updateConditionalFormattingRange=null;this.dataValidations=null;this.sheetPr=null;this.aFormulaExt=null;this.autoFilters=AscCommonExcel.AutoFilters!==undefined?
new AscCommonExcel.AutoFilters(this):null;this.oDrawingOjectsManager=new DrawingObjectsManager(this);this.contentChanges=new AscCommon.CContentChanges;this.aSparklineGroups=[];this.selectionRange=new AscCommonExcel.SelectionRange(this);this.sheetMergedStyles=new AscCommonExcel.SheetMergedStyles;this.pivotTables=[];this.headerFooter=new Asc.CHeaderFooter(this);this.rowBreaks=null;this.colBreaks=null;this.legacyDrawingHF=null;this.picture=null;this.PagePrintOptions=new Asc.asc_CPageOptions(this);this.formulaArrayLink=
null;this.lastFindOptions=null;this.bExcludeCollapsed=false;this.handlers=null}Worksheet.prototype.getCompiledStyle=function(row,col,opt_cell,opt_styleComponents){return getCompiledStyle(this.sheetMergedStyles,this.hiddenManager,row,col,opt_cell,this,opt_styleComponents)};Worksheet.prototype.getCompiledStyleCustom=function(row,col,needTable,needCell,needConditional,opt_cell){var res;var styleComponents=this.sheetMergedStyles.getStyle(this.hiddenManager,row,col,this);var ws=this;if(!needTable)styleComponents.table=
[];if(!needConditional)styleComponents.conditional=[];if(!needCell)res=getCompiledStyle(undefined,undefined,row,col,undefined,undefined,styleComponents);else if(opt_cell)res=getCompiledStyle(undefined,undefined,row,col,opt_cell,ws,styleComponents);else this._getCellNoEmpty(row,col,function(cell){res=getCompiledStyle(undefined,undefined,row,col,cell,ws,styleComponents)});return res};Worksheet.prototype.getColData=function(index){var sheetMemory=this.cellsByCol[index];if(!sheetMemory){sheetMemory=new SheetMemory(g_nCellStructSize,
gc_nMaxRow0);this.cellsByCol[index]=sheetMemory}return sheetMemory};Worksheet.prototype.getColDataNoEmpty=function(index){return this.cellsByCol[index]};Worksheet.prototype.getColDataLength=function(){return this.cellsByCol.length};Worksheet.prototype.getSnapshot=function(wb){var ws=new Worksheet(wb,this.index,this.Id);ws.sName=this.sName;for(var i=0;i<this.TableParts.length;++i){var table=this.TableParts[i];ws.addTablePart(table.clone(null),false)}for(i=0;i<this.sheetViews.length;++i)ws.sheetViews.push(this.sheetViews[i].clone());
return ws};Worksheet.prototype.addContentChanges=function(changes){this.contentChanges.Add(changes)};Worksheet.prototype.refreshContentChanges=function(){this.contentChanges.Refresh();this.contentChanges.Clear()};Worksheet.prototype.rebuildColors=function(){this.rebuildTabColor();for(var i=0;i<this.aSparklineGroups.length;++i)this.aSparklineGroups[i].cleanCache()};Worksheet.prototype.generateFontMap=function(oFontMap){for(var i=0,length=this.Drawings.length;i<length;++i){var drawing=this.Drawings[i];
if(drawing)drawing.getAllFonts(oFontMap)}if(this.headerFooter)this.headerFooter.getAllFonts(oFontMap)};Worksheet.prototype.getAllImageUrls=function(aImages){for(var i=0;i<this.Drawings.length;++i)this.Drawings[i].graphicObject.getAllRasterImages(aImages)};Worksheet.prototype.reassignImageUrls=function(oImages){for(var i=0;i<this.Drawings.length;++i)this.Drawings[i].graphicObject.Reassign_ImageUrls(oImages)};Worksheet.prototype.copyFrom=function(wsFrom,sName,tableNames){var i,elem,range;var t=this;
this.sName=this.workbook.checkValidSheetName(sName)?sName:this.workbook.getUniqueSheetNameFrom(wsFrom.sName,true);this.bHidden=wsFrom.bHidden;this.oSheetFormatPr=wsFrom.oSheetFormatPr.clone();this.nRowsCount=wsFrom.nRowsCount;this.nColsCount=wsFrom.nColsCount;var renameParams={lastName:wsFrom.getName(),newName:this.getName(),tableNameMap:{}};for(i=0;i<wsFrom.TableParts.length;++i){var tableFrom=wsFrom.TableParts[i];var tableTo=tableFrom.clone(null);if(tableNames&&tableNames.length)tableTo.changeDisplayName(tableNames[i]);
else tableTo.changeDisplayName(this.workbook.dependencyFormulas.getNextTableName());this.addTablePart(tableTo,true);renameParams.tableNameMap[tableFrom.DisplayName]=tableTo.DisplayName}for(i=0;i<this.TableParts.length;++i)this.TableParts[i].renameSheetCopy(this,renameParams);if(wsFrom.AutoFilter)this.AutoFilter=wsFrom.AutoFilter.clone();for(i in wsFrom.aCols){var col=wsFrom.aCols[i];if(null!=col)this.aCols[i]=col.clone(this)}if(null!=wsFrom.oAllCol)this.oAllCol=wsFrom.oAllCol.clone(this);this.rowsData=
wsFrom.rowsData.clone();wsFrom._forEachColData(function(sheetMemory,index){t.cellsByCol[index]=sheetMemory.clone()});this.cellsByColRowsCount=wsFrom.cellsByColRowsCount;var aMerged=wsFrom.mergeManager.getAll();for(i in aMerged){elem=aMerged[i];range=this.getRange3(elem.bbox.r1,elem.bbox.c1,elem.bbox.r2,elem.bbox.c2);range.mergeOpen()}var aHyperlinks=wsFrom.hyperlinkManager.getAll();for(i in aHyperlinks){elem=aHyperlinks[i];range=this.getRange3(elem.bbox.r1,elem.bbox.c1,elem.bbox.r2,elem.bbox.c2);
range.setHyperlinkOpen(elem.data)}if(null!=wsFrom.aComments)for(i=0;i<wsFrom.aComments.length;i++){var comment=wsFrom.aComments[i].clone();comment.wsId=this.getId();comment.nId="sheet"+comment.wsId+"_"+(i+1);this.aComments.push(comment)}for(i=0;i<wsFrom.sheetViews.length;++i)this.sheetViews.push(wsFrom.sheetViews[i].clone());for(i=0;i<wsFrom.aConditionalFormattingRules.length;++i)this.aConditionalFormattingRules.push(wsFrom.aConditionalFormattingRules[i].clone());if(wsFrom.dataValidations)this.dataValidations=
wsFrom.dataValidations.clone();if(wsFrom.sheetPr)this.sheetPr=wsFrom.sheetPr.clone();this.selectionRange=wsFrom.selectionRange.clone(this);var oldNewArrayFormulaMap=[];this._forEachCell(function(cell){if(cell.isFormula()){var parsed,notMainArrayCell;if(cell.transformSharedFormula())parsed=cell.getFormulaParsed();else{parsed=cell.getFormulaParsed();if(parsed.getArrayFormulaRef()){var listenerId=parsed.getListenerId();if(oldNewArrayFormulaMap[listenerId]){parsed=oldNewArrayFormulaMap[listenerId];notMainArrayCell=
true}else{parsed=parsed.clone(null,new CCellWithFormula(t,cell.nRow,cell.nCol),t);oldNewArrayFormulaMap[listenerId]=parsed}}else parsed=parsed.clone(null,new CCellWithFormula(t,cell.nRow,cell.nCol),t)}if(!notMainArrayCell){parsed.renameSheetCopy(renameParams);parsed.setFormulaString(parsed.assemble(true))}cell.setFormulaInternal(parsed,true);t.workbook.dependencyFormulas.addToBuildDependencyCell(cell)}});if(wsFrom.headerFooter)this.headerFooter=wsFrom.headerFooter.clone(this);return renameParams};
Worksheet.prototype.copyObjects=function(oNewWs,wsFrom){var i;if(null!=this.Drawings&&this.Drawings.length>0){var drawingObjects=new AscFormat.DrawingObjects;oNewWs.Drawings=[];AscFormat.NEW_WORKSHEET_DRAWING_DOCUMENT=oNewWs.DrawingDocument;for(i=0;i<this.Drawings.length;++i){var drawingObject=drawingObjects.cloneDrawingObject(this.Drawings[i]);drawingObject.graphicObject=this.Drawings[i].graphicObject.copy();drawingObject.graphicObject.setWorksheet(oNewWs);drawingObject.graphicObject.addToDrawingObjects();
var drawingBase=this.Drawings[i];drawingObject.graphicObject.setDrawingBaseCoords(drawingBase.from.col,drawingBase.from.colOff,drawingBase.from.row,drawingBase.from.rowOff,drawingBase.to.col,drawingBase.to.colOff,drawingBase.to.row,drawingBase.to.rowOff,drawingBase.Pos.X,drawingBase.Pos.Y,drawingBase.ext.cx,drawingBase.ext.cy);if(drawingObject.graphicObject.setDrawingBaseType)drawingObject.graphicObject.setDrawingBaseType(drawingBase.Type);oNewWs.Drawings[oNewWs.Drawings.length-1]=drawingObject}AscFormat.NEW_WORKSHEET_DRAWING_DOCUMENT=
null;drawingObjects.pushToAObjects(oNewWs.Drawings);drawingObjects.updateChartReferences2(parserHelp.getEscapeSheetName(wsFrom.sName),parserHelp.getEscapeSheetName(oNewWs.sName))}var newSparkline;for(i=0;i<this.aSparklineGroups.length;++i){newSparkline=this.aSparklineGroups[i].clone();newSparkline.setWorksheet(oNewWs,wsFrom);oNewWs.aSparklineGroups.push(newSparkline)}};Worksheet.prototype.initColumn=function(column){if(column)if(null!==column.width&&0!==column.width){column.widthPx=this.modelColWidthToColWidth(column.width);
column.charCount=this.colWidthToCharCount(column.widthPx)}else column.widthPx=column.charCount=null};Worksheet.prototype.initColumns=function(){this.initColumn(this.oAllCol);this.aCols.forEach(this.initColumn,this)};Worksheet.prototype.initPostOpen=function(handlers){this.PagePrintOptions.init();this.headerFooter.init();if(0===this.sheetViews.length)this.sheetViews.push(new AscCommonExcel.asc_CSheetViewSettings);this.hiddenManager.initPostOpen();this.oSheetFormatPr.correction();this.handlers=handlers;
this._setHandlersTablePart()};Worksheet.prototype._getValuesForConditionalFormatting=function(ranges,numbers){var res=[];for(var i=0;i<ranges.length;++i){var elem=ranges[i];var range=this.getRange3(elem.r1,elem.c1,elem.r2,elem.c2);res=res.concat(range._getValues(numbers))}return res};Worksheet.prototype._isConditionalFormattingIntersect=function(range,ranges){for(var i=0;i<ranges.length;++i)if(range.isIntersect(ranges[i]))return true;return false};Worksheet.prototype.setDirtyConditionalFormatting=
function(range){if(!range)range=new AscCommonExcel.MultiplyRange([new Asc.Range(0,0,gc_nMaxCol0,gc_nMaxRow0)]);if(this.updateConditionalFormattingRange)this.updateConditionalFormattingRange.union2(range);else this.updateConditionalFormattingRange=range.clone()};Worksheet.prototype._updateConditionalFormatting=function(){if(!this.updateConditionalFormattingRange)return;var range=this.updateConditionalFormattingRange;this.updateConditionalFormattingRange=null;var t=this;var aRules=this.aConditionalFormattingRules.sort(function(v1,
v2){return v2.priority-v1.priority});var oGradient1,oGradient2,aWeights,oRule,multiplyRange,oRuleElement,bboxCf,formulaParent,parsed1,parsed2;var o,l,cell,ranges,values,value,tmp,dxf,compareFunction,nc,sum;this.sheetMergedStyles.clearConditionalStyle(range);var getCacheFunction=function(rule,setFunc){var cache={cache:{},get:function(row,col){var cacheVal;var cacheRow=this.cache[row];if(!cacheRow){cacheRow={};this.cache[row]=cacheRow}else cacheVal=cacheRow[col];if(undefined===cacheVal){cacheVal=this.set(row,
col);cacheRow[col]=cacheVal}return cacheVal},set:function(row,col){if(rule)return setFunc(row,col)?rule.dxf:null;else return setFunc(row,col)}};return function(row,col){return cache.get(row,col)}};for(var i=0;i<aRules.length;++i){oRule=aRules[i];ranges=oRule.ranges;if(this._isConditionalFormattingIntersect(range,ranges)){multiplyRange=new AscCommonExcel.MultiplyRange(ranges);if(AscCommonExcel.ECfType.colorScale===oRule.type){if(1!==oRule.aRuleElements.length)continue;oRuleElement=oRule.aRuleElements[0];
if(!oRuleElement||oRule.type!==oRuleElement.type)continue;values=this._getValuesForConditionalFormatting(ranges,true);l=oRuleElement.aColors.length;if(0<values.length&&2<=l){aWeights=[];oGradient1=new AscCommonExcel.CGradient(oRuleElement.aColors[0],oRuleElement.aColors[1]);aWeights.push(oRule.getMin(values,t),oRule.getMax(values,t));if(2<l){oGradient2=new AscCommonExcel.CGradient(oRuleElement.aColors[1],oRuleElement.aColors[2]);aWeights.push(oRule.getMid(values,t));aWeights.sort(AscCommon.fSortAscending);
oGradient1.init(aWeights[0],aWeights[1]);oGradient2.init(aWeights[1],aWeights[2])}else{oGradient2=null;aWeights.sort(AscCommon.fSortAscending);oGradient1.init(aWeights[0],aWeights[1])}compareFunction=function(oGradient1,oGradient2){return function(row,col){var val,color,gradient;t._getCellNoEmpty(row,col,function(cell){val=cell&&cell.getNumberValue()});dxf=null;if(null!==val){dxf=new AscCommonExcel.CellXfs;gradient=oGradient2?oGradient2:oGradient1;if(val>=gradient.max)color=gradient.getMaxColor();
else if(val<=oGradient1.min)color=oGradient1.getMinColor();else{gradient=oGradient2&&val>oGradient1.max?oGradient2:oGradient1;color=gradient.calculateColor(val)}dxf.fill=new AscCommonExcel.Fill;dxf.fill.fromColor(color);dxf=g_StyleCache.addXf(dxf,true)}return dxf}}(oGradient1,oGradient2)}}else if(AscCommonExcel.ECfType.dataBar===oRule.type)continue;else if(AscCommonExcel.ECfType.top10===oRule.type){if(oRule.rank>0&&oRule.dxf){nc=0;values=this._getValuesForConditionalFormatting(ranges,false);o=oRule.bottom?
Number.MAX_VALUE:-Number.MAX_VALUE;for(cell=0;cell<values.length;++cell){value=values[cell];if(CellValueType.Number===value.type&&!isNaN(tmp=parseFloat(value.v))){++nc;value.v=tmp}else value.v=o}values.sort(function(condition){return function(v1,v2){return condition*(v2.v-v1.v)}}(oRule.bottom?-1:1));nc=Math.max(1,oRule.percent?Math.floor(nc*oRule.rank/100):oRule.rank);var threshold=values.length>=nc?values[nc-1].v:o;compareFunction=function(rule,threshold){return function(row,col){var val;t._getCellNoEmpty(row,
col,function(cell){val=cell?cell.getNumberValue():null});return null!==val&&(rule.bottom?val<=threshold:val>=threshold)?rule.dxf:null}}(oRule,threshold)}}else if(AscCommonExcel.ECfType.aboveAverage===oRule.type){if(!oRule.dxf)continue;values=this._getValuesForConditionalFormatting(ranges,false);sum=0;nc=0;for(cell=0;cell<values.length;++cell){value=values[cell];if(CellValueType.Number===value.type&&!isNaN(tmp=parseFloat(value.v))){++nc;value.v=tmp;sum+=tmp}else value.v=null}tmp=sum/nc;compareFunction=
function(rule,average,stdDev){return function(row,col){var val;t._getCellNoEmpty(row,col,function(cell){val=cell?cell.getNumberValue():null});return null!==val&&rule.getAverage(val,average,stdDev)?rule.dxf:null}}(oRule,tmp,sum)}else{if(!oRule.dxf)continue;switch(oRule.type){case AscCommonExcel.ECfType.duplicateValues:case AscCommonExcel.ECfType.uniqueValues:o=getUniqueKeys(this._getValuesForConditionalFormatting(ranges,false));compareFunction=function(rule,obj,condition){return function(row,col){var val;
t._getCellNoEmpty(row,col,function(cell){val=cell?cell.getValueWithoutFormat():""});return(val.length>0?condition===obj[val]:false)?rule.dxf:null}}(oRule,o,oRule.type===AscCommonExcel.ECfType.duplicateValues);break;case AscCommonExcel.ECfType.containsText:case AscCommonExcel.ECfType.notContainsText:case AscCommonExcel.ECfType.beginsWith:case AscCommonExcel.ECfType.endsWith:var operator;switch(oRule.type){case AscCommonExcel.ECfType.containsText:operator=AscCommonExcel.ECfOperator.Operator_containsText;
break;case AscCommonExcel.ECfType.notContainsText:operator=AscCommonExcel.ECfOperator.Operator_notContains;break;case AscCommonExcel.ECfType.beginsWith:operator=AscCommonExcel.ECfOperator.Operator_beginsWith;break;case AscCommonExcel.ECfType.endsWith:operator=AscCommonExcel.ECfOperator.Operator_endsWith;break}formulaParent=new AscCommonExcel.CConditionalFormattingFormulaParent(this,oRule,true);oRuleElement=oRule.getFormulaCellIs();parsed1=oRuleElement&&oRuleElement.getFormula&&oRuleElement.getFormula(this,
formulaParent);if(parsed1&&parsed1.hasRelativeRefs()){bboxCf=oRule.getBBox();compareFunction=getCacheFunction(oRule,function(rule,operator,formulaParent,rowLT,colLT){return function(row,col){var offset=new AscCommon.CellBase(row-rowLT,col-colLT);var bboxCell=new Asc.Range(col,row,col,row);var v1=rule.getValueCellIs(t,formulaParent,bboxCell,offset,false);var res;t._getCellNoEmpty(row,col,function(cell){res=rule.cellIs(operator,cell,v1)?rule.dxf:null});return res}}(oRule,operator,new AscCommonExcel.CConditionalFormattingFormulaParent(this,
oRule,true),bboxCf?bboxCf.r1:0,bboxCf?bboxCf.c1:0))}else compareFunction=function(rule,operator,v1){return function(row,col){var res;t._getCellNoEmpty(row,col,function(cell){res=rule.cellIs(operator,cell,v1)?rule.dxf:null});return res}}(oRule,operator,oRule.getValueCellIs(this));break;case AscCommonExcel.ECfType.containsErrors:compareFunction=function(rule){return function(row,col){var val;t._getCellNoEmpty(row,col,function(cell){val=cell?CellValueType.Error===cell.getType():false});return val?rule.dxf:
null}}(oRule);break;case AscCommonExcel.ECfType.notContainsErrors:compareFunction=function(rule){return function(row,col){var val;t._getCellNoEmpty(row,col,function(cell){val=cell?CellValueType.Error!==cell.getType():true});return val?rule.dxf:null}}(oRule);break;case AscCommonExcel.ECfType.containsBlanks:compareFunction=function(rule){return function(row,col){var val;t._getCellNoEmpty(row,col,function(cell){if(cell)val=""===cell.getValueWithoutFormat().replace(/^ +| +$/g,"");else val=true});return val?
rule.dxf:null}}(oRule);break;case AscCommonExcel.ECfType.notContainsBlanks:compareFunction=function(rule){return function(row,col){var val;t._getCellNoEmpty(row,col,function(cell){if(cell)val=""!==cell.getValueWithoutFormat().replace(/^ +| +$/g,"");else val=false});return val?rule.dxf:null}}(oRule);break;case AscCommonExcel.ECfType.timePeriod:if(oRule.timePeriod)compareFunction=function(rule,period){return function(row,col){var val;t._getCellNoEmpty(row,col,function(cell){val=cell?cell.getValueWithoutFormat():
""});var n=parseFloat(val);return period.start<=n&&n<period.end?rule.dxf:null}}(oRule,oRule.getTimePeriod());else continue;break;case AscCommonExcel.ECfType.cellIs:formulaParent=new AscCommonExcel.CConditionalFormattingFormulaParent(this,oRule,true);oRuleElement=oRule.aRuleElements[0];parsed1=oRuleElement&&oRuleElement.getFormula&&oRuleElement.getFormula(this,formulaParent);oRuleElement=oRule.aRuleElements[1];parsed2=oRuleElement&&oRuleElement.getFormula&&oRuleElement.getFormula(this,formulaParent);
if(parsed1&&parsed1.hasRelativeRefs()||parsed2&&parsed2.hasRelativeRefs()){bboxCf=oRule.getBBox();compareFunction=getCacheFunction(oRule,function(rule,ruleElem1,ruleElem2,formulaParent,rowLT,colLT){return function(row,col){var offset=new AscCommon.CellBase(row-rowLT,col-colLT);var bboxCell=new Asc.Range(col,row,col,row);var v1=ruleElem1&&ruleElem1.getValue(t,formulaParent,bboxCell,offset,false);var v2=ruleElem2&&ruleElem2.getValue(t,formulaParent,bboxCell,offset,false);var res;t._getCellNoEmpty(row,
col,function(cell){res=rule.cellIs(rule.operator,cell,v1,v2)?rule.dxf:null});return res}}(oRule,oRule.aRuleElements[0],oRule.aRuleElements[1],new AscCommonExcel.CConditionalFormattingFormulaParent(this,oRule,true),bboxCf?bboxCf.r1:0,bboxCf?bboxCf.c1:0))}else compareFunction=function(rule,v1,v2){return function(row,col){var res;t._getCellNoEmpty(row,col,function(cell){res=rule.cellIs(rule.operator,cell,v1,v2)?rule.dxf:null});return res}}(oRule,oRule.aRuleElements[0]&&oRule.aRuleElements[0].getValue(this),
oRule.aRuleElements[1]&&oRule.aRuleElements[1].getValue(this));break;case AscCommonExcel.ECfType.expression:bboxCf=oRule.getBBox();compareFunction=getCacheFunction(oRule,function(rule,formulaCF,formulaParent,rowLT,colLT){return function(row,col){var offset=new AscCommon.CellBase(row-rowLT,col-colLT);var bboxCell=new Asc.Range(col,row,col,row);var res=formulaCF&&formulaCF.getValue(t,formulaParent,bboxCell,offset,true);if(res&&res.tocBool){res=res.tocBool();if(res&&res.toBool)return res.toBool()}return false}}(oRule,
oRule.aRuleElements[0],new AscCommonExcel.CConditionalFormattingFormulaParent(this,oRule,true),bboxCf?bboxCf.r1:0,bboxCf?bboxCf.c1:0));break;default:continue;break}}if(compareFunction)this.sheetMergedStyles.setConditionalStyle(multiplyRange,compareFunction)}}};Worksheet.prototype._forEachRow=function(fAction){this.getRange3(0,0,gc_nMaxRow0,0)._foreachRowNoEmpty(fAction)};Worksheet.prototype._forEachCol=function(fAction){this.getRange3(0,0,0,gc_nMaxCol0)._foreachColNoEmpty(fAction)};Worksheet.prototype._forEachColData=
function(fAction){for(var i=0;i<this.cellsByCol.length;++i){var sheetMemory=this.cellsByCol[i];if(sheetMemory)fAction(sheetMemory,i)}};Worksheet.prototype._forEachCell=function(fAction){this.getRange3(0,0,gc_nMaxRow0,gc_nMaxCol0)._foreachNoEmpty(fAction)};Worksheet.prototype.getId=function(){return this.Id};Worksheet.prototype.getIndex=function(){return this.index};Worksheet.prototype.getName=function(){return this.sName!==undefined&&this.sName.length>0?this.sName:""};Worksheet.prototype.setName=
function(name,bFromUndoRedo){if(name.length<=g_nSheetNameMaxLength){var lastName=this.sName;History.Create_NewPoint();var prepared=this.workbook.dependencyFormulas.prepareChangeSheet(this.getId(),{rename:{from:lastName,to:name}});this.sName=name;this.workbook.dependencyFormulas.changeSheet(prepared);History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_Rename,this.getId(),null,new UndoRedoData_FromTo(lastName,name));if(!bFromUndoRedo){var _lastName=parserHelp.getEscapeSheetName(lastName);
var _newName=parserHelp.getEscapeSheetName(this.sName);for(var key in this.workbook.aWorksheets){var wsModel=this.workbook.aWorksheets[key];if(wsModel)wsModel.oDrawingOjectsManager.updateChartReferencesWidthHistory(_lastName,_newName,true)}}this.workbook.dependencyFormulas.calcTree()}else console.log(new Error("The sheet name must be less than 31 characters."))};Worksheet.prototype.getTabColor=function(){return this.sheetPr&&this.sheetPr.TabColor?Asc.colorObjToAscColor(this.sheetPr.TabColor):null};
Worksheet.prototype.setTabColor=function(color){if(!this.sheetPr)this.sheetPr=new AscCommonExcel.asc_CSheetPr;History.Create_NewPoint();History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_SetTabColor,this.getId(),null,new UndoRedoData_FromTo(this.sheetPr.TabColor?this.sheetPr.TabColor.clone():null,color?color.clone():null));this.sheetPr.TabColor=color;if(!this.workbook.bUndoChanges&&!this.workbook.bRedoChanges)this.workbook.handlers.trigger("asc_onUpdateTabColor",this.getIndex())};
Worksheet.prototype.rebuildTabColor=function(){if(this.sheetPr&&this.sheetPr.TabColor)this.workbook.handlers.trigger("asc_onUpdateTabColor",this.getIndex())};Worksheet.prototype.getHidden=function(){return true===this.bHidden};Worksheet.prototype.setHidden=function(hidden){var bOldHidden=this.bHidden,wb=this.workbook,wsActive=wb.getActiveWs(),oVisibleWs=null;this.bHidden=hidden;if(true==this.bHidden&&this.getIndex()==wsActive.getIndex()){oVisibleWs=wb.findSheetNoHidden(this.getIndex());if(null!=oVisibleWs){var nNewIndex=
oVisibleWs.getIndex();wb.setActive(nNewIndex);if(!wb.bUndoChanges&&!wb.bRedoChanges)wb.handlers.trigger("undoRedoHideSheet",nNewIndex)}}if(bOldHidden!=hidden){History.Create_NewPoint();History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_Hide,this.getId(),null,new UndoRedoData_FromTo(bOldHidden,hidden));if(null!=oVisibleWs){History.SetSheetUndo(wsActive.getId());History.SetSheetRedo(oVisibleWs.getId())}}};Worksheet.prototype.getSheetView=function(){return this.sheetViews[0]};
Worksheet.prototype.getSheetViewSettings=function(){return this.sheetViews[0].clone()};Worksheet.prototype.setDisplayGridlines=function(value){var view=this.sheetViews[0];if(value!==view.showGridLines){History.Create_NewPoint();History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_SetDisplayGridlines,this.getId(),null,new UndoRedoData_FromTo(view.showGridLines,value));view.showGridLines=value;if(!this.workbook.bUndoChanges&&!this.workbook.bRedoChanges)this.workbook.handlers.trigger("asc_onUpdateSheetViewSettings")}};
Worksheet.prototype.setDisplayHeadings=function(value){var view=this.sheetViews[0];if(value!==view.showRowColHeaders){History.Create_NewPoint();History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_SetDisplayHeadings,this.getId(),null,new UndoRedoData_FromTo(view.showRowColHeaders,value));view.showRowColHeaders=value;if(!this.workbook.bUndoChanges&&!this.workbook.bRedoChanges)this.workbook.handlers.trigger("asc_onUpdateSheetViewSettings")}};Worksheet.prototype.getRowsCount=function(){var result=
this.nRowsCount;var pane=this.sheetViews.length&&this.sheetViews[0].pane;if(pane&&pane.topLeftFrozenCell)result=Math.max(result,pane.topLeftFrozenCell.getRow0());return result};Worksheet.prototype.removeRows=function(start,stop,bExcludeHiddenRows){var removeRowsArr=bExcludeHiddenRows?this._getNoHiddenRowsArr(start,stop):[{start:start,stop:stop}];for(var i=removeRowsArr.length-1;i>=0;i--){var oRange=this.getRange(new CellAddress(removeRowsArr[i].start,0,0),new CellAddress(removeRowsArr[i].stop,gc_nMaxCol0,
0));oRange.deleteCellsShiftUp()}};Worksheet.prototype._getNoHiddenRowsArr=function(start,stop){var res=[];var elem=null;for(var i=start;i<=stop;i++)if(this.getRowHidden(i)){if(elem){res.push(elem);elem=null}}else{if(!elem){elem={};elem.start=i;elem.stop=i}else elem.stop++;if(i===stop)res.push(elem)}return res};Worksheet.prototype._updateFormulasParents=function(r1,c1,r2,c2,bbox,offset,shiftedShared){var t=this;var cellWithFormula;var shiftedArrayFormula={};this.getRange3(r1,c1,r2,c2)._foreachNoEmpty(function(cell){var newNRow=
cell.nRow+offset.row;var newNCol=cell.nCol+offset.col;var bHor=0!==offset.col;var toDelete=offset.col<0||offset.row<0;if(cell.isFormula()){var processed=c_oSharedShiftType.NeedTransform;var parsed=cell.getFormulaParsed();var shared=parsed.getShared();var arrayFormula=parsed.getArrayFormulaRef();var formulaRefObj=null;if(shared){processed=shiftedShared[parsed.getListenerId()];var isPreProcessed=c_oSharedShiftType.PreProcessed===processed;if(!processed||isPreProcessed){if(!processed){var bboxShift=
AscCommonExcel.shiftGetBBox(bbox,bHor);if(bboxShift.containsRange(shared.ref)&&(!toDelete||!bbox.isIntersect(shared.ref)))processed=c_oSharedShiftType.Processed;else processed=c_oSharedShiftType.NeedTransform}else if(isPreProcessed)processed=c_oSharedShiftType.Processed;if(c_oSharedShiftType.Processed===processed){var newRef=shared.ref.clone();newRef.forShift(bbox,offset,t.workbook.bUndoChanges);parsed.setSharedRef(newRef,!isPreProcessed);t.workbook.dependencyFormulas.addToChangedRange2(t.getId(),
newRef)}shiftedShared[parsed.getListenerId()]=processed}}else if(arrayFormula)if(!shiftedArrayFormula[parsed.getListenerId()]&&parsed.checkFirstCellArray(cell)){shiftedArrayFormula[parsed.getListenerId()]=1;var newArrayRef=arrayFormula.clone();newArrayRef.setOffset(offset);parsed.setArrayFormulaRef(newArrayRef)}else processed=c_oSharedShiftType.Processed;if(c_oSharedShiftType.NeedTransform===processed){var isTransform=cell.transformSharedFormula();parsed=cell.getFormulaParsed();if(isTransform)parsed.buildDependencies();
cellWithFormula=parsed.getParent();cellWithFormula.nRow=newNRow;cellWithFormula.nCol=newNCol;t.workbook.dependencyFormulas.addToChangedCell(cellWithFormula)}}t.cellsByColRowsCount=Math.max(t.cellsByColRowsCount,newNRow+1);t.nRowsCount=Math.max(t.nRowsCount,t.cellsByColRowsCount);t.nColsCount=Math.max(t.nColsCount,newNCol+1)})};Worksheet.prototype._removeRows=function(start,stop){var t=this;this.workbook.dependencyFormulas.lockRecal();History.Create_NewPoint();var nDif=-(stop-start+1);var oActualRange=
new Asc.Range(0,start,gc_nMaxCol0,stop);var offset=new AscCommon.CellBase(nDif,0);var renameRes=this.renameDependencyNodes(offset,oActualRange);var redrawTablesArr=this.autoFilters.insertRows("delCell",oActualRange,c_oAscDeleteOptions.DeleteRows);this.updatePivotOffset(oActualRange,offset);var collapsedInfo=null,lastRowIndex;var oDefRowPr=new AscCommonExcel.UndoRedoData_RowProp;this.getRange3(start,0,stop,gc_nMaxCol0)._foreachRowNoEmpty(function(row){var oOldProps=row.getHeightProp();lastRowIndex=
row.index;if(false===oOldProps.isEqual(oDefRowPr))History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_RowProp,t.getId(),row._getUpdateRange(),new UndoRedoData_IndexSimpleProp(row.getIndex(),true,oOldProps,oDefRowPr));row.setStyle(null);if(!t.workbook.bRedoChanges){if(collapsedInfo!==null&&collapsedInfo<row.getOutlineLevel())collapsedInfo=null;if(row.getCollapsed()){collapsedInfo=row.getOutlineLevel();t.setCollapsedRow(false,null,row)}}},function(cell){t._removeCell(null,null,
cell)});if(collapsedInfo!==null&&lastRowIndex===stop)this._getRow(stop+1,function(row){t.setCollapsedRow(true,null,row)});this._updateFormulasParents(start,0,gc_nMaxRow0,gc_nMaxCol0,oActualRange,offset,renameRes.shiftedShared);this.rowsData.deleteRange(start,-nDif);this._forEachColData(function(sheetMemory){sheetMemory.deleteRange(start,-nDif)});this.workbook.dependencyFormulas.notifyChanged(renameRes.changed);History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_RemoveRows,
this.getId(),new Asc.Range(0,start,gc_nMaxCol0,gc_nMaxRow0),new UndoRedoData_FromToRowCol(true,start,stop));this.autoFilters.redrawStylesTables(redrawTablesArr);this.workbook.dependencyFormulas.unlockRecal();return true};Worksheet.prototype.insertRowsBefore=function(index,count){var oRange=this.getRange(new CellAddress(index,0,0),new CellAddress(index+count-1,gc_nMaxCol0,0));oRange.addCellsShiftBottom()};Worksheet.prototype._getBordersForInsert=function(bbox,bRow){var t=this;var borders={};var offsetRow=
bRow&&bbox.r1>0?-1:0;var offsetCol=!bRow&&bbox.c1>0?-1:0;var r2=bRow?bbox.r1:bbox.r2;var c2=!bRow?bbox.c1:bbox.c2;if(0!==offsetRow||0!==offsetCol)this.getRange3(bbox.r1,bbox.c1,r2,c2)._foreachNoEmpty(function(cell){if(cell.xfs&&cell.xfs.border)t._getCellNoEmpty(cell.nRow+offsetRow,cell.nCol+offsetCol,function(neighbor){if(neighbor&&neighbor.xfs&&neighbor.xfs.border){var newBorder=neighbor.xfs.border.clone();newBorder.intersect(cell.xfs.border,g_oDefaultFormat.BorderAbs,true);borders[bRow?cell.nCol:
cell.nRow]=newBorder}})});return borders};Worksheet.prototype._insertRowsBefore=function(index,count){var t=this;this.workbook.dependencyFormulas.lockRecal();var oActualRange=new Asc.Range(0,index,gc_nMaxCol0,index+count-1);History.Create_NewPoint();var offset=new AscCommon.CellBase(count,0);var renameRes=this.renameDependencyNodes(offset,oActualRange);var redrawTablesArr=this.autoFilters.insertRows("insCell",oActualRange,c_oAscInsertOptions.InsertColumns);this.updatePivotOffset(oActualRange,offset);
this._updateFormulasParents(index,0,gc_nMaxRow0,gc_nMaxCol0,oActualRange,offset,renameRes.shiftedShared);var borders;if(index>0&&!this.workbook.bUndoChanges)borders=this._getBordersForInsert(oActualRange,true);this.rowsData.insertRange(index,count);this.nRowsCount=Math.max(this.nRowsCount,this.rowsData.getSize());this._forEachColData(function(sheetMemory){sheetMemory.insertRange(index,count);t.cellsByColRowsCount=Math.max(t.cellsByColRowsCount,sheetMemory.getSize())});this.nRowsCount=Math.max(this.nRowsCount,
this.cellsByColRowsCount);if(index>0&&!this.workbook.bUndoChanges){this.rowsData.copyRangeByChunk(index-1,1,index,count);this.nRowsCount=Math.max(this.nRowsCount,this.rowsData.getSize());this._forEachColData(function(sheetMemory){sheetMemory.copyRangeByChunk(index-1,1,index,count);t.cellsByColRowsCount=Math.max(t.cellsByColRowsCount,sheetMemory.getSize())});this.nRowsCount=Math.max(this.nRowsCount,this.cellsByColRowsCount);this.getRange3(index,0,index+count-1,gc_nMaxCol0)._foreachRowNoEmpty(function(row){row.setHidden(false)},
function(cell){cell.clearDataKeepXf(borders[cell.nCol])})}this.workbook.dependencyFormulas.notifyChanged(renameRes.changed);History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_AddRows,this.getId(),new Asc.Range(0,index,gc_nMaxCol0,gc_nMaxRow0),new UndoRedoData_FromToRowCol(true,index,index+count-1));this.autoFilters.redrawStylesTables(redrawTablesArr);this.workbook.dependencyFormulas.unlockRecal();return true};Worksheet.prototype.insertRowsAfter=function(index,count){return this.insertRowsBefore(index+
1,count)};Worksheet.prototype.getColsCount=function(){var result=this.nColsCount;var pane=this.sheetViews.length&&this.sheetViews[0].pane;if(pane&&pane.topLeftFrozenCell)result=Math.max(result,pane.topLeftFrozenCell.getCol0());return result};Worksheet.prototype.removeCols=function(start,stop){var oRange=this.getRange(new CellAddress(0,start,0),new CellAddress(gc_nMaxRow0,stop,0));oRange.deleteCellsShiftLeft()};Worksheet.prototype._removeCols=function(start,stop){var t=this;this.workbook.dependencyFormulas.lockRecal();
History.Create_NewPoint();var nDif=-(stop-start+1),i,j,length;var oActualRange=new Asc.Range(start,0,stop,gc_nMaxRow0);var offset=new AscCommon.CellBase(0,nDif);var renameRes=this.renameDependencyNodes(offset,oActualRange);var redrawTablesArr=this.autoFilters.insertColumn(oActualRange,nDif);this.updatePivotOffset(oActualRange,offset);var collapsedInfo=null,lastRowIndex;var oDefColPr=new AscCommonExcel.UndoRedoData_ColProp;this.getRange3(0,start,gc_nMaxRow0,stop)._foreachColNoEmpty(function(col){var nIndex=
col.getIndex();var oOldProps=col.getWidthProp();if(false===oOldProps.isEqual(oDefColPr))History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_ColProp,t.getId(),new Asc.Range(nIndex,0,nIndex,gc_nMaxRow0),new UndoRedoData_IndexSimpleProp(nIndex,false,oOldProps,oDefColPr));col.setStyle(null);lastRowIndex=col.index;if(!t.workbook.bRedoChanges){if(collapsedInfo!==null&&collapsedInfo<col.getOutlineLevel())collapsedInfo=null;if(col.getCollapsed()){collapsedInfo=col.getOutlineLevel();
t.setCollapsedCol(false,null,col)}}},function(cell){t._removeCell(null,null,cell)});if(collapsedInfo!==null&&lastRowIndex===stop){var curCol=this._getCol(stop+1);if(curCol)t.setCollapsedCol(true,null,curCol)}this._updateFormulasParents(0,start,gc_nMaxRow0,gc_nMaxCol0,oActualRange,offset,renameRes.shiftedShared);this.cellsByCol.splice(start,stop-start+1);this.aCols.splice(start,stop-start+1);for(i=start,length=this.aCols.length;i<length;++i){var elem=this.aCols[i];if(null!=elem)elem.moveHor(nDif)}this.workbook.dependencyFormulas.notifyChanged(renameRes.changed);
History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_RemoveCols,this.getId(),new Asc.Range(start,0,gc_nMaxCol0,gc_nMaxRow0),new UndoRedoData_FromToRowCol(false,start,stop));this.autoFilters.redrawStylesTables(redrawTablesArr);this.workbook.dependencyFormulas.unlockRecal();return true};Worksheet.prototype.insertColsBefore=function(index,count){var oRange=this.getRange3(0,index,gc_nMaxRow0,index+count-1);oRange.addCellsShiftRight()};Worksheet.prototype._insertColsBefore=function(index,
count){this.workbook.dependencyFormulas.lockRecal();var oActualRange=new Asc.Range(index,0,index+count-1,gc_nMaxRow0);History.Create_NewPoint();var offset=new AscCommon.CellBase(0,count);var renameRes=this.renameDependencyNodes(offset,oActualRange);var redrawTablesArr=this.autoFilters.insertColumn(oActualRange,count);this.updatePivotOffset(oActualRange,offset);this._updateFormulasParents(0,index,gc_nMaxRow0,gc_nMaxCol0,oActualRange,offset,renameRes.shiftedShared);var borders;if(index>0&&!this.workbook.bUndoChanges)borders=
this._getBordersForInsert(oActualRange,false);this.cellsByCol.splice(gc_nMaxCol0-count+1,count);for(var i=this.cellsByCol.length-1;i>=index;--i){this.cellsByCol[i+count]=this.cellsByCol[i];this.cellsByCol[i]=undefined}this.nColsCount=Math.max(this.nColsCount,this.getColDataLength());this.aCols.splice(gc_nMaxCol0-count+1,count);for(var i=this.aCols.length-1;i>=index;--i){this.aCols[i+count]=this.aCols[i];this.aCols[i]=undefined;if(this.aCols[i+count])this.aCols[i+count].moveHor(count)}this.nColsCount=
Math.max(this.nColsCount,this.aCols.length);if(!this.workbook.bUndoChanges){var oPrevCol=null;if(index>0)oPrevCol=this.aCols[index-1];if(null==oPrevCol&&null!=this.oAllCol)oPrevCol=this.oAllCol;if(null!=oPrevCol){History.LocalChange=true;for(var i=index;i<index+count;++i){var oNewCol=oPrevCol.clone();oNewCol.setHidden(null);oNewCol.BestFit=null;oNewCol.index=i;this.aCols[i]=oNewCol}History.LocalChange=false}var prevCellsByCol=index>0?this.cellsByCol[index-1]:null;if(prevCellsByCol){for(var i=index;i<
index+count;++i)this.cellsByCol[i]=prevCellsByCol.clone();this.nColsCount=Math.max(this.nColsCount,this.getColDataLength());this.getRange3(0,index,gc_nMaxRow0,index+count-1)._foreachNoEmpty(function(cell){cell.clearDataKeepXf(borders[cell.nRow])})}}this.workbook.dependencyFormulas.notifyChanged(renameRes.changed);History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_AddCols,this.getId(),new Asc.Range(index,0,gc_nMaxCol0,gc_nMaxRow0),new UndoRedoData_FromToRowCol(false,index,
index+count-1));this.autoFilters.redrawStylesTables(redrawTablesArr);this.workbook.dependencyFormulas.unlockRecal();return true};Worksheet.prototype.insertColsAfter=function(index,count){return this.insertColsBefore(index+1,count)};Worksheet.prototype.getDefaultWidth=function(){return this.oSheetFormatPr.dDefaultColWidth};Worksheet.prototype.getDefaultFontName=function(){return this.workbook.getDefaultFont()};Worksheet.prototype.getDefaultFontSize=function(){return this.workbook.getDefaultSize()};
Worksheet.prototype.getBaseColWidth=function(){return this.oSheetFormatPr.nBaseColWidth||8};Worksheet.prototype.charCountToModelColWidth=function(count){return this.workbook.charCountToModelColWidth(count)};Worksheet.prototype.modelColWidthToColWidth=function(mcw){return this.workbook.modelColWidthToColWidth(mcw)};Worksheet.prototype.colWidthToCharCount=function(w){return this.workbook.colWidthToCharCount(w)};Worksheet.prototype.getColWidth=function(index){var col=this._getColNoEmptyWithAll(index);
if(null!=col&&null!=col.width)return col.width;var dResult=this.oSheetFormatPr.dDefaultColWidth;if(dResult===undefined||dResult===null||dResult==0)dResult=-1;return dResult};Worksheet.prototype.setColWidth=function(width,start,stop){width=this.charCountToModelColWidth(width);if(0==width)return this.setColHidden(true,start,stop);if(null==start)return;if(null==stop)stop=start;History.Create_NewPoint();var oSelection=History.GetSelection();if(null!=oSelection){oSelection=oSelection.clone();oSelection.assign(start,
0,stop,gc_nMaxRow0);History.SetSelection(oSelection);History.SetSelectionRedo(oSelection)}var bNotAddCollapsed=true==this.workbook.bUndoChanges||true==this.workbook.bRedoChanges||this.bExcludeCollapsed;var _summaryRight=this.sheetPr?this.sheetPr.SummaryRight:true;var oThis=this,prevCol;var fProcessCol=function(col){if(col.width!=width){if(_summaryRight&&!bNotAddCollapsed&&col.getCollapsed())oThis.setCollapsedCol(false,null,col);else if(!_summaryRight&&!bNotAddCollapsed&&prevCol&&prevCol.getCollapsed())oThis.setCollapsedCol(false,
null,prevCol);prevCol=col;var oOldProps=col.getWidthProp();col.width=width;col.CustomWidth=true;col.BestFit=null;col.setHidden(null);oThis.initColumn(col);var oNewProps=col.getWidthProp();if(false==oOldProps.isEqual(oNewProps))History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_ColProp,oThis.getId(),col._getUpdateRange(),new UndoRedoData_IndexSimpleProp(col.index,false,oOldProps,oNewProps))}};if(0==start&&gc_nMaxCol0==stop){var col=this.getAllCol();fProcessCol(col);for(var i in this.aCols){var col=
this.aCols[i];if(null!=col)fProcessCol(col)}}else{if(!_summaryRight)if(!bNotAddCollapsed&&start>0)prevCol=this._getCol(start-1);for(var i=start;i<=stop;i++){var col=this._getCol(i);fProcessCol(col)}if(_summaryRight&&!bNotAddCollapsed&&prevCol){col=this._getCol(stop+1);if(col.getCollapsed())this.setCollapsedCol(false,null,col)}}};Worksheet.prototype.getColHidden=function(index){var col=this._getColNoEmptyWithAll(index);return col?col.getHidden():false};Worksheet.prototype.setColHidden=function(bHidden,
start,stop){if(null==start)return;if(null==stop)stop=start;History.Create_NewPoint();var oThis=this,outlineLevel;var bNotAddCollapsed=true==this.workbook.bUndoChanges||true==this.workbook.bRedoChanges||this.bExcludeCollapsed;var _summaryRight=this.sheetPr?this.sheetPr.SummaryRight:true;var fProcessCol=function(col){if(col&&!bNotAddCollapsed&&outlineLevel!==undefined&&outlineLevel!==col.getOutlineLevel())if(!_summaryRight)oThis.setCollapsedCol(bHidden,col.index-1);else oThis.setCollapsedCol(bHidden,
null,col);outlineLevel=col?col.getOutlineLevel():null;if(col.getHidden()!=bHidden){var oOldProps=col.getWidthProp();if(bHidden){col.setHidden(bHidden);if(null==col.width||true!=col.CustomWidth)col.width=0;col.CustomWidth=true;col.BestFit=null}else{col.setHidden(null);if(0>=col.width)col.width=null}var oNewProps=col.getWidthProp();if(false==oOldProps.isEqual(oNewProps))History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_ColProp,oThis.getId(),col._getUpdateRange(),new UndoRedoData_IndexSimpleProp(col.index,
false,oOldProps,oNewProps))}};if(!bNotAddCollapsed&&!_summaryRight&&start>0){col=this._getCol(start-1);outlineLevel=col.getOutlineLevel()}if(0!=start&&gc_nMaxCol0==stop){var col=null;if(false==bHidden)col=this.oAllCol;else col=this.getAllCol();if(null!=col)fProcessCol(col);for(var i in this.aCols){var col=this.aCols[i];if(null!=col)fProcessCol(col)}}else for(var i=start;i<=stop;i++){var col=null;if(false==bHidden)col=this._getColNoEmpty(i);else col=this._getCol(i);if(null!=col)fProcessCol(col)}if(!bNotAddCollapsed&&
outlineLevel&&_summaryRight){col=this._getCol(stop+1);if(col&&outlineLevel!==col.getOutlineLevel())oThis.setCollapsedCol(bHidden,null,col)}};Worksheet.prototype.setCollapsedCol=function(bCollapse,colIndex,curCol){var oThis=this;var fProcessCol=function(col){var oOldProps=col.getCollapsed();col.setCollapsed(bCollapse);var oNewProps=col.getCollapsed();if(oOldProps!==oNewProps)History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_CollapsedCol,oThis.getId(),col._getUpdateRange(),
new UndoRedoData_IndexSimpleProp(col.index,true,oOldProps,oNewProps))};if(curCol)fProcessCol(curCol);else this.getRange3(0,colIndex,0,colIndex)._foreachCol(fProcessCol)};Worksheet.prototype.setSummaryRight=function(val){if(!this.sheetPr)this.sheetPr=new AscCommonExcel.asc_CSheetPr;History.Create_NewPoint();History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_SetSummaryRight,this.getId(),null,new UndoRedoData_FromTo(this.sheetPr.SummaryRight,val));this.sheetPr.SummaryRight=val};
Worksheet.prototype.setSummaryBelow=function(val){if(!this.sheetPr)this.sheetPr=new AscCommonExcel.asc_CSheetPr;History.Create_NewPoint();History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_SetSummaryBelow,this.getId(),null,new UndoRedoData_FromTo(this.sheetPr.SummaryBelow,val));this.sheetPr.SummaryBelow=val};Worksheet.prototype.setGroupCol=function(bDel,start,stop){var oThis=this;var fProcessCol=function(col){var oOldProps=col.getOutlineLevel();col.setOutlineLevel(null,bDel);
var oNewProps=col.getOutlineLevel();if(oOldProps!==oNewProps)History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_GroupCol,oThis.getId(),col._getUpdateRange(),new UndoRedoData_IndexSimpleProp(col.index,true,oOldProps,oNewProps))};this.getRange3(0,start,0,stop)._foreachCol(fProcessCol)};Worksheet.prototype.setOutlineCol=function(val,start,stop){var oThis=this;var fProcessCol=function(col){var oOldProps=col.getOutlineLevel();col.setOutlineLevel(val);var oNewProps=col.getOutlineLevel();
if(oOldProps!==oNewProps)History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_GroupCol,oThis.getId(),col._getUpdateRange(),new UndoRedoData_IndexSimpleProp(col.index,true,oOldProps,oNewProps))};this.getRange3(0,start,0,stop)._foreachCol(fProcessCol)};Worksheet.prototype.getColCustomWidth=function(index){var isBestFit;var column=this._getColNoEmptyWithAll(index);if(!column)isBestFit=true;else if(column.getHidden())isBestFit=false;else isBestFit=!!(column.BestFit||null===column.BestFit&&
null===column.CustomWidth);return!isBestFit};Worksheet.prototype.setColBestFit=function(bBestFit,width,start,stop){if(null==start)return;if(null==stop)stop=start;History.Create_NewPoint();var oThis=this;var fProcessCol=function(col){var oOldProps=col.getWidthProp();if(bBestFit){col.BestFit=bBestFit;col.setHidden(null)}else col.BestFit=null;col.width=width;oThis.initColumn(col);var oNewProps=col.getWidthProp();if(false==oOldProps.isEqual(oNewProps))History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_ColProp,
oThis.getId(),col._getUpdateRange(),new UndoRedoData_IndexSimpleProp(col.index,false,oOldProps,oNewProps))};if(0!=start&&gc_nMaxCol0==stop){var col=null;if(bBestFit&&oDefaultMetrics.ColWidthChars==width)col=this.oAllCol;else col=this.getAllCol();if(null!=col)fProcessCol(col);for(var i in this.aCols){var col=this.aCols[i];if(null!=col)fProcessCol(col)}}else for(var i=start;i<=stop;i++){var col=null;if(bBestFit&&oDefaultMetrics.ColWidthChars==width)col=this._getColNoEmpty(i);else col=this._getCol(i);
if(null!=col)fProcessCol(col)}};Worksheet.prototype.isDefaultHeightHidden=function(){return null!=this.oSheetFormatPr.oAllRow&&this.oSheetFormatPr.oAllRow.getHidden()};Worksheet.prototype.isDefaultWidthHidden=function(){return null!=this.oAllCol&&this.oAllCol.getHidden()};Worksheet.prototype.setDefaultHeight=function(h){if(this.oSheetFormatPr.oAllRow&&!this.oSheetFormatPr.oAllRow.getCustomHeight())this.oSheetFormatPr.oAllRow.h=h};Worksheet.prototype.getDefaultHeight=function(){var dRes=null;if(null!=
this.oSheetFormatPr.oAllRow&&this.oSheetFormatPr.oAllRow.getCustomHeight())dRes=this.oSheetFormatPr.oAllRow.h;return dRes};Worksheet.prototype.getRowHeight=function(index){var res;this._getRowNoEmptyWithAll(index,function(row){res=row?row.getHeight():-1});return res};Worksheet.prototype.setRowHeight=function(height,start,stop,isCustom){if(0==height)return this.setRowHidden(true,start,stop);if(null==start)return;if(null==stop)stop=start;History.Create_NewPoint();var oThis=this,i;var oSelection=History.GetSelection();
if(null!=oSelection){oSelection=oSelection.clone();oSelection.assign(0,start,gc_nMaxCol0,stop);History.SetSelection(oSelection);History.SetSelectionRedo(oSelection)}var prevRow;var bNotAddCollapsed=true==this.workbook.bUndoChanges||true==this.workbook.bRedoChanges||this.bExcludeCollapsed;var _summaryBelow=this.sheetPr?this.sheetPr.SummaryBelow:true;var fProcessRow=function(row){if(row){if(_summaryBelow&&!bNotAddCollapsed&&row.getCollapsed())oThis.setCollapsedRow(false,null,row);else if(!_summaryBelow&&
!bNotAddCollapsed&&prevRow&&prevRow.getCollapsed())oThis.setCollapsedRow(false,null,prevRow);prevRow=row;var oOldProps=row.getHeightProp();row.setHeight(height);if(isCustom)row.setCustomHeight(true);row.setCalcHeight(true);row.setHidden(false);var oNewProps=row.getHeightProp();if(false===oOldProps.isEqual(oNewProps))History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_RowProp,oThis.getId(),row._getUpdateRange(),new UndoRedoData_IndexSimpleProp(row.index,true,oOldProps,oNewProps))}};
if(0==start&&gc_nMaxRow0==stop){fProcessRow(this.getAllRow());this._forEachRow(fProcessRow)}else{if(!_summaryBelow)if(!bNotAddCollapsed&&start>0)this._getRow(start-1,function(row){prevRow=row});this.getRange3(start,0,stop,0)._foreachRow(fProcessRow);if(_summaryBelow)if(!bNotAddCollapsed&&prevRow)this._getRow(stop+1,function(row){if(row.getCollapsed())oThis.setCollapsedRow(false,null,row)})}if(this.needRecalFormulas(start,stop))this.workbook.dependencyFormulas.calcTree()};Worksheet.prototype.getRowHidden=
function(index){var res;this._getRowNoEmptyWithAll(index,function(row){res=row?row.getHidden():false});return res};Worksheet.prototype.setRowHidden=function(bHidden,start,stop){if(null==start)return;if(null==stop)stop=start;History.Create_NewPoint();var oThis=this,i;var startIndex=null,endIndex=null,updateRange,outlineLevel;var bNotAddCollapsed=true==this.workbook.bUndoChanges||true==this.workbook.bRedoChanges||this.bExcludeCollapsed;var _summaryBelow=this.sheetPr?this.sheetPr.SummaryBelow:true;var fProcessRow=
function(row){if(row&&!bNotAddCollapsed&&outlineLevel!==undefined&&outlineLevel!==row.getOutlineLevel())if(!_summaryBelow)oThis.setCollapsedRow(bHidden,row.index-1);else oThis.setCollapsedRow(bHidden,null,row);outlineLevel=row?row.getOutlineLevel():null;if(row&&bHidden!=row.getHidden()){row.setHidden(bHidden);if(row.index===endIndex+1&&startIndex!==null)endIndex++;else{if(startIndex!==null){updateRange=new Asc.Range(0,startIndex,gc_nMaxCol0,endIndex);History.Add(AscCommonExcel.g_oUndoRedoWorksheet,
AscCH.historyitem_Worksheet_RowHide,oThis.getId(),updateRange,new UndoRedoData_FromToRowCol(bHidden,startIndex,endIndex))}startIndex=row.index;endIndex=row.index}}};if(0==start&&gc_nMaxRow0==stop);else{if(!_summaryBelow&&start>0&&!bNotAddCollapsed)this._getRow(start-1,function(row){if(row)outlineLevel=row.getOutlineLevel()});for(i=start;i<=stop;++i)false==bHidden?this._getRowNoEmpty(i,fProcessRow):this._getRow(i,fProcessRow);if(_summaryBelow&&outlineLevel&&!bNotAddCollapsed)this._getRow(stop+1,function(row){if(row&&
outlineLevel!==row.getOutlineLevel())oThis.setCollapsedRow(bHidden,null,row)});if(startIndex!==null){updateRange=new Asc.Range(0,startIndex,gc_nMaxCol0,endIndex);History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_RowHide,oThis.getId(),updateRange,new UndoRedoData_FromToRowCol(bHidden,startIndex,endIndex))}}if(this.needRecalFormulas(start,stop))this.workbook.dependencyFormulas.calcTree()};Worksheet.prototype.setCollapsedRow=function(bCollapse,rowIndex,curRow){var oThis=this;
var fProcessRow=function(row,bSave){var oOldProps=row.getCollapsed();row.setCollapsed(bCollapse);var oNewProps=row.getCollapsed();if(oOldProps!==oNewProps)History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_CollapsedRow,oThis.getId(),row._getUpdateRange(),new UndoRedoData_IndexSimpleProp(row.index,true,oOldProps,oNewProps));if(bSave)row.saveContent(true)};if(curRow)fProcessRow(curRow,true);else this.getRange3(rowIndex,0,rowIndex,0)._foreachRow(fProcessRow)};Worksheet.prototype.setGroupRow=
function(bDel,start,stop){var oThis=this;var fProcessRow=function(row){var oOldProps=row.getOutlineLevel();row.setOutlineLevel(null,bDel);var oNewProps=row.getOutlineLevel();if(oOldProps!==oNewProps)History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_GroupRow,oThis.getId(),row._getUpdateRange(),new UndoRedoData_IndexSimpleProp(row.index,true,oOldProps,oNewProps))};this.getRange3(start,0,stop,0)._foreachRow(fProcessRow)};Worksheet.prototype.setOutlineRow=function(val,start,
stop){var oThis=this;var fProcessRow=function(row){var oOldProps=row.getOutlineLevel();row.setOutlineLevel(val);var oNewProps=row.getOutlineLevel();if(oOldProps!==oNewProps)History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_GroupRow,oThis.getId(),row._getUpdateRange(),new UndoRedoData_IndexSimpleProp(row.index,true,oOldProps,oNewProps))};this.getRange3(start,0,stop,0)._foreachRow(fProcessRow)};Worksheet.prototype.getRowCustomHeight=function(index){var isCustomHeight=false;
this._getRowNoEmptyWithAll(index,function(row){if(!row)isCustomHeight=false;else if(row.getHidden())isCustomHeight=true;else isCustomHeight=row.getCustomHeight()});return isCustomHeight};Worksheet.prototype.setRowBestFit=function(bBestFit,height,start,stop){if(null==start)return;if(null==stop)stop=start;History.Create_NewPoint();var oThis=this,i;var isDefaultProp=true==bBestFit&&oDefaultMetrics.RowHeight==height;var fProcessRow=function(row){if(row){var oOldProps=row.getHeightProp();row.setCustomHeight(!bBestFit);
row.setCalcHeight(true);row.setHeight(height);var oNewProps=row.getHeightProp();if(false==oOldProps.isEqual(oNewProps))History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_RowProp,oThis.getId(),row._getUpdateRange(),new UndoRedoData_IndexSimpleProp(row.index,true,oOldProps,oNewProps))}};if(0==start&&gc_nMaxRow0==stop){fProcessRow(isDefaultProp?this.oSheetFormatPr.oAllRow:this.getAllRow());this._forEachRow(fProcessRow)}else{var range=this.getRange3(start,0,stop,0);if(isDefaultProp)range._foreachRowNoEmpty(fProcessRow);
else range._foreachRow(fProcessRow)}this.workbook.dependencyFormulas.calcTree()};Worksheet.prototype.getCell=function(oCellAdd){return this.getRange(oCellAdd,oCellAdd)};Worksheet.prototype.getCell2=function(sCellAdd){if(sCellAdd.indexOf("$")>-1)sCellAdd=sCellAdd.replace(/\$/g,"");return this.getRange2(sCellAdd)};Worksheet.prototype.getCell3=function(r1,c1){return this.getRange3(r1,c1,r1,c1)};Worksheet.prototype.getRange=function(cellAdd1,cellAdd2){var nRow1=cellAdd1.getRow0();var nCol1=cellAdd1.getCol0();
var nRow2=cellAdd2.getRow0();var nCol2=cellAdd2.getCol0();return this.getRange3(nRow1,nCol1,nRow2,nCol2)};Worksheet.prototype.getRange2=function(sRange){var bbox=AscCommonExcel.g_oRangeCache.getAscRange(sRange);if(null!=bbox)return Range.prototype.createFromBBox(this,bbox);return null};Worksheet.prototype.getRange3=function(r1,c1,r2,c2){var nRowMin=r1;var nRowMax=r2;var nColMin=c1;var nColMax=c2;if(r1>r2){nRowMax=r1;nRowMin=r2}if(c1>c2){nColMax=c1;nColMin=c2}return new Range(this,nRowMin,nColMin,
nRowMax,nColMax)};Worksheet.prototype.getRange4=function(r,c){return new Range(this,r,c,r,c)};Worksheet.prototype.getRowIterator=function(r1,c1,c2,callback){var it=new RowIterator;it.init(this,r1,c1,c2);callback(it);it.release()};Worksheet.prototype._removeCell=function(nRow,nCol,cell){var t=this;var processCell=function(cell){if(null!=cell){var sheetId=t.getId();if(false==cell.isEmpty()){var oUndoRedoData_CellData=new AscCommonExcel.UndoRedoData_CellData(cell.getValueData(),null);if(null!=cell.xfs)oUndoRedoData_CellData.style=
cell.xfs.clone();cell.setFormulaInternal(null);History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_RemoveCell,sheetId,new Asc.Range(nCol,nRow,nCol,nRow),new UndoRedoData_CellSimpleData(nRow,nCol,oUndoRedoData_CellData,null))}t.workbook.dependencyFormulas.addToChangedCell(cell);cell.clearData();cell.saveContent(true)}};if(null!=cell){nRow=cell.nRow;nCol=cell.nCol;processCell(cell)}else this._getCellNoEmpty(nRow,nCol,processCell)};Worksheet.prototype._getCell=function(row,col,
fAction){var wb=this.workbook;var targetCell=null;for(var k=0;k<wb.loadCells.length;++k){var elem=wb.loadCells[k];if(elem.nRow==row&&elem.nCol==col&&this===elem.ws){targetCell=elem;break}}if(null===targetCell){var cell=new Cell(this);wb.loadCells.push(cell);if(!cell.loadContent(row,col))this._initCell(cell,row,col);fAction(cell);cell.saveContent(true);wb.loadCells.pop()}else fAction(targetCell)};Worksheet.prototype._initRow=function(row,index){var t=this;row.setChanged(true);if(null!=this.oSheetFormatPr.oAllRow){row.copyFrom(this.oSheetFormatPr.oAllRow);
row.setIndex(index)}this.nRowsCount=index>=this.nRowsCount?index+1:this.nRowsCount};Worksheet.prototype._initCell=function(cell,nRow,nCol){var t=this;cell.setChanged(true);this._getRowNoEmpty(nRow,function(row){var oCol=t._getColNoEmptyWithAll(nCol);var xfs=null;if(row&&null!=row.xfs)xfs=row.xfs.clone();else if(null!=oCol&&null!=oCol.xfs)xfs=oCol.xfs.clone();cell.setStyleInternal(xfs);t.cellsByColRowsCount=Math.max(t.cellsByColRowsCount,nRow+1);t.nRowsCount=Math.max(t.nRowsCount,t.cellsByColRowsCount);
if(nCol>=t.nColsCount)t.nColsCount=nCol+1});var sheetMemory=this.getColData(nCol);sheetMemory.checkSize(nRow)};Worksheet.prototype._getCellNoEmpty=function(row,col,fAction){var wb=this.workbook;var targetCell=null;for(var k=0;k<wb.loadCells.length;++k){var elem=wb.loadCells[k];if(elem.nRow==row&&elem.nCol==col&&this===elem.ws){targetCell=elem;break}}if(null===targetCell){var cell=new Cell(this);var res=cell.loadContent(row,col)?cell:null;if(res&&fAction)wb.loadCells.push(cell);fAction(res);cell.saveContent(true);
if(res)wb.loadCells.pop()}else fAction(targetCell)};Worksheet.prototype._getRowNoEmpty=function(nRow,fAction){var row=new AscCommonExcel.Row(this);if(row.loadContent(nRow)){fAction(row);row.saveContent(true)}else fAction(null)};Worksheet.prototype._getRowNoEmptyWithAll=function(nRow,fAction){var t=this;this._getRowNoEmpty(nRow,function(row){if(!row)row=t.oSheetFormatPr.oAllRow;fAction(row)})};Worksheet.prototype._getColNoEmpty=function(col){return this.aCols[col]||null};Worksheet.prototype._getColNoEmptyWithAll=
function(col){return this._getColNoEmpty(col)||this.oAllCol};Worksheet.prototype._getRow=function(index,fAction){var row=null;if(g_nAllRowIndex==index)row=this.getAllRow();else{row=new AscCommonExcel.Row(this);if(!row.loadContent(index))this._initRow(row,index)}fAction(row);row.saveContent(true)};Worksheet.prototype._getCol=function(index){var oCurCol;if(g_nAllColIndex==index)oCurCol=this.getAllCol();else{oCurCol=this.aCols[index];if(null==oCurCol){if(null!=this.oAllCol){oCurCol=this.oAllCol.clone();
oCurCol.index=index}else oCurCol=new AscCommonExcel.Col(this,index);this.aCols[index]=oCurCol;this.nColsCount=index>=this.nColsCount?index+1:this.nColsCount}}return oCurCol};Worksheet.prototype._prepareMoveRangeGetCleanRanges=function(oBBoxFrom,oBBoxTo,wsTo){var intersection=oBBoxFrom.intersectionSimple(oBBoxTo);var aRangesToCheck=[];if(null!=intersection&&this===wsTo){var oThis=this;var fAddToRangesToCheck=function(aRangesToCheck,r1,c1,r2,c2){if(r1<=r2&&c1<=c2)aRangesToCheck.push(oThis.getRange3(r1,
c1,r2,c2))};if(intersection.r1==oBBoxTo.r1&&intersection.c1==oBBoxTo.c1){fAddToRangesToCheck(aRangesToCheck,oBBoxTo.r1,intersection.c2+1,intersection.r2,oBBoxTo.c2);fAddToRangesToCheck(aRangesToCheck,intersection.r2+1,oBBoxTo.c1,oBBoxTo.r2,oBBoxTo.c2)}else if(intersection.r2==oBBoxTo.r2&&intersection.c1==oBBoxTo.c1){fAddToRangesToCheck(aRangesToCheck,oBBoxTo.r1,oBBoxTo.c1,intersection.r1-1,oBBoxTo.c2);fAddToRangesToCheck(aRangesToCheck,intersection.r1,intersection.c2+1,oBBoxTo.r2,oBBoxTo.c2)}else if(intersection.r1==
oBBoxTo.r1&&intersection.c2==oBBoxTo.c2){fAddToRangesToCheck(aRangesToCheck,oBBoxTo.r1,oBBoxTo.c1,intersection.r2,intersection.c1-1);fAddToRangesToCheck(aRangesToCheck,intersection.r2+1,oBBoxTo.c1,oBBoxTo.r2,oBBoxTo.c2)}else if(intersection.r2==oBBoxTo.r2&&intersection.c2==oBBoxTo.c2){fAddToRangesToCheck(aRangesToCheck,oBBoxTo.r1,oBBoxTo.c1,intersection.r1-1,oBBoxTo.c2);fAddToRangesToCheck(aRangesToCheck,intersection.r1,oBBoxTo.c1,oBBoxTo.r2,intersection.c1-1)}}else aRangesToCheck.push(wsTo.getRange3(oBBoxTo.r1,
oBBoxTo.c1,oBBoxTo.r2,oBBoxTo.c2));return aRangesToCheck};Worksheet.prototype._prepareMoveRange=function(oBBoxFrom,oBBoxTo,wsTo){var res=0;if(!wsTo)wsTo=this;if(oBBoxFrom.isEqual(oBBoxTo)&&this===wsTo)return res;var range=wsTo.getRange3(oBBoxTo.r1,oBBoxTo.c1,oBBoxTo.r2,oBBoxTo.c2);var aMerged=wsTo.mergeManager.get(range.getBBox0());if(aMerged.outer.length>0)return-2;var aRangesToCheck=this._prepareMoveRangeGetCleanRanges(oBBoxFrom,oBBoxTo,wsTo);for(var i=0,length=aRangesToCheck.length;i<length;i++){range=
aRangesToCheck[i];range._foreachNoEmpty(function(cell){if(!cell.isNullTextString()){res=-1;return res}});if(0!=res)return res}return res};Worksheet.prototype._moveMergedAndHyperlinksPrepare=function(oBBoxFrom,oBBoxTo,copyRange,wsTo,offset){var res={merged:[],hyperlinks:[]};if(!(false==this.workbook.bUndoChanges&&(false==this.workbook.bRedoChanges||this.workbook.bCollaborativeChanges)))return res;var i,elem,bbox,data,wsFrom=this;var intersection=oBBoxFrom.intersectionSimple(oBBoxTo);History.LocalChange=
true;var merged=wsFrom.mergeManager.get(oBBoxFrom).inner;var mergedToRemove;if(!copyRange)mergedToRemove=merged;else if(null!==intersection)mergedToRemove=wsFrom.mergeManager.get(intersection).all;if(mergedToRemove)for(i=0;i<mergedToRemove.length;i++)wsFrom.mergeManager.removeElement(mergedToRemove[i]);var hyperlinks=wsFrom.hyperlinkManager.get(oBBoxFrom).inner;if(!copyRange)for(i=0;i<hyperlinks.length;i++)wsFrom.hyperlinkManager.removeElement(hyperlinks[i]);History.LocalChange=false;res.merged=merged;
res.hyperlinks=hyperlinks;return res};Worksheet.prototype._moveMergedAndHyperlinks=function(prepared,oBBoxFrom,oBBoxTo,copyRange,wsTo,offset){var i,elem,bbox,data;var intersection=oBBoxFrom.intersectionSimple(oBBoxTo);History.LocalChange=true;for(i=0;i<prepared.merged.length;i++){elem=prepared.merged[i];bbox=copyRange?elem.bbox.clone():elem.bbox;bbox.setOffset(offset);wsTo.mergeManager.add(bbox,elem.data)}if(!copyRange||null===intersection)for(i=0;i<prepared.hyperlinks.length;i++){elem=prepared.hyperlinks[i];
if(copyRange){bbox=elem.bbox.clone();data=elem.data.clone()}else{bbox=elem.bbox;data=elem.data}bbox.setOffset(offset);wsTo.hyperlinkManager.add(bbox,data)}History.LocalChange=false};Worksheet.prototype._moveCleanRanges=function(oBBoxFrom,oBBoxTo,copyRange,wsTo){var cleanRanges=this._prepareMoveRangeGetCleanRanges(oBBoxFrom,oBBoxTo,wsTo);for(var i=0;i<cleanRanges.length;i++){var range=cleanRanges[i];range.cleanAll();if(!copyRange)this.workbook.dependencyFormulas.deleteNodes(wsTo.getId(),range.getBBox0())}};
Worksheet.prototype._moveFormulas=function(oBBoxFrom,oBBoxTo,copyRange,wsTo,offset){if(!copyRange)this.workbook.dependencyFormulas.move(this.Id,oBBoxFrom,offset,wsTo.getId());this.getRange3(oBBoxFrom.r1,oBBoxFrom.c1,oBBoxFrom.r2,oBBoxFrom.c2)._foreachNoEmpty(function(cell){if(cell.transformSharedFormula()){var parsed=cell.getFormulaParsed();parsed.buildDependencies()}})};Worksheet.prototype._moveCells=function(oBBoxFrom,oBBoxTo,copyRange,wsTo,offset){var oThis=this;var nRowsCountNew=0;var nColsCountNew=
0;var dependencyFormulas=oThis.workbook.dependencyFormulas;var moveToOtherSheet=this!==wsTo;var isClearFromArea=!copyRange||copyRange&&oThis.workbook.bUndoChanges;var moveCells=function(copyRange,from,to,r1From,r1To,count){var fromData=oThis.getColDataNoEmpty(from);var toData;if(fromData){toData=wsTo.getColData(to);toData.copyRange(fromData,r1From,r1To,count);if(isClearFromArea)if(from!==to||moveToOtherSheet)fromData.clear(r1From,r1From+count);else if(r1From<r1To)fromData.clear(r1From,Math.min(r1From+
count,r1To));else fromData.clear(Math.max(r1From,r1To+count),r1From+count)}else{toData=wsTo.getColDataNoEmpty(to);if(toData)toData.clear(r1To,r1To+count)}if(toData){nRowsCountNew=Math.max(nRowsCountNew,toData.getSize());nColsCountNew=Math.max(nColsCountNew,to+1)}};if(oBBoxFrom.c1<oBBoxTo.c1)for(var i=0;i<oBBoxFrom.c2-oBBoxFrom.c1+1;++i)moveCells(copyRange,oBBoxFrom.c2-i,oBBoxTo.c2-i,oBBoxFrom.r1,oBBoxTo.r1,oBBoxFrom.r2-oBBoxFrom.r1+1);else for(var i=0;i<oBBoxFrom.c2-oBBoxFrom.c1+1;++i)moveCells(copyRange,
oBBoxFrom.c1+i,oBBoxTo.c1+i,oBBoxFrom.r1,oBBoxTo.r1,oBBoxFrom.r2-oBBoxFrom.r1+1);History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_MoveRange,this.getId(),new Asc.Range(0,0,gc_nMaxCol0,gc_nMaxRow0),new UndoRedoData_FromTo(new UndoRedoData_BBox(oBBoxFrom),new UndoRedoData_BBox(oBBoxTo),copyRange,wsTo.getId()));if(moveToOtherSheet)History.AddToUpdatesRegions(oBBoxTo,wsTo.getId());var shiftedArrayFormula={};var oldNewArrayFormulaMap={};wsTo.cellsByColRowsCount=Math.max(wsTo.cellsByColRowsCount,
nRowsCountNew);wsTo.nRowsCount=Math.max(wsTo.nRowsCount,wsTo.cellsByColRowsCount);wsTo.nColsCount=Math.max(wsTo.nColsCount,nColsCountNew);wsTo.getRange3(oBBoxTo.r1,oBBoxTo.c1,oBBoxTo.r2,oBBoxTo.c2)._foreachNoEmpty(function(cell){var formula=cell.getFormulaParsed();if(formula){var cellWithFormula=formula.getParent();var arrayFormula=formula.getArrayFormulaRef();var newArrayRef,newFormula;var preMoveCell={nRow:cell.nRow-offset.row,nCol:cell.nCol-offset.col};var isFirstCellArray=formula.checkFirstCellArray(preMoveCell)&&
!shiftedArrayFormula[formula.getListenerId()];if(copyRange){History.TurnOff();if(!arrayFormula||arrayFormula&&isFirstCellArray){newFormula=oThis._moveCellsFormula(cell,formula,cellWithFormula,copyRange,oBBoxFrom,wsTo);cellWithFormula=newFormula.getParent();cellWithFormula=new CCellWithFormula(wsTo,cell.nRow,cell.nCol);newFormula=newFormula.clone(null,cellWithFormula,wsTo);newFormula.changeOffset(offset,false,true);newFormula.setFormulaString(newFormula.assemble(true));cell.setFormulaInternal(newFormula,
!isClearFromArea);if(isFirstCellArray){newArrayRef=arrayFormula.clone();newArrayRef.setOffset(offset);newFormula.setArrayFormulaRef(newArrayRef);shiftedArrayFormula[newFormula.getListenerId()]=1;oldNewArrayFormulaMap[formula.getListenerId()]=newFormula}}else if(arrayFormula&&oldNewArrayFormulaMap[formula.getListenerId()])cell.setFormulaInternal(oldNewArrayFormulaMap[formula.getListenerId()],!isClearFromArea);History.TurnOn()}else if(arrayFormula){if(isFirstCellArray){newFormula=oThis._moveCellsFormula(cell,
formula,cellWithFormula,copyRange,oBBoxFrom,wsTo);cellWithFormula=newFormula.getParent();shiftedArrayFormula[formula.getListenerId()]=1;newArrayRef=arrayFormula.clone();newArrayRef.setOffset(offset);newFormula.setArrayFormulaRef(newArrayRef);cellWithFormula.ws=wsTo;cellWithFormula.nRow=cell.nRow;cellWithFormula.nCol=cell.nCol}}else{newFormula=oThis._moveCellsFormula(cell,formula,cellWithFormula,copyRange,oBBoxFrom,wsTo);cellWithFormula=newFormula.getParent();cellWithFormula.ws=wsTo;cellWithFormula.nRow=
cell.nRow;cellWithFormula.nCol=cell.nCol}if(arrayFormula){if(isFirstCellArray){dependencyFormulas.addToBuildDependencyArray(formula);if(newFormula)dependencyFormulas.addToBuildDependencyArray(newFormula)}}else dependencyFormulas.addToBuildDependencyCell(cell)}})};Worksheet.prototype._moveCellsFormula=function(cell,formula,cellWithFormula,copyRange,oBBoxFrom,wsTo){if(this!==wsTo)if(copyRange||!this.workbook.bUndoChanges){cellWithFormula=new CCellWithFormula(wsTo,cell.nRow,cell.nCol);formula=formula.clone(null,
cellWithFormula,wsTo);if(!copyRange)formula.convertTo3DRefs(oBBoxFrom);formula.moveToSheet(this,wsTo);formula.setFormulaString(formula.assemble(true));cell.setFormulaParsed(formula)}else{formula.moveToSheet(this,wsTo);formula.setFormulaString(formula.assemble(true))}return formula};Worksheet.prototype._moveRange=function(oBBoxFrom,oBBoxTo,copyRange,wsTo){if(!wsTo)wsTo=this;if(oBBoxFrom.isEqual(oBBoxTo)&&this===wsTo)return;History.Create_NewPoint();History.StartTransaction();this.workbook.dependencyFormulas.lockRecal();
var offset=new AscCommon.CellBase(oBBoxTo.r1-oBBoxFrom.r1,oBBoxTo.c1-oBBoxFrom.c1);var prepared=this._moveMergedAndHyperlinksPrepare(oBBoxFrom,oBBoxTo,copyRange,wsTo,offset);this._moveCleanRanges(oBBoxFrom,oBBoxTo,copyRange,wsTo);this._moveFormulas(oBBoxFrom,oBBoxTo,copyRange,wsTo,offset);this._moveCells(oBBoxFrom,oBBoxTo,copyRange,wsTo,offset);this._moveMergedAndHyperlinks(prepared,oBBoxFrom,oBBoxTo,copyRange,wsTo,offset);if(true==this.workbook.bUndoChanges||true==this.workbook.bRedoChanges)wsTo.autoFilters.unmergeTablesAfterMove(oBBoxTo);
if(false==this.workbook.bUndoChanges&&false==this.workbook.bRedoChanges)this.autoFilters._moveAutoFilters(oBBoxTo,oBBoxFrom,null,copyRange,true,oBBoxFrom,wsTo);this.workbook.dependencyFormulas.unlockRecal();History.EndTransaction();return true};Worksheet.prototype._shiftCellsLeft=function(oBBox){var t=this;var nLeft=oBBox.c1;var nRight=oBBox.c2;var dif=nLeft-nRight-1;var oActualRange=new Asc.Range(nLeft,oBBox.r1,gc_nMaxCol0,oBBox.r2);var offset=new AscCommon.CellBase(0,dif);var renameRes=this.renameDependencyNodes(offset,
oBBox);var redrawTablesArr=this.autoFilters.insertColumn(oBBox,dif);this.getRange3(oBBox.r1,oBBox.c1,oBBox.r2,oBBox.c2)._foreachNoEmpty(function(cell){t._removeCell(null,null,cell)});this._updateFormulasParents(oActualRange.r1,oActualRange.c1,oActualRange.r2,oActualRange.c2,oBBox,offset,renameRes.shiftedShared);var cellsByColLength=this.getColDataLength();for(var i=nRight+1;i<cellsByColLength;++i){var sheetMemoryFrom=this.getColDataNoEmpty(i);if(sheetMemoryFrom){this.getColData(i+dif).copyRange(sheetMemoryFrom,
oBBox.r1,oBBox.r1,oBBox.r2-oBBox.r1+1);sheetMemoryFrom.clear(oBBox.r1,oBBox.r2+1)}}this.workbook.dependencyFormulas.notifyChanged(renameRes.changed);History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_ShiftCellsLeft,this.getId(),oActualRange,new UndoRedoData_BBox(oBBox));this.autoFilters.redrawStylesTables(redrawTablesArr)};Worksheet.prototype._shiftCellsUp=function(oBBox){var t=this;var nTop=oBBox.r1;var nBottom=oBBox.r2;var dif=nTop-nBottom-1;var oActualRange=new Asc.Range(oBBox.c1,
oBBox.r1,oBBox.c2,gc_nMaxRow0);var offset=new AscCommon.CellBase(dif,0);var renameRes=this.renameDependencyNodes(offset,oBBox);var redrawTablesArr=this.autoFilters.insertRows("delCell",oBBox,c_oAscDeleteOptions.DeleteCellsAndShiftTop);this.getRange3(oBBox.r1,oBBox.c1,oBBox.r2,oBBox.c2)._foreachNoEmpty(function(cell){t._removeCell(null,null,cell)});this._updateFormulasParents(oActualRange.r1,oActualRange.c1,oActualRange.r2,oActualRange.c2,oBBox,offset,renameRes.shiftedShared);for(var i=oBBox.c1;i<=
oBBox.c2;++i){var sheetMemory=this.getColDataNoEmpty(i);if(sheetMemory)sheetMemory.deleteRange(nTop,-dif)}this.workbook.dependencyFormulas.notifyChanged(renameRes.changed);History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_ShiftCellsTop,this.getId(),oActualRange,new UndoRedoData_BBox(oBBox));this.autoFilters.redrawStylesTables(redrawTablesArr)};Worksheet.prototype._shiftCellsRight=function(oBBox,displayNameFormatTable){var nLeft=oBBox.c1;var nRight=oBBox.c2;var dif=nRight-
nLeft+1;var oActualRange=new Asc.Range(oBBox.c1,oBBox.r1,gc_nMaxCol0,oBBox.r2);var offset=new AscCommon.CellBase(0,dif);var renameRes=this.renameDependencyNodes(offset,oBBox);var redrawTablesArr=this.autoFilters.insertColumn(oBBox,dif,displayNameFormatTable);this._updateFormulasParents(oActualRange.r1,oActualRange.c1,oActualRange.r2,oActualRange.c2,oBBox,offset,renameRes.shiftedShared);var borders;if(nLeft>0&&!this.workbook.bUndoChanges)borders=this._getBordersForInsert(oBBox,false);var cellsByColLength=
this.getColDataLength();for(var i=cellsByColLength-1;i>=nLeft;--i){var sheetMemoryFrom=this.getColDataNoEmpty(i);if(sheetMemoryFrom){if(i+dif<=gc_nMaxCol0)this.getColData(i+dif).copyRange(sheetMemoryFrom,oBBox.r1,oBBox.r1,oBBox.r2-oBBox.r1+1);sheetMemoryFrom.clear(oBBox.r1,oBBox.r2+1)}}this.nColsCount=Math.max(this.nColsCount,this.getColDataLength());if(nLeft>0&&!this.workbook.bUndoChanges){var prevSheetMemory=this.getColDataNoEmpty(nLeft-1);if(prevSheetMemory){for(var i=nLeft;i<=nRight;++i)this.getColData(i).copyRange(prevSheetMemory,
oBBox.r1,oBBox.r1,oBBox.r2-oBBox.r1+1);this.nColsCount=Math.max(this.nColsCount,this.getColDataLength());this.getRange3(oBBox.r1,oBBox.c1,oBBox.r2,oBBox.c2)._foreachNoEmpty(function(cell){cell.clearDataKeepXf(borders[cell.nRow])})}}this.workbook.dependencyFormulas.notifyChanged(renameRes.changed);History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_ShiftCellsRight,this.getId(),oActualRange,new UndoRedoData_BBox(oBBox));this.autoFilters.redrawStylesTables(redrawTablesArr)};Worksheet.prototype._shiftCellsBottom=
function(oBBox,displayNameFormatTable){var t=this;var nTop=oBBox.r1;var nBottom=oBBox.r2;var dif=nBottom-nTop+1;var oActualRange=new Asc.Range(oBBox.c1,oBBox.r1,oBBox.c2,gc_nMaxRow0);var offset=new AscCommon.CellBase(dif,0);var renameRes=this.renameDependencyNodes(offset,oBBox);var redrawTablesArr;if(!this.workbook.bUndoChanges&&undefined===displayNameFormatTable)redrawTablesArr=this.autoFilters.insertRows("insCell",oBBox,c_oAscInsertOptions.InsertCellsAndShiftDown,displayNameFormatTable);this._updateFormulasParents(oActualRange.r1,
oActualRange.c1,oActualRange.r2,oActualRange.c2,oBBox,offset,renameRes.shiftedShared);var borders;if(nTop>0&&!this.workbook.bUndoChanges)borders=this._getBordersForInsert(oBBox,true);for(var i=oBBox.c1;i<=oBBox.c2;++i){var sheetMemory=this.getColDataNoEmpty(i);if(sheetMemory){sheetMemory.insertRange(nTop,dif);t.cellsByColRowsCount=Math.max(t.cellsByColRowsCount,sheetMemory.getSize())}}this.nRowsCount=Math.max(this.nRowsCount,this.cellsByColRowsCount);if(nTop>0&&!this.workbook.bUndoChanges){for(var i=
oBBox.c1;i<=oBBox.c2;++i){var sheetMemory=this.getColDataNoEmpty(i);if(sheetMemory){sheetMemory.copyRangeByChunk(nTop-1,1,nTop,dif);t.cellsByColRowsCount=Math.max(t.cellsByColRowsCount,sheetMemory.getSize())}}this.nRowsCount=Math.max(this.nRowsCount,this.cellsByColRowsCount);this.getRange3(oBBox.r1,oBBox.c1,oBBox.r2,oBBox.c2)._foreachNoEmpty(function(cell){cell.clearDataKeepXf(borders[cell.nCol])})}this.workbook.dependencyFormulas.notifyChanged(renameRes.changed);History.Add(AscCommonExcel.g_oUndoRedoWorksheet,
AscCH.historyitem_Worksheet_ShiftCellsBottom,this.getId(),oActualRange,new UndoRedoData_BBox(oBBox));if(!this.workbook.bUndoChanges&&undefined!==displayNameFormatTable)redrawTablesArr=this.autoFilters.insertRows("insCell",oBBox,c_oAscInsertOptions.InsertCellsAndShiftDown,displayNameFormatTable);if(!this.workbook.bUndoChanges)this.autoFilters.redrawStylesTables(redrawTablesArr)};Worksheet.prototype._setIndex=function(ind){this.index=ind};Worksheet.prototype._BuildDependencies=function(cellRange){var ca;
for(var i in cellRange){if(null===cellRange[i]){cellRange[i]=i;continue}ca=g_oCellAddressUtils.getCellAddress(i);this._getCellNoEmpty(ca.getRow0(),ca.getCol0(),function(c){if(c)c._BuildDependencies(true)})}};Worksheet.prototype._setHandlersTablePart=function(){if(!this.TableParts)return;for(var i=0;i<this.TableParts.length;i++)this.TableParts[i].setHandlers(this.handlers)};Worksheet.prototype.getTableRangeForFormula=function(name,objectParam){var res=null;if(!this.TableParts||!name)return res;for(var i=
0;i<this.TableParts.length;i++)if(this.TableParts[i].DisplayName.toLowerCase()===name.toLowerCase()){res=this.TableParts[i].getTableRangeForFormula(objectParam);break}return res};Worksheet.prototype.getTableIndexColumnByName=function(tableName,columnName){var res=null;if(!this.TableParts||!tableName)return res;for(var i=0;i<this.TableParts.length;i++)if(this.TableParts[i].DisplayName.toLowerCase()===tableName.toLowerCase()){res=this.TableParts[i].getTableIndexColumnByName(columnName);break}return res};
Worksheet.prototype.getTableNameColumnByIndex=function(tableName,columnIndex){var res=null;if(!this.TableParts||!tableName)return res;for(var i=0;i<this.TableParts.length;i++)if(this.TableParts[i].DisplayName.toLowerCase()===tableName.toLowerCase()){res=this.TableParts[i].getTableNameColumnByIndex(columnIndex);break}return res};Worksheet.prototype.getTableByName=function(tableName){var res=null;if(!this.TableParts||!tableName)return res;for(var i=0;i<this.TableParts.length;i++)if(this.TableParts[i].DisplayName.toLowerCase()===
function(){return this.getWorksheet(this.nActive)};Workbook.prototype.setActive=function(index){if(index>=0&&index<this.aWorksheets.length){this.nActive=index;this.cleanFindResults();return true}return false};Workbook.prototype.setActiveById=function(sheetId){var ws=this.getWorksheetById(sheetId);if(!ws&&Array.isArray(this.aWorksheets))ws=this.aWorksheets[this.aWorksheets.length-1];return this.setActive(ws.getIndex())};Workbook.prototype.getSheetIdByIndex=function(index){var ws=this.getWorksheet(index);
return ws?ws.getId():null};Workbook.prototype.getWorksheet=function(index){if(index>=0&&index<this.aWorksheets.length)return this.aWorksheets[index];return null};Workbook.prototype.getWorksheetById=function(id){return this.aWorksheetsById[id]};Workbook.prototype.getWorksheetByName=function(name){for(var i=0;i<this.aWorksheets.length;i++)if(this.aWorksheets[i].getName()==name)return this.aWorksheets[i];return null};Workbook.prototype.getWorksheetIndexByName=function(name){for(var i=0;i<this.aWorksheets.length;i++)if(this.aWorksheets[i].getName()==
name)return i;return null};Workbook.prototype.getWorksheetCount=function(){return this.aWorksheets.length};Workbook.prototype.createWorksheet=function(indexBefore,sName,sId){this.dependencyFormulas.lockRecal();History.Create_NewPoint();History.TurnOff();var wsActive=this.getActiveWs();var oNewWorksheet=new Worksheet(this,this.aWorksheets.length,sId);if(this.checkValidSheetName(sName))oNewWorksheet.sName=sName;oNewWorksheet.initPostOpen(this.wsHandlers);if(null!=indexBefore&&indexBefore>=0&&indexBefore<
this.aWorksheets.length)this.aWorksheets.splice(indexBefore,0,oNewWorksheet);else{indexBefore=this.aWorksheets.length;this.aWorksheets.push(oNewWorksheet)}this.aWorksheetsById[oNewWorksheet.getId()]=oNewWorksheet;this._updateWorksheetIndexes(wsActive);History.TurnOn();this._insertWorksheetFormula(oNewWorksheet.index);History.Add(AscCommonExcel.g_oUndoRedoWorkbook,AscCH.historyitem_Workbook_SheetAdd,null,null,new UndoRedoData_SheetAdd(indexBefore,oNewWorksheet.getName(),null,oNewWorksheet.getId()));
History.SetSheetUndo(wsActive.getId());History.SetSheetRedo(oNewWorksheet.getId());this.dependencyFormulas.unlockRecal();return oNewWorksheet.index};Workbook.prototype.copyWorksheet=function(index,insertBefore,sName,sId,bFromRedo,tableNames){if(index>=0&&index<this.aWorksheets.length){this.dependencyFormulas.buildDependency();History.TurnOff();var wsActive=this.getActiveWs();var wsFrom=this.aWorksheets[index];var newSheet=new Worksheet(this,-1,sId);if(null!=insertBefore&&insertBefore>=0&&insertBefore<
this.aWorksheets.length)this.aWorksheets.splice(insertBefore,0,newSheet);else this.aWorksheets.push(newSheet);this.aWorksheetsById[newSheet.getId()]=newSheet;this._updateWorksheetIndexes(wsActive);var renameParams=newSheet.copyFrom(wsFrom,sName,tableNames);newSheet.initPostOpen(this.wsHandlers);History.TurnOn();this.dependencyFormulas.copyDefNameByWorksheet(wsFrom,newSheet,renameParams);this._insertWorksheetFormula(insertBefore);if(!tableNames)tableNames=newSheet.getTableNames();History.Add(AscCommonExcel.g_oUndoRedoWorkbook,
AscCH.historyitem_Workbook_SheetAdd,null,null,new UndoRedoData_SheetAdd(insertBefore,newSheet.getName(),wsFrom.getId(),newSheet.getId(),tableNames));History.SetSheetUndo(wsActive.getId());History.SetSheetRedo(newSheet.getId());if(!(bFromRedo===true))wsFrom.copyObjects(newSheet,wsFrom);this.sortDependency()}};Workbook.prototype.insertWorksheet=function(index,sheet){var wsActive=this.getActiveWs();if(null!=index&&index>=0&&index<this.aWorksheets.length)this.aWorksheets.splice(index,0,sheet);else this.aWorksheets.push(sheet);
this.aWorksheetsById[sheet.getId()]=sheet;this._updateWorksheetIndexes(wsActive);this._insertWorksheetFormula(index);this._insertTablePartsName(sheet);sheet._BuildDependencies(sheet.getCwf());this.sortDependency()};Workbook.prototype._insertTablePartsName=function(sheet){if(sheet&&sheet.TableParts&&sheet.TableParts.length)for(var i=0;i<sheet.TableParts.length;i++){var tablePart=sheet.TableParts[i];this.dependencyFormulas.addTableName(sheet,tablePart);tablePart.buildDependencies()}};Workbook.prototype._insertWorksheetFormula=
function(index){if(index>0&&index<this.aWorksheets.length){var oWsBefore=this.aWorksheets[index-1];this.dependencyFormulas.changeSheet(this.dependencyFormulas.prepareChangeSheet(oWsBefore.getId(),{insert:index}))}};Workbook.prototype.replaceWorksheet=function(indexFrom,indexTo){if(indexFrom>=0&&indexFrom<this.aWorksheets.length&&indexTo>=0&&indexTo<this.aWorksheets.length){var wsActive=this.getActiveWs();var oWsFrom=this.aWorksheets[indexFrom];var tempW={wF:oWsFrom,wFI:indexFrom,wTI:indexTo};if(tempW.wFI<
tempW.wTI)tempW.wTI++;this.dependencyFormulas.lockRecal();var prepared=this.dependencyFormulas.prepareChangeSheet(oWsFrom.getId(),{replace:tempW},null);var movedSheet=this.aWorksheets.splice(indexFrom,1);this.aWorksheets.splice(indexTo,0,movedSheet[0]);this._updateWorksheetIndexes(wsActive);this.dependencyFormulas.changeSheet(prepared);this._insertWorksheetFormula(indexTo);History.Add(AscCommonExcel.g_oUndoRedoWorkbook,AscCH.historyitem_Workbook_SheetMove,null,null,new UndoRedoData_FromTo(indexFrom,
indexTo));this.dependencyFormulas.unlockRecal()}};Workbook.prototype.findSheetNoHidden=function(nIndex){var i,ws,oRes=null,bFound=false,countWorksheets=this.getWorksheetCount();for(i=nIndex;i<countWorksheets;++i){ws=this.getWorksheet(i);if(false===ws.getHidden()){oRes=ws;bFound=true;break}}if(!bFound)for(i=nIndex-1;i>=0;--i){ws=this.getWorksheet(i);if(false===ws.getHidden()){oRes=ws;break}}return oRes};Workbook.prototype.removeWorksheet=function(nIndex,outputParams){var bEmpty=true;for(var i=0,length=
this.aWorksheets.length;i<length;++i){var worksheet=this.aWorksheets[i];if(false==worksheet.getHidden()&&i!=nIndex){bEmpty=false;break}}if(bEmpty)return-1;var removedSheet=this.getWorksheet(nIndex);if(removedSheet){var removedSheetId=removedSheet.getId();this.dependencyFormulas.lockRecal();var prepared=this.dependencyFormulas.prepareRemoveSheet(removedSheetId,removedSheet.getTableNames());var wsActive=this.getActiveWs();var oVisibleWs=null;this.aWorksheets.splice(nIndex,1);delete this.aWorksheetsById[removedSheetId];
if(nIndex==this.getActive()){oVisibleWs=this.findSheetNoHidden(nIndex);if(null!=oVisibleWs)wsActive=oVisibleWs}History.Add(AscCommonExcel.g_oUndoRedoWorkbook,AscCH.historyitem_Workbook_SheetRemove,null,null,new AscCommonExcel.UndoRedoData_SheetRemove(nIndex,removedSheetId,removedSheet));if(null!=oVisibleWs){History.SetSheetUndo(removedSheetId);History.SetSheetRedo(wsActive.getId())}if(null!=outputParams)outputParams.sheet=removedSheet;this._updateWorksheetIndexes(wsActive);this.dependencyFormulas.removeSheet(prepared);
this.dependencyFormulas.unlockRecal();return wsActive.getIndex()}return-1};Workbook.prototype._updateWorksheetIndexes=function(wsActive){this.forEach(function(ws,index){ws._setIndex(index)});if(null!=wsActive)this.setActive(wsActive.getIndex())};Workbook.prototype.checkUniqueSheetName=function(name){var workbookSheetCount=this.getWorksheetCount();for(var i=0;i<workbookSheetCount;i++)if(this.getWorksheet(i).getName()==name)return i;return-1};Workbook.prototype.checkValidSheetName=function(name){return name&&
name.length<g_nSheetNameMaxLength};Workbook.prototype.getUniqueSheetNameFrom=function(name,bCopy){var nIndex=1;var sNewName="";var fGetPostfix=null;if(bCopy){var result=/^(.*)\((\d)\)$/.exec(name);if(result){fGetPostfix=function(nIndex){return"("+nIndex+")"};name=result[1]}else{fGetPostfix=function(nIndex){return" ("+nIndex+")"};name=name}}else fGetPostfix=function(nIndex){return nIndex.toString()};var workbookSheetCount=this.getWorksheetCount();while(nIndex<1E4){var sPosfix=fGetPostfix(nIndex);sNewName=
name+sPosfix;if(sNewName.length>g_nSheetNameMaxLength){name=name.substring(0,g_nSheetNameMaxLength-sPosfix.length);sNewName=name+sPosfix}var bUniqueName=true;for(var i=0;i<workbookSheetCount;i++)if(this.getWorksheet(i).getName()==sNewName){bUniqueName=false;break}if(bUniqueName)break;nIndex++}return sNewName};Workbook.prototype._generateFontMap=function(){var oFontMap={"Arial":1};var i;oFontMap[g_oDefaultFormat.Font.getName()]=1;if(null!=this.theme)AscFormat.checkThemeFonts(oFontMap,this.theme.themeElements.fontScheme);
for(i=1;i<=g_StyleCache.getXfCount();++i){var xf=g_StyleCache.getXf(i);if(xf.font)oFontMap[xf.font.getName()]=1}this.sharedStrings.generateFontMap(oFontMap);this.forEach(function(ws){ws.generateFontMap(oFontMap)});this.CellStyles.generateFontMap(oFontMap);return oFontMap};Workbook.prototype.generateFontMap=function(){var oFontMap=this._generateFontMap();var aRes=[];for(var i in oFontMap)aRes.push(i);return aRes};Workbook.prototype.generateFontMap2=function(){var oFontMap=this._generateFontMap();var aRes=
[];for(var i in oFontMap)aRes.push(new AscFonts.CFont(i,0,"",0));AscFonts.FontPickerByCharacter.extendFonts(aRes);return aRes};Workbook.prototype.getAllImageUrls=function(){var aImageUrls=[];this.forEach(function(ws){ws.getAllImageUrls(aImageUrls)});return aImageUrls};Workbook.prototype.reassignImageUrls=function(oImages){this.forEach(function(ws){ws.reassignImageUrls(oImages)})};Workbook.prototype.recalcWB=function(rebuild,opt_sheetId){var formulas;if(rebuild){formulas=this.getAllFormulas();for(var i=
0;i<formulas.length;++i){var formula=formulas[i];formula.removeDependencies();formula.setFormula(formula.getFormula());formula.parse();formula.buildDependencies()}}else if(opt_sheetId){formulas=[];var ws=this.getWorksheetById(opt_sheetId);ws.getAllFormulas(formulas)}else formulas=this.getAllFormulas();this.dependencyFormulas.notifyChanged(formulas);this.dependencyFormulas.calcTree()};Workbook.prototype.checkDefName=function(checkName,scope){return this.dependencyFormulas.checkDefName(checkName,scope)};
Workbook.prototype.getDefinedNamesWB=function(defNameListId,bLocale){return this.dependencyFormulas.getDefinedNamesWB(defNameListId,bLocale)};Workbook.prototype.getDefinedNamesWS=function(sheetId){return this.dependencyFormulas.getDefinedNamesWS(sheetId)};Workbook.prototype.addDefName=function(name,ref,sheetId,hidden,isTable){return this.dependencyFormulas.addDefName(name,ref,sheetId,hidden,isTable)};Workbook.prototype.getDefinesNames=function(name,sheetId){return this.dependencyFormulas.getDefNameByName(name,
sheetId)};Workbook.prototype.getDefinedName=function(name){var sheetId=this.getSheetIdByIndex(name.LocalSheetId);return this.dependencyFormulas.getDefNameByName(name.Name,sheetId)};Workbook.prototype.delDefinesNames=function(defName){this.delDefinesNamesUndoRedo(this.getUndoDefName(defName))};Workbook.prototype.delDefinesNamesUndoRedo=function(defName){this.dependencyFormulas.removeDefName(defName.sheetId,defName.name);this.dependencyFormulas.calcTree()};Workbook.prototype.editDefinesNames=function(oldName,
newName){return this.editDefinesNamesUndoRedo(this.getUndoDefName(oldName),this.getUndoDefName(newName))};Workbook.prototype.editDefinesNamesUndoRedo=function(oldName,newName){var res=this.dependencyFormulas.editDefinesNames(oldName,newName);this.dependencyFormulas.calcTree();return res};Workbook.prototype.findDefinesNames=function(ref,sheetId,bLocale){return this.dependencyFormulas.getDefNameByRef(ref,sheetId,bLocale)};Workbook.prototype.unlockDefName=function(){this.dependencyFormulas.unlockDefName()};
Workbook.prototype.unlockCurrentDefName=function(name,sheetId){this.dependencyFormulas.unlockCurrentDefName(name,sheetId)};Workbook.prototype.checkDefNameLock=function(){return this.dependencyFormulas.checkDefNameLock()};Workbook.prototype._SerializeHistoryBase64=function(oMemory,item,aPointChangesBase64){if(!item.LocalChange){var nPosStart=oMemory.GetCurPosition();item.Serialize(oMemory,this.oApi.collaborativeEditing);var nPosEnd=oMemory.GetCurPosition();var nLen=nPosEnd-nPosStart;if(nLen>0)aPointChangesBase64.push(nLen+
";"+oMemory.GetBase64Memory2(nPosStart,nLen))}};Workbook.prototype.SerializeHistory=function(){var aRes=[];var t,j,length2;AscCommon.CollaborativeEditing.Refresh_DCChanges();var aActions=this.aCollaborativeActions.concat(History.GetSerializeArray());if(aActions.length>0){var oMemory=new AscCommon.CMemory;for(var i=0,length=aActions.length;i<length;++i){var aPointChanges=aActions[i];for(j=0,length2=aPointChanges.length;j<length2;++j){var item=aPointChanges[j];this._SerializeHistoryBase64(oMemory,item,
aRes)}}this.aCollaborativeActions=[];this.snapshot=this._getSnapshot()}return aRes};Workbook.prototype._getSnapshot=function(){var wb=new Workbook(new AscCommonExcel.asc_CHandlersList,this.oApi);wb.dependencyFormulas=this.dependencyFormulas.getSnapshot(wb);this.forEach(function(ws){ws=ws.getSnapshot(wb);wb.aWorksheets.push(ws);wb.aWorksheetsById[ws.getId()]=ws});wb.init({},true,false);return wb};Workbook.prototype.getAllFormulas=function(){var res=[];this.dependencyFormulas.getAllFormulas(res);this.forEach(function(ws){ws.getAllFormulas(res)});
return res};Workbook.prototype._forwardTransformation=function(wbSnapshot,changesMine,changesTheir){History.TurnOff();var res1=this._forwardTransformationGetTransform(wbSnapshot,changesTheir,changesMine);var res2=this._forwardTransformationGetTransform(wbSnapshot,changesMine,changesTheir);var i,elem,elemWrap;for(i=0;i<res1.modify.length;++i){elemWrap=res1.modify[i];elem=elemWrap.elem;elem.oClass.forwardTransformationSet(elem.nActionType,elem.oData,elem.nSheetId,elemWrap)}for(i=0;i<res2.modify.length;++i){elemWrap=
res2.modify[i];elem=elemWrap.elem;elem.oClass.forwardTransformationSet(elem.nActionType,elem.oData,elem.nSheetId,elemWrap)}for(var oldName in res1.renameSheet){var ws=this.getWorksheetByName(oldName);if(ws)ws.setName(res1.renameSheet[oldName])}History.TurnOn()};Workbook.prototype._forwardTransformationGetTransform=function(wbSnapshot,changesMaster,changesModify){var res={modify:[],renameSheet:{}};var changesMasterSelected=[];var i,elem;if(changesModify.length>0)for(i=0;i<changesMaster.length;++i){elem=
changesMaster[i];if(elem.oClass&&elem.oClass.forwardTransformationIsAffect&&elem.oClass.forwardTransformationIsAffect(elem.nActionType))changesMasterSelected.push(elem)}if(changesMasterSelected.length>0&&changesModify.length>0){var wbSnapshotCur=wbSnapshot._getSnapshot();var formulas=[];for(i=0;i<changesModify.length;++i){elem=changesModify[i];var renameRes=null;if(elem.oClass&&elem.oClass.forwardTransformationGet){var getRes=elem.oClass.forwardTransformationGet(elem.nActionType,elem.oData,elem.nSheetId);
if(getRes&&getRes.formula)formulas.push(new ForwardTransformationFormula(elem,getRes.formula,null));if(getRes&&getRes.name)renameRes=this._forwardTransformationRenameStart(wbSnapshotCur._getSnapshot(),changesMasterSelected,getRes)}if(elem.oClass&&elem.oClass.forwardTransformationIsAffect&&elem.oClass.forwardTransformationIsAffect(elem.nActionType)){if(formulas.length>0){this._forwardTransformationFormula(wbSnapshotCur._getSnapshot(),formulas,changesMasterSelected,res);formulas=[]}elem.oClass.Redo(elem.nActionType,
elem.oData,elem.nSheetId,wbSnapshotCur)}if(renameRes)this._forwardTransformationRenameEnd(renameRes,res.renameSheet,getRes,elem)}this._forwardTransformationFormula(wbSnapshotCur,formulas,changesMasterSelected,res)}return res};Workbook.prototype._forwardTransformationRenameStart=function(wbSnapshot,changes,getRes){var res={newName:null};for(var i=0;i<changes.length;++i){var elem=changes[i];elem.oClass.Redo(elem.nActionType,elem.oData,elem.nSheetId,wbSnapshot)}if(-1!=wbSnapshot.checkUniqueSheetName(getRes.name))res.newName=
wbSnapshot.getUniqueSheetNameFrom(getRes.name,true);return res};Workbook.prototype._forwardTransformationRenameEnd=function(renameRes,renameSheet,getRes,elemCur){var isChange=false;if(getRes.from){var renameCur=renameSheet[getRes.from];if(renameCur){delete renameSheet[getRes.from];getRes.from=renameCur;isChange=true}}if(renameRes&&renameRes.newName){renameSheet[getRes.name]=renameRes.newName;getRes.name=renameRes.newName;isChange=true}if(isChange&&elemCur.oClass.forwardTransformationSet)elemCur.oClass.forwardTransformationSet(elemCur.nActionType,
elemCur.oData,elemCur.nSheetId,getRes)};Workbook.prototype._forwardTransformationFormula=function(wbSnapshot,formulas,changes,res){if(formulas.length>0){var i,elem,ftFormula,ws;for(i=0;i<formulas.length;++i){ftFormula=formulas[i];ws=wbSnapshot.getWorksheetById(ftFormula.elem.nSheetId);if(ws){ftFormula.parsed=new parserFormula(ftFormula.formula,ftFormula,ws);ftFormula.parsed.parse();ftFormula.parsed.buildDependencies()}}for(var oldName in res.renameSheet){ws=wbSnapshot.getWorksheetByName(oldName);
if(ws)ws.setName(res.renameSheet[oldName])}for(i=0;i<changes.length;++i){elem=changes[i];elem.oClass.Redo(elem.nActionType,elem.oData,elem.nSheetId,wbSnapshot)}for(i=0;i<formulas.length;++i){ftFormula=formulas[i];if(ftFormula.parsed){ftFormula.parsed.removeDependencies();res.modify.push(ftFormula)}}}};Workbook.prototype.DeserializeHistory=function(aChanges,fCallback){var oThis=this;this.aCollaborativeActions=this.aCollaborativeActions.concat(History.GetSerializeArray());if(aChanges.length>0){this.bCollaborativeChanges=
true;var dstLen=0;var aIndexes=[],i,length=aChanges.length,sChange;for(i=0;i<length;++i){sChange=aChanges[i];var nIndex=sChange.indexOf(";");if(-1!=nIndex){dstLen+=parseInt(sChange.substring(0,nIndex));nIndex++}aIndexes.push(nIndex)}var pointer=g_memory.Alloc(dstLen);var stream=new AscCommon.FT_Stream2(pointer.data,dstLen);stream.obj=pointer.obj;var nCurOffset=0;var aUndoRedoElems=[];for(i=0;i<length;++i){sChange=aChanges[i];var oBinaryFileReader=new AscCommonExcel.BinaryFileReader;nCurOffset=oBinaryFileReader.getbase64DecodedData2(sChange,
aIndexes[i],stream,nCurOffset);var item=new UndoRedoItemSerializable;item.Deserialize(stream);aUndoRedoElems.push(item)}var wsViews=window["Asc"]["editor"].wb.wsViews;if(oThis.oApi.collaborativeEditing.getFast())AscCommon.CollaborativeEditing.Clear_DocumentPositions();for(var i in wsViews)if(isRealObject(wsViews[i])&&isRealObject(wsViews[i].objectRender)&&isRealObject(wsViews[i].objectRender.controller)){wsViews[i].endEditChart();if(oThis.oApi.collaborativeEditing.getFast()){var oState=wsViews[i].objectRender.saveStateBeforeLoadChanges();
if(oState){if(oState.Pos)AscCommon.CollaborativeEditing.Add_DocumentPosition(oState.Pos);if(oState.StartPos)AscCommon.CollaborativeEditing.Add_DocumentPosition(oState.StartPos);if(oState.EndPos)AscCommon.CollaborativeEditing.Add_DocumentPosition(oState.EndPos)}}wsViews[i].objectRender.controller.resetSelection()}oFormulaLocaleInfo.Parse=false;oFormulaLocaleInfo.DigitSep=false;AscFonts.IsCheckSymbols=true;History.Clear();History.TurnOff();var history=new AscCommon.CHistory;history.init(this);history.Create_NewPoint();
history.SetSelection(null);history.SetSelectionRedo(null);var oRedoObjectParam=new AscCommonExcel.RedoObjectParam;history.UndoRedoPrepare(oRedoObjectParam,false);var changesMine=[].concat.apply([],oThis.aCollaborativeActions);oThis._forwardTransformation(oThis.snapshot,changesMine,aUndoRedoElems);for(var i=0,length=aUndoRedoElems.length;i<length;++i){var item=aUndoRedoElems[i];if((null!=item.oClass||item.oData&&typeof item.oData.sChangedObjectId==="string")&&null!=item.nActionType){if(window["NATIVE_EDITOR_ENJINE"]===
true&&window["native"]["CheckNextChange"])if(!window["native"]["CheckNextChange"]())break;history.RedoAdd(oRedoObjectParam,item.oClass,item.nActionType,item.nSheetId,item.oRange,item.oData)}}AscFonts.IsCheckSymbols=false;var oFontMap=this._generateFontMap();window["Asc"]["editor"]._loadFonts(oFontMap,function(){if(oThis.oApi.collaborativeEditing.getFast())for(var i in wsViews)if(isRealObject(wsViews[i])&&isRealObject(wsViews[i].objectRender)&&isRealObject(wsViews[i].objectRender.controller)){var oState=
wsViews[i].objectRender.getStateBeforeLoadChanges();if(oState){if(oState.Pos)AscCommon.CollaborativeEditing.Update_DocumentPosition(oState.Pos);if(oState.StartPos)AscCommon.CollaborativeEditing.Update_DocumentPosition(oState.StartPos);if(oState.EndPos)AscCommon.CollaborativeEditing.Update_DocumentPosition(oState.EndPos)}wsViews[i].objectRender.loadStateAfterLoadChanges()}oFormulaLocaleInfo.Parse=true;oFormulaLocaleInfo.DigitSep=true;history.UndoRedoEnd(null,oRedoObjectParam,false);History.TurnOn();
oThis.bCollaborativeChanges=false;oThis.snapshot=oThis._getSnapshot();if(null!=fCallback)fCallback()})}else if(null!=fCallback)fCallback()};Workbook.prototype.DeserializeHistoryNative=function(oRedoObjectParam,data,isFull){if(null!=data){this.bCollaborativeChanges=true;if(null==oRedoObjectParam){var wsViews=window["Asc"]["editor"].wb.wsViews;for(var i in wsViews)if(isRealObject(wsViews[i])&&isRealObject(wsViews[i].objectRender)&&isRealObject(wsViews[i].objectRender.controller)){wsViews[i].endEditChart();
wsViews[i].objectRender.controller.resetSelection()}History.Clear();History.Create_NewPoint();History.SetSelection(null);History.SetSelectionRedo(null);oRedoObjectParam=new AscCommonExcel.RedoObjectParam;History.UndoRedoPrepare(oRedoObjectParam,false)}var stream=new AscCommon.FT_Stream2(data,data.length);stream.obj=null;var _count=stream.GetLong();var _pos=4;for(var i=0;i<_count;i++){if(window["NATIVE_EDITOR_ENJINE"]===true&&window["native"]["CheckNextChange"])if(!window["native"]["CheckNextChange"]())break;
var _len=stream.GetLong();_pos+=4;stream.size=_pos+_len;stream.Seek(_pos);stream.Seek2(_pos);var item=new UndoRedoItemSerializable;item.Deserialize(stream);if((null!=item.oClass||item.oData&&typeof item.oData.sChangedObjectId==="string")&&null!=item.nActionType)History.RedoAdd(oRedoObjectParam,item.oClass,item.nActionType,item.nSheetId,item.oRange,item.oData);_pos+=_len;stream.Seek2(_pos);stream.size=data.length}if(isFull){History.UndoRedoEnd(null,oRedoObjectParam,false);History.Clear();oRedoObjectParam=
null}this.bCollaborativeChanges=false}return oRedoObjectParam};Workbook.prototype.getTableRangeForFormula=function(name,objectParam){var res=null;for(var i=0,length=this.aWorksheets.length;i<length;++i){var ws=this.aWorksheets[i];res=ws.getTableRangeForFormula(name,objectParam);if(res!==null){res={wsID:ws.getId(),range:res};break}}return res};Workbook.prototype.getTableIndexColumnByName=function(tableName,columnName){var res=null;for(var i=0,length=this.aWorksheets.length;i<length;++i){var ws=this.aWorksheets[i];
res=ws.getTableIndexColumnByName(tableName,columnName);if(res!==null){res={wsID:ws.getId(),index:res,name:ws.getTableNameColumnByIndex(tableName,res)};break}}return res};Workbook.prototype.getTableNameColumnByIndex=function(tableName,columnIndex){var res=null;for(var i=0,length=this.aWorksheets.length;i<length;++i){var ws=this.aWorksheets[i];res=ws.getTableNameColumnByIndex(tableName,columnIndex);if(res!==null){res={wsID:ws.getId(),columnName:res};break}}return res};Workbook.prototype.getTableByName=
function(tableName,wsID){var res=null;var ws=this.getWorksheetById(wsID);return ws.getTableByName(tableName)};Workbook.prototype.updateSparklineCache=function(sheet,ranges){this.forEach(function(ws){ws.updateSparklineCache(sheet,ranges)})};Workbook.prototype.sortDependency=function(){this.dependencyFormulas.calcTree()};Workbook.prototype.charCountToModelColWidth=function(count){if(count<=0)return 0;return Asc.floor((count*this.maxDigitWidth+this.paddingPlusBorder)/this.maxDigitWidth*256)/256};Workbook.prototype.modelColWidthToColWidth=
function(mcw){return Asc.floor((256*mcw+Asc.floor(128/this.maxDigitWidth))/256*this.maxDigitWidth)};Workbook.prototype.colWidthToCharCount=function(w){var pxInOneCharacter=this.maxDigitWidth+this.paddingPlusBorder;return w<pxInOneCharacter?1-Asc.floor(100*(pxInOneCharacter-w)/pxInOneCharacter+.49999)/100:Asc.floor((w-this.paddingPlusBorder)/this.maxDigitWidth*100+.5)/100};Workbook.prototype.getUndoDefName=function(ascName){if(!ascName)return ascName;var sheetId=this.getSheetIdByIndex(ascName.LocalSheetId);
return new UndoRedoData_DefinedNames(ascName.Name,ascName.Ref,sheetId,ascName.isTable,ascName.isXLNM)};Workbook.prototype.changeColorScheme=function(sSchemeName){var scheme=AscCommon.getColorSchemeByName(sSchemeName);if(!scheme)scheme=this.theme.getExtraClrScheme(sSchemeName);if(!scheme)return;History.Create_NewPoint();History.Add(AscCommonExcel.g_oUndoRedoWorkbook,AscCH.historyitem_Workbook_ChangeColorScheme,null,null,new AscCommonExcel.UndoRedoData_ClrScheme(this.theme.themeElements.clrScheme,scheme));
this.theme.themeElements.clrScheme=scheme;this.rebuildColors();return true};Workbook.prototype.cleanFindResults=function(){this.lastFindOptions=null;this.lastFindCells={}};Workbook.prototype.findCellText=function(options){var ws=this.getActiveWs();var result=ws.findCellText(options),result2=null;if(!options.scanOnOnlySheet){var key=result&&result.col+"-"+result.row;if(!key||options.isEqual(this.lastFindOptions)&&this.lastFindCells[key]){var i,active=this.getActive(),start=0,end=this.getWorksheetCount();
var inc=options.scanForward?+1:-1;for(i=active+inc;i<end&&i>=start;i+=inc){ws=this.getWorksheet(i);if(ws.getHidden())continue;result2=ws.findCellText(options);if(result2)break}if(!result2){if(options.scanForward){i=0;end=active}else{i=end-1;start=active+1}inc*=-1;for(;i<end&&i>=start;i+=inc){ws=this.getWorksheet(i);if(ws.getHidden())continue;result2=ws.findCellText(options);if(result2)break}}if(result2){this.handlers.trigger("undoRedoHideSheet",i);key=result2.col+"-"+result2.row}}if(key){this.lastFindOptions=
options.clone();this.lastFindCells[key]=true}}if(!result2&&!result)this.cleanFindResults();return result2||result};Workbook.prototype.getComment=function(id){if(id){var sheet;for(var i=0;i<this.aWorksheets.length;++i){sheet=this.aWorksheets[i];for(var j=0;j<sheet.aComments.length;++j)if(id===sheet.aComments[j].asc_getGuid())return sheet.aComments[j]}}return null};var tempHelp=new ArrayBuffer(8);var tempHelpUnit=new Uint8Array(tempHelp);var tempHelpFloat=new Float64Array(tempHelp);function SheetMemory(structSize,
maxIndex){this.data=null;this.count=0;this.structSize=structSize;this.maxIndex=maxIndex}SheetMemory.prototype.checkSize=function(index){var allocatedCount=this.data?this.data.length/this.structSize:0;if(allocatedCount<index+1){var newAllocatedCount=Math.min(Math.max(1.5*this.count>>0,index+1),this.maxIndex+1);if(newAllocatedCount>allocatedCount){var oldData=this.data;this.data=new Uint8Array(newAllocatedCount*this.structSize);if(oldData)this.data.set(oldData)}}this.count=Math.min(Math.max(this.count,
index+1),this.maxIndex+1)};SheetMemory.prototype.hasSize=function(index){return index+1<=this.count};SheetMemory.prototype.getSize=function(){return this.count};SheetMemory.prototype.clone=function(){var sheetMemory=new SheetMemory(this.structSize,this.maxIndex);sheetMemory.data=this.data?new Uint8Array(this.data):null;sheetMemory.count=this.count;return sheetMemory};SheetMemory.prototype.deleteRange=function(start,deleteCount){if(start<this.count){var startOffset=start*this.structSize;if(start+deleteCount<
this.count){var endOffset=(start+deleteCount)*this.structSize;this.data.set(this.data.subarray(endOffset),startOffset);this.data.fill(0,(this.count-deleteCount)*this.structSize);this.count-=deleteCount}else{this.data.fill(0,startOffset);this.count=start}}};SheetMemory.prototype.insertRange=function(start,insertCount){if(start<this.count){this.checkSize(this.count-1+insertCount);var startOffset=start*this.structSize;if(start+insertCount<this.count){var endOffset=(start+insertCount)*this.structSize;
var endData=(this.count-insertCount)*this.structSize;this.data.set(this.data.subarray(startOffset,endData),endOffset);this.data.fill(0,startOffset,endOffset)}else this.data.fill(0,startOffset)}};SheetMemory.prototype.copyRange=function(sheetMemory,startFrom,startTo,count){var countCopied=0;if(startFrom<sheetMemory.count){countCopied=Math.min(count,sheetMemory.count-startFrom);this.checkSize(startTo+countCopied);countCopied=Math.min(countCopied,this.count-startTo);if(countCopied>0){var startOffsetFrom=
startFrom*this.structSize;var endOffsetFrom=(startFrom+countCopied)*this.structSize;var startOffsetTo=startTo*this.structSize;this.data.set(sheetMemory.data.subarray(startOffsetFrom,endOffsetFrom),startOffsetTo)}}var countErase=Math.min(count-countCopied,this.count-(startTo+countCopied));if(countErase>0){var startOffsetErase=(startTo+countCopied)*this.structSize;var endOffsetErase=(startTo+countCopied+countErase)*this.structSize;this.data.fill(0,startOffsetErase,endOffsetErase)}};SheetMemory.prototype.copyRangeByChunk=
function(from,fromCount,to,toCount){if(from<this.count){this.checkSize(to+toCount-1);var fromStartOffset=from*this.structSize;var fromEndOffset=Math.min(from+fromCount,this.count)*this.structSize;var fromSubArray=this.data.subarray(fromStartOffset,fromEndOffset);for(var i=to;i<to+toCount&&i<this.count;i+=fromCount)this.data.set(fromSubArray,i*this.structSize)}};SheetMemory.prototype.clear=function(start,end){end=Math.min(end,this.count);if(start<end)this.data.fill(0,start*this.structSize,end*this.structSize)};
SheetMemory.prototype.getUint8=function(index,offset){offset+=index*this.structSize;return this.data[offset]};SheetMemory.prototype.setUint8=function(index,offset,val){offset+=index*this.structSize;this.data[offset]=val};SheetMemory.prototype.getUint16=function(index,offset){offset+=index*this.structSize;return AscFonts.FT_Common.IntToUInt(this.data[offset]|this.data[offset+1]<<8)};SheetMemory.prototype.setUint16=function(index,offset,val){offset+=index*this.structSize;this.data[offset]=val&255;this.data[offset+
1]=val>>>8&255};SheetMemory.prototype.getUint32=function(index,offset){offset+=index*this.structSize;return AscFonts.FT_Common.IntToUInt(this.data[offset]|this.data[offset+1]<<8|this.data[offset+2]<<16|this.data[offset+3]<<24)};SheetMemory.prototype.setUint32=function(index,offset,val){offset+=index*this.structSize;this.data[offset]=val&255;this.data[offset+1]=val>>>8&255;this.data[offset+2]=val>>>16&255;this.data[offset+3]=val>>>24&255};SheetMemory.prototype.getFloat64=function(index,offset){offset+=
index*this.structSize;tempHelpUnit[0]=this.data[offset];tempHelpUnit[1]=this.data[offset+1];tempHelpUnit[2]=this.data[offset+2];tempHelpUnit[3]=this.data[offset+3];tempHelpUnit[4]=this.data[offset+4];tempHelpUnit[5]=this.data[offset+5];tempHelpUnit[6]=this.data[offset+6];tempHelpUnit[7]=this.data[offset+7];return tempHelpFloat[0]};SheetMemory.prototype.setFloat64=function(index,offset,val){offset+=index*this.structSize;tempHelpFloat[0]=val;this.data[offset]=tempHelpUnit[0];this.data[offset+1]=tempHelpUnit[1];
this.data[offset+2]=tempHelpUnit[2];this.data[offset+3]=tempHelpUnit[3];this.data[offset+4]=tempHelpUnit[4];this.data[offset+5]=tempHelpUnit[5];this.data[offset+6]=tempHelpUnit[6];this.data[offset+7]=tempHelpUnit[7]};function Worksheet(wb,_index,sId){this.workbook=wb;this.sName=this.workbook.getUniqueSheetNameFrom(g_sNewSheetNamePattern,false);this.bHidden=false;this.oSheetFormatPr=new AscCommonExcel.SheetFormatPr;this.index=_index;this.Id=null!=sId?sId:AscCommon.g_oIdCounter.Get_NewId();this.nRowsCount=
0;this.nColsCount=0;this.rowsData=new SheetMemory(AscCommonExcel.g_nRowStructSize,gc_nMaxRow0);this.cellsByCol=[];this.cellsByColRowsCount=0;this.aCols=[];this.hiddenManager=new HiddenManager(this);this.Drawings=[];this.TableParts=[];this.AutoFilter=null;this.oAllCol=null;this.aComments=[];var oThis=this;this.bExcludeHiddenRows=false;this.bIgnoreWriteFormulas=false;this.mergeManager=new RangeDataManager(function(data,from,to){if(History.Is_On()&&(null!=from||null!=to)){if(null!=from)from=from.clone();
if(null!=to)to=to.clone();var oHistoryRange=from;if(null==oHistoryRange)oHistoryRange=to;History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_ChangeMerge,oThis.getId(),oHistoryRange,new UndoRedoData_FromTo(new UndoRedoData_BBox(from),new UndoRedoData_BBox(to)))}if(null!=to){var maxRow=gc_nMaxRow0!==to.r2?to.r2:to.r1;var maxCol=gc_nMaxCol0!==to.c2?to.c2:to.c1;if(maxRow>=oThis.nRowsCount)oThis.nRowsCount=maxRow+1;if(maxCol>=oThis.nColsCount)oThis.nColsCount=maxCol+1}});this.mergeManager.worksheet=
this;this.hyperlinkManager=new RangeDataManager(function(data,from,to,oChangeParam){if(History.Is_On()&&(null!=from||null!=to)){if(null!=from)from=from.clone();if(null!=to)to=to.clone();var oHistoryRange=from;if(null==oHistoryRange)oHistoryRange=to;var oHistoryData=null;if(null==from||null==to)oHistoryData=data.clone();History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_ChangeHyperlink,oThis.getId(),oHistoryRange,new AscCommonExcel.UndoRedoData_FromToHyperlink(from,to,oHistoryData))}if(null!=
to)data.Ref=oThis.getRange3(to.r1,to.c1,to.r2,to.c2);else if(oChangeParam&&oChangeParam.removeStyle&&null!=data.Ref)data.Ref.cleanFormat();if(null!=to){var maxRow=gc_nMaxRow0!==to.r2?to.r2:to.r1;var maxCol=gc_nMaxCol0!==to.c2?to.c2:to.c1;if(maxRow>=oThis.nRowsCount)oThis.nRowsCount=maxRow+1;if(maxCol>=oThis.nColsCount)oThis.nColsCount=maxCol+1}});this.hyperlinkManager.setDependenceManager(this.mergeManager);this.DrawingDocument=new AscCommon.CDrawingDocument;this.sheetViews=[];this.aConditionalFormattingRules=
[];this.updateConditionalFormattingRange=null;this.dataValidations=null;this.sheetPr=null;this.aFormulaExt=null;this.autoFilters=AscCommonExcel.AutoFilters!==undefined?new AscCommonExcel.AutoFilters(this):null;this.oDrawingOjectsManager=new DrawingObjectsManager(this);this.contentChanges=new AscCommon.CContentChanges;this.aSparklineGroups=[];this.selectionRange=new AscCommonExcel.SelectionRange(this);this.sheetMergedStyles=new AscCommonExcel.SheetMergedStyles;this.pivotTables=[];this.headerFooter=
new Asc.CHeaderFooter(this);this.rowBreaks=null;this.colBreaks=null;this.legacyDrawingHF=null;this.picture=null;this.PagePrintOptions=new Asc.asc_CPageOptions(this);this.formulaArrayLink=null;this.lastFindOptions=null;this.bExcludeCollapsed=false;this.handlers=null}Worksheet.prototype.getCompiledStyle=function(row,col,opt_cell,opt_styleComponents){return getCompiledStyle(this.sheetMergedStyles,this.hiddenManager,row,col,opt_cell,this,opt_styleComponents)};Worksheet.prototype.getCompiledStyleCustom=
function(row,col,needTable,needCell,needConditional,opt_cell){var res;var styleComponents=this.sheetMergedStyles.getStyle(this.hiddenManager,row,col,this);var ws=this;if(!needTable)styleComponents.table=[];if(!needConditional)styleComponents.conditional=[];if(!needCell)res=getCompiledStyle(undefined,undefined,row,col,undefined,undefined,styleComponents);else if(opt_cell)res=getCompiledStyle(undefined,undefined,row,col,opt_cell,ws,styleComponents);else this._getCellNoEmpty(row,col,function(cell){res=
getCompiledStyle(undefined,undefined,row,col,cell,ws,styleComponents)});return res};Worksheet.prototype.getColData=function(index){var sheetMemory=this.cellsByCol[index];if(!sheetMemory){sheetMemory=new SheetMemory(g_nCellStructSize,gc_nMaxRow0);this.cellsByCol[index]=sheetMemory}return sheetMemory};Worksheet.prototype.getColDataNoEmpty=function(index){return this.cellsByCol[index]};Worksheet.prototype.getColDataLength=function(){return this.cellsByCol.length};Worksheet.prototype.getSnapshot=function(wb){var ws=
new Worksheet(wb,this.index,this.Id);ws.sName=this.sName;for(var i=0;i<this.TableParts.length;++i){var table=this.TableParts[i];ws.addTablePart(table.clone(null),false)}for(i=0;i<this.sheetViews.length;++i)ws.sheetViews.push(this.sheetViews[i].clone());return ws};Worksheet.prototype.addContentChanges=function(changes){this.contentChanges.Add(changes)};Worksheet.prototype.refreshContentChanges=function(){this.contentChanges.Refresh();this.contentChanges.Clear()};Worksheet.prototype.rebuildColors=function(){this.rebuildTabColor();
for(var i=0;i<this.aSparklineGroups.length;++i)this.aSparklineGroups[i].cleanCache()};Worksheet.prototype.generateFontMap=function(oFontMap){for(var i=0,length=this.Drawings.length;i<length;++i){var drawing=this.Drawings[i];if(drawing)drawing.getAllFonts(oFontMap)}if(this.headerFooter)this.headerFooter.getAllFonts(oFontMap)};Worksheet.prototype.getAllImageUrls=function(aImages){for(var i=0;i<this.Drawings.length;++i)this.Drawings[i].graphicObject.getAllRasterImages(aImages)};Worksheet.prototype.reassignImageUrls=
function(oImages){for(var i=0;i<this.Drawings.length;++i)this.Drawings[i].graphicObject.Reassign_ImageUrls(oImages)};Worksheet.prototype.copyFrom=function(wsFrom,sName,tableNames){var i,elem,range;var t=this;this.sName=this.workbook.checkValidSheetName(sName)?sName:this.workbook.getUniqueSheetNameFrom(wsFrom.sName,true);this.bHidden=wsFrom.bHidden;this.oSheetFormatPr=wsFrom.oSheetFormatPr.clone();this.nRowsCount=wsFrom.nRowsCount;this.nColsCount=wsFrom.nColsCount;var renameParams={lastName:wsFrom.getName(),
newName:this.getName(),tableNameMap:{}};for(i=0;i<wsFrom.TableParts.length;++i){var tableFrom=wsFrom.TableParts[i];var tableTo=tableFrom.clone(null);if(tableNames&&tableNames.length)tableTo.changeDisplayName(tableNames[i]);else tableTo.changeDisplayName(this.workbook.dependencyFormulas.getNextTableName());this.addTablePart(tableTo,true);renameParams.tableNameMap[tableFrom.DisplayName]=tableTo.DisplayName}for(i=0;i<this.TableParts.length;++i)this.TableParts[i].renameSheetCopy(this,renameParams);if(wsFrom.AutoFilter)this.AutoFilter=
wsFrom.AutoFilter.clone();for(i in wsFrom.aCols){var col=wsFrom.aCols[i];if(null!=col)this.aCols[i]=col.clone(this)}if(null!=wsFrom.oAllCol)this.oAllCol=wsFrom.oAllCol.clone(this);this.rowsData=wsFrom.rowsData.clone();wsFrom._forEachColData(function(sheetMemory,index){t.cellsByCol[index]=sheetMemory.clone()});this.cellsByColRowsCount=wsFrom.cellsByColRowsCount;var aMerged=wsFrom.mergeManager.getAll();for(i in aMerged){elem=aMerged[i];range=this.getRange3(elem.bbox.r1,elem.bbox.c1,elem.bbox.r2,elem.bbox.c2);
range.mergeOpen()}var aHyperlinks=wsFrom.hyperlinkManager.getAll();for(i in aHyperlinks){elem=aHyperlinks[i];range=this.getRange3(elem.bbox.r1,elem.bbox.c1,elem.bbox.r2,elem.bbox.c2);range.setHyperlinkOpen(elem.data)}if(null!=wsFrom.aComments)for(i=0;i<wsFrom.aComments.length;i++){var comment=wsFrom.aComments[i].clone();comment.wsId=this.getId();comment.nId="sheet"+comment.wsId+"_"+(i+1);this.aComments.push(comment)}for(i=0;i<wsFrom.sheetViews.length;++i)this.sheetViews.push(wsFrom.sheetViews[i].clone());
for(i=0;i<wsFrom.aConditionalFormattingRules.length;++i)this.aConditionalFormattingRules.push(wsFrom.aConditionalFormattingRules[i].clone());if(wsFrom.dataValidations)this.dataValidations=wsFrom.dataValidations.clone();if(wsFrom.sheetPr)this.sheetPr=wsFrom.sheetPr.clone();this.selectionRange=wsFrom.selectionRange.clone(this);var oldNewArrayFormulaMap=[];this._forEachCell(function(cell){if(cell.isFormula()){var parsed,notMainArrayCell;if(cell.transformSharedFormula())parsed=cell.getFormulaParsed();
else{parsed=cell.getFormulaParsed();if(parsed.getArrayFormulaRef()){var listenerId=parsed.getListenerId();if(oldNewArrayFormulaMap[listenerId]){parsed=oldNewArrayFormulaMap[listenerId];notMainArrayCell=true}else{parsed=parsed.clone(null,new CCellWithFormula(t,cell.nRow,cell.nCol),t);oldNewArrayFormulaMap[listenerId]=parsed}}else parsed=parsed.clone(null,new CCellWithFormula(t,cell.nRow,cell.nCol),t)}if(!notMainArrayCell){parsed.renameSheetCopy(renameParams);parsed.setFormulaString(parsed.assemble(true))}cell.setFormulaInternal(parsed,
true);t.workbook.dependencyFormulas.addToBuildDependencyCell(cell)}});if(wsFrom.headerFooter)this.headerFooter=wsFrom.headerFooter.clone(this);return renameParams};Worksheet.prototype.copyObjects=function(oNewWs,wsFrom){var i;if(null!=this.Drawings&&this.Drawings.length>0){var drawingObjects=new AscFormat.DrawingObjects;oNewWs.Drawings=[];AscFormat.NEW_WORKSHEET_DRAWING_DOCUMENT=oNewWs.DrawingDocument;for(i=0;i<this.Drawings.length;++i){var drawingObject=drawingObjects.cloneDrawingObject(this.Drawings[i]);
drawingObject.graphicObject=this.Drawings[i].graphicObject.copy();drawingObject.graphicObject.setWorksheet(oNewWs);drawingObject.graphicObject.addToDrawingObjects();var drawingBase=this.Drawings[i];drawingObject.graphicObject.setDrawingBaseCoords(drawingBase.from.col,drawingBase.from.colOff,drawingBase.from.row,drawingBase.from.rowOff,drawingBase.to.col,drawingBase.to.colOff,drawingBase.to.row,drawingBase.to.rowOff,drawingBase.Pos.X,drawingBase.Pos.Y,drawingBase.ext.cx,drawingBase.ext.cy);if(drawingObject.graphicObject.setDrawingBaseType)drawingObject.graphicObject.setDrawingBaseType(drawingBase.Type);
oNewWs.Drawings[oNewWs.Drawings.length-1]=drawingObject}AscFormat.NEW_WORKSHEET_DRAWING_DOCUMENT=null;drawingObjects.pushToAObjects(oNewWs.Drawings);drawingObjects.updateChartReferences2(parserHelp.getEscapeSheetName(wsFrom.sName),parserHelp.getEscapeSheetName(oNewWs.sName))}var newSparkline;for(i=0;i<this.aSparklineGroups.length;++i){newSparkline=this.aSparklineGroups[i].clone();newSparkline.setWorksheet(oNewWs,wsFrom);oNewWs.aSparklineGroups.push(newSparkline)}};Worksheet.prototype.initColumn=function(column){if(column)if(null!==
column.width&&0!==column.width){column.widthPx=this.modelColWidthToColWidth(column.width);column.charCount=this.colWidthToCharCount(column.widthPx)}else column.widthPx=column.charCount=null};Worksheet.prototype.initColumns=function(){this.initColumn(this.oAllCol);this.aCols.forEach(this.initColumn,this)};Worksheet.prototype.initPostOpen=function(handlers){this.PagePrintOptions.init();this.headerFooter.init();if(0===this.sheetViews.length)this.sheetViews.push(new AscCommonExcel.asc_CSheetViewSettings);
this.hiddenManager.initPostOpen();this.oSheetFormatPr.correction();this.handlers=handlers;this._setHandlersTablePart()};Worksheet.prototype._getValuesForConditionalFormatting=function(ranges,numbers){var res=[];for(var i=0;i<ranges.length;++i){var elem=ranges[i];var range=this.getRange3(elem.r1,elem.c1,elem.r2,elem.c2);res=res.concat(range._getValues(numbers))}return res};Worksheet.prototype._isConditionalFormattingIntersect=function(range,ranges){for(var i=0;i<ranges.length;++i)if(range.isIntersect(ranges[i]))return true;
return false};Worksheet.prototype.setDirtyConditionalFormatting=function(range){if(!range)range=new AscCommonExcel.MultiplyRange([new Asc.Range(0,0,gc_nMaxCol0,gc_nMaxRow0)]);if(this.updateConditionalFormattingRange)this.updateConditionalFormattingRange.union2(range);else this.updateConditionalFormattingRange=range.clone()};Worksheet.prototype._updateConditionalFormatting=function(){if(!this.updateConditionalFormattingRange)return;var range=this.updateConditionalFormattingRange;this.updateConditionalFormattingRange=
null;var t=this;var aRules=this.aConditionalFormattingRules.sort(function(v1,v2){return v2.priority-v1.priority});var oGradient1,oGradient2,aWeights,oRule,multiplyRange,oRuleElement,bboxCf,formulaParent,parsed1,parsed2;var o,l,cell,ranges,values,value,tmp,dxf,compareFunction,nc,sum;this.sheetMergedStyles.clearConditionalStyle(range);var getCacheFunction=function(rule,setFunc){var cache={cache:{},get:function(row,col){var cacheVal;var cacheRow=this.cache[row];if(!cacheRow){cacheRow={};this.cache[row]=
cacheRow}else cacheVal=cacheRow[col];if(undefined===cacheVal){cacheVal=this.set(row,col);cacheRow[col]=cacheVal}return cacheVal},set:function(row,col){if(rule)return setFunc(row,col)?rule.dxf:null;else return setFunc(row,col)}};return function(row,col){return cache.get(row,col)}};for(var i=0;i<aRules.length;++i){oRule=aRules[i];ranges=oRule.ranges;if(this._isConditionalFormattingIntersect(range,ranges)){multiplyRange=new AscCommonExcel.MultiplyRange(ranges);if(AscCommonExcel.ECfType.colorScale===
oRule.type){if(1!==oRule.aRuleElements.length)continue;oRuleElement=oRule.aRuleElements[0];if(!oRuleElement||oRule.type!==oRuleElement.type)continue;values=this._getValuesForConditionalFormatting(ranges,true);l=oRuleElement.aColors.length;if(0<values.length&&2<=l){aWeights=[];oGradient1=new AscCommonExcel.CGradient(oRuleElement.aColors[0],oRuleElement.aColors[1]);aWeights.push(oRule.getMin(values,t),oRule.getMax(values,t));if(2<l){oGradient2=new AscCommonExcel.CGradient(oRuleElement.aColors[1],oRuleElement.aColors[2]);
aWeights.push(oRule.getMid(values,t));aWeights.sort(AscCommon.fSortAscending);oGradient1.init(aWeights[0],aWeights[1]);oGradient2.init(aWeights[1],aWeights[2])}else{oGradient2=null;aWeights.sort(AscCommon.fSortAscending);oGradient1.init(aWeights[0],aWeights[1])}compareFunction=function(oGradient1,oGradient2){return function(row,col){var val,color,gradient;t._getCellNoEmpty(row,col,function(cell){val=cell&&cell.getNumberValue()});dxf=null;if(null!==val){dxf=new AscCommonExcel.CellXfs;gradient=oGradient2?
oGradient2:oGradient1;if(val>=gradient.max)color=gradient.getMaxColor();else if(val<=oGradient1.min)color=oGradient1.getMinColor();else{gradient=oGradient2&&val>oGradient1.max?oGradient2:oGradient1;color=gradient.calculateColor(val)}dxf.fill=new AscCommonExcel.Fill;dxf.fill.fromColor(color);dxf=g_StyleCache.addXf(dxf,true)}return dxf}}(oGradient1,oGradient2)}}else if(AscCommonExcel.ECfType.dataBar===oRule.type)continue;else if(AscCommonExcel.ECfType.top10===oRule.type){if(oRule.rank>0&&oRule.dxf){nc=
0;values=this._getValuesForConditionalFormatting(ranges,false);o=oRule.bottom?Number.MAX_VALUE:-Number.MAX_VALUE;for(cell=0;cell<values.length;++cell){value=values[cell];if(CellValueType.Number===value.type&&!isNaN(tmp=parseFloat(value.v))){++nc;value.v=tmp}else value.v=o}values.sort(function(condition){return function(v1,v2){return condition*(v2.v-v1.v)}}(oRule.bottom?-1:1));nc=Math.max(1,oRule.percent?Math.floor(nc*oRule.rank/100):oRule.rank);var threshold=values.length>=nc?values[nc-1].v:o;compareFunction=
function(rule,threshold){return function(row,col){var val;t._getCellNoEmpty(row,col,function(cell){val=cell?cell.getNumberValue():null});return null!==val&&(rule.bottom?val<=threshold:val>=threshold)?rule.dxf:null}}(oRule,threshold)}}else if(AscCommonExcel.ECfType.aboveAverage===oRule.type){if(!oRule.dxf)continue;values=this._getValuesForConditionalFormatting(ranges,false);sum=0;nc=0;for(cell=0;cell<values.length;++cell){value=values[cell];if(CellValueType.Number===value.type&&!isNaN(tmp=parseFloat(value.v))){++nc;
value.v=tmp;sum+=tmp}else value.v=null}tmp=sum/nc;compareFunction=function(rule,average,stdDev){return function(row,col){var val;t._getCellNoEmpty(row,col,function(cell){val=cell?cell.getNumberValue():null});return null!==val&&rule.getAverage(val,average,stdDev)?rule.dxf:null}}(oRule,tmp,sum)}else{if(!oRule.dxf)continue;switch(oRule.type){case AscCommonExcel.ECfType.duplicateValues:case AscCommonExcel.ECfType.uniqueValues:o=getUniqueKeys(this._getValuesForConditionalFormatting(ranges,false));compareFunction=
function(rule,obj,condition){return function(row,col){var val;t._getCellNoEmpty(row,col,function(cell){val=cell?cell.getValueWithoutFormat():""});return(val.length>0?condition===obj[val]:false)?rule.dxf:null}}(oRule,o,oRule.type===AscCommonExcel.ECfType.duplicateValues);break;case AscCommonExcel.ECfType.containsText:case AscCommonExcel.ECfType.notContainsText:case AscCommonExcel.ECfType.beginsWith:case AscCommonExcel.ECfType.endsWith:var operator;switch(oRule.type){case AscCommonExcel.ECfType.containsText:operator=
AscCommonExcel.ECfOperator.Operator_containsText;break;case AscCommonExcel.ECfType.notContainsText:operator=AscCommonExcel.ECfOperator.Operator_notContains;break;case AscCommonExcel.ECfType.beginsWith:operator=AscCommonExcel.ECfOperator.Operator_beginsWith;break;case AscCommonExcel.ECfType.endsWith:operator=AscCommonExcel.ECfOperator.Operator_endsWith;break}formulaParent=new AscCommonExcel.CConditionalFormattingFormulaParent(this,oRule,true);oRuleElement=oRule.getFormulaCellIs();parsed1=oRuleElement&&
oRuleElement.getFormula&&oRuleElement.getFormula(this,formulaParent);if(parsed1&&parsed1.hasRelativeRefs()){bboxCf=oRule.getBBox();compareFunction=getCacheFunction(oRule,function(rule,operator,formulaParent,rowLT,colLT){return function(row,col){var offset=new AscCommon.CellBase(row-rowLT,col-colLT);var bboxCell=new Asc.Range(col,row,col,row);var v1=rule.getValueCellIs(t,formulaParent,bboxCell,offset,false);var res;t._getCellNoEmpty(row,col,function(cell){res=rule.cellIs(operator,cell,v1)?rule.dxf:
null});return res}}(oRule,operator,new AscCommonExcel.CConditionalFormattingFormulaParent(this,oRule,true),bboxCf?bboxCf.r1:0,bboxCf?bboxCf.c1:0))}else compareFunction=function(rule,operator,v1){return function(row,col){var res;t._getCellNoEmpty(row,col,function(cell){res=rule.cellIs(operator,cell,v1)?rule.dxf:null});return res}}(oRule,operator,oRule.getValueCellIs(this));break;case AscCommonExcel.ECfType.containsErrors:compareFunction=function(rule){return function(row,col){var val;t._getCellNoEmpty(row,
col,function(cell){val=cell?CellValueType.Error===cell.getType():false});return val?rule.dxf:null}}(oRule);break;case AscCommonExcel.ECfType.notContainsErrors:compareFunction=function(rule){return function(row,col){var val;t._getCellNoEmpty(row,col,function(cell){val=cell?CellValueType.Error!==cell.getType():true});return val?rule.dxf:null}}(oRule);break;case AscCommonExcel.ECfType.containsBlanks:compareFunction=function(rule){return function(row,col){var val;t._getCellNoEmpty(row,col,function(cell){if(cell)val=
""===cell.getValueWithoutFormat().replace(/^ +| +$/g,"");else val=true});return val?rule.dxf:null}}(oRule);break;case AscCommonExcel.ECfType.notContainsBlanks:compareFunction=function(rule){return function(row,col){var val;t._getCellNoEmpty(row,col,function(cell){if(cell)val=""!==cell.getValueWithoutFormat().replace(/^ +| +$/g,"");else val=false});return val?rule.dxf:null}}(oRule);break;case AscCommonExcel.ECfType.timePeriod:if(oRule.timePeriod)compareFunction=function(rule,period){return function(row,
col){var val;t._getCellNoEmpty(row,col,function(cell){val=cell?cell.getValueWithoutFormat():""});var n=parseFloat(val);return period.start<=n&&n<period.end?rule.dxf:null}}(oRule,oRule.getTimePeriod());else continue;break;case AscCommonExcel.ECfType.cellIs:formulaParent=new AscCommonExcel.CConditionalFormattingFormulaParent(this,oRule,true);oRuleElement=oRule.aRuleElements[0];parsed1=oRuleElement&&oRuleElement.getFormula&&oRuleElement.getFormula(this,formulaParent);oRuleElement=oRule.aRuleElements[1];
parsed2=oRuleElement&&oRuleElement.getFormula&&oRuleElement.getFormula(this,formulaParent);if(parsed1&&parsed1.hasRelativeRefs()||parsed2&&parsed2.hasRelativeRefs()){bboxCf=oRule.getBBox();compareFunction=getCacheFunction(oRule,function(rule,ruleElem1,ruleElem2,formulaParent,rowLT,colLT){return function(row,col){var offset=new AscCommon.CellBase(row-rowLT,col-colLT);var bboxCell=new Asc.Range(col,row,col,row);var v1=ruleElem1&&ruleElem1.getValue(t,formulaParent,bboxCell,offset,false);var v2=ruleElem2&&
ruleElem2.getValue(t,formulaParent,bboxCell,offset,false);var res;t._getCellNoEmpty(row,col,function(cell){res=rule.cellIs(rule.operator,cell,v1,v2)?rule.dxf:null});return res}}(oRule,oRule.aRuleElements[0],oRule.aRuleElements[1],new AscCommonExcel.CConditionalFormattingFormulaParent(this,oRule,true),bboxCf?bboxCf.r1:0,bboxCf?bboxCf.c1:0))}else compareFunction=function(rule,v1,v2){return function(row,col){var res;t._getCellNoEmpty(row,col,function(cell){res=rule.cellIs(rule.operator,cell,v1,v2)?rule.dxf:
null});return res}}(oRule,oRule.aRuleElements[0]&&oRule.aRuleElements[0].getValue(this),oRule.aRuleElements[1]&&oRule.aRuleElements[1].getValue(this));break;case AscCommonExcel.ECfType.expression:bboxCf=oRule.getBBox();compareFunction=getCacheFunction(oRule,function(rule,formulaCF,formulaParent,rowLT,colLT){return function(row,col){var offset=new AscCommon.CellBase(row-rowLT,col-colLT);var bboxCell=new Asc.Range(col,row,col,row);var res=formulaCF&&formulaCF.getValue(t,formulaParent,bboxCell,offset,
true);if(res&&res.tocBool){res=res.tocBool();if(res&&res.toBool)return res.toBool()}return false}}(oRule,oRule.aRuleElements[0],new AscCommonExcel.CConditionalFormattingFormulaParent(this,oRule,true),bboxCf?bboxCf.r1:0,bboxCf?bboxCf.c1:0));break;default:continue;break}}if(compareFunction)this.sheetMergedStyles.setConditionalStyle(multiplyRange,compareFunction)}}};Worksheet.prototype._forEachRow=function(fAction){this.getRange3(0,0,gc_nMaxRow0,0)._foreachRowNoEmpty(fAction)};Worksheet.prototype._forEachCol=
function(fAction){this.getRange3(0,0,0,gc_nMaxCol0)._foreachColNoEmpty(fAction)};Worksheet.prototype._forEachColData=function(fAction){for(var i=0;i<this.cellsByCol.length;++i){var sheetMemory=this.cellsByCol[i];if(sheetMemory)fAction(sheetMemory,i)}};Worksheet.prototype._forEachCell=function(fAction){this.getRange3(0,0,gc_nMaxRow0,gc_nMaxCol0)._foreachNoEmpty(fAction)};Worksheet.prototype.getId=function(){return this.Id};Worksheet.prototype.getIndex=function(){return this.index};Worksheet.prototype.getName=
function(){return this.sName!==undefined&&this.sName.length>0?this.sName:""};Worksheet.prototype.setName=function(name,bFromUndoRedo){if(name.length<=g_nSheetNameMaxLength){var lastName=this.sName;History.Create_NewPoint();var prepared=this.workbook.dependencyFormulas.prepareChangeSheet(this.getId(),{rename:{from:lastName,to:name}});this.sName=name;this.workbook.dependencyFormulas.changeSheet(prepared);History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_Rename,this.getId(),
null,new UndoRedoData_FromTo(lastName,name));if(!bFromUndoRedo){var _lastName=parserHelp.getEscapeSheetName(lastName);var _newName=parserHelp.getEscapeSheetName(this.sName);for(var key in this.workbook.aWorksheets){var wsModel=this.workbook.aWorksheets[key];if(wsModel)wsModel.oDrawingOjectsManager.updateChartReferencesWidthHistory(_lastName,_newName,true)}}this.workbook.dependencyFormulas.calcTree()}else console.log(new Error("The sheet name must be less than 31 characters."))};Worksheet.prototype.getTabColor=
function(){return this.sheetPr&&this.sheetPr.TabColor?Asc.colorObjToAscColor(this.sheetPr.TabColor):null};Worksheet.prototype.setTabColor=function(color){if(!this.sheetPr)this.sheetPr=new AscCommonExcel.asc_CSheetPr;History.Create_NewPoint();History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_SetTabColor,this.getId(),null,new UndoRedoData_FromTo(this.sheetPr.TabColor?this.sheetPr.TabColor.clone():null,color?color.clone():null));this.sheetPr.TabColor=color;if(!this.workbook.bUndoChanges&&
!this.workbook.bRedoChanges)this.workbook.handlers.trigger("asc_onUpdateTabColor",this.getIndex())};Worksheet.prototype.rebuildTabColor=function(){if(this.sheetPr&&this.sheetPr.TabColor)this.workbook.handlers.trigger("asc_onUpdateTabColor",this.getIndex())};Worksheet.prototype.getHidden=function(){return true===this.bHidden};Worksheet.prototype.setHidden=function(hidden){var bOldHidden=this.bHidden,wb=this.workbook,wsActive=wb.getActiveWs(),oVisibleWs=null;this.bHidden=hidden;if(true==this.bHidden&&
this.getIndex()==wsActive.getIndex()){oVisibleWs=wb.findSheetNoHidden(this.getIndex());if(null!=oVisibleWs){var nNewIndex=oVisibleWs.getIndex();wb.setActive(nNewIndex);if(!wb.bUndoChanges&&!wb.bRedoChanges)wb.handlers.trigger("undoRedoHideSheet",nNewIndex)}}if(bOldHidden!=hidden){History.Create_NewPoint();History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_Hide,this.getId(),null,new UndoRedoData_FromTo(bOldHidden,hidden));if(null!=oVisibleWs){History.SetSheetUndo(wsActive.getId());
History.SetSheetRedo(oVisibleWs.getId())}}};Worksheet.prototype.getSheetView=function(){return this.sheetViews[0]};Worksheet.prototype.getSheetViewSettings=function(){return this.sheetViews[0].clone()};Worksheet.prototype.setDisplayGridlines=function(value){var view=this.sheetViews[0];if(value!==view.showGridLines){History.Create_NewPoint();History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_SetDisplayGridlines,this.getId(),null,new UndoRedoData_FromTo(view.showGridLines,value));
view.showGridLines=value;if(!this.workbook.bUndoChanges&&!this.workbook.bRedoChanges)this.workbook.handlers.trigger("asc_onUpdateSheetViewSettings")}};Worksheet.prototype.setDisplayHeadings=function(value){var view=this.sheetViews[0];if(value!==view.showRowColHeaders){History.Create_NewPoint();History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_SetDisplayHeadings,this.getId(),null,new UndoRedoData_FromTo(view.showRowColHeaders,value));view.showRowColHeaders=value;if(!this.workbook.bUndoChanges&&
!this.workbook.bRedoChanges)this.workbook.handlers.trigger("asc_onUpdateSheetViewSettings")}};Worksheet.prototype.getRowsCount=function(){var result=this.nRowsCount;var pane=this.sheetViews.length&&this.sheetViews[0].pane;if(pane&&pane.topLeftFrozenCell)result=Math.max(result,pane.topLeftFrozenCell.getRow0());return result};Worksheet.prototype.removeRows=function(start,stop,bExcludeHiddenRows){var removeRowsArr=bExcludeHiddenRows?this._getNoHiddenRowsArr(start,stop):[{start:start,stop:stop}];for(var i=
removeRowsArr.length-1;i>=0;i--){var oRange=this.getRange(new CellAddress(removeRowsArr[i].start,0,0),new CellAddress(removeRowsArr[i].stop,gc_nMaxCol0,0));oRange.deleteCellsShiftUp()}};Worksheet.prototype._getNoHiddenRowsArr=function(start,stop){var res=[];var elem=null;for(var i=start;i<=stop;i++)if(this.getRowHidden(i)){if(elem){res.push(elem);elem=null}}else{if(!elem){elem={};elem.start=i;elem.stop=i}else elem.stop++;if(i===stop)res.push(elem)}return res};Worksheet.prototype._updateFormulasParents=
function(r1,c1,r2,c2,bbox,offset,shiftedShared){var t=this;var cellWithFormula;var shiftedArrayFormula={};this.getRange3(r1,c1,r2,c2)._foreachNoEmpty(function(cell){var newNRow=cell.nRow+offset.row;var newNCol=cell.nCol+offset.col;var bHor=0!==offset.col;var toDelete=offset.col<0||offset.row<0;if(cell.isFormula()){var processed=c_oSharedShiftType.NeedTransform;var parsed=cell.getFormulaParsed();var shared=parsed.getShared();var arrayFormula=parsed.getArrayFormulaRef();var formulaRefObj=null;if(shared){processed=
shiftedShared[parsed.getListenerId()];var isPreProcessed=c_oSharedShiftType.PreProcessed===processed;if(!processed||isPreProcessed){if(!processed){var bboxShift=AscCommonExcel.shiftGetBBox(bbox,bHor);if(bboxShift.containsRange(shared.ref)&&(!toDelete||!bbox.isIntersect(shared.ref)))processed=c_oSharedShiftType.Processed;else processed=c_oSharedShiftType.NeedTransform}else if(isPreProcessed)processed=c_oSharedShiftType.Processed;if(c_oSharedShiftType.Processed===processed){var newRef=shared.ref.clone();
newRef.forShift(bbox,offset,t.workbook.bUndoChanges);parsed.setSharedRef(newRef,!isPreProcessed);t.workbook.dependencyFormulas.addToChangedRange2(t.getId(),newRef)}shiftedShared[parsed.getListenerId()]=processed}}else if(arrayFormula)if(!shiftedArrayFormula[parsed.getListenerId()]&&parsed.checkFirstCellArray(cell)){shiftedArrayFormula[parsed.getListenerId()]=1;var newArrayRef=arrayFormula.clone();newArrayRef.setOffset(offset);parsed.setArrayFormulaRef(newArrayRef)}else processed=c_oSharedShiftType.Processed;
if(c_oSharedShiftType.NeedTransform===processed){var isTransform=cell.transformSharedFormula();parsed=cell.getFormulaParsed();if(isTransform)parsed.buildDependencies();cellWithFormula=parsed.getParent();cellWithFormula.nRow=newNRow;cellWithFormula.nCol=newNCol;t.workbook.dependencyFormulas.addToChangedCell(cellWithFormula)}}t.cellsByColRowsCount=Math.max(t.cellsByColRowsCount,newNRow+1);t.nRowsCount=Math.max(t.nRowsCount,t.cellsByColRowsCount);t.nColsCount=Math.max(t.nColsCount,newNCol+1)})};Worksheet.prototype._removeRows=
function(start,stop){var t=this;this.workbook.dependencyFormulas.lockRecal();History.Create_NewPoint();var nDif=-(stop-start+1);var oActualRange=new Asc.Range(0,start,gc_nMaxCol0,stop);var offset=new AscCommon.CellBase(nDif,0);var renameRes=this.renameDependencyNodes(offset,oActualRange);var redrawTablesArr=this.autoFilters.insertRows("delCell",oActualRange,c_oAscDeleteOptions.DeleteRows);this.updatePivotOffset(oActualRange,offset);var collapsedInfo=null,lastRowIndex;var oDefRowPr=new AscCommonExcel.UndoRedoData_RowProp;
this.getRange3(start,0,stop,gc_nMaxCol0)._foreachRowNoEmpty(function(row){var oOldProps=row.getHeightProp();lastRowIndex=row.index;if(false===oOldProps.isEqual(oDefRowPr))History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_RowProp,t.getId(),row._getUpdateRange(),new UndoRedoData_IndexSimpleProp(row.getIndex(),true,oOldProps,oDefRowPr));row.setStyle(null);if(!t.workbook.bRedoChanges){if(collapsedInfo!==null&&collapsedInfo<row.getOutlineLevel())collapsedInfo=null;if(row.getCollapsed()){collapsedInfo=
row.getOutlineLevel();t.setCollapsedRow(false,null,row)}}},function(cell){t._removeCell(null,null,cell)});if(collapsedInfo!==null&&lastRowIndex===stop)this._getRow(stop+1,function(row){t.setCollapsedRow(true,null,row)});this._updateFormulasParents(start,0,gc_nMaxRow0,gc_nMaxCol0,oActualRange,offset,renameRes.shiftedShared);this.rowsData.deleteRange(start,-nDif);this._forEachColData(function(sheetMemory){sheetMemory.deleteRange(start,-nDif)});this.workbook.dependencyFormulas.notifyChanged(renameRes.changed);
History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_RemoveRows,this.getId(),new Asc.Range(0,start,gc_nMaxCol0,gc_nMaxRow0),new UndoRedoData_FromToRowCol(true,start,stop));this.autoFilters.redrawStylesTables(redrawTablesArr);this.workbook.dependencyFormulas.unlockRecal();return true};Worksheet.prototype.insertRowsBefore=function(index,count){var oRange=this.getRange(new CellAddress(index,0,0),new CellAddress(index+count-1,gc_nMaxCol0,0));oRange.addCellsShiftBottom()};Worksheet.prototype._getBordersForInsert=
function(bbox,bRow){var t=this;var borders={};var offsetRow=bRow&&bbox.r1>0?-1:0;var offsetCol=!bRow&&bbox.c1>0?-1:0;var r2=bRow?bbox.r1:bbox.r2;var c2=!bRow?bbox.c1:bbox.c2;if(0!==offsetRow||0!==offsetCol)this.getRange3(bbox.r1,bbox.c1,r2,c2)._foreachNoEmpty(function(cell){if(cell.xfs&&cell.xfs.border)t._getCellNoEmpty(cell.nRow+offsetRow,cell.nCol+offsetCol,function(neighbor){if(neighbor&&neighbor.xfs&&neighbor.xfs.border){var newBorder=neighbor.xfs.border.clone();newBorder.intersect(cell.xfs.border,
g_oDefaultFormat.BorderAbs,true);borders[bRow?cell.nCol:cell.nRow]=newBorder}})});return borders};Worksheet.prototype._insertRowsBefore=function(index,count){var t=this;this.workbook.dependencyFormulas.lockRecal();var oActualRange=new Asc.Range(0,index,gc_nMaxCol0,index+count-1);History.Create_NewPoint();var offset=new AscCommon.CellBase(count,0);var renameRes=this.renameDependencyNodes(offset,oActualRange);var redrawTablesArr=this.autoFilters.insertRows("insCell",oActualRange,c_oAscInsertOptions.InsertColumns);
this.updatePivotOffset(oActualRange,offset);this._updateFormulasParents(index,0,gc_nMaxRow0,gc_nMaxCol0,oActualRange,offset,renameRes.shiftedShared);var borders;if(index>0&&!this.workbook.bUndoChanges)borders=this._getBordersForInsert(oActualRange,true);this.rowsData.insertRange(index,count);this.nRowsCount=Math.max(this.nRowsCount,this.rowsData.getSize());this._forEachColData(function(sheetMemory){sheetMemory.insertRange(index,count);t.cellsByColRowsCount=Math.max(t.cellsByColRowsCount,sheetMemory.getSize())});
this.nRowsCount=Math.max(this.nRowsCount,this.cellsByColRowsCount);if(index>0&&!this.workbook.bUndoChanges){this.rowsData.copyRangeByChunk(index-1,1,index,count);this.nRowsCount=Math.max(this.nRowsCount,this.rowsData.getSize());this._forEachColData(function(sheetMemory){sheetMemory.copyRangeByChunk(index-1,1,index,count);t.cellsByColRowsCount=Math.max(t.cellsByColRowsCount,sheetMemory.getSize())});this.nRowsCount=Math.max(this.nRowsCount,this.cellsByColRowsCount);this.getRange3(index,0,index+count-
1,gc_nMaxCol0)._foreachRowNoEmpty(function(row){row.setHidden(false)},function(cell){cell.clearDataKeepXf(borders[cell.nCol])})}this.workbook.dependencyFormulas.notifyChanged(renameRes.changed);History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_AddRows,this.getId(),new Asc.Range(0,index,gc_nMaxCol0,gc_nMaxRow0),new UndoRedoData_FromToRowCol(true,index,index+count-1));this.autoFilters.redrawStylesTables(redrawTablesArr);this.workbook.dependencyFormulas.unlockRecal();return true};
Worksheet.prototype.insertRowsAfter=function(index,count){return this.insertRowsBefore(index+1,count)};Worksheet.prototype.getColsCount=function(){var result=this.nColsCount;var pane=this.sheetViews.length&&this.sheetViews[0].pane;if(pane&&pane.topLeftFrozenCell)result=Math.max(result,pane.topLeftFrozenCell.getCol0());return result};Worksheet.prototype.removeCols=function(start,stop){var oRange=this.getRange(new CellAddress(0,start,0),new CellAddress(gc_nMaxRow0,stop,0));oRange.deleteCellsShiftLeft()};
Worksheet.prototype._removeCols=function(start,stop){var t=this;this.workbook.dependencyFormulas.lockRecal();History.Create_NewPoint();var nDif=-(stop-start+1),i,j,length;var oActualRange=new Asc.Range(start,0,stop,gc_nMaxRow0);var offset=new AscCommon.CellBase(0,nDif);var renameRes=this.renameDependencyNodes(offset,oActualRange);var redrawTablesArr=this.autoFilters.insertColumn(oActualRange,nDif);this.updatePivotOffset(oActualRange,offset);var collapsedInfo=null,lastRowIndex;var oDefColPr=new AscCommonExcel.UndoRedoData_ColProp;
this.getRange3(0,start,gc_nMaxRow0,stop)._foreachColNoEmpty(function(col){var nIndex=col.getIndex();var oOldProps=col.getWidthProp();if(false===oOldProps.isEqual(oDefColPr))History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_ColProp,t.getId(),new Asc.Range(nIndex,0,nIndex,gc_nMaxRow0),new UndoRedoData_IndexSimpleProp(nIndex,false,oOldProps,oDefColPr));col.setStyle(null);lastRowIndex=col.index;if(!t.workbook.bRedoChanges){if(collapsedInfo!==null&&collapsedInfo<col.getOutlineLevel())collapsedInfo=
null;if(col.getCollapsed()){collapsedInfo=col.getOutlineLevel();t.setCollapsedCol(false,null,col)}}},function(cell){t._removeCell(null,null,cell)});if(collapsedInfo!==null&&lastRowIndex===stop){var curCol=this._getCol(stop+1);if(curCol)t.setCollapsedCol(true,null,curCol)}this._updateFormulasParents(0,start,gc_nMaxRow0,gc_nMaxCol0,oActualRange,offset,renameRes.shiftedShared);this.cellsByCol.splice(start,stop-start+1);this.aCols.splice(start,stop-start+1);for(i=start,length=this.aCols.length;i<length;++i){var elem=
this.aCols[i];if(null!=elem)elem.moveHor(nDif)}this.workbook.dependencyFormulas.notifyChanged(renameRes.changed);History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_RemoveCols,this.getId(),new Asc.Range(start,0,gc_nMaxCol0,gc_nMaxRow0),new UndoRedoData_FromToRowCol(false,start,stop));this.autoFilters.redrawStylesTables(redrawTablesArr);this.workbook.dependencyFormulas.unlockRecal();return true};Worksheet.prototype.insertColsBefore=function(index,count){var oRange=this.getRange3(0,
index,gc_nMaxRow0,index+count-1);oRange.addCellsShiftRight()};Worksheet.prototype._insertColsBefore=function(index,count){this.workbook.dependencyFormulas.lockRecal();var oActualRange=new Asc.Range(index,0,index+count-1,gc_nMaxRow0);History.Create_NewPoint();var offset=new AscCommon.CellBase(0,count);var renameRes=this.renameDependencyNodes(offset,oActualRange);var redrawTablesArr=this.autoFilters.insertColumn(oActualRange,count);this.updatePivotOffset(oActualRange,offset);this._updateFormulasParents(0,
index,gc_nMaxRow0,gc_nMaxCol0,oActualRange,offset,renameRes.shiftedShared);var borders;if(index>0&&!this.workbook.bUndoChanges)borders=this._getBordersForInsert(oActualRange,false);this.cellsByCol.splice(gc_nMaxCol0-count+1,count);for(var i=this.cellsByCol.length-1;i>=index;--i){this.cellsByCol[i+count]=this.cellsByCol[i];this.cellsByCol[i]=undefined}this.nColsCount=Math.max(this.nColsCount,this.getColDataLength());this.aCols.splice(gc_nMaxCol0-count+1,count);for(var i=this.aCols.length-1;i>=index;--i){this.aCols[i+
count]=this.aCols[i];this.aCols[i]=undefined;if(this.aCols[i+count])this.aCols[i+count].moveHor(count)}this.nColsCount=Math.max(this.nColsCount,this.aCols.length);if(!this.workbook.bUndoChanges){var oPrevCol=null;if(index>0)oPrevCol=this.aCols[index-1];if(null==oPrevCol&&null!=this.oAllCol)oPrevCol=this.oAllCol;if(null!=oPrevCol){History.LocalChange=true;for(var i=index;i<index+count;++i){var oNewCol=oPrevCol.clone();oNewCol.setHidden(null);oNewCol.BestFit=null;oNewCol.index=i;this.aCols[i]=oNewCol}History.LocalChange=
false}var prevCellsByCol=index>0?this.cellsByCol[index-1]:null;if(prevCellsByCol){for(var i=index;i<index+count;++i)this.cellsByCol[i]=prevCellsByCol.clone();this.nColsCount=Math.max(this.nColsCount,this.getColDataLength());this.getRange3(0,index,gc_nMaxRow0,index+count-1)._foreachNoEmpty(function(cell){cell.clearDataKeepXf(borders[cell.nRow])})}}this.workbook.dependencyFormulas.notifyChanged(renameRes.changed);History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_AddCols,this.getId(),
new Asc.Range(index,0,gc_nMaxCol0,gc_nMaxRow0),new UndoRedoData_FromToRowCol(false,index,index+count-1));this.autoFilters.redrawStylesTables(redrawTablesArr);this.workbook.dependencyFormulas.unlockRecal();return true};Worksheet.prototype.insertColsAfter=function(index,count){return this.insertColsBefore(index+1,count)};Worksheet.prototype.getDefaultWidth=function(){return this.oSheetFormatPr.dDefaultColWidth};Worksheet.prototype.getDefaultFontName=function(){return this.workbook.getDefaultFont()};
Worksheet.prototype.getDefaultFontSize=function(){return this.workbook.getDefaultSize()};Worksheet.prototype.getBaseColWidth=function(){return this.oSheetFormatPr.nBaseColWidth||8};Worksheet.prototype.charCountToModelColWidth=function(count){return this.workbook.charCountToModelColWidth(count)};Worksheet.prototype.modelColWidthToColWidth=function(mcw){return this.workbook.modelColWidthToColWidth(mcw)};Worksheet.prototype.colWidthToCharCount=function(w){return this.workbook.colWidthToCharCount(w)};
Worksheet.prototype.getColWidth=function(index){var col=this._getColNoEmptyWithAll(index);if(null!=col&&null!=col.width)return col.width;var dResult=this.oSheetFormatPr.dDefaultColWidth;if(dResult===undefined||dResult===null||dResult==0)dResult=-1;return dResult};Worksheet.prototype.setColWidth=function(width,start,stop){width=this.charCountToModelColWidth(width);if(0==width)return this.setColHidden(true,start,stop);if(null==start)return;if(null==stop)stop=start;History.Create_NewPoint();var oSelection=
History.GetSelection();if(null!=oSelection){oSelection=oSelection.clone();oSelection.assign(start,0,stop,gc_nMaxRow0);History.SetSelection(oSelection);History.SetSelectionRedo(oSelection)}var bNotAddCollapsed=true==this.workbook.bUndoChanges||true==this.workbook.bRedoChanges||this.bExcludeCollapsed;var _summaryRight=this.sheetPr?this.sheetPr.SummaryRight:true;var oThis=this,prevCol;var fProcessCol=function(col){if(col.width!=width){if(_summaryRight&&!bNotAddCollapsed&&col.getCollapsed())oThis.setCollapsedCol(false,
null,col);else if(!_summaryRight&&!bNotAddCollapsed&&prevCol&&prevCol.getCollapsed())oThis.setCollapsedCol(false,null,prevCol);prevCol=col;var oOldProps=col.getWidthProp();col.width=width;col.CustomWidth=true;col.BestFit=null;col.setHidden(null);oThis.initColumn(col);var oNewProps=col.getWidthProp();if(false==oOldProps.isEqual(oNewProps))History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_ColProp,oThis.getId(),col._getUpdateRange(),new UndoRedoData_IndexSimpleProp(col.index,
false,oOldProps,oNewProps))}};if(0==start&&gc_nMaxCol0==stop){var col=this.getAllCol();fProcessCol(col);for(var i in this.aCols){var col=this.aCols[i];if(null!=col)fProcessCol(col)}}else{if(!_summaryRight)if(!bNotAddCollapsed&&start>0)prevCol=this._getCol(start-1);for(var i=start;i<=stop;i++){var col=this._getCol(i);fProcessCol(col)}if(_summaryRight&&!bNotAddCollapsed&&prevCol){col=this._getCol(stop+1);if(col.getCollapsed())this.setCollapsedCol(false,null,col)}}};Worksheet.prototype.getColHidden=
function(index){var col=this._getColNoEmptyWithAll(index);return col?col.getHidden():false};Worksheet.prototype.setColHidden=function(bHidden,start,stop){if(null==start)return;if(null==stop)stop=start;History.Create_NewPoint();var oThis=this,outlineLevel;var bNotAddCollapsed=true==this.workbook.bUndoChanges||true==this.workbook.bRedoChanges||this.bExcludeCollapsed;var _summaryRight=this.sheetPr?this.sheetPr.SummaryRight:true;var fProcessCol=function(col){if(col&&!bNotAddCollapsed&&outlineLevel!==
undefined&&outlineLevel!==col.getOutlineLevel())if(!_summaryRight)oThis.setCollapsedCol(bHidden,col.index-1);else oThis.setCollapsedCol(bHidden,null,col);outlineLevel=col?col.getOutlineLevel():null;if(col.getHidden()!=bHidden){var oOldProps=col.getWidthProp();if(bHidden){col.setHidden(bHidden);if(null==col.width||true!=col.CustomWidth)col.width=0;col.CustomWidth=true;col.BestFit=null}else{col.setHidden(null);if(0>=col.width)col.width=null}var oNewProps=col.getWidthProp();if(false==oOldProps.isEqual(oNewProps))History.Add(AscCommonExcel.g_oUndoRedoWorksheet,
AscCH.historyitem_Worksheet_ColProp,oThis.getId(),col._getUpdateRange(),new UndoRedoData_IndexSimpleProp(col.index,false,oOldProps,oNewProps))}};if(!bNotAddCollapsed&&!_summaryRight&&start>0){col=this._getCol(start-1);outlineLevel=col.getOutlineLevel()}if(0!=start&&gc_nMaxCol0==stop){var col=null;if(false==bHidden)col=this.oAllCol;else col=this.getAllCol();if(null!=col)fProcessCol(col);for(var i in this.aCols){var col=this.aCols[i];if(null!=col)fProcessCol(col)}}else for(var i=start;i<=stop;i++){var col=
null;if(false==bHidden)col=this._getColNoEmpty(i);else col=this._getCol(i);if(null!=col)fProcessCol(col)}if(!bNotAddCollapsed&&outlineLevel&&_summaryRight){col=this._getCol(stop+1);if(col&&outlineLevel!==col.getOutlineLevel())oThis.setCollapsedCol(bHidden,null,col)}};Worksheet.prototype.setCollapsedCol=function(bCollapse,colIndex,curCol){var oThis=this;var fProcessCol=function(col){var oOldProps=col.getCollapsed();col.setCollapsed(bCollapse);var oNewProps=col.getCollapsed();if(oOldProps!==oNewProps)History.Add(AscCommonExcel.g_oUndoRedoWorksheet,
AscCH.historyitem_Worksheet_CollapsedCol,oThis.getId(),col._getUpdateRange(),new UndoRedoData_IndexSimpleProp(col.index,true,oOldProps,oNewProps))};if(curCol)fProcessCol(curCol);else this.getRange3(0,colIndex,0,colIndex)._foreachCol(fProcessCol)};Worksheet.prototype.setSummaryRight=function(val){if(!this.sheetPr)this.sheetPr=new AscCommonExcel.asc_CSheetPr;History.Create_NewPoint();History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_SetSummaryRight,this.getId(),null,new UndoRedoData_FromTo(this.sheetPr.SummaryRight,
val));this.sheetPr.SummaryRight=val};Worksheet.prototype.setSummaryBelow=function(val){if(!this.sheetPr)this.sheetPr=new AscCommonExcel.asc_CSheetPr;History.Create_NewPoint();History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_SetSummaryBelow,this.getId(),null,new UndoRedoData_FromTo(this.sheetPr.SummaryBelow,val));this.sheetPr.SummaryBelow=val};Worksheet.prototype.setGroupCol=function(bDel,start,stop){var oThis=this;var fProcessCol=function(col){var oOldProps=col.getOutlineLevel();
col.setOutlineLevel(null,bDel);var oNewProps=col.getOutlineLevel();if(oOldProps!==oNewProps)History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_GroupCol,oThis.getId(),col._getUpdateRange(),new UndoRedoData_IndexSimpleProp(col.index,true,oOldProps,oNewProps))};this.getRange3(0,start,0,stop)._foreachCol(fProcessCol)};Worksheet.prototype.setOutlineCol=function(val,start,stop){var oThis=this;var fProcessCol=function(col){var oOldProps=col.getOutlineLevel();col.setOutlineLevel(val);
var oNewProps=col.getOutlineLevel();if(oOldProps!==oNewProps)History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_GroupCol,oThis.getId(),col._getUpdateRange(),new UndoRedoData_IndexSimpleProp(col.index,true,oOldProps,oNewProps))};this.getRange3(0,start,0,stop)._foreachCol(fProcessCol)};Worksheet.prototype.getColCustomWidth=function(index){var isBestFit;var column=this._getColNoEmptyWithAll(index);if(!column)isBestFit=true;else if(column.getHidden())isBestFit=false;else isBestFit=
!!(column.BestFit||null===column.BestFit&&null===column.CustomWidth);return!isBestFit};Worksheet.prototype.setColBestFit=function(bBestFit,width,start,stop){if(null==start)return;if(null==stop)stop=start;History.Create_NewPoint();var oThis=this;var fProcessCol=function(col){var oOldProps=col.getWidthProp();if(bBestFit){col.BestFit=bBestFit;col.setHidden(null)}else col.BestFit=null;col.width=width;oThis.initColumn(col);var oNewProps=col.getWidthProp();if(false==oOldProps.isEqual(oNewProps))History.Add(AscCommonExcel.g_oUndoRedoWorksheet,
AscCH.historyitem_Worksheet_ColProp,oThis.getId(),col._getUpdateRange(),new UndoRedoData_IndexSimpleProp(col.index,false,oOldProps,oNewProps))};if(0!=start&&gc_nMaxCol0==stop){var col=null;if(bBestFit&&oDefaultMetrics.ColWidthChars==width)col=this.oAllCol;else col=this.getAllCol();if(null!=col)fProcessCol(col);for(var i in this.aCols){var col=this.aCols[i];if(null!=col)fProcessCol(col)}}else for(var i=start;i<=stop;i++){var col=null;if(bBestFit&&oDefaultMetrics.ColWidthChars==width)col=this._getColNoEmpty(i);
else col=this._getCol(i);if(null!=col)fProcessCol(col)}};Worksheet.prototype.isDefaultHeightHidden=function(){return null!=this.oSheetFormatPr.oAllRow&&this.oSheetFormatPr.oAllRow.getHidden()};Worksheet.prototype.isDefaultWidthHidden=function(){return null!=this.oAllCol&&this.oAllCol.getHidden()};Worksheet.prototype.setDefaultHeight=function(h){if(this.oSheetFormatPr.oAllRow&&!this.oSheetFormatPr.oAllRow.getCustomHeight())this.oSheetFormatPr.oAllRow.h=h};Worksheet.prototype.getDefaultHeight=function(){var dRes=
null;if(null!=this.oSheetFormatPr.oAllRow&&this.oSheetFormatPr.oAllRow.getCustomHeight())dRes=this.oSheetFormatPr.oAllRow.h;return dRes};Worksheet.prototype.getRowHeight=function(index){var res;this._getRowNoEmptyWithAll(index,function(row){res=row?row.getHeight():-1});return res};Worksheet.prototype.setRowHeight=function(height,start,stop,isCustom){if(0==height)return this.setRowHidden(true,start,stop);if(null==start)return;if(null==stop)stop=start;History.Create_NewPoint();var oThis=this,i;var oSelection=
History.GetSelection();if(null!=oSelection){oSelection=oSelection.clone();oSelection.assign(0,start,gc_nMaxCol0,stop);History.SetSelection(oSelection);History.SetSelectionRedo(oSelection)}var prevRow;var bNotAddCollapsed=true==this.workbook.bUndoChanges||true==this.workbook.bRedoChanges||this.bExcludeCollapsed;var _summaryBelow=this.sheetPr?this.sheetPr.SummaryBelow:true;var fProcessRow=function(row){if(row){if(_summaryBelow&&!bNotAddCollapsed&&row.getCollapsed())oThis.setCollapsedRow(false,null,
row);else if(!_summaryBelow&&!bNotAddCollapsed&&prevRow&&prevRow.getCollapsed())oThis.setCollapsedRow(false,null,prevRow);prevRow=row;var oOldProps=row.getHeightProp();row.setHeight(height);if(isCustom)row.setCustomHeight(true);row.setCalcHeight(true);row.setHidden(false);var oNewProps=row.getHeightProp();if(false===oOldProps.isEqual(oNewProps))History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_RowProp,oThis.getId(),row._getUpdateRange(),new UndoRedoData_IndexSimpleProp(row.index,
true,oOldProps,oNewProps))}};if(0==start&&gc_nMaxRow0==stop){fProcessRow(this.getAllRow());this._forEachRow(fProcessRow)}else{if(!_summaryBelow)if(!bNotAddCollapsed&&start>0)this._getRow(start-1,function(row){prevRow=row});this.getRange3(start,0,stop,0)._foreachRow(fProcessRow);if(_summaryBelow)if(!bNotAddCollapsed&&prevRow)this._getRow(stop+1,function(row){if(row.getCollapsed())oThis.setCollapsedRow(false,null,row)})}if(this.needRecalFormulas(start,stop))this.workbook.dependencyFormulas.calcTree()};
Worksheet.prototype.getRowHidden=function(index){var res;this._getRowNoEmptyWithAll(index,function(row){res=row?row.getHidden():false});return res};Worksheet.prototype.setRowHidden=function(bHidden,start,stop){if(null==start)return;if(null==stop)stop=start;History.Create_NewPoint();var oThis=this,i;var startIndex=null,endIndex=null,updateRange,outlineLevel;var bNotAddCollapsed=true==this.workbook.bUndoChanges||true==this.workbook.bRedoChanges||this.bExcludeCollapsed;var _summaryBelow=this.sheetPr?
this.sheetPr.SummaryBelow:true;var fProcessRow=function(row){if(row&&!bNotAddCollapsed&&outlineLevel!==undefined&&outlineLevel!==row.getOutlineLevel())if(!_summaryBelow)oThis.setCollapsedRow(bHidden,row.index-1);else oThis.setCollapsedRow(bHidden,null,row);outlineLevel=row?row.getOutlineLevel():null;if(row&&bHidden!=row.getHidden()){row.setHidden(bHidden);if(row.index===endIndex+1&&startIndex!==null)endIndex++;else{if(startIndex!==null){updateRange=new Asc.Range(0,startIndex,gc_nMaxCol0,endIndex);
History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_RowHide,oThis.getId(),updateRange,new UndoRedoData_FromToRowCol(bHidden,startIndex,endIndex))}startIndex=row.index;endIndex=row.index}}};if(0==start&&gc_nMaxRow0==stop);else{if(!_summaryBelow&&start>0&&!bNotAddCollapsed)this._getRow(start-1,function(row){if(row)outlineLevel=row.getOutlineLevel()});for(i=start;i<=stop;++i)false==bHidden?this._getRowNoEmpty(i,fProcessRow):this._getRow(i,fProcessRow);if(_summaryBelow&&outlineLevel&&
!bNotAddCollapsed)this._getRow(stop+1,function(row){if(row&&outlineLevel!==row.getOutlineLevel())oThis.setCollapsedRow(bHidden,null,row)});if(startIndex!==null){updateRange=new Asc.Range(0,startIndex,gc_nMaxCol0,endIndex);History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_RowHide,oThis.getId(),updateRange,new UndoRedoData_FromToRowCol(bHidden,startIndex,endIndex))}}if(this.needRecalFormulas(start,stop))this.workbook.dependencyFormulas.calcTree()};Worksheet.prototype.setCollapsedRow=
function(bCollapse,rowIndex,curRow){var oThis=this;var fProcessRow=function(row,bSave){var oOldProps=row.getCollapsed();row.setCollapsed(bCollapse);var oNewProps=row.getCollapsed();if(oOldProps!==oNewProps)History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_CollapsedRow,oThis.getId(),row._getUpdateRange(),new UndoRedoData_IndexSimpleProp(row.index,true,oOldProps,oNewProps));if(bSave)row.saveContent(true)};if(curRow)fProcessRow(curRow,true);else this.getRange3(rowIndex,0,rowIndex,
0)._foreachRow(fProcessRow)};Worksheet.prototype.setGroupRow=function(bDel,start,stop){var oThis=this;var fProcessRow=function(row){var oOldProps=row.getOutlineLevel();row.setOutlineLevel(null,bDel);var oNewProps=row.getOutlineLevel();if(oOldProps!==oNewProps)History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_GroupRow,oThis.getId(),row._getUpdateRange(),new UndoRedoData_IndexSimpleProp(row.index,true,oOldProps,oNewProps))};this.getRange3(start,0,stop,0)._foreachRow(fProcessRow)};
Worksheet.prototype.setOutlineRow=function(val,start,stop){var oThis=this;var fProcessRow=function(row){var oOldProps=row.getOutlineLevel();row.setOutlineLevel(val);var oNewProps=row.getOutlineLevel();if(oOldProps!==oNewProps)History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_GroupRow,oThis.getId(),row._getUpdateRange(),new UndoRedoData_IndexSimpleProp(row.index,true,oOldProps,oNewProps))};this.getRange3(start,0,stop,0)._foreachRow(fProcessRow)};Worksheet.prototype.getRowCustomHeight=
function(index){var isCustomHeight=false;this._getRowNoEmptyWithAll(index,function(row){if(!row)isCustomHeight=false;else if(row.getHidden())isCustomHeight=true;else isCustomHeight=row.getCustomHeight()});return isCustomHeight};Worksheet.prototype.setRowBestFit=function(bBestFit,height,start,stop){if(null==start)return;if(null==stop)stop=start;History.Create_NewPoint();var oThis=this,i;var isDefaultProp=true==bBestFit&&oDefaultMetrics.RowHeight==height;var fProcessRow=function(row){if(row){var oOldProps=
row.getHeightProp();row.setCustomHeight(!bBestFit);row.setCalcHeight(true);row.setHeight(height);var oNewProps=row.getHeightProp();if(false==oOldProps.isEqual(oNewProps))History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_RowProp,oThis.getId(),row._getUpdateRange(),new UndoRedoData_IndexSimpleProp(row.index,true,oOldProps,oNewProps))}};if(0==start&&gc_nMaxRow0==stop){fProcessRow(isDefaultProp?this.oSheetFormatPr.oAllRow:this.getAllRow());this._forEachRow(fProcessRow)}else{var range=
this.getRange3(start,0,stop,0);if(isDefaultProp)range._foreachRowNoEmpty(fProcessRow);else range._foreachRow(fProcessRow)}this.workbook.dependencyFormulas.calcTree()};Worksheet.prototype.getCell=function(oCellAdd){return this.getRange(oCellAdd,oCellAdd)};Worksheet.prototype.getCell2=function(sCellAdd){if(sCellAdd.indexOf("$")>-1)sCellAdd=sCellAdd.replace(/\$/g,"");return this.getRange2(sCellAdd)};Worksheet.prototype.getCell3=function(r1,c1){return this.getRange3(r1,c1,r1,c1)};Worksheet.prototype.getRange=
function(cellAdd1,cellAdd2){var nRow1=cellAdd1.getRow0();var nCol1=cellAdd1.getCol0();var nRow2=cellAdd2.getRow0();var nCol2=cellAdd2.getCol0();return this.getRange3(nRow1,nCol1,nRow2,nCol2)};Worksheet.prototype.getRange2=function(sRange){var bbox=AscCommonExcel.g_oRangeCache.getAscRange(sRange);if(null!=bbox)return Range.prototype.createFromBBox(this,bbox);return null};Worksheet.prototype.getRange3=function(r1,c1,r2,c2){var nRowMin=r1;var nRowMax=r2;var nColMin=c1;var nColMax=c2;if(r1>r2){nRowMax=
r1;nRowMin=r2}if(c1>c2){nColMax=c1;nColMin=c2}return new Range(this,nRowMin,nColMin,nRowMax,nColMax)};Worksheet.prototype.getRange4=function(r,c){return new Range(this,r,c,r,c)};Worksheet.prototype.getRowIterator=function(r1,c1,c2,callback){var it=new RowIterator;it.init(this,r1,c1,c2);callback(it);it.release()};Worksheet.prototype._removeCell=function(nRow,nCol,cell){var t=this;var processCell=function(cell){if(null!=cell){var sheetId=t.getId();if(false==cell.isEmpty()){var oUndoRedoData_CellData=
new AscCommonExcel.UndoRedoData_CellData(cell.getValueData(),null);if(null!=cell.xfs)oUndoRedoData_CellData.style=cell.xfs.clone();cell.setFormulaInternal(null);History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_RemoveCell,sheetId,new Asc.Range(nCol,nRow,nCol,nRow),new UndoRedoData_CellSimpleData(nRow,nCol,oUndoRedoData_CellData,null))}t.workbook.dependencyFormulas.addToChangedCell(cell);cell.clearData();cell.saveContent(true)}};if(null!=cell){nRow=cell.nRow;nCol=cell.nCol;
processCell(cell)}else this._getCellNoEmpty(nRow,nCol,processCell)};Worksheet.prototype._getCell=function(row,col,fAction){var wb=this.workbook;var targetCell=null;for(var k=0;k<wb.loadCells.length;++k){var elem=wb.loadCells[k];if(elem.nRow==row&&elem.nCol==col&&this===elem.ws){targetCell=elem;break}}if(null===targetCell){var cell=new Cell(this);wb.loadCells.push(cell);if(!cell.loadContent(row,col))this._initCell(cell,row,col);fAction(cell);cell.saveContent(true);wb.loadCells.pop()}else fAction(targetCell)};
Worksheet.prototype._initRow=function(row,index){var t=this;row.setChanged(true);if(null!=this.oSheetFormatPr.oAllRow){row.copyFrom(this.oSheetFormatPr.oAllRow);row.setIndex(index)}this.nRowsCount=index>=this.nRowsCount?index+1:this.nRowsCount};Worksheet.prototype._initCell=function(cell,nRow,nCol){var t=this;cell.setChanged(true);this._getRowNoEmpty(nRow,function(row){var oCol=t._getColNoEmptyWithAll(nCol);var xfs=null;if(row&&null!=row.xfs)xfs=row.xfs.clone();else if(null!=oCol&&null!=oCol.xfs)xfs=
oCol.xfs.clone();cell.setStyleInternal(xfs);t.cellsByColRowsCount=Math.max(t.cellsByColRowsCount,nRow+1);t.nRowsCount=Math.max(t.nRowsCount,t.cellsByColRowsCount);if(nCol>=t.nColsCount)t.nColsCount=nCol+1});var sheetMemory=this.getColData(nCol);sheetMemory.checkSize(nRow)};Worksheet.prototype._getCellNoEmpty=function(row,col,fAction){var wb=this.workbook;var targetCell=null;for(var k=0;k<wb.loadCells.length;++k){var elem=wb.loadCells[k];if(elem.nRow==row&&elem.nCol==col&&this===elem.ws){targetCell=
elem;break}}if(null===targetCell){var cell=new Cell(this);var res=cell.loadContent(row,col)?cell:null;if(res&&fAction)wb.loadCells.push(cell);fAction(res);cell.saveContent(true);if(res)wb.loadCells.pop()}else fAction(targetCell)};Worksheet.prototype._getRowNoEmpty=function(nRow,fAction){var row=new AscCommonExcel.Row(this);if(row.loadContent(nRow)){fAction(row);row.saveContent(true)}else fAction(null)};Worksheet.prototype._getRowNoEmptyWithAll=function(nRow,fAction){var t=this;this._getRowNoEmpty(nRow,
function(row){if(!row)row=t.oSheetFormatPr.oAllRow;fAction(row)})};Worksheet.prototype._getColNoEmpty=function(col){return this.aCols[col]||null};Worksheet.prototype._getColNoEmptyWithAll=function(col){return this._getColNoEmpty(col)||this.oAllCol};Worksheet.prototype._getRow=function(index,fAction){var row=null;if(g_nAllRowIndex==index)row=this.getAllRow();else{row=new AscCommonExcel.Row(this);if(!row.loadContent(index))this._initRow(row,index)}fAction(row);row.saveContent(true)};Worksheet.prototype._getCol=
function(index){var oCurCol;if(g_nAllColIndex==index)oCurCol=this.getAllCol();else{oCurCol=this.aCols[index];if(null==oCurCol){if(null!=this.oAllCol){oCurCol=this.oAllCol.clone();oCurCol.index=index}else oCurCol=new AscCommonExcel.Col(this,index);this.aCols[index]=oCurCol;this.nColsCount=index>=this.nColsCount?index+1:this.nColsCount}}return oCurCol};Worksheet.prototype._prepareMoveRangeGetCleanRanges=function(oBBoxFrom,oBBoxTo,wsTo){var intersection=oBBoxFrom.intersectionSimple(oBBoxTo);var aRangesToCheck=
[];if(null!=intersection&&this===wsTo){var oThis=this;var fAddToRangesToCheck=function(aRangesToCheck,r1,c1,r2,c2){if(r1<=r2&&c1<=c2)aRangesToCheck.push(oThis.getRange3(r1,c1,r2,c2))};if(intersection.r1==oBBoxTo.r1&&intersection.c1==oBBoxTo.c1){fAddToRangesToCheck(aRangesToCheck,oBBoxTo.r1,intersection.c2+1,intersection.r2,oBBoxTo.c2);fAddToRangesToCheck(aRangesToCheck,intersection.r2+1,oBBoxTo.c1,oBBoxTo.r2,oBBoxTo.c2)}else if(intersection.r2==oBBoxTo.r2&&intersection.c1==oBBoxTo.c1){fAddToRangesToCheck(aRangesToCheck,
oBBoxTo.r1,oBBoxTo.c1,intersection.r1-1,oBBoxTo.c2);fAddToRangesToCheck(aRangesToCheck,intersection.r1,intersection.c2+1,oBBoxTo.r2,oBBoxTo.c2)}else if(intersection.r1==oBBoxTo.r1&&intersection.c2==oBBoxTo.c2){fAddToRangesToCheck(aRangesToCheck,oBBoxTo.r1,oBBoxTo.c1,intersection.r2,intersection.c1-1);fAddToRangesToCheck(aRangesToCheck,intersection.r2+1,oBBoxTo.c1,oBBoxTo.r2,oBBoxTo.c2)}else if(intersection.r2==oBBoxTo.r2&&intersection.c2==oBBoxTo.c2){fAddToRangesToCheck(aRangesToCheck,oBBoxTo.r1,
oBBoxTo.c1,intersection.r1-1,oBBoxTo.c2);fAddToRangesToCheck(aRangesToCheck,intersection.r1,oBBoxTo.c1,oBBoxTo.r2,intersection.c1-1)}}else aRangesToCheck.push(wsTo.getRange3(oBBoxTo.r1,oBBoxTo.c1,oBBoxTo.r2,oBBoxTo.c2));return aRangesToCheck};Worksheet.prototype._prepareMoveRange=function(oBBoxFrom,oBBoxTo,wsTo){var res=0;if(!wsTo)wsTo=this;if(oBBoxFrom.isEqual(oBBoxTo)&&this===wsTo)return res;var range=wsTo.getRange3(oBBoxTo.r1,oBBoxTo.c1,oBBoxTo.r2,oBBoxTo.c2);var aMerged=wsTo.mergeManager.get(range.getBBox0());
if(aMerged.outer.length>0)return-2;var aRangesToCheck=this._prepareMoveRangeGetCleanRanges(oBBoxFrom,oBBoxTo,wsTo);for(var i=0,length=aRangesToCheck.length;i<length;i++){range=aRangesToCheck[i];range._foreachNoEmpty(function(cell){if(!cell.isNullTextString()){res=-1;return res}});if(0!=res)return res}return res};Worksheet.prototype._moveMergedAndHyperlinksPrepare=function(oBBoxFrom,oBBoxTo,copyRange,wsTo,offset){var res={merged:[],hyperlinks:[]};if(!(false==this.workbook.bUndoChanges&&(false==this.workbook.bRedoChanges||
this.workbook.bCollaborativeChanges)))return res;var i,elem,bbox,data,wsFrom=this;var intersection=oBBoxFrom.intersectionSimple(oBBoxTo);History.LocalChange=true;var merged=wsFrom.mergeManager.get(oBBoxFrom).inner;var mergedToRemove;if(!copyRange)mergedToRemove=merged;else if(null!==intersection)mergedToRemove=wsFrom.mergeManager.get(intersection).all;if(mergedToRemove)for(i=0;i<mergedToRemove.length;i++)wsFrom.mergeManager.removeElement(mergedToRemove[i]);var hyperlinks=wsFrom.hyperlinkManager.get(oBBoxFrom).inner;
if(!copyRange)for(i=0;i<hyperlinks.length;i++)wsFrom.hyperlinkManager.removeElement(hyperlinks[i]);History.LocalChange=false;res.merged=merged;res.hyperlinks=hyperlinks;return res};Worksheet.prototype._moveMergedAndHyperlinks=function(prepared,oBBoxFrom,oBBoxTo,copyRange,wsTo,offset){var i,elem,bbox,data;var intersection=oBBoxFrom.intersectionSimple(oBBoxTo);History.LocalChange=true;for(i=0;i<prepared.merged.length;i++){elem=prepared.merged[i];bbox=copyRange?elem.bbox.clone():elem.bbox;bbox.setOffset(offset);
wsTo.mergeManager.add(bbox,elem.data)}if(!copyRange||null===intersection)for(i=0;i<prepared.hyperlinks.length;i++){elem=prepared.hyperlinks[i];if(copyRange){bbox=elem.bbox.clone();data=elem.data.clone()}else{bbox=elem.bbox;data=elem.data}bbox.setOffset(offset);wsTo.hyperlinkManager.add(bbox,data)}History.LocalChange=false};Worksheet.prototype._moveCleanRanges=function(oBBoxFrom,oBBoxTo,copyRange,wsTo){var cleanRanges=this._prepareMoveRangeGetCleanRanges(oBBoxFrom,oBBoxTo,wsTo);for(var i=0;i<cleanRanges.length;i++){var range=
cleanRanges[i];range.cleanAll();if(!copyRange)this.workbook.dependencyFormulas.deleteNodes(wsTo.getId(),range.getBBox0())}};Worksheet.prototype._moveFormulas=function(oBBoxFrom,oBBoxTo,copyRange,wsTo,offset){if(!copyRange)this.workbook.dependencyFormulas.move(this.Id,oBBoxFrom,offset,wsTo.getId());this.getRange3(oBBoxFrom.r1,oBBoxFrom.c1,oBBoxFrom.r2,oBBoxFrom.c2)._foreachNoEmpty(function(cell){if(cell.transformSharedFormula()){var parsed=cell.getFormulaParsed();parsed.buildDependencies()}})};Worksheet.prototype._moveCells=
function(oBBoxFrom,oBBoxTo,copyRange,wsTo,offset){var oThis=this;var nRowsCountNew=0;var nColsCountNew=0;var dependencyFormulas=oThis.workbook.dependencyFormulas;var moveToOtherSheet=this!==wsTo;var isClearFromArea=!copyRange||copyRange&&oThis.workbook.bUndoChanges;var moveCells=function(copyRange,from,to,r1From,r1To,count){var fromData=oThis.getColDataNoEmpty(from);var toData;if(fromData){toData=wsTo.getColData(to);toData.copyRange(fromData,r1From,r1To,count);if(isClearFromArea)if(from!==to||moveToOtherSheet)fromData.clear(r1From,
r1From+count);else if(r1From<r1To)fromData.clear(r1From,Math.min(r1From+count,r1To));else fromData.clear(Math.max(r1From,r1To+count),r1From+count)}else{toData=wsTo.getColDataNoEmpty(to);if(toData)toData.clear(r1To,r1To+count)}if(toData){nRowsCountNew=Math.max(nRowsCountNew,toData.getSize());nColsCountNew=Math.max(nColsCountNew,to+1)}};if(oBBoxFrom.c1<oBBoxTo.c1)for(var i=0;i<oBBoxFrom.c2-oBBoxFrom.c1+1;++i)moveCells(copyRange,oBBoxFrom.c2-i,oBBoxTo.c2-i,oBBoxFrom.r1,oBBoxTo.r1,oBBoxFrom.r2-oBBoxFrom.r1+
1);else for(var i=0;i<oBBoxFrom.c2-oBBoxFrom.c1+1;++i)moveCells(copyRange,oBBoxFrom.c1+i,oBBoxTo.c1+i,oBBoxFrom.r1,oBBoxTo.r1,oBBoxFrom.r2-oBBoxFrom.r1+1);History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_MoveRange,this.getId(),new Asc.Range(0,0,gc_nMaxCol0,gc_nMaxRow0),new UndoRedoData_FromTo(new UndoRedoData_BBox(oBBoxFrom),new UndoRedoData_BBox(oBBoxTo),copyRange,wsTo.getId()));if(moveToOtherSheet)History.AddToUpdatesRegions(oBBoxTo,wsTo.getId());var shiftedArrayFormula=
{};var oldNewArrayFormulaMap={};wsTo.cellsByColRowsCount=Math.max(wsTo.cellsByColRowsCount,nRowsCountNew);wsTo.nRowsCount=Math.max(wsTo.nRowsCount,wsTo.cellsByColRowsCount);wsTo.nColsCount=Math.max(wsTo.nColsCount,nColsCountNew);wsTo.getRange3(oBBoxTo.r1,oBBoxTo.c1,oBBoxTo.r2,oBBoxTo.c2)._foreachNoEmpty(function(cell){var formula=cell.getFormulaParsed();if(formula){var cellWithFormula=formula.getParent();var arrayFormula=formula.getArrayFormulaRef();var newArrayRef,newFormula;var preMoveCell={nRow:cell.nRow-
offset.row,nCol:cell.nCol-offset.col};var isFirstCellArray=formula.checkFirstCellArray(preMoveCell)&&!shiftedArrayFormula[formula.getListenerId()];if(copyRange){History.TurnOff();if(!arrayFormula||arrayFormula&&isFirstCellArray){newFormula=oThis._moveCellsFormula(cell,formula,cellWithFormula,copyRange,oBBoxFrom,wsTo);cellWithFormula=newFormula.getParent();cellWithFormula=new CCellWithFormula(wsTo,cell.nRow,cell.nCol);newFormula=newFormula.clone(null,cellWithFormula,wsTo);newFormula.changeOffset(offset,
false,true);newFormula.setFormulaString(newFormula.assemble(true));cell.setFormulaInternal(newFormula,!isClearFromArea);if(isFirstCellArray){newArrayRef=arrayFormula.clone();newArrayRef.setOffset(offset);newFormula.setArrayFormulaRef(newArrayRef);shiftedArrayFormula[newFormula.getListenerId()]=1;oldNewArrayFormulaMap[formula.getListenerId()]=newFormula}}else if(arrayFormula&&oldNewArrayFormulaMap[formula.getListenerId()])cell.setFormulaInternal(oldNewArrayFormulaMap[formula.getListenerId()],!isClearFromArea);
History.TurnOn()}else if(arrayFormula){if(isFirstCellArray){newFormula=oThis._moveCellsFormula(cell,formula,cellWithFormula,copyRange,oBBoxFrom,wsTo);cellWithFormula=newFormula.getParent();shiftedArrayFormula[formula.getListenerId()]=1;newArrayRef=arrayFormula.clone();newArrayRef.setOffset(offset);newFormula.setArrayFormulaRef(newArrayRef);cellWithFormula.ws=wsTo;cellWithFormula.nRow=cell.nRow;cellWithFormula.nCol=cell.nCol}}else{newFormula=oThis._moveCellsFormula(cell,formula,cellWithFormula,copyRange,
oBBoxFrom,wsTo);cellWithFormula=newFormula.getParent();cellWithFormula.ws=wsTo;cellWithFormula.nRow=cell.nRow;cellWithFormula.nCol=cell.nCol}if(arrayFormula){if(isFirstCellArray){dependencyFormulas.addToBuildDependencyArray(formula);if(newFormula)dependencyFormulas.addToBuildDependencyArray(newFormula)}}else dependencyFormulas.addToBuildDependencyCell(cell)}})};Worksheet.prototype._moveCellsFormula=function(cell,formula,cellWithFormula,copyRange,oBBoxFrom,wsTo){if(this!==wsTo)if(copyRange||!this.workbook.bUndoChanges){cellWithFormula=
new CCellWithFormula(wsTo,cell.nRow,cell.nCol);formula=formula.clone(null,cellWithFormula,wsTo);if(!copyRange)formula.convertTo3DRefs(oBBoxFrom);formula.moveToSheet(this,wsTo);formula.setFormulaString(formula.assemble(true));cell.setFormulaParsed(formula)}else{formula.moveToSheet(this,wsTo);formula.setFormulaString(formula.assemble(true))}return formula};Worksheet.prototype._moveRange=function(oBBoxFrom,oBBoxTo,copyRange,wsTo){if(!wsTo)wsTo=this;if(oBBoxFrom.isEqual(oBBoxTo)&&this===wsTo)return;History.Create_NewPoint();
History.StartTransaction();this.workbook.dependencyFormulas.lockRecal();var offset=new AscCommon.CellBase(oBBoxTo.r1-oBBoxFrom.r1,oBBoxTo.c1-oBBoxFrom.c1);var prepared=this._moveMergedAndHyperlinksPrepare(oBBoxFrom,oBBoxTo,copyRange,wsTo,offset);this._moveCleanRanges(oBBoxFrom,oBBoxTo,copyRange,wsTo);this._moveFormulas(oBBoxFrom,oBBoxTo,copyRange,wsTo,offset);this._moveCells(oBBoxFrom,oBBoxTo,copyRange,wsTo,offset);this._moveMergedAndHyperlinks(prepared,oBBoxFrom,oBBoxTo,copyRange,wsTo,offset);if(true==
this.workbook.bUndoChanges||true==this.workbook.bRedoChanges)wsTo.autoFilters.unmergeTablesAfterMove(oBBoxTo);if(false==this.workbook.bUndoChanges&&false==this.workbook.bRedoChanges)this.autoFilters._moveAutoFilters(oBBoxTo,oBBoxFrom,null,copyRange,true,oBBoxFrom,wsTo);this.workbook.dependencyFormulas.unlockRecal();History.EndTransaction();return true};Worksheet.prototype._shiftCellsLeft=function(oBBox){var t=this;var nLeft=oBBox.c1;var nRight=oBBox.c2;var dif=nLeft-nRight-1;var oActualRange=new Asc.Range(nLeft,
oBBox.r1,gc_nMaxCol0,oBBox.r2);var offset=new AscCommon.CellBase(0,dif);var renameRes=this.renameDependencyNodes(offset,oBBox);var redrawTablesArr=this.autoFilters.insertColumn(oBBox,dif);this.getRange3(oBBox.r1,oBBox.c1,oBBox.r2,oBBox.c2)._foreachNoEmpty(function(cell){t._removeCell(null,null,cell)});this._updateFormulasParents(oActualRange.r1,oActualRange.c1,oActualRange.r2,oActualRange.c2,oBBox,offset,renameRes.shiftedShared);var cellsByColLength=this.getColDataLength();for(var i=nRight+1;i<cellsByColLength;++i){var sheetMemoryFrom=
this.getColDataNoEmpty(i);if(sheetMemoryFrom){this.getColData(i+dif).copyRange(sheetMemoryFrom,oBBox.r1,oBBox.r1,oBBox.r2-oBBox.r1+1);sheetMemoryFrom.clear(oBBox.r1,oBBox.r2+1)}}this.workbook.dependencyFormulas.notifyChanged(renameRes.changed);History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_ShiftCellsLeft,this.getId(),oActualRange,new UndoRedoData_BBox(oBBox));this.autoFilters.redrawStylesTables(redrawTablesArr)};Worksheet.prototype._shiftCellsUp=function(oBBox){var t=
this;var nTop=oBBox.r1;var nBottom=oBBox.r2;var dif=nTop-nBottom-1;var oActualRange=new Asc.Range(oBBox.c1,oBBox.r1,oBBox.c2,gc_nMaxRow0);var offset=new AscCommon.CellBase(dif,0);var renameRes=this.renameDependencyNodes(offset,oBBox);var redrawTablesArr=this.autoFilters.insertRows("delCell",oBBox,c_oAscDeleteOptions.DeleteCellsAndShiftTop);this.getRange3(oBBox.r1,oBBox.c1,oBBox.r2,oBBox.c2)._foreachNoEmpty(function(cell){t._removeCell(null,null,cell)});this._updateFormulasParents(oActualRange.r1,
oActualRange.c1,oActualRange.r2,oActualRange.c2,oBBox,offset,renameRes.shiftedShared);for(var i=oBBox.c1;i<=oBBox.c2;++i){var sheetMemory=this.getColDataNoEmpty(i);if(sheetMemory)sheetMemory.deleteRange(nTop,-dif)}this.workbook.dependencyFormulas.notifyChanged(renameRes.changed);History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_ShiftCellsTop,this.getId(),oActualRange,new UndoRedoData_BBox(oBBox));this.autoFilters.redrawStylesTables(redrawTablesArr)};Worksheet.prototype._shiftCellsRight=
function(oBBox,displayNameFormatTable){var nLeft=oBBox.c1;var nRight=oBBox.c2;var dif=nRight-nLeft+1;var oActualRange=new Asc.Range(oBBox.c1,oBBox.r1,gc_nMaxCol0,oBBox.r2);var offset=new AscCommon.CellBase(0,dif);var renameRes=this.renameDependencyNodes(offset,oBBox);var redrawTablesArr=this.autoFilters.insertColumn(oBBox,dif,displayNameFormatTable);this._updateFormulasParents(oActualRange.r1,oActualRange.c1,oActualRange.r2,oActualRange.c2,oBBox,offset,renameRes.shiftedShared);var borders;if(nLeft>
0&&!this.workbook.bUndoChanges)borders=this._getBordersForInsert(oBBox,false);var cellsByColLength=this.getColDataLength();for(var i=cellsByColLength-1;i>=nLeft;--i){var sheetMemoryFrom=this.getColDataNoEmpty(i);if(sheetMemoryFrom){if(i+dif<=gc_nMaxCol0)this.getColData(i+dif).copyRange(sheetMemoryFrom,oBBox.r1,oBBox.r1,oBBox.r2-oBBox.r1+1);sheetMemoryFrom.clear(oBBox.r1,oBBox.r2+1)}}this.nColsCount=Math.max(this.nColsCount,this.getColDataLength());if(nLeft>0&&!this.workbook.bUndoChanges){var prevSheetMemory=
this.getColDataNoEmpty(nLeft-1);if(prevSheetMemory){for(var i=nLeft;i<=nRight;++i)this.getColData(i).copyRange(prevSheetMemory,oBBox.r1,oBBox.r1,oBBox.r2-oBBox.r1+1);this.nColsCount=Math.max(this.nColsCount,this.getColDataLength());this.getRange3(oBBox.r1,oBBox.c1,oBBox.r2,oBBox.c2)._foreachNoEmpty(function(cell){cell.clearDataKeepXf(borders[cell.nRow])})}}this.workbook.dependencyFormulas.notifyChanged(renameRes.changed);History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_ShiftCellsRight,
this.getId(),oActualRange,new UndoRedoData_BBox(oBBox));this.autoFilters.redrawStylesTables(redrawTablesArr)};Worksheet.prototype._shiftCellsBottom=function(oBBox,displayNameFormatTable){var t=this;var nTop=oBBox.r1;var nBottom=oBBox.r2;var dif=nBottom-nTop+1;var oActualRange=new Asc.Range(oBBox.c1,oBBox.r1,oBBox.c2,gc_nMaxRow0);var offset=new AscCommon.CellBase(dif,0);var renameRes=this.renameDependencyNodes(offset,oBBox);var redrawTablesArr;if(!this.workbook.bUndoChanges&&undefined===displayNameFormatTable)redrawTablesArr=
this.autoFilters.insertRows("insCell",oBBox,c_oAscInsertOptions.InsertCellsAndShiftDown,displayNameFormatTable);this._updateFormulasParents(oActualRange.r1,oActualRange.c1,oActualRange.r2,oActualRange.c2,oBBox,offset,renameRes.shiftedShared);var borders;if(nTop>0&&!this.workbook.bUndoChanges)borders=this._getBordersForInsert(oBBox,true);for(var i=oBBox.c1;i<=oBBox.c2;++i){var sheetMemory=this.getColDataNoEmpty(i);if(sheetMemory){sheetMemory.insertRange(nTop,dif);t.cellsByColRowsCount=Math.max(t.cellsByColRowsCount,
sheetMemory.getSize())}}this.nRowsCount=Math.max(this.nRowsCount,this.cellsByColRowsCount);if(nTop>0&&!this.workbook.bUndoChanges){for(var i=oBBox.c1;i<=oBBox.c2;++i){var sheetMemory=this.getColDataNoEmpty(i);if(sheetMemory){sheetMemory.copyRangeByChunk(nTop-1,1,nTop,dif);t.cellsByColRowsCount=Math.max(t.cellsByColRowsCount,sheetMemory.getSize())}}this.nRowsCount=Math.max(this.nRowsCount,this.cellsByColRowsCount);this.getRange3(oBBox.r1,oBBox.c1,oBBox.r2,oBBox.c2)._foreachNoEmpty(function(cell){cell.clearDataKeepXf(borders[cell.nCol])})}this.workbook.dependencyFormulas.notifyChanged(renameRes.changed);
History.Add(AscCommonExcel.g_oUndoRedoWorksheet,AscCH.historyitem_Worksheet_ShiftCellsBottom,this.getId(),oActualRange,new UndoRedoData_BBox(oBBox));if(!this.workbook.bUndoChanges&&undefined!==displayNameFormatTable)redrawTablesArr=this.autoFilters.insertRows("insCell",oBBox,c_oAscInsertOptions.InsertCellsAndShiftDown,displayNameFormatTable);if(!this.workbook.bUndoChanges)this.autoFilters.redrawStylesTables(redrawTablesArr)};Worksheet.prototype._setIndex=function(ind){this.index=ind};Worksheet.prototype._BuildDependencies=
function(cellRange){var ca;for(var i in cellRange){if(null===cellRange[i]){cellRange[i]=i;continue}ca=g_oCellAddressUtils.getCellAddress(i);this._getCellNoEmpty(ca.getRow0(),ca.getCol0(),function(c){if(c)c._BuildDependencies(true)})}};Worksheet.prototype._setHandlersTablePart=function(){if(!this.TableParts)return;for(var i=0;i<this.TableParts.length;i++)this.TableParts[i].setHandlers(this.handlers)};Worksheet.prototype.getTableRangeForFormula=function(name,objectParam){var res=null;if(!this.TableParts||
!name)return res;for(var i=0;i<this.TableParts.length;i++)if(this.TableParts[i].DisplayName.toLowerCase()===name.toLowerCase()){res=this.TableParts[i].getTableRangeForFormula(objectParam);break}return res};Worksheet.prototype.getTableIndexColumnByName=function(tableName,columnName){var res=null;if(!this.TableParts||!tableName)return res;for(var i=0;i<this.TableParts.length;i++)if(this.TableParts[i].DisplayName.toLowerCase()===tableName.toLowerCase()){res=this.TableParts[i].getTableIndexColumnByName(columnName);
break}return res};Worksheet.prototype.getTableNameColumnByIndex=function(tableName,columnIndex){var res=null;if(!this.TableParts||!tableName)return res;for(var i=0;i<this.TableParts.length;i++)if(this.TableParts[i].DisplayName.toLowerCase()===tableName.toLowerCase()){res=this.TableParts[i].getTableNameColumnByIndex(columnIndex);break}return res};Worksheet.prototype.getTableByName=function(tableName){var res=null;if(!this.TableParts||!tableName)return res;for(var i=0;i<this.TableParts.length;i++)if(this.TableParts[i].DisplayName.toLowerCase()===
tableName.toLowerCase()){res=this.TableParts[i];break}return res};Worksheet.prototype.isApplyFilterBySheet=function(){var res=false;if(this.AutoFilter&&this.AutoFilter.isApplyAutoFilter())res=true;if(false===res&&this.TableParts)for(var i=0;i<this.TableParts.length;i++)if(true===this.TableParts[i].isApplyAutoFilter()){res=true;break}return res};Worksheet.prototype.getTableNames=function(){var res=[];if(this.TableParts)for(var i=0;i<this.TableParts.length;i++)res.push(this.TableParts[i].DisplayName);
return res};Worksheet.prototype.renameDependencyNodes=function(offset,oBBox){return this.workbook.dependencyFormulas.shift(this.Id,oBBox,offset)};Worksheet.prototype.getAllCol=function(){if(null==this.oAllCol)this.oAllCol=new AscCommonExcel.Col(this,g_nAllColIndex);return this.oAllCol};Worksheet.prototype.getAllRow=function(){if(null==this.oSheetFormatPr.oAllRow){this.oSheetFormatPr.oAllRow=new AscCommonExcel.Row(this);this.oSheetFormatPr.oAllRow.setIndex(g_nAllRowIndex)}return this.oSheetFormatPr.oAllRow};
Worksheet.prototype.getAllRowNoEmpty=function(){return this.oSheetFormatPr.oAllRow};Worksheet.prototype.getHyperlinkByCell=function(row,col){var oHyperlink=this.hyperlinkManager.getByCell(row,col);return oHyperlink?oHyperlink.data:null};Worksheet.prototype.getMergedByCell=function(row,col){var oMergeInfo=this.mergeManager.getByCell(row,col);return oMergeInfo?oMergeInfo.bbox:null};Worksheet.prototype.getMergedByRange=function(bbox){return this.mergeManager.get(bbox)};Worksheet.prototype._expandRangeByMergedAddToOuter=

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long
Loading…
Cancel
Save